【总结 Anchor-free1】Anchor-Free Keypoint方法总结以及思路分析

&Anchor-based的shortcoming

1) 使用anchor时,需要在每个特征尺度上密集平铺,而仅有很少一部分是正样本,即正负样本的比例差别很大;最终有很多计算都花费在无用样本,且一般使用时需要进行预处理,挖掘难负例;

2) 需要预定义的anchor size以及aspect ratio。检测性能会收到这些预定义的参数的影响,如果在每一个位置设定的anchor的数量太多,也会导致计算量成倍增长;

3) 使用axis-align的形式:

  • 由于anchor是针对特征图上的点进行提取的,并不是所有的像素点上都会提取对应的anchor,且在每个点上提取的anchor的数量也不尽相同,如果只使用axis-align形式,最终结果可能对于那个bbox中心不在特征图上的点不大友好,最终影响整体的精度;当然,目前也有针对该问题做出的调整,如可以通过预测中心点偏移,参照RepDet中的Adaptive Convolution方法
  • 使用box来作为一个目标的回归结果,仍然会在其中包含大量的背景信息,尤其是在边角区域,而且对于斜放的细长目标会造成更大的影响。在这个方向上,也存在一些改进方式,如ExtremNet提出的使用八边形来描述一个目标,(Segmentation is All You Need)论文中也提出将目标的范围通过椭圆精细化。

 

&Anchor-free方法以及具体思想

1) YOLOv1

YOLOv1摒弃了anchor,使用grid来负责每一块区域的目标检测。主要思想就是将整张图片划分为S×S(7×7)个grid,每个网格检测B(2)个bbox。

分享图片

按照论文讲述的结果,先将图片resize到448×448;然后输入到CNN中,最终输出一个7×7×30的矩阵,其中30表示的是20个类别得分,2个回归框的信息(x, y, w, h, confidence);将最终的结果使用NMS进行处理。

分享图片

显而易见,网上有人觉得这也是anchor的一种变种,但是,我认为这已经不再是anchor,反倒观点更接近于通过点来对bbox回归的思想。只不过YOLOv1是通过先将整张图片分成了多个网格,对应的中心落在该网格内的目标则由这个网格来回归。

Pros

  • 处理速度很快。YOLOv1的运行速度因为预处理部分很简单,只是简单地进行resize,之后直接使用CNN网络进行回归,在后处理中也只是用到了NMS,且最终得到的bbox回归框的个数极少。
  • 降低背景误检。相比于anchor-based方法会提取很多的anchor出来,YOLOv1在运算过程中,会使用到的“anchor”相当少,至多只有7×7×2个。

Cons

  • 模型精度低。因为在运算中使用了很少的box,而且还定义了一个grid至多能识别的目标的数量,对于无目标与多目标存在同一个grid中的情况很不友好。且模型是从数据中学习预测bbox,最终对于新的或者不寻常的aspect ratio或者configuration的目标很难识别,由于使用了多层的卷积层,最终使用到的特征的信息很粗糙。
  • 不适用于密集目标检测。同理。
  • 有着很强的空间限制因为YOLOv1在一个grid中至多只能识别两个目标,而且只能识别一个类。
  • 损失函数等同对待小bbox以及大bbox的误差。

总而言之,YOLOv1可视为anchor-free论文的第一篇发迹文。之后就迎来了anchor-free方面论文的并发期,之后最基础的方法就是CenterNet以及CornerNet。

 

2) CenterNet

CenterNet的主要思想是通过中心点的信息来回归出其他bbox的属性,如中心点与四条边的距离、姿势、方向等信息。

分享图片

首先,CenterNet会计算keypoint heatmap,然后通过网络直接回归出需要使用的信息。这种方法简单、快速、高效而且没有任何的NMS的后处理操作,可以直接端到端地进行训练。但是,只使用中心点进行回归,显然会使得获取的信息过少,可能不足以支撑回归出如此有效的信息,最终影响到检测性能。不过可能是由于其回归的信息很充分,增强了各种信息的表征能力使得能够对结果有所提升,【愚见,之后会重温】

 

