Как обучить готовую модель сегментации изображений реагировать на отзывы пользователей
Это вторая часть серии статей об обучении моделей сегментации изображений, чтобы модели реагировали на отзывы пользователей и корректировали свои прогнозы на основе отзывов (щелчков мыши).
В части 1 мы описали общую стратегию обучения готовых моделей сегментации изображений для реагирования на отзывы пользователей. Проблема, выявленная в конце Части 1, заключалась в том, что ручная генерация кликов, необходимых для обучения моделей, утомительна, отнимает много времени и может быть вообще невыполнима, если наборы данных очень велики и/или модели должны быть часто переучивались. Генерацию кликов нужно автоматизировать — это тема этой статьи.
Проблема
Давайте еще раз взглянем на проблему, которую мы пытаемся решить:
Левый кадр — это изображение с меткой достоверности; область интереса (RoI) была отмечена желтым цветом экспертом-человеком; это идеальная форма прогноза, который мы ожидаем от модели. Центральный кадр — это фактическое предсказание модели. На правом кадре показаны истинно положительные области (где метка и прогноз совпадают), ложноположительные области (где модель предсказывает область интереса, но в метке ее нет) и ложноотрицательные области (где модель ничего не предсказывает). , но есть реальная рентабельность инвестиций). Области TP показаны белым цветом, FP — зеленым, а FN — красным.
Чтобы управлять прогнозами модели, мы разместили положительные (зеленые) щелчки в областях TP и FN и отрицательные (красные) щелчки в областях FP, а затем обучили новые модели с включенными в изображения щелчками.
Размещение щелчков интуитивно просто для человека-оператора. Но если разбить процесс на отдельные логические шаги и критерии, он становится довольно запутанным:
- разделить области TP, FP, FN на отдельные непрерывные сегменты
- отбрасывать очень маленькие сегменты как нерелевантные
- для каждого оставшегося сегмента определите общее количество кликов, которые будут размещены внутри, в зависимости от площади сегмента.
- клики не должны располагаться слишком близко друг к другу
- клики нельзя размещать слишком близко к краю сегмента
Последние два критерия трудны. Неоднозначность («не слишком близко») и тот факт, что эти два критерия противоречат друг другу, создают впечатление, что было бы трудно генерировать клики таким образом, чтобы гарантированно сходиться к решению, имитирующему то, что сделал бы человек-оператор. делать.
Однако мы покажем, что существует такой метод, который сочетает математическую концепцию (тесселяцию Вороного) с подсказками из физики (энергия и имитация отжига) для получения желаемого результата.
Мозаика Вороного
Страница Википедии довольно хорошо объясняет концепцию, но позвольте мне добавить и здесь несколько слов.
В левом кадре у нас есть квадратная область с несколькими исходными точками. Для любой исходной точки в кадре должна быть область (плитка), в которой все пиксели ближе к этой исходной точке, чем ко всем остальным исходным точкам. В правом кадре мы показываем эти плитки, окрашенные в цвет, соответствующий семенам. Каждая плитка называется ячейкой Вороного, а результат процесса нахождения плиток называется мозаикой Вороного.
Семена в этом примере выбираются случайным образом. Тесселяция, которую мы получаем, неоднородна. Чтобы получить однородную мозаику, семена также должны быть центроидами соответствующих плиток (или близкими к центроидам) — это называется центроидальной тесселяцией Вороного. Вот очень тривиальный пример из множества возможных:
Чтобы найти координаты щелчка (начальные значения), которые привели бы к центроидальной тесселяции Вороного области или аппроксимации, можно использовать что-то вроде алгоритма Ллойда, и это очень быстро. Перед вами симулятор алгоритма Ллойда, который работает в вашем браузере в режиме реального времени. Но есть две проблемы:
- Алгоритм Ллойда обычно используется для укладки прямоугольных фигур. Неясно, как (и будет ли) это обобщаться на произвольные формы, которые нам нужны для наших моделей.
- Нам нужна центроидальная мозаика только тогда, когда формы выпуклые. Когда формы вогнуты, центроиды могут выходить за пределы области, которую мы разбиваем, а это совсем не то, что нам нужно (щелчки будут за пределами области).
Поэтому нам нужно что-то, что работает с произвольными формами, удерживает щелчки внутри области, даже если формы вогнуты, и ведет себя как алгоритм Ллойда для тривиальных прямоугольных случаев. Обобщение центроидальной мозаики Вороного, которая работает с произвольными формами, даже с вогнутыми формами. Это тема следующего раздела.
Имитация отжига для получения энергии
Рассмотрим эту мозаику:
Распределение кликов достаточно равномерное, а координаты кликов недалеко от центроидов (все фигуры выпуклые). Это неплохой дистрибутив для наших целей. Можем ли мы найти целевую функцию, соответствующую координатам щелчка, которую мы могли бы попытаться итеративно максимизировать или минимизировать, что привело бы нас к такому распределению?
Давайте посмотрим на пространство вокруг кликов:
Представьте, что каждому пикселю изображения присвоена «энергия». Только один щелчок вносит свой вклад в энергию пикселя — ближайший щелчок. Все остальные клики никак не влияют. Энергия любого пикселя обратно пропорциональна его расстоянию до ближайшего щелчка. Итак, чтобы найти энергию любого пикселя, нам нужно:
- найти ближайший щелчок
- рассчитать расстояние от пикселя до клика
- вычислить обратную величину расстояния, которая является энергией пикселя
Изображение, показанное выше, — это просто тепловая карта энергий пикселей с учетом распределения кликов. Края плиток Вороного уже обозначены самыми темными областями посередине между соседними щелчками.
Если мы вычислим общую энергию всех пикселей, а затем переместим щелчки в поисках позиций щелчков, дающих наибольшую общую энергию, приведет ли это к однородному замощению области? Собственно говоря, именно так было получено показанное выше распределение кликов:
- начать с полностью случайных координат щелчка
- вычислить общую энергию всех пикселей в интересующей области
- применить имитация отжига к координатам щелчка, чтобы найти координаты, которые максимизируют общую энергию
Полный код показан здесь. Алгоритм надежен и прекрасно справляется с вогнутыми формами — вот пример размещения кликов визуально однородным образом внутри серповидного сегмента:
Сегмент имеет более светлый оттенок синего, форму серпа, который контрастирует с темным фоном. Щелчки — самые яркие пятна.
Щелчки не приближаются слишком близко к краю сегмента, потому что это уменьшит общую энергию (пиксели за пределами края сегмента не имеют энергии). Они не подходят слишком близко друг к другу, потому что это не будет «активировать» пиксели вдали от плотной группы кликов. Алгоритм саморегулирующийся.
Примечание: эта задача похожа на задачу о покрытии вышек сотовой связи, когда вы пытаетесь разместить N вышек сотовой связи на карте так, чтобы в большинстве областей сигнал был максимально сильным.
Назад к моделям сегментации
Напомним, что мы пытаемся обучить модели сегментации изображений, чтобы они реагировали на отзывы пользователей (щелчки мыши). Общий процесс — это:
- разделить набор данных изображения на 5 раз
- обучить модель сегментации для каждой складки; это создает набор из 5 базовых моделей.
- использовать базовые модели для прогнозирования всех изображений; каждая модель делает прогнозы на изображениях, которые она не видела во время обучения
- сравнивать прогнозы с метками; извлечь все области, содержащие истинно положительные, ложноположительные, ложноотрицательные предсказания
- разделить области TP, FP, FN на смежные сегменты; отбросить самые маленькие сегменты (менее 100 пикселей или около того)
- для каждого сегмента генерируйте равномерные клики, как показано в этой статье; количество кликов зависит от площади сегмента: большие сегменты получают больше кликов, до разумного предела (4…5 или около того, для изображений размером 512x512 пикселей)
- переместите всю информацию об изображении в канал B, освободите каналы R и G, встройте клики в каналы R и G; клики для областей TP и FN находятся в канале G (положительные клики); клики для областей FP находятся в канале R (отрицательные клики)
- используя изображения, дополненные кликом, обучите новый набор из 5 моделей на тех же складках; это модели, обученные кликам, которые являются последним артефактом всего этого проекта.
Вот несколько примеров однородных кликов, сгенерированных для сегментов изображения на основе фактических прогнозов базовой модели. Мы выбрали 3 изображения из набора данных, сделали прогнозы с помощью базовых моделей и просматриваем сегменты TP, FP, FN каждого изображения. Каждый сегмент имеет более светлый оттенок синего, чем фон, а щелчки — это самые яркие пятна в каждом сегменте.
Щелчки в конечном итоге размещаются более или менее там, где их разместил бы человек-оператор: не слишком близко друг к другу, не слишком близко к краю, отдавая предпочтение объемным или широким областям в каждом сегменте. Распределение кликов кажется визуально однородным.
Последние мысли
Мы обучили готовые модели сегментации изображений реагировать на отзывы пользователей, никоим образом не изменяя их архитектуру и не переобучая их с нуля в ImageNet.
Модели, обученные кликам, не обязательно работают лучше, чем базовые модели. Обучение с помощью кликов, как показано здесь, позволяет моделям реагировать только на отзывы пользователей. Конечно, модели, обученные кликам, значительно превзойдут базовые модели на наборе данных, используемом для создания 5 тренировочных сгибов. Это связано с тем, что создание кликов приводит к утечке данных между обучением и тестированием. На данных, которые на 100% ранее не были видны, модели, обученные кликам, и базовые модели работают одинаково.
Вот еще пара примеров того, как модели, обученные кликам, реагируют на отзывы пользователей.
На видео показаны два разных изображения. На обоих изображениях видно, что модель с высокой степенью достоверности прогнозирует рентабельность инвестиций. Попытки поместить отрицательные клики в прогнозируемую область интереса не очень успешны — модель продолжает прогнозировать эту область как область интереса.
Модель принимает предложения для других областей в качестве потенциальных ROI.
В обоих случаях вы можете увидеть два вида выходных данных модели: чистая сегментация и тепловая карта. Тепловая карта — это просто карта вероятности для RoI.
Ссылки, Цитаты, Комментарии
Этот проект является продолжением моего завершающего проекта последнего семестра моей магистратуры в области наук о данных: https://github.com/FlorinAndrei/datascience_capstone_project
И краеугольный камень, и эта работа были выполнены в рамках проекта Компьютерная диагностика для ультразвуковых изображений груди (CADBUSI) в Университете Висконсин-Ла-Кросс под руководством доктора Джеффа Бэггетта. https://datascienceuwl.github.io/CADBUSI/
Репозиторий GitHub с кодом для этой статьи: https://github.com/FlorinAndrei/segmentation_click_train
Все ультразвуковые изображения, использованные в этой статье, являются частью набора данных ультразвуковых изображений молочной железы, доступного по лицензии CC BY 4.0. Ссылка на цитату:
Аль-Дхабиани, В., Гомаа, М., Халед, Х., и Фахми, А. (2019). Набор данных ультразвуковых изображений груди. ResearchGate. Получено 1 мая 2023 г. с https://www.sciencedirect.com/science/article/pii/S2352340919312181.
Другие ссылки, цитаты и комментарии:
Лю, К., Чжэн, М., Планш, Б., Каранам, С., Чен, Т., Нитхаммер, М., и Ву, З. (2022). PseudoClick: Сегментация интерактивного изображения с имитацией клика. arXiv.org. Получено 1 мая 2023 г. с https://arxiv.org/abs/2207.05282.
Се, Э., Ван, В., Ю, З., Анандкумар, А., Альварес, Дж. М., и Луо. П. (2021). SegFormer: простой и эффективный дизайн для семантической сегментации с преобразователями. arXiv.org. Получено 1 мая 2023 г. с https://arxiv.org/abs/2105.15203.
Предварительно обученные модели SegFormer в HuggingFace: https://huggingface.co/docs/transformers/model_doc/segformer
Изображения в этой статье, которые не являются частью набора данных ультразвуковых изображений груди, созданы автором.