将实时摄像头从RPI计算模块传输到RPI 3

时间:2016-03-08 23:15:04

标签: c++ opencv camera raspberry-pi computer-vision

我正在开发一种便携式硬件/软件应用程序,在立体视觉配置中使用2个摄像头,并处理原始数据以输出信息。

因此我有一个Raspberry pi Compute模块套件和一个Raspberry pi 3.

  • 计算模块套件将操作两个摄像头
  • pi 3将运行代码,因为它具有计算能力
  • OpenCV(C ++)是首选的CV包

由于这是一个便携式应用程序,基于互联网的流媒体不适合。

我没有时间玩GPIO引脚,或者找到一种方法将两个摄像头从计算模块传输到pi 3。

你怎么建议我继续这个?有人做过这样的项目吗?您可以提供哪些链接来帮助我实现此目标?

这是一个论文项目,从长远来看,作为一个完整的原型开发有望帮助。

  • 画面尺寸:640x480
  • 帧率:15 fps
  • 相机相距5厘米

1 个答案:

答案 0 :(得分:0)

更新了答案

我一直在做这方面的进一步测试。使用iperf工具和我自己的简单TCP连接代码,我通过有线以太网直接连接两个Raspberry Pis并测量TCP性能。

在Raspberry Pi 2和Raspberry Pi 3上使用标准的内置10/100接口,可以达到94Mbits / s。

但是,如果你在每个Pi上放置一个TRENDnet USB3千兆位适配器并重复测试,那么如果将MTU设置为4088,则可以获得189Mbits / s和近200个。

原始答案

我做了一个快速测试 - 不是一个完整的答案 - 但是我可以添加评论或格式正确!

我使用有线以太网连接设置了2个Raspberry Pi 2。我把一张640x480的图片作为JPEG格式拍摄 - 它出现在178,000字节。

然后,在接收Pi上,我设置为接收1,000帧。像这样:

#!/bin/bash
for ((i=0;i<1000;i++)); do
   echo $i
   nc -l 1234 > pic-${i}.jpg
done

在发送Pi时,我设置为将图片传输1000次:

for ((i=0;i<1000;i++)) ; do nc 192.168.0.65 1234 < pipic1.jpg ;done

花费了34秒,所以它的速度大致为33 fps,但由于写入文件系统,因此写入SD卡,结果很多。所以,我删除了

nc -l 1234&gt; PIC - $ {I} .JPG

并且没有将数据写入磁盘 - 这是您在写入屏幕时所需要的,如下所示:

nc -l 1234 > /dev/null