目标检测的发展思路
原始思路:切分后分类。
如何解决边界物体无法检测的问题:
如何解决定位不准确的问题:增加边界框回归任务
如何解决目标的多尺度问题:两个方法:多尺度滑窗和图像金字塔。二者能达到相同效果,实现方法不同。
以上过程存在的问题:需要分类的图像太多,效率低下。
如何解决:SS算法。最后只生成几十个或者几百个提议框,只针对这几个框做分类和回归。
于是产生了RCNN:首先通过区域提议找出可能包含物体的框,对于每一个提议区域,将其拉伸或者缩放到固定的尺寸,送入卷积神经网络得到其特征,最后通过卷积神经网络对框进行修正和进一步的分类。因为RCNN包含两个步骤,因此也叫两阶段算法。
模型中哪些模块是需要学习的:卷积神经网络主干、分类器和回归模型。
如何生成分类和回归的目标值?
边界框编码:回归目标可能非常大或者非常小,不利于模型的预测。
关于交并比:
原始的RCNN训练方法:
两阶段算法的演变:
RCNN的效率问题:
共享特征计算:如果特征图是原图的1/8或者1/32,则将原始的提议框缩小到1/8或者1/32到特征图上。
Fast RCNN:流程如下,Fast就是1和2,RCNN就是3。
在Mask RCNN中,提出了用ROI Align替代ROI pooling:
Fast RCNN的训练:
Fast RCNN的问题:产生提议框的时间成为瓶颈。
改进方法:区域提议网络(RPN)
解决多尺度:
Faster-RCNN:
Faster-RCNN的训练:
解决小物体目标丢失:
Faster rcnn中融入FPN:(重点)
关于MMdetection:
Neck:FPN DenseHead:RPN
总结两阶段目标检测算法:
单阶段目标检测:
单阶段目标检测算法的发展:
Yolo(2015):
yolo的损失计算:
yolo的检测精度相比faster rcnn精度要低:
yolov2:和fasterrcnn的方法比较类似
yolov3:可以多尺度预测
SSD的多尺度特征图和FPN比较类似,但是没有特征融合,多个特征图可以帮助SSD在不同尺寸物体的检测上有比较好的提升:
SSD的检测头:
SSD的训练:
正负样本不均衡:
解决方案:
困难负样本:
困难负样本挖掘解决样本不均衡:
Focal loss解决样本不均衡:
无锚框算法:
FCOS:
FCOS的损失函数:
总结: