點擊我愛計算機視覺標星,更快獲取CVML新技術
前幾天OpenCV4.0-Alpha發布,其中新增實例分割Mask RCNN模型是這次發布的亮點之一。
圖像實例分割即將圖像中目標檢測出來並進行像素級分割。
昨天learnopencv.com博主Satya Mallick發表博文,詳述了使用新版OpenCV加載TensorFlow Object Detection Model Zone中的Mask RCNN模型實現目標檢測與實例分割的應用。使用C++/Python實現的代碼示例,都開源了。
先來看看作者發布的結果視頻:
從視頻可以看出,2.5GHZ i7 處理器每幀推斷時間大約幾百到2000毫秒。
TensorFlow Object Detection Model Zone中現在有四個使用不同骨幹網(InceptionV2, ResNet50, ResNet101 和 Inception-ResnetV2)的Mask RCNN模型,這些模型都是在MSCOCO 資料庫上訓練出來的,其中使用Inception的模型是這四個中最快的。Satya Mallick博文中正是使用了該模型。
Mask RCNN網絡架構
OpenCV使用Mask RCNN目標檢測與實例分割流程:
1)下載模型。
地址:
http://download.tensorflow.org/models/object_detection/
現有的四個模型:
2)參數初始化。
設置目標檢測的置信度閾值和Mask二值化分割閾值。
3)加載Mask RCNN模型、類名稱與可視化顏色值。
mscoco_labels.names包含MSCOCO所有標註對象的類名稱。
colors.txt是在圖像上標出某實例時其所屬類顯示的顏色值。
frozen_inference_graph.pb模型權重。
mask_rcnn_inception_v2_coco_2018_01_28.pbtxt文本圖文件,告訴OpenCV如何加載模型權重。
OpenCV已經給定工具可以從給定模型權重提取出文本圖文件。詳見:
https://github.com/opencv/opencv/wiki/TensorFlow-Object-Detection-API
OpenCV支持CPU和OpenCL推斷,但OpenCL只支持Intel自家GPU,Satya設置了CPU推斷模式(cv.dnn.DNN_TARGET_CPU)。
4)讀取圖像、視頻或者攝像頭數據。
5)對每一幀數據計算處理。
主要步驟如圖:
6)提取目標包圍框和Mask,並繪製結果。
C++/Python代碼下載:
https://github.com/spmallick/learnopencv/tree/master/Mask-RCNN
原博文地址:
https://www.learnopencv.com/deep-learning-based-object-detection-and-instance-segmentation-using-mask-r-cnn-in-opencv-python-c/
長按關注我愛計算機視覺
【點讚與轉發】就是一種鼓勵