新启辰教育
123.06M · 2026-03-05
本人是一名大一的计科学生,在自学深度学习yolo模型。将自己的收获和总结写出来,希望对大家有帮助。如果有错误或者疑问 可以提出来理性讨论。
第一步下载Anaconda(网上有很多详细的步骤教程 由于本文主要是讲述yolo5v就不详细解释了) 第二步 在电脑下端的搜索栏中输入Anaconda 然后应该会显示出名为"Anaconda Prompt"的一个应用 直接点击 然后就会显示出一个类似终端的黑色界面
如果是类似 (base) C:UsersEH> 那说明你下载成功了
但是呢你也可能会像我一样没有前缀(base) 那就说明失败了吗?使用conda init对conda进行初始化,然后重启终端就会自动激活base环境,当然你也可以输入conda activate base手动激活
conda create -n pytorch (这一步只是创建了名为pytorch的空环境)注意:这样会使用当前 Anaconda 的默认 Python 版本,而 PyTorch 和 YOLOv5 可能对 Python 版本有兼容性要求。建议在创建时指定一个稳定的版本conda create -n pytorch python=3.8
conda activate pytorch打开pytorch的官网 选择自己电脑的配置之后 复制下方的命令行到Anaconda Prompt中安装 要注意的是 如果您没有NVIDIA显卡,PyTorch 官网生成的命令默认是CUDA,安装后会报错,您需要照着自己电脑的配置来进行修改。
检查安装包pip list 回车后会打印出来一个列表 这时我们需要的package都还没有安装 于是进入YOLOv5 项目目录执行:pip install -r requirements.txt
关于为什么要创建虚拟环境?
environment.yml 或 requirements.txt 文件,可以轻松记录环境的依赖之后我们在GitHub上clone官方的项目github.com/ultralytics… 然后在vscode里选择虚拟环境
YOLO训练需要标注好的数据,标注信息通常保存为txt文件
标注工具(LabelImg) • 操作步骤:
datasets/
├── images/ # 图片文件夹
│ ├── train/ # 训练集图片
│ └── val/ # 验证集图片
├── labels/ # 标注文件夹
│ ├── train/ # 训练集标注txt
│ └── val/ # 验证集标注txt
└── classes.txt # 类别文件(每行一个类别名,隔一行)
YOLOv5训练需要三个配置文件:网络结构配置文件、数据集配置文件、超参数配置文件。 以下详细说明如何修改并运行训练。
• YOLOv5提供了5种不同大小的网络模型:yolov5s.yaml、yolov5m.yaml、yolov5l.yaml、yolov5x.yaml (一般来说 越大的精度就会越高 但是速度也会越慢)
• 从YOLOv5源码的 models/ 目录下复制一个配置文件(如 yolov5s.yaml)到你的数据集文件夹(或项目目录)
• 修改内容:将文件中的 nc(number of classes)修改为你数据集的类别数其他参数一般无需改动
• 从YOLOv5的 data/ 目录下复制 coco128.yaml 作为模板,重命名为 my_dataset.yaml。
• 修改内容:
path: 数据集的根目录路径
eg.path: /home/user/project/datasets # 数据集根目录
train: 训练集图片路径,相对于 path。例如 images/train(和path是以拼接的形式)
val: 验证集图片路径,相对于 path。例如 images/val(和path是以拼接的形式)
nc: 类别数,与网络配置文件一致。
names: 类别名称列表,与 classes.txt 顺序一致
可选:删除或注释掉文件末尾的下载链接等无关内容
我们这里选用的是官方的模型 我们访问YOLOv5官方Releases页面 打开链接:github.com/ultralytics… 然后在Assets中找到 对应的.pt文件 根据你选的模型配置文件(如 yolov5s.yaml)下载对应的 .pt 文件(如 yolov5s.pt),保持大小版本一致 (你大概率不会直接看到 要点击“Show all assets”展开往下翻才会看到所有文件)
parser.add_argument("--cfg", type=str, default="", help="model.yaml path")关于网络的配置 对应的是cfg 复制yolov5s的相对路径到default中(datasets/yolov5s.yaml)
parser.add_argument("--weights", type=str, default=ROOT / "yolov5s.pt", help="initial weights path")加载预训练模型的(注意路径 默认是yolo5s.pt)
parser.add_argument("--data", type=str, default=ROOT / "data/coco128.yaml", help="dataset.yaml path")配置数据集的文件 我们就修改 default 改成我们自己使用的数据集配置文件
parser.add_argument("--epochs", type=int, default=100, help="total training epochs")这里的100 对应的是 训练的轮次 parser.add_argument("--workers", type=int, default=8, help="max dataloader workers (per RANK in DDP mode)")一般情况下8普通电脑是跑不了的 改为2(最大加载数 属于多线程的操作)这是yolov5自带的一个官方检测代码(第368行)
parser.add_argument("--weights", nargs="+", type=str, default=ROOT / "yolov5s.pt", help="model path or triton URL")
parser.add_argument("--source", type=str, default=ROOT / "data/images", help="file/dir/URL/glob/screen/0(webcam)")
default = camera indexpip install -r requirements.txt(但是这要在(pytorch) PS D:yolov5>项目根目录 中进行)