我正在研究使用SJ4000摄像头进行图像处理,通过USB将其连接到Raspberry Pi(运行Raspbian Jessie),以便在Python中使用OpenCV进行图像处理。我已经使用我的摄像头取得了不少成绩,但现在需要将其移植到SJ4000的环境中,但是我陷入了这个障碍。SJ4000 + OpenCV + Raspberry Pi用于图像处理
我用过的代码与这个问题的答案相同:rotated face detection。
在笔记本电脑的摄像头上,我获得了相当不错的帧率。当SJ4000通过USB连接到我的笔记本电脑时,我的帧速率也很高。但是,在Raspberry Pi上,当我执行相同的代码时,图像因某种原因而被冻结。然后我需要强制退出显示的视频查看器窗口,因为它只是被冻结。
编辑1:关闭Spyder IDE并重新加载几次,然后执行相同代码,我可以看到一个Feed,但帧速率非常低(每帧2-3秒),并且它会在一段时间后冻结。
编辑2:我已经做了进一步的测试,发现当我包含人脸检测代码时,需要很长时间才能显示提要,因为延迟时间为TEN。当我在没有任何处理的情况下直接转发Feed时,它的响应速度非常快。
我该如何解决这个问题?获得更强大处理器的唯一方法是什么?
感谢您的帮助!
首先尝试没有处理的视频源....顺便说一句你要强制使用什么样的分辨率颜色深度/编码和比特率?我不使用树莓派,但我敢打赌,USB带宽受到CPU(无DMA)的限制。如果饲料运行良好,试着估计剩下多少计算能力....你不能超过它,否则会造成瓶颈导致严重的速度下降和死机。所以如果你有一些fps,那么'T = 1/fps'就是你的时间段。测量它从CPU处理多少时间...所以如果10%,那么你得到的小于90%的'T',并且必须适合... – Spektre
如果你选择了不好的分辨率/编码,那么它甚至可能会花费95% T只是从相机抓取图像...你必须适应带宽内 – Spektre
@Spektre - 我已经尝试过它没有处理,并且馈送非常流畅。有没有办法限制我每秒处理的帧数? –