YOLO算法最全綜述:從YOLOv1到YOLOv5

點擊上方「3D視覺工坊」,選擇「星標」git

乾貨第一時間送達github

做者丨初識CV算法

來源丨https://zhuanlan.zhihu.com/p/136382095微信

編輯丨極市平臺網絡

YOLO官網:架構

https://github.com/pjreddie/darknet框架

YOLO v.s Faster R-CNN

1.統一網絡:YOLO沒有顯示求取region proposal的過程。Faster R-CNN中儘管RPN與fast rcnn共享卷積層,可是在模型訓練過程當中,須要反覆訓練RPN網絡和fast rcnn網絡.相對於R-CNN系列的"看兩眼"(候選框提取與分類),YOLO只須要Look Once.dom

2. YOLO統一爲一個迴歸問題,而R-CNN將檢測結果分爲兩部分求解:物體類別(分類問題),物體位置即bounding box(迴歸問題)。ide

YOLOv1

論文下載:http://arxiv.org/abs/1506.02640函數

代碼下載:https://github.com/pjreddie/darknet

核心思想:將整張圖片做爲網絡的輸入(相似於Faster-RCNN),直接在輸出層對BBox的位置和類別進行迴歸。

實現方法

  • 將一幅圖像分紅SxS個網格(grid cell),若是某個object的中心 落在這個網格中,則這個網格就負責預測這個object。

  • 每一個網絡須要預測B個BBox的位置信息和confidence(置信度)信息,一個BBox對應着四個位置信息和一個confidence信息。confidence表明了所預測的box中含有object的置信度和這個box預測的有多準兩重信息:

