В этой статье мы попробуем сегментацию изображения с помощью маски 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.
Больше статей автором
- Маска RCNN Реализация для сегментации изображения на Labelme Данные аннотации
- Разверните свое первое приложение Django с Heroku
- Однослойные нейронные сети в машинном обучении (перцептроны)
- 5 советов для компьютерных программирования
- Что такое Git и Github?
- Что такое простая линейная регрессия?
- Введение в машинное обучение и его тип.
Присоединяйтесь к еженедельным обновлениям.
Оригинал: “https://dev.to/codeperfectplus/mask-rcnn-implementation-for-image-segmentation-tutorial-1503”