yolo系列原理
文章目錄
- yolo系列原理
- 先嘮嘮
- yolo-v1
- 整體架構
- 具體實作
- 損失函式
- yolo-v1的優點及局限
- yolo-v2
- batch normalization(歸一化 )
- hi-res calssifier(高解析度分類器)
- new network
- anchor boxes(先驗框)
- dimension priors(維度聚類)
- location prediction
- passthrough
- multi-scale
- yolo-v3
- 多scale
- resnet(殘差網路)
- 多標簽分類
- 網路架構
- yolo-v4
- yolo-v5
先嘮嘮
? 這部分主要講述yolo系列各個版本的的原理,這部分會把yolov1到yolov5的原理進行詳細的闡述,首先我們先來看深度學習的兩種經典的檢測方法:
-
Two-stage(兩階段):代表-- Fsater-rcnn Mask-rcnn系列
-
One-stage(單階段):代表-- Yolo系列
?兩階段和單階段有什么樣的區別呢,我們從整體上理解:單節段的就是一步到位,我們輸入一個影像,經過一系列傳化,最侄訓得到一個輸出結果;雙階段相較于單節段多了一些中間步驟,輸入一個原始影像,我們會先得到一些中間值,最后才輸出結果,更形象的表述為,我們要選擇一個人當代表,代表安徽省踢球,那么雙階段就類似與我先在安徽各個市找一些好苗子,最后再從這些好苗子中選擇一個最優秀的,具體可以參照下圖:

