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