博主簡介:努力學習的22級本科生一枚 🌟?
博客主頁:羊小豬~~-CSDN博客
內容簡介:探索AI算法,C++,go語言的世界;在迷茫中尋找光芒?🌸?
往期回顧:yolov5基礎–一步一步教你訓練自己的數據集-CSDN博客
文章目錄
- 1. 基礎概念
- 1.1 目標檢測定義
- 1.2 圖像識別任務
- 1.3 目標檢測核心問題
- 1.4 物體檢測概述
- 1.5 錨框
- 概念
- IoU–交并比
- 賦予錨框標號
- NMS
- 2. 評價指標
- 2.1 TP、TN、FP、FN
- 2.2 precision和recall
- 2.3 置信度
- 2.4 AP和mAP
- 3. 參考資料
1. 基礎概念
1.1 目標檢測定義
📚 一句話,找出圖像中感興趣的物體,確定其位置和類別。
由于物體類別不同,其形狀、外觀、姿態都不同,而且還受環境的影響,故在cv領域,目標檢測一直都是一個很熱門的話題。
1.2 圖像識別任務
- 分類:解決“是什么”,給一張圖判斷包含什么類別物體;
- 定位:解決“在哪里”,即定位目標的位置;
- 👀 目標檢測“:解決是什么,在哪里”,定位這個目標的位置并且知道目標檢測的物體的位置,本人感覺是分類和定位的結合體;
- 分割:解決“每個像素點屬于哪個目標物體”;
1.3 目標檢測核心問題
-
位置的任意性,目標可以出現在圖片的任何位置;
-
大小的多樣性,同一張圖像可能同時出現多個不同或者相同的目標,但是他們大小差異大;
-
形態的差異性,同一目標的形態差異可能很大,故同一個物體在目標檢測中可能形狀各部相同;
1.4 物體檢測概述
🐶 目標檢測任務:找出每個物體,類別標注出來,還需要找出具體的位置,位置通常用邊緣框表示。
邊緣框概念
用一個邊框框主一個物體,如圖:
這個圖要注意一下:坐標系和普通不太一樣,主要是坐標。
所以,如果物體很多,那需要的成本也是需要很高的。
目標檢測數據集
- 每一行表示一個物體
- 圖片文件名,物體類別,邊緣框
1.5 錨框
概念
📄 用李沐老師的話說:就是計算機視覺的算法生成的一些框用來預測變化的框。
一類目標檢測的算法是基礎錨框的,如圖:
提出多個框(錨框),首先做分類,是否有需要的目標物體,如果有則以這個框為主移動,直到框住的是目標物體,即真實的邊緣框。
IoU–交并比
👀 上面提到,物體檢測首先是用多個框框物體,所以這就涉及到如何進行不同框合并的問題,因為對于一個物體來說(假設他比較大哈),那么在他附近的圖相識度一定很高,故需要進行框的合并。
Jacqard
指數是衡量兩個框的相似度。
賦予錨框標號
🔬 假設:一個沒有訓練的模型,每個像素都需要生產幾個錨框;
📚 假設結果:
- 這樣就造成了一張圖片需要生成大量的錨框,導致大量的負類樣本框(框住的不是目標物體);
- 無論圖片物體多還是少,對于需要預測的一個物體來說,這個模型在這種圖片分類只有兩種,一個是目標物體,一個是其他,故,這里就需要一個標注的東西,來標注生成的錨框是目標物體來說其他;
給錨框分配對應的真實框
📘 以李沐老師上課圖所示:
提示:本文給圖片進行標號,從左到右為圖1,圖2,圖3。
👀 圖片描述,以圖片1為例,列向表示真實物體的邊緣框,行表示生產的錨框。
🍲 步驟:
- 先計算出所有的錨框和真實框的IoU,IoU值填入對應的格子中,;
- 找到矩陣中最大的元素,如圖1,假設最大值為x23的框,說明錨框2和邊緣框重合度最高,即用錨框2代表真實邊緣框3;
- 每次找到后,將那一行、列刪除,繼續重復步驟2.
NMS
預測時,傳入一張圖片,模型依然生成一大堆框,然后會根據訓練出來的偏移等參數預測錨框;這些框,會有很多重疊的類似的框,圍著同一個目標輸出;所以,就需要一個算法來去重,NMS
就是其中之一。
🔬 分析,以狗分析。
- 第一步,選取預測概率最大的,這里是
dog=0.9
; - 第二步是去除,就是去除重復面積大于某一個IoU值的預測,這里出去的是
dog=0.8,dog=0.7
,這樣就剩下一個框,就是第一步選中的; - 重復第二步操作。
2. 評價指標
2.1 TP、TN、FP、FN
這四個是分類最常用的了,無論是圖像分類還是文本分類,都用這幾個作為評價指標。
👀 T或者F代表的是該樣本是否被正確分類,P或者N代表的是該樣本被預測成了正樣本還是負樣本。
TP(True Positives)
意思就是被分為了正樣本,而且分對了,TN(True Negatives)
意思就是被分為了負樣本,而且分對了FP(False Positives)
意思就是被分為了正樣本,但是分錯了(事實上這個樣本是負樣本)FN(False Negatives)
意思就是被分為了負樣本,但是分錯了(事實上這個樣本是正樣本)
一般對于分類來說,一般都會制作一個混淆矩陣,以上指標都很直觀的展示出來了。
2.2 precision和recall
這個也是分類的常用指標。
precision
👀 解釋:分類器分類的正類占總樣本正類的比例,說白了就是分類模型預測為正的占總體樣本的比例;
recall
👀 解釋:分類器認為的正類樣本且確實是正類的樣本占所有樣本中確實是正類樣本的比例。
2.3 置信度
這個是一個統計學的概念,舉個例子,一個樣本中:
如果說置信度設置為0.95的話,那么目標檢測算法將把1設置為正樣本,其他都是負樣本。
2.4 AP和mAP
AP其實就是precision和recall的組合畫出的圖像,如下圖所示:
AP值就是上圖畫的那條曲線下的面積,面積越大,代表模型效果越好,這個和AUC值我感覺很像。
mAP就是AP的平均值。
3. 參考資料
- 【41 物體檢測和數據集【動手學深度學習v2】】https://www.bilibili.com/video/BV1Lh411Y7LX?vd_source=1fd424333dd77a7d3e2e741f7d6fd4ee
- 【42 錨框【動手學深度學習v2】】https://www.bilibili.com/video/BV1aB4y1K7za?vd_source=1fd424333dd77a7d3e2e741f7d6fd4ee
- 簡單理解錨框(anchor box)生成過程 - 知乎
- 《目標檢測藍皮書》第5篇 目標檢測基礎-CSDN博客