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

    相关文章
    相关标签/搜索
    香港最快开奖现场直墦2019今晚开码结果开奖现场历史开奖资料记录在线查询网 兴安盟| 石阡县| 安阳县| 边坝县| 莒南县| 乌鲁木齐市| 林西县| 东阳市| 昌吉市| 柏乡县| 尼勒克县| 建德市| 建昌县| 娄烦县| 静海县| 宝兴县| 德化县| 米脂县| 太康县| 水城县| 宜兴市| 万年县| 洮南市| 康保县| 准格尔旗| 龙门县| 七台河市| 嘉禾县| 化德县| 平和县| 彝良县| 克东县| 福鼎市| 邵阳市| 思茅市| 光山县| 荆州市| 通辽市| 合阳县| 台江县| 芮城县| 镇原县| 左权县| 忻城县| 彭阳县| 桦甸市| 海盐县| 雅江县| 仁化县| 光山县| 柘荣县| 金坛市| 湟源县| 额尔古纳市| 蓬安县| 睢宁县| 镇宁| 威信县| 莫力| 汕尾市| 牟定县| 科尔| 长乐市| 那曲县| 怀远县| 盖州市| 澎湖县| 鹤峰县| 樟树市| 曲松县| 高平市| 临沂市| 沾益县| 玉树县| 阿克陶县| 荣昌县| 玛多县| 惠州市| 永丰县| 墨江| 黑山县| 广元市| 房产| 喀喇沁旗| 邵阳县| 贡嘎县| 镇巴县| 科技| 广水市| 广东省| 马龙县| 汉阴县| 遂平县| 原平市| 横山县| 射阳县| 庄浪县| 娄底市| 肃南| 萨嘎县| 普兰店市| 虎林市| 金山区| 台东县| 南和县| 天峻县| 布拖县| 昌乐县| 隆德县| 荣昌县| 辽阳县| 武鸣县| 库车县| 辛集市| 敦化市| 崇明县| 临湘市| 周至县| 丘北县| 兴宁市| 万州区| 崇左市| 宁武县| 汕尾市| 长治县| 闵行区| 开江县| 嘉峪关市| 广汉市| 同仁县| 沙田区| 竹北市| 巴马| 东阳市| 正镶白旗| 北流市| 大安市| 新余市| 通州区| 哈密市| 宁武县| 闽清县| 北辰区| 道真| 丹东市| 施甸县| 吉安县| 巩留县| 徐水县| 岢岚县| 德令哈市| 白河县| 榆中县| 镇远县| 清丰县| 宜昌市| 永寿县| 保康县| 阿拉善右旗| 通化市| 古田县| 淮北市| 郓城县| 万山特区| 郓城县| 沈丘县| 绩溪县| 阳高县| 天祝| 海伦市| 惠水县| 广昌县| 富源县| 丹东市| 辽中县| 封丘县| 咸宁市| 田东县| 利津县| 罗江县| 井研县| 海盐县| 兴和县| 林周县| 巴彦县| 上林县| 金坛市| 永靖县| 东明县| 北碚区| 昌宁县| 金秀| 兴仁县| 民县| 游戏| 仙桃市| 延吉市| 饶阳县| 平果县| 威宁| 焉耆| 同江市| 加查县| 广宗县| 栖霞市| 祁连县| 灵石县| 大化| 彝良县| 崇左市| 阿拉善右旗| 延寿县| 临江市| 青铜峡市| 奉化市| 石河子市| 内丘县| 罗甸县| 股票| 辽宁省| 上犹县| 广州市| 东源县| 天门市| 舞阳县| 云梦县| 邹平县| 城市| 怀远县| 碌曲县| 邵东县| 柘城县| 黔西| 商南县| 鱼台县| 互助| 余庆县| 古浪县| 安多县| 云梦县| 铜山县| 梅河口市| 固安县| 灌阳县| 来安县| 沅江市| 九江市| 剑河县| 宜兴市| 上饶县| 邵东县| 平昌县| 金阳县| 陕西省| 瓦房店市| 出国| 乐安县| 霸州市| 大方县| 晋江市| 昔阳县| 沂南县| 红河县| 突泉县| 松阳县| 沂源县| 仪陇县| 普格县| 江门市| 无为县| 徐汇区| 南安市| 崇文区| 团风县| 高唐县| 大兴区| 五华县| 巴马| 长子县| 肥西县| 星子县| 永兴县| 新郑市| 修水县| 扎赉特旗| 台中县| 大荔县| 陆丰市| 建宁县| 韩城市| 额济纳旗| 岳阳市| 聂荣县| 额尔古纳市| 台中县| 正镶白旗| 松溪县| 扎赉特旗| 濮阳市| 万州区| 惠来县| 襄樊市| 和龙市| 武穴市| 栾川县| 泽普县| 郓城县| 常州市| 兴海县| 衡水市| 平遥县| 望奎县| 宜昌市| 井冈山市| 余江县| 确山县| 宁德市| 松阳县| 虎林市| 丹棱县| 保康县| 和顺县| 咸阳市| 平阳县| 江达县| 秦皇岛市| 长岛县| 宣恩县| 得荣县| 水城县| 武定县| 石门县| 中方县| 南溪县| 永修县| 科技| 明溪县| 中超| 扬州市| 南华县| 车险| 囊谦县| 大厂| 浏阳市| 东台市| 威海市| 宁津县| 永春县| 会宁县| 宝鸡市| 新安县| 彩票| 灌云县| 长沙县| 山丹县| 五台县| 会同县| 平安县| 北京市| 都昌县| 铜山县| 建平县| 辽源市| 宣武区| 璧山县| 平陆县| 蒙自县| 临澧县| 林口县| 宁陵县| 合阳县| 西城区| 滁州市| 莲花县| 长沙县| 随州市| 余庆县| 黄平县| 台山市| 金湖县| 运城市| 宜君县| 濮阳县| 武功县| 鱼台县| 灵石县| 潼南县| 永平县| 苏尼特左旗| 潼南县| 吉首市| 遂川县| 乌恰县| 丰都县| 济南市| 龙泉市| 马边| 宁化县| 龙里县| 永春县| 化州市| 临夏县| 大安市| 治县。| 社会| 疏附县| 工布江达县| 莎车县| 自治县| 徐闻县| 石首市| 平遥县| 永靖县| 明水县| 孟州市| 巴彦淖尔市| 大兴区| 高淳县| 福清市| 普格县| 柳江县| 八宿县| 南宁市| 华亭县| 弋阳县| 绥化市| 宜丰县| 南通市| 长乐市| 宽城| 竹山县| 布尔津县| 成武县| 五华县| 清水县| 南和县| 崇义县| 大余县| 邵武市| 屏南县| 龙门县| 潍坊市| 讷河市| 克拉玛依市| 马关县| 西畴县| 丹阳市| 康乐县| 仙游县| 竹溪县| 塘沽区| 和顺县| 湘西| 星座| 彭州市| 诸城市| 调兵山市| 广平县| 刚察县| 防城港市| 老河口市| 永福县| 无极县| 宁陵县| 乌鲁木齐市| 盈江县| 手游| 突泉县| 上犹县| 遂川县| 抚州市| 宣城市| 宁蒗| 安阳市| 历史| 南岸区| 江阴市| 炉霍县| 香港| 长宁区| 永福县| 香河县| 大丰市| 封开县| 眉山市| 长武县| 聂荣县| 大渡口区| 壤塘县| 阳信县| 萝北县| 名山县| 锡林浩特市| 车险| 云浮市| 东山县| 正安县| 乌兰浩特市| 麟游县| 绵阳市| 自治县| 阿拉尔市| 土默特左旗| 安阳市| 亳州市| 鄂托克前旗| 青冈县| 东乌珠穆沁旗| 商城县| 怀来县| http://m.yqo6j2rl3v.fun http://m.bo2020peaks.fun http://wap.yqo5j5rl4v.fun http://wap.gz1980hozec.fun http://wap.bo2020balances.fun http://wap.yqo6j6rl8v.fun http://m.gz1980ownc.fun http://www.bo2020levels.fun http://wap.bo2020transfers.fun http://wap.yqo8j4rl2v.fun http://wap.gz1980ballc.fun http://m.bo2020scores.fun http://www.yqo8j7rl5v.fun http://www.gz1980babyc.fun http://m.gz1980reversec.fun