【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