- 前言
- 一、YOLOv1
- 1. 網路結構
- 2. 實作方法
- 3. 損失函式
- 4. 缺點
- 二、YOLOv2
- 1. 網路結構
- 2. 改進方法
- 3. YOLO9000
- 4. 網路訓練細節
- 三、YOLOv3
- 1. 網路結構
- 2. 改進方法
- 3. 損失函式
- 4. 性能比較
資料匯總選自
B站大佬:霹靂吧啦Wz
csdn大佬:AI菌 和 AI小白一枚 和 小小將 和 木卯_THU
注:本文為學習記錄筆記,以學習積累為主,如表述錯誤或侵權,煩請提示指出;如有不能理解的部分,可以前往以上博主的文章中查看更詳細的說明講解,
前言
從Two Stage到One Stage:
Two stage(先選取候選框,再進行回歸調整候選框和分類):RCNN,SPP-Net,Fast-RCNN,Faster-RCNN,Mask-RCNN等
One stage(直接回歸調整候選框及分類):SSD,YOLO系列,RetinaNet,RefineDet等
- 有關RCNN系列的詳細程序,可查看《目標檢測 | RCNN演算法系列匯總+詳解(包括Fast, Faster)》
- YOLO官網:作者Joseph Redmon的個人網站
- YOLOv1論文地址:https://arxiv.org/abs/1506.02640
- YOLOv2論文地址:https://pjreddie.com/darknet/yolo/
- YOLOv3論文地址:https://arxiv.org/pdf/1804.02767
- YOLOv4論文地址:https://arxiv.org/abs/2004.10934
- YOLOv5的Github原始碼:https://github.com/ultralytics/yolov5
一、YOLOv1
2016年,Joseph Redmon等人提出了一種單階段(one-stage)的目標檢測網路,在 PASCAL VOC2007 的測驗集上達到了 63.4 mAP,在 448 × 448 的輸入影像上的二推理能達到 45 FPS,作者將其取名為:You Only Look Once,
- 利用整張圖作為網路的輸入,直接在輸出層回歸bounding box的位置和bounding box所屬的類別
- 雖然Faster RCNN中也直接用整張圖作為輸入,但是Faster-RCNN整體還是采用了RCNN那種 proposal+classifier的思想,而YOLOv1直接回歸,
1. 網路結構

符合一階段的卷積神經網路,由整張圖片直接到檢測目標位置和概率值,網路結構圖中沒有標s意味著默認步距stride為1,
- 網路輸入:448×448×3的彩色圖片,
- 中間層:由若干卷積層和最大池化層組成,用于提取圖片的抽象特征,
- 全連接層:由兩個全連接層組成,用來預測目標的位置和類別概率值,
- 網路輸出:7×7×30的預測結果,
2. 實作方法
在YOLOv1中,它將整張圖片輸入后平均分為S×S個網格(grid cell),當某個目標的中心落在這個網格中,那么這個網格就負責預測它,對于Faster-RCNN需要訓練一個RPN網路獲得目標候選框區域,然后再映射到特征圖上得到特征矩陣,這消耗了大量時間空間,

具體步驟:
- 輸入影像分為S×S個網格,如果某個object的中心落在這個網格中,則這個網格就負責預測這個object
- 每個網格要預測 B 個bounding box,每個 bounding box 除了要回歸自身的位置和一個值,即 (x, y, w, h) 和 confidence 共5個值,
- 每個網格還要預測一個類別資訊,記為C類,則SxS個網格,每個網格要預測B個bounding box還要預測C個categories,總的輸出就是S × S × (5×B+C)的張量,如下圖輸出結果的網路結構所示,

實際操作:
在YOLOv1的CVPR 2016論文中,圖片輸入為448×448的像素,S圖片劃分網格量=7,B每個網格預測邊框量=2,C類別個數=20,于是,網格輸出=7×7×(5×2+20)
在test的時候,每個網格預測的class資訊和bounding box預測的confidence資訊相乘,根據上一步可以預測出S×S×B個目標視窗,然后根據閾值去除可能性比較低的目標視窗,最后用NMS非極大值抑制去除冗余視窗即可得到最終的檢測結果,

