zoukankan      html  css  js  c++  java
  • 《anchor-based v.s. anchor-free》


    作者:青青子衿
    链接:https://www.zhihu.com/question/356551927/answer/926659692
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    1.目标检测算法一般可分为anchor-based、anchor-free、两者融合类,区别就在于有没有利用anchor提取候选目标框。

    A. anchor-based类算法代表是fasterRCNN、SSD、YoloV2/V3等

    fasterRCNN-设置了3种尺度3种宽高ratio一共9个anchor提取候选框

    B. anchor-free类算法代表是CornerNet、ExtremeNet、CenterNet、FCOS等

    CornerNet-直接预测每个点是左上、右下角点的概率,通过左上右下角点配对提取目标框

    C.融合anchor-based和anchor-free分支的方法:FSAF、SFace、GA-RPN等

    FSAF-既有根据先验设定的anchor-based分支,也有anchor-free分支增强对异常ratio目标的检测能力

    2.anchor(也被称为anchor box)是在训练之前,在训练集上利用k-means等方法聚类出来的一组矩形框,代表数据集中目标主要分布的长宽尺度。在推理时生成的特征图上由这些anchor滑动提取n个候选矩形框再做进一步的分类和回归(详细叙述请参考提出anchor思想的fasterRCNN一文)。也就是传统目标检测算法中,在图像金字塔上使用的那个m*n的滑窗。只不过传统方法中特征图是不同尺度的,滑窗一般是固定大小的;而类似于fasterRCNN算法中特征图是固定的,anchor是多尺度的。

    三种典型的目标检测框架流程图

    3.Yolo算法一共有三个版本,YoloV1可以算作anchor-free类;YoloV2开始引入anchor,YoloV3也使用了anchor。

    4.anchor-free类算法归纳:

    A.基于多关键点联合表达的方法

    a.CornerNet/CornerNet-lite:左上角点+右下角点

    b.ExtremeNet:上下左右4个极值点+中心点

    c.CenterNet:Keypoint Triplets for Object Detection:左上角点+右下角点+中心点

    d.RepPoints:9个学习到的自适应跳动的采样点

    e.FoveaBox:中心点+左上角点+右下角点

    f.PLN:4个角点+中心点

    B.基于单中心点预测的方法

    a.CenterNet:Objects as Points:中心点+宽度+高度

    b.CSP:中心点+高度(作者预设了目标宽高比固定,根据高度计算出宽度)

    c.FCOS:中心点+到框的2个距离

  • 相关阅读:
    SELinux
    Horovod
    kubeflow
    k8s Custom Resource
    k8s Service
    k8s Deployment
    k8s ReplicaSet
    BytePS源码解析
    突破传统 OJ 瓶颈,“判题姬”接入云函数
    前端如何真正晋级成全栈:腾讯 Serverless 前端落地与实践
  • 原文地址:https://www.cnblogs.com/cx2016/p/12024915.html
Copyright © 2011-2022 走看看