Шаг к автонастройке параметров

Введение: Что такое сегментация изображения?

Сегментация изображений — одна из наиболее известных и фундаментальных технологий в области компьютерного зрения и киберфизических систем, доступных сегодня. С растущими потребностями в автоматизации, включая роботов и автономные транспортные средства, крайне важно иметь возможность получать визуальные данные и отличать интересующий объект от ненужных объектов или фона. Однако из-за сложной природы и потребности в точности все еще существует потребность в долгих и утомительных часах человеческих усилий по маркировке или ручному контурированию края для сегментации. Методы сегментации изображений, разрабатываемые сегодня, подкреплены как улучшенными алгоритмами, так и увеличением количества наборов данных, чтобы сделать более точную сегментацию быстрее и проще.

Графические методы

Существует несколько методов кластеризации. Во-первых, алгоритм k-средних итерирует
, чтобы найти центроиды, которые делят набор данных на k различных кластеров. Кроме того,
иерархическая кластеризация начинается с обработки каждого наблюдения как отдельного кластера. Затем он многократно выполняется, чтобы определить два ближайших друг к другу кластера и объединить два наиболее похожих кластера. Методы на основе графов также можно рассматривать как разновидность методов кластерного машинного обучения. Однако основа кластеризации на основе графов проистекает из теории спектральных графов. По сути, «граф» — это отношения между пикселями, объединенными в вершины и ребра. Малик и Ши, основываясь на методе спектральной кластеризации, разработали свой метод нормализованного разреза [1]. Это важный документ для сегментации изображений, который помог улучшить автоматическую сегментацию. Несмотря на свою эффективность, на основе метода на основе графов существовала проблема, заключающаяся в больших требованиях к памяти из-за генерации графов. Чтобы смягчить очевидный недостаток графового метода, Фельценшвальб разработал эффективный механизм, который почти линеаризовал вычислительную эффективность в зависимости от количества пикселей: O(mlog(m))[2].

Описание набора данных

Несмотря на область исследования, компьютерное зрение и обработка изображений, включая сегментацию изображений, применяются во многих областях исследований, включая науку об окружающей среде, биологию, инженерию и любые исследования, связанные с анализом цифровых фотографий или видео. Чтобы решить существующую реальную проблему, для этого проекта были выбраны данные из конкурса Kaggle: Sartorius — Cell Instance Segmentation[7].

Данные, используемые для проекта, представляют собой цифровые фотоматериалы световой микроскопии с аннотациями (606 фотографий) и файл csv с идентификаторами и масками для всех обучающих объектов. Цель проекта Kaggle — иметь точную сегментацию экземпляров клеток, чтобы помочь в эффективном открытии лекарств. Эта проблема чрезвычайно сложна из-за того, что нейронные клетки имеют очень уникальную, неправильную и вогнутую морфологию. Таким образом, объем проекта сужается, чтобы проверить жизнеспособность метода на основе графов, чтобы лучше понять преимущества и ограничения, а также расширить его будущее применение на глубокие модели CNN [4]. Основная цель проекта — сопоставить каждое изображение с оптимальными параметрами для создания набора данных, который может автоматизировать настройку методов сегментации на основе графа.

Для достижения этой цели важно понимать данные, данные для изображения. Чтобы оптимизировать параметры настройки для сегментации на основе графа, необходимо знать наземную правду. В файле csv, полученном из данных, у нас есть аннотация (маска) для каждого изображения. Однако важно отметить, что некоторые аннотации плохо аннотированы. Следовательно, существует врожденное ограничение из-за предоставленных исходных данных. Аннотации (маски), данные в CSV-файле, представлены в форме Run-Length Encoding (RLE), которая представляет собой форму сжатия данных без потерь, когда последовательности данных хранятся в виде единого значения данных и количества, в данном случае для области маски начальный пиксель, с которого начинается маска, и счетчик добавляется для эффективного сжатия. Однако выходные данные функции Felzenszwalb, используемой из API, представлены в форме логической маски. Поэтому было важно использовать преобразователь RLE в маску или механизм преобразования, чтобы обеспечить простое сравнение и количественное выражение значения совпадения в балл. Используемая конверсия была от одного из конкурентов в Kaggle [5].

Методы

В этом проекте в основном использовался эффективный основанный на графах метод Felzenszwalb, который предоставляется в sci-kit image API (skimage-segmentation.felzenszwalb). В этой функции есть три основных настраиваемых параметра (масштаб, сигма и min_size). В исходной статье Фельценшвальба scale (описанный в статье как k) устанавливает масштаб наблюдения, другими словами, большее значение scale приводит к предпочтение более крупным компонентам [2]. Параметр sigma — это параметр фильтра Гаусса для компенсации цифровых артефактов. Наконец, min_size — это параметр минимального размера большого двоичного объекта для маскирования. Цель этого проекта состоит в том, чтобы автоматизировать выбор этих параметров, чтобы получить максимальную оценку пересечения над объединением в нашем наборе данных.