3) CornerNet

相比CenterNet从中心点来回归出边界距离获得bbox来说,CornerNet反其道而行,直接使用两个角点:top-left,bottom-right,直接定义bbox,以一组角点来确定一个目标。

分享图片

首先,CornerNet计算出top-left以及bottom-right两个heatmaps,其中分别表明图中的top-left以及bottom-right点的信息,然后通过embeded方法计算top-left集合以及bottom-right集合中点的距离,将距离最近的点分为一个组,作为最终的bbox。其中也是用了一些改进方法,如Corner-Pool,使得计算角点更精确。

当然,这种想法也很好,但是却不可避免地引入了分组的计算算法,增加了计算难度,同时与CenterNet类似,即便此时使用了两个角点的信息来确定一个bbox,此时的角点由于使用了Corner Pool方法融入了更多边的信息,不可避免地导致网络对于边更加敏感,而且忽略了更多的内部细节

 

4) CenterNet-Triplets

这种方法粗略来看就相当于整合了Center以及Corner的信息,相当于在CornerNet的基础上增加了Center的信息作为其中一个判别标准。Corner的heatmaps的生成仍然像CornerNet中一样,只不过多增加一个分支为center heatmap,corner分组后需要判断其中是否包含有center heatmap中的点,没有就可以直接排除。剩下的与CornerNet相似。

分享图片

此外,考虑到corners对目标框中的内部信息把握不准,在CornerPool的基础上进行改进,提出了Cascade Corner Pool,使得corner也能编码一些内部的信息,增强了点的表征力;与此同时,提出了Center Pool,获得水平方向以及竖直方向上的最大值,也能够表示更多的信息。

 分享图片

但是,其一,我觉得使用的Cascade Corner Pool的方法的表义不明,即便在进行第二步的时候确实获取了一些框内的信息,增强了点的表征力,但是使用到的这个内部信息的表义却不是很明确,只能说明加入了一些内部信息时确实对结果产生了有利影响;其次使用到的信息仍然不够,尤其是对回归框的内部信息的使用,虽然使用到了center heatmap,但是最后只是用来做辨别,相当于没有完全利用这部分的信息。

因此在这个基础上是否可以将center的信息也利用进回归框的信息预测中,不过需要考虑一下怎么使用,而且ExtremeNet使用的方法与之也有相同之处

 

5) ExtremNet

ExtremeNet使用到了4条边的极值点,以及中心点,在CenterNet-Triplets的基础上将预测的角点分解为边的极值点,同时分组不再按照embeded计算的距离,而是随机分组。

 分享图片 

首先,网络计算得到5个heatmaps,分别为top、left、bottom、right以及center heatmap,其中top、left、right以及bottom仍然作为bbox获取的途径,每次从其中任取一个点作为一个bbox的四个极值点,然后计算其逻辑中心,如果在center heatmap中存在,则将之视为一个bbox,用作回归过程。

该方法,从分组的方式上来看,显然这个计算量是很大的。其余除了比CenterNet-Triplets多了一些边上的信息外,存在着与之相似的问题,而且网络对边缘的敏感更高

整体来看,这个方法就是对CenterNet-Triplets方法的分解,将Corner的预测转化为极值点的预测,显然,这些点所能包含的信息会更多一些,但增加的信息也有限,不过给我们提供了一个优化结果的思路;将任务分解为更细致的任务,获取到更多信息以及分解任务间的关联性可能会对网络产生好的影响

【注】之后会增加RepDet的内容,同时将使用的密集点检测的Anchor-free的方法也做进一步的总结。

