Инструменты для разметки изображений


Как мы уже видели — для решения задач распознавания объектов (будь то сортировка огурцов, подсчёт пчёл, отслеживание собаки или обнаружение белок) используются алгоритмы машинного обучения, которым для работы требуется предварительно размеченные изображения.

Рассмотрим — какие инструменты можно использовать для разметки изображений.

VGG Image Annotator (VIA)

VGG Image Annotator (VIA)

Онлайн-утилита для разметки. Реализована в виде одной страницы весом менее 400 Кб (только на HTML, Javascript и CSS). Бесплатная и простая программа для ручной разметки изображений (есть ещё аудио и видео). Удобна тем, что работает в браузере, умеет сохранять результаты разметки в форматах CSV или JSON.

Для аннотирования объектов — доступны: ограничивающие рамки (bounding boxes), ломаные линии, многоугольники, круги, овалы и точки.

Ссылки
https://www.robots.ox.ac.uk/~vgg/software/via/

Make Sense

makesense.ai

Ещё одна онлайн-утилита для разметки данных. Исходный код утилиты открыт (TypeScript). Умеет сохранять результаты в форматах: YOLO, VOC XML, VGG JSON, CSV. 

Для аннотирования доступны: прямоугольники, линии, точки и многоугольники.

Доступны две предобученных модели, которые можно использовать для предварительной разметки: модель SSD предварительно обученная на наборе данных COCO (для выделения объектов) и модель PoseNet, которую можно использовать для оценки позы человека на изображении (выделение точек скелета). Данные никуда не отправляются — модели работают прямо в браузере на TensorFlow.js (JS-версия фреймворка TensorFlow, предназначенного для обучения нейронных сетей). 

Ссылки
https://www.makesense.ai
https://github.com/SkalskiP/make-sense
A simple way of creating a custom object detection model

ImgLab

imglab

Веб-утилита для аннотирования изображений с открытым исходным кодом (HTML, JavaScript, CSS).

Для аннотирования доступны: точка, круг, прямоугольник, полигон.

Форматы сохранения: dlib XML, COCO JSON, Pascal VOC XML.

Ссылки
https://imglab.in
https://github.com/NaturalIntelligence/imglab

Другие онлайн-сервисы

Сейчас существует просто масса различных онлайн-сервисов для разметки: Supervise.ly, Labelbox.com (данные сервисы имеют бесплатную Community версию) и множество других. В основном — направлены на коммерческое применение.

CVAT

CVAT

CVAT (Computer Vision Annotation Tool) — веб-утилита для аннотирования изображений и видео с открытым исходным кодом от Intel.

CVAT поддерживает: обнаружение объектов, классификацию и сегментацию изображений.

Для аннотирования доступны: прямоугольники, многоугольники, полилинии и точки.

Ключевой особенностью CVAT являются инструменты автоматизации: поддержка  полуавтоматической аннотации (TensorFlow Object Detection API ) и интерполяции фигур между ключевыми кадрами видео.

Ссылки
https://github.com/openvinotoolkit/cvat
https://cvat.org

LabeIimg

LabeIimg

Программа на Python с графическим интерфейсом на Qt, предназначенная для маркировки объектов на изображениях с помощью ограничительных рамок.

Аннотации сохраняются в виде файлов XML в формате PASCAL VOC (формат используемый ImageNet). Также поддерживается формат YOLO.

Установить можно через pip3:

pip3 install labelImg
labelImg
labelImg [IMAGE_PATH] [PRE-DEFINED CLASS FILE]

Ссылки
https://github.com/tzutalin/labelImg

labelme

labelme

Графическая утилита для аннотирования изображений, вдохновленная LabelMe от MIT: http://labelme.csail.mit.edu.
Программа написана на Python и для своего графического интерфейса использует Qt.

Установку можно выполнить через через менеджер пакетов (но может установиться не самая свежая версия):

sudo apt-get install labelme

или через pip:

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

Запуск:

labelme  # just open gui

# single image example:
labelme image.jpg  # specify image file

labelme data_annotated/  # Open directory to annotate all images in it
labelme data_annotated/ --labels labels.txt  # specify label list with a file

Для аннотирования доступны: многоугольник, прямоугольник, круг, линия и точки. (руководство).

Для аннотации видео — его первоначально необходимо разбить на отдельные кадры (пример).

Данные сохраняются в формате JSON. Доступен экспорт данных в формате VOC или COCO (пример) для семантической сегментации или сегментации экземпляра (instance segmentation).

Ссылки
https://github.com/wkentaro/labelme

Заключение

Как видим, сейчас для разметки изображений доступно огромное число самых разных инструментов — от простых веб-утилит и множества коммерческих сервисов, до продвинутых программ, поддерживающих различную автоматизацию. 

По простоте освоения и использования можно выделить VGG Image Annotator и labelme.

Остаётся выбрать инструмент наиболее подходящий вам и приступить к работе.

По теме
Сортировщик огурцов на Arduino, Raspberry Pi 3 и TensorFlow
Программа с нейросетью для закрывания окон на компьютере при приближении начальника
Использование свёрточной сети на Raspberry Pi для подсчёта пчёл
Система компьютерного зрения отслеживает собачьи фекалии
Squirrel Soaker 9000 — автоматическая система отпугивания белок от кормушки для птиц
Проблемы применения машинного обучения для решения реальных задач

 


Добавить комментарий

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Android Arduino Bluetooth CraftDuino DIY IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна конкурс манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение