『瀚思彼岸』» 智能家居技术论坛

标题: 基于摄像头的中控面板人来亮屏人走灭屏方案 [打印本页]

作者: hzw1199    时间: 2023-11-7 15:01
标题: 基于摄像头的中控面板人来亮屏人走灭屏方案
本帖最后由 hzw1199 于 2023-11-8 17:33 编辑

硬件
这两天花一百多,捡垃圾淘了一块带刷脸支付的安卓13寸单屏机,因为带摄像头,又不带电池,准备拿来当智能家居中控屏。配置还行,rk3399,4G RAM。

                               
登录/注册后可看大图
屏幕上方有四个摄像头样子的传感器,本身估计是带传感器能识别人靠近的,但是刷机之后,驱动不了,唯一能驱动的是那个1080p的主摄像头。所以很自然的想到使用这一枚摄像头来做人来亮屏。

需求
作为智能家居中控屏,人来亮屏,人走息屏是必备功能。同时在捡垃圾群里看到有人收到的同款屏幕有严重烧屏痕迹,所以不做息屏的话,也担心烧屏。
具体需求是人出现在摄像头画面中,并不要马上亮屏,而是需要人足够靠近屏幕时,再亮屏。等人离开屏幕足够远后再息屏。

思路
安卓屏上的摄像头推RTSP流,工控机中的Frigate拉流,并对流做Person识别。在HomeAssistant中添加Frigate插件,并对该摄像头创建自动化,在person count从0变为任意值时,触发发送MQTT的topic。安卓屏上再安装MQTT Client APP,订阅该topic。安卓屏上再安装Tasker,与MQTT Client联动,在收到该topic时,触发点亮屏幕的动作。人走息屏同理,只是把触发条件,改为person count从任意值变为0,把Tasker中的触发动作变为熄灭屏幕。

                               
登录/注册后可看大图

注意点
实操环节

IP Webcam

                               
登录/注册后可看大图
分辨率取最低,降低Frigate的物体识别功耗。由于我的摄像头方向不对,所以同时设置了竖屏上下颠倒。

                               
登录/注册后可看大图
将音频禁用,接着开启服务器,就可以看到摄像头画面了。
接着电脑打开http://安卓的ip:8080,可以进入web控制台,能看到RTSP地址:

                               
登录/注册后可看大图


Frigate
Frigate中该摄像头的配置(在cameras节点下)如下,创建了一个名为panelcamera的摄像头,path设置为上述安卓摄像头的推流地址。重点是打开detect功能,设置只识别person,并配置min_score和min_area减少误操作。

  1. panelcamera:
  2.   ffmpeg:
  3.     inputs:
  4.       # 摄像头地址
  5.       - path: rtsp://192.168.66.223:8080/h264.sdp
  6.         roles:
  7.           - detect
  8.   detect:
  9.     # 开启检测
  10.     enabled: True
  11.     width: 320
  12.     height: 240
  13.     fps: 10
  14.   # 不检测的区域,可降低计算负载,可以先不设置,在Frigate的debug模式下获取后再复制过来
  15.   # motion:
  16.   #   mask:
  17.   #     - 1198,134,1243,299,1552,289,1530,0,0,0,0,145
  18.   #     - 482,1440,457,408,0,416,0,1440
  19.   # 区域,可降低计算负载,可以先不设置,在Frigate的debug模式下获取后再复制过来
  20.   # zones:
  21.   #   zone_0:
  22.   #     coordinates: 766,1440,1103,591,1241,442,1616,535,1697,193,1802,1440
  23.   objects:
  24.     track:
  25.       - person
  26.     # 定制过滤器减少误报
  27.     filters:
  28.       person:
  29.         # 检测到的对象的边框的最小面积,宽度*高度(默认:0)
  30.         min_area: 20000
  31.         # 检测到的对象的边框的最大面积,宽度*高度 (默认: 24000000)
  32.         #max_area: 100000
  33.         # 启动跟踪的对象的最低分数 (默认: 0.5)
  34.         min_score: 0.7
复制代码

这样当人出现在摄像头画面中,置信度大于0.7且方框面积大于20000时,就会触发Frigate的event。

                               
登录/注册后可看大图


Frigate的HomeAssistant插件
我们还需要将此event传给HomeAssistant。需要在HomeAssistant中安装Frigate插件。需要通过HACS进行安装:https://docs.frigate.video/integrations/home-assistant
在HomeAssistant中Frigate插件中的摄像头设备中创建人来亮屏自动化:

  1. alias: panel人来亮屏
  2. description: ""
  3. trigger:
  4.   - platform: state
  5.     entity_id:
  6.       - sensor.panelcamera_person_count
  7.     from: "0"
  8.     to: null
  9. condition: []
  10. action:
  11.   - service: mqtt.publish
  12.     data:
  13.       qos: 0
  14.       retain: false
  15.       topic: mqtt_panel_screen_on
  16. mode: single
复制代码



