目標檢測 YOLO系列v1 v2 v3

2021-09-25 18:22:27 字數 1674 閱讀 2262

人類對於物體只需要看一眼就能知道該物體是什麼,在什麼位置,人類的視覺系統是非常快速而準確的,因此如果能夠加速演算法使得計算機系統也能夠快速而準確的話,就能夠代替人而實現無人駕駛。

而目前的一些方法,rcnn系列的都是一套複雜的流程,首先生成一些可能的邊框區域,再對邊框進行分類,之後再修正邊框的位置,然後再對其他的邊框再進行處理,這個過程是非常複雜的,所以速度也非常慢。

於是想到將基於候選區域的檢測問題轉化為回歸問題,直接在圖上就能夠得到目標的類別和位置,只需要對影象處理一次。(you only look once)

改革的候選框框架主要是通過將原圖分割為s*s的網格,每個網格負責以該網格為中心的目標物體,例如圖中第2列,第5行網格是狗的中心位置,就由這個網格負責檢測出狗。主要是通過以該網格為中心,生成b個候選框來表示待測區域,其實這個網格與faster rcnn中的錨點概念類似,都是在原圖上選出一系列的處於中心位置的點或者網格,分別以這些點和網格為中心生成一些候選框來代替傳統演算法提取候選區域,當然在yolo網路中候選框位置並不會真的生成,像rcnn系列那樣講生成的候選區域乙個乙個進行分類和回歸的判定,yolo網路則是一次性**所有的格仔所包含的邊框,他們的位置以及類別。

上一節中提到了yolo網路提取候選框的方法是通過將原始的影象分割成sxs個網格,每個網格負責b個以該網格為中心的邊框。而每個邊框需要5個引數表示,分別為(x,y,w,h)表示邊框的位置區域,以及乙個置信度來表示該邊框與真實邊框重合的程度,而每個網格**的類別數目為c。

因此經過網路的最後乙個全連線層輸出的是乙個sxsx(bx5+c)維的張量,分別表示每個網格生成區域的位置、位置的置信度以及它的類別。

這樣就實現了只通過一次網路就能夠在整個影象上**出所有的目標的位置和類別,演算法的複雜程度大大減小了,從而進入實時檢測的時代。

yolo網路實現的目標檢測的演算法大體如8.2.2節,首先將原始影象重新設定大小至448x448,接著對一整個影象送入網路,網路主要包含兩個部分,其中一部分為24層的卷積層,以及2層全連線層,全連線層的輸出則為sxsx(bx5+c),在文中s=7,b=2,c=20,因此輸出的7x7x30維度的張量,**了49個網格所代表的區域,每個網格**兩個區域,每個區域中有5個引數,分別為位置資訊以及置信度,而置信度包括是否包含目標以及與真實候選框的重合程度,因此置信度為兩者的乘積(不包含目標則為0,包含目標則為重合度),以及一共20類別中每個類別的概率。因此yolo不但實現了端到端的目標檢測網路(相較於fast rcnn),並且在對原始輸入影象一次性就能**出所有區域是否包含目標以及目標的型別。

yolo網路雖然準確率有所下降,但是達到了實時檢測的標準。

相較於那些實時的目標檢測系統dpm,yolo在voc資料集上的準確率有顯著提高,可以達到63.4%,即使是更快速的迷你網路的fast yolo也有52.7%,但是與非實時的基於深度學習的目標檢測系統例如fast rcnn,準確率略有下降。

yolo網路相較於rcnn系列有關於候選區域框架的改革大大提高了檢測的速度,使得yolo網路達到了實時檢測的標準,檢測速度達到45fps,而在yolo基礎上用9層卷積層代替原先24層卷積層的迷你網路的fast yolo檢測速度可以達到155fps。

todo

todo

51nod 距離之和最小v1 v2 v3

1096 距離之和最小 基準時間限制 1 秒 空間限制 131072 kb 分值 20 難度 3級演算法題 x軸上有n個點,求x軸上一點使它到這n個點的距離之和最小,輸出這個最小的距離之和。input 第1行 點的數量n。2 n 10000 第2 n 1行 點的位置。10 9 p i 10 9 ou...

如何更優雅管理API介面版本(v1 v2 v3 )

一 前言 二 介面 版本規範 考慮到介面今後一定會進行版本迭代,因此一開始開發的時候,就需要對 進行版本考量下的 目標架構。1.控制器目錄架構 在controller下增加子集資料夾 controller v1 controller v2 等等,初始版本的介面全部放在v1下。2.介面路由設計 v1版...

Android簽名打包V1和V2的區別

事情的起因 簽字證書描述 android 7.0中引入了apk signature scheme v2,v1是jar signature來自jdk v1 應該是通過zip條目進行驗證,這樣apk 簽署後可進行許多修改 可以移動甚至重新壓縮檔案。v2 驗證壓縮檔案的所有位元組,而不是單個 zip 條目...