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

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

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