对应的UI操作是:

                               
登录/注册后可看大图
再创建人走灭屏自动化:

  1. alias: panel人走灭屏
  2. description: ""
  3. trigger:
  4.   - platform: state
  5.     entity_id:
  6.       - sensor.panelcamera_person_count
  7.     from: null
  8.     to: "0"
  9. condition: []
  10. action:
  11.   - service: mqtt.publish
  12.     data:
  13.       qos: 0
  14.       retain: false
  15.       topic: mqtt_panel_screen_off
  16. mode: single
复制代码



对应的UI操作是:

                               
登录/注册后可看大图
含义是当panelcamera摄像头检测到的person的数量从0变为其他任意数时,通过MQTT发送mqtt_panel_screen_on这个topic,当panelcamera摄像头检测到的person的数量从任意数变为0时,通过MQTT发送mqtt_panel_screen_off这个topic。

MQTT Client
安卓屏上安装MQTT Client这个APP,先添加broker,连接的是工控机中启动的MQTT broker

                               
登录/注册后可看大图
再绑定亮屏和灭屏这两个MQTT Topic

                               
登录/注册后可看大图


Tasker
Tasker可以接收MQTT Client传递过来的事件,来触发安卓屏幕的开关。
先在“配置文件”tab页,点击右下角的加好,选择创建

                               
登录/注册后可看大图
选择事件-插件-MQTT Client-Message Arrived

                               
登录/注册后可看大图

                               
登录/注册后可看大图

                               
登录/注册后可看大图
点配置右边那根笔

                               
登录/注册后可看大图
此时会跳入MQTT Client的界面,

                               
登录/注册后可看大图
Broker默认选择之前创建的那个,Topic选择之前绑定的亮屏事件mqtt_panel_screen_on,varmessage和varmqtttopic随便输入,例如aaa,点左上角返回按钮回到Tasker,为该配置文件创建亮屏任务。由于我这块安卓屏无法锁屏和灭屏,所以我使用Black Screen APP来模拟灭屏。所以亮屏的时候将屏幕亮度调整为255,并跳转到浏览器显示HomeAssistant界面。

                               
登录/注册后可看大图
同理,在Tasker的配置文件中再创建一个灭屏用的配置文件,绑定MQTT Client中的灭屏事件mqtt_panel_screen_off,创建的灭屏任务,就是灭屏时将屏幕亮度调整为0,并跳转到Black Screen APP来模拟灭屏。

                               
登录/注册后可看大图
最终Tasker中的配置文件和任务如下:

                               
登录/注册后可看大图

                               
登录/注册后可看大图









作者: slwl    时间: 2023-11-7 15:59
还有这种垃圾屏幕捡吗
作者: hzw1199    时间: 2023-11-7 16:26
slwl 发表于 2023-11-7 15:59
还有这种垃圾屏幕捡吗

我看还能找到,小黄鱼搜rk3399 4+x
作者: bugensui    时间: 2023-11-7 16:43
这种摄像头长时间24小时运行,平板会不会很烫?我是买了人体传感器来识别的,。
作者: jey0722    时间: 2023-11-7 16:55
高级,我是老ipad通过摄像头出发ssh命令实现的

作者: hzw1199    时间: 2023-11-7 16:59
bugensui 发表于 2023-11-7 16:43
这种摄像头长时间24小时运行,平板会不会很烫?我是买了人体传感器来识别的,。 ...

平板背部金属部分还挺烫
作者: hzw1199    时间: 2023-11-7 17:01
jey0722 发表于 2023-11-7 16:55
高级,我是老ipad通过摄像头出发ssh命令实现的

是iPad自带摄像头吗?物体识别是在iPad上做的吗?
作者: xiejianwsx    时间: 2023-11-7 20:09
技术贴必须顶
作者: jole    时间: 2023-11-7 20:48
识别速度怎么样??
作者: jey0722    时间: 2023-11-8 07:56
hzw1199 发表于 2023-11-7 17:01
是iPad自带摄像头吗?物体识别是在iPad上做的吗?

不是,我ipad放在入户位置,客厅有个摄像头能照到

作者: a_dongde    时间: 2023-11-8 09:52
大佬,膜拜下!
感觉能把屏幕上的距离传感器调用起来,就不用你摄像头24小时工作了,直接距离传感器触发亮屏。
作者: hzw1199    时间: 2023-11-8 10:03
jole 发表于 2023-11-7 20:48
识别速度怎么样??

由于有置信度和方框面积阈值在,所以什么时候算是满足条件,比较主观,所以不好量化。主观感觉是一秒内的延迟吧,我觉得延迟主要来自物体识别的帧率比较低。
作者: xiaobao    时间: 2023-11-8 11:32
牛呢,可以用这种办法让屏幕有人回来自动播报,
作者: hzw1199    时间: 2023-11-8 12:19
a_dongde 发表于 2023-11-8 09:52
大佬,膜拜下!
感觉能把屏幕上的距离传感器调用起来,就不用你摄像头24小时工作了,直接距离传感器触发亮 ...

哈哈这是最完美的方案,就是没资料,不知道怎么调用
作者: hzw1199    时间: 2023-11-8 12:20
xiaobao 发表于 2023-11-8 11:32
牛呢,可以用这种办法让屏幕有人回来自动播报,

