开发增强现实(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游戏对象的属性——变量 通过对上一章的学习,读者应该了解到了,游戏对象上的属性与脚本中的变量,建立联系的方式就是将脚本赋予游戏对象.上一章只是 ...
随机推荐
- 【Source Insight 】之marco学习笔记1
我们学习编程语言都是从Hello World!,现在我们学习marco也不例外 打开C:\Users\%USERPROFILE%\Documents\Source Insight 4.0\Projec ...
- 塔式Server 服务器ESXI6.5安装
参考文献: https://www.cnblogs.com/yufusec/p/9181422.html 第一步: esxi6.5.ios文件的下载 第二步: 通过UltraISO软件 制作启动盘或光 ...
- Spring BeanUtils简单使用
引入包 <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-be ...
- Directshow 采集与FFDshow 冲突
在使用Directshow 进行视频采集的时候,发现与本地安装的一个ffdshow有冲突. 见下图: 经过测试发现dshow 在设置采集媒体类型的时候,如果设置RGB32就会崩溃,如果设置RGB24就 ...
- swarm on ubuntu
转自:https://www.cnblogs.com/jsonhc/p/7862518.html 由于在centos7系统上使用docker-machine安装的swarm实现服务的负载均衡一直失败, ...
- css给文字加下划线
语法:linear-gradient(direction, color-stop 1, color-stop 2,……) 简单用法:background-image: linear-gradient( ...
- 去除文件BOM头工具
<?php /** * 用法:复制以下代码至新建的php文件中,将该php文件放置项目目录,运行即可.代码来源于网络. * chenwei 注. */ header('content-Type: ...
- mysql explain预估剖析
http://www.cnblogs.com/LBSer/p/3333881.html 引子: 使用MySQL建立了一张表country,总共有才3121行记录. 但是使用explain select ...
- cpu-io.sh
CPU-IO.SH #!/bin/bash #Edit by laozuo.org cname=$(cat /proc/cpuinfo|grep name|head -1|awk '{ $1=$2=$ ...
- hdu1002-A + B Problem II-(java大数)
A + B Problem II Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...