一、目标检测的概念
目标检测是计算机视觉领域中的一个重要任务,旨在从图像或视频中找出特定目标的位置并确定其类别。例如,在一张包含汽车、行人、交通标志的街道图像中,目标检测算法能够准确地标识出每一辆汽车、每一个行人以及每个交通标志的位置(通常用矩形框表示),并说明它们分别是什么类别。
二、目标检测的数据集
1.VOC数据集:PASCAL VOC挑战赛(The PASCAL Visual Object Classes)是一个世界级的计算机视觉挑战赛。它含有4大类,20小类 VOC 2007:9963图片 /24640目标 VOC 2012:23080图片 /54900目标。
2.COCO数据集:起源于微软2014年出资标注的MS COCO数据库。其中他包含20万个图像 80个类别 超过50万个目标标注 平均每个图像的目标数是7.2。
三、目标检测的Ground Truth
YOLO(TXT)格式: (x,y,w,h) 分别代表中心点坐标和宽、高 x,y,w,h均为归一化结果
VOC(XML)格式: (Xmin,Ymin,Xmax,Ymax)分别代表左上角和右下角的两个坐标。
COCO(JSON)格式: (Xmin, Ymin, W, H),其中x,y,w,h均不是归一化后的数值,分别代表左上角坐标和宽、高
四、目标检测的评估指标
1.IoU(Intersection over Union):IoU,即交并比,是目标检测中一个重要的评价指标。它用于衡量预测的目标框(bounding box)与真实的目标框之间的重叠程度。
计算方式为预测框与真实框的交集面积除以它们的并集面积,数学表达式为:
生成的预测结果会非常多,首先过滤掉低类别置信度的检测结果,使用IoU作为边界框正确性的度量指标
2.检测结果的类别
相关公式:
(Precision:准确率,查准率 Recall:召回率,查全率 P-R曲线 mean AP:每个类别所得到的AP的均值 Average Precision:11点法、近似面积法)
3.mean与average
mean:算数平均 average:包含其他的度量指标 Average P:P值需要设计度量规则让它均衡 mean AP:AP够均衡了,直接mean即可。
AP计算方法:11点法
五、目标检测的传统方法
2.深度学习方法
anchor box用ratio+scale描述
(1)feature map的点来决定位置
(2)scale来表示目标的大小(面积大小)
(3)aspect ratio来表示目标的形状(长宽比)
anchor-base和anchor-free
(1)anchor-base:anchor-base是自顶向下的类似于传统方法,滑动窗口法穷举出许多,然后再根据置信度之类的进行筛选
(2)anchor-free:anchor-free是自底向上的 想办法自动生成,不穷举 free掉了anchor的预设过程
two stage算法流程
one stage算法流程
常见two stage算法
经典发展线:R-CNN、SPP-Net、Fast R-CNN、 Faster R-CNN
其他:Cascade R-CNN、Guided Anchoring
常见one stage算法
YOLO系列:YOLO v1-v5
SSD系列:SSD、DSSD、FSSD
其他经典:RefineDet
五、YOLO-V1
核心思想
网络的架构
- 网络结构
- YOLO - V1 采用了一个单一的卷积神经网络(CNN)来同时预测多个目标的类别和位置。它将输入图像划分为 S×S 个网格(grid cell)。例如,对于一个 448×448 的输入图像,可能会划分为 7×7 的网格。
- 网络结构基于 GoogleNet,包含 24 个卷积层和 2 个全连接层。卷积层用于提取图像的特征,全连接层用于最后的分类和位置预测。
- 输入与输出
- 输入:YOLO - V1 的输入图像大小为固定的 448×448。
- 输出:对于每个网格单元,网络会预测 B 个边界框(bounding box)以及这些边界框的置信度(confidence)和 C 个类别概率。每个边界框的置信度定义为,其中表示该边界框包含目标的概率,是预测框与真实框的交并(IoU)。网络最终输出一个 S×S×(B×5 + C) 的张量。例如,如果 S = 7,B = 2,C = 20(假设检测 20 个类别),那么输出张量的维度就是 7×7×(2×5+20)=7×7×30。
YOLO - V1 的优缺点
- 优点
- 速度快:YOLO - V1 是一个端到端(end - to - end)的目标检测模型,由于采用单一的网络结构同时进行特征提取、目标定位和分类,所以检测速度非常快,能够实现实时目标检测。例如,在 Titan X GPU 上,能够达到 45 帧 / 秒的检测速度。
- 泛化能力较好:它对不同尺寸和比例的目标具有一定的适应性,因为网络能够学习到图像的全局特征,并且每个网格单元都可以预测多个边界框。
- 缺点
- 检测精度有限:尤其是在检测小目标和密集目标时效果较差。由于每个网格单元只能预测有限个边界框(通常为 2 个),对于小目标或者目标分布密集的场景,可能会遗漏一些目标或者预测不准确。
- 定位精度相对较低:相比于一些 Two - Stage 的目标检测方法(如 Faster R - CNN),YOLO - V1 的边界框预测不够精确,因为它没有采用类似于 Faster R - CNN 中的区域建议网络(RPN)来精细调整边界框。