[AR]ImageTarget(图像识别)

ImageTarget

前言

ImageTarget 顾名思义,就是图像识别,本文记录下作者最近学习vuforia中的imageTarget笔记与心得。

vuforia guide:https://library.vuforia.com/articles/Training/Image-Target-Guide

vuforia sample  - 选择 Core Features下载,导入ImageTarget.unitypackagehttps://developer.vuforia.com/downloads/samples

vuforia 基础知识:高通Vuforia Getting Started

开发环境

Vuforia 6.0.112

Unity 5.3.6f1 x64  (Android平台)

Windows 7 x64

名词说明

下面列举下本文中所列出的几个名词,可能每个人对这些英文的理解不一样,这些解释仅仅代表个人观点。

Database(数据集、图集):大体都是指多张图片组合在一起的那个东西

ImageTarget(识别图):具体的某张识别图像

自带Demo简单分析

1、从Demo中可以看出,当有多个ImageTarget时,每个ImageTarget之间是有间距的,可以简单理解为每个ImageTarget的坐标值不一样【(x,z)平面】,如下所示:

2、Demo中把需要识别的图,全部以ImageTarget的形式,放置在场景中

3、Word Center Mode默认的模式选择的是 FirstTarget

4、如果需要同时识别多个ImageTarget,需要设置最大识别数量

World Center Mode

FirstTarget

相机在运动,第一个Found的ImageTarget坐标不动,其它ImageTarget会轻微地运动

Camera

ImageTarget在运动,相机不动

自己搭建的简单步骤

1、上传识别图到管理后台(单张图像不超过2mb大小,如果是灰度图,建议使用jpg格式),管理后台会智能地标注出图像的识别点(如何让图像更具可识别性?有针对图像的设计指南)

2、下载识别图package,导入到Unity中,package中包括数据集(xxx.data),xml(xxx.xml),识别图(xxx_scale.jpg,xxx_scale.png)

3、根据Demo的示例创建一个新场景,里面有ARCamera,ImageTarget,在ImageTarget的属性面板选择database识别图(ImageTarget)

4、运行程序,当摄像头识别到步骤3的选定的识别图之后,就会触发OnFound事件,而当识别图移开或者被遮挡,会触发OnLost事件

具体的业务逻辑,在OnFound和OnLost中进行处理

void OnFound(string trackableName){
//TODO 识别成功的逻辑处理,参数trackableName就是xml中的name
}

void OnLost(string trackableName){
//TODO 丢失的逻辑处理,参数trackableName就是xml中的name
}

xml 分析

下载的package中的xml内容如下

<?xml version="1.0" encoding="UTF-8"?>
<QCARConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="qcar_config.xsd">
  <Tracking>
    <ImageTarget name="798_01" size="1.000000 1.434034" />
    <ImageTarget name="799_01" size="1.000000 1.434034" />
  </Tracking>
</QCARConfig>

分析:这里面的内容就是我们上传的识别图的图片名,长宽的比例。

默认这份xml是放在 StreamAssets\database\database.xml,当然如果不需要那么多的识别图,而又不想在管理中删除多余的识别图,那么有个简单的方法,删除xml中的几行数据,就会删除相应的识别图了。

查看图像识别点

登录vuforia的管理后台 https://developer.vuforia.com/targetmanager/singleDeviceTarget/deviceSingleImageTargetDetails

选择TargetManager - 选择具体的 Database - 具体的 Image  - Show Feature 可以看到识别图的识图点

Tips

同一张识别图,彩图和灰白图的识别点是一样的,如下所示我上传的是张彩色的图,但Show Features显示的是张灰白图。

识别任意张图代码实现

需求说明

假设共有20张图像,当用户扫描其中任意一张图,都可以成功被识别,再比如图集中有500张图像,当扫描任意张图像时都可以被成功识别

思路分析

通过上面的操作步骤,我们知道只有在场景中存在的ImageTarget,在摄像头扫描到时,才可以触发识别成功事件

那么我们需要做的就是:把database中的识别图全部实例成ImageTarget,可能你会想,那就把ImageTarget的prefab实例化20或500个,每个实例的ImageTarget不同呗。

思想是这样的,但还有更简捷的方法。

Load Database

在ARCamera的Database Load Behaviour中勾选了需要的 database之后,运行就会把database中所有的imagetarget都生成出来,并自动已选择好了不同的ImageTarget

测试代码

通过上面的实践,我们知道既然Vuforia会自动把所有的ImageTarget都生成出来,那么我们就可以更加方便了

下面这段代码可以获取所有的识别对象

IEnumerable<TrackableBehaviour> trackableBehaviours = TrackerManager.Instance.GetStateManager().GetTrackableBehaviours();

Tips

1、经测试多图识别中,在丢失之后最好重设下ImageTarget的位置到初始值,否则可能出现奇怪现象。

2、可以获取ImagetTargetBehaviour的Size,设置每个ImageTarget的位置

测试代码:https://github.com/zhaoqingqing/blog_samplecode/tree/master/ar-vr-mr/vuforia/imagetarget

时间: 2024-10-07 04:06:33

[AR]ImageTarget(图像识别)的相关文章

中国VR公司的详尽名单

中国VR公司的详尽名单 <VR圈深度投资报告一:2014年以来所有VR/AR融资事件> 特征一.投资机构观望居多 尽管VR在媒体和二级市场炒得很热,但大多风险投资机构却慎于出手,以观望居多.比较活跃的投资机构有IDG.和君资本.九合创投和纪源资本等.财务投资人主要以天使轮和pre-a轮投资居多,真正出手投A.B轮的较少.原因在于 : 1.不少风险投资机构表示看不懂VR项目.不少投资机构虽已进行VR投资,但主要为跟投,其本身对于VR项目并不具备识别能力.还有部分投资机构认为VR产业尚不具备足够的

