2022.10.8
制作数据集

首先在FSACOCO-msater(北理工bitfsd车队提供工具)进行图片标注,制作数据集。在/tools/label tool下创建文件夹 Images(存放采集到的原始图像 根据种类放入新建文件夹下(命名格式为001.002…)) 和 Labels(存放处理后的数据文件 txt格式)。
在label tool 文件夹下 打开终端 执行 python main.py。
(可根据此视频进行学习另一种标记,建议使用该工具——https://www.bilibili.com/video/BV1Jp4y1k7QG/)
2022.10.11
搭建darnkert-ros训练

配置darnket-ros:

 mkdir -p catkin_workspace/srccd catkin_workspace/srcgit clone --recursive git@github.com:leggedrobotics/darknet_ros.git

通常使用该命令时会报错:

GitLab: The project you were looking for could not be found.
fatal: 无法读取远程仓库。请确认您有正确的访问权限并且仓库存在。

解决:
ssh获取公钥,绑定gitlab。参考:

https://blog.csdn.net/weixin_42752574/article/details/106367959?ops_request_misc=&request_id=&biz_id=102&utm_term=ssh-keygen -t rsa -C “Title”&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-0-106367959.142v52pc_rank_34_queryrelevant25,201v3control_1&spm=1018.2226.3001.4187

再尝试git clone --recursive git@github.com:leggedrobotics/darknet_ros.git

即可下载

随后进行usb摄像头调试,很麻烦 很多问题!如果想轻松的话,最好直接使用适配linux的无驱动也就是UVC(USB Video Class 相当与linux下的万能摄像头驱动)。
通过usb_cam进行测试,具体参考大佬

https://blog.csdn.net/u013453604/article/details/47189513?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166549122616782417044426%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=166549122616782417044426&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allbaidu_landing_v2~default-1-47189513-null-null.142v52pc_rank_34_queryrelevant25,201v3control_1&utm_term=%201%3A%20v4l2-ctl%3A%20not%20found&spm=1018.2226.3001.4187
—————————————————————————————————————————https://blog.csdn.net/KID_yuan/article/details/101272384?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166549001816782428675306%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=166549001816782428675306&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~pc_rank_34-2-101272384-null-null.142v52pc_rank_34_queryrelevant25,201v3control_1&utm_term=%5B%20WARN%5D%20%5B1665489986.566518344%5D%3A%20Camera%20calibration%20file%20%2Fhome%2Fliqi%2F.ros%2Fcamera_info%2Fhead_camera.yaml%20not%20found.&spm=1018.2226.3001.4187

遇到的几个问题,首先是摄像头不显示,需要查看摄像头设备

ll /dev/video*

一般来说是video0,如果本机有摄像头的话就是video1,需要在launch文件中更改。其次需要安装v4l2-ctl工具包,其中包含libv4l库,可帮助V4L2应用程序处理不同的视频格式,包括某些特定网络摄像头型号上的格式;其也需要该工具调试usb摄像头。
参考

https://blog.csdn.net/qq_50808730/article/details/125503978?ops_request_misc=&request_id=&biz_id=102&utm_term=v4l2-ctl 工具包&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-1-125503978.142v53pc_rank_34_2,201v3control_1&spm=1018.2226.3001.4187

查看摄像头所有参数

 sudo v4l2-ctl -d  /dev/video0 --all
设备参数
Driver Info (not using libv4l2):Driver name   : vc032xCard type     : USB2.0 Web CameraBus info      : usb-0000:00:1a.7-6Driver version: 5.4.203Capabilities  : 0x85200001Video CaptureRead/WriteStreamingExtended Pix FormatDevice CapabilitiesDevice Caps   : 0x05200001Video CaptureRead/WriteStreamingExtended Pix Format
Priority: 2
Video input : 0 (vc032x: ok)
Format Video Capture:Width/Height      : 640/480Pixel Format      : 'JPEG'Field             : NoneBytes per Line    : 640Size Image        : 115790Colorspace        : JPEGTransfer Function : Default (maps to sRGB)YCbCr/HSV Encoding: Default (maps to ITU-R 601)Quantization      : Default (maps to Full Range)Flags             :
Streaming Parameters Video Capture:Frames per second: invalid (0/0)Read buffers     : 2

在这里会看到摄像头的 压缩格式、支持的分辨率、像素格式,颜色空间和支持功能设备名称等等。
随后还可能会出现黑屏、画屏、卡屏等情况。需要根据设备参数 在launch文件中进行修改。上述文章提及到了,还有也容易找到,能不能解决不一定。

同时测试摄像头建议使用camorama 因为使用茄子时,我的摄像头检测不到,可能是我的问题。但目前猜测是没有下载驱动影响,因为我暂时实验的是web-camera ,并不是UVC。
命令行下载软件调用USB摄像头

这里是引用
1)使用应用程序camorama
输入命令:sudo apt-get install camorama
安装完成后,在终端中输入命令:camorama,即可显示出视频信息;
如果指定打开video2,输入命令:
camorama -d /dev/video2
2)使用应用程序茄子(cheese)
输入命令:sudo apt-get install cheese
装好后,用命令:cheese,即可打开。如果指定打开video1,输入命令:cheese -d /dev/video1

