YOLO12在Linux系统下的高效部署与性能优化技巧
如果你在Linux系统上折腾过YOLO模型,肯定遇到过各种环境配置的坑——CUDA版本不对、依赖冲突、内存不足、推理速度慢。这些问题在部署最新的YOLO12时尤其明显,因为它引入了注意力机制,对硬件和软件环境都有新的要求。
今天我就来分享一套在Linux系统上高效部署YOLO12的完整方案,从系统配置到性能优化,每一步都有详细的操作指南。无论你是用Ubuntu、CentOS还是其他Linux发行版,这套方法都能帮你快速搞定部署,还能让模型跑得更快更稳。
1. 环境准备:打好基础才能跑得快
部署YOLO12之前,先把环境配置好,这能避免后面80%的问题。我建议用Ubuntu 20.04或22.04,这两个版本对NVIDIA驱动的支持最好。
1.1 系统基础配置
首先更新系统,确保所有包都是最新的:
# 更新包列表和已安装的包 sudo apt update && sudo apt upgrade -y # 安装基础开发工具 sudo apt install -y build-essential cmake git wget curl # 安装Python相关工具 sudo apt install -y python3 python3-pip python3-venv如果你用的是CentOS或RHEL系列,命令会有些不同:
# CentOS/RHEL 7/8 sudo yum update -y sudo yum install -y gcc gcc-c++ make cmake git wget curl sudo yum install -y python3 python3-pip # 或者用dnf(新版本) sudo dnf update -y sudo dnf install -y gcc gcc-c++ make cmake git wget curl sudo dnf install -y python3 python3-pip1.2 NVIDIA驱动和CUDA安装
这是最关键的一步。YOLO12支持FlashAttention,但需要特定版本的CUDA。我推荐CUDA 11.8或12.1,这两个版本兼容性最好。
方法一:官方驱动安装(推荐)
# 先卸载旧驱动(如果有) sudo apt purge nvidia* -y sudo apt autoremove -y # 添加官方NVIDIA驱动仓库 sudo add-apt-repository ppa:graphics-drivers/ppa -y sudo apt update # 查看可用的驱动版本 ubuntu-drivers devices # 安装推荐版本(通常是最新的稳定版) sudo apt install nvidia-driver-535 -y # 或者你看到的推荐版本 # 重启系统 sudo reboot重启后验证驱动是否安装成功:
nvidia-smi你应该能看到类似这样的输出,显示GPU信息和驱动版本:
+---------------------------------------------------------------------------------------+ | NVIDIA-SMI 535.154.05 Driver Version: 535.154.05 CUDA Version: 12.2 | |-----------------------------------------+----------------------+----------------------+ | GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+======================+======================| | 0 NVIDIA GeForce RTX 4090 Off | 00000000:01:00.0 On | Off | | 0% 38C P8 20W / 450W | 123MiB / 24564MiB | 0% Default | | | | N/A | +-----------------------------------------+----------------------+----------------------+方法二:CUDA Toolkit安装
如果你需要完整的CUDA开发环境,可以直接安装CUDA Toolkit:
# 访问 https://developer.nvidia.com/cuda-downloads 获取最新安装命令 # 以CUDA 12.1为例 wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600 sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/3bf863cc.pub sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/ /" sudo apt update sudo apt install -y cuda-12-1 # 添加到环境变量 echo 'export PATH=/usr/local/cuda-12.1/bin${PATH:+:${PATH}}' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}' >> ~/.bashrc source ~/.bashrc # 验证CUDA安装 nvcc --version1.3 cuDNN安装
cuDNN是NVIDIA的深度神经网络库,能显著提升推理速度:
# 需要先在NVIDIA官网注册并下载cuDNN # 下载地址:https://developer.nvidia.com/cudnn # 假设下载的文件是cudnn-linux-x86_64-8.9.7.29_cuda12-archive.tar.xz tar -xvf cudnn-linux-x86_64-8.9.7.29_cuda12-archive.tar.xz sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include/ sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64/ sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn* # 验证安装 cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 22. YOLO12快速部署:三步搞定
环境准备好了,现在开始部署YOLO12。我推荐用Ultralytics的官方包,这是最简单的方法。
2.1 创建虚拟环境
先创建一个独立的Python环境,避免包冲突:
# 创建虚拟环境 python3 -m venv yolo12_env # 激活环境 source yolo12_env/bin/activate # 升级pip pip install --upgrade pip2.2 安装依赖包
安装Ultralytics包和必要的依赖:
# 安装Ultralytics(包含YOLO12) pip install ultralytics # 安装PyTorch(根据你的CUDA版本选择) # CUDA 11.8 pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 # CUDA 12.1 pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 # CPU版本(如果没有GPU) # pip install torch torchvision torchaudio # 安装其他常用包 pip install opencv-python pillow matplotlib seaborn pandas numpy scipy2.3 验证安装
用几行代码测试是否安装成功:
from ultralytics import YOLO import torch # 检查PyTorch是否能识别GPU 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}") # 加载一个小的YOLO12模型测试 try: model = YOLO('yolo12n.pt') # 会自动下载模型 print("YOLO12加载成功!") except Exception as e: print(f"加载失败: {e}")如果一切正常,你会看到类似这样的输出:
PyTorch版本: 2.1.0 CUDA是否可用: True GPU设备: NVIDIA GeForce RTX 4090 CUDA版本: 12.1 YOLO12加载成功!3. 性能优化技巧:让YOLO12飞起来
YOLO12默认配置已经不错,但通过一些优化技巧,还能让性能提升30%-50%。下面是我在实际项目中总结的几个有效方法。
3.1 推理速度优化
技巧一:使用半精度(FP16)推理
这是最简单的提速方法,几乎不影响精度:
from ultralytics import YOLO # 加载模型 model = YOLO('yolo12n.pt') # 使用FP16推理 results = model('path/to/image.jpg', half=True) # 开启半精度 # 批量推理时效果更明显 results = model(['img1.jpg', 'img2.jpg', 'img3.jpg'], half=True)技巧二:调整推理尺寸
YOLO12默认使用640x640的输入尺寸,但根据你的需求可以调整:
# 更小的尺寸 = 更快的速度 results = model('image.jpg', imgsz=320) # 320x320,速度提升约4倍 # 更大的尺寸 = 更高的精度(但更慢) results = model('image.jpg', imgsz=1280) # 1280x1280,精度更高 # 自动选择最佳尺寸 results = model('image.jpg', imgsz=[320, 640, 1280]) # 自动选择技巧三:启用TensorRT加速
如果你有NVIDIA GPU,一定要用TensorRT,这是最快的推理引擎:
from ultralytics import YOLO # 加载模型 model = YOLO('yolo12n.pt') # 导出为TensorRT格式(只需要做一次) model.export(format='engine', imgsz=640, half=True) # 生成yolo12n.engine # 使用TensorRT推理 trt_model = YOLO('yolo12n.engine') results = trt_model('image.jpg') # 速度比PyTorch快2-3倍导出命令的详细参数:
# 命令行导出 yolo export model=yolo12n.pt format=engine imgsz=640 half=True # 更多选项 yolo export model=yolo12n.pt format=engine \ imgsz=640 \ half=True \ workspace=4 \ # GPU内存大小(GB) simplify=True \ # 简化模型 opset=17 # ONNX opset版本3.2 内存使用优化
YOLO12的注意力机制比较耗内存,特别是大模型。下面几个技巧能帮你节省内存。
技巧一:梯度检查点
训练时使用梯度检查点,用时间换空间:
from ultralytics import YOLO # 训练时启用梯度检查点 model = YOLO('yolo12n.yaml') model.train( data='coco8.yaml', epochs=100, imgsz=640, gradient_accumulation=2, # 梯度累积 save_memory=True, # 内存优化模式 )技巧二:调整批处理大小
找到适合你GPU的最佳批处理大小:
# 测试不同批处理大小 batch_sizes = [1, 2, 4, 8, 16] for bs in batch_sizes: results = model('image.jpg', batch=bs) # 观察GPU内存使用情况一个经验法则:RTX 4090(24GB)可以处理batch=16的yolo12n,但yolo12x可能只能处理batch=2。
技巧三:使用CPU卸载
如果GPU内存实在不够,可以把部分计算放到CPU:
import torch # 设置PyTorch内存优化 torch.cuda.empty_cache() # 清空缓存 torch.backends.cudnn.benchmark = True # 自动寻找最优算法 torch.backends.cuda.matmul.allow_tf32 = True # 允许TF32计算 # 如果还是内存不足,考虑模型并行 # 但这需要修改模型代码,比较复杂3.3 FlashAttention配置
YOLO12支持FlashAttention,能显著减少内存访问开销。但配置稍微复杂一些。
检查GPU是否支持FlashAttention
import torch # 检查GPU架构 gpu_name = torch.cuda.get_device_name(0) print(f"GPU: {gpu_name}") # FlashAttention需要的架构 # Turing: T4, RTX 20系列 # Ampere: RTX 30系列, A100 # Ada Lovelace: RTX 40系列 # Hopper: H100 # 检查计算能力 major, minor = torch.cuda.get_device_capability(0) print(f"计算能力: {major}.{minor}") # 需要7.5(Turing)或更高安装FlashAttention
# 安装FlashAttention(可能需要从源码编译) pip install flash-attn --no-build-isolation # 或者从源码安装 git clone https://github.com/Dao-AILab/flash-attention cd flash-attention pip install . # 安装cuDNN前端(可选,但推荐) pip install cudnn-frontend在YOLO12中使用FlashAttention
from ultralytics import YOLO import torch # 检查FlashAttention是否可用 try: import flash_attn print("FlashAttention可用") except ImportError: print("FlashAttention未安装") # YOLO12默认会尝试使用FlashAttention(如果可用) model = YOLO('yolo12n.pt') # 训练时启用FlashAttention model.train( data='coco8.yaml', epochs=100, imgsz=640, flash_attention=True, # 启用FlashAttention )4. 实际部署示例:从图片到视频
理论讲完了,来看几个实际例子。我会展示如何用YOLO12处理图片、视频和摄像头流。
4.1 图片检测
最基本的用法,检测单张图片:
from ultralytics import YOLO import cv2 import matplotlib.pyplot as plt # 加载模型 model = YOLO('yolo12n.pt') # 检测图片 results = model('bus.jpg', save=True, save_txt=True) # 显示结果 for r in results: # 绘制检测框 im_array = r.plot() # 带框的图片数组 cv2.imwrite('result.jpg', im_array) # 打印检测到的对象 print(f"检测到 {len(r.boxes)} 个对象:") for box in r.boxes: cls = int(box.cls[0]) conf = float(box.conf[0]) name = model.names[cls] print(f" - {name}: 置信度 {conf:.2f}") # 用matplotlib显示 img = cv2.cvtColor(im_array, cv2.COLOR_BGR2RGB) plt.figure(figsize=(12, 8)) plt.imshow(img) plt.axis('off') plt.show()4.2 视频处理
处理视频文件,保存检测结果:
from ultralytics import YOLO import cv2 def process_video(input_path, output_path, model_path='yolo12n.pt'): """处理视频文件""" # 加载模型 model = YOLO(model_path) # 打开视频 cap = cv2.VideoCapture(input_path) fps = int(cap.get(cv2.CAP_PROP_FPS)) width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) # 创建视频写入器 fourcc = cv2.VideoWriter_fourcc(*'mp4v') out = cv2.VideoWriter(output_path, fourcc, fps, (width, height)) frame_count = 0 print(f"开始处理视频: {input_path}") print(f"分辨率: {width}x{height}, FPS: {fps}") while True: ret, frame = cap.read() if not ret: break # 每10帧处理一次(加速处理) if frame_count % 10 == 0: # 使用YOLO检测 results = model(frame, verbose=False) # 绘制检测框 annotated_frame = results[0].plot() # 显示处理进度 if frame_count % 100 == 0: print(f"已处理 {frame_count} 帧") out.write(annotated_frame) frame_count += 1 # 释放资源 cap.release() out.release() cv2.destroyAllWindows() print(f"视频处理完成!保存到: {output_path}") print(f"总帧数: {frame_count}") # 使用示例 process_video('input.mp4', 'output.mp4', 'yolo12s.pt')4.3 实时摄像头检测
实时处理摄像头流:
from ultralytics import YOLO import cv2 import time def realtime_detection(camera_id=0, model_path='yolo12n.pt'): """实时摄像头检测""" # 加载模型 model = YOLO(model_path) # 打开摄像头 cap = cv2.VideoCapture(camera_id) cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1280) cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 720) print("开始实时检测...") print("按 'q' 退出") fps_history = [] while True: start_time = time.time() # 读取帧 ret, frame = cap.read() if not ret: print("无法读取摄像头") break # 调整尺寸(加快处理速度) frame_small = cv2.resize(frame, (640, 640)) # 使用YOLO检测 results = model(frame_small, verbose=False, half=True) # 绘制检测框 annotated_frame = results[0].plot() # 计算FPS end_time = time.time() fps = 1 / (end_time - start_time) fps_history.append(fps) if len(fps_history) > 30: fps_history.pop(0) avg_fps = sum(fps_history) / len(fps_history) # 显示FPS cv2.putText(annotated_frame, f"FPS: {avg_fps:.1f}", (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2) # 显示结果 cv2.imshow('YOLO12 Real-time Detection', annotated_frame) # 按'q'退出 if cv2.waitKey(1) & 0xFF == ord('q'): break # 释放资源 cap.release() cv2.destroyAllWindows() print(f"平均FPS: {avg_fps:.1f}") # 使用示例 realtime_detection(camera_id=0, model_path='yolo12n.pt')5. 常见问题与解决方案
部署过程中总会遇到各种问题,这里整理了一些常见问题的解决方法。
5.1 CUDA相关错误
问题1:CUDA out of memory
这是最常见的问题,GPU内存不够了。
# 解决方法: # 1. 减小批处理大小 results = model(images, batch=4) # 改为更小的值 # 2. 使用半精度 results = model(images, half=True) # 3. 清空GPU缓存 import torch torch.cuda.empty_cache() # 4. 使用更小的模型 model = YOLO('yolo12n.pt') # 而不是yolo12x.pt问题2:CUDA version mismatch
CUDA版本不匹配。
# 检查已安装的CUDA版本 nvcc --version python -c "import torch; print(torch.version.cuda)" # 解决方法: # 1. 安装匹配的PyTorch版本 # CUDA 11.8 pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 # 2. 或者升级/降级CUDA5.2 模型加载错误
问题:无法下载预训练模型
有时候网络问题会导致模型下载失败。
# 解决方法1:手动下载 # 访问 https://github.com/ultralytics/assets/releases # 下载对应的.pt文件,然后指定本地路径 model = YOLO('/path/to/local/yolo12n.pt') # 解决方法2:使用代理 import os os.environ['HTTP_PROXY'] = 'http://your-proxy:port' os.environ['HTTPS_PROXY'] = 'http://your-proxy:port'问题:模型格式不支持
# 确保使用正确的格式 # YOLO12支持:.pt, .onnx, .engine, .torchscript model = YOLO('yolo12n.pt') # PyTorch格式 model = YOLO('yolo12n.onnx') # ONNX格式 model = YOLO('yolo12n.engine') # TensorRT格式5.3 性能问题
问题:推理速度太慢
# 可能的原因和解决方法: # 1. 没有使用GPU print(torch.cuda.is_available()) # 应该是True # 2. 输入尺寸太大 results = model(image, imgsz=320) # 使用更小的尺寸 # 3. 没有使用半精度 results = model(image, half=True) # 4. 使用TensorRT加速 model.export(format='engine') trt_model = YOLO('yolo12n.engine')问题:检测精度不够
# 提高精度的方法: # 1. 使用更大的模型 model = YOLO('yolo12x.pt') # 最大最精确的版本 # 2. 增加输入尺寸 results = model(image, imgsz=1280) # 3. 调整置信度阈值 results = model(image, conf=0.25) # 默认0.25,可以调低 # 4. 使用数据增强(训练时) model.train(data='dataset.yaml', augment=True)5.4 Linux系统特定问题
问题:权限不足
# 解决方法:使用sudo或修改权限 sudo chmod -R 777 /path/to/your/project # 或者更好的方法:使用虚拟环境 python -m venv ~/yolo12_env source ~/yolo12_env/bin/activate问题:共享内存不足
# 查看当前共享内存 df -h /dev/shm # 临时增加(重启后失效) sudo mount -o remount,size=8G /dev/shm # 永久增加:编辑/etc/fstab # 添加:tmpfs /dev/shm tmpfs defaults,size=8G 0 0问题:进程被系统杀死(OOM)
# 查看系统日志 dmesg | grep -i kill # 解决方法: # 1. 增加交换空间 sudo fallocate -l 8G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile # 2. 限制模型内存使用 import torch torch.cuda.set_per_process_memory_fraction(0.8) # 使用80%的GPU内存6. 进阶技巧:生产环境部署
如果你需要将YOLO12部署到生产环境,下面这些技巧会很有用。
6.1 使用Docker容器化
创建Dockerfile,确保环境一致性:
# Dockerfile FROM nvidia/cuda:12.1.1-cudnn8-runtime-ubuntu22.04 # 安装系统依赖 RUN apt update && apt install -y \ python3 \ python3-pip \ git \ wget \ && rm -rf /var/lib/apt/lists/* # 设置工作目录 WORKDIR /app # 复制代码 COPY requirements.txt . COPY app.py . # 安装Python依赖 RUN pip3 install --no-cache-dir -r requirements.txt # 下载模型(可以在构建时下载,避免每次启动下载) RUN python3 -c "from ultralytics import YOLO; YOLO('yolo12n.pt')" # 运行应用 CMD ["python3", "app.py"]对应的requirements.txt:
ultralytics>=8.0.0 torch>=2.0.0 torchvision>=0.15.0 opencv-python>=4.8.0 pillow>=10.0.0 numpy>=1.24.0构建和运行:
# 构建镜像 docker build -t yolo12-app . # 运行容器(需要NVIDIA运行时) docker run --gpus all -p 8000:8000 yolo12-app6.2 创建REST API服务
用FastAPI创建一个简单的API服务:
# app.py from fastapi import FastAPI, File, UploadFile from ultralytics import YOLO import cv2 import numpy as np from PIL import Image import io import json app = FastAPI(title="YOLO12 Detection API") # 全局加载模型(避免重复加载) model = None @app.on_event("startup") async def startup_event(): """启动时加载模型""" global model print("正在加载YOLO12模型...") model = YOLO('yolo12n.pt') print("模型加载完成!") @app.post("/detect/image") async def detect_image(file: UploadFile = File(...)): """图片检测接口""" # 读取图片 contents = await file.read() image = Image.open(io.BytesIO(contents)) image_np = np.array(image) # 转换BGR(OpenCV格式) if len(image_np.shape) == 2: # 灰度图 image_np = cv2.cvtColor(image_np, cv2.COLOR_GRAY2BGR) else: # RGB图 image_np = cv2.cvtColor(image_np, cv2.COLOR_RGB2BGR) # 运行检测 results = model(image_np, verbose=False) # 提取检测结果 detections = [] for r in results: for box in r.boxes: detection = { "class": model.names[int(box.cls[0])], "confidence": float(box.conf[0]), "bbox": box.xyxy[0].tolist(), # [x1, y1, x2, y2] } detections.append(detection) # 生成带标注的图片 annotated_image = results[0].plot() _, buffer = cv2.imencode('.jpg', annotated_image) annotated_bytes = buffer.tobytes() return { "detections": detections, "count": len(detections), "annotated_image": annotated_bytes.hex() # 可以base64编码 } @app.get("/health") async def health_check(): """健康检查""" return {"status": "healthy", "model_loaded": model is not None} if __name__ == "__main__": import uvicorn uvicorn.run(app, host="0.0.0.0", port=8000)运行API服务:
# 安装依赖 pip install fastapi uvicorn # 运行服务 python app.py # 或者用uvicorn uvicorn app:app --host 0.0.0.0 --port 8000 --reload6.3 性能监控和日志
添加监控和日志,方便排查问题:
# monitor.py import time import psutil import GPUtil import logging from datetime import datetime # 设置日志 logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', handlers=[ logging.FileHandler('yolo12_monitor.log'), logging.StreamHandler() ] ) logger = logging.getLogger(__name__) class PerformanceMonitor: """性能监控器""" def __init__(self): self.start_time = time.time() self.frame_count = 0 self.total_inference_time = 0 def log_performance(self, inference_time): """记录性能指标""" self.frame_count += 1 self.total_inference_time += inference_time # 每100帧记录一次 if self.frame_count % 100 == 0: avg_inference = self.total_inference_time / self.frame_count fps = 1 / avg_inference if avg_inference > 0 else 0 # 获取系统信息 cpu_percent = psutil.cpu_percent() memory = psutil.virtual_memory() # 获取GPU信息 gpu_info = [] try: gpus = GPUtil.getGPUs() for gpu in gpus: gpu_info.append({ 'name': gpu.name, 'load': gpu.load * 100, 'memory_used': gpu.memoryUsed, 'memory_total': gpu.memoryTotal, 'temperature': gpu.temperature }) except: gpu_info = [] # 记录日志 logger.info(f"性能统计 - 总帧数: {self.frame_count}, " f"平均FPS: {fps:.1f}, " f"CPU使用率: {cpu_percent}%, " f"内存使用率: {memory.percent}%") if gpu_info: for gpu in gpu_info: logger.info(f"GPU {gpu['name']} - " f"负载: {gpu['load']:.1f}%, " f"显存: {gpu['memory_used']}/{gpu['memory_total']}MB, " f"温度: {gpu['temperature']}°C") # 重置计数器(可选) # self.frame_count = 0 # self.total_inference_time = 0 # 使用示例 monitor = PerformanceMonitor() # 在推理循环中 for frame in frames: start_time = time.time() # 推理 results = model(frame) inference_time = time.time() - start_time monitor.log_performance(inference_time)7. 总结
在Linux系统上部署YOLO12,关键是要把环境配置好。CUDA版本、驱动版本、Python环境这些基础打好了,后面就顺利多了。从实际使用来看,YOLO12的注意力机制确实带来了精度提升,特别是对复杂场景和小物体的检测效果比之前的版本要好。
性能优化方面,TensorRT加速效果最明显,能提升2-3倍的速度。如果GPU内存紧张,用半精度推理和梯度检查点能省不少内存。FlashAttention虽然配置麻烦点,但对大尺寸图片处理很有帮助。
生产环境部署的话,建议用Docker容器化,这样环境一致性好管理。如果是提供API服务,FastAPI是个不错的选择,简单易用性能也好。监控和日志一定要做,不然出了问题很难排查。
最后提醒一点,YOLO12虽然新,但还在不断更新中,有些功能可能还不稳定。如果是关键业务,建议先用YOLO11,等YOLO12更成熟了再升级。不过对于研究和测试来说,YOLO12的新特性还是很值得尝试的。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。