栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > Cocos2d-x

Fcos目标检测算法简读

Cocos2d-x 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Fcos目标检测算法简读

    本人最近在计算密集小物体检测时,首先应用retinanet进行检测,但用文献建议的从P3进行检测,检测的最小像素尺寸为10几个像素,检测不到图片中的小目标,本人对retinanet改进,加入p2,计算量特别大,偶然看见anchor-free的fcos算法,应用fcos进行检测很好的解决了小目标检测不到的问题。Fcos的创新点一个是anchor free,另一个是center-ness。

FCOS优势
  1. FCOS与许多基于FCN的思想是统一的,因此可以更轻松的重复使用这些任务的思路。
  2. 检测器实现了proposal free和anchor free,显著的减少了设计参数的数目。通过消除锚框,新探测器完全免了复杂的IOU计算以及训练期间锚框和真实边框之间的匹配,并将总训练内存占用空间减少了2倍左右。
  3. FCOS可以作为二阶检测器的区域建议网络(RPN),其性能明显优于基于锚点的RPN算法。
  4. FCOS可以经过最小的修改便可扩展到其他的视觉任务,包括实例分割、关键点检测;

 FCOS的模型结构

     FCOS的模型的主体和RetinaNet基本一样,包括Backbone、Neck以及Head的一部分。下图为Fcos的结构图。

Backbone

     Backbone的主要作用是对提取图像中的特征,文中的backbone使用的是resnet结构,在P5的基础上,作者还进行了upsampling,在stage2中,每个feature map的channel都是256,接到stage2后面的head,是4个3*3的卷积层,输出均为256。

Neck

     Neck的主要作用是对Backbone提取的特征进行特征融合,FCOS的Neck采用的是FPN的特征金字塔,FCOS为了增大感受野,检测更大的物体,通过下采样增加了P6、P7,不同Level的特征图对应不同的感受野,可以用于检测不同大小的物体。

Head

Head 用于对提取的特征检测目标物体:

  1. 输入图片,Backbone+Neck将生成5个level的特征图[P3,P4,P5,P6,P7],FCOS对每一个level特征图进行检测,将每个level特征图中的所有特征点作为anchor point;
  2. 将anchor point映射回原图中,并根据anchor point所在的特征层分配回归的范围,用于检测不同大小的物体。Fcos算法feature map中位置与原图对应的关系,如果feature map中位置未,映射到输入图像的位置是;
  3. 为每一个anchor point分配Ground truth(GT) 的label和Bounding box。对于每个anchor point与其他所有的Bounding box四条边的距离,判断四个值是否都大于0,大于0说明在Bounding box内部;第三步判断四个值是否在anchor point对应的回归范围内;
  4. 为每一个anchor point预测classification、regression、centerness的值,Classification输出类别维数,Regression输出4维,Centerness为1维;
  5. Fcos的损失函数包含两部分,根据GT的label和classification计算Classification的loss,使用focal loss;根据GT的bounding box和预测的bounding box计算Regression的Loss,使用的是IOU loss。Fcos算法的损失函数为: 0}}L_{reg}( t_{x,y},t_{x,y}^{*})" src="https://latex.codecogs.com/gif.latex?L%28%5Cleft%20%5C%7B%20p_%7Bx%2Cy%7D%20%5Cright%20%5C%7D%2C%5Cleft%20%5C%7B%20t_%7Bx%2Cy%7D%20%5Cright%20%5C%7D%29%3D%5Cfrac%7B1%7D%7B%20N_%7Bpos%7D%7D%5Csum_%7Bx%2Cy%7D%5E%7B%7DL_%7Bcls%7D%28%20p_%7Bx%2Cy%7D%2Cc_%7Bx%2Cy%7D%5E%7B*%7D%29+%5Cfrac%7B%5Clambda%20%7D%7B%20N_%7Bpos%7D%7D%5Csum_%7Bx%2Cy%7D%5E%7B%7Dl_%7B%7Bc_%7Bx%2Cy%7D%3E%200%7D%7DL_%7Breg%7D%28%20t_%7Bx%2Cy%7D%2Ct_%7Bx%2Cy%7D%5E%7B*%7D%29" />其中是类别的损失,是交并比的损失。
  6. Fcos会产生大量偏离目标中心的边界框,为抑制低质量的检测边界框,而不引入任何超参数,作者添加一个Center-ness的分支,与分类分支并行以预测”Center-ness”位置:centerness的参数如下图所示:

 center-ness可以理解为一种具有度量作用的概念,在这里称之为"中心度",中心度取值为0,1之间,使用交叉熵损失进行训练。测试时,将预测的中心度与相应的分类分数相乘,计算最终得分。因此,中心度可以降低远离对象中心的边界框权重,这些低质量边界框可能被最终的非最大值抑制(NMS)过程滤除,从而显著提高检测性能。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/968072.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号