目标成果:在linux设备中启用darknet_ros
0.如何获得darknet_ros源码:
渠道1:github的darknet_ros.
渠道2:gitee的darknet_ros,这个是我从github上转到gitee上的 在github上不去时使用.
git下来之后复制到树莓派中,按找readme编译darknet_ros,此时如果你权重文件没有安装好,会在编译过程中下载权重文件,最好先魔法上网在windows中提前下载权重文件,因为树莓派中的网络比较慢,下载之后安装放在weight文件夹中即可。
1.转移配置文件:
根据官方的的提示可以看到,如果我们需要使用自己模型进行识别的话要修改4个文件。
分别是weight文件、cfg文件、config文件、launch文件
a.如何生产权重文件可以参考这位博主的文章 我是通过这个文章训练的权重文件。参考darknet训练方法连接.
b.cfg文件 训练模型时 使用的算法配置文件。
c.config文件 文件后缀为.yaml 可以使用darknet作者对应文件下下的文件作为模板进行修改,这个文件描述了你使用的权重文件名字和算法配置文件名称 以及被检测的问题名称分类。
yolo_model:
config_file:
name: my_fire_v3.cfg
weight_file:
name: my_fire_v3_final.weights
threshold:
value: 0.3
detection_classes:
names:
- fire
d.launch文件 这个文件放置了你启动roslaunch时的配置 同样可以参考该文件夹下的文件进行修改,里面有一些需要修改一些东西,具体修改的内容需要你自己注意一下,这个文件是我很久以前修改的,已经忘记修改了哪里,但是我记得是比如我第一个箭头中,是从那个节点获取的图像,第二个箭头中,修改为yaml文件的文件名。
2. 按照运行提示运行darknet_ros
启用rbg图像,启用后产生关键的话题/camera/rgb/image_raw
roslaunch huanyu_robot_start astra_rgb__depth.launch
在这一步中,可能会出现一种错误,错误提示无法打开摄像头设备,这种情况需要你开启摄像头权限
命令为:
sudo chmod 777 /dev/video0
需要注意的是,需要你自己确定你摄像头的设备号是多少,以开启权限,不一定是video0也有可能是video1等等。
开启检测,即可使用darknet
roslaunch darknet_ros darknet_ros.launch