本帖最后由 kan0r 于 2019-11-14 21:37 编辑
更新一下,昨天做完出来有点太激动,不太完善就发出来了哈哈。今天又更新了一下流程,希望大家都能够先实现这个手势识别的功能,再一起完善一下。
新的附件在下面,流程图片如上,打勾的地方需要根据自己实际情况更改。打叉的地方可以删掉,需要另外安装node-red的节点node-red-contrib-image-tools,只是方便测试而已。
再说一下几点注意的地方:
1、为了减少调用api的次数,需要在node-red添加持久变量,导入flow前,先跟着大佬的帖子设置一下自己的node-red。
https://bbs.hassbian.com/forum.php?mod=viewthread&tid=5842
2、需要安装motionEye,再根据自己摄像头的位置配置一下检测的参数。
3、摄像头摆放的位置比较重要,应该在伸手能清楚看到手指的地方。尝试了一下在太远的地方不太能识别出来。所以我现在放在了沙发的后面。
4、补充百度的说明:主要适用于3米以内的自拍、他人拍摄,1米内识别效果最佳,拍摄距离太远时,手部目标太小,无法准确定位和识别。图片中有多个手势时,也能识别,但该情况下,单个手势的目标可能较小,且角度可能不好(例如存在倾斜、遮挡等),识别效果可能受影响。建议针对单个手势进行识别,效果最佳。 5、https://ai.baidu.com/docs#/Body-API/02f6ce24 ,这个是手势识别的技术文档,有兴趣的朋友可以看看,上面有可以识别的24种手势的介绍,和对应的参数。
6、目前我在用树莓派+自带的摄像头,安装motioneyeOS,然后再接入到node-red,感觉用起来还是比较流畅的,能很好的识别到手势,而且树莓派自带的摄像头没有太广角,只要把手放到摄像头拍到的位置就ok。等有空我拍个视频展示一下。7、想到再补充。。。
------------------------------------
一、之前用传感器做了一个手势感应的开关,放在床头用效果杠杠的,然后想如果在客厅也能用手势控制的话,就会显得有点帅了。于是就有了这个构想。主要是分享一个思路,希望有兴趣的大家可以来完善这个flow。我自己的运行环境是黑裙+docker。
二、原理就是,利用motionEye接入摄像头,并在HA接入一个motion-binarysensor,当检测到画面有帧变化的时候,开始采集图片,直到识别到手势后结束流程。
三、说一下需要用到的工具和设备:
1、摄像头,这个必须的,我试过树莓派自带的摄像头,和目前在用的萤石C6CN
2、需要有HA、NODE-RED、MQTT、motionEye
四、具体的每一个工具的配置,暂时先不详细说,如果有兴趣多的人可以再写详细的教程。整个flow,我尝试了很多种采集图片的逻辑,现在用的是试过最流畅,延迟最低的一种。(尝试过摄像头接入HA的ffmpeg和binarysensor-motion-ffmpeg;也试过sonoff+人体传感器+HA接入的ffmpeg;也试过通过萤石api获取实时图片)
五、node-red的flow先分享到附件,大家可以根据自己的实际情况改来试试。有什么问题欢迎交流。
|