Anchor-Free目标检测算法
2021-04-19 03:27
标签:auto 影响 after 一个 over 高效 add sig blank 按时间排序的anchor free论文 为什么要anchor free? 1、anchor的数量 大小 和宽高比这些超参要调 CornerNet: Detecting Objects as Paired Keypoints 论文地址 https://arxiv.org/pdf/1808.01244.pdf 两个角点预测分支和偏移量预测分支 :预测了两个分支的HxWxC的热图,C是类别数 不含背景类。 whose center is at the positive location and whose σ is 1/3 of the radius pcij 是类别c在(i,j)上的预测得分,ycij 是用高斯核增强后的gt 原图中(x,y)的位置映射到热力图上是(x/n,y/n),n是下采样因子。 为什么要预测偏移量?因为卷积网络输出的heatmap大小和原图大小不一致,映射会原图会有精度的损失。 embedding分支:loss只用于GT角点位置 左上角的点与右下角的点如果属于同一bounding box,则他们embedding的向量之间的距离应该要小 Corner Pooling: 对于左上角的点,需要水平方向往右找到上边界,垂直方向下找到右边界 测试阶段: (1)、对heatmap使用maxpooling (相当于做了NMS) (2)、选择top100的左上角点和top100右下角点,左上角右下角点根据embedding的L1距离来匹配成对,>0.5就不成对 (3)、左上角和右下角点的score取均值作为最终的框的置信度。原图和翻转图送到网络得到框在做soft-NMS 创新点/优点: (1)对每个角点预测了一个embedding的特征 (2)提出了cornerpooling的操作:左上的角点分别从右往左 和从下往上求最大值的 缺点:处理时间久,效率低。COCO mAP 42.2% 1.147s每张图。 Feature Selective Anchor-Free Module for Single-Shot Object Detection 卡耐基梅隆大学 https://arxiv.org/pdf/1903.00621.pdf CornerNet-Lite: Efficient Keypoint Based Object Detection cornernert作者改进 论文地址 https://arxiv.org/pdf/1904.08900.pdf 代码开源:https://github.com/ princeton-vl/CornerNet-Lite CornerNet-Saccade: 1、Estimating Object Locations: 首先用下采样的图生成attention map和粗糙的边界框。 对下采样的图像,saccade预测出3个attention map分别表示大中小目标,使用Hourglass中上采样层的特征,The feature maps at finer scales are used for smaller objects and the ones at coarser scales are for larger objects. attention map通过 3x3 Conv + 1x1 Relu+ 1x1Conv+Sigmoid得到 训练阶段:物体中心点设为正样本,其余为负样本,使用focalloss。 在测试阶段:只处理score大于阈值的位置,score阈值设为0.3 2、检测阶段: 3个attention map可以为每个尺度的目标设置了一个放大尺度,小目标的长边放大后24像素,中目标放大后64像素,大目标192像素。 The scale is determined such that the longer side of the bounding box after zoom-in is 24 for a small object, 64 for a medium object and 192 for a large object 充分利用GPU,将原始图存放在GPU,直接在gpu上resize和裁剪操作减少cpu和gpu之间的切换。 第一阶段得到的检测框按score排序后选择Top k,再在这Kmax个位置上进行检测目标。 CornerNet-Squeeze 因为cornernet中backbone 是最耗时的, 借鉴了SqueezeNet and MobileNets的思想, CornerNet-Squeeze-Saccade比CornerNet-Squeeze跑的慢还精度低,主要是因为saccade是依赖与精确的attention map, gt attention 是将预测的attention map换成gt,可以看到明显的上升。这 说明attention map的质量对检测精度有影响。 创新点: (1)整体流程很像二阶的目标检测,先得到一些框,从原图上裁剪出目标区再根据目标大小进行放大送到检测器。 (2)使用缩小的图像送到网络生成不同尺度的目标的ttention map 缺点: (1)cornernet-squeeze也仅仅只是借用轻量化网络的idea,个人感觉创新点:不大 CenterNet: Keypoint Triplets for Object Detection 论文地址 https://arxiv.org/pdf/1904.08189.pdf 代码开源:https://github.com/ Duankaiwen/CenterNet 本文出发点:cornernet误检率很高, 原因之一可能是cornernet没法看到目标框内 Center Region 中心点的回归: 目标小于150的中心区域使用n=3,大于150使用n=5 预测得到的框求出一个中心区域,如果有预测的中心的落在这个区域内,则保留这个预测框。,最终的框的score去三个点的平均score。 Center-pooling,cascade corner pooling Center pooling 由于中心点不一定是有显著的视觉特征(人的头部是有显著特征,而中心点是在身体上) Cascade corner pooling:角点 通常实在物体外,缺乏目标外表的特征,corner pooling可以看做是为了找到最大边界 这两种pooling 都可以用cornerpooling组合实现 训练阶段:输入图像511x511,Adam,batch size=48。相比cornernet,增加了中心点的预测和中心点偏移的预测,训练loss如下: 测试阶段:Top70的中心点,Top70的左上角点和Top70的右下角点,最后根据检测结果的score选择top100 创新点: (2)改进了corner pooling (3)由于单阶段去除了RoI的提取,所以单阶段缺乏能够关注目标内部的信息。 An intuitive explanation of our contribution lies in that we equip a one-stage detector with the ability of two-stage approaches, with an efficient discriminator being added. 缺点/改进点: (2)还是一样和cornernet有关键点组合,耗时 Objects as Points 伯克利大学 论文地址: https://arxiv.org/pdf/1904.07850.pdf 代码开源 https://github. com/xingyizhou/CenterNet 原文提到a combinatorial grouping stage after keypoint detection, which significantly slows down each algorithm. cornernet 和extremenet都是要在关键点检测完之后,对关键点进行匹配组合,大大拉低算法运行时间。 本文没有网络结构图=。= 说明 (1)回归中心点,回归宽和高, (2)为了解决卷积网络里stride,额外预测了一个局部偏移量 (3)从点映射会边界框,无需NMS等后处理 创新点/优点: (1)能够达到实时;在COCO上28.1% AP at 142 FPS, 37.4% AP at 52 FPS, and 45.1% AP 多尺度测试 1.4 FPS。 (2)不像CornerNet,无须关键点组合和复杂的后处理。 (3)可扩展性强:3D目标检测,人体姿态估计等。 缺点:精度不够高 FCOS: Fully Convolutional One-Stage Object Detection 阿德莱德大学 论文地址: https://arxiv.org/pdf/1904.01355.pdf 基于anchor的缺点:(1)anchor的属性这些超参调 (2)这种固定好的anchor影响泛化性,(3)大量的anchor被标记为负样本,训练过程中正负不平衡。 一般anchor free的算法都不适合通用的目标检测,因为难以处理重叠框和低召回率的问题。 unsuitable for generic object detection due to difficulty in handling overlapping bounding boxes and the recall being relatively low (1)基于像素点的预测 (2)多级预测来提高召回(3)通过中心度预测分支来解决低质量的预测框 FCOS网络结构如下:基于像素预测中心度 ,类别heatmap和4个坐标点的回归。 Fully Convolutional One-Stage Object Detector 训练损失如下,分类使用focalloss,回归使用iou loss Multi-level Prediction with FPN for FCOS (用FPN多级预测) 基于anchor的检测器将不同大小的anchor box分配到不同level的特征上,FCOS直接限制不同feature level用于回归不同的边界框; mi表示第 i 级的feature需要回归的最大目标大小。本文中 m2, m3, m4, m5, m6 and m7 分别设为 0, 64, 128, 256, 512 and ∞, 不同大小的特征图负责回归不同的大小目标,因此没必要单独的网络。 As a result, instead of using the standard exp(x), we make use of exp(six) with a trainable scalar si to automatically adjust the base of the exponential function for feature level Pi , which slightly improves the detection performance. Center-ness for FCOS 为什么要有中心度预测?即使有了多级预测,FCOS和基于anchor的方法还有很大差距,预测框的中心离gt很远。 中心度的值实在0~1,所以可以使用BCE损失。测试的时候最后框排序依据的分数是中心度*类别得分。 下表比较了不加中心度分支,使用回归分支直接求得的中心度 和单独中心度预测分支
优点: (1)FCOS可以作为二阶段网络的RPN 部分 大大提高精度。 (2)有效缓解了重叠框(模糊) 和单阶段低召回率的问题。 (3)简单高效,效果好 Anchor-Free目标检测算法 标签:auto 影响 after 一个 over 高效 add sig blank 原文地址:https://www.cnblogs.com/SuckChen/p/13286888.html
2、dense anchor boxes create a huge imbalance between positive and negative anchor boxes during training. This imbalance causes the training to be inefficient and hence the performance to be suboptimal
(1)提出了新的三元组检测网络:左上角点+中心点+右下角点
(1)backbone 可以像cornernet-lite改进,
上一篇:jsp中的java脚本
下一篇:二叉树数组实现