目标检测(一)
1. 目标检测是什么?
简单说就是 “认出图片里的物体,还找到它们在哪儿”,要同时完成 “定位置” 和 “辨类别” 两个任务,还会面临物体种类数量多、大小不一、被遮挡或有噪声干扰等难题。
2. 常用数据集
有三个常用的标注好的 “练习数据” 库:
- VOC 数据集:分 4 大类、20 小类,2007 版有近万张图、2 万多个目标,2012 版图和目标更多;
- COCO 数据集:微软 2014 年搞的,有 20 万张图、80 个类别,超 50 万个目标,平均每张图有 7.2 个目标;
- 还有 “Ground Truth”(真实标注):记录物体类别和位置,不同格式记录方式不同 ——YOLO 用归一化的中心点 + 宽高,VOC 用左上角 + 右下角坐标,COCO 用未归一化的左上角 + 宽高。
3. 怎么判断检测得好不好?
用一系列 “评估指标”:
- IoU:看预测框和真实框重叠多少,重叠率是判断框准不准的关键;
- TP/FP/TN/FN:TP 是 “真的检测对了”(IoU 超阈值),FP 是 “假阳性”(把不是目标的当成目标),TN 是 “真的没目标”,FN 是 “漏检”(没找到真实目标);
- Precision/Recall:Precision 是 “检测对的比例”(查准率),Recall 是 “找全真实目标的比例”(查全率),还会画 P-R 曲线看整体表现;
- AP 和 mean AP:AP 是单个类别的平均表现(常用 11 点法计算),mean AP 是所有类别的 AP 求平均。
4. 目标检测的方法
分 “传统方法” 和 “深度学习方法”:
- 传统方法:主要是 “滑动窗口法”,要人工设窗口尺寸,会做很多重复操作,定位还不准;
- 深度学习方法:
- 先分 “anchor-base”(先预设很多框,再筛选)和 “anchor-free”(不用预设,自动找目标);
- 再按流程分 “two stage”(两步走:先找可能有目标的区域,再判断类别和位置,比如 R-CNN 系列)和 “one stage”(一步到位:直接从图里出结果,比如 YOLO、SSD 系列);
- 最后都会用 “NMS(非极大值抑制)”:去掉重复的框 —— 先按置信度排序,留最高的,删掉和它重叠多的,反复到没重复框。