简介

YOLO(You Only Look Once),这个名字直译过来就是“你只看一次”,它是一种非常流行的目标检测算法,在计算机视觉领域扮演着关键角色。它的核心优势在于,能够既快速又准确地在图像或视频里找出各种物体,并 pinpoint 它们的精确位置。下面,我们就来详细了解一下这位“视觉尖兵”。

主要功能

YOLO的本领很全面,远不止是找东西那么简单:

  • 目标检测:这是它的看家本领。YOLO不仅能识别出图像里有什么(比如是人、车还是一只猫),还能用一个方框(边界框)把物体的位置给标出来。
  • 姿态估计:进阶一些,YOLO还能估算出物体的姿态,也就是它的朝向和具体方位。
  • 实例分割:在某些高级版本中,YOLO甚至能做到像素级的“抠图”,将每个被检测到的物体精确地从背景中分离出来,区分开不同的个体。
  • 图像分类:虽然检测是主业,但简单地给整张图像分个类、打上个标签,对YOLO来说也是小菜一碟。

工作原理

YOLO之所以快,秘诀就在于它的“单阶段检测”机制。它不像有些算法那样需要分两步走(先找可能区域,再细看),而是直接一步到位,非常高效。具体来说,它是这么干的:

  • 划分网格:首先,它会把输入图像划分成一个个小格子。
  • 主动预测:接着,每个格子都会主动预测出几个可能的物体边界框,并给出每个框的“靠谱程度”(置信度)。
  • 判断类别:对于每个边界框,它还会同时预测里面物体最可能属于哪个类别。
  • 去芜存菁:最后,通过一个叫“非极大值抑制”的聪明办法,把所有重复、多余的框框去掉,只留下最准确、最自信的那个检测结果。

优点

YOLO能这么受欢迎,主要是因为它有几个突出的优点:

  • 速度飞快:得益于其一步到位的设计,它的处理速度极具优势,特别适合需要实时分析的场景,比如视频监控。
  • 精度很高:在保证速度的同时,它的检测准确度也相当能打,在许多公开数据集上都表现优异。
  • 简单好用:它的整体思想清晰,实现起来相对直接,而且有着非常活跃的社区,提供了大量预训练模型和工具,对新手和研究者都很友好。

版本

自诞生以来,YOLO家族也在不断进化,推出了多个版本,各有千秋:

  • YOLOv1:开山之作,提出了革命性的单次检测思想。
  • YOLOv2:也叫Darknet-19,在精度和速度上做了显著提升。
  • YOLOv3:引入了多尺度检测的强大能力,能更好地识别不同大小的物体。
  • YOLOv4:在性能上做到了极致,整合了许多新的训练技巧和架构优化。
  • YOLOv5:进一步提升了易用性,采用PyTorch框架,使得部署和应用变得更加简单。
  • YOLOv8:目前最新的稳定版本,由Ultralytics开发,在性能和功能易用性上达到了新的高度。

应用场景

YOLO的强大能力,让它在我们生活的许多方面都大显身手:

  • 自动驾驶:帮助汽车实时识别前方的车辆、行人、交通标志和障碍物。
  • 安防监控:在机场、车站等公共场所,用于实时分析视频流,检测异常行为或可疑物品。
  • 机器人视觉:充当机器人的“眼睛”,让它们能够识别、定位并抓取特定的物体。
  • 医学图像分析:辅助医生在CT、MRI等医学影像中快速定位和识别病变区域,如肿瘤或异常组织。

常规安装

python

Python 是一门非常流行的编程语言,它的语法清晰直观,功能强大,被广泛应用于Web开发、数据分析、人工智能等多个领域。同时,它支持多种编程风格,无论是面向对象、函数式还是过程式编程,都能轻松胜任。

在大多数 Linux 发行版中,Python 通常已经预装了。但如果你需要安装,或者想更新到更新的版本,可以按照以下步骤操作:

首先,打开终端,执行以下命令来更新软件包列表并安装 Python3:

sudo apt update
sudo apt install python3

安装完成后,最好验证一下是否成功。只需在终端里输入:

python3 --version

如果一切顺利,会看到类似这样的版本信息,这表示 Python 已经准备就绪了:

Python 3.12.3

Ultralytics

为了使用 YOLO,推荐直接安装由官方团队 Ultralytics 提供的 ultralytics Python 包。这个包封装了所有必要的功能,让你无需关心复杂的源码和依赖,能够开箱即用。

安装非常简单,只需在命令行中运行:

pip install ultralytics

这个命令会自动帮你安装 ultralytics 包以及它所依赖的所有其他库。

安装完成后,你可以通过以下命令来快速检查安装是否成功,并查看具体的版本号:

yolo -v

如果安装正确,终端会显示当前的 YOLO 版本号,例如:

8.3.213

Ultralytics Assets

想要直接使用YOLO进行目标检测,除了安装软件包,预训练模型文件也必不可少。

这些文件包含了模型在庞大图像数据集上学到的“知识”和“经验”(即权重参数),让你无需从头训练,就能直接用于推理预测,或者基于它进行微调以适应特定任务。

