日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

yolov4负样本_了解各种挂件--帮助读懂YOLOV4

發布時間:2025/3/20 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 yolov4负样本_了解各种挂件--帮助读懂YOLOV4 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

YOLOV4在V3的基礎上引進了很多掛機,了解這些掛件們,會有助于真正了解這篇文章。所以我就先從掛件開始介紹吧。

Weighted-Residual-Connections

文章

weighted-residual 可以更好更快的結合不同層傳遞過來的殘差,雖然增加了一些計算量,但是當網絡層數從100+增加到1000+時,網絡效果更好,收斂得更快。公式是:

卷積網絡參數, 是控制殘差的權重, 是連續兩個conv-BN-Relus。

Cross-Stage-Partial-Connections

文章

作者認為現在網絡計算量大是由于在網絡優化的過程中,重復的梯度信息。作者將一個stage的頭尾兩部分的特征圖集成起來,來解決這個問題。減少了至少20%的計算量,網絡效果與之前相當甚至超出。

CSP結構可以和其他網絡結構結合,以resnext為例

將base layer 按channel 一份為二,這種情況下甚至都不需要bottleneck,在固定FLOPs的情況下,對MAC(Memory Access Cost)的需求更低。

Cross mini-Batch Normalization

首先介紹CNB,文章。

現在很多大的網絡,往往batch-size都很小,比如一些檢測網絡,這樣的情況下直接使用BN,batch內部的統計量與全局數據的統計量會有較大的誤差會導致BN的效果不好;使用Group Normalization在layer之間做normalization會導致計算量過大;也有使用navie CNB的方式,就是多次迭代之間計算BN所需的統計量,但是不同迭代之間使用的參數

也是不一致的,所以BN的統計量也不可以一起使用(我剛看到這里的時候就想為什么不能多次迭代的mini-batches之間不更新網絡參數,直接最后BN的統計量與網絡參數一起更新)。

CNB的思想就是通過泰勒展開,使用之前迭代的BN統計量去逼近當前的BN統計量

其中為

均值, 為平方均值,當步長小的時候可以忽略二階部分。整個計算還有一個近似的地方,具體到計算某個layer時,只考慮當前layer,具體可以去看論文。

反觀CmBN就簡單很多,mini-batches之間不更新網絡參數,只在batch最后同時更新BN的統計量ScaleShift和網絡參數,就相當于一個大的batch,分多個mini batches進行計算,在最后一起更新。

Self-Adversarial-Training

先介紹下 Adversarial Training

內層就是給輸入加一個擾動最大化loss,外層在當前的擾動下最小化loss。

SAT包含兩個向前向后的過程:

1.第一次固定網絡的參數去訓練圖像,通過最大化loss,生成圖像沒有待檢測物體的描述(就是擾動)。

2.第二次就是在加了擾動的圖像上正常訓練模型。

下面是我在github上找的作者的詳細描述。

Mish activation

公式

y = x*tf.math.tanh(F.softplus(x))

可以發現比RELU平滑,經過測試,比RELU略慢,但是效果好。

Mosaic data augmentation

CutOut:圖像中切除一塊

MixUp:兩張圖像加權相加

CutMix:一張圖像切除一塊,另一張取對應位置補上去。

Mosaic:四張圖像拼一起。

DropBlock

dropblock是對卷積層正則化的方式,dropout是dropblock的一種,當block的大小為1時就是dropout。在使用dropout時,被drop調的單元的特征還可以通過附近激活的單元去學習;而dropblock只能從其他區域去學習,比如drop調了狗的頭,只有去學習狗的其他部分,有更好的泛化效果。

IOU,GIOU,DIOU,CIOU

這邊簡單介紹一下,具體可以看這里

IOU =

GIOU:即使IOU相同也不能代表兩個bbox的接近程度是一致的,因此提出GIOU

DIOU:當一個物體包含另一個物體時,GIOU就退化到IOU了。DIOU考慮到兩個bbox的中心點的距離。

CIOU:進一步考慮了bbox長寬比的關系。

PANet

這個著實比較熟,當年還實現過,就是最后全連接太占資源了,單卡跑起來比較費勁。

個人總結起來就是比FPN多了一個自下而上的過程,多做了一次特征融合。

SE & SAM

SE是在通道上加注意力,SAM是在特征圖的二維空間上注意力了。


正文開始

作者在V3的基礎上嘗試加入各種掛件,包括:Weighted-Residual-Connections、Cross-Stage-Partial-connections、Cross mini-Batch Normalization、Self-adversarial-training、Mish-activation、Mosaic data augmentation、DropBlock regularization 和 CIoU loss。組合這些掛件可以達到SOTA:在MS COCO 上達到 43.5%AP(65.7%

),使用Tesla V100 可以保持65的FPS。

Contributions

1.任何人使用一塊1080Ti或者2080Ti就可以訓練一個又快又準的目標檢測模型。

2.我們實驗確認了各種SOTA的Bag-of-Freebies和Bag-of-Specials在訓練時對模型的影響。

