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

产品推荐:

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

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

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



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

百度智能云AR开放平台使用指南-AR场景开发手势识别

手势识别

在DuMix AR中可通过扫描识别特定的手势识别AR特效内容,目前支持的可识别手势为单手手掌(五指伸展)、点赞(拇指向上)、OK(食指和拇指扣环)、比心(食指和拇指交叉)、单手比1(仅食指伸出)等五种手势,使用场景限空间识别IMU场景,不能和slam场景以及2D跟踪场景结合使用。

Sample case :代码下载

SDK 最低支持版本:2.2

百度App 最低支持版本:10.3

手势识别模型

手势识别的模型是基于paddlepaddle模型库经由AR算法训练封装而成,开发者在使用手势识别能力前,需要在ar场景包中引入该paddle模型文件gesture.paddle,固定路径为 ar/models/paddle/gesture.paddle :

效果demo中的paddle文件包含了目前支持的五种手势的模型,可直接复用。
导入模型后,需在target.json文件中配置相关参数。

"paddle_model":{
    "path":"models/paddle/gesture.paddle"
}

path为模型文件所在路径,仅手势paddle可用。

注意:

  • paddle文件在ar场景包中占用空间较大,请注意资源的分配,不同的算法模型包含的可识别手势不同。
  • 如未使用paddle能力,不要在json中配置paddle模型,因为SDK会根据paddle配置做一些数据准备工作,带来不必要的性能损耗。

手势识别实现

LUA 代码参考:

app.on_loading_finish = function()
   --API1:开启手势识别能力 
   PaddleGesture:send_control_msg(1)
end

--API2:手势识别回调接口
PaddleGesture.on_gesture_detected = function(mapData)
    local count = mapData['gesture_count']
    resultMap = mapData['gesture_result1']
    result = resultMap['type']
    score = resultMap['score']
    x1 = resultMap['x1']
     y1 = resultMap['y1']
     x2 = resultMap['x2']
     y2 = resultMap['y2']
    if (score < 0.8) then
        --得分小于0.8的手势弃用
        return
   end 
  if (result == 2) then
      --当识别到手掌后显示模型
      scene.pod:set_visible(true)
  end
end

注意:

  • 手势识别的API详解见:Lua API。
  • MapData里为手势的检测结果,包含gesture_count和gesture_result两个字段,gesture_result也为mapdata类型,包含7个字段,其中type字段表示手势类型,是5个固定值,分别对应五种手势。在场景交互脚本里可根据需要取出相应的手势类型,当判断相应手势类型识别成功后执行对应的function()实现逻辑。如果Case里算法模型有更新,type的对应关系以及值是会发生变化和扩充的。
  • gesture_result中的score字段表示手势得分,取出该字段后可在场景交互脚本中控制手势的有效性。
  • x1、y1、x2、y2为相机识别到的手势轮廓(矩形区域对角点坐标)在屏幕上的占比,在未使用接口PaddleGesture:send_control_msg(0)关闭手势识别回调前,会根据手势的移动不断更新这些数据,开发者可根据需要取出这些数据做动态处理。
  • 如果未使用接口关闭手势识别,算法会不断检测手势并返回数据,会对手机的功耗产生影响。
  • 因为安卓手机配置不同,各手机识别一次手势并回调数据的时间间隔也不同,大概范围在几十毫秒到300毫秒以上不等。


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

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