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 -y1.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 pip4.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.jpg5.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 内存不足
如果运行模型时出现内存不足的错误,可以尝试:
- 使用更小的模型(如yolo12n而不是yolo12x)
- 减小输入图片尺寸:
results = model('bus.jpg', imgsz=320) # 默认是6406.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 性能优化
如果觉得推理速度不够快,可以尝试:
- 使用半精度(FP16)推理:
results = model('bus.jpg', half=True)- 使用TensorRT加速(需要额外安装TensorRT)
- 调整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星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。