【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