《目标检测算法--FCOS实验报告更新》

FCOS算法实验报告

  • FCOS算法原理

1、FCOS算法的思想是预测输入图像中每个点所属的目标类别和目标框。网络结构下图所示,从结构中可以看出,FCOS算法的网络结构采用3层预测输出。

第一个输出是分类支路,H*W表示特征的大小,C表示类别数。特征上的位置(x,y)可以通过公式换算成输入图像的位置,建立了特征图上点的位置和输入图像上点的位置之间的关系,方便计算特征图上每个点的分类和回归目标。

第二个输出是Center-ness,这个分支用于计算每个点和目标中心点的距离,用于减少那些离目标中心点较远的预测点。

第三个输出是回归支路。 

《目标检测算法--FCOS实验报告更新》_第1张图片

 

  • 回归部分采用下列公式进行:

其中(x,y)为图像上的坐标,作为回归的中心点。(x0(i),y0(i)), (x1(i),y1(i))作为图像真实标签左上角,右上角的坐标。该网络主要输(l,t,r,b)这四个值。

  •  Center ness支路采用以下公式进行:

从下列公式中可以看出当坐标点(x,y)距离中心点越近时,值越大。为了剔除距离中心点远的坐标的回归,本文采用分类支路的输出与该输出相乘作为最后的分类置信度。

2、对于图像中坐标(x,y)同时在两个目标的真实框内,作者设计了FPN网络。根据max(l,t,r,b)值确定该目标到底在哪一层神经网络进行训练。

 

  • FCOS网络优缺点分析:

优:(原文中提到)

  • 作为anchor free的网络,该网络少了对于anchor超参数的设计。(例如anchor的大小,anchor的比例,anchor的数量等)

  • 解决了正负样本失衡的问题,不会产生大量的负样本。

缺点:

  •  从上述原理中分析,该网络并没有实现根据回归边界框的(l,t,r,b)四个值实现自动分配相应的特征层。还是用手动设置分配特征层的方式。

  • 代码实验运行结果:
  • 损失函数:

regression_loss:回归损失

classification_loss:分类损失

centerness_loss:中心度损失

代码每运行一个epoch,就会对验证集的图像进行检测,计算mAP。

《目标检测算法--FCOS实验报告更新》_第2张图片

  1. 测试:
  1. 《目标检测算法--FCOS实验报告更新》_第3张图片《目标检测算法--FCOS实验报告更新》_第4张图片《目标检测算法--FCOS实验报告更新》_第5张图片《目标检测算法--FCOS实验报告更新》_第6张图片

《目标检测算法--FCOS实验报告更新》_第7张图片《目标检测算法--FCOS实验报告更新》_第8张图片

实验结果说明

分析:对比现有运行算法,该算法不如Faster rcnn算法的检测效果。

对比Faster rcnn对于图一,图四,图五的检测,该算法存在漏检与错检。(将图四的飞机识别成棒球场,将图五的汽车识别成油桶。)

对比标定框的准确度,FCOS算法回归检测框的准确度不如Faster rcnn。对于某些检测框,并不能很好的完全包含目标,只能大概标注出目标的位置。(例如图三中,飞机的某些部位(飞机头,飞机尾)并不能很好的标注到目标框内;图六中对于篮球场目标的回归效果也不理想,不能实现有旋转角度目标的检测。)

  1. 测试时间:检测每一张图片大约用时3s左右。

  1. 测试图像mAP值:
  1. 《目标检测算法--FCOS实验报告更新》_第9张图片

目标检测识别过程中问题:

对于一些密集型目标,有旋转角度目标的检测:

《目标检测算法--FCOS实验报告更新》_第10张图片《目标检测算法--FCOS实验报告更新》_第11张图片

《目标检测算法--FCOS实验报告更新》_第12张图片

对于桥梁,港口的检测结果不理想,大多是由于对于桥梁,港口目标存在漏检。

 

 

你可能感兴趣的:(神经网络)