作者主頁(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客
本文網址:https://blog.csdn.net/HiWangWenBing/article/details/122118894
目錄
前言說明:
第1章 目標檢測
1.1 什么是目標/物體(Object)
1.2 目標檢測(Object detect)
1.3 一步(one stage)與兩步(Two stage)
1.4 分類(Classfic)與回歸(Regression)
第2章 輸入與網格、方框
2.1 網格Grid或Cell(這是YOLO的演算法的基礎)
2.2 方框(坐標)
2.3 真實的方框、位置(Ground truth)
2.4 邊界框(Bounding Box)
2.5 先驗框(prior bounding box)與錨點(anchor)
2.6 最終框(Final detectioin)
2.7 交并比IoU(Intersection-over-Union)
第3章 網路與訓練
3.1 網路的基本架構
3.2 感受野與目標的大小的關系
3.3 預測物體與真實物體之間位置誤差Loss或距離Distance?
第4章 結構化輸出
4.1 置信度(Confidence)
4.2 回歸問題的結構化輸出(Structure)與非結構化輸出
4.3 非極大值抑制
前言說明:
本文匯集了所有YOLO版本(V1~V5)中最核心的概念與思想,值得深入學習,
第1章 目標檢測
1.1 什么是目標/物體(Object)
對于一張圖片,目標是指除了背景之外的所有物體物件,
至于哪些是背景,哪些是目標,是通過訓練樣本的標注,人為指定的,即影像中存在的物體物件,但是能檢測哪些物體會受到人為設定限制,
1.2 目標檢測(Object detect)

目標檢測,也叫目標提取,是一種基于目標幾何和統計特征的影像分割,
它將目標的分割和識別合二為一,其準確性和實時性是整個系統的一項重要能力,
尤其是在復雜場景中,需要對多個目標進行實時處理時,目標自動提取和識別就顯得特別重要,
目標檢測中能檢測出來的物體取決于當前任務(資料集)需要檢測的物體有哪些,假設我們的目標檢測模型定位是檢測動物(牛、羊、豬、狗、貓五種結果),那么模型對任何一張圖片輸出結果不會輸出鴨子、書籍等其它型別結果,
目標檢測主要分為4個主要的子功能:
(1)目標分割:把目標從圖片的背景中分離出來,
(2)目標定位:對目標的在整個圖片中的位置進行坐標定位,
(3)目標分類:實際上是目標識別,識別目標屬于哪一種型別的物件,
(4)目標統計:對圖片中的目標的總數進行統計,
1.3 一步(one stage)與兩步(Two stage)
為了完成目標的檢測,有兩大主流的方法:
一種稱為Two stage,這是先出現的方法,
另一種方法稱為one stage,這是后出現的方法,
(1)Two stage =》 Faster R-CNN, Mask R-CNN系列為代表,

Two stage分為兩步實作 目標檢測:
- 先通過各種大小的預選框選中圖片中的區域 =》 分割、定位
- 然后通過影像分類的方法判斷預選框選中圖片中的區域是否屬于某種分類的物體 =》 分類問題
(2)One stage =》YOLO系列為代表,

One stage分為一步實作目標檢測:
區域的分割與目標的檢測一步完成,用一步就可以同時獲得圖中所有目標的分割、定位與分類,
One stage不存在一個獨立的對影像進行分類的階段,
1.4 分類(Classfic)與回歸(Regression)
(1)所謂分類問題:就是給定一組輸入資料,輸出單一、離散值的問題,就是分類問題,

因此,Two stage的方法實際上是分類問題,先進行分割,對分割的影像做影像分類,這就是分類問題,
(2)所謂回歸問題:
回歸,指研究一組隨機變數(Y1 ,Y2 ,…,Yi)和另一組(X1,X2,…,Xk)變數之間關系的統計分析方法,又稱多重回歸分析,通常Y1,Y2,…,Yi是因變數(不一定是單一因變數),X1、X2,…,Xk是自變數,
回歸分析是一種數學模型,當因變數和自變數為線性關系時,它是一種特殊的線性模型,
最簡單的情形是一元線性回歸,由大體上有線性關系的一個自變數和一個因變陣列成;模型是Y=a+bX+ε(X是自變數,Y是因變數,ε是隨機誤差)
回歸主要的種類有:線性回歸、曲線回歸、二元logistic回歸、多元logistic回歸,
YOLO是One Stage,它對物體的分割、定位、分類是一步完成的,即輸入一張圖片(X1, X2......Xn), 經過YOLO網路的映射,直接得到(Y1, Y2, ......Yn), 其中Y1, Y2,Y3, Y4表示物體的方框坐標, Y5表示物體的型別.........
第2章 輸入與網格、方框
2.1 網格Grid或Cell(這是YOLO的演算法的基礎)

為了對圖片中的物體進行定位,首先就要對物體進行分割,在一張圖片中,物理的位置實際上是任意、不確定的,為了使得不確定性問題轉換為確定性問題,YOLO采用了劃分網格的方法:
(1)先把一張圖片,劃分為S * S個網格,如 7 * 7的網格(S=7),每個網格稱為grid或Cell
(2)然后以某個網格的中心為中心,輻射出去B個框,框的數量,不同版本的演算法,B的數量不同;框的形狀可是正方形,也可是長方形;但框的尺寸是不確定的,是有網路預測的,在打標簽時,則是有標簽人員指定的,這樣,整個圖片被分割成:N = S * S * B個框,
(3)后續的目標檢測和分類,就基于N個框進行的,N決定了一個影像中,所有檢測到的最大的object的數量,
2.2 方框(坐標)

在目標檢測中,是通過方框來標識物理的形狀與位置的,
為什么需要通過方框而不是物理的輪廓來標識呢?原因如下?

(1)簡化設計:不同問題的形狀不一樣,通過方框來標識問題的位置,提供了一個統一的方法,而不是通過物體自身的輪廓來標識,
(2)簡化資訊量:方框相對于物體的輪廓,只需要少量的資訊就可以標識:比如通過對角的兩個點的坐標就可以標志,或通過中心點的坐標 + 長度 + 寬度就可標識,
為什么不通過圓來標識?
(1)圓的計算比較麻煩
(2)有些問題需要長方形的,就需要通過橢圓來標識,橢圓更加復雜,
方框的標識:
- 中心點的位置坐標(x,y)
- 方框的寬度W
- 方框的高度H
2.3 真實的方框、位置(Ground truth)

ground truth的原意是指:地面實況,地面實況表示在地球表面所做的關于遙感研究的觀測,通常用地面實況來檢驗通過傳感器資料所做出的判讀的準確性,
這里是指,物體真實所在的方框或人工標注的方框,
2.4 邊界框(Bounding Box)

在預測程序中用到的所有框,我們都稱為邊界框Bounding Box,由于一張圖片中,會劃分出無數的不同位置,不同尺寸的邊界框,因此邊界框中不一定有物理存在,
2.5 先驗框(prior bounding box)與錨點(anchor)
關于先驗框,有的paper(如Faster RCNN)中稱之為anchor(錨點),有的paper(如SSD)稱之為prior bounding box(先驗框),實際上是一個概念,
通常,為了覆寫更多可能的情況,在圖中的同一個位置(網格),以某個網格為中心點,我們會預設幾個不同尺度的先驗框,如下圖所示:

不同的演算法或網路,先驗框的個數,是預先設定好的,網路構架好之后,先驗框的個數就確定下來了,但先驗框的尺寸(長度和寬度)的初始值和最終值卻不是固定的,
(1)驗框的個數:有網路和演算法決定
(2)驗框的位置:有網格的位置決定
(3)初始值:可以是隨機值,也可以是根據樣本資料中的實際框的大小,進行聚類之后框的大小進行初始化,提升網路訓練的速度,
(4)最終值:通過訓練獲得,
2.6 最終框(Final detectioin)

在去除掉不必要的框之后,剩下的就是最終物體檢測框:
- 去掉交并不符合要求的框(交并比低于某個門限)
- 去除掉沒有物體(置信度低于某個門限)
2.7 交并比IoU(Intersection-over-Union)
交并比是目標檢測中經常使用的一個概念,是產生的候選框(candidate bound)與原標記框(ground truth bound)的交疊率,即它們的交集與并集的比值,最理想情況是完全重疊,即比值為1,

交并比越接近1,表示預測框與真實框越近,
交并比越接近0,表示預測框與真實框越遠,
第3章 網路與訓練
3.1 網路的基本架構

3.2 感受野與目標的大小的關系
(1)什么是感受野

(2)感受野與物體大小的關系
感受野越大,越方便檢測較大尺寸的物體,
感受野越小,越方便檢測較小尺寸的物體,
感受野與影像中物體的尺寸不一致時,就容易檢測不到物體
- 感受野大,影像尺寸小

在高空中看城市,感受野很大,但就很難找到小目標,
- 感受野小,影像尺寸大

顯微鏡下,就很難看到人體的整體形態,
(3)動態或多感受野
能夠同時對一張圖上不同大小的目標進行檢測,就需要設計出多個不同感受野大小的網路,且不同的感受野有不同的輸出,
3.3 預測物體與真實物體之間位置誤差Loss或距離Distance?
(1)方法1:利用幾何距離求兩個框的距離Loss

(2)方法2:利用交并比IoU求兩個框的距離Loss
IoU表明了預測框與真實框之間相似度, 1:表示完全一致,0:表示完全不一致,
Loss = 1 - loU
訓練優化的目標是使得IoU最小,
(3)其他Loss

第4章 結構化輸出
4.1 置信度(Confidence)

是指某個方框內,是物體、是檢測目標的可能性有多大,
置信度是目標檢測的第一個指標,
符合置信度要求的目標,再進一步判斷是某種分類目標的可能性,
如上圖:
方框1:置信度接近于0,是酒瓶或人臉的可能就無從談起,
方框2:置信度接近于80%,是白酒的可能性是90%,是啤酒的可能性18%,人臉的可能性1
方框2:置信度接近于90%,是白酒的可能性是1%,是啤酒的可能性2%,人臉的可能性96%
在實際中,每個方框都會有一個置信度,我們需要設定,大多大置信度的方框,我們才會挑出來,認為這是一個物體或目標,以過濾掉一些不必要的視窗,如設定在90%置信度的視窗,我們才會關心這個視窗內是什么類別的物體,
4.2 回歸問題的結構化輸出(Structure)與非結構化輸出
回歸問題是(X1、X2,…,Xk) 到 (Y1 ,Y2 ,…,Yi)的映射關系,
(1)非結構化輸出:
輸出的資料,沒有按照一定的邏輯關系進行組織在一起,而是各自獨立的離散輸出,稱為非結構化輸出,比如,輸入一張圖片,輸出另一張圖片的GAN網路,就是屬于非結構化輸出,

(2)結構化輸出:
結構化輸出,是指輸出的資訊,有嚴格的結構與布局,YOLO網路就是結構化輸出,
其輸入是一張圖片,輸出是一個組結構化的資料:
- 物體對應的方框的坐標1(X1, Y1)
- 物體對應的方框的坐標2(X2, Y2)或 (Width,Height)
- 方框中是否包含物體的概率
- 目標的實際分類的概率

4.3 非極大值抑制

當多個不同中心點的框標注到同一個物體時,把符合交并比門限的框,按照置信度排序,抑制掉置信度為非極大值的框,
作者主頁(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客
本文網址:https://blog.csdn.net/HiWangWenBing/article/details/122118894
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/394100.html
標籤:其他
上一篇:下雪啦 也用Matlab實作大雪紛飛 Matlab雪花
下一篇:OpenCV----簡單物件分類