其中若是有object落在一個grid cell裏,第一項取1,不然取0。第二項是預測的bounding box和實際的groundtruth之間的IoU值。

  • 每一個bounding box要預測(x, y, w, h)和confidence共5個值,每一個網格還要預測一個類別信息,記爲C類。則SxS個網格,每一個網格要預測B個bounding box還要預測C個categories。輸出就是S x S x (5*B+C)的一個tensor。(注意:class信息是針對每一個網格的,confidence信息是針對每一個bounding box的。

  • 舉例說明: 在PASCAL VOC中,圖像輸入爲448x448,取S=7,B=2,一共有20個類別(C=20)。則輸出就是7x7x30的一個tensor。整個網絡結構以下圖所示:

  • 在test的時候,每一個網格預測的class信息和bounding box預測的confidence信息相乘,就獲得每一個bounding box的class-specific confidence score:

等式左邊第一項就是每一個網格預測的類別信息,第二三項就是每一個bounding box預測的confidence。這個乘積即encode了預測的box屬於某一類的機率,也有該box準確度的信息。

  • 獲得每一個box的class-specific confidence score之後,設置閾值,濾掉得分低的boxes,對保留的boxes進行NMS處理,就獲得最終的檢測結果。

簡單的歸納就是:

(1) 給個一個輸入圖像,首先將圖像劃分紅7*7的網格

(2) 對於每一個網格,咱們都預測2個邊框(包括每一個邊框是目標的置信度以及每一個邊框區域在多個類別上的機率)

(3) 根據上一步能夠預測出7*7*2個目標窗口,而後根據閾值去除可能性比較低的目標窗口,最後NMS去除冗餘窗口便可

損失函數

在實現中,最主要的就是怎麼設計損失函數,讓這個三個方面獲得很好的平衡。做者簡單粗暴的所有采用了sum-squared error loss來作這件事。

這種作法存在如下幾個問題:

  • 第一,8維的localization error和20維的classification error同等重要顯然是不合理的;

  • 第二,若是一個網格中沒有object(一幅圖中這種網格不少),那麼就會將這些網格中的box的confidence push到0,相比於較少的有object的網格,這種作法是overpowering的,這會致使網絡不穩定甚至發散。

解決辦法:

  • 更重視8維的座標預測,給這些損失前面賦予更大的loss weight。

  • 對沒有object的box的confidence loss,賦予小的loss weight。

  • 有object的box的confidence loss和類別的loss的loss weight正常取1。

對不一樣大小的box預測中,相比於大box預測偏一點,小box預測偏一點確定更不能被忍受的。而sum-square error loss中對一樣的偏移loss是同樣。

爲了緩和這個問題,做者用了一個比較取巧的辦法,就是將box的width和height取平方根代替本來的height和width。這個參考下面的圖很容易理解,小box的橫軸值較小,發生偏移時,反應到y軸上相比大box要大。(也是個近似逼近方式)

一個網格預測多個box,但願的是每一個box predictor專門負責預測某個object。具體作法就是看當前預測的box與ground truth box中哪一個IoU大,就負責哪一個。這種作法稱做box predictor的specialization。

最後整個的損失函數以下所示:

這個損失函數中:

  • 只有當某個網格中有object的時候纔對classification error進行懲罰。

  • 只有當某個box predictor對某個ground truth box負責的時候,纔會對box的coordinate error進行懲罰,而對哪一個ground truth box負責就看其預測值和ground truth box的IoU是否是在那個cell的全部box中最大。

其餘細節,例如使用激活函數使用leak RELU,模型用ImageNet預訓練等等

優勢

  • 快速,pipline簡單.

  • 背景誤檢率低。

  • 通用性強。YOLO對於藝術類做品中的物體檢測一樣適用。它對非天然圖像物體的檢測率遠遠高於DPM和RCNN系列檢測方法。

缺點

  • 因爲輸出層爲全鏈接層,所以在檢測時,YOLO訓練模型只支持與訓練圖像相同的輸入分辨率。

  • 雖然每一個格子能夠預測B個bounding box,可是最終只選擇只選擇IOU最高的bounding box做爲物體檢測輸出,即每一個格子最多隻預測出一個物體。當物體佔畫面比例較小,如圖像中包含畜羣或鳥羣時,每一個格子包含多個物體,但卻只能檢測出其中一個。這是YOLO方法的一個缺陷。

  • YOLO loss函數中,大物體IOU偏差和小物體IOU偏差對網絡訓練中loss貢獻值接近(雖然採用求平方根方式,但沒有根本解決問題)。所以,對於小物體,小的IOU偏差也會對網絡優化過程形成很大的影響,從而下降了物體檢測的定位準確性。

YOLOv2(YOLO9000)

論文地址:https://arxiv.org/abs/1612.08242

YOLOv2相對v1版本,在繼續保持處理速度的基礎上,從預測更準確(Better)速度更快(Faster)識別對象更多(Stronger)這三個方面進行了改進。其中識別更多對象也就是擴展到可以檢測9000種不一樣對象,稱之爲YOLO9000

文章提出了一種新的訓練方法–聯合訓練算法,這種算法能夠把這兩種的數據集混合到一塊兒。使用一種分層的觀點對物體進行分類,用巨量的分類數據集數據來擴充檢測數據集,從而把兩種不一樣的數據集混合起來。

聯合訓練算法的基本思路就是:同時在檢測數據集和分類數據集上訓練物體檢測器(Object Detectors ),用檢測數據集的數據學習物體的準確位置,用分類數據集的數據來增長分類的類別量、提高健壯性。

YOLO9000就是使用聯合訓練算法訓練出來的,他擁有9000類的分類信息,這些分類信息學習自ImageNet分類數據集,而物體位置檢測則學習自COCO檢測數據集。

YOLOv2相比YOLOv1的改進策略

改進:

Batch Normalization(批量歸一化)

mAP提高2.4%。

批歸一化有助於解決反向傳播過程當中的梯度消失和梯度爆炸問題,下降對一些超參數(好比學習率、網絡參數的大小範圍、激活函數的選擇)的敏感性,而且每一個batch分別進行歸一化的時候,起到了必定的正則化效果(YOLO2再也不使用dropout),從而可以得到更好的收斂速度和收斂效果。

一般,一次訓練會輸入一批樣本(batch)進入神經網絡。批規一化在神經網絡的每一層,在網絡(線性變換)輸出後和激活函數(非線性變換)以前增長一個批歸一化層(BN),BN層進行以下變換:①對該批樣本的各特徵量(對於中間層來講,就是每個神經元)分別進行歸一化處理,分別使每一個特徵的數據分佈變換爲均值0,方差1。從而使得每一批訓練樣本在每一層都有相似的分佈。這一變換不須要引入額外的參數。②對上一步的輸出再作一次線性變換,假設上一步的輸出爲Z,則Z1=γZ + β。這裏γ、β是能夠訓練的參數。增長這一變換是由於上一步驟中強制改變了特徵數據的分佈,可能影響了原有數據的信息表達能力。增長的線性變換使其有機會恢復其本來的信息。

關於批規一化的更多信息能夠參考 Batch Normalization原理與實戰。

High resolution classifier(高分辨率圖像分類器)

mAP提高了3.7%。

圖像分類的訓練樣本不少,而標註了邊框的用於訓練對象檢測的樣本相比而言就比較少了,由於標註邊框的人工成本比較高。因此對象檢測模型一般都先用圖像分類樣本訓練卷積層,提取圖像特徵。但這引出的另外一個問題是,圖像分類樣本的分辨率不是很高。因此YOLO v1使用ImageNet的圖像分類樣本採用 224*224 做爲輸入,來訓練CNN卷積層。而後在訓練對象檢測時,檢測用的圖像樣本採用更高分辨率的 448*448 的圖像做爲輸入。但這樣切換對模型性能有必定影響。

因此YOLO2在採用 224*224 圖像進行分類模型預訓練後,再採用 448*448 的高分辨率樣本對分類模型進行微調(10個epoch),使網絡特徵逐漸適應 448*448 的分辨率。而後再使用 448*448 的檢測樣本進行訓練,緩解了分辨率忽然切換形成的影響。

Convolution with anchor boxes(使用先驗框)

召回率大幅提高到88%,同時mAP輕微降低了0.2。

YOLOV1包含有全鏈接層,從而能直接預測Bounding Boxes的座標值。Faster R-CNN的方法只用卷積層與Region Proposal Network來預測Anchor Box的偏移值與置信度,而不是直接預測座標值。做者發現經過預測偏移量而不是座標值可以簡化問題,讓神經網絡學習起來更容易。

借鑑Faster RCNN的作法,YOLO2也嘗試採用先驗框(anchor)。在每一個grid預先設定一組不一樣大小和寬高比的邊框,來覆蓋整個圖像的不一樣位置和多種尺度,這些先驗框做爲預約義的候選區在神經網絡中將檢測其中是否存在對象,以及微調邊框的位置。

以前YOLO1並無採用先驗框,而且每一個grid只預測兩個bounding box,整個圖像98個。YOLO2若是每一個grid採用9個先驗框,總共有13*13*9=1521個先驗框。因此最終YOLO去掉了全鏈接層,使用Anchor Boxes來預測 Bounding Boxes。做者去掉了網絡中一個Pooling層,這讓卷積層的輸出能有更高的分辨率。收縮網絡讓其運行在416*416而不是448*448。

因爲圖片中的物體都傾向於出如今圖片的中心位置,特別是那種比較大的物體,因此有一個單獨位於物體中心的位置用於預測這些物體。YOLO的卷積層採用32這個值來下采樣圖片,因此經過選擇416*416用做輸入尺寸最終能輸出一個13*13的Feature Map。使用Anchor Box會讓精確度稍微降低,但用了它能讓YOLO能預測出大於一千個框,同時recall達到88%,mAP達到69.2%。

Dimension clusters(聚類提取先驗框的尺度信息)

以前Anchor Box的尺寸是手動選擇的,因此尺寸還有優化的餘地。YOLO2嘗試統計出更符合樣本中對象尺寸的先驗框,這樣就能夠減小網絡微調先驗框到實際位置的難度。YOLO2的作法是對訓練集中標註的邊框進行K-mean聚類分析,以尋找儘量匹配樣本的邊框尺寸。

若是咱們用標準的歐式距離的k-means,尺寸大的框比小框產生更多的錯誤。由於咱們的目的是提升IOU分數,這依賴於Box的大小,因此距離度量的使用:

centroid是聚類時被選做中心的邊框,box就是其它邊框,d就是二者間的「距離」。IOU越大,「距離」越近。YOLO2給出的聚類分析結果以下圖所示:

經過分析實驗結果(Figure 2),左圖:在model複雜性與high recall之間權衡以後,選擇聚類分類數K=5。右圖:是聚類的中心,大多數是高瘦的Box。

Table1是說明用K-means選擇Anchor Boxes時,當Cluster IOU選擇值爲5時,AVG IOU的值是61,這個值要比不用聚類的方法的60.9要高。選擇值爲9的時候,AVG IOU更有顯著提升。總之就是說明用聚類的方法是有效果的。


Direct location prediction( 約束預測邊框的位置

借鑑於Faster RCNN的先驗框方法,在訓練的早期階段,其位置預測容易不穩定。其位置預測公式爲:

其中,  是預測邊框的中心,  是先驗框(anchor)的中心點座標,  是先驗框(anchor)的寬和高,  是要學習的參數。注意,YOLO論文中寫的是  ,根據Faster RCNN,應該是"+"。

因爲  的取值沒有任何約束,所以預測邊框的中心可能出如今任何位置,訓練早期階段不容易穩定。YOLO調整了預測公式,將預測邊框的中心約束在特定gird網格內。

σ

σ

σ

其中,  是預測邊框的中心和寬高。  是預測邊框的置信度,YOLO1是直接預測置信度的值,這裏對預測參數  進行σ變換後做爲置信度的值。  是當前網格左上角到圖像左上角的距離,要先將網格大小歸一化,即令一個網格的寬=1,高=1。  是先驗框的寬和高。σ是sigmoid函數。  是要學習的參數,分別用於預測邊框的中心和寬高,以及置信度。

由於使用了限制讓數值變得參數化,也讓網絡更容易學習、更穩定。

Fine-Grained Features(passthrough層檢測細粒度特徵)

passthrough層檢測細粒度特徵使mAP提高1。

對象檢測面臨的一個問題是圖像中對象會有大有小,輸入圖像通過多層網絡提取特徵,最後輸出的特徵圖中(好比YOLO2中輸入416*416通過卷積網絡下采樣最後輸出是13*13),較小的對象可能特徵已經不明顯甚至被忽略掉了。爲了更好的檢測出一些比較小的對象,最後輸出的特徵圖須要保留一些更細節的信息。

YOLO2引入一種稱爲passthrough層的方法在特徵圖中保留一些細節信息。具體來講,就是在最後一個pooling以前,特徵圖的大小是26*26*512,將其1拆4,直接傳遞(passthrough)到pooling後(而且又通過一組卷積)的特徵圖,二者疊加到一塊兒做爲輸出的特徵圖。

具體怎樣1拆4,下面借用一副圖看的很清楚。圖中示例的是1個4*4拆成4個2*2。由於深度不變,因此沒有畫出來。

另外,根據YOLO2的代碼,特徵圖先用1*1卷積從 26*26*512 降維到 26*26*64,再作1拆4並passthrough。下面圖6有更詳細的網絡輸入輸出結構。

Multi-ScaleTraining(多尺度圖像訓練)

做者但願YOLO v2能健壯的運行於不一樣尺寸的圖片之上,因此把這一想法用於訓練model中。

區別於以前的補全圖片的尺寸的方法,YOLO v2每迭代幾回都會改變網絡參數。每10個Batch,網絡會隨機地選擇一個新的圖片尺寸,因爲使用了下采樣參數是32,因此不一樣的尺寸大小也選擇爲32的倍數{320,352…..608},最小320*320,最大608*608,網絡會自動改變尺寸,並繼續訓練的過程。

這一政策讓網絡在不一樣的輸入尺寸上都能達到一個很好的預測效果,同一網絡能在不一樣分辨率上進行檢測。當輸入圖片尺寸比較小的時候跑的比較快,輸入圖片尺寸比較大的時候精度高,因此你能夠在YOLO v2的速度和精度上進行權衡。

Figure4,Table 3:在voc2007上的速度與精度

hi-res detector(高分辨率圖像的對象檢測)

圖1表格中最後一行有個hi-res detector,使mAP提升了1.8。由於YOLO2調整網絡結構後可以支持多種尺寸的輸入圖像。一般是使用416*416的輸入圖像,若是用較高分辨率的輸入圖像,好比544*544,則mAP能夠達到78.6,有1.8的提高。

Hierarchical classification(分層分類)

做者提出了一種在分類數據集和檢測數據集上聯合訓練的機制。使用檢測數據集的圖片去學習檢測相關的信息,例如bounding box 座標預測,是否包含物體以及屬於各個物體的機率。使用僅有類別標籤的分類數據集圖片去擴展能夠檢測的種類。

做者經過ImageNet訓練分類、COCO和VOC數據集來訓練檢測,這是一個頗有價值的思路,可讓咱們達到比較優的效果。經過將兩個數據集混合訓練,若是遇到來自分類集的圖片則只計算分類的Loss,遇到來自檢測集的圖片則計算完整的Loss。

可是ImageNet對應分類有9000種,而COCO則只提供80種目標檢測,做者使用multi-label模型,即假定一張圖片能夠有多個label,而且不要求label間獨立。經過做者Paper裏的圖來講明,因爲ImageNet的類別是從WordNet選取的,做者採用如下策略重建了一個樹形結構(稱爲分層樹):

  1. 遍歷Imagenet的label,而後在WordNet中尋找該label到根節點(指向一個物理對象)的路徑;

  2. 若是路徑直有一條,那麼就將該路徑直接加入到分層樹結構中;

  3. 不然,從剩餘的路徑中選擇一條最短路徑,加入到分層樹。

這個分層樹咱們稱之爲 WordTree,做用就在於將兩種數據集按照層級進行結合。

分類時的機率計算借用了決策樹思想,某個節點的機率值等於該節點到根節點的全部條件機率之積。最終結果是一顆 WordTree (視覺名詞組成的層次結構模型)。用WordTree執行分類時,預測每一個節點的條件機率。若是想求得特定節點的絕對機率,只須要沿着路徑作連續乘積。例如,若是想知道一張圖片是否是「Norfolk terrier 」須要計算:

另外,爲了驗證這種方法做者在WordTree(用1000類別的ImageNet建立)上訓練了Darknet-19模型。爲了建立WordTree1k,做者天添加了不少中間節點,把標籤由1000擴展到1369。訓練過程當中ground truth標籤要順着向根節點的路徑傳播。例如,若是一張圖片被標記爲「Norfolk terrier」,它也被標記爲「dog」 和「mammal」等。爲了計算條件機率,模型預測了一個包含1369個元素的向量,並且基於全部「同義詞集」計算softmax,其中「同義詞集」是同一律唸的下位詞。

softmax操做也同時應該採用分組操做,下圖上半部分爲ImageNet對應的原生Softmax,下半部分對應基於WordTree的Softmax:

經過上述方案構造WordTree,獲得對應9418個分類,經過重採樣保證Imagenet和COCO的樣本數據比例爲4:1。

YOLOv3

論文地址:https://pjreddie.com/media/files/papers/YOLOv3.pdf

YOLO v3的模型比以前的模型複雜了很多,能夠經過改變模型結構的大小來權衡速度與精度。

速度對好比下:

簡而言之,YOLOv3 的先驗檢測(Prior detection)系統將分類器或定位器從新用於執行檢測任務。他們將模型應用於圖像的多個位置和尺度。而那些評分較高的區域就能夠視爲檢測結果。此外,相對於其它目標檢測方法,咱們使用了徹底不一樣的方法。咱們將一個單神經網絡應用於整張圖像,該網絡將圖像劃分爲不一樣的區域,於是預測每一塊區域的邊界框和機率,這些邊界框會經過預測的機率加權。咱們的模型相比於基於分類器的系統有一些優點。它在測試時會查看整個圖像,因此它的預測利用了圖像中的全局信息。與須要數千張單一目標圖像的 R-CNN 不一樣,它經過單一網絡評估進行預測。這令 YOLOv3 很是快,通常它比 R-CNN 快 1000 倍、比 Fast R-CNN 快 100 倍。

改進之處

  • 多尺度預測 (引入FPN)。

  • 更好的基礎分類網絡(darknet-53, 相似於ResNet引入殘差結構)。

  • 分類器不在使用Softmax,分類損失採用binary cross-entropy loss(二分類交叉損失熵)

YOLOv3不使用Softmax對每一個框進行分類,主要考慮因素有兩個:

  1. Softmax使得每一個框分配一個類別(score最大的一個),而對於Open Images這種數據集,目標可能有重疊的類別標籤,所以Softmax不適用於多標籤分類。

  2. Softmax可被獨立的多個logistic分類器替代,且準確率不會降低。

分類損失採用binary cross-entropy loss。

多尺度預測

每種尺度預測3個box, anchor的設計方式仍然使用聚類,獲得9個聚類中心,將其按照大小均分給3個尺度.

  • 尺度1: 在基礎網絡以後添加一些卷積層再輸出box信息.

  • 尺度2: 從尺度1中的倒數第二層的卷積層上採樣(x2)再與最後一個16x16大小的特徵圖相加,再次經過多個卷積後輸出box信息.相比尺度1變大兩倍.

  • 尺度3: 與尺度2相似,使用了32x32大小的特徵圖.

參見網絡結構定義文件 yolov3.cfg
https://github.com/pjreddie/darknet/blob/master/cfg/yolov3.cfg

基礎網絡 Darknet-53

darknet-53

仿ResNet, 與ResNet-101或ResNet-152準確率接近,但速度更快.對好比下:

主幹架構的性能對比

檢測結構以下:

YOLOv3在mAP@0.5及小目標APs上具備不錯的結果,但隨着IOU的增大,性能降低,說明YOLOv3不能很好地與ground truth切合.

邊框預測

圖 2:帶有維度先驗和定位預測的邊界框。咱們邊界框的寬和高以做爲離聚類中心的位移,並使用 Sigmoid 函數預測邊界框相對於濾波器應用位置的中心座標。

仍採用以前的logis,其中cx,cy是網格的座標偏移量,pw,ph是預設的anchor box的邊長.最終獲得的邊框座標值是b*,而網絡學習目標是t*,用sigmod函數、指數轉換。

YOLOv4

YOLOv4: Optimal Speed and Accuracy of Object Detection

論文:https://arxiv.org/abs/2004.10934

代碼:https://github.com/AlexeyAB/darknet

YOLOv4!

YOLOv4 在COCO上,可達43.5% AP,速度高達 65 FPS!

YOLOv4的特色是集大成者,俗稱堆料。但最終達到這麼高的性能,必定是不斷嘗試、不斷堆料、不斷調參的結果,給做者點贊。下面看看堆了哪些料:

  • Weighted-Residual-Connections (WRC)

  • Cross-Stage-Partial-connections (CSP)

  • Cross mini-Batch Normalization (CmBN)

  • Self-adversarial-training (SAT)

  • Mish-activation

  • Mosaic data augmentation

  • CmBN

  • DropBlock regularization

  • CIoU loss

本文的主要貢獻以下:

1. 提出了一種高效而強大的目標檢測模型。它使每一個人均可以使用1080 Ti或2080 Ti GPU 訓練超快速和準確的目標檢測器(牛逼!)。

2. 在檢測器訓練期間,驗證了SOTA的Bag-of Freebies 和Bag-of-Specials方法的影響。

3. 改進了SOTA的方法,使它們更有效,更適合單GPU訓練,包括CBN [89],PAN [49],SAM [85]等。文章將目前主流的目標檢測器框架進行拆分:input、backbone、neck 和 head.

具體以下圖所示:

  • 對於GPU,做者在卷積層中使用:CSPResNeXt50 / CSPDarknet53

  • 對於VPU,做者使用分組卷積,但避免使用(SE)塊-具體來講,它包括如下模型:EfficientNet-lite / MixNet / GhostNet / MobileNetV3

做者的目標是在輸入網絡分辨率,卷積層數,參數數量和層輸出(filters)的數量之間找到最佳平衡。

總結一下YOLOv4框架:

  • Backbone:CSPDarknet53

  • Neck:SPP,PAN

  • Head:YOLOv3

YOLOv4 = CSPDarknet53+SPP+PAN+YOLOv3

其中YOLOv4用到至關多的技巧:

  • 用於backbone的BoF:CutMix和Mosaic數據加強,DropBlock正則化,Class label smoothing

  • 用於backbone的BoS:Mish激活函數,CSP,MiWRC

  • 用於檢測器的BoF:CIoU-loss,CmBN,DropBlock正則化,Mosaic數據加強,Self-Adversarial 訓練,消除網格敏感性,對單個ground-truth使用多個anchor,Cosine annealing scheduler,最佳超參數,Random training shapes

  • 用於檢測器的Bos:Mish激活函數,SPP,SAM,PAN,DIoU-NMS

看看YOLOv4部分組件:

感覺一下YOLOv4實驗的充分性(調參的藝術):

感覺一下性能炸裂的YOLOv4實驗結果:

YOLOv5:

2020年2月YOLO之父Joseph Redmon宣佈退出計算機視覺研究領域,2020 年 4 月 23 日YOLOv4 發佈,2020 年 6 月 10 日YOLOv5發佈。

YOLOv5源代碼:

https://github.com/ultralytics/yolov5

他們公佈的結果代表,YOLOv5 的表現要優於谷歌開源的目標檢測框架 EfficientDet,儘管 YOLOv5 的開發者沒有明確地將其與 YOLOv4 進行比較,但他們卻聲稱 YOLOv5 能在 Tesla P100 上實現 140 FPS 的快速檢測;相較而言,YOLOv4 的基準結果是在 50 FPS 速度下獲得的,參閱:https://blog.roboflow.ai/yolov5-is-hereState-of-the-Art

不只如此,他們還提到「YOLOv5 的大小僅有 27 MB。」對比一下:使用 darknet 架構的 YOLOv4 有 244 MB。這說明 YOLOv5 實在特別小,比 YOLOv4 小近 90%。這也太瘋狂了!而在準確度指標上,「YOLOv5 與 YOLOv4 至關」。

所以總結起來,YOLOv5 宣稱本身速度很是快,有很是輕量級的模型大小,同時在準確度方面又與 YOLOv4 基準至關。

你們對YOLOV5命名是爭議很大,由於YOLOV5相對於YOLOV4來講創新性的地方不多。不過它的性能應該仍是有的,如今kaggle上active檢測的比賽小麥檢測前面的選手大部分用的都是YOLOV5的框架。比賽連接:

https://www.kaggle.com/c/global-wheat-detection

參考

1.V1,V2,V3參考地址:https://blog.csdn.net/App_12062011/article/details/77554288
2.V4轉載地址:https://mp.weixin.qq.com/s/Ua3T-DOuzmLWuXfohEiVFw

本文僅作學術分享,若有侵權,請聯繫刪文。

下載1

在「3D視覺工坊」公衆號後臺回覆:3D視覺便可下載 3D視覺相關資料乾貨,涉及相機標定、三維重建、立體視覺、SLAM、深度學習、點雲後處理、多視圖幾何等方向。

下載2

在「3D視覺工坊」公衆號後臺回覆:3D視覺github資源彙總便可下載包括結構光、標定源碼、缺陷檢測源碼、深度估計與深度補全源碼、點雲處理相關源碼、立體匹配源碼、單目、雙目3D檢測、基於點雲的3D檢測、6D姿態估計源碼彙總等。

下載3

在「3D視覺工坊」公衆號後臺回覆:相機標定便可下載獨家相機標定學習課件與視頻網址;後臺回覆:立體匹配便可下載獨家立體匹配學習課件與視頻網址。

重磅!3DCVer-學術論文寫做投稿 交流羣已成立

掃碼添加小助手微信,可申請加入3D視覺工坊-學術論文寫做與投稿 微信交流羣,旨在交流頂會、頂刊、SCI、EI等寫做與投稿事宜。

同時也可申請加入咱們的細分方向交流羣,目前主要有3D視覺CV&深度學習SLAM三維重建點雲後處理自動駕駛、CV入門、三維測量、VR/AR、3D人臉識別、醫療影像、缺陷檢測、行人重識別、目標跟蹤、視覺產品落地、視覺競賽、車牌識別、硬件選型、學術交流、求職交流等微信羣。

必定要備註:研究方向+學校/公司+暱稱,例如:」3D視覺 + 上海交大 + 靜靜「。請按照格式備註,可快速被經過且邀請進羣。原創投稿也請聯繫。

▲長按加微信羣或投稿

▲長按關注公衆號

3D視覺從入門到精通知識星球:針對3D視覺領域的知識點彙總、入門進階學習路線、最新paper分享、疑問解答四個方面進行深耕,更有各種大廠的算法工程人員進行技術指導。與此同時,星球將聯合知名企業發佈3D視覺相關算法開發崗位以及項目對接信息,打形成集技術與就業爲一體的鐵桿粉絲彙集區,近2000星球成員爲創造更好的AI世界共同進步,知識星球入口:

學習3D視覺核心技術,掃描查看介紹,3天內無條件退款

 圈裏有高質量教程資料、可答疑解惑、助你高效解決問題

以爲有用,麻煩給個贊和在看~  

相關文章
相關標籤/搜索