对,做物体识别后,能做的事情就很多了
作者: home_assistant    时间: 2023-11-9 15:46
本帖最后由 home_assistant 于 2023-11-9 16:04 编辑

1、买个人体传感器,接到power key上,有人来就拉低一下power key。2、或者打开ADB功能,通过WIFI ADB,人体传感器->有人->ADB Command->亮屏



作者: hzw1199    时间: 2023-11-9 19:52
home_assistant 发表于 2023-11-9 15:46
1、买个人体传感器,接到power key上,有人来就拉低一下power key。2、或者打开ADB功能,通过WIFI ADB,人 ...

安卓屏的ROM彻底移除了灭屏锁屏,试过用adb灭屏或者用adb发送power按键,都无效
作者: yhwl8888    时间: 2023-11-9 20:36
199+摄像头50  249元有点忐忑  这个买回来还要刷机么  看系统7.12

作者: hzw1199    时间: 2023-11-9 21:48
yhwl8888 发表于 2023-11-9 20:36
199+摄像头50  249元有点忐忑  这个买回来还要刷机么  看系统7.12

为啥我才170我当时那个需要刷机,自带的系统好像是不让装APP的
作者: home_assistant    时间: 2023-11-10 09:01
hzw1199 发表于 2023-11-9 19:52
安卓屏的ROM彻底移除了灭屏锁屏,试过用adb灭屏或者用adb发送power按键,都无效 ...

Android系统,如果是带电池的,一般连接适配器下不会进入深度休眠,不带电池的项目可能会做深度休眠,深度休眠后可能就无法唤醒。一般的方法就是加锁(wake_lock),不知道你是否有adb的root权限,一般路径echo wake_lock > /sys/power/wake_lock

作者: hzw1199    时间: 2023-11-10 09:57
home_assistant 发表于 2023-11-10 09:01
Android系统,如果是带电池的,一般连接适配器下不会进入深度休眠,不带电池的项目可能会做深度休眠,深 ...

进入休眠的前提是屏幕关掉,现在这个安卓机器,不管是用adb直接灭屏还是用adb发送power按键事件,都没有反应
作者: home_assistant    时间: 2023-11-10 10:10
hzw1199 发表于 2023-11-10 09:57
进入休眠的前提是屏幕关掉,现在这个安卓机器,不管是用adb直接灭屏还是用adb发送power按键事件,都没有 ...

adb灭屏是怎么操作的?有没有可能你灭屏后机器进入休眠了?
1.先将机器设置为永不休眠。
2.再进行adb command灭屏。
如果有root权限也可尝试(adb shell echo 0 > /sys/class/leds/lcd-backlight/brightness)只关背光。
作者: hzw1199    时间: 2023-11-10 18:13
home_assistant 发表于 2023-11-10 10:10
adb灭屏是怎么操作的?有没有可能你灭屏后机器进入休眠了?
1.先将机器设置为永不休眠。
2.再进行adb com ...

额我觉得我们理解有误,我指的是我无论用什么方法,都无法让机器灭屏或者锁屏,包括用adb发送power key、用Tasker的灭屏或者锁屏动作
作者: allenjwb    时间: 2023-11-13 21:35
我用Fully 里面可以直接设置接近亮屏
作者: lishaowen    时间: 2023-11-14 02:09
厉害厉害,
作者: yybl    时间: 2023-11-14 09:54
小白问题:
系统再拿下的?通用系统吗?我收上有一个门禁专用的平板,芯片是联发科的。不知道能不能刷成普通的安卓。 百度搜索不知道用怎么关键词。
作者: xiangboshi    时间: 2023-11-14 09:56
只是想知道有没有ipad air的方案
作者: hzw1199    时间: 2023-11-14 11:22
allenjwb 发表于 2023-11-13 21:35
我用Fully 里面可以直接设置接近亮屏

看到有人反馈Fully做接近亮屏,久了之后会卡顿或者失去响应,不知道是不是真的。
作者: hzw1199    时间: 2023-11-14 11:24
yybl 发表于 2023-11-14 09:54
小白问题:
系统再拿下的?通用系统吗?我收上有一个门禁专用的平板,芯片是联发科的。不知道能不能刷成普 ...

系统不是通用的,我是卖家组的群里下载的。同一个芯片方案的不同机器,因为分辨率或者其他模块不同,系统一般都不通用,所以需要比较精准的去找你那款设备能用的系统
作者: demacia    时间: 2023-11-17 16:53
我原来有个监控也是安卓的软件做IP camera的,但是手机发热,经常被杀应用。后面放弃花钱买了家用摄像头。
作者: bd0831    时间: 2023-11-20 21:37
来学习学习,,看看还有的捡吗
作者: hasssc    时间: 2023-11-28 08:54
学习了,大神厉害
作者: [email protected]    时间: 2023-12-3 09:30
给力  点赞




欢迎光临 『瀚思彼岸』» 智能家居技术论坛 (https://bbs.hassbian.com/) Powered by Discuz! X3.5