Каковы наиболее распространенные алгоритмы адаптивного порога?

38

Адаптивный порог обсуждался в нескольких вопросах ранее:

Адаптивный порог для сегментации печени с использованием Matlab

Каковы лучшие алгоритмы для порога изображения документа в этом примере?

Конечно, есть много алгоритмов для адаптивного порогового значения. Я хочу знать, какие из них вы нашли наиболее эффективными и полезными.

Какие адаптивные алгоритмы вы использовали чаще всего и для какого приложения; как вы пришли, чтобы выбрать этот алгоритм?

Дипан Мехта
источник

Ответы:

24

Я не думаю, что мой будет полным ответом, но я предложу то, что я знаю, и, так как это отредактированный сообществом сайт, я надеюсь, что кто-то скоро даст бесплатный ответ :)

Адаптивные методы определения порога - это те, которые не используют один и тот же порог по всему изображению .

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

Простейшими алгоритмами, которые можно считать по-настоящему адаптивными методами определения порогов, будут те, которые разбивают изображение на сетку ячеек, а затем применяют простой метод определения порогов (например, итеративный метод Оцу) к каждой ячейке, рассматривая его как отдельное изображение (и предполагая, что бимодальная гистограмма). Если субизображение не может быть правильно пороговым, можно использовать порог от одной из соседних ячеек.

Альтернативный подход к нахождению локального порога заключается в статистическом исследовании значений интенсивности локальной окрестности каждого пикселя . Порог отличается для каждого пикселя и рассчитывается исходя из его локальной окрестности (возможны медиана, среднее и другие варианты). Существует реализация такого рода методы , включенных в библиотеке OpenCV в cv::adaptiveThresholdingфункции.

Я нашел другой подобный метод, названный Bradley Local Thresholding . Он также проверяет окрестность каждого пикселя, устанавливая яркость на черный, если яркость пикселей на t процентов ниже средней яркости окружающих пикселей. Соответствующий документ можно найти здесь .

В этом ответе о стековом потоке упоминается локальный (адаптивный) метод определения порогов, называемый Niblack, но я раньше о нем не слышал.

Наконец, есть метод, который я использовал в одном из моих предыдущих небольших проектов, он называется Thresholding изображения с помощью Variational Minimax Optimization . Это итерационный метод, основанный на оптимизации энергетической функции, которая представляет собой нелинейную комбинацию двух компонентов. Один из компонентов направлен на вычисление порогового значения, основанного на положении наиболее сильных изменений интенсивности изображения. Другой компонент направлен на сглаживание порога на (объектных) границах. Он хорошо зарекомендовал себя на изображениях аналоговых инструментов (различное затенение и отражение от стекла / пластика), но требовал тщательного выбора количества итераций.

Позднее редактирование : вдохновлено комментарием к этому ответу . Есть еще один способ работы с неравномерным освещением. Я напишу здесь о ярких объектах на темном фоне, но те же рассуждения могут быть применены, если ситуация обратная. Порог - преобразование белого цилиндра изображения с постоянным порогом вместо исходного изображения . Белый цилиндр изображения - это не что иное, как разница между изображением и его открытием . В качестве дальнейшего объяснения позвольте мне предложить цитату из П. Сойля: Анализ морфологического изображения :fγ(f)

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

Пенелопа
источник
14

Вы можете найти статью, содержащую сравнение нескольких методов определения порога здесь:

  • М. Сезгин, Б. Санкур - Обзор методов порогового изображения и количественной оценки производительности, журнал Electronic Imaging, 2004 - pdf

Вот еще один документ, оценивающий методы бинаризации:

  • П. Статис, Э. Каваллиерату и Н. Папамаркос - Методика оценки алгоритмов бинаризации, Журнал Универсальной информатики, 2008, - pdf

Метод адаптивной бинаризации, который я использовал в своем последнем проекте, использует интегральные изображения для быстрого вычисления пороговой функции, используемой методом Sauvola. Метод Sauvola описан в:

  • J. Sauvola и M. Pietikainen, Адаптивная бинаризация изображений документов, Распознавание образов 33, 2000. - pdf

Модификация, которая использует интегральные изображения, обеспечивающие 20-кратное ускорение (согласно статье), описана в этой статье:

  • F. Shafait, D. Keysers, TM Breuel, Эффективное внедрение локальных адаптивных технологий пороговых значений с использованием интегральных изображений, Распознавание и получение документов XV, 2008 - pdf

Это только те документы, которые я использовал при выборе метода бинаризации для моего проекта (для поиска текста в изображениях). Я не эксперт, поэтому я не могу сказать, какой метод является лучшим для какого приложения.

ppalasek
источник
6

На этот вопрос очень хорошо ответили с разных точек зрения, и я просто хочу обобщить свой опыт, а также подчеркнуть некоторые проблемы, связанные с адаптивной бинаризацией.

Адаптивную бинаризацию можно разделить на три категории:

1) Глобальный метод: с помощью этого метода оценивается первый фон изображения; после этого нормализованное изображение генерируется с помощью справочной информации. Затем применяется метод глобальной бинаризации.

2) Метод на основе исправлений: как видно из названия, метод на основе исправлений будет выполнять бинаризацию исправлений за исправлениями. В каждом патче бинаризация оценивается методом глобальной бинаризации. После этого выполняется некоторая постобработка, чтобы установить, что порог бинаризации в соседних исправлениях имеет плавный переход.

3) Метод движущегося окна: с помощью этого метода бинаризация выполняется попиксельно. Движущееся окно настроено для вычисления статистики пикселей в окне, и на основе статистики вычисляется порог для центрального пикселя в окне.

Очень сложно сказать, какой метод является лучшим, поскольку это зависит от приложения. Когда вы думаете об адаптивной бинаризации, не забудьте рассмотреть следующие вопросы:

1) настройка параметров: есть ли в методе процедура автоматической настройки параметров? Как мы можем установить параметры очень хорошо, чтобы он мог работать в большинстве случаев?

2) каков критерий обоснования хорошей адаптивной бинаризации? Во многих случаях разница между различными методами бинаризации действительно мала. Однако небольшая разница может привести к большой разнице в конце.

3) может ли бинаризация работать в определенных ситуациях? Например, предположим, что целью адаптивной бинаризации является извлечение объектов из черного фона, может ли бинаризация автоматически адаптироваться к этой ситуации? Или вице виза.

4) адаптивные методы имеют тенденцию фокусироваться только на локальных конфигурациях, поэтому двоичный результат не оптимизируется. Например, известный метод Sauvola будет генерировать полый объект, если объект для оптимизации намного больше, чем движущееся окно. Может ли ваш адаптивный метод преодолеть это ограничение?

5) предварительная обработка. Хорошая бинаризация также должна включать инсайдерскую обработку изображений. Если изображение слишком размытое, оно может автоматически настроить параметры алгоритма или вызвать некоторую предварительную обработку, чтобы избежать плохой бинаризации.

не стесняйтесь
источник