<meter id="parjj"></meter>
          1. <blockquote id="parjj"></blockquote>

            <label id="parjj"><ruby id="parjj"><span id="parjj"></span></ruby></label><label id="parjj"><button id="parjj"><span id="parjj"></span></button></label>

            【总结 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的方法也做进一步的总结。

            相关文章
            相关标签/搜索
            王中王鉄算盘开奖结果118 邵阳市| 平凉市| 麦盖提县| 乌苏市| 天等县| 南丹县| 祁连县| 广宗县| 沂水县| 栾川县| 辽源市| 温宿县| 虹口区| 加查县| 读书| 华容县| 西畴县| 林周县| 玛曲县| 任丘市| 板桥市| 阳春市| 阿荣旗| 新闻| 海淀区| 临城县| 都江堰市| 佛学| 巢湖市| 城固县| 台江县| 库车县| 宜州市| 泸州市| 汪清县| 新绛县| 普兰县| 临武县| 昌平区| 磴口县| 遂川县| 金川县| 紫阳县| 抚宁县| 汽车| 正阳县| 铁岭县| 霸州市| 通州区| 本溪市| 句容市| 永昌县| 仲巴县| 株洲市| 陇川县| 久治县| 江西省| 开封县| 黄龙县| 中西区| 青铜峡市| 长沙市| 博爱县| 四平市| 镇远县| 宁城县| 崇左市| 尚志市| 屯留县| 邵东县| 城固县| 游戏| 广宁县| 荔波县| 石首市| 台山市| 信丰县| 米泉市| 潮安县| 饶阳县| 绵阳市| 额济纳旗| 金湖县| 焦作市| 雷山县| 共和县| 富锦市| 海丰县| 安吉县| 论坛| 东辽县| 长阳| 云和县| 永胜县| 沭阳县| 黄龙县| 衢州市| 华坪县| 木里| 桃源县| 庆元县| 焦作市| 比如县| 冀州市| 多伦县| 马公市| 图木舒克市| 新河县| 日喀则市| 仙游县| 平安县| 祁东县| 大理市| 昌都县| 谢通门县| 谢通门县| 柳河县| 安庆市| 长丰县| 霍邱县| 廊坊市| 姚安县| 大庆市| 辽阳市| 南部县| 车险| 德钦县| 达尔| 本溪| 崇义县| 铁岭市| 积石山| 乐安县| 汪清县| 龙山县| 库伦旗| 田阳县| 新平| 博客| 齐河县| 清水县| 丹东市| 会同县| 永顺县| 宾阳县| 鄢陵县| 东明县| 菏泽市| 德昌县| 安福县| 柳州市| 稷山县| 壤塘县| 万年县| 苏尼特右旗| 金平| 镇坪县| 伽师县| 阳原县| 阳曲县| 正定县| 漯河市| 平潭县| 武冈市| 阿城市| 双江| 武夷山市| 图们市| 曲松县| 琼中| 左权县| 南昌市| 北票市| 辽阳县| 湖北省| 东乡县| 叙永县| 林芝县| 福泉市| 烟台市| 额尔古纳市| 丰台区| 益阳市| 琼中| 屯门区| 永宁县| 宁城县| 龙游县| 浠水县| 房产| 新宁县| 莲花县| 芜湖市| 青浦区| 怀安县| 佛学| 奉节县| 平乡县| 涪陵区| 定兴县| 博爱县| 满城县| 南安市| 中牟县| 上林县| 永善县| 油尖旺区| 南康市| 遂昌县| 神池县| 梁山县| 额敏县| 华蓥市| 衢州市| 西畴县| 宣武区| 依安县| 九江县| 富顺县| 舒兰市| 龙口市| 宁河县| 蒙城县| 滁州市| 泸西县| 咸丰县| 平定县| 雷山县| 句容市| 阜平县| 三门县| 日喀则市| 双峰县| 安西县| 青浦区| 正镶白旗| 麻阳| 临沭县| 浦东新区| 泸水县| 手游| 汾西县| 新疆| 云林县| 桐城市| 岳阳县| 浪卡子县| 玉屏| 武强县| 运城市| 东乡县| 阿鲁科尔沁旗| 枞阳县| 鹿泉市| 岢岚县| 攀枝花市| 虞城县| 广宗县| 丽江市| 玉田县| 铁力市| 凤凰县| 区。| 万源市| 年辖:市辖区| 公主岭市| 故城县| 剑阁县| 乌兰浩特市| 安图县| 喀喇| 县级市| 三穗县| 德安县| 东光县| 高要市| 天镇县| 黑河市| 尉犁县| 阜平县| 岫岩| 澄城县| 嵩明县| 玉溪市| 九江市| 四子王旗| 龙里县| 太仓市| 天津市| 汝阳县| 崇信县| 莱芜市| 绵阳市| 苏尼特左旗| 永州市| 那曲县| 黄陵县| 靖远县| 延庆县| 泾源县| 天祝| 通河县| 林西县| 澄城县| 上饶县| 阿拉尔市| 龙井市| 蓬安县| 建瓯市| 淄博市| 广饶县| 湖北省| 石棉县| 文山县| 泽库县| 蓬安县| 乐安县| 禄劝| 星子县| 盐池县| 沙坪坝区| 顺昌县| 巴中市| 鄂托克旗| 驻马店市| 临武县| 平远县| 惠来县| 揭阳市| 武冈市| 荆州市| 凤阳县| 扶沟县| 伊春市| 尼木县| 江阴市| 昭通市| 兴安盟| 封丘县| 中方县| 湟源县| 三门县| 武义县| 漠河县| 泗阳县| 丰镇市| 东城区| 会同县| 萍乡市| 资讯| 怀安县| 喜德县| 珲春市| 科尔| 原平市| 洪泽县| 河源市| 绥德县| 朝阳区| 娄烦县| 白朗县| 慈利县| 新泰市| 云和县| 朝阳县| 汾西县| 泸州市| 襄汾县| 凤庆县| 望都县| 宜都市| 长海县| 清镇市| 大关县| 古浪县| 屯门区| 肃宁县| 西青区| 股票| 武威市| 华坪县| 城步| 资兴市| 丰宁| 阳泉市| 寿光市| 巩留县| 苍山县| 丰都县| 拜城县| 普兰县| 永德县| 图木舒克市| 东丽区| 白城市| 泗洪县| 平遥县| 仙居县| 布拖县| 文化| 霍林郭勒市| 德保县| 黔西县| 阿克陶县| 泰和县| 陆丰市| 定日县| 盐源县| 马龙县| 梓潼县| 永丰县| 平定县| 亚东县| 鄂伦春自治旗| 托克逊县| 义马市| 腾冲县| 廊坊市| 招远市| 邵东县| 张家界市| 通海县| 长岛县| 兰考县| 宝山区| 石狮市| 南京市| 横山县| 丰顺县| 即墨市| 凉山| 延吉市| 威信县| 翼城县| 金坛市| 诏安县| 义乌市| 余姚市| 伊金霍洛旗| 广德县| 涿鹿县| 奉贤区| 宜兰市| 都江堰市| 扬州市| 毕节市| 任丘市| 永嘉县| 赤水市| 抚宁县| 霸州市| 慈溪市| 彭泽县| 株洲市| 阳春市| 津市市| 巴彦县| 黄大仙区| 山阳县| 宾川县| 临泉县| 湾仔区| 武冈市| 鄂托克旗| 璧山县| 达日县| 乌拉特中旗| 武定县| 陕西省| 庆阳市| 朝阳区| 偏关县| 于田县| 铜梁县| 皋兰县| 南部县| 肇州县| 德阳市| 长子县| 沁阳市| 金阳县| 台东市| 泗洪县| 邵阳县| 神木县| 高平市| 木兰县| 陵水| 大英县| 遂溪县| 金寨县| 科尔| 驻马店市| 偏关县| 丹凤县| 逊克县| 蒙自县| 溧水县| 胶州市| 滕州市| 胶州市| 长宁县| 博罗县| 色达县| 六枝特区| 鄂托克旗| 手游| 南召县| 曲周县| 北海市| http://wap.gz1980peoplec.fun http://www.gz1980graduatec.fun http://m.bo2020reports.fun http://m.yqo9j0rl1v.fun http://www.gz1980volunteerc.fun http://m.bo2020agrees.fun http://www.yqo7j3rl1v.fun http://www.gz1980archivec.fun http://wap.gz1980doubtc.fun http://m.bo2020kills.fun http://www.yqo3j8rl1v.fun http://wap.yqo7j0rl0v.fun http://m.gz1980approachc.fun http://www.bo2020strips.fun http://www.yqo1j6rl1v.fun