AR在未来商店中的应用

随着电商的快速发展,实体店以及零售店面临经营惨淡的状况,而且很多实体店都已经关门了,比如北京中关村的电脑城等.首先是电子产品,接下来可能会是其他一些实体产品.所以一些品牌的实体店经营者必须要想办法留住顾客,这就需要给顾客提供更好更新颖的购物体验,未来,借助AR是必然趋势.实体店不可能消亡,因为在实体店购物有网购不能体验的感觉,但是网购方便快捷,因此这就需要经营和管理者思考,怎么样在这两者之间权衡,当然,实体店需要保留.如果使用得当,AR技术绝对有机会挽回实体店流失的客户. 有三种典型的应用场景在

紧跟QQ 为什么支付宝不避嫌也推AR红包?

如果要细数今年AR(增强现实技术)领域新突破的话,Pokémon Go火爆全球算是一例.在美国市场,Pokémon Go上线仅5小时就登上了手机游戏排行榜首,一周之后日均活跃用户就超过了Twitter,用户停留时间也超过了Facebook.在创造用户奇迹的同时,它不仅在广度上拓展了AR技术的应用,也深度引爆了增强现实技术在国内的热度,大有盖过VR(虚拟现实技术)之势. 随着农历春节临近,国内互联网巨头陆续加快了AR战略角逐的脚步.近日,在腾讯QQ宣布春节将采用AR+LBS的方式玩红包之后,支付宝

GJM : Unity3D 高通Vuforia SDK AR 开发

一.AR概念: 增强现实(Augmented Reality,简称AR),是在虚拟现实的基础上发展起来的新技术,也被称之为混合现实.是通过计算机系统提供的信息增加用户对现实世界感知的技术,将虚拟的信息应用到真实世界,并将计算机生成的虚拟物体.场景或系统提示信息叠加到真实场景中,从而实现对现实的增强. 二.工具: 在这里我们主要是用高通的Vuforia SDK来演示如何在Unity下制作一个简单的AR的demo,Vuforia SDK是一套很完整的可以直接调用的AR API,而假如想深入了解SDK

如何开发AR增强现实应用与产品

2016年被称为VR元年,可见火爆程度,但是我要告诉你,其实还有一种技术AR(增强现实)技术,才是下一个真正的"风口"技术.可以预见的是,未来AR应用爆发之时,必将超越VR产业规模,开拓千亿级市场空间! AR技术需要硬件承载,最新的媒介以微软的HoloLens头显为代表,传统的则一般与手机或者Ipad结合.在目前市场(2016年)不是很成熟的情况下,让消费者为了体验AR而花钱买个新的硬件,消费者不一定买账. AR技术不仅在与VR技术相类似的应用领域,诸如尖端武器.飞行器的研制与开发.数

Pok&#233;mon GO国内玩不了?腾讯AR专家教你自己做!

作者:Zero,腾讯测试开发工程师 本文由腾讯WeTest授权发布,如需转载请联系腾讯WeTest获得授权. WeTest导读 Pokémon Go一出,新鲜的玩法.经典的IP效应让这款使用了Unity以及AR技术的手游火遍了"大洋"南北.可惜的是这款新鲜的游戏还没有惠及中国市场的玩家们.腾讯内部的AR专家秉持着"一言不合就自己开发"的原则,自发对AR游戏进行了预研,本文将通过在Unity中对OpenCV及Vuforia库的使用,简单介绍制作AR游戏的一系列流程.

AR拾取纹理功能实现

AR拾取纹理功能实现 最近大家比较关注ColARMix和涂乐等这些应用,作为开发人员吸引大家的就是运行时拾取识别目标纹理,在以线框为识别目标的图片上,用户可以图画颜色,识别之后把涂有色彩的图片作为纹理时时赋给增强对象,让用户图画的颜色体现在增强对象上,看到自己在平面上涂的颜色反应到三维增强对象上.很感谢想到这些创意的牛人们! AR进入中国视线自己就开始关注,不知不觉几年过去了,可能是移动设备硬件的限制,之前两三年的时间一直没有得到很好的发展,随着移动设备硬件的强大支持,越来越多的AR应用走进人们

如何使用腾讯云开发一款 AR 应用介绍

版权声明:本文由张亚舒原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/117 来源:腾云阁 https://www.qcloud.com/community 我们是一个深圳的创业团队,最近做了一款图书的 AR 应用,利用了腾讯云的相关平台和 Native 功能.总体来说做一款手机或 pad 运行的 AR 应用主要有以下几个关键技术: 图像识别(利用摄像头采集的实时图像信息,一桢一桢传给识别模块去处理,识别出来后返回图片标

AR增强现实开发介绍(续)

---开发基础篇 开发增强现实技术,无论是商业级应用,还是面向幼儿教育的游戏产品,都需要从了解.获取.下载增强现实插件开始.目前全世界使用量最大公认最好的增强现实插件是高通的Vuforia.我们先从开发一个最简单的AR Hello World 开始. 开发一个AR Hello World 需要经历以下步骤: 1:登陆高通增强现实网站,注册账号且获取授权信息. 2:制作目标图 A) 二维识别图制作 B) 三维识别物体制作 3:SDK下载 4: Unity整合高通SDK,进行开发 5:发布移动端,测