[AR]ImageTarget(图像识别)

简介:

2000元阿里云代金券免费领取,2核4G云服务器仅664元/3年,新老用户都有优惠,立即抢购>>>


阿里云采购季(云主机223元/3年)活动入口:请点击进入>>>,


阿里云学生服务器(9.5元/月)购买入口:请点击进入>>>,



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

image

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)平面】,如下所示:

image

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

image

image

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

image

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

image

 

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显示的是张灰白图。

image

识别任意张图代码实现

需求说明

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

思路分析

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

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

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

Load Database

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

image

image

测试代码

通过上面的实践,我们知道既然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

pos

本文转自赵青青博客园博客,原文链接:http://www.cnblogs.com/zhaoqingqing/p/6123860.html ,如需转载请自行联系原作者


相关实践学习
基于函数计算实现AI推理
本场景基于函数计算建立一个TensorFlow Serverless AI推理平台。
相关文章
|
1天前
|
机器学习/深度学习 人工智能 计算机视觉
深度学习在图像识别中的应用与挑战
【5月更文挑战第7天】 随着人工智能技术的飞速发展,深度学习在图像识别领域的应用已经取得了显著的成果。本文将探讨深度学习在图像识别中的关键技术和发展趋势,以及面临的挑战和未来的发展方向。
|
7天前
|
机器学习/深度学习 人工智能 监控
深度学习在图像识别中的应用及挑战
【4月更文挑战第30天】 随着人工智能技术的飞速发展,深度学习作为其核心分支之一,在图像识别领域取得了显著的成果。本文将探讨深度学习技术在图像识别中的应用,分析其优势与面临的挑战,并提出未来可能的发展趋势。通过对比传统机器学习方法,本文阐述了深度学习如何通过构建深层神经网络来提高图像处理的准确性和效率。同时,文章还讨论了数据隐私、模型泛化能力以及计算资源等关键问题,并展望了深度学习技术在图像识别领域的未来方向。
|
12天前
|
机器学习/深度学习 人工智能
深度学习在图像识别中的应用和挑战
【4月更文挑战第26天】 随着人工智能的不断发展,深度学习技术在图像识别领域取得了显著的成果。本文将探讨深度学习在图像识别中的应用,以及在实际应用中所面临的挑战。我们将介绍深度学习的基本概念,以及如何利用这些技术解决图像识别问题。此外,我们还将讨论在实际应用中可能遇到的一些问题,如数据不平衡、过拟合等,并提出相应的解决方案。
|
12天前
|
机器学习/深度学习 人工智能 算法
探索深度学习在图像识别中的应用与挑战
【4月更文挑战第25天】随着人工智能技术的迅猛发展,深度学习已成为推动图像识别领域进步的关键力量。本文将深入探讨深度学习技术在图像识别任务中的应用,分析其优势和面临的主要挑战,并展望未来发展趋势。通过对比传统机器学习方法,阐述深度学习如何通过构建复杂的网络结构实现高准确率的图像分类、检测与分割。同时,讨论数据量需求大、模型泛化能力、计算资源消耗等关键问题,并提出可能的解决方案。
|
29天前
|
机器学习/深度学习 监控 算法
深度学习在图像识别中的应用及其挑战
【4月更文挑战第8天】 随着人工智能技术的飞速发展,深度学习已经成为了计算机视觉领域的核心动力,特别是在图像识别任务中展现出了卓越的性能。本文章将深入探讨深度学习模型在图像识别中的应用,包括卷积神经网络(CNN)的基础架构、训练策略以及优化方法。同时,我们也将审视当前技术面临的主要挑战,诸如数据偏差问题、对抗性攻击的防御、以及模型泛化能力的提升等。本文旨在为读者提供一个关于深度学习在图像识别领域的全面视角,并对未来发展趋势进行展望。
|
1月前
|
机器学习/深度学习 人工智能 监控
探索深度学习在图像识别中的应用及挑战
【4月更文挑战第7天】 随着人工智能技术的飞速发展,深度学习已成为推动计算机视觉领域进步的核心动力。本文旨在深入剖析深度学习技术在图像识别任务中的应用及其所面临的诸多挑战。首先,我们将回顾深度学习的基本原理和关键技术,特别是卷积神经网络(CNN)在图像处理中的作用。其次,文章将探讨当前深度学习模型在图像识别领域的创新应用,包括面部识别、物体检测、场景理解等方面。最后,我们将分析深度学习在图像识别上遇到的挑战,如数据集偏差、模型泛化能力、对抗性攻击等,并对未来可能的解决方案进行展望。本文不仅为研究者提供了深度学习在图像识别方面的研究进展,也为相关领域的实践者指出了潜在的问题与发展方向。
|
12月前
|
机器学习/深度学习 存储 编解码
高效神经网络架构的正确打开方式! | EMO:结合 CNN 和 Transformer
高效神经网络架构的正确打开方式! | EMO:结合 CNN 和 Transformer
899 0
|
定位技术 API 网络架构
地图图层接入:从mapbox转向cesium
由于地图坐标系的不统一,地图图商提供的图层服务也各有特色,在图层对接的开发过程中常会遇到许多坑,从二维图层到三维图层,地图引擎mapbox再到cesium,本文将分享笔者在近期地图图层接入过程中总结的一些经验。
3188 10
|
10月前
|
人工智能 API 开发者
阿里云视觉智能开放平台官方征稿来啦!
参加阿里云视觉智能开放平台征稿,赢取定制好礼
11027 6
|
9月前
|
机器学习/深度学习 编解码 人工智能
【开放视觉】AI人像特效之「更快、更高、更强的互娱换脸解决方案」
换脸技术旨在将图像或者视频中的人脸替换成目标人脸,使生成的图像与目标人脸相似,且具有图像或视频中人脸的外貌特征。作为近几年计算机视觉和图形学领域较热门的应用之一,已被广泛用于互动娱乐,肖像替换,广告宣发,电影后期等场景中。本工作面向互动娱乐场景,扎根于学术前沿,聚焦于行业落地,提出了一个脸型自适应的换脸算法(SaSwap),并结合落地过程中的若干痛点难点逐一攻关,最终以高效的输出方式组成了一套完整的互娱换脸解决方案。
1574 5
【开放视觉】AI人像特效之「更快、更高、更强的互娱换脸解决方案」
http://www.vxiaotou.com