开放能力
开发平台
行业应用
生态合作
开发与教学
资讯 社区 控制台
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术
AR与VR
数据智能
场景方案
部署方案
行业应用
智能教育
智能医疗
智能零售
智能工业
企业服务
智能政务
信息服务
智能园区

2D图像跟踪

2D图像跟踪

2D图像跟踪指通过扫描识别图调起AR,并使AR场景跟踪在识别图上的功能。
若您不需要跟踪功能,也可以关闭跟踪,只通过2D图像识别调起AR。

2D图像识别分为两种类型—本地图像检索和云端图像检索:
本地图像检索是指在客户端进行图像的特征计算和检索匹配,匹配成功后调起相应的AR内容。
云端图像检索是指将图像通过网络上传到云端,在云端进行计算和检索,将检索结果返回到客户端,如果匹配结果成功,客户端可调起相应的AR内容;否则,则继续进行识别。

识别图要求

识别图是用于识别AR内容,并实现跟踪效果的图片,为了达到完美的识别效果,需要对识别图进行规范化设计,请设计师严格按照以下要求进行设计,并注意规避相关禁忌。

一、格式规范

为了保证识别跟踪效果,我们对图片的大小、格式等进行了规范性限制。

1、 识别图应为不小于480x480像素的图片。

2、 识别图格式应为JPG或JPEG。

3、 所上传的识别图应小于3M。

二、图形规范

识别图必须是2D平面图形,不支持3D物体等实体物作为识别物。

1

三、纹理规范

1、特征丰富原则
识别图中主要的影响因素是特征点,它多为色差较大的图案边缘的拐点(即图像灰度值发生剧烈变化后在边缘形成的曲率较大的点),可通过不同形态、不同形状的设计元素构造丰富的特征点。下面是特征点示意图。

2

2、纹理相似度原则
1)图片纹理相似度高会对识图识别过程产生影响,建议通过组合、叠加、手绘等形式减少相似度高的纹理。

3


2)如识别图中需加入文字,建议对文字进行不同风格的艺术设计,尽量减少标准字体下的相似特征点。

4


3、纹理分布均匀原则

识别图纹理需分布均匀,避免元素过于集中。

5


4、 纹理对比度原则

识别图的相邻色块间的灰度值差别应尽量大。

6

四、材质规范

1、请上传高分辨率、高清晰度、高像素的识别图。

2、不建议反光、过暗、有噪点、强曝光的图片作为识别图。

7

8

总结

请设计师严格按照上述识别图规范进行设计,本规范如有未尽系统说明之处或相关疑问,请开发者或设计师随时与百度AR团队沟通联系,感谢您的耐心阅读。

识别图跟踪模型文件

识别图跟踪模型文件是指位于AR场景包中的Models文件夹,它是通过在平台上选择2D跟踪模板上传识别图以后动态生成的文件,其目录结构如下图所示。

训练生成models目录结构图

							训练生成models目录结构图

主场景包ar目录结构图

							主场景包ar目录结构图

开发者需注意 :

如果上传主场景包的同时上传了识别图,需要查看新生成的models文件夹中的 roi 配置参数是否与 target.json - targets 下对应接口处所填写的是否一致,不一致需要在本地修改并重新上传主场景包。

如何配置跟踪配置文件(Targets.json)

必须严格按照roi.txt对应参数进行配置,可确保模型与识别图之间的位置关系。

未按照以下规范配置,会导致识别模型位置偏移,不同版本效果不能一致。

2

3

								文件参数对照表
						

4

					target.json中targets属性部分参数截图
			

加载场景回调

一般只要在scene文件中设置显示,项目有详细的交互流程时,通过lua调用,控制场景内节点间的隐藏显示,实现项目需求。

  • 加载场景接口:on_loading _finish
-- ~~~~默认加载
app.on_loading_finish = function()
    ARLOG("play music..")
    anim = scene.simplePod:pod_anim()
                            :speed(1)
                            :anim_repeat(true)
                            :start()

    audio = scene.simplePod:audio()
                            :path('/res/media/bg.mp3')
                            :repeat_count(-1)
                            :delay(0)
                            :start()

    ARLOG("play audio id:" .. audio)

end

跟丢回调

跟丢回调是指在调起AR后,通过识别图激活已配置好的AR场景,然后将移动设备移开识别图的操作。

  • 跟丢后回调接口:on_target_lost
-- 跟丢识别图回调事件

app.on_target_lost = function()
    ARLOG("tracking loss..")
    audio:pause()
end

跟丢后显示雷达扫描

跟丢后显示雷达扫描为百度AR扫描识别图激活场景跟丢后的默认配置,无需任何配置,不需要调用on_target_lost 接口,即可实现。

跟丢后显示半透明识别图

1、需要提前将识别图放于 ar 主场景包目录下,默认识别图名为 image_target.png。

2、在target.json 文件中 UI 节点下配置 "image_target_path":"image_target.png"即可识别跟丢后显示半透明识别图事件,无需调用跟丢回调事件。

targets

image_target.png在主场景包目录下截图

-- 跟丢识别图默认显示半透明识别图

   "UI":{
      "image_target_path":"image_target.png"
	}

跟丢后设置默认位置

设置默认位置需要调用跟丢后完成回调,并在其中写入相机的朝向接口代码,即可实现跟丢识别图后依旧显示场景。

-- 跟丢识别图后显示默认位置
app.on_target_lost = function()
	ARLOG('on target lost')

	app:set_camera_look_at("0, 0, 1000","0, 0, 0", "0.0, 1.0, 0.0")
end

跟上回调

跟上回调是建立在已经发生过一次“跟丢”后的情况下。

  • 跟丢回调接口:on_target_found
-- 跟上识别图回调事件

app.on_target_found = function()
    ARLOG("tracking found..")
    scene.simplePod:set_rotation_by_xyz(0.0, 0.0, 0.0)
    ARLOG(string.format("firstFound :%s", tostring(firstFound)))
    if (firstFound == false) then
        ARLOG("resumeAudio found..")
        audio:resume()
    end
    firstFound = false
end
上一篇
简介
下一篇
IMU Tracking AR