使用 Mask R-CNN、GrabCut 和 OpenCV 進行圖像分割

 圖像分割在計算機視覺任務中起著至關重要的作用,使機器能夠在像素級別理解和分析視覺內容。它涉及將圖像劃分為不同的區域或對象,以促進對象識別、跟蹤和場景理解。在本文中,我們探討了三種流行的圖像分割技術:Mask R-CNNGrabCut 和 OpenCV。

讓我們了解一下,什么是 Mask R-CNN 和 GrabCut 的圖像分割?

1 什么是 R-CNN?

R-CNN代表基于區域的卷積神經網絡。它是一個開創性的對象檢測系統,將對象定位和識別結合到一個端到端的深度學習框架中。

RCNN-Geeksforgeeks?

使用 Mask R-CNN、GrabCut 和 OpenCV 進行圖像分割的圖2 

R-CNN

RNN 可以概括為以下幾種方式。

· 區域建議:最初,區域建議算法(如選擇性搜索)會在圖像中生成一組可能包含感興趣對象的潛在邊界框區域。這些區域用作候選對象位置。

· 特征提取:然后,每個區域提案都會被單獨裁剪并調整為固定大小,并通過預先訓練的 CNN(例如 AlexNet 或 VGGNet)傳遞。CNN 從區域中提取高級特征,將其轉換為固定長度的特征向量。

· 分類和定位:從 CNN 獲得的特征向量被饋送到單獨的全連接層中。分類層預測區域中存在不同對象類別的概率,而回歸層細化邊界框的坐標,從而提高定位精度。

· 非極大值抑制 (NMS):為了消除冗余檢測,將應用非極大值抑制。它刪除了重疊的邊界框,只為每個對象實例保留最可信的檢測。

2 掩碼 R-CNN

掩碼 R-CNN(基于掩碼區域的卷積神經網絡)是更快的 R-CNN 對象識別框架升級,增加了執行實例分割的功能。該研究由 Kaiming He、Georgia Gkioxari、Piotr Dollár 和 Ross Girshick 在 2017 年出版的著作《Mask R-CNN》中提出。

實例分割的任務不僅包括檢測圖像中的對象,還包括在像素級別分割每個對象實例,從而為每個檢測到的對象提供二進制掩碼。掩碼 R-CNN 在 Faster R-CNN 的兩階段架構上開發,第三個分支用于像素級分割掩碼。

以下是 Mask R-CNN 的基本功能和組件:

1.         區域提議網絡 (RPN):掩碼 R-CNN 使用 RPN 生成區域提議,就像 Faster R-CNN 一樣。RPN 生成可能包含感興趣對象的候選邊界框。

2.         感興趣區域 (RoI):掩碼 R-CNN 引入了 RoI 對齊,這是一種更準確的技術,用于對齊區域建議內的像素級特征,而不是更快的 R-CNN 中使用的 RoI 池化。RoI Align 確保從原始圖像特征圖中準確提取像素級特征,無需量化。

3.         實例分割:更快的 R-CNN 使用兩個分支:分類和邊界框回歸。掩碼 R-CNN 添加了第三個分支,用于預測每個區域提案的分割掩碼。此分支使用 RoI 對齊特征作為其輸入,為每個識別的對象生成一個二進制掩碼。

3 GrabCut 抓取

GrabCut 是一種經典的前臺提取算法,用戶交互最少。它采用一個輸入圖像和一個用戶定義的邊界框,該邊界框將前景對象作為其輸入(此處 dog 是前景對象)。然后,它會生成一個優化的分段蒙版,將前景對象與背景分開。

GrabCut-Geeksforgeeks?

使用 Mask R-CNN、GrabCut 和 OpenCV 進行圖像分割的圖4 

GrabCut 抓取

通過基于提供的邊界框對前景和背景區域進行初步估計,使用高斯混合模型 (GMM) 通過迭代更新像素標簽來對前景和背景進行建模,從而提高分割的準確性。GrabCut 算法的最終輸出是前景和背景區域分開的蒙版圖像。

?

4 為什么同時使用 GrabCut 和 Mask R-CNN 進行圖像分割?

以下內容為付費內容,請購買后觀看

App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

3