YOLOv12目标检测模型一键部署教程:基于Ubuntu20.04的完整环境配置
想试试最新的YOLOv12,但被复杂的CUDA、PyTorch环境搞得头大?别担心,这篇教程就是为你准备的。我们绕开那些繁琐的本地环境配置,直接在云端搞定一切。今天,我将手把手带你,在星图GPU平台上,基于Ubuntu 20.04系统,完成YOLOv12的一键式部署和测试。整个过程就像搭积木,跟着步骤走,半小时内你就能跑起自己的第一个检测demo。
我们的目标很简单:让你快速拥有一个能跑YOLOv12的、免配置的、带GPU的完整开发环境。你不需要自己去折腾驱动、编译PyTorch,甚至不用关心CUDA版本。准备好了吗?我们开始吧。
1. 环境准备:选择正确的“地基”
万事开头难,但选对了起点,后面就一马平川。部署YOLOv12,最关键的一步就是准备一个“干净”且“强力”的环境。这里,我们选择在星图平台上操作,因为它已经为我们预置好了最头疼的部分。
1.1 为什么选择星图平台与Ubuntu 20.04?
你可能想问,为什么非要用这个组合?原因很直接:
- 免去环境噩梦:YOLOv12依赖特定版本的PyTorch、CUDA和cuDNN。在本地安装,版本冲突、驱动不兼容是家常便饭。星图的镜像已经把这些依赖都打包好了,开箱即用。
- GPU算力即取即用:目标检测模型推理很吃算力,没有GPU会慢到怀疑人生。平台直接提供了带GPU的实例,我们只需要按需使用,不用自己买显卡。
- Ubuntu 20.04的稳定性:这是一个长期支持版本,社区支持完善,软件生态稳定,能最大程度减少因系统版本带来的奇怪问题。
简单说,这个组合能帮你跳过至少80%的部署坑。
1.2 创建你的GPU实例
现在,我们进入实操第一步。登录星图平台后,找到创建计算实例的入口。
- 选择镜像:这是最关键的一步。在镜像市场或选择镜像时,搜索并选择一个预装了PyTorch、CUDA和cuDNN的Ubuntu 20.04镜像。通常镜像名称会包含“PyTorch”、“GPU”等关键词。一个好的基础镜像能让你后续安装YOLOv12时畅通无阻。
- 选择实例规格:根据你的需求选择带GPU的规格。对于YOLOv12的测试和学习,一块显存8GB或以上的GPU(如V100、A10等)完全够用。CPU和内存选择配套的规格即可。
- 配置存储与网络:系统盘建议50GB以上,确保有足够空间存放模型和数据。网络和安全组保持默认设置,通常不需要额外修改。
- 创建并连接:点击创建,等待几分钟实例启动完成。然后,通过平台提供的Web Shell或使用SSH客户端(如Termius、Xshell)连接到你的Ubuntu服务器。
连接成功后,你应该能看到一个命令行终端,类似这样:
ubuntu@your-instance-ip:~$恭喜,你的“地基”已经打好了!
2. 部署YOLOv12:克隆、安装、验证
环境就绪,现在让我们把主角YOLOv12请上台。整个过程就是标准的Git克隆和Python包安装。
2.1 获取YOLOv12官方代码
首先,我们通过Git把YOLOv12的代码仓库克隆到本地。打开终端,执行:
# 克隆YOLOv12官方仓库(请以Ultralytics官方发布为准,此处为示例) git clone https://github.com/ultralytics/ultralytics.git cd ultralyticsgit clone命令会把最新的代码下载到当前目录下的ultralytics文件夹里,cd命令则让我们进入这个文件夹进行操作。
2.2 安装Python依赖包
YOLOv12运行需要一系列Python库。项目通常会提供一个requirements.txt文件来管理这些依赖。我们使用pip来安装它们:
# 安装核心依赖包 pip install -r requirements.txt这个命令会自动读取requirements.txt文件里的每一行,然后安装所有列出的包,比如PyTorch、torchvision、opencv-python、numpy等等。注意:由于我们使用了预装环境的镜像,PyTorch和CUDA很可能已经正确安装,这一步主要是补全其他辅助库。
如果安装速度慢,可以考虑临时使用国内的镜像源加速:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple2.3 验证安装与GPU可用性
安装完成后,我们写个简单的Python脚本来验证一切是否正常,特别是GPU能不能用。
创建一个名为check_env.py的文件:
nano check_env.py然后在文件中输入以下内容:
import torch import ultralytics print(f"PyTorch 版本: {torch.__version__}") print(f"CUDA 是否可用: {torch.cuda.is_available()}") if torch.cuda.is_available(): print(f"GPU 设备名称: {torch.cuda.get_device_name(0)}") print(f"CUDA 版本: {torch.version.cuda}") print(f"Ultralytics (YOLO) 版本: {ultralytics.__version__}")按Ctrl+X,然后按Y,再按Enter保存并退出。
运行这个脚本:
python check_env.py如果一切顺利,你会看到类似下面的输出,这证明你的环境完全OK:
PyTorch 版本: 2.x.x+cu121 CUDA 是否可用: True GPU 设备名称: NVIDIA A10 CUDA 版本: 12.1 Ultralytics (YOLO) 版本: 8.x.x看到CUDA 是否可用: True和具体的GPU名称,心里就踏实了。
3. 快速上手:运行你的第一个检测
环境验证通过,是时候体验YOLOv12的威力了。我们用官方预训练模型和一张示例图片,快速跑通一个检测流程。
3.1 使用官方CLI进行图片推理
Ultralytics的YOLO包提供了非常易用的命令行接口。最简单的方式,直接使用yolo命令。我们检测一张来自网络的小猫图片。
在终端中执行:
# 使用YOLOv12n模型(最小的模型,速度快)检测一张网络图片 yolo predict model=yolov12n.pt source='https://ultralytics.com/images/bus.jpg'执行这个命令后,程序会自动完成以下几件事:
- 检查本地是否有
yolov12n.pt模型文件,如果没有,会自动从官网下载。 - 下载指定的示例图片
bus.jpg。 - 使用模型对图片进行推理,检测其中的物体(比如公交车、行人)。
- 将检测结果(带标注框的图片)保存在当前目录下的
runs/detect/predict文件夹里。
完成后,你可以通过文件浏览器查看生成的bus.jpg图片,上面应该画出了检测到的物体框和类别标签。
3.2 编写一个简单的Python推理脚本
除了命令行,我们更常用Python脚本来进行更灵活的控制。下面是一个基础的推理脚本示例。
创建一个新文件run_detection.py:
nano run_detection.py输入以下内容:
from ultralytics import YOLO import cv2 # 1. 加载预训练模型(这里以yolov12n为例) model = YOLO('yolov12n.pt') # 首次运行会自动下载模型 # 2. 指定图片源(可以使用本地图片路径,如 ‘./your_image.jpg’) source = ‘https://ultralytics.com/images/zidane.jpg’ # 3. 执行预测 results = model(source) # 4. 处理并展示结果 for result in results: # 在图片上绘制检测框 annotated_frame = result.plot() # 使用OpenCV显示图片 cv2.imshow(“YOLOv12 Detection”, annotated_frame) cv2.waitKey(0) # 等待按键 cv2.destroyAllWindows() # 也可以直接保存结果 result.save(filename=‘./result_zidane.jpg’) print(“检测结果已保存为 result_zidane.jpg”) # 打印检测到的物体信息 print(results[0].boxes)运行这个脚本:
python run_detection.py脚本会下载另一张示例图片并进行检测,最后弹出一个窗口显示带检测框的结果,同时将结果保存为result_zidane.jpg。在终端里,你还会看到打印出的检测框信息,包括坐标、置信度和类别。
4. 常见问题与实用技巧
第一次部署,难免会遇到一些小问题。这里我总结几个常见的,帮你提前排雷。
4.1 依赖安装失败或版本冲突
- 问题:运行
pip install -r requirements.txt时报错,提示某个包找不到或版本不兼容。 - 解决:
- 升级pip:
pip install --upgrade pip - 逐一安装:尝试注释掉
requirements.txt里出错的包,先安装其他的,再单独处理有问题的包。 - 使用虚拟环境:在项目目录下创建Python虚拟环境,能有效隔离依赖。
python -m venv yolov12_env source yolov12_env/bin/activate # Linux激活环境 pip install -r requirements.txt
- 升级pip:
4.2 推理时CUDA内存不足(Out of Memory)
- 问题:运行检测时,程序崩溃并提示CUDA out of memory。
- 解决:
- 换用更小的模型:
yolov12n.pt比yolov12x.pt占用显存小得多。从-n(nano) 版本开始尝试。 - 减小推理尺寸:在预测时指定更小的图片尺寸。
或在Python脚本中:yolo predict model=yolov12n.pt source=‘your_image.jpg’ imgsz=640results = model(source, imgsz=640) - 检查后台进程:使用
nvidia-smi命令查看是否有其他进程占用了GPU内存。
- 换用更小的模型:
4.3 如何检测自己的视频或摄像头流
检测图片只是开始,检测视频或实时摄像头更有趣。修改一下脚本的source参数即可:
from ultralytics import YOLO import cv2 model = YOLO(‘yolov12n.pt’) # 检测本地视频文件 # results = model(‘./your_video.mp4’, save=True) # save=True 会保存结果视频 # 检测摄像头(0代表默认摄像头) cap = cv2.VideoCapture(0) while cap.isOpened(): ret, frame = cap.read() if not ret: break # 对每一帧进行检测 results = model(frame, verbose=False) # verbose=False关闭冗余输出 annotated_frame = results[0].plot() cv2.imshow(‘YOLOv12 Real-Time Detection’, annotated_frame) if cv2.waitKey(1) & 0xFF == ord(‘q’): break cap.release() cv2.destroyAllWindows()5. 总结与下一步
跟着上面的步骤走一遍,你应该已经成功在Ubuntu 20.04的云环境里跑通了YOLOv12。整个过程的核心,其实就是利用了一个“环境全包”的云镜像,避开了最棘手的本地环境配置,让我们能把精力完全集中在模型本身的使用和测试上。
用下来的感觉是,部署比想象中简单很多,特别是对于只是想快速体验和测试模型效果的开发者来说,这种云端一键部署的方式非常高效。模型推理的速度也令人满意,在GPU加持下几乎是实时出结果。
如果你已经完成了基础检测,接下来可以尝试更多玩法:用你自己的数据集进行微调,将模型集成到Web应用或移动端,或者探索YOLOv12新增的特性。这个部署好的环境,就是你后续所有实验和开发的起点。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。