<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Yolov4/v5的創(chuàng)新點匯總!

          共 11042字,需瀏覽 23分鐘

           ·

          2021-07-09 18:24

          ↑ 點擊藍字 關(guān)注極市平臺

          作者丨DarrenZhang
          來源丨燦視學(xué)長
          編輯丨極市平臺

          極市導(dǎo)讀

           

          本文詳細(xì)總結(jié)了YOLOv4與YOLOv5的創(chuàng)新點。 >>加入極市CV技術(shù)交流群,走在計算機視覺的最前沿

          YOLOv4

          YOLOv4的三大貢獻:

          1. 設(shè)計了強大而高效的檢測模型,任何人都可以用 1080Ti 和 2080Ti訓(xùn)練這個超快而精準(zhǔn)的模型。
          2. 驗證了很多近幾年 SOTA 的深度學(xué)習(xí)目標(biāo)檢測訓(xùn)練技巧。
          3. 修改了很多 SOTA 的方法, 讓它們對單GPU訓(xùn)練更加高效,例如 CmBN,PAN,SAM等。

          作者總結(jié)了近幾年的單階段和雙階段的目標(biāo)檢測算法以及技巧,并用一個圖概括了單階段和雙階段目標(biāo)檢測網(wǎng)絡(luò)的差別,two-stage的檢測網(wǎng)絡(luò),相當(dāng)于在one-stage的密集檢測上增加了一個稀疏的預(yù)測器

          作者也對多種方法進行實驗,做了詳盡的測試,作者將那些增加模型性能,只在訓(xùn)練階段耗時增多,但不影響推理耗時的技巧稱為 —— bag of freebies;而那些微微提高了推理耗時,卻顯著提升性能的,叫做 —— bag of specials。

          bag of freebies

          數(shù)據(jù)增強

          • 光度變換

            • 調(diào)整亮度,對比度,色相,飽和度和噪點
          • 幾何變換

            • 隨機縮放,裁剪,翻轉(zhuǎn)和旋轉(zhuǎn)
          • 模擬目標(biāo)遮擋

            • random erase
            • CutOut
            • Hide and Seek
            • grid Mask
          • 圖像融合

            • MixUp
            • CutMix
            • Mosaic

          常見的正則化方法:

          • DropOut
          • DropConnect
          • DropBlock

          處理數(shù)據(jù)不平衡

          • two-stage網(wǎng)絡(luò)使用的難例挖掘,但是這種方式不適合one-stage檢測
          • Focal Loss

          標(biāo)簽平滑(Label Smoothing)邊界框回歸的損失函數(shù)

          • IOU Loss
          • GIOU Loss
          • DIOU Loss
          • CIOU Loss

          Bag of specials

          增強感受野

          • SPP
          • ASPP
          • RFB

          注意力模塊

          • 通道注意力(channel-wise)

            • SE
          • 空間注意力(point-wise)

            • SAM

          特征融合

          • 跳層連接
          • FPN
          • SFAM
          • ASFF
          • BiFPN(EfficientNet中提出)

          激活函數(shù)

          • LReLU(解決當(dāng)輸入小于0時ReLU梯度為0的情況)
          • PReLU(解決當(dāng)輸入小于0時ReLU梯度為0的情況)
          • ReLU6(專門為量化網(wǎng)絡(luò)設(shè)計)
          • hard-swish(專門為量化網(wǎng)絡(luò)設(shè)計)
          • SELU(對神經(jīng)網(wǎng)絡(luò)進行自歸一化)
          • Swish(連續(xù)可微激活函數(shù))
          • Mish(連續(xù)可微激活函數(shù))

          后處理方式

          • NMS
          • soft NMS
          • DIOU NMS(在soft NMS的基礎(chǔ)上將重心距離的信息添加到刪選BBOx的過程中)

          YOLOv4網(wǎng)絡(luò)結(jié)構(gòu)

          圖片引自:江大白

          YOLOv4整個網(wǎng)絡(luò)架構(gòu)組成

          • Backbone: CSPDarknet53
          • Neck: SPP, PAN
          • Head: YOLOv3

          YOLOv4 各部分使用到的Bags:Bag of Freebies (BoF) for backbone:

          • CutMix、Mosaic data augmentation
          • DropBlock regularization
          • Class label smoothing

          Bag of Specials (BoS) for backbone:

          • Mish activation
          • Cross-stage partial connections (CSP)
          • Multiinput weighted residual connections (MiWRC)

          Bag of Freebies (BoF) for detector:

          • CIoU-loss
          • CmBN
          • DropBlock regularization
          • Mosaic data augmentation
          • Self-Adversarial Training
          • Eliminate grid sensitivity
          • Using multiple anchors for a single ground truth
          • Cosine annealing scheduler
          • Optimal hyperparameters
          • Random training shapes

          Bag of Specials (BoS) for detector:

          • Mish activation
          • SPP-block
          • SAM-block
          • PAN path-aggregation block
          • DIoU-NMS

          BackBone

          CSPDarknet53是在Yolov3主干網(wǎng)絡(luò)Darknet53的基礎(chǔ)上,借鑒2019年CSPNet的經(jīng)驗,產(chǎn)生的Backbone結(jié)構(gòu),其中包含了5個CSP模塊。作者在實驗中得到結(jié)論,CSPResNeX50分類精度比CSPDarknet,但是檢測性能卻不如后者。

          每個CSP模塊第一個卷積核的大小都是 , stride , 因此可以起到下采樣的作用。因為Backbone有5 個CSP模塊,輸入圖像是 , 所以特征圖變化的規(guī)律是: 。

          YOLOv4 和 YOLOv5 都使用 CSPDarknet作為BackBone,從輸入圖像中提取豐富的特征信息。CSPNet叫做Cross Stage Partial Network,跨階段局部網(wǎng)絡(luò)。其解決了其他大型卷積網(wǎng)絡(luò)結(jié)構(gòu)中的重復(fù)梯度問題,減少模型參數(shù)和FLOPS。這對 YOLO 有重要的意義,即保證了推理速度和準(zhǔn)確率,又減小了模型尺寸。

          CSPNet的作者認(rèn)為推理計算過高的問題是由于網(wǎng)絡(luò)優(yōu)化中的梯度信息重復(fù)導(dǎo)致的。CSPNet基于Densnet的思想,復(fù)制基礎(chǔ)層的特征映射圖,通過dense block 傳遞到下一個階段進行合并,從而將基礎(chǔ)層的特征映射圖分離出來。這樣可以實現(xiàn)更豐富的梯度組合,同時減少計算量。

          Cross Stage Partial DenseNet

          因此Yolov4在主干網(wǎng)絡(luò)Backbone采用CSPDarknet53網(wǎng)絡(luò)結(jié)構(gòu),主要有三個方面的優(yōu)點:

          • 優(yōu)點一:增強CNN的學(xué)習(xí)能力,使得在輕量化的同時保持準(zhǔn)確性。
          • 優(yōu)點二:降低計算瓶頸
          • 優(yōu)點三:降低內(nèi)存成本

          詳細(xì)了解CSPNet,https://zhuanlan.zhihu.com/p/124838243

          而且作者只在Backbone中采用了Mish激活函數(shù),網(wǎng)絡(luò)后面仍然采用Leaky_relu激活函數(shù)。Yolov4作者實驗測試時,使用CSPDarknet53網(wǎng)絡(luò)在ImageNet數(shù)據(jù)集上做圖像分類任務(wù),發(fā)現(xiàn)使用了Mish激活函數(shù)的TOP-1和TOP-5的精度比沒有使用時精度要高一些。因此在設(shè)計Yolov4目標(biāo)檢測任務(wù)時,主干網(wǎng)絡(luò)Backbone還是使用Mish激活函數(shù)。

          數(shù)據(jù)增強

          YOLOv4用到的數(shù)據(jù)增強方法

          Mosaic是一種新的混合4幅訓(xùn)練圖像的數(shù)據(jù)增強方法,使四個不同的上下文信息被混合,豐富了圖像的上下文信息,這使得網(wǎng)絡(luò)能夠檢測正常圖像之外的對象,增強模型的魯棒性。此外,批處理規(guī)范化BN層從每一層上的4個不同圖像計算激活統(tǒng)計信息。這大大減少了對large mini-batch-size的需求。Mosaic,就是把四張圖片拼接為一張圖片,這等于變相的增大了一次訓(xùn)練的圖片數(shù)量,可以讓最小批數(shù)量進一步降低,讓在單GPU上訓(xùn)練更為輕松。

          Mosaic數(shù)據(jù)增強

          在YOLOv4中,通過引入CutMix和Mosaic數(shù)據(jù)增強、類標(biāo)簽平滑和Mish激活等功能,分類精度得到了提高。因此,本文用于分類訓(xùn)練的BoF骨干(免費包)包括以下內(nèi)容:CutMix和Mosaic數(shù)據(jù)增強和類標(biāo)簽平滑。此外,本文使用Mish激活作為補充選項,

          DropBlock

          Yolov4中使用的Dropblock,其實和常見網(wǎng)絡(luò)中的Dropout功能類似,也是緩解過擬合的一種正則化方式。傳統(tǒng)的Dropout很簡單,一句話就可以說的清:隨機刪除減少神經(jīng)元的數(shù)量,使網(wǎng)絡(luò)變得更簡單。

          而Dropblock和Dropout相似,比如下圖:

          上圖中,中間Dropout的方式會隨機的刪減丟棄一些信息,但Dropblock的研究者認(rèn)為,卷積層對于這種隨機丟棄并不敏感,因為卷積層通常是三層連用:卷積+激活+池化層,池化層本身就是對相鄰單元起作用。而且即使隨機丟棄,卷積層仍然可以從相鄰的激活單元學(xué)習(xí)到相同的信息。因此,在全連接層上效果很好的Dropout在卷積層上效果并不好。所以右圖Dropblock的研究者則干脆整個局部區(qū)域進行刪減丟棄。

          這種方式其實是借鑒2017年的cutout數(shù)據(jù)增強的方式,cutout是將輸入圖像的部分區(qū)域清零,而Dropblock則是將Cutout應(yīng)用到每一個特征圖。而且并不是用固定的歸零比率,而是在訓(xùn)練時以一個小的比率開始,隨著訓(xùn)練過程線性的增加這個比率。

          Dropblock的研究者與Cutout進行對比驗證時,發(fā)現(xiàn)有幾個特點:

          • Dropblock的效果優(yōu)于Cutout
          • Cutout只能作用于輸入層,而Dropblock則是將Cutout應(yīng)用到網(wǎng)絡(luò)中的每一個特征圖上
          • Dropblock可以定制各種組合,在訓(xùn)練的不同階段可以修改刪減的概率,從空間層面和時間層面,和Cutout相比都有更精細(xì)的改進。

          Yolov4中直接采用了更優(yōu)的Dropblock,對網(wǎng)絡(luò)進行正則化。

          Neck創(chuàng)新

          Yolov4的Neck結(jié)構(gòu)主要采用了SPP模塊、FPN+PAN的方式。

          SPP

          作者在SPP模塊中, 使用 的最大池化的方式,再將不同尺度的特征圖進行Concat操作。最大池化采用padding操作,移動的步長為 1 , 比如 的輸入特征圖, 使用 大小的池化核池化, , 因此池化后的特征圖仍然是 大小。

          和Yolov4作者的研究相同,采用SPP模塊的方式, 比單純的使用 最大池化的方式,更有效的增加BackBone感受野。Yolov4的作者在使用 大小的圖像進行測試時發(fā)現(xiàn),在COCO目標(biāo)檢測任務(wù)中,以 的額外計算代價將AP50增加了 ,因此Yolov4中也采用了SPP模塊。

          FPN+PAN

          Yolov4在FPN層的后面還添加了一個自底向上的特征金字塔。這樣結(jié)合操作,F(xiàn)PN層自頂向下傳達強語義特征,而特征金字塔則自底向上傳達強定位特征,兩兩聯(lián)手,從不同的主干層對不同的檢測層進行參數(shù)聚合。

          FPN+PAN借鑒的是18年CVPR的PANet,當(dāng)時主要應(yīng)用于圖像分割領(lǐng)域,但Alexey將其拆分應(yīng)用到Y(jié)olov4中,進一步提高特征提取的能力。

          原本的PANet網(wǎng)絡(luò)的PAN結(jié)構(gòu)中,兩個特征圖結(jié)合是采用shortcut操作,而Yolov4中則采用concat(route)操作,特征圖融合后的尺寸發(fā)生了變化。

          Head頭

          CmBN

          CmBN 為 CBN 的改進版本,定義為交叉小批量歸一化 (CmBN)。這僅在單個批次內(nèi)的小批次之間收集統(tǒng)計信息(收集一個batch內(nèi)多個mini-batch內(nèi)的統(tǒng)計數(shù)據(jù))。

          Bounding Box Regeression Loss

          目標(biāo)檢測任務(wù)的損失函數(shù)一般由Classificition Loss(分類損失函數(shù))和Bounding Box Regeression Loss(回歸損失函數(shù))兩部分構(gòu)成。

          Bounding Box Regeression的Loss近些年的發(fā)展過程是:

          Smooth L1 Loss-> IoU Loss(2016)-> GIoU Loss(2019)-> DIoU Loss(2020)->CIoU Loss(2020)

          我們從最常用的IOU_Loss開始,進行對比拆解分析,看下Yolov4為啥要選擇CIOU_Loss。

          IOU LOSS

          IOU Loss主要考慮檢測框和目標(biāo)框的重疊面積,公式如下:

          IOU Loss存在兩個問題:

          • 問題一:當(dāng)預(yù)測框和目標(biāo)框不相交時,也就是當(dāng)IOU=0時,無法反映兩個框距離的遠近,此時損失函數(shù)不可導(dǎo)。所以IOU Loss無法優(yōu)化兩個框不相交的情況
          • 問題二:當(dāng)兩個預(yù)測框和同一個目標(biāo)框相重疊,且兩者IOU相同,這時IOU Loss對兩個預(yù)測框的懲罰相同,無法區(qū)分兩個預(yù)測框與GT目標(biāo)框的相交情況

          GIOU Loss

          由于IOU Loss的不足,2019年提出了GIOU Loss,我們先定義一下符號:

          定義 為預(yù)測框, 為目標(biāo)框, 為目標(biāo)框和預(yù)測框的最小外接矩形, 公式如下:

          可以看到,相比于IOU Loss,GIOU Loss衡量了目標(biāo)框和預(yù)測框的相交程度,緩解了IOU Loss的問題。

          但是當(dāng)預(yù)測框在目標(biāo)框內(nèi)部,且預(yù)測框大小一致時,這時候預(yù)測框和目標(biāo)框的差集相等,這是GIOU Loss會退化成IOU Loss,無法區(qū)分各個預(yù)測框的位置關(guān)系。

          DIOU Loss 和 CIOU Loss

          好的目標(biāo)框回歸函數(shù)應(yīng)該考慮三個重要幾何因素:重疊面積、中心點距離,長寬比。

          針對IOU Loss和GIOU Loss存在的問題,DIOU Loss考慮重疊面積、中心點距離,公式如下:

          設(shè): 為預(yù)測框和目標(biāo)框的最小外接矩形, 表示最小外接矩形的對角線距離, 表示預(yù)測框的中心點到目標(biāo)框中心點的歐式距離

          由上述公式可以看出,當(dāng)遇到GIOU Loss 無法解決的問題時,DIOU即考慮了重疊面積,也考慮了目標(biāo)框和預(yù)測框的中心點的距離,就可以衡量兩者之間的位置關(guān)系。所以當(dāng)目標(biāo)框包裹預(yù)測框的時候,DIOU可以衡量兩者之間的距離。

          但是DIOU Loss沒有考慮長寬比,當(dāng)預(yù)測框在目標(biāo)框內(nèi)部時,且多個預(yù)測框的中心點的位置都一樣時,這時候DIOU Loss無法區(qū)分這幾個預(yù)測框的位置。

          所以提出了CIOU Loss,其在DIOU Loss的基礎(chǔ)上增加了一個影響因子,將預(yù)測框和目標(biāo)框的長寬比都考慮進去,公式如下:

          其中, 是一個衡量長寬比一致性的參數(shù),我們可以定義為:

          代表目標(biāo)框, 代表預(yù)測框。

          至此,CIOU Loss包含了一個好的預(yù)測框回歸函數(shù)的三個重要的幾何因素:重疊面積、中心點距離、長寬比。

          NMS

          NMS主要用于預(yù)選框的篩選,常用于目標(biāo)檢測算法中,一般采用普通的nms的方式,Yolov4則借鑒上面D/CIOU loss的論文:https://arxiv.org/pdf/1911.08287.pdf

          因為DIOU在計算loss的時候,需要考慮邊界框中心點的位置信息,所以一些重疊物體也可以回歸出來。因此在重疊目標(biāo)的檢測中,DIOU_nms的效果優(yōu)于傳統(tǒng)的nms。

          CIOU Loss的性能要比DIOU Loss好,那為什么不用CIOU_nms,而用DIOU_nms?

          因為CIOU_loss,是在DIOU_loss的基礎(chǔ)上,添加了一個的影響因子,包含groundtruth標(biāo)注框的信息,在訓(xùn)練時用于回歸。但是NMS在推理過程中,并不需要groundtruth的信息,所以CIOU NMS不可使用。

          CIOU Loss 代碼

          `def box_ciou(b1, b2):"""輸入為:----------b1: tensor, shape=(batch, feat_w, feat_h, anchor_num, 4), xywhb2: tensor, shape=(batch, feat_w, feat_h, anchor_num, 4), xywh返回為:-------  ciou: tensor, shape=(batch, feat_w, feat_h, anchor_num, 1)  """  # 求出預(yù)測框左上角右下角  b1_xy = b1[..., :2]  b1_wh = b1[..., 2:4]  b1_wh_half = b1_wh/2.  b1_mins = b1_xy - b1_wh_half  b1_maxes = b1_xy + b1_wh_half  # 求出真實框左上角右下角  b2_xy = b2[..., :2]  b2_wh = b2[..., 2:4]  b2_wh_half = b2_wh/2.  b2_mins = b2_xy - b2_wh_half  b2_maxes = b2_xy + b2_wh_half  
          # 求真實框和預(yù)測框所有的iou intersect_mins = torch.max(b1_mins, b2_mins) intersect_maxes = torch.min(b1_maxes, b2_maxes) intersect_wh = torch.max(intersect_maxes - intersect_mins, torch.zeros_like(intersect_maxes)) intersect_area = intersect_wh[..., 0] * intersect_wh[..., 1] b1_area = b1_wh[..., 0] * b1_wh[..., 1] b2_area = b2_wh[..., 0] * b2_wh[..., 1] union_area = b1_area + b2_area - intersect_area iou = intersect_area / torch.clamp(union_area,min = 1e-6)
          # 計算中心的差距 center_distance = torch.sum(torch.pow((b1_xy - b2_xy), 2), axis=-1)
          # 找到包裹兩個框的最小框的左上角和右下角 enclose_mins = torch.min(b1_mins, b2_mins) enclose_maxes = torch.max(b1_maxes, b2_maxes) enclose_wh = torch.max(enclose_maxes - enclose_mins, torch.zeros_like(intersect_maxes)) # 計算對角線距離 enclose_diagonal = torch.sum(torch.pow(enclose_wh,2), axis=-1) ciou = iou - 1.0 * (center_distance) / torch.clamp(enclose_diagonal,min = 1e-6)
          v = (4 / (math.pi ** 2)) * torch.pow((torch.atan(b1_wh[..., 0]/torch.clamp(b1_wh[..., 1],min = 1e-6)) - torch.atan(b2_wh[..., 0]/torch.clamp(b2_wh[..., 1],min = 1e-6))), 2) alpha = v / torch.clamp((1.0 - iou + v),min=1e-6) ciou = ciou - alpha * v return ciou
          def clip_by_tensor(t,t_min,t_max):t=t.float()result = (t >= t_min).float() * t + (t < t_min).float() * t_minresult = (result <= t_max).float() * result + (result > t_max).float() * t_maxreturn result`

          YOLOv5

          yolov5沒有發(fā)布論文,所以更加精細(xì)的內(nèi)容,只能研究其代碼,該代碼倉庫仍然保持高頻率更新:https://github.com/ultralytics/yolov5

          YOLOv5 ?? 是一系列在 COCO 數(shù)據(jù)集上預(yù)訓(xùn)練的對象檢測架構(gòu)和模型,代表 Ultralytics 對未來視覺 AI 方法的開源研究,結(jié)合了在數(shù)千小時的研究和開發(fā)中獲得的經(jīng)驗教訓(xùn)和最佳實踐。

          網(wǎng)絡(luò)模型結(jié)構(gòu)

          YOLOv5給出了四種版本的目標(biāo)檢測網(wǎng)絡(luò),分別是Yolov5s、Yolov5m、Yolov5l、Yolov5x四個模型。YOLOv5s是深度最淺,特征圖的寬度最窄的網(wǎng)絡(luò),后面三種在此基礎(chǔ)上不斷加深,加寬。YOLOv5s的網(wǎng)絡(luò)結(jié)構(gòu)圖如下所示:

          YOLOv5s網(wǎng)絡(luò)架構(gòu)圖

          YOLOv5各部分改進

          • 輸入端:Mosaic數(shù)據(jù)增強、自適應(yīng)錨框計算
          • Backbone:Focus結(jié)構(gòu),CSP結(jié)構(gòu)
          • Neck:FPN+PAN結(jié)構(gòu)
          • Prediction:GIOU_Loss

          Mosaic數(shù)據(jù)增強

          YOLOV5會進行三種數(shù)據(jù)增強:縮放,色彩空間調(diào)整和馬賽克增強。其中馬賽克增強是通過將四張圖像進行隨機縮放、隨機裁剪、隨機分布方式進行拼接,小目標(biāo)的檢測效果得到提升。

          自適應(yīng)錨框計算

          YOLO系列中,可以針對數(shù)據(jù)集設(shè)置初始的Anchor。在網(wǎng)絡(luò)訓(xùn)練中,網(wǎng)絡(luò)在Anchor的基礎(chǔ)上輸出預(yù)測框,進而和GT框進行比較,計算loss,在反向更新,迭代網(wǎng)絡(luò)參數(shù)。在YOLOv3、4版本中,設(shè)置初始Anchor的大小都是通過單獨的程序使用K-means算法得到,但是在YOLOv5中,將此功能嵌入到代碼中,每次訓(xùn)練數(shù)據(jù)集之前,都會自動計算該數(shù)據(jù)集最合適的Anchor尺寸,該功能可以在代碼中設(shè)置超參數(shù)進行關(guān)閉。

          train.py中上面一行代碼,設(shè)置成False,每次訓(xùn)練時,不會自動計算。

          CSP BackBone-跨階段局部網(wǎng)絡(luò)

          YOLOv4 和 YOLOv5 都使用 CSPDarknet作為BackBone,從輸入圖像中提取豐富的特征信息。CSPNet叫做Cross Stage Partial Network,跨階段局部網(wǎng)絡(luò)。其解決了其他大型卷積網(wǎng)絡(luò)結(jié)構(gòu)中的重復(fù)梯度問題,減少模型參數(shù)和FLOPS。這對 YOLO 有重要的意義,即保證了推理速度和準(zhǔn)確率,又減小了模型尺寸。

          YOLOv4只有主干網(wǎng)絡(luò)中使用了CSP結(jié)構(gòu),而YOLOv5中設(shè)計了兩種CSP結(jié)構(gòu),CSP1_X應(yīng)用于BackBone主干網(wǎng)絡(luò),另一種CSP_2X結(jié)構(gòu)則應(yīng)用于Neck中。

          Focus結(jié)構(gòu)

          Focus結(jié)構(gòu),在Yolov3&Yolov4中并沒有這個結(jié)構(gòu),其中比較關(guān)鍵是切片操作。

          比如上圖的切片示意圖,的圖像切片后變成的特征圖。

          以Yolov5s的結(jié)構(gòu)為例,原始的圖像輸入Focus結(jié)構(gòu),采用切片操作,先變成的特征圖,再經(jīng)過一次32個卷積核的卷積操作,最終變成的特征圖。

          需要注意的是:Yolov5s的Focus結(jié)構(gòu)最后使用了32個卷積核,而其他三種結(jié)構(gòu),使用的卷積核數(shù)量有所增加。

          作者原話:Focus() module is designed for FLOPS reduction and speed increase, not mAP increase.

          作用:減少FLOPs,提高速度,對于模型的精度mAP沒有提升。

          Neck

          Yolov5現(xiàn)在的Neck和Yolov4中一樣,都采用FPN+PAN的結(jié)構(gòu),但在Yolov5剛出來時,只使用了FPN結(jié)構(gòu),后面才增加了PAN結(jié)構(gòu),此外網(wǎng)絡(luò)中其他部分也進行了調(diào)整。

          但如上面CSPNet結(jié)構(gòu)中講到,Yolov5和Yolov4的不同點在于:

          Yolov4的Neck結(jié)構(gòu)中,采用的都是普通的卷積操作。而Yolov5的Neck結(jié)構(gòu)中,采用借鑒CSPnet設(shè)計的CSP2_X結(jié)構(gòu),加強網(wǎng)絡(luò)特征融合的能力。

          Bounding Box的損失函數(shù)

          Yolov5中采用其中的GIOU_Loss做Bounding box的損失函數(shù)。而Yolov4中采用CIOU_Loss作為目標(biāo)Bounding box的損失。

          nms非極大值抑制

          在目標(biāo)檢測的后處理過程中,針對很多目標(biāo)框的篩選,通常需要nms操作。

          因為CIOU_Loss中包含影響因子v,涉及groudtruth的信息,而測試推理時,是沒有g(shù)roundtruth的。

          所以Yolov4在DIOU_Loss的基礎(chǔ)上采用DIOU_nms的方式,而Yolov5中采用加權(quán)nms的方式。

          采用DIOU_nms,對于遮擋問題,檢出效果有所提升。

          在回歸框的損失函數(shù)和使用NMS刪除冗余預(yù)選框上,YOLOv4使用的方法要比v5的方法更有優(yōu)勢。

          參考鏈接

          1. https://www.yuque.com/darrenzhang/cv/tg215h
          2. http://arxiv.org/abs/2004.10934
          3. https://blog.csdn.net/nan355655600/article/details/106246625
          4. https://zhuanlan.zhihu.com/p/172121380
          5. https://www.zhihu.com/question/399884529


          本文亮點總結(jié)


          1.CSPNet基于Densnet的思想,復(fù)制基礎(chǔ)層的特征映射圖,通過dense block 傳遞到下一個階段進行合并,從而將基礎(chǔ)層的特征映射圖分離出來。這樣可以實現(xiàn)更豐富的梯度組合,同時減少計算量。

          2.CIOU_loss,是在DIOU_loss的基礎(chǔ)上,添加了一個的影響因子,包含groundtruth標(biāo)注框的信息,在訓(xùn)練時用于回歸。但是NMS在推理過程中,并不需要groundtruth的信息,所以CIOU NMS不可使用。

          如果覺得有用,就請分享到朋友圈吧!

          △點擊卡片關(guān)注極市平臺,獲取最新CV干貨

          公眾號后臺回復(fù)“目標(biāo)檢測綜述”獲取綜述:目標(biāo)檢測二十年(2001-2021)


          極市干貨
          YOLO教程:一文讀懂YOLO V5 與 YOLO V4大盤點|YOLO 系目標(biāo)檢測算法總覽全面解析YOLO V4網(wǎng)絡(luò)結(jié)構(gòu)
          實操教程:PyTorch vs LibTorch:網(wǎng)絡(luò)推理速度誰更快?只用兩行代碼,我讓Transformer推理加速了50倍PyTorch AutoGrad C++層實現(xiàn)
          算法技巧(trick):深度學(xué)習(xí)訓(xùn)練tricks總結(jié)(有實驗支撐)深度強化學(xué)習(xí)調(diào)參Tricks合集長尾識別中的Tricks匯總(AAAI2021
          最新CV競賽:2021 高通人工智能應(yīng)用創(chuàng)新大賽CVPR 2021 | Short-video Face Parsing Challenge3D人體目標(biāo)檢測與行為分析競賽開賽,獎池7萬+,數(shù)據(jù)集達16671張!


          CV技術(shù)社群邀請函 #

          △長按添加極市小助手
          添加極市小助手微信(ID : cvmart2)

          備注:姓名-學(xué)校/公司-研究方向-城市(如:小極-北大-目標(biāo)檢測-深圳)


          即可申請加入極市目標(biāo)檢測/圖像分割/工業(yè)檢測/人臉/醫(yī)學(xué)影像/3D/SLAM/自動駕駛/超分辨率/姿態(tài)估計/ReID/GAN/圖像增強/OCR/視頻理解等技術(shù)交流群


          每月大咖直播分享、真實項目需求對接、求職內(nèi)推、算法競賽、干貨資訊匯總、與 10000+來自港科大、北大、清華、中科院、CMU、騰訊、百度等名校名企視覺開發(fā)者互動交流~



          覺得有用麻煩給個在看啦~  
          瀏覽 164
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  老女人性爱视频在线观看 | 国产综合婷婷 | 日本黄色影视 | 一级大香蕉网站视频 | 亚洲综合网址 |