大家好,欢迎回来!我们继续上次的anchor之旅(点击回顾上一篇精彩内容:图森技术汇 | 聊聊Anchor的"前世今生"(上))从今年年初开始,整个detection领域掀起了“去anchor化”的潮流。由于有很多的解读都具体介绍过这些方法技术方面的细节了,所以这篇文章不会再重复,只做一个粗略的总结,更多讲讲我个人对这个潮流的一些想法。个人认为市面上现有的anchor free的方法基本可以分为真假anchor free两类(这个名字只是开个玩笑,不要当真,而且两者的界限也没有那么清晰 ?):

“真”anchor free

这一类方法的鼻祖来自于ECCV18的工作CornetNet[8],一篇真的把detection当做了bounding box的corner keypoint detection,且第一次能和其他box based方法打成平手的文章。这一类方法的核心思想是没有直接instance的概念,独立预测框左上角和右下角的位置,然后通过associative embedding的办法聚起来对应的左上角和右上角从而得到一个instance。如果有了解human keypoint detection的同学就会知道,这个pipeline是和bottom up的multi-person keypoint detection一模一样的。

比较可喜的是,这类方法在性能上展示了非常强大的潜力,在ExtremeNet[9]和CenterNet[6]的不断改进下,甚至有超越传统one stage detector的趋势,而且方法本身也可以受益于各种SOTA的keypoint detection算法的研究。但就本质而言,框对于物体来说不是一个最好的表示。框的顶点可能甚至都不在物体上,离物体本身已经很远了。CornetNet为了缓解这个问题,使用了Corner Pooling的办法来聚集在边上的检测结果到顶点。不过就算使用了CornerPooling,只使用两个顶点会导致存在大量的误检。CenterNet[6]的想法很简单,既然这些虚无缥缈的顶点这么难预测,我们为什么不去预测更简单更容易的中心点呢? 所以CenterNet在CornerNet的基础上加入了一支中心点预测,能够组成一个物体的要求不仅仅是两个顶点能匹配,同时这两个顶点定义的框的中心也要有对应的中心点相应,这样就缓解了很多奇怪的误检。CenterNet同时还提出了Center Pooling和Cascade Corner Pooling来改善对于中心点和顶点预测的精度。这里就不再展开,有兴趣的读者可以参阅原文。

另外一个比较有意思的工作是RepPoints,这篇文章没有走CornerNet的老路,尝试去预测顶点,而是直接去预测9个representative points(这些顶点并没有明确的语义),然后找出包围这9个点的最紧框去和GT计算loss。然后loss只会回传给对生成这个框有贡献的那些点。整个的思路很清晰,而且方便实现,结果也相当不错。

总结下这类方法:follow up工作不是很多,但是性能不俗。但是个人觉得这不会是这一类方法的终点:直接预测顶点虽然效果也不错,但是总是不是很直观;RepPoints的思路独树一帜,个人比较喜欢。后续这个思路应该可以延伸出一些直接使用更准确的mask为监督的工作,这也有可能是一条可以做出更干净更漂亮的panoptic segmentation之路。

“假”anchor free

这一类方法最早的起源是15年的工作DenseBox[10]。(为了避免争议,这是第一篇在这个思想下我认为达到高质量完成度的工作)这一类方法的核心思想是改变one stage detector中对于:1)分类任务中assign正负样本的方式和 2)回归中target的设置。原本anchor based的方法,通过预先指定的anchor和GT的IoU来assign正负样本,回归的都是相对于anchor box的偏移量。在这一批工作中,由于没有anchor的存在,这个流程就简化成了:1) 对是不是某个物体的中心点附近进行分类。2) 对是中心点的位置,直接回归对应的scale(可以是长宽,也可以是到框四条边的距离等)。核心思想是改变了bounding box的编码方式。最早了解到类似的思想是在自然场景文字检测中,EAST之类的方法提出了这样简单干净的pipeline,这样的想法加上一些改进也最终被运用到了通用物体检测中。

核心思想是这样的论文有[1-5],但是在细节上每篇处理不甚相同。FSAF[1]在网络中同时使用anchor based分支和anchor free分支,两支起到互补的作用,并在线选择了每个物体应该被assign到FPN的哪一层中;FCOS[2]除预测上述提到的中心点和长宽之外,还额外预测了一支Centerness,在实验中证明对于抑制一些偏离中心很远的误检非常有作用;另一篇CenterNet[3]在这样的基础上更进一步,除了2D框的长宽之外,把其他各种任务所需要的信息(如3D框的大小和朝向,深度信息等等)都作为这个中心点要来预测的任务,大幅拓展了这样一个想法的适用范围。

