目標檢測是一種計算機視覺技術,用於識別和定位圖像中的目標。有不少檢測算法存在,這裏有一個很好的總結。git
Mask R-CNN是目標檢測的擴展,它爲圖像中檢測到的每一個目標生成邊界框和分割掩模。這篇文章是關於使用Mask R-CNN訓練自定義數據集的指南,但願它能幫助大家中的一些人簡化這個過程。github
https://github.com/matterport/Mask_RCNN/blob/master/samples/shapes/train_shapes.ipynb算法
算法的主要包是mrcnn。下載庫並將其導入到環境中。數組
!pip install mrcnnfrom mrcnn.config import Config from mrcnn import utils import mrcnn.model as modellib from mrcnn import visualize from mrcnn.model import log
mrcnn還不能與TensorFlow 2.0兼容,因此請確保您恢復到TensorFlow 1.x。由於我是在Colab上開發的,因此我將使用magic函數來恢復到TensorFlow 1.x。這也是TF被詬病的地方,兼容基本靠改。dom
%tensorflow_version 1.x import tensorflow as tf
在TensorFlow 2.0中,tf.random_shuffle被重命名爲tf.random.shuffle,從而致使不兼容問題。經過更改mrcnn代碼中的shuffle函數,可使用TensorFlow 2.0。ide
使用Colab最好把Keras到之前的版本,若是遇到錯誤的話,這樣才作,沒有的話就忽略吧。函數
!pip install keras==2.2.5
mrcnn包在接收的數據格式方面至關靈活。咱們這裏直接處理成NumPy數組。code
在此以前,cv2沒法正確讀取video17_295和 video19_1900。所以,我過濾掉了這些圖像並建立了一個文件名列表。ip
所有文章請訪問:https://imba.deephub.ai/p/3451c6607ebb11ea90cd05de3860c663開發
或關注公衆號: