一.YOLOV5介绍
YOLOv5(You Only Look Once version 5)是一个高效的实时物体检测模型,由 Ultralytics 开发。它是 YOLO 系列中的最新版本之一,相比于之前的版本(如 YOLOv3 和 YOLOv4),YOLOv5 在性能和易用性上有了显著的提升。YOLOv5 的主要特点:
YOLOv5 的工作原理:
二.环境配置
系统:ubuntu18.04
GPU:NVIDIA GeForce GTX 1050 Ti
更新显卡信息,非常重要,否则可能识别出错
查看NVIDIA显卡推荐驱动
driver : nvidia-driver-470 - distro non-free recommended
安装推荐的驱动:从“软件与更新”中的“附加驱动”安装即可。
注意:这里选择的NVIDIA的驱动很重要,后面的安装的cuda和cudnn都和显卡的驱动有关系。
注意:这里其实也可以安装其他版本的驱动程序,但是要注意不同的驱动程序对应的CUDA不一样。
通过nvidia-smi查看当前NVIDIA显卡信息:
可以看出当前的GPU的显卡版本为CUDA Version: 11.4
CUDA(Compute Unified Device Architecture)是由 NVIDIA 公司开发的一种并行计算平台和编程模型,允许开发者利用 GPU(图形处理单元)进行通用计算。
这里可以把CUDA理解成NVIDIA封装的一个大型的GPU的驱动程序。
要注意的是,CUDA的版本有很多,需要和相应的显卡进行匹配。
CUDA的下载地址:https://developer.nvidia.com/cuda-toolkit-archive
下载与上文中通过nvidia-smi查看对应的版本即可。
按照上图下载安装。
安装参考:
https://blog.csdn.net/m0_/article/details/?ops_request_misc=%257B%2522request%255Fid%2522%253A%25223F7CD014-38C3-4B7F-8660-5C8AB71C63C7%2522%252C%2522scm%2522%253A%3..pc%255Fall.%2522%257D&request_id=3F7CD014-38C3-4B7F-8660-5C8AB71C63C7&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-1--null-null.142v100pc_search_result_base8&utm_term=ubuntu18.04%E4%B8%8Byolov8%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA&spm=1018.2226.3001.4187
cuDNN(CUDA Deep Neural Network library)是 NVIDIA 为深度学习设计的高性能 GPU 加速库,它专门用于加速神经网络的训练和推理过程。cuDNN 是基于 CUDA 的,能够充分利用 NVIDIA GPU 的并行计算能力,帮助深度学习框架实现高效的计算。
可以把cuDNN理解成NVIDIA在CUDA的基础上开发的一个加速神经网络训练和推理的库。
安装参考:
https://blog.csdn.net/m0_/article/details/?ops_request_misc=%257B%2522request%255Fid%2522%253A%25223F7CD014-38C3-4B7F-8660-5C8AB71C63C7%2522%252C%2522scm%2522%253A%3..pc%255Fall.%2522%257D&request_id=3F7CD014-38C3-4B7F-8660-5C8AB71C63C7&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-1--null-null.142v100pc_search_result_base8&utm_term=ubuntu18.04%E4%B8%8Byolov8%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA&spm=1018.2226.3001.4187
NVIDIA显卡/CUDA/cuDNN这几个东西都是NVIDIA公司开发的,主要的作用就是在神经网络的训练上,提升GPU的使用效率。
PyTorch 是一个开源的深度学习框架,由 Facebook 的人工智能研究团队开发和维护。它提供了灵活且易于使用的工具,用于构建和训练神经网络,广泛应用于计算机视觉、自然语言处理和其他机器学习领域。
PyTorch 的核心特点
YOLOV5就是在pythoch的框架上实现的,另外pythoch除了有python库还有C++库(C++库可能在后面会停更)。pythoch有CPU版本,单独利用CPU进行训练和识别。也有GPU的版本,GPU的版本是在CUDA的基础上实现的,所有在YOLOV5环境的搭建时,绕不开NVIDIA。在环境搭建以前先考虑NVIDIA的显卡(稍微大一些的模型训练都需要)。
总体来说就是:
1.先看训练任务大小选择一个NVIDIA的显卡;
2.根据NVIDIA的显卡来安装驱动;
3.根据NVIDIA的驱动来安装CUDA版本;
4.根据CUDA版本来安装cuDNN;
5.根据CUDA版本来安装PyTorch(这里指的是带GPU的版本)。
6.python基本上要用python3.8(这和ROS melodic版本的python2.7有点尴尬,需要升级ROS才行);
7.训练时使用Anconda来作为YOLOV5的环境配置和管理的工具,这里主要是方便管理。
8.训练结果转换后再移植到ROS比较好(可以使用PyTorch的C++库),这样比较便于后期的项目封装。
三.YOLOV5训练
如果需要对训练模型进行微调的话,最好还是要了解YOLOV5的网络解构和参数意义。如果在原有训练结果的基础上进行训练,只需要了解模型的输入输出就可以。
配置参考:
https://blog.csdn.net/weixin_/article/details/?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522F2F499D7-BFA0-4087-9567-4A08DFA9B37A%2522%252C%2522scm%2522%253A%3.…%2522%257D&request_id=F2F499D7-BFA0-4087-9567-4A08DFA9B37A&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-2--null-null.142v100pc_search_result_base8&utm_term=yolov5%E8%AE%AD%E7%BB%83%E8%87%AA%E5%B7%B1%E7%9A%84&spm=1018.2226.3001.4187
参考上文中的训练步骤。
几个关键的点:
1.预训练权重:预训练权重可以从yolo官网进行下载,可以理解为初始的训练权重。官网提供了很多的权重模板,如yolov5s.pt(主要是量级不一样)。
2.要有合适的数据集合(yolo所需要的数据集是需要提前标注的)。
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/23559.html