Ultralytics官方贴心地提供了从轻量到高精度的一系列预训练模型,方便我们按需选择。

如何下载模型

可以直接访问 Ultralytics Assets 这个官方GitHub页面,所有公开发布的预训练模型都在这里。这些模型文件通常以 .pt 为后缀,下载后即可直接加载使用。

输入图片说明

如何选择模型

打开发布页面后,你会看到YOLO系列(例如YOLOv11)下有多个不同大小的模型,它们主要按体积和性能分为五类:

模型名称 模型特点与适用场景
yolo11n (Nano) 极致轻量,速度最快,专为资源受限的嵌入式或移动设备设计。
yolo11s (Small) 轻量快速,在保持高速度的同时,精度比Nano版有所提升。
yolo11m (Medium) 均衡之选,在精度和速度间取得了很好的平衡,适用于大多数通用场景。
yolo11l (Large) 高精度,检测更准确,但计算成本更高,适合对精度要求严苛的任务。
yolo11x (Extra Large) 极致性能,性能最强大,包含更多优化,用于追求最高检测质量的场景。

给初学者的建议

如果你刚开始接触YOLO,强烈建议从 yolo11n.pt 这个模型入手。

选择它的理由很简单:它体积小、速度快,能让你在普通的电脑上也能流畅地进行第一次目标检测实验,快速看到效果、建立信心。等到你更加熟悉之后,再根据实际项目对精度或速度的要求,去尝试更大的模型。

PyTorch

PyTorch 是一个广受欢迎的开源深度学习框架,尤其以其灵活性和易用性著称。无论你是想搭建简单的机器学习模型,还是实现复杂的深度学习架构,它提供的丰富工具和库都能很好地支持。

PyTorch 最大的亮点之一是它的动态计算图,这让研究人员和开发者能够在运行时灵活调整模型结构,特别适合需要快速实验和迭代的场景。

安装 PyTorch

安装 PyTorch 最稳妥的方式是访问其官方安装指南页面。这个页面提供了一个交互式配置工具,你只需要根据自己的开发环境选择相应选项,它就会自动生成最适合你的安装命令。

如何选择安装版本

PyTorch 提供了多种安装选项,主要根据你的硬件配置操作系统来决定。正确选择版本非常重要,特别是如果你希望利用显卡(GPU)来加速计算的话。

输入图片说明

以下是一些主要选项的说明,帮助你做出选择:

  1. PyTorch Build(版本类型)
    • Stable(稳定版):推荐大多数用户使用。这个版本经过充分测试,bug较少,适合用于正式项目和学习。
    • Preview(预览版):包含最新功能,适合想尝鲜的开发者,但稳定性可能不如稳定版。
  2. 操作系统
    • 根据你使用的系统(Linux、Windows 或 macOS)选择即可。
  3. 编程语言
    • 对于绝大多数用户,选择 Python 即可,这也是本教程使用的方式。
  4. Compute Platform(计算平台)
    • 这是最关键的选择,直接决定 PyTorch 能否使用你的显卡加速。你可以参考以下常见配置:
硬件情况 推荐选择
NVIDIA 显卡 (如 RTX 30/40系, GTX 16系) 选择与你的CUDA版本匹配的选项,如 CUDA 12.6
AMD 显卡 (如 Radeon RX 6000/7000系) 选择 ROCm 7.0 或更高版本
没有独立显卡显卡不支持 选择 CPU

举个例子:如果你的开发环境是 Linux 系统,并且没有配备显卡,那么就应该选择 CPU 版本。安装命令会类似下面这样:

pip3 install --pre torch torchvision --index-url https://download.pytorch.org/whl/nightly/cpu

请注意:CPU 版本虽然通用性最强,在任何电脑上都能运行,但其计算速度远低于GPU版本,仅建议用于学习和小型模型的测试。

环境测试

完成前面所有的安装步骤后,最好验证一下整个环境是否已经配置成功。最简单的方法就是直接运行一个预测命令,看看YOLO能不能正常工作。

打开你的终端,输入以下命令:

yolo detect predict

如果一切顺利,你会看到类似下面这样的输出信息:

WARNING ⚠️ 'source' argument is missing. Using default 'source=/home/becase/.local/lib/python3.12/site-packages/ultralytics/assets'.
Ultralytics 8.3.213 🚀 Python-3.12.3 torch-2.10.0.dev20251013+cpu CPU (Intel Core i7-10700 2.90GHz)
YOLO11n summary (fused): 100 layers, 2,616,248 parameters, 0 gradients, 6.5 GFLOPs

image 1/2 /home/becase/.local/lib/python3.12/site-packages/ultralytics/assets/bus.jpg: 640x480 4 persons, 1 bus, 56.9ms
image 2/2 /home/becase/.local/lib/python3.12/site-packages/ultralytics/assets/zidane.jpg: 384x640 2 persons, 1 tie, 43.1ms
Speed: 1.8ms preprocess, 50.0ms inference, 1.4ms postprocess per image at shape (1, 3, 384, 640)
Results saved to /media/becase/common/yolo/runs/detect/predict
💡 Learn more at https://docs.ultralytics.com/modes/predict