該運算式含義:
等式左邊第一項就是每個網格預測的類別資訊
第二三項就是每個bounding box預測的confidence,代表了所預測的box中含有object的置信度和這個box預測準確率;其中,第二項表示如果有object落在一個grid cell里,則第一項取1,否則取0;第三項是預測的bounding box和實際的groundtruth之間的IoU值,
整體上,這個乘積即encode了預測的box屬于某一類的概率,也有該box準確度的資訊
3. 損失函式
YOLOv1損失分為三類,1.目標 bounding box坐標預測的損失,2. confidence置信度預測的損失,3.classes分類預測的損失,原論文中都是使用sum-squared error loss誤差平方和進行計算,

3.1 bounding box坐標檢測損失
對于x和y的向量都是用預測值減去真實標簽值的平方就是誤差平方和;對于w和h,先進行開根處理,再做誤差平方,這樣可以提升小目標的損失,消除大尺寸框和小尺寸框之間的差異,
開根處理原因:
下圖右側為兩個目標bbox候選框,當平移相同的寬和高后,對于小目標的IoU是明顯小于大目標的IoU的,所以不適合于IoU與x的線性關系(即類似x和y的處理),于是下圖左側的根號下的關系能夠滿足小目標IoU小,大目標IoU大的特征,

3.2 confidence和classes的損失
confidence分為含有object和不含object的損失,即正樣本和負樣本,在正樣本中,真實值為1;負樣本真實值為0,于是,confidence 損失需要計算正負樣本,而 bounding box 以及 class 損失都只計算正樣本的,正樣本的 confidence 真實值應該為預測框與真實物體框的 IoU 數值;負樣本的 confidence 真實值應該為 0,
3.3 處理目標不均衡
目標檢測問題是一個典型的類別數目不均衡的問題,在7×7的grid cell格點中,含有物體的格點一般比較少,所以需要讓含有物體的格點在損失函式中的權重更大,讓模型更加重視含有物體的格點所造成的損失,于是在bbox坐標誤差損失中代入λ_coord取值5;對于不含目標的置信度預測損失代入λ_noobj=0.5,
4. 缺點
- 對群體性的相互靠近的小目標檢測效果差,由于YOLOv1對于每個grid cell值設定預測兩個bounding box,且設定的classes類別相同,所以當群體目標聚集在一起時,檢測會出現問題,
- 當目標比例出現不一致時,即新的長寬比,預測能力很差,
- 主要的錯誤都是定位不準確,由于直接預測坐標資訊,對不常見的目標泛華能力差,
二、YOLOv2
YOLOv2作者命名為(Better, Faster, Stronger),基于YOLOv1的不足,提出了很多改進方法,主要是保持檢測速度,改善recall,提升定位的準確度,同時保持分類的準確性,
1. 網路結構
YOLOv2使用Global Average Pooling,使用Batch Normilazation來讓訓練更穩定,加速收斂,使model規范化,v2采用 Darknet-19(有19個卷積層和5個maxpooling層)作為特征提取網路,即backbone,Darknet-19整體結構如下:

Darknet-19 與 YOLOv1、VGG16網路對比:
VGG-16: 大多數檢測網路框架都是以VGG-16作為基礎特征提取器,它功能強大,準確率高,但是計算復雜度較大,所以速度會相對較慢,因此YOLOv2的網路結構將從這方面進行改進,
YOLOv1: 基于GoogLeNet的自定義網路(具體看上周報告),比VGG-16的速度快,但是精度稍不如VGG-16,
Darknet-19: 速度方面,處理一張圖片僅需要55.8億次運算,相比于VGG306.9億次,速度快了近6倍,精度方面,在ImageNet上的測驗精度為:top1準確率為72.9%,top5準確率為91.2%,
YOLOv2模型框架如下:
- Convolutional卷積層(右上側)由conv2d+BN+LeakyReLU組成;
- 基于Darknet19,移除了最后的卷積層,保留卷積大小3×3卷積核為1024的卷積層(輸出13x13x1024);
- 添加三個3×3的1024卷積核的卷積層;
- 最后輸出了一個1×1的Predictor卷積層,輸出的個數為我們的檢測,
- 并且在最后一個3x3x512層添加了一個Pass Through Layer,使得連接在最后一個卷積層之前做了特征融合,