上次说了这么多anchor的产生原因和好处,为什么突然在这个时间点anchor free的方法不约而同地火了起来呢?个人觉得,机缘巧合,这个原因恰恰在于RetinaNet中两个重要的元素FPN和Focal Loss。

首先说FPN,anchor free的做法相当于feature map的每个位置只能输出一个框,可以想象,如果没有FPN这种多层级的表示,如果最终的feature map downsample的倍数是8或者16,那么可能会有很多物体的中心点落在同一格子中。这样就会导致训练的时候有很大的歧义性。随着FPN的引入,不同scale的物体被分配到了不同的层级上,冲突的概率大大降低。在CenterNet中,作者还特意起计算了冲突的比例,实际不到0.1%,对于性能的影响实际上也是微乎其微的。回顾下在上一篇文章提到的引入anchor的一个motivation恰恰就是,在FPN中这样的问题被规避掉了,这是我认为anchor free方法回归的第一个重要原因。

再说Focal loss,由于物体的中心区域是远小于其他背景区域的,整个分类的正负样本和难易样本是极不均衡的。直接训练这样的分类问题很难收敛到一个满意的结果。这样的问题其实在传统的one stage detector中同样存在,解决方案就是OHEM或者focal loss这样的加权办法。实测中,focal loss的结果会更好一些,所以focal loss也基本上被所有这类的方法所采用。

不过个人觉得这些方法其实没有触及到one stage detector中的一个核心问题:框和对应feature的misalignment。这个问题有机会我会再和大家展开介绍。

总结

虽然现阶段anchor free的办法在性能和简洁性上都还没完全压倒anchor based的前辈,但是其中蕴含的一些思想还是比较值得深思的,比如前面提到的,在图像上一个物体的更好表示是什么?怎么去更好利用这样的表示?相信这次anchor free的潮流也势必会孕育这下一次物体识别和分析领域的革命。

[1] Zhu, C., He, Y., & Savvides, M. (2019). Feature Selective Anchor-Free Module for Single-Shot Object Detection. arXiv preprint arXiv:1903.00621.

[2] Tian, Z., Shen, C., Chen, H., & He, T. (2019). FCOS: Fully Convolutional One-Stage Object Detection. arXiv preprint arXiv:1904.01355.

[3] Zhou, X., Wang, D., & Krähenbühl, P. (2019). Objects as Points arXiv preprint arXiv:1904.07850

[4] Kong, T., Sun, F., Liu, H., Jiang, Y., & Shi, J. (2019). FoveaBox: Beyond Anchor-based Object Detector. arXiv preprint arXiv:1904.03797.

[5] Liu, W., Liao, S., Ren, W., Hu, W., & Yu, Y. (2019). High-level Semantic Feature Detection: A New Perspective for Pedestrian Detection. arXiv preprint arXiv:1904.02948.

[6] Duan, K., Bai, S., Xie, L., Qi, H., Huang, Q., & Tian, Q. (2019). CenterNet: Keypoint Triplets for Object Detection. arXiv preprint arXiv:1904.08189.

[7] Yang, Z., Liu, S., Hu, H., Wang, L., & Lin, S. (2019). RepPoints: Point Set Representation for Object Detection. arXiv preprint arXiv:1904.11490.

[8] Law, H., & Deng, J. (2018). Cornernet: Detecting objects as paired keypoints. In Proceedings of the European Conference on Computer Vision (ECCV) (pp. 734-750).

[9] Zhou, X., Zhuo, J., & Krähenbühl, P. (2019). Bottom-up Object Detection by Grouping Extreme and Center Points. arXiv preprint arXiv:1901.08043.

[10] Huang, L., Yang, Y., Deng, Y., & Yu, Y. (2015). Densebox: Unifying landmark localization with end to end object detection. arXiv preprint arXiv:1509.04874.

