Учебное пособие по обучению пользовательского набора данных на модели Mask RCNN: наконец-то настала ваша очередь!

Обучить настраиваемую маску набора данных RCNN

Пошаговое объяснение того, как обучить вашу модель Mask RCNN с пользовательским набором данных.

Требования

Прежде всего, просто клонируйте следующий репозиторий, это демонстрация сегментации отдельного класса. (мы также рассмотрим несколько классов).

git clone https://github.com/miki998/Custom_Train_MaskRCNN

Как упоминалось в README.md, необходимо установить mrcnn lib, что не является каноническим. Вам просто нужно будет сделать следующее:

git clone https://github.com/matterport/Mask_RCNN.git
cd Mask_RCNN
python setup.py install
cd ../
rm -rf Mask_RCNN

Помимо всего прочего, необходим начальный вес, конечно, вы можете написать свой собственный случайный инициализатор, но в нашем случае мы решили просто выбрать значение по умолчанию .h5, данное первоначальным автором. Чтобы получить вес, вы можете получить его с моего диска.

cd weights
wget https://drive.google.com/open?id=1h62_fPkdrBufw1xCaeGwm2SgLWVtFHFQ
cd ../

Использование (скрипта поезда)

После клонирования репозитория у вас должна получиться следующая структура. Все изменения, которые необходимо внести, находятся в файле train.py, поэтому, используя ваш любимый текстовый редактор, вам просто нужно будет отредактировать, а затем добавить наборы данных.

В строке 65-74 просто измените переменную категории и имена классов для нее, чтобы они соответствовали вашему набору данных (вот что написано изначально):

# define 81 classes that the coco model knowns about
Category = 'food'
class_names = [‘bread-wholemeal’, ‘potatoes-steamed’, ‘broccoli’, ‘butter’, ‘hard-cheese’, ‘water’, ‘banana’, ‘wine-white’, ‘bread-white’, ‘apple’, ‘pizza-margherita-baked’, ‘salad-leaf-salad-green’, ‘zucchini’, ‘water-mineral’, ‘coffee-with-caffeine’, ‘avocado’, ‘tomato’, ‘dark-chocolate’, ‘white-coffee-with-caffeine’, ‘egg’, ‘mixed-salad-chopped-without-sauce’, ‘sweet-pepper’, ‘mixed-vegetables’, ‘mayonnaise’, ‘rice’, ‘chips-french-fries’, ‘carrot’, ‘tomato-sauce’, ‘cucumber’, ‘wine-red’, ‘cheese’, ‘strawberries’, ‘espresso-with-caffeine’, ‘tea’, ‘chicken’, ‘jam’, ‘leaf-spinach’, ‘pasta-spaghetti’, ‘french-beans’, ‘bread-whole-wheat’]

ДОПОЛНИТЕЛЬНОЕ ПРИМЕЧАНИЕ: Очевидно, если вы хотите изменить гиперпараметры, такие как шаг обучения / количество графических процессоров на изображение или размер пакета, вот как это сделать.

class CustomConfig(Config):    
"""Configuration for training on the toy  dataset.    Derives from the base Config class and overrides some values.    """   
 
# Give the configuration a recognizable name    NAME = category     # We use a GPU with 12GB memory, which can fit two images.    
# Adjust down if you use a smaller GPU.   
IMAGES_PER_GPU = 1     
# Number of classes (including background)   
NUM_CLASSES = 1 + len(class_names)  
# Background + toy     
# Number of training steps per epoch    
STEPS_PER_EPOCH = 100     
# Skip detections with < 90% confidence    
DETECTION_MIN_CONFIDENCE = 0.9

Вам просто нужно будет изменить параметры, написанные в этой части train.py. Для получения дополнительных параметров вы можете проверить github материального порта: https://github.com/matterport/Mask_RCNN

В заключение, после помещения вашего собственного набора данных в папку набора данных (проверьте папки, чтобы узнать, что вставлять и его формат), выполнение следующей команды запускает обучение:

python3 train.py train --dataset=./dataset --weights=coco

Вы должны получить эту иллюстрацию после ввода команды:

Большое спасибо за чтение и ждите новых интересных статей! Вы можете связаться со мной в любое время для получения дополнительной информации или если вы хотите вместе поработать над этой темой. Кроме того, мне действительно поможет хороший щелчок по этой ссылке (на партнерскую программу)! Вам просто нужно будет выполнить несколько быстрых задач (просто подождите и активируйте уведомления), и все это действительно поможет мне в будущем, когда я буду получать больше контента, связанного с оборудованием!