Оглавление
Характер изложения
Использование материала на практике
Дополнительные ресурсы
Обозначения
Глава 1. Данные изображения
1.1.2. Значения и основные статистики изображения
1.1.3. Пространственные и временные меры данных
1.1.4. Ступенчато-граничная модель
1.2. Изображения в частотной области
1.2.2. Обратное дискретное преобразование Фурье
1.2.3. Комплексная плоскость
1.2.4. Данные изображения в частотной области
1.2.5. Фазово-конгруэнтная модель признаков изображения
1.3. Цвет и цветные изображения
1.3.2. Цветовое восприятие, дефекты зрения и уровни серого
1.3.3. Представления цвета
1.4. Упражнения
1.4.2. Упражнения, не требующие программирования
Глава 2. Обработка изображений
2.1.2. Локальные операторы
2.1.3. Фильтрация Фурье
2.2.Три процедурных компонента
2.2.2. Регулярные пирамиды изображений
2.2.3. Порядок обхода
2.3. Классы локальных операторов
2.3.2. Повышение резкости
2.3.3. Простые детекторы границ
2.3.4. Простые детекторы углов
2.3.5.Удаление артефактов освещения
2.4. Более сложные детекторы границ
2.4.2. Встроенная уверенность
2.4.3. Алгоритм Ковеси
2.5. Упражнения
2.5.2. Упражнения, не требующие программирования
Глава 3. Анализ изображений
3.1.2. Топологически непротиворечивая смежность пикселей
3.1.3. Трассировка краев
3.2. Анализ двумерных геометрических фигур
3.2.2. Длина
3.2.3. Кривизна
3.2.4. Дистанционное преобразование
3.3. Анализ значений изображения
3.3.2. Анализ участков с привлечением моментов
3.4. Поиск прямых и окружностей
3.4.2. Окружности
3.5. Упражнения
3.5.2. Упражнения, не требующие программирования
Глава 4. Анализ плотного движения
4.1.2. Проблема апертуры и градиентный поток
4.2. Алгоритм Хорна-Шанка
4.2.2. Алгоритм
4.3. Алгоритм Лукаса-Канаде
4.3.2. Оригинальный алгоритм и алгоритм с весами
4.4. Алгоритм BBPW
4.4.2. Краткое описание алгоритма
4.5. Оценка качества алгоритмов вычисления оптического потока
4.5.2. Меры ошибки для сравнения с контрольными данными
4.6. Упражнения
4.6.2. Упражнения, не требующие программирования
Глава 5. Сегментация изображений
5.1.2. Сегментация путем выращивания семян
5.2. Сегментация методом сдвига среднего
5.2.2. Модель сдвига среднего
5.2.3. Алгоритмы и оптимизация по времени
5.3. Сегментация изображений как задача оптимизации
5.3.2. Примеры членов данных и гладкости
5.3.3. Передача сообщений
5.3.4. Алгоритм распространения доверия
5.3.5. Распространение доверия в задаче о сегментации изображений
5.4. Сегментация видео и прослеживание сегментов
5.4.2. Использование временной согласованности
5.5. Упражнения
5.5.2.Упражнения, не требующие программирования
Глава 6. Камеры, координаты и калибровка
6.1.2. Центральная проекция
6.1.3. Система с двумя камерами
6.1.4. Системы панорамных камер
6.2. Координаты
6.2.2. Однородные координаты
6.3. Калибровка камеры
6.3.2. Ректификация пар стереоизображений
6.4. Упражнения
6.4.2. Упражнения, не требующие программирования
Глава 7.Трехмерная реконструкция
7.1.2. Локальные параметризации поверхности
7.1.3. Кривизна поверхности
7.2. Структурная подсветка
7.2.2. Анализ световой плоскости
7.3. Стереоскопическое зрение
7.3.2. Бинокулярное зрение в канонической геометрии стереоскопической системы
7.3.3. Бинокулярное зрение в конвергентной системе
7.4. Фотометрический метод анализа стереоизображений
7.4.2. Восстановление градиентов поверхности
7.4.3. Интегрирование градиентных полей
7.5. Упражнения
7.5.2. Упражнения, не требующие программирования
Глава 8. Сопоставление стереоизображений
8.1.2. Функции стоимости данных
8.1.3. От глобального сопоставления к локальному
8.1.4.Тестирование функций стоимости данных
8.1.5. Меры уверенности
8.2. Сопоставление методом динамического программирования
8.2.2. Ограничение порядка
8.2.3. Сопоставление методом динамического программирования с использованием ограничения порядка
8.2.4. Алгоритм DPM с ограничением гладкости
8.3. Сопоставление методом распространения доверия
8.4.Техника третьего глаза
8.4.2. Сходство между виртуальным и третьим изображениями
8.5. Упражнения
8.5.2.Упражнения, не требующие программирования
Глава 9. Обнаружение и прослеживание признаков
9.1.2. Особые точки и векторы трехмерного потока
9.1.3. Множества особых точек в соседних кадрах
9.2. Примеры признаков
9.2.2. SURF-признаки
9.2.3. ORB-признаки
9.2.4. Оценка признаков
9.3. Прослеживание и обновление признаков
9.3.2. Проел ежи ватель Лукаса -Канаде
9.3.3. Фильтр частиц
9.3.4. Фильтр Калмана
9.4. Упражнения
9.4.2. Упражнения, не требующие программирования
Глава 10. Обнаружение объектов
10.1.2. Качество детекторов объектов
10.1.3. Гистограмма ориентированных градиентов
10.1.4. Вейвлеты и признаки Хаара
10.1.5. Метод Виолы-Джонса
10.2.AdaBoost
10.2.2. Параметры
10.2.3. Почему именно такие параметры?
10.3. Случайные решающие леса
10.3.2. Применение леса
10.3.3. Обучение леса
10.3.4. Леса Хафа
10.4. Обнаружение пешеходов
10.5. Упражнения
10.5.2.Упражнения, не требующие программирования
Предметный указатель
Текст
                    омпьютерное
ЗРЕНИЕ
Теория и алгоритмы
Springer
Рейнхард Клетте
к


Рейнхард Клетте Компьютерное зрение Теория и алгоритмы
Reinhard Klette Concise Computer Vision An Introduction into Theory and Algorithms Springer
Рейнхард Клетте Компьютерное зрение Теория и алгоритмы
УДК 004.8 ББК 32.81 К48 К48 Рейнхард Клетте Компьютерное зрение. Теория и алгоритмы / пер. с англ. А. А. Слин- кин. - М.: ДМК Пресс, 2019. - 506 с: ил. ISBN 978-5-97060-702-2 В этой книге рассмотрены основные аспекты компьютерного зрения: обработка и анализ изображений, анализ плотного движения, сегментация изображений, работа с камерами, трехмерная реконструкция, сопоставление стереоизображений, обнаружение объектов и др. Материал дополняется историческими справками, рекомендациями по дальнейшему чтению и сведениями о рассматриваемых математических понятиях. В конце каждой главы имеются проверенные на практике упражнения и вопросы на понимание материала. Издание предназначено широкому кругу специалистов по анализу данных и изображений, а также может использоваться в качестве учебника для студентов старших курсов и для самообразования. УДК 004.8 ББК 32.81 First published in English under the title Concise Computer Vision; Copyright © Springer-Verlag London, 2014. This edition has been translated and published under licence from Springer-Verlag London Ltd., part of Springer Nature. Springer-Verlag London Ltd., part of Springer Nature takes no responsibility and shall not be made liable for the accuracy of the translation. © 2019 by DMK Press. All rights reserved. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но, поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. ISBN 978-1-4471-6319-0 (англ.) © Springer-Verlag London, 2014 ISBN 978-5-97060-702-2 (рус.) © Оформление, перевод на русский язык, издание, ДМК Пресс, 2019
Всем, кто любит мечтать С помощью компьютерного зрения можно посчитать деревья, оценить расстояние до островов, но нельзя понять, что грезится людям, заглянувшим в эту бухточку.
Оглавление Предисловие 11 Предмет книги 11 Характер изложения 11 Целевая аудитория 12 Использование материала на практике 12 Замечания для преподавателя и рекомендуемый порядок использования книги 13 Дополнительные ресурсы 13 Благодарности (в алфавитном порядке по фамилии) 13 Обозначения 16 Глава 1. Данные изображения 18 1.1. Изображения в пространственной области 18 1.1.1. Пиксели и окна 19 1.1.2. Значения и основные статистики изображения 21 1.1.3. Пространственные и временные меры данных 26 1.1.4. Ступенчато-граничная модель 29 1.2. Изображения в частотной области 34 1.2.1. Дискретное преобразование Фурье 34 1.2.2. Обратное дискретное преобразование Фурье 35 1.2.3. Комплексная плоскость 37 1.2.4. Данные изображения в частотной области 39 1.2.5. Фазово-конгруэнтная модель признаков изображения 44 1.3. Цвет и цветные изображения 47 1.3.1. Определения цвета 49 1.3.2. Цветовое восприятие, дефекты зрения и уровни серого 51 1.3.3. Представления цвета 56 1.4. Упражнения 61 1.4.1. Упражнения по программированию 61 1.4.2. Упражнения, не требующие программирования 64 Глава 2. Обработка изображений 65 2.1.Точечные, локальные и глобальные операторы 65 2.1.1. Градационные функции 65 2.1.2. Локальные операторы 68 2.1.3. Фильтрация Фурье 71 2.2.Три процедурных компонента 75 2.2.1. Интегральные изображения 75 2.2.2. Регулярные пирамиды изображений 76 2.2.3. Порядок обхода 78
Оглавление ♦ 7 2.3. Классы локальных операторов 80 2.3.1. Сглаживание 80 2.3.2. Повышение резкости 85 2.3.3. Простые детекторы границ 86 2.3.4. Простые детекторы углов 91 2.3.5.Удаление артефактов освещения 95 2.4. Более сложные детекторы границ 98 2.4.1. LoG и DoG и их пространства масштабов 98 2.4.2. Встроенная уверенность 103 2.4.3. Алгоритм Ковеси 107 2.5. Упражнения 113 2.5.1. Упражнения по программированию 113 2.5.2. Упражнения, не требующие программирования 115 Глава 3. Анализ изображений 117 3.1. Основы топологии изображений 117 3.1.1.4- и 8-смежность в бинарных изображениях 118 3.1.2. Топологически непротиворечивая смежность пикселей 123 3.1.3. Трассировка краев 126 3.2. Анализ двумерных геометрических фигур 130 3.2.1. Площадь 130 3.2.2. Длина 133 3.2.3. Кривизна 136 3.2.4. Дистанционное преобразование 140 3.3. Анализ значений изображения 147 3.3.1. Матрицы совместной встречаемости и метрики 148 3.3.2. Анализ участков с привлечением моментов 151 3.4. Поиск прямых и окружностей 153 3.4.1. Прямые 153 3.4.2. Окружности 160 3.5. Упражнения 162 3.5.1. Упражнения по программированию 162 3.5.2. Упражнения, не требующие программирования 167 Глава 4. Анализ плотного движения 169 4.1. ЗР-движение и двумерный оптический поток 169 4.1.1. Локальное смещение и оптический поток 169 4.1.2. Проблема апертуры и градиентный поток 173 4.2. Алгоритм Хорна-Шанка 175 4.2.1. Подготовительная часть 175 4.2.2. Алгоритм 183 4.3. Алгоритм Лукаса-Канаде 187 4.3.1. Линейное решение методом наименьших квадратов 188 4.3.2. Оригинальный алгоритм и алгоритм с весами 191
8 ♦ Оглавление 4.4. Алгоритм BBPW 193 4.4.1. Исходные предположения и функция энергии 193 4.4.2. Краткое описание алгоритма 195 4.5. Оценка качества алгоритмов вычисления оптического потока 197 4.5.1. Стратеги и тестирования 197 4.5.2. Меры ошибки для сравнения с контрольными данными 200 4.6. Упражнения 202 4.6.1. Упражнения по программированию 202 4.6.2. Упражнения, не требующие программирования 204 Глава 5. Сегментация изображений 206 5.1. Простые примеры сегментации изображений 207 5.1.1. Бинаризация изображения 209 5.1.2. Сегментация путем выращивания семян 212 5.2. Сегментация методом сдвига среднего 218 5.2.1. Примеры и подготовка 218 5.2.2. Модель сдвига среднего 221 5.2.3. Алгоритмы и оптимизация по времени 224 5.3. Сегментация изображений как задача оптимизации 230 5.3.1. Метки, пометка и минимизация энергии 231 5.3.2. Примеры членов данных и гладкости 234 5.3.3. Передача сообщений 237 5.3.4. Алгоритм распространения доверия 239 5.3.5. Распространение доверия в задаче о сегментации изображений 245 5.4. Сегментация видео и прослеживание сегментов 247 5.4.1. Использование согласованности признаков изображений 248 5.4.2. Использование временной согласованности 249 5.5. Упражнения 254 5.5.1.Упражнения по программированию 254 5.5.2.Упражнения, не требующие программирования 257 Глава 6. Камеры, координаты и калибровка 262 6.1. Камеры 263 6.1.1. Свойства цифровой камеры 263 6.1.2. Центральная проекция 268 6.1.3. Система с двумя камерами 271 6.1.4. Системы панорамных камер 273 6.2. Координаты 276 6.2.1. Мировые координаты 276 6.2.2. Однородные координаты 279 6.3. Калибровка камеры 281 6.3.1. Калибровка камеры сточки зрения пользователя 282 6.3.2. Ректификация пар стереоизображений 286 6.4. Упражнения 292
Оглавление ♦ 9 6.4.1.Упражнения по программированию 292 6.4.2. Упражнения, не требующие программирования 294 Глава 7.Трехмерная реконструкция 296 7.1. Поверхности 296 7.1.1.Топология поверхности 297 7.1.2. Локальные параметризации поверхности 301 7.1.3. Кривизна поверхности 304 7.2. Структурная подсветка 308 7.2.1. Проекция световой плоскости 308 7.2.2. Анализ световой плоскости 311 7.3. Стереоскопическое зрение 314 7.3.1. Эпиполярная геометрия 314 7.3.2. Бинокулярное зрение в канонической геометрии стереоскопической системы 316 7.3.3. Бинокулярное зрение в конвергентной системе 319 7.4. Фотометрический метод анализа стереоизображений 324 7.4.1. Ламбертовская отражательная способность 325 7.4.2. Восстановление градиентов поверхности 327 7.4.3. Интегрирование градиентных полей 331 7.5. Упражнения 340 7.5.1.Упражнения по программированию 340 7.5.2. Упражнения, не требующие программирования 343 Глава 8. Сопоставление стереоизображений 345 8.1. Сопоставление, стоимость данных и уверенность 346 8.1.1. Общая модель сопоставления 347 8.1.2. Функции стоимости данных 351 8.1.3. От глобального сопоставления к локальному 354 8.1.4.Тестирование функций стоимости данных 358 8.1.5. Меры уверенности 360 8.2. Сопоставление методом динамического программирования 362 8.2.1. Динамическое программирование 363 8.2.2. Ограничение порядка 364 8.2.3. Сопоставление методом динамического программирования с использованием ограничения порядка 367 8.2.4. Алгоритм DPM с ограничением гладкости 373 8.3. Сопоставление методом распространения доверия 379 8.4.Техника третьего глаза 382 8.4.1. Построение виртуального изображения, снятого третьей камерой 383 8.4.2. Сходство между виртуальным и третьим изображениями 388 8.5. Упражнения 391 8.5.1. Упражнения по программированию 391 8.5.2.Упражнения, не требующие программирования 393
10 ♦ Оглавление Глава 9. Обнаружение и прослеживание признаков 396 9.1. Инвариантность, признаки и множества признаков 396 9.1.1. Инвариантность 396 9.1.2. Особые точки и векторы трехмерного потока 398 9.1.3. Множества особых точек в соседних кадрах 402 9.2. Примеры признаков 407 9.2.1. SIFT-признаки 407 9.2.2. SURF-признаки 410 9.2.3. ORB-признаки 411 9.2.4. Оценка признаков 414 9.3. Прослеживание и обновление признаков 417 9.3.1. Прослеживание - задача разреженного соответствия 419 9.3.2. Проел ежи ватель Лукаса -Канаде 420 9.3.3. Фильтр частиц 426 9.3.4. Фильтр Калмана 435 9.4. Упражнения 442 9.4.1. Упражнения по программированию 442 9.4.2. Упражнения, не требующие программирования 447 Глава 10. Обнаружение объектов 449 10.1. Локализация, классификация и оценка 449 10.1.1. Дескрипторы, классификаторы и обучение 450 10.1.2. Качество детекторов объектов 456 10.1.3. Гистограмма ориентированных градиентов 458 10.1.4. Вейвлеты и признаки Хаара 460 10.1.5. Метод Виолы-Джонса 464 10.2.AdaBoost 467 10.2.1. Алгоритм 468 10.2.2. Параметры 470 10.2.3. Почему именно такие параметры? 474 10.3. Случайные решающие леса 476 10.3.1. Энтропия и информационный выигрыш 476 10.3.2. Применение леса 479 10.3.3. Обучение леса 481 10.3.4. Леса Хафа 486 10.4. Обнаружение пешеходов 488 10.5. Упражнения 491 10.5.1. Упражнения по программированию 491 10.5.2.Упражнения, не требующие программирования 493 Предметный указатель 495
Предисловие Это учебник для студентов третьего и четвертого года обучения, посещающих курс компьютерного зрения - одной из научно-технических дисциплин. Предмет книги Задача компьютерного зрения - применение фото- и видеокамер для анализа или понимания реальных сцен. Эта дисциплина изучает методологические и алгоритмические проблемы, а также вопросы, относящиеся к реализации предложенных решений. В компьютерном зрении нас может интересовать, на каком расстоянии от камеры находится здание, движется ли автомобиль посередине своей полосы, сколько человек присутствует на изображении и даже присутствует ли на нем конкретный человек. На все эти вопросы нужно дать ответ, имея лишь сохраненные фотографии или видео. Благодаря недавним достижениям область применимости компьютерного зрения значительно расширилась. Прогресс затронул как технологии изготовления камер и методы вычислений, так и теоретические основания компьютерного зрения. За последние годы компьютерное зрение стало ключевой технологией во многих областях. Если речь идет о потребительской электронике, то достаточно упомянуть мобильные телефоны, помощь водителям или взаимодействие пользователя с компьютерными играми. В автоматизации промышленности компьютерное зрение повсеместно применяется для контроля качества и технологических процессов. Существенный вклад компьютерное зрение внесло в киноиндустрию (вспомним, например, аватары или создание виртуальных миров на основе отснятых изображений, дополнение исторических видеоданных или высококачественные презентации фильмов). И это лишь малая часть областей применения, связанных с обработкой и анализом фотографий и видео. Характер изложения В книге дается общее введение в основы компьютерного зрения, которые находят применения в самых разных прикладных областях. Математика играет важную роль в изложении, обсуждаются также алгоритмы. Конкретные приложения в книге не рассматриваются.
12 ♦ Предисловие На врезках представлены историческая информация, ссылки на источники излагаемого материала и сведения о математических объектах в том месте, где они впервые встречаются. Врезки следует рассматривать как дополнения к основному тексту. Книга не является справочником по текущим исследованиям в области компьютерного зрения, и объем библиографических ссылок очень ограничен; читатель легко найдет интересующий его материал в сети. Компьютерное зрение - активно развивающаяся дисциплина, количество ссылок огромно, поэтому любая попытка втиснуть полную библиографию в ограниченное пространство книги обречена на провал. Но мы, по крайней мере, дадим совет: на странице homepages.inf.ed.ас. uk/rbf/CVonline/ вы найдете онлайновое введение в различные проблемы компьютерного зрения. Целевая аудитория Книга задумывалась как вводный курс для студентов третьего-четвертого курсаов, специализирующихся в научных или технических дисциплинах. Предварительные знания в области обработки и анализа изображений или компьютерной графики были бы полезны, но первые две главы содержат начальные сведения о компьютерной обработке изображений. Использование материала на практике Материалы, представленные в книге, частично использовались в моих лекциях по мехатронике и информатике в Оклендском университете (Новая Зеландия), в Центре исследований и математики (CIMAT) в Гуа- нахуато (Мексика), в университете Фрайбурга и Гёттингена (Германия), в Кордобском техническом университете (Аргентина), в Тайваньском национальном нормальном университете (Тайвань) и в Уханьском университете (Китай). В книге использовались также материалы из предыдущих публикаций автора: [R. Klette and P. Zamperoni. Handbook of Image Processing Operators. Wiley, Chichester, 1996], [R. Klette, K. Schluns and A. Koschan. Computer Vision. Springer, Singapore, 1998], [R. Klette and A. Rosenfeld. Digital Geometry. Morgan Kaufmann, San Francisco, 2004] и [F. Huang, R. Klette and К Scheibe. Panoramic Imaging. Wiley, West Sussex, 2008]. Первые две из перечисленных выше книг использовались как дополнение к лекциям автора по компьютерному зрению в Германии и Новой Зеландии в 1990-х и в начале 2000-х г., а третья - в лекциях, прочитанных в более поздний период.
Предисловие ♦ 15 Замечания для преподавателя и рекомендуемый порядок использования книги Книга содержит больше материала, чем можно охватить в односемест- ровом курсе. Преподавателю следует отбирать материал, сообразуясь с контекстом: предварительными знаниями студентов и направленностью последующих курсов. Каждая глава заканчивается упражнениями, в том числе предполагающими программирование. В книге не отдается предпочтение какой-либо конкретной среде. Но обычно применение функций, имеющихся в таких библиотеках, как OpenCV, упрощает решение. Упражнения по программированию намеренно сформулированы так, чтобы у студентов было несколько вариантов ответа. Например, в упражнении 2.5 к главе 2 можно визуализировать результаты с помощью Java-аплетов (хотя в тексте этого не требуется), использовать изображения большого или малого размера (в тексте размер не указан) и ограничить движение курсора центральной частью входного изображения, например квадратом 11 х 11 с центром в точке р, который всегда целиком содержится в изображении (или рассмотреть также особые случаи, когда курсор может приближаться к границе изображения). Поэтому каждый студент может дать свое решение упражнений, и творческий подход следует всячески приветствовать. Дополнительные ресурсы На сопроводительном сайте книги имеются дополнительные материалы (данные, исходный код, примеры, презентации). См. www.cs.auckland. ас. nz/~rklette/Books/K2014/. Благодарности (в алфавитном порядке по фамилии) Я благодарен перечисленным ниже коллегам, бывшим и нынешним студентам и друзьям (если упоминается только рисунок, то я выражаю признательность за совместную работу или контакты, относящиеся к теме рисунка). • А-Кп АН Al-Sarraf (рис. 2.32), Hernan Badino (рис. 9.25), Anko Borner (различные комментарии по черновым вариантам книги и вклад в
14 ♦ Предисловие раздел 5.4.2), Hugo Carlos (помощь во время работы над книгой в CIMAT),Diego Caudillo (рис. 1.9,5.28,5.29), Gilberto Chavez (рис. 3.39 и 5.36, верхний ряд), Chia-Yen Chen (рис. 6.21 и 7.25), Kaihua Chen (рис. 3.33), Ting-Yen Chen (рис. 5.35, вклад в раздел 2.4, в главу 5, предоставление исходного кода), Eduardo Destefanis (вклад в пример 9.1 и рис. 9.5), Uwe Franke (рис. 3.36, 6.3 и 9.23, правый нижний), Stefan Gehrig (замечания по вопросу анализа стереоизображений и рис. 9.25), Roberto Guzman (рис. 5.36, нижний ряд), Wang Han (привлечение студентов к проверке черновика книги), Ralf Haeusler (вклад в раздел 8.1.5), Gabriel Hartmann (рис. 9.24), Simon Hermann (вклад в разделы 5.4.2 и 8.1.2, рис. 4.16 и 7.5), Vaclav Hlavac (предложения по улучшению состава глав 1 и 2), Heiko Hirschmuller (рис. 7.1), Wolfgang Huber (рис. 4.12, правый нижний), Fay Huang (вклад в главу 6, особенно в раздел 6.1.4), Ruyi Jiang (вклад в раздел 9.3.3), Waqar Khan (рис. 7.17), Ron Kimmel (предложения о способе изложения локальных операторов и оптического потока - они вынужденно запланированы в основном для следующего издания книги), Karsten Knoeppel (вклад в раздел 9.3.4). • Ko-Sc Andreas Koschan (замечания к различным частям книги и рис. 7.18, справа), Vladimir Kovalevsky (рис. 2.15), Peter Kovesi (вклад в главы 1 и 2, касающийся фазовой конгруэнтности, включая разрешение на публикацию рисунков), Walter Kropatsch (предложения по главам 2 и 3), Richard Lewis-Shell (рис. 4.12, левый нижний), Fajie Li (упражнение 5.9), Juan Lin (вклад в раздел 10.3), Yizhe Lin (рис. 6.19), Dongwei Liu (рис. 2.16), Yan Liu (разрешение на публикацию рис. 1.6), Rocio Lizarraga (разрешение на публикацию рис. 5.2, нижний ряд), Peter Meer (замечания к разделу 2.4.2), James Milburn (замечания к разделу Sect. 4.4). Pedro Real (замечания на темы геометрии и топологии), Mahdi Rezaei (вклад в материал о распознавании лиц в главе 10, включая текст, рисунки и упражнение 10.2), Bodo Rosenhahn (рис. 7.9 справа), John Rugis (определение кривизны подобия и упражнения 7.2 и 7.6), James Russell (вклад в раздел 5.1.1), Jorge Sanchez (вклад в пример 9.1, рис. 9.1 справа и 9.5), Konstantin Schauwecker (замечания о детекторах признаков и обнаружении плоскостей методом RANSAC, рис. 6.10 справа, 7.19,9.9 и 2.23), Karsten Scheibe (вклад в главу 6, особенно в раздел 6.1.4, и рис. 7.1), Karsten Schliins (вклад в раздел 7.4).
Предисловие ♦ 15 • Sh-Z Bok-Suk Shin (предложения по редактированию в Latex, замечания к различным частям книги, вклад в разделы 3.4.1 и 5.1.1 и рис. 9.23 с относящимися к нему комментариями), Eric Song (рис. 5.6 слева), Zijiang Song (вклад в главу 9, особенно в раздел 9.2.4), Kathrin Spiller (вклад в изложение трехмерного случая в разделе 7.2.2), Junli Tao (вклад в материал об обнаружении пешеходов в главе 10, включая текст, рисунки, упражнение 10.1 и замечания о структуре этой главы), Akihiko Torii (вклад в раздел 6.1.4), Johan Van Horebeek (замечания к главе 10), Tobi Vaudrey (вклад в раздел 2.3.2 и рис. 4.18, вклад в раздел 9.3.4, упражнение 9.6), Мои Wei (замечания к главе 4), Shou-Kang Wei (совместная работа над вопросами, относящимися к разделу 6.1.4), Tiangong Wei (вклад в раздел 7.4.3), Jiirgen Wiest (рис. 9.1 слева), Yihui Zheng (вклад в раздел 5.1.1), ZezhongXu (вклад в раздел 3.4.1 и рис. 3.40), Shenghai Yuan (замечания к разделам 3.3.1 и 3.3.2), Qi Zang (упражнение 5.5, рис. 2.21, 5.37 и 10.1), Yi Zeng (рис. 9.15), Jovisa Zunic (вклад в раздел 3.3.2). Автор особенно признателен Саидино Моралесу (Sandino Morales) (федеральный округ Мехико) за реализацию и тестирование алгоритмов, предоставление многих рисунков, вклад в главы 4 и 8 и многочисленные замечания, касающиеся различных частей книги, Владиславу Скарбеку (Wladyslaw Skarbek) (Варшава, Польша) за разнообразные предложения по улучшению содержания книги и за предложенные упражнения 1.9, 2.10, 2.11, 3.12, 4.11, 5.7, 5.8, 6.10 и Гарри Ти (Garry Tee) (Окленд, Новая Зеландия) за тщательную редактуру, замечания, части врезки 5.9, сноску на стр. 480 и еще много ценных советов. Я благодарю свою жену, ГизелуКлетте (Gisela Klette), за написание раздела 3.2.4 о дистанционном евклидовом преобразовании и за критические замечания о структуре и деталях книги во время работы над ней в Центре исследований и математики (CIMAT) в Гуанахуато в период между серединой июля и началом ноября 2013 г. в период творческого отпуска, предоставленного Оклендским университетом (Новая Зеландия). Рейнхард Клетте Гуанахуато, Мексика 3 ноября 2013 г.
Обозначения |S| мощность множества S \\а\\г норма Lx ||а||2 норма L2 л логическое «И» V логическое «ИЛИ» п пересечение множеств и объединение множеств □ конец доказательства а, Ь, с вещественные числа А множество смежности Л(-) площадь измеримого множества (как функция) а, Ь, с векторы А, В, С матрицы а, /?, у углы Ъ длина базы в системе стереокамер (С множество комплексных чисел вида a + / • Ь, где i = V^T, a, b e R d диспаратность dx метрика L1 d2 метрика Lv известная также как евклидова е постоянная е = ехр(1) * 2,7182818284 £ вещественное число, большее О / фокусное расстояние /, g, h функции Gmax максимальная яркость в полутоновом изображении у кривая в евклидовом пространстве (например, прямая линия, ломаная или гладкая кривая) Н матрица Гессе (гессиан) z, /, к,1,т,п натуральные числа; координаты пикселей (/, /) в окне 7, /(.,., t) изображение, один из последовательных кадров, кадр в момент времени t L длина (вещественное число)
Обозначения ♦ 17 $(-) длина спрямляемой кривой (функция) Л вещественное число; значение по умолчанию от 0 до 1 п натуральное число N окрестность (в сетке, наложенной на изображение) Ncolsy Nrows количество столбцов, количество строк N множество натуральных чисел {0,1,2,...} 0(-) асимптотическая верхняя граница П носитель изображения (image carrier), множество всех позиций пикселей N . хЛГ cols rows р, q точки в R2 с координатами л: и у Р, О, R точки в R3 с координатами X, У, Z л вещественная постоянная я = 4х arctan(l) * 3,14159265358979 П многогранник г радиус окружности или сферы; точка в R2 или R3 Ж множество вещественных чисел R матрица поворота Р путь с конечным числом вершин s точка в R2 или R3 S множество t момент времени; точка в R2 или R3 t вектор параллельного переноса Ту г пороговое значение (вещественное число) и, v компоненты оптического потока; вершины или узлы; точки в R2 или R3 и вектор оптического потока и = (и, v) W, W окно внутри изображения, окно с начальным пикселем р х,у вещественные переменные; координаты пикселя изображения (х, у) Х9 У, Z координаты в R3 Ж множество целых чисел
Глава 1 Данные изображения В этой главе мы познакомимся с базовыми обозначениями и математическими понятиями для описания изображения на регулярной сетке в пространственной или частотной области. Здесь же мы опишем способы задания цвета и познакомимся с цветными изображениями. 1.1. Изображения в пространственной области Цифровое изображение определяется посредством дискретизации непрерывных аналоговых данных в пространственной области. Оно состоит из прямоугольного массива пикселей (х, у, и), каждый из которых является комбинацией местоположения (х, у) е 1? и значения и, представляющего отсчет в точке {х, у). Здесь 1 - множество всех целых чисел. Точки (а:, у) 6 1? образуют регулярную сетку. Формально изображение / определено на прямоугольном множестве Q, которое называется носителем (carrier) /; n = {{xyy):l^x^NcolsM^y^NxoJczl? (l.l) и содержит узлы сетки, или местоположения пикселей для Ncols > 1 и N >1. rows Мы предполагаем левостороннюю систему координат, показанную на рис. 1.1. Строка у содержит узлы сетки {(1, у), (2, у),..., (Ncols, у)} для 1 ^ у ^ iVrows, а столбец х - узлы сетки {(*, 1), (х, 2),..., (х, АГ^Удля cols В этом разделе мы начнем знакомство с предметом обработки цифровых изображений с обсуждения способов представления и описания данных изображения в пространственной области, определяемой носителем П.
1.1. Изображения в пространавенной облааи ♦ 19 Рис. 1.1. Левосторонняя система координат. Большой палец указывает положительное направление оси х, указательный палец - положительное направление оси у, если смотреть с внутренней стороны ладони. (На левом рисунке видна также барочная церковь в городке Валенсиана, которая всегда была перед глазами автора, когда он писал эту книгу в Центре исследований и математики в Гуанахуато) 1.1.1. Пиксели и окна На рис. 1.2 показаны два способа геометрической интерпретации пикселей, т. е. отборов изображения на регулярной сетке. Рис. 1.2. Слева. На увеличенном изображении видны ячейки сетки; разными оттенками серого представлены значения пикселей изображения. Справа. Можно также считать, что значения изображения - это метки в узлах сетки, являющихся центрами ячеек сетки Ячейки сетки, узлы сетки и смежность. Изображения, которые мы видим на экране, состоят из ячеек, закрашенных одним цветом. Исходя из такого представления, мы можем считать пиксель крохотным закрашенным квадратиком. Это так называемая модель ячеек сетки. Но можно также рассматривать пиксель как узел сетки, помеченный значением изображения. Эта модель узлов сетки уже была показана на рис. 1.1.
20 ♦ Глава 1. Данные изображения Врезка 1.1 (происхождение термина «пиксель»). Термин «пиксель» - сокращение от «picture element» (элемент изображения). Он был введен в оборот в конце 1960-х гг. группой исследователей из Лаборатории реактивного движения в Пасадене, штат Калифорния, которая занималась обработкой изображений, снятых космическими аппаратами. См. [/?. В. Leighton, N. Н. Horowitz.A. G. Herriman,A. Т. Young, В. A. Smith, M. E. Domes and С. В. Leovy. Mariner 6 television pictures: First report. Science, 165:684-690,1969]. Пиксели - «атомарные элементы» изображения. Сами по себе они не определяют никаких отношений смежности. В модели ячеек сетки мы можем предполагать, что пиксели являются смежными тогда и только тогда, когда соответствующие им закрашенные квадратики имеют общую сторону. Но можно также считать пиксели смежными, если они различны и их закрашенные квадратики имеют хотя бы одну общую точку (сторону или вершину). Окна изображения. Окном W™y"{I) называется часть изображения I, имеющая размер т*п и позиционированная относительно начальной точки р (т. е. некоторого пикселя). По умолчанию подразумевается, что т = п - нечетное число, ар- центр окна. На рис. 1.3 показано окно ^(453!l34)(SanM'9Uel)- 1 100 200 300 400 500 600 700 800 Рис. 1.3. Окно 73*77 изображения SanMiguel. На изображении главной пирамиды музея Каньяда-де-ла-Вирген в Мексике помечен начальный пиксель с координатами р = (453,134) Обычно мы упрощаем нотацию и пишем просто W, поскольку само изображение и размер окна известны из контекста.
1.1. Изображения в пространавенной облааи ♦ 21 1.1.2. Значения и основные статистики изображения Значения изображения и берутся из дискретного множества возможных значений. В компьютерном зрении часто рассматривают отрезок вещественной оси [0, 1]сЦ как область значений скалярного изображения. Это особенно полезно, если значения изображения интерполируются выполняемыми процедурами и представляются типом данных real. В этой книге мы по умолчанию считаем, что значениями изображения являются целые числа. Скалярные и бинарные изображения. Значениями скалярного изображения являются целые числа: и £ {0,1,..., 2а - 1}. Принято интерпретировать такие скалярные значения как уровни яркости, когда 0 соответствует черному цвету, 2я - 1 - белому, а остальные уровни линейно интерполируются между черным и белым. В таком случае мы говорим, что изображение полутоновое. На протяжении многих лет было принято использовать а = 8, но недавно техническим стандартом стало а = 16. Чтобы не зависеть от таких деталей, мы будем обозначать Gmax = 2а - 1. В бинарном изображении пиксели могут принимать только два значения, традиционно обозначаемые 0 = белый и 1 = черный, т. е. черные объекты размещены на белом фоне. Векторные и RGB-изображения. В векторном изображении, в отличие от скалярного, имеется более одного канала или полосы. Значениями изображения являются векторы {uv ..., uNchamels) длины ^channels- Например, цветные изображения в широко распространенной цветовой модели RGB имеют три канала, по одному для красной, зеленой и синей компоненты. Значения ui в каждом канале принадлежат множеству {0, 1,..., Gmax}, т. е. каждый канал - это просто полутоновое изображение. См. рис. 1.4. Среднее. Пусть имеется скалярное изображение / размера Ncols*Nrom. Вслед за математической статистикой мы называем средним (средним уровнем яркости) изображения I величину 1 N , N | cols rows М,= N -N ХХ/(*'^ = 1УсоЬ lyrows jc=1 У=\ f (1.2) где \П\ = Ncols • Nrows - мощность носителя О,, содержащего все пиксели. Мы предпочитаем второй способ записи. В этой формуле мы используем /,
22 ♦ Глава 1. Данные изображения а не и; I - это отображение, определенное на П, а и мы оставляем для значений отдельных пикселей. Рис. 1.4. Исходное цветное RGB-изображение Fountain (слева вверху), на котором запечатлена площадь в Гуанахуато, и его разложение на три канала: красный {справа вверху), зеленый {слева внизу) и синий (справа внизу). Красному цвету соответствует высокая яркость красного канала и одновременно низкая яркость зеленого и синего каналов Дисперсия и стандартное отклонение. Дисперсией изображения I называется величина (1.3) Квадратный корень из нее <т7 называется стандартным отклонением изображения /. Применимы такие хорошо известные формулы статистики, как С72 = / "| (x,y)eQ -t. (1.4) Формула (1.4) позволяет вычислять среднее и дисперсию путем однократного прохода по изображению. Если бы мы использовали определения (1.2) и (1.3), то понадобилось бы два прохода: один для вычисления среднего и второй для вычисления дисперсии.
1.1. Изображения в пространавенной облааи 23 Гистограммы. Гистограмма представляет таблицу частот, обычно в виде столбиков на графике. С помощью гистограмм представляются частоты значений скалярного изображения или одного из каналов векторного изображения. Пусть имеется скалярное изображение / с пикселями (/, /, и), где 0<и< Gmax. Мы определяем абсолютные частоты, подсчитывая, сколько раз значение и встречается в носителе Q, содержащем все пиксели: Щи)= \{(х,у)ЕП:1(х,у) = и} (1.5) где | • | обозначает мощность множества. Относительные частоты - значения между 0 и 1 - можно сравнить с функцией плотности вероятности (ФПВ) распределения дискретной случайной величины 1(р). Они вычисляются по формуле hj (и) = (1.6) Значения Я/0), Я.(1),..., НЮ ) определяют (абсолютную) гистограм- 11 1 IllctX му уровней яркости скалярного изображения /. На рис. 1.5 показаны гистограммы исходного изображения и трех его модифицированных вариантов. PMW ОД» Рис. 1.5. Гистограммы для изображения Neuschwanstein размера 200><231. Слева вверху: исходное изображение. Справа вверху: более яркий вариант. Слева внизу: более темный вариант. Справа внизу: после выравнивания гистограммы (объяснение см. ниже) Мы можем также вычислить среднее и дисперсию на основе относительных частот:
24 ♦ Глава 1. Данные изображения '"дл —max jUI=^u-hI(u) или с^ =^[u-jUi] ЛОХ (1.7) Так получается быстрее, если гистограмма уже вычислена. Абсолютная и относительная кумулятивная частота определяются следующим образом: и и СДи) =£#/(*>) и с»=£/г70). (1.8) у=0 ъ>=0 Эти значения показываются на кумулятивных гистограммах. Относительные частоты можно сравнить с функцией вероятности Рг[/(р) < и] дискретной случайной величины 1(р). Статистики значений в окне. Рассмотрим окно по умолчанию W = W"'"{I)t где п = 2к + 1 и р = (х, у). Тогда в координатах окна имеем +к +к 1 +К +К Yl i-_Jr i-_lr (1.9) i=-k j=-k См. рис. 1.6. Формулы для дисперсии и других показателей можно модифицировать аналогично. 256 Count 10192 Min: 9 Mean: 133.711 Max: 255 StdOev: 55.391 Mode: 178 (180) 256 Count: 10192 Min: 11 Mean: 104.637 Max: 254 StdDev: 89.862 Mod»: 23 (440) Рис. 1.6. Пример двух окон размера 104*98 в изображении Yan и соответствующих им гистограмм. Верхнее окно: /jWi = 133,7, oWl = 55,4. Нижнее окно: ущ = 104,6, ащ = 89,9 Пример 1.1 (примеры окон и гистограмм). В изображении Yan размера 489*480, показанном на рис. 1.6, мы видим два выделенных рамкой окна раз-
1.1. Изображения в пространственной области 25 мера 104x98: Wv содержащее лицо, и W2, содержащее части скамьи и платья. Там же приведены гистограммы для обоих окон. Трехмерное представление уровней яркости (которые в таком случае интерпретируются как возвышения) иллюстрирует различные «степени однородности» изображения. Пример см. на рис. 1.7. Крутой подъем с нижнего плато на верхнее на левом рисунке - типичная иллюстрация «границы» внутри изображения. 255 кселя Рис. 1.7. Слева: «крутой переход от темного к яркому». Справа: «незначительное» изменение. Обратите внимание на разные масштабы трехмерных представлений обоих окон на рис. 1.6 В процессе анализа изображения мы должны классифицировать окна по категориям, например: «внутри однородной области», «низкая контрастность», «содержит границу между двумя разными областями» или «высокая контрастность». Мы определяем контрастность С(1) изображения / как среднюю абсолютную величину разности между значением пикселя и средним значением соседних пикселей. А(х,у) (1.10) где ц - среднее значение, вычисленное по пикселям, соседним с находящимся в позиции (х, у). Еще один пример использования низкоуровневых статистик для простой интерпретации изображений показан на рис. 1.4. Средние значения, посчитанные по красному, зеленому и синему каналам, показывают, что в изображении больше красного цвета (правый верхний рисунок, среднее значение равно 154) и меньше зеленого (левый нижний
26 ♦ Глава 1. Данные изображения рисунок, среднее значение равно 140) и синего (правый нижний рисунок, среднее значение равно 134). Это можно проверить более точно, взглянув на гистограммы всех трех каналов. На них видно, что «более ярким» является красный канал, особенно в области, занятой домом в центре, а зеленый и синий каналы в той же области «более темные». 1.1.3. Пространственные и временные меры данных Уже приведенных выше базовых понятий из математической статистики достаточно, чтобы определить функции, описывающие изображения: построчно в случае одного изображения или покадрово в случае последовательности изображений. Статистики значений в профиле яркости. При первоначальном анализе изображений в новой предметной области можно получить весьма полезную информацию, если визуализировать профили яркости, определяемые одномерными сечениями скалярных массивов данных. На рис. 1.8 показаны два профиля яркости по оси х, построенных для заданного полутонового изображения. Как и раньше, мы можем использовать среднее, дисперсию и гистограммы «узких» окон размера Ncols*\, чтобы получить общее представление о распределении значений изображения. Рис. 1.8. Слева: выделены две строки изображения для представления в канале яркости (т. е. значения (/? + 6 + В)/Ъ) для изображения SanMiguel на рис. 1.3. Справа: профили яркости обеих выбранных строк Пространственные и временные статистики значений. Гистограммы и профили яркости - примеры пространственных статистик значений. Так, профили яркости для строк с номерами от 1 до Nrom одного изображения / определяют последовательность дискретных функций,
1.1. Изображения в пространственной области 27 которую можно сравнить с соответствующей последовательностью для другого изображения /. Рассмотрим еще один пример - последовательность изображений, состоящую из кадров It,t= 1,2,..., Г, определенных на одном и том же носителе П. Для лучшего понимания распределения значений полезно определить скалярную меру данных (£), которая сопоставляет одному кадру It одно число, и сравнить различные меры данных для заданного дискретного временного интервала [1,2,..., 7], получив тем самым временные статистики данных. Например, определение контрастности (1.10) индуцирует меру данных T(t) = C(It), определение среднего (1.2) - меру данных M(t) = ^ , а определение дисперсии (1.3) - меру данных V(t) = а\. На рис. 1.9 сверху показаны две меры данных на последовательности 400 изображений. (В данном контексте не важно, какие именно изображения и меры данных использовались.) Области значений разных мер различаются и могут быть охарактеризованы средним и дисперсией. Для более точного сравнения мы преобразуем обе меры в функции, имеющие одинаковые среднее и дисперсию. 100 90 80 70 60 50 40 30 20 10 0 100 90 80 70 60 50 40 30 20 10 0 tops^vOto L^^-r^pY'Yf^ Рис. 1.9. Сверху: график двух мер данных для последовательности 400 кадров. Снизу: те же меры после нормировки среднего и дисперсии Нормировка двух функций. Обозначим pifn oy среднее и стандартное отклонение функции /. Пусть даны две вещественные функции /и g с одной и той
28 ♦ Глава 1. Данные изображения же дискретной областью определения, скажем 1,2,..., Т, и ненулевыми дисперсиями. Положим gMW(x) = fi(g(x)+a). (1.12) Тогда функция gnew будет иметь такие же среднее и дисперсию, как функция /. Расстояние между двумя функциями. Теперь определим расстояние между двумя вещественными функциями с одной и той же областью определения, например 1,2,..., Т: -* х=1 di(f,g)= ^J2(/W-^W)2. (1.14) Оба расстояния являются метриками, т. е. для них выполняются следующие аксиомы: 1) /= 5" тогда и только тогда, когда d(f, #) = 0; 2) d(f,g) = d(g>/) (симметричность); 3) d(/jg) < d(f, h) + d(ft,g) для произвольной третьей функции h (неравенство треугольника). Структурное подобие мер данных. Пусть заданы две разные пространственные или временные меры данных 7 и Q с одной и той же областью определения 1, 2,..., Г. Сначала отобразим Q в Qnew, так чтобы у обеих мер были одинаковые среднее и дисперсия, а затем вычислим расстояние между 7 и Qnew, применяя любую из метрик Ьг или L2. Две меры 7 и Q называются структурно подобными, если расстояние между 7 и Qnew близко к нулю. Структурно подобные меры принимают локальные максимумы и минимумы приблизительно в одних и тех же точках.
1.1. Изображения в проаранственной области ♦ 29 1.1.4. Ступенчато-граничная модель Изломы в изображениях - это признаки, которые часто бывают полезны на начальной стадии процедуры анализа. Границы представляют собой важную информацию, позволяющую лучше понять изображение (например, устранить влияние переменного освещения). Удалив все данные, кроме границ, мы сможем упростить данные. На рис. 1.10 понятие «границы» иллюстрируется тремя примерами. Рис. 1.10. Границы, или визуальные силуэты, уже много тысяч лет используются, чтобы показать «существенную информацию», например в пещерных рисунках. Слева: изображение Taroko, на котором показаны древние рисунки коренного населения Тайваня. В середине: фрагмент изображения Aussies с силуэтами, спроецированными на стену здания 01 в городе Голд-Кост, Австралия. Справа: торговый центр в Шанхае, изображение OldStreet Изломы в изображениях могут быть локализованы в небольших окнах (например, зашумленные пиксели) или определять границы между областями с разными характеристиками сигнала. Что такое граница? На рис. 1.11 показано разнообразие границ в изображениях. Для этого мы двигаемся слева направо по профилю яркости в соответствии со ступенчато-граничной моделью (step-edge model). В этой модели предполагается, что границы определяются изменениями локальных производных. Альтернативную фазово-конгру- энтную модель мы обсудим в разделе 1.2.5. После удаления шума предположим, что изображение представляет отсчеты непрерывной функции 1{х, у), определенной на евклидовой плоскости Е2, для которой можно взять первую и вторую частные производные по а: и у. На рис. 1.12 иллюстрируются свойства таких производных.
50 ♦ Глава 1. Данные изображения I -v Рис. 1.11. Ступенчато-граничная модель. Слева: синтетические входные изображения. Справа: профили яркости, соответствующие изображениям слева. Сверху вниз: идеальные ступеньки, линейная граница, гладкая граница, зашумленная граница,тонкая линия и излом при переходе от светлой области к темной Выделение ступенчатых границ с помощью первой и второй производных. На рис. 1.12 показана зашумленная гладкая граница, которая сначала преобразуется в границу, свободную от шумов (разумеется, это всего лишь наше оптимистическое предположение). Первая производная отображает интервалы приблизительного постоянства функции в значения, близкие к 0, а возрастание и убывание представляет наклоном. Вторая производная делает то же самое, когда входными данными является первая производная. Обратите внимание, что «середина» гладкой границы находится в точке локального максимума или локального минимума первой производной и что в этой точке вторая производная меняет знак; это называется переходом через нуль.
1.1. Изображения в пространавенной облааи 31 Профиль яркости входного изображения После устранения шума Первая производная Вторая производная Рис. 1.12. Входной сигнал, сигнал после устранения шума, первая производная, вторая производная Изображение как непрерывная поверхность. Значение изображения / можно интерпретировать как аппликату некоторой поверхности в точке расположения пикселя. См. рис. 1.13. При такой интерпретации изображение I определяет долины, плато, плавные или крутые склоны и т. д. Значения частных производных по а: и по у соответствуют убыванию или возрастанию высоты либо пребыванию на одном уровне. Напомним некоторые основанные на производных понятия, применяемые в математическом анализе для описания поверхностей. Рис. 1.13. Слева: синтетическое входное изображение с пикселем в точке (х,у). Справа: касательная плоскость (зеленая) к поверхности в точке (х,у, /(х,у)), нормаль п = [а, Ь, 1]т, ортогональная этой плоскости, и частные производные а (по х) и b (по у) в левосторонней декартовой системе координат, определенной координатами изображения х и у и осью значения изображения и
32 Глава 1. Данные изображения Первые производные. Нормаль п ортогональна касательной плоскости в точке, соответствующей пикселю (х, у, 1{х, у)); касательная плоскость аппроксимирует поверхность, определяемую значениями изображения 1(х, у) на плоскости лгу. Нормаль составляет угол у с осью значений изображения. Градиент -|Т Э/ Э/ V/ = grad / = Эх ду (1.15) объединяет обе частные производные в точке р = (х, у). Символ V/читается «набла /». Правильнее было бы писать [grad/)(p) и т. д., но мы будем опускать позицию пикселя р, чтобы формулы было проще читать. Направление нормали п = — — +1 Эх Эу -|Т (1.16) может совпадать с положительным или отрицательным направлением оси и; мы выбрали положительное направление, поэтому в формальном определении фигурирует +1. Углом наклона ^=arccos 1 п (1.17) называется угол между осью и и нормалью п. Первые производные позволяют вычислить длину (или модуль) градиента и нормали: 1/ЗтЛ2 Э/ l|grad/||2 = A — Эх + \ОЛ J (-Т и (1.18) п (-Т +1 Из рис. 1.12 и следующего за ним обсуждения мы делаем вывод: Наблюдение 1.1. Похоже, имеет смысл искать границы в точках, где модули Hgrad /||2 или ||п||2 достигают локального максимума. Вторые производные. Вторые производные объединяются в лапласиан I, определяемый как
1.1. Изображения в пространавенной облааи 33 А/ = V2/ = д21 д21 + .2 ' дх2 ду2 или квадратичную вариацию I, определяемую как1 (1.19) 'э2/^2 дх2 + 2 Э2/ дхду \ + 'э2/л2 ду2 (1.20) Отметим, что лапласиан и квадратичная вариация - скаляры, а не векторы, как градиент и нормаль. Таким образом, мы приходим к следующему выводу. Наблюдение 1.2. Похоже, имеет смысл искать границы в точках, где лапласиан Д/ или квадратичная вариация переходят через ноль. Карты границ и способы выделения границ. Операторы выделения границ преобразуют изображения в граничные изображения, или карты границ; пример см. на рис. 1.14. Не существует «общего определения границы», а стало быть, и «общего детектора границ». I J4b Рис. 1.14. Полутоновое изображение WuhanU (слева) преобразовано в граничное изображение (или карту границ) (в середине) и раскрашенную карту границ (справа). Цвет можно использовать для иллюстрации направлений или силы границ. Изображено главное административное здание Уханьского университета в Китае В пространственной области границы можно обнаружить, следуя ступенчато-граничной модели (см. разделы 2.3.3 и 2.4) или с помощью остаточного изображения относительно сглаживания (см. разделы 2.3.2 и 2.3.5). Разрывы можно обнаружить и в частотной области, например с помощью фильтра верхних частот, как описано в разделе 2.1.3, или путем применения фазово-конгруэнтной модели; см. описание этой модели в разделе 1.2.5 и алгоритм ее использования в разделе 2.4.3. 1 Точнее, функция I удовлетворяет условию дважды дифференцируемости, если I -°-L I = I -°-L В (1.20) мы предположили, что это условие выполнено. у дхду ) ydydxj
54 ♦ Глава 1. Данные изображения 1.2. Изображения в частотной области Преобразование Фурье относится к традиционным способам обработки сигналов. В этом разделе мы приведем основные сведения о преобразовании Фурье и о фильтрации Фурье, а заодно объясним смысл фраз «высокочастотная информация» и «низкочастотная информация» применительно к изображениям. Двумерное преобразование Фурье переводит изображение из пространственной в частотную область, полностью меняя его представление (хотя математически оба представления эквивалентны). 1.2.1. Дискретное преобразование Фурье Двумерное дискретное преобразование Фурье (ДПФ) отображает скалярное изображение / размера NcoIsxNrom в комплексное преобразование Фурье I. Таким образом, это отображение пространственной области изображения в частотную область преобразования Фурье. Врезка 1.2 (преобразование Фурье и интегральные преобразования). Жан-Батист Жозеф Фурье (1768-1830) - французский математик. Он изучал функциональные ряды и интегралы, ныне носящие его имя. Преобразование Фурье - наиболее известный пример интегрального преобразования. С ним связано вычислительно более простое косинусное преобразование, которое используется в базовой версии алгоритма кодирования изображений JPEG. Преобразование Фурье и фильтрация Фурье - общие сведения. Анализ или изменение данных в частотной области дает полезную информацию об изображении I. В частотной области к изображению применяются операции фильтрации Фурье. Затем двумерное обратное ДПФ переводит модифицированное преобразование Фурье в модифицированное изображение. Весь этот процесс называется фильтрацией Фурье и позволяет, например, усилить контрастность, убрать шумы или сгладить изображение. Одномерная фильтрация Фурье часто применяется в теории обработки сигналов (например, при обработке звуковых сигналов в мобильном телефоне), а двумерная фильтрация изображений построена на тех же принципах, только не на прямой, а на плоскости. В контексте преобразования Фурье мы будем предполагать, что координата а: изображения изменяется от 0 до iVco/s - 1, а координата у - от 0 до N - 1; иначе во всех формулах пришлось бы писать а: - 1 и у - 1.
1.2. Изображения в чааотной облааи 35 Двумерное преобразование Фурье. Формально двумерное дискретное преобразование Фурье определяется следующим образом: I(u,v) = 1 Ncols-Nri N i -\ N -1 1 v cols l 1 v rows l x=0 y=0 f -iln xu yv . N V cols N, rows J (1.21) для частот u = 0,1,..., Ncols - 1 и v = 0,1,..., iVrow5 - 1. Буква i = V^l обозначает (в этой книге только в контексте преобразований Фурье) мнимую единицу2. Для любого вещественного а формула Эйлера ехр(/а) = eia = cos а + / • sin а (1.22) показывает, что преобразование Фурье на самом деле является взвешенной суммой синуса и косинуса, только в комплексной плоскости. Если угол а не принадлежит интервалу [0, 2я), то в этой формуле его значение берется по модулю 2тт. Число Эйлера е = 2,71828... = ехр(1). Врезка 1.3 (Декарт, Эйлер и комплексные числа). Рене Декарт (1596-1650), французский ученый, оказавший огромное влияние на современную математику (например, он изобрел декартовы координаты), называл отрицательные решения квадратного уравнения а-х2 + Ь-х + с = 0 «ложными», a комплексные решения «мнимыми». Швейцарский математик Леонард Эйлер (1707-1783) понял,что е'а = cos а + / • sin а, где е= limn^oo(l + 1/п)п = 2,71828....Это внесло важный вклад в принятие комплексных чисел научным сообществом в конце XVIII века. Комплексное число имеет действительную и мнимую части, это понятие позволило упростить математику. Например, благодаря им стало возможно сформулировать основную теорему алгебры, утверждающую, что любой полином имеет хотя бы один корень. Многие задачи математического анализа, физики, техники и других научных дисциплин удобнее всего решать в терминах комплексных чисел, даже тогда, когда мнимая часть решения не используется. 1.2.2. Обратное дискретное преобразование Фурье Двумерное обратное ДПФ переводит преобразование Фурье I назад в пространственную область: ^ cols ~1 ^rows ~* 1(х,у)= ]£ ^ I(w,v)exp \Пл и=0 v=0 / Л xu yv \ . N V cols N, rows J (1.23) В физике и электротехнике используют букву/ вместо z, чтобы отличить ее от силы тока.
56 ♦ Глава 1. Данные изображения Отметим, что показатели степени в экспоненте противоположны степеням в формуле (1.21) (т. е. знак минус заменен на плюс). Варианты формул преобразования. Определения ДПФ и обратного ДПФ могут варьироваться. Можно поставить знак плюс в ДПФ и знак минус в обратном ДПФ. Можно включить масштабный коэффициент ^■/(Ncols • Nrom) в ДПФ и коэффициент 1 в обратное преобразование. Важно, чтобы произведение коэффициентов в ДПФ и в обратном ДПФ было равно 1/(JV , • N ). Можно было бы представить величину 1/(N , • N ) г I \ cols rows' f 1-^ j i v co/s rows' в виде произведения двух одинаковых масштабных коэффициентов, равных 1/ViV , -JV . с ' cols rows Базисные функции. Формула (1.23) показывает, что изображение / представлено в виде взвешенной суммы базисных функций ехр(гос) = cos a + i sin а, являющихся линейными комбинациями синуса и косинуса на комплексной плоскости. На рис. 1.15 показано пять таких базисных функций sin(u + nv), соответствующих мнимым частям Ъ комплексных чисел а + ib в комплексной плоскости uv; для вещественной части а надо было бы взять косинусы вместо синусов. Рис. 1.15. Слева вверху: волны на воде. Остальные рисунки: длина волн, описываемых функциями sin(u + nv) для п = 1,..., 5, убывает (а стало быть, частота возрастает) с ростом п Значения I(u, v) преобразования Фурье изображения / в формуле (1.23) называются коэффициентами Фурье; это веса при базисных функ-
1.2. Изображения в частотной области 37 циях ехр(гсс). Например, в представлении точечного шума или границ такой взвешенной суммой коэффициенты при высокочастотных (с малой длиной волны) компонентах должны быть достаточно велики. 1.2.3. Комплексная плоскость Мы кратко обсудим элементы, участвующие в определении ДПФ (1.21), чтобы читатель лучше понимал это фундаментальное для обработки сигналов преобразование. Очень часто комплексное число а + i • Ъ наглядно представляют точкой (а, Ъ) или вектором [а, Ъ] на комплексной плоскости (см. рис. 1.16). Мнимая часть Действительная часть Рис. 1.16. Единичная окружность на комплексной плоскости. Обозначены все степени числа W= /2л/24. На рисунке также показано одно комплексное число z = а + ib и его полярные координаты (г, ос) Операции с комплексными числами. Пусть z1 = ах + i • bl и z2 = a2+i-b2- два комплексных числа. Здесь / = V11!, a1 и а2 - действительные части, а Ъх и Ъ2 - мнимые части. По определению z1 + z2=(fl1 + fl2) + i-(b1 + b2) (1.24) и z\'zi= (а\аг~ ^А) + z' (flA + aPi- (1.25) Сумма и произведение двух комплексных чисел снова являются комплексным числом, и обе операции обратимы (т. е. определены вычитание и деление комплексных чисел; см. определение z~l ниже).
58 ♦ Глава 1. Данные изображения Модулем (или нормой) комплексного числа z = a + i-b называется длина вектора [а, Ь]т (с началом в начале координат [О, 0]Т) в смысле нормы L2, т. е. ||z||2 = Vfl2 + b2. Число z* = a- i-b называется сопряженным к числу z = a + i-b. Имеет место тождество (z*)* = z. Кроме того, (zl • z2)* = z*- z* и в предположении, 4toz^0,z-1 = ||z||2_2-z*. Комплексные числа в полярных координатах. Комплексное число z можно также записать в виде z = г • е'а, где г = ||z||2, а а (аргумент числа z) определен с точностью до кратного 2л, если z Ф 0. Тем самым мы получаем представление комплексных чисел в полярных координатах (г, а). Результатом поворота вектора [с, d]T (с началом в начале координат [0, 0]т) на угол а является такой вектор [а, Ь]т, что a + i-b = eia-(c + i-d). (1.26) Корни из единицы. Комплексное число WM = ехр[/2я/М] называется М-м корнем из единицы. Имеем W*j = W™ = W^= ... = 1. Предположим, что М кратно 4. Тогда WJ = 1 + i • 0, W™/4 = 0 + i • 1, W™/2 = -1 + / • 0 Врезка 1.4 (быстрое преобразование Фурье). Свойства М-х корней из единицы, когда М - степень двойки, лежат в основе оригинального алгоритма быстрого преобразования Фурье (БПФ) - эффективной реализации ДПФ. У проектирования БПФ интересная история, см. [J. M. Cootey, P. A. Lewis, P. D. Welch. History of the fast Fourier transform. Proc. IEEE 55,1967, p. 1675-1677]. Его истоки восходят еще к Карлу-Фридриху Гауссу (см. врезку 2.4). Но популярность алгоритм приобрел благодаря работе [J. M. Cooley, J. W. Tukey. An algorithm for the machine calculation of complex Fourier series. Math. Сотр. 19,1965, p. 297-301]. Алгоритм БПФ обычно выполняется «на месте»: исходное изображение используется для инициализации матрицы Ncol5xNrows действительных частей, а матрица мнимых частей инициализируется нулями. Затем производится двумерное ДПФ, и все элементы обеих матриц заменяются его результатами. На рис. 1.16 показаны все степени корня из единицы 24-й степени, W24 = ei2n/24. В этом случае W£4= е°= 1, Щ4= cos л/12 + i sin л/12, Щ4= cos л/2 + / sin л/2 = /, WH = cos л + / sin л = -1, a W™ = cos Зл/2 + / sin Зл/2 = -L Формулу (1.21) можно упростить, воспользовавшись корнями из единицы. Легко видеть, что
1.2. Изображения в чааотной облааи ♦ 59 ■»' rnlv * ** ты)? *■ 1 ^cols * ^rows 1 «»>*>= л, », I s я^)-^--^:,. а.27) cols rows х=0 у=0 Для любого корня из единицы Wn = i2n/n, n > 1, и для любой степени m G Z имеет место тождество FT. Икт/п = ^cos(2;rm / и)2 + sm(27rm I nf = 1. (1.28) Поэтому все степени корня из единицы расположены на единичной окружности, как показано на рис. 1.16. 1.2.4. Данные изображения в частотной области Комплексные значения двумерного преобразования Фурье находятся в частотной области uv. Значения для низких частот и или v (близких к 0) соответствуют компонентам синуса и косинуса с большой длиной волны, а значения для высоких частот и или v (удаленных от нуля) соответствуют коротким волнам. Примеры синусоидальных волн приведены на рис. 1.15. Интерпретация матрицы I. Низкие частоты соответствуют длинным волнам и, стало быть, однородным аддитивным вкладам в исходное изображение /. Высокие частоты соответствуют коротким волнам и, следовательно, локальным изломам в /, например границам или аномальным выбросам яркости. Направленные структуры в /, например прямые линии под углом /? или /? + я, создают распределения значения в I в ортогональном направлении (в нашем примере - в направлении /? + я/2). В изображениях начало координат расположено в левом верхнем углу (поскольку мы предполагаем левостороннюю систему координат, см. рис. 1.1). Значения матрицы I можно периодически повторить на плоскости с периодами Ncols и Nrows. Такое бесконечное количество копий матрицы I образует замощение плоскости прямоугольным орнаментом (см. рис. 1.17). Если мы захотим поместить начало координат (т. е. область низких частот) в центр преобразования Фурье, то сможем сделать это путем перестановки всех четырех квадрантов матрицы. Также (и это нетрудно проверить математически) такой сдвиг I в центр можно реализовать, сначала умножив все значения Дат, у) на (-1)х+у, а затем выполнив двумерное ДПФ. Три свойства ДПФ. Мы рассматриваем двумерное преобразование Фурье изображения /. Оно состоит из двух массивов размера Ncols*NroM/s,
40 Глава 1. Данные изображения представляющих действительные (т. е. величины а) и мнимые (т. е. величины Ъ) части полученных комплексных чисел а + / • Ъ. Таким образом, реальные данные входного изображения / - один массив размера NcolsxNrows - теперь «удвоились». Но имеет место важное свойство симметричности: l(Nh - и, iV - v) = I(-u, -v) = I(u, v)* rows (1.29) (напомним, что в правой части находится комплексно-сопряженное число). Следовательно, одну половину данных в обоих массивах, составляющих I, можно получить из другой. Второе свойство выглядит так: 1(0,0) = 1 ,-i N -N cols rows ^ cols 1 ^rows y=0 (1.30) x=0 В правой части находится среднее значение /. Поскольку / содержит только действительные значения, отсюда следует, что мнимая часть 1(0, 0) всегда равна нулю. Благодаря приложениям преобразования Фурье в электротехнике средняя величина сигнала 1(0, 0) называется постоянной составляющей / (имеется в виду постоянный ток). Для любой другой частоты (и, v) ф (0, 0), I(u, v) называется переменной составляющей / (имеется в виду переменный ток). } Низкие Низкие /\ —с^'^Высокие ^^» Низкие у Низкие • • • Рис. 1.17. Закрашенная область соответствует матрице I размера Ncol*Nrows. Она окружена во всех сторон еще восемью копиями I. Начала координат всегда находятся в левом верхнем углу. Благодаря периодичности область низких частот располагается внутри эллипсов, т. е. в четырех углах матрицы 1,а самые высокие частоты находятся в центре I
1.2. Изображения в чааотной облааи ♦ 41 Третье свойство выражается теоремой Парсеваля ЛЦ/(х^)Г=1|К«,у)|2, (1.31) которая утверждает, что суммы квадратов модулей значений пикселей исходного изображения / и элементов матрицы его преобразования Фурье I совпадают; масштабный коэффициент 1/|Q| присутствует лишь потому, что мы решили включать этот коэффициент только в прямое преобразование. Врезка 1.5 (Парсеваль и теорема Парсеваля). Французский математик Марк-Ан- туан Парсеваль (1755-1836) известен теоремой о том, что интеграл квадрата функции равен интегралу квадрата ее преобразования Фурье.Тождество (1.31) представляет собой дискретный вариант этой теоремы, в котором интегралы заменены суммами. Спектр и фаза. Норма L2, называемая также модулем или амплитудой \\z\\2 = г = Va2 + Ь2, и аргумент, или фаза а = atan2(b, а), образуют представление комплексного числа z = а + i • Ъ в полярных координатах (г, а)3. Норма заслуживает внимания, потому что дает удобный способ представить комплексную матрицу I в форме спектра ||1||. (Точнее, ||I||(u, v) = ||I(u, v)||2 для всех Ncols • Nrows частот (ы, v).) Если представить типичный спектр ||1|| в виде полутонового изображения, то получится черный прямоугольник с яркой точкой в начале координат (представляющей среднее). Все дело в том, что значения I, как правило, довольно малы. Чтобы повысить наглядность, спектр обычно подвергают логарифмическому преобразованию log10(l + ||I(i/, v)||2). См рис. 1.18. Визуализация фазовых компонент I применяется не так часто, но это не значит, что фаза не важна для представления содержащейся в изображении информации. Изображение на нижнем рис. 1.18 характеризуется наличием направленной структуры, в спектре она повернута на угол я/2. В примере на верхнем рисунке нет преобладающего направления, поэтому нет его и в спектре. На рис. 1.19 видно, что однородное преобразование входного изображения, например прибавление константы к значению каждого пикселя, выравнивание гистограммы или инверсия значений, не изменяет характер распределения значений в спектре. Функция atan2(b, а) с двумя аргументами возвращает арктангенс величины b/а, т. е. угол в диапазоне [0,2л), вычисленный с учетом знаков аргументов.
42 Глава 1. Данные изображения Рис. 1.18. Слева: Исходные изображения Fibers и Straw. Справа: спектры этих изображений после центрирования и логарифмического преобразования Пары Фурье. Исходное изображение и его преобразование Фурье определяют пару Фурье. Приведем несколько примеров пар Фурье, лаконично выражающих некоторые свойства преобразования Фурье: функция I^ee преобразование Фурье I 1(х, у) ^ 1(ы, v) / * G(x, у) <^> I о G(u, v) / 1(х,у)-(-1ГУ <*1 N и cols N.. ,V + 2 2 а • I(x, y) + b- J{x, у) **а- l(u, v) + Ъ • ](и, v).
1.2. Изображения в частотной области ♦ 45 Рис. 1.19. Левый столбец, сверху вниз: исходное низкокачественное изображение Donkey в формате jpg (взято из открытых источников), оно же после выравнивания гистограммы (проявились артефакты jpg) и после инвертирования уровней яркости. Справа: на соответствующих спектрах нет существенных изменений, потому что «структура изображения» осталась той же
44 ♦ Глава 1. Данные изображения Первая строка выражает просто общее соответствие. Вторая строка говорит, что преобразование Фурье свертки / с ядром (фильтром) G совпадает с поэлементным произведением преобразований Фурье J и G; ниже мы обсудим это важное свойство, известное под названием теоремы о свертке, оно составляет теоретическую основу фильтрации Фурье. Третья строка выражает уже упоминавшееся выше свойство сдвига преобразования Фурье в центр, если пиксели исходного изображения в шахматном порядке умножаются на +1 и -1. Наконец, четвертая строка - это краткое выражение линейности преобразования Фурье. Поворот основных направлений показан на рис. 1.20, аддитивное поведение - в правом верхнем примере на рис. 1.21. Рис. 1.20. Простые геометрические фигуры, показывающие, что основные направления, присутствующие в изображении, в спектре поворачиваются на 90° (например, вертикальная полоса порождает дополнительную горизонтальную полосу в спектре) 1.2.5. Фазово-конгруэнтная модель признаков изображения С помощью фазовой конгруэнтности мы количественно описываем соответствие фаз, вычисленных в окне изображения с начальной точкой р; ниже оно выражено мерой Т Dhase(p).
1.2. Изображения в частотной области ♦ 45 Рис. 1.21. Слева вверху: идеальная волновая структура порождает неотрицательные значения только при v= 0. Слева внизу: диагональная волновая структура подвержена влиянию «эффекта конечного массива». Справа вверху: наложенная диагональная волновая структура, сравните со спектром ДПФ на рис. 1.19. Справа внизу: мы наложили очень простую маску в частотной области, блокирующую все значения, расположенные на черной диагонали; обратное ДПФ порождает отфильтрованное изображение, показанное справа, диагональная структура почти убрана Локальное преобразование Фурье в особых точках изображения. Формула (1.23) описывает входной сигнал в частотной области как сумму синусоидальных и косинусоидальных волн. На рис. 1.22 это показано для одномерного сигнала: ступенчатая кривая - это входной сигнал, который в частотной области разложен в набор синусоид и косинусоид, сумма которых приближенно совпадает с входным сигналом. В точке, где имеет место ступенька, все кривые находятся в одной фазе. Обсуждая преобразование Фурье, мы заметили, что вещественно- значные изображения отображаются в комплекснозначные преобразования Фурье и что каждое комплексное число z = а + У-ТЬ люжно представить в полярных координатах амплитудой ||z||2 = г = Va2 + b2 и фазой а = arctan(b/a). Здесь мы не употребляем букву i для обозначения мнимой единицы, потому что ниже она используется как индекс суммирования. Согласно формуле (1.30), в начале координат частотной области Ъ = 0, т. е. фаза постоянной составляющей а = 0. Рассмотрим локальное преобразование Фурье с центром в пикселе р = (х, у) изображения /. В нем используется ядро фильтра размера (2k + l)x(2fc + 1), состоящее из базисных функций Фурье: J(w'v)=т^Гг^ £ X/(*+и y+jy w^ •w™ - (1 -32) yAK + I) i=_k J=_k
46 Глава 1. Данные изображения Рис. 1.22. Одномерный ступенчатый сигнал (жирная серая линия) и его частотные составляющие (от коричневого до оранжевого), сложение которых дает синий сигнал, аппроксимирующий идеальную ступеньку Если игнорировать постоянную составляющую с нулевой фазой (которая не играет никакой роли при поиске границ), то получающееся преобразование Фурье J состоит из п = (2к + I)2 - 1 комплексных чисел zh, каждое из которых определено амплитудой rh = |^Л||2и фазой ай, 1 < h < п. Мнимая часть А Действительная часть Рис. 1.23. Сложение четырех комплексных чисел, представленных полярными координатами (rh, ah) на комплексной плоскости На рис. 1.23 показано сложение четырех комплексных чисел, представленных амплитудами и фазами, и получающееся в результате комплексное число z. Все четыре числа (гй, ah) приблизительно синфазны, т. е. фазовые углы ah не сильно различаются. Такое приближенное совпадение фаз по-другому можно назвать высокой фазовой конгруэнтностью. Формально это свойство определяется мерой idealphase (Р) = (1.33)
1.5. Цвет и цветные изображения ♦ 47 где z - сумма всех п комплексных векторов, представленных координатами (rh, ah). Если Tideal hase(p) = 1, то фазовая конгруэнтность идеальна, а если Tideal hase(p) = 0, тофазовые углы в точности противоположны. Наблюдение 1.3. Локальная фазовая конгруэнтность свидетельствует о наличии особой точки (признака) в изображении. В рамках модели фазовой конгруэнтности ступенчатые границы представляют лишь один узкий класс бесконечно разнообразных признаков. Фазовая конгруэнтность позволяет выделить прямые линии, углы, «коньки крыш» и непрерывный диапазон гибридных признаков, промежуточных между прямыми и ступеньками. Врезка 1.6 (история фазовой конгруэнтности). Фазовая конгруэнтность была предложена в качестве меры в работе [M.CMorroneJ. R.Ross, D. С. Burr and R.A. Owens. Mach bands are phase dependent. Nature, vol. 324, November, 1986, p. 250- 253], где были подведены итоги исследования связей между признаками в изображении и коэффициентами Фурье. На рис. 1.24 приведен пример применения алгоритма Ковеси (описывается ниже в разделе 2.4.3), реализующего модель фазовой конгруэнтности. Рис. 1.24. Слева: исходное изображение AnnieYukiTim. Справа: карта границ, получающаяся в результате применения алгоритма Ковеси 1.3. Цвет и цветные изображения Воспринимаемый цвет не имеет объективного определения. Разные люди воспринимают цвета по-разному, да и освещение играет немаловажную роль. В отсутствие света нет цвета, как, например, внутри непрозрачного тела. Цвет может быть важной составной частью данных изображения, а условные цвета ценны для визуализации данных (см., например, рис. 7.5). Человек может различить лишь несколько десятков
48 ♦ Глава 1. Данные изображения оттенков серого на экране, но при этом различает от нескольких сотен до нескольких тысяч цветов. В этом разделе мы расскажем о различных интересных вопросах, связанных с понятием цвета, и объясним, как устроены цветовые модели RGB и HSI, которые часто применяются в ходе анализа цветных изображений и для визуализации данных с помощью цвета.
1.5. Цвет и цветные изображения 49 1.3.1. Определения цвета «Средний человек» воспринимает цвета видимого спектра следующим образом (напомним, что 1 нм = 1 нанометр = 10~9 м): 1) красный (приблизительно от 625 до 780 нм) и оранжевый (приблизительно от 590 до 625 нм) соответствуют длинноволновой части видимого спектра (за которой следует инфракрасная область); 2) желтый (приблизительно от 565 до 590 нм), зеленый (приблизительно от 500 до 565 нм) и голубой (приблизительно от 485 до 500 нм) занимают среднюю часть видимого спектра; 3) синий (приблизительно от 440 до 485 нм) соответствует короткой длине волны, например так выглядит небо в ясный день, когда солнце стоит высоко и нет ни облаков, ни загрязнения воздуха (но длина световой волны короткая из-за влияния многослойной атмосферы); 4) фиолетовый (приблизительно от 380 до 440 нм) - соответствует самой коротковолновой части видимого спектра, за которой следует ультрафиолетовая область. Цветовые компоненты. Международная комиссия по освещению (CIE - Commission Internationale de l'Eclairage) начиная с 1930-х гг. определила несколько цветовых стандартов. 380 Рис. 1.25. Слева: пример кривой распределения энергии ЦХ) для бытовой лампы накаливания, излучающей монохроматический свет с длиной волны Л от 380 нм до 780 нм. Справа: функции распределения энергии х(Я) (синий), у (Я) (зеленый) и z (Я) (красный), используемые для определения цветовых компонент X, Yv\Z Источник света создает распределение энергии L(X) в видимом спектре монохроматического света с длиной волны 380 < Я < 780. См. пример на рис. 1.25 слева. Это распределение энергии отображается на три
50 ♦ Глава 1. Данные изображения цветовые компоненты X, У и Z посредством интегрирования заданной функции распределения энергии L, умноженной на весовые функции распределения энергии х, у и z: /•700 Х=\ ЦЛ)х(Л)йЛ, (1.34) J400 •700 л/ии Y = ] ЦЛ)у(Л)йЛ, (1.35) /•700 Z = j Ь(ЛЩЛ)<1Л. (1.36) Весовые функции х, у и z определены CIE в пределах видимого спектра. Границы их областей определения не точно соответствуют способности человека воспринимать более короткие (до 380 нм) или более длинные (до 810 нм) длины волн. Все три кривые нормированы, так чтобы их интегралы были равны: /•700 л 700 л 700 \ х{Л)&Л = Г у(Л)&Л = Г 2(Л)6Л. (1.37) J 400 «MOO J 400 Например, значение У моделирует яркость, или приближенно зеленую компоненту заданного распределения L. Соответствующая кривая распределения энергии у была построена путем моделирования реакции «среднего человеческого глаза» на количество света. См. пример на рис. 1.25 справа. По цветовым компонентам X, У и Z определяются нормированные параметры ху: х = и у = . (1.38) X+Y+Z X+Y+Z Если У задано, то по известным а: и у мы можем вычислить X и Z. Если еще определить z = Z/(X + Y+ Z), то будем иметь а: + у + z = 1, поэтому третье значение z на самом деле лишнее. Цветовое пространство ху, определенное CIE. Параметры х и у определяют двумерное цветовое пространство СШ, в котором представлены «только» цвета, но не яркость. Обычно цветовое пространство ху представляется диаграммой цветности, изображенной на рис. 1.26. Она занимает область 0 < х, у < 1. Эта диаграмма показывает только цветовую гамму человеческого зрения, т. е. цвета, которые различает средний человек; оставленные белыми части квадрата находятся в невидимой части спектра.
1.5. Цвет и цветные изображения ♦ 51 Рис. 1.26. Диаграмма цветности в цветовом пространстве xyCIE Выпуклая внешняя кривая на диаграмме содержит монохроматические (чистые спектральные) цвета. Прямой угол внизу (фиолетовая линия) содержит цвета, не являющиеся монохроматическими. Во внутренней части цветовой гаммы находятся менее насыщенные цвета, а в самом центре Е = (0,33, 0,33) - белый. Показанный треугольник содержит гамму первичных RGB-цветов, которые в стандарте CIE определены длинами волн: 700 нм - красный, 546,1 нм - зеленый, 435,8 нм - синий; последние две - это монохроматические линии в спектре испускания паров ртути. 1.3.2. Цветовое восприятие, дефекты зрения и уровни серого При подготовке рисунков для отчетов, публикаций или докладов имеет смысл подумать о выборе правильной цветовой схемы, чтобы аудитория наилучшим способом воспринимала изображенное. Цветовая слепота. У двух распределений энергии в видимом спектре Lj(X) и L2(X) могут быть различные кривые, но человек Я может воспринимать цвета как одинаковые. Формально это записывается в виде Lx=Lr (1.39)
52 ♦ Глава 1.Данные изображения Врезка 1.8 (различные цветовые гаммы носителей информации). Цветовая гамма - это диапазон доступных цветов (например, «воспринимаемая», «печатная» или «отображаемая»). Она зависит от используемого носителя. Изображение на экране может выглядеть совсем не так, как то же изображение, напечатанное на бумаге, потому что у экрана и принтера разные цветовые гаммы. Возможно, вы встречали подобное предупреждение в своем графическом редакторе. j Cancel 'Лг'п ~g о-: of garrut fcr or ^tmg I Как правило, у прозрачных носителей (телевизор, экран компьютера или слайды) цветовая гамма значительно шире, чем у печатных материалов. Это показано на следующем (очень приблизительном!) наброске. К числу наиболее распространенных цветовых гамм (они также называются цветовыми пространствами) относятся, например, DCI-P3, Rec709 и sRGB. Преобразование цветов из одной гаммы в другую - важная тема в обработке цветных изображений. Под цветовой слепотой понимается неспособность различить некоторые цвета. Приблизительно в 99% случаев не отличают красный цвет от зеленого. Полная цветовая слепота (когда человек видит только оттенки серого) встречается крайне редко. Согласно оценкам, среди представителей европейской расы красно-зеленой цветовой слепотой страдают приблизительно 8-12% мужчин и 0,5% женщин. Человек с нормальным цветовым зрением видит среди точек на рис. 1.27 цифру 5, а люди с красно-зеленой цветовой слепотой - цифру 2. Наблюдение 1.4. Если для презентации используются красные и зеленые цвета, то в европейской аудитории указанный выше процент людей может увидеть не то, что вы хотели показать. Врезка 1.9 (Дальтон, Ишихара и цветовой тест Ишихары). Красно-зеленая цветовая слепота была открыта химиком Дж.Дальтоном (1766-1844), обычно ее называют дальтонизмом. Японский офтальмолог С. Ишихара (1879-1963) со своим ассистентом (врачом, страдавшим дальтонизмом) разработал серию тестов для диагностики цветовой слепоты. п
1.3. Цвет и цветные изображения ♦ 55 Рис. 1.27. Тест Ишихары. Большинство людей видят цифру 5, но некоторые - цифру 2 Алгебра цветового зрения. Под сложением двух цветов L и С понимают суперпозицию световых спектров L(X) и С(А). Экспериментально установлено (Р. П. Фейнман, 1963 г.), что Lj + С = L2 + С, если Lx = L2; (1.40) aLx = aL2, если Ьг=Ь2 и 0 < а < 1. (1-41) Эти уравнения определяют (для испытуемого Я) алгебру цветового восприятия посредством линейных комбинаций общего вида aL + ЪС. Если вы захотите поставить подобные эксперименты, то имейте в виду, что в компьютерных мониторах применяется гамма-коррекция с некоторым у > 0. При задании значения цветового канала и = к/2а (например, для каналов R, G, В) на экране на самом деле отображается значение иу, где у < 1 означает гамма-сжатие, ау >1 - гамма-расширение. На восприятие изменений цвета влияет значение y- Основные типы цветового восприятия. Люди воспринимают цвета по-разному; «цвет» - это физиологическое явление. Но принято считать, что желтый (верхний ряд в цветовой пирамиде на рис 1.28), красный (правый столбец), зеленый (левый столбец) и синий (нижний ряд) определяют четыре основных типа цветового восприятия.
54 ♦ Глава 1. Данные изображения Чтобы избежать недопонимания, связанного с зеленым и красным цветами, можно, например, использовать для презентации желтый, красный и синий в качестве основных цветов. Уровни серого. Уровни серого (или уровни яркости) - это не цвета, они описываются светимостью (физической интенсивностью) или яркостью (воспринимаемой интенсивностью). Обычно используется равномерная шкала уровней яркости, например: uk=k/2a для 0<к<2а, (1.42)
1.5. Цвет и цветные изображения ♦ 55 где и0 = 0 соответствует черному, а ы2<м ~ 1 - белому. В главе 1 мы приняли решение представлять такие уровни яркости целыми числами 0, 1,..., G =2а- 1, а не дробями от 0 до 1. Щ-Ц- ~ J п ' I. Пищ» innmii^^^^^M 1 -4-4- —■ ТТТТТТТД Н5в1 Рис. 1.28. Четыре основных типа цветового восприятия Оба квадрата на верхнем рис. 1.29 имеют одну и ту же постоянную яркость. Но человек воспринимает отношение яркостей. На нижнем рис. 1.29 во всех трех случаях отношение яркостей внутреннего и внешнего прямоугольников составляет 5:6. Визуально очень трудно различить немного различающиеся, но очень темные оттенки серого. Человеческий глаз гораздо лучше замечает очень яркие оттенки серого. Рис. 1.29. Вверху: два квадрата одинаковой яркости. Внизу: три примера отношения уровней яркости 5:6
56 ♦ Глава 1. Данные изображения 1.3.3. Представления цвета На рис. 1.4 показано цветное RGB-изображение и его представление в трех скалярных каналах, по одному для красной, зеленой и синей компонент. Цветовая модель RGB аддитивна: добавление цвета, т. е. увеличение значений в скалярном представлении, приближает цвет к белому. Это стандартный способ представления цветов на экране. Но для печати используются субтрактивные цветовые модели: добавление цвета означает увеличение количества краски, а значит, приближает цвет к черному. Цветовое пространство RGB. Предположим, что 0 < R, G, В < Gmax, и рассмотрим многоканальное изображение / со значениями пикселей u = (R, G, В). Если Gmax = 255, то имеется 16777216 различных цветов, например: и = (255,0,0) - красный, и = (255,255,0) - желтый и т. д. Множество всех возможных значений RGB определяет RGB-куб - стандартное представление цветового пространства RGB. См. рис. 1.30.
1.5. Цвет и цветные изображения 57 Сиреневый Красный R Черный Голубой Зеленый G Желтый Рис. 1.30. RGB-куб, построенный на осях Красный, Зеленый, Синий. Показан один цвет q, определенный значением тройки (/?, 6, В) Диагональ куба, соединяющая вершины Белый (255, 255, 255) и Черный (0,0,0), - это геометрическое место всех уровней серого (и, и, и), не являющихся цветами. В общем случае точка q = (R, G, В) внутри или на границе RGB-куба определяет либо цвет, либо уровень серого, а среднее R + G + B М = (1.43) равно интенсивности цвета или уровня серого q. Цветовое пространство HSI. Рассмотрим секущую плоскость RGB- куба, перпендикулярную диагонали уровней серого, и пусть точка q = (R, G, В) лежит на этой плоскости, но не принадлежит диагонали (см. также рис. 1.33). Получившееся сечение мы можем представить абстрактным кругом, игнорируя тот факт, что на самом деле сечение куба плоскостью является многоугольником. См. рис. 1.31. Рис. 1.31. Ось интенсивности направлена вдоль диагонали уровней серого в RGB-кубе. В сечении куба плоскостью выделим один цвет (в данном случае красный) в качестве опорного.Точку q можно описать интенсивностью (средним значением), оттенком - углом относительно опорного цвета (в данном случае красного, угол отсчитывается, скажем, против часовой стрелки) и насыщенностью, которая измеряется расстоянием до оси интенсивности
58 ♦ Глава 1. Данные изображения В этом круге мы зафиксируем один опорный цвет, на рис. 1.31 это красный. Положение точки q внутри круга однозначно определяется углом Н (оттенок) и приведенным расстоянием S (насыщенность) до точки пересечения с диагональю уровней серого. Формально Н = S если B<G (144) 2п-8 если B<G где (/? — СЛ -\- ( R — ИЛ S= arccos—, в диапазоне [0, л), (1.45) 2^(R-G)2+(R-B)(G-B) mm\R,G,B\ /i Ar. S= 1-3 l » » К (1.46) R + B + G Таким образом, мы определили цветовую модель HSL Мы будем обозначать интенсивность буквой М, а букву I оставим для обозначения изображений. Пример 1.2 (примеры RGB и HSI). Для уровней серого (и, и, и) при и ф 0 интенсивность М= и, а насыщенность S = 0, но оттенок Я остается неопределенным, поскольку не определен угол б (из-за деления на 0). Для черного цвета (0, 0, 0) интенсивность М = 0, а насыщенность и оттенок не определены. Если не считать этих случаев, которые в RGB-кубе соответствуют не цветам, то преобразование из RGB в HSI взаимно однозначно, т. е. значения HSI можно преобразовать обратно в RGB. Оттенок и насыщенность могут представлять векторы RGB относительно предполагаемой фиксированной интенсивности. Для красного цвета (Gmax, 0,0) интенсивность М= Gmax/3, оттенок Н = 0° (примечание: красный цвет был выбран в качестве опорного), а насыщенность S = 1. Насыщенность 5 всегда равна 1, если R = 0, или G = 0, или В = 0. Для зеленого цвета (0, Gmax, 0) интенсивность М = Gmax/3 и насыщенность 5=1; имеем S = arccos(-0,5), т. е. 6 = 2л/Ъ иН= 2я/3, поскольку В = 0 ^ G = Gmax. Для синего цвета (0, 0, Gmax) также получаем 8 = 2я/3, но Н = 4я/3, поскольку В = G > G = 0. max Предположим, что мы линейно отобразили 5 и Я в множество уровней серого {0, 1,..., Gmax} и визуализировали получившиеся изображения. Тогда, например, оттенок точки (Gmax, ev s2) может быть близок к черному или к белому в зависимости от небольшого изменения ех и е2. Почему? Этот эффект показан на левом нижнем рис. 1.32. На левом верхнем рис. 1.32 показана одна из цветовых таблиц, используемых для проверки камеры, которую предполагается использовать в приложениях компьютерного зрения. Она содержит три строки
1.5. Цвет и цветные изображения ♦ 59 очень точно (одинаково) окрашенных квадратиков, пронумерованных от 1 до 18, и одну строку квадратиков с уровнями серого. Если сделать фотографию этой таблицы, то результат будет зависеть от освещения. В предположении, что свет монохроматический, все серые квадратики должны выглядеть абсолютно одинаково в каналах красного (не показан), зеленого, синего и интенсивности. Канал насыщенности на рисунке справа внизу показывает, что для уровней серого насыщенность имеет нулевое значение, присвоенное программой. Конечно, в программе не может быть «неопределенных» случаев. Отметим, что оттенок опорного красного цвета (квадратик 15) «прыгает» между белым и черным, как и следовало ожидать. Рис. 1.32. Вверху: цветовая испытательная таблица, предложенная компанией Macbeth™, и канал зеленого. В середине: каналы синего и интенсивности. Внизу: каналы для визуализации оттенка и насыщенности с помощью уровней серого
60 ♦ Глава 1. Данные изображения Врезка 1.12 (Иттен и цветовое восприятие). Иоганнес Иттен (1888-1967, Швейцария) написал оказавшую большое влияние книгу «Искусство цвета», в которой рассматривал контрастность, насыщенность, оттенок и цвет с точки зрения человеческой психологии. Вкратце, он придавал цветам следующие смысловые значения: • красный: материя в состоянии покоя, цветторжественности и укрывистости; • синий: вечно мятущийся ум, расслабление и непрерывное движение; • желтый: свирепый и агрессивный, размышления, невесомый; • оранжевый: ярко светящийся, легкий и порывистый, энергия и развлечения, непопулярный цвет (впрочем, не стоит так говорить о нем в Нидерландах); • фиолетовый: античная пурпурная краска делалась из морских улиток и ценилась дороже золота,лишь царям дозволялось носить пурпурные одежды; цвет власти, религии и могущества или смерти и тьмы, цвет одиночества, но также преданности и духовной любви; • зеленый: покоящийся в центре, не активный и не пассивный, естественный, жизнь и весна, надежда и доверие, тишина и расслабленность, здоровый, но также отравленный. Иттен также ассоциировал с цветами геометрические фигуры, на рисунке выше приведено несколько примеров. Мы завершим этот краткий раздел о цвете замечанием, сделанным Леонардо да Винчи (1452-1519); см. [Записные книжки / Леонардо да Винчи. - М.: Эксмо, 2006]: Замечание 273: эффект цвета в камере-обскуре. Края окрашенного предмета, рассматриваемые через маленькую дырочку выглядят более отчетливо, чем центральные области. Края изображений любого цвета, рассматриваемые через небольшое отверстие в темной камере, всегда выглядят резче, чем средняя часть. В своих записных книжках Леонардо да Винчи оставил много интересных замечаний о цвете.
1.4. Упражнения ♦ 61 1.4. Упражнения 1.4.1. Упражнения по программированию Упражнение 1.1 (первое знакомство с программированием обработки изображений). Напишите (например, на Java, C++ или Matlab) программу, выполняющую следующие действия: 1) загрузить цветное (RGB) изображение / в формате без потери информации, например bmp, png или tiff, и показать его на экране; 2) отобразить гистограммы всех трех цветовых каналов /; 3) двигая мышь внутри изображения, для текущего пикселя р вычислить и отобразить a) внешнюю рамку (см. пояснение ниже) квадратного окна W размера 11 * 11 вокруг пикселя р (т. е. р будет центральной точкой этого окна); b) (над этим окном или в отдельном окне команд) координаты пикселя р под курсором мыши и значения компонентов RGB изображения в этой точке; c) (под этим окном или в отдельном окне команд) интенсивность [R(p) + G(p) + В(р)]/Ъ в точке р; d) среднее piw и стандартное отклонение aw ; 4) рассмотрите примеры окон изображения W (для выбранных вами изображений), в которых вы видите «однородные распределения значений изображения», и окон, в которых присутствуют «неоднородные области». Попытайтесь дать определение «однородного» и «неоднородного» в терминах гистограмм, среднего и дисперсии. Внешней рамкой квадратного окна 11 х 11 является квадрат 13><13 (который можно нарисовать, например, белым цветом) с центром в точке нахождения курсора. Вы должны динамически перерисовывать внешнюю рамку окна 11х 11 при перемещении курсора. Вместо этого можно было бы показать окно Их 11 в отдельном фрейме на экране. Подходите к задаче творчески: ваше решение может быть даже более элегантным, чем предложено в книге. Также приветствуется поиск функционально эквивалентных решений (пользователю предлагается одна и та же информация, время работы примерно одинаково и т. д.).
62 ♦ Глава 1. Данные изображения Врезка 1.13 (почемуне форматjpg?).JPG -формате потерей информации,т.е. сжатое изображение отличается от исходного, поэтому он, вообще говоря, непригоден для анализа изображений. При использовании форматов bmp, raw или tiff механизм сжатия не изменяет значения пикселей. В изображениях в формате jpg часто наблюдается блочная структура с блоками 8*8 (при увеличении), это следствие низкокачественного сжатия. Упражнение 1.2 (мера данных на последовательности изображений). Определите три меры данных 2).(t), i = 1,2, 3 для анализа последовательности изображений. Ваша программа должна выполнять следующие действия: 1) прочитать входную последовательность изображений (например, в формате VGA), содержащую не менее 50 кадров; 2) вычислить определенные вами меры £>(.(t), i = 1, 2, 3 для каждого кадра; 3) нормировать полученные функции, так чтобы у всех них были одинаковые средние и дисперсии; 4) сравнить нормированные функции, пользуясь нормой Lv Обсудите степень структурного подобия между мерами в зависимости от выбранной последовательности изображений. Упражнение 1.3 (различное влияние амплитуды и фазы в частотном пространстве на результаты фильтрации изображений). Предполагается, что у вас есть доступ к программе БПФ для прямого и обратного двумерного ДПФ. Задача состоит в том, чтобы исследовать проблему оценки информации, содержащейся в амплитуде и фазе преобразования Фурье. 1. Переведите изображения одинакового размера в частотную область. Отобразите получившиеся комплексные числа в амплитуды и фазы. Возьмите амплитуды одного изображения и фазы другого изображения и переведите получившийся массив комплексных чисел назад в пространственную область. Кто «победил», т. е. какое изображение вы можете различить: источник амплитуд или источник фаз? 2. Возьмите скалярные изображения какой-нибудь однородной текстуры; переведите их в частотную область и модифицируйте амплитуду или фазу преобразования Фурье неким единообразным способом (одинаковым для всех частот), перед тем как пере-
1.4. Упражнения ♦ 63 ходить обратно в пространственную область. Какая модификация приводит к более значительному изменению изображения? 3. Проделайте те же операции и тесты для набора изображений человеческих лиц. Обсудите полученные результаты. Каким образом единообразные изменения (разной степени) амплитуды или фазы изменяют содержащуюся в изображении информацию? Упражнение 1.4 (аппроксимация цветового пространства HSI плоскостями сечения). Пусть G = 255. Рассечем RGB-куб плоскостью П , ' J max ' ц' перпендикулярной диагонали уровней серого и проходящей через точку (и, и, и) на этой диагонали, где 0 < и < 255. Любое сечение (т. е. пересечение Пи с RGB-кубом) представляется одним изображением 1и размера N*N, где значение u = (R, G, В) пикселя с координатами (х, у) либо определено ближайшей целочисленной точкой в RGB-кубе (или средним по всем ближайшим точкам, если их несколько), если расстояние до ближайшей точки меньше V2, либо равно некоторому значению по умолчанию (скажем, черное). Решите следующие задачи: 1) напишите программу, которая показывает RGB-изображения 1и для ы = 0, м = 1,...,и = 255 (можете задать значение и в диалоговом окне или запустить непрерывную анимацию); 2) также покажите (скалярные) значения насыщенности вместо RGB-значений. На рис. 1.33 показаны результаты для и = 131; Рис. 1.33. Сечение RGB-куба, проходящее через точку и = 131. Показано RGB- изображение /ш и значения насыщенности для одной и той же секущей плоскости 3) можете взять фиксированное значение N > 30 (размер изображения) или попросить пользователя выбрать N из заданного диапазона.
64 ♦ Глава 1. Данные изображения 1.4.2. Упражнения, не требующие программирования Упражнение 1.5. Докажите тождество (1.4). Упражнение 1.6. Кем был Фурье? Когда было придумано быстрое преобразование Фурье? Какое отношение преобразование Фурье имеет к оптической системе линз? Упражнение 1.7. Рассмотрим изображение размера N*N. Докажите, что умножение на (-1)х+у в пространственной области приводит к сдвигу на N/2 (в обоих направлениях) в частотной области. Упражнение 1.8. В развитие примера 1.2 вручную преобразуйте еще несколько (простых) RGB-значений в соответствующие HSI-значения. Упражнение 1.9. Пусть (8, S, М) - представление цвета в пространстве HSI. Обоснуйте следующие шаги восстановления компонент RGB в описанных ниже частных случаях: • если5е[0,2я/3],тоВ = (1-5)М; • если 8 е [2я/3,4я/3], то R = (1 - S)M; • если 8 £ [4я/3, 2я], то G = (1 - S)M. Как вычислить остальные компоненты в каждом из этих случаев? Упражнение 1.10. В цветовом пространстве RGB, предложенном CIE (которое моделирует восприятие цветов человеком), скаляры R, G и В могут быть отрицательными. Предложите физическую интерпретацию (разумеется, мы не можем вычесть свет из заданного спектра).
Глава Обработка изображений В этой главе вводятся основные понятия, связанные с преобразованием одного изображения в другое, обычно с целью повышения качества или для других надобностей, определяемых более сложным контекстом компьютерного зрения. 2.1. Точечные, локальные и глобальные операторы Когда изображения записываются вне помещения (типичный для компьютерного зрения случай), возникают специфические трудности по сравнению со съемкой в помещении: качество освещения, размытость из-за движения или внезапные изменения на сцене. На рис. 2.1 показаны изображения, снятые из автомобиля (для системы помощи водителю, основанной на компьютерном зрении). Нежелательные данные называются шумом. Мы видим три примера таких «нежелательных данных». В первом случае наша цель - преобразовать изображения, так чтобы в результате получились изображения, «как будто сделанные при равномерном освещении». Во втором случае мы хотели бы повысить резкость и устранить размытие. В третьем случае требуется устранить шум. В этом разделе мы предложим эффективные методы предварительной обработки данных для подготовки к последующему анализу изображения. 2.1.1. Градационные функции Мы преобразуем изображение / в изображение Inew того же размера, отображая с помощью градационной функции g уровень яркости и в пикселе р изображения / в уровень яркости v = g(u) в точно так же расположенном пикселе изображения Inew. Поскольку это изменение зависит только от значения и в точке р, говорят также о точечном операторе,
66 Глава 2. Обработка изображений определенном градационной функцией g. Если наша цель заключается в том, чтобы Inew обладала некоторыми свойствами, определенными в терминах ее гистограммы, то мы говорим о преобразовании гистограммы. Рис. 2.1. Вверху: два изображения SouthLeft и SouthRight, снятые в один и тот же момент времени, но с разной яркостью; см. сопровождающие гистограммы уровней яркости. Слева внизу: размытие из-за дождя на изображении Wiper. Справа внизу: шум на сцене Uphill, снятой ночью Выравнивание гистограммы. Мы преобразуем скалярное изображение /, так чтобы в новом изображении Inew все уровни яркости встречались с одинаковой частотой. Цель заключается в том, чтобы добиться выполнения условия N -N Н, (и) = const = cols ' G-x+1 (2.1) для всех и G {0,1,..., Gmax}. К сожалению, в общем случае это невозможно, т. к. одинаковые значения в /должны отображаться в одинаковые значения в Inew. Например, бинарное изображение / нельзя преобразовать в полутоновое изображение Inew с выровненной гистограммой (даже если бы мы имели непрерывное аналоговое бинарное изображение, к тому же ограничения
2.1.Точечные,локальные и глобальные операторы 67 цифровой техники вносят свой вклад в невозможность идеального выравнивания). Описанное ниже преобразование - лишь приближение к недостижимому идеалу. Пусть дано скалярное изображение /размера Ncols><Nrows с абсолютными частотами Н^и) для 0 < и ^ Gmax. Мы преобразуем / в изображение J такого же размера, применяя следующую градационную функцию g(u) = с, (и) • Gmax, (2.2) где Cj - интегральная функция распределения. На рис. 2.2 иллюстрируется такое выравнивание гистограммы. new Рис. 2.2. Слева: Входное изображение RagingBuLl (взято из открытого источника) и его гистограмма. Справа: То же изображение после выравнивания гистограммы Нетрудно доказать свойство выравнивания для преобразования гистограммы (2.2), воспользовавшись тем фактом, что интегральная функция распределения ^монотонно возрастает. Относительная гистограмма hl (и) соответствует оценке функции плотности распределения, Cj (и) - оценке функции распределения вероятностей, a hInew(u) - оценке плотности равномерного распределения. Линейное масштабирование. Предположим, что в гистограмме изображения / положительные значения сосредоточены в ограниченном интервале. Наша цель - сделать так, чтобы все значения, встречающиеся в I, были линейно распределены во всем интервале от 0 до Gmax. Положим и. = min{/ (х, у): (х, у) £ Q}, ытах = тах{/ (х, у): (х, у) е О} и а = -и и Ъ = и —и ■ max mm g(u) = b(u + a). (2.3) (2.4) в но- B результате пиксели, имевшие в изображении / значение ип вом изображении / будут иметь значение 0, а пиксели, имевшие в изо
68 Глава 2. Обработка изображений бражении / значение итах, в новом изображении будут иметь значение Gmax. Это показано на рис. 2.3, который послужит также иллюстрацией к обсуждению корректности преобразования гистограммы, определенного функцией (2.4). Рис. 2.3. График градационной функции линейного масштабирования, определенной двумя точками (и . , 0) и (и ,G ) " ' х mm' ' v max' max' Условное масштабирование. Приведем еще один пример градационной функции - мы хотим отобразить изображение / в изображение / , сохранив среднее и дисперсию. Для такого условного масштабиро- new вания положим a = jUj Mi и b = ^ °J Oj (2.5) g(u) = b(u + a). (2.6) Теперь отобразим уровень яркости и в пикселе р изображения / в новый уровень v = g(u) того же пикселя р в Jnm. Нетрудно показать, что Vj„ew = Viи aJnew = аг ^т0 та же ноРмиРовка>чт0 в формуле (1.12), где мы нормировали меры данных. 2.1.2. Локальные операторы Для заданного изображения / размера Ncols*Nrows рассмотрим скользящие окна W размера (2к + 1)х(2к + 1) с центром в качестве начальной точки р. Начальная точка обегает все возможные позиции пикселей в / и таким образом перемещает окно по изображению. В каждой позиции окна мы выполняем локальную операцию, ее результат определяет новое значение в точке р. В итоге исходное изображение / преобразуется в новое изображение /. Два примера: локальное среднее и локальный максимум. В качестве первого примера локальной операции возьмем вычисление локального среднего J(p) = piw :
2.1.Точечные, локальные и глобальные операторы ♦ 69 +к +к ^(7)=р^55/(х+^+л (2.7) для р = (х, у). Другой пример - вычисление локального максимума J(p) = max{/ (х + i,y + j):-k<i<kA-k<j< k] для р = (х, у). См. рис. 2.4. (2.8) ... В ...с / Рис. 2.4. Слева вверху: исходное изображение SetlSeql с Ncols = 640. Справа вверху: локальный максимум для к = 3. Слева внизу: локальный минимум для к= 5. Справа внизу: локальный оператор с ядром фильтра Зх3, показанным в средней части рис. 2.5 Окна с центром в точке р, которые не целиком находятся внутри /, нуждаются в специальной «стратегии обработки краевых пикселей». Общего согласия относительно такой стратегии не существует. Один из вариантов - выполнить ту же самую локальную операцию, но в меньшем окне - применим к обеим рассмотренным выше операциям. Линейные операторы и свертка. Линейный локальный оператор определяется сверткой изображения / в точке р = (х, у) с ядром фильтра ^следующим образом: +к +к I +К +К J(j>) = l*W{p) = -YdY<wi.j-I(x+i>y + fi> (2.9) i=-k j=
70 Глава 2. Обработка изображений где веса w.. е Е и масштабный коэффициент S > 0. Аргументы в формуле (2.9) выходят за пределы /2, если р близка к краю носителя изображения. Существует теорема, утверждающая, что применение правила по модулю концептуально эквивалентно периодическому продолжению изображения / с П на всю сетку Ж2. Ядро фильтра W полностью определено массивом весов размера (2k + l)x(2fc + 1) и масштабным коэффициентом S. Обычно ядра линейных локальных операторов представляют, как показано на рис. 2.5. wu w2l w31 wl2 w22 W32 w13 W23 w33 /s 1 2 1 0 0 0 -1 -2 -1 /9 1 1 1 1 1 1 1 1 1 /9 Рис. 2.5. Слева: общее представление ядра фильтра 3*3. В середине: ядро фильтра, примененного на рис. 2.4 справа внизу, аппроксимирующее частную производную по х. Справа: ядро прямоугольного фильтра 3*3 Выражение (2.7) - пример линейного локального оператора, известного под названием прямоугольный фильтр (box filter). В нем все веса равны 1, a S = (2к + I)2 - сумма всех весов. Общие сведения о локальных операторах. Приведем сводку свойств локальных операторов. 1. Операции ограничены окнами, обычно квадратными и нечетного размера (2fc + l)x(2k + 1). Конечно, с точки зрения изотропности (т. е. инвариантности относительно вращения) предпочтительнее было бы использовать приблизительно круглые окна, но с прямоугольными проще работать. 2. Окно перемещается по изображению в выбранном порядке сканирования (обычно стремятся к полному сканированию, так чтобы каждый пиксель рано или поздно оказался начальным пикселем окна). 3. Не существует общего правила, как обращаться с пикселями, расположенными близко к краю изображения (когда окно не помещается в области изображения целиком), однако их тоже надо как-то обрабатывать. 4. Выполняемая над пикселями окна операция должна быть одинаковой при любом положении окна, она определяет назначение локального оператора.
2.1.Точечные, локальные и глобальные операторы ♦ 71 5. Результат операции может заменять значение пикселя исходного изображения /, совпадающего с начальной точкой окна, и тогда мы имеем последовательный локальный оператор, который «волной смывает» исходные значения (в этом случае окна локального оператора содержат как исходные, так и уже обработанные значения пикселей). Альтернативно результаты могут записываться в другой массив, а исходный остается неизменным - тогда мы имеем параллельный локальный оператор, название говорит о том, что такой оператор теоретически можно реализовать с помощью специализированного оборудования, обеспечивающего распараллеливание. Если к = 0 (т. е. окно состоит всего из одного пикселя), то говорят о точечном операторе. Если к настолько велико, что все изображение покрывается одним окном, то оператор называется глобальным. Двумерное преобразование Фурье изображения - пример глобального оператора. Врезка 2.1 (Замперони). Количество предложенных в литературе операторов обработки изображений огромно, что объясняется разнообразием данных и конкретных приложений. В книге [R. Klette and P. Zamperoni. Handbook of Image Processing Operators. Wiley, Chichester, 1996] подробно описаны многие распространенные точечные, локальные и глобальные операторы. В память о Пьеро Замперони (1939-1998), выдающегося просветителя в области распознавания образов, Международная ассоциация по распознаванию образов (IAPR) учредила награду его имени за лучшую студенческую работу, доложенную на Международной конференции по распознаванию образов (ICPR), которая проводится раз в два года под ее эгидой. 2.1.3. Фильтрация Фурье Обратное двумерное ДПФ (см. (1.23)) переводит преобразование Фурье I из частотной области назад в пространственную. Его результатом является вещественная функция / при условии, что I удовлетворяет свойству симметричности (1.29). Следовательно, на любое изменение в частотной области налагается такое ограничение. Фильтрация Фурье. Обратное двумерное ДПФ можно прочитать следующим образом: комплексные числа \(и, v) - это коэффициенты Фурье функции I, определенные для различных частот и и v. Каждый коэффициент Фурье умножается на комбинацию синуса и косинуса (см. фор-
72 ♦ Глава 2. Обработка изображений мулу Эйлера (1.22)), и сумма этих комбинаций образует изображение I. Короче говоря, изображение / представляется линейной комбинацией базисных функций - корней из единицы в комплексной плоскости, - а коэффициенты Фурье определяют форму этого представления. Это означает, что если мы модифицируем один из коэффициентов Фурье (и симметричный ему коэффициент в силу ограничения симметричности) до применения обратного двумерного ДПФ, то получим модифицированную функцию /. Чтобы выполнить линейное преобразование изображения /, у нас есть две возможности. 1. Модифицировать данные изображения с помощью линейной свертки J(x,y) = (I*G)(x,y) = X £ I(iJ)-G(x-i,y-j) (2.10) i=0 j=0 в пространственной области, где G - ядро фильтра (называемое также функцией свертки, или просто сверткой). Функция /является профильтрованным изображением. 2. Модифицировать двумерное ДПФ I изображения /, поэлементно умножив значения I на соответствующие комплексные элементы G [т. е. выполнив операцию I(u, v) • G(u, v)]. Мы обозначаем эту операцию I ° G (не путайте с умножением матриц). Получающийся комплексный массив преобразуется с помощью обратного двумерного ДПФ в модифицированное изображение /. Интересно, что в обоих случаях мы получаем одинаковые результаты при условии, что G - двумерное ДПФ G. Этот факт составляет содержание теоремы о свертке: I* G равно обратному двумерному ДПФ I ° G. (2.11) Таким образом, свертка в пространственной области и поэлементное умножение в частотной области дают одинаковые профильтрованные изображения. Однако в случае свертки мы лишаем себя возможности применить зависящие от частоты функции фильтрации в частотной области. Шаги фильтрации Фурье. Пусть дано изображение / и комплексная функция фильтрации G (обладающая свойством симметричности (1.29)) в частотной области. Применить программу БПФ для выполнения описанных ниже действий (если программа БПФ того требует, предварительно преобразовать изображение J в больший массив размера 2"*2"):
2.1.Точечные, локальные и глобальные операторы 73 1) с помощью программы БПФ перевести изображение / в частотную область, получив комплексную матрицу I; 2) поэлементно умножить I на комплексную функцию фильтрации G; 3) с помощью программы БПФ для обратного ДПФ перевести результаты назад в пространственную область. Функцию фильтрации G можно получить как результат применения преобразования Фурье к ядру фильтра G в пространственной области. Но обычно функции фильтрации проектируют прямо в частотной области. Пример 2.1. Прямоугольный фильтр - это линейная свертка в пространственной области. Его ядро определяется весами G(x, у) = \/а для (х, у) в окне размера (2к + 1)х(2к + 1) с центром в начале координат, при этом а = (2к + I)2. Вне этого окна G(x, у) = 0. Двумерное ДПФ этой функции G характеризуется амплитудами, близкими к 1, при низких частотах и резким убыванием амплитуды почти до нуля при высоких частотах. Преобразование Фурье G функции из примера 2.1 -типичный фильтр нижних частот: низкие частоты «пропускаются» (поскольку умножаются на амплитуды, близкие к 1), а высокие - «значительно уменьшаются» (поскольку умножаются на амплитуды, близкие к 0). X а к а к L а к Г\ 1 Г\ Рис. 2.6. Одномерные профили функции фильтрации с вращательной симметрией. Вверху: линейный фильтр верхних частот и идеальный фильтр нижних частот. Внизу: экспоненциальный фильтр высокочастотных предыскажений и линейный полосовой фильтр Проектирование функций фильтрации. Частотная область хорошо подходит для проектирования функций фильтрации (см. рис. 2.6). Мы можем остановиться на фильтре верхних частот (например, для выделения границ или для визуализации деталей и подавления нижних частот), фильтре высокочастотного предыскажения (например, для
74 ♦ Глава 2. Обработка изображений повышения контрастности), полосовом фильтре (который пропускает только частоты из определенного диапазона) или фильтре, который подавляет либо усиливает выбранные частоты (при соблюдении ограничения симметричности). Фильтр нижних частот убирает выбросы и снижает контрастность, т. е. оказывает сглаживающее действие. Прилагательные «линейная», «экспоненциальная» или «идеальная» в применении к функции фильтрации описывают характер перехода от больших амплитуд к малым. Примеры переходов показаны на рис. 2.6. На рис. 2.7 показаны результаты применения фильтра нижних частот и полосового фильтра к изображению. Рис. 2.7. Верхний ряд, слева: канал интенсивности изображения Emma, показанного в цвете на рис. 2.9. Верхний ряд, справа: его спектр, центрированный и подвергнутый логарифмическому преобразованию. Нижний ряд, слева: результат применения к Emma идеального фильтра нижних частот, демонстрация типичного эффекта сглаживания. Нижний ряд, справа: результат применения к Emma экспоненциального полосового фильтра, который показывает больше высоких частот, чем низких
2.2.Три процедурных компонента 75 Помимо гибкости в плане проектирования функций фильтрации, важным аргументом в пользу использования фильтров на основе ДПФ, а не глобальной свертки, является наличие эффективных алгоритмов двумерного БПФ. Локальные свертки обычно более эффективно выполняются в пространственной области локальным оператором. 2.2. Три процедурных компонента В этом разделе мы опишем три процедурных компонента, которые часто используются в программах обработки изображений, в частности в локальных операторах, а также при реализации отдельных процедур анализа изображений или компьютерного зрения. 2.2.1. Интегральные изображения Вычисление интегрального изображения 1т для заданного изображения / - часто применяемый шаг предобработки, цель которого - ускорить операции, в которых участвуют прямоугольные окна I (например, обнаружение признаков). Под «интегрированием» понимается сложение малых величин. В данном случае малыми величинами являются значения пикселей. Для пикселя р = (х, у) интегральным значением 1*(Р)= X WJ) (2.12) является сумма значений /(/,;') в позициях q = (/, /), расположенных не ниже и не правее р (см. рис. 2.8 слева). К cols 1 к AL О О ооооооооооо AL cols ооооооооо ооооооооо ооооооооо ооооооооооо Рис. 2.8. Слева: значением ljnt(x,y) является сумма значений всех выделенных пикселей. Справа: если в алгоритме требуется использовать сумму значений всех пикселей в показанном прямоугольном окне, то нам нужно будет только воспользоваться значениями интегрального изображения в четырех углах р, g, r и £; соответствующая формула приведена в тексте
76 ♦ Глава 2. Обработка изображений Врезка 2.2 (появление интегральных изображений в компьютерном зрении). В литературе по компьютерному зрению интегральные изображения впервые упоминаются в работе [F. С. Crow. Summed-area tables for texture mapping. Computer Graphics,vol. 18,1984, p. 207-212]. Затем они получили дальнейшее освещение в работах [J. P. Lewis. Fast template matching. In Proc. Vision Interface, 1995, p. 120-123] и [P. Viola and M.Jones. Robust real-time object detection. Int. J. Computer Vision, 2001, p. 137-154]. Теперь рассмотрим прямоугольное окно W, определяемое четырьмя пикселями р, q, r, s (рис. 2.8 справа), так что q,rws отстоят от границы W на один пиксель. Тогда сумма Sw значений всех пикселей внутри W равна Sw-IJP)-IJ»-IJis)*IJq). (2.13) Независимо от размера окна W мы должны выполнить только одно сложение и два вычитания. Ниже это очень пригодится нам для классификации объектов, присутствующих в изображении. Пример 2.2 (количество операций при наличии интегрального изображения и без него). Пусть требуется вычислить сумму значений пикселей в окне п*т по формуле (2.13). Каковы бы ни были тип, нам придется выполнить всего три арифметические операции. Не будь у нас интегрального изображения, для сложения всех т • п чисел в окне потребовалось бы т • п - 1 операций. Если учитывать еще операции адресации для последовательного скользящего окна в интегральном изображении, то понадобится всего четыре операции инкремента ++, если хранить адреса пикселей р, q, r, s в регистрах. Наблюдение 2.1. После того как выполнен один шаг предобработки - вычисление интегрального изображения, - чтобы узнать сумму пикселей в любом прямоугольном окне, нужно постоянное время, не зависящее от размера окна. 2.2.2. Регулярные пирамиды изображений Пирамида - стандартная структура данных для представления одного изображения / в разных размерах (см. рис. 2.9). Исходное изображение находится в основании пирамиды, а изображения меньших размеров - на последующих уровнях. Использование масштабного коэффициента 2. Если каждый раз уменьшать размеры вдвое, как показано на рис. 2.9, то все дополни-
12.Три процедурных компонента 77 тельные слои пирамиды занимают менее трети памяти, отведенной под исходное изображение, что следует из формулы геометрического ряда 1 + 1 + 1 + 1 + 2-2 2 -2L Т-Т 4 < — 3 (2.14) При переходе к следующему уровню снизу вверх среднее значение 2x2 пикселей становится значением пикселя следующего уровня. Во избежание пространственных искажений в виде ступенек рекомендуется перед вычислением средних произвести гауссово сглаживание (объясняется в следующем разделе). Изображение / ЕЬ. Рис. 2.9. Пирамиды изображений. Слева: регулярная пирамида лежит в основе уменьшения размера изображений. Справа вверху: попарно непересекающиеся массивы. Справа внизу: пример уровней для изображения Emma Создав на уровне п + 1 пирамиды новый пиксель г, определенный четырьмя пикселями pv р2, ръ, р4 на уровне п, мы породили новые пары соседей (pv г), (р2, г), (р3, г) и (р4, г) в дополнение к четырем соседям на уровне п, как показано на рис. 2.9 справа. Чтобы перейти по соседним пикселям от пикселя р к пикселю q в изображении /, мы теперь можем подняться по пирамиде до некоторого уровня, сделать несколько шагов вбок на этом уровне, а затем спуститься к q. Вообще говоря, при этом образуются более короткие соединительные пути, чем если бы мы пользовались только четырьмя соседями в исходном изображении.
78 ♦ Глава 2. Обработка изображений Пример 2.3 (самый длинный путь в регулярной пирамиде с масштабным коэффициентом 2). Пусть имеется изображение / размера 2"*2П и построенная для него регулярная пирамида с масштабным коэффициентом 2. Чтобы найти самый длинный путь между двумя пикселями, рассмотрим пиксели р и q в противоположных углах /. Если переходить от пикселя к одному из его четырех соседей в /, то для перехода к другому концу диагонали понадобится 2" - 1 шагов вдоль одной стороны и 2" - 1 шагов вдоль другой стороны, причем не важно, в каком порядке мы будем эти шаги делать. Поэтому самый длинный путь в / без использования пирамиды имеет длину 2"+1-2. (2.15) Если же использовать также соседей из других уровней пирамиды, то длина пути составляет всего 2п. Наблюдение 2.2. Соседство в пирамиде значительно сокращает расстояния между пикселями, и этим можно воспользоваться, чтобы послать «сообщение» от одного пикселя другому. Пирамиды можно также использовать, когда нужно начать некоторую процедуру компьютерного зрения на одном уровне, а затем уточнить результаты, распространяя их на уровни с более высоким разрешением. Примеры такого рода встретятся нам в нескольких местах. 2.2.3. Порядок обхода В основной управляющей структуре программы анализа изображений (не только для локальных операторов, но и, к примеру, для пометки компонент) обычно задается порядок обхода, т. е. посещения всех или только некоторых пикселей. Стандартный порядок обхода и его варианты. На рис. 2.10 показан не только стандартный порядок обхода, но и другие, которые могут оказаться интересны при определенных условиях. Спиральный и меанд- ровый обход дают возможность использовать результаты предыдущих вычислений в новой позиции скользящего окна, поскольку в окно попадает только 2к+ 1 новых пикселей, замещая 2к + 1 «выбывших». Обход в порядке магического квадрата (рис. 2.10, нижний ряд в середине, показан простой пример 4*4) приводит к псевдослучайному доступу кпикселям.В магическом квадрате суммычисел в каждой строке, в каждом столбце и на обеих главных диагоналях одинаковы. Гильбертов обход - еще один способ посещения пикселей в псевдослучайном порядке (например, он может применяться для вывода картинки на экран). См. рис. 2.11.
2.2.Три процедурных компонента ♦ 79 __-i--p"'- ■■ * 13 8 12 1 3 10 6 15 2 11 7 14 ~1б] 5 9 4 ^^^^^^^^^^^^^^^ 1 -+ 1 ...--""" --Г .-f-j J i— 1—f - * * р Рис. 2.10. Порядки обхода: стандартный (верхний ряд, слева), закручивающаяся спираль (верхний ряд, в середине), меандр (верхний ряд, справа), стандартный инвертированный (нижний ряд, слева), магический квадрат (нижний ряд, в середине) и стандартный избирательный (как при чересстрочной развертке), например каждая вторая строка (нижний ряд, справа) Гильбертов обход. На рис. 2.11 показан гильбертов обход, который начинается с северо-западного угла изображения и заканчивается в северо-восточном. Обозначим а, Ь, с, d четыре угла изображения размера 2"*2", начиная с северо-западного в порядке по часовой стрелке. Гильбертов обход Нп(а, d, с, Ь) начинается в угле а, продолжается в углах d и с и завершается в угле Ъ. 1 1 1 1 1 1 V\S L_T\ ~] 1 1 Г1 1 1 1 1 ; 1 \ 1 1 1 1 ^и ^^ I \ _L Рис. 2.11. Гильбертовы обходы изображений 2*2,4*4 и 8*8, иллюстрирующие рекурсивное продолжение на изображение большего размера Нх(а, Ъ, с, d) - обход изображения 2*2, при котором мы просто посещаем углы а, Ь, с, d, как показано на рисунке.
80 ♦ Глава 2. Обработка изображений Обход Нп+1(а, d, с, Ъ) строится следующим образом. Мы начинаем обход в северо-западном угле, выполняем обход Нп(а> Ь, с, d), затем делаем один шаг вниз, потом выполняем обход Нп(а, d, с, Ь), делаем один шаг вправо, вновь выполняем обход Нп(а, d, с, Ь), делаем шаг вверх и наконец выполняем обход Нп(с, d, а, Ь), который приводит нас в северо-восточный угол изображения размера 2П+1><2П+1. Врезка 2.3 (Гильберт, Пеано и Евклид). В 1891 г. Давид Гильберт (1862-1943), великий немецкий математик, построил кривую, целиком заполняющую единичный квадрат и удовлетворяющую определению кривых, данному Жорда- ном.На рис. 2.11 показаны начальные этапы построения. На каждой итерации производится гильбертов обход сетки размера 2А7*2'7, который не следует путать с оригинальной кривой, определенной Гильбертом в евклидовом пространстве. Кривая Гильберта-это вариант кривой, описанной в 1890 г. итальянским математиком Дж. Пеано (1858-1932) с той же целью. Евклид из Александрии (приблизительно 300 г. до н. э.) - древнегреческий математик, знаменитый своими «Началами», которые оставались стандартным учебником геометрии до XIX века. 2.3. Классы локальных операторов Паттерны локальной интенсивности в одном изображении можно считать «относительно» независимыми, если они находятся на некотором расстоянии друг от друга внутри носителя П. Локальные операторы пользуются этим и к тому же легко и эффективно реализуются как на обычном последовательном, так и на параллельном оборудовании. Поэтому неудивительно, что предложено много локальных операторов для разных целей. В этом разделе мы рассмотрим лишь несколько «популярных» представителей четырех классов локальных операторов. 2.3.1. Сглаживание Цель сглаживания изображения - устранение «выбросов», которые в данном контексте считаются шумом. Прямоугольный фильтр размера (2к+ 1)*(2к+ 1) вычисляет локальное среднее по формуле (2.7). Это простой пример оператора сглаживания, он устраняет выбросы, но заметно уменьшает контрастность С(Г) изображения I. Часто бывает достаточно использовать ядро размера 3x3 или 5x5. Локальное среднее для ядер большего размера удобно вычислять с помощью интегрального изображения /. исходного изображения /.
2.3. Классы локальных операторов ♦ 81 Медианный оператор. Медианой 2п + 1 значений называется значение, которое оказалось бы в позиции п + 1 после сортировки. Например, медианой последовательности {4, 7, 3,1, 8, 7,4, 5, 2, 3, 8} является 4, поскольку этот элемент занимает позицию 6 в отсортированной последовательности 1, 2, 3, 3,4,4, 5, 7, 7, 8, 8. Медианный оператор (2к+ 1)*(2к+ 1) отображает медиану окна размера (2к + 1)х(2/с + 1) в начальный пиксель р. Он устраняет выбросы, лишь немного изменяя контрастность изображения С(1). Врезка 2.4 (Карл-Фридрих Гаусс (1777-1855), блистательный немецкий математик, работавший в Гёттингенском университете, очень хорошо описан в романе «Измеряя мир» Даниэля Кельмана (М.: ACT, 2016). Фильтр Гаусса. Фильтр Гаусса представляет собой локальную свертку с ядром, определенным выборками из двумерной гауссовой функции. Эта функция является произведением двух одномерных гауссовых функций: <W>><) = ^гехр (х-цх)2+(у-а) V 2^ ^ {х-цх? (у-ЦуУ 2 2nd1 е 2о2 е 2о2 , (2.16) где (jUx, ц) - математические ожидания по осям хиу, а - стандартное отклонение (а2 - дисперсия), которое также называют радиусом этой функции, а е - число Эйлера. Гауссова функция названа по имени Карла-Фридриха Гаусса (см. врезку 2.4), а число Эйлера - по имени Леонарда Эйлера (см. врезку 1.3 и формулу Эйлера 1.22). На рис. 2.12 приведены примеры гауссовых функций. Стандартное отклонение о называется также масштабом. Наблюдение 2.3. Вторая строчка в формуле (2.16) показывает, что двумерный фильтр Гаусса можно реализовать с помощью последовательного применения двух одномерных фильтров, в горизонтальном и в вертикальном направлении. Центрированная гауссова функция. Если предположить, что гауссова функция центрированная (т. е. средние цх= ц =0, как на рис. 2.12 слева), то формула (2.16) упрощается:
82 Глава 2. Обработка изображений 1.0 0.8 0.6 0.4 0.2 0,0 ' ■ - 1 1 ' . 1 . ■ 1 • 1 —г4- , 1 . ■ 1 ' 1 i ' .1.1.1. 1 i ' • |.|. |.,Ч'|М> | р= 0 tfz=0,2 J р= 0 <72=5.0 ц=-2 С72=0.5 . i ■ ,_1_. ! 1 ] - J ._i_._L_l -5-4-3-2-1012345 Рис. 2.12. Слева: двумерная гауссова функция с математическими ожиданиями /jx = /j =0. Справа: четыре примера одномерных гауссовых функций с различными математическими ожиданиями и дисперсиями &ЛХ>У) 2коА ехр 2 2 Л дг+Г 2а2 7TS 2а2 . Л 2С72 (2.17) Такая центрированная функция вычисляется в (2k + l)x(2fc + 1) точках, причем начальный пиксель окна находится в точке (0, 0). В результате получается важное ядро фильтра для локального оператора с параметрами а > 0 и к > 1. Позже мы воспользуемся им для определения разностей гауссианов и пространства масштабов. На рис. 2.13 показан пример ядра для а = 1. Согласно статистическому правилу трех сигм, для выборки из Ga необходимо ядро размера 6а - 1. 1 4 7 4 1 4 16 26 16 4 7 26 41 26 7 4 16 26 16 4 1 4 7 4 1 /273 Рис. 2.13. Ядро гауссова фильтра сглаживания с параметрами к = 2 и s = 2 (т. е. а = 1) Для входного изображения / обозначим L(x,y,<7) = [/*Ge](x,y) (2.18) локальную свертку с функцией Ga для о > 0. Для удобства реализации мы определим ядро фильтра, производя выборку из Ga в узлах сетки размера w*w, симметричных относительно начала координат, где w - нечетное число, ближайшее к во - 1. Гауссово пространство масштабов. Если а > 1 - масштабный коэффициент, то мы можем перейти от сглаженного изображения L(x, у, о)
2.3. Классы локальных операторов ♦ 85 к L(x, у, аа). Используя масштабы а" • а, где а - начальный масштаб, а п = О, 1,..., т, мы можем создать последовательность уровней гауссова пространства масштабов. Пример показан на рис. 2.14. Рис. 2.14. Сглаженные варианты изображения SetlSeql (показанного на рис. 2.4 слева вверху) при значениях параметра а = 0,5, с = 1, а = 2, а = 4, а = 8 и <т = 16, определяющих шесть уровней гауссова пространства масштабов В этой книге все уровни пространства масштабов имеют одинаковый размер Ncols><Nrows. Для более эффективной реализации некоторые авторы предлагали уменьшать размер изображения вдвое одновременно с удвоением масштаба а, создавая тем самым октавы размытых изображений. Размытые изображения в одной октаве сохраняют постоянный размер до следующего удвоения а, после чего размер снова уменьшается вдвое. Но это деталь реализации, и мы не будем использовать октавы при обсуждении пространства масштабов. Сигма-фильтр. Это еще один пример простого, но зачастую оказывающегося полезным локального оператора для удаления шума. Ре-
84 ♦ Глава 2. Обработка изображений зультат показан на рис. 2.15. Этот локальный оператор также определен для окон W (I) размера (2к + 1)*(2к + 1) при к > 1. Параметр о > 0 интерпретируется как аппроксимация шума, сопутствующего получению изображения I (например, о приблизительно равно 50, если Gmax = 255). В предположении, что локальный оператор вычисляется параллельно, новое изображение / формируется следующим образом: 1) вычислить гистограмму окна W (7); 2) вычислить среднее pi всех значений в интервале [1(р) - <т, 1(р) + а]; 3) положить J{p) = pi. Рис. 2.15. Удаление шума. Слева вверху: исходное изображение 128><128 с наложенным равномерным шумом (±15). Справа вверху: прямоугольный фильтр 3*3. Слева внизу: сигма-фильтр 3*3 с параметром а = 30. Справа внизу: медианный фильтр 3*3
2.3. Классы локальных операторов ♦ 85 В некоторых случаях производитель камеры публикует параметры ожидаемого шума сенсорных ПЗС- или КМОП-элементов. Тогда параметр о можно положить равным амплитуде шума, умноженной на 1,5. Заметим, что I 1{р)+<У ju = -- X и Щи), (2.19) Ь U=I{p)-G где Щи) - гистограмма значений и для окна W (I), а масштабный коэффициент S = Щ1(р) -&) + ... + Щ1(р) + с). На рис. 2.15 показаны результаты работы прямоугольного фильтра, медианного фильтра и сигма-фильтра для одного и того же небольшого изображения. 2.3.2. Повышение резкости Смысл повышения резкости заключается в том, чтобы получить улучшенное изображение /, увеличив контрастность исходного изображения / вдоль границ, не добавляя шума в однородные участки. Нерезкое маскирование. Этот локальный оператор вычисляет разность R(p) = I(p) - S(p) между исходным и сглаженным изображениями. Затем разность прибавляется к исходному изображению I: Jip) = 1(р) + Щр) - S(p)] = [1 + А] 1{р) - Щр), (2.20) где Я > 0 - масштабный коэффициент. В принципе, для получения сглаженного изображения S(p) годится любой оператор из раздела 2.3.1. На рис. 2.16 приведено три примера. Размерный параметр к («радиус») этих операторов управляет пространственным распределением эффекта сглаживания, а параметр Я - влиянием корректирующего сигнала [I(p) - S(p)] на окончательный результат. Таким образом, к и Я - обычные интерактивные управляющие параметры нерезкого маскирования. Согласно второму из выражений в формуле (2.20), процесс можно также количественно описать уравнением J{p) = I{p)-X'S(p) (2.21) (для некоторого Я' > 0), которое сокращает время вычислений. Вместо того чтобы применять нерезкое маскирование единообразно ко всему изображению /, мы также можем ввести некоторую локальную адаптивность, например подавить изменения в однородных участках.
86 ♦ Глава 2. Обработка изображений Рис. 2.16. Нерезкое маскирование с параметрами к = 3 и Я = 1.5 формулы (2.20). Слева вверху: размытое входное изображение Altar размера 512*512 (алтарь барочной церкви в городке Валенсиана, штат Гуанахуато). Справа вверху: результат применения медианного оператора. Слева внизу: результат применения фильтра Гаусса с параметром а = 1. Справа внизу: результат применения сигма-фильтра с параметром а = 25 2.3.3. Простые детекторы границ Мы описываем простые детекторы границ, отвечающие ступенчато-граничной модели, аппроксимируя первые или вторые производные. Дискретные производные. Производная непрерывной функции одного аргумента/определяется сходимостью отношений разностей, в которых ненулевое приращение аргумента е стремится к 0:
2.3. Классы локальных операторов ♦ 87 У(х) = Г(х) = ШДх + е)-Дх). (2.22) Ck e-*0 £ Функция /дифференцируема в точке х, если это отношение стремится к некоторому пределу. Для функций двух аргументов определяются частные производные, например производная по у: ?(^у) = Л(х>7) = ИшЛ£^±£ЬЛм). (2.23) бу £^° е Производная по а: определяется аналогично. Однако на дискретной сетке наименьшее расстояние равно расстоянию между соседними пикселями г = 1. Вместо того чтобы сводить определение производной (2.23) к отношению разностей при е = 1, мы можем взять симметричное представление, в котором г = 1 в обоих направлениях. Простейшее симметричное представление отношения разностей для производной по у имеет вид: г , ч = 1(х,у + £)-1(х,у-£) = 1(х,у + 1)-1(х,у-1) (2 24) 2 где мы взяли симметричную разность для лучшего баланса. Чтобы использовать меньшее значение е, необходима какая-то субпиксельная интерполяция. Выражение (2.24) дает аппроксимацию первой производной, крайне чувствительную к шуму. Обозначим 1х{х, у) соответствующую простую аппроксимацию —(х, >>). Тогда итоговая аппроксимация модуля гради- дх ента имеет вид ^Ix(x,yf+Iy(x,y)2 - |gradI(x,y)\\2. (2.25) Здесь мы видим комбинацию двух линейных локальных операторов, ядро одного представляет /, а ядро другого - / (см. рис. 2.17). В этом случае масштабный коэффициент 2 не равен сумме весов в ядре. Сумма весов равна нулю, и это соответствует тому факту, что производная постоянной функции равна 0. Результат свертки с одним из этих ядер может оказаться отрицательным. Поэтому 1хи1 - не настоящие изображения в том смысле, что значениями пикселей могут быть отрицательные и рациональные числа, а
88 Глава 2. Обработка изображений не только целые в диапазоне {0,1,..., Gmax}. При визуализации дискретных производных, таких как 1х и /, принято показывать округленные целые значения |J | и |/1. 0 -1 0 0 0 0 0 1 0 /2 0 0 0 -1 0 1 0 0 0 /2 Рис. 2.17. Ядра разностных фильтров, определенных формулой (2.24) Врезка 2.5 (история оператора Собеля). Описание оператора Собеля впервые было опубликовано в работе [/. Е. Sobel. Camera models and machine perception. Stanford, Stanford Univ. Press, 1970, p. 277-284]. Оператор Собеля. Оператор Собеля аппроксимирует обе частные производные изображения /, применяя ядра, показанные на рис. 2.18. На рис. 2.4 справа вверху показан результат свертки с ядром фильтра, аппроксимирующим производную по х. -1 -2 -1 0 0 0 1 2 1 /1 -1 0 1 -2 0 2 -1 0 1 /1 Рис. 2.18. Ядра фильтров для оператора Собеля Эти две маски - дискретные варианты простых гауссовых сверток по строкам или по столбцам, за которыми следует вычисление оценок производных с помощью масок на рис. 2.17. Например: ■1 0 1] ■2 0 2 ■1 0 lj — "ll 2 lj = 2 [-1 0 1]. (2.26) Обе маски на рис. 2.18 определяют локальные свертки для вычисления аппроксимаций Sx и 5 частных производных. Значение оператора Собеля в точке (х, у) равно \Sx(x,y)\ + |Sy(x,y)| * Hgrad Jfry)!^. (2.27) Это значение показывается в виде уровней яркости на карте границ, определяемой оператором Собеля. Конечно, затем можно найти локальные максимумы оператора Собеля; этим объясняется, почему оператор Собеля называют также детектором границ.
2.3. Классы локальных операторов ♦ 89 Врезка 2.6 (история оператора Кэнни). Описание этого оператора впервые было опубликовано в работе [J. Canny. A computational approach to edge detection. IEEE Trans. Pattern Analysis Machine Intelligence, vol. 8,1986, p. 679-698]. Оператор Кэнни. Оператор Кэнни отображает скалярное изображение в бинарную карту границ, состоящую из «тонких» (шириной всего в один пиксель) отрезков. Результат зависит от двух пороговых значений, Т. и Т... таких, что 0 < Т. < Г,., < G , а также от фиксированного мас- low high ' low high max' Y c штаба, используемого при гауссовом сглаживании. Обозначим / уже сглаженное исходное изображение, получающееся после применения свертки с гауссовой функцией Ga с масштабным параметром а > 0, например, 1 < о < 2. Теперь применим простую оценку градиента, например оператор Собеля, который для любого пикселя р £ П дает оценки частных производных 1х и /, что позволяет оценить величину g(p) модуля градиента Hgrad I(p)\\2 и его направление в(р) в виде atan2(/, /). Оценки в(р) округляются до кратного я/4, для чего вычисляется (0(р) + я/8) по модулю я/4. На шаге подавления немаксимумов проверяется, является ли величина g(p) максимальной в направлении (уже округленном) в{р). Например, если 6(р) = я/2, т. е. градиент в точке р = (х, у) направлен вниз, то g(p) сравнивается с g(x, у - 1) и g{x, у + 1) - значениями в точках выше и ниже р. Если g(p) не больше значений в обоих соседних пикселях, то g(p) сбрасывается в 0. На последнем шаге прослеживания границ ищутся траектории пикселей р, на которых g(p) > Tlow, и все принадлежащие им пиксели помечаются как граничные. Поиск таких траекторий начинается в точках, для которых £(р) >Тт. Если в процессе обхода П, например стандартного, слева направо и сверху вниз, мы нашли еще не помеченный пиксель р, для которого g(p) > Тм й, то выполняются следующие действия: 1) пометить р как граничный пиксель; 2) пока в 8-окрестности р существует пиксель q, для которого g(q) > Tlow, пометить q как граничный пиксель; 3) положить р равным q и перейти к шагу 2; 4) искать следующий начальный пиксель р, пока не будет просмотрен весь носитель П. Благодаря использованию двух порогов в алгоритм вносится гистерезис: значение следующего пикселя q, возможно, и меньше Th h, но на
90 Глава 2. Обработка изображений той же траектории ему предшествует хотя бы один пиксель со значением, большим Ты й, и эта «положительная» история поддерживает рассмотрение q в качестве кандидата, поэтому мы соглашаемся продолжить траекторию, если выполнено условие g(q) > Tlow. Врезка 2.7 (Лаплас). Пьер-Симон, маркиз де Лаплас (1749-1827) - французский ученый, занимавшийся прикладной математикой и теоретической физикой. Лапласиан. Согласно ступенчато-граничной модели, границы идентифицируются также переходом вторых производных через ноль. Стандартные (простые) аппроксимации лапласиана изображения I определяются ядрами фильтров, показанными на рис. 2.19. 0 1 0 1 -4 1 0 1 0 1 1 1 1 -8 1 1 1 1 -1 2 -1 2 -4 2 -1 2 -1 Рис 2.19. Три маски для приближенного вычисления лапласиана Ниже мы выведем показанное на левом рисунке ядро фильтра как пример дискретизации оператора. Пример 2.4. Для вывода первой маски на рис. 2.19 сначала отобразим /в матрицу отношений разностей первого порядка 1Лх,У) I(x,y + 0.5)-I(x,y-0.5) 1 = I(x,y + 0.5)-I(x,y-0.5), а затем в матрицу отношений разностей второго порядка Iyy(x,y)=Iy(x,y + 0.5)-Iy(x,y-0.5) = [I(x,y+l)-I(x,y)]-[I(x,y)-I(x,y-l)] = I(x,y+l)+I(x,y-l)-2-I(x,y). Проделаем то же самое для аппроксимации I и сложим результаты. Тем самым мы определили аппроксимацию V2/ = Д/, которая совпадает с первой маской на рис. 2.19. На рис. 2.20 показан профиль строки изображения после применения этого приближенного лапласиана.
2.5. Классы локальных операторов ♦ 91 LoG intensity profile Рис. 2.20. Профиль строки (близкой к середине) в массиве, получающемся в результате применения лапласиана к изображению SetlSeql (рис. 2.4 слева вверху), сглаженному с масштабным параметром 5 = 2. Крутой глобальный минимум находится между ветвями куста 2.3.4. Простые детекторы углов Углом в изображении /называется пиксель р, в котором пересекаются две границы; для выделения самих границ можно применить как ступенчато-граничную, так и фазово-конгруэнтную модель. На рис. 2.21 показано, что такое вообще углы, а на рис. 2.22 - как выглядят три угла после увеличения изображения. Рис. 2.21. Найденные углы дают информацию, важную для локализации и понимания характера объектов на трехмерных сценах
92 ♦ Глава 2. Обработка изображений III 1 1 L _кь=рЬ и, -44 | Z | г II 1 1 rt+V'H "ttttl ffff^ U_11_LLM_U_U_UJ 1 I 0 I 1 Z 1 1 Г~Г INI ГП III 1 Г г Г Г ——————————i— i——————————————————————————шИ—————— ——————————————————————————————————————н———————— 1 1 1 1 1 1 1 1 1 1 1 Н 1 Рис. 2.22. Пиксели p,q и г - точки пересечения границ, направления этих границ обозначены синими линиями. Дискретные окружности (состоящие из 16 пикселей) встретятся при обсуждении детектора углов FAST. Небольшое окно изображения SetlSeql Врезка 2.8 (Гессе и гессиан). Гессиан (также матрица Гессе) назван по имени немецкого математика Л. О. Гессе (1811-1874). Нахождение углов с помощью матрицы Гессе. В соответствии с данным выше определением угол характеризуется большой кривизной графика интенсивности. Следовательно, для его нахождения нужно вычислить собственные значения Ях и Я2 (см. врезку 2.9) матрицы Гессе в точке р. Если оба собственных значения «велики» по модулю, то мы нашли угол; если одно значение велико, а другое мало, то имеет место ступенчатая граница, а если оба собственных значения малы, то мы находимся в области с низкой контрастностью. Щр) = JXX(P) LyiP) IxyiP) IyyiP) (2.28)
2.5. Классы локальных операторов ♦ 95 Врезка 2.9 (след, определитель и собственные значения матрицы). Следом Тг(А) матрицы А = (а.) размера п*п называется сумма > а„ элементов на главной диагонали. Определитель матрицы А = (а.) размера 2*2 вычисляется по формуле det(A) = апа22 - а12а21. Определитель матрицы А= (а.) размера 3*3 вычисляется по формуле det(A) = апа22аъъ + о12а2ЪаЪ1 + о1Ъо21оЪ2 - а1ЪапаЪ1 - а12а21аъъ - апа2ЪаЪ2. Собственными значениями матрицы А размера п*п называются п корней ее характеристического полинома,т. е. решений уравнения det(A - Л1) = 0, где I - единичная матрица размера п*п, a det обозначает определитель. Для вещественной матрицы А собственные значения - вещественные числа. Они применяются для моделирования устойчивости решений системы линейных уравнений, определяемой матрицей А. Определитель квадратной матрицы равен произведению ее собственных значений, а ее след - сумме собственных значений. Детектор углов Харриса и Стивенса. Этот метод обнаружения углов называется детектором Харриса. Вместо рассмотрения гессиана исходного изображения /(т. е. вторых производных) мы пользуемся первыми производными сглаженного изображения L(.,., а), определенного формулой (2.18) при некотором о > 0. Обозначим G(j>,&) = г2 LUp,a) Lx(p,G)L(p,G) Lx(p,a)L(p,a) LUp,a) У (2.29) Собственные значения Лх и Я2 матрицы G представляют изменения интенсивностей изображения / в ортогональных направлениях. Но вместо вычисления этих значений мы рассмотрим меру угловатости (cornerness measure) К (р, а, а) = det(G) - а • Tr(G) (2.30) при небольшом значении параметра а > 0 (скажем, а = 1/25). В силу общих свойств собственных значений имеем Н(р,а,Л) = Л1Л2-а-(Л1 + Л2). (2.31) Если одно собственное значение мало, а другое велико (как, например, на ступенчатой границе), то благодаря включению следа в выраже-
94 ♦ Глава 2. Обработка изображений ние (2.30) результирующее значение "Н (р, а, а) останется относительно малым. Мера угловатости К была предложена в 1988 г. как более эффективный способ расчета по сравнению с вычислением и анализом собственных значений. Результаты показаны на рис. 2.23 слева. Врезка 2.10 (история детектора Харриса). Этот метод был опубликован в работе [C.Harris and M.Stephens. A combined corner and edge detector. In Proc.Alvey Vision Conference, 1988, p. 147-151]. FAST. Временные ограничения, характерные для современных встраиваемых систем технического зрения (т. е. «небольших» независимых систем, таких как микророботы или камеры в миниатюрных мультикоп- терах), диктуют постоянное стремление к повышению эффективности вычислений. Критерий FAST (Features from an Accelerated Segment Test) определяет наличие угла путем рассмотрения значений изображения на дискретной окружности с центром в данном пикселе р; на рис. 2.22 показаны 16 значений на окружности радиуса р = 3. Критерий наличия угла: значение в центральном пикселе должно быть темнее (или ярче), чем значения в 8 (или в 11, если требуется определить настоящий угол, а не просто нерегулярный пиксель на в целом прямой границе) соседних пикселях на окружности, и «похоже» на значения в остальных пикселях на окружности. Результаты показаны на рис. 2.23 справа. Рис. 2.23. Окно изображения SetlSeql. Слева: углы, найденные детектором Харриса. Справа: углы, найденные детектором FAST Эффективность вычислений. Чтобы обеспечить эффективность, мы сначала сравниваем значение в центральном пикселе со значениями в точках 1, 2, 3 и 4 в указанном порядке (см. рис. 2.22), и лишь в
2.5. Классы локальных операторов ♦ 95 том случае, когда шансы на выполнение критерия наличия угла кажутся высокими, мы продолжаем проверять пиксели, расположенные между точками 1, 2, 3 и 4. В оригинальной работе, посвященной FAST, для оптимизации времени работы предлагается обучить решающее дерево. В библиотеке OpenCV (а также в HbCVD) детектор FAST реализован с помощью SIMD-команд параллельного сравнения, так получается быстрее, чем при использовании решающего дерева. Подавление немаксимумов. В алгоритме FAST также применяется подавление немаксимумов, чтобы количество найденных углов было не слишком велико. Например, для найденного кандидата на роль угла мы можем вычислить максимальную разность Т между значением в среднем пикселе и значениями на дискретной окружности, классифицированными как «более темные» или «более яркие», при которой кандидат считается углом. Затем механизм подавления немаксимумов удаляет кандидатов в порядке убывания Т. Врезка 2.11 (история детектора FAST). Алгоритм FAST как детектор углов был опубликован в работе [Е. Rosten and T. Drummond. Machine Learning for high-speed corner detection. In Proc. European Conf. Computer Vision, vol. 1,2006, p. 430-443]. 2.3.5. Удаление артефактов освещения Артефакты освещения, вызванные различиями в экспозиции, тенями, отражениями или виньетированием, представляют проблемы для алгоритмов компьютерного зрения. Примеры показаны на рис. 2.24. Невыполнение предположения о постоянстве яркости. Алгоритмы компьютерного зрения часто опираются на предположение о постоянстве яркости (intensity constancy assumption - ICA), согласно которому внешний вид объектов не изменяется из-за различий в освещении на текущем и следующем кадре или в двух кадрах, синхронизированных по времени. Для реальных изображений это предположение на самом деле нарушается из-за таких эффектов, как тени, отражения, различие во времени экспозиции, шум в сенсорных элементах и т. д. Существует по меньшей мере три подхода к этой проблеме. (1) Мы можем преобразовать входные изображения, уменьшив артефакты освещения (например, перейти к модели равномерного освещения путем удаления теней); в этом направлении есть ряд предложений, но пока успехи невелики. (2) Мы можем попытаться улучшить алгоритмы
96 ♦ Глава 2. Обработка изображений компьютерного зрения, сделав их независимыми от ICA, и примеры такого рода ниже будут рассмотрены. (3) Мы можем преобразовать входные изображения, сохранив «релевантную» информацию, но ставя целью не добиться визуальной эквивалентности с исходными данными, а устранить эффекты переменного освещения. Рис. 2.24. Примеры реальных сцен (черные пиксели по краям - результат ректификации изображения, мы обсудим ее ниже). Два изображения NorthLeft и NorthRight в верхнем ряду демонстрируют разницу в освещении между кадрами, снятыми двумя синхронизированными камерами при плохо выставленной экспозиции. На левом нижнем изображении LightAndTrees виден эффект плохой тени от деревьев. На правом нижнем изображении MainRoad показана снятая ночью сцена, на которой передние фары выглядят как большие яркие пятна Мы обсудим два метода, относящихся к третьему подходу. Один из них - воспользоваться выравниванием гистограмм или условным масштабированием, определенными выше. При этом все изображение равномерно отображается в изображение, нормализованное относительно гистограммы с равномерными градациями серого, либо в изображение с постоянными средним и стандартным отклонением. Но эти равномерные преобразования не способны справиться с неглобальной природой артефактов освещения.
2.3. Классы локальных операторов ♦ 97 Например, системы содействия водителю, основанные на техническом зрении, должны учитывать «танцующий свет» от лучей солнца, пробивающихся сквозь деревья, который создает локальные артефакты освещения. См. изображение на левом нижнем рис. 2.24. Карты границ. Локальные производные не изменяются, когда к значениям изображения прибавляется константа. Для вывода представлений изображений, менее чувствительных к вариациям освещения, можно использовать локальные производные, градиенты или карты границ. Например, мы можем просто подать на вход последующих алгоритмов компьютерного зрения карты границ Собеля вместо исходного изображения. См. рис. 2.5 справа. Карта границ Собеля - это не бинарное изображение, и она не модифицирована путем применения подходящей эвристики (как во многих других граничных операторах), это просто «первичные данные о границах». Рис. 2.25. Исходное изображение Set2Seql (слева), его остаточное изображение (в середине), вычисленное методом TV-L2 (в этой книге не рассматривается) с целью сглаживания, и карта границ Собеля (справа) Врезка 2.12 (видеоданные для тестирования компьютерного зрения в сети). На рис. 2.25 показано синтетическое изображение, взятое из набора 2 EISATS, доступного по адресу www,mi.auckland.ac.nz/EISATS. В сети имеется несколько тестовых наборов данных для сравнения алгоритмов компьютерного зрения, применяемых к записанным последовательностям изображений, в частности KITTI Vision Benchmark Suite по адресу www.cvlibs.net/datasets/kitti/. См. также конкурс Heidelberg Robust Vision Challenge на Европейской конференции по компьютерному зрению ECCV 2012. hci.iwr.uni-heidelberg.de/Static/ challenge2012/. Еще одно применение остаточных изображений относительно сглаживания. Пусть / - исходное изображение, и предположим, что оно допускает аддитивное разложение
98 ♦ Глава 2. Обработка изображений I(p) = S(p) + R(p) (2.32) для всех пикселей р. Здесь 5 обозначает гладкую компоненту / (определенную выше при обсуждении вопроса о повышении резкости), a R - остаточное изображение, получающееся после применения операции сглаживания, породившей S. Разложение (2.32) называют также структурно-текстурным разложением (structure-texture decomposition), где под структурой понимается гладкая компонента, а под текстурой - остаточное изображение. Остаточное изображение - это разность между входным изображением и его сглаженной версией. Значения остаточного изображения могут оказаться отрицательными, иногда полезно перемасштабировать его в стандартный диапазон {0, 1,..., Gmax}, например для визуализации. На рис. 2.25 показан пример остаточного изображения R относительно сглаживания оператором TV-L2 (в этой книге не рассматривается). Сглаживающий фильтр можно применять итеративно по следующей схеме: 5(0) = /, S(«) = S(S(«-D) дЛЯ п>о, (2.33) R(ri) = J _ £(л)_ Номер итерации п определяет применяемый остаточный фильтр. Если п раз применить прямоугольный фильтр 3x3, то результат будет приблизительно такой же, как после применения фильтра Гаусса радиуса п + 1. Какие методы подходят для данного класса входных изображений, надо проверять экспериментально. Для таких тестов полезна итеративная схема (2.33). 2.4. Более сложные детекторы границ В этом разделе мы обсудим ступенчато-граничные детекторы, объединяющие несколько идей в одном алгоритме, например комбинирование выделения границ с пред- или постобработкой. Мы также рассмотрим фазово-конгруэнтную модель выделения границ на примере оператора Ковеси. 2.4.1. LoG и DoG и их пространства масштабов Лапласиан гауссиана (LoG) и разность гауссианов (DoG) - чрезвычайно важные преобразования изображений, с которыми мы еще не раз встретимся.
2.4. Более сложные детекторы границ ♦ 99 Врезка 2.13 (история детектора границ LoG). Детектор границ LoG впервые описан в публикации [D. Marr and E. Hildreth. Theory of edge detection. Proc. Royal Society London, Series B, Biological Sciences, vol. 207,1980, p. 187-217]. Поэтому его также называют алгоритмом Марра-Хилдрет [Эллен Кэтрин Хилдрет - женщина, поэтому правильное написание «алгоритм Марра-Хилдрет». - Прим. перев.]. Детектор границ LoG. Применение лапласиана к изображению, пропущенному через фильтр Гаусса, может быть выполнено в виде одной операции свертки, что следует из тождества V2(Ga*7) = J*V2Ga, (2.34) где * обозначает свертку двух функций, а / предполагается (для доказательства тождества) дважды дифференцируемой. Тождество сразу следует из двукратного применения общих правил сворачивания: D(F * Н) = D(F) * Н = F * D(H), (2.35) где D обозначает производную, а F и Н - дифференцируемые функции. Справедливо следующее наблюдение. Наблюдение 2.4. Для вычисления лапласиана изображения, пропущенного через фильтр Гаусса, нужно выполнить только одну свертку с V26a. Ядро фильтра для V2Ga необязательно должно иметь размер 3x3, как показано на рис. 2.19. Поскольку гауссова функция непрерывна, мы можем точно вычислить ее лапласиан. Вот выражение первой частной производной по х: Щ^(^У) = -Т^е^г^, (2.36) и аналогичная формула имеет место для первой частной производной по у. Повторяя дифференцирование по а: и по у, получаем следующее выражение для LoG: V2Ga{x9y)= X 2ш4 Гх2+у2_2о2\ а2 e-(*V)/2<^ (237) LoG еще называют функцией сомбреро. На самом деле это «перевернутое сомбреро». Точки, где она обращается в ноль, определяют границы. См. рис. 2.26.
100 ♦ Глава 2. Обработка изображений 1 0.8 0.6 0.4 0.2 О -0.2 -0.4 -6-4-2 0 2 4 6 Рис. 2.26. Двумерная гауссова функция симметрична относительно начала координат (0,0); достаточно показать сечения графиков функции 6 и двух ее производных Замечание о дискретизации ядра LoG. Теперь мы должны дис- кретизировать этот лапласиан, получив ядро фильтра размера (2к + \)*(2к + 1) при подходящем значении к. Но каково это подходящее значение? Начнем с оценки стандартного отклонения о для данного класса входных изображений. Параметр w определяется нулями функции V2Go(a:, у); см рис. 2.26. Положим V2Gct(x, у) = 0, и пусть, например, у = 0. Тогда оба нуля являются корнями уравнения х2 = 2а2, т. е. хг = -V2a, x2 = +V2a. Таким образом, имеем w = \хг - х2\ = 2V2a. (2.38) Для правильного представления функции сомбреро дискретной выборкой предлагается использовать окно размера 3w*3w = 6V2<r><6V2a. И напоследок получаем: 2к + U2k + 1 = ceil(6V2a)xceil(6V2<r), (2.39) где функция ceil равна наименьшему целому числу, большему или равному аргументу. Мы должны оценить значение о для заданного класса изображений. Сглаживать изображение очень «узким» фильтром Гаусса (<т < 1) не имеет особого смысла. Поэтому будем рассматривать только о > 1. Наименьшее ядро (при о = 1, т. е. 3w = 8,485...) будет иметь размер 9x9 (т. е. к = 4). Для заданных изображений интересно сравнить результаты, получаемые при к = 4, 5,6,.... Гауссова функция Первая производная Вторая производная
2.4. Более сложные детекторы границ ♦ 101 Пространство масштабов LoG. На рис. 2.13 показано шесть уровней гауссова пространства масштабов для изображения SetlSeql. Мы вычислили лапласианы этих шести уровней и на рис. 2.27 показали получившиеся изображения (по абсолютной величине); ко всем изображениям было применено линейное масштабирование, чтобы наглядно проявились закономерности распределения яркости. Это пример пространства масштабов LoG. Как и в случае гауссова пространства масштабов, каждый уровень определяется масштабом о - стандартным отклонением гауссовой функции, и мы можем сгенерировать последовательность уровней с масштабными коэффициентами ап • а для а >1 и п = 0,1,..., т. ■■' Рис. 2.27. Лапласианы изображений на рис. 2.13, представляющие шесть уровней пространства масштабов LoG для изображения SetlSeql Разность гауссианов (DoG). Оператор разности гауссианов (DoG) - часто применяемая аппроксимация оператора LoG, характеризуемая меньшим временем вычислений. В формуле (2.17) определена центрированная (с нулевым средним) гауссова функция Ga.
102 ♦ Глава 2. Обработка изображений Оператор DoG определяется начальным масштабом о и масштабным коэффициентом а > 1: Daa(x, у) = Цх, у, а) - L(x, у, ао). (2.40) Это разность между результатом размытия изображения / и результатом еще большего его размытия. Как и в случае LoG, границы (в соответствии со ступенчато-граничной моделью) определяются как точки, где эта функция обращается в ноль. Между операторами LoG и DoG имеется следующее соотношение: ^вЛх,у)^(Х'У)-^У\ (2.41) где а = 1,6 - рекомендуемый параметр аппроксимации. Благодаря этому приближенному равенству разность гауссианов используется в качестве эффективной аппроксимации лапласиана гауссианов. Пространство масштабов DoG. Различные масштабы о порождают уровни Doa в пространстве масштабов DoG. На рис. 2.28 приведено сравнение трех уровней пространства масштабов LoG и DoG при масштабном коэффициенте а = 1,6. Врезка 2.14 (история исследований пространств масштабов). Многомасштабные представления - хорошо разработанная область компьютерного зрения с многообразными применениями (см. врезку 2.13). П.Дж. Бэрт (P.J. Burt) ввел в рассмотрение гауссовы пирамиды, когда работал в группе А. Розенфельда (A. RosenfeLd) в College Park; см. [P. J. Burt, Fast filter transform for image processing. Computer Graphics Image Processing, vol. 16,1981, p. 20-51]. Также см.ранние публикации о гауссовых пирамидах [J.LCrowley.krepresentation for visual information. Carnegie-Mellon University, Robotics Institute, CMU-RI-TR-82-07, 1981] и [А Р Witkin. Scale-space filtering. In Proc. Int. Joint Conf. Artificial Intelligence, 1983, p. 1019-1022]. Тогда каждый последующий уровень создавался из предыдущего путем умножения на коэффициента = 2,а получающиеся размытые изображения переменного размера назывались октавами. Позже в теории пространств масштабов стали рассматривать произвольные масштабные коэффициенты а>1; см., например, [T.Lindeberg. Scale-Space Theory in Computer Vision. Kluwer Academic Publishers, 1994] и [J. L Crowley and А. С Sanderson. Multiple resolution representation and probabilistic matching of 2-D gray-scale shape. IEEE Trans. Pattern Analysis Machine Intelligence, vol. 9,1987, p. 113-121].
2.4. Более сложные детекторы границ ♦ 105 Рис. 2.28. Уровни пирамиды изображений, построенные операторами LoG (слева) и DoG (справа) при о = 0,5 и ап= 1,6"для п = 0,..., 5. Показаны только результаты для п = 1,п = Ъип = 5 2.4.2. Встроенная уверенность Мера уверенности (confidence measure) - это количественная информация, полученная в результате обсчета данных и позволяющая решить, существует ли некоторый признак; если обсчитанные данные достаточно хорошо согласуются с моделью, принятой в детекторе признаков, то значение этой меры должно быть велико. Врезка 2.15 (история алгоритма Меера-Георгеску). Этот алгоритм был опубликован в работе [P.Meerand B.Georgescu. Edge detection with embedded confidence. IEEE Trans. Pattern Analysis Machine Intelligence, vol. 23,2001, p. 1351-1365]. Алгоритм Меера-Георгеску выделяет границы, применяя меру уверенности, основанную на предположении о достоверности ступенчато-граничной модели.
104 ♦ Глава 2. Обработка изображений В этом методе имеется четыре параметра. Результат оценки вектора градиента g(p) = V/(x, у) в точке р = (х, у) определяется оценкой модуля градиентаg(p) = llg(p)ll2, оценкой направления градиента в(р), уверенностью в наличии границы т)(р) и процентилем рк интегрального распределения абсолютных величин градиента. Ниже мы зададим значения, используемые в алгоритме Меера-Георгеску, показанном на рис. 2.29. 1: for каждого пикселя р изображения / do 2: оценить модуль градиента д(р) и направление границы в(р); 3: вычислить меру уверенности q(p); 4: end for 5: for каждого пикселя р изображения / do б: определить значение р(р) интегральной функции распределения абсолютных величин градиента; 7: end for 8: построить диаграмму pq для изображения /; 9: выполнить подавление немаксимумов; 10: выполнить гистерезисную бинаризацию (hysteresis thresholding); Рис. 2.29. Алгоритм выделения границ Меера-Георгеску Врезка 2.16 (транспонированная матрица). Транспонированной матрицей W1 называется результат отражения элементов матрицы W относительно главной диагонали. Если матрица симметрична относительно главной диагонали, то WT = W. Пусть А - матричное представление окна размера (2к + 1)х(2/с + 1) с центром в пикселе р входного изображения /. Обозначим W= sdT (2.42) матрицу весов размера (2к + 1)х(2& + 1), полученную перемножением векторов d = [dv..., d2k+l] и s = [sv..., s2k+l], где: 1) оба вектора имеют единичную Lj-норму, т. е. \dx\ + ... + \d2k+1\ = 1 M|sl| + ... + |s2jtfl| = l; 2) d - антисимметричный вектор, т. е. dx = ~d2k+v d2 = -d2k,..., dk+l = 0, представляющий результат дифференцирования одной строки матрицы А; 3) s - симметричный вектор, т. е. s1 = s2k+1 ^s2 = s2k<..A sfe+1, представляющий результат сглаживания одного столбца матрицы А. Например, антисимметричный вектор d = [-0.125, -0.25,0,0.25,0.125]т и симметричный вектор s = [0.0625,0.25,0.375,0.25,0.0625]7 определяют матрицу W размера 5 х 5.
2.4. Более сложные детекторы границ 105 Обозначим а. /-ю строку матрицы А. Полагая dx = Tr(WA) = Tr(scTA), 2k+\ (2.43) (2.44) i=\ получаем первые два параметра алгоритма: g(p) = -yjdf + d\ и 6{р) = arctan \d2j (2.45) Обозначим A.deal матрицу размера (2к + l)x(2fc + 1), представляющую шаблон идеальной ступенчатой границы с направлением градиента 9(р). Величина г](р) = |Tr(AT.dea/A)| определяет меру уверенности. Элементы матриц А и АШеа1 нормированы, так что 0 ^ t](p) < 1и г](р) = 1 в случае точного совпадения с идеальной ступенчатой границей. Пусть g <... < gk <... < g - упорядоченный список различных (округленных) модулей градиента, встречающихся в изображении /, с интегральной функцией распределения вероятностей Pk = Vrob[g<g[k]] (2.46) для l^k^N. Предположим, что для заданного пикселя Igk - ближайшее число к модулю g(p); тогда процентиль р(р) = рк. В итоге для каждого пикселя р мы имеем процентиль р(р) и уверенность г\{р) в диапазоне от 0 до 1. Эти значения определяют двумерную диаграмму рл для изображения / (см. рис. 2.30 слева). / • °q2 ' <7l 0 Р 1 Рис. 2.30. Слева: кривые L и Н на диаграмме ртц каждая из них делит квадрат на области знакопостоянства L или Н. Если точка (р, г]) лежит на кривой, то либо L(p, т]) = 0, либо Н(р, г)) = 0. Справа: окрестность пикселя р размера 3*3 и виртуальные соседи дхи q2B направлении оценки градиента Мы рассматриваем кривые в пространстве рв, заданные в неявной форме L(p, в) = 0. Например, это может быть вертикальная прямая, пересекающая квадрат, или дуга эллипса. На рис. 2.30 слева изображены две кривые L и Я. Каждая такая кривая разбивает квадрат на три части: в одной находятся точки, для которых L(p, 9) > 0, в другой - точки,
106 ♦ Глава 2. Обработка изображений для которых L(p, в) < О, в третьей - точки самой кривой, для которых L(p, в) = 0. Вот теперь у нас есть всё необходимое для описания процесса принятия решений. Подавление немаксимумов. Для текущего пикселя р определим виртуальных соседей q1nq2B направлении оценки градиента (рис. 2.30 справа) и соответствующие им значения р и л, полученные интерполяцией по соседним пикселям. Точка р определяет максимум относительно кривой X в пространстве рв, если знаки обоих виртуальных соседей ql и q2 относительно X отрицательны. На шаге 9 алгоритма мы подавляем немаксимумы, применяя некоторую выбранную кривую X; оставшиеся пиксели являются кандидатами на включение в карту границ. Гистерезисная бинаризация (hysteresis thresholding) - это общая техника принятия решений на основе ранее полученных в процессе результатов. В рассматриваемом алгоритме гистерезисная бинаризация применяется на шаге 10 и основана на двух кривых L и Я в пространстве рв, которые называются порогами гистерезиса (рис. 2.30 слева). В общем случае эти кривые могут пересекаться. Мы передаем все пиксели /, оставленные на шаге 9. Каждому пикселю р соответствуют значения р и в. Пиксель остается в карте границ, если (a) L(p, л) > 0 и Н(р, л) > 0 или (Ь) он является соседом пикселя, принадлежащего карте границ, и удовлетворяет условию Цр, л) • Н(р, л) < 0. Условие ф) описывает процесс гистерезисной бинаризации, оно применяется рекурсивно. Этот метод выделения границ вырождается в оператор Кэнни, если оба порога гистерезиса - вертикальные прямые, и в детектор, основанный только на уверенности, если оба они - горизонтальные прямые. На рис. 2.31 показаны результаты применения алгоритма Меера-Георгеску. Рис. 2.31. Изображения, получающиеся в результате применения алгоритма Меера-Георгеску с большим (слева) и меньшим (справа) ядром фильтра, определяемым параметром к. Сравните с рис. 2.32, на котором использовано то же самое входное изображение SetlSeql (показанное на рис. 2.4 слева вверху)
2.4. Более сложные детекторы границ ♦ 107 2.4.3. Алгоритм Ковеси На рис. 2.32 показаны результаты применения четырех детекторов границ к одному изображению, снятому в ночное время системой содействия водителю. Две верхние карты границ получены на основе фа- зово-конгруэнтной модели, а две нижние - на основе ступенчато-граничной модели. ■ \-±j» ■ i... Рис 2.32. Сравнение фазово-конгруэнтной и ступенчато-граничной моделей для изображения SetlSeql, показанного на рис. 2.4 слева вверху. Верхний ряд: слева - результат применения оператора Ковеси, основанного на фазово-конгруэнтной модели и реализованного в программе phasecongmono.m (см. ссылку во врезке 2.18), а справа - результат применения того же оператора, но реализованного более современной программой phasecong3.m, параметры в обоих случаях одинаковы. Слева внизу: оператор Собеля, основанный на ступенчато-граничной модели и реализованный функцией Sobel() из библиотеки OpenCV с параметрами dx =l,dy= 0, ksize = 3. Справа внизу: оператор Кэнни - еще одна реализация ступенчато-граничной модели; изображение построено функцией СаппуО с минимальным порогом 150 и максимальным порогом 200 Различия между операторами, основанными на той и другой модели, еще нагляднее проявляются для простого синтетического изображения на рис. 2.33. В соответствии со своей моделью оператор, основанный на градиенте, например оператор Кэнни, находит граничные пиксели, ориентируясь на максимумы модулей градиентов, что приводит к двойному отклику вокруг сферы и искажению границы тора на рис. 2.34
108 ♦ Глава 2. Обработка изображений слева. Мы опишем алгоритм, использованный для генерации результата, показанного на рис. 2.34 справа. Рис. 2.33. Слева: синтетическое входное изображение. Справа: профили яркости вдоль сечения А-А (сверху) и сечения В-В (снизу) Рис. 2.34. Слева: границы, выделенные оператором Кэнни. Справа: границы, выделенные алгоритмом Ковеси Вейвлеты Габора. Для локального анализа частотных компонент удобнее использовать не волновые формы, равномерно распространяющиеся во всем окне размера (2к + 1)*(2к + 1) (как на рис. 1.15), а вейвлеты, например вейвлеты Габора, т. е. синусоидальные и косину- соидальные волны, модулированные гауссовой функцией с некоторым масштабом а, амплитуды которых убывают по мере удаления от центральной точки (см. рис. 2.35). На среднем рисунке видны полосы, ортогональные прямой с углом наклона в. Существуют нечетные и четные вейвлеты Габора. Нечетный вейвлет порождается синусоидальной волной и потому равен нулю в начале координат. Четный вейвлет порождается косинусоидальной волной и потому достигает максимума в начале координат.
2.4. Более сложные детекторы границ ♦ 109 Врезка 2.17 (Габор). Венгерский ученый, специализировавшийся в области физики и электротехники (1900-1979). Работал в Великобритании и в 1971 г. получил Нобелевскую премию по физике за изобретение голографии. X 255 Четный вейвлет Рис. 2.35. Слева: два одномерных сечения нечетного и четного вейвлетов Габора. В середине: полутоновое представление квадратного вейвлета Габора в окне размера (2/с +1)*(2/г +1) с углом в. Справа: его трехмерный график Прежде чем дать формальное определение вейвлетов Габора, вспомним определение гауссовой функции: .2 Л GtT(x,y) = - 1 ехр х + у (2.47) 2ЖС72 *\ 2СГ2 Затем преобразуем координаты а: и у изображения, применив поворот на угол в: u=xcos9 + ysm9, (2.48) v = -х sin в + у cos в, (2.49) где прямая с углом наклона в ортогональна полосам в вейвлетах Габора; см. рис. 2.35 в середине. Введем в рассмотрение также сдвиг фаз гр > 0, длину волны синусоидального множителя Я > 0 и отношение сторон у > 0. Тогда выражения / 2ет,(*>У) = GAU>yi>)-cosl 2яг-+ уг |, и ( и \ godd(x>y) = G*(u>rv>*ib\ 2л-+у/\ V А ) (2.50) (2.51) определяют пару Габора, в которой синусоида и косинусоида модулированы одной и той же гауссовой функцией. Эту пару можно объединить в одно комплексное число:
110 Глава 2. Обработка изображений 8раЛХ>У) = geven(X>y) + ^-l-godd(X>y) ( и \ = Ga(u,yv)exp\ 27T-+ у/ [ у л j (2.52) Подготовка к применению алгоритма. Алгоритм Ковеси применяет набор п квадратных пар Габора с центром в текущем пикселе р = (х, у). На рис. 2.36 иллюстрируется такой набор для п = 40, но из каждой пары показана только одна функция (скажем, нечетный вейвлет). По умолчанию в алгоритме Ковеси используется 24 пары. II II Шт Ш DDD О о ~> | ■■ в в = 1 ^ ** ч в Рис. 2.36. Набор функций Габора, используемый для обнаружения фазовой конгруэнтности в пикселе Врезка 2.18 (история алгоритма Ковеси). Этот алгоритм впервые опубликован в работе [P. D. Kovesi. A dimensionless measure of edge significance from phase congruency calculated via wavelets. In Proc. New Zealand Conf. Image Vision Computing, 1993, p. 87-94]. См. также исходный код, приведенный на странице www.csse. uwa.eduMu/-pk/Research/MatlabFns/index.htmWphasecong. Программа работает очень быстро и стандартно применяется к изображениям размера 20002000 и более; на самом деле в ней используются Log-вейвлеты Габора, а не оригинальные вейвлеты, чтобы улучшить отклик оператора и повысить эффективность. Свертка с каждой парой Габора определяет одно комплексное число. У каждого из полученных таким образом п комплексных чисел есть амплитуда rh и фаза ah. Формула (1.33) определяет идеальную меру фазовой конгруэнтности. Для случаев, когда сумма 2^н=\Гк становится слишком малой, удобно прибавить к знаменателю небольшое положительное число г, например е = 0,01. В изображении также присутствует шум, обычно
2.4. Более сложные детекторы границ ♦ 111 равномерный. Обозначим Г > О сумму всех шумов по всем переменным составляющим (для заданных изображений ее можно оценить). В предположении, что шум постоянный, мы просто вычитаем составляющую шума и получаем pos(||z|L -Г) P+JP)-*^* -. (2-53) 2-м 1 + г где функция pos возвращает свой аргумент, если он положителен, и 0 в противном случае. Имеем Случайно выберем т1 равномерно распределенных направлений в.,..., в и т„ масштабов s,,..., s (например, т = 6 и т = 4). Чтобы X III -1 Л X III гу X Л задать набор т1- т2 вейвлетов Габора, выберем наименьший масштаб (например, 3) и масштабный коэффициент между двумя последовательными масштабами (например, 2.1). Свертку с этими вейлетами Га- бора эффективнее производить в частотной, а не в пространственной области. Если все же она производится в пространственной области, то размер ядра свертки (2к + 1)*(2к + 1) должен быть таким, чтобы 2к + 1 было примерно в три раза больше длины волны фильтра. Обработка в одном пикселе. Теперь у нас есть всё необходимое для анализа фазовой конгруэнтности в точке р = (х, у): 1) применить в точке р набор сверточных масок, состоящий из п = тх- т2 пар Габора. В результате получится п комплексных чисел (гн> ан)> 2) вычислить меры фазовой конгруэнтности Т^р), 1 ^ i < ml по формуле (2.53), но использовать при этом только т2 комплексных чисел (rh, cch), определенных для направления в1 и каждого из т2 масштабов; 3) вычислить компоненты направления X и Y. для 1 < / < т1 по формуле [X, У. ]т = Tfp) • [sin(0), cos(0.)]T; (2.55) 4) для получившейся ковариационной матрицы компонент направления У"'х2 У"1 хх ^i=\ i ^Ji=\ l l (2.56)
112 ♦ Глава 2. Обработка изображений вычислить собственные значения Ях и Я2; предположим, что Ях > Я2. (Эта матрица соответствует матрице Гессе вторых производных размера 2*2; о том, кто такой Л. О. Гессе, см. врезку 2.8.) Абсолютная величина Ях показывает важность локального признака (граница, угол или какой-то другой признак). Если абсолютная величина Я2 также велика, то мы имеем угол; главная ось соответствует направлению локального признака. Нахождение граничных пикселей. После применения описанной выше процедуры ко всем точкам реП мы получаем массив значений Ях, который называется первичным результатом алгоритма. Все значения, оказавшиеся ниже заранее выбранного порога отсечения (скажем, 0,5), можно игнорировать. В этом массиве производится подавление немаксимумов (возможно, в сочетании с гистерезисной бинаризацией, как в алгоритме Меера-Ге- оргеску), т. е. все значения, которые не определяют локального максимума в своей 8-окрестности (например), обнуляются. Все пиксели, сохранившие ненулевые значения после подавления немаксимумов, считаются граничными. Помимо технических параметров, которые могут быть постоянными для всех обрабатываемых изображений (например, выбранные пары Габора, параметр е для устранения неустойчивости знаменателя или порог отсечения), алгоритм зависит только от параметра Г в формуле (2.53), и даже этот параметр можно оценить по математическому ожиданию шума в обрабатываемых изображениях. Формула (2.53) определяет меру Т(р), пропорциональную косинусу угла отклонения фазы, т. е. «мягкий» отклик. Учитывая, что Т(р) представляет взвешенную сумму косинусов углов отклонения фазы, взятие арккосинуса даст взвешенную сумму углов отклонения фазы. Поэтому предлагается модифицированная мера отклонения фазы: TJp) = pos(l - arccos(:P(p))), (2.57) где функция pos определена, как и раньше. Классификация пикселей как граничных или линейных. Имея для каждого пикселя два собственных значения, мы можем использовать их для классификации найденных признаков. Пример приведен на рис. 2.37.
2.5. Упражнения ♦ 115 Рис. 2.37. Цветокодированные результаты классификации локальных признаков от «ступенька» до «линия». Цветовой ключ показан справа. Исходное изображение приведено на рис. 2.33 слева 2.5. Упражнения 2.5.1. Упражнения по программированию Упражнение 2.1 (вариации на тему выравнивания гистограмм). В книге [R. Klette and P. Zamperoni. Handbook of Image Processing Operators. Wiley, Chichester, 1996] обсуждаются различные способы преобразования гистограмм, в частности варианты их выравнивания Г1 и Gmax Возьмите зашумленные (скалярные) изображения по своему выбору и примените сигма-фильтр до выравнивания гистограммы. Экспериментально проверьте следующие утверждения. Изменяя показатель степени г > О, можно добиться более сильного или более слабого выравнивания. При г = 1 результирующая гистограмма имеет равномерное распределение (насколько это возможно). При г > 1 редкие значения яркости будут встречаться в исходном изображении чаще, чем в выравненном. При г = 0 получается почти (но не в точности!) тождественное преобразование. При г < 1 получается более слабое выравнивание, чем при г = 1. Наглядно представьте результаты, воспользовавшись двумерными гистограммами, когда по одной оси откладывается г, а по другой, как обычно, уровни яркости. Отобразите эти гистограммы либо в виде дву- I Ступенька Линия
114 ♦ Глава 2. Обработка изображений мерного полутонового изображения, либо в виде графика трехмерной поверхности. Упражнение 2.2 (разработка детектора границ путем комбинирования различных стратегий). В детекторе границ мы можем применить одну или несколько из перечисленных ниже стратегий. 1. Граничному пикселю должен соответствовать локальный максимум, когда применяется оператор (например, оператор Собеля), который аппроксимирует градиент V/. 2. После применения фильтра LoG следует проанализировать получившиеся массивы положительных и отрицательных значений на предмет перехода через ноль (т. е. найти такие пиксели р, для которых LoG дает результат, близкий к нулю, и в точках, соседних с р, имеются как положительные, так и отрицательные значения LoG). 3. Рассмотренные выше операторы вычисляют только производные в направлениях л: и у. Но можно также рассмотреть производные в других направлениях, например под углами, кратными 45°. 4. Для выделения границ можно применить дополнительные эвристические соображения, например: граничный пиксель должен соседствовать с другими граничными пикселями. 5. Наконец, получив последовательность граничных пикселей, мы хотели бы выделить из нее «тонкие дуги», а не «жирные границы». В этом упражнении ваша задача - спроектировать свой собственный детектор границ, в котором комбинируются по меньшей мере две из описанных выше стратегий. Например, проверьте наличие граничных пикселей, вычислив как первые, так и вторые производные. Или примените оператор, основанный только на первых производных, в сочетании с проверкой на соседство с граничными пикселями. Наконец, можно обобщить оператор, основанный на первых производных, так чтобы вычислялись производные в более чем двух направлениях. Выберите один из предложенных вариантов или придумайте свою комбинацию. Упражнение 2.3 (амплитуды и фазы локального преобразования Фурье). Определите два локальных оператора с ядром размера (2к + 1)х(2к + 1), один для амплитуд, другой для фаз, которые будут отображать исходное изображение / в амплитудное изображение Ж и фазовое изображение Т, определенные следующим образом.
2.5. Упражнения ♦ 115 Выполним двумерное ДПФ для текущего входного окна размера (2к + 1)*(2к + 1) с центром в пикселе р. На основе получившихся (2к + I)2 - 1 комплексных коэффициентов переменной составляющей вычислим значение М(р), представляющее процент амплитуд в высокочастотных пикселях относительно общей суммы всех (2к + I)2 - 1 амплитуд, а также меру фазовой конгруэнтности Т(р), определенную формулой (2.53). Визуализируйте М(р) и Tip) в виде полутоновых изображений и сравните с границами во входном изображении /. Для этого выберите какой-нибудь оператор выделения границ, величины порогов для карты границы, амплитудное и фазовое изображения и сравните количество пикселей в бинаризованной карте границ и амплитудном изображении с количеством пикселей в бинаризованной карте границ и фазовом изображении. Упражнение 2.4 (остаточные изображения относительно сглаживания). Рекурсивно примените прямоугольный фильтр 3x3 (не более 30 итераций) для генерации остаточных изображений относительно сглаживания. Сравните с остаточными изображениями, полученными при сглаживании фильтром Гаусса размера (2/с + 1)х(2/с + 1) при к= 1,..., 15. Обсудите общую связь между рекурсивным применением прямоугольного фильтра и фильтрами Гаусса соответствующего радиуса. И кстати, что такое «соответствующий радиус»? 2.5.2. Упражнения, не требующие программирования Упражнение 2.5. Линейными локальными операторами называются операторы, которые можно определить с помощью свертки. Какие из следующих операторов являются линейными: прямоугольный фильтр, медианный фильтр, выравнивание гистограммы, сигма-фильтр, фильтр Гаусса, оператор LoG? Упражнение 2.6. Выравнивание цветных изображений - интересная область исследований. Обсудите, почему следующий подход неидеален: выполнить выравнивание гистограмм всех трех цветовых каналов (например, RGB) по отдельности, а затем использовать получившиеся скалярные изображения как цветовые каналы результирующего изображения. Упражнение 2.7. Докажите, что условное масштабирование порождает изображение /, среднее и дисперсия которого совпадают с соответствующими характеристиками исходного изображения /.
116 ♦ Глава 2. Обработка изображений Упражнение 2.8. Опишите, как именно можно использовать интегральное изображение для минимизации времени работы прямоугольного фильтра с ядром большого размера. Упражнение 2.9. Рассуждая так же, как в примере 2.4, объясните, каким могло бы быть ядро фильтра для квадратичной вариации (вместо того, что было выведено для оператора Лапласа). Упражнение 2.10. Докажите, что маски Собеля имеют вид dsT и sdT, где s и d - трехмерные векторы, удовлетворяющие предположениям алгоритма выделения границ Меера-Георгеску. Упражнение 2.11. Сигма-фильтр заменяет 1(р) значением Др) в соответствии с формулой (2.19). В этой процедуре используется гистограмма Н(и), вычисленная для значений и в окне W (Г), принадлежащих интервалу [1(р) - о, 1(р) + а]. Но можно вместо этого произвести прямое вычисление: Ар) = qeZe>° " (2.58) \ZP* где Zpa = {qE W(I): I(p) -a< I(q) < I(p) + о). Проанализируйте возможные преимущества этого подхода для небольших окон. Упражнение 2.12. Нарисуйте (по аналогии с рис. 2.6), как примерно выглядят в частотной области кривые фильтров, которые можно было бы назвать «экспоненциальный фильтр с низким предыскажением» и «идеальный полосовой фильтр».
Глава Анализ изображений В этой главе мы познакомимся с топологическими и геометрическими основами анализа участков изображений, а также с двумя стандартными способами анализа распределения значения изображения. Мы обсудим также методы нахождения прямых и окружностей как примеры распознавания конкретных образов в изображении. 3.1. Основы топологии изображений В разделе 1.1.1 было сказано, что между пикселями как таковыми не определено внутренне присущее отношение смежности. Лишь принятая нами модель определяет, что считать смежными пикселями. Выбор отношения смежности оказывает существенное влияние на то, какие участки изображения используются для вывода его свойств в процессе анализа. См. рис. 3.1. Рис. 3.1. Слева: количество черных участков не зависит от выбранного отношения смежности. Справа: на евклидовой плоскости количество черных участков зависит оттого, считать ли клетки, имеющие общий угол, соединенными или нет В этом разделе приводится краткое введение в цифровую топологию в объеме, необходимом для понимания таких терминов, как «участок изображения» или «край участка изображения». Мы также отметим ряд аспектов, отличающих цифровое изображение от евклидовой плоскости.
118 ♦ Глава 5. Анализ изображений Врезка 3.1 (топология и Листинг). Неформально топологию можно описать как «геометрию листа резины». Нас интересует количество компонент связности множества, отношения соседства между такими компонентами, количество дыр в множестве и другие подобные свойства, не зависящие от результатов измерения в пространстве, наделенном системой координат. Часто началом топологии считают теорему Декарта-Эйлера, согласно которой ccQ - ах + сс2 = 2, где сс2, ах\л а0- соответственно количество граней, ребер и вершин выпуклого многогранника. (Выпуклый многогранник - это непустое ограниченное множество, являющееся пересечением конечного числа полупространств.) О личностях Эйлера и Декарта см. врезку 1.3. И. Б. Листинг (1802-1882) впервые употребил слово «топология» в частной переписке в 1837 г. Он дал такое определение: «Топологическими называются свойства, зависящие не от мер или величин, а от взаимного положения и следования в пространстве». 3.1.1.4- и 8-смежность в бинарных изображениях Принятое понятие смежности (или соседства) пикселей определяет связность изображения и, следовательно, участки попарно связанных пикселей. Смежность пикселей. Понятие 4-смежности означает, что каждый пиксель р = (х, у) является смежным со всеми пикселями из множества AJp) = p+A4 = {(x+l,y),(x-l,y),(x,y+l),(?c,y-l)}, (3.1) где А4 = {(1,0), (-1,0), (0,1), (0, -1)} - множество 4-смежности. Иллюстрация 4-смежности приведена на рис. 1.1 и 1.2. Этому типу смежности соответствует реберная смежность, когда каждый пиксель рассматривается как небольшой закрашенный квадратик (т. е. принимается модель узлов сетки). В предположении 8-смежности каждый пиксель р = (х, у) является смежным со всеми пикселями из множества Ai(p) = p+Ai = {(x+l,y+l),(x+l,y-l),(x-l,y+l),(x-l,y-l), (х + 1, у), (х - 1, у), (х, у + 1), (х, у - 1)}, (3.2) где Ag = {(1, 1), (1, -1), (-1, 1), (-1, -1)} и А4 - множество 8-смежности. В это множество включены также пиксели, расположенные на диагоналях, которые не показаны на рис. 1.1 и 1.2. Этому типу смежности соответствует реберная и вершинная смежность в модели узлов сетки.
5.1. Основы топологии изображений ♦ 119 Врезка 3.2 (смежность, связность и планарность в теории графов). Неориентированный граф G= [А/, £] определяется множеством вершин N и множеством ребер Е; каждое ребро соединяет две вершины. Граф G называется конечным, если N - конечное множество. Две вершины называются смежными, если они соединены ребром. Путем называется последовательность вершин, в которой каждая следующая вершина смежна с предыдущей. Множество вершин S Q N называется связным, если между любыми двумя вершинами S существует путь, проходящий только по вершинам, принадлежащим S. Максимальные связные подмножества графа называются компонентами связности. Планарный граф можно нарисовать на плоскости таким образом, что ребра будут пересекаться только в концевых точках (т. е. вершинах). Обозначим ах количество ребер, а0 - количество вершин графа.Для любого планарного графа с а0 Z Ъ справедливо неравенство аг $ Ъа0 - 6; если в графе нет циклов длины 3,то справедливо более сильное неравенство аг $ 2а0 - 4. Формула Эйлера утверждает, что для конечного планарного связного графа aQ - аг + а2 = 2, где а2 - количество граней графа. Окрестности пикселей. Окрестность пикселя р содержит сам пиксель р и смежные с ним пиксели. Так, 4-окрестностъ р равна А4(р) и {р}, а 8-окрестность р равна А8(р) и {р}. См. рис. 3.2. о • о ••• о • о ••• • Ор • • Ор • • Фр • • Фр • о • о ••• о • о ••• Рис. 3.2. Слева: множество 4-смежности и множество 8-смежности для пикселя р. Справа: 4-окрестность и 8-окрестность р Пиксельная связность. Описанное ниже транзитивное замыкание отношения смежности определяет связность. Пусть SQH: 1) каждый пиксель связан с самим собой; 2) смежные пиксели S связаны; 3) если пиксель р £ S связан с пикселем q £ 5, а пиксель q £ S связан с пикселем г £ S, то р также связан с г (в 5). В зависимости от выбранного определения смежности мы получаем 4-связность или 8-связность подмножеств П.
120 Глава 5. Анализ изображений Участки. Максимальные множества связанных пикселей определяют участки (region), называемые также компонентами связности. Черные пиксели на рис. 3.3 слева образуют один 8-участок и восемь 4-участ- ков (изолированных пикселей); на том же рисунке имеется два белых 4-участка и только один белый 8-участок. о о о о о о о о о о о о о о о о о о чо о о о о Рис. 3.3. Слева: В предположении 4-смежности: несвязные черные пиксели отделяют связный «внутренний участок» от связного «внешнего участка». В предположении 8-смежности: черные пиксели связаны (на что указывают проведенные ребра), но все белые пиксели по-прежнему связаны (см., например, ребро, изображенное пунктирной линией). Справа: простая кривая на евклидовой плоскости всегда разделяет внутреннюю (закрашенную) и внешнюю области На рис. 3.4 слева приведен более общий пример. Предположим, что наша задача - подсчитать «частицы», представленные в изображении (после предварительной обработки) черными пикселями. Результат будет зависеть от выбранного отношения смежности, а не от входного изображения! о о о о о о о о о о о о о • • о о о о о о о о • • • • о о о о о о о о • • • о о • о о о о о о • • о • • • о о о о о о о • • • • о о о о о о о о • • • о о о о о о о о о о о о о о о о о о • • о о о о о о о о • • • • • о о о о о о о • • • • о о о о о • • о о о о о о о о • • • о о • о о о о • • • • о • • • о о о о • • о о • • • • о о о о о о о о • • • о о о о о о о о о • • о о о о о о о о о о о о Рис. 3.4. Слева: в предположении 4-смежности черных пикселей мы насчитаем в этом бинарном изображении пять «частиц», в предположении 8-смежности - только три частицы. Справа: пример приложения, в котором такой подсчет важен
5.1. Основы топологии изображений ♦ 121 Врезка 3.3 (Жордан). Камиль Жордан (1838-1922) - французский ученый, внесший вклад во многие отрасли математики. Например, он показал, что центром дерева является либо единственная вершина, либо пара смежных вершин. Широкую известность ему принесли определения и характеристики кривых на плоскости. Двойственные смежности в бинарных изображениях. На рис. 3.3 показано, к каким последствиям приводит выбор конкретного типа смежности, путем сравнения с геометрией евклидовой плоскости М2, где R обозначает множество вещественных чисел. Простая, или жорданова, кривая всегда разделяет плоскость на внутреннюю область (внутренность) и внешнюю область (внешность). Это кажется очевидным и согласующимся с интуицией, но строгое доказательство этого факта, известного как теорема Жордана-Брауэра, весьма трудное. А как выглядит соответствующая теорема для изображений с их понятием связности? Врезка 3.4 (Розенфельд и история двойственных смежностей). Рисунок 3.3 слева был использован в работе [A Rosenfeld and J, L Pfaltz. Sequential operations in digital picture processing. J. ACM, 13:471-494, 1966], чтобы показать, что одно единообразно применяемое отношение смежности ведет к топологическим «проблемам». Авторы пишут: «Парадокс», изображенный на рис. 3.3 слева, можно выразить следующим образом: если «кривая» связная (не имеет разрывов), то она не разделяет свою внешность и внутренность; если же кривая вполне несвязная, то она разделяет их. Разумеется, это не является математическим парадоксом, но неудовлетворительно с интуитивной точки зрения. Тем не менее связность остается полезным понятием. Следует отметить, что если оцифрованное изображение определить как массив шестиугольных, а не квадратных элементов, то парадокс исчезает. Комментируя эту публикацию, Р. О. Дуда (R. О. Duda), П. Э. Харт (P. E. Hart) и Дж. X. Мансон (J. H. Munson) предложили (в неопубликованном техническом отчете 1967 г.) двойственное использование 4- и 8-связности для черных и белых пикселей. А. Розенфельд (1931-2004) известен многочисленными пионерскими исследованиями в области компьютерного зрения. На конференции ICCV 2007 в Рио-де-Жанейро была учреждена премия имени Азриэля Розенфельда за выдающиеся достижения, присуждаемая ученым, которые, по общему признанию, внесли значительный вклад в компьютерное зрение на протяжении всей своей научной карьеры.
122 ♦ Глава З.Анализ изображений На рис. 3.3 слева показан один 8-участок, образующий простую цифровую кривую. Но эта кривая не разделяет два 8-участка. С другой стороны, в предположении 4-смежности мы имеем изолированные пиксели, не образующие простую кривую, поэтому никакого разделения быть не должно. Однако же налицо два разделенных 4-участка. Следовательно, применение одного и того же отношения смежности к белым и черным пикселям при попытке найти простые кривые в изображении приводит к топологическому результату, не соответствующему теореме Жорда- на-Брауэра на евклидовой плоскости, и, стало быть, противоречащему интуиции. Прямолинейное решение таково. Наблюдение 3.1. При двойственном использовании разных типов смежности для черных и белых пикселей, например 4-смежности для белых и 8-смежности для черных, гарантируется, что простые цифровые кривые разделяют свою внутренность и внешность. Такое двойственное использование приводит к планарному графу смежности для заданного бинарного изображения. Врезка 3.5 (две теоремы разделения). Пусть ф - параметрический непрерывный путь ф : [а, Ь] -> Ж2 такой, что а * Ь, ф(а) = 0(b), и пусть 0(s) * ф(Г) для всех s,t (a$ s <t< b). Следуя К. Жордану (1893), будем называть жордановой кривой на плоскости множество 7 = {(х,у):ф(Г) = (х,у)ла^Г^Ь}. Открытое множество М называется топологически связным, если оно не является объединением двух непересекающихся непустых открытых подмножеств М. Теорема 3.1 (К. Жордан, 1887; О. Веблен, 1905). Пусть у - жорданова кривая на евклидовой плоскости. Открытое множество Е2 \ у состоит из двух непересекающихся топологически связных открытых множеств с общей границей у. Эту теорему впервые сформулировал К. Жордан в 1887 г., но его доказательство оказалось некорректным. Первое правильное доказательство дал Освальд Веблен в 1905 г. Два множества Sv S2 Q Rn называются гомеоморфными, если существует непрерывное взаимно однозначное отображение Ф такое, что 0{S±) = S2 и отображение Ф'1 также непрерывно [при этом 0~\S2) = 5J. В 1912 г. Л. Э. Я. Брауэр обобщил определение жордановой кривой. Жорда- новым многообразием в пространстве Rn (n Z 2) называется гомеоморфный образ границы /7-мерного единичного шара. Теорема 3.2 (Л. Э. Я. Брауэр, 1911). Жорданово многообразие разделяет Жп на два связных подмножества и совпадает с границей каждого из этих подмножеств.
3.1. Основы топологии изображений 123 3.1.2. Топологически непротиворечивая смежность пикселей Двойственное использование 4- и 8-смежности позволяет избежать топологических проблем в бинарных изображениях. Для многоуровневых изображений (содержащих более двух различных значений) мы можем либо решить, что будем игнорировать топологические проблемы, показанные на рис. 3.3 (и просто предполагать 4- или 8-связность для всех пикселей, понимая, что иногда это будет приводить к топологическим проблемам), либо применить какой-нибудь топологически непротиворечивый подход, смирившись с дополнительными вычислительными затратами. Если ваше приложение должно быть топологически непротиворечивым на уровне смежности пикселей или если вас интересует возникающая математическая задача, то этот раздел для вас. На рис. 3.5 представлена математическая проблема: как построить математически непротиворечивую модель, учитывающую топологию многоуровневых изображений? (КМИ) (ХуО- оЧ> ттттттт 6-6- Рис. 3.5. Проходит ли черная линия «поверх» серой? Сколько существует серых компонент? Сколько черных? Сколько белых? Что касается структуры шахматной доски, показанной на рис. 3.1 справа, то мы предполагаем, что она определена на евклидовой (непрерывной) плоскости и требуется решить, какого цвета должны быть вершины квадратов: черного или белого. Топология - это именно та математическая теория, которая дает ответы на такие вопросы.
124 ♦ Глава З.Анализ изображений Врезка 3.6 (топология евклидова пространства). Кратко перечислим некоторые факты из топологии евклидова пространства. Рассмотрим евклидову метрику d2 в л-мерном евклидовом пространстве Rn (для наших целей достаточно п = 1,2, 3). Пусть г > 0. Множество U£(p) = [q : q e Rn Л d2(p,q) < а] называется (открытой) £-окрестностью точки р е Rn, или (открытым) г-шаром с центром в точке р, а в случае, когда е = 1, - единичным шаром. Пусть S ^ MP. Множество S называется открытым, если для любой точки р е S существует такое положительное £, что UJp) Q S. Множество Set" называется замкнутым, если его дополнение 5 = Rn\S открыто. Класс всех открытых подмножеств Rn определяет топологию /7-мерного евклидова пространства. Пусть S Q Rn. Максимальное открытое множество 5°, целиком содержащееся в S, называется внутренностью S, а минимальное замкнутое множество S#, содержащее S внутри себя, называется замыканием S. Из этих определений следует, что множество открыто тогда и только тогда, когда оно совпадает со своей внутренностью, и множество замкнуто тогда и только тогда, когда оно совпадает со своим замыканием. Разность множеств SS = S* \ S° называется границей S. Примеры. Рассмотрим случай п = 1. Для двух вещественных чисел a < b отрезок [а, Ь] = {х : a $ х$ Ь} замкнут, а интервал (а, Ь) = {х : a < х < Ь} открыт. Границей каждого из множеств [а, Ь], (а, Ь], [а, Ь) и (а, Ь) является множество {а, Ь]. Прямая линия у = Ах + В в двумерном пространстве также содержит открытые и закрытые сегменты. Например, множество {(х, у) : а < х < Ь Л у = А* + 6} - открытый сегмент. Одноточечное множество {р}, где р е R2, замкнуто. Границу квадрата можно разбить на четыре (замкнутые) вершины и четыре открытые отрезка прямой. Множество в Rn называется компактным, если оно замкнуто и ограничено; у него есть внутренность и граница. После удаления границы множество становится открытым. Иллюстрация множеств на плоскости показана на рис. 3.6. Мы можем считать, что все черные квадраты на шахматной доске замкнуты, тогда будет существовать всего один связный черный участок. Можно вместо этого считать, что все черные квадраты открыты, тогда будет один связный белый участок. Возникает важный вопрос: какой пиксель «владеет» вершиной, общей для всех четырех пикселей? Наблюдение 3.2. Мы должны решить, какие полутоновые пиксели должны быть замкнуты или открыты относительно другого уровня яркости; если считать замкнутые пиксели «более важными», то нужно определить, что более, а что менее важно.
3.1. Основы топологии изображений 125 Рассмотрим пример на рис. 3.5 и предположим следующий порядок важности: «черный > серый > белый». Если четыре пикселя сходятся в одной вершине (как показано на рис. 3.6) и среди них имеется черный пиксель, то вершина тоже будет черной. Если среди четырех пикселей нет ни одного черного, то серый пиксель «выигрывает» у белых. При таком порядке важности мы будем иметь две черные, три серые и семь белых компонент. См. рис. 3.7. *г * ♦г • ♦ г ■ «г ■ •Г • Т T ■ г * 1 'Г * I ♦ г ■ ; i и U ♦ И А* , U -Г ■ I* U ■Г • |Ы I* I* \* I* Рис 3.6. Пунктирной линией обозначены открытые внутренности, сплошной линией - границы. Конечно, на непрерывной плоскости нет разрывов между внутренностью и границей, это всего лишь грубый набросок Рис. 3.7. Компоненты связности в случае «черный > серый > белый» С другой стороны, в предположении, что «белый > серый > черный», мы будем иметь одну белую, две серые и пять черных компонент.
126 ♦ Глава 5. Анализ изображений Порядок важности задает ключ (key) к такому определению смежности, поэтому мы называем ее К-смежностью. Для скалярного отображения действует простое общее правило: порядок важности должен либо совпадать с порядком уровней яркости, либо быть противоположным. Для векторного изображения можно взять порядок модулей векторов, а в случае равенства использовать лексикографический порядок. Определение iC-смежности на основе подобных порядков важности решает возникающую математическую проблему (благодаря разбиению плоскости в смысле евклидовой топологии), и последующий анализ изображения согласуется с ожидаемыми топологическими правилами. Но прибегать к этому порядку необходимо лишь в том случае, когда два пикселя в противоположных углах массива 2*2 пикселей имеют одинаковые значения, отличающиеся от значений двух других пикселей в том же массиве. Будем называть такую ситуацию косым крестом (flip-flop case). На рис. 3.8 показаны три косых креста. Рис. 3.8. Три массива 2*2 пикселя, определяющих возможные косые кресты Количество косых крестов в реальных изображениях невелико; см. четыре примера полутоновых изображений на рис. 3.9. Но, несмотря на небольшое количество, они оказывают весьма заметное влияние на форму или число связных участков (определяемых одинаковыми значениями пикселей). Наблюдение 3.3. Отношение К-смежности порождает планарный граф смежности для заданного изображения и гарантирует, что простые цифровые кривые разделяют внутренний и внешний участки. Но вернемся к бинарным изображениям. Если предположить, что «белый > черный», то iC-смежность будет означать, что для белых пикселей применяется 8-смежность, а для черных - 4-смежность. Если же «черный > белый», то все обстоит наоборот. 3.1.3. Трассировка краев Встречая объект при построчном сканировании изображения, мы часто хотим определить его край, т. е. такую линию, что весь объект находится целиком слева или справа от нее. См. рис. 3.10.
5.1. Основы топологии изображений 127 Рис. 3.9. Размер этих изображений 2014x1426 (каждое содержит 2 872 964 пикселей), а 6тах = 255. Для изображения Tomte слева вверху косой крест имеет место в 0,38% от общего числа пикселей. В изображениях PobleEspanyol справа вверху, Rangitoto слева внизу и Kiri справа внизу процент косых крестов равен соответственно 0,22%, 0,5% и 0,38% Рис. 3.10. Две растровые строки, в первый раз наткнувшиеся на объекты, представляющие интерес,-лампы (предполагается стандартный порядок просмотра: сверху вниз, слева направо). В этот момент начинается процедура трассировки для обхода края объекта
128 ♦ Глава З.Анализ изображений Следуя определению смежности пикселей, мы должны для текущего пикселя проверить все смежные с ним в определенном порядке, согласованном с нашей стратегией (т. е. область, занятая объектом, всегда находится справа или всегда слева). Мы можем использовать 4-, 8-, К-смежность или любое другое определение смежности. В каждом пикселе р определен локальный круговой порядок f (р) = (qv ...,qn) перечисления по одному разу всех смежных пикселей, составляющих множество А(р). В случае К-смежности количество смежных пикселей п может изменяться от пикселя к пикселю. Мы трассируем край и порождаем последовательность р0, pv ..., р. пикселей, принадлежащих краю. Предположим, что мы дошли до пикселя р.+1 б А(р.). Пусть qx - пиксель, следующий за пикселем р. в локальном круговом порядке обхода соседей р.+1. Мы проверяем, принадлежит ли qx объекту: если да, то полагаем pi+2 = qx и продолжаем обработку пикселя pi+2; если нет, то проверяется следующий пиксель q2 в локальном круговом порядке f (p/+1) обхода соседей пикселя р.+1. И так далее. Не любой локальный круговой порядок обхода множества смежности можно считать приемлемым. Но обход смежных пикселей по или против часовой стрелки допустим. Пример 3.1. Будем рассматривать трассировку в случае 4-смежности. См. пример на рис. 3.11. Рис. 3.11. Слева: используемый локальный круговой порядок обхода. Справа: встреча с объектом при переходе от q0 к р0 Мы подходим к объекту по ребру (q, p); пусть (q0, p0) := (q, p), и предположим, что применяется показанный локальный круговой порядок обхода множества 4-смежности. Берем следующий пиксель в порядке обхода f (p0) - пиксель справа от р0: он принадлежит объекту и, стало быть, является следующим краевым пикселем.
5.1. Основы топологии изображений ♦ 129 Мы останавливаемся, если оказывается, что снова проверяем начальное ребро, но в направлении (р, q), противоположном направлению подхода (q, р). Сам факт повторного попадания в уже посещенный пиксель еще не является причиной для остановки алгоритма. Общий алгоритм трассировки краев Босса. Дано изображение с определенным отношением смежности и начальное ребро (q, p), по которому мы впервые подходим к пикселю р на еще не протрассированном крае объекта. Примечание: мы не говорим «впервые подходим к объекту», поскольку у одного объекта может быть один внешний и несколько внутренних краев. Алгоритм приведен на рис. 3.12. 1: Положить (qQ, р0) = (q, р), / = 0, к = 1 ; 2: Пусть q1 - пиксель, следующий за q0 в порядке обхода £(р0); 3: while (qkfp.)^(qofp0) do 4: while qk принадлежит объекту do 5: Положить /;= / +1 и р. := qk; 6: Положить g1 равным пикселю, следующему за р в порядке обхода £(р.), а к = 1; 7: end while 8: Положить к = к +1 и перейти к пикселю qk в порядке обхода £(р.); 9: end while 10: Вычисленная последовательность краевых пикселей - (p0,pv ...# Р-); Рис. 3.12. Алгоритм Восса Объект О может содержать дырки, которые сами выступают в роли объектов (и, в свою очередь, могут содержать дырки). Дырки порождают циклы обхода внутренних краев объекта О, см. пример ниже. Представленный алгоритм трассировки годится и для вычисления внутренних краев. Локальный круговой порядок обхода всегда остается тем же самым, разница лишь в том, какие смежные пиксели обходятся: принадлежащие или не принадлежащие объекту. Врезка 3.7 (Восс). Клаус Восс (1937-2008) описал приведенный выше общий алгоритм трассировки краев в своей книге [К, Voss. Discrete Images, Objects, and Functions in Zn. Springer, Berlin, 1993]. Он внес вклад во многие теоретические вопросы анализа изображений и компьютерного зрения. Пример 3.2. Проиллюстрируем все случаи трассировки краев для бинарного изображения. См. рис. 3.13. Здесь мы применяем двойственную смежность для бинарных изображений, определенную ключом «белый < черный». На рисунке изображен один объект с тремя дырками. Обратите внимание на непротиворечивость топологической двойственности связности и разделения. Множество
130 Глава З.Анализ изображений всех циклов обхода краевых пикселей, не принадлежащих объекту, разбивает плоскость и множество всех циклов обхода краевых пикселей, принадлежащих объекту. Оба разбиения топологически эквивалентны и описывают одно множество с тремя дырками. Цикл обхода внешнего края L' □ Здикла обхода внутренних краев Рис. 3.13. Слева: Объект в предположении «белый < черный». В середине: все циклы обхода краевых пикселей, не принадлежащих объекту. Справа: все циклы обхода краевых пикселей, принадлежащих объекту 3.2. Анализ двумерных геометрических фигур В этом разделе обсуждается измерение трех базовых характеристик двумерных изображений: длина, площадь и кривизна. Переходя к измерениям, мы покидаем область топологии и вступаем в область геометрии. В этом разделе описано также дистанционное преобразование на евклидовой плоскости. У каждого изображения имеется геометрическое разрешение, задаваемое в виде размера Ncols*Nrows. Чем выше разрешение, тем выше точность измерения геометрических характеристик. Например, измерение периметра объекта в изображении размера 1000x600 должно (теоретически) давать более точное значение, чем измерение периметра того же объекта в изображении размера 500*300. Затраты на более качественное оборудование должны окупиться улучшением результатов. 3.2.1. Площадь Площадь треугольника П = (р, q, г), где р = (xv yt), q = (х2, у2), г = (xv y3), равна «4(7) = ! • VXp, q, r) (3.3) где D(p, q, r) - определитель
3.2. Анализ двумерных геометрических фигур ♦ 151 .Л/1 Л"-> J\"l Ух Уг Уз ~~ ^\У2 ^ъУ\ ^2Уз ^зУ2 ^2У\ ^\Уъ* (3.4) Значение Dip, q, r) может быть как положительным, так и отрицательным, его знак определяет ориентацию упорядоченной тройки (р, q, r). Площадь простого многоугольника П = (pv р2,..., рп) на евклидовой плоскости, где р.= (х., у.) для / = 1,2,..., п, равна Л{П) = | ^Zxi(yM-yi-i) 1=1 (3.5) в предположении, что у0 = уп и уп+1 = уг В общем случае площадь компактного множества R в Ж2 равна Я(Т)= J dxdy. (3.6) Спрашивается: как измерить площадь участка изображения? На рис. 3.14 приведена иллюстрация эксперимента. Мы генерируем простой многоугольник на сетке размера 512*512 и субдискретизируем его на сетках меньшего разрешения. Площадь исходного многоугольника П равна 102 742,5, а его периметр равен 4040,7966.... Рис. 3.14. Простой многоугольник Я на сетках с разрешением от 8*8 до 128><128. Исходный многоугольник был нарисован на сетке с разрешением 512*512. Все изображения показаны в модели ячеек сетки
152 ♦ Глава З.Анализ изображений Чтобы вычислить периметр многоугольника общего вида, мы подсчитываем количество сторон ячеек на границе многоугольника и умножаем его на длину стороны при данном разрешении. Для изображения с разрешением 512><512 предполагается, что длина стороны равна 1, с разрешением 128x128 - 4 и т. д. Чтобы вычислить площадь многоугольника, мы подсчитываем количество пикселей (т. е. ячеек сетки) внутри него и умножаем эту величину на квадрат длины стороны. Относительным отклонением называется абсолютная величина разности между значением некоторой характеристики для субдискрети- зированного и исходного многоугольника П, поделенная на значение этой характеристики для П. На рис. 3.15 показаны ошибки измерения в форме графика относительных отклонений. Очевидно, что периметр, измеренный для суб- дискретизированных многоугольников, не сходится к истинному значению - относительное отклонение даже возрастает! Относительное отклонение (в процентах) 25 20 15 10 5 i 'Отношение периметра субдискретизированного многоугольника к периметру исходного Отношение площади субдискретизированного ^многоугольника к площади исходного О *- * ° °—■ о «-Разрешение изображения 8 16 32 64 128 (количество узлов сетки) Рис. 3.15. Отклонения площади и периметра субдискретизированных многоугольников относительно истинного значения на сетке 512*512 Что касается измерения площади участка изображения, то еще со времен Гаусса известно, что количество ячеек сетки в выпуклом множестве S дает точную оценку площади 5. Поэтому неудивительно, что измеренная площадь сходится к истинной по мере увеличения разрешения. Наблюдение 3.4. Количество ячеек сетки внутри участка - надежная оценка площади объекта. Экспериментальные данные показывают, что при оценке периметра предложенным методом неизбежны «сюрпризы».
5.2. Анализ двумерных геометрических фигур ♦ 155 3.2.2. Длина Начнем с определения длины на евклидовой плоскости. Длина измеряется для дуг (например, отрезков прямой или дуг окружности). Предположим, что имеется параметрическое взаимно однозначное представление 0(г) дуги у, начинающейся в точке ф(с) и заканчивающейся в точке ф{й), где с < d. Значения в точках t0 = с < tx < ... < tn = d определяют полигональную аппроксимацию этой дуги (рис. 3.16). Рис. 5.16. Полигональная аппроксимация дуги, определенной последовательностью лежащих на ней точек ф(^ Врезка 5.7 (жордановы дуги). Приведем общее математическое определение дуги.Жорданова дуга у определяется как отрезок [с, d] жордановой (простой) кривой {(х,у):0(Г) = (х,у)ло^Г^Ь}, гдео^с<с/^Ьи ф(^) ф 0(t2) для tx * t2, за исключением точек tt = а и t2 = b. У спрямляемой жордановой дуги у длина ограничена: п Цу) = sup £ de (0ft ), фЦ(_х ))<«,. n>\/\c=t§<-'<tn=d i—i См. рис. 3.16. В 1883 г. Жордан предложил следующее определение кривой: у = {(х,у) :x=a(t)Ay= P(t)Aa$t$ b]. В 1890 г. Джузеппе Пеано показал, что такое определение допускает кривые, целиком заполняющие единичный квадрат. Кривая Пеано не дифференцируема ни в одной точке отрезка [0, 1]. Для вычисления длин дуг используется определение Жордана 1883 г.: (в предположении, что функции а и /? дифференцируемые).
134 Глава 5. Анализ изображений Длина полигональной аппроксимации корректно определена (она равна сумме длин всех отрезков, составляющих эту ломаную). Предел длины полигональной аппроксимации при п, стремящемся к бесконечности (когда отрезки становятся все короче и короче), по определению, равен длине у. Зубчатость. Рассмотрим диагональ pq квадрата со стороной а. Длина диагонали равна aV2. Рассмотрим 4-путь, аппроксимирующий диагональ, как показано на рис. 3.17 вверху (для разных разрешений сетки). Длина этих 4-путей при любом разрешении равна 2а. В качестве второго примера рассмотрим границы дискретизирован- ных кругов, показанные на рис. 3.17 внизу. При любом разрешении сетки длина границы равна 4. pi У < Г Р' к- —* Г и -И 1 Гч 1 И N РШ тт?# И и и ► X ► X ► X У 1 I ГТ o-l—^Ш III -►х Рис. 3.17. Вверху: аппроксимации диагонали квадрата 4-путями для сеток разного разрешения. Внизу: дискретизация единичного круга на сетках разного разрешения Наблюдение 3.5. Использование длины 4-пути для оценки длины дискретной дуги может приводить к погрешности 41,4% (относительно длины исходной дуги на непрерывном изображении до его оцифровки). Этот метод не рекомендуется применять для измерения длин в процессе анализа изображений. Использование взвешенных ребер. Предположим, что для измерения длины используются 8-пути. Будем назначать вес V2 диагональным ребрам и вес 1 ребрам, параллельным осям координат. (Прямая или отрезок на евклидовой плоскости называется осепараллельной, если она параллельна одной из двух осей декартовой системы координат.)
5.2. Анализ двумерных геометрических фигур ♦ 155 Рассмотрим отрезок прямой pq на рис. 3.18 с углом наклона 22,5° и длиной 5V5/2. .. н / о Рис. 3.18. Аппроксимация отрезка прямой pq 8-путями на сетках разного разрешения Длина pipq) равна 3 + 2V2 для сетки со стороной ячейки 1 (слева) и (5 + 5V2)/2 для любой сетки со стороной ячейки 1/2" (п > 1). Отсюда следует, что длины 8-путей не сходятся к 5V5/2, когда сторона ячейки сетки стремится к нулю. Наблюдение 3.6. Для 8-путей ситуация такая же, как для 4-путей, только погрешность составляет не более 7,9...% (при дискретизации дуг известной длины), и в некоторых случаях невозможно уменьшить погрешность, увеличивая разрешение сетки. В некоторых приложениях эта верхняя граница погрешности может быть приемлема. Применение взвешенных ребер (включая диагональные) для оценки длины, безусловно, приемлемо в случае изображений с низким разрешением или при измерении относительно коротких дискретных дуг. Полигональное упрощение краев. А существует ли общепризнанный точный способ измерения длины? Вернемся к схеме на рис. 3.16. Если разбить дугу на дискретные отрезки прямой, как показано на рис. 3.19, то сумма длин этих отрезков будет сходиться к истинной длине дуги при условии, что наш бюджет позволяет приобретать оборудование, обеспечивающее все более и более высокое разрешение сетки. Врезка 3.9 (цифровая геометрия). В публикациях по цифровой геометрии можно найти дополнительные сведения о том, как вычислить дискретные отрезки прямой, и о других алгоритмических вопросах, связанных с вычислениями на сетке изображения. См. например, монографию [R. Kiette and A. Rosenfetd. Digital Geometry. Morgan Kaufmann, San Francisco, 2004].
156 ♦ Глава З.Анализ изображений Конечная вершина Рис. 3.19. Полигональная аппроксимация края участка по часовой стрелке (слева) и против часовой стрелки (справа) дискретных отрезков прямой максимальной длины в указанном порядке обхода 3.2.3. Кривизна Жорданова кривая называется гладкой, если она непрерывно дифференцируема. Многоугольник не является гладким в особых точках (т. е. в вершинах). Кривизну кривой можно определить только в регулярных (не особых) точках. Кривина как скорость изменения угла наклона касательной. Рассмотрим дугу у на евклидовой плоскости, являющуюся отрезком гладкой жордановой кривой. Тогда в каждой точке р, принадлежащей у, определена касательная t(p), составляющая угол гр с положительным направлением оси х. Этот угол называется углом наклона (см. рис. 3.20). Рис. 3.20. Репер Френе в точке р = y(t). Показана также длина / = £(t) Когда р пробегает у, угол гр изменяется. Скорость изменения гр (относительно движения р вдоль у) - один из способов определения кривизны Ktan(P) кривой.
5.2. Анализ двумерных геометрических фигур ♦ 157 Врезка 3.10 (Френе и репер Френе). Для определения кривизны удобно использовать репер Френе, представляющий собой пару взаимно перпендикулярных осей координат (см. рис. 3.20) с началом в точке р = y(t) на кривой. Свое название он получил в честь французского математика Жана Фредерика Френе (1816-1900). Одна ось определена касательным вектором t(f) = [cos^(t),sin t/;(t)]T, где ф- угол наклона, образованный касательной и положительным направлением оси х. Другая ось определена нормальным вектором n(t) = [-sim/>(t),cosi/;(f)[T. Обозначим / = L(t) длину дуги между начальной точкой у (а) и текущей точкой р = y(t). Определение кривизны не должно зависеть от скорости V(t) = —^ (3.7) at параметризации у. Формально кривизна в точке y(t) = (x(t), y(t)) гладкой жордановой кривой у определяется следующим образом: Скорость изменения может быть положительной, отрицательной или равной нулю в точках перегиба. Если кривизна в точке р положительна, то эта точка называется точкой выпуклости, а если отрицательна, то точкой вогнутости. См. рис. 3.21. Рис. 3.21. Три касательные (пунктирные линии). Кривизна положительна на левом рисунке, переходит через ноль на среднем и отрицательна на правом Как видно из рис. 3.21, ситуацию в точке р можно аппроксимировать путем измерения расстояния между у и касательной к у в р вдоль равноотстоящих прямых, перпендикулярных касательной. На рис. 3.21 положительные расстояния представлены жирными отрезками, а отрицательные - «полыми» отрезками. Площадь между кривой и касательной можно аппроксимировать суммой этих расстояний; она положительна
158 ♦ Глава 5.Анализ изображений на левом рисунке, отрицательна на правом и равна нулю на среднем, где положительные и отрицательные расстояния взаимно уничтожаются. Предположим, к примеру, что у - прямая линия. Тогда касательная совпадает с у в любой точке р, и скорость изменения нулевая, т. е. кривизна равна нулю в любой точке, принадлежащей у. Предположим теперь, что у - окружность. Тогда, как мы знаем, скорость изменения угла наклона постоянна, а в предположении, что скорость пробегания кривой равномерна, эта постоянная равна единице, поделенной на радиус окружности. Кривизна как радиус соприкасающейся окружности. Кривизну можно изучать также с помощью соприкасающихся окружностей (см. рис. 3.22). Соприкасающейся окружностью в точке р кривой у называется наибольшая окружность, касающаяся у в точке р с вогнутой стороны. Пусть радиус соприкасающейся окружности в точке р равен г. Тогда кривизна у в точке р козс(р) = 1/г. В случае прямой линии г равен бесконечности, и, следовательно, кривизна равна 0. Можно доказать, что Рис. 3.22. Определение кривизны как скорости изменения угла наклона касательной (слева) и как радиуса соприкасающейся окружности (справа). Точки р, q и г иллюстрируют скорость изменения угла наклона \р. Предположим, что точки движутся слева направо. Тогда кривизна в точке р положительна, кривизна в точке перегиба q равна нулю, а кривизна в точке г отрицательная. Точки s и г иллюстрируют определение кривизны с помощью соприкасающейся окружности. Кривизна в точке s равна l/rv а в точке г - 1/г2 Кривизна параметрической дуги. Существует еще один способ определения кривизны на евклидовой плоскости. Рассмотрим пара-
3.2. Анализ двумерных геометрических фигур ♦ 159 метрическое представление y(t) = (x(t), y(t)), изначально предложенное Жорданом для определения кривой. Из него следует, что „ ГЛ_*(0-Я0-Я0-*(0 mm [m2+m2] где i(0=M), яо=м), ад=<Що, m=*m. (З.П) df d/ dr dr Алгоритмы оценивания кривизны дискретных кривых в изображениях - предмет цифровой геометрии. Как правило, для этого используется скорость изменения угла наклона, а не соприкасающаяся окружность, и лишь в нескольких алгоритмах делается попытка представить в дискретном виде уравнение (ЗЛО). Пример 3.3 (один из вариантов оценивания кривизны дискретной кривой). На самом деле воспользоваться уравнением (ЗЛО) очень просто. Пусть дана дискретная кривая (pv..., pm), где точки р. = (*., у), l^j^m, получены дискретизацией параметрической кривой y(t) = (x(t), у(£)), t e [0, m]. Предполагается, что y(i) = pr Функции x(t) и у(£) локально аппроксимируются многочленами второй степени: x(t) = a0 + a1t + a2t\ (3.12) y(t) = b0 + b1t + b2t\ (3.13) а кривизна вычисляется по формуле (ЗЛО). Положим х(0) = х., х(1) = х._к, х(2) = х.+к, где к > 1 - целочисленный параметр, и аналогично для y(t). См рис. 3.23. Тогда кривизна в точке рх определяется по формуле 2(аД —ЪлаЛ *•/= г 2T--S • (ЗЛ4) Вместо константы к > 1 можно использовать локально-адаптивные решения. ооооооооо о о о-- Р; i О о m -•- о •- у о --•- о --•-■ Pi о --• о --•- о о m --• о о о 'Рм: О о о • • v- о 0 О о S • о о Рис. 3.23. Использование к = Ъ О О О О О Ш---Ф О О при оценке кривизны в точке р.
140 ♦ Глава 5. Анализ изображений 3.2.4. Дистанционное преобразование Дистанционное преобразование (distance transform) помечает каждый пиксель объекта (например, пиксели, определенные неравенством 1{р) > 0) евклидовым расстоянием от его местоположения до ближайшего пикселя, не принадлежащего объекту (например, определенного равенством 1(р) = 0). Для простоты можно сказать, что дистанционное преобразование сопоставляет всем пикселям р ЕП значение D(p) = min{ d2{p,q): I(q) = О}, (3.15) qeQ, где d2(p> qk) - евклидово расстояние. Отсюда следует, что D(p) = 0 для всех пикселей, не принадлежащих объекту. Врезка 3.11 (история дистанционного преобразования). Статья [A Rosenfeld and IL Pfaltz. Distance functions on digital pictures. Pattern Recognition, vol. 1, p. 33-61] - пионерская работа, в которой не только определено дистанционное преобразование изображений, но и представлен эффективный двухпроходный алгоритм. А. Розенфельд и Й. Пфальц использовали сеточные метрики, а не евклидову метрику и предложили два варианта аппроксимации евклидовых расстояний: с помощью 4-путей и 8-путей. Эту аппроксимацию можно улучшить с помощью фальцевания (chamfering), как описано в работе [G. Borgefors, Chamfering - a fast method for obtaining approximations of the Euclidean distance in N dimensions. In Proc. Scand. Conf. Image Analysis, 1983, p. 250-255]. В работах [T.Saito and J. Toriwaki. New algorithms for Euclidean distance transformation of an n-dimensional digitized picture with applications. Pattern Recognition, vol. 27,1994, p. 1551-1565] и [T.Hirata.A unified linear-time algorithm for computing distance maps. Information Processing Letters, vol. 58,1996, p. 129-133] использована евклидова метрика и предложен новый алгоритм на основе нижних огибающих семейства парабол. Максимальные окружности на сетке изображения. Пусть S с П - множество всех пикселей, принадлежащих объекту, аВ = П\Б- множество всех пикселей, не принадлежащих объекту. Дистанционное преобразование обладает следующими свойствами: 1) D(p) равно радиусу наибольшего круга с центром в р, который целиком содержится в S; 2) если существует всего один пиксель q e В, не принадлежащий объекту, для которого D(p) = d2(p, q), то возможно два случая: а) существует пиксель р' е S такой, что круг с центром в рг содержит внутри себя круг с центром в р; или
5.2. Анализ двумерных геометрических фигур ♦ 141 Ь) существуют пиксели p'eSnq'eB такие, что d2(p, q) = d2(p', q^n p является 4-смежным с р'; 3) если существует два (или более) пикселей q, q' e В, не принадлежащих объекту и таких, что D(p) = d2(p, q) = d2(p, q*), то круг с центром р является максимальным кругом в 5; в таком случае точка р называется симметричной. В случае 2(b) оба пикселя pup' являются центрами максимальных кругов и 4-смежны друг с другом. На рис. 3.24 вверху показан прямоугольник с подмножеством максимальных кругов. По меньшей мере два пикселя, не принадлежащих объекту, находятся на одинаковом расстоянии от центра одного из этих кругов. В среднем ряду показаны максимальные круги, центры которых являются 4-смежными, и для каждого круга существует только один не принадлежащий объекту пиксель на расстоянии г (радиус круга). На нижнем рисунке показан круг В, для которого существует только один не принадлежащий объекту пиксель на расстоянии г от его центра и который содержится в максимальном круге А. Рис. 3.24. Вверху: множество максимальных кругов. В середине: симметричные точки, определенные в случае 2(b). Внизу: иллюстрация случая 2(a)
142 ♦ Глава 5. Анализ изображений Карта расстояний и карта строковых и столбцовых компонент. Карта расстояний - это двумерный массив такого же размера, как исходное изображение, в котором хранятся величины D(p) для каждого пикселя р еП. Пусть кратчайшее расстояние D(p) равно расстоянию d2(p, q) между точками р = (хр, ур) и q = (xqJ yq). Тогда D(p) = yl(xp-xq)2+(yp-yg)2. (3.16) ЗнаяДл: = л: -х иДу = у -у, мы также знаем D(p), но знание D(p) ничего не говорит о строковой компоненте Ах со знаком и столбцовой компоненте Лу со знаком. Поэтому вместо карты расстояний нам может быть более интересна карта строковых и столбцовых компонент: для каждой точки р Е П мы храним пару (Ах, Ау), по которой можно вычислить D(p). Квадратичное евклидово дистанционное преобразование (SEDT). Для экономии времени обычно вычисляют квадрат D(p)2 евклидова расстояния. Мы объясним принцип работы одного алгоритма, который строит точную карту SEDT за линейное время. Многие авторы добились успеха в уменьшении времени его работы. В самом начале алгоритм выполняет ряд целочисленных операций для вычисления SEDT до ближайшей не принадлежащей объекту точки по одному измерению, выполняя два прохода по строкам. Затем он переходит к работе на непрерывной плоскости Ш.2 и вычисляет нижнюю огибающую семейства парабол для каждого столбца. Алгоритм находит параболы, отрезки которых являются частями нижней огибающей, и вычисляет конечные точки этих отрезков. Квадраты евклидовых расстояний вычисляются в процессе дополнительного прохода по столбцам с помощью уравнений парабол, найденных на предыдущем шаге. Мы подробно рассмотрим этот алгоритм в двумерном случае и отметим, что все вычисления можно производить независимо для каждого измерения, поэтому описанный подход легко обобщается на произвольное число измерений. Расстояния по строке. Первый шаг алгоритма - вычисление расстояния от каждого пикселя, принадлежащего объекту, до ближайшего пикселя, не принадлежащего объекту и находящегося в той же строке: №, У) = fx(x - 1, у) + 1, если 1(х, у) >0, (3.17) f1(x,y) = 0, если 1(х,у) = 0, (3.18) f2(x,y) = mm{f1(x,y),f2(x+l,y) + l}, если fx(xyу) ф 0, (3.19) /2(х,у) = 0, если/;(х,у) = 0. (3.20)
3.2. Анализ двумерных геометрических фигур ♦ 145 Здесь /j(а:, у) определяет расстояние между пикселем р(х, у) и ближайшим не принадлежащим объекту пикселем q слева, а/2 заменяет/^, если расстояние до ближайшего не принадлежащего объекту пикселя справа короче. В результате получается матрица, в которой хранятся целые значения (f2{x, у))2 в каждом пикселе. См. пример на рис. 3.25 слева. Выражение f2(x, у) для фиксированной строки у выглядит так: /2(x,>0=._min {\x-i]:I(i,y) = 0}. (3.21) l—i9...9Iycols На рис. 3.25 слева показаны результаты одномерного SEDT после вычисления \f2(x, у)]2 для каждой строки с номером 1 ^ у < N С 0 0 0 с 0 0 0 0 0 1 0 0 4 4 9 1 0 4 9 16 4 0 1 16 16 9 Э 0 9 S 4 0 0 4 4 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 4 2 1 0 1 4 4 1 0 1 2 4 1 rows 0 0 1 4 1 0 0 1 2 1 0 0 1 1 0 0 0 0 0 с 00 0000000000 Рис. S.25. Нулями обозначены пиксели, не принадлежащие объекту. Числа равны квадрату евклидова расстояния. Слева: промежуточные результаты после начальных проходов по строкам. Справа: окончательные результаты после прохода по столбцам Расстояния по столбцу. Если существует всего два пикселя, не принадлежащих объекту, то для данного пикселя р = (х, у) нам нужно знать только, какой из пикселей (х, уг) и (х, у2) ближе. Для этого нужно сравнить [(№, У,))2 + (У " У,)2] < Ш*,У2))2 + (У " У2)2]. (3.22) Функция f3(x, у) определяет значения двумерного SEDT для каждого столбца, считая х фиксированным, а у изменяющимся от 1 до Nrom: f3(x,y)= min \(f2{x,y))2+{y-jf\ (3.23) Обсудим геометрическую интерпретацию, иллюстрирующую основную идею эффективного решения. Нижние огибающие. Для фиксированного столбца (например, для а: = 5 обозначим /"2(5, у) = g(y)) и для фиксированной строки (например, у = 3) рассмотрим уравнение
144 ♦ Глава 5. Анализ изображений Уз</) = (#(3))2 + (3-;-)2, (3.24) где / = 1,..., Nrows. Мы по-прежнему обращаемся к рис. 3.25; значения, вычисляемые по этой формуле, расположены на третьей параболе на рис. 3.26. 30 т Рис. 3.26. Семейство парабол для столбца [0,4,9,16,4,0] на рис. 3.25 слева Для Ky<N мы рассматриваем семейство N парабол (рис. 3.26). " ■' rows r r rows f \tr / Для каждой строки существует одна парабола, а для каждого столбца - Nrows парабол. По горизонтальной оси откладывается номер строки у, а по вертикальной оси - у (/), локальный минимум достигается в точке у = /иравенуу(/)=£(у). Нижняя огибающая семейства парабол соответствует вычислению минимума по формуле (3.23). Эффективные алгоритмы SEDT вычисляют нижнюю огибающую семейства парабол, а затем сопоставляют высоту (т. е. расстояние по вертикали до оси абсцисс) нижней огибающей точке с координатами (х, у). Вычисление нижней огибающей - главная часть алгоритма SEDT. Наблюдение 3.7. Вычисление нижней огибающей сокращает квадратичную сложность наивного алгоритма EDT до линейной, поскольку огибающие можно вычислять инкрементно. Пример 3.4 (вычисление секций). На рис. 3.26 показано семейство, состоящее из шести парабол. Нижняя огибающая состоит из двух криволинейных отрезков. Первый отрезок начинается в точке (1, 0) и заканчивается в точке пересечения первой и последней парабол. Второй отрезок начинается в этой точке пересечения и заканчивается в точке (6, 0). Проекции этих отрезков на горизонтальную ось называются секциями.
3.2. Анализ двумерных геометрических фигур ♦ 145 В этом простом примере отрезок [1,6] разбит на две секции. Только две из шести парабол вносят вклад в нижнюю огибающую. Для вычисления/^) (при фиксированном х) нам нужно знать начало и конец каждой секции и индекс соответствующей ей параболы. Это можно сделать, выполнив два прохода по столбцам. На проходе сверху вниз мы определяем отрезки парабол, входящие в нижнюю огибающую, и ассоциированные с ними секции, а на втором проходе вычисляем значения/3(у). Подготовка к вычислению нижней огибающей. Для вычисления нижней огибающей мы последовательно вычисляем нижние огибающие первых к парабол. Вычисляется точка пересечения двух парабол. Пусть ys - абсцисса точки пересечения? и пусть yt < y2. Уравнение точки пересечения ys = ys(yv у2) любых двух парабол у1 и у2 имеет вид [g(y1)]2 + (ys-yi)2 = [s(y2)]2 + (ys-y2)2' Отсюда находим (3.25) (3.26) 2(У2-^) Выражение (3.26) применяется на первом проходе по столбцам в алгоритме SEDT, когда вычисляется нижняя огибающая парабол в каждом столбце. Эта информация хранится в стеке. В стеке остаются только параболы, дающие вклад в нижнюю огибающую, а все остальные из стека удаляются. В результате получается довольно простой алгоритм, см. также эскиз на рис. 3.27. k \ к \ ^-—■ \\/з Рис. 3.27. Слева: эскиз для ys{y2, уъ) > ys(yv y2). Справа: эскиз для ys(y2, уъ) < yjyv y2) Вычисление нижней огибающей. В каждом стеке хранится пара вещественных чисел (Ь, е), описывающих начало и конец секции параболы, являющейся частью нижней огибающей. Пара (bt, et) относится к
146 ♦ Глава 5.Анализ изображений параболе на вершине стека, а ф„ е.) - пара, ассоциированная со следующей параболой в последовательном процессе просмотра. В первом элементе хранится начало и конец секции первой параболы. Он инициализируется значениями (l,iVrows); нижняя огибающая состояла бы из одного отрезка между точками 1 и Nrows, если бы все последующие параболы не пересекались с первой. Параболы упорядочены в соответствии со значениями координаты у в изображении. На каждом шаге вычисляется пересечение элемента на вершине стека, представляющего yt, со следующей параболой у~ Возможны три случая: 1) ys(yt, yj) > Nrows. Тогда у. не дает вклада в нижнюю огибающую, стек не изменяется, и мы переходим к следующей параболе; 2) ys(yt, у) < bt. Тогда удаляем yt из стека и вычисляем пересечение нового элемента на вершине стека с у,(см. рис. 3.27 справа); если стек пуст, то добавляем в него элемент, соответствующий у; 3) ys(yt, у.) > bt: корректируем yt, заменяя et на ys(yt, у.), добавляем в стек элемент, соответствующий у„ в котором b = et, e=n (см. рис. 3.27 слева). Этот процесс продолжается, пока не будет вычислено пересечение последней параболы с элементом на вершине стека. В конце работы в стеке останутся только секции, вошедшие в состав нижней огибающей, и они будут использованы для вычисления значений f3(x, у) на следующем проходе. Пример 3.5 (нижняя огибающая). В нашем простом примере (см. рис. 3.26) нижняя огибающая состоит из секции yv начинающейся в точке Ьх = 1 и заканчивающейся в точке ех = 3,5, и секции у6, начинающейся в точке Ь2 = 3,5 и заканчивающейся в точке е2 = 6. Теперь вычислим значения ¥>(}) = W))2 +(1-J)2 Для/=1,2,3 (3.27) и Y6(j) = (£(6))2 + (6 - /)2 для j = 4,5,6. (3.28) У описанного базового подхода есть вариации, позволяющие уменьшить объем вычислений. Предобработка и временная сложность. На шаге предобработки можно исключить все параболы, для которых g(y) > (Nrows - 1)/2, поскольку никакой их отрезок не является частью нижней огибающей. В нашем простом примере (см. рис. 3.26) параболы у3(/), для которойg(3) = 3 > 2,5, и у4(/), для которой g(4) = 4 > 2,5, будут исключены еще до начала вычисления пересечений.
З.З.Анализ значений изображения ♦ 147 Время работы алгоритма SEDT линейно. Вычисления для каждого измерения производятся независимо. Получающийся в результате квадрат минимального расстояния по одному измерению будет целым числом в каждой ячейке сетки, и это целое число используется для обсчета следующего измерения. Произвольное число измерений. Двумерный алгоритм SEDT можно записать следующим образом: D(x,y) = min {(х-О2 +(y-j?\ (3-29) l l,--;NcolSAj=\^ ,.,Nrows Поскольку i не зависит от/, мы можем переписать это в виде D(x,y)= min ( min Ux-if + (y-jf}\ (3.30) j=\,...,Nrows \J-\,-,Ncois JJ Вычисление минимума min {(x - i)2)=g(j)2 в формуле (3.30) соответствует проходу по строкам в первой части алгоритма SEDT. Мы можем переписать это выражение, зафиксировав х, и вывести формулу для второго измерения D(x,y) = min {g(if+(y-j)2}. (3.31) j—\,...,Nrows Вычисление минимума в (3.31) соответствует проходам по столбцам. Пусть р - точка трехмерного пространства с координатами (а:, у, к), где к = 1,..., Nla er, a h(k)2 - результат вычисления минимума в формуле (3.31) для фиксированных х, у. Тогда можно записать выражение для третьего измерения: D(x,y,z)= min {h{kf+{z-kf}. (3.32) k=\,...,Niayer Эту процедуру можно распространить и на большее число измерений. З.З.Анализ значений изображения Помимо геометрического анализа содержимого изображения, нас также интересует описание сигнала, т. е. распределение значений изображения. Мы и далее будем предполагать, что задано скалярное изображение /. В этом разделе описываются матрицы совместной встречаемости, метрики, определенные на этих матрицах, а также моменты участков или окон изображений.
148 Глава З.Анализ изображений 3.3.1. Матрицы совместной встречаемости и метрики Базовые статистики (среднее, дисперсия, гистограмма уровней яркости) представляют собой метрики, основанные на обобщении значений отдельных пикселей. Совместная встречаемость предназначена для изучения распределения значений с учетом значений смежных пикселей. Эта информация представляется в виде матрицы совместной встречаемости С. Предположим, что дано входное изображение /и множество смежности А. Например, в случае 4-смежности А4 = {(О, 1), (1, 0), (0, -1), (-1, 0)}, так что для любого пикселя р А4(р) = А4+ р. Как и раньше, будем обозначать П множество всех N , *N координат пикселей. Определим cols rows гг^ г гп матрицу совместной встречаемости С; размера (Gmax+ l)x(Gmax+ 1) для изображения / и значений пикселей и и v из множества {0, 1,..., Gmax} следующим образом: CI(u,v) = J, X pe.Q. qe.A/\p+q&Q. 1 если 1{р) = и и I(p + q) = v 0 в противном случае (3.33) Множество смежности может быть несимметричным, например: А = {(0,1), (1, 0)}. На рис. 3.28 предполагается, что множество смежности А = {(0,1)}. Показаны три примера увеличения счетчика значений в матрице совместной встречаемости. Так, в точке (х, у) = (3,2) находится значение и = 2, а строкой ниже - значение 1. Поэтому счетчик в элементе (u, v) = (2,1) увеличивается на 1. -►х 2 3 3 ф- т 3 3 3 3 3 1 о 0 ^2~~ 2 1 ■ ~0| 0 0 0 1 0 1 -►и 1 * +1 Рис. 3.28. Слева показано небольшое изображение 5х5, для которого Gmax= 3,a справа - его матрица совместной встречаемости размера 4x4. Множество смежности А = {(0,1)} содержит только одно смещение, т.е. мы должны просматривать лишь пиксель, расположенный строкой ниже. В точке (х, у) = (5,1) значение пикселя и = 0, а значение пикселя строкой ниже v = 0. Следовательно, счетчик в элементе матрицы (и, v) = (0,0) увеличивается на 1
5.5. Анализ значений изображения 149 Пример 3.6 (примеры матриц совместной встречаемости). Мы рассматриваем небольшое изображение / размера 5х5 (рис. 3.29 слева), для которого Gmax = 3, и четыре разных множества смежности: Аг = {(О,1)}, А2 = {(О,1), (1, 0)}, Аъ = {(0,1), (1,0), (0, -1)} и обычное множество смежности А4. На таких простых данных легко проследить за вычислениями. На среднем и правом рис. 3.29 показаны соответствующие матрицы совместной встречаемости. -►х 2 3 3 2 3 1 3 3 3 3 1 2 1 1 2 0 2 2 1 1 0 0 0 0 1 -► и у 3 1 1 0 0 2 2 1 0 2 1 2 0 0 1 4 ► и f 4 1 1 0 2 5 3 1 2 4 2 3 0 2 3 7 7 1 1 0 3 7 5 1 3 6 3 4 0 3 5 11 ► и 8 3 3 0 3 10 7 3 3 7 4 6 0 3 6 14 Рис 3.29. Слева вверху, входное изображение 1,х изменяется от 1 до Nco[s= 5, а у - от 1 до Nrows= 5. б середине вверху: матрица совместной встречаемости Сг для множества смежности А • и и v изменяются от 0 до G =3. м 1' " max Справа вверху: матрица совместной встречаемости С2 для множества смежности А2. В середине внизу: матрица совместной встречаемости С3 для множества смежности Ау Справа внизу: матрица совместной встречаемости С4 для множества смежности А4 Приведем несколько примеров вычислений. Начнем с Аг. Вначале имеем (u, v) = (0, 0). Мы должны подсчитать, сколько раз встречается ситуация, когда 1(х, у) = 0 и 1(х, у + 1) = 0, т. е. под нулевым пикселем также находится нулевой пиксель. Это имеет место в трех случаях. Поэтому для множества смежности Аг Сх(0, 0) = 3. Рассмотрим еще один пример: (м, v) = (3, 1). Нет ни одного случая, когда значение 3 расположено непосредственно над значением 1, поэтому Сх(3,1) = 0. Далее рассмотрим два примера для А2. Аг - подмножество Av поэтому Сх(и, v) < С2(м, v) для любой пары значений пикселей (и, v). В случае (и, v) = (0,0), помимо ситуации «1(ху у) = 0 и 1(ху у + 1) = 0», мы должны подсчитать, сколько раз встречается ситуация, когда оба пикселя в точках (х, у) и (л: + 1, у) равны 0. Такое имеет место всего один раз. Поэтому С2(0,0) = 3 + 1 = 4. Последний при-
150 ♦ Глава 5. Анализ изображений мер: (и, v) = (2,1). Для q = (О,1) мы насчитали два случая, и для q = (1,0) тоже два случая, поэтому С2(2,1) = 2 + 2 = 4. Суммы всех элементов в любой из этих матриц совместной встречаемости в 20 раз больше количества элементов в множестве смежности. Последняя матрица (для А4) симметрична, потому что симметрично само множество А4. Этот пример иллюстрирует два важных свойства матриц совместной встречаемости. 1. Каждый элемент q множества смежности добавляет Ncols • (Nrows - 1) или (N , - 1) • N к общей сумме элементов матрицы совместной v cols ' rows ' * tr —\ встречаемости в зависимости от своего направления: вдоль строки или вдоль столбца. 2. Если множество смежности симметрично, то и матрица совместной встречаемости тоже симметрична. Матрицы совместной встречаемости используются для определения метрик, основанных на совместной встречаемости, позволяющих количественно представить информацию в изображении /. Заметим, что присутствующий в изображении шум при использовании этих метрик также считается информацией. Мы рассмотрим две такие метрики: Mhom(I)= X 7| 1 | (мера однородности), (3.34) Mmi(I)= ^ Cj(u,vf (мера равномерности). (3.35) «,ue{0,l,...,Gmax} Неформально можно сказать, что высокая однородность или равномерность свидетельствует о наличии большого количества «бестекстурных» областей в изображении /. Можно также определить метрики, сравнивая суммы всех элементов на главной диагонали матрицы совместной встречаемости или близко к ней с суммой всех остальных элементов этой матрицы. Врезка 3.12 (метрики совместной встречаемости). В книге [/?. М. Haratick and L G. Shapiro. Computer and Robot Vision, vol. 1, Reading, MA, Addison-Wesley, 1992] приведены дополнительные метрики совместной встречаемости и подробно обсуждается их роль в анализе изображений.
З.З.Анализ значений изображения ♦ 151 3.3.2. Анализ участков с привлечением моментов Рассмотрим участок пикселей S с П в изображении /. Этот участок может представлять «объект», как показано на рис. 3.30. Рис. 3.30. Главные оси и центроиды обнаруженных участков, где имеются рыбные косяки По-прежнему предполагаем, что изображение I скалярное. Моменты участка S изображения I определяются следующим образом: /ил \ь($)= X хауЬ'1{х,У), (3.36) (x,y}eS где аиЬ- неотрицательные целые числа. Сумма а + Ь называется порядком момента. Существует всего один момент т, 0,0 (S) = X 1{х,У) (3.37) (x,y)eS нулевого порядка. Если 1{х, у) = 1 в каждой точке 5, то m00(S) = <A(S), площади S. Моменты первого порядка *MS)= X xl(x,y) и m0l(S)= X yl(x,y) (3.38) (x,y)eS (x,y)eS определяют центроид (xs, ys) участка S: х? — ™0,о(5) и Л = m0JS) (3.39) Отметим, что центроид зависит от значений / в S, а не только от формы S. Центральные моменты участка 5 изображения / определяются по формуле
152 ♦ Глава З.Анализ изображений Ma,b(S)= X (x-xsy(y-ys)b-I(x,y), (3.40) (x,y)cS где аиЬ- неотрицательные целые числа. Центральные моменты позволяют охарактеризовать участок S с помощью признаков, инвариантных относительно линейных преобразований. Мы приведем только два примера таких признаков. Главные оси, показанные на рис. 3.30, определены углом 6(S) (по модулю я) между прямой, проходящей через центроид, и положительным направлением оси а:. Имеет место тождество tan(2fl(S)) = ,У^,СЧ- (3-41) ju20(S)-ju02(S) Эксцентриситет s(S) участка 5 определяется по формуле ^[W-^WT-y' (з.42) и характеризует отношение главной оси к ортогональной ей оси S. Эксцентриситет равен нулю, если S - круг, обладающий вращательной симметрией, тогда ц2 0(5) = ц0 2(S). Эксцентриситет отрезка прямой равен 1 в идеальном случае (и близок к 1 при измерении изображения). Для множеств, обладающих вращательной симметрией с центроидом в начале координат, также имеет место равенство тг г(Б) = 0. Пример 3.7 (точность записанных отметок). В компьютерном зрении бывают случаи, когда специальную отметку на поверхности (например, в виде нарисованного крестика или кружочка) необходимо точно локализовать на записанном изображении /. Для этого существует стандартная двухшаговая процедура: 1) найти участок S пикселей, считающийся изображением отметки; 2) вычислить по формуле (3.39) центроид участка S, используя значения I в 5. Это позволяет определить позицию отметки в 7с субпиксельной точностью. Пример 3.8 (достижение инвариантности относительно вращения для анализа участка). Часто желательно, чтобы признаки участка изображения были изотропными (т. е. инвариантными относительно вращения). С помощью моментов можно спроектировать четырехшаговую процедуру для решения этой задачи. 1. Выделить участок пикселей 5, подлежащий анализу.
5.4. Поиск прямых и окружностей ♦ 155 2. Вычислить главную ось по формуле (3.41). 3. Повернуть 5, так чтобы его главная ось совпала с осью х (или любой другой заранее выбранной фиксированной осью). Если цх X(S) = 0 или pi20 = pi02 (т. е. фигура обладает вращательной симметрией), поворот не нужен. 4. Вычислить изотропные признаки нормализованного относительно вращения множества, полученного после поворота. Отметим, что поворот на сетке вносит небольшие искажения в участок 5, и его форма может немного измениться из-за ограничений, налагаемых сеткой. Врезка 3.13 (моменты и классификация объектов). Работа [М.К.Ни.Visual pattern recognition by moment invariants. IRE Trans. Info. Theory, vol. IT-8, 1962, p. 179-187] заложила основы инвариантной относительно линейных преобразований ха- рактеризации объектов с помощью моментов. Набор моментов Ху во время публикации статьи был практически бесполезен вследствие существовавших в то время ограничений мощности компьютеров, но сегодня это стандартные признаки для классификации объектов. Поищите в сети «моменты Ху» - и вы узнаете, что это такое. ЗА Поиск прямых и окружностей Прямые и окружности предстают в изображении как «зашумленные объекты», и их обнаружение - пример распознавания образов. В этом разделе мы приведем подробное руководство по поиску отрезков прямых и краткие сведения о поиске окружностей. 3.4.1. Прямые В реальных изображениях прямые линии встречаются часто, например границы зданий, края дорог (см. рис. 3.31) или опоры линий электропередачи. Точная локализация таких прямых помогает интерпретировать изображение. Прежде всего мы с помощью детектора границ преобразуем заданное изображение в бинарную карту границ. Затем выделенные граничные пиксели необходимо проанализировать и понять, есть ли среди них подмножества, образующие что-то похожее на отрезок прямой. При этом детектор прямых должен быть устойчив к шуму, который неизбежно имеет место.
154 ♦ Глава 3. Анализ изображений Рис. 3.31. Края дорог и их аппроксимации найденными отрезками прямых Как описать прямую, присутствующую в изображении размера NcolsxNrows? Очевидный ответ - с помощью уравнения у = ах + Ь. (3.43) Отрезок прямой, описываемой этим уравнением, показан синим цветом на рис. 3.32 слева. Оригинальное преобразование Хафа было предложено для описания отрезков прямой в пространстве параметров ab; см. рис. 3.32 справа. Позиции пикселей p,q,rB изображении отображаются в три прямые в пространстве параметров. Три прямые, показанные красным, зеленым и синим цветами в изображении, соответствуют трем точкам соответственных цветов в пространстве параметров. Если синяя прямая описывается уравнением у = ахх + Ьр то она пересекает ось у в точке bv Точки p = (x,y)nq = (x,y)Ha синей прямой описывают соответственно прямые Ъ = -х а + у иЬ = -х а + у в пространстве параметров. Например, точки на прямой b = -х а + у описывают все прямые в изображении, проходящие через точку р в любом направле-
5.4. Поиск прямых и окружностей ♦ 155 нии (кроме вертикальной прямой, для которой а = °°). Таким образом, прямые Ъ = -х а + у иЬ = -х а + у пересекаются в пространстве параметров аЪ в точке (ар Ь^, определенной параметрами ах и Ьх синей прямой. 1 Ncols Ъ Рис. 3.32. Слева: три отрезка прямых в изображении. Синяя прямая пересекается с осью у в точке bv проходит на расстоянии d от начала координат и составляет угол а с положительным направлением оси х. Каковы значения b,d и а для красной и зеленой прямых? Справа: пространство параметров ab На рисунке представлены и другие примеры. Красная, синяя и зеленая точки в пространстве аЪ соответствуют красной, синей и зеленой прямым на плоскости изображения. Если бы п точек располагались в точности на одной прямой у, то соответствующие им п прямых в пространстве параметров пересекались бы в одной точке (а , Ь ), соответствующей прямой у. Но в изображениях прямые неидеальны из-за шума. Множество п пикселей изображения, лежащих «почти» на одной прямой у, определяет множество п прямых в пространстве аЪ, которые пересекаются «почти» в одной точке {а , Ъ ), соответствующей у. Идея в том, чтобы найти такие кластеры точек пересечения прямых в пространстве параметров и соответствующую им прямую у в изображении. Идея-то хороша, только не работает. Почему? Потому что параметры а и Ъ не ограничены изображением N *N . Для обнаружения класте- r c cols rows " CJ ров нам пришлось бы анализировать бесконечное пространство параметров. Врезка 3.14 (история преобразования Хафа). Оригинальное преобразование Хафа было опубликовано в работе [RV.C.Hough.Methodsand means for recognizing complex patterns. U.S. Patent 3.069.654,1962].
156 ♦ Глава З.Анализ изображений Пространство параметров, предложенное Дуда и Хартом. Вместо того чтобы представлять прямые линии в стандартной форме (3.43), мы будем описывать их параметрами d и а, также показанными на рис. 3.32 слева для синей линии: d = х • cos а + у • sin а. (3.44) А в остальном будем следовать идеям оригинального преобразования Хафа. При этом пространство параметров будет ограничено. Угловой параметр а принадлежит интервалу [0, 2л), а параметр расстояния d - интервалу [0, dmJ, где 4-х = JKIS+KWS- (3.45) Этот способ известен под названием стандартное преобразование Хафа. Теперь точке изображения соответствует синусоида или косинусоида в пространстве параметров da, которое называется пространством Хафа. Врезка 3.15 (Радон). Представление прямой в виде (3.44) было впервые предложено в работе [/.flacfon.Uberdie Bestimmung von Funktionendurch ihre Integralwerte Langs gewisser Mannigfaltigkeiten. Berichte Sachsische Akademie der Wissenschaften. Math.-Phys. KL, 69:262-267,1917], где использовалось для определения преобразования в непрерывном пространстве, которое сегодня известно как преобразование Радона. Это преобразование составляет теоретическое основание методов, применяемых в компьютерной томографии. Исторически более раннее преобразование Радона является обобщением преобразования Хафа. На рис. 3.33 показано применение стандартного преобразования Хафа. Исходное изображение (из последовательности в наборе EISATS) показано слева вверху. Карта границ (слева внизу) построена с помощью оператора Кэнни (см. раздел 2.3.3). Справа вверху показано представление этой карты в пространстве Хафа da после вставки синусоид и косинусоид для всех найденных граничных пикселей. Отчетливо видны три кластера (область в пространстве Хафа, где пересекается много кривых). Соответственно, во входном изображении выделяются три прямые. Пространство Хафа как дискретный массив аккумуляторов. При реализации пространства Хафа создается массив последовательных интервалов d и а для определения конечного числа ячеек. Например, множество значений d можно дискретизировать, разбив на интервалы [0,1), [1, 2), [2, 3),..., а множество значений а - на интервалы шириной
3.4. Поиск прямых и окружностей ♦ 157 в один градус. Получающаяся структура данных называется массивом аккумуляторов. Рис. 3.33. Справа вверху: пространство Хафа для граничных точек (слева внизу), найденных в исходном изображении (слева вверху). Анализ пространства Хафа приводит к выделению трех отрезков прямой (справа внизу) В начале построения карты границ счетчики во всех ячейках массива аккумуляторов равны нулю. При вставке новой синусоиды или косинусоиды в массив аккумуляторов счетчики в ячейках, которые пересекает кривая, увеличиваются на 1. В конце процесса счетчик в каждой ячейке массива аккумуляторов равен количеству кривых, проходящих через эту ячейку. На рис. 3.33 нулевые счетчики показаны белым, а ненулевые - красным, причем цвет тем темнее, чем счетчик больше. Можно ожидать, что прямые линии в изображении удастся выявить, найдя пики в массиве аккумуляторов, определяемые (каким-то образом) как центры «темных участков». В стандартном преобразовании Хафа пики совпадают с локальными максимумами значений счетчиков. Следовательно, параметры найденных прямых определяются с точностью, зависящей от размера интервалов, выбранного на этапе дискретизации пространства Хафа. Мы говорим, что точность параметров клеточная, а не субклеточная. Один
158 Глава З.Анализ изображений из способов улучшить клеточную точность (ценой увеличения времени вычислений) - выбрать меньшие интервалы. Добиться субклеточной точности можно также посредством вычисления центроида в окне с максимальной суммой счетчиков. См. рис. 3.34 справа вверху и слева внизу. н 12 9 12 12 13 14 9 13 12 б 5 4 12 9 12 12 13 14 9 13 12 6 5 3 h 15 13 17 13 17 16 lit 6 4 0 3 щ 15 13 17 13 17 16 14 6 4 у 0 2 6 20 17 21 26 15 12 у 9 9 9 2 б 20 17 21 26 15 12 0 9 0 0 0 ? 13 20 39 2S 15 У 0 0 3 0 0 2 13 20 39 28 I 15 0 0 0 3 в 0 0 и 19 59 32 4 и У 0 2 0 в 0 к Г 59 ^ 4 в 0 0 2 2 0 2 0 12 52 48 2 2 У 0 0 2 У 2 J^ 12 5? 48 2 2 У У У 0 3 0 3 16 39 35 29 Ь 9 9 9 9 3 9 3 1Й 39 _2* 20 5 9 9 9 0 2 Л 12 19 20 25 22 16 5 0 0 0 2 0 12 19 20 I 25 22 16 5 О 0 6 0 7 13 15 14 19 14 16 15 6 0 0 0 7 13 15 14 19 14 16 15 8 0 4 12 9 12 12 13 14 9 13 12 6 5 4 9 12 12 13 14 9 13 А2^ 5 3 4 15 13 17 13 Af 16 14 6 4 0 3 4 АВ* 17 13 17 16 Jj^ ^г 4 0 е 2 б 26 17 21 26 15 12 с е в 0 2 6 1Г* 21 26 *Л2 0 9 О й 0 2 13 20 39 •га 15 0 0 0 3 0 0 2 13 3?* ^15 О 0 0 3 0 0 0 4 А © ТЙГ 4 б 0 0 2 В 6 В 4 19 ""32 4 в В в 2 ? 0 2 0 12 52 4« 2 2 0 0 0 2 0 2 В 12 2 2 0 е 0 0 3 0 3 16 39 35 29 5 0 0 0 0 3 0 3^ "*39 2(К 5 У У 0 0 2 О 12 19 2в 25 22 16 5 0 0 0 2 19 20 25 \22 5^ 9 9 0 0 7 13 15 14 If 14 16 15 8 0 0 ^7 13 15 14 19 14 16 ^5 0 Рис. 3.34. Слева вверху: счетчики в пространстве da. Справа вверху: пик в локальном максимуме. Слева внизу: окно счетчиков с максимальной суммой размера 3*3; пик может быть определен как центроид этого окна. Справа внизу: бабочка пика Повышение точности и уменьшение времени вычислений. Распределение значений счетчиков в окрестности пика напоминает по форме бабочку, см. рис. 3.34 справа внизу. Бабочку пика можно аппроксимировать кривыми второго порядка, описывающими ее нижнюю и верхнюю части. Это позволяет определить пик с субклеточной точностью. В стандартном преобразовании Хафа, показанном на рис. 3.32, прямые линии описываются относительно начала системы координат изображения. Посмотрим, что будет, если перенести начало координат в центр изображения (рис. 3.35). Уравнение прямой принимает вид: / d = N \ х- cols COSOT + N. \ у- sin a. (3.46) Значение d в пространстве da упрощается:
3.4. Поиск прямых и окружноаей 159 =ffi cols +n: (3.47) Это не только наполовину уменьшает размер массива аккумуляторов, а значит, и объем вычислений, но еще и улучшает форму бабочек, как показывают эксперименты. Бабочки оказываются «менее вытянутыми», поэтому находить пики становится проще. AL —г-> 2л Рис. 3.35. Слева: система координат с началом в центре для представления прямых в изображении. Справа: показано максимально возможное значение d (c/max) и эскиз бабочки для одной прямой Результат, показанный на рис. 3.33, был вычислен с помощью стандартного преобразования Хафа. А результаты на рис. 3.31 получены путем применения системы координат с началом в центре и аппроксимации бабочек кривыми второго порядка с целью определения пиков с субклеточной точностью. Несколько отрезков прямой в одном изображении. Бабочка определяется с использованием окна поиска размера т*п в пространстве Хафа, например т = п = 11. Если пики далеко друг от друга, то никаких проблем не возникает. Но при наличии нескольких прямых в изображении / может возникнуть наложение бабочек в пространстве Хафа. Обычно в таком случае только одно крыло бабочки пересекается с другой бабочкой. Это нарушает симметрию бабочки. После обнаружения пика в точке {d, а) мы, чтобы не мешать обнаружению следующих пиков, выбираем некоторые пиксели изображения (близкие к найденной прямой) и инвертируем процесс вставки этих пикселей в массив аккумуляторов: теперь, когда синусоида или коси-
160 ♦ Глава 5. Анализ изображений нусоида пересекает ячейки, мы не увеличиваем, а уменьшаем счетчики. После устранения эффектов пика, найденного в пространстве Хафа, для нахождения следующего пика нужно просто продолжить поиск в окнах размера т*п. Конечные точки отрезков. До сих пор мы говорили об определении прямой, а не отрезка прямой, имеющего два конца. Принятый в настоящее время метод нахождения концов отрезка был опубликован М. Атикуззаманом (М. Atiquzzaman) и М. У. Ахтаром (М. W. Akhtar) в 1994 г. В общем случае конечные точки можно найти, протрассировав найденную в изображении прямую и проанализировав потенциально принадлежащие ей граничные пиксели в близкой окрестности. Альтернативно конечные точки можно искать в пространстве Хафа. 3.4.2. Окружности Идею преобразования Хафа можно обобщить: рассмотреть для представляющих интерес геометрических объектов такую параметризацию, для которой возможен ограниченный массив аккумуляторов. Затем в этот массив вставляются пиксели и находятся пики. Проиллюстрируем это обобщение на примере окружностей. Так, на рис. 3.36 показано приложение, в котором очень важно умение находить окружности - ведь знаки «Стоп» почти круглые. Рис. 3.36. Входное изображение для обнаружения знаков «Стоп». Их края представляют собой окружности, диаметры которых попадают в ожидаемый диапазон В данном случае для получения ограниченного массива аккумуляторов достаточно очевидной параметризации окружностей. Будем опи-
3.4. Поиск прямых и окружноаей ♦ 161 сывать окружность центром (хс, ус) и радиусом г. Тем самым мы определяем трехмерное пространство Хафа. Рассмотрим пиксель р = (х, у) изображения /. Во-первых, он лежит на окружности радиуса г = О, совпадающей с самим пикселем. Это определяет точку (х, у, 0) в пространстве Хафа - вершину прямого кругового конуса. Теперь предположим, что пиксель р = (х, у) лежит на окружностях радиуса г0 > 0. Центры этих окружностей образуют окружность радиуса г0 с центром в точке р = (х, у). См. рис. 3.37 слева. Эта окружность принадлежит поверхности прямого кругового конуса с вершиной в точке (а:, у) в пространстве Хафа. Точнее, это пересечение поверхности конуса с плоскостью г = г0 в пространстве хуг. Рис. 3.37. Слева: пиксель (х,у) и геометрическое место центров всех окружностей радиуса rQ > 0 с центром в (х, у). Справа: пиксель (х, у) определяет поверхность прямого кругового конуса в пространстве Хафа Возможные радиусы окружностей в изображении принадлежат диапазону г0 < г < rv Верхняя граница определяется размером самого изображения. Таким образом, трехмерное пространство Хафа для поиска окружностей сводится к «бруску» толщиной гх - rQ над П, т. е. пространство Хафа ограничено. Это пространство Хафа можно дискретизировать, разбив на трехмерные ячейки, образующие трехмерный массив аккумуляторов. В начале процесса поиска все счетчики в массиве инициализируются нулями. При вставке пикселя (х, у) в массив аккумуляторов счетчики во всех ячейках, которые пересекает поверхность конуса с вершиной в точке (х, у), увеличиваются на 1. Например, при вставке трех неколлинеарных пикселей в трехмерное пространство Хафа порождаются поверхности трех прямых круговых конусов. Мы знаем, что через любые три неколлинеарные точки на
162 ♦ Глава 5.Анализ изображений плоскости можно провести единственную окружность. Поэтому все три поверхности пересекаются только в одной точке, которая однозначно определяет параметры некоторой окружности. Далее мы, как и при поиске прямых, должны найти пики в трехмерном массиве аккумуляторов. Наличие нескольких окружностей обычно не создает существенной интерференции в этом массиве, и, в отличие от задачи поиска прямых, не существует «проблемы конечных точек». 3.5. Упражнения 3.5.1. Упражнения по программированию Упражнение 3.1 (идентификация и анализ компонент бинарного изображения). Рассмотрите произвольное скалярное изображение /. Примените следующую операцию бинаризации с выбранным порогом Г, 1 < Т< G , для порождения бинарного изображения: J(x,y) = { 0 если/(*,у)<Г 1 в противном случае В диалоговом окне пользователь может задать для получающегося бинарного изображения / два режима: 1) подсчет компонент: если пользователь выбирает этот режим, то можно использовать ключ «черный < белый» или «белый < черный» для подсчета черных компонент бинарного изображения /; 2) геометрические характеристики выбранной компоненты: если пользователь выбирает этот режим и щелкает по какой-то черной компоненте, то вычисляются площадь, периметр и диаметр этой компоненты. В данном упражнении достаточно вычислять периметр как длину 8-пути, описывающего край компоненты (т. е. результат трассировки края в предположении 8-смежности). Диаметром компоненты называется максимальное расстояние между двумя принадлежащими ей пикселями (следовательно, диаметр определяется двумя пикселями, принадлежащими краю компоненты). Факультативно можно перед выполнением операций 1 и 2 удалить малые компоненты, площадь которых меньше заданного порога, а в режиме 2 перекрашивать выбранные компоненты, чтобы избежать повторного выбора.
3.5.Упражнения ♦ 165 Упражнение 3.2 (удаление компонент, диаметр которых меньше заданного порога, и гистограммы признаков). Сгенерируйте бинарное изображение, как описано в упражнении 3.1. Перед тем как приступать к последующей обработке, удалите все черные компоненты, диаметр которых меньше заданного порога Т. Для этого примените процедуру, показанную на рис. 3.38. Рассмотрите окно размера Т*Т внутри окна (Т + 2)х(Г + 2). Если количество черных пикселей в меньшем окне равно количеству черных пикселей в большем окне (т. е. внутри множества, являющего их разностью, нет черных пикселей), то обнулите все пиксели в меньшем окне (сделайте белыми). |« т Рис. 3.38. Удаление артефактов диаметра, не меньшего Т Для каждой из оставшихся компонент S сгенерированного бинарного изображения вычислите площадь <Л(5), периметр T(S) и коэффициент формы T(S) = &(sy 2л-Я{$) (3.49) Постройте гистограммы распределения этих трех признаков для оставшихся в бинарном изображении компонент. Упражнение 3.3 (вычисление метрик совместной встречаемости). Возьмите скалярные изображения / разумного размера (не менее 256x256). Рекурсивно примените прямоугольный фильтр 3x3 или локальный медианный оператор 3x3 к входному изображению и получите сглаженное и остаточное изображение S(n) и R(n) относительно этих двух операций сглаживания и удаления шума для п = 0,..., 30. См. (2.33). Вычислите матрицы совместной встречаемости для / и изображений 5(п) и R(n). Обозначим Т сумму всех элементов матрицы совместной встречаемости /.
164 ♦ Глава 5.Анализ изображений Врезка 3.16 (коэффициент формы и изопериметрическое неравенство). Изо- периметрическое неравенство на плоскости, известное со времен античности, утверждает, что для любого множества на плоскости, для которого корректно определены площадь Л и периметр, имеет место неравенство тг>1. (3.50) 4лг-Я Отсюда следует, что из всех таких множеств, имеющих одинаковый периметр, наибольшая площадь у круга. Выражение в левой части неравенства (3.50) называют также изопериметрическим дефицитом множества; он измеряет степень отличия множества от круга. Первое доказательство античной изопе- риметрической задачи было опубликовано в 1882 г. Цитируется по изданию [R.KtetteandA.Rosenfeld. Digital Geometry. Morgan Kaufmann, San Francisco, 2004]. Вычислите меры однородности и равномерности для изображений S(n) и R(n) и масштабируйте полученные значения, разделив их на Г. Тем самым вы получите нормированные значения в диапазоне [0,1]. Нанесите полученные результаты на график в виде функций от п = 0,..., 30 для обоих операторов сглаживания. Обсудите сходство и различие результатов для входных изображений с разными распределениями яркости, например для равномерно освещенных изображений, снятых в помещении, или для изображений, снятых под открытым небом, с артефактами освещения. Упражнение 3.4 (признаки компонент на основе моментов). Сгенерируйте бинарные изображения, как описано в упражнении 3.1. Прежде чем приступать к последующей обработке, удалите все черные артефакты, например все компоненты, диаметр которых меньше заданного порога Г, или все компоненты, площадь которых меньше заданного порога. Реализуйте пользовательский интерфейс для выбора оставшихся компонент (щелчком мыши) по одной. Для выбранной компоненты вычислите центроид, главную ось и эксцентриситет и каким-либо образом визуализируйте результаты. Для визуализации эксцентриситета можно, например, нарисовать эллипс с таким эксцентриситетом или просто вывести поверх выбранной компоненты полосу, высота которой равна эксцентриситету. Что касается центроида и главной оси, поступите примерно так, как показано на рис. 3.30.
5.5. Упражнения ♦ 165 Упражнение 3.5 (нормализация изображения по направлению). Сделайте снимки сцены, где много вертикальных и горизонтальных границ, держа камеру в руке (т. е. без применения треножника и других средств установки по уровню). Найдите «почти вертикальные» и «почти горизонтальные» прямолинейные границы, применяя преобразования Хафа и критерий отбрасывания прямых, угол наклона которых не подходит под определение «почти вертикальности» или «почти горизонтальности». Зная все найденные вертикальные и горизонтальные прямые, вычислите угол поворота изображения, при котором эти прямые станут действительно осепараллельными. Пример см. на рис. 3.39. Рис. 3.39. Снятое (слева) и нормализованное (справа) изображение Это один из способов (безусловно, не самый простой) нормализации изображений относительно условий съемки. Упражнение 3.6 (генерация зашумленных отрезков прямых и преобразование Хафа). Напишите программу, которая будет генерировать зашумленные отрезки прямых, как показано на рис. 3.40. Программа должна поддерживать задание плотности сгенерированных точек, а также задание количества, длин и направлений сгенерированных отрезков. Примените свою программу поиска прямых (почему бы не написать ее самостоятельно?), основанную на преобразовании Хафа, для отыскания этих отрезков, включая их концы. Сравните полученные результаты с истинными данными, использованными при генерации отрезков. Увеличьте уровень шума и обсудите устойчивость своей программы поиска прямых. Упражнение 3.7 (нахождение краев дороги). Посадите в машину второго человека (кроме водителя), который будет записывать видео при
166 ♦ Глава 5. Анализ изображений движении по хорошо размеченной автотрассе. Найдите края дороги на всех кадрах записанного видео (их должно быть не менее 200). 1. Найдите граничные пиксели в каждом кадре с помощью своего любимого детектора границ. 2. Найдите прямые линии на картах границ. Просто продлите найденные границы, начав с нижней строки, примерно на две трети высоты изображения вверх, как сделано на рис. 3.31 и 3.33 справа внизу. Искать концы отрезков не нужно. 3. Сгенерируйте видео (например, с помощью avi или другого кодека) по сгенерированным краям дороги. Факультативно можете подумать о прослеживании прямых, чтобы сделать процесс поиска более эффективным. Рис. 3.40. Зашумленные отрезки прямых
3.5. Упражнения ♦ 167 3.5.2. Упражнения, не требующие программирования Упражнение 3.8. Рассмотрим следующее отношение 6-смежности в изображениях для пикселя р = (х, у): в четной строке (когда у четно) используется множество Лбстя, = А4и{(х+1,у+1),(х+1,у-1)}, а в нечетной строке - множество ^ = А4и{(х-1,у+1),(х-1,у-1)}. Теперь рассмотрите рис. 3.3 слева и обсудите результат. Далее рассмотрите входное бинарное изображение в виде шахматной доски. Какой получается результат? Упражнение 3.9. Для вычисления iC-смежности в некоторых случаях требуется проверять, кто владеет центральным пикселем окна 2*2. Сформулируйте условие, при котором такая проверка необходима. Например, если значения всех четырех пикселей одинаковы, то проверка не нужна. И если значения трех пикселей одинаковы, проверка тоже не нужна. Упражнение 3.10. Что произойдет, если использовать в алгоритме Босса изображенный ниже локальный порядок обхода, а не локальный круговой порядок, показанный на рис. 3.11? Упражнение 3.11. Обсудите сходство и различие эксцентриситета и коэффициента формы. При обсуждении привлекайте примеры двоичных изображений. Упражнение 3.12. Объясните, как можно воспользоваться информацией о градиенте изображения, чтобы повысить точность и скорость нахождения окружностей, используя идею преобразования Хафа. Упражнение 3.13. Спроектируйте основанный на идеях преобразования Хафа метод нахождения парабол, например в изображении на рис. 3.41.
168 Глава 5. Анализ изображений Рис. 3.41. Фотография первой велогонки «Тур де Франс» в 1903 г. (срок действия авторского права истек)
Глава Анализ плотного движения В этой главе мы обсудим оптический поток - стандартное представление плотного движения в компьютерном зрении. Каждый пиксель помечается вектором движения, показывающим, как изменяются данные изображения между моментами t и t + 1. Анализ разреженного движения (называемый также прослеживанием движения) - тема главы 9. 4.1. Зй-движение и двумерный оптический поток Рассмотрим последовательность изображений (или кадров видео), снятых с интервалом St. Например, при записи видео с частотой 30 Гц (герц) 6t = 1/30, что часто записывают как 30 кадров/с (англ. fps). Обозначим /(•, •, t) кадр, записанный в момент £, в котором значения пикселя с координатами (х, у) равны 1{х, у, t). Врезка 4.1 (Герц). Генрих Рудольф Герц (1857-1894) - немецкий физик, изучавший электромагнетизм. В этом разделе описываются основы анализа движения в последовательностях изображений. 4.1.1. Локальное смещение и оптический поток Точка трехмерного пространства Р = (X, Y, Z) в момент t • 6t проецируется в пиксель р = (х, у) изображения /(•, •, £); см. рис. 4.1. Камера характеризуется фокусным расстоянием /", центром проекции О и смотрит в направлении оптической оси, представленной осью Z. В такой идеальной модели камеры определена центральная проекция на плоскость изображения ху; более подробно мы обсудим модели камеры в главе 6.
170 ♦ Глава 4. Анализ плотного движения Рис. 4.1. Проекция скорости v на плоскость изображения определяет смещение d Двумерное движение. Предположим, что точка Р в промежутке между моментами t • St и (t + 1) • St совершает в трехмерном пространстве линейное перемещение со скоростью (имеющей величину и направление) v = (vx, Vy, vz). Это определяет трехмерное движение v • St, начинающееся в точке Р = (X, У, Z) и заканчивающееся в точке (X + vx-St, Y+ vY-St,Z + vz• St). Вектор d = (f, гру - проекция этого трехмерного перемещения точки Р между изображениями /(•, •, t) и /(•, •, t + 1). Геометрически это перемещение на плоскости определяет локальное смещение пикселя, первоначально расположенного в точке р, в предположении, что нам известно трехмерное движение. Видимое смещение на плоскости - это оптический поток и = (и, v)T; он начинается в точке р = (х, у) и заканчивается в точке р = (х + и, у + v), зачастую он не совпадает с фактическим локальным смещением. Вычисление оптического потока преследует цель оценить движение на плоскости. На рис. 4.2 показано различие между движением на плоскости и оптическим потоком. Алгоритм анализа плотного движения должен преобразовать направленный вверх оптический поток и в реальное двумерное движение d. В качестве еще одного примера рассмотрим фиксированный (относительно Земли, далее мы будем называть его статическим) «текстури-
4.1. ЗР-движение и двумерный оптический поток ♦ 171 рованный» объект и движущийся источник света (например, Солнце). При этом генерируется оптический поток. Заметьте: объект не двигается, т. е. никакого двумерного движения нет, а оптический поток есть. Рис. 4.2. Слева: в случае вращающегося столба со спиральной раскраской (реклама парикмахера) мы имеем двумерное движение слева направо. В середине: эскиз двумерного движения (без масштабирования векторов). Справа: эскиз оптического потока, который «почему-то» направлен снизу вверх Векторные поля. Чтобы понять движение трехмерных объектов, мы хотим анализировать поведение проекций большого количества точек, расположенных на их поверхности P=(X,Y,Z). Результаты должны быть согласованы с перемещениями объекта или с формой движущихся твердых тел. Векторы двумерного движения образуют векторное поле. На рис. 4.3 приведен пример, иллюстрирующий вращение прямоугольника (вокруг неподвижной точки) в плоскости, параллельной плоскости изображения. Предположение о твердости тела упрощает анализ двумерных векторных полей движения, но даже в этом случае интерпретировать их нелегко. В качестве графического упражнения можете построить визуализации двумерных векторных полей для движения простых трехмерных тел, например куба или другого простого многогранника. Сделать выводы о форме многогранника, глядя на поле движения, очень трудно. Вычисленное векторное поле движения называется плотным, если оно содержит векторы движения (почти) во всех пикселях. В противном случае оно называется разреженным.
172 ♦ Глава 4. Анализ плотного движения Рис. 4.3. Векторное поле вращения прямоугольника. Векторы движения начинаются в точках, соответствующих моменту времени f, и заканчиваются в точках, соответствующих моменту времени t + 1, в которые начальные точки перешли в результате вращения На рис. 4.4 представлен цветовой ключ для визуализации векторов оптического потока. Оттенок цвета представляет направление движения, а насыщенность - его абсолютную величину. Рис. 4.4. Цветовой ключ для визуализации оптического потока. Оттенок цвета представляет направление вектора (с началом в центре круга), а насыщенность соответствует абсолютной величине этого вектора. Белый цвет означает отсутствие движения
4.1. ЗР-движение и двумерный оптический поток ♦ 175 На рис. 4.5 приведен пример - два входных кадра и цветокодирован- ные результаты. По цветам движения можно четко идентифицировать велосипедиста - пиксели в этой области явно отличаются от соседних. Результат можно улучшить, обогатив базовый алгоритм Хорна-Шанка дополнительными идеями. Рис. 4.5. Верхний ряд, слева и в середине: два последовательных кадра видео bicyclist, снятого с частотой 25 кадров/с. Верхний ряд справа: цветокодированное поле движения, вычисленное с помощью базового алгоритма Хорна-Шанка. Помимо цветового кодирования, имеется несколько разреженных (увеличенных) векторов, это избыточная информация, помогающая, однако, в интерпретации поля потока. Нижний ряд, слева и в середине: два последовательных кадра видео tennisball. Нижний ряд справа: цветокодированное поле движения, вычисленное с помощью базового алгоритма Хорна-Шанка 4.1.2. Проблема апертуры и градиентный поток Анализируя спроецированные изображения, мы наблюдаем ограниченную область видимого движения, определяемую кадровым окном (апертурой) камеры. Такой алгоритм в общем случае делает выводы только на основе ограниченной окрестности пикселя. Проблема апертуры. Представьте себе, что вы сидите в поезде, который вот-вот должен тронуться, и смотрите в окно. Вам кажется, что ваш поезд начал движение, хотя на самом деле это движется поезд на соседнем пути. Проблема апертуры связана с ограниченным обзором динамической сцены. Она вносит дополнительную неуверенность в оценку движения. На рис. 4.6 показана ситуация, когда алгоритм обрабатывает изображение и «видит» лишь круговую область вокруг пикселя и ничего более.
174 ♦ Глава 4. Анализ плотного движения Мы можем предположить, что движение направлено вверх, ведь диагональной компоненты в круговом окне не видно. Рис. 4.6. Видя только два круговых окна в моменты t (слева) и t + 1 (справа), мы приходим к выводу, что движение направлено вверх, и упускаем движение по диагонали в сторону правого верхнего угла А на рис. 4.7 показан реальный пример. Автомобиль движется по кругу, удаляясь от камеры влево. Мы наблюдаем его через ограниченную апертуру. Видя только внутренние прямоугольники, можно заключить, что имеет место смещение вверх. Рис. 4.7. Три изображения, снятых в моменты t, t + 1 и t + 2. Видя только внутренние прямоугольники, мы можем предположить, что имеет место сдвиг вверх с небольшим вращением, но анализ полных изображений ясно показывает, что автомобиль движется влево Но, возможно, происходит нечто совершенно иное, например машина движется не самостоятельно, а погружена на прицеп, а быть может, изображения получены с помощью подвижной камеры, перемещающейся вокруг грузовика. Увеличение апертуры поможет, но все равно информация может оказаться неполной. Градиентный поток. Из-за проблемы апертуры локальный метод обычно определяет градиентный поток - проекцию истинного двумерного движения на вектор градиента в данном пикселе. Двумерный градиент по координатам а: и у записывается в виде
4.2.АлгоритмХорна-Шанка ♦ 175 VxyI=[Ix(x,y,t),Iy(x,y,t)]\ (4.1) Он ортогонален прямой линии излома в изображении (границе), как показано на рис. 4.8 в предположении, что яркость изображения убывает слева направо. Напомним, что 1хи I в формуле (4.1) обозначают частные производные кадра /(•, •, t) соответственно по а: и по у. Результат можно улучшить (т. е. приблизиться к истинному пониманию движения), приняв во внимание значения смежных пикселей. Например, учет угла объекта может помочь в вычислении правильного двумерного движения. \ Двумерное \ движение Градиентный поток ^\ / У^ \ \1/\ Градиент {1Х ,1У)Т Излом в изображении Рис. 4.8. Градиентный поток. Истинное двумерное движение происходит вверх по диагонали в направлении вектора d, но идентифицируемое движение - проекция d на вектор градиента 4.2. Алгоритм Хорна-Шанка Мы хотели бы установить связь между значениями в кадрах /(-, •, г) и /(•, •, t + 1). Прямолинейный подход - рассмотреть разложение функции /(•, •, t + 1) в ряд Тейлора до членов первого порядка. В этом разделе подробно описывается оригинальный алгоритм Хорна-Шанка. Обсуждаемая здесь математическая техника до сих пор является основой проектирования алгоритмов вычисления оптического потока. Мы также расскажем о том, как оценивать качество алгоритмов оптического потока в общем случае. 4.2.1. Подготовительная часть В нашем случае имеется функция трех аргументов /(•, •, •), и мы применяем разложение в трехмерный ряд Тейлора до членов первого порядка:
176 ♦ Глава 4. Анализ плотного движения Врезка 4.2 (Тейлор и разложение функции в ряд Тейлора до членов первого порядка). Брук Тейлор (1685-1731) - английский математик. Разложение в ряд Тейлора часто применяется в прикладной физике и технике. Напомним, что отношение разностей ф(х)- ф(х0) _ ф(х0 - дх)- ф(х0) Л/ Лл дх функции ф сходится (в предположении, что ф непрерывно дифференцируема) к производной dx когда Sx -> 0. Для малых значений Sx имеем разложение в ряд Тейлора до членов первого порядка ф(х0 + Sx) = ф(х0) + Sx • ° + е, dx где погрешность е равна нулю, если функция ф линейна на отрезке [х0,х0 + 5х]. См. рисунок ниже. Обобщением этой формулы служит разложение в бесконечный ряд Тейлора: ф(х0 + 3х)= £ - ^х- d>(x0) &х где 0! = 1, /! = 1 • 2 • 3 • ... • / для / £ 1, d' - /-я производная. Эта формула справедлива при условии, что ф имеет непрерывные производные всех требуемых порядков.
4.2.АлгоритмХорна-Шанка ♦ 177 I(x + Sx, у + Sy, t + St) = I(x,y,t) + Sx-—(x,y,t) + Sy-—(x,y,t) + St-—(x,y,t) + e, (4.2) dx ay ot где член е представляет производные второго и более высоких порядков в ряде Тейлора. Как обычно в физике и технике, мы предполагаем, что е = 0, т. е. функция /(•, •, •) ведет себя почти как линейная при малых Sx, Sy и St. В качестве St мы берем разность между моментами съемки двух последовательных кадров /(•, •, t) и /(•, •, t + 1). С помощью 8х и 8у мы хотели бы смоделировать перемещение одного пикселя в промежутке времени от t до t + 1. В предположении о постоянстве яркости (intensity constancy assumption - ICA) /(* + 8x,y + фу, t + St) = I(x,y, t) (4.3) до, и после перемещения имеем 0 = Sx—(x,y,t) + Sy—(x,y,t) + St-—(x,y,t). (4.4) ox oy ot Поделив на St, получаем Sx dl, ч Sy dl, ч dl, ~st'^x,y,t)+st'Y^x,y,t)+Tt^x,y,t)' (4'5) Изменение координат л: и у за время St представляет оптический поток u(x, у, t) = (и{х, у, t), v(x, у, t))J, который мы и хотим вычислить: 0 = u(x,y,t)-—(x,y,t)+v(x,y,t)—(x,y,t) +—(x,y,t). (4.6) ox oy ot Уравнение (4.6) называется уравнением оптического потока, или ограничением Хорна-Шанка. Врезка 4.3 (история алгоритма Хорна-Шанка). Этот алгоритм впервые был опубликован в работе [В. К. P. Horn and В. G. Schunck. Determining optic flow. Artificial Intelligence, vol. 17,1981, p. 185-203], которая и заложила основы оценивания оптического потока. Вывод алгоритма сопряжен с применением довольно длинных формул и вычислений. Но вы удивитесь тому, как просто выглядит конечный результат и как легко реализовать алгоритм, если не пытаться
178 ♦ Глава 4.Анализ плотного движения добавить различные стратегии оптимизации. Если вам не очень интересны детали вывода, можете перейти сразу к разделу 4.2.2. Наблюдение 4.1. Уравнение (4.6) выведено путем рассмотрения малых шагов в предположении постоянства яркости. Логично, что эти предположения определяют ограничения на область применения окончательного алгоритма. Пространство скоростей uv. Запишем уравнение (4.6) короче, опустив координаты (а:, у, г): -J=u-I+v/=u-V /. (4.7) t х у х,у v ' Здесь 1хи1 обозначают частные производные по л: и у соответственно и It - частную производную по г. Скаляр и • Vx I - это скалярное произведение вектора оптического потока на вектор градиента (состоящего только из производных по а: и у, без г). Врезка 4.4 (скалярное произведение векторов). Рассмотрим два вектора а = (av а2,..., ап) и b = (М, Ы,..., Ьп) в евклидовом пространстве W. Скалярным (или внутренним) произведением векторов называется величина a b = аД + а2Ь2 + ... + abn Оно обладает свойством где ||а||2 и ||Ь||2 - модули векторов, например: а Ь = ||а||2 • ||Ы|2 • cos a, ца а а - угол между векторами в диапазоне 0 ^ а ^ п. = Ja2x + a 2 , ,2 2+"- + ЯИ, 1х, I и It играют роль параметров в уравнении (4.7). Для их оценки в заданных кадрах используются дискретные аппроксимации производных (например, значения оператора Собеля Sxu S вместо /хи /). Компоненты оптического потока - неизвестные в уравнении (4.7). Таким образом, это уравнение описывает прямую линию в пространстве скоростей uv. См. рис. 4.9. Из (4.7) мы знаем, что оптический поток (u, v) для рассматриваемого пикселя (х, у, t) - точка на этой прямой, но пока еще не знаем, какая именно. Вычисление оптического потока как задача о пометке. Низкоуровневые задачи компьютерного зрения часто сводятся к сопоставлению каждому пикселю метки /, выбираемой из множества допустимых меток L. Например, L может быть дискретным множеством идентифи-
4.2.АлгоритмХорна-Шанка ♦ 179 каторов сегментов изображения (см. главу 5) или дискретным множеством значений диспаратности в задаче о сопоставлении стереоизображений (см. главу 8). В данном случае мы имеем дело с метками (и, v) £ Ш? из двумерного вещественного пространства. Рис. 4.9. Прямая линия -lt= и • lx+ v • I в пространстве скоростей uv. Точка О обсуждается в примере 4.1 Метки сопоставляются всем пикселям /2 с помощью функции пометки f'.n^L. (4.8) Решить задачу о пометке значит найти такую функцию пометки /", которая каким-то образом находит приближенный оптимум. Первое ограничение. Пусть/- функция пометки, которая сопоставляет метку {и, v) каждому пикселю р £ П изображения /(•, •, t). В силу уравнения (4.7) нас интересует решение/, которое минимизирует ошибку данных, по-другому именуемую энергией данных: где u-I +V-I +1{=0в идеальном случае для пикселей р Е П изображения Второе ограничение - постоянство пространственного движения. Помимо (4.7), мы сформулируем второе ограничение на решения (и, v) в надежде получить единственное решение на прямой -It= и • Ix+v • I. Сформулировать его можно многими разными способами.
180 ♦ Глава 4.Анализ плотного движения Мы будем предполагать постоянство движения в окрестности пикселей в момент t; это означает, что для смежных пикселей изображения /(-, •, t) векторы оптического потока почти одинаковы. Чтобы функция была почти постоянной в локальной окрестности, ее первые производные должны быть близки к нулю. Следовательно, условие постоянства движения можно выразить в виде ограничения гладкости, согласно которому сумма квадратов первых производных должна достигать минимума для всех пикселей р е D. изображения /(•, •, г). И на этот раз для краткости опустим аргументы (х, у, г). Пусть / - функция пометки, сопоставляющая метку (и, v) каждому пикселю р Е П изображения /(•, •, г). Ошибка гладкости, или энергия гладкости, определяется формулой Jsmooth (/)=! а удх ) + \дУ; / + dv дх + dv \дУ; (4.10) Задача оптимизации. Мы хотим вычислить функцию пометки f, доставляющую минимум комбинации энергии данных и гладкости EuJfi-EtJfi + X-EMjm, (4.11) где Я > 0 - весовой коэффициент. В общем случае мы берем Я < 1, чтобы избежать слишком сильного сглаживания. Точное значение параметра зависит от приложения и релевантных данных изображения. Мы ищем оптимум /на множестве всех возможных функций пометки, для чего применяется полная вариация (total variation - TV). Энергия гладкости описывает квадратичный штраф (по норме L2). В итоге получаем задачу оптимизации TV-L2. При Я > 1 гладкость получила бы больший вес, чем ограничение Хорна-Шанка (т. е. член данных), а это не рекомендуется. В качестве первого приближения часто выбирают Я = 0,1, отводя гладкости сравнительно небольшую роль. Врезка 4.5 (оптимизация среднеквадратической ошибки, СКО). Метод оптимизации среднеквадратической ошибки в общем случае выглядит так: 1) определить ошибку, или функцию энергии; 2) вычислить производные этой функции по всем неизвестным параметрам; 3) приравнять производные нулю и решить получившуюся систему уравнений относительно неизвестных. В результате мы получаем стационарную точку, которая может быть локальным минимумом, седловой точкой или локальным максимумом.
4.2.АлгоритмХорна-Шанка ♦ 181 Выполним оптимизацию среднеквадратической ошибки. Функция ошибки определена выражением (4.11). Единственно возможная стационарная точка - это минимум функции ошибки. Неизвестными являются значения и и v во всех N , XN пикселях, а cols rows ' это значит, что нужно задать 2NcolsNrows частных производных функции СКО. Произведем формальное упрощение, исключив t из следующих далее формул. Кадр /(•, •, t) и соседние с ним кадры /(•, •, t - 1) и /(•, •, t + 1) в последующих рассуждениях фиксированы. Вместо 1(х, у, £) будем далее писать просто 1(ху у). Для простоты будем предполагать, что для каждого пикселя все 4-смежных с ним пикселя также принадлежат изображению. Аппроксимировав производные в члене энергии гладкости простыми асимметричными разностями, получим Esmooth(f) = X^x+l,, -Uxy)2+(Ux,y+l -Uxyf х,У v2 , ,лх лч \2 + (*W ~ vxy) +(vx,y+l - vv) . (4.12) Асимметричные разности дают некоторую систематическую ошибку, симметричные (т. е. их+1 - их_х и т. д.) были бы лучше, но мы продолжим излагать оригинальный алгоритм Хорна-Шанка. Имеем следующие выражения для частных производных Edata(u, v): data ди xy и ЪЕ. data Эй. {u,v) = 2[lx(x,y)uxy+Iy(x,y)vxy+It(x,y)]lx(x,y) (4.13) (u,v) = 2[lx(x,y)uxy+Iy(x,y)vxy+It(x,y)]ly(x,y). (4.14) xy А вот выражение для частной производной Esmooth(u, v): smooth (и, v) = -2[(ux+ly -u^ + iu,^ -uxy)\ x,y + 2 [(«v - ux_Xy) + (uxy - uxy_x)] = 2 [(UXy ~ UX+ly ) + (UXy - UX,y+l )] + 2[K -ux-i,y) + (Uxy -ux,y-iJ]. (4.15) Это единственные члены, содержащие неизвестное и . После упрощения получаем
182 ♦ Глава 4. Анализ плотного движения 1 дЕ 4 Эй и — ху л \ l+l,J Х,у+\ 1—1,J X,y—\ - х,у Обозначим ы среднее 4-смежных пикселей, тогда (4.16) ху 1 дЕ. smooth 4 ди ■(M'U) = 2[^"^} (4Л7) (u,v) = 2[vxy-vxy]. (4.18) х,у 1 дЕ. smooth 4 э^,, Уравнение (4.18) выводится аналогично. Заменив Я/4 на Я и приравняв производные нулю, получаем такую систему уравнений: ° = Л[иху-йху] + [1х(х>У)ич,+1у(х>У)1>ч+1Ах>У)]1х(х>У)> (4Л9> 0 = A\v -v 1 \_ ху ху_\ + [lx{x,y)uxy+Iy(x,y)vxy+IXx,y)\ly(x,y). (4.20) Это дискретная разностная схема для минимизации функции (4.11). Мы имеем систему линейных уравнений для нахождения 2NcohNrows неизвестных их и vx. Значения 1х, I и /(оцениваются по данным входного изображения. Итеративная схема решения. Эта система уравнений содержит также средние й и v , которые вычисляются по значениям неизвестных. Зависимость между неизвестными и и v и средними й и v на самом деле оказывается очень полезной. Она позволяет определить итеративную схему (пример метода Якоби; о К. Г. Я. Якоби см. врезку 5.9) с начальными значениями. 1. Инициализация. Инициализируем значения и0^ и v^. 2. Итерация 0. Вычисляем средние й0^ и v °, используя начальные значения. Затем вычисляем и1 и vl . 3. Итерация п. Зная и" и v" вычисляем средние u"nv",a затем значения w"*1 и v^J1. Продолжаем, пока не будет выполнен критерий остановки.
4.2.Алгоритм Хорна-Шанка 183 Мы опускаем детали решения системы уравнений (4.19) и (4.20), поскольку это стандартная линейная алгебра. Решение выглядит так: К (*» У)К + 7у (*> УЖ + h (*> У) и„ п+\ —п ху = К-1х(х>У> ху _ху Ji+l т^п vn+l = v" -I (х,у) XV XV V\ 9 У / Л2+12х(х,у) + 12(х,у) h(х,У)й" +1 (х,y)v" + /,(х,у) ху ху ху (4.21) (4.22) Л2+12х(х,у) + 12(х,у) Теперь мы готовы обсудить сам алгоритм. 4.2.2. Алгоритм Описанная выше итерационная схема и найденные решения позволяют вычислить значения и" и v" на n-й итерации для всех пикселей Л J/ ^у (х, у) изображения /(•, •, £). Для оценки значений It необходимо хотя бы одно соседнее изображение, /(•, •, t - 1) или /(•, •, t + 1). Положим К (х, У)К + Jy (*» У)% + h (x, У) а(х,у,п) = Я2+12х(х,у) + 12(х,у) (4.23) Алгоритм показан на рис. 4.10, где й и v обозначают средние, вычисленные по 4-смежным пикселям. Мы используем «нечетные» и «четные» массивы для хранения значений и и v; в самом начале (на итерации 0) инициализируются четные массивы. На итерации п = 1 мы вычисляем значения в нечетных массивах и т. д. с обязательным чередованием. Порог Т, максимальное число итераций, определяет критерий остановки. 1 2 з 4 5 6 7 8 9 10 11 12 13 14 15 16 17 for у- 1 to Nrows do forx= 1 to Ncols do Вычислить /х(х,у), /у(х,у) и /f(x,y); Инициализировать и{х,у) и v(x,y) (в четных массивах); end for end for Выбрать весовой коэффициенте; выбрать Г>1; положить п - 1; while n< Tdo fory= 1 до Л/ do ' " rows forx= 1 до Ncols {чередуя четные и нечетные массивы} do Вычислить а(х,у, п); Вычислить и(х,у) = й- а{х,у, п) ■ lx{x,y, t); Вычислить v(x,y) = v-a{x,y, n) ■ I (x,y, t); end for end for n:=n+1; end while Рис.4.10. Алгоритм Хорна-Шанка
184 ♦ Глава 4. Анализ плотного движения В оригинальном алгоритме Хорна-Шанка предлагалось инициализировать все элементы их и vx нулями. При этом значения и1 и vl будут не равны 0 при условии, что 1х{х, у) • It(x, у) и / (х, у) • It(x, у) не равны 0 на всех пикселях. (Разумеется, в таком случае никакого оптического потока не было бы вообще, так что инициализация нулями была бы правильной.) В оригинальном алгоритме Хорна-Шанка использовались следующие асимметричные аппроксимации 1х, I и It: Ix(x,y,t) = -[l(x + l,y,t) + I(x + l,y,t + \) +I(x + l,y + l,t) + I(x + \,y + \,t + \)] - - [1(х, у, t) + I(x, y,t + l) + I(x, у +1,0 + I(x, y + l,t + Y), (4.24) Iy(x,y,t) = -[l(x,y + l,t) + I(x,y + l,t + l) +I(x + l,y + l,t) + I(x + l,y + l,t + \)] --[l(x,y,t) + I(x,y,t + l) + I(x + l,y,t) + I(x + l,y,t + l), (4.25) It(x,y,t) = -[l(x,y,t + l) + I(x,y + l,t + l) +I(x +1, y, t +1) + I(x +1, у +1, t +1)] - - [I(x, y, t) + I(x, y + l,t) + I(x +1, y, t) + I(x +1, у +1,0. (4.26) На рис. 4.11 эти локальные аппроксимации показаны в виде соответствующих сверточных масок. Заметим, что эти маски сильно помогают в понимании того, как именно аппроксимируются 1х, I и It. X -1 -1 1 1 У -1 -1 N 1 1 -/ -1 1 -1 1 -1 1 -1 1 t+l X -1 -1 -1 -1 У 1 1 гл 1 1 -/ Рис. 4.11. Маски для аппроксимации частных производных 1х, I и Цслево направо), предложенные Хорном и Шанком Для работы алгоритма нужны только два последовательных изображения. Существует много модификаций этого алгоритма. На рис. 4.12
4.2. Алгоритм Хорна-Шанка ♦ 185 показаны результаты, полученные оригинальным алгоритмом Хорна- Шанка. Рис 4.12. Вверху: два соседних кадра из последовательности «Гамбургское такси», опубликованной в 1983 г. для тестирования алгоритмов вычисления оптического потока. Слева внизу: использование цветового кодирования (1995 г., университет Отаго, Данидин) для представления направления и модуля вычисленных векторов оптического потока (цветовой ключ отличается от показанного на рис. 4.4: здесь черный означает отсутствие движения). Справа внизу: иллюстрация векторов потока (так называемая игольчатая карта) в увеличенной части изображения Пример 4.1 (градиентный поток). Неизвестный оптический поток и = [и, v] в пикселе р = (х, у) изображения /(-, •, t) относительно изображения /(-, •, t + 1) может быть любым вектором, исходящим из начала координат О на рис. 4.9 и заканчивающимся в какой-то точке на содержащей этот вектор прямой. Эта неоднозначность с очевидностью проявляется в проблеме апертуры.
186 ♦ Глава 4. Анализ плотного движения Для инициализации можно выбрать произвольную точку на прямой, определенной уравнением оптического потока в пространстве скоростей uv, а не только 0. Например, можно взять точку О, ближайшую к началу координат (см. рис. 4.9). Прямая It = и • Ix + v • I пересекает оси и и v в точках (-It / Ix, 0) и (0, -IJI) соответственно. Следовательно, вектор [-It I /, 0] - [0, -ItI / ] = [-/,/ /, ItI Iy] (4.27) параллелен этой прямой. Пусть а - вектор, соединяющий О с О; скалярное произведение равно (о скалярном произведении см. врезку 4.4 и вспомните, что cos я/2 = 0): a-[-/t//,/f//y] = 0. (4.28) Памятуя, что а = [ах, а ], из этого уравнения получаем ax-(-It/Ix) + ay(It/Iy) = 0 (4.29) и /f(V/y) = /t(V/). (4.30) В предположении, что в рассматриваемом пикселе р = (х, у) имеет место изменение (т. е. It f 0), отсюда следует, что al =а/и a-c-g° (4.31) для некоторой константы с f 0, где g° - единичный вектор в направлении градиента g = [Ix, IY. Следовательно, вектор а коллинеарен градиенту, как показано на рис. 4.91. Врезка 4.6 (единичный вектор). Рассмотрим вектор а = [av a2,..., ап]т. Модуль этого вектора равен ||а|| = Jax +a2 H \- ап. Модуль единичного вектора а = а равен 1,а направление совпадаете направлением вектора а.Скалярное произведение а° • а° равно ||а°||2 • ||а°||2 • cos 0 = 1. Вектор а удовлетворяет уравнению оптического потока и • g = -It. Отсюда следует, что 1 Мы могли бы опустить вывод (4.28)-(4.30), поскольку вектор а перпендикулярен прямой по определению: он соединяет начало координат с его ортогональной проекцией напрямую (свойство, определяющее ближайшую точку). Но раз он перпендикулярен прямой, то должен быть параллелен вектору градиента.
4.3. Алгоритм Лукаса-Канаде ♦ 187 c-ge-g = c-|lgll2 = -/t- (4-32) Таким образом, мы получили значение сив итоге имеем I. а = g Ы- (4-33) Мы можем использовать точку О, определенную вектором а, для инициализации массивов и и v до начала итераций. Это значит, что мы начинаем с градиентного потока, представленного вектором а. На последующих итерациях алгоритм может отклониться от градиентного потока из-за влияния значений в окрестности рассматриваемого пикселя. Для аппроксимации 1х, I и I можно также попробовать очень простую (например, по двум пикселям) аппроксимацию. Алгоритм устойчивый, но часто дает ошибочные результаты, в основном из-за предположения о постоянстве яркости, но также из-за проблематичности ограничения гладкости (например, в случае разрыва непрерывности движения в рассматриваемых кадрах) и, конечно, из-за проблемы апертуры. Количество итераций Гможно брать довольно малым (скажем, Т= 7), потому что его увеличение не дает реального улучшения. В пирамидальном алгоритме Хорна-Шанка используются пирамиды изображений, обсуждавшиеся в разделе 2.2.2. Обработка начинается на выбранном уровне изображений (с низким разрешением). Полученные результаты служат для инициализации оптического потока на более низком уровне (с более высоким разрешением). Эта процедура продолжается до достижения истинного разрешения оригинальных кадров. 4.3. Алгоритм Лукаса-Канаде Уравнение оптического потока определяет прямую и- Ix + v • I + Jt = 0 в пространстве скоростей uv для каждого пикселя р £ П. Рассмотрим все прямые для всех пикселей в локальной окрестности. В предположении, что они не параллельны, но определены приблизительно одинаковым двумерным движением, эти прямые должны пересекаться где-то вблизи истинного двумерного движения. См. рис. 4.13. Врезка 4.7 (история алгоритма вычисления оптического потока Лукаса-Канаде). Этот алгоритм был опубликован в работе [В. D. Lucas and T. Kanade. An iterative image registration technique with an application to stereo vision. Proc. Imaging Understanding Workshop, 1981, p. 121-130], вскоре после публикации алгоритма Хорна-Шанка.
188 ♦ Глава 4. Анализ плотного движения В этом разделе мы опишем новаторский алгоритм вычисления оптического потока, математические основы которого объяснить гораздо проще, чем для алгоритма Хорна-Шанка. Он послужит иллюстрацией альтернативного способа определения движения. Рис. 4.13. Включение в рассмотрение все большего и большего количества пикселей в локальной окрестности путем анализа точек пересечения прямых, определенных уравнением оптического потока для этих пикселей 4.3.1. Линейное решение методом наименьших квадратов В алгоритме Лукаса-Канаде применяется метод наименьших квадратов для анализа пересечений нескольких прямых (больше двух). Врезка 4.8 (метод наименьших квадратов). Этот метод применяется для решения переопределенных систем уравнений. Задача состоит в том, чтобы найти решение, доставляющее минимум сумме квадратов ошибок (называемых невязками) решения каждого уравнения. Например, если имеется п неизвестных и т > п линейных уравнений, то используется метод наименьших квадратов. Начнем со случая двух прямых (т. е. пикселя р1 и смежного с ним пикселя р2). Предположим, что двумерное движение в обоих смежных пик-
4.5. Алгоритм Лукаса-Канаде ♦ 189 селях одинаково и его вектор равен и. Также предположим, что единичные градиенты g° и g° в этих пикселях различны. Рассмотрим уравнение оптического потока ит • g° = -/f/||g||2 в обоих пикселях (в формулировке, предложенной в примере 4.1). Имеем два уравнения с двумя неизвестными и и v - компонентами вектора u = (u, v)T: uT-g°(p1) = uT-g°(p2) g L g (Pj, ■<P,). (4.34) (4.35) Обозначая правые части Ьг., мы можем переписать эту систему в виде двух линейных уравнений с двумя неизвестными и и v: Щп + V8V2 = К У2 (4.37) где g° = [gxl,gyl] и g°2 = [gx2,gy2] - единичные векторы. Запишем эти уравнения в матричной форме: £х2 Syl Syl и v (4.38) Эта система разрешима, если матрица в левой части обратима (т. е. не является сингулярной): и v Sx\ Sx2 Sy\ Syl (4.39) В этом случае система не является переопределенной. Мы имеем пересечение двух прямых, определяемых уравнениями оптического потока для рх и р2; см. рис. 4.14. Но при оценивании Ix, I nlt всегда бывают ошибки, а данные изображения в любом случае зашумленные, так что лучше искать решение и в смысле метода наименьших квадратов, рассматривая окрестность, содержащую к > 2 пикселей, и тогда мы получаем переопределенную систему уравнений. Окрестность не должна быть слишком большой, потому что мы предполагаем, что для всех пикселей в этой окрестности вектор двумерного движения и одинаковый. Таким образом, мы приходим к переопределенной системе линейных уравнений
190 ♦ Глава 4. Анализ плотного движения u= (u,v) Рис. 4.14. Простой случай, когда рассматривается всего два пикселя ёх\ £х2 • с>хк Syl Syl • Syk ] \и IV "*il К\ • k J (4.40) которую будем записывать в виде кх2 2x1 кх\ (4.41) Эту систему можно решить при к > 2 методом наименьших квадратов. Сначала приведем систему к квадратному виду: GTGu = GTB. (4.42) Затем найдем решение с наименьшей квадратичной ошибкой: u = (GTG)-1GTB. (4.43) Вот и все. GTG - матрица размера 2><2, a GTB - матрица размера 2*1. Например, если GTG = то а Ъ с d (G^)-^ 1 ad —be d -b —с а (4.44) (4.45) Остальное - обычное перемножение матриц.
4.3.Алгоритм Лукаса-Канаде ♦ 191 4.3.2. Оригинальный алгоритм и алгоритм с весами По сравнению с алгоритмом Хорна-Шанка математика оказалась довольно простой. Мы обсудим оригинальный алгоритм и его модификацию. Оригинальный алгоритм вычисления оптического потока Лукаса-Канаде. Базовый алгоритм выглядит следующим образом: 1) принять решение о размере локальной окрестности - к пикселей - и придерживаться его во всех кадрах; 2) в кадре с номером t оценить 1х> I и It; 3) для каждого пикселя р в кадре t построить систему уравнений (4.40) и решить ее методом наименьших квадратов, применяя формулу (4.43). Иногда полезно оценивать используемые производные на изображениях, сглаженных, к примеру, фильтром Гаусса с небольшим стандартным отклонением, скажем, а = 1,5. Веса участвующих пикселей. Мы можем назначить всем к участвующим пикселям положительные веса w., i = 1,..., к. В общем случае текущему пикселю назначается максимальный вес, а смежным с ним (и входящим в состав этих к пикселей) - меньшие веса. Обозначим W = diagfWj,..., wk] - диагональную матрицу весов к*к. Любая диагональная матрица удовлетворяет тождествам WTW = WW = W2. (4.46) Теперь наша задача - решить уравнение WGu = WB (4.47) вместо (4.41); правые части нужно взвесить так же, как и левые. Для решения необходимо проделать ряд манипуляций с матрицами: (WG)TWGu = (WG)TWB, (4.48) GTWTWGu = GTWTWB, (4.49) GTWWGu = GTWWB, (4.50) GTW2Gu = GTW2B, (4.51) и, следовательно, u = [GTW2G]_1 GTW2B. (4.52)
192 ♦ Глава 4. Анализ плотного движения Смысл этих преобразований заключается в том, чтобы снова получить матрицу 2x2 GT W2 G, которую можно обратить для вычисления и в текущем пикселе. По сравнению с оригинальным алгоритмом нужно только внести следующее изменение в шаг 3: 3) для каждого пикселя р в кадре t построить систему уравнений (4.47) и решить ее методом наименьших квадратов, применяя формулу (4.52). На рис. 4.15 показаны результаты оригинального алгоритма Лукаса- Канаде для окрестности размера 5*5. Применяя для решения формулу (4.43), мы принимаем только те решения, для которых собственные значения (см. врезку 2.9) матрицы GTG больше выбранного порога. Тем самым отфильтровываются «зашумленные» результаты. Рис. 4.15. Рассматриваются те же два соседних кадра из записанной последовательности, что и на рис. 4.5. Оптический поток, вычисленный оригинальным алгоритмом Лукаса-Канаде; к =25 для окрестности размера 5*5 Матрица GTG имеет размер 2*2 и является симметричной и положительно определенной; у нее есть два собственных значения Ях и Я2. Пусть О < Ях ^ Я2. Выберем порог Т > 0. Мы «принимаем» решение, полученное по формуле (4.43), если Ях > Т. Это приводит к разреженному полю оптического потока, показанному на рис. 4.15. Заметим, что немногие показанные векторы в общем случае близки к истинному смещению.
4.4.Алгоритм BBPW ♦ 195 4.4. Алгоритм BBPW Алгоритм BBPW является обобщением алгоритма Хорна-Шанка. Его цель - улучшить результаты, особенно для больших смещений, и попытаться преодолеть ограничения, налагаемые предположением о постоянстве яркости. Кроме того, из-за применения квадратичной нормы для оптимизации выбросы оказывают большое влияние на результаты, поэтому в алгоритме BBPW используется норма Lv а не L2, как в алгоритме Хорна-Шанка. Врезка 4.9 (история алгоритма BBPW). Этот алгоритм был опубликован в работе [Т. Brox,A. Bruhn, N. Papenberg and J. Weickert. High accuracy optical flow estimation based on a theory for warping. In Proc. European Conf. Computer Vision, vol. 4, 2004, p. 25-36]. В этом разделе формулируются исходные предположения, объясняется, какая функция энергии используется, и приводятся краткие сведения о теоретических основах алгоритма; подробное его изложение выходит за рамки этой книги. Мы покажем, каких успехов удалось добиться в области вычисления оптического потока с момента публикации алгоритмов Хорна-Шанка и Лукаса-Канаде. 4.4.1. Исходные предположения и функция энергии В рассматриваемом контексте предположение о постоянстве яркости (ICA) формально записывается в виде 1(х, у, t) = 1(х + и, у + v, t + 1), где и и v - перемещения в направлениях х и у соответственно за время St. После линеаризации мы получаем ограничение Хорна-Шанка Ixu + Iu + It = 0. Предположение о постоянстве яркости не выполняется для съемки под открытым небом, поэтому алгоритмы Хорна-Шанка и Лукаса-Канаде зачастую дают неудовлетворительные результаты, когда рассматриваются изменения на расстоянии от 5 до 10 пикселей (т. е. векторы двумерного движения не являются «короткими» в смысле разложения в ряд Тейлора до членов первого порядка). Постоянство градиента. Предположение о постоянстве градиентов яркости по смещениям (constancy of intensity gradients over displacements - GCA) записывается в виде Vxy/(x, у, t) = VxyI(x + и, у + v, t + 1), (4.53) где Vx , как и раньше, ограничивается только производными по а: и у, производная по времени не включается. Как было сказано в главе 1,
194 ♦ Глава 4. Анализ плотного движения градиенты считаются более-менее устойчивыми относительно изменения яркости. Предположение о гладкости. Одни лишь предположения ICA и GCA еще не дают достаточной информации для однозначного определения оптического потока, нам необходимо привлечь смежные пиксели и сделать некоторые допущения о регулярности векторного поля потока. Необходима осторожность на краях объектов. Нельзя полностью исключить разрывы непрерывности движения; кусочное сглаживание представляется эффективным средством избежать влияния векторов потока вне объекта на поле потока внутри объекта и наоборот. Первая попытка вывести формулу функции энергии. В описываемом ниже варианте функции ошибки или энергии мы все еще опираемся на предположение ICA (но не прибегаем к ограничению Хорна- Шанка и тем самым избегаем аппроксимации первыми членами ряда Тейлора), но в сочетании с предположением GCA. Мы рассматриваем позиции пикселей (х, у, t) в кадре /(•, •, t), векторы оптического потока w = (и, v, 1), содержащие третью компоненту для перехода от плоскости изображения в момент t к плоскости в момент t + 1, и используем градиент V = (дх, д , dt) в трехмерном пространстве. Уравнение (4.9) приобретает вид: Edata if) = X {U(X + U,y + Vj + \)~ /(*, у, tjf + Al{WxJ(x + u,y + v,t + l)-WxyI(x,y,t)]2]j, (4.54) где Aj > 0 - вес, который еще нужно задать. Что касается члена гладкости, то мы в основном сохранили выражение (4.10), но теперь используем пространственно-временные градиенты в формуле *— (/)=X[lNM|vt|} <4-55> а Таким образом, задача заключается в том, чтобы найти функцию пометки /", которая сопоставляет оптический поток u, v каждому пикселю изображения /(-, •, £), так чтобы доставить минимум сумме £„„,(/) = £*,„(/)+ Л2 •*—,<» (4-56) при некотором значении веса Я2 > 0. Как и в (4.11), в выражении (4.56) по-прежнему используется квадратичный штраф по норме L2, т. е. мы имеем задачу оптимизации TV-L2. При такой схеме выбросы играют слишком большую роль в оценке оптического потока.
4.4. Алгоритм BBPW ♦ 195 Регуляризированная полная вариация по норме Lv Для перехода от 12-оптимизации к Ь1 -оптимизации мы используем функцию iKs2) = VFTi*|s|, (4.57) а не просто \s\. Это приводит к более устойчивой функции энергии, не лишая нас возможности рассматривать непрерывные производные при s = 0 даже для небольшой положительной константы s. В качестве е можно взять, например, 10~6 (т. е. очень маленькую величину). У функции |s| нет непрерывной производной в точке s = 0, а она нам нужна, чтобы можно было применить схему минимизации ошибки. Монотонно возрастающая и выпуклая функция ip(s2) = Vs2 + e применяется к членам функции энергии в формулах (4.54) и (4.55), чтобы уменьшить влияние выбросов. Таким образом, мы определяем член полной вариации, регуляризированной по норме Lv Члены функции энергии имеют вид Edata{f) = ^W^I{x + u,y + v,t + \)-I(x,yJ)f О. + К ■ [ V*,/(* + u,y + v,t + l)- VxJ(x, у, О]') (4.58) и £„-(/)=2>((v»>2+<Vv)2)- <4-59) Формула же полной энергии остается такой же, как (4.56). 4.4.2. Краткое описание алгоритма Мы должны найти функцию пометки /", которая минимизирует функцию ошибки Ета1, определенную формулой (4.56) и состоящую из двух членов (4.58) и°(4.59). Минимизация нелинейной функции такой, как ЕшаР - трудная задача. В процессе поиска глобального минимума алгоритм может застрять в локальном минимуме. Врезка 4.10 (Лагранж и уравнения Эйлера-Лагранжа). Жозеф Луи Лагранж (1736-1813) - французский математик итальянского происхождения. Эйлер (см. врезку 1.3) и Лагранж разработали общий способ нахождения функции/, минимизирующей функционал энергии £(/). В предположении, что/- не просто функция с одним аргументом, предлагаемое решение выражено в виде системы дифференциальных уравнений.
196 ♦ Глава 4.Анализ плотного движения Уравнения Эйлера-Лагранжа. Обозначим гр' производную \р по ее единственному аргументу. Дивергенцией div называется сумма производных, в нашем случае это сумма трех частных производных, являющихся компонентами вектора Vu = ди ди ди дх ду dt (4.60) Функция пометки /", минимизирующая функционал Etotal(f), должна удовлетворять приведенным ниже уравнениям Эйлера-Лагранжа. Мы не станем выводить эти уравнения средствами вариационного исчисления, а просто сформулируем конечный результат: гр'(Р + ЛАР+Ру(П+ЛЛ I+I /,), т V t 1V ATt yU V X t 1V XX Xt Xy ytn -A2 • divO'(IIVu||2 + ||W||2)Vu) = 0 (4.61) ip'(P + AAPt + Ру(П+АЛ I+I I,), * V t 1V ATt yU V у t 1V yy yt Xy Xtn -A2 • div(i/;'(IIVu||2 + ||Vv||2)Vv) = 0. (4.62) Как и раньше, Ix, I nlt- производные /(•, •, t) по координатам пикселей и по времени, а 1хх, I и т. д. - вторые производные. Все эти производные можно рассматривать как константы, которые приближенно вычисляются по последовательности кадров. Таким образом, оба уравнения имеют вид сг-А2- divO'(IIV"ll2 + ||Vv||2)Vw) = 0, (4.63) с2-А2- divO'fllVull2 + ||Vv||2)Vv) = 0. (4.64) Решение этих уравнений для и и v в любом пикселе р £ П можно найти, применив пирамидальный подход. Пирамидальный алгоритм. Для эффективной оценки векторов потоков можно сначала использовать передискретизированные с понижением копии обрабатываемых кадров, образующие пирамиду (см. раздел 2.2.2), а затем уточнить полученные результаты на копиях с более высоким разрешением. При таком подходе можно также найти длинные векторы потока. Пример пирамидальной реализации алгоритма BBPW приведен на рис. 4.16, где для визуализации используется тот же цветовой ключ, что был описан на рис. 4.4.
4.5. Оценка качества алгоритмов вычисления оптического потока ♦ 197 Рис. 4.16. Визуализация оптического потока, вычисленного с помощью пирамидального алгоритма BBPW. Вверху: для кадров, показанных на рис. 4.5. Внизу: для кадра из последовательности queenStreet 4.5. Оценка качества алгоритмов вычисления оптического потока Первым для вычисления оптического потока был предложен алгоритм Хорна-Шанка, с тех пор появилось много других алгоритмов. Анализ движения и по сей день остается весьма трудной проблемой компьютерного зрения. В этом разделе мы коротко расскажем о методах сравнительного анализа качества алгоритмов вычисления оптического потока. 4.5.1. Стратегии тестирования Алгоритм Хорна-Шанка в общем случае отклоняется от потока градиента. Следующий простой пример (который можно просчитать даже вручную) показывает, что этого не происходит, если окрестности пикселей не позволяют вычислить правильное движение.
198 ♦ Глава 4. Анализ плотного движения Пример 4.2 (простой пример входных данных). Рассмотрим 1Х изображение размера 16х 16, показанное на рис. 4.17, для которого Gmax = 7. Оно содержит вертикальную прямолинейную границу; градиент в граничных пикселях направлен влево. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 х 1 I I I I I I I I I I I I I I I » Го 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 Т] 7 7 7 7 7 7 7 7 7 7 7 7 7 7 Рис. 4.17. Простые входные данные для ручного просчета алгоритма Хорна-Шанка Изображение 12 сгенерировано в результате одного из трех движений, показанных слева: (А) сдвиг на один пиксель (ОД) вправо, (В) сдвиг по диагонали (1,1), (С) сдвиг на один пиксель (-1,0) вверх. Для простоты будем предполагать, что новые «вдвигаемые» слева пиксели равны нулю, а снизу - такие же, как в строке над ними. В этом простом примере значения, порождаемые алгоритмом Хорна-Шанка, можно вычислить вручную. Ограничимся только первыми тремя итерациями [(4.22) и (4.22)], применив инициализацию нулями и простые схемы аппроксимации по двум пикселям для 1х91 и It. Оценка качества алгоритмов вычисления оптического потока. Для оценки алгоритма вычисления оптического потока на реальной последовательности изображений существует три возможности. 1. В предположении, что последовательность изображений записана с высокой частотой (скажем, больше 100 Гц), можно попытаться использовать чередующиеся кадры для анализа ошибки прогнозирования: оценить оптический поток для кадров t и t + 2, вычислить виртуальное изображение в момент £ + 1 путем интер-
4.5. Оценка качеава алгоритмов вычисления оптического потока ♦ 199 поляции вычисленных векторов потока и сравнить это виртуальное изображение (например, методом нормированной взаимной корреляции, см. врезку 4.11) с кадром t + 1. Врезка 4.11 (нормированная взаимная корреляция). Рассмотрим два изображения / и J одинакового размера. Нормированная взаимная корреляция (normalized cross-correlation - NCC) служит для сравнения двух изображений. Это скалярная величина, вычисляемая по формуле м (т n- -L V [l(*>y)-Mi][Ax,y)-Mj] IVINCC\I>J)~ |0| 2^ ,- ^ ' где jL/; и jl/7 - средние, a af и а} - стандартные отклонения / и J соответственно. Чем больше Ммсс(/,7),тем более похожи изображения. Благодаря нормировке - вычитанию среднего и делению на стандартное отклонение - изображения / и J с различными значениями этих характеристик могуттем не менее быть похожи. Это особенно интересно, когда сравниваются изображения, не удовлетворяющие предположению о постоянстве яркости, что иногда случается для двух соседних кадров в последовательности изображений. Нормированную взаимную корреляцию можно также использовать для сравнения небольшого изображения (шаблона) с окнами того же размера большего изображения. Библиотека OpenCV предлагает несколько способов такого рода сравнения с шаблоном, и среди них варианты нормированной взаимной корреляции. 2. Если существует контрольная информация о фактическом двумерном движении (как, например, данные для коротких последовательностей на сайте Миддлбери-колледж vision.middlebury. edu/ или в наборе 2 EISATS для последовательностей длиной 100 и более кадров), то оценить результаты вычисления оптического потока можно на основе мер ошибки (см. ниже), сравнивая истинные (конечно, с точностью до ошибок измерения при генерации контрольных данных) и вычисленные векторы. 3. Можно также сравнить результаты, полученные разными методами, чтобы понять, какие методы дают похожие результаты, а какие - совсем разные. 4. Метод можно оценить на реальных данных, постепенно вводя во входные данные различные виды шума разной интенсивности, чтобы понять, насколько метод устойчив. В качестве шума можно использовать вариации яркости, гауссов шум или размытие.
200 ♦ Глава 4.Анализ плотного движения 5. Зная геометрию сцены и приблизительное движение камеры, можно сравнить результаты с ожидаемым полем потока. Например, камера может прямолинейно и равномерно приближаться к стене. 4.5.2. Меры ошибки для сравнения с контрольными данными Получить контрольные данные для анализа движения трудно, особенно если речь идет о реальных последовательностях изображений. Альтернативой являются синтезированные последовательности. Рендеринг изображений с учетом физических законов может порождать «достаточно реалистичные» синтетические последовательности изображений, даже с возможностью изучать поведение алгоритмов вычисления оптического потока в зависимости от меняющихся параметров (что для последовательностей реально записанных изображений, конечно, невозможно). Врезка 4.12 (контрольные данные). По-английски контрольные данные называются «ground truth» (буквально «наземная истина»). Изображения, снятые с летательного аппарата, часто используются для оценивания расстояний на земле и даже для реконструкции целых ландшафтов или городов. Для проверки результатов широко применялась практика идентификации заметных объектов на местности, например углов зданий, и прямого измерения их координат или расстояний между ними. Это и была «наземная истина» - контрольные данные для сравнения с вычисленными на основе аэрофотосъемки. В настоящее время термин используется для обозначения данных прямых измерений, которые считаются относительно точными и, стало быть, полезными для оценивания алгоритмов, которые должны давать такие же результаты. На рис. 4.18 показаны контрольные данные для синтетической последовательности изображений (из 100 кадров) и результаты пирамидального алгоритма Хорна-Шанка. Помимо цветового кодирования, мы включили также разреженные векторы в контрольное и вычисленное изображение. Это избыточная информация (похожая на игольчатую карту на рис. 4.12), но она помогает зрителю понять происходящее движение. Кроме того, цвет вокруг нарисованных векторов потока подсказывает, какие цвета соответствуют разным направлениям.
4.5. Оценка качества алгоритмов вычисления оптического потока ♦ 201 4-~ ** 1е* У ** V Г У ." t^V'".' / J -l i i i V \ \ \ wV^^^ .'l., л. Рис. 4.18. Вверху: Два входных изображения (кадр l,Set2Seql и кадр 2 из первой последовательности в наборе 2 EISATS). Слева внизу: контрольные данные для этой последовательности с цветовым кодированием для визуализации локальных перемещений. Справа внизу: результат пирамидального алгоритма Хорна-Шанка Меры ошибок при наличии контрольных данных. Мы имеем вычисленный поток и = (ы, v) и контрольный поток и* = (и*, v*). Дистанционная ошибка (endpoint error) L2 Еер2(иУ) = J(u-u*)2+(v-v*)2 и дистанционная ошибка L1 Eepl(u,u*) = \u-u*\ + \v-v*\ сравнивают векторы в двумерном пространстве. Угловая ошибка между пространственно-временными направлениями вычисленного потока и контрольных данных в точке р (не включена в формулу) равна: Е^„(и,и*) = arccos апя v ' / ang ( Т • u -и u llu* (4.65)
202 ♦ Глава 4. Анализ плотного движения где и = (и, v, 1) - вычисленный оптический поток, к которому добавлена еще одна координата (1 соответствует расстоянию между изображениями, записанными в моменты времени t и t + 1), a u* = (ut, vt, l) - контрольный поток, также продолженный на трехмерное пространство. Эта мера ошибки позволяет оценить точность направления и абсолютной величины потока. Такие меры ошибок применяются ко всем пикселям кадра, что позволяет вычислить среднюю угловую ошибку, среднюю дистанционную ошибку L2 и т. д., а также их стандартные отклонения. 4.6. Упражнения 4.6.1. Упражнения по программированию Упражнение 4.1 (вариации на тему алгоритма Хорна-Шанка). Реализуйте алгоритм Хорна-Шанка для вычисления оптического потока. Разумеется, уже есть программы, доступные для свободного использования, но от вас требуется реализовать свой вариант. Протестируйте алгоритм на парах изображений одной и той же сцены с небольшими различиями, перемещения должны быть ограничены расстоянием 5-6 пикселей, не больше. Используйте обе рассмотренные в тексте стратегии инициализации значений и и v (т. е. просто нулями или точкой О, ближайшей к началу координат в пространстве скоростей, см. пример 4.1). Используйте также две разные схемы аппроксимации 1х, I и It. Обсудите, как все это влияет на результат. После каждой итерации п + 1 вычислите среднее значение всех изменений и и v по сравнению с предыдущей итерацией п. Постройте график этих изменений в зависимости от номера итерации. Получилась ли у вас монотонно убывающая функция? Можно ли использовать пороговую величину таких изменений в качестве критерия остановки алгоритма? Обсудите, какое число итераций можно считать достаточным для ваших входных последовательностей и как это зависит от выбранных схем инициализации и аппроксимации /,, / и It. Наконец, сравните с результатами, полученными, когда просто используется уравнение (4.33), которое вычисляет градиентный поток, не используя ограничение гладкости, позволяющее учесть смежные пиксели.
4.6. Упражнения ♦ 205 Упражнение 4.2 (вариации на тему алгоритма Лукаса-Канаде). Разумеется, уже есть программы, доступные для свободного использования, но от вас требуется реализовать свой вариант. Протестируйте алгоритм на парах изображений одной и той же сцены с небольшими различиями, перемещения должны быть ограничены расстоянием 5-6 пикселей, не больше. Выберите схему аппроксимации 1х, I и /t и реализуйте следующие варианты: 1) окрестность 3*3 без весов; 2) окрестность 5*5 без весов; 3) окрестность 5x5 с весами, имеющими нормальное распределение. Обсудите, что получилось (точность, различие в результатах, время вычислений) на реальных тестовых данных. Упражнение 4.3 (оценка качества алгоритмов вычисления оптического потока, имеющихся в библиотеке OpenCV). Воспользуйтесь угловой и дистанционной мерами ошибки для оценки качества алгоритмов вычисления оптического потока, имеющихся в библиотеке OpenCV, на последовательностях изображений (не менее 100 кадров), для которых доступны контрольные данные. 1. Используйте синтетические последовательности, например из набора 2 EISATS. 2. Используйте реальные последовательности, например из тестового набора KITTI Benchmark Suite. Для сравнения прогоните алгоритмы на конкурсных входных последовательностях (без контрольных данных, только с визуальной оценкой), например тех, что предлагались на соревновании по устойчивым алгоритмам компьютерного зрения на конференции ECCV 2012 в Гей- дельберге (Heidelberg Robust Vision Challenge). Обобщите полученные результаты в отчете. Упражнение 4.4 (алгоритмы вычисления оптического потока на остаточных изображениях после сглаживания). Прогоните алгоритмы вычисления оптического потока, имеющиеся в библиотеке OpenCV, на реальных последовательностях изображений (не менее 100 кадров) и сравните: • результаты, полученные для исходных последовательностей, с • результатами, полученными для последовательностей остаточных изображений после сглаживания исходных последовательностей.
204 ♦ Глава 4.Анализ плотного движения Для создания остаточных изображений применяйте различные итеративные схемы. Например, используйте для сглаживания прямоугольный фильтр 3x3 и рекурсию с числом шагов не более п = 30. Какое число итераций вы рекомендовали бы для тестовых последовательностей, с которыми работаете? Упражнение 4.5 (тесты при известной геометрии движения). Выберите какой-нибудь алгоритм вычисления оптического потока и протестируйте его на изображениях, записанных следующими способами: 1) перемещайте камеру перпендикулярно статической сцене, так чтобы вычисленные поля движения можно было сравнить с движением камеры; 2) перемещайте камеру, обращенную к текстурированной стене, например снимая из автомобиля или смонтировав камеру на роботе, так чтобы вычисленные поля движения можно было сравнить с ожидаемым круговым двумерным движением; 3) запишите движение метронома с качающимся маятником (можно использовать последовательности из набора 8 EISATS). Записанные последовательности должны содержать не менее 100 кадров. Попытайтесь оптимизировать параметры алгоритма для таких последовательностей. 4.6.2. Упражнения, не требующие программирования Упражнение 4.6. Вычислите коэффициенты разложения в ряд Тейлора функции 1(х, у, t) = 2х2 + ху2 + xyt + 5t3 до членов третьего порядка. Упражнение 4.7. Проверьте правильность формул (4.13), (4.14) и (4.15). Упражнение 4.8. Инициализация нулями в алгоритме Хорна-Шанка была бы невозможна, если бы получающиеся в результате начальные значения и и v также были бы равны нулю. Убедитесь, что в общем случае так не может быть на первой итерации алгоритма (если движение действительно имеет место). Упражнение 4.9. Для данных из примера 4.3 вручную просчитайте первые три итерации алгоритма Хорна-Шанка, применив инициализацию нулями и простую схему аппроксимации 1х, I и /tno двум пикселям.
4.6. Упражнения ♦ 205 Упражнение 4.10. Проверьте правильность формулы (4.45). Упражнение 4.11. Для алгоритма Лукаса-Канаде покажите, что обращение матрицы в (4.43) завершается неудачно, если градиенты изображения в выбранной окрестности параллельны. Возможно ли такое для реальных изображений? Возьмите какой-нибудь учебник линейной алгебры и прочитайте, как при наличии таких сингулярностей получить решение методом наименьших квадратов.
Глава 5 Сегментация изображений В этой главе мы опишем специальные подходы к бинаризации и сегментации статических изображений или кадров видео. В последнем случае мы уделим особое внимание обеспечению временной согласованности. Мы подробно обсудим сегментацию методом сдвига среднего. Мы также предложим общий взгляд на сегментацию изображения как на еще один пример пометки пикселей в компьютерном зрении, дадим введение в сегментацию с этой абстрактной точки зрения и обсудим в этом контексте решения, основанные на алгоритме распространения доверия. В процессе сегментации изображение разбивается на участки, называемые сегментами, с целью дальнейшего анализа, повышения эффективности сжатия или просто для визуализации (см. рис. 5.1). С точки зрения математики, мы разбиваем носитель П на конечное число сегментов S{, i = 1,..., и, так что 1) S-Ф 0 для всех / G {1,..., п}; 2) \Jni=lSi = Q; 3) S.nSf=0 для всех /,;' 6 {1,.. п} таких, что / Ф '). ismttttg ^F ;ш:гт'"oil i 1 " Щ Сегмент 1 Сегмент 4 Щ Сегмент 3 Сегмент 2 Сегмент 5 т Сегмент 6 Рис. 5.1. Слева: изображение Yan, разбитое на сегменты. Справа: шесть сегментов этого разбиения
5.1. Простые примеры сегментации изображений ♦ 207 В процессе сегментации создаются связные сегменты пикселей, схожих относительно некоторого критерия, возможно, дополненного обнаружением пикселей, чем-то непохожих на смежные с ними. Несхожесть определяет края сегментов, см. раздел 2.4.1. В идеале оба подхода должны дополнять друг друга. К сожалению, границы редко бывают простыми кривыми, очерчивающими сегмент; как правило, это просто дуги. Преобразовать эти дуги в простые кривые - нетривиальная задача. Цель сегментации - выделить «осмысленные» сегменты, которые можно было бы использовать для описания содержимого изображения, например: сегмент «фона», сегменты «объектов» вообще или объектов определенных категорий (глаз, рот, волосы, как показано на рис. 5.2 в нижнем ряду, в середине и справа; приближение позволяет разглядеть на этом рисунке различные степени сегментации). Рис. 5.2. Верхний ряд: изображение AnnieYukiTim (слева) и результат его стилизации Виннемёллера (почти бинарный). Связные темные и светлые участки - это сегменты. Нижний ряд: сегментация изображения Rocio (слева) методом сдвига среднего с радиусами г= 12 (в середине) и г = 24 (справа), объяснения см. в тексте 5.1. Простые примеры сегментации изображений На рис. 5.3 показано приложение анализа изображения, в котором первый шаг - сегментацию - можно свести к бинаризации, т. е. созданию
208 ♦ Глава 5. Сегментация изображений черных участков, определяющих объекты (в данном приложении это следы), и белых участков, определяющих сегменты фона1. Монохромные изображения следов мелких животных фиксируются на покрытых специальной краской карточках, различать уровни яркости в темных участках (кляксах) нет необходимости. Цель процедуры анализа - автоматически определить, какое животное оставило данный след. Рис. 5.3. Изображение RattusRattus, сделанное в Новой Зеландии для контроля состояния окружающей среды. Его требуется сегментировать, выделив пиксели, принадлежащие и не принадлежащие объектам. Слева: пример следов на следоулавливающей карточке. Справа вверху: туннель для сбора следов. Справа внизу: след черной крысы (Rattus rattus) В этом разделе объясняются базовые процедуры сегментации изображений: один метод адаптивной бинаризации, один метод стилизации, в котором простая постобработка также ведет к получению бинаризованного изображения, и идеи выращивания сегментов из выбранных начальных пикселей. 1 Рисунок взят из публикации [B.-S. Shin, /. Russell, Y. Zheng and R. Klette. Improved segmentation for footprint recognition of small mammals. In Proc. IVCNZ, an ACM publication, Nov., 2012].
5.1. Простые примеры сегментации изображений ♦ 209 5.1.1. Бинаризация изображения В процессе бинаризации к скалярному изображению применяется один глобальный порог Г для преобразования его в бинарное изображение: Ах,у) = \ 0 если 1(х, у)<Т к'л • (5.1) 1 в противном случае Величину глобального порога можно определить, применив стратегию оптимизации, нацеленную на создание «больших» связных участков и уменьшение количества малых участков, называемых артефактами. Врезка 5.1 (история бинаризации Оцу). Этот алгоритм бинаризации был опубликован в работе [N. Otsu. A threshold selection method from grey-level histograms. IEEE Trans. Systems Man Cybernetics, vol. 9,1979, p. 62-66]. Бинаризация Оцу. В этом методе используется гистограмма уровней яркости для заданного изображения /, а цель - найти оптимальный порог в том смысле, что «перекрытие» двух классов - объектов и фоновых пикселей - минимально (путем отыскания «наилучшего баланса»). В алгоритме Оцу выбирается порог, который доставляет максимум межклассовой дисперсии а2ь, определяемой как обычная дисперсия, вычисленная для средних значений классов. В случае двух классов формула особенно проста: а\ = Рх(цх - uf + Р2{ц2 - Uf = PxP2{Ul - ц2)\ (5.2) гдеРгиР2- вероятности классов. Выбранный порог и, 0 < и < Gmax, определяет «темные» пиксели объектов, для которых 1(р) < ы, и «светлые» пиксели фона, для которых и < 1(р). Обозначим ц{и), i = 1, 2, средние по классам объектов и фона. Пусть с7- гистограмма относительных кумулятивных частот изображения /, определенная формулой (1.8). Вероятности Р1 и Р2 аппроксимируются значениями с {и) и 1 - с7(ы) соответственно; это общее число пикселей в каждом классе, поделенное на мощность множества |/2|. Алгоритм Оцу показан на рис. 5.4; он просто проверяет всех возможных кандидатов на роль оптимального порога Т.
210 ♦ Глава 5. Сегментация изображений 1: Вычислить гистограмму Н, для и - 0,..., Gmax; 2: Обозначить Т0 приращение для вычисления потенциальных порогов 3 4: 5 б: 7 8: 9: 10: и положить и - Т-, T-u;S - 0; 0' ' max ' while u<G do max Вычислить с:{и) и ju.(u) для / = 1,2; Вычислить о\{и) = c,(u)[1 - c,(u)][/u.(u) - jU2(u)]2; if о2Ли) > S then 6х ' max S = o2Au) и 7"= u; end if Положить и = и + T0 end while Рис. 5.4. Алгоритм Оцу. Значения гистограммы используются для обновления на шаге 4. Шаг 5 производится на основе формулы (5.2) На рис. 5.5 показаны результаты бинаризации окна изображения следов (рис. 5.3). Если порог слишком мал, то в участках объектов есть дырки, а если слишком велик, то участки сливаются. Порог, вычисленный методом Оцу, равен Т= 162. * 0 7=63 t i Г=92 ''*♦ • • Г=187 » 9 Г =141 **?* Г =230 9 Г=162 Рис. 5.5. Примеры для различных порогов 7~е {0, ...,255} Стилизация Виннемёллера. В разделе 2.4 рассматривался детектор границ на основе разности гауссианов (DoG). Здесь мы опишем обобщение этого детектора для нефотореалистичного рендеринга (NPR) отснятых фотографий. Стилизация Виннемёллера, по существу, определяет бинаризацию изображения.
5.1.Проаые примеры сегментации изображений ♦ 211 Врезка 5.2 (история стилизации Виннемёллера). Этот алгоритм бинаризации был опубликован в работе [Н. Winnemoller. XDoG: Advanced image stylization with extended difference-of-Gaussians. In Proc. ACM Symp. Non-Photorealistic Animation Rendering, 2011, p. 147-155]. Повторим определение DoG (2.40), только перенесем L(x, у, а) в левую часть: Цх, у, а) = Цх, у, аа) + Daa(x, у). (5.3) Здесь а - масштаб, а а > 1 - масштабный коэффициент. Таким образом, Daa{x, у) дает высокочастотные компоненты, которые нужно прибавить к Цх, у, аа) для получения менее сглаженного изображения Цх, у, а). Сделаем еще один шаг в том же направлении и рассмотрим тождество °аЛт (*' У) = L(x> У>°)-т' Д*> У> аст) = (1 - т) • Цх, у, а) + т • Daa{xy у). (5.4) Параметр т управляет чувствительностью детектора границ. При малых значениях т границы становятся «менее важными», преимущество в том, что при этом обнаруживается меньше шума. Этот модифицированный детектор затем используется для определения функции е£Л*,у) = \ 0 если D (х,у)> е аАт i > уу . (5.5) tanh(^- (DaaT(x, у) - ё)) в противном случае Вещественные значения линейно отображаются в диапазон {0,1,..., Gmax}, так что в итоге получается изображение Е£^фат. Это изображение и есть результат алгоритма стилизации Виннемёллера. Функция tanh монотонно возрастает, когда аргумент изменяется от 0 до 1, а ее значения принадлежат диапазону [0,1). Параметр е определяет разделение по порогу. Благодаря функциям tanh и ф изображение становится менее контрастным; увеличивая ф, мы делаем его более резким. Пример стилизации Виннемёллера приведен на рис. 5.2 справа вверху. Еще один пример приведен на рис. 5.6 справа. Значения Е%фа т обычно близки либо к 0 (черный цвет), либо к G (белый цвет), и лишь небольшое количество пикселей имеет промежу точные цвета. Следовательно, порог Г, приблизительно равный Gmax/2, и применение формулы (3.48) порождают бинарное изображение (которое визуально почти не отличается от стилизованных изображений max
212 ♦ Глава 5. Сегментация изображений на рис. 5.2 сверху или на рис. 5.6 справа), если это нужно для анализа изображения или для визуализации. Рис. 5.6. Слева: входное изображение MissionBay. Справа: результат его бинаризации методом Виннемёллера 5.1.2. Сегментация путем выращивания семян Для сегментации полутонового или цветного изображения мы можем взять начальный пиксель (х, у, 1{х, у)) (семя) и рекурсивно добавлять к нему соседние пиксели, удовлетворяющие «критерию похожести» на пиксели, составляющие уже выращенный участок вокруг начального пикселя. Этот процесс можно повторять, пока каждый пиксель изображения не окажется в одном из сегментов. Возникает важный вопрос: как сделать, чтобы этот процесс не зависел от выбора начальных пикселей, т. е. чтобы результирующая сегментация определялась данными изображения, а не тем, как выбрана последовательность начальных пикселей? Отношение эквивалентности на признаках пикселей. Для изображения / мы уже имеем или можем вычислить вектор признаков и(р) в позиции пикселя р. Например, для цветного изображения / мы уже имеем вектор RGB. Для полутонового изображения мы можем вычислить векторы градиента V/ в точке р и локальное среднее или дисперсию в р для формирования вектора и(р). Один лишь уровень яркости пикселя р образует одномерный вектор признаков. Обозначим = отношение эквивалентности на множестве векторов признаков и, которое разбивает все это множество на классы эквивалентности. Сегменты, определяемые отношением эквивалентности на признаках. Две позиции пикселей р и q называются 1-эквивалентными, если и(р) = u(q). Тем самым определено отношение эквивалентности на носителе П, зависящее от изображения /. Классы /-эквивалентности
5.1. Простые примеры сегментации изображений ♦ 215 С Q П по этому отношению еще не являются сегментами /относительно отношения =. Одинаковость признаков в точках pnq еще не означает, что р и q принадлежат одному и тому же сегменту. Врезка 5.3 (отношение эквивалентности и классы эквивалентности). Пусть R - бинарное отношение, определенное на множестве 5. Способы записи aRb, (a, b) E R и а е R(b) эквивалентны, все они означают, что элементы а 6 S и b E S связаны отношением /?. Например, рассмотрим отношение 4-смежности А4 на П; тогда запись р е A4(q) означает, что позиция пикселя р е П является 4-смежной с позицией пикселя q e П, и то же самое можно выразить, написав pA4qw\v\{p,q)EA4. Отношение R называется отношением эквивалентности на S, если оно обладает следующими свойствами: 1) для любого а е 5 имеет место aRa (т. е. отношение R рефлексивно на 5); 2) для любых a,b е S,если aRb,то Ь/?а (т.е./? симметрично на 5); 3) для любых а, Ь, с £ S, если а/?Ь и Ь/?с,то а/?с (т. е. /? транзитивно на 5). Например, >44 не является отношением эквивалентности на П; оно симметрично, но не рефлексивно и не транзитивно: из того, что pA4q и qA$, не следует, что рА^р. Отношение N4 = A4(p) и {р} также не является отношением эквивалентности; имеют место рефлексивность pN^ и симметричность, но транзитивность отсутствует. Отношение С4 4-связности в бинарном изображении /, определенное следующим образом: pC4q тогда и только тогда, когда существует путь р = р0, pv ..., pn = gтакой, что р. 6 N4(p._J и 1{р) = /(р,..^ для / = 1,...,л является отношением эквивалентности, оно обладает также свойством транзитивности. Пусть R - отношение эквивалентности на S.Тогда для любого а е S множество R(a) определяет класс эквивалентности на S. Если b e /?(а),то R(b) = /?(а). Множество всех классов эквивалентности на S определяет разбиение S на попарно непересекающиеся непустые множества. Обозначим Си множество всех р е П таких, что 1(р) = и. Каждый класс /-эквивалентности Си является объединением (скажем, 4-, 8- или iC-связных) участков, и вот эти участки являются сегментами. Наблюдение 5.1. Результат сегментации путем выращивания семян не зависит от начальных пикселей при условии, что выращивание согласовано с отношением эквивалентности, определенным отношением эквивалентности на признаках изображения. Пример 5.1 (пометка сегментов). Мы хотим пометить каждый из получившихся сегментов (т. е. все пиксели, принадлежащие этому сегменту) одной и той же уникальной меткой. В качестве меток можно выбрать, например, числа
214 ♦ Глава 5. Сегментация изображений или (для визуализации) цвета. Чтобы не изменять входное изображение /, мы запишем метки в массив такого же размера, что и /. На рис. 5.7 слева показано бинарное изображение. В качестве признаков мы берем значения пикселей 0 и 1, и совпадение значений определяет отношение эквивалентности на множестве признаков {0, 1}. Существует всего два класса /-эквивалентности. В бинарном изображении Monastry не важно, используется ли 4-, 8- или /С-смежность; в любом случае оба класса /-эквивалентности Сг и С0 разбиваются на одни и те же сегменты, помеченные разными цветами или уровнями яркости соответственно (см. рис. 5.7 справа). Рис. 5.7. Слева: архитектурный план Monastry монастыря Бебенхаузен (Тюбинген, Германия). Сколько здесь черных и сколько белых сегментов? Справа: черные сегменты помечены различными цветами, а белые сегменты - уровнями яркости Рекурсивная пометка сегментов. Мы опишем алгоритм сопоставления общей метки всем пикселям одного сегмента. Пусть А - выбранное отношение смежности пикселей. Предположим, что мы находимся в позиции пикселя р, который еще не помечен как член какого-то сегмента. Сделаем р следующим начальным пикселем для инициализации нового сегмента.
5.1. Простые примеры сегментации изображений 215 Обозначим 1к метку, принадлежащую множеству возможных меток и еще не использованную для пометки сегментов /. Рекурсивная процедура пометка показана на рис. 5.8. пометить р меткой /^ поместить р в стек; while стек не пуст do извлечь г из стека; for тех q E А{г), для которых u{q) = u и q еще не помечен do пометить q меткой 1к; поместить q в стек; end for end while Рис. 5.8. Рекурсивная процедура пометки, которая начинается в начальном пикселе р с вектором признаков и = и(р) и назначает пикселям входного изображения /еще не использованную ранее метку/ В этом рекурсивном алгоритме пометки может случиться так, что в стеке окажется примерно половина всех пикселей изображения. Но, конечно, такие случаи крайне маловероятны. Пометив сегмент, содержащий р, мы можем продолжить поиск непомеченных пикселей и поступать так до тех пор, пока не будут помечены все пиксели. Пример 5.2 (обход пикселей в глубину). Рассмотрим бинарные изображения с ключом «белый < черный» для iC-смежности (т. е. для белых пикселей предполагается 4-смежность, а для черных - 8-смежность). На рис. 5.9 слева показаны первые посещенные пиксели в этом белом сегменте в количестве 21. — 18 19 20 15 16 17 ■ 21 6 7 12 13 14 1 2 3 4 1 5 8 9| 101 | ■ 4 t Р J 2 ■ 1 4 t \ 2 Рис. 5.9. Слева: числа обозначают порядок, в котором помечались пиксели, в предположении стандартного обхода сетки (слева направо, сверху вниз). Справа: каким будет порядок, если стек в алгоритме заливки на рис. 5.8 заменить FIFO-очередью? Показанный на рисунке справа порядок используется для посещения смежных пикселей, когда алгоритм применяется для пометки сегмента белых
216 ♦ Глава 5. Сегментация изображений пикселей. При пометке сегмента черных пикселей был бы применен обход 8-смежных пикселей по или против часовой стрелки. Пример 5.3 (зависимость от начальной точки в случае, когда отношение эквивалентности не используется). Рассмотрим следующую процедуру выращивания семян, определяемую параметром т > 0: 1) собираем в полутоновом или цветном изображении начальную точку pseed, имеющую яркость B(pseed). Вначале текущий сегмент содержит толь- 2) в процессе выполнения итераций присоединяем к текущему сегменту пиксель q, являющийся 8-смежным с каким-либо пикселем текущего сегмента, при условии что он еще не помечен и его яркость B(q) удовлетворяет неравенству \B(q) -B(pseed)\ < т; 3) останавливаемся, когда не осталось непомеченных пикселей q, 8-смежных с текущим сегментом, которые можно было бы к нему присоединить. Критерий присоединения в этой процедуре не основан на отношении эквивалентности на множестве значений яркости. Поэтому построенные сегменты зависят от выбора начального пикселя. Пример приведен на рис. 5.10. в результате работы алгоритма выращивания семян, основанного на разности яркостей т с начальным пикселем. Слева: выращивание участка, начиная с показанной точки, при т = 15. Справа: снова т = 15, но начальная точка выбрана по-другому- в ранее построенном сегменте Чтобы объяснить этот эффект, рассмотрим изображение [0, 1, 2, 3, 4, 5, 6, 7] размера 1х8 и предположим, что т = 2, pseed = 3, а В(Ъ) = 2. При таком выборе начального пикселя получается участок [0, 1, 2, 3,4]. Пиксель р = 4 принадлежит этому участку, его яркость Б(4) = 3, и если взять его в качестве начального, то будет порожден участок [1,2, 3,4, 5].
5.1. Простые примеры сегментации изображений ♦ 217 Зависимость от выбора начального пикселя можно устранить, разбив диапазон {0,..., Gmax} на интервалы V0 = {0,..., т}, VI = {т + 1,..., 2т},..., Vm = {тт + 1,..., Gmax}. Теперь при выборе начального пикселя р яркость В(р) определяет интервал Vk, для которого В(р) е Vk. И мы присоединяем к сегменту только те пиксели q, для которых яркость B(q) принадлежит тому же интервалу Vk. Тем самым определяется отношение эквивалентности на множестве значений яркости. Получающаяся сегментация не зависит от выбора начального пикселя сегмента. Предложенную схему разбиения (на непересекающиеся интервалы) диапазона значений признака можно обобщить и на многомерные векторы признаков и. Сегментация посредством кластеризации. Мы кратко упомянем этот метод, альтернативный выращиванию семян и заключающийся в том, что вначале выбирается несколько пикселей и все они объединяются в кластеры параллельно (т. е. все начальные пиксели рассматриваются одновременно) путем отнесения непомеченных пикселей к «самому похожему» начальному. В ходе этого процесса выбранные начальные пиксели можно заменять, делая новым начальным пикселем центроид уже построенного к этому моменту сегмента. Обычно результат таких методов зависит от выбора начальных пикселей. См. также упражнение 5.9. Врезка 5.4 (история алгоритма сдвига среднего). Анализ функций плотности распределения методом сдвига среднего был описан в работе [К. Fukunaga and L D. Hosteller. The estimation of the gradient of a density function, with applications in pattern recognition. IEEE Trans. Information Theory, vol. 21, 1975, p. 32-40]. Было показано, что алгоритм сдвига среднего сходится к локальному максимуму функции плотности (что соответствует локальным максимумам распределения значений в каналах изображения). Процедуры, основанные на сдвиге среднего, приобрели популярность в компьютерном зрении благодаря следующим двум работам: [У. Cheng. Mean shift, mode seeking, and clustering. IEEE Trans. Pattern Analysis Machine Intelligence, vol. 17, 1995, p. 790-799] и [D. Comaniciu and R Meer. Mean shift: A robust approach toward feature space analysis. IEEE Trans. Pattern Analysis Machine Intelligence, vol. 24, 2002, p. 603-619]. После их появления было опубликовано много вариантов алгоритма сдвига среднего как для компьютерного зрения,так и для анализа данных вообще. Реализация алгоритма сдвига среднего имеется в библиотеке OpenCV (метод meanShift).
218 Глава 5. Сегментация изображений 5.2. Сегментация методом сдвига среднего Сдвиг среднего - вариант итеративного метода наискорейшего подъема, применяемого для поиска стационарных точек (пиков) функции плотности распределения, который используется во многих вопросах многомерного анализа данных, а не только в компьютерном зрении. В этом разделе будут представлены варианты алгоритма сдвига среднего для сегментации изображений. В данном случае под «распределением» понимается распределение значений в изображении. 5.2.1. Примеры и подготовка Для полутонового изображения с его скалярными значениями пикселей пространство признаков одномерно. Чтобы лучше понять идеи алгоритма сдвига среднего, предположим, что требуется сегментировать л-канальное изображение, где п > 1. Например, для цветного изображения имеется п = Ъ канала. А для скалярного изображения / можно определить п = 2 градиентных канала Т-(Р)>¥-(Р)\ • <5-6> ох ду J или п = 2 канала (среднее, стандартное отклонение) (см. рис. 5.11), или п = 4 канала, если объединить градиентные каналы с каналами среднего и стандартного отклонения. В общем случае мы можем добавлять каналы, представляющие локальные свойства в позиции пикселя р. Vl(p) = grad I(p) = Рис. 5.11. Слева: Полутоновое изображение Odense, для которого Gmax = 255. Справа: визуализация двумерного пространства признаков (в виде двумерной гистограммы) изображения, определенного средним и стандартным отклонением в окрестностях пикселей размера Зх3. Полоса справа - цветовой ключ для показанных на рисунке частот
5.2. Сегментация методом сдвига среднего ♦ 219 Средние для «-мерных пространств признаков. Формула (3.39) для вычисления среднего, или центроида, (xs, ys) множества S обобщается на векторы признаков и = (ир ...,ип) следующим образом: т, Ui,S = 0,...,0,1,0,...,0 (S) ДЛЯ/б{1,...,П}, (5.7) ^оо...о(£) где моменты /Wo,...,o,i,o,...,o(^) О- в г_и позиции) и т00 0(S) (n нулей) определены формулой (3.36), в которой в качестве весов используются не значения изображения, а кратности векторов признаков. Основные идеи алгоритма сдвига среднего. Пусть имеется изображение /размера 5*5 (здесь не показано) с двумя каналами, значения а и Ь которых принадлежат диапазону 0 < а, Ъ ^ 7. На рис. 5.12 показан пример распределения 25 пар признаков в пространстве аЪ (не на плоскости изображения, а в двумерной гистограмме значений пикселей). Числа 1,2 и 3 - это кратности встречающихся пар признаков. f |0 0 0 0 0 0 1/2 ( 1 0\0 0 0 "о" 0 J^ 0 ш 0 ^г 0 0 0 0 0 11 1 1 1\3 1 о )о о 0/1 2 1 2 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 —^ а 0 0 0 0 0 0 0 00000000 ? loooooooo 0 0 0 110 0 /^ ^Ч 1 И1 О 4 3 11 у 1 г J 1 2 11 2 | 0 0 0 0 0 0 0 а Рис. 5.12. Распределение 25 вычисленных локальных свойств изображения и = (а, Ь) в пространстве признаков ob, начальная позиция окна {слева) и два последующих перемещения в результате сдвига среднего {слева направо) В качестве начального значения мы выбираем пару (2,4) с кратностью 2 (т. е. в двух пикселях изображения 5x5 признак принимает значение (2,4)). Мы вычисляем среднее по множеству S радиуса г = 1.6 (к примеру) с центром в точке (2, 4). Это новое среднее смещено немного влево и вверх от предыдущего. Мы сдвигаем круговое окно, определяющее текущее множество 5, так чтобы его центр совпал с новым средним. Среднее us= (u1 s, u2S) по этому новому множеству S снова немного сместилось вверх относительно предыдущего. Итерации прекращаются, если расстояние между текущим и следующим средним оказывается меньше заранее заданного положительного порога т (например, т = 0.1); среднее установится финальным средним.
220 ♦ Глава 5. Сегментация изображений В результате все пиксели изображения с признаком (2,4) отнесены к этому финальному среднему us. Эта процедура повторяется для других начальных пар признаков. Все они определяют какое-то финальное среднее. Финальные средние, расположенные очень близко друг к другу, можно объединить в один кластер. Пиксели, отнесенные к финальным средним, оказавшимся в одном кластере, эквивалентны по значениям; этот класс эквивалентности распадается на несколько участков (сегментов). Сдвиг среднего как метод наискорейшего подъема. Будем рассматривать кратности в пространстве признаков как высоты. Сдвиг окна означает подъем в гору (следование за средним), и конечный ориентир приблизительно совпадает с локальным пиком, определяющим финальное среднее. Рисунок 5.12 слишком мал, чтобы отразить это должным образом; на рис. 5.13 показана трехмерная визуализация наискорейшего подъема. Рис. 5.13. При сдвиге среднего мы поднимаемся вверх в направлении наибольшего градиента. Здесь это перемещение показано на примере пяти начальных точек - движение, начатое из каждой, стремится к одному и тому же пику (вообще говоря, это локальный максимум, но в данном случае глобальный) Метод зависит от двух параметров гит, определяющих соответственно «область влияния» и критерий остановки. Наблюдение 5.2. При последовательных операциях сдвига среднего окно движется к локальному пику распределения векторов признаков, и тем самым реализуется метод наискорейшего подъема в направлении наиболее быстрого изменения локального градиента.
5.2. Сегментация методом сдвига среднего ♦ 221 Локальный пик и глобальная мода. Глобальной модой множества данных называется значение, встречающееся чаще всего. Например, мода множества {12,15,12,11,13,15,11,15} равна 15. У множества может быть несколько мод. Так, множество {12, 15, 12, 11, 13, 10, 11, 14} бимодальное, т. к. в нем есть две моды, 12 и 11. У множества {16,15, 12, 17,13,10,11,14} вообще нет мод, поскольку все значения встречаются с одинаковой частотой. Для определения моды множество не обязательно должно состоять из чисел, его элементами могут быть цвета, имена и вообще все, что угодно. Локальный пик (т. е. локальный максимум плотности), вообще говоря, не является глобальной модой. Моды множества векторов признаков определяют глобальные пики. В некоторых публикациях локальные пики функций плотности также называются «модами», но мы избегаем такой практики, чтобы не возникало путаницы с более распространенным определением моды, приведенным выше. 5.2.2. Модель сдвига среднего В этом подразделе излагаются математические основы алгоритма сдвига среднего. Если вас интересует только сам алгоритм, то можете сразу перейти к разделу 5.2.3. «-мерная ядерная функция и одномерный профиль. На рис. 5.12 иллюстрируется использование кругового окна для равномерного включения всех векторов признаков, оказавшихся в этом окне, в вычисление нового среднего. В этом случае вычисление среднего производится по формуле (5.7). Чтобы обобщить вычисление локального среднего, рассмотрим симметричную относительно вращения п-мерную ядерную функцию K(u) = cfe-/c(||u||22), (5.8) определенную в точках и n-мерного пространства признаков. Одномерный профиль к и константа ск подбираются так, что JR„^(u)du = l. (5.9) Константа ^обеспечивает нормировку интеграла на 1. Ядро JC определяет веса по аналогии с локальными свертками изображений (см. раздел 2.1.2). Но теперь ядро применяется в пространстве признаков. На рис. 5.14 приведено четыре примера профилей к(а) для аеШ. Функция Епанечникова определяется следующим образом:
222 ♦ Глава 5. Сегментация изображений fc(a) = |(l-a2) для -\<а< 1 (5.10) и к(а) = 0 в остальных точках. Врезка 5.5 (история функции Епанечникова). Эта функция впервые появилась в работе [KAEpanecftn/'fov. Nonparametric estimation of a multidimensional probability density. Theory Probab. Appl., vol. 14,1969, p. 153-158]. Рис. 5.14. Профили четырех различных ядерных функций: треугольной, Епанечникова, равномерной и гауссовой Оценки плотности. Пусть г > 0 - параметр, определяющий радиус ядра (например, стандартное отклонение а в случае гауссовой функции). Мы имеем т векторов признаков и., 1 < i < т, в Ш"; если задано . . N . cols rows изображение 1,тот= Nc 1 т I \ /*(■>=—L* -<■-■<> Для любого вектора uel" функция /1 Л тг тг ,-=1 \г ) S* i=\ \r u-u, Л (5.11) (5.12) определяет оценку плотности в точке и на основе ядерной функции К. Вычисление градиента. Чтобы определить вектор сдвига среднего, необходимо вычислить производную grad fk(u) функции fk(u). (См. обсуждение изображений как непрерывных поверхностей и интерпретации градиентов, например, в контексте рис. 1.13.) Продифференцируем функцию
5.2. Сегментация методом сдвига среднего ♦ 225 М „ .,2Л \г u-u, взяв производную (5.13) — (u-u.) г внутренней функции и умножив ее на производную *' <\ ■■ „2^ \Х u-u; (5.14) (5.15) внешней функции; к'- это производная профиля к. Локальные пики в пространстве признаков находятся в тех точках и, где 2с ^. . ./ 1 „ „2Л 0 = gradfk(u) = ^1^(u-ui)k' wr ;=1 ^г u-u, 2с, - wrw+2 /=1 5>-«/)*'(#Г)): (5.16) где для краткости мы обозначили ^(г)=4- u-u, (5.17) Мы хотим преобразовать градиент (5.16), так чтобы выделить вектор сдвига среднего при перемещении из любой точки и к следующему среднему в направлении локального пика. Сначала введем функцию g(a) = -k'(a). Знак минус позволяет заменить (и - и.) на (и.- и). Из (5.16) получаем: 2с т grad/4 (и) = —& X (»,-«)■ * (^) тг i=i 2с, » /W _ 2ск п+2 г2с„ g L = АВС E[oi^(^r))]-»-S^(^) 1=1 1=1 i:,yg(^') >о га mr 77 и (5.18)
224 ♦ Глава 5. Сегментация изображений Множитель А в (5.18)2 - константа. Множитель В - оценка плотности f в пространстве признаков для функции g, поскольку формула (5.12) определяла оценку плотности fk для функции к. Константа с нормирует интеграл в пространстве признаков на 1, если/ применяется в качестве веса. Вектор сдвига среднего как масштабированный вектор градиента. Множитель С в формуле (5.18) - это вектор сдвига среднего, который ведет из точки и в новое положение среднего в пространстве признаков. Мы обозначаем его ш,(а)=&-' ' М ' ;-и. (5.19) В итоге имеем или ffTRdfk(u) = -^-fg(uymg(u) (5.20) г cg rng(u) = —^—-g^dfk(u). (5.21) 2v/*00 Таким образом, мы доказали наблюдение 5.2: сдвиг среднего происходит в направлении градиента grad fk(u). Действуя таким образом, мы приближаемся к вектору признаков и0, в котором grad /fc(u0) = 0, как и утверждается в (5.16). 5.2.3. Алгоритмы и оптимизация по времени Метод сдвига среднего дает неплохие результаты с точки зрения качества сегментации, но объем вычислений при буквальной реализации весьма велик. Мы проиллюстрируем его на простом примере, в котором используется линейная алгебра (точнее, операции над матрицами). В этом варианте нет никакой оптимизации времени работы, мы приводим его только для объяснения общего алгоритма. Пример 5.4 (сдвиг среднего с применением линейной алгебры). В качестве входа будем использовать двумерное пространство признаков, показанное на рис. 5.12. Оно представляет данные См. графическую иллюстрацию этого уравнения на рис. 10.11 в книге [G. Bradski and A. Kaehler. Learning OpenCV. O'Reilly, Beijing, 2008] (Брэдски Г., Келер А. Изучаем OpenCV. M.: ДМК Пресс, 2017). В ней сдвиг среднего обсуждается не как средство кластеризации в пространстве признаков, а как средство прослеживания в области пикселей.
5.2. Сегментация методом сдвига среднего 225 [(5, 2), (6, 2), (3, 3), (3, 3), (4, 3), (5,3), (1,4), (2,4), (2,4), (4,4), (5,4), (5,4), (5,4), (6,4), (7,4), (2, 5), (3, 5), (3, 5), (5,6), (6,6), (6, 6), (3, 7), (4, 7), (6, 7), (6, 7)] в предположении, что а и Ъ - целые числа, начинающиеся с 1. Представим эти данные в матричной форме: D = 563345 1224555672335663466 2233334444444445556667777 Процедура сдвига среднего начинается с выбора пары признаков в качестве начального значения среднего. Возьмем одну из двух пар (3, 5), как показано на рис. 5.12, и создадим матрицу средних М, в которой в каждом столбце находится пара (3, 5): М = 3333333333333333333333333 5555555555555555555555555 Вычислим квадраты евклидовых расстояний между столбцами матриц М и D, возведя в квадрат значения разностей соответственных элементов D - М. Получим матрицу (квадратов) евклидовых расстояний: Е = "4 9001441114449 16 100499019 9 9944441111111110001114444 Просуммировав значения в каждом столбце, получим [13 18 4 4 5 8 5 2 2 2 5 5 5 10 17 1 0 0 5 10 10 4 5 13 13 ]. Теперь мы готовы применить ядерную функцию. Для простоты предположим, что профиль равномерный с некоторым радиусом г > 0; простая ступенчатая функция, определяющая равномерный профиль, показана на рис. 5.14. Вычисленные суммы необходимо сравнить с г2. Для генерации рис. 5.12 было взято значение г = 1,6, поэтому г2 = 2,56. Шесть квадратов евклидовых расстояний меньше 2,56. Это шесть точек в пространстве признаков, которые находятся внутри окружности на левом рис. 5.12 и определяют активное множество признаков S = {(2,4), (2,4), (4,4), (2, 5), (3, 5), (3, 5)} на этой итерации сдвига среднего. Среднее по множеству 5 равно us = (2,67,4,5) (поскольку профиль равномерный). Сравниваем (2,67,4,5) с предыдущим средним (3,5) и выясняем, что расстояние все еще больше порога т = 0,1. Продолжаем итерации - генерируем новую матрицу средних М, все столбцы которой равны (2,67,4,5), снова вычисляем вектор квадратов евклидовых рас-
226 ♦ Глава 5. Сегментация изображений стояний до этого среднего (с помощью матрицы Е), вычисляем текущее множество S активных признаков, находящихся на расстоянии меньше г от точки (2,67,4,5), и новое среднее по этому множеству. Сравниваем расстояние от нового среднего до точки (2,67,4,5) с порогом т = ОД. Процедура останавливается, когда расстояние между двумя последовательными средними будет меньше т. В этот момент мы получили финальное среднее, к которому относим начальный признак и = (3,5). Обработав все точки в пространстве признаков, мы объединяем в кластеры те точки, для которых финальные средние равны или «близки». Тем самым определяются классы эквивалентности в пространстве признаков. В рассмотренном примере мы взяли равномерный профиль, но могли бы взять другие профили, показанные на рис. 5.14. При этом изменился бы способ аппроксимации локальных средних (использовались бы взвешенные суммы значений признаков). Описанный только что алгоритм можно оптимизировать. Использовать матрицу М для сравнения со всеми имеющимися признаками и неэффективно. Организовать многократный поиск точек, близких к текущему среднему, можно эффективнее, например с помощью хеширования. Далее мы обсудим вопрос о временной сложности. Разбиение пространства признаков на окна. Рассмотрим алгоритм, который начинается с разбиения пространства признаков на «небольшие» окна, по возможности равномерно. См. результат сегментации на рис. 5.15 и пример простого двумерного пространства признаков на рис. 5.16 слева. о mi а х Рис. 5.15. Слева: эскиз разбитого пространства признаков для изображения Odense на рис. 5.11. Справа: результат сегментации этого изображения с применением разбиения пространства признаков на окна размера 39*39; всего получилось 33 метки
5.2. Сегментация методом сдвига среднего 227 1 1 □ ||о 0 2 111 2 2 [Т] 2 6 6 3 ||7 7 7 И 7 И 6 3 2 2 1 3 1 3 Щ 6 4 5 2 6 5 4 7 0 6 ц 1 1 2 1 7 0 5 6 6 4 4 0 1 1 1 О+О. ) 2 2 ||2 1 2 6 Й 3 Р 0 7 f ||7 4 6 3 1 11 1*1 2 1 3 1 щ | 1 2 3 ■ 6 7| 4 5 2 5 6 6 5 4 6 4 | 7 ■ б «■ 1 1 Q 1 1 2 3 | 2 13 1 3 | 6 4 5 2 6 5 4 -■« 1 2 2 1 2 6 ■ 3 7 ■ 7 7 4 6 5 6 6 4 4В 2 1 2 2 1 2 6 ■ 3 7 ■ 7 7 4 6 0 0 0 0 0 1 1 3|2 13 1 3 ■ б 4 5 2 6 5 4 1 1 2 Й 5 6 6 4 4В 1 1 2 1 2 2 1 2 6 6 3 ||7 7 7 Ь 4 6 1 1 3 2 2 13 1 3 1 6 4 5 2 6 5 4 7 5 6 1 1 2 7 7 5 6 6 4| 4 jl Рис. 5.16. Центры девяти начальных окон, показанных слева, считаются начальными средними. В результате последовательных операций сдвига среднего они перемещаются в новые позиции. Перемещение прекратится, когда будут достигнуты синие или красные клетки, являющиеся финальными средними. Красная клетка соответствует единственному случаю, когда центры двух начальных окон переместились в одно и то же финальное среднее,так что оба окна объединились в один класс эквивалентности 2*6, показанный справа Мы выполняем несколько раундов операции сдвига среднего для каждого окна, пока окна не перестанут сдвигаться в новую позицию. Средние округляются до ближайшего целого, поэтому центры окон всегда совпадают с какой-то точкой в пространстве признаков. Векторы исходных окон, центры которых сместились в одну и ту же позицию финального среднего, мы относим к одному классу эквивалентности (т. е. сегменту в пространстве признаков). Пример 5.5 (попарно непересекающиеся квадратные окна в пространстве признаков). Рассмотрим двумерное пространство признаков, представленное массивом 8х8 на рис. 5.16 слева, в котором показаны кратности векторов признаков. Применим равномерный профиль в квадратных (а не в круговых) окнах. После первого раунда сдвига средних этих девяти начальных окон мы обнаруживаем, что четыре вообще не изменили положения, их центры выделены синим цветом. Пять окон стали предметом рассмотрения на втором раунде. Далее мы замечаем, что четыре из этих пяти больше не двигаются, так что у нас появилось еще четыре синие клетки. На третьем раунде сдвига средних осталось рассмотреть всего одно окно, его среднее переместилось в позицию, которая уже была помечена синим цветом, так что эти два окна должны быть объединены, что и показано на рисунке справа. На рис. 5.17 мы разбиваем то же самое пространство признаков 8х8 на окна размера 2*2. В правом верхнем окне все значения равны нулю, т. е. в нем нет ни одного признака, поэтому дальше с ним делать нечего. Синие клетки снова отмечают конец перемещения, а красные - объединение двух синих клеток. На этот раз мы имеем ситуацию, когда с двумя уже объединенными окнами объединяется еще и третье, их общий центр закрашен черным цветом. Кроме того, мы замечаем, что желтая клетка уже рассматривалась, поэтому в этой точке можно остановиться и просто воспользоваться уже инициализированным для
228 Глава 5. Сегментация изображений нее путем вычисления. Это тот случай, когда открывается потенциальная возможность сократить время сегментации больших изображений. Гц 1гЩ 2 ll II6 Й 7 7 \2Ш 1 Р |2 3| Щ 2 3| 7 6 ш ы |2 2| зга |1 б| 5 41 |s [б] □ 1 1Ш 17 7 I5 И 6 4J ^ гп СЕМ 2 на 2 1 ■ 1 З4! 2 1 2 3 1 [б] ГО-6 3|5 2 171 7 \Т\ 6 5 4 7 4 6 7 [i}-6 U 1 1 ■ 7 Щ 5 б] 6 4 LM Рис. 5.17. Опорные точки 16 начальных окон, показанных слева, алгоритм сдвига среднего перемещает в новые позиции. Серый: окно не представляет интереса. Синий: больше не двигается. Красный: объединена с синей клеткой. Черный: объединена с красной клеткой.Желтый: самый интересный случай, когда мы заходим в клетку, уже рассмотренную ранее Ну и наконец, финальные средние (в нашем примере синие, красные или черные клетки) можно объединить в кластеры, ориентируясь, например, на 4- или 8-смежность. Кластеры определяют классы эквивалентности. См. рис. 5.18. Г] 1 П ищ 2 ll 6 Щ 7 7 fl 1 П 2 3 Щ |2 3 7 6 km id ]2 2| |з[Т] ll 6| Is Щ 5 4| 5 [б] □ 1 1Й 7 7J 5 [б] 6 4| ш I 1 с 2 ■ 2 2 1 | 13 2 12 3 1 86 3 ■ 5 2 5 6 7 7 6 5 4 6 4 74675641 1 1 I1 2 2 1 6 6 2 3 1 2 3 3 4 I1 1\ 2 2 3 1 1 6 5 2 7 7 7 6 5 4 7 4 6 7 5 6 1 I1 2 1 7 7 I5 6 6 4 |4 1\ 1 1 I1 A 2 1 6 6 7 7 | 7 4 2 3 1 |2 3 3 4 7 6 6 7 I1 *1 2 2 3 l| 1 6 5 2 5 4 5 6 1 1 2| 7 7 5 6| |б 4 |4 1\ 1 1 1 1 21 |2 1 6 6 7 7 | 7 4 |2 3 1 2 3 3 4 10 01 1 1 2 2 3 1 1 6 5 2 7 6 5 4 6 7 5 6 ^1 1 2 7 7 5 6 6 4 |4 1\ Рис. 5.18. Слева направо: исходное разбиение на окна 2х2 такое же, как на рис. 5.17, позиции финальных средних с обозначенной 4- или 8-смежностью, результирующие классы эквивалентности, определяемые объединенными окнами, результирующие классы эквивалентности, если объединяются только 4-смежные финальные средние, и результирующие классы эквивалентности, если при объединении учитывается также 8-смежность Алгоритм сдвига среднего при разбиении пространства признаков на окна. Мы используем n-канальное представление заданного изображения / и тем самым определяем п-мерное пространство признаков для п> 1. Все \П\ признаков изображения вставляются в равномерно дискретизированное пространство признаков, представленное в виде сетки (по аналогии со счетчиками в пространстве аккумуляторов для преобразования Хафа), при необходимости округляя значения. В результате получается n-мерная гистограмма. Мы объявляем активными начальные n-мерные окна в пространстве признаков, если они содержат хотя бы один вектор признаков; тем самым определяется разбиение этого пространства. В момент инициа-
5.2. Сегментация методом сдвига среднего ♦ 229 лизации класс эквивалентности такого окна состоит только из самого окна. Затем начинается процедура сдвига средних. На каждой итерации все активные окна перемещаются в позицию, определяемую новым средним (округленным до позиции клетки в пространстве признаков). Возможно три случая: 1) если новое вычисленное среднее совпадает с предыдущим, то имеет место остановка: среднее является финальным. Это окно удаляется из списка активных; 2) если на текущей итерации средние по двум окнам совпадают, то имеет место объединение: классы эквивалентности обоих окон объединяются, и второе окно удаляется из списка активных; 3) если среднее перемещается в точку пространства признаков, уже занятую на предыдущей итерации средним другого окна, то имеет место повторение: классы эквивалентности обоих окон объединяются, и только что сдвинутое окно удаляется из списка активных. Итерации повторяются, пока список активных окон не опустеет. Пример результата показан на рис. 5.19: трехмерные окна размера 91х91х91 привели к 10 различным средним (меткам). Рис. 5.19. Слева: цветное изображение HowMany. Справа: результат сегментации этого изображения с применением трехмерного пространства признаков RGB, разбитого на окна 91х91><91 с помощью описанного выше алгоритма без кластеризации финальных средних Конечный результат можно подвергнуть постобработке, например путем кластеризации 4- или 8-связных финальных средних и объединения классов эквивалентности окон, отнесенных к этим средним. Алгоритм можно упростить, объединив случаи 2 и 3; в обоих случаях новое среднее оказывается в уже занятой позиции - с одинаковыми последствиями. Временная сложность этого алгоритма уменьшается благодаря «блочной структуре» классов эквивалентности в пространстве признаков и
250 ♦ Глава 5. Сегментация изображений аппроксимацией допустимых перемещений: возможными позициями средних считаются только узлы сетки. Алгоритм сдвига среднего при рассмотрении отдельных векторов в пространстве признаков. Теперь будем рассматривать сдвиги отдельных векторов в пространстве признаков, но по-прежнему будем считать, что вектор и вычисленное среднее может располагаться только в узлах регулярной сетки. Для этого выберем какую-нибудь ядерную функцию радиуса г > 0; в силу дискретной аппроксимации пространства признаков г должно быть больше 1, и чем больше значение г, тем дальше может перемещаться среднее, но при этом возрастает временная сложность. Мы объявляем все ненулевые векторы в пространстве признаков активными средними; начальный класс эквивалентности каждого вектора содержит только его собственную начальную позицию. Далее начинается итеративная процедура сдвига средних. На каждой итерации мы перемещаем каждое активное среднее и в позицию нового среднего, используя кратности векторов признаков в окрестности и, взвешенные с помощью выбранной ядерной функции. Эта операция соответствует сдвигу среднего в формуле (5.19). Полученное значение округляется до ближайшего узла сетки в пространстве признаков. Возможно два случая: 1) вновь вычисленное среднее совпадает с предыдущим. Имеет место остановка. Это среднее является финальным, оно удаляется из списка активных средних; 2) вновь вычисленное среднее совпадает с одним из вычисленных ранее. Имеет место объединение (см. упражнение 5.7). Классы эквивалентности обоих средних объединяются, вновь вычисленное среднее удаляется из списка активных средних. Итерации прекращаются, когда список активных средних становится пустым. Полученный результат, как и раньше, можно подвергнуть постобработке, объединив финальные средние в кластеры. Результаты показаны на рис. 5.20. 5.3. Сегментация изображений как задача оптимизации В этом разделе мы опишем сегментацию как частный случай задачи пометки и решим ее методом распространения доверия. Задача пометки описывается членами ошибки (штрафами за расхождение данных
5.5. Сегментация изображений как задача оптимизации 231 и негладкость), и мы в общих чертах объясним, как можно подойти к решению этой задачи оптимизации. Рис. 5.20. Слева: результат сегментации (26 меток) изображения HowMany на рис. 5.19 с применением трехмерного пространства признаков RGB, алгоритма сдвига среднего для отдельных векторов признаков и гауссова ядра радиуса г= 25. Справа: все то же самое, но с объединением финальных средних, находящихся на расстоянии ^ 50 друг от друга. Количество меток сократилось с 26 до 18 5.3.1. Метки, пометка и минимизация энергии В процессе подготовки к применению алгоритма Хорна-Шанка в разделе 4.2.1 (см. (4.9) и следующий далее текст) мы использовали функции пометки для сопоставления векторов оптического потока (и, v) (т. е. меток) позициям пикселей (х, у). Нахождение попарно непересекающихся сегментов, т. е. сегментация всего множества пикселей П, также является задачей пометки. На рис. 5.2 приведено два примера. Четырех меток достаточно. Когда мы преобразуем заданное изображение в бинарное, мы сопоставляем каждому пикселю метку «белый» или «черный». Для определения участков изображения можно воспользоваться 4-, 8- или К-связностью (см. раздел 3.1); участки созданного бинарного изображения и есть сегменты. Врезка 5.6 (теорема о четырех красках). Примерно в середине XIX века была выдвинута гипотеза о том, что любое разбиение плоскости на связные области, называемое картой, можно раскрасить четырьмя разными цветами,так что любые две области с общим участком границы (т. е. имеющие более одной общей точки) будут раскрашены в разные цвета. В 1976 г. эта гипотеза, получившая название «теорема о четырех красках», была доказана математиком из США К.Аппелем (1932-2013) и уроженцем Германии В.Хакеном (род. в 1928 г.).
252 ♦ Глава 5. Сегментация изображений Преобразуя заданное изображение в карту цветов, мы сопоставляем каждому пикселю его цвет в качестве метки. И снова 4-, 8- или iC-связные участки созданной карты цветов определяют сегменты. Согласно теореме о четырех красках, для визуализации любой сегментации изображения достаточно всего четырех цветов. Общий подход к пометке. Пометка - часто применяемый способ моделирования различных задач компьютерного зрения (например, оптический поток в главе 4, сегментация изображений в этой главе, интегрирование векторных полей в разделе 7.4.3 и сопоставление стереоизображений в главе 8). Множество меток может быть дискретным: L = {/1,Z2,...,U» r*e lLl = m> (5-22) или непрерывным: LcM" для п>1. (5.23) Сегментация изображений или сопоставление стереоизображений - примеры дискретных множеств меток, при вычислении оптического потока используются метки из множества L с I2, а в процессе интегрирования векторного поля - из множества Lcl. В этом разделе мы будем предполагать, что множество меток дискретно и его мощность равна т = \Ь\. Кроме того, мы будем пользоваться нотацией h=fp=f(p) или l=fq=f(q). (5.24) Метки назначаются местам (site), а местами в этой книге могут быть только позиции пикселей. В заданном изображении имеется \П\ = Ncols • Nrows мест, это много, поэтому так важна эффективность вычисления функции пометки f:H^L, (5.25) или, в других обозначениях, /={(р,й):р€ДлДр) = й}. (5.26) Наша цель - вычислить такую функцию пометки /", которая минимизирует (полную) ошибку, или энергию ~ (5.27) реО. ^data \Р<> Jр)~*~ 2ша smooth \Jр > Jq ) qeA(p) где А - отношение смежности между пикселями (см. раздел 3.1): q E А(р)у если позиции пикселей q и р смежные. (5.28)
5.5. Сегментация изображений как задача оптимизации ♦ 255 Если явно не оговорено противное, то мы будем использовать 4-смежность, определение см. в (3.1). Функция ошибки Edata назначает неотрицательный штраф позиции пикселя р, когда сопоставляет ей метку/" £ L. Функция ошибки Esmooth назначает неотрицательный штраф, сравнивая метки / и f, сопоставленные смежным позициям пикселей р и q. Уравнение (5.27) описывает модель для задачи оптимизации, характеризуемой локальными взаимодействиями вдоль границ между соседними пикселями. Это пример модели марковского случайного поля (МСП). В этом разделе мы применим метод распространения доверия для приближенного решения этой задачи. Врезка 5.7 (Марков, Байес, Гиббс и случайные поля). Русский математик А. А. Марков (1856-1922) изучал случайные процессы, в которых взаимодействие нескольких случайных величин может быть смоделировано неориентированным графом. Сейчас такие модели называют марковскими случайными полями. Если граф модели ориентированный и ациклический, то мы имеем байесовскую сеть, названную в честь английского математика Т. Байеса (1701-1761). Если допустимы только строго положительные случайные величины, то МСП называется гиббсовским случайным полем в честь американского ученого Дж.У. Гиббса (1839-1903). Функция Edata - это член данных, а функция Esmooth - член гладкости, непрерывности, или соседства полной энергии Е. Говоря неформально, Edata(p, f) = 0 означает, что метка f «идеальна» для позиции пикселя р. Функция Esmoo[h определяет решение, в котором предпочтение априорно отдается одинаковым меткам в смежных пикселях. Это критически важный аспект проектирования: сегменты разделены краями (где метки просто необходимо изменить), и мы не можем штрафовать такие изменения слишком сильно, если хотим сохранить их возможность. Чтобы решить задачу пометки, мы должны сопоставить каждому месту в П метку из множества L. Если множество меток дискретно и \Ь\ = т, то всего имеется т1а{ возможных функций пометки. Руководствуясь теоремой о четырех красках, мы можем сократить их количество до 4|П|. Но и это число очень велико. Выбрать пометку, которая доставляла бы (точный) минимум функции ошибки (5.27), - трудная задача. В качестве компромисса мы можем задаться целью получить приблизительно минимальное решение. Экстремальный выбор члена данных или гладкости дает тривиальные оптимальные решения уравнения (5.27). Например, если штраф за не-
254 ♦ Глава 5. Сегментация изображений гладкость очень велик, то оптимальной будет постоянная функция пометки. С другой стороны, если взять член гладкости близким к нулю, то в результате получится член данных, определенный отдельно в каждом пикселе, и этот случай оптимизировать тоже несложно. Если член данных или гладкости доминирует, то задача оптимизации упрощается. Наблюдение 5.3. Вычислительная сложность нахождения оптимального решения уравнения МСП (5.27) зависит от выбранных членов функции ошибки. 5.3.2. Примеры членов данных и гладкости В контексте вычисления оптического потока мы рассматривали примеры членов данных (4.9) и (4.58) и членов гладкости (4.10) и (4.59). Примеры членов данных. Сначала определимся с количеством т > 2 меток для пометки различных сегментов. Сегментов может быть и больше т, потому что одну и ту же метку /. можно использовать для пометки нескольких сегментов, не имеющих общей границы. Сегменты, помечаемые одной и той же меткой, можно определить с помощью некоторого отношения похожести данных, например сходимости алгоритма сдвига средних к одному и тому же пику в пространстве признаков. Пример 5.6 (член данных, основанный на случайных начальных пикселях). Мы случайным образом выбираем т пикселей заданного скалярного изображения/и вычисляем среднее и стандартное отклонение в их окрестностях размера 5Х5 (к примеру). В результате получаются трехмерные векторы признаков и. = [/(*., у), ц., ст.] для 1 < / < т. Эти пиксели рассматриваются как начальные значения в т классах признаков, которые должны быть помечены т метками от /, до / . 1 " т Рассмотрим функцию f =1в позиции пикселя р. Определим EjataiPJi) = \\и>-ир\\2 = ХК* -Up,k)\ (5.29) если используется норма L2, п EdataiP^) = \^i-^P\=^\UUk-UpX (5-30) к=\ если используется норма Lx (менее чувствительная к выбросам, чем L2), или \2 E<hlAP,li) = x4»i,»r) = i(U'J' "М> , (5.31) к=\ UUk + Up,k если используется критерий х2 (в общем случае еще менее чувствительный к выбросам; х2 не является метрикой, т. к. не удовлетворяет неравенству тре-
5.5. Сегментация изображений как задача оптимизации ♦ 255 угольника). Здесь и - вектор признаков, определяемый средним и стандартным отклонением в окрестности пикселя р размера 5х5. Начальные значения можно сначала проверить на дисперсию, несколько раз произведя случайную выборку, а затем остановиться на том множестве, для которого дисперсия максимальна. Размер окрестности и состав признаков также можно варьировать. Пример 5.7 (член данных, основанный на пиках в пространстве признаков). Пространство признаков изображения представляет собой п-мерную гистограмму, определенную значениями п-мерных признаков и во всех пикселях, принадлежащих П. Уровни яркости определяют только обычную одномерную гистограмму, обсуждавшуюся в разделе 1.1.2. Двумерные признаки (например, локальные среднее и стандартное отклонение) определяют двумерные гистограммы типа той, что показана на рис. 5.12. Мы выбираем т локальных пиков в пространстве признаков. Чтобы найти их, мы можем начать с т случайных векторов признаков и применить к ним алгоритм сдвига среднего, тогда будет найдено < т пиков и. в пространстве признаков, каждому из которых сопоставляется метка /.. Затем член данных Edata определяется, как в примере 5.6. Подход к выбору начальных значений, предложенный в примере 5.7, дает более осмысленную сегментацию, чем в примере 5.6, но занимает больше времени. Можно даже сначала выполнить сегментацию методом сдвига среднего целиком, а затем использовать те т из найденных пиков, к которым отнесено больше пикселей, чем к остальным. См. упражнение 5.8. Примеры членов гладкости. Будем рассматривать член гладкости, определяемый симметричной функцией с одним аргументом: smooth^ ' smooth^ ' smooth^ '', \ ' / где /, h G L - метки. Члены гладкости с двумя аргументами Esmooth(l, h) - более общий случай, а включение зависимостей от позиции пикселя Esmooth(P> <?; h h) - еще более общий. Врезка 5.8 (истории модели Поттса). Эта модель была предложена австралийским математиком Р. Б. Поттсом (1925-2005) в докторской диссертации 1951 г., посвященной изучению моделей Изинга. Пример 5.8 (модель Поттса). В этой модели отсутствие непрерывности между метками штрафуется равномерно, в расчет принимается только равенство или неравенство меток:
256 ♦ Глава 5. Сегментация изображений Го если а = О [с в противном случае где с > 0 - константа. Эта простая модель особенно хороша, если векторы признаков действительно имеют небольшую дисперсию внутри участков изображения, а значительные разрывы встречаются только на краях участков. Пример 5.9 (линейная функция стоимости). Линейная функция стоимости определяется следующим образом: *—О - Ъ = ^00» = Ь -1/ - Л| = Ь -14, (5.34) где Ъ > О определяет скорость возрастания стоимости. В случае усеченной линейной функции задается еще константа усечения с>0и Esmooth(l ~ k) = Esmoot№ = ™п{Ь ' l/ " К С) = т1П(Ь ' М, <} (5.35) (т. е. стоимость перестает возрастать, если разность оказывается больше с). Оба случая - линейный и усеченный линейный - показаны на рис. 5.21. Рис. 5.21. Слева: линейная функция стоимости. Справа: усеченная линейная функция стоимости В общем случае усечение представляет баланс между корректным переходом к другой метке (путем усечения штрафующей функции) и шумом или незначительными вариациями, недостаточными для изменения метки (в линейной части графика). Изредка встречающиеся различия в метках, не превышающие константы усечения с, считаются шумом и штрафуются (тем больше, чем больше разность меток). Пример 5.10 (квадратичная функция стоимости). Возможна квадратичная (без ограничений, формула опущена) или усеченная квадратичная функция стоимости *,*»«*(' - Л) - Esmooth(a) = mm{b • (/ - h)\ с] = mm{b • а\ с). (5.36) Положительные вещественные константы Ъ и с определяют коэффициент наклона и усечение соответственно. Наблюдение 5.4. Члены данных специально проектируются под задачу, например вычисление оптического потока или сегментация изображения, тогда как члены гладкости (обычно) имеют общий характер.
5.3. Сегментация изображений как задача оптимизации ♦ 257 5.3.3. Передача сообщений Алгоритм распространения доверия (РД) передает сообщения (доверие) в локальной окрестности, определяемой неориентированным графом соответствующего МСП. Мы предполагаем отношение 4-смеж- ности на сетке изображения. Обновления в результате передачи сообщения производятся итеративно (возможно, вы уже знакомы с такой стратегией передачи сообщений по теории клеточных автоматов); сообщения передаются параллельно от помеченного пикселя к четырем 4-смежным с ним пикселям. См. рис. 5.22. Рис. 5.22. Центральный пиксель получает сообщения от смежных пикселей, например р, и этот процесс одинаков для всех пикселей изображения. На следующей итерации центральный пиксель g получает от смежных пикселей сообщения, включающие все сообщения, которые пиксели (в частности, р) получили на предыдущей итерации Неформальное описание. Тонкие черные стрелки на рис. 5.22 обозначают направления передачи сообщений. Например (слева), пиксель р находится слева от пикселя q, и пиксель р посылает сообщение пикселю q на первой итерации. Сообщение от пикселя р уже содержит сообщения, полученные от его соседей (справа), на всех последующих итерациях. В пикселе q передача сообщений производится одновременно всем четырем 4-смежным пикселям. На одной итерации каждый помеченный пиксель графа смежности вычисляет свое сообщение, основываясь на информации, которой он располагал в конце предыдущей итерации, и посылает это новое сообщение всем смежным с ним пикселям одновременно. Неформально говоря, чем больше штраф Edata(p, l), тем «труднее» уменьшить стоимость метки / в пикселе р с помощью сообщений, посланных смежными пикселями. «Влияние» смежных пикселей убывает при возрастании стоимости конкретной метки в данном пикселе. Формальное описание. Каждое сообщение - это функция, которая отображает упорядоченное дискретное множество меток L в одномерный массив длины т = \Ь\ неотрицательных вещественных чисел, называемых значениями сообщения.
258 ♦ Глава 5. Сегментация изображений Обозначим т1 ^ такое сообщение, т. е. массив длины т, содержащий значения для меток / 6 L, который посылается из узла р в смежный узел q на итерации t. Для / е L введем в рассмотрение уравнение обновления сообщения ( \ и«о=™ Я*.(Р.Л)+ *„«.(*-/)+ I <ХЩ (5.37) s<=A(p)\q J где / обозначает одну из возможных меток в q, a h пробегает L и представляет возможные метки в р. Мы собираем в q все сообщения от смежных пикселей р и комбинируем их со стоимостью данных для метки / в q. Тем самым в пикселе q определен одномерный массив стоимостей E^(qJ)+ I m'p^(.l), (S.38) peA(q) ассоциированных с назначением метки / пикселю q в момент t. В стоимость входит независимый от времени член данных Edata(q, l) и сумма всех \А\ полученных значений сообщений для / 6 L в момент t. Неформальная интерпретация. Понимание формул (5.37) и (5.38) - ключ к пониманию алгоритма распространения доверия. Мы дадим их неформальную интерпретацию. Мы находимся в узле q. Узел q запрашивает у смежных узлов, например, р, их мнение об уместности выбора метки / в q. В ответ на такой запрос узел р просматривает все метки h и сообщает q наименьшую возможную стоимость в случае, если q решит выбрать /. Член гладкости определяет штраф в случае, когда q выбирает /, а р выбирает h. С меткой h ассоциирована также стоимость Edata(p, h) в узле р. Наконец, р располагает информацией, полученной в момент t - 1 от всех смежных с ним узлов, кроме q, поскольку q не может повлиять на мнение р о метке /. Таким же образом узел q собирает в момент t мнения обо всех возможных метках /. Для каждой метки / он опрашивает все смежные узлы. В выражении (5.38) мы суммируем мнение всех смежных узлов об уместности выбора метки / в узле q. В этот момент мы также должны принять во внимание стоимость данных, ассоциированную с выбором / в q. Стоимость гладкости уже была учтена в сообщениях, передаваемых от р к q. Доски сообщений. Вместо передачи одномерных массивов длины т = \Ц удобнее использовать т досок сообщений размера Ncols*Nrows, по
5.5. Сегментация изображений как задача оптимизации ♦ 259 одной доске для каждой метки (см. рис. 5.23). Обновление сообщений в этих досках производится так же, как было описано выше и показано на рис. 5.22. Одномерные векторы длины т во всех позициях пикселей просто рассматриваются как стек т скалярных массивов, по одному для каждой метки / б L. /,/2/3/4 • • • 1т Изображение Рис. 5.23. т досок сообщений, по одной для каждой метки, и пиксель входного изображения. Стоимость с. находится в /*-й доске сообщений для метки /.; метка /в конечном итоге определяет значение, вычисленное в данном пикселе, равное минимуму значений с. по всем с(. для 1$ i $ т 5.3.4. Алгоритм распространения доверия Мы опишем общий алгоритм распространения доверия в случае, когда множество пикселей П и есть множество мест (или узлов), подлежащих пометке. Итеративный процесс состоит из следующих частей: инициализация, процедура обновления (при переходе от (t - 1)-й итерации к t-й) и критерий остановки. Инициализация. Мы инициализируем все т досок сообщений во всех \П\ позициях, отправляя начальные сообщения ml^(l) = mm{Edaa(p,h) + E_oolh(h-l)), (5.39) что дает начальные стоимости E*.(q,D+ I Кч(0 (5-4°) peA(q) в пикселе q £ П на доске сообщений /.
240 ♦ Глава 5. Сегментация изображений Итерации алгоритма РД. На итерации t > 1 по формуле (5.37) вычисляются сообщения т1 ^ (/), которые затем объединяются, чтобы обновить стоимость во всех пикселях q е П и для любой из т досок сообщений / по формуле (5.38). Прежде чем обсуждать эти итерации, перепишем уравнение обновления сообщений (5.37) следующим образом: ^Uq(0 = rmn{Esmooth(h-l) + HpJh)}, (5.41) где Hp,q{h) = Edata(p,h)+ X KUQ- <5-42) seA(p)\{q} Прямолинейное вычисление Н (для всех h £ L) занимает время 0(т2) в предположении, что вычисление Edata(p, h) занимает постоянное время. Если использовать модель Поттса для члена гладкости, то уравнение (5.41) упрощается: <-(/)=чй1{я«^адя«(*>+с}- (5-43) Мы вычисляем минимум по всем h и сравниваем его с Я (/). Если использовать неусеченную линейную модель для члена гладкости, то уравнение (5.41) принимает вид <^0 = ™?{b-\h-l\ + Hp,q(h)), (5.44) где Ъ - параметр, определяющий линейную стоимость. Рассмотрим пример. Пример 5.11 (неусеченная линейная модель члена гладкости). Пусть L = {0,1,2,3},Ь = 1,и ЯР,Я = 2>5> HJV = 1> HJ2) = l,5, Ям(3) = 0 для заданной комбинации смежных пикселей р и q. Эти данные показаны на рис. 5.24 для неусеченного линейного случая. Значение Н (/) определяет вертикальный сдвиг линейной функции стоимости (уголка) в метке /.
5.5. Сегментация изображений как задача оптимизации ♦ 241 Рис. 5.24. Пример четырех кусочно-линейных функций. Минимумы берутся в красных точках. На зеленых линиях нет минимумов. Синие линии образуют нижнюю огибающую Выполним вычисления по формуле (5.44): /и^(0) = min{0 + 2.5,1 + 1,2 + 1.5, 3 + 0} = min{2.5,2,3.5,3} = 2; m^(l) = min{l + 2.5,0+1,1 + 1.5,2 + 0} = min{3.5,1,2.5,2} = 1; /n^(2) = min{2 + 2.5,1 + 1,0+ 1.5,1 + 0} = min{4.5,2,1.5,1}=1; m^(3) = min{3 + 2.5,2 + 1,1 + 1.5,0 + 0} = min{5.5, 3,2.5,0} = 0. Вычисленные минимумы показаны на рис. 5.24 красными точками. Заметим, что на зеленых линиях нет ни одного минимума. Все минимумы расположены на нижней огибающей, нарисованной синим цветом. Задачу минимизации (5.44) (в неусеченном линейном случае) можно сформулировать следующим образом: вычислить нижнюю огибающую т раскрывающихся вверх уголков с одинаковым коэффициентом наклона, определяемым параметром Ъ. Вершины уголков расположены в точках (Л, Hpq{h)). См. рис. 5.25. Тогда минимум для метки h просто лежит на нижней огибающей, что и показано красными точками. В усеченной линейной модели схема аналогична. Обновления сообщений можно вычислить за время 0(т); вычисление нижней огибающей семейства парабол мы обсуждали в разделе 3.2.4 в контексте общего дистанционного преобразования на евклидовой плоскости.
242 ♦ Глава 5. Сегментация изображений npqih) 4 V О 1 2 3 ... тЛ Рис. 5.25. Общий случай: т меток, одним из которых соответствуют минимумы (черные линии), а другим - нет (зеленые линии) Если использовать для члена гладкости квадратичную модель, то уравнение (5.41) принимает вид т'р^(1) = гтп(Ь(И-1)2+Нрд(к)). (5.45) И в этот раз минимумы располагаются на нижней огибающей парабол, определенных квадратичными штрафными функциями (см. рис. 5.26). Hpq(h) т-\ Рис. 5.26. Нижняя огибающая семейства парабол Вершины парабол находятся в точках (h, H (/?)), и это в точности соответствует входным данным для евклидова дистанционного преобразования (EDT); вычисление нижних огибающих является частью алгоритма EDT. Для их вычисления необходимо время 0(т), см. раздел 3.2.4. Прекращение итераций и результаты алгоритма. Критерий остановки говорит алгоритму РД, что необходимо остановиться после заранее заданного количества итераций. Другие варианты, например дождаться, когда среднее значение всех изменений на всех досках со-
5.3. Сегментация изображений как задача оптимизации ♦ 245 общений при переходе от итерации t - 1 к итерации t станет меньше заранее заданного порога т, на практике не слишком полезны, поскольку не гарантируют сходимости. В момент остановки t0 в каждой позиции пикселя р имеется т значений стоимости (с{°,..., с'°) в точке р на т досках сообщений, где с? - стоимость для метки /гдля 1 < i < т. Возвращаемое алгоритмом значение в позиции р равно /* = /., где j = arg min cj° (5.46) \<i<m в предположении, что минимум единственный. Если для нескольких меток минимальная стоимость одинакова, то мы принимаем решение с учетом метки в пикселе, 4-смежном с р. Как улучшить временную сложность? Первый способ - так называемый метод красного и черного. Множество позиций пикселей П разбивается на черные и красные. На t-й итерации посылаются только сообщения от черных пикселей смежным с ними красным; исходя из полученных сообщений, на (t + 1)-й итерации красные пиксели посылают сообщения черным. На рис. 5.27 показано одно из возможных разбиений П. Рис. 5.27. Шахматное разбиение П на красные и черные позиции пикселей Второй способ ускорить работу - воспользоваться измельчаемым (coarse-to-fine), или пирамидальным, алгоритмом РД. Измельчаемый РД не только позволяет сократить время вычислений, но и дает более надежные результаты. Обратимся к регулярной пирамиде изображений, описанной в разделе 2.2.2. Пиксели, принадлежащие окну 2x2 на одном уровне пирамиды, являются смежными с одним пикселем на следующем уровне (тем, который порождается на основе этого окна). Таким образом, отношение смежности А, используемое в алгоритме РД, распространяется на всю
244 ♦ Глава 5. Сегментация изображений пирамиду. Мы ограничим количество уровней пирамиды (скажем, пятью). При использовании такого отношения смежности в пирамиде расстояния между пикселями нижнего уровня уменьшаются, что ускоряет распространение сообщений. Врезка 5.9 (Якоби и метод релаксации Гаусса-Зейделя). Рассмотрим систему N линейных уравнений Ах = Ь, в которой все диагональные элементы А отличны от нуля. Без ограничения общности можно считать, что каждое уравнение нормировано, так что соответствующий ему диагональный элемент равен 1. Представим А в виде А = I - L - U, где квадратные матрицы L и U состоят из элементов А, расположенных соответственно ниже и выше главной диагонали и взятых со знаком минус. Тогда систему N уравнений можно записать в виде х = (L + U)x + b. К. Г. Я. Якоби (1804-1851) предложил итеративный метод решения этих линейных уравнений относительно х, идея которого заключается в следующем: берем произвольную начальную оценку х0 и вычисляем последовательность векторов *** = (L + "К + Ь. При определенных условиях последовательность векторов х^ сходится к решению х при любой начальной оценке х0. Например, если Sw \a.\ < 1 для всех / = 1,..., А/, то метод Якоби сходится. Для применения метода Якоби необходимо выделить память для хранения двух последовательных приближений к решению. В 1823 г.Гаусс (см. врезку 2.4) в частном письме к своему ученику К. Л. Герлин- гу (1788-1864) описал модификацию метода Якоби, а доказательство было опубликовано в 1874 г. П. Л. Фон Зейделем (1821-1896). В методе Гаусса- Зейделя требуется хранить только один вектор х - всякий раз как элемент обновляется, новое значение замещает предыдущее. Этот алгоритм можно представить в виде х = Lx + Ux + b В первой строке L находятся только нули, поэтому можно вычислить первый элементхк+1,а за ним последовательно элементы 2, 3,..., А/. Теперь рассмотрим матрицы А с ненулевыми элементами такие, что х можно разбить на красный и черный подвекторы,так что каждый красный элемент соединен (посредством А) только с черными элементами, а каждый черный элемент - только с красными (как на рис. 5.27). В работе ([D. W. Young, Iterative methods for solving partial difference equations of elliptic type. Trans. American Math. Society, vol. 76,1954, p. 92-111] доказано, что для таких матриц А метод Гаус- са-Зейделя сходится тогда и только тогда, когда сходится метод Якоби, и его асимптотическая скорость сходимости в два раза выше, чем у метода Якоби.
5.5. Сегментация изображений как задача оптимизации ♦ 245 Что необходимо задать в алгоритме РД? Мы должны выбрать член гладкости, например, из трех вариантов: модель Поттса, усеченная линейная или усеченная квадратичная) - и задать несколько параметров. Необходимо задать отношение смежности; чаще всего используется 4-смежность или ее распространение на пирамиду. Наконец, конкретное приложение (вычисление оптического потока, сегментация изображений и т. п.) диктует выбор члена данных. Задав все параметры, мы можем начать итерации, решив предварительно, по какому условию останавливать работу. 5.3.5. Распространение доверия в задаче о сегментации изображений В примерах 5.6 и 5.7 мы предложили два вида членов данных. В обоих случаях выбирались начальные векторы признаков и. для т меток сегментов и затем вычислялись как минимум т связных участков (сегментов); на самом деле каждой метке может соответствовать несколько участков. Существует много других способов инициализировать векторы признаков и. На рис. 5.28 показано применение пирамидального метода РД (пять уровней пирамиды, самый нижний имеет разрешение 1296х866) без обновления начальных значений в процессе работы алгоритма. Если начальные векторы и., выбранные, например, как в примерах 5.6 и 5.7, не изменяются в ходе итеративного процесса, то гибкость этого подхода оказывается ограниченной. Наблюдение 5.5. Полезно обновлять начальные значения и\ на каждой итерации алгоритма РД. Чтобы выполнить обновление, мы рассматриваем результаты в конце t-й итерации алгоритма РД. В этот момент в точке р алгоритм вырабатывает значение f =/.для j = arg min c\ • (5.47) \<i<m Одинаковые метки определяют связные участки изображения - сегменты в момент t. Опуская технические детали, скажем лишь, что основная идея состоит в том, чтобы выбрать т наибольших сегментов (по площади, т. е. по количеству пикселей), переназначить т меток этим т сегментам и взять их центроиды в качестве новых значений Щ на следующей итерации. См. рис. 5.29.
246 ♦ Глава 5. Сегментация изображений Рис. 5.28. Слева вверху: исходное цветное изображение Spring, на котором запечатлен праздник весны в Миннесотском университете, Миннеаполис. Справа вверху: результат сегментации после пяти итераций пирамидального метода РД с членом гладкости Поттса с с= 5 и членом данных,описанным в примере 5.6, с нормой /_2. Слева внизу: после 10 итераций,также с= 5. Справа внизу: после 10 итераций с с = 10 Рис. 5.29. Результаты для изображения Spring на рис. 5.28. Слева: результат сегментации после пяти итераций пирамидального алгоритма РД с членом гладкости Поттса с с = 5 и членом данных из примера 5.6. Но на этот раз используется критерий х2 и обновление центроидов и*,. Справа: результат применения того же алгоритма после 10 итераций с с = 10 Поскольку метки сегментов нужны только для идентификации и никак не характеризуют свойства сегментов, для этого конкретного применения алгоритма РД разумным кажется только член гладкости
5.4. Сегментация видео и прослеживание сегментов ♦ 247 Поттса. В качестве альтернативы можно было бы взять член гладкости, который штрафует за сходство данных, представленных смежными метками. Это означает, что разные метки должны действительно отражать различие в данных изображения. Наблюдение 5.6. Заменять член гладкости Поттса чем-то другим в сегментации методом РД, похоже, имеет смысл, только если в член гладкости включаются характеристики данных. Это наблюдение сформулировано как приглашение к исследованию. См. также упражнение 5.10. 5.4. Сегментация видео и прослеживание сегментов При сегментации видео можно воспользоваться схожестью последовательных кадров. Схожесть можно определять с помощью: 1) согласованности признаков изображения. Это означает, что у соответственных сегментов должны быть схожие статистики признаков; 2) согласованности формы. Это означает, что у соответственных сегментов должна быть приблизительно одинаковая форма (тут возможны уточнения: требования инвариантности относительно масштаба, вращения и т. д.); 3) пространственной согласованности. Это означает, что соответственные сегменты расположены приблизительно в одном месте (вследствие медленного перемещения, обычно это сопровождается также приблизительно одинаковым размером и даже формой); 4) временной согласованности. Это означает, что соответственные сегменты можно проследить благодаря моделированию движения камеры и (или) объектов на сцене (возможно, в предположении сходства размера или формы). В этом разделе мы обсудим согласованность признаков и временную согласованность. Мы поговорим об алгоритме сдвига среднего, в котором используется согласованность признаков в видеоданных. Что касается согласованности формы, то могут оказаться полезны признаки формы, о которых шла речь в разделе 3.2. К пространственной согласованности имеют отношение моменты и, в особенности, центроиды (см. раздел 3.3.2).
248 ♦ Глава 5. Сегментация изображений 5.4.1. Использование согласованности признаков изображений Сегменты должны оставаться устойчивыми на протяжении времени и не должны спонтанно появляться и исчезать. Рассмотренный ранее метод сдвига среднего для сегментации статических изображений можно обобщить на видео. Если для пометки сегментов используются цвета, то они должны оставаться примерно одинаковыми, а не изменяться, как на рис. 5.30. Рис. 5.30. Слева: кадр из последовательности tennisball. В середине и справа: пометка сегментов цветами в качестве меток; видна несогласованность пометки в кадрах t и f + 1. К обоим кадрам алгоритм сдвига среднего применялся по отдельности Сопоставление локальных пиков. Мы будем рассматривать л-мерные векторы признаков изображения и в \П\ пикселях каждого кадра. Например, для цветных изображений п = Ъ и u = (R,G, В). Мы предполагаем, что локальные пики векторов признаков и в сегментах на последовательных кадрах располагаются примерно в одних и тех же точках изображения. Следовательно, мы можем расширить п-мерное пространство признаков до (п + 2)-мерного, включив в состав признаков координаты а: и у, но рассматривая пространственные координаты и значения как разные компоненты: us = (а:, у) и uv = u соответственно. Комбинированные векторы uc(t) = [us(t), uv(t)] теперь являются элементами (п + 2)-мерного пространства признаков для кадра L Для краткости снова воспользуемся обозначениями ^i,s ~ 2 ' иД'+1)-М0|[ и ^>v=4-|ttv(/+i)-u/>v(o|'» (5-48) V предполагая, что профиль ядра ks для пространственной компоненты имеет радиус rs > 0, а профиль ядра kv для компоненты значения имеет радиус г, > 0. Вначале кадр 1 сегментируется методом сдвига среднего как статическое изображение. Далее нужно сегментировать кадр t + 1, основываясь на результатах сегментации кадра t. Кадр t уже обработан, мы имеем
5.4. Сегментация видео и прослеживание сегментов ♦ 249 значения u.(t) для i = 1,..., т, являющиеся комбинированными векторами признаков кадра t Формулу (5.19) сдвига среднего для статических изображений можно обобщить на случай следующего кадра: w,M'+1) =^Ь ис^+1)- (5-49) Работа алгоритма сдвига среднего продолжается, пока uc(t + 1) не сойдется к локальному пику, соответствующему значениям признаков в предыдущем кадре, и не будут обработаны все подмножества признаков. Локальный пик в кадре t + 1 сопоставляется с ближайшим локальным пиком в кадре t в предположении, что расстояние между ними действительно мало. В противном случае локальный пик в кадре t + 1 создает новый класс сегментов. Теперь реализуем уравнение (5.49) по аналогии с тем, как мы поступали с уравнением (5.19) для статических изображений. Мы обнаруживаем новый локальный пик, когда процесс сдвига среднего сошелся, т. е. модуль вектора сдвига т (uc(t +1)) оказался ниже порога (например, меньше 100 в случае цветных RGB-изображений). Признаки пикселя заменяются признаками сопоставленного ему локального пика. На рис. 5.31 это показано для кадров последовательности tennis- ball, в которых признаками являют