news 2026/9/28 6:34:48

YOLO12在Ubuntu20.04上的完整安装指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
YOLO12在Ubuntu20.04上的完整安装指南

YOLO12在Ubuntu20.04上的完整安装指南

最近YOLO12的发布在计算机视觉圈子里引起了不小的讨论,作为一个以注意力机制为核心的新一代目标检测模型,它在保持实时性的同时,精度表现相当亮眼。不过,很多朋友在尝试安装部署时遇到了各种问题,特别是CUDA版本、PyTorch兼容性这些老生常谈的坑。

今天我就来手把手带你走一遍YOLO12在Ubuntu20.04上的完整安装流程,从系统环境准备到模型测试,把常见的坑都提前填平。整个过程大概需要30-40分钟,跟着步骤走,基本都能一次成功。

1. 安装前的准备工作

在开始安装YOLO12之前,我们需要先把系统环境准备好。Ubuntu20.04是个比较稳定的选择,很多深度学习框架对这个版本的支持都比较好。

1.1 系统要求检查

首先确认一下你的硬件配置,YOLO12虽然对硬件要求不算特别高,但有几个关键点需要注意:

  • 操作系统:Ubuntu 20.04 LTS(其他版本可能也行,但20.04最稳妥)
  • 内存:至少8GB,建议16GB以上
  • 存储空间:至少20GB可用空间
  • GPU:NVIDIA显卡(支持CUDA),这是必须的,没有GPU跑起来会很慢
  • Python版本:3.8或3.9(我们这里用3.9)

打开终端,先更新一下系统包:

sudo apt update sudo apt upgrade -y

1.2 安装必要的系统工具

接下来安装一些基础工具,这些在后面配置环境时会用到:

sudo apt install -y wget curl git build-essential cmake pkg-config sudo apt install -y libjpeg-dev libpng-dev libtiff-dev sudo apt install -y libavcodec-dev libavformat-dev libswscale-dev libv4l-dev sudo apt install -y libxvidcore-dev libx264-dev sudo apt install -y libgtk-3-dev sudo apt install -y libatlas-base-dev gfortran sudo apt install -y python3-dev python3-pip python3-venv

这些包包含了编译工具、图像处理库、视频编解码库等,都是深度学习环境的基础依赖。

2. CUDA和cuDNN的安装配置

这是整个安装过程中最关键也最容易出问题的一步。YOLO12官方推荐使用CUDA 11.8,但经过我的测试,CUDA 12.1也能正常工作。我们这里选择CUDA 11.8,因为它的兼容性最好。

2.1 安装NVIDIA驱动

首先检查一下你的显卡型号和当前的驱动版本:

nvidia-smi

如果这个命令报错或者没有显示GPU信息,说明你需要安装NVIDIA驱动。Ubuntu20.04自带的驱动管理器用起来比较方便:

sudo ubuntu-drivers devices

这个命令会列出可用的驱动版本,选择推荐的那个安装:

sudo apt install nvidia-driver-535 # 这里535是示例,实际根据推荐版本调整

安装完成后重启系统:

sudo reboot

重启后再运行nvidia-smi,应该能看到GPU信息了。

2.2 安装CUDA Toolkit 11.8

到NVIDIA官网下载CUDA 11.8的安装包,或者直接用命令行安装:

wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run sudo sh cuda_11.8.0_520.61.05_linux.run

安装过程中需要注意几个选项:

  • 接受许可协议
  • 取消勾选Driver(因为我们已经安装了驱动)
  • 其他选项保持默认

安装完成后,需要配置环境变量。编辑~/.bashrc文件:

nano ~/.bashrc

在文件末尾添加:

export PATH=/usr/local/cuda-11.8/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} export CUDA_HOME=/usr/local/cuda-11.8

保存后使配置生效:

source ~/.bashrc

验证CUDA安装:

nvcc --version

应该显示CUDA 11.8的相关信息。

2.3 安装cuDNN

cuDNN是NVIDIA的深度神经网络库,需要注册NVIDIA开发者账号才能下载。下载对应CUDA 11.8的cuDNN版本(比如8.9.x)。

下载后解压并复制文件:

tar -xvf cudnn-linux-x86_64-8.9.x.x_cuda11-archive.tar.xz sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda-11.8/include sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda-11.8/lib64 sudo chmod a+r /usr/local/cuda-11.8/include/cudnn*.h /usr/local/cuda-11.8/lib64/libcudnn*

3. Python环境和PyTorch安装

现在我们来配置Python虚拟环境并安装PyTorch。虚拟环境的好处是可以隔离不同项目的依赖,避免版本冲突。

3.1 创建虚拟环境

python3.9 -m venv yolov12_env source yolov12_env/bin/activate