既然兩種檢測方式有所區別,那自然會討論他們的優缺點:
-
One-stage
- 優勢:速度非常快,適合做實時檢測任務
- 劣勢:效果通常不會太好
-
Two-stage
- 優勢:效果通常比較好
- 劣勢:速度較慢,不適合做實時檢測任務
?其實他們的優缺點我們也很好理解,單階段檢測的沒有中間程序,那速度肯定是相當哇塞了,但從效果來說,就相對差一點,我們可以看一下他們的對比(以單階段的yolo和雙階段的Faster-rcnn為代表)
![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-MeXFwySh-1642432549733)(C:\Users\WSJ\AppData\Roaming\Typora\typora-user-images\image-20220107163513421.png)]](https://img.uj5u.com/2022/01/18/296776180954372.png)
?從上圖可以看出,YOLO的mAP要低于Fast-rcnn,但是FPS卻遠高于Fast-rcnn,【FPS表示一個網路的檢測速度,越大速度越快,mAP表示模型綜合檢測的效果,越大效果越好】
🎈🎈🎈🎈🎈🎈🎈🎈
?上面提到了一個術語:mAP,它表示的是一個綜合檢測的效果,因為表示模型效果的引數有很多,像IOU、precision、recall(好吧,這三是不是也不知道🤐🤐🤐)下面先來介紹這三個引數:
-
IOU
? IOU其實很好理解,其表示(真實值和預測值的交集)占(真實值和預測值的并集)的比列,這也即是IOU的計算公式,如下:
![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-z5OPnUTi-1642432549734)(C:\Users\WSJ\AppData\Roaming\Typora\typora-user-images\image-20220107165215737.png)]](https://img.uj5u.com/2022/01/18/296776180954373.png)
哎!!!?不是很好理解嘛…通俗點講,IOU就表示真實值和預測值重疊的部分多不多,重疊多IOU就大,檢測效果就好!!!可以再參照下圖進行理解:
![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-MnCygC4a-1642432549736)(C:\Users\WSJ\AppData\Roaming\Typora\typora-user-images\image-20220107165753941.png)]](https://img.uj5u.com/2022/01/18/296776180954374.png)
- precision(精度) && recall(召回率)
我們先來看他們的公式(好吧,我承認開始肯定看不懂😜😜😜)
![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-JNd5vMeN-1642432549739)(C:\Users\WSJ\AppData\Roaming\Typora\typora-user-images\image-20220107171113924.png)]](https://img.uj5u.com/2022/01/18/296776180954375.png)
我們通過一個例子來解釋上訴公式中TP、FP、FN的含義,進而解釋precision和recall,
已知:班級共100人,其中男生80人,女生20人
目標:找出所有女生
結果:從班級中選擇了50人才找出20個女生,也即錯誤的把30名男生也挑選出來了
我們先來看看TP、FP、FN中三個英文字母T、F、P、N的含義,可能會便于你理解
- T——Ture 正確的判斷
- F——False 錯誤的判斷
- P——Positives 正類(表示需要檢測目標,例子中就是指女生)
- N——Negatives 負類
知道了這些字母的含義,就很好解釋 這三個哥們了,
- TP——Ture Positives(表示判斷正確,把正類判斷成正類,例子中也就是表示把女生判斷成了女生)
- FP——False Positives(表示判斷錯誤,把負類判斷成正類,例子中也就是表示把男生判斷成了女生)
- FN——False Negatives(表示判斷錯誤,把正類判斷成負類,例子中也就是表示把女生判斷成了男生)
- TN——True Negatives(表示判斷正確,把負類判斷成負類,例子中也就是表示把男生判斷成了男生)【公式中沒用到這個】
上面的幾個可能會有點繞,但靜下心來研究研究,會發現很簡單,這里我就當上面的都看懂了,下面我們就可以計算例子中的TP、FP、FN、TN的值了,
- TP=20 【把正類判斷成正類,即找到的20個女生】
- FP=30 【把負類判斷成正類,即錯誤選出的30個男生】
- FN=0 【把正類判斷成負類,這里為0】
- TN=50 【把負類判斷成負類,即沒有選出來的50個男生】
好,現在就都求出了TP、FP、FN,則precision和recall都可以計算出來了,
讀到這里,我想你就明白了precision和recall是怎么計算出來的了,但是對于precison和recall為什么用這樣的式子表示呢,可能還存在一定的疑惑,先對兩個公式進行描述,
![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-JNd5vMeN-1642432549739)(C:\Users\WSJ\AppData\Roaming\Typora\typora-user-images\image-20220107171113924.png)]](https://img.uj5u.com/2022/01/18/296776180954375.png)
-
precision(精度)
?首先,精度表示分類的準確性,它等于將(正類分類正確)與(正類分類正確和錯誤)的比列,對于例子來說precision=20/(20+30)=2/5, -
recall(召回率,也叫查全率)
? ?召回率的含義是表示(正類分類正確)與(正類分類正確和把正類判斷成負類)的比值,對例子來說recall=20/(20+0)=1,通俗點說,recall表示的就是一些沒有檢測到的物體的比例,比如一張圖片有10個目標需要檢測,一種方法你檢測到了10種目標,那你的召回率就好;而另一種方法只檢測到了8個圖片,那么你的召回率就不好,
知道了precision和recall,這兩個指標都可以表示檢測的效果,為了綜合表示檢測效果,產生了mAP,首先先介紹什么是AP?AP事實上指的是,我們取不同的置信度,可以獲得不同的Precision和不同的Recall,當我們取置信度足夠密集的時候,就可以獲得非常多的Precision和Recall,利用不同的Precision和Recall的點的組合,畫出來的曲線下面的面積即為AP的大小,如下圖所示:
![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-0MVYQMnm-1642432549748)(C:\Users\WSJ\AppData\Roaming\Typora\typora-user-images\image-20220107200931166.png)]](https://img.uj5u.com/2022/01/18/296776180954376.png)
?AP衡量的是對一個類檢測好壞,mAP就是對多個類的檢測好壞,計算方法就是把所有類的AP值取平均,比如有兩類,類A的AP值是0.6,類B的AP值是0.4,那么mAP=(0.6+0.4)/2=0.5,
yolo-v1
整體架構
yolo的英文全稱為You only look once,聽起來好🤙🏼的樣子,這也反應了yolo檢測的速度很快,適合做實時檢測任務,我們先來看yolo-v1的整體網路架構,如下圖所示:

從上圖可以看出yolo-v1:
- 網路輸入:448×448×3的彩色圖片,
- 卷積層:由若干卷積層和最大池化層(池化層未畫出)組成,用于提取圖片的抽象特征,
- 全連接層:由兩個全連接層組成,用來預測目標的位置和類別概率值,
- 網路輸出:7×7×30的預測結果,
具體實作
?從上文我們可以得知,yolo-v1的輸入是448×448×3的彩色圖片,我們會將每一張圖片平均的分成7x7個網格,每個網格分別負責預測中心點落在該網格內的目標,
![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-8GIWI5Ie-1642432549751)(C:\Users\WSJ\AppData\Roaming\Typora\typora-user-images\image-20220107215115346.png)]](https://img.uj5u.com/2022/01/18/296776180954378.png)
具體實作程序如下:
- 將一幅影像分成 S×S個網格(grid cell),如果某個 object 的中心落在這個網格中,則這個網格就負責預測這個object,【yolo-v1分成的是7x7大小的網格】
- 每個網格要預測 B 個bounding box,每個 bounding box 要預測 (x, y, w, h) 和 confidence 共5個值,【yolo-v1要預測的是2個bbox】
- 每個網格還要預測一個類別資訊,記為 C 個類,【yolo-v1預測的類別有20種,像貓,狗,汽車等】
- 總的來說,S×S 個網格,每個網格要預測 B個bounding box ,還要預測 C 個類,網路輸出就是一個 S × S × (5×B+C) 的張量,【對于yolo-v1,網路輸出即是一個7x7x30的張量】
?如果你之前已經對yolo演算法有了一定的了解,看了上面的內容,大概已經知道yolo-v1的核心思想了,但是呢,如果你第一次看yolo或者對yolo原理不是很熟悉的話,那估計還是有點懵逼,下面從網路的架構出發,詳細的介紹yolo-v1的細節,

再次貼出這張圖,我們從這張網路架構圖進行分析,
-
輸入層
? ?輸入層是448×448×3的彩色圖片,在yolo-v1中要求圖片大小是448x448的,這是因為在yolo-v1網路最后接了兩個全連接層,全連接層是要求固定大小的向量作為輸入的【因為全連接層中權重矩陣W和偏置矩陣b的維度是不變的】,因此要求原始影像也需要一致的圖片大小,
-
卷積層
? ?卷積層就是一層一層的卷積,這一部分倒也沒什么好說的,對cnn不熟悉的可以看此篇文章,介紹一下,這是July的創始人寫的,我覺得他的機器學習的文章寫的真是太好了,用很抽象的語言來解釋一些演算法,讀了之后會讓你茅廁頓開——哦,原來是這么回事!!!
-
全連接層
? ?全連接層有兩層,enmm…其實也沒什么好講的,不明白的可以看上面推薦的文章,但是我們可以來看一下后一個全連接層的維度,1470x1,看著是不是有點奇怪,之前好像幾乎沒有看到這種維度的輸出,為什么設計這樣的維度呢?我們在下面的網路輸出中進行介紹,
-
輸出層
? ?上文提到,最后的全連接層有一個1470x1的輸出,這樣的維度有什么用呢?其實呢,這是為網路輸出準備的,我們的輸出要求是7x7x30的張量,剛好是1470,所以全連接層的1470x1的輸出經過reshape就可以得到7x7x30的網路輸出,我們再來看這個7x7x30網路輸出,為什么是這個維度的呢?下面來介紹:
? ?yolo-v1的輸入影像被劃分為 7x7 的網格(grid),輸出張量中的 7x7 就對應著輸入影像的 7x7 網格,或者我們把 7x7x30 的張量看作49個30維的向量,也就是輸入影像中的每個網格對應輸出一個30維的向量,每個網格對應一個30維的向量,這30維的向量中包含哪些資訊呢?如下圖所示:

-
20個物件的概率
? 20個物件的概率表示yolo-v1支持20種不同的物件(如貓、狗、汽車等),這里20個物件的概率就是指對應網格中存在任一種物件的概率,
-
2個bbox的置信度
bbox的置信度Confidence表示它是否包含物件且位置準確的程度,置信度高表示這里存在一個物件且位置比較準確,置信度低表示可能沒有物件或者即便有物件也存在較大的位置偏差,
-
2個bbox的位置
一個bbox的位置需要4個數值來表示其位置,(Center_x,Center_y,width,height),即(bounding box的中心點的x坐標,y坐標,寬度,高度),2個bounding box共需要8個數值來表示其位置,
-
損失函式
損失函式主要由三部分組成,分別是:坐標預測損失、置信度預測損失、類別預測損失,
![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-Lur7iLtX-1642432549752)(C:\Users\WSJ\AppData\Roaming\Typora\typora-user-images\image-20220108131822788.png)]](https://img.uj5u.com/2022/01/18/2967761809543711.png)
![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-UBFGQlI2-1642432549755)(C:\Users\WSJ\AppData\Roaming\Typora\typora-user-images\image-20220110141642628.png)]](https://img.uj5u.com/2022/01/18/2967761809543712.png)
yolo-v1的優點及局限
-
優點
- 檢測速度快
- 遷移能力強
-
缺點
- 輸入尺寸固定:由于輸出層為全連接層,因此在檢測時,YOLO 訓練模型只支持與訓練影像相同的輸入解析度,其它解析度需要縮放成此固定解析度;
- 占比小的目標檢測效果不好:雖然每個格子可以預測 2 個 bounding box,但是最終只選擇只選擇 IOU 最高的bbox作為物體檢測輸出,即每個格子最多只預測出一個物體,當物體占畫面比例較小,如影像中包含畜群或鳥群時,每個格子包含多個物體,但卻只能檢測出其中一個,
- yolo-v1多標簽任務不好完成
- yolo-v1有較大的定位誤差
yolo-v2
? ? yolo-v2和yolo-v1的整體思想還是基本一致的,但是也做了很多改進,具體如下圖:可以發現再進行這些改進之后,網路的mAP指數基本都有所增加,最后yolo-v2的mAP達到了78.6,而yolo-v1只要63.4,下面將對這些改變進行講述,
![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-v5wEqZFT-1642432549756)(C:\Users\WSJ\AppData\Roaming\Typora\typora-user-images\image-20220108133446404.png)]](https://img.uj5u.com/2022/01/18/2967761809543713.png)
batch normalization(歸一化 )
?? v2版本舍棄了droupout(在全連接層,v2沒有使用全連接層),卷積后全部加入batch normalization(BN),什么是BN呢,其實就是歸一化,在網路的每一層輸入都會做歸一化的操作,這樣會使收斂更加容易,從上圖可以看出,網路加入BN后,網路的mAP提升了將近2個百分點,可見效果十分顯著,現在看來,幾乎所有的卷積網路都會有batch normalization這一步驟,
? ? BN為什么這么強呢?我舉個通俗的例子,現在我市要為小王同學🤖🤖🤖打造一個三年的造星計劃,最終目標就是三年后讓小王成為我市頂級足球運動員,可是現在一下定一個三年的目標可有點遠,我們要一年對小王進行一次全面檢測,看看他哪些地方做得不好,給出調整,這樣才能盡可能的得到一個高水平的小王,那么BN其實就類似做了每年對小王做檢測這樣的事,在網路中我們一個卷積后都會對其進行BN操作,這樣就會讓網路效果更加好,也更容易收斂,
hi-res calssifier(高解析度分類器)
? ? 前面談及v1版本的時候,說v1輸入的是448*448大小的圖片,但這是在測驗時使用的圖片大小,而v1在訓練時用的圖片大小時224*224d的,這樣可能會導致模型前后不一致,影響效果,于是v2在訓練時額外又加了10次448*448的微調,這樣也使得v2的mAP提升了約4個百分點,
new network
?? v2中網路結構發生了改變,采用DarkNet19網路(有19個卷積層),可以看出網路中沒有全連接層,進行了5次降采樣,網路的實際輸入為416*416,在該網路中采用了很多卷積核為1*1的卷積,這樣省了很多的引數,

anchor boxes(先驗框)
?? 在v1版本當中,我們說到每個網格要預測 2 個bbox,但是呢,這往往會出現一些問題:就是某個網格中物體較多時,會檢測不到所有的物體,即出現漏檢的情況,這也就導致recall(召回率,查全率)比較低,那么在v2中呢,我們選擇每個網格要預測 5 個bbox,采用這種方法來減少recall低的情況,
?? 下圖顯示了加了先驗框后的效果,可以看出,mAP反而減少了【變化不大,可以認為幾乎沒變】,但網路的recall卻增加了7個百分點,
![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-0u8Ergv1-1642432549760)(C:\Users\WSJ\AppData\Roaming\Typora\typora-user-images\image-20220108162234752.png)]](https://img.uj5u.com/2022/01/18/2967761809543715.png)
dimension priors(維度聚類)
?? 在上文說到在v2版本中每個網格要預測 5 個bbox,但是這5個bbox的大小不是隨便給的,而是通過原始圖片聚類得到的,將原始影像中物體框通過K-means演算法聚成5類,然后取這五類的平均值作為bbox的大小,這樣得出的bbox的大小更符合實際情況,檢測效果更好,
location prediction
?? 在yolo-v1中,是通過預測 bounding box 與 ground truth 的位置偏移值tx,ty,間接得到bounding box的位置,其公式如下:
![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-1JnhJlW7-1642432549762)(C:\Users\WSJ\AppData\Roaming\Typora\typora-user-images\image-20220108164513774.png)]](https://img.uj5u.com/2022/01/18/2967761809543716.png)
? 個公式是無約束的,預測的邊界框很容易向任何方向偏移,因此,每個位置預測的邊界框可以落在圖片任何位置,這會導致模型的不穩定性,
? ? 因此 YOLOv2 在此方法上進行了一點改變:預測邊界框中心點相對于該網格左上角坐標( C x , C y )的相對偏移量,同時為了將bounding box的中心點約束在當前網格中,使用 sigmoid 函式將tx,ty歸一化處理,將值約束在0-1,這使得模型訓練更穩定,

passthrough
? ? 這部分要涉及感受野的知識,不做解釋,不知道的可以查閱相關資料,但還是要給出感受野的相關性質和結論:我們在卷積中往往期待用一些小的卷積核來代替大的卷積核【他們的感受野相同,但使用小卷積核所需的網路引數較少】,卷積網路中,越是后面的卷積層其感受野就越大,這樣就更容易看到原始圖片的全域資訊,但是這樣對于原始圖片中小物體的檢測就變得困難,這時候我們就希望同時獲得一些感受野稍微小一點的特征圖(卷積層越往前感受野越小),這樣就可以檢測到小目標,具體做法如下:
![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-CCZwRieY-1642432549765)(C:\Users\WSJ\AppData\Roaming\Typora\typora-user-images\image-20220108191818723.png)]](https://img.uj5u.com/2022/01/18/2967761809543718.png)
? ?可以看出,v2把上一層卷積中的特征圖插成了4份,然后再和最后一層的特征圖疊加得到最后的輸出,這樣的結果就同時有了感受野大的和感受野小的特征圖,這樣對圖片的大目標和小目標都會有一個不錯的檢測效果,
multi-scale
? ?v2版本相較于v1版本而言,沒有了全連接層,都是卷積層,這使得網路可以適應多種不同尺度的輸入,和v1訓練時網路輸入的影像尺寸固定不變不同,v2每隔幾次迭代后就會微調網路的輸入尺寸,這樣可以讓檢測的能力更加全面,通常最小的影像尺寸為320x320,最大的圖片尺寸為608x608,

yolo-v3
? ? 我們先來看一下v3和其他網路模型的對比!!!看到這張圖我不自覺的笑了,這個作者也太有意思了,把v3都畫到第二象限了(原點是50)【跨象限碾壓😬😬😬】這就足以看出v3的強大了!!!
![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-FkdmQxW9-1642432549766)(C:\Users\WSJ\AppData\Roaming\Typora\typora-user-images\image-20220108204744846.png)]](https://img.uj5u.com/2022/01/18/2967761809543720.png)
多scale
? ?在闡述yolo-v2的改進時,我們談到使用passthrough可以讓我們更有效的檢測小目標物體,但其實這樣的效果還不是很好,yolo-v3又進行了改進,它采用了多scale的先驗框來進行檢測,如圖所示,我們對不同感受野的網路輸出結果采用不同的先驗框,設計了三種規模的先驗框,每種規模又有三種bbox,也就是一共9種先驗框,
![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-1mom9scl-1642432549768)(C:\Users\WSJ\AppData\Roaming\Typora\typora-user-images\image-20220108204111682.png)]](https://img.uj5u.com/2022/01/18/2967761809543721.png)
resnet(殘差網路)
? ?resnet(殘差網路),這個大家應該都很熟悉了吧,因為是我們中國人先提出的,在深度神經網路訓練中,從經驗來看,隨著網路深度的增加,模型理論上可以取得更好的結果,但是實驗卻發現,深度神經網路中存在著退化問題,人們就以為神經網路就只能做到這里了,但是后來提出一種網路:resnet,其實這種網路原理很好理解,就類似做一個if陳述句,每加一層后我都進行一個判斷,如果結果是好的我就保留,不好的就舍棄,現在基本上resnet已經成為了網路模型的標配,
![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-ZnC3bjhb-1642432549770)(C:\Users\WSJ\AppData\Roaming\Typora\typora-user-images\image-20220108210239790.png)]](https://img.uj5u.com/2022/01/18/2967761809543722.png)
多標簽分類
? ?yolo-v3在類別預測方面將yolo-v2的單標簽分類改進為多標簽分類,在網路結構中將yolo-v2中用于分類的softmax層修改為邏輯分類器,在yolo-v2中,演算法認定一個目標只從屬于一個類別,根據網路輸出類別的得分最大值,將其歸為某一類,然而在一些復雜的場景中,單一目標可能從屬于多個類別,
? ? 比如在一個交通場景中,某目標的種類既屬于汽車也屬于卡車,如果用softmax進行分類,softmax會假設這個目標只屬于一個類別,這個目標只會被認定為汽車或卡車,這種分類方法就稱為單標簽分類,如果網路輸出認定這個目標既是汽車也是卡車,這就被稱為多標簽分類,
? ? 為實作多標簽分類就需要用邏輯分類器來對每個類別都進行二分類,邏輯分類器主要用到了sigmoid函式,它可以把輸出約束在0到1,如果某一特征圖的輸出經過該函式處理后的值大于設定閾值,那么就認定該目標框所對應的目標屬于該類,
網路架構
? ?相比于 YOLOv2 的 骨干網路,YOLOv3 進行了較大的改進,借助殘差網路的思想,YOLOv3 將原來的 darknet-19 改進為darknet-53,Darknet-53主要由1×1和3×3的卷積層組成,每個卷積層之后包含一個批量歸一化層和一個Leaky ReLU,加入這兩個部分的目的是為了防止過擬合,卷積層、批量歸一化層以及Leaky ReLU共同組成Darknet-53中的基本卷積單元DBL,因為在Darknet-53中共包含53個這樣的DBL,所以稱其為Darknet-53,


yolo-v4
? ? v3和v4兩個版本的作者發生了變化,當時前三個版本的作者redmon在推特上發表了一個宣告:大致是說因為yolo-v3已經被用在一些軍事上,這是他不想看到的,因此他表示退出CV界,這也從側面反映了yolo-v3性能的強大,2020年,Alexey Bochkovskiy等人接手了yolo系列,yolo-v4油然而生,
? ? yolo-v4對深度學習中一些常用Tricks進行了大量的測驗,最終選擇了這些有用的Tricks:WRC、CSP、CmBN、SAT、 Mish activation、Mosaic data augmentation、CmBN、DropBlock regularization 和 CIoU loss,
? 正是v4中采用了很多的技巧,這些都是近先年各種先進的演算法,我沒有認真讀過這些演算法,對這些也不是特別清楚,所以這里不對yolo-v4做整理(整理可能會有很多描述不準確的地方🤡)但是呢,我也在網上看了很多文章,這里我覺得這一篇寫得非常清楚,也都把這些用到的演算法出處貼了出來,感興趣的可以自己研讀,鏈接如下:yolo-v4
? ? 上面的鏈接中沒有給出原yolo-v4論文,這里附上鏈接:論文
yolo-v5
? ?呼,終于到v5了,上面的寫內容不多,但也花費了2天多的時間😭😭😭終于感覺要到頭了🚀🚀🚀
? ?果然不能偷懶,上面的yolo-v4沒有自己寫,現在的v5好像也不想自己寫了,但是“自己的事情自己做”這句話涌上心頭,因此我決定還是放上鏈接吧🙈🙈🙈(真不是自己懶,這個人寫的太好了,圖文并茂,我認為以我現在的知識儲備寫不出來,因此還是借用他人的叭!!!到時候需要再看的時候也好直接找到好文章)
? ? 鏈接如下:yolo-v5
咻咻咻咻~~duang~~點個贊唄
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/414011.html
標籤:其他
上一篇:【python語音識別】借助百度智能云實作任意時間長度語音識別,輸入語音轉為文字的python程式,按回車開始錄制按回車結束錄制,錄音時間任意,無需指定錄音時間
