课程

这节课讲得有点划,硬核的部分都略去了orz

思路

  • 滑窗:不可接受的效率成本
    • R-CNN、Fast R-CNN:Selective Search提议,比较复杂
  • Regional Proposal:使用一些特征减少框数
    • Selective Search:贪心算法将相邻而相似的图像块合并
  • 消除滑窗重复计算:一次卷积计算所有特征,裁切特征图分类
  • 密集预测

两阶段方法

区域提议+区域识别,逐步被单阶段取代

  • Fast R-CNN
  • Faster R-CNN
  • Mask R-CNN

锚框:原图上设置不同尺寸的基准框,基于特征独立预测其中是否包含物体(区域提议)

级联方法

  • Cascade R-CNN
  • HTC

单阶段方法

  • YOLO Series
  • SSD:在多个特征图上使用密集预测方法,产生所有位置、不同尺度、所有锚框的预测结果
    • 锚框与真值匹配原则:一个真值框可匹配多个IoU > 0.5的锚框
    • 8732个锚框分类 + 回归预测计算损失,每个锚框都有其分类、回归真值
  • Retina Net:FPN多尺度特征融合+Focal loss
  • FCOS:直接在多尺度特征图上进行预测,多尺度特征图本身可表达不同尺度物体,抛弃了锚框
  • CenterNet:在特征图上分别逐点回归产生热力图和局部偏移量

锚框数极多,正负样本不均衡

  • 两阶段检测通过区域提议拒绝了大量负样本,区域检测头接收正负样本并不悬殊
  • 解决方案:Focal loss

区域提议用于拒绝负样本,但区域提议模块是如何解决正负样本不均衡的问题的呢?

FL(pt)=αt(1pt)γlog(pt){\rm FL}(p_t) = -\alpha_t(1-p_t)^\gamma \log(p_t)

其中ptp_t为属于其真值类别的概率(交叉熵损失CE(pt)=log(pt){\rm CE}(p_t)=-\log(p_t)),聚焦因子(1pt)γ(1-p_t)^\gamma调节困难、简单负样本相对损失(越自信对loss的贡献越小,不自信时的惩罚较大),加权因子αt[0,1]\alpha_t\in[0, 1]

αt={α正样本1α负样本\alpha_t = \begin{cases} \alpha & 正样本\\ 1-\alpha & 负样本 \end{cases}

通常增大γ\gamma对应减少α\alpha

Transformer

  • DETR:脱离密集预测模式,将检测建模为从特征序列框序列的翻译问题,使用匈牙利算法与真值框比对,但收敛慢
  • D而formable DETR:显式建模query注意的位置,收敛更快

重要方法

设计

  • 非极大抑制NMS:每次从检测结果找出置信度最大的框,剔除IoU超过阈值的框
  • 边界框回归:预测相对滑窗的偏移量
  • 边界框编码:边界框绝对偏移量数值上常较大,因此需要进行一定变换,例如R-CNN系列

T=(tx,ty,th,tw)=(gxpxpw,gypyph,loggwpw,logghph)T = (t_x, t_y, t_h, t_w) = \left(\frac{g_x-p_x}{p_w}, \frac{g_y-p_y}{p_h}, \log\frac{g_w}{p_w}, \log\frac{g_h}{p_h}\right)

评估

  • precision:检测结果里有多少是正确的
  • recall:检测出了多少物体
  • PR曲线与Average Precision AP(PR曲线下面积)