目标检测之YOLO

标签: 无 分类: 机器学习 创建时间:2024-10-18 03:36:14 更新时间:2025-01-17 10:39:24

1.安装依赖

安装依赖,我也是废了很久的时间,还真是扯淡啊,总是有各种各样的问题,最后终于还是解决了。

  • window
    windos 安装GPU比较简单,安装 NVIDIA 驱动, nvidia-smi 查看 CUDA 版本, CUDA官网 找到对应版本,然后下载安装,使用nvcc -V查看是否安装成功即可。

  • Linux
    也是先安装英伟达的驱动,安装驱动,然后下载 cuda ,安装。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 查看 cuda 版本,前提已经安好了GPU的各项驱动
nvidia-smi

# 创建虚拟环境
conda create --name yolo python=3.9
# 切换虚拟环境
conda activate yolo

# https://pytorch.org/ 找到对应版本的 cuda 进行安装,我这里是 cuda 12.6 版本, 我用 pip 进行安装,结果gpu不可用
# pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu126
# 但是没有12.6版本的安装了,只能用12.4安装
# 安装 pytorch
conda install pytorch pytorch torchvision torchaudio pytorch-cuda=12.4 -c pytorch -c nvidia

# 使用pip安装
pip install ultralytics
参考文章:
【1】.解决无法将“yolo”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。
【2】.Windows 11系统更新CUDA并安装PyTorch环境
【3】.Start Locally 这里指导了如何进行安装GPU
【4】.超详细的YOLOv8安装与测试指南:让计算机视觉任务变得简单 pip安装,Conda安装、Git克隆、Docker安装
【5】.anaconda虚拟环境管理,从此Python版本不用愁
【6】.conda建立虚拟环境并安装相应包
【7】.CUDA安装教程(超详细Windows版) 输入 nvidia-smi 回车得到以下窗口,这里的12.2就是驱动对应的最高版本,我们所安装的CUDA版本小于等于它即可.COUA下载官网(点击跳转) 选择任意版本号小于等于上述最高版本的即可,按 Win键 + R键,打开Windows命令运行框,并输入 cmd 回车(Enter)
打开Windows控制台命令窗口,输入 nvcc -V (注意-前有空格)回车得到以下窗口
【8】.Linux 下的 CUDA 安装和使用指南 传统上,安装 NVIDIA Driver 和 CUDA Toolkit 的步骤是分开的,但实际上我们可以直接安装 CUDA Toolkit,系统将自动安装与其版本匹配的 NVIDIA Driver。
【9】.Linux下安装NVIDIA显卡驱动(全流程通俗教程) 前往官方网站:NVIDIA官网
【10】.Linux安装Nvidia显卡驱动+CUDA+cuDNN+PyTorch 这里步骤也挺详细的。

2.YoloV11

最新的Yolo V11版本出来了,我还要去学习这个东西,虽然很多东西都不太懂,但是实践还是要进行的。文章 Ultralytics YOLO V11 初体验—训练COCO数据集—全流程记录 总结了使用 YoloV11 的步骤:

  • 1.新建Conda 虚拟环境。

  • 2.安装GPU pytroch

  • 3.安装Utralytics。
    这里我有一个疑问,就是我明明就是要安装 yolo v11 ,但是截止到2025年01月的时候,我使用 中科大源,还是清华源,最后安装的版本都是 8.3.58。后来我去官方仓库看了看,好像最新的就是 v8.3.58 这个版本,看来是我多虑了。

  • 4.下载YOLO V11 模型
    n、s、m、l、x 分别代表不同的尺寸,尺寸越大,精度越高,相应的也是越慢的。

  • 5.下载COCO数据集。

  • 6.下载 COCO.yaml。

  • 7.搭建训练文件目录。

  • 8.制作txt格式标签。

  • 9.制作存储图片路径的txt文件。

  • 10.修改yaml文件。

  • 11.Code训练代码。

参考文章:
【1】.YOLOv11 | 一文带你深入理解ultralytics最新作品yolov11的创新 | 训练、推理、验证、导出 (附网络结构图) 1.YOLOv11和YOLOv8对比。2.YOLOv11的网络结构解析。3.YOLOv11下载、环境安装、数据集获取。4.模型训练。5.模型验证/测试。6.模型推理。7.模型输出。
【2】.超详细教程YoloV11官方推荐免费数据集网站Roboflow一键导出Voc、COCO、Yolo、Csv等格式 YoloV8官方推荐了一个数据集网站,就是Roboflow。Roboflow是一个数据集管理平台,提供了免费的数据集,同时也支持上传自己的数据集进行格式转换。使用Roboflow,开发者可以方便地获取所需格式的数据集,无需手动转换格式。此外,Roboflow还提供了多种数据预处理、数据增强等功能,可帮助开发者更好地优化训练数据
【3】.YOLOv11与YOLOv8详细对比分析:mAP、Speed、Params、FLOPs 这里对比了 yolov8 和 yolov11 的区别,从性能、速度和准确率上进行对比。
【4】.目标检测:YOLOv11(Ultralytics)环境配置,适合0基础纯小白,超详细 这里进行了多个软件安装:Anaconda3安装、Pycharm安装、安装cuda及cudnn、创建虚拟环境
【5】.PyTorch训练YOLOv11—训练篇(detect)—Windows系统
【6】.【pytorch】查看torch的gpu是否可用 torch.cuda.device_count()

问题

(1) No module named ‘torch’
非常的奇怪,明明使用conda安装了依赖,结果还是不行。

【解决方案】

1
2
3
4
# 删除
conda remove -n yolo11 --all
# 新建
conda create -n yolo11 python=3.11
小额赞助
本人提供免费与付费咨询服务,感谢您的支持!赞助请发邮件通知,方便公布您的善意!
**光 3.01 元
Sun 3.00 元
bibichuan 3.00 元
微信公众号
广告位
诚心邀请广大金主爸爸洽谈合作
每日一省
isNaN 和 Number.isNaN 函数的区别?

1.函数 isNaN 接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返回 true,因此非数字值传入也会返回 true ,会影响 NaN 的判断。

2.函数 Number.isNaN 会首先判断传入参数是否为数字,如果是数字再继续判断是否为 NaN ,不会进行数据类型的转换,这种方法对于 NaN 的判断更为准确。

每日二省
为什么0.1+0.2 ! == 0.3,如何让其相等?

一个直接的解决方法就是设置一个误差范围,通常称为“机器精度”。对JavaScript来说,这个值通常为2-52,在ES6中,提供了Number.EPSILON属性,而它的值就是2-52,只要判断0.1+0.2-0.3是否小于Number.EPSILON,如果小于,就可以判断为0.1+0.2 ===0.3。

每日三省
== 操作符的强制类型转换规则?

1.首先会判断两者类型是否**相同,**相同的话就比较两者的大小。

2.类型不相同的话,就会进行类型转换。

3.会先判断是否在对比 null 和 undefined,是的话就会返回 true。

4.判断两者类型是否为 string 和 number,是的话就会将字符串转换为 number。

5.判断其中一方是否为 boolean,是的话就会把 boolean 转为 number 再进行判断。

6.判断其中一方是否为 object 且另一方为 string、number 或者 symbol,是的话就会把 object 转为原始类型再进行判断。

每日英语
Happiness is time precipitation, smile is the lonely sad.
幸福是年华的沉淀,微笑是寂寞的悲伤。