激活虚拟环境后,命令行前面会出现(yolov12_env)的提示。

3.2 安装PyTorch

根据CUDA 11.8安装对应的PyTorch版本。到PyTorch官网查看具体的安装命令,对于CUDA 11.8,通常是:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

安装完成后验证PyTorch是否能识别CUDA:

python -c "import torch; print(torch.__version__); print(torch.cuda.is_available())"

应该输出PyTorch版本和True。

4. YOLO12的安装和配置

环境都准备好了,现在可以安装YOLO12了。这里我们使用官方的ultralytics实现。

4.1 安装YOLO12

pip install ultralytics

如果安装过程中遇到问题,可以尝试先升级pip:

pip install --upgrade pip

4.2 可选:安装FlashAttention

YOLO12支持FlashAttention来加速注意力计算,但这不是必须的。如果你的GPU是Turing架构(如T4、RTX20系列)或更新,可以安装:

pip install flash-attn --no-build-isolation

注意:FlashAttention的安装可能会比较耗时,而且对GPU架构有要求。如果安装失败或者你的GPU不支持,直接跳过这一步,YOLO12也能正常工作。

4.3 验证安装

创建一个简单的测试脚本test_install.py:

from ultralytics import YOLO import torch print(f"PyTorch版本: {torch.__version__}") print(f"CUDA可用: {torch.cuda.is_available()}") print(f"CUDA版本: {torch.version.cuda}") print(f"GPU设备: {torch.cuda.get_device_name(0) if torch.cuda.is_available() else '无GPU'}") # 尝试加载一个小的YOLO12模型 try: model = YOLO('yolo12n.pt') print("YOLO12安装成功!") except Exception as e: print(f"安装可能有问题: {e}")

运行这个脚本:

python test_install.py

如果一切正常,你会看到PyTorch和CUDA的信息,以及"YOLO12安装成功!"的提示。

5. 运行第一个YOLO12检测

安装完成了,我们来跑一个实际的例子看看效果。

5.1 下载测试图片

首先准备一张测试图片,你可以用任何图片,或者下载一个示例图片:

wget https://ultralytics.com/images/bus.jpg

5.2 运行目标检测

创建一个Python脚本first_detection.py:

from ultralytics import YOLO import cv2 # 加载预训练的YOLO12n模型(会自动下载) model = YOLO('yolo12n.pt') # 运行检测 results = model('bus.jpg') # 显示结果 for result in results: # 在图片上绘制检测框 annotated_image = result.plot() # 保存结果 cv2.imwrite('bus_detected.jpg', annotated_image) # 打印检测到的物体 print("检测到的物体:") for box in result.boxes: class_id = int(box.cls[0]) class_name = result.names[class_id] confidence = float(box.conf[0]) print(f" - {class_name}: {confidence:.2f}") print(f"\n结果已保存到 bus_detected.jpg") # 如果你有摄像头,也可以试试实时检测 # results = model.predict(source=0, show=True)

运行这个脚本:

python first_detection.py

第一次运行时会自动下载yolo12n.pt模型文件,大概40MB左右。下载完成后,程序会对图片进行检测,并在控制台输出检测到的物体信息,同时生成一个带检测框的图片。

5.3 试试不同的模型

YOLO12有多个尺寸的模型,从轻量级到高精度都有:

# 你可以尝试不同的模型 models = { 'nano': 'yolo12n.pt', # 最快,精度较低 'small': 'yolo12s.pt', # 平衡速度和精度 'medium': 'yolo12m.pt', # 精度较好 'large': 'yolo12l.pt', # 高精度 'xlarge': 'yolo12x.pt' # 最高精度 } # 比如试试small版本 model = YOLO('yolo12s.pt') results = model('bus.jpg')

每个模型的大小和速度不同,可以根据你的需求选择。一般来说,yolo12n适合实时应用,yolo12x适合需要高精度的场景。

6. 常见问题解决

在安装过程中,你可能会遇到一些问题,这里我整理了几个常见的:

6.1 CUDA版本不匹配

如果遇到CUDA error: no kernel image is available for execution这样的错误,通常是CUDA版本不匹配。解决方法是确保PyTorch的CUDA版本和系统安装的CUDA版本一致。

检查版本:

python -c "import torch; print(torch.version.cuda)" nvcc --version

如果不一致,重新安装对应版本的PyTorch。

6.2 内存不足

如果运行模型时出现内存不足的错误,可以尝试:

  1. 使用更小的模型(如yolo12n而不是yolo12x)
  2. 减小输入图片尺寸:
results = model('bus.jpg', imgsz=320) # 默认是640

6.3 下载模型失败

如果下载预训练模型失败,可以手动下载:

wget https://github.com/ultralytics/assets/releases/download/v0.0.0/yolo12n.pt

