【Pytorch神经网络理论篇】 33 基于图片内容处理的机器视觉:目标检测+图片分割+非极大值抑制+Mask R-CNN模型
基于圖片內容的處理任務,主要包括目標檢測、圖片分割兩大任務。
1 目標檢測
目標檢測任務的精度相對較高,主要是以檢測框的方式,找出圖片中目標物體所在的位置。目標檢測任務的模型運算量相對較小,速度相對較快。
1.1 目標檢測任務概述
目標檢測任務要求模型能檢測出圖片中特定的目體,并獲得這一目標物體的類別信息和位置信息。
在目標檢測任務中,模型的輸出是一個列表,列表的每一項用一個數組給出檢測出的標物體的類別和位置(常用檢測框的坐標表示)。
1.2 目標檢測任務模型的分類
1.2.1 單階段(1-stage)檢測模型:
主要指直接從圖片獲得預測結果,也被稱為Region-free法。相關的模型有YOLO、SSD、RetinaNet。
1.2.2 兩階段(2-stage)檢測模型:
主要指先檢測包含實物的區域,再對該區域內的實物進行分類識別,相關模型有R-CNN、Faster R-CNN,Mask R-CNN。
1.2.3 兩種分類的對比
單階段檢測模型在分類方面表現出的精度高。
兩階段檢測模型在檢測框方面表現出的精度高。
2 圖片分割:其模型大多數是兩階段
圖片分割是指對圖中的每個像素點進行分類,適用于對像素理解要求較高的場景。
2.1 圖片分割的分類
2.1.1 語義分割
能將圖片中具有不同語義的部分分開。
2.1.2 實例分割
能描述出目標物體的輪廓(比檢測框更為精細)。
2.2?目標檢測+語義分割=實例分割
🐶目標檢測:給你一張只有一條狗的圖片,輸入訓練好的模型中(假設模型包含所有類型的狗),不管狗出現在圖片中的哪個位置,它都能被檢測為狗;給你一張有兩條狗的圖片,輸入網絡,會生成兩個bbox,均被檢測為狗,無法進行個體的區分。
🐶語義分割:對所有像素進行分類,圖片中只要出現狗,都會被分為一類,同樣無法進行個體的區分。
🐶實例分割:在所有不同類的狗的像素都被分類為狗的基礎上,對不同類的狗進行目標定位,再給上狗1和狗2的標簽,這就是實例分割。
3 非極大值抑制算法(Non-Max Suppression,NMS)
3.1?非極大值抑制算法的作用
在目標檢測任務中,通常模型會從一張圖片中檢測出很多個結果,其中很有可能會出現重復物體(中心和大小略有不同)的情況。為了確保檢測結果的唯一性,需要使用非極大值抑制算法對檢測結果進行去重。
3.2?非極大值抑制算法的實現過程
1、從所有的檢測框中找到置信度較大(置信度大于某個圓值)的檢測框。
2、逐一計算其與剩余檢測框的區域面積的重疊率(IOU)。
3、按照IOU閾值過濾。如果IOU大于一定閾值,則將該檢測框剔除。
4、對剩余的檢測框重復上述過程,直到處理完所有的檢測框。
在整個過程中,用到的置信度閾值與lOU閾值需要提前給定。
3.3 IOU的概念(Intersection-over-Union)
IOU是交并比是目標檢測中使用的一個概念是產生的候選框(candidate bound)與原標記框(ground truth bound)的交疊率,即它們的交集與并集的比值。最理想情況是完全重疊,即比值為1。在多目標跟蹤中,用來判別跟蹤框和目標檢測框之間的相似度。
4 Mask R-CNN模型
MaskR-CND模型屬于兩階段檢測模型,即該模型會先檢測包含實物的區域,再對該區域內的實物進行分類識別。
4.1 檢測實物區域的步驟
- 1、按照非極大值抑制算法將一張圖片分成多個子框。這些子框被稱作描點(Anchor),錨點是不同尺寸的檢測框,彼此間存在部分重疊。
- 2、在圖片中對具體實物進行標注其坐標(所屬的位置區域)。
- 3、根據實物標注的坐標與錨點區域的IOU,計算出前景與背景。計算規則為IOU高的就是前景,IOU低的就是背景,其余的就忽略。
- 4、根據第3步結果中屬于前景的錨點坐標和第2步結果中實物標注的坐標,算出二者的相對位移和長寬的縮放比例。
- 5、最終,檢測區域的任務會被轉化成一堆錨點的分類(前景和背景)和回歸任務(偏移和縮放)。
4.1.2 區域檢測圖解
如圖2-2所示,每張圖片都會將其自身標注的信息轉化為與錨點對應的標簽,讓模型已有的錨點進行訓練或識別。
4.2?區域生成網絡
在MaskR-CNN模型中,實現區域檢測功能的網絡被稱作區域生成網絡(Regon Proposal Network,RPN)。
4.3?感興趣區域
在實際處理過程中,會從RPN的輸出結果中選取前景概率較高的一定數量的錨點作為感興趣區域(Region of Interest,ROI),送到第2階段的網絡中進行計算。
4.4?Mask R-CNN模型的完整步驟
4.4.1?Mask R-CNN模型的架構
4.4.2 Mask R-CNN模型的完整步驟
1、提取主特征,這部分的模型又被稱作骨干網絡。它用來從圖片中提取出一些不同尺寸的重要特征,通常用于一些預訓練好的模型(如VGG模型、Inception模型、ResNet模型等)。這些獲得的特征數據被稱作特征圖。
2、特征融合;用特征金字塔網絡(FeaturePyramid Network,FPN)整合骨干網絡中不同尺寸的特征。最終的特征信息用于后面的RPN和最終的分類器(classifer)網絡的計算。
3、提取ROI:主要通過RPN來實現。RPN的作用是,在眾多錨點中計算出前景和背景的預測值,并計算基于錨點的偏移,然后對前景概率較大的ROI用非大值抑制算法實現去重,并從最終結果中取出指定個數的ROl用于后續網絡的計算。
4、ROI池化:使用區域對齊的方式實現。將第2步的結果當作圖片,按照ROl中的區域框位置從圖中取出對應的內容,并將形狀統一成指定大小,用于后面的計算。
5、最終檢測:對第4步的結果依次進行分類、設置矩形坐標、實物像素分割處理,得到最終結果。
總結
以上是生活随笔為你收集整理的【Pytorch神经网络理论篇】 33 基于图片内容处理的机器视觉:目标检测+图片分割+非极大值抑制+Mask R-CNN模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图像目标分割_4 DeepLab-V1
- 下一篇: Django 模板实现(动态)图片/头像