一、YOLO介绍
1.1 YOLO定义
YOLO(You Only Look Once)是一种流行的实时目标检测算法,它将目标检测任务作为一个回归问题来处理,直接预测图像中所有目标的位置和类别。与传统的目标检测方法(例如 R-CNN 系列)不同,YOLO 通过一个单一的神经网络在一次前向传播中同时进行目标识别和定位,因此非常高效,能够在实时应用中使用。
目标检测(Object Detection):是计算机视觉领域中的一个重要任务,其目的是在图像或视频中识别并定位特定类别的物体。目标检测不仅要求算法识别图像中的物体类别(例如“猫”或“汽车”),还需要确定每个物体的位置,即返回该物体的边界框(bounding box)。这是一个同时涉及分类和定位的任务。
计算机视觉(Computer Vision):是人工智能领域的一个重要分支,旨在让计算机通过模拟人类的视觉系统来理解和分析图像或视频中的信息。简言之,计算机视觉的目标是使机器能够“看”并“理解”视觉数据,就像人类通过眼睛观察世界并理解所见的信息一样。
由于YOLO专注于计算机视觉领域,所以大家第一次接触都会觉得难懂(包括我自己),但本文章只对YOLO做个简单的介绍以及环境的配置,最后有可能还会带你一起实战一下,感受YOLO的魅力所在,所以,本文章并不对计算机视觉等有更深入的解释,有兴趣的看官可以另找资料。
题外话,计算机视觉领域除了数学与编程基础的学习,深度学习和机器学习的知识必不可少,想深入了解的话,各位请自行找资源观看。
1.2 YOLO的主要特点
-
速度快:YOLO 的核心优势在于其速度,它将图像划分为网格,网络在每个网格上进行预测。这种处理方式使得 YOLO 处理图像的速度非常快,适用于实时视频处理。
-
全局信息:YOLO 在进行预测时会考虑整个图像的上下文信息,而不像其他方法那样只关注局部区域。这使得它在一些具有复杂背景或遮挡的场景下也能更准确地进行目标检测。
-
单一神经网络:YOLO 采用单一的卷积神经网络(CNN)架构来同时完成物体检测和分类。这个网络会输出多个边界框(bounding boxes)和相应的类别概率。
-
多尺度检测:YOLO 可以在不同尺度上进行检测,适应不同大小的目标,增加了它在各种场景下的检测能力。
1.3 YOLO的工作原理
-
图像划分:YOLO 首先将输入图像划分为 S×S 的网格,每个网格负责预测图像中某个区域的物体。
-
每个网格的预测:每个网格预测固定数量的边界框,并为每个框分配一个类别概率。这些边界框包括了物体的中心坐标、宽度、高度以及一个置信度分数,置信度表示该框是否包含物体,以及框的精度。
-
非极大值抑制:YOLO 使用非极大值抑制(NMS)来去除重复的框,仅保留最有可能的框。
1.4 YOLO的应用场景
- 视频监控:用于实时检测监控视频中的可疑活动或人脸。
- 自动驾驶:检测路上的行人、车辆、交通标志等。
- 工业自动化:在生产线上进行缺陷检测和质量控制。
- 安防领域:实现入侵检测、区域监控等功能。
1.5 YOLO的版本
目前YOLO最高的版本已经到了yolov11,本文章将使用yolov11,带你领略YOLO的魅力。
二、YOLO的环境配置
2.1 虚拟环境
我们首先打开Anaconda,找到如图1的东西,点击“Lauch”

接下来你看到的是如下画面(图2)

接下来就是按照图3,输入相应代码,格式如下
conda create --name (你创建的虚拟环境的名称) python=(你想使用的版本,这里以3.8为例) 最后注意代码中的空格,强烈建议所有名称用英文

输入以上代码后,按下“Enter”键,程序会执行,如果看到图4情况,请再按下一次“Enter”键即可,最后出现图2一样的画面。

接下来尝试激活我们的虚拟环境,如图5,输入以下代码:
conda activate (你创建的虚拟环境的名称) (activate就是激活的意思)
则在下一行命令中最前面就会如图5一样显示你的虚拟环境的名称,此时虚拟环境已经配置成功。这里我们可以尝试在虚拟环境中导入库,图5我尝试导入numpy和pandas库,按下“Enter”键,应该不会出现太大问题。

2.2 Pytorch的安装与配置
接下来我们会安装Pytorch
PyTorch :是一个开源的深度学习框架,广泛应用于机器学习和计算机视觉、自然语言处理等领域。它由 Facebook 的人工智能研究小组(FAIR)开发,并且在学术界和工业界都得到了广泛的应用。PyTorch 提供了灵活且高效的工具,使研究人员和开发者可以快速构建和训练深度学习模型。
首先,我们要去Pytorch官网(Pytorch官网),然后根据我们的计算机的配置按要求选择系统配置(操作系统、Python版本、CUDA版本),如图6

选择完之后,我们复制“Run this Command”的代码在刚才图5的激活完虚拟环境之后,如图7

按下“Enter”键即可实现安装
2.3 用pycharm打开虚拟环境
用Anaconda打开我们心爱的pycharm,然后点击创建项目,按照图8配置
选择“自定义环境”,类型选择“conda”,环境选择自己所创建的虚拟环境

至此,我们的环境配置已经初步完成。
三、实战尝试
接下来我们将开始尝试我们的第一个项目,使用YOLO实现目标检测与跟踪.
首先,我们需要一段视频,这里我使用的是滑雪的一段视频(ice skating),方便做目标识别,各位看官可以自行找素材(视频内容最好不要太杂乱)
接着,我们打开pycharm,使用我们之前创建的虚拟环境,再输入以下代码
from ultralytics import YOLO
model=YOLO("yolo11n.pt")
results=model("H:\Computer Vision\yolov11\pra\pra1\ice_skating.mp4",save=True,show=True)
其中“model”后面的路径,如果分辨不清楚,可以复制你素材的绝对路径粘贴上去就🆗,其他照着抄就行 。
接下来,我们再pycharm中点击“终端”(如图9,英文版中是“Terminal”)

接下来在终端输入如图10的代码

请注意,这里“python”后面的东西指的是你执行的.py,请输入你自己所命名的.py文件,不要漏掉“.py”了。
按下“Enter”键,等待下载安装......
然后会出现神奇一幕......(如图11),由于无法上传视频,只截了一下图片

然后再左侧你会看见“runs”中有你此次代码运行的结果,也是你“detect”的结果
看到这里,你也已经初步认识到yolo是怎么使用的了。
本文仅仅教了使用YOLO的环境配置,以及简单的演示。
在Github上有非常多yolo的开源项目,各位看官可以去那里看看。
链接:yolo开源项目
如果各位想更深入地学习相关知识,可以从基础开始哦~~~
线代,深度学习,机器学习......
good luck~~~