YOLO 物体检测
Object Detection Yolo
📌 项目介绍
用 YOLO(You Only Look Once)模型实时识别画面中的物体类别与位置,OpenCV 教程中常用 YOLOv3 版本,可识别 COCO 数据集的 80 类常见物体(人、车、猫、手机等)。
YOLO 以「单次前向即可输出全部检测框」著称,在实时性与精度之间取得良好平衡,是目标检测领域的经典实战项目。
🧰 环境与物料
- 电脑 + 摄像头(或图片/视频)
- Python 3.7+ 环境
- pip 安装:opencv-python、numpy
- YOLOv3 权重 + 配置文件 + coco.names 类别文件
🔧 步骤拆解
1
下载模型文件
获取 yolov3.weights(约 236MB)、yolov3.cfg 与 coco.names
也可用轻量的 yolov3-tiny 加快速度
2
加载网络与类别
用 readNetFromDarknet 加载 cfg 与权重
读入 80 个类别名列表
3
blob 输入
图像转 blob,设置缩放与输入尺寸
注意 YOLO 输入需归一化到 0~1
4
前向推理
遍历网络输出层得到检测结果
每个检测包含中心坐标、宽高、置信度与类别概率
5
过滤与 NMS
按置信度阈值过滤低分检测
用 NMSBoxes 去除重复框
6
绘制结果
在原图上绘制类别名 + 置信度 + 框
不同类别可用不同颜色区分
💡 要点提示
- 视频检测时每帧都推理较慢,可跳帧(每 2~3 帧检测一次)提速
- yolov3-tiny 速度快但小目标容易漏检,按场景取舍
- 置信度阈值调低(如 0.3)能发现更多目标,误报也随之增加