更多具體的訓練程序,跳轉《目標檢測|YOLOv2原理與實作(附YOLOv3)》以及《深度學習之目標檢測(七)–YOLO v2理論介紹》
2. 改進方法
2.1 Batch Normalization
簡稱BN層,即批量標準化,在每一層卷積后,都增加了批量標準化(Batch Normalization)進行預處理,
BN層能夠對資料進行預處理,完成影像均衡化,解決反向傳播的梯度消失/爆炸,去噪等功能,提升訓練速度,并且起到一些正則化效果,達到了 2% mAP 的提升,可以移除 Dropout 層,
使用Batch Normalization對網路進行優化,讓網路提高了收斂性,同時還消除了對其他形式的正則化(regularization)的依賴,
關于Batch Normalization的更多資料,可以閱讀《Batch Normalization原理與實戰》 以及 《深度學習筆記(三):BatchNorm(BN)層》
2.2 High resolution classifier
YOLOv1使用ImageNet的影像分類樣本采用 224×224 作為輸入,來訓練CNN卷積層,然后在訓練目標檢測時,檢測用的影像樣本采用更高解析度的 448×448 像素影像作為輸入,但這樣不一致的輸入解析度肯定會對模型性能有一定影響,
而YOLOv2采用更高解析度的分類器,在采用 224224 影像進行分類模型預訓練后,再采用 448448 高解析度樣本對分類模型進行微調(10個epoch),帶來了4%的mAP提升,
2.3 Convolution with anchor boxes
在YOLOv1中,作者通過全連接層直接預測邊界框的位置并且做回歸;而在Faster RCNN演算法只用卷積層與Region Proposal Network來預測Anchor Box的偏移值與置信度,而不是直接預測坐標值,于是,通過預測偏移量而不是坐標值能夠簡化問題,讓神經網路學習起來更容易,對于卷積層有以下變化:
- 為了使檢測所用的特征圖解析度更高,移除其中的一個 pool 層,
- 借鑒Faster RCNN的做法,YOLOv2 移除了 YOLOv1 中的全連接層直接預測,而采用了卷積和 anchor boxes 來確定邊界框,
- 在檢測模型中,保證特征圖有奇數個位置,即YOLOv2 不是采用 448×448大小的圖片輸入,而是采用416×416大小,由于YOLOv2下采樣的步長為32,對于416×416大小,通過5個pooling后最終的特征圖大小為13×13,其特征圖的只有一個center cell中心位置,
- YOLOv2 使用了 Anchor boxes 之后,每個位置的各個 anchor box 都單獨預測一套分類概率值,這和 SSD 比較類似(但 SSD 沒有預測置信度,而是把 background 作為一個類別來處理),YOLOv1 只能預測 7 × 7 × 2 = 98 個 bounding box,而 YOLOv2 則使用 Anchor boxes 之后能預測上千個邊界框(13 × 13× num_anchors),提升召回率,

2.4 Dimension Clusters
在Faster R-CNN 以及 SSD 中,作者并沒有明確地給出采用那些作者給定的 Anchor 或者 Default Box的尺寸,基本上為工程經驗得到,于是,YOLOv2嘗試統計出更符合樣本中物件尺寸的先驗框,這樣就可以減少網路微調先驗框到實際位置的難度,
YOLOv2的做法是對訓練集中標注的Anchor Box邊框進行K-means聚類分析,以尋找盡可能匹配樣本的邊框尺寸,如果我們用標準的歐式距離的k-means,會導致尺寸大的框比小框產生更多的錯誤,
聚類的目的是使 Anchor boxes 和臨近的 ground truth boxes有更大的IOU值,因此自定義的距離度量公式為 :
centroid是聚類時被選作中心的邊框,box就是其它邊框,d就是兩者間的“距離”,IOU越大,“距離”越近,到聚類中心的距離越小越好,但IOU值是越大越好,所以使用 1 - IOU;這樣就保證距離越小,IOU值越大,
從下表可以看出,YOLOv2采用5種 Cluster(61.0) 比 Faster R-CNN 采用9種 Anchor(60.9) 得到的平均 IoU 還略高,并且當 YOLOv2 采用9種時,平均 IOU 有顯著提高(67.2),說明 K-means 方法的生成的Anchor boxes 更具有代表性,為了權衡精確度和速度的開銷,最終選擇K=5,

下圖黑藍圖形為在 VOC 和 COCO 資料集上的聚類分析結果,隨著聚類中心數目的增加,平均 IoU 值(各個邊界框與聚類中心的IoU的平均值)是增加的,綜合考慮模型復雜度和召回率,作者最終選取 5 個聚類中心作為先驗框,其相對于圖片的大小如右邊圖所示,