这段输出日志告诉你什么呢?我们来解读一下:

  1. 环境配置一览:开头几行显示了你当前的环境,包括 Ultralytics、Python、PyTorch 的版本,以及正在使用 CPU 进行计算。
  2. YOLO的火眼金睛:它使用默认的 yolo11n 模型,自动对两张自带的示例图片进行了检测:
    • 第一张图 (bus.jpg):识别出了 4个人1辆公交车,处理耗时约 56.9毫秒
    • 第二张图 (zidane.jpg):识别出了 2个人1条领带,处理耗时约 43.1毫秒
  3. 结果在哪里:所有处理后的图片和详细数据都已经保存到了 runs/detect/predict 目录下,你可以直接去这个文件夹里查看检测结果。

下图就是执行后生成的检测效果图,可以看到模型成功地在图片中框出了人和物体:

输入图片说明

恭喜你! 如果看到了以上输出和结果图片,就证明你的 YOLO 开发环境已经全部配置成功,可以开始你的目标检测之旅了!

更简单一些

按照前面的常规方法一步步安装,有时候确实可能会遇到各种环境问题,尤其是对新手来说,很容易就被复杂的依赖关系“劝退”了。

别担心,这里推荐一个更省心的方法——使用Docker一键安装。它能帮你跳过所有环境配置的麻烦,唯一的“门槛”就是你得知道Docker是什么,并且已经安装好了它。

Docker是什么?

可以把Docker想象成一个应用程序的“标准化集装箱”。开发者可以把一个应用和它需要的所有环境、依赖都打包进这个“集装箱”里。这样一来,无论你的电脑是什么系统,只要能够运行Docker,就能以完全相同的方式、无障碍地运行这个应用,彻底告别“在我电脑上明明是好的”这种问题。

在Linux上,安装Docker的命令很简单:

sudo apt update
sudo apt install docker.io

安装完成后,可以验证一下:

sudo docker --version

如果成功,你会看到类似输出,表明Docker已经就绪:

Docker version 28.2.2, build 28.2.2-0ubuntu1~24.04.1

小提示:为了后续使用方便,不用每次都输入sudo,建议将当前用户加入docker组:

sudo usermod -aG docker ${USER}

执行后需要重新登录终端才会生效。_

获取预配置好的YOLO Docker镜像

对于YOLO用户来说,Docker的优势太明显了。Ultralytics官方已经为我们准备好了开箱即用的Docker镜像,里面预装了YOLO运行所需的所有环境、依赖甚至预训练模型。

可以在 Docker Hub Ultralytics 页面上看到所有可用的镜像版本。

输入图片说明

根据你的硬件条件,选择拉取对应的镜像:

  • 如果你的机器没有NVIDIA显卡,或不想用GPU,拉取CPU版本:
docker pull ultralytics/ultralytics:latest-cpu

如果你有NVIDIA显卡并希望发挥其性能,拉取支持CUDA的版本(需要已安装NVIDIA Docker运行时):

docker pull ultralytics/ultralytics:latest-nvidia-cuda

测试Docker环境下的YOLO

镜像下载好后,就可以启动一个容器并进入其内部环境了。以CPU版本为例:

docker run --rm -it ultralytics/ultralytics:latest-cpu

在容器内部,运行我们熟悉的预测命令来测试一切是否正常:

yolo detect predict

如果成功,你将看到与之前类似的输出,这证明Docker环境下的YOLO已经完美运行!

Creating new Ultralytics Settings v0.0.6 file ✅ 
View Ultralytics Settings with 'yolo settings' or at '/root/.config/Ultralytics/settings.json'
Update Settings with 'yolo settings key=value', i.e. 'yolo settings runs_dir=path/to/dir'. For help see https://docs.ultralytics.com/quickstart/#ultralytics-settings.
WARNING ⚠️ 'source' argument is missing. Using default 'source=/ultralytics/ultralytics/assets'.
Ultralytics 8.3.213 🚀 Python-3.11.10 torch-2.8.0+cpu CPU (Intel Core i7-10700 2.90GHz)
YOLO11n summary (fused): 100 layers, 2,616,248 parameters, 0 gradients, 6.5 GFLOPs

image 1/2 /ultralytics/ultralytics/assets/bus.jpg: 640x480 4 persons, 1 bus, 57.5ms
image 2/2 /ultralytics/ultralytics/assets/zidane.jpg: 384x640 2 persons, 1 tie, 49.6ms
Speed: 1.7ms preprocess, 53.5ms inference, 1.0ms postprocess per image at shape (1, 3, 384, 640)
Results saved to /ultralytics/runs/detect/predict
💡 Learn more at https://docs.ultralytics.com/modes/predict
VS Code: view Ultralytics VS Code Extension ⚡ at https://docs.ultralytics.com/integrations/vscode

恭喜! 看到这个结果,就意味着你通过Docker这种更“偷懒”的方式,也成功搭建好了YOLO开发环境。现在,你可以选择最适合自己的方式,继续后面的学习和开发了。

输入图片说明

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