YOLO12应用教程:将目标检测集成到你的项目中,简单几步搞定

张开发
2026/4/19 6:31:21 15 分钟阅读

分享文章

YOLO12应用教程:将目标检测集成到你的项目中,简单几步搞定
YOLO12应用教程将目标检测集成到你的项目中简单几步搞定1. 引言为什么选择YOLO12目标检测是计算机视觉中最基础也最重要的任务之一。在众多目标检测模型中YOLO系列因其出色的实时性能而广受欢迎。最新发布的YOLO12在保持实时检测速度的同时通过创新的注意力机制架构将检测精度提升到了新的高度。本教程将带你快速掌握如何将YOLO12集成到你的项目中。无论你是想为现有应用添加目标检测功能还是想开发全新的视觉应用这篇教程都能帮你快速上手。2. 环境准备与快速部署2.1 系统要求在开始之前请确保你的系统满足以下要求操作系统Linux (推荐Ubuntu 20.04/22.04) 或 Windows 10/11GPUNVIDIA显卡 (推荐RTX 3060及以上)CUDA11.7或更高版本Python3.8或更高版本2.2 安装依赖YOLO12可以通过Ultralytics库轻松安装和使用pip install ultralytics这个命令会自动安装所有必要的依赖包括PyTorch、OpenCV等。3. 快速上手第一个检测示例3.1 加载预训练模型让我们从一个简单的图像检测示例开始from ultralytics import YOLO import cv2 # 加载YOLO12小型模型 model YOLO(yolo12n.pt) # 检测图片 results model(street.jpg) # 替换为你的图片路径 # 处理结果 for result in results: # 绘制检测框 annotated_img result.plot() # 显示结果 cv2.imshow(YOLO12 Detection, annotated_img) cv2.waitKey(0) cv2.destroyAllWindows() # 保存结果 result.save(result.jpg)这段代码会加载预训练的YOLO12小型模型对指定图片进行目标检测显示并保存带标注框的结果图片3.2 理解检测结果YOLO12的检测结果包含丰富的信息for result in results: boxes result.boxes # 检测框信息 for box in boxes: print(f检测到: {model.names[int(box.cls)]}) print(f置信度: {box.conf.item():.2f}) print(f位置坐标: {box.xyxy[0].tolist()})输出示例检测到: car 置信度: 0.92 位置坐标: [123.45, 56.78, 234.56, 89.01]4. 进阶应用视频流检测4.1 视频文件检测YOLO12同样适用于视频检测from ultralytics import YOLO import cv2 # 加载模型 model YOLO(yolo12n.pt) # 打开视频文件 video_path traffic.mp4 cap cv2.VideoCapture(video_path) # 准备输出视频 output_path output.mp4 fourcc cv2.VideoWriter_fourcc(*mp4v) out cv2.VideoWriter(output_path, fourcc, 30.0, (640, 480)) while cap.isOpened(): ret, frame cap.read() if not ret: break # 调整帧大小 frame cv2.resize(frame, (640, 480)) # 检测当前帧 results model(frame) # 绘制检测结果 annotated_frame results[0].plot() # 写入输出视频 out.write(annotated_frame) # 显示实时结果 cv2.imshow(YOLO12 Video Detection, annotated_frame) # 按q退出 if cv2.waitKey(1) 0xFF ord(q): break # 释放资源 cap.release() out.release() cv2.destroyAllWindows()4.2 实时摄像头检测只需简单修改即可实现摄像头实时检测# 使用默认摄像头 cap cv2.VideoCapture(0) # 0表示第一个摄像头5. 自定义模型训练5.1 准备数据集YOLO12支持自定义数据集训练。数据集结构如下custom_dataset/ ├── images/ │ ├── train/ │ │ ├── img1.jpg │ │ └── ... │ └── val/ │ ├── img1.jpg │ └── ... └── labels/ ├── train/ │ ├── img1.txt │ └── ... └── val/ ├── img1.txt └── ...标签文件格式为class_id x_center y_center width height5.2 创建配置文件创建custom_data.yaml配置文件path: custom_dataset train: images/train val: images/val names: 0: cat 1: dog 2: person5.3 开始训练from ultralytics import YOLO # 加载基础模型 model YOLO(yolo12n.pt) # 开始训练 results model.train( datacustom_data.yaml, epochs100, imgsz640, batch16, namecustom_yolo12 )6. 模型优化与部署6.1 模型评估训练完成后评估模型性能metrics model.val() print(fmAP0.5: {metrics.box.map50:.3f}) print(fmAP0.5:0.95: {metrics.box.map:.3f})6.2 模型导出YOLO12支持导出为多种格式# 导出为ONNX格式 model.export(formatonnx) # 导出为TensorRT引擎 model.export(formatengine)6.3 构建Web服务使用Flask构建简单的检测APIfrom flask import Flask, request, jsonify from ultralytics import YOLO import cv2 import numpy as np import base64 app Flask(__name__) model YOLO(yolo12n.pt) app.route(/detect, methods[POST]) def detect(): # 获取并解码图片 img_data base64.b64decode(request.json[image]) img cv2.imdecode(np.frombuffer(img_data, np.uint8), cv2.IMREAD_COLOR) # 检测 results model(img) # 处理结果 detections [] for box in results[0].boxes: detections.append({ class: model.names[int(box.cls)], confidence: float(box.conf), bbox: box.xyxy[0].tolist() }) return jsonify(detections) if __name__ __main__: app.run(host0.0.0.0, port5000)7. 总结通过本教程你已经学会了如何快速部署YOLO12目标检测模型对图像和视频进行目标检测的基本方法如何训练自定义数据集模型优化和部署的基本技巧YOLO12的强大性能和易用性使其成为各种计算机视觉应用的理想选择。无论是智能监控、自动驾驶还是工业质检YOLO12都能提供高效的解决方案。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

更多文章