2.5 Direct location prediction
在 Faster R-CNN 演算法中,是通過預測 bounding box 與 ground truth 的位置偏移值,間接得到bounding box的位置,公式如下:
這個公式是無約束的,預測的邊界框很容易向任何方向偏移,因此,每個位置預測的邊界框可以落在圖片任何位置,這會導致模型的不穩定性,
為了讓網路的結果能落在這一范圍內,網路使用一個 Logistic Activation來對于網路預測結果進行限制,讓結果介于0到1之間, 網路在每一個網格單元中預測出5個Bounding Boxes,每個Bounding Boxes有五個坐標值tx,ty,tw,th,t0,他們的關系見下圖(藍色的是要預測的bounding box,黑色虛線框是Anchor box):

2.6 Fine-Grained Features
細粒度特征,可以理解成對不同層的物體預測的精細研究,YOLOv2 提出了一種 Pass Through Layer層來利用更精細的特征圖,把高解析度的淺層特征連接到低解析度的深層特征(把特征堆積在不同Channel中)而后進行融合和檢測,
具體操作是:先獲取前層的26×26的特征圖,將其同最后輸出的13×13的特征圖進行連接,而后輸入檢測器進行檢測(而在YOLOv1中網路的FC層起到了全域特征融合的作用),以此來提高對小目標的檢測能力,

Passthrough層與ResNet網路的shortcut類似,以前面更高解析度的特征圖為輸入,然后將其連接到后面的低解析度特征圖上,前面的特征圖維度是后面的特征圖的2倍,passthrough層抽取前面層的每個2×2的區域區域,然后將其轉化為channel維度,對于26×26×512的特征圖,經Passthrough層處理之后就變成了13×13×2048的新特征圖(特征圖大小降低4倍,而channles增加4倍),這樣就可以與后面的13×13×1024特征圖連接在一起形成13×13×3072的特征圖,然后在此特征圖基礎上卷積做預測,示意圖如下:

2.7 Multi-Scale Training
采用多尺度訓練,替換固定尺寸訓練,作者希望YOLOv2能健壯的運行于不同尺寸的圖片之上,所以把這一想法用于訓練model中,區別于之前的補全圖片的尺寸的方法,YOLOv2每迭代幾次都會改變網路引數,每10個Batch,網路會隨機地選擇一個新的圖片尺寸,由于使用了下采樣引數是32,所以不同的尺寸大小也選擇為32的倍數{320,352……608},最小320×320,最大608×608,網路會自動改變尺寸,并繼續訓練的程序,
在測驗時,YOLOv2 可以采用不同大小的圖片作為輸入,在 VOC 2007 資料集上的效果如下圖所示,

可以看到采用較小解析度時,YOLOv2 的 mAP 值略低,但是速度更快,而采用高分辨輸入時,mAP 值更高,但是速度略有下降,對于 544 × 544 的輸入圖,mAP 高達 78.6%,值得注意的是,這只是測驗時輸入圖片大小不同,而實際上用的是同一個采用Multi-Scale Training訓練得到的模型,
3. YOLO9000
YOLO9000 是在 YOLOv2 的基礎上提出的一種可以檢測超過 9000 個類別的模型,其主要貢獻點在于提出了一種分類和檢測的聯合訓練策略,
一般來說,檢測資料集的標注要比分類資料集打標簽繁瑣的多,所以 ImageNet 分類資料集比 VOC 等檢測資料集高出幾個數量級,在 YOLO 中,邊界框的預測其實并不依賴于物體的標簽,所以YOLO可以實作在分類和檢測資料集上的聯合訓練,
對于檢測資料集,可以用來學習預測物體的邊界框、置信度以及為物體分類,而對于分類資料集可以僅用來學習分類,但是其可以大大擴充模型所能檢測的物體種類,在訓練時,如果是檢測樣本,按照 YOLOv2 的 loss 計算誤差,而對于分類樣本,只計算分類誤差,
通過聯合訓練策略,YOLO9000 可以快速檢測出超過 9000 個類別的物體,總體 mAP 值為 19.7%,從某方面說,YOLOv2的改進策略亮點并不是很突出,但是YOLO9000算是開創之舉,
4. 網路訓練細節
由于作者在論文中沒有體現誤差,損失函式等內容,對于相關細節可跳轉《目標檢測|YOLOv2原理與實作(附YOLOv3)》 以及《YOLO v2 損失函式原始碼分析》
三、YOLOv3
2018年,作者Redmon在YOLOv2的基礎上做了一系列的改進,但是正如作者所說,這僅僅是他們近一年的一個作業報告(TECH REPORT),不算是一個完整的paper,因為他們實際上是把其它論文的一些作業在YOLO上嘗試了一下,其核心在于做大做強,再創輝煌,可跳轉視頻霹靂吧啦Wz《yolo系列理論合集》查看詳細講解,
小小將 認為,YOLOv3 最大的變化為backbone中的殘差模型以及采用FPN特征金字塔結構,
其中,在YOLOv3中保留的步驟有:
- 通過劃分grid cell單元格來做檢測,只是每次劃分的數量尺寸不一樣,
- 采用 Leaky ReLU 作為激活函式
- 進行端到端的訓練,用一個loss function損失函式完成訓練
- 保留YOLOv2中的batch normalization批量標準化處理作為正則化、加速收斂和避免過擬合的方法,
- 保留YOLOv2中的多尺度訓練,替換固定尺寸訓練,即通過采用不同解析度的影像,在速度和準確率之間選擇,
1. 網路結構
YOLOv3 的第一個改進之處就是將 backbone 替換為 Darknet-53,而在 YOLOv2 中采用的是 Darknet-19 這樣一個網路,Darknet-53 的top-1準確率相較于 Darknet-19 有比較大的提升,與 ResNet 性能相當,但是FPS即檢測速度比 ResNet 要好很多,Darknet-53 如下圖所示,YOLOv3最大的變化為使用殘差模型和采用FPN(feature pyramid networks)架構,

