215
云计算
负载均衡
产品简介
产品价格
快速入门
用户指南
实践操作
常见问题
购买指南
云服务器
产品简介
计费规则
购买指导
控制台使用指南
常见问题
云数据库
产品简介
计费规则
购买指导
快速入门
连接实例
控制台使用指南
对象存储
产品简介
控制台使用指南
程序员百科
Python
百度智能云AR开放平台使用指南-AR场景开发专题2D图像跟踪

产品推荐:

1、安全稳定的云服务器租用,2核/2G/5M仅37元,点击抢购>>>

2、高防物理服务器20核/16G/50M/200G防御仅350元,点击抢购>>>

3、百度智能建站(五合一网站)仅880元/年,点击抢购>>> 模板建站(PC+手机站)仅480元/年,点击抢购>>>



点击这里点击这里申请百度智能云特邀VIP帐号,立即体验AR开放平台>>>

 百度智能云AR开放平台使用指南-AR场景开发专题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


这条帮助是否解决了您的问题? 已解决 未解决

提交成功!非常感谢您的反馈,我们会继续努力做到更好! 很抱歉未能解决您的疑问。我们已收到您的反馈意见,同时会及时作出反馈处理!