Рубрики
Без рубрики

Маска RCNN Реализация для сегментации изображения | Руководство

В этой статье мы попробуем сегментацию изображения с помощью маски RCNN. Это преемник быстрее – RCNN. W… Теги с глубоким обучением, информатикой, машинным обучением, Python.

В этой статье мы попробуем сегментацию изображения с помощью маски RCNN. Это преемник быстрее – RCNN. Мы будем использовать Tensorflow-GPU == 1.15 для учебных целей. Проверьте Mask_rcnn Репозиторий GitHub. Он реализован в рамках Tensorflow, используя Resnet101. как позвоночник по умолчанию.

Что такое сегментация изображения

Сегментация изображения похожа на расширенную форму классификации. В классификации мы использовали для классификации изображений на классы. В случае сегментации изображения мы классифицируем каждый пиксель изображения в разные классы. Цель сегментации – упростить и/или изменять представление изображения в то, что является более значимым и легче анализировать.

Самоведящие машины имеют некоторую концепцию сегментации изображения для вождения.

Mask_rcnn модуль

Это реализация маски R-CNN на Python 3, Keras и Tensorflow. Модель генерирует ограничивающие коробки и маски сегментации для каждого экземпляра объекта на изображении. Он основан на функции Pyramid Network (FPN) и позвоночником Resnet101.

Как аннотировать данные

Labelme Инструмент с открытым исходным кодом для аннотаций изображений из полигенов, вдохновленных MIT этикетка мне

# Python3 on Ubuntu
sudo apt-get install python3-pyqt5  # PyQt5
sudo pip3 install labelme

Проверьте документацию Labelme для установки на Windows & Mac.

Тренировка

1. Действительно клон Mask-RCNN-реализация 2.Встановите модуль mask_rcnn.

python -m pip install git+https://github.com/matterport/Mask_RCNN

3.Create data_folder в корневом каталоге и организуйте папку ниже. Разделите данные на 70/30 для Поезд и Валь соответственно.

- Data_folder
    - train
        - img1.jpg
        - img1.json
        - img2.jpg
        - img2.json
        ...
    - val
        - img3.jpg
        - img2.json
        - img4.jpg
        - img4.json
        ...

4. Соберите конфигурацию в соответствии с вашими данными и спецификациями системы.

# Configuration
# Adjust according to your Dataset and GPU

IMAGES_PER_GPU = 2 # 1

# Number of classes (including background)
NUM_CLASSES = 1 + 1 # Background

# typically after labeled, class can be set from Dataset class
# if you want to test your model, better set it correctly based on your training dataset

# Number of training steps per epoch
STEPS_PER_EPOCH = 100

Обучение модели на пользовательских данных

python customTrain.py train --dataset=path_to_Data_folder --weights=coco

Переподготовка с последней контрольной точки

python customTrain.py train --dataset=path_to_Data_folder --weights=last

Оценка модели Mask_rcnn

python customTrain.py evaluate --dataset=path_to_Data_folder --weights=last

Проверьте модель для сегментации

pip install pixellib
import pixellib
from pixellib.instance import custom_segmentation


model_path = "Trained_Model_path"
image_path = "Image_path"
output_path = "output_path"

segment_image = custom_segmentation()
segment_image.inferConfig(num_classes= 4, class_names= ["BG", "Arduino Nano", "ESP8266", "Raspberry Pi 3", "Heltec ESP32 Lora"])
segment_image.load_model(model_path)
segment_image.segmentImage(image_path, show_bboxes=True, output_image_name=output_path)
from PIL import Image
from matplotlib import pyplot as plt

img = Image.open(output_path)
plt.figure(figsize=(12, 12))
plt.imshow(img)

Colab Notebook Например, тренировка на Сегментация микроконтроллера

Эта статья была первоначально опубликована на Codeperfectplus.

Больше статей автором

Присоединяйтесь к еженедельным обновлениям.

Оригинал: “https://dev.to/codeperfectplus/mask-rcnn-implementation-for-image-segmentation-tutorial-1503”