2022.11.14
搭建darkner-ros训练

将近一个月耽误了,没进行研究,下面重新整理了一下。

目前情况是准备将项目中各模块进行单独实验,比如上诉的darknet-ros进行锥筒的检测。
近期购买了一个摄像头【适配linux的无驱动也就是UVC】,通过usb_cam进行实验,可以显示,新购买的usb摄像头并没出现问题。随后进行darknet实验。
下面进行整理:
上述已经下载好了darknet_ros和usb_cam,下载后建议进行测试:

测试
下载后,在工作空间执行

catkin_make -DCMAKE_BUILD_TYPE=Release

该命令会对整个项目进行编译,此过程中将会检测项目中是否已经下载了yolov2-tiny.weights和yolov3.weights两个模型文件,默认是不下载的,可以下载号好复制到 {自己的工作空间}/darknet_ros/darknet_ros/yolo_network_config/weights 文件夹下。

编译后进行测试,此处需要调用usb摄像头。
首先执行roslaunch usb_cam usb_cam-test.launch 启动摄像头

通过rostopic 查看发布话题名称
当然,图像上已经显示了usb_cam发布的话题名称,我们需要让darknet_ros订阅该话题。
我们在****/src/darknet_ros/darknet_ros/config/ros.yaml 中 将camera_reading: 的topic 更改为 /usb_cam/image_raw


返回你的工作空间 进行测试:roslaunch darknet_ros darknet_ros.launch

执行效果如下
在这里可以看到识别的图像、终端中显示的类别与概率。上面还有FPS,正常cpu跑的话fps只有0.1,通过FPU加速会提高。(但是我这工作室的古董,实在是应该淘汰了 qaq。。。。。)

这里还要提到,如何更换检测权重(模型),和使用GPU。
更换权重:

在darknet_ros.launch 中更改,如:

arg name="network_param_file"         default="$(find darknet_ros)/config/yolov2-tiny.yaml"/改为
arg name="network_param_file"         default="$(find darknet_ros)/config/yolov3.yaml"/

如何使用gpu、cuda、cudnn可以参考该文章,主要更改darknet_ros文件里面的Makefile编译文件,很详细:

https://blog.csdn.net/weixin_42458522/article/details/120205982?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166832034716800182163670%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=166832034716800182163670&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-4-120205982-null-null.142^v63^control,201^v3^control_1,213^v2^t3_esquery_v3&utm_term=yolov3_ros%20fps&spm=1018.2226.3001.4187

重点说:

首先 cuda、cudnn一定要安装适配版本的,多去网上查一查,并不是越高越好。就显卡驱动而言,本机推荐470,cuda推荐11.x,但是我显卡的算力只有3,这导致了我出现了很多错误,现在解决了,没截图。。。。。。。

大概就是,根据显卡算力去选cuda,根据cuda下载cudnn。据说驱动版本越新越好,都是向下兼容的。新的驱动仍然支持旧的cuda,但旧的驱动就无法支持新版本的cuda,但是我不确定我出现的问题是不是驱动影响,以防万一,还是更换了。

本机3算力,驱动最开始用的470,这个不知道影响不影响,但是以防万一,我换成了390,只是为了更换cuda8.0的版本。为什么?还是那句话,我的算力只有3。正常cuda也是向下兼容的,但是我的太下了!!!!!cuda10.x支持3.7,5.0,6.0,7.0算力,不支持,所以只能根还cuda8.0,再者选择cudnn6.0(适配cuda8.0)。
cuda8.0及cudnn6.0 参考:

https://blog.csdn.net/weixin_42125799/article/details/88171510?spm=1001.2101.3001.6650.5&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-5-88171510-blog-79660547.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-5-88171510-blog-79660547.pc_relevant_default&utm_relevant_index=9

这里面更换驱动也有很多坑,黑屏,无法开机之类的,多数是驱动不适配,直接命令行卸载再重新安装就好。自行查找吧。

训练自己的数据集:
直接参考:

https://www.cnblogs.com/answerThe/p/11481564.html

很详细,但是要根据自己的情况进行更改。然后目前我这个还不知道为什么 无法使用GPU进行训练,按要求弄得,用不了。。。

11.15 更改,解决上述问题

为什么使用不了GPU?因为你makefile文件没修改完全,上述参考改了三个部分,但是还有一点需要修改:



