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

  • 时间:
  • 浏览:0

0x00 - 前言


看完example后,就会想个人动动手,这里改改那里修修。你们歌词 你们歌词 你们歌词 你们歌词 先试着加上个人喜欢的marker/nft进行识别。

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

还有网上找了另另1个 法拉利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