Claude Code实战指南:从环境配置到高级指令工程,打造高效AI编程伙伴
2026/8/9 6:19:19
YOLO(You Only Look Once)是一种将目标检测视为回归问题的单阶段实时目标检测算法,通过单次前向传播即可预测图像中所有目标的边界框和类别概率 。
(x, y)、宽高(w, h)和置信度)以及 C 个类别的条件概率 。S × S × (B * 5 + C)的张量,直接包含了所有检测结果。| 版本 | 关键特性/改进 | 提出时间 |
|---|---|---|
| YOLOv1 | 开创性工作,提出统一的单阶段检测框架 。 | 2015年 |
| YOLOv2 (YOLO9000) | 引入锚框(Anchor Boxes)、批量归一化,提升召回率和速度 。 | 2016年 |
| YOLOv3 | 采用多尺度预测、更优的主干网络(Darknet-53),显著改善小目标检测 。 | 2018年 |
| YOLOv4 | 集成了大量训练技巧(如Mosaic数据增强、CIoU损失)、更高效的网络结构 。 | 2020年 |
| YOLOv5 | 由Ultralytics发布,以PyTorch实现,强调工程易用性、训练速度和部署便利性 。 | 2020年 |
| YOLOv8 | 同样由Ultralytics维护,在架构和任务支持(检测、分割、分类、姿态估计)上进一步优化 。 | 2023年 |
以下代码展示了如何使用预训练的YOLOv8模型进行目标检测。
# 安装必要的库 # pip install ultralytics opencv-python from ultralytics import YOLO import cv2 # 1. 加载预训练模型(例如YOLOv8n) model = YOLO('yolov8n.pt') # 会自动下载模型 # 2. 对图像进行预测 results = model('path/to/your/image.jpg') # 或直接使用摄像头视频流 # 3. 可视化结果 annotated_frame = results[0].plot() # 绘制边界框和标签 # 4. 显示结果 cv2.imshow('YOLO Detection', annotated_frame) cv2.waitKey(0) cv2.destroyAllWindows() # 5. 打印检测到的目标信息 for result in results: boxes = result.boxes # 边界框信息 for box in boxes: # 获取坐标、置信度、类别ID x1, y1, x2, y2 = box.xyxy[0].tolist() confidence = box.conf[0].item() class_id = int(box.cls[0].item()) class_name = model.names[class_id] print(f"检测到: {class_name}, 置信度: {confidence:.2f}, 坐标: [{x1:.1f}, {y1:.1f}, {x2:.1f}, {y2:.1f}]")对于自定义数据训练,Ultralytics YOLO提供了简洁的接口:
# 训练自定义模型 model.train(data='coco8.yaml', epochs=100, imgsz=640) # 模型导出(用于部署) model.export(format='onnx') # 可导出为ONNX, TensorRT, CoreML等格式