物体识别全流程(Ubuntu16.04)结合ROS
1.使用labellmg,标记图片,生成xml标签
在此下载labellmg包
下载之后解压到要放置的目录
推荐使用Python3+Qt5
打开labellmg包
在当前目录终端下运行如下命令行
sudo apt-get install pyqt5-dev-tools
sudo pip3 install -r requirements/requirements-linux-python3.txt
make qt5py3
python3 labelImg.py
在运行第二行命令时可能会出现缺少pip3之类的提示,可以通过运行这个解决 sudo apt-get install python3-pip
关于labellmg的使用的关键步骤![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/6521196ecb6c95da88e5d20d671f93ec.png)
Ctrl + u Load all of the images from a directory
Ctrl + r Change the default annotation target dir
Ctrl + s Save
Ctrl + d Copy the current label and rect box
Space Flag the current image as verified
w Create a rect box
d Next image
a Previous image
del Delete the selected rect box
Ctrl++ Zoom in
Ctrl-- Zoom out
↑→↓← Keyboard arrows to move selected rect box
推荐使用voc格式
2.下载并安装darknet
可参考下列链接
https://pjreddie.com/darknet/yolo/
运行到此步骤即可,无需进行下面步骤
3.制作自己的数据集
可参考下列链接,十分详细
但是
因为此链接是在windows下配置的,所以多少有些不同,比如图片名字那一部分,那个脚本在ununtu下运行是无效的,不过可以通过写一个简单的c程序打印出来
https://blog.csdn.net/qq_34806812/article/details/81673798
4.利用训练好的数据集,开始在ros环境下进行物体识别
4.1 将下列链接的内容下载到ROS工作空间的src目录下
4.2配置kinect2摄像头
该链接是我的一个学长写的,亲测有效,https://blog.csdn.net/dragongiri/article/details/98597607
4.3编译工作空间
在工作空间下使用 catkin_make 命令;
5.开始识别
5.1
将之前训练好的bakeup/.weights文件放到 /catkin_ws/src/darknet_ros/darknet_ros/yolo_network_config/weights
将之前改好的 .cfg 文件放到 /catkin_ws/src/darknet_ros/darknet_ros/yolo_network_config/cfg
将这个/catkin_ws/src/darknet_ros/darknet_ros/config/yolov3-voc.yaml文件中的config_file,weight_file和names根据实际情况修改,其实就是之前添加进来的两个文件
注意名字顺序一定要和之前在训练数据集时的名字顺序一致,否则极可能出错
最后启动两个launch节点starting!!!
roslaunch kinect2_bridge kinect2_bridge.launch
roslaunch darknet_ros darknet_ros.launch