首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我可以加快OpenCV的'raspicam_node‘发布速度吗?

我可以加快OpenCV的'raspicam_node‘发布速度吗?
EN

Stack Overflow用户
提问于 2019-06-10 00:43:53
回答 1查看 468关注 0票数 1

我们正在尝试使用ros和turtlebot开发自动驾驶。我正在尝试从raspicam_node获取图像,并在车道仪式上开车,但在TurtleBot3上从raspicam_node发布太慢了。当然,从远程PC获取图像也很慢,所以很难获得图像。

因此,我们通过存储图像并将"received“打印到控制台中来测试它以降低速度。但是,我们已经验证了控制台中的文本每10秒输出一次。因此,我认为这不是我们实现的代码的开销。

TurtleBot和远程PC之间的连接连接到100 Remote的'IpTime‘无线网络机器。

是因为无线连接速度慢,还是必须设置TurtleBot3的raspicam_node?

EN

回答 1

Stack Overflow用户

发布于 2019-06-10 01:02:37

答案是在Raspberry PI中的OpenCV或ROS上不做任何处理/发布。这是一个相当慢的平台,不允许你做复杂的操作。

我的建议是在处理大型图像数据时,绕过Raspberry PI上的所有ROS和OpenCV。

(1)如果你真的要使用ROS,至少要使用压缩流。

请看这里了解它是如何完成的http://wiki.ros.org/image_transport

rosrun image_transport republish [in_transport] in:=<in_base_topic> [out_transport] out:=<out_base_topic>

(2)另一种低成本发送到地面的方式是使用v4l2 driver,因此它可以

sudo modprobe bcm2835-v4l2
cvlc v4l2:///dev/video0 --v4l2-width 1920 --v4l2-height 1080 --v4l2-chroma h264 --sout '#standard{access=http,mux=ts,dst=0.0.0.0:22322}'

或者直接使用ffmpeg发送

ffmpeg -f v4l2 -framerate 30 -video_size 800x448 -i /dev/video0 -i /home/pi/Desktop/sound/logo.png -codec:v h264 -r 30 -s 800x448 -bf 0 -g 30 -bufsize 8000k -maxrate 8000k -filter_complex "[0:v][1:v] overlay=(W-w)/2:(H-h)/2:enable='gte(t,1)'" -preset ultrafast -tune zerolatency -f h264 udp://192.168.5.10:23003

您必须使-preset超快-tune零速率保持打开状态

在这种情况下,延迟应该是最小的,因为你不做任何处理,而只是在互联网上转发。在GCS中,您可以使用opencv或其他必要工具来获取http或udp服务器地址

然后你可以在地面控制站对图像流做任何你想做的事情。例如,单目深度估计,目标检测,定位。

如有必要,请将摄像头流的大小减小到640_480,这样可以加快输出速度。即使是最低质量的无线网络也应该能够处理压缩的640_480流。

ros仅需要在低更新频率下处理控制命令

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56516487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档