Python抓取摄像头图像,进行AI识别(二):YOLO模型选择与安装

手把手教你如何安装与使用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-伍六七 ”,获取最直接资讯!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值