К старту флагманского курса по Data Science рассказываем о суперпикселях, которые улучшают сегментацию данных, и знакомим читателей с платформой Kili Technologies, в инструментах которой они реализованы. Под катом подробности и ссылка на код быстрой реализации алгоритма сегментации SLIC.
Чтобы понять, для чего нужны суперпиксели, разберёмся сначала, что такое «сегментация». Сегментация изображений — это распознавание формы объектов. При сегментации изображения каждому его пикселю присваивается класс. Возьмём, к примеру, задачу сегментации изображения для категорий «круг» и «квадрат».
В отличие от рисования ограничительных рамок или точек цель при сегментации изображения — не только узнать о существовании объектов, но и определить их положение, размеры и точную форму. С помощью интерфейса Kili Сегментируем, например, машину:
Модели ML на входе лучше получать сегментацию на уровне пикселей, а не ограничительные рамки или точки. Но создавать вокруг объектов многоугольники произвольной формы куда сложнее. Платформа Kili позволяет аннотировать любой сложный прямоугольник.
В промышленных объёмах семантическая сегментация используется, только если аннотируются объекты очень сложной формы. У ограничительных рамок соотношение сложности аннотации и временных затрат чаще всего лучше. А значит, обычно лучше соотношение результатов и затрат.
Чтобы снизить стоимость сегментации, мы интегрировали в платформу интерактивную сегментацию и суперпиксели. Они позволяют за меньшее время создавать маски сегментации (как в старом подходе или даже лучше). У нас уже есть целая статья об интерактивной сегментации на основе глубокого обучения как о вспомогательном методе аннотации.
В этой статье расскажем о суперпикселях.
Что такое «суперпиксели»?
Начнём с определения пикселя. Пиксель — это базовый строительный блок изображения, небольшой квадрат определённого цвета. Сгруппированные пиксели образуют прямоугольник изображения. При этом способов группировки пикселей много: по близости расположения, цвету и т. д.
Продуманно сгруппировав пиксели, можно улучшить аннотацию. Как? Например, в случае с подсветкой автомобиля на изображении ниже, где суперпикселем точно отображается подсветка и свет можно аннотировать одним щелчком мыши:
Чем интересны суперпиксели?
Среди способов группировки пикселей есть такие, которые действительно помогают сделать аннотирование лучше. Ускорить его позволяет семантическая группировка пикселей в суперпиксели.
В Kili мы создали инструмент «Кисть», с его помощью суперпиксели выбираются очень быстро. Интерфейс суперпикселей интегрирован с семантической сегментацией, а значит — если надо что-то подкорректировать вручную, вы сможете это сделать.
Что нас интересует при использовании суперпикселей?
Что должно быть в суперпикселях, мы уже рассказали. Но очень важно прояснить моменты, определяющие их внешний вид:
Семантика. В суперпикселях должно быть смысловое содержание, которое выражается в соблюдении последовательности форм, цветовой однородности и т. д. Должна быть возможность легко определять границы, идеально выбирая суперпиксели; так, чтобы избежать ручных корректировок.
Целесообразность форм (компактность). В суперпикселях должны быть похожие формы. Это не значит, что у всех суперпикселей должно быть одинаковое количество пикселей, но они не должны быть слишком маленькими или иметь очень сложные формы с тонкими областями1.
Градиенты цвета. Суперпиксели должны быть разделены идеальными цветовыми градиентами, определяющими границы, которые будут использоваться моделями машинного обучения наилучшим образом. Этот аспект особенно интересен, ведь такие градиенты компьютеры определяют лучше людей, поэтому границы суперпикселей эффективнее и точнее.
Скорость. При расчёте суперпикселей может требоваться большой объём вычислений. Важно проводить их в разумные сроки, избегая пустой траты времени: чтобы они оказывались быстрее аннотаций, выполняемых человеком.
Различные разрешения. Должна быть возможность менять размер суперпикселей. Определить размер бывает сложно, но можно прикинуть средний размер или общее количество суперпикселей. Меняя разрешение суперпикселя, можно сделать аннотации точнее. Поменяв разрешение, вы сможете аннотировать формы произвольного размера.
Соответствие. Когда при изменении разрешения количество суперпикселей увеличивается, границы не должны удаляться никогда, вместо этого должны только добавляться новые, а иначе часть работы потеряется при переключении разрешений, что чревато проблемами: не все алгоритмы могут предотвратить потери.
Как вычисляются суперпиксели?
Не будем вдаваться в подробности, а опишем лишь в общих чертах основные методы вычислений. Есть два главных класса алгоритмов вычисления суперпикселей: графовые и кластерные. Графовые методы интерпретируют каждый пиксель как узел графа, а его рёбра — как привязки. Затем пиксели объединяются в суперпиксели. Кластерные методы постепенно детализируют кластеры пикселей, пока не достигается соответствие заданному критерию.
Мы применяем самые современные графовые методы, постоянно совершенствуя алгоритмы и скорость суперпикселей, и адаптируем их, подбирая для каждого изображения наиболее подходящий. Хотите поэкспериментировать с суперпикселями? Тогда начните с быстрой реализации алгоритма SLIC на Python2.
Суперпиксели особенно хороши в задачах, где объекты по сравнению с остальной частью изображения пропорционально малы и имеют чётко определённые цвета, как показано ниже. Кроме того, есть интерактивный инструмент сегментации, который должен хорошо работать в большинстве случаев, когда суперпиксели неидеальны.
Как использовать это в интерфейсе Kili
На платформе Kili работать с суперпикселями просто. Через графический интерфейс или API вы создаёте проект изображения. Затем переходите в настройки проекта и добавляете задание семантической сегментации изображения с включённым суперпикселем:
Затем нажимаете кнопку start labeling («Начать применение меток»), чтобы перейти к интерфейсу создания меток. И нажимаете superpixels («Суперпиксели»), чтобы сгенерировать суперпиксели:
Затем выбираете категорию и суперпиксели, перетаскивая их или нажимая на них. Можно также поменять размер суперпикселей, управляя уровнем детализации и точностью отображения некоторых частей изображения:
Заключение
Мы твёрдо убеждены в том, что качество данных — это основа революции в области машинного обучения. Максимально использовать модели через хорошие данные — вот миссия платформы Kili.
Применение различных инструментов, таких как суперпиксели, позволяет снизить затраты на идеальную сегментацию пикселей и обучать модели на лучших данных. Дополнительную информацию об инструментах можно найти в документации.
Fast-SLIC на Github.
Полезные ссылки
[1] Schick A., Fischer M. and StiefelhagenR. Measuring and evaluating the compactness of superpixels: материалы XXI Международной конференции по распознаванию образов (ICPR2012). — 2012. — / C. 930–934.
[2] https://github.com/Algy/fast-slic
[3] Cai L., Xu X., Liew J., & Foo C. (2021). Revisiting Superpixels for Active Learning in Semantic Segmentation With Realistic Annotation Costs. А также в материалах Конференции IEEE/CVF по компьютерному зрению и распознаванию образов (CVPR) (с. 10988–10997).
Продолжить изучение искустсвенного интеллекта, чтобы научиться решать проблемы бизнеса, вы сможете на наших курсах:
Другие профессии и курсы
Data Science и Machine Learning
Python, веб-разработка
Мобильная разработка
Java и C#
От основ — в глубину
А также
n0isy
На нижней картинке видно, что колесо слилось с дорогой в один кластер. (Зачем было придумывать новое слово мне лично непонятно.)