3.我們對一些SOTA的方法做出改進,讓它們更適合單卡訓練,包括CNB,PAN,SAM等。

Related work

Object detection model

  • Backbones for GPU:VGG,ResNet,ResNeXt,DenseNet
  • Backbones for CPU:SqueezeNet,MobileNet,ShuffleNet
  • two-stage: R-CNN, fast R-CNN, faster R-CNN, R-FCN, Libra R-CNN .RepPoints(anchor free)
  • one-stage: 使用anchors的有 YOLO(除了V1), SSD , RetinaNet; 不帶anchor的有 CenterNet, CornerNet, FCOS 等。
  • neck:backbone和head之間的部分,常常用于提取不同stage的特征,包括FPN,PAN,BiFPN,NAS-FPN。
  • new: backbone 有 DetNet, DetNAS;完整的檢測模型有:SpineNet, HitDetector

Bag of freebies是指提升model的預測準確度但是不會影響增加預測的開銷,常常使用在訓練階段且只會增加訓練開銷。常見的手段就是數據增廣。數據增光包括photometric distortions和geometric distortions,具體有:

photometric distortions:調整亮度,對比度,hue,飽和度,圖像噪聲。

geometric distortions:隨機縮放、裁剪、翻轉和旋轉。

上述的方法都是像素級別的,原始的像素信息依舊保存著。

有一些嘗試模擬目標遮擋的數據增廣方式,比如random erase、CutOut、hide-and-seek、grid mask都是隨機選取原圖像中的矩形區域置0或者隨機值。也有作用在特征圖上的方法,比如DropOut、DropConnect、DropBlock;MixUp將兩張圖片融合到一起;CutMix將原圖裁剪到一部分并用另一張的對應部分填補上去;style transfer GAN也可以用來做數據增廣,可以減少CNN學習到的紋理偏差。

有一些freebies是用來解決數據的語義分布的偏差問題,一種情況就是不同類別之間數據分布不均衡,常用的方法就是hard negative example mining和 OHEM, hard negative example mining需要結束一輪訓練才能找到loss高的負樣本,而OHEM是復制了一個只做forward的分支,提取loss高的ROIs,然后放入另外一個分支訓練,兩個分支一起更新權重。因為one-stage的檢測方法沒有RPN所以不適合使用example mining的方法,于是就有了kaiming老哥的focal loss,

。除此之外還有label smoothing,可以讓模型更加魯棒。

最后就是LOSS方面的設計,常用的L1,L2 loss 來做回歸,當物體的大小變化時,loss也會隨這變化。于是就有基于IOU的loss,讓降低loss與物體大小的相關性,包括IOUG,IOU,DIOU,CIOU。

Bag of specials

specials 就是指提升預測的開銷,但是可以提升模型準確率的方法。

常用的模塊有SPP,ASPP,RFB;最早的SPP結構是將特征圖分解成多個d*d的特征塊,然后使用bag-of-word的方式組合成固定大小的特征;后續就使用max-pooling的方式替代bag-of-word。ASPP相較SPP 加了空洞卷積。RFB基于inception的思想加了空洞卷積。

attention機制也是一種常用的提升方式,SE就是基于通道的attention,SAM就是基于特征圖的二維attention。

關于特征集成部分,skip-connect和hyper-column都是融合不同尺度特征的方式。SFAM是基于SE的方式,在給concated后的多尺度特征上,給通道設置權重。ASFF用softmax在point-wise的級別上給特征加權,然后相加不同尺度的特征。在BiFPN中使用多輸入加權的殘差連接給不同尺度的特征加權,然后相加。

關于激活函數,就有ReLU,LReLU,PReLU,ReLU6,SELU,Swish,hard-Swish和Mish。

關于后處理,常用的是NMS;然后基于貪心的思想,提出了soft NMS;DIoU NMS是進一步把bbox的center point的信息加入到NMS的計算中。

Methodology

基于GPU,使用CSPResNeXt50/CSPDarknet53.

基于VPU,使用EfficientNet-lite/MixNet/GhostNet/MobileNetV3.

Selection of architecture

對分類來說最優的網絡結構,對檢測來說往往不是。對分類任務相反,檢測任務需要:

  • 更高的輸入size,用于檢測小目標。
  • 更深的網絡,更大的感受野去覆蓋更大的輸入size。
  • 更多的參數,更大的模型復雜度去支持檢測各種尺度的物體。

Selection of Bof and Bos

Additional improvements

作者做出的一些改進方法

  • Mosaic和SAT
  • 用遺傳算法尋找最優超參數
  • 調整現有方法,modified SAM,modified PAN, CmBN

SAM 從 scale-wise 的attention該成point-wise的;PAN從add改成concate。

YOLOV4

Experiments

具體的實驗細節就不貼在這里了。

總結

以上是生活随笔為你收集整理的yolov4负样本_了解各种挂件--帮助读懂YOLOV4的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。