开发增强现实(AR)教程——识别图的那些坑
第一期:Vuforia识别图的那些坑
一、Vuforia的图片识别机制
大学时学习的是计算机科学的数字媒体方向,图像处理粗略接触过,对于Vuforia的图片识别机制,只能大概讲一下步骤和猜想,无法给出细节的东西。
1、 服务器对上传图片进行灰度处理,图片变为黑白图像;
2、 提取黑白图像特征点;
3、 将特征点数据打包;
4、 程序运行时对比特征点数据包。
二、对Vuforia来说什么是稳定的识别图?
根据上面的识别机制,不难推测出稳定识别图的特质。
1、 图片应避免大面积色值相近的相邻色块,否则一经灰度处理,整张图都糊了,撞色的图片设计能够使灰度处理后的识别图仍保有清晰的分界线。可以看看下面图片(左为原图)的对比,看似复杂的图片,色值一相近就跪了,识别特征0颗星。


2、 仔细观察下图(左为原图)特征点,他们大都集中相邻色块的分界线,所以撞色很重要,但如果不是这种纯色块的图案,那么线条较粗,拐点也比较多的图片效果也会很好(比如粗体汉字就可以极大提升识别点数量)。


三、经验之谈
识别图除了影响识别效率,还影响着Imagetarget下物体的显示效果,比如图片识别特征点3颗星或以上,但显示的物体还是会不停的小幅度抖动。出现这种情况的原因可能是:
1、 特征点分布不均匀,可能左下角大量特征点挤在一起,右上角的特征点确零散的分布。
2、 显示的物体离识别图的中心太远,如果物体能正好在识别图特征点分布较多教均匀的位置,且贴近识别图,那么可以很好的解决抖动。
开发增强现实(AR)教程——识别图的那些坑的更多相关文章
- AI应用开发实战 - 手写识别应用入门
AI应用开发实战 - 手写识别应用入门 手写体识别的应用已经非常流行了,如输入法,图片中的文字识别等.但对于大多数开发人员来说,如何实现这样的一个应用,还是会感觉无从下手.本文从简单的MNIST训练出 ...
- EasyAR 开发实例---AR礼物(简单demo)
一个节日礼物效果 --显示模型 在本次的案例中,我使用的是unity5.6.3版本,EasyAR 为2.0.(用1.0的版本,在渲染那块有问题) [导入SDK]到EasyAR官网(http://www ...
- C#开发Unity游戏教程之游戏对象的行为逻辑方法
C#开发Unity游戏教程之游戏对象的行为逻辑方法 游戏对象的行为逻辑——方法 方法(method),读者在第1章新建脚本时就见过了,而且在第2章对脚本做整体上的介绍时也介绍过,那么上一章呢,尽管主要 ...
- 游戏控制杆OUYA游戏开发快速入门教程
游戏控制杆OUYA游戏开发快速入门教程 1.2.2 游戏控制杆 游戏控制杆各个角度的视图,如图1-4所示,它的硬件规格是本文选自OUYA游戏开发快速入门教程大学霸: 图1-4 游戏控制杆各个角度的 ...
- win7 安装SQL Server 2005 开发版 图文教程
转自win7 安装SQL Server 2005 开发版 图文教程 ----------------------------写在安装前------------------------------ 一. ...
- C#开发Unity游戏教程循环遍历做出判断及Unity游戏示例
C#开发Unity游戏教程循环遍历做出判断及Unity游戏示例 Unity中循环遍历每个数据,并做出判断 很多时候,游戏在玩家做出判断以后,游戏程序会遍历玩家身上大量的所需数据,然后做出判断,即首先判 ...
- C#开发Unity游戏教程之判断语句
C#开发Unity游戏教程之判断语句 游戏执行路径的选择——判断 玩家在游戏时,无时无刻不在通过判断做出选择.例如,正是因为玩家做出的选择不同,才导致游戏朝着不同的剧情发展,因此一个玩家可以对一个游戏 ...
- C#开发Unity游戏教程之使用脚本变量
C#开发Unity游戏教程之使用脚本变量 使用脚本变量 本章前面说了那么多关于变量的知识,那么在脚本中要如何编写关于变量的代码,有规章可循吗?答案是有的.本节会依次讲解变量的声明.初始化.赋值和运算. ...
- C#开发Unity游戏教程之游戏对象的属性变量
C#开发Unity游戏教程之游戏对象的属性变量 Unity游戏对象的属性——变量 通过对上一章的学习,读者应该了解到了,游戏对象上的属性与脚本中的变量,建立联系的方式就是将脚本赋予游戏对象.上一章只是 ...
随机推荐
- Swoole 内存操作(Table)
使用: //实例化表格,参数 int : 最大行数 $table = new swoole_table(1024); //设置表格字段 参数 (字段名:string , 字段类型:int.float. ...
- VS2015 编译前/后拷贝文件到指定目录
项目属性 —> Build Events —>Pre-build / Post-build event command line 中: Copy 源路径 目标路径(将路径用 " ...
- elasticsearch-java
elastissearch的JAVA客户端 官网 java api文档 https://www.elastic.co/guide/en/elasticsearch/client/java-api/ ...
- python 读取文件
python 一次读取多行 with open(filename, "r") as f: lines = f.readlines(LINE_BATCH) while lines: ...
- CSS GRID ESSENTIALS
CSS GRID ESSENTIALS Review At this point, we've covered a great deal of different ways to manipulate ...
- 【385】itertools 的 product 和 chain 和 accumulate
参考:itertools模块 product 相当于返回两个集合中数据的所有组合可能 Examples from Eric Martin from itertools import product p ...
- React之使用Context跨组件树传递数据
--------------------------------- 讲解一 原文:https://blog.csdn.net/xuxiaoping1989/article/details/78480 ...
- jQuery图片延迟加载插件:jquery.lazyload
----------------------------------------------------------------------------------------------- clas ...
- 译:SQL Server的Missing index DMV的 bug可能会使你失去理智---慎重看待缺失索引DMV中的信息
注: 本文译自https://www.sqlskills.com/blogs/paul/missing-index-dmvs-bug-that-could-cost-your-sanity/ 原文作者 ...
- splunk + docker-compose 实现自定义 index
splunk是一款非常优秀的运维管理平台.Splunk 是机器数据的引擎.使用 Splunk 可收集.索引和利用所有应用程序.服务器和设备生成的快速移动型计算机数据 . 使用 Splunking 处理 ...