Результаты: оценка Intersection over Union (IoU)

Качественный анализ

Метрика оценки нашей развертки сегментации была выполнена путем сравнения оценки IoU, полученной в результате сравнения наземной маски истинности и прогноза (Felzenswalb). В коде Python это можно объяснить несколькими строками ниже, где res4 представляет предсказанную маску.

intersection = np.logical_and(mask, res4)
union = np.logical_or(mask, res4)
iou_score = np.sum(intersection) / np.sum(union) [6]

Когда мы видим рисунок 2, который находится над текстом, случайный выбор параметров приводит к хаотическому поведению сегментации. При сравнении с рис. 3, где развертка параметра полная и имеет «оптимальную» сегментацию, качественно совпадает на большей части с заданными данными маски. Это выглядит довольно простой задачей, так как настройка этих параметров может быть легко выполнена и человеческим трудом. Однако, учитывая тот факт, что ручная настройка трех разных параметров займет много времени у человека, чтобы сделать это с гораздо меньшей точностью, возникает необходимость в автоматизации этого процесса.

Количественный анализ

В ходе развертки/анализа мы использовали 10 случайных фотографий для поиска оптимальных параметров настройки и IoU. В таблице 2 мы видим, что средний балл IoU составляет 0,4049 со стандартным отклонением 0,053. Однако очевидно, что в зависимости от конкретного изображения значение параметра будет меняться в зависимости от характеристик изображения. Эта взаимосвязь между изображением и параметрами, обеспечивающими оптимальную оценку IoU, слишком сложна для определения. Следовательно, существует необходимость ввести регрессионную модель, которая может определить эту сложную взаимосвязь.

Исходя из анализа среднего IoU 0,4049, текущая модель обеспечивает «плохую» производительность. Тем не менее, с качественными данными текущий метод по-прежнему обеспечивает хорошую отправную точку для сегментации изображения. Когда настройка автоматизирована, ручные усилия человека могут значительно сократиться. Кроме того, некоторые ограничения, которые были установлены при расчете IoU, включают 1) заданные данные (ошибки аннотации) 2) форма аннотации имеет сложную морфологию.

Заключение и будущие работы

В заключение, результаты, показанные в этом проекте, обеспечивают хорошую отправную точку с разумной оценкой IoU, которая упрощает утомительную работу по ручной настройке для существующих графических методов. Будущая цель этого проекта — создать быстрый автотюнер для метода сегментации Фельзеншвальба с использованием сверточной нейронной сети (CNN). С автонастройкой, основанной на графе нейронных клеток, первоначальная сегментация, автоматизированная автоматически настроенной сетью, могла бы стать надежной отправной точкой для людей, занимающихся сегментацией изображения. Дальнейшее применение может включать, подобно популярным методам машинного обучения, основанным на физике, методы на основе графов, используемые в качестве вспомогательной отправной точки для глубокой CNN для более быстрой сходимости и более высокой точности. В недавней литературе, посвященной методам машинного обучения, основанным на физике, было показано, что предоставление основанных на модели границ для нейронной сети, управляемой данными, работает очень хорошо [3]. Аналогия может быть применена к сегментации изображений, поскольку наша работа является границей на основе модели для глубокой CNN.

Посмотреть видео-презентацию этой статьи можно по следующей ссылке.
https://youtu.be/DY64VjbOQag

Рекомендации

[1]Jianbo Shi и J. Malik, «Normalized cuts and image segmentation», in IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 22, нет. 8, стр. 888–905, август 2000 г., doi: 10.1109/34.868688.

[2]Felzenszwalb, P.F., Huttenlocher, D.P. Эффективная сегментация изображений на основе графиков. Международный журнал компьютерного зрения 59, 167–181 (2004 г.). https://doi.org/10.1023/B:VISI.0000022288.19776.77

[3]Карниадакис, Г.Э., Кеврекидис, И.Г., Лу, Л. и др. Машинное обучение с учетом физики. Nat Rev Phys 3, 422–440 (2021). https://doi.org/10.1038/s42254-021-00314-5

[4]https://towardsdatascience.com/semantic-image-segmentation-using-full-convolutional-networks-bf0189fa3eb8

[5]https://www.kaggle.com/arunmohan003/eda-sartorius-cell-instance-segmentation/notebook

[6] https://towardsdatascience.com/intersection-over-union-iou-calculation-for-evaluating-an-image-segmentation-model-8b22e2e84686

[7]https://www.kaggle.com/c/sartorius-cell-instance-segmentation

[8] https://www.analyticsvidhya.com/blog/2021/05/image-segmentation-with-felzenszwalbs-algorithm/