【CV经典模型-Detection】YOLO v3

Bounding box Regression

与v2一致:
对于bounding box regression而言,每个bounding box会对应4个输出: t x , t y , t w , t h t_x,t_y,t_w,t_h tx,ty,tw,th
最后需要的bounding box的中心位置 ( b x , b y ) (b_x,b_y) bxby,宽高 ( b w , b h ) (b_w,b_h) bwbh可以由如下公式算得:

b x = σ ( t x ) + c x b_x=\sigma(t_x)+c_x bx=σ(tx)+cx
b y = σ ( t y ) + c y b_y=\sigma(t_y)+c_y by=σ(ty)+cy
b w = p w ∗ e t w b_w=p_w*e^{t_w} bw=pwetw
b h = p h ∗ e t h b_h=p_h*e^{t_h} bh=pheth

( c x , c y ) (c_x,c_y) cxcy:此cell相对于feature map左上角的offset。
( p w , p h ) (p_w,p_h) pwph:此anchor box的先验宽高。
注意:

  • grid cell的尺寸做过归一化,每个cell的大小为1*1。因此每个属于此grid cell的bounding box的中心位置 ( b x , b y ) (b_x,b_y) bxby与grid cell起始位置 ( c x , c y ) (c_x,c_y) cxcy之间的偏差一定大于0且小于1。
  • anchor box的尺寸和比例照例也是从训练集中通过k-means聚类而来。

Objectness Prediction

与yolo一样,每个bounding box会对应输出一个confidence score,来表示此bounding box包含物体的概率。
当反向传播时,每个ground truth只用和它IOU最高的anchor box所对应的那个bounding box prediction来更新权重。

Classification

与v2不同,分类时v3直接使用了n个独立的罗辑回归分类器来对每一类做二分类(n为总类别数)。对每一个label使用交叉熵计算 error。

Prediction across scales(*)

为了能更好地检测不同尺寸的物体,v3输出了3种不同尺寸的feature map来作为prediction,每种尺寸的feature map使用了三种不同的anchor box,一共有9种anchor box。
网络的结构如下:
Mao, Qi-Chao & Sun, Hong-Mei & Liu, Yan-Bo & Jia, Rui-Sheng. (2019). Mini-YOLOv3: Real-Time Object Detector for Embedded Applications. IEEE Access. PP. 1-1. 10.1109/ACCESS.2019.2941547.

Mao, Qi-Chao & Sun, Hong-Mei & Liu, Yan-Bo & Jia, Rui-Sheng. (2019).
Mini-YOLOv3: Real-Time Object Detector for Embedded Applications. IEEE
Access. PP. 1-1. 10.1109/ACCESS.2019.2941547.

 Darknet-53

  • 3种scale:stride=32, stride=16, stride=8
  • 以stride=16为例子:
    • 对之前stride=32的feature map使用1*1filter做channel reduction
    • upsampling,使feature map的尺寸*2,扩大之后,stride由32变为16。
    • 把之前layer最后一个stride=16的输出和上一步upsampling得到的输出重叠到一起。(虽然现在这个新的feature map的stride依然为16,但是它包含了基于原图像学到的细节feature和通过stride不断扩大receptive field得到的更全局的feature)
    • 经过一个convolutional set,进一步学习和融合这些不同尺度的features.
    • 最后得到在更密的grid上的prediction。
  • 共9种anchor box,每种scale的prediction使用三种anchor box:
    • stride最大的feature map包含更全局的信息,主要用于检测大尺寸物体,因此用尺寸最大的3个anchor box;
    • stride最小的feature map包含很多局部细节的feature,主要用于检测小物体,因此用尺寸最小的anchor box。

Training

  • multi-scale training
    鲁棒的Detecion应该与输入图片的大小尺寸大小和分辨率高低无关,为了降低模型对图片尺寸和分辨率的敏感度,训练时每隔n个batch,输入图片的尺寸会更改一次,以便让模型能在不同的分辨率上做预测。
  • data augmentation
  • batch normalization
    DL细节-Batch Normalization

Reference

https://arxiv.org/abs/1804.02767
https://towardsdatascience.com/yolo-v3-object-detection-53fb7d3bfe6b
https://blog.paperspace.com/how-to-implement-a-yolo-object-detector-in-pytorch/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值