«

»

May 03

02 – (пред)обработка изображений

Обработка изображений

Основная причина обработки изображения – сделать его “лучше” с точки зрения человека. Или компьютера. Этот вот обтекаемый термин – “лучше” – может означать что угодно – контрастнее, четче, скрыть неугодные родинки на лице неудачной фотографии или выделить все границы на изображении.

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

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

С точки зрения компьютера, изображение содержит сигнал, в котором наряду с полезной информацией содержится шум, от которого необходимо избавиться. Полезную информацию, при этом, желательно так или иначе усилить.

Какие на практике бывают разновидности брака:

Мона Лиза - когда не лады со светом

Мона Лиза – когда не лады со светом

Проблема – темное или пересвеченное изображение. Решение – повышение контраста (всего изображения целиком или его части) с помощью линейной коррекцией (или робастной линейной коррекцией). В случае неравномерного освещения, как правило достаточно применения метода single scale retinex (SSR) – принцип расписан на хабре – примеры применения там, конечно, своеобразны. Однако лучших результатов помогают добиться методы нелинейной коррекции – гамма коррекция или логарифмическая, Multi-Scale Retinex. Сравнение всех методов коррекции освещения в статье “A Comparison of the Multiscale Retinex With Other Image Enhancement Techniques”.

Мона Лиза - когда на изображении много шума

Мона Лиза – когда на изображении много шума

Проблема – зашумленное изображение. Шум бывает нескольких видов: соль и перец, белый шум – случайные белые пикселы, гауссов – колебания яркости распределяются по нормальному закону). Cамый легкий способ побороть шум – сделать серию кадров и по ним рассчитать среднее изображение. Обычно же, для борьбы с шумом используется линейная фильтрация (альтернативное название – операция свертка или, на английском, convolution with matrix). На практике, это процесс, когда значение каждого пикселя пересчитывается на основе его окрестности – значений соседних пикселей и специальных коэффициентов-весов (т.е. линейной комбинации). Какая конкретно окрестность и какие конкретно коэффициенты – определяет ядро применяемого фильтра. Ядро – это просто числовая матрица с подобранными коэффициентами. Эти коэффициенты называют степенями влияния или “ценностями”, определяющими вес пикселей из рассматриваемой окрестности. Полезно помнить, что сумма коэффициентов ядра должна быть равна 1, для того чтобы не изменялась средняя яркость/интенсивность. Из линейных фильтров наибольшее распространение получил гауссовский, построенный по принципу “взвешенного усреднения”. Как правило, не понятно насколько сильно зашумлено изображение, потому, на основе экспериментов при использовании гауссовского фильтра выбирают радиус в трое больше сигмы – среднеквадратичного отклонения. Однако есть немало и альтернативных методов фильтрации шума, из которых имеет смысл запомнить медианный фильтр, по сравнению с фильтром Гаусса, он не “размывает” изображение. anisotropic diffusion. Первые фильтры – Превитта, Собеля – сейчас практически не используются.

Мона Лиза - все как в тумане - когда не хватает резкости

Мона Лиза – все как в тумане – когда не хватает резкости

Проблема – нерезкое изображение. Общий принцип усиления границ – размыть изображение, вычесть полученный результат из исходного, тем самым получив сильные границы, а потом полученную разницу добавить к исходному. Основные методы: unsharp masking, Лапласиан/Лапласиан гауссиана – детали подробные тут.

Мона Лиза - нарушенный баланс цветов

Мона Лиза – нарушенный баланс цветов

Проблема – неправильные цвета (хорошо известная фотографам проблема баланса белого). Разделяют на интерактивные методы – серые (белые) карточки (более продвинутые – адаптация “Von Kries”). Или вероятностные – модель серого мира – Grayworld или, как вариант, – растяжение контрастности – autolevels.

Какую информацию можно извлечь из изображения?

Вспоминаем, что понаписано в предыдущей статье – изображение это, всего навсего, такая функция от двух переменных. Раз функция, то, при желании, можно искать ее производные. Вектор из частных производных для каждого пикселя – это градиент этого пикселя или его направление (orientation). Для изображения частные производные можно вычислять через разность текущего и соседнего значений пикселей (смачно разжеванные детали – тут). По градиентам всего изображения можно построить гистограмму ориентированных градиентов – histogram of oriented gradients, которая используется повсеместно.

Если у нас в распоряжении есть несколько изображений одной и той же сцены, сделанные через какие-то промежутки времени, то, для того чтобы определить динамическую составляющую сцены (как выносили сейф или качалась травка) можно рассчитать оптический потокoptical flow – вектор, отражающий движение пикселя от фрейма к фрейму, в зависимости от времени. В вике упоминаются методы для его вычисления по градиенту. Еще одна характеристика которая может быть полезна при анализе изображения – disparityневязка – насколько пиксель не совпадает с самим собой на двух изображениях

Если посмотреть на изображение отрешенно, то можно абстрагироваться от высокоуровневой информации и признать, что даже на самых простых изображениях есть уйма простейших геометрических образований, которые могут быть нам полезны: границы – линии и углы. Их локализация, усиление и выделение могут стать хорошей подмогой для нежных высокоуровневых алгоритмов распознавания объектов.

Границы могут быть образованы совершенно разными условиями – изменениями цвета/текстуры, разрывами поверхностями – когда нормаль резко меняется, вызванными перепадами освещения и тенями. Иногда рассматривают отдельно различные виды моделей границ – step\roof\spike\ramp. Простейший способ определения границ – вычисление производных функций изображения. На практике же используются стандартный кэни – Gradient of Gaussian (Canny) – подробно и наглядно на русском здесь. Как альтернатива – LoG (Laplacian of Gaussian  Marr-Hildreth).

При всем многообразии методов обработки изображений – их применение сопряжено с единственной проблемой – компьютер так и не может определить, насколько тот или иной метод, примененный к конкретному изображению улучшил его с точки зрения человека. Не смотря на то, что существуют метрики сравнения картинок – MSE – среднеквадратичная ошибка, пиковое отношение сигнал-шум – PSNR, они не учитывают человеческое восприятие. На данный момент универсальной метрики нет.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>