然后修改代码直接加载本地文件:

model = YOLO('./yolo12n.pt') # 使用本地文件

6.4 虚拟环境问题

如果你关闭终端后再次打开,需要重新激活虚拟环境:

source yolov12_env/bin/activate

为了方便,可以在~/.bashrc中添加别名:

echo "alias yolov12='source ~/yolov12_env/bin/activate'" >> ~/.bashrc source ~/.bashrc

这样以后只需要输入yolov12就能激活环境了。

7. 进阶使用建议

基本的安装和测试完成后,你可能还想了解更多用法。这里给几个方向:

7.1 使用自定义数据集

YOLO12支持训练自己的数据集。你需要准备YOLO格式的数据:

dataset/ ├── images/ │ ├── train/ │ └── val/ └── labels/ ├── train/ └── val/

然后创建data.yaml文件:

# data.yaml path: /path/to/dataset train: images/train val: images/val # 类别数 nc: 10 # 类别名称 names: ['person', 'car', 'bicycle', 'dog', 'cat', ...]

训练命令:

from ultralytics import YOLO model = YOLO('yolo12s.yaml') # 使用模型配置文件 results = model.train( data='data.yaml', epochs=100, imgsz=640, batch=16, device=0 # 使用GPU 0 )

7.2 模型导出

你可以将训练好的模型导出为其他格式,比如ONNX或TensorRT,以便在不同平台上部署:

model.export(format='onnx') # 导出为ONNX model.export(format='engine') # 导出为TensorRT引擎

7.3 性能优化

如果觉得推理速度不够快,可以尝试:

  1. 使用半精度(FP16)推理:
results = model('bus.jpg', half=True)
  1. 使用TensorRT加速(需要额外安装TensorRT)
  2. 调整conf和iou阈值:
results = model('bus.jpg', conf=0.25, iou=0.45)

8. 总结

走完这一整套流程,你应该已经在Ubuntu20.04上成功安装并运行了YOLO12。整个过程虽然步骤不少,但每一步都有明确的操作,跟着做基本不会有大问题。

实际用下来,YOLO12的安装相比之前的版本确实友好了一些,依赖管理做得比较好。性能方面,注意力机制的引入让它在复杂场景下的表现确实有提升,特别是对小物体的检测。不过资源消耗也确实比纯CNN的版本要高一些,如果你的应用对实时性要求特别高,可能需要在模型大小和精度之间做个权衡。

如果你在安装过程中遇到了其他问题,或者想了解YOLO12更高级的用法,比如多GPU训练、模型蒸馏这些,可以看看官方文档,里面内容挺全的。不过官方文档有时候更新不及时,有些细节可能需要自己摸索或者看看GitHub上的issue。

刚开始接触可能会觉得配置环境有点繁琐,但一旦跑通之后,后面用起来就很顺畅了。深度学习框架的安装部署就是这样,第一次麻烦点,后面就一劳永逸了。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/28 6:34:29

FXOS8700CQ驱动开发:FRDM-K64F平台IMU集成与校准实战

1. FXOS8700CQ驱动库技术解析:面向FRDM-K64F平台的高精度磁强计与加速度计集成方案1.1 芯片级特性与工程定位FXOS8700CQ是NXP(现为恩智浦半导体)推出的集成式6轴惯性测量单元(IMU),采用33 mm QFN封装&#…

作者头像 李华
网站建设 2026/8/23 9:43:12

AI手势识别快速入门:彩虹骨骼可视化,21个关键点一键检测

AI手势识别快速入门:彩虹骨骼可视化,21个关键点一键检测 1. 手势识别技术简介 手势识别正在成为人机交互的重要方式之一。这项技术让我们能够通过简单的手部动作与设备进行互动,无需物理接触。想象一下,在厨房做饭时用手势控制音…

作者头像 李华
网站建设 2026/8/23 9:43:13

TGP Menu OLED:嵌入式五键+OLED轻量菜单库

1. 项目概述TGP Menu OLED 是一款专为嵌入式人机交互(HMI)场景设计的轻量级菜单管理库,面向基于 SSD1306 驱动的单色 OLED 显示屏(12864 像素)与五键物理按键(上、下、左、右、确认)构成的标准控…

作者头像 李华
网站建设 2026/8/23 9:43:14

Pixel Dimension Fissioner快速上手:3步完成文本裂变与多版本生成

Pixel Dimension Fissioner快速上手:3步完成文本裂变与多版本生成 1. 认识Pixel Dimension Fissioner Pixel Dimension Fissioner是一款基于MT5-Zero-Shot-Augment核心引擎的文本改写工具,它将枯燥的文本处理转变为充满创意的16-bit像素冒险体验。与传…

作者头像 李华