注:top-1和top-5準確率
模型在 ImageNet 資料集上進行推理,按照置信度排序總共生成 5 個標簽,按照第一個標簽預測計算正確率,即為 Top-1 正確率;前五個標簽中只要有一個是正確的標簽,則視為正確預測,稱為 Top-5 正確率,
Darknet-53網路結構有如下特點,如下圖所示,
- 這個網路主要是由一系列的1x1和3x3的卷積層組成;
- 將convolution卷積層升級為卷積層+BN層+激活層,即每個卷積層后都會跟一個BN層和一個LeakyReLU層;
- 沒有采用最大池化層,轉而采用步長為2的卷積層進行下采樣,即左圖框下面的那個卷積,使得輸出影像減小為原來的一半;
- 左圖中的每個方框框柱的就是一個residual殘差結構,將兩層卷積層后與主分支的輸出進行相加,即右下圖;
- 作者說因為網路中有53個convolutional layers,所以叫做Darknet-53(最后的Connected是全連接層也算卷積層),

整個v3結構里面,是沒有池化層和全連接層的,前向傳播程序中,張量的尺寸變換是通過改變卷積核的步長來實作的,比如stride=(2, 2),這就等于將影像邊長縮小了一半(即面積縮小到原來的1/4),
YOLOv3的416模型網路結構,即輸入影像尺寸為416×416,預測的三個特征層大小分別為52,16,13,結構如下圖所示:
- 其中的convolution set卷積集合由五層卷積層組成
- 通過up sample上采樣擴大尺寸為原來的兩倍
- concatenate完成了通過上采樣與來自backbone中的卷積匹配拼接
- 預測器 Conv 1×1 就是一個卷積層,三個分別輸出不同shape尺寸的feature map

2. 改進方法
2.1 多尺度預測
為了能夠預測多尺度的目標,當輸入圖片為416×416時,YOLOv3基于k-means方法對不同size的目標進行檢測(越精細的grid cell就可以檢測出越精細的物體),得到的九組預設邊界框尺寸,并將其劃分到3個尺度特征圖上,尺度更大的特征圖使用更小的anchor先驗框,和SSD類似,這些預設的框被稱為 bounding box priors,這個和 Anchor 以及 Default box 其實是一個概念,
在COCO資料集上選擇的9種Anchors的尺寸如下所示:

YOLOv3 借鑒了==FPN (feature pyramid networks)==特征金字塔的思路,Concatenate層與來自backbone里的相同特征圖大小的殘差層拼接,可參考YOLOv3網路結構,在COCO資料集(有80個分類)上進行預測時,每一個預測特征層上會張量為 N × N × [ 3 ? ( 4 + 1 + 80 ) ] ,N為特征圖大小,

