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

  • 时间:
  • 浏览:5
  • 来源:大发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