网站怎么做弹框,深圳学校网站定制设计,电子商务网站建设技术规范,中国人寿寿险保险公司官方网站原本打算在搭载Ubuntu18.04的智能小车上面运行使用darknet_ros 包来进行yolov3的检测#xff0c;但是运行过程中遇到了不少问题#xff0c;从头到尾部的运行包括遇到的解决方法以及对应的文章一并列出#xff0c;免得到处查找。
首先是在ROS下实现darknet_ros(YOLO V3)检测…原本打算在搭载Ubuntu18.04的智能小车上面运行使用darknet_ros 包来进行yolov3的检测但是运行过程中遇到了不少问题从头到尾部的运行包括遇到的解决方法以及对应的文章一并列出免得到处查找。
首先是在ROS下实现darknet_ros(YOLO V3)检测 参考文章
https://blog.csdn.net/qq_42145185/article/details/105730256一. 代码下载 代码Github主页https://github.com/leggedrobotics/darknet_ros 下载命令
mkdir -p catkin_workspace/src
cd catkin_workspace/src
git clone --recursive gitgithub.com:leggedrobotics/darknet_ros.git
cd ../下载时间可能比较长请耐心等待… 如果下载的Ubuntu系统不支持从gitthub上面直接爬取代码可以转换下载方式来进行下载。点击GitHub里的clone下拉可以选择ssh以及https两种模式加载。这个时候只需要转换git clone代码即可。 通过ssh
git clone --recursive gitgitcode.net:mirrors/leggedrobotics/darknet_ros.git通过https
git clone --recursive https://gitcode.net/mirrors/leggedrobotics/darknet_ros.git下载可能遇到的其他问题可以参考这篇文章中下载darknet_ros包的章节
http://t.csdn.cn/hPQyd其中因为是移动到搭载Ubuntu的小车上面所以直接通过win11下载然后通过u盘移动到小车内部Ubuntu系统这种移动过程中文件可能会有缺少损坏导致后期运行报错所以不建议。最好是直接通过上述方法直接下载不能通过下载GitHub的zip等各种压缩包来使用。 比如说 启动yolo3检测摄像头看到的物体
roslaunch darknet_ros darknet_ros.launch报错 这个错误大概率是因为将这个包从windows移动到ubuntu上过后有些cfg文件识别不到。 回到/home/xx/catkin_ws/src/darknet_ros目录下打开终端执行 git stash 再重新运行一次即可。
二. 编译 在ROS工作空间目录下执行命令
catkin_make -DCMAKE_BUILD_TYPERelease此时会开始编译整个项目编译完成后会检查{catkin_ws}/darknet_ros/darknet_ros/yolo_network_config/weights文件下有没有yolov2-tiny.weights和yolov3.weights两个模型文件默认下载好的代码里面为了节省体积是不带这两个模型文件的。因此编译之后会自动开始下载模型文件此时又是一段漫长的等待时间。 如果刚好你之前已经下载好了模型文件那就好了在开始编译之前就把模型文件拷贝到上述文件夹下就不会再次下载了。 下载链接
https://pjreddie.com/media/files/yolov2.weights
https://pjreddie.com/media/files/yolov2-tiny.weights
https://pjreddie.com/media/files/yolov3.weights
https://pjreddie.com/media/files/yolov3-tiny.weights将下载文件放入/darknet_ros/darknet_ros/yolo_network_config/weights文件中 继续
catkin_make -DCMAKE_BUILD_TYPERelease3.图像话题发布 因为darknet_ros会直接订阅指定的图像话题名然后对图像进行检测绘制检测框并发布相应的检测话题因此首先需要找一个能够发布图像话题的ROS包这里推荐使用ROS官方提供的usb_cam驱动包可以直接将电脑自带摄像头或连接电脑的USB摄像头采集的图像发布为ROS图像话题。 下载摄像头驱动
sudo apt-get install ros-kinetic-usb-cam下载摄像头驱动有的时候自己的操作系统未必是kinetic的版本所以需要通过终端命令查询自己的ros版本。 rosversion -d如果是melodic版本就使用
sudo apt-get install ros-kinetic-usb-cam然后发布摄像头图像话题
roslaunch usb_cam usb_cam-test.launch如果顺利的话应该可以看到实际的图像显示界面。
3.启动摄像头测试节点 报错1 在输入以下测试启动命令后出现了报错。 解决方法 1.摄像头接口插入USB3.0试试。 USB3.0USB3.0又称为SuperSpeed USB总线与高速High SpeedUSB2.0总线相比其传输速度更快。 2.其次如下图所示一定要有勾选上才行不然说明未连接相机。 报错2 解决办法
sudo apt-get install ros-melodic-image-view报错3
设置usb设备勾选上ubs3即可 然后就是运行darknet_ros 然后执行darknet_ros进行检测在运行检测之前需要更改一下配置文件使得darknet_ros订阅的话题与usb_cam发布的图片话题对应。 打开darknet_ros/config/ros.yaml文件找到 将camera_reading中的topic修改为上图所示即
subscribers:camera_reading:topic: /usb_cam/image_rawqueue_size: 1然后回到darknet的工作空间根目录执行
source devel/setup.bash
roslaunch darknet_ros darknet_ros.launch我们只需要把预训练集换成YOLO v3的来检测就可以了更换如下找到config文件可以看到如下的训练集 打开launch文件 修改 darknet_ros.launch
arg namenetwork_param_file default$(find darknet_ros)/config/yolov2-tiny.yaml/改为arg namenetwork_param_file default$(find darknet_ros)/config/yolov3.yaml/
如下然后重新启动
roslaunch darknet_ros darknet_ros.launch差不多就可以实现了然后基本上上述错误都是从以下这些参考文章找到的解决办法。
ROS下实现darknet_ros(YOLO V3)检测
https://blog.csdn.net/qq_42145185/article/details/105730256小车yolo机械臂一ros下gazebo搭建小车可键盘控制安装摄像头仿真 加载yolo检测识别标记物体
https://blog.csdn.net/WhiffeYF/article/details/109187804ROS学习三调用笔记本和usb外接摄像头
https://blog.csdn.net/m0_56451176/article/details/126174060?ops_request_misc%257B%2522request%255Fid%2522%253A%2522169020102516800227494294%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257Drequest_id169020102516800227494294biz_id0utm_mediumdistribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-126174060-null-null.142^v91^insert_down1,239^v3^controlutm_termsudo%20apt-get%20install%20ros-melodic-usb-camspm1018.2226.3001.4187ROS下使用摄像头
https://blog.csdn.net/wilylcyu/article/details/51732710在ROS中开启摄像头_详细步骤
https://blog.csdn.net/weixin_41074793/article/details/83474501?utm_mediumdistribute.pc_relevant.none-task-blog-baidujs_utm_term-0spm1001.2101.3001.4242ROS学习笔记-在ROS中连接USB摄像头
https://blog.csdn.net/weixin_51244852/article/details/116169460?ops_request_miscrequest_idbiz_id102utm_termsudo%20apt-get%20install%20ros-melodutm_mediumdistribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-3-116169460.142^v91^insert_down1,239^v3^controlspm1018.2226.3001.4187ROS下使用usb_cam驱动读取摄像头数据
https://blog.csdn.net/Yangxiaoaijiejie/article/details/127061479?ops_request_misc%257B%2522request%255Fid%2522%253A%2522169020121616800227474354%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257Drequest_id169020121616800227474354biz_id0utm_mediumdistribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-2-127061479-null-null.142^v91^insert_down1,239^v3^controlutm_term%E5%AE%89%E8%A3%85ROS_USB%E9%A9%B1%E5%8A%A8%E6%8A%A5%E9%94%99spm1018.2226.3001.4187这里给一个使用yolov3的报错解释因为darknet_ros.launch文件里面有不同的launch文件如果使用以下命令。
roslaunch darknet_ros yolov3.launch可能会报错缺少yolov3-tiny.cfg文件找不到这个文件就需要手动新建一个.cfg的文件粘贴。 这个文件连接有中文注释可能报错以下是整理好的代码自行参考。
https://blog.csdn.net/weixin_44152895/article/details/106570976?ops_request_misc%257B%2522request%255Fid%2522%253A%2522169027884416800222821030%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257Drequest_id169027884416800222821030biz_id0utm_mediumdistribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-26-106570976-null-null.142^v91^insert_down1,239^v3^controlutm_termyolov3-tiny.cfg%E4%B8%8B%E8%BD%BDspm1018.2226.3001.4187[net]
# Testing
batch1
subdivisions1
# Training
# batch64
# subdivisions2
width416
height416
channels3
momentum0.9
decay0.0005
angle0
saturation 1.5
exposure 1.5
hue.1learning_rate0.001
burn_in1000
max_batches 500200
policysteps
steps400000,450000
scales.1,.1[convolutional]
batch_normalize1
filters16
size3
stride1
pad1
activationleaky[maxpool]
size2
stride2[convolutional]
batch_normalize1
filters32
size3
stride1
pad1
activationleaky[maxpool]
size2
stride2[convolutional]
batch_normalize1
filters64
size3
stride1
pad1
activationleaky[maxpool]
size2
stride2[convolutional]
batch_normalize1
filters128
size3
stride1
pad1
activationleaky[maxpool]
size2
stride2[convolutional]
batch_normalize1
filters256
size3
stride1
pad1
activationleaky[maxpool]
size2
stride2[convolutional]
batch_normalize1
filters512
size3
stride1
pad1
activationleaky[maxpool]
size2
stride1[convolutional]
batch_normalize1
filters1024
size3
stride1
pad1
activationleaky###########[convolutional]
batch_normalize1
filters256
size1
stride1
pad1
activationleaky[convolutional]
batch_normalize1
filters512
size3
stride1
pad1
activationleaky[convolutional]
size1
stride1
pad1
filters255
activationlinear[yolo]
mask 3,4,5
anchors 10,14, 23,27, 37,58, 81,82, 135,169, 344,319
classes80
num6
jitter.3
ignore_thresh .7
truth_thresh 1
random1[route]
layers -4[convolutional]
batch_normalize1
filters128
size1
stride1
pad1
activationleaky[upsample]
stride2[route]
layers -1, 8[convolutional]
batch_normalize1
filters256
size3
stride1
pad1
activationleaky[convolutional]
size1
stride1
pad1
filters255
activationlinear[yolo]
mask 0,1,2
anchors 10,14, 23,27, 37,58, 81,82, 135,169, 344,319
classes80
num6
jitter.3
ignore_thresh .7
truth_thresh 1
random1