2024年11月24日星期日 上午7:54:52

Camera基于树莓派4本地USB摄像头的人体识别一一opencv(解决摄像头延时问题))

2 年 前
#117 引用

https://bbs.hassbian.com/thread-12993-1-1.html

思路

视餐厅为一平面图,问题即可抽象成 “如何检测一张图片内是否有人存在”,解决方案就显而易见了——目标检测。



0
2 年 前
#10290 引用
现有摄像头方案现状及存在的问题


人脸识别,应该是基于相机实体的抓图,ffmpeg似乎延迟很高。
人都把家里东西搬没了,还没返回识别结果




0
2 年 前
#10291 引用
1
0
2 年 前
#10292 引用
[i][/i]摄像头的选择及摄像头本身识别延迟问题

USB 摄像头

USB 摄像头要具备夜视能力

基本上所有的 USB 摄像头都不具备夜视能力

USB 接口的夜视摄像头 - https://detail.1688.com/offer/598088416475.html?spm=a360q.8274423.0.0.49c84c9a63XQ2p  150元

深究之后发现,摄像头延时问题除 RTSP 协议原因外,还有一个很重要的点是 OpenCV 会默认缓存 4-5 帧图像。

解决方案

把摄像头采集放在单独线程里进行,且采集速度应明显高于识别速度。比如我的设定是每 200ms 识别一次,每 100ms 采集一次,利用 100ms 的时间差尽可能丢掉前边的缓存帧,只保留最新的一帧。这样,识别也是基于最新帧了。

识别算法

YOLOv5 没能部署到树莓派上(官方 32 位系统),也没深究。转头发现了 Paddle-Lite ,专为移动端、嵌入式硬件开发的深度学习推理框架。Paddle 提供了超多预训练模型 ,我选取了其中尺寸最小的MobileNetV3 Small ,实测在树莓派4 上每次推理仅需 < 200 ms。


0
2 年 前
#10298 引用
1
0
2 年 前
#10299 引用
1
0
2 年 前
#10300 引用
网络摄像头

这甚至是个比识别率还严重的问题。基本上所有的 USB 摄像头都不具备夜视能力,用这种摄像头正应了达文西手电筒的梗。无奈买了一个网络摄像头,因为需通过 RTSP 协议获取视频流,缺点同样明显:

占用宽带;
高延时;
需要解码。
所以我现在设定的采集帧率仅为 2 帧/秒,尽量降低树莓派的功耗。
0
11 个月 前
#24031 引用
Realtime camera streaming without any delay
WebRTC
go2rtc
Paddle-Lite
YOLOv5
HA内置的Generic Camera一样秒开
0