【AR实验室】ARToolKit之制作自己的Marker/NFT

  • 时间:
  • 浏览:0
  • 来源:大发快三_快三下载安装_大发快三下载安装

0x00 - 前言


看到example后,就会想或多或少人动动手,这里改改那里修修。亲们先试着加进或多或少人喜欢的marker/nft进行识别。

比如我做了另有一个 法拉利的marker:

还有网上找了另有一个 法拉利logo的图片用于NFT(Natural Feature Tracking):

对应显示的模型是太多 太多 太多 太多 的(仅供参考^_^!)

0x01 - marker制作流程


1.制作marker图片

首先亲们找到doc/patterns/Blank pattern.png,使用这俩空白的marker图片制作出或多或少人让你的marker。难能可贵使用这俩blank pattern,是原因分析分析这俩空白marker图片的符合marker的基本要求:

  • 都都能否 是方形。
  • 都都能否 有连续的边缘(一般来说全部都是 白色或黑色)。另外在marker上边的pattern次要,亲们使用差别较大的三种颜色分别表示前后景(比那末处我用黑色表示法拉利logo,白色作为其背景)。默认状况下,边缘的层厚占pattern图片的1/4。

     - 被边缘所包围的次要太多 太多 太多 太多 亲们所称的pattern,其都都能否 具有旋转不对称性。pattern都都都能否 是黑白的,也都都都能否 是彩色的。

亲们将法拉利的logo弄成黑白的,再加进到blank pattern中。得到以下maker:

2.训练marker图片

亲们使用这俩在线工具"Tarotaro"进行训练(原因分析分析想离线训练,都都都能否 使用ARToolKit提供的mk_patt的离线工具)。

a.打开Tarotaro网站并点击下面红框链接。

b.会打开如下的工具。这时将你都都能否 训练的marker放在摄像头视野中,直到marker边缘再次出显红色边框。

界面介绍:

    Mode Select:有Camera Mode和Load marker image三种方式。亲们下面使用的太多 太多 太多 太多 Camera Mode方式。Load marker image是直接输入本地的marker图片进行训练。

    Marker SegmentsMarker Size我还全部都是 很清楚是那些。亲们这选泽默认参数即可。

c.当marker边缘再次出显红色边框后,亲们点击Get Pattern按钮,就都都都能否 得到下图,亲们都都都能否 看到marker边框变成绿色了,此时亲们选泽Save Current按钮就都都都能否 得到对应的pattern文件,此处将其命名为ferrari.patt(初始后缀是pat,都都都能否 或多或少人修改为patt)。

3.修改配置文件

亲们选泽example中的ARApp2的配置文件进行更改。主太多 太多 太多 太多 更改models.dat和markers.dat文件。

亲们先将ferrari.patt文件和网上搜罗来的ferrari模型文件导入到ARApp2中。

在markers.dat加进

在model.dat加进

4.编译运行

配置文件修改完成后,亲们就都都都能否 编译运行了。请看结果:

0x02 - NFT制作流程


1.选泽图片

NFT难能可贵太多 太多 太多 太多 提取图片的Natural Feature(自然社会形态)本来 我进行跟踪。ARToolKit中会先对图片进行处理,得到一组数据,后续追踪过程使用的难能可贵是处理得到的数据集。并全部都是 那些图片都都都都能否 进行NFT,对于进行NFT的图片,有以下或多或少要求:

  • 追踪的图片都都能否 是矩形图片。
  • 图片都都能否 是jpeg格式。(大次要商用AR SDK支持多种图片格式,比如EasyAR)
  • 图片三种要有足够多的细节和边缘(自之类于度较低,本来 我空间频率较高)。原因分析分析图片含晒 一定量模糊原因分析分析细节较少的色块,追踪效果会比较差。
  • 图片分辨率的提升会使ARToolKit提取出更多的社会形态点,这对于相机接近图片的状况原因分析分析使用高精度相机的状况,会大大提升追踪效果。

太多 太多 太多 太多 我选泽下面这张图片做NFT:

2.提取图片社会形态

利用genTexData来生成对应的追踪数据

选泽提取图片社会形态的程度,数值越大提取的社会形态太多 。当相机离图片越近的之前 ,追踪效果会越好。此处使用默认值。

使用Photoshop查看该图片:

发现其分辨率是72,太多 太多 太多 太多 Enter resolution to use这次要输入72。

而最大最小分辨率范围,根据Training ARToolKit Natural Feature Tracking (NFT) to Recognize and Track an Image文章中提到的,根据不同相机分辨率及相机远近有不同取值,一般使用20~120最为离米 。而亲们这边最大分辨率那末72,太多 太多 太多 太多 我选泽20~72。

得到image set(ferrari-nft.iset)和featureList(ferrari.fset&ferrari.fset3)两组数据

亲们使用dispFeatureSet工具都都都能否 显示一下看看社会形态点提取状况:

3.修改配置文件

亲们修改ARAppNFT的配置文件来试验亲们的成果。

首先加进对应训练数据:

修改markers.dat

和上边marker图片训练一样,加进法拉利模型,并在models.dat中加进法拉利模型显示信息:

4.编译运行

0x03 - 参考资料


  • Creating and Training Traditional Template Square Markers

  • Training ARToolKit Natural Feature Tracking (NFT) to Recognize and Track an Image