(转)图森技术汇 | 聊聊Anchor的前世今生(下)相关推荐

  1. (转)图森技术汇 | 聊聊Anchor的前世今生(上)

    图森技术汇 | 聊聊Anchor的"前世今生"(上) 图森技术汇 | 聊聊Anchor的"前世今生"(下) 图森的文章,很有深度:虽遂转载.参考链接在上面 本文 ...

  2. 飞天技术汇“2018云栖大会·上海峰会”专场,等你加入

    为什么80%的码农都做不了架构师?>>>    摘要: 智能制造是中国传统企业面临的重大课题,如何正确处理企业智能转型过程中出现的各种问题,如何顺利完成传统制造业的数字化革命,云计算 ...

  3. 【杭州云栖】飞天技术汇CDN与边缘计算专场:让内容离消费者更进一步

    [杭州云栖]飞天技术汇CDN与边缘计算专场:让内容离消费者更进一步 在5G移动通信.IoT万物智联时代即将到来的大背景下,越来越多的应用和数据来自边缘位置,呈现低延时.高带宽.大连接.本地化的业务特征 ...

  4. 【杭州云栖】飞天技术汇大视频专场:全民视频时代下的创新技术之路

    2018杭州•云栖大会在9月19日如期召开,在四天时间内将举行2场主论坛.170多场前沿峰会.在9月19日上午的飞天技术汇-大视频专场中,多位阿里云技术专家.合作伙伴.客户为现场观众分享了各自领域的多 ...

  5. 2018深圳云栖拉开帷幕,飞天技术汇五大专场邀你参加~

    摘要: 感受万物互联的智能时代,洞察数字化转型的全新未来.云栖大会将情景化展示智能城市.智能生活.智能制造.智慧门店等阿里云IoT生态全景,20+专场,覆盖AI.新零售等全行业数字化转型解决方案. 飞 ...

  6. 【SAP技术汇】说说SAP那些事儿

    [SAP技术汇]说说SAP那些事儿 什么是SAP 说起SAP,不得不提起的就是ERP了 ERP全称Enterprise Resource Planning,其概念发源于制造企业的物料需求计划(MRP) ...

  7. 技术汇-读《Microservices》有感

    2019独角兽企业重金招聘Python工程师标准>>> 写在前面的话 在过去的几天,我一直在咀嚼着关于微服务的相关概念,唯恐给自己落下一丝的不明白,也算是给自己采取的扫盲行动.毕竟也 ...

  8. 深圳云栖拉开帷幕,飞天技术汇五大专场邀你参加~

    感受万物互联的智能时代,洞察数字化转型的全新未来.云栖大会将情景化展示智能城市.智能生活.智能制造.智慧门店等阿里云IoT生态全景,20+专场,覆盖AI.新零售等全行业数字化转型解决方案. 飞天技术汇 ...

  9. 飞天技术汇 | 用混合云,数据灾备原来这么简单

    1数据中心宕机具有灾难性 又该如何有效应对呢? 这期飞天技术汇你将看到 ● 数据备份有什么意义呢? ● 如何用混合云做好数据保护? ● 混合云备份容灾有什么优势吗? 数据备份的意义 2017年5月12 ...

最新文章

  1. 比尔·盖茨彻底告别微软,慈善领域「再就业」发挥余热
  2. Boost库之asio io_service以及run、run_one、poll、poll_one区别
  3. 浙江理工大学电信宽带校园网访问添加路由表命令(2020.10)(Windows和Liunx)
  4. JavaScript学习笔记(四十四) 装饰器
  5. 第三次学JAVA再学不好就吃翔(part66)--Pattern类和Matcher类
  6. vue created 生命周期
  7. pyplot交互地画多个plot
  8. 14. 深入解析Pod对象(一)
  9. 谷歌推出针对AI歧视的新课程!60分钟的ML公平自学训练模块 | 资源
  10. 测试人员与开发人员沟通的一些问题
  11. Python3对IP进行查询
  12. Cocos2d-x3.2 Menu菜单的创建
  13. ReentrantLock中的公平锁与非公平锁
  14. Apache设置用户权限(2个域名。一个能访问全部文件,一个只能访问指定文件)...
  15. SQL--“索引超出了数组界限”
  16. 3.3 腾讯云AI案例
  17. 产业互联网将不再只是虚无缥缈,触不可及的空中楼阁
  18. C++文件服务器项目—FastCGI—4
  19. 【07月24日】预分红股息率最高排名
  20. 人工智能已经成为全球新一轮科技革命和产业变革的核心驱动力

热门文章

  1. 常见的web攻击有哪些?如何防御?
  2. linux-nodejs环境配置
  3. 每日新闻 | 未来量子通信成为可能虚拟办公将落地;英特尔推出10纳米基站芯片...
  4. 2019苹果春季发布会邀请函来了!届时库克会带来什么新品呢?
  5. Linux网络SSH协议和TCP Wrappers
  6. CenterNet: Keypoint Triplts for Object Detection 论文阅读笔记
  7. # 02 初入大学, 男人之间的告别
  8. 七牛云对象存储空间绑定自己的域名
  9. Arcgis操作系列4 - 影像纠偏配准和转坐标系
  10. mixly温度传感器、声音光线传感器