提醒需要注意的是,与cuda相关的 都改为自身路径。

【方程式无人赛车FSAC 从0到0.5 (个人资料,侵权请联系)】相关推荐

  1. android 4.0.3固件,Vi30豪华版_Android4.0.3-1.0测试版固件刷机教程【MM刷机】

    本帖最后由 ㄣ溡绱MM 于 2012-4-9 08:58 编辑 今晚有些睡不着,就到官网逛了一下刷一下,下面是具体刷的固件介绍及教程: [固件名称]Vi30豪华版_Android4.0.3-1.0测试 ...

  2. libgstreamer-1.0.so.0: cannot open shared object file: No such file or directory

    1. 问题现象 error while loading shared libraries: libgstreamer-1.0.so.0: cannot open shared object file: ...

  3. c+语言+null,C/C++语言中NULL、'\0’和0的区别

    NULL.'\0'和0的值是一样的,都是0,不过它们的表现形式不一样: 1. NULL: 即空指针,不过在C和C++中并不一样.在VS 2013的库文件string.h中可以看到如果定义. 1 /* ...

  4. Ubuntu14.04 64位机上安装cuda8.0+cudnn5.0操作步骤

    查看Ubuntu14.04 64位上显卡信息,执行: lspci | grep -i vga lspci -v -s 01:00.0 nvidia-smi 第一条此命令可以显示一些显卡的相关信息:如果 ...

  5. Spring Cloud Alibaba 基础教程:Nacos 生产级版本 0.8.0

    Spring Cloud Alibaba 基础教程:Nacos 生产级版本 0.8.0 昨晚Nacos社区发布了第一个生产级版本:0.8.0.由于该版本除了Bug修复之外,还提供了几个生产管理非常重要 ...

  6. Silverlight 3发布新版3.0.50106.0

    微软1月19日发布Silverlight 3新版本3.0.50106.0. 该版本主要修复以下几个问题: 问题一: 当使用图形硬件加速功能(GPU)的时候,如果GPU驱动报错,Silverlight ...

  7. AS1.0(2.0)中的XML示例

    虽然Flash早就升级为AS3.0,但是FMS的服务端编程依然仅支持AS1.0(2.0),服务端与.net通讯的最简单方式莫过于请求一个RESTful的webService或wcf,通过它们返回的xm ...

  8. 多数编程语言里的0.1+0.2≠0.3?

    作者 | Parul Malhotra 译者 | Raku 出品 | AI科技大本营(ID:rgznai100) 我们从小就被教导说0.1+0.2=0.3,但是在奇妙的计算机编程世界里面,事情变得不一 ...

  9. flannel原理初探针对0.1.0版本

    flannel flannel是针对k8s设计的三层的网络解决方案.在k8s中为了使pod之间能够使用一种偏平的网络架构,从而完成跨Pod的网络通信. 官网给的原理图如下: flannel 使用TUN ...

最新文章

  1. JUC并发编程一 并发架构
  2. 【PP】重复生产参数文件说明
  3. 基于php-fpm的配置详解
  4. 数钱数到手抽筋html5,经典说说心情短语 数钱数到手抽筋
  5. java 去掉 t_[Java教程]LocalDateTime去掉T
  6. 区块链的爆发仍为时尚早......
  7. SQL:统计一个数据库中所有表记录的数量
  8. 数学建模(一)层次分析法
  9. 主流操作系统及其特点
  10. IP问问:高精度IP定位|IP查询工具内测(街道级别)
  11. Java 发送163邮件
  12. linux查看任务计划结果,Linux 计划任务
  13. 如何高效的利用谷歌学术搜索文献
  14. 自我救赎,成就希望——小说《致加西亚的信》的读后感范文3400字
  15. 第26课时,实践4,定期存款利息计算器
  16. B站CEO陈睿:我们活跃用户仍维持高增长 动能是独特优质内容
  17. MAC 清除 DNS 缓存
  18. OEM/ODM/OBM
  19. 几何分布的期望和方差公式推导_算法数学基础-统计学最基础之均值、方差、协方差、矩...
  20. 堆排序(最小堆)C++

热门文章

  1. java面试宝典备份
  2. SVGIconImageList VCL FMX Crack
  3. JavaSpringCloud-统一网关GateWay
  4. 借贷记账法下的账户结构
  5. 【U8+】用友U8+现金流量参照科目为对方科目时,现金流量表的设置
  6. Don't know how to handle message of type 'java.lang.String'. Are you missing a protocol encoder?
  7. 梦幻桌面wmv_【系统萌化】pjdex制作的梦幻桌面8wmv动态背景
  8. DSP中 EALLOW 和 EDIS的作用
  9. WiFi ADB 目标设备拒接或者连接主机没有反应10060
  10. java读取藏文_藏文热点词处理系统(java+xml)附源码