由下采樣次數不同,得到的N不同,最終三個Predict(從上到下)的shape分別為:[13, 13, 255]、[26, 26, 255]、[52, 52, 255],
2.2 目標邊界框預測
下圖中虛線矩形框為先驗框,即預設邊界框,實線矩形框為通過網路預測的偏移量計算得到的預測邊界框,通過右下角的式子可以計算得出實際預測框 b 的尺寸,
注:虛線框 Anchor 的中心畫到了 cell 的左上角,它的中心坐標就是 ( c x , c y ) (c_x,c_y) (cx?,cy?),寬度和高度分別是 p w p_w pw?和 p h p_h ph?,σ是sigmoid函式,sigmoid函式目的是將預測偏移量縮放到0到1之間,能夠將預設邊界框的中心坐標固定在一個cell ( c x , c y ) (c_x,c_y) (cx?,cy?)當中,作者說這樣能加快網路收斂,

2.3 正負樣本的匹配
- positive正樣本:對每一個 ground box 會分配一個 bounding box prior,一張圖片中有幾個 GT 目標,就有幾個正樣本,并且將與 GT box 重合度最高(IoU 分數最大)的 bounding box prior 作為正樣本,可產生confidence置信度 loss、檢測框 loss、類別 loss,其中置信度標簽為 1 (亦可選擇預測邊界框與 GT box 的 ioU 分數);類別標簽對應類別為1,其余為 0,
- ignore忽略樣例:對于那些與某個 GT box 重合度超過一定閾值(論文中使用 0.5),但是又不是最大的,則它既不是正樣本也不是負樣本,直接將其進行丟棄不用于計算損失,
- negative負樣本:對于剩下的樣本(與所有 GT box 的 IoU 分數都小于 0.5)則認為是負樣本,負樣本僅僅用于計算置信度損失,置信度標簽為 0,
3. 損失函式

對于神經網路來說,損失函式的設計也非常重要,YOLOv3文中并沒有直接給出損失函式的運算式,YOLOv3的損失函式主要分為三個部分:目標置信度損失,目標分類損失,目標定位偏移量損失;其中
λ
1
,
λ
2
,
λ
3
λ_1,λ_2,λ_3
λ1?,λ2?,λ3?為平衡系數,表示三種loss之間的比例,
3.1 目標置信度損失
目標置信度可以理解為預測目標矩形框記憶體在目標的概率,采用二值交叉熵損失(Binary Cross Entropy) 方法;
o
i
o_i
oi?∈{0, 1} 表示預測目標邊界框i中是否真實存在目標,0表示不存在,1表示存在,

假設上圖右邊藍色的部分是 bounding box prior,綠色邊界框是 GT box,黃色就是預測的 4 個邊界框回歸引數作用于藍色的 bounding box prior 得到預測目標邊界框,黃色和綠色的邊界框的 IoU 就是 o i o_i oi?了,可以直接取 0 和 1,
3.2 目標分類損失
目標分類損失同樣采用的是二值交叉熵損失,同一目標可同時歸為多類,比如貓可歸為貓類以及動物類,這樣能夠應對更加復雜的場景,

需要注意的是,COCO 資料集有 80 個類別,所以類別數在 85 維輸出中占了 80 維,每一維獨立代表一個類別的置信度,作者使用 Sigmoid 激活函式替代了 YOLOv2 中的 softmax,取消了類別之間的互斥,可以使網路更加靈活,但是經過 Sigmoid 處理可能出現認為目標既是貓又是狗的情況(兩個概率都大于 0.5),所以 80 個概率之和并不是等于 1 的,
3.3 目標定位損失
采用的是真實偏差值與預測偏差值差的平方和,通過左下角的式子能夠得到目標定位損失值,

目標定位xywh也是由均方差來計算loss的,其中預測的xy進行sigmoid來與lable xy求差,label xy是grid cell中心點坐標,其值在0-1之間,所以predict出的xy要sigmoid,
4. 性能比較
通過在 COCO 資料集上正確率的對比我們可以看出,相比于其他網路而言,YOLOv3 速度非常的快,但是正確率并沒有那么高,而在滿足檢測精度差不都的情況下,YOLOv3具有更快的推理速度!

當 IoU=0.5 時候的 AP 對應的是 PASCAL VOC 的評價指標了,可見其檢測效果對于其他網路而言還是有競爭力的,且速度奇快無比,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/438059.html
標籤:AI
