构建yolov8+ros镜像实现实时目标检测

1 篇文章 0 订阅
1 篇文章 0 订阅

构建含ros的yolov8镜像

dockerfile如下

FROM ultralytics/ultralytics:latest

# change source to aliyun
RUN sed -i s@/archive.ubuntu.com/@/mirrors.ustc.edu.cn/@g /etc/apt/sources.list \
 && mv /etc/apt/sources.list.d/coral-edgetpu.list /etc/apt/sources.list.d/coral-edgetpu.bak

# nvidia container runtime
ENV NVIDIA_VISIBLE_DEVICES all
ENV NVIDIA_DRIVER_CAPABILITIES all

RUN apt-get update \
 && apt-get install -y lsb-release vim iputils-ping 

RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list \
 && apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

RUN apt-get update \
 && apt-get install -y ros-noetic-desktop-full \
 && echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc \
 && apt-get -y update --fix-missing \
 && apt-get clean

值得一提的是由于最后一层镜像,安装ros时需要输入地区和键盘信息(非常无聊的设置),但是镜像构建是不能交互的,也就是说,没办法输入任何信息给构建中的镜像,从而构建会卡死在输入地区这一步。解决方法是构建到最后一步时,创建一个临时镜像,用这个镜像建一个容器,在容器里安装ros,最后commit成最终镜像。

启动yolov8_ros容器

启动容器之前要把主机的相机设备映射到容器中,参数为

-v /dev/video2:/dev/video2 \
-v /dev/video3:/dev/video3 \

注意,不同的主机和相机使用的设备名不同,可以在主机里查看。

ls /dev/video*

如果没有输出,可以安装下面的包

sudo apt-get install v4l-utils

然后

v4l2-ctl --list-devices

我的启动脚本是

xhost +
docker run -it \
--privileged \
--gpus all \
--net=host \
--env=DISPLAY \
--env=QT_X11_NO_MITSHM=1 \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v /home/ackerman/Workspace/ROSspace:/ROSspace \
-v /dev/video2:/dev/video2 \
-v /dev/video3:/dev/video3 \
ros_yolov8

容器内操作

首先要安装usb_cam包,指令为

apt-get install ros-noetic-usb-cam

安装image相关的包

apt-get install ros-kinetic-image-*
apt-get install ros-kinetic-rqt-image-view

启动相机

roslaunch usb_cam usb_cam-test.launch

启动编译好的yolov8_ros功能包,地址为https://github.com/qq44642754a/Yolov8_ros,即可看到实时监测了。

roslaunch yolov8_ros yolo_v8.launch

rqt_graph 如图

请添加图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值