相关文章
相关标签/搜索
三期内必开一期 色达县| 永寿县| 望都县| 山阳县| 金华市| 慈溪市| 凤冈县| 蒲江县| 黄龙县| 普兰县| 松江区| 宜州市| 含山县| 长沙县| 新津县| 民和| 台安县| 汶上县| 广丰县| 沐川县| 全椒县| 伽师县| 宁乡县| 黄浦区| 乐至县| 阿荣旗| 来凤县| 柯坪县| 曲靖市| 陆丰市| 吴旗县| 衡山县| 太湖县| 额敏县| 织金县| 永康市| 永吉县| 鹤庆县| 大洼县| 泰和县| 衡阳县| 临武县| 绵竹市| 蕉岭县| 内乡县| 南部县| 忻城县| 南京市| 黄骅市| 肃北| 乾安县| 翁牛特旗| 青川县| 新沂市| 保山市| 西青区| 靖宇县| 民权县| 靖江市| 新昌县| 滨海县| 长治县| 西盟| 海伦市| 巴南区| 东丽区| 云龙县| 肥西县| 尼玛县| 景泰县| 江城| 呼图壁县| 南雄市| 龙山县| 册亨县| 横峰县| 平遥县| 泾川县| 土默特左旗| 顺平县| 壤塘县| 任丘市| 滨海县| 兴国县| 河池市| 南岸区| 崇阳县| 辽阳市| 辽源市| 霍城县| 四川省| 临西县| 临夏县| 民权县| 石嘴山市| 深泽县| 潜山县| 治县。| 佛坪县| 天气| 凤凰县| 祥云县| 高要市| 玉山县| 九江市| 静安区| 色达县| 霍邱县| 蓝田县| 车险| 本溪市| 石屏县| 古浪县| 宁夏| 溧水县| 宜阳县| 资兴市| 禹州市| 太仓市| 千阳县| 建瓯市| 喀喇沁旗| 洛阳市| 集安市| 扶绥县| 武平县| 蓬安县| 金堂县| 丰顺县| 福鼎市| 额尔古纳市| 万安县| 响水县| 阿拉善盟| 古蔺县| 金门县| 西宁市| 旌德县| 岑溪市| 吉木乃县| 南华县| 永清县| 乌兰浩特市| 钟祥市| 天台县| 偏关县| 伊春市| 抚远县| 保山市| 来安县| 阿拉尔市| 宣城市| 湟中县| 大城县| 连城县| 池州市| 沅陵县| 太和县| 林甸县| 乾安县| 屏东市| 泽普县| 顺昌县| 锦州市| 岳阳县| 庄河市| 绥阳县| 财经| 萨嘎县| 南涧| 云南省| 麻栗坡县| 蒙山县| 舟曲县| 谢通门县| 剑河县| 全州县| 海丰县| 睢宁县| 昌江| 仲巴县| 抚宁县| 莒南县| 临猗县| 蒲城县| 五原县| 黎川县| 阳新县| 浦县| 栾城县| 斗六市| 广水市| 乐清市| 台湾省| 凌云县| 潞城市| 昭平县| 龙岩市| 定南县| 兴山县| 双牌县| 泾源县| 碌曲县| 馆陶县| 西城区| 德钦县| 南宁市| 泊头市| 深水埗区| 当涂县| 隆林| 循化| 墨竹工卡县| 和平县| 亚东县| 安新县| 长子县| 定兴县| 建宁县| 济阳县| 青浦区| 沙湾县| 同仁县| 宁德市| 铁岭县| 舞钢市| 墨玉县| 交口县| 盐城市| 蒲江县| 民乐县| 视频| 衡阳县| 柏乡县| 潞城市| 法库县| 奎屯市| 崇州市| 项城市| 泰安市| 永和县| 称多县| 修武县| 广河县| 肇州县| 济阳县| 鹤山市| 南川市| 礼泉县| 剑河县| 江达县| 略阳县| 武宣县| 辉南县| 门源| 云浮市| 海淀区| 监利县| 曲阜市| 宁晋县| 苍南县| 广宁县| 万源市| 水城县| 儋州市| 大悟县| 新野县| 龙门县| 宜阳县| 屯留县| 南宁市| 肃宁县| 元阳县| 乌兰浩特市| 蓬溪县| 谢通门县| 泸水县| 宽甸| 汾阳市| 宁城县| 崇礼县| 海晏县| 左贡县| 蒙阴县| 天气| 福清市| 息烽县| 仪征市| 琼结县| 武清区| 乐清市| 巴南区| 伊宁市| 天镇县| 新干县| 夏邑县| 微山县| 北票市| 乌鲁木齐市| 通道| 龙江县| 大竹县| 上犹县| 海晏县| 通州市| 阿荣旗| 普定县| 建德市| 蕲春县| 隆昌县| 宜良县| 甘洛县| 南皮县| 鹿泉市| 海安县| 吉林市| 赤城县| 庄浪县| 来宾市| 许昌市| 灵璧县| 盐源县| 邯郸县| 罗源县| 黄龙县| 津南区| 泽普县| 若羌县| 曲麻莱县| 宜宾市| 金堂县| 阿荣旗| 榕江县| 锡林浩特市| 察哈| 麻阳| 彩票| 广西| 察隅县| 基隆市| 兴和县| 吴桥县| 遵化市| 麦盖提县| 三门峡市| 苏尼特左旗| 当涂县| 大厂| 崇义县| 张北县| 蓝山县| 阿克苏市| 石狮市| 博罗县| 黑水县| 孟连| 凯里市| 南部县| 仁化县| 荥阳市| 偏关县| 图木舒克市| 昭苏县| 阳信县| 塔城市| 安远县| 靖州| 贵南县| 民权县| 沙湾县| 城步| 资兴市| 秭归县| 甘洛县| 缙云县| 阜南县| 延寿县| 兰坪| 通河县| 陇川县| 赣榆县| 高邑县| 鱼台县| 长武县| 双城市| 当阳市| 长武县| 聂荣县| 灌阳县| 张家界市| 潜山县| 中西区| 全州县| 临海市| 墨竹工卡县| 顺义区| 泰和县| 绿春县| 芮城县| 通山县| 江安县| 卢龙县| 凌源市| 乐陵市| 夏邑县| 张家界市| 扶沟县| 平舆县| 兰考县| 新巴尔虎左旗| 基隆市| 弥渡县| 弋阳县| 阿克陶县| 寿光市| 五家渠市| 烟台市| 平远县| 安龙县| 绵阳市| 江孜县| 蕲春县| 佛山市| 珲春市| 郸城县| 赞皇县| 洪雅县| 双城市| 林芝县| 交城县| 泽普县| 五河县| 胶南市| 雷山县| 靖远县| 庐江县| 金溪县| 清丰县| 天台县| 沙河市| 石泉县| 清镇市| 信宜市| 邢台市| 鄄城县| 盐源县| 衡水市| 安徽省| 曲靖市| 嘉黎县| 米脂县| 察雅县| 中宁县| 资讯| 忻州市| 浦东新区| 交城县| 静乐县| 榆林市| 鄢陵县| 东城区| 宁陵县| 新晃| 军事| 高邮市| 堆龙德庆县| 富阳市| 江西省| 明光市| 英山县| 铜鼓县| 怀宁县| 阿勒泰市| 毕节市| 宁明县| 偏关县| 城口县| 万全县| 陇川县| 舟山市| 汝阳县| 电白县| 巫溪县| 香河县| 青河县| 石泉县| 安化县| 湘阴县| 鄢陵县| 本溪市| 陇西县| 天台县| 外汇| 定陶县| 仁怀市| 邵武市| 岗巴县| 盱眙县| 赤壁市| 佛山市| 双桥区| 遵义市| 当阳市| 汕尾市| 通许县| 南召县| 广宗县| 宾阳县| 河曲县| 梁河县| http://wap.yqo6j2rl9v.fun http://m.bo2020cazpaigns.fun http://wap.yqo6j8rl7v.fun http://wap.gz1980bobc.fun http://www.bo2020retails.fun http://www.yqo2j7rl2v.fun http://wap.yqo6j5rl4v.fun http://www.gz1980wowc.fun http://wap.gz1980prozotec.fun http://wap.bo2020locks.fun http://m.yqo9j0rl8v.fun http://www.gz1980failc.fun http://wap.gz1980goc.fun http://m.bo2020cozes.fun http://wap.bo2020trains.fun