前言

本来想直接用百度智能车比赛的数据集训练,但是发现在ROS中搭建红绿灯模型和提供的数据集在颜色亮度外形上都有点差别… …无奈从创建数据集开始。
第一节:
基于paddledetection在ROS中搭建红绿灯检测控制车模运动(1)—— 环境搭建准备以及软件安装
第二节:
基于paddledetection在ROS中搭建红绿灯检测控制车模运动(2)—— 数据集制作以及训练
第三节:
基于paddledetection在ROS中搭建红绿灯检测控制车模运动(3)—— 使用训练结果在ros中仿真红绿灯控制小车运动

项目地址

训练部分aistudio地址:传动门
racecar仿真软件下载地址:传送门
本地项目下载地址:传送门

效果演示

 

linux下数据集标注工具安装教程

git clone https://github.com/Ruolingdeng/labelImg.git
cd labelImg
sudo apt-get install pyqt4-dev-tools
sudo pip install lxml
make qt4py2  
python labelImg.py


windows下:windows下安装教程
常用快捷键:

  • d:下一张图
  • a:上一张图
  • w:绘制矩形框
  • ctrl + s:保存
    如下操作打开图片目录开始标注:

    下载仿真软件

    mkdir -p ~/racecar_ws/src
    cd ~/racecar_ws/src
    catkin_init_workspace
    git clone https://github.com/xmy0916/racecar.git
    cd ..
    catkin_make
    echo "source ~/racecar_ws/devel/setup.bash" >> ~/.bashrc
    source ~/.bashrc
    

    在pycharm安装paddle

    首先安装一下模块(最好按顺序安装):
common、dual、tight 、data、prox、paddlepaddle、paddlehub、paddle

直接在:

file -> settings -> Project:project_name -> Project Interpreter -> +号

搜索这几个名字然后点击Install Package即可:

在pycharm中安装ROS

这个因为我是几个月之前装的了,过程也不记得了,大家可以网上找找参考:传送门

使用python3编译cv_bridge

这一步是必须的,cv_bridge是ROS库中用来将深度相机传感器图片数据类型转换成opencv的mat数据类型,不试用的话就没法处理图像了。然后ROS库中的cv_bridge编译用的是python2,生成的.so文件有一些不支持。而飞浆用的python是python3,所以需要用python3编译cv_bridge。
这里参考国外wiki上的回答:传送门

  1. 首先修改cv.so文件(不改会因为ros中有个cv2.so系统环境一个cv2.so导致报错导入cv2错误)下面把ros环境中的cv2.so换个名字就行了:
    cd /opt/ros/kinetic/lib/python2.7/dist-packages/
    sudo mv cv2.so cv2_ros.so
    
  2. 安装一些库
sudo apt-get install python-catkin-tools python3-dev python3-catkin-pkg-modules python3-numpy python3-yaml ros-kinetic-cv-bridge
  1. 创建工作区间(用来编译cv_bridge)
mkdir catkin_workspace
cd catkin_workspace
catkin init
  1. 配置
catkin config -DPYTHON_EXECUTABLE=/usr/bin/python3.5 -DPYTHON_INCLUDE_DIR=/usr/include/python3.5m -DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.5m.so

这一步比较重要,大家检查下对应路径下是否有python3.5,python3.5m,x86_64-linux-gnu/libpython3.5m.so,如果版本不一样需要修改版本号。

  1. 安装配置
catkin config --install
  1. 下载cv_bridge源码
git clone https://github.com/ros-perception/vision_opencv.git src/vision_opencv
  1. 查看版本
apt-cache show ros-kinetic-cv-bridge | grep Version
  1. 确认git谷仓的版本正确
git checkout 1.12.8
  1. 编译
cd ../../
catkin build cv_bridge
source install/setup.bash --extend

如果没有出现error字眼就成功了!
编译完成后在catkin_workspace文件夹下会有cv_bridge编译的输出文件:

这时候还需要做件事,把ROS中原本python2编译的cv_bridge删了或者改个名字,这样就不会链接到python2编译的cv_bridge了,这里最好是改个名字,往后万一要用还能改回来。

cd /opt/ros/kinetic/lib/
sudo mv cv_bridge cv_bridge2