深度学习YOLO实战:1、只需两步,轻松入门YOLO目标检测
YOLO是一种高效的目标检测算法,能够在单次处理中同时识别和定位图像中的多个物体。其核心优势在于速度快、精度高,支持目标检测、姿态估计、实例分割等多种功能。YOLO通过划分网格并预测边界框实现检测,采用非极大值抑制优化结果。目前已迭代多个版本,最新为YOLOv8,广泛应用于自动驾驶、安防监控等领域。安装时需配置Python环境,安装Ultralytics包和PyTorch框架,建议初学者从轻量级y
简介
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)来加速计算的话。

以下是一些主要选项的说明,帮助你做出选择:
- PyTorch Build(版本类型)
- Stable(稳定版):推荐大多数用户使用。这个版本经过充分测试,bug较少,适合用于正式项目和学习。
- Preview(预览版):包含最新功能,适合想尝鲜的开发者,但稳定性可能不如稳定版。
- 操作系统
- 根据你使用的系统(Linux、Windows 或 macOS)选择即可。
- 编程语言
- 对于绝大多数用户,选择 Python 即可,这也是本教程使用的方式。
- 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
这段输出日志告诉你什么呢?我们来解读一下:
- 环境配置一览:开头几行显示了你当前的环境,包括 Ultralytics、Python、PyTorch 的版本,以及正在使用 CPU 进行计算。
- YOLO的火眼金睛:它使用默认的
yolo11n模型,自动对两张自带的示例图片进行了检测:- 第一张图 (
bus.jpg):识别出了 4个人 和 1辆公交车,处理耗时约 56.9毫秒。 - 第二张图 (
zidane.jpg):识别出了 2个人 和 1条领带,处理耗时约 43.1毫秒。
- 第一张图 (
- 结果在哪里:所有处理后的图片和详细数据都已经保存到了
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开发环境。现在,你可以选择最适合自己的方式,继续后面的学习和开发了。

更多推荐
所有评论(0)