Обработка изображений Компьютерная графика Computer graphics Компьютерное (машинное) зрение Computer (machine) vision Обработка изображений Image processing Антон Конушин
Цель лекции Рассказать о нескольких способах обработки изображений, которые могут пригодиться в «реальной жизни» Зачем обрабатывать? 1.Улучшение изображения для восприятия человеком цель – чтобы стало «лучше» с субъективной точки зрения человека 2.Улучшение изображения для восприятия компьютером цель – упрощение последующего распознавания 3.Развлечение (спецэффекты) цель – получить эстетическое удовольствие от красивого эффекта
План лекции Введение Коррекция контрастности/яркости изображения Коррекция цветового баланса изображения Подавление шума в изображениях Метрики качества Подчеркивание резких границ (краев) на изображении Спецэффекты
Изображение Изображение оптическое – картина, получаемая в результате прохождения через оптическую систему лучей, распространяющихся от объекта, и воспроизводящая его контуры и детали. Физический энциклопедический словарь. Компьютерное представление изображения: Функция интенсивности (яркости) канала Используется дискретное представление
Как получается цифровое изображение? Свет, падая на светочувствительный элемент преобразуется в электрические сигналы Сигналы оцифровываются, превращаются в массив чисел x – характеристика яркости света y – яркость пиксела изображения
Почему оно может получиться плохо? Ограниченный диапазона чувствительности датчика «Плохой» функции передачи датчика Независимая работа пикселей матрицы
Вопросы Шум Шум в плохо освещенных областях Баланс чувствительность (ISO) / шум Выпавшие пиксели Разрешение: Больше мегапикселей – лучше? требуется качественная оптика Увеличивается шум Обработка в камере Подчеркивание резкости приводит к артефактам RAW vs. compressed Размер или качество Blooming Заряд перетекает в соседние ячейки Артефакты цвета Шумы от байеровских шаблонов Баланс белого Slide by Steve Seitz
Обработка изображений Семейство методов и задач, где входной и выходной информацией являются изображения. Примеры : Устранение шума в изображениях Улучшение качества изображения Усиления полезной и подавления нежелательной (в контексте конкретной задачи) информации
Изменение контраста изображения Компенсация: Ограниченного диапазона яркостей датчика Плохой функции передачи датчика x – характеристика яркости света y – яркость пиксела изображения
Что такое гистограмма? Гистограмма – это график распределения тонов на изображении. На горизонтальной оси - шкала яркостей тонов от белого до черного, на вертикальной оси - число пикселей заданной яркости
Изменение контраста изображения Что может не устраивать в полученном изображении: Узкий или смещенный диапазон яркостей пикселей (тусклое или «пересвеченное» изображение) Концентрация яркостей вокруг определенных значений, неравномерное заполнение диапазона яркостей (узкий диапазон - тусклое изображение) Коррекция - к каждому пикселю применяется преобразование яркостей, компенсирующий нежелательный эффект: y – яркость пиксела на исходном изображении, x – яркость пиксела после коррекции
Линейная коррекция Компенсация узкого диапазона яркостей – линейное растяжение: График функции f -1 (y)
Линейная коррекция Компенсация узкого диапазона яркостей – линейное растяжение:
Линейная коррекция Линейное растяжение – «как AutoContrast в Photoshop»
Линейная коррекция Линейная коррекция помогает не всегда!
Нелинейная коррекция График функции f -1 (y)
Нелинейная коррекция Часто применяемые функции: Гамма-коррекция Изначальная цель – коррекция для правильного отображения на мониторе. Логарифмическая Цель – сжатие динамического диапазона при визуализации данных
Гамма-коррекция Изначальная цель – коррекция для правильного отображения на мониторе. Так называют преобразование вида: Графики функции f -1 (y)
Нелинейная коррекция График функции f -1 (y)
Сравнение линейной и нелинейной коррекции
План лекции Введение Коррекция контрастности/яркости изображения Коррекция цветового баланса изображения Подавление шума в изображениях Метрики качества Подчеркивание резких границ (краев) на изображении Спецэффекты
Постоянство освещения Slide by Svetlana Lazebnik
Постоянство освещения Slide by Svetlana Lazebnik
Баланс белого (Цветовой баланс) Когда мы смотрим на картинку на экране или бумаге, глаз адаптируется к освещению комнаты, а не к изображению Если цветовой баланс не выровнен, изображение кажется неестественным Неправильный баланс Правильный баланс
Баланс белого Пленочные камеры: Разные виды пленки и фильтров для разных условий освещения Цифровые камеры: Автоматическое выравнивание баланса Установки баланса белого для набора стандартных условий освещения Произвольные установки по опорному объекту Slide by Svetlana Lazebnik
Коррекция с опорным цветом Предположение Пользователь указывает цвет вручную; Источник: «Серые карточки» Априорные знания – «облака – белые» Метод Преобразовать по каждому из каналов цвета по формуле:
Коррекция с опорным цветом Примеры:
«Серый мир» Предположение: Сумма всех цветов на изображении естественной сцены дает серый цвет; Метод: Посчитать средние яркости по всем каналам: Масштабировать яркости пикселей по следующим коэффициентам:
«Серый мир» - примеры
«Серый мир» - примеры
«Серый мир» - примеры
«Идеальный отражатель» Предположение: Наиболее яркие области изображения относятся к бликам на поверхностях, модель отражения которых такова, что цвет блика = цвету освещения; (дихроматическая модель) Метод Обнаружить максимумы по каждому из каналов: Масштабировать яркости пикселов:
Цветовая коррекция изображений Растяжение контрастности (autolevels) Идея – растянуть интенсивности по каждому из каналов на весь диапазон; Метод: Найти минимум, максимум по каждому из каналов: Преобразовать интенсивности:
Растяжение контрастности всех каналов (autolevels)
Растяжение контрастности (autolevels)
Баланс белого и распознавание Идея: Для каждого класса объектов в сцене вычислить цветовое преобразование так, чтобы средний цвет объекта на изображении соответствовал цвету объектов класса в базе изображений J. Van de Weijer, C. Schmid and J. Verbeek, Using High-Level Visual Information for Color Constancy, ICCV 2007.Using High-Level Visual Information for Color Constancy Slide by Svetlana Lazebnik
План лекции Введение Коррекция контрастности/яркости изображения Коррекция цветового баланса изображения Подавление шума в изображениях Метрики качества Подчеркивание резких границ (краев) на изображении
Борьба с шумом изображения Подавление и устранение шума Причины возникновения шума: Несовершенство измерительных приборов Хранение и передача изображений с потерей данных Шум фотоаппарата Сильное сжатие JPEG
Шум Соль и перец: случайные белые и черные пиксели Импульсный: случайные белые пиксели Гауссов: колебания интенсивности, распределенные по нормальному закону Source: S. Seitz
Гауссов шум Математическое обоснование: сумма множества независимых факторов Предположения: независимый, с нулевым матожиданием Source: M. Hebert
Усреднение Зашумленные изображения Усреднение по 10 изображениям Так работают камеры в некоторых сотовых телефонах
Шум в бинарных изображениях Бинарное изображение – изображение, пиксели которого принимают всего два значения (0 и 1). Пример бинарного изображению с сильным шумом
Шум в бинарных изображениях По одному пикселю невозможно определить – шум или объект? Нужно рассматривать окрестность пикселя!
Подавление и устранение шума Широко известный способ - устранение шума с помощью операций математической морфологии: Сужение (erosion) Расширение (dilation) Закрытие (closing) Раскрытие (opening)
Математическая морфология A B Множество A обычно является объектом обработки, а множество B (называемое структурным элементом) – инструментом
Расширение в дискретном случае A BA(+)B Операция «расширение» - аналог логического «или»
Операции математической морфологии Расширение A (+) B = {t R 2 : t = a + b, a A, b B} B A (+) B
Операции математической морфологии Сужение A (-) B = (A C (+) B) С, где A C – дополнение A A(-)B B A
Свойства морфологических операций Коммутативный закон A (+) B = B (+) A A (-) B B (-) A Ассоциативный закон A (+) (B (+) C) = (A (+) B) (+) C A (-) (B (-) C) = (A (-) B) (-) C
Алгоритм морфологического расширения void Dilation(BIT* src[], bool* mask[], BIT* dst[]) { // W, H – размеры исходного и результирующего изображений // MW, MH – размеры структурного множества for(y = MH/2; y < H – MH/2; y++) { for(x = MW/2; x < W – MW/2; x++) { BIT max = 0; for(j = -MH/2; j
Алгоритм морфологического сужения void Erosion(BIT* src[], bool* mask[], BIT* dst[]) { // W, H – размеры исходного и результирующего изображений // MW, MH – размеры структурного множества for(y = MH/2; y < H – MH/2; y++) { for(x = MW/2; x < W – MW/2; x++) { BIT min = MAXBIT; for(j = -MH/2; j
Операции раскрытия и закрытия Морфологическое раскрытие (opening) open(A, B) = (A (-) B) (+) B Морфологическое закрытие (closing) close(A, B) = (A (+) B) (-) B Образовательные материалы по мат. морфологии доступны по адресу:
Важное замечание Результат морфологических операций во многом определяется применяемым структурным элементом. Выбирая различный структурный элемент можно решать разные задачи обработки изображений: Шумоподавление Выделение границ объекта Выделение скелета объекта Выделение сломанных зубьев на изображении шестерни
Применения сужения к бинарному изображению с сильным шумом
Применения открытия к бинарному изображению с сильным шумом
Сужение vs Открытие СужениеОткрытие
Устранение шума в бинарных изображениях Пример бинарного изображению с дефектами распознаваемых объектов
Применения закрытия к бинарному изображению с дефектами объектов
Не лучший пример для морфологии Не во всех случаях математическая морфология так легко убирает дефекты, как хотелось бы…
Применения операции открытия
Подавление и устранение шума в полутоновых и цветных изображениях Усреднение (box filter) Фильтр Гаусса (gaussian blurring) Медианный фильтр
Заменим каждый пиксель взвешенной суммой соседних пикселей Веса называются ядром фильтра Усреднение по области box filter Source: D. Lowe
Применение фильтров g(l,k)
Усреднение (box filter) Результат применения:
Операция «свертка» (convolution) Свертка двумерной функции f по функции g в непрерывном и дискретном случае. Часто, свертка изображения по какой-либо функции называется применением фильтра к изображению. g(l,k) – ядро (kernel) свертки или фильтра размером (n1-n0)x(m1-m0)
Свертка // Обнулить изображение Dest[i][j]... // Выполнить свертку for (i=0; i
Свойства фильтров 1.Результат фильтрации однотонного (константного) изображения – константное изображение. Его цвет равен 2.Следствие: чтобы фильтр сохранял цвет однотонных областей, нужно чтобы 3.Следствие: если сумма коэффициентов фильтра равна нулю, то он переводит однотонные области в нулевые
Обработка краев Необходимо экстраполировать изображение по краям Методы: clip filter (black) wrap around copy edge reflect across edge Source: S. Marschner
Сглаживание бокс-фильтром Сглаживание бокс-фильтром не соответствует размытию при расфокусированных линзах Точка света при расфокусированных линзах выглядит как размытый кружок, а сглаживание бокс-фильтром дает квадратик Source: D. Forsyth
Фильтр гаусса Для подавления краевых эффектов, задаем веса пикселей пропорционально близости к центру ядра: fuzzy blob
Усреднение vs Гауссов
Фильтр Гаусса (gaussian blurring) Свертка по функции: Параметр задает степень размытия. На графике функция с
Маленькая экскурсия к Фурье + Низкие частоты Высокие частоты
Фильтр Гаусса (gaussian blurring) Результаты свертки по функции Гаусса и по константной функции (усреднения). Исходное изображение Фильтр Гаусса с Sigma = 4 Усреднение по 49 пикселям (7x7) Важное свойство фильтра Гаусса – он по сути является низкочастотным фильтром
Подавление и устранение шума Устранение шума в полутоновых, цветных и бинарных изображениях с помощью медианного фильтра - выбор медианы среди значений яркости пикселей в некоторой окрестности. Определение медианы: Медианный фильтр радиусом r – выбор медианы среди пикселей в окрестности [-r,r]
Медианный фильтр Результат применения медианного фильтра с радиусом 5 пикселей. Результат применения медианного фильтра с радиусом в 7 пикселей к изображению с шумом и артефактами в виде тонких светлых окружностей
Очистка изображения с помощью медианного фильтра Фильтр с окрестностью 3x
Сравнение медианы и гауссова фильтра 3x35x57x7 Гауссов Медиана
Быстрая реализация медианного фильтра Медианный фильтр считается дольше, чем операция свертки, поскольку требует частичной сортировки массива яркостей окрестных пикселей. Возможности ускорения: Использовать алгоритмы быстрой сортировки Конкретная реализация для каждого радиуса (3x3, 5x5) Не использовать сортировку вообще – считать через гистограмму окрестности точки
«Продвинутые» фильтры
В чем отличие разных фильтров? Box filer (простое размытие) – помимо подавления шума портит резкие границы и размывает мелкие детали изображения Gaussian filter – меньше размывает мелкие детали, лучше убирает шум Median filter – резких границ не портит, убирает мелкие детали, изображение становится менее естественным «Продвинутые» фильтры – лучшее сохранение деталей, меньше размытие. Часто сложны в реализации и очень медленные. Что лучше? – зависит от конкретной задачи
Повышение резкости Что убирает размытие? original smoothed (5x5) – detail = sharpened = Добавим это обратно : originaldetail + α
Пример Ядро свертки
Компенсация разности освещения Пример
Компенсация разности освещения Идея: Формирование изображения: Плавные изменения яркости относятся к освещению, резкие - к объектам. объектосвещение Изображение освещенного объекта
Выравнивание освещения Алгоритм Получить приближенное изображение освещения путем низочастотной фильтрации Восстановить изображение по формуле
Выравнивание освещения Пример
Компенсация разности освещения Пример /= Gauss 14.7 пикселей
План лекции Введение Коррекция контрастности/яркости изображения Коррекция цветового баланса изображения Подавление шума в изображениях Метрики качества Подчеркивание резких границ (краев) на изображении Спецэффекты
Метрики качества Как измерить похожесть двух изображений? исходное изображение искаженное изображение
Метрики качества Среднеквадратичная ошибка (MSE) Пиковое отношение сигнал/шум (PSNR) N – число пикселей M – максимальное значение пикселя
Метрики качества PSNR и MSE не учитывают особенности человеческого восприятия! Оригинал Далее будут использованы рисунки из статьи Wang, Bovik, Lu WHY IS IMAGE QUALITY ASSESMENT SO DIFFICULT?
Метрики качества У этих изображений одинаковые PSNR с оригиналом (примерно 25 dB) Повышена контрастностьДобавлен белый гауссов шум
Метрики качества И у этих – тоже примерно 25 dB! Добавлен импульсный шумРазмытие
Метрики качества И у этого – тоже! Артефакт блочности после JPEG
Метрики качества Вывод: PSNR не всегда отражает реальный видимый уровень искажений. Как улучшить? –Использовать функцию чувствительности глаза к различным частотам (CSF) –Использовать свойство маскировки –Использовать равномерные к восприятию цветовые пространства (CIE Lab, CIEDE2000) HVS models (human visual system)
План лекции Введение Коррекция контрастности/яркости изображения Коррекция цветового баланса изображения Подавление шума в изображениях Метрики качества Подчеркивание резких границ (краев) на изображении Спецэффекты
Подчеркивание контуров объекта Рассмотрим подчеркивание краев (границ) Край(edge) – резкое изменение яркости на изображении, часто соответствует границам объектов на изображении
Операция оконтуривания объекта При работе с бинарными изображениями контуры объекта можно получить с помощью операций математической морфологии Внутреннее оконтуривание C I = A – (A (-) B) Внешнее оконтуривание C O = (A (+) B) – A
Пример оконтуривания объекта
Подчеркивание краев Нас интересуют области резкого изменения яркости – нахождение таких областей можно организовать на основе анализа первой и второй производной изображения. График функции График производной График 2ой производной
Подчеркивание краев Известно, что наибольшее изменение функции происходит в направлении ее градиента. Величина изменения измеряется абсолютной величиной градиента. Часто используется приближенное вычисление градиента:
Подчеркивание краев Математический смысл – приближенное вычисление производных по направлению. Робертса ПревиттСобеля Семейство методов основано на приближенном вычисление градиента, анализе его направления и абсолютной величины. Свертка по функциям:
Подчеркивание краев Примеры применения операторов подчеркивания краев: Робертса Превитт Собеля
План лекции Введение Коррекция контрастности/яркости изображения Коррекция цветового баланса изображения Подавление шума в изображениях Метрики качества Подчеркивание резких границ (краев) на изображении Спецэффекты
Спецэффекты Рассмотрим Тиснение Негатив «Светящиеся» края Геометрические эффекты Перенос/поворот Искажение «Эффект стекла»
Тиснение Фильтр + сдвиг яркости, нормировка…
Цифровой негатив
Светящиеся края Медианный фильтра + выделение краев + фильтр «максимума»
Перенос/поворот Перенос: x(k; l) = k + 50; y(k; l) = l; Поворот: x(k; l) = (k. x0)cos(µ) + (l. y0)sin(µ) + x0; y(k; l) =.(k. x0)sin(µ) + (l. y0)cos(µ) + y0; x0 = y0 = (центр поворота), µ = /
«Волны» Волны 1: x(k; l) = k + 20sin(2 l / 128); y(k; l) = l; Волны 2: x(k; l) = k + 20sin(2 k / 30); y(k; l) = l;
«Эффект стекла» x(k; l) = k + (rand(1, 1) – 0.5) * 10; y(k; l) = l + (rand(1, 1) – 0.5) * 10;