
- •«Обработка изображений и распознавание образов» Визильтер Юрий Валентинович Методическое пособие-2010
- •Раздел 2. Распознавание образов. 165
- •1.1. Задачи и приложения машинного зрения. Примеры практических приложений.
- •Уровни и методы машинного зрения
- •Растровое изображение Изображение как двумерный массив данных
- •Алгебраические операции над изображениями
- •Физическая природа изображений
- •Изображения различных диапазонов длин волн
- •Изображения различной физической природы
- •Тип пикселя
- •Возможности и особенности системыPisoft
- •Базовые средства просмотра и анализа изображений и видеопоследовательностей
- •Алгебра изображений
- •Геометрические преобразования изображений
- •Устройства оцифровки и ввода изображений
- •Линейки и матрицы, сканеры и камеры
- •Геометрия изображения
- •Цифровые и аналоговые устройства
- •Пространственное разрешение
- •Программное обеспечение
- •Обработка цветных изображений
- •Цветовая модельRgb
- •Цветовая модель hsv
- •Цветовая модель yuv
- •Цветовая сегментация изображения
- •Гистограмма и гистограммная обработка изображений
- •Профиль вдоль линии и анализ профиля
- •Проекция и анализ проекции
- •Бинаризация полутоновых изображений
- •Сегментация многомодальных изображений
- •Выделение и описание областей
- •Выделение связных областей на бинарных изображениях
- •1. Отслеживающие алгоритмы на примере алгоритма обхода контура.
- •2. Сканируюющие алгоритмы.
- •1.3. Фильтрация. Выделение объектов при помощи фильтров
- •Оконная фильтрация изображений в пространственной области
- •Фильтрация бинарных изображений Модель шума «соль и перец»
- •Структура оконного фильтра
- •Логическая фильтрация помех
- •Бинарная медианная фильтрация
- •Бинарная ранговая фильтрация
- •Взвешенные ранговые фильтры
- •Анизотропная фильтрация
- •Расширение-сжатие (простая морфология)
- •Стирание бахромы
- •Нелинейная фильтрация полутоновых изображений
- •Ранговая оконная фильтрация
- •Минимаксная фильтрация
- •Задача выделения объектов интереса
- •Бинарные фильтры для выделения объектов
- •Метод нормализации фона
- •Скользящее среднее в окне
- •Гауссовская фильтрация
- •Преобразование Фурье. Линейная фильтрация в частотной области
- •Преобразование Фурье
- •Комплексное представление преобразования Фурье
- •Быстрое преобразование Фурье
- •Двумерное преобразование Фурье
- •Свертка с использованием преобразования Фурье
- •Фильтрация изображений в частотной области
- •Вейвлет-анализ
- •Пирамида изображений
- •Вейвлет-преобразование
- •Операторы вычисления производных
- •Операторы вычисления векторов градиентов
- •Операторы Марра и Лапласа
- •Постобработка контурного изображения Локализация края
- •Утончение контура
- •Сегментация полутоновых изображений
- •Пороговая и мультипороговая сегментация
- •Методы слияния, разбиения и слияния/разбиения областей
- •Способы описания выделенных областей
- •Текстурные признаки
- •1.6.Морфологические методы анализа сцен (по ю.П. Пытьеву) Методы обнаружения объектов, заданных эталонами
- •Согласованная фильтрация.
- •Корреляционное обнаружение.
- •Морфологический подход ю.П. Пытьева.
- •Форма изображения как инвариант преобразований изображений, отвечающих вариациям условий регистрации
- •Сравнение изображений по форме
- •Выделение отличий изображений по форме
- •Обнаружение объекта по его изображению и оценка его координат
- •*Морфология на базе кусочно-линейной интерполяции
- •Преобразование Хафа для поиска прямых
- •*Различные способы параметризации прямых
- •Преобразование Хафа для поиска окружностей
- •Анализ аккумулятора при поиске геометрических примитивов
- •Обобщенное преобразование Хафа
- •*Специализированная процедура голосования для поиска эллипсов
- •*Рекуррентное преобразование Хафа в скользящем окне
- •1.8.Математическая морфология (по ж. Серра)
- •Морфологические операции на бинарных изображениях
- •Морфологические операции на полутоновых изображениях
- •Морфологическое выделение «черт» и объектов
- •Морфологический спектр
- •Морфологические скелеты. Непрерывная бинарная морфология Непрерывная бинарная морфология
- •Непрерывное гранично-скелетное представление изображения
- •Обработка и использование скелета
- •*Обобщенные скелетные представления бинарных фигур
- •Алгоритмы утончения дискретного бинарного изображения
- •*Регуляризация скелетов
- •Типы нерегулярностей скелета
- •Устранение нерегулярностей
- •Регуляризация скелета по Тихонову
- •*Селективные морфологии
- •1.9. Анализ движения. Выделение движущихся объектов. Разность кадров. Вычитание фона. Анализ оптических потоков. Слежение за движущимися объектами. Корреляционное слежение.
- •Обучение с учителем. Детерминированные методы, основанные на «близости». Линейные решающие правила. Метод построения эталонов. Метод ближайшего соседа. Методkближайших соседей.
- •Линейные решающие правила
- •Метод построения эталонов
- •Методы ближайших соседей
- •Параметрические и непараметрические методы
- •Дискриминантные и моделирующие методы обучения
- •Способность распознавателя к обобщению. Регуляризация.
- •Байесовская теория решений. Случай двух классов. Классификаторы, разделяющие функции и поверхности решений. Вероятности ошибок. Разделяющие функции для случая нормальной плотности.
- •Дискриминантный анализ. Линейный дискриминант Фишера. Персептронная функция критерия. Линейный дискриминантный анализ (lda,дискриминант Фишера)
- •Персептрон Розенблатта
- •Анализ свидетельств
- •Байесовское объединение свидетельств
- •Структурное распознавание
- •Автоматизированное конструирование алгоритмов обнаружения объектов на основе преобразований модельных описаний объектов.
- •Нейросетевое распознавание
- •Нейронные сети ассоциативной памяти. Сети Хопфилда.
- •Многослойные персептроны. Оптимизационное обучение. Метод обратного распространения ошибки.
- •Многослойные персептроны. Правило Хебба.
- •*Связь с байесовским распознаванием
- •Сети встречного распространения. Самоорганизующиеся сети.
Выделение и описание областей
В основе многих сложных процедур анализа изображения лежит выделение связных областей или связных контуров, выполняемое на первом этапе анализа изображения. Связная область изображения это, с одной стороны, тип объекта, все еще очень близко связанный с растровым изображением (связная область может быть представлена не только векторным списком, но и соответствующей бинарной растровой «маской»), и в то же время – это уже некая самостоятельная семантическая единица, позволяющая вести дальнейший геометрический, логический, топологический и любой другой анализ изображения.
В данном разделе будут рассмотрены методы выделения связных областей на бинарных и полутоновых изображениях, а также системы яркостно-геометрических признаков, используемых для описания областей изображения.
Выделение связных областей на бинарных изображениях
Соседство и связность на цифровых изображениях
Понятия «соседства» и «связности» тесно связаны с естественной топологией и геометрией дискретного цифрового изображения.
Как мы уже отмечали ранее, каждый пиксел изображения с координатами (x,y) имеет восемьсоседей, то есть примыкающих к нему (граничащихс ним) ближайших пикселов, составляющих прямоугольную окрестность 33 (см. табл. 4.1.2).
@Таблица 4.1.2. Прямоугольная окрестность 33
-
(x–1,y–1)
(x,y–1)
(x+1,y–1)
(x–1,y)
(x,y)
(x+1,y)
(x–1,y+1)
(x,y+1)
(x+1,y+1)
При этом четыре пиксела (соседи по горизонтали и вертикали) являются более близкими соседями и находятся от центрального пиксела окрестности на расстоянии 1. Еще четыре пиксела (соседи по диагонали) являются менее близкими соседями и находятся от центрального пиксела окрестности на расстоянии 2. Соответственно в обработке изображений рассматриваются два вида соседства и два соответствующих им вида связности:
соседство «по кресту» и 4-связность;
соседство «по квадрату» и 8-связность.
Чаще используется отношение 8-связности, при котором считается, что на прямоугольной решетке каждая точка изображения имеет восемь соседей.
Связной областьюизображения считается такая его область (множество точек), в которой:
все точки области имеют одинаковое значение (яркости или любого другого рассматриваемого признака);
между любыми двумя точками, принадлежащими данной области, существует непрерывный путь, состоящий из точек, также принадлежащих данной области, и являющихся при этом «соседями» в смысле заданного отношения соседства (8- или 4-связности).
В случае анализа бинарного изображения первое условие означает, что рассматриваются отдельные связные области, из которых состоит «объект» или «фон». Ниже мы также будем рассматривать задачу сегментации полутоновых изображений, в результате которой изображение разбивается на несколько непересекающихся связных областей. В этом случае связность областей понимается в чисто геометрическом (топологическом), а не яркостном смысле.
Рассмотрим теперь два наиболее популярных алгоритма выделения связных областей на бинарных изображениях.
Метод «лесного пожара»
Идея метода «выжигания области» или «метода лесного пожара» заключается в том, что область «поджигается» в одной точке, после чего каждая «подожженная» точка, в свою очередь, «поджигает» всех своих соседей, имеющих ту же яркость. Уже «сгоревшие» точки вторично не «поджигаются». Таким образом, согласно определению связной области, в конце концов все точки связной области окажутся вовлеченными в этот процесс. Рассмотрим программно-алгоритмическую реализацию этой идеи.
Пусть дано изображение IM размера DimXDimY и меточное изображение LAB такого же размера. Массив переменного размера RegionList содержит списки (массивы) точек, принадлежащих областям. Переменная RegionListSize содержит текущий размер массива RegionList. Используется стек точек PSTACK (на стек кладутся координаты каждой новой «подожженной» точки с тем, чтобы в будущем, будучи снятой со стека, она «подожгла», то есть положила на стек координаты всех своих подходящих соседей).
Стековый алгоритм прослеживания связных областей:
Обнулить массив LAB;
RegionListSize:=0;
for J=0 to DIMY–1 do
for I=0 to DIMX–1 do
if (LAB[I,J]=0) then
begin
Увеличить RegionListSize;
LAB[I,J]:=RegionListSize;
POINT:=(I,J);
CURRENT:=IM[I,J];
Добавить_точку(RegionList[RegionListSize],POINT);
Поместить_в_стек(PSTACK,POINT);
while (PSTACK не пуст) do
begin
POINT:=Достать_из_стека(PSTACK);
for K:=POINT.X–1 to POINT.X+1 do
for L:=POINT.Y–1 to POINT.Y+1 do
if (IM[K,L]=CURRENT)and(LAB[K,L]=0) then
begin
LAB[K,L]:=RegionListSize;
POINT:=(K,L);
Добавить_точку
(RegionList[RegionListSize],POINT);
Поместить_в_стек(PSTACK,POINT);
end;
end;
end;
После завершения процедуры «выжигания» список RegionList содержит поточечное описание всех связных областей изображения IM, а на меточном изображении LAB каждая точка изображения промечена номером соответствующей области в списке RegionList.
Двухпроходный алгоритм выделения связных областей
Данный алгоритм также предназначен для выделения 4-связанных или 8-связанных областей. Идея его заключается в том, что единицей просмотра изображения является уже не отдельный пиксел, а связный отрезок строки (сегмент). При этом напервом проходепо изображению вновь обнаруженный связный сегмент помечается либо новой оригинальной меткой – если он ни одним пикселом не касается какого-либо уже помеченного сегмента в предыдущей по ходу анализа строке, либо меткой той области, которой принадлежит граничащий с ним отрезок предыдущей строки. Такой алгоритм построчного просмотра изображения обеспечивает существенно более высокое быстродействие по сравнению с описанным выше «стековым» алгоритмом, однако в процессе пометки сегментов могут возникать так называемыеколлизииили «столкновения» меток. Это происходит в том случае, если отрезок граничит одновременно с несколькими сегментами предыдущей строки, причем эти сегменты принадлежат разным областям (случайV-образных иY-образных фигур). Для устранения таких коллизий используетсявторой проходпо изображению. На втором проходе повторно размечаются те области, для которых на первом проходе были обнаружены коллизии, и занесены в специальнуютаблицу эквивалентностипары индексов областей, подлежащих объединению.
Рассмотрим алгоритмическую реализацию этого метода более подробно.
Первый проход.Просматриваем содержимое изображения R столбец за столбцом и присваиваем ненулевое значение v каждому ненулевому пикселюR(i,j). Величина v выбирается в соответствии с номерами соседних пикселей, где свойство соседства показано на рисунке (соседи вне изображения R не рассматриваются).
Если все соседи – пиксели фона (со значением пикселя равным нулю), R(i,j) присваивается новый (на данный момент), неиспользованный номер.
Если имеется в точности один соседний пиксель с ненулевым номером, присваиваем этот номер пикселю R(i,j).
Если имеется больше, чем один ненулевой пиксель среди соседей, присваиваем номер любого одного из уже пронумерованных пикселей. Если номера любых соседей различаются (столкновение номеров), храним номера пары как равные. Равные пары храним в отдельной структуре данных (таблице эквивалентности).
Второй проход. Все пиксели области пронумерованы в течение первого прохода, но некоторые области имеют пиксели с различными номерами (в результате «столкновения» номеров). Все изображение просматриваем снова, и перенумеровываем пиксели, используя информацию таблицы эквивалентности.
@Рис. 4.1.16. Маски обнаружения областей: слева – в случае 4-х связности, в центре – в случае 8-ми связности, справа – случай «столкновения» номеров
@Рис. 4.1.17. Нахождение объектов в случае 8-связности: (а), (б), (в) – шаги алгоритма. Таблица эквивалентности после шага (б): 2–5, 5–5, 2–4
Данный алгоритм единообразно реализуется и в случае четырёх- и в случае восьмисвязности. Различия заключаются только в способе формирования маски опроса соседей (рис. 4.1.16).
Поскольку оба описанных метода опираются на одно и то же определение связной области, результаты их работы будут, естественно, одинаковы. Пример разметки связных областей на бинарном изображении показан на рис. 4.1.18, 4.1.19. На меточном изображении все пикселы каждый связной области исходного изображения помечены одним и тем же значением – уникальным индексом (номером) данной области.
@Рис. 4.1.18. Исходное бинарное @Рис. 4.1.19. Размеченные связные
изображение области на бинарном изображении
Выделение контуров на бинарных изображениях.
Это задача, двойственная выделению связных областей. При этом считается, что контурная точка области – это любая точка, принадлежащая области, в окрестности которой имеются точки, непринадлежащие данной области.