【发布时间】:2019-04-20 09:05:06
【问题描述】:
我正在使用 Raspberry Pi 和 OpenCv 构建家庭监控系统。 基本上,我的设置将包括两个设备,第一个是安全摄像头,它是一个树莓派零和一个 pi 摄像头。另一个设备将是一个主集线器(Raspberry Pi 3),它将完成所有繁重的工作,例如面部识别、语音识别和其他操作。
我想做的是将安全摄像头的镜头流式传输到主集线器,以便它可以处理图像。所以基本上我想从 pi 相机捕获帧,将其转换为 numpy 数组(如果默认情况下没有这样做)并将该数据发送到主集线器,然后转换回要分析的图像帧通过 Opencv。
我将操作分开,因为我的安全摄像头在树莓派零上运行,它不是很快并且无法处理繁重的工作。这也是因为我的安全摄像头连接到电池上,而我正试图降低 Pi 的使用率,因此我将主集线器专用于繁重的操作。
我在两个设备上都使用 python v3 环境。对mqtt、TCP等物联网通信技术了如指掌。但是,为了满足我的需求,我想帮助我在 python 脚本中实际实现这些技术。
【问题讨论】:
-
嗯,您需要考虑图像的尺寸(以像素为单位的高度和宽度)、颜色或灰度,以及您需要多久发送一次。然后尝试将其转换为以字节/秒为单位的数据速率,并计算出您可以通过有线/wifi 网络实现的带宽。然后考虑是否需要先压缩它们,或者在 YUV 或 MJPEG 中工作。然后考虑丢包/重启机制和缓冲。
-
好吧,现在这些东西不是那么重要,因为它们很容易配置,我只是在使用允许我将捕获的图像 numpy 数组数据发送到主 pi 的技术之后。但要回答您的观点,尺寸为 1080x1920,彩色,每次检测到运动时都会发送。是的,我也已经尝试过使用 mqtt 进行字节流,但我的代码最终没有工作。
标签: python opencv raspberry-pi raspberry-pi3