手把手教你如何安装与使用YOLO模型进行目标检测
🌈嘿,小伙伴们!
在上一篇文章中,我们探讨了如何利用 Python 抓取摄像头的实时图像,今儿咱们接着往下整,继续唠唠AI 图像识别的奥秘第二弹——AI视觉模型的选择与安装
AI视觉,到底能干啥?
AI 视觉技术在众多领域大放异彩,如:
-
图像分类:在零售和电商领域,可自动对商品图片进行分类,提高库存管理效率
-
目标检测:在自动驾驶领域,能够识别道路标志、交通信号灯、行人和其它车辆等,为车辆决策提供依据
-
图像分割:在医学图像分析中,可对病变部位进行精准分割,辅助医生进行诊断
-
目标跟踪:在运动分析方面,能对运动员动作进行实时跟踪和分析,助力运动训练和康复
-
OCR字符识别:在车牌识别领域,可快速准确地识别车辆的车牌号码
-
图像生成:在虚拟现实领域,能够创建逼真的虚拟环境,提升用户体验
YOLO:目标检测界的"璀璨明星”
🎯目标检测作为 AI 视觉的核心领域,能精准识别和定位图像或视频帧中的目标。自YOLO出现后,这一领域发生了革命性的变革
2015年,美国华盛顿大学博士Joseph Redmon首次提出 YOLO(You Only Look Once)目标检测算法
该算法将区域提议与分类巧妙融合于单一神经网络,彻底革新了实时目标检测,大幅削减了计算时间,实现了高效的端到端学习
Joseph Redmon在主导维护完YOLOv3版本后停止对YOLO后续版本的维护,原因是对其研究成果可能被用于军事或恶意用途(如:无人机等自动武器、监控系统等)的担忧,这与他的学术初衷冲突,他认为AI技术应服务于社会福祉,而非加剧安全风险
YOLO 算法的逻辑
YOLO算法会把检测对象图片切成S×S个小方块,像切蛋糕一样。然后用卷积提取特征,得到一个特征图。特征图的每个小格子就像个小侦探,对应原始图片的一个小方块,负责找目标。如果目标中心在小方块里,小侦探就预测目标的大小、形状和类别。这就是YOLO的核心思路,简单直接
传统算法(如R-CNN) | YOLO算法 |
---|---|
分步骤处理:先找候选区域,再分类 | 一步到位:直接在网格中预测 |
处理一张图可能需要几秒 | 处理一张图只需0.01秒(实时) |
像用放大镜找目标,慢但可能更准 | 像用眼睛扫,快且足够准 |
YOLO 家族大揭秘
📌自15年横空出世后,YOLO已从V1版本历经多次迭代升级至V11版本,每个版本都独具特色并适用于不同场景
📌每个模型特定介绍:
版本 | 发布日期 | 主要特点及改进 |
---|---|---|
YOLOv1 | 2015年 | 首次单次前向传播,检测速度快,小物体检测精度低,定位误差高 |
YOLOv2 | 2016年 | 引入anchor boxes,改进小物体检测,增强模型鲁棒性 |
YOLOv3 | 2018年 | 使用Darknet-53,引入FPN,提升不同尺度目标检测能力 |
YOLOv4 | 2020年 | 融合CSP连接和Mosaic数据增强,平衡训练策略和推理成本 |
YOLOv5 | 2020年6月 | 使用PyTorch开发,易用性和性能显著提升,成为热门选择 |
YOLOv6 | 2022年 | 美团开发,优化模型结构和训练策略,提高检测精度和速度 |
YOLOv7 | 2022年 | 改进轻量化与精度平衡,引入新训练技术和优化方法 |
YOLOv8 | 2023年 | 无锚检测头,先进骨干网络,优化精度与速度,支持多种视觉任务 |
YOLOv9 | 2024年 | 引入自动化训练与优化技术,提高模型适应性和检测性能 |
YOLOv10 | 2024年 | 超大规模模型,提升泛化能力和实时性能,应对复杂场景 |
YOLOv11 | 2024年10月 | 创新模型结构和训练方法,增强检测精度和效率 |
YOLOv5 为啥选择它?
📌抓取摄像头图像后需快速进行目标检测,YOLOv5是不错的选择,其特点如下:
高精度与高效率:YOLOv5在保持较高检测精度的同时,具有非常快的推理速度。它能够在实时视频流中快速检测目标,适合需要快速处理大量图像数据的场景
多版本支持:YOLOv5提供了多个版本(如n、s、m、l、x)用户可根据自己需求选择不同大小的模型。如对于资源受限的设备(如移动设备)可选择轻量级版本(如YOLOv5n),对于需更高精度场景可选择较大版本(如YOLOv5x)
易于部署:YOLOv5基于PyTorch开发,PyTorch以其流行的深度学习框架、强大的社区支持和丰富资源,使YOLOv5代码易懂易改,便于定制开发。其清晰的代码结构和完整的训练推理脚本,让模型从训练到部署变得简单快捷。同时支持ONNX、TorchScript等多种导出格式,利于跨平台部署
活跃的社区:YOLOv5有一个非常活跃的社区,开发者可以轻松找到大量的教程、预训练模型和案例。这使得新手能够快速上手,并在遇到问题时获得及时的帮助
5步教你安装与使用YOLO模型
1:下载YOLOv5模型源码
方式1:Github网址下载
Yolov5 Github地址:https://github.com/ultralytics/yolov5下图所示:
方式2:使用命令行克隆
在安装好Python情况下(推荐 Python 3.8+版本),在命令行终端里输入以下命令把 YOLOv5 源代码从 GitHub 上克隆下来:
git clone https://github.com/ultralytics/yolov5.git
方式3:通过国内镜像下载
如果你在国内访问 GitHub 速度较慢,可以使用国内的镜像站来下载 YOLOv5 源码如用Gitee的镜像地址来克隆YOLOv5源码,示例如下:
git clone https://gitee.com/monkeycc/yolov5.git
也可通过国内开发者共享的网盘链接进行下载
2:熟悉YOLOv5 文件架构
当你克隆了 YOLOv5 的 源代码仓库后,你会看到如下图所示的文件架构,搞清楚它的文件夹和文件都是干啥用的,能帮你在训练与使用模型时更得心应手
yolov5/
├── data/
├── models/
├── runs/
├── utils/
├── weights/
├── .gitignore
├── detect.py
├── train.py
├── val.py
├── requirements.txt
文件夹/文件名称 | 作用描述 |
---|---|
data/ | 存放数据集 |
models/ | 存放预训练模型文件和模型配置文件 |
runs/ | 存放运行结果(检测结果、训练结果等) |
utils/ | 是一堆工具函数,用来完成各种任务 |
weights/ | 存放的是模型权重文件 |
detect.py | 检测脚本,用来对图片或视频进行目标检测 |
train.py | 训练脚本,用来训练模型 |
val.py | 验证脚本,用来验证模型的性能 |
requirements.txt | 文件里列出了运行所需要的依赖包 |
3:安装模型所需的依赖包
YOLOv5 运行需一些第三方 Python 包来支持,详见下图所示:
上述依赖包清单会存放在requirements.txt 文件内,输入以下命令安装:
pip install -r requirements.txt
🌱这个命令会根据 requirements.txt 文件里的列表,自动帮你安装所有需要的包,比如 NumPy、OpenCV 等等,耐心等它安装完就行
也可指定国内镜像源来加速下载,以清华大学镜像源为例,进入 YOLOv5 项目目录后运行以下命令:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
✅备注:为了避免不同项目的包发生冲突,安装 YOLO 模型时推荐使用 Conda 或虚拟环境来管理依赖包,虚拟环境的创建和使用方法,可参考前面的文章:《pip秘籍:Python包管理的10个高效秘招》
4:下载预训练模型
📌官方预训练模型:基于COCO数据集训练已学习到通用的目标特征(如形状、纹理、颜色等),相当于具备了“基础认知能力”能识别人/交通工具/动物等80多种物体
当再次训练时,模型会基于这些已有知识,针对新任务进行优化,避免“从零开始学习”,提升训练效率和效果
YOLOv5官方提供(如 YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x 等)多种预训练模型,可根据自己的需求选择,下载地址https://github.com/ultralytics/yolov5/releases找到对应的模型文件,点击下载如下图所示:
5:使用模型进行检测推理
完成以上4步后,需验证模型是否能正常工作,利用官方预训练模型进行推理测试
案例:检测1张名为test.jpg的图片,内容是苹果与橘子交叉排列,如下图所示:
将图片存放在YOLOv5/data/images目录下,去到YOLOv5文件下,利用官方的预训练模型yolov5s.pt及自带的detect.py
脚本,一句代码完成对test图片的检测
🌱示例代码如下:
python detect.py --weights yolov5s.pt --source data/images/test.jpg
✅检测结果:默认会保存在YOLOv5项目下的runs/detect目录下,结构将带有检测框和置信值,如下所示:
🔍至此,模型OK,能正常工作自动推理检测
结语:
🚀通过以上内容分享,相信你对 AI 视觉与 YOLO 目标检测有了初步的了解。下次内容将分享如何训练模型、快速 AI图像标注训练集
📌如你对这些内容感兴趣,欢迎关注我,将持续更新,带你探索Pyhton更多奥秘。下次见!
📌了解更多,可关注我的微信公众号 / 知乎号:“ Python-伍六七 ”,获取最直接资讯!