Визильтер Ю. В., Желтов С. Ю., Князь В. А., Ходарев А. Н., Моржин А. В.
Обработка и анализ цифровых изображений с примерами на LabVIEW IMAQ Vision
Москва, 2008
УДК 621.38 ББК 32.973.26108.2 В41
В41
СОДЕРЖАНИЕ
Визильтер Ю. В., Желтов С. Ю., Князь В. А., Ходарев А. Н., Моржин А. В. Обработка и анализ цифровых изображений с примерами на LabVIEW IMAQ Vision. – М.: ДМК Пресс, 2007. – 464 с. ISBN 5'94074'404'4 Данная книга представляет собой полный учебный курс по тематике ма' шинного зрения и цифровой обработки изображений и одновременно может служить практическим пособием по построению приложений машинного зрения в среде визуального программирования LabVIEW с использованием библиотеки средств обработки и анализа изображений IMAQ Vision. Рас' сматриваются основные аспекты получения, хранения, обработки и анализа цифровых изображений, а также автоматического выделения и распознава' ния на изображениях различного рода объектов. Описываемые методы под' робно иллюстрируются программами и схемами обработки, созданными в LabVIEW на базе IMAQ Vision. Приводятся многочисленные примеры прак' тических приложений машинного и компьютерного зрения в таких областях, как автоматизация измерений и технический контроль, видеонаблюдение, биометрия, обработка документов, медицинские приложения. К изданию прикладывается DVD'ROM, содержащий цветные рисунки из книги, а также 30'дневные версии программных продуктов LabVIEW 8.5, NI Vision Builder for Automated Inspection 3.0 и LabVIEW Vision Development Module 8.5. Книга рассчитана на научных работников, инженеров и студентов техни' ческих ВУЗов, интересующихся тематикой машинного зрения и програм' мированием в среде LabVIEW. УДК 621.38 ББК 32.973.26108.2 Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения вла' дельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответ' ственности за возможные ошибки, связанные с использованием книги.
ISBN 5'94074'404'4
© Визильтер Ю. В., Желтов С. Ю., Князь В. А., Ходарев А. Н., Моржин А. В., 2007 © Оформление, ДМК Пресс, 2007
Введение .................................................................................................. 10
1 Машинное зрение, LabVIEW и NI Vision ................................................ 14 1.1. Проблематика машинного зрения................................................. 14 1.1.1. Задачи машинного зрения ........................................................... 15 1.1.2. Уровни и методы машинного зрения ...........................................16 1.1.3. Сопряженные технические дисциплины ...................................... 17 1.1.4. Требования к алгоритмам машинного зрения ............................. 19 1.1.5. Роль специальных программных средств в разработке приложений машинного зрения ............................................................ 22
1.2. Знакомство с LabVIEW .................................................................... 24 1.3. Знакомство с NI Vision .................................................................... 44 1.3.1. Платформа NI Vision: захват, обработка и анализ изображений в LabVIEW .............................................................................................. 44 1.3.2. Функции NI Vision ........................................................................ 45
1.4. Знакомство с Vision Assistant.......................................................... 50 1.4.1. Начало работы с Vision Assistant ................................................. 50 1.4.2. Пример работы в Vision Assistant ................................................ 52 1.4.3. Экспорт проекта в LabVIEW ......................................................... 56
2 Цифровые изображения ........................................................................ 59 2.1. Растровое изображение ................................................................ 59 2.1.1. Изображение как двумерный массив данных .............................. 59 2.1.2. Алгебраические операции над изображениями ............................ 62
Обработка и анализ цифровых изображений с примерами
4
Содержание
5
2.2. Виды изображений.......................................................................... 75 2.2.1. Физическая природа изображений .............................................76 2.2.2. Тип пикселя .................................................................................. 81 2.3. Устройства оцифровки и ввода изображений ............................. 84 2.3.1. Линейки и матрицы, сканеры и камеры ....................................... 84 2.3.2. Геометрия изображения .............................................................. 87 2.3.3. Цифровые и аналоговые устройства ........................................... 88 2.3.4. Пространственное разрешение ................................................. 89 2.3.5. Программное обеспечение ........................................................ 91 2.4. Форматы хранения и передачи цифровых изображений ........... 92 2.4.1. Методы сжатия цифровых изображений ..................................... 94 2.4.2. Формат BMP ................................................................................96 2.4.3. Формат PCX .................................................................................99 2.4.4. Формат GIF ..................................................................................99 2.4.5. Формат TIFF .............................................................................. 100 2.4.6. Формат JPEG ............................................................................ 101 2.4.7. Формат DICOM ......................................................................... 105 2.5. Цифровые видеопоследовательности ....................................... 107 2.5.1. Скорость съемки ...................................................................... 107 2.5.2. «Смаз» изображения ................................................................ 108 2.5.3. Этапы проектирования системы видеосъемки .......................... 109 2.5.4. Быстрая съемка и съемка быстропротекающих процессов ..... 111
3.2. Фильтрация изображений. Ранговая нелинейная фильтрация. Выделение объектов ............................................................................163 3.2.1. Задача фильтрации изображений ..............................................163 3.2.2. Фильтрация бинарных изображений .........................................168 3.2.3. Нелинейная фильтрация полутоновых изображений ................. 175
2.5.5. Форматы хранения и передачи цифровых видеопоследовательностей ............................................................... 112
Методы анализа изображений ............................................................ 251 4.1. Выделение и анализ связных областей ........................................ 251 4.1.1. Выделение связных областей на бинарных изображениях ........ 251 4.1.2. Методы сегментации полутоновых изображений ...................... 256 4.1.3. Геометрическое описание выделенных областей .................... 261 4.1.4. Выделение и анализ связных областей в IMAQ Vision ................ 265 4.2. Выделение геометрических примитивов ................................... 280
3 Методы обработки изображений ...................................................... 118 3.1. Гистограмма и гистограммная обработка. Бинаризация и сегментация. Профили и проекции ................................................ 119 3.1.1. Гистограмма и гистограммная обработка изображений .......... 121 3.1.2. Бинаризация полутоновых изображений ................................... 137 3.1.3. Адаптивная бинаризация ........................................................... 137 3.1.4. Сегментация многомодальных изображений ............................ 141 3.1.5. Обработка цветных изображений ............................................ 141 3.1.6. Профиль вдоль линии и анализ профиля .................................... 151 3.1.7. Проекция и анализ проекции ................................................... 160
3.2.4. Задача выделения объектов интереса .......................................... 180
3.3. Линейная фильтрация изображений. Линейная фильтрация в пространственной области. Преобразование Фурье. Линейная фильтрация в частотной области ....................................... 184 3.3.1. Линейная фильтрация изображений. Линейная фильтрация в пространственной области .............................................................. 184 3.3.2. Преобразование Фурье. Линейная фильтрация в частотной области .............................................................................................. 192 3.3.3. ВейвлетHанализ ......................................................................... 204
3.4. Выделение контуров на полутоновых изображениях ............... 216 3.4.1. Задача выделения контуров ...................................................... 216 3.4.2. Операторы выделения контуров в IMAQ Vision .........................222 3.5. Математическая морфология Серра (ММ) .................................. 228 3.5.1. Теоретические основы математической морфологии .............. 229 3.5.2. Операции математической морфологии в IMAQ Vision ............. 239
4
4.2.1. Методы выделения геометрических примитивов на основе преобразования Хафа ........................................................................ 280 4.2.2. Выделение геометрических примитивов в IMAQ Vision ............ 285
4.3. Обнаружение объектов, заданных эталонами .......................... 296 4.3.1. Методы обнаружения объектов, заданных эталонами .............. 296 4.3.2. Функции привязки эталонов в IMAQ Vision ............................... 302 4.4. Измерения на изображениях ...................................................... 306
Обработка и анализ цифровых изображений с примерами
6
4.4.1. Функции геометрических измерений в IMAQ Vision ................ 306 4.4.2. Функции яркостных измерений в IMAQ Vision ........................... 311
4.5. Считывание символьной информации ........................................ 312 4.5.1. Задача оптического распознавания символов (OCR) ................. 312 4.5.2. Считывание штриховых кодов ................................................... 323 4.5.3. Считывание информации технических индикаторов .................. 332 4.6. Служебные функции пакета IMAQ Vision ..................................... 333 4.6.1. Ручные геометрические измерения и построения .................... 333 4.6.2. Работа c растровым изображением и областями интереса ...... 343
5 Цифровая фотограмметрия и бесконтактные измерения ............. 347 5.1. Методы цифровой фотограмметрии ........................................... 347 5.1.1. Фотограмметрический метод бесконтактных трехмерных измерений .......................................................................................... 347 5.1.2. Математическая модель камеры ................................................ 348 5.1.3. Калибровка видеокамер ............................................................ 350 5.1.4. Внешнее ориентирование камер .............................................. 351 5.1.5. Решение задачи стереосоответствия при построении модели поверхности. Структурированный подсвет ........................................ 352 5.1.6. Приведение координат точек снимков к нормальному случаю съемки. Определение элементов взаимного ориентирования по внешнему ....................................................................................... 354 5.1.7. Вычисление пространственных координат точек поверхности ....................................................................................... 355
5.2. Фотограмметрический комплекс для бесконтактных измерений на базе LabVIEW и PXI ....................................................... 356 5.2.1. Аппаратное обеспечение комплекса ........................................ 356 5.2.2. Программное обеспечение комплекса .................................... 360
6 Compact Vision System – новая промышленная платформа для систем технического зрения .........................................................369 6.1. Compact Vision System (CVS) ....................................................... 368 6.1.1. Технические характеристики CVS ............................................. 368 6.1.2. Подключение и настройка CVS .................................................369
Содержание
7
6.1.3. Создание приложения для CVS .................................................. 374
6.2. Пример приложения: фотограмметрический комплекс на базе CVS ........................................................................................... 377 6.2.1. Аппаратное обеспечение комплекса ........................................ 377 6.2.2. Программное обеспечение комплекса .................................... 378 6.2.3. Пример сканирования детали ................................................... 388
7 Примеры практических систем машинного зрения .........................391 7.1. Автоматизация измерений и технический контроль .................. 391 7.1.1. Система автоматического выделения и фильтрации следа частиц ................................................................................................. 391 7.1.2. Система автоматизированного бесконтактного измерения объема круглых лесоматериалов ........................................................ 392 7.1.3. Система определения гранулометрического состава рудной массы (разработка ИИТ и ООО «НВП ЦентрHЭСТАгео») .................... 394 7.1.4. Система автоматического измерения угла схождения сварного шва ...................................................................................... 395 7.1.5. Система автоматического распознавания и подсчета некондиционных кристаллов на круглой пластине ..............................396 7.1.6. Система компенсации геометрических искажений и бесшовной сшивки изображений, получаемых от многокамерных систем видеоввода ...............................................397 7.1.7. Система автоматизированного контроля качества внутренней поверхности труб .............................................. 398
7.2. Зрение роботов ............................................................................399 7.2.1. Область применения: автомобильные системы ........................399 7.2.2. Область применения: мобильные роботы ................................ 401 7.2.3. Система обнаружения препятствий на дороге перед движущимся транспортным средством ............................................. 404 7.2.4. Система автоматической привязки телефрагментов к ортофотоизображению ................................................................... 404
7.3. Видеонаблюдение ........................................................................ 405 7.3.1. Область применения: видеонаблюдение ................................. 405 7.3.2. Система обнаружения и сопровождения движущихся объектов по признаку их движения .................................................... 406
8
Обработка и анализ цифровых изображений с примерами 7.3.3. Система стереообнаружения движения в зоне видеонаблюдения .............................................................................. 411 7.3.4. Система считывания регистрационных номеров автомобилей .......................................................................................412 7.3.5. Система считывания номеров железнодорожных вагонов и цистерн ............................................................................................ 413
7.4. Биометрия ......................................................................................414 7.4.1. Область применения: биометрия ..............................................414 7.4.2. Система обнаружения и распознавания лиц .............................421 7.4.3. Система трехмерной реконструкции и формирования строго фронтального изображения лица человека ............................. 423 7.4.4. Система автоматического выделения человеческого лица и слежения за его чертами .................................................................. 425 7.4.5. Система распознавания жестов руки человека ......................... 426 7.4.6. Cистема для биомеханических исследований на основе высокоскоростной стереосъемки движений человека ...................... 426 7.4.7. Система слежения за положением головы и направлением взгляда ребенка .................................................................................. 428
7.5. Обработка документов, распознавание текста и штриховых кодов .................................................................................................... 429 7.5.1. Система автоматического поиска и считывания штриховых кодов ................................................................................................. 429 7.5.2. Система автоматического распознавания машиночитаемых документов ........................................................................................ 430 7.5.3. Система считывания номеров денежных банкнот ...................... 431 7.5.4. Система оценки подлинности денежных банкнот ...................... 432 7.5.5. Cистема для оценки ветхости денежных банкнот ....................... 433
7.6. Медицинские приложения ........................................................... 434 7.6.1. Проекты в области анализа и обработки медицинских изображений ...................................................................................... 434 7.6.2. Системы для компьютерного анализа томографических изображений ...................................................................................... 435 7.6.3. Система компьютерного анализа томографических изображений для диагностики воспалительных заболеваний пазух и полости носа (синуитов) .................................................................. 436 7.6.4. Система компьютерного анализа томографических изображений для оценки степени ожирения у мужчин .......................436
Содержание
9
7.6.5. Система компьютерного анализа медицинской рентгенографической информации для ранней диагностики остеопороза ....................................................................................... 438 7.6.6. Автоматизированное рабочее место врачаHрентгенолога ....... 438 7.6.7. Система телемедицины в области радиологических обследований .................................................................................... 440 7.6.8. Модуль управления данными медицинского обследования на основе технологии DICOM .............................................................441
Список литературы ............................................................................... 442 Литература по машинному зрению .................................................... 443 Литература по машинному зрению на русском языке ........................ 443 Литература по машинному зрению на английском языке .................... 445 Литература по LabVIEW и NI Vision..................................................... 452 Литература по LabVIEW и NI Vision на русском языке ......................... 452 Литература по LabVIEW и NI Vision на английском языке .................... 453 Предметный указатель ......................................................................... 454
Введение
Введение
Настоящая книга написана и издана при поддержке академического гранта фир' мы National Instruments. Первоначально она задумывалась как русский аналог за' мечательного англоязычного пособия [184] (Klinger T. Image processing with LabVIEW and IMAQ Vision), однако в ходе работы исходный замысел претерпел существенные изменения, и теперь книга представляет собой не только практи' ческое пособие по построению приложений машинного зрения в среде LabVIEW с использованием библиотеки IMAQ Vision, но и полный учебный курс по тематике машинного зрения и цифровой обработки изображений. В теоретических разде' лах рассматриваются основные аспекты получения, хранения, обработки и анали' за цифровых изображений, а также автоматического выделения и распознавания на изображениях различного рода объектов. В практических разделах описывае' мые методы подробно иллюстрируются примерами программ и схем обработки, созданных в LabVIEW на базе IMAQ Vision. Впервые на русском языке дается подробное описание новой промышленной платформы для систем технического зрения Compact Vision System (NI CVS), методов и приемов работы с ней. Поми' мо учебных и методических примеров, книга также содержит краткое описание значительного количества практических приложений. Книга имеет следующую структуру. В главе 1 обзорно рассматриваются основные темы книги. Вводятся основные понятия, связанные с проблематикой машинного зрения. Рассматриваются основ' ные задачи машинного зрения, уровни анализа изображения, методы машинного зрения, место машинного зрения в ряду сопряженных технических дисциплин, ос' новные требования к алгоритмам машинного зрения. Происходит первое знакомство со специализированными программными средствами LabVIEW, NI Vision и Vision Assistant, при помощи которых далее будет происходить изучение и рассмотрение на примерах различных процедур обработки и анализа изображений. Глава 2 посвящена растровым цифровым изображениям. Рассматривается представление изображений как двумерных массивов данных. Описаны алгебра' ические операции над изображениями. Обсуждается физическая природа изобра' жений, в том числе – изображения различных диапазонов длин волн и изображе' ния различной физической природы. Описаны различные типы программных структур изображений, определяемых различным типом пикселя. Сделан крат' кий обзор устройств, используемых для оцифровки и ввода изображений в компь'
11
ютер. Обсуждаются геометрия изображения, цифровые и аналоговые устройства ввода, пространственное разрешение источников изображения. Описаны со' временные форматы хранения и передачи цифровых изображений. Кратко рас' смотрена также связанная с этим проблема сжатия цифровых изображений. В заключении главы рассматриваются вопросы, связанные с вводом, хранением и передачей уже не отдельных кадров, а протяженных во времени цифровых видео' последовательностей. Рассмотрены: скорость съемки, проблема «смаза» изоб' ражения, выбор экспозиции, выбор камеры, проблемы освещенности и выбор подсветки. Описаны устройства для съемки быстропротекающих процессов. В заключении раздела кратко описаны современные форматы хранения и переда' чи цифровых видеопоследовательностей. Глава 3 посвящена методам обработки изображений. При этом под обработкой изображений «в узком смысле» понимается такая «низкоуровневая» обработка изображения, результатом которой также является растровое изображение или другой растровый объект (например, одномерный массив). В разделе 3.1 описаны гистограмма изображения, гистограммная обработка, бинаризация и многомо' дальная гистограммная сегментация цифровых изображений, адаптивные мето' ды определения порогов бинаризации. Рассмотрены также профили и проекции изображений на оси координат. В разделе 3.2 рассмотрены нелинейные методы помеховой фильтрации изображений, а также выделение мало' и среднеразмер' ных объектов. Описана задача фильтрации изображений от шума. Рассмотрены следующие процедуры оконной фильтрации изображения: логическая фильтра' ция помех, бинарная медианная фильтрация, бинарная ранговая фильтрация, взвешенные ранговые фильтры, нелинейная фильтрация полутоновых изображе' ний, ранговая оконная фильтрация. Рассматривается также задача выделения объектов интереса и метод нормализации фона. Раздел 3.3 посвящен линейной фильтрации изображений. Рассматриваются: линейная фильтрация в простран' ственной области, преобразование Фурье, линейная фильтрация в частотной об' ласти, связь линейной фильтрации в частотной и пространственных областях. В разделе 3.4 описаны методы выделения контуров (краев) на полутоновых изоб' ражениях. Рассмотрены различные дискретные операторы вычисления произ' водных, операторы вычисления векторов градиентов, оператор Марра, оператор Кани. Раздел 3.5 посвящен описанию математической морфологии Серра. Изла' гаются теоретические основы математической морфологии. Описаны морфоло' гические операции на бинарных изображениях и их обобщение на случай полуто' нового изображения. Приводятся алгоритмы морфологического выделение «черт» и объектов (областей) на изображениях. Глава 4 посвящена методам анализа изображений. При этом под «анализом изображений в узком смысле» понимается такая «средне'» или «высокоуровне' вая» обработка изображения, результатом которой является уже не растровое изображение, а какой'либо векторный объект (список объектов) или семантиче' ская информация, выражаемая в текстовом или любом другом символьном виде. В разделе 4.1 рассмотрены методы выделения и анализа связных областей. Опи' саны основные методы выделения связных областей на бинарных изображениях. Рассматриваются также алгоритмы сегментации полутоновых изображений.
12
Обработка и анализ цифровых изображений с примерами
Приводится список наиболее распространенных систем признаков, используе' мых для яркостно'геометрического описания выделенных областей. Раздел 4.2 посвящен методам выделения геометрических примитивов. Описано преобразо' вание Хафа для поиска прямых линий, преобразование Хафа для поиска окруж' ностей, рассмотрены различные стратегии анализа аккумулятора Хафа при поис' ке геометрических примитивов. Далее описаны реализованные в системе NI Vision эвристические процедуры поиска и выделения прямых линий, окружно' стей, а также линий, близких к прямым, и линий, близких к окружностям. Раз' дел 4.3 посвящен рассмотрению методов обнаружения на изображении объектов, заданных эталонными изображениями (образцами). Описаны методы корреля' ционного обнаружения, морфологический подход к сравнению изображений ⇒. П. Пытьева, методы согласованной фильтрации, обобщенное преобразование Хафа, функции привязки эталонов в NI Vision. В разделе 4.4 рассматриваются проблемы калибровки датчиков и последующих метрических измерений на изобра' жениях. Описаны общие методы калибровки изображений, а также процедуры ка' либровки изображений, доступные в IMAQ Vision. Рассмотрены также функции гео' метрических и яркостных измерений на изображениях, поддерживаемые NI Vision. Раздел 4.5 посвящен методам считывания символьной информации. Рассмотрена за' дача оптического распознавания символов (OCR), структура современных систем OCR и различные методы распознавания текстовых символов. Рассмотрена также задача обнаружения и считывания штриховых кодов на изображениях. Описаны раз' личные типы штриховых кодов, а также поддерживаемые системой NI Vision специа' лизированные методы считывания информации аналоговых и цифровых техниче' ских индикаторов. Раздел 4.6 содержит описание служебных функций NI Vision, позволяющих осуществлять ручные геометрические измерения и построения, а так' же работу с растровым изображением и областями интереса. Глава 5 посвящена цифровой фотограмметрии и бесконтактным измерениям. В разделе 5.1 описаны теоретические основы фотограмметрических измерений. Рассмотрены: математическая модель камеры, калибровка видеокамер, внешнее ориентирование камер, решение задачи стереосоответствия при построении мо' дели поверхности, формирование структурированного подсвета, приведение ко' ординат точек снимков к нормальному случаю съемки, определение элементов взаимного ориентирования по внешнему, вычисление пространственных коорди' нат точек поверхности, ортотрансформирование цифрового снимка. В разделе 5.2 описан фотограмметрический комплекс для бесконтактных измерений на базе LabVIEW и промышленного компьютера PXI. Глава 6 посвящена описанию новой промышленной платформы для систем технического зрения Compact Vision System (CVS) фирмы National Instruments. В разделе 6.1 описаны технические характеристики CVS, подключение и настрой' ка CVS, а также алгоритм создания приложений для CVS. В разделе 6.2 приводит' ся пример приложения для данной вычислительной системы: фотограмметриче' ский комплекс на базе CVS. В главе 7 рассматриваются многочисленные примеры практических систем машинного и компьютерного зрения, разработанных в последние годы в лабора' ториях компьютерного зрения ГосНИИ Авиационных систем и ЗАО «Институт
Введение
13
информационных технологий». Некоторые из этих систем были созданы с ис' пользованием средств LabVIEW и IMAQ Vision, другие – с использованием иных программных средств. В контексте данной главы принципиально то, что во всех описанных примерах практических приложений решались достаточно типовые задачи машинного и компьютерного зрения, а также то, что технические характе' ристики описанных прикладных систем являются типовыми и удовлетворитель' ными на современном этапе развития технологии, программных и аппаратных средств машинного зрения. Примеры приложений сгруппированы по следующим крупным тематическим блокам: автоматизация измерений и технический конт' роль; машинное зрение, видеонаблюдение и биометрия; обработка документов, распознавание текста и штриховых кодов; медицинские приложения. Данная книга появилась в результате совместных усилий большого коллекти' ва авторов, представленных ниже: • Д.т.н., чл.'корр. РАН, проф. Желтовым С. Ю. подготовлены теоретические разделы главы 1 и список литературы по тематике машинного зрения. • К.т.н., с.н.с. Визильтером Ю. В. написаны введение и основные теоретиче' ские разделы глав 2, 3, 4, 7. • Князем В. А. написаны теоретические разделы главы 5. • Ходаревым А. Н. написан ряд разделов, посвященных работе с платформой NI Vision, в частности разделы 6.1, 6.2, раздел 1.4 и ряд примеров использо' вания функций IMAQ Vision в главах 2, 3, 4. • Моржиным А. В. описан ряд примеров использования функций IMAQ Vision в главах 2, 3, 4. • Максимовым А. А. написан раздел 5.2. • Каратеевым С. Л. написан ряд параграфов раздела 3.3. • К.ф'м.н. Ортюковым С. И. представлен обзор штриховых кодов в разделе 4.5. • К.т.н. Морзеевым Ю.В. написан обзор биометрических методов в разделе 7.2. • Раздел 1.2 подготовлен к.т.н., доц. АлтГУ А. Я. Сурановым. • Раздел 1.3 подготовлен сотрудником представительства фирмы National Instruments в России В. Гурьевым. • Большую помощь в создании книги в целом оказали сотрудники предста' вительства фирмы National Instruments в России во главе с А. Спиридоно' вым, а впоследствии – с П. Сепояном. • В создании и описании практических приложений, описанных в главе 7, принял участие большой коллектив сотрудников ГосНИИ Авиационных систем (ГосНИИАС) и ЗАО «Институт информационных технологий». • На протяжение 2003–2006 годов материалы, вошедшие впоследствии в со' став данной книги, широко использовались в качестве курсов лекций, учеб' ных и методических пособий в учебном процессе базовой кафедры №539 при ГосНИИАС «Авиационно'космические системы обработки информации и управления» Московского государственного института радиотехники, электроники и автоматики (МИРЭА) под руководством заведующего ка' федры, д.т.н., чл.'корр. РАН, Себрякова Г. Г. Авторы выражают глубокую признательность и благодарность всем, кто помо' гал им в работе над этой книгой.
Проблематика машинного зрения
15
ботки методов и алгоритмов «понимания» изображений. Однако именно эта зада' ча во многих случаях оказывается и наиболее трудной.
1.1.1. Задачи машинного зрения
Машинное зрение, LabVIEW и NI Vision
1
1.1. Проблематика машинного зрения В последние годы цифровая обработка и цифровой анализ изображений находят все большее применение в различных областях науки и техники, таких как интел' лектуальные робототехнические комплексы, системы промышленного контроля, системы управления движущимися аппаратами, обработка данных дистанцион' ного зондирования, биомедицинские исследования, новые технологии обработки документов и множество других. Далее мы будем использовать обобщающий тер' мин «машинное зрение» (Machine vision) как понятие, наиболее полно объемлю' щее круг инженерных технологий, методов и алгоритмов, связанных с задачей интерпретации сцены наблюдения по ее двумерным проекциям (изображениям), а также как практическое использование результатов этой интерпретации. Проблематика машинного зрения столь привлекательна для современных ис' следователей по той причине, что аппаратные возможности, предоставляемые в данной области последними достижениями электроники и вычислительной тех' ники, достигли такого уровня, что они уже во многом приближаются к «техниче' ским характеристикам» человека. Разрешение многих сенсоров для получения видеоинформации практически соответствует числу элементов сетчатки глаза че' ловека, а возможности ЭВМ и специальных процессоров близки к характеристи' кам «вычислительных мощностей», используемых для обработки изображений в мозгу. Со своей стороны, биомеханика вплотную подошла к разработке слож' ных механических манипуляторов, достаточных для имитации моторной деятель' ности человека по управлению различными техническими системами. И таким образом на пути к осуществлению заветной фантастической мечты будущего – созданию сложных автономных робототехнических комплексов, «интеллекту' альных машин», функционирующих в реальном масштабе времени, – стоит необ' ходимость решения большей частью лишь одной принципиальной задачи – разра'
Удивительная сложность проблемы «понимания изображений» может быть про' иллюстрирована тем обстоятельством, что ее интеллектуальная (алгоритмиче' ская) составляющая оказалась более трудным «орешком», чем традиционные за' дачи типа компьютерной игры в шашки или шахматы, которые долгие годы служили полем приложения методов «искусственного интеллекта». Компьютер, на равных играющий в шахматы с чемпионами мира, уже создан, а компьютерной программы, «понимающей» любую видимую сцену, пока нет. Более того, созда' ние такой программы в перспективе ближайших десятилетий даже не предвидит' ся научным сообществом. Это связано, по'видимому, со сложностью основного предмета, находящегося в центре внимания данной дисциплины, а именно – дву' мерного изображения. Скорее правилом, чем исключением, является отсутствие у информационного семантического содержания изображения какой'либо «причинной» или динами' ческой модели формирования, в том смысле, что это информационное семанти' ческое содержание возникает не под действием каких'либо физических законов, описывающихся математическими уравнениями. Информационное наполнение изображения проявляется в виде бесконечного разнообразия яркостногеомет рических структур, модели порождения которых могут просто отсутствовать. Особенно сложной задачей является «понимание» объектов, присутствующих в сцене наблюдения. Обнаружение и идентификация многих типов таких объектов, например зданий и дорог на аэрофотоснимках, превратились даже в отдельные направления исследований. Так, только проблеме выделения зданий на изобра' жениях были посвящены в последние годы несколько крупных международных конференций, поставивших лишь ряд новых проблем в дополнение к существую' щим [72, 107, 171]. Таким образом, следует признать, что общая теория «понима' ния изображений» за последние 30–40 лет еще не вышла из юношеского возраста, и то ее состояние, которое может быть зафиксировано сегодня, – это сочетание ряда нерешенных к настоящему моменту теоретических задач, с одной стороны, и большого числа идей и подходов, далеких от окончательного вида хорошо разра' ботанной теории, – с другой. В то же время для решения многих практически важных задач машинного зре' ния общая проблема «понимания изображений» может быть редуцирована к го' раздо более простой и ясной проблеме обнаружения и распознавания или изме рения по одному или нескольким изображениям объектов, удовлетворяющих некоторому заранее известному модельному описанию. Теория машинного зре' ния предлагает целый ряд различных модельных описаний наблюдаемых объек' тов, которые могут быть использованы для их обнаружения и измерения. В лите' ратуре описан широкий спектр таких моделей – от простейших признаковых описаний до высоко'специализированных и изощренных структурных моделей.
16
Обзор основных тем книги
Однако общий метод составления работоспособных моделей по вышеупомяну' тым причинам отсутствует. Отсюда следует, что разработка и использование моделей, пригодных для эффективного решения задачи обнаружения соответ' ствующих объектов, в значительной степени остается на грани науки и искусст' ва, то есть требует особого «know'how» или, другими словами, знания предмет' ной области, отражающего многолетний опыт исследований по решению частных задач. Решение задачи автоматического выделения сложных объектов открывает пе' ред системами «машинного зрения» огромное число потенциальных областей применения, таких как промышленная инспекция и контроль качества, робото' техника, навигация и транспортировка, медицина и биомеханика, инженерный труд, автоматизация проектирования и множество других. При этом сама задача обнаружения объектов является, безусловно, базовой, но частной технологиче' ской задачей по отношению ко всему комплексу основных целевых задач, кото' рые в общих чертах могут быть сформулированы следующим образом: • обнаружение объектов и изменений в сцене наблюдения; • высокоточные измерения элементов сцены; • слежение за объектами; • самоориентация и самопозиционирование; • реконструкция поверхностей и обнаружение трехмерных структур; • описание сцены и идентификация объектов; • организация зрительной обратной связи при работе управляемых устройств, манипуляторов или мобильных роботов в изменчивой среде.
1.1.2. Уровни и методы машинного зрения На протяжении десяти'пятнадцати последних лет в алгоритмическом аспекте последовательность действий по обработке изображения принято рассматривать в согласии с так называемой модульной парадигмой [18]. Эта парадигма, предло' женная Д. Марром на основе длительного изучения механизмов зрительного вос' приятия человека, утверждает, что обработка изображений должна опираться на несколько последовательных уровней восходящей информационной линии: от «иконического» представления объектов (растровое изображение, неструктури' рованная информация) – к их символическому представлению (векторные и ат' рибутивные данные в структурированной форме, реляционные структуры и т. п.). Исходя из этого, в области машинного зрения принято выделять следующие ос' новные этапы обработки данных: • предобработка изображений; • сегментация; • выделение геометрической структуры; • определение относительной структуры и семантики. Связанные с этими этапами уровни обработки обычно называются соответ' ственно: обработка нижнего уровня, среднего уровня, высокого уровня. В то вре' мя как алгоритмы обработки нижнего уровня (фильтрация простых шумов, гис'
Проблематика машинного зрения
17
тограммная обработка) могут рассматриваться как хорошо проработанные и де' тально изученные, алгоритмы среднего уровня (сегментация) продолжают сегод' ня оставаться центральным полем приложения инженерных и исследовательских усилий. За последние годы значительный прогресс был достигнут по отношению к проблемам сопоставления точек и фрагментов изображений (matching) [89, 153], выделения признаков внутри малых фрагментов [85, 126, 137], высокой точ' ности 3D'позиционирования точек [88, 91], что подразумевает соответствующее моделирование и калибровку датчиков и их комбинаций, выделение простых яр' костно'геометрических структур типа «точка», «край», «пятно», «прямая линия», «угол» [49, 50, 117, 126, 149]. Методы обработки высокого уровня, относящиеся собственно к «пониманию изображений», находятся еще в начальной фазе развития и по'прежнему пред' ставляют собой «вызов» для сообщества исследователей в области компьютерно' го зрения и искусственного интеллекта. Безусловно, перспектива создания буду' щих поколений «интеллектуальных машин» в основном зависит от дальнейшей разработки именно этого круга алгоритмов. В настоящее время известно несколько основных алгоритмических подходов и математических формализмов, используемых при разработке практических сис' тем анализа изображений. Это гистограммные преобразования, анализ проекций, линейная и нелинейная фильтрация изображений, яркостная и текстурная сег' ментация, корреляционное обнаружение и согласованная фильтрация, морфоло' гический подход Ю. П. Пытьева, математическая морфология Серра, метод «нор' мализации фона», преобразование Хафа, структурно'лингвистический подход и ряд других. Большинство этих методов будут рассмотрены в данной книге. Значительный вклад в разработку методов и алгоритмов обработки изображе' ний и машинного зрения внесли работы Ярославского М. П., Бакута П. А., Злоби' на В. К., Баклицкого В. К., Лабунца В. Г., Левшина В. Л., Пытьева Ю. П., Серра, Р. Харалика, Е. Дэвиса, У. Гренандера, К. Ту и др. За последние десятилетия со' здано множество успешных систем машинного зрения, в которых в тех или иных сочетаниях реализованы упомянутые подходы и парадигмы. Однако единого ма' тематического формализма и единой общепризнанной методики разработки алго' ритмов анализа изображений по'прежнему не существует, и, следовательно, на' ука об обработке изображений все еще находится на одной из начальных стадий своего развития, переживая период бурного роста, чреватый возможностью появ' ления в любой момент новых, самых неожиданных и революционных методик и теорий.
1.1.3. Сопряженные технические дисциплины Наряду с термином «машинное зрение» в литературе часто употребляются такие понятия, как зрение роботов (robot vision), компьютерное зрение (computer vision), обработка изображений (image processing), понимание изображений (image under' standing). Рассмотрим взаимоотношения этих понятий, с тем чтобы установить смысл терминов, которые будут использоваться здесь в дальнейшем.
18
Обзор основных тем книги
Компьютерное зрение представляет собой научную дисциплину, изучающую теорию и базовые алгоритмы анализа изображений и сцен. Машинное зрение следует рассматривать как гораздо более комплексную и тех' нологическую область научных и инженерных знаний, охватывающую все про' блемы разработки практических систем: выбор схем освещения исследуемой сце' ны, выбор характеристик датчиков, их количества и геометрии расположения, вопросы калибровки и ориентирования, выбор или разработка оборудования для оцифровки и процессорной обработки, разработка собственно алгоритмов и их компьютерная реализация – то есть весь круг сопутствующих задач. Зрение роботов мы предлагаем трактовать как более узкую область техноло' гий машинного зрения, а именно ту их часть, которая обеспечивает функциониро' вание систем машинного зрения в условиях жестких временных ограничений. К этому понятию, безусловно, относятся проблемы разработки основанных на изображениях информационных систем, входящих в состав систем управления сложными динамическими объектами (самолет, автомобиль, системы контроля технических и технологических процессов на производстве), так как необходи' мость формирования обратных связей по результатам обработки входных изобра' жений в системах управления, очевидно, требует их быстрого анализа в реальном масштабе времени. Традиционный термин «обработка изображений» чаще употребляется в пос' ледние годы не как обозначение научной дисциплины, а как указатель на пред' метную область. Наметилась также тенденция использования этого термина для обозначения обработки нижнего уровня, когда результатом обработки изображе' ния снова является изображение. В то же время термин «понимание изображе ний» употребляется для обработки верхнего уровня, часто в контексте примене' ния методов искусственного интеллекта [42, 52]. Машинное зрение тесно связано с целым рядом смежных дисциплин. Это – уже упоминавшиеся ранее компьютерное зрение, искусственный интеллект, а также распознавание образов (pattern recognition) и цифровая фотограмметрия (digital photogrammetry). Цифровая фотограмметрия, бурно развивающаяся в последние годы дисцип' лина, пришла на смену аналитической фотограмметрии. В то время как клас' сическая аналитическая фотограмметрия изучала в основном метрические со' отношения между точками снимков и реальной сцены, современная цифровая фотограмметрия, особенно так называемая close'range (не очень удачный перевод «короткобазисная», но другого русскоязычного термина пока нет) ставит самые сложные задачи анализа и 3D'описания сцены по видеоданным оптических сен' соров. В широком смысле многие ведущие западные ученые в настоящее время используют термины digital close'range photogrammetry и machine vision практи' чески как синонимы. В узком смысле считается, что цифровая фотограмметрия концентрируется прежде всего не на вопросах «понимания» сцены или обнаруже' ния объектов, а на вопросах высокоточного измерения различных ее элементов и реконструкции форм трехмерных поверхностей с использованием стерео и мно' гокамерной съемки, а также специального структурированного подсвета.
Проблематика машинного зрения
19
1.1.4. Требования к алгоритмам машинного зрения Приступая к изучению предмета «машинное зрение», необходимо помнить о том, что это, прежде всего, инженерная прикладная дисциплина. Всякая прикладная техни' ческая дисциплина отличается от фундаментальной теоретической дисциплины на' личием конкретных практических ограничений, налагаемых на развиваемые в ее рамках методы, и на порождаемые ею инструменты решения практических задач. Рассмотрим требования к методам и алгоритмам машинного зрения на примере наиболее специфической группы алгоритмов – алгоритмов обнаружения объектов на изображениях. При этом будем рассматривать три основных типа требований: • робастность; • точность; • вычислительная реализуемость. Робастность Разрабатываемые нами алгоритмы, решающие прикладные задачи машинного зрения, должны работать на реальных изображениях. В то же время каждый, кто на практике пытался конструировать алгоритмы обработки реальных изображе' ний, хорошо знает, насколько изменчивы и не формализуемы могут быть факто' ры, влияющие на процесс их обработки и анализа. Вот только основные из этих факторов: • помехи и «шум» – имеют десятки видов источников возникновения, к числу которых можно отнести несовершенство сенсоров приемо'передающей ап' паратуры и аппаратуры оцифровки изображений, трудные условия съемки, недостаток освещения и ряд других; • сложный текстурированный фон, на котором должно происходить обнару' жение объектов, например обнаружение штриховой наклейки на схожей с ней по структуре газетной странице и т. п.; • эффекты загораживания (заслонения) одних объектов другими объектами, как правило, не определенной заранее формы, например – облако на космо' фотоснимке и т. п., загораживающие помехи; • искажающие оптические эффекты в виде различных расфокусировок, дис' торсий объективов, ракурсных искажений и др.; • эффекты резкой смены освещения, блики, тени, особенно в динамически ме' няющихся сценах; • разнообразие и изменчивость самих объектов – переменная структура (как у текстовых строк, автомобильных номеров или штриховых кодов), воз' можные дефекты, временные изменения формы (сгибание'разгибание ко' нечностей, движение механических частей машин), вегетационные циклы для растительности и т. п.; • эффекты изменения среды между сенсорами и объектами наблюдения – за' дымление, атмосферные осадки, пыль, искусственные помехи и многое другое;
20
Обзор основных тем книги
Проблематика машинного зрения
21
• несинхронность регистрации и обработки данных в динамических задачах, связанная с ограничениями быстродействия компьютерных средств хране' ния и анализа изображений – особенно критична для промышленных при' ложений с заданным временем реакции на событие. Сюда же можно отнес' ти также сбои в компьютерных программах обработки. Даже беглый анализ приведенных факторов легко установит практическую невозможность их полного формального математического описания – вероятно' стного, радиометрического или геометрического. Отсутствие формализованного описания ключевых факторов, вносящих нео' пределенность в процесс обработки, приводит к тому, что, в отличие от многих других областей обработки сигналов, говорить о существовании единственного оптимального алгоритма для решения той или иной задачи обработки изображе' ний практически невозможно. Так, например, только для задачи сегментации гра' фики и текста на цифровых изображениях документов придуманы сотни принци' пиально различных алгоритмов. Представим себе, что существует несколько алгоритмов, достигающих примерно одинаковых результатов на «идеальных» изображениях. Тогда возникает естественный вопрос, как сравнить эти алгорит' мы по качеству их работы. При разработке реальных алгоритмов в настоящее вре' мя стандарт «де'факто» состоит в проверке эффективности работы сконструиро' ванных алгоритмов на больших выборках реальных данных или изображениях, содержащих, по возможности, все неприятные ситуации. Такие алгоритмы, кото' рые обладают устойчивостью к значительным искажениям и меняющимся факто' рам, принято называть устойчивыми, или робастными. Робастность следует счи' тать первым основным практическим требованием при разработке алгоритмов машинного зрения.
Нормальная ошибка – это правильная локализация объекта с некоторой пози' ционной или параметрической неточностью, характеризуемой количественными оценками. Для объектов, характеризуемых габаритными размерами, большими чем 3×3÷5×5, элементов изображения, позиционные нормальные ошибки могут быть значительно меньше размера элемента изображения, уменьшаясь с величи' ной объекта. В этом случае принято говорить о субпиксельной локализации, или субпиксельных измерениях. Это особенно важно для задач стереообнаружения; так, при малых параллаксах 3D'объектов субпиксельная привязка самым суще' ственным образом определяет точность измерения их пространственного поло' жения. К аномальным ошибкам следует отнести ситуацию перепутывания объектов или возникновение артефактов, что связано с фатальными количественными ошибками позиционирования или просто ложным обнаружением. Требования по исключению или ограничению уровня аномальных ошибок составляют очень важную часть требований к алгоритмам обнаружения. Заметим также, что требования по точности предъявляются и к алгоритмам обработки изображений низкого уровня. Например, во многих измерительных задачах фильтры, устраняющие помехи, не должны при этом существенно изме' нять видимое положение контуров объекта. Требование «сохранения краев» или, в более общем виде, сохранения неизменными измеряемых характеристик полез' ного сигнала является принципиальным требованием «по точности», предъявля' емым в машинном зрении к алгоритмам нижнего уровня, поскольку, если данные были «испорчены» уже на нижнем уровне обработки, то на более высоких уров' нях анализа никакие самые совершенные математические методы помочь не смо' гут, и задача в целом не будет решена с необходимой точностью.
Точность
Вычислительная реализуемость
Второе важнейшее свойство, которым должны, как правило, обладать алгоритмы обнаружения объектов на изображениях, можно определить как точную локали зацию объектов, подлежащих обнаружению, или контуров объектов, подлежащих измерению. Это означает, что необходимо не просто выделить объект, но и точно указать в системе координат изображения (или сцены) его положение и размеры в каком'либо смысле. Несколько неясное толкование «локализации», данное выше, связано с тем, что по сравнению со своей эталонной моделью объект может быть заметно искажен геометрически, причем аналитическая модель искажения может отсутствовать. Характерные примеры – штриховой код, находящийся на смятой упаковке, пятно на коже и т. п. В этих случаях локализация объекта явля' ется нетривиальной задачей. В более простой ситуации, при аналитически задан' ной с точностью до параметров геометрии искажений, под точной локализацией можно понимать знание о положении какой'либо характерной точки объекта и параметрах геометрии искажения (поворот, аффинные коэффициенты, изгибы и др.). При этом встречающиеся случаи ошибок локализации целесообразно раз' делить на две группы – нормальные и аномальные ошибки.
Несмотря на колоссальный путь, который прошла в целом вычислительная тех' ника за последние декады двадцатого и первые годы двадцать первого веков, не' смотря на создание обширной специализированной процессорной базы для обра' ботки изображений, в основной массе приложений, особенно промышленных приложений реального времени, характеристики вычислителей и их свойства все еще далеки от желаемых. Важное отличие, присущее процедурам обработки и анализа изображений по сравнению с задачами распознавания или интерпретации уже сегментированного образа, заключается в том, что обнаружение и измерение в практических задачах всегда связано с процедурой поиска объекта. Именно реализация процедуры по' иска объекта связана с угрозой лавинообразного роста потребного числа вычисле' ний. Проиллюстрируем это на примере простой задачи поиска объекта на основе сравнения с растровым эталоном или шаблоном (template). Если построить ка' кой'либо функционал соответствия между объектом размером M×M и фрагмен' том M×M из изображения N×N, то простой перебор фрагментов требует количе' ства вычислений не менее чем M2×N2 операций, что составляет, например,
22
Обзор основных тем книги
10 миллиардов операций при размере объекта 50×50, а изображения – 2000×2000 эле' ментов. Даже принимая во внимание значительное увеличение возможностей со' временных компьютеров, такие объемы вычислений занимают секунды машин' ного времени, что далеко выходит за пределы требований систем обнаружения реального времени, предназначенных для таких задач, как навигация и наведение, инспекционный контроль, обработка машиночитаемых документов и т. п. Более того, реальные задачи обработки визуальной информации изобилуют дополнительными степенями свободы, когда искомая яркостно'геометрическая структура на изображении может иметь не только произвольные положение, уг' ловую ориентацию и масштаб, но и подвергаться разным преобразованиям, не только аффинным или проективным, но и гораздо более сложным, таким как раз' личные «резиновые» модели или «коробление» (warping – искажение, напомина' ющее смятую бумагу). Все это многократно увеличивает потребное для перебора время расчетов и требует применения качественно новых идей по организации процесса анализа изображения. Оценивая размер изображения, предназначенного для обработки, например, как 1000 на 1000 элементов, что не является чем'то необычным для современных видеодатчиков (можно вспомнить, что бытовые цифровые фотоаппараты и даже мобильные телефоны давно перешли отметку 2 мегапикселя в ПЗС матрице), мы получим даже для простейших операций характерную оценку количества потреб' ных вычислений порядка нескольких гигабайтов операций на кадр. Причем при' ложениям реального времени необходимо выполнять эти вычисления в темпе кадровой развертки, что приводит к оценке потребного быстродействия около 50 Gflop/sec. Сами по себе эти оценки не являются запредельными для мощных современных компьютеров, однако следует учесть, что основные приложения ма' шинного зрения находятся в тех областях, где массогабаритные и стоимостные характеристики конструируемых устройств по определению ограничены и долж' ны быть весьма невелики. Таким образом, вычислительная реализуемость алгоритмов машинного зре' ния по'прежнему относится к числу наиболее важных факторов, которые необхо' димо учитывать при их разработке. Для более углубленного знакомства с методами и алгоритмами машинного зрения мы рекомендуем список литературы, приведенный в конце данной книги.
1.1.5. Роль специальных программных средств в разработке приложений машинного зрения Как мы уже отмечали выше, единого математического формализма и единой об' щепризнанной методики разработки алгоритмов в области машинного зрения пока не существует, и вряд ли они будут разработаны в ближайшие десятилетия. Это, с одной стороны, является серьезной проблемой, затрудняющей и замед' ляющей разработку новых приложений и практических систем машинного зре' ния, а с другой стороны, делает сам процесс разработки алгоритмических и про'
Проблематика машинного зрения
23
граммных средств для систем машинного зрения подобным увлекательной игре в кубики, причем задача разработчика в этой игре – комбинируя те или иные готовые алгоритмические блоки, добиться решения поставленной технической задачи. Разработка систем анализа и обработки цифровых изображений обязательно включает в себя следующие этапы: • предварительное исследование свойств типовых изображений; • анализ применимости известных методов обработки изображений в данной конкретной задаче; • разработка новых алгоритмов; • первичная программная реализация новых алгоритмов и качественная про' верка их эффективности; • окончательная программная реализация алгоритмов. Выполнение всех этих операций связано с непосредственным использованием вычислительной техники. Причем в связи с тем, что в настоящее время наиболь' шее распространение получили персональные компьютеры, именно они, как пра' вило, являются основой рабочего места разработчика алгоритмического обес' печения даже в тех случаях, когда окончательная программная реализация алгоритмов предполагается на базе других вычислительных устройств. Таким об' разом, необходимым условием работы как отдельного разработчика, так и коллек' тива разработчиков в данной области является использование некоторой единой программной среды, реализованной на ПЭВМ. При этом разработчику необходи' мо иметь под рукой готовый инструментарий известных и практически полезных методов анализа и обработки изображений, а также соответствующую среду раз' работки, позволяющую максимально быстро реализовывать те или иные комби' нации алгоритмов и визуализировать результаты их работы. Среди ныне суще' ствующих программных средств подобного рода одним из наилучших является среда визуального программирования LabVIEW с библиотекой компонент обра' ботки и анализа изображений IMAQ Vision фирмы National Instruments (США). В настоящей книге все излагаемые теоретические положения и описываемые методы машинного зрения будут иллюстрироваться примерами программ и схем обработки, созданных в LabVIEW на базе компонент IMAQ Vision. Целью подоб' ного «смешанного» изложения являются: • создание общего теоретического фундамента в области анализа и обработ' ки изображений, знакомство с базовыми математическими методами и ал' горитмическими процедурами, позволяющее в дальнейшем осуществлять самостоятельную разработку новых алгоритмических и программных мо' дулей для оригинальных систем машинного зрения; • выработка навыка самостоятельного практического анализа изображений и программирования в среде LabVIEW с использованием IMAQ Vision, по' зволяющего (при условии параллельного выполнения описанных упраж' нений и примеров) после знакомства с данным учебным курсом непосред' ственно на практике осуществлять быструю полноценную разработку прототипов различных систем машинного зрения.
24
Обзор основных тем книги
Знакомство с LabVIEW
25
1.2. Знакомство с LabVIEW История развития технологии виртуальных приборов (ВП) насчитывает уже около двух десятилетий и связана в основном с компанией National Instruments, которая выпускает оборудование и ряд программных пакетов, поддерживающих технологию ВП, среди которых ключевую роль играет среда графического про' граммирования LabVIEW. В августе 2006 г. вышла юбилейная версия этого про' дукта – LabVIEW 8.20. Что же представляет собой среда LabVIEW и разрабаты' ваемые с ее помощью виртуальные приборы? Слово «виртуальные» в этом словосочетании означает не «эфемерность» при' боров, а кардинальное отличие принципов построения их интерфейсных частей и системы обработки информации. Базой для такого прибора служит универ' сальный или специализированный компьютер. Поэтому со стороны пользователя взаимодействие с лицевой панелью прибора осуществляется через экран компью' тера и его штатные периферийные устройства – клавиатуру и мышь. Хотя вирту' альные приборы могут быть и чисто модельными, но их мощь в полной мере про' является при решении задач измерения параметров реальных объектов или процессов. В этом случае для получения измерительной информации использу' ются как встроенные платы или выносные блоки, так и стандартные интерфейсы компьютера и каналы связи. Большая часть логики обработки измерительной информации реализуется на компьютере программно. При этом сама программа в соответствии с парадигмой графического программирования выглядит как набор функциональных узлов, соединенных проводниками для передачи данных. Источниками данных для про' граммы могут служить узлы (nodes) подпрограмм (подприборов) сбора данных встроенных плат или терминалы (terminals) элементов управления на лицевой панели, а приемниками – терминалы индикаторов, подприборы (SubVI) вывода данных или их сохранения в файлах. Такая структура программы позволяет реа' лизовать модель потока данных (dataflow model) для обработки данных, когда данные «втекают» в программу через перечисленные узлы, обрабатываются и «вытекают» из нее на узлы индикации, записи в файл или передачи по сети. При этом потоки, не связанные между собой общими данными, обрабатываются па' раллельно. Эта модель в корне отличается от модели потока управления (control flow model), реализуемой в большинстве текстовых языков программирования. В LabVIEW для создания интерфейса пользователя служит окно лицевой па нели (Front Panel) – рис. 1.2.1, а программный код размещается в окне блокдиаг раммы (Block Diagram) – рис. 1.2.2. На этих рисунках приведена лицевая панель и блок'диаграмма модифицированного ВП Color Distance Example, служащего для измерения цветового расстояния между двумя точками изображения, указан' ными оператором. ВП взят из библиотеки примеров NI Example Finder, которая насчитывает несколько тысяч таких примеров. Доступ к библиотеке: Help ⇒ Find Examples. Очевидно, что виртуальный прибор, управляющий работой платы и получаю' щий от нее данные, более чем реален, поскольку позволяет получать реальные ре'
Рис. 1.2.1. Вид лицевой панели ВП Color Distance Example
Рис. 1.2.2. Вид блокдиаграммы ВП Color Distance Example
зультаты измерений с заданными метрологическими характеристиками. Одним из главных преимуществ такого прибора является его гибкость. Алгоритмы сбора и обработки данных, так же как и вид лицевой панели, могут быть изменены в любой момент, в том числе и в процессе измерений. Таким образом, имея, напри' мер, плату сбора данных и среду LabVIEW, можно реализовать на компьютере са' мые разнообразные измерительные приборы: осциллографы, вольтметры, часто' томеры, измерители частотных характеристик или нелинейных искажений.
26
Обзор основных тем книги
Вторая особенность – высокая производительность разработки виртуальных приборов. В LabVIEW она поддерживается множеством средств и инструментов, но в большей мере – самим принципом графического программирования, когда функциональные узлы, обеспечивающие выполнение алгоритма обработки ин' формации, выбираются из палитры Functions Palette (Функции) – рис. 1.2.3, пе' реносятся на блок'диаграмму и соединяются проводниками (wires), по которым передаются данные. Все это делается несколькими щелчками мыши. Таким же образом из палитры Controls Palette (Элементы управления) – рис. 1.2.4 – выби' раются и устанавливаются на лицевой панели элементы управления и индикато' ры. При этом на блок'диаграмме появляются соответствующие терминалы (terminals). Все операции, необходимые для установки, соединения, редактирова' ния функциональных узлов или элементов лицевой панели осуществляются с по' мощью палитры Tools Palette (Инструменты) – рис. 1.2.5. В табл. 1.2.1 приведены краткие пояснения по наиболее употребительным инструментам палитры.
alette (Инструменты Инструменты Таблица 1.2.1. Инструменты палитры Tools P Palette Инструменты) alue (Управление Управление Инструмент Operate V Value Управление, «палец») используется для измене ния значений элементов управления или ввода текста. При работе со строковыми элементами управления вид инструмента изменя ется на следующий: Инструмент Positio osition/Size/Select Перемещение, «стрелка») служит для n/Size/Select (Перемещение Перемещение выбора, перемещения или изменения размеров объектов. Для изменения размеров используются подвижные прямоугольные элементы, появляющиеся в зависимости от допустимого направления изменения в центре сторон или на углах контура объекта при установке инструмента Перемещение внутри этого контура ext (Редактирование Редактирование текста Инструмент Edit T Text текста, «буква») используется для ввода и редактирования текста, а также для создания свободных меток. При создании текстовых элементов вид инструмента изменяется: nnect Wir e (Соединение Соединение Инструмент Co Connect Wire Соединение, «катушка») применяется для соедине ния объектов на блокдиаграмме. Он также используется для условного (невидимого) подключения элементов управления и индикаторов лицевой панели к терминалам соединительной панели ВП
Знакомство с LabVIEW
27
Как видно из этих рисунков, состав пунктов главного меню обоих окон совпа' дает, а состав иконок инструментальных панелей частично отличается. Назначе' ние пунктов главного меню кратко описано в табл. 1.2.2, а функций наиболее важ' ных кнопок инструментальных панелей – в табл. 1.2.3.
Таблица 1.2.2. Пункты главного меню File (Файл Файл Файл)
Используется для открытия новых или существующих ВП (проектов), сохранения и вывода на печать ВП, а также для обращения к их свойствам Edit (Правка Правка Правка) Применяется для редактирования панелей ВП, поиска объектов и удаления неисправных проводников с блокдиаграммы, создания подприборов и установления значений элементов по умолчанию Вид Vi ew (Вид View Вид) Используется для вывода доступных палитр, списка ошибок, иерархии ВП и взаимосвязей между ВП и подприборами, работы с проводником классов Pr oject (Проект Проект Project Проект) Позволяет работать с проектом: создавать новый, открывать или сохранять существующий, добавлять элементы, получать информацию о файлах или устанавливать свойства проекта Operate Запускает и прерывает выполнение ВП, осуществляет пошаговое Управление (Управление Управление) исполнение, соединение с удаленной панелью и изменение других опций ВП Tools Служит для запуска программы анализа измерений и автоматизации Инструменты (Инструменты Инструменты) (MAX), поиска драйверов приборов, управления библиотеками ВП, управления соединением с удаленными панелями, публикации панелей ВП в Web, профилирования ВП и для выполнения ряда прикладных функций Window (Окно Окно Окно) Используется для отображения окон и палитр LabVIEW Help (Справка Справка Справка) Служит для получения информации об элементах и функциях LabVIEW
Таблица 1.2.3. Функции кнопок инструментальной панели Запуск Кнопка Run (Запуск Запуск) работоспособного ВП Запуск Вид кнопки Run (Запуск Запуск) при наличии ошибок в блокдиаграмме ВП Запуск Вид кнопки Run (Запуск Запуск) ВП в процессе выполнения Запуск Вид кнопки Run (Запуск Запуск) в процессе выполнения подприбора
Для настройки параметров установленных узлов или элементов широко приме' няются их контекстные меню (pulldown menu), вызываемые щелчком правой кнопки мыши (ПКМ) по изображению узла или элемента. Аналогичным образом с помощью щелчка ПКМ по окну лицевой панели или блок'диаграммы можно вы' звать временное представление соответствующих палитр. Для закрытия вызван' ных палитр достаточно нажать левую кнопку мыши (ЛКМ) в поле окна ЛП или БД. Помимо перечисленных выше специализированных средств среды LabVIEW, при создании, отладке, исполнении, сохранении и распространении ВП использу' ются такие «стандартные» средства, как полоса главного меню в верхней части окна ВП и полоса инструментальной панели. Вид этих полос в окне лицевой па' нели и в окне блок'диаграммы показан на рис. 1.2.6 и 1.2.7.
ntinu ously (Непрерывный Непрерывный запуск Кнопка Run Co Continu ntinuously запуск) вызывает непрерывный Стоп Прервать запуск ВП до момента нажатия кнопки Stop (Стоп Стоп) или Abort (Прервать Прервать) n (Прервать Прервать Кнопка Abort Executio Execution Прервать) вызывает остановку выполняющегося ВП Пауза Кнопка Pause (Пауза Пауза) временно останавливает выполнение ВП n (Подсветка Подсветка выполнения Кнопка Highlight Executio Execution выполнения) вызывает режим анима ционного показа процесса передачи данных по блокдиаграмме и отображе ния значений данных на выходе узлов и терминалов in (Do Not Reta in) Wir eV alues (Сохранять Сохранять (Не сохранять) значе Кнопка Reta Retain Retain) Wire Values ния провода провода) позволяет сохранить последнее значение, переданное по obe проводу, и просмотреть его после окончания выполнения при установке Pr Probe Data (Пробник Пробник данных данных)
28
Обзор основных тем книги
Знакомство с LabVIEW
Таблица 1.2.3. Функции кнопок инструментальной панели (продолжение) Начало пошагового выполнения er Кнопки Start Single Stepping (Начало выполнения) и Step Ov Over Шаг через (Шаг через) вызывают пошаговое выполнение ВП ut (Выход Выход из пошагового выполнения Кнопка Step O Out выполнения) завершает пошаговое выполнение ВП
Палитра функций, как видно из рис. 1.2.3, имеет иерархическую структуру, в которой подпалитры функций на верхнем уровне объединены в группы. Состав и порядок расположения групп в палитре может быть оперативно изменен. Па' литра функций включает такие группы, как Programming (Программирование), Mathematics (Математика), Signal Processing (Обработка сигнала), Instrument I/O (Связь с приборами), Data Communication (Обмен данными), Connectivity (Средства взаимодействия) и Express (Экспресс). Группа подпалитр функций Программирование (раскрыта на рис. 1.2.3) явля' ется наиболее содержательной и играет ключевую роль при разработке широкого круга ВП. Она содержит следующие подпалитры (в порядке слева направо и сверху вниз): Structures (Структуры), Array (Массив), Cluster & Variant (Клас тер и Переменная), Numeric (Числовые), Boolean (Логические), String (Строко вые), Comparison (Сравнения), Timing (Установление времени), Dialog & User Interface (Диалог и интерфейс пользователя), File I/O (Ввод/вывод файлов),
Рис. 1.2.4. Палитра Элементы управления
Рис. 1.2.3. Палитра Функции
Рис. 1.2.5. Палитра Инструменты
29
Waveform (Осциллограмма), Application Control (Управление приложением), Synchronization (Синхронизация), Graphics & Sound (Графики и звук) и Report Generation (Создание отчета). Более подробную информацию о назначении функций и ВП, входящих в па' литру функций, можно найти в справочнике [181]. Несмотря на то что в нем при' ведено описание функций для версии LabVIEW 7, большая часть его содержимо' го сохраняет актуальность, поскольку часть функций в новой версии осталась без изменений, а для другой части изменился только дизайн иконки. В ближайшее время планируется выход справочника по функциям новой версии LabVIEW. Каждый функциональный узел, выбираемый из палитры и устанавливаемый на блок'диаграмме, может представлять собой элементарную функцию, подпри бор, ЭкспрессВП, Структуру, Узел свойств, Узел методов, Узел вызова по ссыл ке или Узел вызова библиотечной функции. Иконка элементарной функции, подприбора или иконка самого ВП, находя' щаяся в правом верхнем углу окна (рис. 1.2.6 и 1.2.7), выполняет две функции. С одной стороны, ее изображение помогает опознать и выбрать необходимый функциональный узел, с другой стороны, соединительная панель (connector pane) иконки несет информацию о конфигурации входов/выходов этого узла. Переход к просмотру соединительной панели элементарной функции или под' прибора осуществляется с помощью контекстного меню Visible Items ⇒ Termi nals (Видимые элементы ⇒ Терминалы). Соединительную панель самого ВП можно просмотреть с помощью пункта Show Connector (Показать соединительную панель) контекстного меню иконки.
Рис. 1.2.6. Вид полосы главного меню и инструментальной панели в окне лицевой панели
Рис. 1.2.7. Вид полосы главного меню и инструментальной панели в окне блокдиаграммы
30
Обзор основных тем книги
Знакомство с LabVIEW
31
Рис. 1.2.8. Изображения иконки подприбора и ее соединительной панели
В качестве примера на рис. 1.2.8 приведены изображения иконки подприбора Write To Spreadsheet File (Записать в файл табличного фор мата) и ее соединительной панели. Подприборы служат мощным средством разработки иерархических ВП. Встроенные подприборы реализуют функции высокого уровня. LabVIEW предо' ставляет удобные средства для оперативного создания собственных подприборов. Для этого достаточно очертить инструментом Перемещение («Стрелка») фраг' мент кода, подлежащий преобразованию в подприбор, и обратиться к меню Edit ⇒ Create SubVI (Правка ⇒ Создать подприбор). После преобразования в под' прибор LabVIEW автоматически создает соединительную панель, исходя из ко' личества и типа его входных и выходных терминалов. Пользователю остается только создать оригинальное изображение иконки и сохранить подприбор на дис' ке. При сохранении подприбора в папке (\User.lib) он будет доступен в подпалит' ре User Libraries (Библиотеки пользователя) (рис. 1.2.3) палитры функций. При сохранении в любом другом месте его можно извлечь с помощью подпалитры Select a VI… (Выбрать ВП…). Еще одним средством ускорения разработки ВП служат ЭкспрессВП (ЭВП). В палитре функций они размещены в отдельной подпалитре Express, часть из них в соответствии с функциональностью может входить в состав других подпалитр. ЭВП представляют собой особые подприборы, конфигурируемые с помощью спе' циального диалогового окна, то есть они позволяют в диалоговом режиме устано' вить параметры исполнения и тут же просмотреть результаты на выходе. В зави' симости от конфигурации ЭВП изменяется вид иконки и конфигурация входов/ выходов. На рис. 1.2.9 показана схема возможного подключения ЭВП Spectral Measurements (Спектральные измерения), а на рис. 1.2.10 – диалоговое окно конфигурирования этого ЭВП.
Рис. 1.2.9. Блокдиаграмма возможного подключения ЭкспрессВП Spectral Me asur ements Measur asurements Спектральные измерения (Спектральные измерения)
Рис. 1.2.10. Вид диалогового окна конфигурирования ЭкспрессВП
Важную роль в создании кода ВП играют узлы, расположенные в подпалитре Структуры (рис. 1.2.11). В данной подпалитре представлены следующие структу' ры: For Loop (Цикл с фиксированным числом итераций) – 1, While Loop (Цикл по условию) – 2, Timed Structures (Временной синхронизации) – 3, Case Structure (Вариант) – 4, Event Structure (Событие) – 5, узел MathScript Node – 6, Flat Sequence Structure (Открытая последовательность) – 7, Stacked Sequence Structure (Стековая последовательность) – 8, Formula Node (узел Формула) – 9, Diagram Disable Structure (Структура отключения диаграммы) – 10, Conditional Disable Structure (Структура отключения по условию) – 11, Feedback Node (узел Обратная связь) – 12, Shared Variable (Переменная общего доступа) – 13, Local (Локальная переменная) – 14 и Global (Глобальная пере менная) – 15. При помещении структур, представленных в виде рамки на блок'диаграмме, необходимо модифицированным указателем мыши очертить на ней прямоуголь' ник, охватывающий существующий код или ограничивающий место для будуще' го кода, который должен выполняться в данной структуре. Применение некото' рых структур было показано ранее на рис. 1.2.2.
32
Обзор основных тем книги
Знакомство с LabVIEW
33
Рис. 1.2.12. Блокдиаграмма ВП TransparentVI Рис. 1.2.11. Структуры LabVIEW
Следующий набор узлов, упомянутых выше – Property Node (Узел свойства) и Invoke Node (Узел метода), позволяет реализовать в LabVIEW методологию объектноориентированного программирования, когда программный объект опи' сывается набором свойств и методов (а также событий). Программными объекта' ми в LabVIEW могут быть как объекты самой среды LabVIEW, доступные через технологию VI Server (Сервер ВП), так и объекты, доступные через технологии ActiveX, .NET, DataSocket, IMAQImage, Sequrity, SharedVariable и VISA. Сервер ВП позволяет использовать в программе методы и свойства таких объектов, как LabVIEW (Приложение), ВП, Project (Проект), ProjectItem (Элемент проекта), Variable (Переменная) и Generic (Общие объекты). Выбор перечисленных выше классов объектов, самих объектов и их методов и свойств возможен как из кон' текстного меню узлов, так и из строки главного меню View ⇒ Class Browser (Вид ⇒ Обозреватель классов). На рис. 1.2.12 приведена блок'диаграмма ВП Trans' parentVI из библиотеки примеров NI Example Finder, в котором с помощью свой' ства Front Panel Window:Transparency производится регулировка прозрачности лицевой панели. Call By Reference Node (Узел вызова по ссылке) служит для динамического вызова локального или удаленного ВП по его ссылке (reference). При этом ссылка ВП должна быть строгого типа (Strictly Typed). Строгость ссылки означает одно' значное соответствие соединительных панелей вызываемого ВП и используемого при создании ссылки. В отличие от статического вызова подприбора вызов по ссылке загружает ВП в память только при открытии ссылки и, соответственно, выгружает из памяти при ее закрытии. В нижней части функции находится область, в которой отображается соедини' тельная панель вызываемого ВП. К терминалам этой панели, так же как и к терми' налам подприбора, могут быть подключены элементы управления и индикаторы. Пример использования функции вызова по ссылке приведен на рис. 1.2.13. Он также взят из набора примеров NI Example Finder (Фрагмент ВП Dynamic Load Example).
Рис. 1.2.13. Пример использования функции Узел вызова по ссылке
Call Library Function Node (Узел вызова библиотечной функции) применя' ется для вызова процедур, написанных на других языках и оформленных в виде внешних динамически подключаемых библиотек (DLL). Первоначально функ' ция не имеет параметров и возвращает тип void. Настройка атрибутов функции производится с помощью одноименного диалогового окна, вызываемого двойным щелчком ЛКМ на иконке функции или выбором пункта Configure (Конфигури ровать) в контекстном меню функции. Более подробное описание методики на' стройки данной функции также можно найти в справочнике [181]. На рис. 1.2.14 приведена блок'диаграмма модифицированного ВП hostname из набора приме' ров, в котором функция Call Library Function применяется для получения с помо' щью средств системы имени компьютера, на котором выполняется LabVIEW.
Рис. 1.2.14. Блокдиаграмма модифицированного ВП hostname
34
Обзор основных тем книги
Для обработки больших наборов данных, к числу которых относятся, в частно' сти, и изображения в LabVIEW, широко применяется такая структура данных, как массивы. Массив LabVIEW – это набор индексированных данных одного типа. Он может иметь любую размерность и содержать до 231 элементов на раз' мерность. Элементом массива может быть любой тип данных за исключением массива, таблицы или графика. Доступ к элементам осуществляется с помощью индексов. Значения индексов лежат в диапазоне от 0 до N – 1, где N – количество элементов массива. В LabVIEW массивы могут быть созданы как вручную на лицевой панели или на панели блок'диаграммы, так и программно. На лицевой панели могут быть со' зданы массивы элементов управления или индикаторов, на панели блок'диаграм' мы – массивы констант. Программно массивы создаются с помощью структур и соответствующих функций. Для формирования массивов на лицевой панели необходимо разместить на ней шаблон массива (array shell) из подпалитры Array (Массив) палитры эле' ментов управления (рис. 1.2.15 и 1.2.16). При этом терминал массива имеет чер' ный цвет и отображает пустые скобки. В окно отображения элемента может быть помещен объект данных – элемент управления или индикатор в соответствии с типом формируемого массива за исключением типов, перечисленных выше. По' мещение объекта сопровождается мерцанием оболочки, а его фиксация в окне приводит к присвоению терминалу массива цвета, типа и надписи, соответствую' щих помещенному объекту. После задания типа массива он может использовать' ся для ввода или вывода данных. Аналогичным образом создается массив констант на блок'диаграмме. Для со' здания массива констант необходимо разместить на диаграмме шаблон массива констант (Array Constant) из палитры Array (Массив) и поместить в него кон' станту необходимого типа. В табл. 1.2.4 на рис. 1.2.15–1.2.24 показаны виды массивов различного типа на лицевой панели и соответствующих терминалов на блок'диаграмме: массив чис' ловых элементов управления (рис. 1.2.17, 1.2.18), массив логических индикаторов (рис. 1.2.19, 1.2.20), массив элементов управления строкового типа (рис. 1.2.21, 1.2.22) и двумерный массив индикаторов целых чисел (рис. 1.2.23, 1.2.24). Для программного формирования и обработки массивов используются рассмот' ренные выше структуры For Loop (Цикл с фиксированным числом итераций) и While Loop (Цикл по условию), имеющие в своем составе индексную переменную i. Если элементы массива формируются в структуре цикла с фиксированным числом итераций, то их преобразование в массив происходит в терминале вывода данных, находящемся по умолчанию в режиме Enable Indexing (Включить индек сирование) – рис. 1.2.25. В этом режиме терминал вывода данных представляет пустотелый двойной квадрат. Формирование массива сопровождается изменени' ем толщины провода с данными после его выхода из структуры. Выключение ре' жима индексирования осуществляется с помощью пункта Disable Indexing (От ключить индексирование) контекстного меню терминала. При этом из структуры будет выводиться только последний элемент.
Знакомство с LabVIEW
35
Таблица 1.2.4. Виды массивов различных типов данных На лицевой панели
На блокдиаграмме
Рис. 1.2.16. Шаблон пустого массива
Рис. 1.2.15. Шаблон пустого массива
Рис. 1.2.18. Шаблон массива числовых элементов управления Рис. 1.2.17. Шаблон массива числовых элементов управления
Рис. 1.2.19. Шаблон массива логических индикаторов
Рис. 1.2.21. Шаблон массива строковых элементов управления
Рис. 1.2.23. Шаблон двумерного массива числовых индикаторов
Рис. 1.2.20. Шаблон массива логических индикаторов
Рис. 1.2.22. Шаблон массива строковых элементов управления
Рис. 1.2.24. Шаблон двумерного массива числовых индикаторов
36
Обзор основных тем книги
Знакомство с LabVIEW
37
правило, сигналами или изображениями. В табл. 1.2.5 приведен перечень графи' ческих индикаторов, находящихся в двух верхних строках подпалитры, а в табл. 1.2.6 – перечень трехмерных индикаторов из третьего ряда с краткими пояснени' ями. Иконка, находящаяся в левом нижнем углу, открывает доступ к подпалитре Controls (Элементы управления), из числа ее элементов ниже рассмотрен только так называемый Picture (Рисунок). Рис. 1.2.25. Варианты ввода и вывода массивов в структуре цикла с фиксированным числом итераций
Описанный режим автоматического индексирования и аккумулирования мас' сивов на границе цикла путем добавления одного нового элемента в каждом по' вторении цикла называется автоиндексированием (autoindexing). При вводе массива в структуру цикла терминал ввода данных по умолчанию также находится в состоянии Включить индексирование (рис. 1.2.25). В этом режи' ме терминал передает в цикл по одному элементу в каждую итерацию. В этом слу' чае структура автоматически определяет размерность массива, и нет необходимо' сти задавать значение терминала числа итераций. При подаче на вход нескольких массивов разной длины структура настраивается на самый короткий массив. То же самое происходит и при одновременно подключенном терминале числа итераций. Если точку входа перевести в состояние Отключить индексирование, массив будет вводиться в цикл целиком. При этом, естественно, способность автоиндек' сирования теряется, и значение числа циклов должно быть задано. На рис. 1.2.25 видно, что при выводе одномерного массива из цикла в режиме автоиндексирования он преобразуется в двумерный массив. Массив такой же раз' мерности может быть создан на основе скалярных переменных при использовании структуры из внутреннего и внешнего циклов. Увеличение размерности массива, созданного оператором на передней панели или в блок'диаграмме, может быть вы' полнено с помощью пункта Add Dimension (Добавить размерность) контекстного меню элемента управления/ отображения индекса массива. Такое же действие может быть выполнено и инструментом перемещения. В структуре Цикл по условию ситуация с индекса' цией противоположная, то есть по умолчанию термина' лы ввода и вывода данных находятся в состоянии От ключить индексирование. Если с функциональной диаграммы перенести вни' мание на лицевую панель, а точнее – на палитру эле' ментов управления и индикаторов (см. рис. 1.2.4), то можно отметить, что наиболее сложными для освоения и настройки являются графические индикаторы из подпалитры Graph (рис. 1.2.26). Они служат для ото' бражения больших наборов данных, являющихся, как Рис. 1.2.26. Вид подпалитры Графики
Таблица 1.2.5. Перечень графических индикаторов Развертка сигнала (W Wav eform Chart aveform Chart) – графический индикатор, имитирующий работу самописца. Поступающие данные нумеруются по оси абсцисс целыми числами. Поскольку индикатор запоминает всю подаваемую на него информацию в виде отдельных чисел, он устанавливается внутри структур Цикл с фиксирован ным числом итераций и Цикл по условию условию. Индикатор может быть многолучевым и многоэкранным. Для отображения двух и более наборов данных от разных источников необходимо объединить их в кластер с помощью функции Bundle Объединить (Объединить Объединить). Стирание информации производится с помощью строки Data Operatio ns ⇒ Cle ar Chart (Операции Операции с данными ⇒ Очистить развертку Operations Clear развертку) контек стного меню графика График сигнала (W Wav eform Graph aveform Graph) – графический индикатор, имитирующий работу осциллографа. Он принимает данные в виде массива чисел и отображает их с равномерным шагом. Для отображения двух и более массивов данных они должны быть объединены в двумерный массив с помощью функции Build Arra Arrayy Сформировать массив (Сформировать массив). Для отображения графика с заданной начальной точки и с заданным шагом предусмотрено формирование кластера из трех элементов Объединить с помощью функции Bundle (Объединить Объединить), на верхний вход которой подается начальное смещение, а на средний – шаг отображения Двухкоординатный график (XY XY Graph Graph) – графический индикатор, позволяющий отображать функциональные зависимости y = f(x). Для отображения на данном индикаторе массива точек с произвольными координатами по осям необходимо сформировать массив кластеров или объединить два массива координат X и Y в кластер. С целью отображения двух и более графиков необходимо использовать функцию Build Arra Сформировать массив Arrayy (Сформировать массив) для формирования массива кластеров ЭкспрессВП Двухкоординатный график (XY XY Graph) Развертка интенсивности (Intensity Intensity Chart Intensity Chart) и График интенсивности (Intensity Graph Graph) служат для отображения двумерных массивов данных в виде графиков интенсивности такой же размерности. В исходном состоянии на Шкале интен сивностей (Ramp Ramp Ramp) отображается 3 цвета – черный, соответствующий нижней половине диапазона, синий, соответствующий верхней половине диапазона, и белый, соответствующий превышению диапазона. Однако при включении Интерполировать цвет режима Interpolate Color (Интерполировать цвет) в шкале интенсивностей градации интенсивности при переходе от черного к белому становятся плавными. При желании изменить палитру цветов необходимо сформировать Таблицу цветов (Color Color T able Table able), то есть рассчитать массив цифровых значений цветов, которые будут соответствовать градациям величины данных, и подключить Pr operty Node таблицу к Узлу свойств графического индикатора (Pr Property Node) с установлен able (Таблица Таблица цветов ным свойством Color T Table цветов)
38
Обзор основных тем книги
Таблица 1.2.5. Перечень графических индикаторов (продолжение) График цифрового сигнала (Digital Digital W av eform Graph Wav aveform Graph) служит для отображения массива целых чисел в виде диаграмм логических сигналов, соответствующих двоичным разрядам чисел. Для работы индикатора необходимо сформировать кластер, содержащий начальное значение, шаг, отображаемые данные и число портов График комбинированного сигнала (MixedSignal MixedSignal Graph Graph) отличается тем, что на него можно одновременно подавать самые разные типы сигналов, объединив их в кластер. Сюда могут входить массив, кластер, цифровой или аналоговый сигнал. Еще одна особенность этого индикатора состоит в том, что Панель редактирования графика реализована в нем в виде элемента управления Дерево
Все перечисленные выше графические индикаторы имеют в меню настройки более обширный раздел Visible Items (Видимые элементы) и дополнительные пун' кты, связанные с настройкой осей. Так, в частности, в состав меню Видимые эле менты этих индикаторов входят следующие разделы (рис. 1.2.27): Label (Ярлык), Caption (Заголовок), Plot Legend (Панель редактирования графика), Scale Le gend (Панель редактирования масштаба по осям), Graph Palette (Палитра эле ментов управления графиком), Cursor Legend (Панель редактирования курсора), Scrollbar (Линейка прокрутки), X Scale (Масштаб по X ), Y Scale (Масштаб по Y).
Рис. 1.2.27. Вид графика сигнала с панелями и атрибутами
Знакомство с LabVIEW
39
Меню Видимые элементы графического индикатора Развертка сигнала отли' чается тем, что на месте строки Панель редактирования курсора находится стро' ка Цифровой индикатор. Панель редактирования графика может перестраиваться по размеру в верти' кальном направлении для настройки параметров набора графиков. Панель ре дактирования графика имеет свое контекстное меню, которое позволяет настраи' вать тип графиков, их цвет, ширину и тип линии, тип точек и вид их соединения. Панель редактирования шкалы позволяет фиксировать или сбрасывать в ис' ходное состояние масштаб по осям, установленный пользователем с помощью од' ного из инструментов, входящих в состав палитры элементов управления графи ком. Помимо этого, она позволяет настраивать параметры осей: формат, точность, характер расположения меток, видимость оси и подписи, цвет сетки. Эти и ряд других параметров могут быть также установлены и из контекстного меню осей индикатора. В состав палитры Графики входят также трехмерные графики. Установка та' ких графиков на лицевой панели сопровождается появлением на блок'диаграмме связки из ссылки (Refnum) на элемент управления ActiveX CWGraph3D и соот' ветствующего ВП (табл. 1.2.6). Настройка графиков производится с помощью диалогового окна Свойства: CWGraph3D Control, вызываемого с помощью строки CWGraph3D ⇒ Свой ства… контекстного меню графика. Особым графическим элементом для ввода и вывода растровых изображений служит Рисунок (Picture). Для подготовки таких изображений используются многочисленные функции из подпалитр Picture Plots VIs (ВП рисунков графи ков), Picture Functions VIs (ВП функций рисунков) и Graphics Formats VIs (ВП графических форматов), находящихся, в свою очередь, в подпалитре Graphics & Sound (Графики и звук) – рис. 1.2.3. Помимо изучения функциональных элементов и инструментария среды LabVIEW, рассмотренных выше, для эффективной разработки ВП необходимо освоить технологию программирования. В этом плане целесообразно использо' вать следующие возможности и учитывать ряд рекомендаций: • создание ВП рекомендуют начинать с размещения элементов управления и индикаторов на лицевой панели. После установки этих элементов может быть произведена их настройка – указаны Ярлыки (Labels) или Заголовки (Captions), изменен Шрифт (Font), Размер (Size), Стиль (Style), Вырав нивание (Justify) и Цвет (Color); • элементы лицевой панели или узлы блок'диаграммы могут быть выделены инструментом перемещения и перенесены в другое место, сгруппированы и заблокированы, удалены, вырезаны, скопированы и вставлены. Их размеры и цвета также могут быть изменены (для тех элементов, которые допускают такое изменение); • для соединения терминалов проводниками следует подвести инструмент соединения «катушка» к первому терминалу, сделать щелчок по нему после начала мерцания, подвести ко второму терминалу и также щелкнуть по
40
Обзор основных тем книги
Знакомство с LabVIEW
Таблица 1.2.6. Перечень трехмерных графиков График 3Dповерхности Графический индикатор 3D Surface Graph (График 3Dповерхности) – рис. 1.2.28 – предназначен для отображения двумерных данных в виде поверх ности на трехмерном графике
•
Рис. 1.2.28. Графический индикатор 3D Surface Graph График 3Dповерхности (График 3Dповерхности) arametric Graph (Параметрический Параметрический Графический индикатор 3D P Parametric 3Dграфик) – рис. 1.2.29 – отображает данные с помощью трех двумерных 3Dграфик массивов, характеризующих проекции графика на плоскости x, y и z
•
•
• arametric Graph Рис. 1.2.29. Графический индикатор 3D P Parametric Параметрический 3Dграфик 3Dграфик) (Параметрический
•
e Graph (график график 3Dкривой Графический индикатор 3D Curv Curve 3Dкривой) – рис. 1.2.30 – используется для отображения данных в виде пространственной кривой
•
• • График 3Dкривой Рис. 1.2.30. Графический индикатор 3D Curv Curve 3Dкривой) e Graph (График
41
нему после начала мерцания. Таким же образом производится соединение с существующим проводником. LabVIEW предоставляет возможность ав' томатического соединения при достаточном сближении двух терминалов и установке соответствующей опции в настройках; терминалы элементов управления и индикаторов на блок'диаграмме в за' висимости от типа имеют свой цвет: числовые – синий или оранжевый, ло' гические – зеленый, строковые – розовый, пути к файлам на диске – цвета морской волны и т. п. Проводники, подключенные к этим терминалам, как правило, имеют такой же цвет (если на рамке терминала не происходит пре' образование типа). В этом проявляется одно из условий согласования типов переменных. Прочие аспекты согласования включают толщину про' водников, связанную с размерностью передаваемых данных (скаляр, одно' мерный или многомерный массив) и их стиль. При подключении провод' ников к терминалам узлов блок'диаграммы также должно соблюдаться согласование типов. Терминалы узлов полиморфных ВП или функций адаптируются к типу подключаемых проводников (данных); следует учитывать, что данные, поданные на входы функций и подприбо' ров, могут быть обязательные, рекомендуемые и необязательные. В окне контекстной помощи обязательные входы показываются жирным шриф' том, рекомендуемые – простым текстом, а необязательные – окрашены в серый цвет; если соединение выполняется с ошибкой, то появляется поврежденный (broken) проводник в виде черной пунктирной линии, а кнопка запуска программы показана разорванной, и программа не будет выполняться. Для просмотра списка возможных ошибок можно нажать кнопку запуска, а для удаления всех поврежденных проводников – воспользоваться комбинаци' ей «горячих» клавиш Ctrl+B; чтобы проводник мог неоднократно изменять направление во время соеди' нения, необходимо зафиксировать точку поворота щелчком мыши. Без щелчка направление проводника изменяется на 90о только один раз; выделение сегмента провода (одиночного отрезка, расположенного го' ризонтально или вертикально) производится однократным щелчком по проводу, выделение ответвления (отрезка провода между узлом или тер' миналом до пересечения с другими проводами) – двойным щелчком и вы' деление всего провода – тройным щелчком; с помощью контекстного меню входного или выходного терминала функ' ции или узла блок'диаграммы к ним могут быть подключены соответствен' но: на вход – элементы управления или константы или на выход – инди' каторы; с помощью строки Insert (Вставить) контекстного меню провода в его раз' рыв может быть вставлена выбранная функция; выбор строки Заменить (Replace) контекстного меню любого элемента ли' цевой панели или блок'диаграммы позволяет произвести замену выбран' ного ВП;
42
Обзор основных тем книги
• нежелательное действие может быть отменено комбинацией «горячих» кла' виш Ctrl+Z или с помощью вызова строки меню Edit ⇒ Undo (Правка ⇒ Отменить). Новые возможности, введенные в LabVIEW 8, связаны с поддержкой програм' мирования распределенных систем на базе разнородных платформ: настольных компьютеров, систем реального времени, ПЛИС, КПК, встроенных микропро' цессоров и сигнальных процессоров. Программирование перечисленных устройств обеспечивается с помощью соответствующих обновленных модулей: LabVIEW Real'Time Module, LabVIEW FPGA Module, LabVIEW PDA Module. Для хранения исходных кодов и настроек всех узлов распределенной системы служит новая оболочка управления проектами – LabVIEW 8 Project (рис. 1.2.31).
Рис. 1.2.31. Вид окна проекта
Проект также поддерживает коллективную разработку больших приложений за счет включения интегрированных средств управления исходными текстами (Visual SourceSafe, Perforce, Rational ClearCase, PVCS, MKS и CVS) и Библиотек проектов (Project Libraries), содержащих исходные коды в виде модульных уни' фицированных функций, которые можно многократно вызывать из различных подсистем. Проект позволяет создавать загружаемые модули программ в виде ав тономного приложения (StandAlone Application) или динамически подключае'
Знакомство с LabVIEW
43
мой библиотеки (DLL), а также zip'файлы или дистрибутив с исходными кодами (Source Distribution). Таким образом, простая и дружественная пользователю оболочка проекта LabVIEW позволяет наблюдать, редактировать, загружать, вы' полнять и отлаживать программный код, работающий на любом узле системы. Для упрощения передачи данных между различными вычислительными плат' формами служит Переменная общего доступа LabVIEW 8 (LabVIEW Shared Variable), предоставляющая единый, гибкий и открытый коммуникационный протокол. Переменная общего доступа объединяет функциональность существующих технологий передачи данных, таких как DataSocket, и позволяет передавать теку' щие данные между различными ВП проекта или по сети, при этом источниками или приемниками данных могут быть элементы лицевой панели или блок'диа' граммы. Переменная общего доступа создается в окне проекта, как правило, в составе библиотеки проекта, с помощью контекстного меню узла этой библиотеки. На' стройка параметров переменной производится в диалоговом окне Shared Variable Properties (Свойства переменной общего доступа), которое позволяет выбрать Тип данных (Data Type), Тип переменной (Variable Type), использование и пара' метры буфера, а также параметры подключения к источнику. Тип переменной может быть установлен как Единичный процесс (SingleProcess) для обмена дан' ными между ВП локального компьютера или как Публикуемая в сети (Network Published) для обмена по сети. Переменная общего доступа с публикацией в сети производит обмен данными между ВП, удаленными компьютерами и приборами с помощью Механизма общей переменной (Shared Variable Engine). Этот меха' низм использует протокол передачи данных NI ИздательПодписчик (Publish SubscriberProtocol – PSP). Для связи элементов блок'диаграммы ВП с общей переменной ее иконка мо' жет быть перенесена из окна проекта или установлена из подпалитры Структуры. Связь элементов лицевой панели с общей переменной также может устанавли' ваться с помощью переноса иконки переменной из окна проекта на лицевую панель или путем конфигурирования свойств этих элементов (раздел Data Binding). Модули и инструменты LabVIEW, устанавливаемые пользователем, могут до' бавить типы, опции конфигурации и ограничения переменной общего доступа. Среди других нововведений LabVIEW 8 следует отметить элемент XControl (рис. 1.2.31), Разделительные полосы (Splitter Burs), Аннотации графиков (Graph Annotations), возможность экспорта упрощенных изображений графиков, рисун' ков и таблиц, пользовательские контекстные меню объектов лицевой панели, дос' тупные во время работы программы (Custom RunTime Shortcut Menu). Среди наиболее интересных функций обработки сигнала, анализа и математики можно отметить следующие: реализация двумерных функций цифровой обработки сиг' нала (преобразования Фурье, свертки, авто' и кросскорреляции) для действи' тельных и комплексных данных, введение подпалитры функций преобразования координат, новые типы окон, реализация непрерывных и дискретных распределе' ний вероятностей. В подпалитре функций аппроксимации введены новые линей'
44
Обзор основных тем книги
ные параметрические модели, реализованы устойчивые алгоритмы сглаживания и новые инструменты оценки качества аппроксимации. Таким образом, все рассмотренное выше богатство функциональных возмож' ностей и рабочего инструментария среды LabVIEW позволяет успешно решать практически любую задачу научных исследований, проектирования новых уст' ройств или автоматизации их производства.
1.3. Знакомство с NI Vision Наряду с универсальными средствами разработки компьютерных измерительно' контрольных систем, такими как графическая среда программирования LabVIEW и модульная аппаратная платформа PXI, National Instruments предлагает также широкий спектр специализированных программных библиотек и аппаратных мо' дулей. Одной из специализированных аппаратно'программных технологий Na' tional Instruments является платформа машинного зрения (NI Vision), состоящая из технологии сбора (чаще говорят – захвата) изображения IMAQ (IMage AcQui' sion) и программной технологии его обработки и анализа. Аппаратная часть технологии IMAQ включает в себя модули захвата изобра' жения с практически всех распространенных источников видеосигналов – анало' говых и цифровых видеокамер различных стандартов и конфигураций. Эти моду' ли разработаны таким образом, что большей частью их функций можно управлять программно, что значительно упрощает ввод изображения с самых разнообраз' ных видеопреобразователей. По этой причине с помощью IMAQ вы можете рабо' тать как с изображениями любого спектрального диапазона (от рентгеновского до инфракрасного), с разной скоростью ввода – от единичных «снимков» до десят' ков тысяч кадров в секунду, с различной глубиной оцифровки (от 8 до 32 разря' дов). Интерфейсы IMAQ также предлагают программируемые средства синх' ронизации видеоввода с иными дискретными или аналоговыми процессами в исследуемой или управляемой системе.
1.3.1. Платформа NI Vision: захват, обработка и анализ изображений в LabVIEW Совокупность программных средств National Instruments IMAQ Vision (по сути, в комплексе не имеющая мировых аналогов) состоит из функций высокого уров' ня для всех средств разработки – LabVIEW, LabWindows/CVI, C/C++ и Visual Basic.NET. Первая группа этих функций позволяет максимально просто и эффек' тивно управлять всеми устройствами IMAQ и обеспечивает их синхронизацию с иными аппаратными узлами системы. Вторая, существенно более широкая группа программных функций, предназначена для обработки и анализа уже вве' денного изображения, в том числе в реальном масштабе времени. Она может рабо' тать с изображениями в черно'белом (двоичном), градиентном (оттенки серого) и полноцветном форматах. Например, функции обработки изображений обеспечи'
Знакомство с NI Vision
45
вают различные геометрические преобразования, фильтрацию, взвешивание, коррекцию, построение распределений, калибровку. Функции анализа еще более разнообразны и включают в себя поиск и выделение краев объектов, определение геометрических параметров (размеры, углы наклона, сечения, площади) объек' тов, различные методы статистического и морфологического анализа примени' тельно к изображениям, поиск и распознавание объектов по маскам, а также клас' сификацию объектов. Особые функции упрощают считывание и распознавание символов, штрихкодов, а также показаний стрелочных и цифровых индикаторов. Следует отметить, что в каждой новой версии библиотеки IMAQ Vision появля' ются новые, расширенные функции анализа изображений и машинного зрения. В последних версиях IMAQ Vision все большее внимание стало уделяться анали' зу «объемных» 3D'изображений. Области применений платформы технического зрения традиционно очень многообразны. Это промышленный контроль качества, робототехника и слеже' ние за технологическим процессом, диагностика в машиностроении, электронной промышленности и строительстве, системы безопасности, метрологический конт' роль, научные исследования, а также многие другие. Можно с уверенностью ска' зать, что применение машинного зрения National Instruments в основном зависит от фантазии разработчиков.
1.3.2. Функции NI Vision Все функции NI Vision доступны для визуального программирования в LabVIEW при помощи специальных наборов иконок, называемых палитрами. Палитры LabVIEW имеют большое число уровней вложенности, поэтому для простоты указания уровня мы будем далее говорить, что палитры самого верхнего уровня представляют группы методов, далее каждая группа содержит собственно палит' ры, а в каждой палитре уже находятся отдельные инструменты или функции. Об' щая структура групп, палитр и функций NI Vision представлена ниже в табл. 1.3.1. В ней также указано, в каких разделах данной книги рассматривается та или иная функция. Некоторые палитры приводятся не полностью – упоминаются только те функции, которые рассмотрены в данной книге.
Таблица 1.3.1. Палитры и функции NI Vision Палитры и функции Vision Utilities Группа Visio n Utiliti es Палитра Pixel Manipulation IMAQ GetPixelValue IMAQ GetRowCol IMAQ GetPixelLine IMAQ ImageToArray IMAQ SetPixelValue IMAQ SetRowCol IMAQ SetPixelLine IMAQ ArrayToImage
Смысл операций
Упоминание в книге
Служебные функции: управление растровыми изображениями и графическими примитивами на них
Раздел.4.6
46
Обзор основных тем книги
Знакомство с NI Vision
Таблица 1.3.1. Палитры и функции NI Vision (продолжение) Палитры и функции IMAQ FillImage IMAQ Draw IMAQ Draw Text Палитра Calibration IMAQ Learn Calibration Template IMAQ Set Simple Calibration IMAQ Set Calibration Info IMAQ Get Calibration Info IMAQ Convert Real World to Pixel IMAQ Convert Pixel to Real World IMAQ Correct Calibrated Image IMAQ Read Image And Vision Info IMAQ Write Image And Vision Info ocessing Группа Image Pr Pro Палитра Processing IMAQ UserLookup IMAQ MathLookup IMAQ Equalize IMAQ BCGlookup IMAQ Threshold IMAQ MultiThreshold IMAQ Label IMAQ Inverse IMAQ AutoBThreshold IMAQ AutoMThreshold IMAQ MagicWand Палитра Filters IMAQ GetKernel IMAQ BuildKernel IMAQ Convolute IMAQ Correlate IMAQ LowPass IMAQ NthOrder IMAQ EdgeDetection IMAQ CannyEdgeDetection Палитра Morphology IMAQ Distance IMAQ FillHall IMAQ RejectBorder IMAQ RemoveParticle IMAQ Morphology IMAQ GreyMorphology IMAQ Segmentation IMAQ Danielsson IMAQ FindCircles IMAQ ConvexHull IMAQ Skeleton
47
Таблица 1.3.1. Палитры и функции NI Vision (продолжение)
Смысл операций
Упоминание в книге
Функции калибровки изображений для работы с метрической точностью и пространственным разрешением
Раздел 4.4
Функции гистограммной обработки Эквализация яркости
Раздел 3.1 Раздел 3.1 Раздел 3.1
Пороговая сегментация Мультипороговая сегментация Разметка связных областей Инвертирование яркости Адаптивный порог Мультипороговая сегментация
Раздел 3.1 Раздел 3.1 Раздел 4.1 Раздел 3.1 Раздел 3.1 Раздел 3.1
Фильтрация изображений в пространственной области: Создание маски фильтра Линейная свертка с маской Корреляция Фильтр низких частот Ранговый нелинейный фильтр Выделение контуров Оператор Кани
Раздел 3.3 Раздел 3.3 Раздел 3.3 Раздел 3.3 Раздел 3.3 Раздел 3.2 Раздел 3.4 Раздел 3.4
Вычисление расстояний Заполнение «дырок» Удаление краевых областей Удаление областей Бинарная морфология Полутоновая морфология Сегментация Разметка толщин Обнаружение кругов Выпуклая оболочка Скелетизация (утончение)
Раздел 4.1 Раздел 3.5 Раздел 4.1 Раздел 4.1 Раздел 3.5 Раздел 3.5 Раздел 4.1 Раздел 4.1 Раздел 4.2 Раздел 3.5 Раздел 3.5
Палитры и функции IMAQ Separation IMAQ ParticleFilter 2 Палитра Analysis IMAQ Histograph IMAQ Histogram IMAQ Quantify IMAQ Centroid IMAQ LineProfile IMAQ ROIProfile IMAQ LinearAverages IMAQ Particle Analysis Report IMAQ Particle Analysis Палитра Color Processing IMAQ ColorBCGLookup IMAQ ColorEqualize IMAQ ColorHistogram IMAQ ColorHistograph IMAQ ColorLearn IMAQ ColorMatch IMAQ ColorThreshold IMAQ ColorUserLookup Палитра Operators IMAQ Absolute Difference IMAQ Add IMAQ And IMAQ Compare IMAQ Divide IMAQ LogDiff IMAQ Mask IMAQ Modulo IMAQ MulDiv IMAQ Multiply IMAQ Or IMAQ Subtract IMAQ Xor Палитра Frequency Domain IMAQ ArrayToComplexImage IMAQ ArrayToComplexPlane IMAQ ComplexAdd IMAQ ComplexAttenuate IMAQ ComplexConjugate IMAQ ComplexDivide IMAQ ComplexFlipFrequency IMAQ ComplexImageToArray IMAQ ComplexMultiply IMAQ ComplexPlaneToArray IMAQ ComplexPlaneToImage
Смысл операций Разбиение Фильтрация областей
Упоминание в книге Раздел 4.1 Раздел 4.1
Гистограмма Гистограмма Функции сбора статистики по областям Профиль изображения
Раздел 3.1 Раздел 3.1 Раздел 4.1 Раздел 4.1 Раздел 3.1
Сбор линейных проекций
Раздел 3.1
Анализ областей
Раздел 4.1
Гистограммная обработка Эквализация Гистограмма Гистограмма Функции привязки эталонов Функции привязки эталонов Пороговая сегментация Гистограммная обработка Алгебраические операции над изображениями
Раздел 3.1 Раздел 3.1 Раздел 3.1 Раздел 3.1 Раздел 4.3 Раздел 4.3 Раздел 3.1 Раздел 3.1 Раздел 2.1
Сглаживание Сопряженное изображение
Раздел 3.3 Раздел 3.3
Транспонирование между стандартным и оптическим отображением
Раздел 3.3
48
Обзор основных тем книги
Знакомство с NI Vision
Таблица 1.3.1. Палитры и функции NI Vision (продолжение) Палитры и функции IMAQ ComplexSubtract IMAQ ComplexTruncate IMAQ FFT IMAQ ImageToComplexPlane IMAQ InverseFFT Группа Machine Visio n Vision Палитра Coordinate System IMAQ Find CoordSys (2 Rects) IMAQ Find CoordSys (Pattern) 2 IMAQ Find CoordSys (Rect) Палитра Count And Measure Objects IMAQ Count Objects Палитра Measure Intensities IMAQ Light Meter (Point) IMAQ Light Meter (Line) IMAQ Light Meter (Rectangle) Палитра Measure Distances IMAQ Clamp Horizontal Max IMAQ Clamp Horizontal Min IMAQ Clamp Vertical Max IMAQ Clamp Vertical Min Палитра Locate Edges IMAQ Find Vertical Edge IMAQ Find Horizontal Edge IMAQ Find Circular Edge IMAQ Find Concentric Edge Палитра Find Patterns IMAQ Find Pattern 2 Палитра Searching and Matching IMAQ Setup Learn Pattern 2 IMAQ Learn Pattern 2 IMAQ Setup Match Pattern 2 IMAQ Match Pattern 2 IMAQ Setup Learn Color Pattern IMAQ Learn Color Pattern IMAQ Setup Match Color Pattern IMAQ Match Color Pattern IMAQ Read Image And Vision Info IMAQ Write Image And Vision Info IMAQ Shape Match Tool Палитра Pattern Matching Advanced IMAQ Advanced Setup Learn Pattern 2 IMAQ Advanced Setup Match Pattern 2 IMAQ Refine Matches
Смысл операций
Частотный срез Преобразование Фурье
Таблица 1.3.1. Палитры и функции NI Vision (продолжение) Упоминание в книге
Палитры и функции
Раздел 3.3 Раздел 3.3
Палитра Caliper IMAQ Simple Edge IMAQ Edge Tool IMAQ PeakValley Detector
Обратное преобразование Фурье Раздел 3.3 IMAQ Caliper Tool
Определение систем координат, связанных с примитивами на изображении
IMAQ Line Gauge IMAQ Rake
Анализ областей
Раздел 4.1
Функции яркостных измерений
Раздел 4.4
Функции 2Dизмерений
Выделение геометрических примитивов
Раздел 4.4
Раздел 4.2
IMAQ Spoke IMAQ Concentric Rake IMAQ Interpolate 1D IMAQ Rotation Detect
Палитра Analytic Geometry IMAQ Point Distances IMAQ Get Angles IMAQ Fit Line IMAQ Lines Intersection IMAQ Perpendicular Line
Функции привязки эталонов
Раздел 4.3
IMAQ Bisecting Line IMAQ Mid Line
IMAQ Polygon Area
IMAQ Fit Circle 2 IMAQ Fit Ellipse 2
Функции привязки эталонов
49
Раздел 4.3
IMAQ GetPointsOnLine IMAQ GetPointsOnContour IMAQ Build CoordSys (Points) Палитра Instrument Readers IMAQ Get LCD ROI IMAQ Read LCD IMAQ Read Single Digit IMAQ Get Meter
Смысл операций
Упоминание в книге
Поиск краев вдоль профиля Поиск краев вдоль профиля Поиск минимумов и максимумов вдоль профиля Поиск попарно расположенных краев Определение расстояния между краями Выделение линий, близких к прямым Выделение линий, близких к окружностям
Раздел 3.1 Раздел 3.1 Раздел 3.1
Угол поворота изображений относительно друг друга
Раздел 4.3
Расстояние между точками Определение углов Поиск аппроксимирующей прямой Поиск точки пересечения прямых и угла между ними Построение перпендикуляра из точки на прямую Построение биссектрисы Построение прямой, делящей пополам перпендикуляр из точки на заданную прямую и параллельную ей Определение площади многоугольника, образованного заданными точками Поиск аппроксимирующей окружности Поиск аппроксимирующего эллипса
Раздел 4.6 Раздел 4.6 Раздел 4.2
Считывание показаний цифровых индикаторов
Раздел 4.5
Раздел 4.4 Раздел 4.4 Раздел 4.2 Раздел 4.2 Раздел 4.2
Раздел 4.6 Раздел 4.6 Раздел 4.6 Раздел 4.6
Раздел 4.4
Раздел 4.2 Раздел 4.2
50
Обзор основных тем книги
Знакомство с Vision Assistant
51
Таблица 1.3.1. Палитры и функции NI Vision (продолжение) Палитры и функции IMAQ Read Meter
Смысл операций Считывание показаний аналоговых индикаторов
IMAQ Get Meter 2 Считывание штриховых кодов IMAQ Read Barcode Палитра Select Region of Interest Функции построения области IMAQ Select Annulus интереса IMAQ Select Line IMAQ Select Point IMAQ Select Rectangle Группа «Text Reading (OCR)»
Упоминание в книге Раздел 4.5
Раздел 4.5 Раздел 4.6
1.4. Знакомство с Vision Assistant Если вы ранее не были знакомы с алгоритмическим программированием, возмож' но, даже визуальное программирование в среде LabVIEW покажется вам на пер' вых порах слишком сложным. В этом случае, прежде чем приступать к решению какой'либо задачи непосредственно в LabVIEW, стоит ознакомиться с таким об' легченным программным пакетом, как Vision Assistant. Среда Vision Assistant яв' ляется простым и удобным средством, при помощи которого можно быстро осу' ществить любые необходимые действия над исходным изображением. Рассмотрим типовой сеанс работы с Vision Assistant на примере одного из по' ставляемых вместе с пакетом демонстрационных проектов.
Рис. 1.4.1. Загрузка Vision Assistant
1.4.1. Начало работы с Vision Assistant Запустите Vision Assistant. Выберите опцию Solution Wizard, чтобы открыть демонстрационный проект (рис. 1.4.1). Выберите демонстрационный проект. Рассмотрим, например, проект Culture Analysis (рис. 1.4.2). Данный проект де' монстрирует выделение и визуализацию границ клеток. Нажмите кнопку Load Solution для того, чтобы открыть проект, – рис. 1.4.3. (Если откроется окно подсказки, его можно закрыть.) Рассмотрим содержимое передней панели программы Vision Assistant после загрузки проекта. Обрабатываемое изображение располагается в центре экрана. Оно будет изме' няться по мере того, как над изображением будут осуществляться те или иные действия. Внизу экрана справа располагается окно, в котором путем выбора пик' тограмм операций «пишется» сценарий обработки исходного изображения. В левой нижней части экрана располагается инструментарий – набор палитр виртуальных инструментов, при помощи которых, собственно, и производится обработка изоб' ражения. Все инструменты сгруппированы по нескольким палитрам, в зависимо' сти от их функциональности. Чтобы использовать тот или иной инструмент из
Рис. 1.4.2. Выбор демонстрационного проекта
палитры, необходимо выбрать левой кнопкой мыши пиктограмму данного инст' румента, настроить его параметры в открывшемся диалоговом окне и нажать кнопку OK в этом диалоговом окне. Изображение выбранного инструмента доба' вится к списку выполняемых процедур в окне Script (Сценарий). Примечание. Не все инструменты из палитры можно использовать по добным образом. Например, инструмент Measure позволяет произвес ти измерения на изображении, но не может быть добавлен в окно Script, так как не является «обработкой» и не изменяет изображение.
52
Обзор основных тем книги
Знакомство с Vision Assistant
53
Таблица 1.4.1. Последовательность этапов обработки изображения в проекте Culture Analysis Шаг 1
Пиктограмма
Содержание обработки Результат обработки Буферизация исходного изображения. Созданная копия будет подвергаться обработке, в то время как исходное изображение останется неизменным. *На каждом шаге нажимайте кнопку , чтобы перейти на следующий шаг
Рис. 1.4.4. Исходное изображение Рис. 1.4.3. Внешний вид Vision Assistant с загруженным проектом 2
Сглаживание изображения при помощи медианного фильтра. Эта операция устраняет шум, присутствующий на исходном изображении. *Обратите внимание, что изображение в главном окне изменилось
1.4.2. Пример работы в Vision Assistant Вернемся к загруженному демонстрационному проекту. Напомним, что данный проект демонстрирует выделение и визуализацию границ клеток. В этом примере выполнение задачи происходит за 11 последовательных шагов'операций. В начале работы вы находитесь на нулевом шаге – «загрузка исходного изоб' для того, чтобы перейти на следующий шаг. Вы ражения». Нажмите кнопку также можете щелкнуть мышкой по любому из инструментов, расположенных в окне Script, для того чтобы перейти к этому инструменту и увидеть результаты его работы. Дважды щелкнув мышью по пиктограмме любого инструмента, нахо' дящегося в окне Script, можно открыть список его параметров. Рассмотрим шаги сценария более подробно (табл. 1.4.1). Алгоритмы выполне' ния каждой из упомянутых в данном примере операций будут описаны в следую' щих главах книги. Здесь же нам важно ознакомиться именно с Vision Assistant как с первичным инструментом для построения и отработки различных модульных (состоящих из нескольких этапов) процедур. Таким образом, на завершающем этапе обработки выделенные границы облас' тей оказались «наложены» на исходное изображение. Задача выполнена. При этом на каждом шаге работы алгоритма мы могли видеть текущий результат обра' ботки, что очень удобно с методической и учебной точек зрения.
Рис. 1.4.5. Результат сглаживания 3
Увеличение контрастности границ клеток
Рис. 1.4.6. Увеличение контрастности границ клеток
54
Обзор основных тем книги
Знакомство с Vision Assistant
55
Таблица 1.4.1. Последовательность этапов обработки изображения в проекте Culture Analysis (продолжение)
Таблица 1.4.1. Последовательность этапов обработки изображения в проекте Culture Analysis (продолжение)
Шаг 4
Шаг 8
5
Пиктограмма
Содержание обработки Бинаризация изображения
Результат обработки
Пиктограмма
Содержание обработки Результат обработки Разметка связных областей. *Каждая область оказывается помеченной своим цветом
Инвертирование бинарного изображения. *Красный цвет на рисунке соответствует 1, черный – 0
Рис. 1.4.10. Разметка связных областей 9
Морфологическое выделение контуров частиц
Рис. 1.4.7. Инвертированное бинарное изображение
6
Отсев ложных малоразмерных областей, возникших после бинаризации
Рис. 1.4.11. Морфологическое выделение контуров объектов 10
Умножение на 255. Бинарное изображение принимает диапазон полутонового
Рис. 1.4.8. Результат фильрации малоразмерных объектов Рис. 1.4.12. Приведение бинарного изображения к полутоновому 7
Разделение «слипшихся» областей
Рис. 1.4.9. Разбиение областей
11
Сложение с изображением, сохраненным в буфере
Рис. 1.4.13. Результат сложения с исходным изображением
56
Обзор основных тем книги
Знакомство с Vision Assistant
57
1.4.3. Экспорт проекта в LabVIEW Как мы только что убедились, Vision Assistant позволяет достаточно быстро и лег' ко пробовать различные методы обработки, а также просматривать результаты работы тех или иных фильтров и функций на изображениях различного типа. Однако вести реальную разработку приложений машинного зрения в Vision Assistant сложно – разве что на самых первых этапах проектирования системы. Для продолжения работы над проектом National Instruments предоставляет воз' можность экспортировать готовый проект Vision Assistant в LabVIEW. Для этого в пункте меню Tools необходимо выбрать пункт Create LabVIEW VI (рис. 1.4.14).
Рис. 1.4.16. Часть блокдиаграммы созданного виртуального инструмента
Рис. 1.4.14. Экспорт проекта в LabVIEW
После выбора пути и имени файла, в который будет сохранен проект (рис. 1.4.15), необходимо нажать кнопку Finish. В результате будет создан соответствующий виртуальный инструмент (VI) – рис. 1.4.16. При этом на блок'диаграмме в LabVIEW будут располагаться вирту' альные инструменты, аналогичные тем, которые были использованы в Vision Assistant.
Рис. 1.4.15. Выбор пути для сохранения проекта
Следует отметить, что возможности IMAQ Vision в LabVIEW намного превос' ходят те, что заложены в Vision Assistant. Однако использовать их эффективно вы сможете лишь со временем, изучив их досконально. Поэтому на этапе обучения есть смысл начинать создание проекта обработки и анализа изображения именно в Vision Assistant. Инструменты IMAQ Vision в LabVIEW располагаются в палитре NI Measu rements (рис. 1.4.17).
Q Visio n Рис. 1.4.17. Расположение палитры IMA IMAQ Vision
58
Обзор основных тем книги
В заключение еще раз отметим, что преимуществом Vision Assistant является быстрота разработки каркаса вашей будущей программы. В нем можно изучать работу фильтров и других процедур анализа и обработки изображений при раз' личных их входных параметрах, отрабатывать последовательность действий для достижения конечного результата. После окончания исследований полученные наработки могут быть, естественно, экспортированы в LabVIEW. Таким образом, Vision Assistant действительно может стать ценным помощни' ком при изучении данного курса и даже на первых этапах разработки реальных проектов в области машинного зрения.
Цифровые изображения
2
2.1. Растровое изображение 2.1.1. Изображение как двумерный массив данных Когда мы смотрим на двумерное изображение какой'либо трехмерной сцены (на картине, фотографии, экране монитора), нам кажется, что там непосредственно присутствуют все те предметы, которые мы могли бы увидеть, если бы непосред' ственно наблюдали ту же сцену в жизни. Между тем все, что нам на самом деле дано в двумерном изображении, – это видимое поле, представляющее собой лишь некоторую функцию распределения яркости или цвета на двумерной плоскости: f(x,y), где x и y – декартовы координаты, описывающие плоскость изображения. Более того, если приблизиться вплотную к экрану компьютерного монитора, можно увидеть, что изображение на экране на самом деле не гладкое и непре' рывное, а представляет собой дискретную «мозаику», состоящую из отдельных цветных прямоугольников, расположенных в виде регулярной прямоугольной матрицы. Это и есть цифровое изображение. С математической точки зрения цифровое изображение представляет собой двумерную матрицу Im[x,y] размера (DimX×DimY), где x – целое число от 0 до DimX – 1, описывающее номер элемента в строке матрицы, y – целое число от 0 до DimY – 1, описывающее номер строки матрицы, в которой расположен данный элемент. При этом сам элемент цифрово' го изображения (ячейка прямоугольной матрицы) носит название пиксель (pixel, picture element). В простейшем случае каждый пиксель Im[x,y] имеет скалярное целочисленное значение, пропорциональное значению функции распределения яркости f(x,y) в данной точке плоскости. На рис. 2.1.1 слева показано изображение женского лица, представленное как изображение, а справа показан увеличенный фрагмент изображения того же лица (правый глаз), где для каждого элемента изображения указано соответствующее
60
Цифровые изображения
Рис. 2.1.1. Цифровое изображение как двумерная матрица интенсивностей
числовое значение пикселя. Светлым элементам изображения соответствуют боêльшие значения матрицы, темным – меньшие значения. Никакой другой ин' формации цифровое изображение не содержит. Начиная изучать машинное зрение, необходимо четко представлять себе, что в компьютере в качестве цифрового изображения хранится только и исключи' тельно двумерный массив чисел того или иного формата. Любые другие данные, которые мы хотели бы из изображения извлечь (фигуры, линии, объекты, разме' ры, содержание изображенного текста и т. д. и т. п.) – могут быть получены лишь в результате применения ряда процедур обработки и анализа изображения, кото' рые мы должны либо сами запрограммировать, либо использовать готовые про' цедуры, имеющиеся в известных пакетах программ для анализа изображений (та' ких как IMAQ Vision). При этом для решения простых задач компьютерного зрения готовые средства наверняка найдутся в стандартных библиотеках проце' дур обработки изображений, для решения задач посложнее необходимо будет скомбинировать те или иные готовые процедуры, а для многих вполне «обыден' ных» задач, которые «биологическое» зрение человека, казалось бы, решает легко и играючи, компьютерное машинное зрение до сих пор решений не имеет и все еще продолжает их искать. Ведь используя свое естественное зрение, человек лег' ко ориентируется в любой обстановке, узнает предметы, выбирает путь, управля' ет автомобилем и многое, многое другое. Почему же компьютер, получающий изображение от видеокамеры, всего этого не может? Может быть, дело в строении человеческого глаза? На самом деле человеческий глаз, как и видеокамера, всего лишь формирует «видимое поле», аналогичное цифровому изображению. При этом оптическая си' стема, состоящая из зрачка и хрусталика, проецирует двумерное изображение на сетчатку глаза, где фоточувствительные клетки («палочки» и «колбочки») преоб' разуют полученное изображение в нервные импульсы. И только после этого сложный механизм обработки полученной информации, функционирующий в соответствующем отделе нашего мозга, интерпретирует эти импульсы как по' нятное нам изображение видимой сцены. Таким образом, и у человека функцию «видения» выполняет не один только глаз, но система «глаз + мозг» («сенсор + компьютер»). Именно встроенные в мозг алгоритмы обработки информации по' зволяют человеку понимать то, что он видит. Роль этих встроенных алгоритмов можно пояснить на следующем примере.
Растровое изображение
61
Когда в середине XX века хирурги'офтальмологи научились делать операции на хрусталике глаза, у многих слепых от рождения людей появилась техническая возможность прозреть. То есть после такой операции у человека, доселе слепого (свет просто не проходил через хрусталик), изображение на сетчатке начинало формироваться, и соответствующие сигналы начинали поступать в мозг совер' шенно так же, как это происходит у здоровых людей. К сожалению, в данном слу' чае «увидеть свет» не означало «начать видеть». Как показала дальнейшая исто' рия, большинство «технически прозревших» взрослых пациентов так никогда и не смогли достичь в области зрения более существенных результатов, чем распоз' навание простых геометрических фигур – и даже это требовало от них серьезных сознательных усилий. Узнавание же людей по лицам и ориентирование в про' странстве так и остались для них непосильными задачами. Дело в том, что те встроенные механизмы «автоматического» зрительного анализа, которые разви' ваются у людей в раннем детстве, у этих пациентов не были своевременно разви' ты, и они оказались в положении компьютера, имеющего устройство для ввода изображения, но не имеющего необходимого программного обеспечения для его анализа. Для того чтобы окончательно убедиться в сложности стоящей перед нами зада' чи анализа изображения, представляющего собой двумерный массив числовых дан' ных, попробуем поставить себя на место компьютерной программы, имеющей дело с абстрактными числами. Для этого мысленно изменим модальность восприятия изображения – переведем его из визуальной области в тактильную. Представим двумерный массив значений интенсивности как шахматную доску, размер которой равен размеру изображения (DimX×DimY), а в центр каждой клетки вотê кнут стол' бик, высота которого пропорциональна значению соответствующего пикселя изоб' ражения. Иными словами, рассмотрим двумерное изображение как некую услов' ную трехмерную поверхность. На рис. 2.1.2 слева фрагмент женского лица показан как изображение, а справа изображен как псевдотрехмерный рельеф.
Рис. 2.1.2. Цифровое изображение как псевдотрехмерный рельеф
Теперь представьте себе, что вы должны, не глядя на изображение, ощупать соответствующий ему «рельеф» и постараться определить, что именно этот «ре' льеф» изображает – дом, собаку или человеческий глаз? Как показывают экспе' рименты, средний человек не в состоянии справиться с подобной задачей. Даже распознавание простейших геометрических фигур в подобном «рельефном»
62
Цифровые изображения
представлении будет связано со значительными усилиями и потребует сознатель' ной выработки специального навыка, стратегии и алгоритмов ощупывания. Тако' ва, несмотря на кажущуюся простоту объекта «цифровое изображение», истин' ная сложность задач компьютерного и машинного зрения.
2.1.2. Алгебраические операции над изображениями Казалось бы, мы только начали знакомство с изображением как с семантической сущностью и компьютерным типом данных. Однако уже на этом этапе мы можем рассмотреть первые операции цифровой обработки, которые могут применяться к изображениям в компьютере. Рассмотрим для начала алгебраические операции, которые осуществляются над цифровыми изображениями как над растровыми объектами (двумерными матрицами) в целом. Это так называемые операции попиксельного сравнения изображений. Здесь предполагается, что мы имеем два цифровых изображения Im1 и Im2 одного типа и одного размера DimX×DimY. В этом случае мы можем осу' ществить над находящимися в одинаковых позициях этих изображений пикселя' ми Im1[x,y] и Im2[x,y] соответственно любые арифметические или логические операции, которые в принципе могут быть осуществлены над двумя числами. Мы можем найти их сумму: Im3[x,y] = Im1[x,y] + Im2[x,y], для всех x = 0..DimX – 1, y = 0..DimY – 1; или разность: Im3[x,y] = Im1[x,y] – Im2[x,y], для всех x = 0..DimX – 1, y = 0..DimY – 1; или побитовое ИЛИ: Im3[x,y] = Im1[x,y] OR Im2[x,y], для всех x = 0..DimX – 1, y = 0..DimY – 1; и т. д. Изображение Im3 того же типа и размера, сформированное в результате при' менения такой попиксельной операции, мы будем называть соответственно сум мой или разностью, или «побитовым ИЛИ» исходных изображений Im1 и Im2. Все алгебраические операции, с одной стороны, крайне просты, а с другой – весьма полезны в процессе анализа изображения. Поэтому именно с них мы нач' нем свое знакомство с обработкой изображений в системе LabVIEW с использо' ванием средств IMAQ Vision.
Растровое изображение
63
Таблица 2.1.1. Функции палитры Operator Operatorss N
2 3 4
Название функции IMAQ Absolute Difference IMAQ Add IMAQ And IMAQ Compare
5 6 7
IMAQ Divide IMAQ LogDiff IMAQ Mask
8
IMAQ Modulo
9
IMAQ MulDiv
10 11 12 13
IMAQ Multiply IMAQ Or IMAQ Subtract IMAQ Xor
1
Операция над пикселями
Смысл операции
Im3[x,y] = abs(Im1[x,y] – Im2[x,y])
Модуль разности
Im3[x,y] = Im1[x,y] + Im2[x,y] Im3[x,y] = Im1[x,y] and Im2[x,y] Im3[x,y] = op(Im1[x,y] > Im2[x,y])
Сумма Побитовое логическое И Сравнение изображений. Если условие справедливо, приме няется операция op, выбран ная из списка Im3[x,y] = Im1[x,y] / Im2[x,y] Деление ***(см. описание ниже) Логическая побитовая разность Im3[x,y] = Im1[x,y] and (Im2[x,y] > 0) «Маскирование»: в выходное изображение передаются только те пиксели исходного, которые соответствуют ненулевым пикселям изобра жениямаски Im3[x,y] = Im1[x,y] mod Im2[x,y] Остаток целочисленного деления Im3[x,y] = (Im1[x,y] × Const) / Im2[x,y] Умножение на константу и деление на изображение Im3[x,y] = Im1[x,y] × Im2[x,y] Произведение Im3[x,y] = Im1[x,y] or Im2[x,y] Побитовое логическое ИЛИ Im3[x,y] = Im1[x,y] – Im2[x,y] Разность Im3[x,y] = Im1[x,y] xor Im2[x,y] Побитовое логическое исключающее ИЛИ
Рассмотрим подробнее каждую из этих операций, сопровождая примеры их работы примерами схем обработки изображений, собранных в среде LabVIEW. Функция IMAQ: Absolute Difference Функция Absolute Difference (рис. 2.1.3) осуществляет попиксельное вычитание изображений. Результат операции берется по модулю.
Функции IMAQ: Палитра Operators Палитра Operators содержит функции, реализующие попиксельные алгебраичес' кие операции над растровыми изображениями как двумерными массивами дан' ных. Далее для краткости условимся называть подобные действия над всем изоб' ражением в целом аналогично названию операции, которая осуществляется над каждым его пикселем, то есть будем говорить о «сложении изображений», «разно' сти изображений», «умножении изображений» и т. п. Список таких алгебраиче' ских операций, реализованных в палитре Operators, перечислен ниже в табл. 2.1.1.
Q Absolute Differ ence Рис. 2.1.3. Функция IMA IMAQ Difference
Пример работы данной функции представлен на рис. 2.1.4. Блок'диаграмма соответствующей схемы обработки представлена на рис. 2.1.5.
64
Цифровые изображения
Растровое изображение
65
Q Add Рис. 2.1.6. Функция IMA IMAQ
ence Рис. 2.1.4. Результат работы функции Absolute Differ Difference
больше 255, она устанавливается равной 255, чтобы не происходило переполне' ние байта выходного изображения, которое также является 8'битным. Если 8'битное изображение складывается с 16'битным, то результат функции становится 16'битным. Если 8'битное изображение прибавляется к цветному изображению в формате RGB, то оно добавляется к каждой из трех плоскостей. Результирующее изобра' жение в таком случае будет также иметь формат RGB. Пример сложения двух изображений представлен на рис. 2.1.7. Блок'диаграм' ма соответствующей схемы обработки представлена на рис. 2.1.8.
Рис. 2.1.7. Результат операции Add
Функция IMAQ: And Функция And (рис. 2.1.9) позволяет осуществить логическую операцию И между двумя входными изображениями или изображением и константой. В табл. 2.1.2 сведена истинность для данного оператора. Рис. 2.1.5. Блокдиаграмма
Функция IMAQ: Add Функция Add (рис. 2.1.6) позволяет производить попиксельное сложение интен' сивности двух изображений или же добавлять определенную константу к интен' сивности исходного изображения. В упражнении, результаты которого представлены на рис. 2.1.7, складываются два 8'битных изображения. Если сумма интенсивностей пикселей оказывается
Таблица 2.1.2. Таблица истинности логической операции И A
B
AA ND B AND
TRUE FALSE TRUE FALSE
TRUE TRUE FALSE FALSE
TRUE FALSE FALSE FALSE
При этом логические операции можно проводить не только над булевыми пе' ременными, но и над целыми числами. Логические операции над целыми числами осуществляются побитово, то есть для каждого бита отдельно. В данном примере
66
Цифровые изображения
Растровое изображение
67
Рис. 2.1.10. Результат работы функции And
Рис. 2.1.8. Блокдиаграмма
Q And Рис. 2.1.9. Функция IMA IMAQ
побитовая операция И применяется к 8'битным полутоновым изображениям. При этом совпадающие единичные биты пикселей дают единичные биты резуль' тирующего пикселя, все остальные сочетания значений бит дают нулевое значе' ние выходного бита. Результат операции И для двух изображений представлен на рис. 2.1.10. Блок' диаграмма представлена на рис. 2.1.11. Функция IMAQ: Compare Функция Compare (рис. 2.1.12) позволяет попиксельно сравнить два изображе' ния или изображение и константу.
Рис. 2.1.11. Блокдиаграмма
При этом результирующее изображение формируется в зависимости от ре' зультата операции сравнения. Так, например, если выбрана операция clear if < (очистить, если меньше), пиксель (x,y) результирующего изображения устанав' ливается в 0, если соответствующий пиксель изображения Image Src А(x,y) будет иметь меньшую интенсивность, чем пиксель изображения Image Src В(x,y). Если же Image Src А(x,y) имеет большую либо равную интенсивность по сравнению с Image Src В(x,y), пиксель выходного изображения принимает значение Image
68
Цифровые изображения
Растровое изображение
Q Compar e Рис. 2.1.12. Функция IMA IMAQ Compare
Src (x,y). Иными словами, в результате этой операции с исходного изображения Image Src А(x,y) оказываются «стерты» (обнулены) все пиксели, значения кото' рых меньше, чем значения соответствующих пикселей Image Src В(x,y). Список операций «сравнения» изображений, реализованных в данной функции: • установить среднюю интенсивность; • установить минимальную интенсивность; • установить максимальную интенсивность; • очистить, если <; • очистить, если < или =; • очистить, если =; • очистить, если >; • очистить, если > или =. Результат действия функции Compare при выбранном режиме сравнения «ус' тановить среднюю интенсивность» представлен на рис. 2.1.13. Соответствующая блок'диаграмма представлена на рис 2.1.14. Рис. 2.1.14. Блокдиаграмма
Q LogDiff Рис. 2.1.15. Функция IMA IMAQ e Рис. 2.1.13. Результат функции Compar Compare при использовании операции «установить среднюю интенсивность»
Функция IMAQ: LogDiff Функция LogDiff (рис. 2.1.15) производит логическую операцию, которая в пик' селях исходного изображения Image Src A оставляет единичными только те биты, которые отсутствуют в соответствующих пикселях изображения Image Src B. Результат действия этой функции показан на рис. 2.1.16. Блок'диаграмма представлена на рис. 2.1.17.
Рис. 2.1.16. Результат функции LogDiff
69
70
Цифровые изображения
Растровое изображение
71
Рис 2.1.19. Результат операции Modulo
Рис. 2.1.17. Блокдиаграмма
Функция IMAQ: Modulo Функция Modulo (рис. 2.1.18) делит изображение Image Src А на изображение Ima' ge Src В (или на константу) нацело и находит остаток от этого деления (рис. 2.1.19). Если, например, пиксель Image Src A(x,y) = 100, а соответствующий ему пик' сель Image Src B(x,y) = 30, то результат целочисленного деления Image Src A(x,y) mod Image Src B(x,y) будет иметь интенсивность 10 градаций серого (так как 100 = 30 × 3 + 10). Блок'диаграмма соответствующей схемы обработки представлена на рис. 2.1.20.
Q Modulo Рис. 2.1.18. Функция IMA IMAQ
Рис. 2.1.20. Блокдиаграмма
Функция IMAQ: MulDiv Функция MulDiv (рис. 2.1.21) производит умножение изображения Image Src А на заданную константу, а затем делит на изображение Image Src В. Данная функция автоматически производит преобразование типов для изоб' ражений, необходимое для того, чтобы при умножении не была потеряна инфор' мация при отсечении по верхней границе диапазона. Пример операции MulDiv представлен на рис. 2.1.22, блок'диаграмма соответ' ствующей схемы обработки – на рис. 2.1.23.
72
Цифровые изображения
Растровое изображение
73
Функция IMAQ: Or Функция Or (рис. 2.1.24) позволяет произвести попиксельную побитовую опера' цию ИЛИ над двумя изображениями или изображением и константой. Q MulDiv Рис. 2.1.21. Функция IMA IMAQ
Рис. 2.1.24. Функция IMA IMAQ Q Or
В табл. 2.1.3 приведена истинность для операции ИЛИ.
Таблица 2.1.3. Таблица истинности логической операции ИЛИ Рис. 2.1.22. Результат операции MulDiv
A TRUE FALSE TRUE FALSE
B TRUE TRUE FALSE FALSE
A OR B TRUE TRUE TRUE FALSE
Результат применения данной функции к двум полутоновым изображениям представлен на рис. 2.1.2, блок'диаграмма соответствующей схемы обработки – на рис. 2.1.26.
Рис. 2.1.25. Результат операции Or
Функция IMAQ: Subtract
Рис. 2.1.23. Блокдиаграмма
Функция IMAQ Subtract (рис. 2.1.27) позволяет вычесть из одного изображения другое или константу (рис. 2.1.28). Если результат вычитания меньше нуля, соответствующий пиксель выходного изображения устанавливается равным 0 – с тем, чтобы выходное изображение со' хранило формат «байт без знака».
74
Цифровые изображения
Виды изображений
75
Функция IMAQ: Xor Функция IMAQ Xor (рис. 2.1.29) позволяет произвести логическую операцию Исключающее ИЛИ над двумя изображениями или изображением и константой.
Q Xor Рис. 2.1.29. Функция IMA IMAQ
Истинность для операции Исключающее ИЛИ приведена в табл. 2.1.4.
Таблица 2.1.4. Таблица истинности логической операции Исключающее ИЛИ
Рис. 2.1.26. Блокдиаграмма
A
B
AX OR B XOR
TRUE FALSE TRUE FALSE
TRUE TRUE FALSE FALSE
FALSE TRUE TRUE FALSE
Пример работы оператора Xor представлен на рис. 2.1.30. Ненулевые значения имеют те биты пикселей выходного изображения, для которых соответствующие значения битов пикселей входных изображений совпали.
Q Subtract Рис. 2.1.27. Функция IMA IMAQ
Рис. 2.1.30. Результат операции Xor
2.2. Виды изображений Рис. 2.1.28. Результат операции Subtract
Рассмотрим теперь различные виды цифровых изображений, с которыми прихо' дится сталкиваться на практике.
76
Цифровые изображения
Виды изображений
2.2.1. Физическая природа изображений С физической точки зрения большинство изображений, с которыми приходится сталкиваться на практике, представляют собой зарегистрированное некоторым специальным датчиком (сенсором) двумерное распределение интенсивности электромагнитного излучения, отраженного объектом регистрации или прошед' шего сквозь него. Помимо электромагнитного излучения, часто встречающимися источниками изображений являются акустические и ультразвуковые волны, электронные пучки (в области электронной микроскопии), а также различные двумерные поля дальностей и скоростей, формируемые на основе анализа электро' магнитных сигналов, но не содержащие непосредственно значения электромагнит' ных характеристик. В последние годы в области нанотехнологий возник новый интересный тип измерительных устройств – контактные микроскопы с молеку' лярным и даже атомарным разрешением. Они также являются источниками дву' мерных информационных «измерительных» полей. Изображения различных диапазонов длин волн В пределах электромагнитного спектра, в свою очередь, также выделяются от' дельные диапазоны длин волн, в каждом из которых изображения имеют свои физические особенности и соответственно используются в различных областях применения. В табл. 2.2.1 приведено условное разбиение электромагнитных волн на диапазоны. Следует иметь в виду, что такое деление является достаточно не' четким и приблизительным. Многие диапазоны существенно перекрываются, и уверенно говорить о принадлежности данного вида излучения к данному диапа' зону можно лишь вдали от его границ.
Таблица 2.2.1. Диапазоны длин волн электромагнитного излучения Тип излучения ↑ Гаммаизлучение Рентгеновское излучение Ультрафиолетовое излучение Видимый свет Инфракрасное излучение Микроволновое излучение (СВЧ)
Радиоволны ↓
Длина волны (м) 12
10 1011 1010 109 108 107 106 105 104 103 102 101 1 101 102 103
Энергия фотона (эВ) 106 105 104 103 102 101 1 101 102 103 104 105 106 107 108 109
77
Как известно из квантовой механики, электромагнитные волны имеют двой' ственное описание в виде потока частиц – квантов излучения (фотонов). При этом энергия фотона соответствует длине волны так, как это показано в табл. 2.2.1. По' скольку в большинстве современных устройств регистрация электромагнитного излучения с целью получения изображений основана на том, что фотоны, попада' ющие на приемник изображения, своей энергией выбивают электроны, количе' ство которых и определяет снимаемый с регистрирующего элемента заряд, полез' но представлять себе энергетические характеристики фотонов для различных длин волн. Исторически наибольшее значение для человека имеет диапазон длин волн, включающий видимый свет и прилегающие к нему области. Этот участок спектра более подробно представлен в табл. 2.2.2.
Таблица 2.2.2. Характеристики волн видимой части спектра и прилегающих к ним областей Тип излучения Ближнее инфракрасное излучение Красный свет максимальной длины волны в видимой области Оранжевый свет Желтый свет Зеленый свет Голубой свет Синий свет минимальной длины волны в видимой области Ближнее ультрафиолетовое излучение
Длина волны (м) 1,0×106 7,6×107
Частота ((× ×1014 Гц) 3,0 3,9
6,1×107 5,9×107 5,4×107 4,6×107 4,0×107
4,9 5,1 5,6 6,5 7,5
3,0×107
10
Рассмотрим теперь очень коротко, какие типы изображений различной физи' ческой природы используются в различных практических областях применения. Изображения, полученные с помощью гаммаизлучения, используются в ос' новном в медицинской радиологии и астрономических наблюдениях. Рентгеновские изображения используются в медицине, системах промышлен' ного технического контроля и различных системах обеспечения безопасности. В медицине активно используются два вида рентгеновских изображений: • традиционные рентгенограммы, являющиеся проекцией рентгеновского излучения, прошедшего сквозь тело пациента, на которых хорошо видно со' стояние и расположение костей скелета, суставов и внутренних органов че' ловека; • томографические изображения, представляющие собой набор простран' ственных «срезов» человеческого тела, характеризующийся гораздо более высокой четкостью и точностью локализации различных органов и образо' ваний (о том, как формируются томограммы, см. следующий раздел). В промышленности рентгеновские изображения используются в системах не' разрушающего контроля для определения скрытых дефектов различных деталей
78
Цифровые изображения
и изделий. В системах безопасности рентгеновские изображения используются в качестве детекторов различных металлических и других предметов при входном или выходном контроле в различных местах массового прохода людей и провоза товаров, например в аэропортах, на вокзалах, в проходных предприятий и т. п. Цифровые рентгеновские изображения формируются двумя основными спо' собами: • путем оцифровки традиционных рентгеновских пленок; • путем непосредственной регистрации светового излучения, порождаемого специальными рентгеновскими экранами, переводящими рентгеновское из' лучение в световое. Ультрафиолетовые изображения используются в производственном контроле, микроскопии, лазерной технике, медицинских и астрономических наблюдениях. Инфракрасный диапазон, в свою очередь, обычно разбивают на два поддиапа' зона: тепловой ИКдиапазон и ближний ИК. ИК'изображения, полученные в тепловом диапазоне (8–14 мкм), позволяют непосредственно пересчитывать интенсивность элементов изображения в значе' ния температуры наблюдаемых поверхностей. Холодные объекты на таких изоб' ражениях предстают более темными, а теплые объекты – яркими, а горячие – «светящимися» (так как они нагревают и воздух рядом с собой). Такие изображе' ния используются в самых различных областях применения: • в системах промышленного и экологического мониторинга, выявляющих утечки тепла в различных технических устройствах, сетях теплотрасс и т. п.; • в системах военного назначения для наведения на «горячие» объекты воен' ной техники, например двигатели, факелы ракет и т. п.; • в биометрических системах, например в системах автоматического контро' ля доступа на основе термограмм человеческого лица, представляющих со' бой уникальные изображения, которые чрезвычайно сложно подделать в отличие от обычных фотографий в видимом диапазоне; • а также в множестве других областей и приложений. Для получения изображений в глубоком ИК'диапазоне используются специ' альные устройства – тепловизоры. Долгие годы развитие тепловизионных систем сдерживалось большими габаритами тепловизоров, их большой стоимостью и не' удобством эксплуатации, связанным с необходимостью использовать для охлаж' дения регистрирующих матриц жидкого азота. В последние десятилетия в этом направлении произошел существенный прогресс. Созданы достаточно портатив' ные и экономичные системы тепловидения, не требующие охлаждения жидким азотом и при этом обеспечивающие необходимое качество тепловизионных изоб' ражений. Изображения, полученные в ближнем ИК'диапазоне, по большинству своих характеристик схожи с изображениями видимого диапазона, однако съемка в ближнем ИК позволяет снимать ночью, когда света для обычной видеосъемки недостаточно. Таким образом, существенной областью применения изображений ближнего ИК является ночное виêдение. Другой областью применения ИК систем является невидимая ИКподсветка. Здесь принципиальным моментом является
Виды изображений
79
то, что большинство современных видеокамер для технического зрения «видят» в ближнем ИК'диапазоне так же хорошо, как и в видимом. В то же время человек не в состоянии видеть изображения в ИК'диапазоне. Таким образом, системы технического зрения в ИК'диапазоне могут специально подсвечивать те или иные элементы сцены незаметно для человека, не создавая для него дискомфорта и во' обще никак не проявляя своего присутствия. Во многих системах ночного видения (например, в системах видеонаблюдения охранного назначения) используются ИК'прожекторы, увеличивающие общую ИК'освещенность сцены наблюдения. В технических измерительных системах на производстве, где зачастую требуется специальным образом подсветить часть детали (например, контролируемый про' филь поверхности), такая структурированная подсветка также часто осуществ' ляется в ближнем ИК'диапазоне. С теми же свойствами «невидимости» для чело' веческого глаза связано и использование специально нанесенных ИК'элементов (а также и УФ'элементов) в системах контроля подлинности денежных банкнот и других ценных бумаг. Изображения видимого диапазона используются практически во всех облас' тях машинного зрения, поскольку это тот диапазон регистрации изображений, в котором полученные изображения выглядят наиболее привычно и естественно для человеческого глаза. Следует отметить, что в течение первых десятилетий развития компьютерного зрения цифровые изображения рассматривались ис' ключительно как полутоновые (halftone), то есть содержащие не цветные элемен' ты, а квантованные градации серого (gray levels) – от черного до белого. В после' дние годы, с появлением высококачественных экономичных цветных цифровых фотоаппаратов и видеокамер цифровое изображение по умолчанию все чаще рас' сматривается как цветное, имеющее в каждом пикселе три цветовые компоненты. Как известно, любой произвольный цвет может быть получен путем смешения (линейного суммирования с различными весами) трех различных чистых цветов. Традиционное представление цветных изображений в компьютере основано на цветовой тройке RGB (red, green, blue – красный, синий, зеленый). На этапе ана' лиза цветных изображений часто осуществляется переход к другим цветовым пространствам, например HSI (цвет, насыщенность, интенсивность). Более под' робно об этом будет рассказано в отдельном разделе, посвященном обработке цветных изображений. Микроволновые изображения применяются в области радиолокации. Излуча тель радиолокатора постоянно (вариант – импульсно) испускает электромагнит' ное излучение, отражение которого от различных объектов затем регистрирует антенна радиолокатора. В связи с тем что антенна радиолокатора – сложный ра' диотехнический прибор, мало похожий на матрицу традиционного приемника изображения, радиолокационные изображения имеют более сложную и необыч' ную геометрию, которая, впрочем, может быть преобразована в традиционную путем специальной математической обработки. Радиолокационные изображения характеризуются, как правило, высоким контрастом и могут служить для быстро' го автоматического выделения объектов, присутствующих в поле зрения радио' локационной системы. В то же время особенностью радиолокационного изобра'
80
Цифровые изображения
жения реальной сцены является отсутствие на нем объектов, слабо отражающих волны микроволнового диапазона. Существенным достоинством радиолокацион' ных изображений является то, что они могут быть получены на больших расстоя' ниях, на которых четкость оптической съемки теряется из'за рассеяния света в атмосфере. Более того, микроволновое излучение способно проникать даже сквозь облака, растительный покров, лед и сухой песок. Все это делает микровол' новую съемку чрезвычайно привлекательной для применений в военной области, а также в области глобального мониторинга Земли из космоса и с авиационных носителей. Радиоволновые изображения преимущественно используются в медицине и ас' трономии. Достаточно сказать о том, что наиболее современный метод получения медицинских томографических изображений высокого разрешения – ЯМР (ядер ный магнитный резонанс) основан на регистрации радиоволновых сигналов кле' ток человеческого тела, помещенных в сильное магнитное поле и возбуждаемых короткими волновыми импульсами в радиодиапазоне. Изображения различной физической природы Акустические изображения активно используются в геологии, промышленности и медицине. Ультразвуковые изображения применяются во множестве областей промышленности и техники, но наиболее известно их применение в медицине – для получения внутриматочных изображений человеческого плода в утробе мате' ри, а также для быстрой инспекции патологий различных внутренних органов че' ловека. Следует отметить, что медицинское ультразвуковое изображение содер' жит не просто интенсивность отраженного ультразвукового сигнала, а еще и дальность до отражающей поверхности, вычисленную на основе расчета скорости распространения ультразвукового сигнала в человеческих тканях. Двумерные поля дальностей формируются на основе анализа электромагнит' ных сигналов, испускаемых и принимаемых по локационной схеме. В качестве таких дальнометрических систем в последние годы все чаще используются лазер ные локаторы, позволяющие осуществлять оптическое сканирование трехмерных поверхностей с больших расстояний (до десятков километров), обеспечивая при этом максимально возможное разрешение. Так же как и в случае ультразвуковых картин, дальнометрический локатор сканирует поверхность, испуская серии ко' ротких волновых импульсов, отражения которых от поверхности объекта регист' рируются приемником локатора, после чего рассчитывается время прохождения импульса до объекта и обратно, откуда окончательно определяется дальность до точки поверхности объекта. Получаемое изображение называется в таком случае картой глубин и содержит непосредственные значения расстояний от локатора до точек поверхности объекта – то есть непосредственно измеренный трехмерный рельеф данной поверхности. Двумерные поля дальностей находят широкое при' менение в области картографии, дистанционного зондирования Земли, техниче' ских измерений и технического контроля в промышленности и многих других об' ластях.
Виды изображений
81
Двумерные поля скоростей формируются аналогичным образом – за счет излу' чения и приема волновых импульсов. Однако пиксели таких изображений содер' жат уже не значения расстояний до соответствующих точек, а значения скоростей движения этих точек отражающей поверхности. Вычисление скоростных харак' теристик осуществляется за счет анализа доплеровского сдвига отраженного сиг' нала. В таком случае говорят, что локационное изображение имеет смысл карты скоростей, а локатор работает в режиме СДЦ (селекции движущихся целей). Дву' мерные поля скоростей используются в системах различного назначения преиму' щественно в целях выделения движущихся объектов. В заключение данного краткого обзора изображений различной физической природы необходимо отметить, что многие современные системы зрения основа' ны не на анализе изображений одного типа, а на комплексировании (fusion) дву' мерных данных, получаемых в различных диапазонах длин волн, а также данных, получаемых от устройств, основанных на различных физических принципах. В частности, в области исследований Земли из космоса стандартом стала мульти спектральная съемка (съемка земной поверхности одновременно в нескольких диапазонах видимого света и ближнего ИК). Получаемые в результате многозо нальные изображения, каждый пиксель которых имеет целый вектор значений, полученных в близких, но отличающихся спектральных диапазонах, позволяют с высокой надежностью автоматически выделять на этих изображениях области растительности разного вида, различные типы почв и т. д., и т. п. В последние годы речь идет уже не о многозональной, а о гиперспектральной съемке, при которой задействуются уже не несколько, а десятки и даже сотни близко расположенных узких волновых диапазонов. С другой стороны, комбинирование источников изображений различной физической природы позволяет удачно «поделить» меж' ду ними функции единой системы машинного зрения. Например, робототехни' ческая система, объединяющая установленные на единой платформе телекамеру высокого разрешения, тепловизор и локатор в режиме СДЦ, имеет возможность быстро автоматически выделить в поле зрения только теплые движущиеся объек' ты, после чего внимательнее рассмотреть и проанализировать их форму и харак' теристики на детальном изображении видимого диапазона.
2.2.2. Тип пикселя Рассмотрим теперь растровое цифровое изображение как чистую структуру дан' ных, абстрагировавшись от всего, что было изложено выше и касалось физиче' ских особенностей и способов их получения. Поскольку с геометрической (и про' граммной) точки зрения структура любого изображения совершенно стандартна и представляет собой регулярный двумерный массив (матрицу) пикселей, раз' личные типы изображений могут порождаться только оригинальным типом дан' ных, представляющим пиксель. В табл. 2.2.3 сведены основные варианты структур двумерных растровых дан' ных различного типа.
82
Цифровые изображения
Виды изображений
Таблица 2.2.3. Изображения с различным типом пикселя Тип пикселя Емкость (в битах) Bit (Bo ole an) 1 (Boole olean)
Яркостное разрешение (диапазон значений) [0,1]
Byte (char (char,, shortint)
8
[0…255], [–128…127]
Integer (w or d, int) (wor ord,
10, 12, 16
[0…210–1], [–29…29–1], [0…212–1], [–211…211–1], [0…216–1], [–215…215–1]
Lo ng Long 32, 64 32 or d, wor ord, (double w lo ng int) long RGB 24, 32 (T ColorRef) (TColorRef) Re al (fixed, Real * at, double) flo float, Complex *
Vector (arra (arrayy of…)
*
[0…232–1], [–231…231–1], [0…264–1], [–263…263–1] [{0,0,0}…{255,255,255}] [{0,0,0,0}… {255,255,255,255}] **(зависит от реализации) **(зависит от реализации) **(зависит от реализации)
Семантический смысл Бинарное изображение: 0 – «фон», 1 – «объект» Полутоновое изображение стандартного яркостного разреше ния – со знаком и без знака Полутоновое изображение повышенного яркостного разреше ния – со знаком и без знака. Меточные изображения Полутоновое изображение высокого яркостного разрешения – со знаком и без знака Цветное изображение. Разреше ние 8 бит на цветовой канал. С выравниванием и без Действительнозначное изображе ние. Результат обработки Комплексное изображение. Результат перехода в частотную область Векторное изображение. Многозо нальные и гиперспектральные данные. Результаты комплексиро вания. Результаты вычисления множественных признаков
По типу данных изображения делятся на битовые (булевские, логические), байтовые (со знаком и без знака), целочисленные (со знаком и без знака), дей' ствительные (с фиксированной и плавающей точкой), цветные (специальный тип данных) и векторные (пиксель представляет собой массив или список численных значений). В семантическом плане об этих типах изображений можно вкратце сказать следующее: • Бинарные изображения (битовые, булевские, логические). 0 обозначает пиксель«фона», 1 – пиксель «объекта», «символа» (или наоборот – зави' сит от знака контраста «объект/фон»). В качестве исходного бинарное изображение формирует только один тип устройств ввода – оптический сканер в режиме сканирования текстовых документов. В качестве проме' жуточных и окончательных результатов обработки изображения такого типа широко используются в задачах обнаружения объектов, задачах мор' фометрических измерений, системах автоматического считывания текста и штриховых кодов.
83
• Полутоновые изображения стандартного разрешения (байтовые без знака). На сегодня разрешение 8 бит (диапазон значений [0…255] – 256 градаций серого) – фактический стандарт для систем видеоввода, способных рабо' тать в реальном времени, – фреймграбберов и цифровых видеокамер для технического зрения и систем видеонаблюдения. Это самый распростра' ненный формат входных полутоновых данных. Соответственно в том же формате представляются и результаты фильтрации полутоновых изобра' жений. Системный тип данных TBitmap поддерживается операционной си' стемой Windows как часть графического интерфейса на системном уровне. • Результаты обработки полутоновых изображений, в которых возможны отрицательные значения пикселей (байтовые со знаком). Короткое целое со знаком используется для представления промежуточных результатов обра' ботки в целях экономии используемого объема памяти. Длинное целое со знаком стандартной и двойной длины используется при реализации всех возможных целочисленных операций над изображениями (например, накоп' ления разнообразных сумм и разностей) в случае, если нет необходимости в специальном ограничении потребных объемов памяти. Действительные значения пикселей используются при реализации различных нецелочислен' ных операций и преобразований над изображениями. В случае если требует' ся ограничить объем задействованной памяти или увеличить быстродей' ствие алгоритмов, вместо представлений с плавающей точкой используются представления действительных чисел с фиксированной точкой. • Полутоновые изображения повышенного разрешения (целочисленные без знака). Используются в тех случаях, когда диапазон в 256 градаций серого не позволяет отразить все богатство исходной информации, предоставляе' мое датчиком в силу его физической природы. Таким образом оцифровыва' ются, в частности, медицинские рентгеновские и томографические изобра' жения, а также астрономические и технические изображения, полученные в результате длительных экспозиций. Многие специализированные меди' цинские и технические устройства формируют на выходе изображения с яркостным разрешением в 10 или 12 бит, однако в компьютерных систе' мах обработки такие данные удобно дополнять до «целого слова» в 16 бит, с которым проще и быстрее оперируют современные 16', 32' и 64'битные вычислительные архитектуры. • Меточные изображения (целочисленные без знака стандартной или двой' ной длины). Используются при автоматическом выделении связных облас' тей и объектов. Каждый пиксель такого изображения помечен номером об' ласти, которой он принадлежит. Байтовые изображения здесь не подходят, так как в них можно закодировать только 255 различных областей, а на изображениях высокого разрешения их могут оказаться десятки и даже сотни тысяч. • Двумерные частотные характеристики – комплексные изображения, со' стоящие из действительной и мнимой части. Формируются в результате двумерного преобразования Фурье, быстрого преобразования Фурье
84
Цифровые изображения (БПФ), двумерного косинусного преобразования (ДКП) и т. п. преобразо' ваний изображения из пространственной области в частотную. На про' граммном уровне, как правило, реализуются не как двумерный массив ком' плексных чисел (двухкомпонентных векторов), а как пара двумерных массивов (изображений), один из которых представляет действительную часть образа, а второй – мнимую. • Цветные изображения – специальный тип данных, запись формата TcolorRef = {Red, Green, Blue}. Разрешение по каждому из каналов – 8 бит. С целью вы' равнивания до «целого слова» 32'битной архитектуры часто дополняется еще одним 8'битным компонентом: TColorRef32 = {Red, Green, Blue, Reser' ved}. Цветное изображение – системный тип данных. Он поддерживается всеми устройствами ввода цветовых изображений. Кроме того, стандарт' ный тип данных TRGBBitmap поддерживается операционной системой Windows как часть графического интерфейса на системном уровне. • Многозональные и гиперспектральные изображения – векторные, пиксель представляет собой массив целочисленных значений. Формируются специ' альными устройствами ввода. Используются для попиксельной классифи' кации и сегментации изображений. На программном уровне, как правило, реализуются не как двумерный массив векторов, а как набор двумерных изображений, каждое из которых соответствует одной зональной или спек' тральной компоненте. • Признаковые изображения – скалярные или векторные, пиксель представ' ляет собой скаляр, массив или список действительных значений. Представ' ляют собой результат признакового анализа изображений. Используются для попиксельной классификации и сегментации изображений. На про' граммном уровне, как правило, реализуются не как двумерный массив век' торов, а как набор двумерных изображений, каждое из которых соответ' ствует одному типу признаков.
2.3. Устройства оцифровки и ввода изображений В самом общем виде для получения электронного изображения могут использо' ваться: • одиночный чувствительный элемент; • одномерная линейка чувствительных элементов; • двумерная матрица чувствительных элементов.
2.3.1. Линейки и матрицы, сканеры и камеры Простейшим фоточувствительным электронным элементом является всем извес' тный фотодиод. Он строится на базе полупроводника (например, кремния) и со' здает выходное напряжение, пропорциональное освещенности его открытой по' верхности. Если перед воспринимающей поверхностью фотодиода установить фильтр, пропускающий волны только определенного диапазона, можно получить
Устройства оцифровки и ввода изображений
85
приемник изображения, чувствительный в заданном диапазоне электромагнитно' го спектра. На основе пары фотодиод–светодиод (светоизлучающий элемент) построены широко применяемые в технике детекторы пересечения, позволяющие опреде' лить, пересек ли какой'нибудь непрозрачный объект прямую линию, соединяю' щую источник и приемник света. Такие детекторы стоят, например, в турникетах на входе в московское метро. Однако для того чтобы при помощи одиночного фотодиода получить изобра' жение, необходимо, во'первых, создать оптическую систему, проецирующую изображение определенных участков видимой сцены на поверхность фотоприем' ника, а во'вторых, организовать сканирование изображения сцены за счет переме' щения фотоприемника относительно регистрируемой сцены. В самом деле, оди' ночный фоточувствительный элемент без оптической системы способен лишь зарегистрировать уровень освещенности своей поверхности. При этом свет, пада' ющий на его поверхность, приходит со всех сторон в результате излучения многих источников, отражения от множества различных поверхностей и, кроме того, рас' сеяния в воздухе. Нельзя сказать, что зарегистрированный на фотоэлементе уро' вень освещенности относится к какому'либо конкретному участку поверхности или объекту сцены. Для того чтобы такое соответствие можно было установить, необходимо использовать, например, систему линз, называемую также объективом, которая сфокусирует и передаст на поверхность фотоприемника лучи, приходящие строго с выбранного направления и с определенного диапазона расстояний (опре' деляемого фокусным расстоянием объектива). Если фотоэлемент расположен за объективом, то действительно можно говорить о том, что зарегистрированное им значение освещенности соответствует определенному пространственному лучу, проходящему через точку фокуса (пересечения лучей) объектива. Осталось толь' ко организовать «сканирование» – то есть перемещение регистрирующего луча по сцене, чтобы появилась возможность заполнить двумерную матрицу интенсив' ностей и получить, таким образом, цифровое изображение наблюдаемой сцены. В первых исторических системах регистрации изображений съем изображения осуществлялся за счет механического сканирования, то есть перемещения фото' элемента (или сканируемого объекта относительно фотоэлемента) вправо'влево, вверх'вниз. Впоследствии были разработаны более современные схемы оптико механического сканирования (нашедшие основное применение в лазерных систе' мах), в которых движется не фотоприемник, а сам луч, отклоняемый управляе' мым зеркалом, входящим в состав оптической системы. Следующим распространенным типом приемников изображения являются оптические сканеры, основанные на использовании одномерных линеек фоточув' ствительных элементов. К ним, в частности, относятся хорошо известные план шетные сканеры, предназначенные для оцифровки бумажных документов. В та' ких системах сканируемый документ помещается на неподвижное плоское основание, а затем над ним (или под ним – в зависимости от конструкции скане' ра) медленно «проезжает» параллельно перемещающаяся сканирующая линейка фоточувствительных элементов, которая «строка за строкой» (или «столбец за
86
Цифровые изображения
столбцом») снимает и сохраняет в памяти цифровое изображение документа. Пе' ремещение сканирующей линейки осуществляется за счет работы шагового элек' трического двигателя. За каждый шаг линейка смещается на очень небольшую величину сдвига, так как между соседними линиями изображения не может боль' шого расстояния. Возможна и обратная схема сканирования (реализованная, например, в ряде копировальных аппаратов), когда линейка фотоприемников покоится, а в движе' ние приводится кассета со сканируемым документом. Но и в этом случае меха' ническое движение документа относительно линейки должно быть достаточно медленным и прецизионно равномерным, иначе полученное изображение будет иметь низкое разрешение и серьезные геометрические искажения в направлении сканирования. Указанная проблема ограничивает применение оптических сканеров на базе сканирующих линеек в тех областях, где требуется не постепенное сканирование, а быстрая мгновенная съемка видоизменяющихся динамических сцен. Однако это не означает, что область применения линейных приемников изображения ог' раничена только областью сканирования документов. Напротив, линейные каме ры парадоксальным образом находят применение именно в тех областях техники, где требуется максимально быстрая регистрация изображений высокого разреше' ния. Речь идет о так называемых системах «естественного сканирования» изобра' жений за счет движения объектов съемки. Представьте себе, например, задачу по' лучения высококачественного изображения быстро движущейся конвейерной ленты, на которой расположены подлежащие автоматической инспекции или ав' томатической сортировке детали. Допустим, необходимое разрешение съемки по одной из координат – 1024 элемента. Конечно, мы могли бы попробовать исполь' зовать двумерную матрицу размером 1024×1024 элемента, но при попытке пере' дать в компьютер снятые этой матрицей мегабайтные (используется также термин мегапиксельные) изображения в темпе, согласованном по скорости с движением ленты конвейера, мы обнаружим, что пропускная способность канала передачи цифровых данных (да и характеристики скорости съемки, обеспечиваемые циф' ровой камерой высокого разрешения) не позволит нам это сделать. Между тем, установив над конвейером линейную камеру, передающую лишь одну строку из 1024 значений пикселей за один такт, мы легко сможем обеспечить необходимые скорость и качество съемки. Сканирование же (то есть развертка изображения во времени в направлении, перпендикулярном линейке фотоэлементов) будет осу' ществляться за счет движения самой конвейерной ленты. Аналогичным образом, на базе линейной камеры можно построить, например, систему контроля качества покрытия автомобильных дорог, осуществляющую сканирование дороги под ав' томобилем'лабораторией, оборудованным такой камерой, за счет движения само' го автомобиля. Самолет, с постоянной скоростью летящий над сканируемой мест' ностью, также позволяет сформировать изображение местности при помощи линейной камеры. Наконец, искусственный спутник, предназначенный для дис' танционного зондирования Земли из космоса, также может сканировать земную поверхность за счет собственного перемещения по орбите.
Устройства оцифровки и ввода изображений
87
И тем не менее в подавляющем большинстве современных систем техническо' го и машинного зрения используются двумерные приемники изображений. Их дос' тоинство заключается в универсальности. Они не имеют ограничения на скорость или направление изменения содержания наблюдаемой сцены, поскольку регист' рация содержимого всех пикселей двумерного изображения происходит в таких системах одновременно. Наиболее распространенным в настоящее время типом двумерных приемников изображений являются CCDматрицы (ПЗСматрицы, «приборы с зарядовой связью»). В отличие от фотодиодов, выходной сигнал чув' ствительных элементов такой матрицы пропорционален не текущей освещеннос' ти поверхности элемента, а интегралу энергии излучения, попавшего на элемент за все время экспозиции (то есть за время, пока элемент был открыт). Это позволя' ет, как и в аналоговой фотографии, управлять чувствительностью элементов пу' тем установки времени экспозиции, использовать накопление сигнала и другие подобные приемы. В настоящее время CCD'матрицы выпускаются производи' телями в виде готовых микросхем, которые производители камер и сканеров могут непосредственно устанавливать в свои устройства. Именно CCD'матри' цы служат приемниками изображения как в современных бытовых фото' и видеокамерах, так и в видеокамерах для технического зрения, применяемых в самых ответственных промышленных приложениях. Заметим также, что в со' временных линейных камерах также используются не линейки фотодиодов, а CCD'линейки.
2.3.2. Геометрия изображения Естественно, конструкция приемника изображения и способ организации скани' рования напрямую влияет на его внутреннюю геометрию. Наиболее распространенной является центральная проективная геометрия снимка, характерная для фотоаппаратов и видеокамер с матричными приемника' ми и объективами на базе сферических линз. Геометрия таких изображений будет подробно рассмотрена в главе 5. Другим типом внутренней геометрии является осевая проективная геометрия, характерная для устройств со щелевым сканированием. Встречаются и еще более сложные случаи внутренней геометрии съемки. На' пример, цилиндрическая геометрия некоторых космических фотоаппаратов, про' ецирующих изображение не на плоскость, а на цилиндрическую поверхность. Геометрия радиолокационной съемки определяется устройством антенны и мо' жет быть весьма сложной и нелинейной. Геометрия изображения, полученного от лазерного локатора, определяется алгоритмом развертки управляющей зеркаль' ной системы. Во всех случаях, если перед нами стоит задача измерения и контроля каких' либо элементов сцены или взаимной геометрической привязки элементов изобра' жений различных типов, помимо заранее известной общей геометрической моде' ли приемников изображений подобного типа, мы должны также с максимально возможной точностью знать значения всех параметров этой модели применитель'
88
Цифровые изображения
но к данному конкретному экземпляру приемника. Дело в том, что никакие техни' ческие изделия не являются идеальными. Поэтому, приобретая у производителя объектив для видеокамеры с заявленным фокусным расстоянием, например, 12 мм, мы не можем быть уверены, что фокусное расстояние данного объектива действительно ровно 12 мм, а не 12,1 или 11,9. Другие параметры геометрии съем' ки (например, положение центра снимка, через который проходит оптическая ось съемки) также требуют оценки и уточнения до того, как мы сможем использовать геометрическую информацию, полученную от данной камеры в измерительных целях. Более того, на практике ни одна сферическая линза не является в точности сферической. Любой объектив имеет так называемые дисторсии, то есть искаже' ния, отклонения от идеальной геометрии. Аналогичным образом и движение ли' нейки оптического сканера никогда не является идеально параллельным, плав' ным и равномерным. В связи с этим и сканерное изображение имеет не только оптическую геометрию сканирующей системы, но и свои дисторсии и искажения внутренней геометрии изображения. Отсюда вытекает необходимость проведения математической калибровки и компенсации дисторсий для любых практически используемых в технических си' стемах камер и сканеров. Процедуры такой калибровки для камер с центральной проективной геометрией будут также рассмотрены в главе 5. К сожалению, опти' ческие системы многих дешевых бытовых устройств ввода изображений столь несовершенны, что даже математическая калибровка не в состоянии придать им метрические свойства. Это относится, в частности, к большинству USB'камер и цифровых камер, встроенных в сотовые телефоны.
2.3.3. Цифровые и аналоговые устройства Говоря о существенных характеристиках приемников изображений, необходимо упомянуть о том, что выходной сигнал устройства, непосредственно регистриру' ющего изображение, может быть цифровым или аналоговым. Аналоговый видеосигнал формируется аналоговыми видеокамерами или ви деомагнитофонами. Как правило, в этом плане вы можете столкнуться со стандар' тными видеосигналами в формате PAL, SECAM или NTSC. Для того чтобы ввести аналоговый видеосигнал в компьютер в виде цифрового изображения или после' довательности цифровых изображений, необходимо использовать специальное дополнительное оборудование – устройство видеоввода, или фреймграббер. Фреймграббер представляет собой аналогово'цифровой преобразователь и одно' временно декодер формата изображения, который позволяет непосредственно подключить на вход видеосигнал от аналоговой камеры, телевизионной антенны или видеомагнитофона, после чего данные в цифровом формате начинают посту' пать в компьютер по шине данных (например, по шине PCI, если это встроенная плата видеоввода с PCI'разъемом) либо через один из внешних портов, если это внешний фреймграббер, выполненный в виде отдельного устройства. В современ' ных технических системах, как правило, используются встроенные фреймграббе' ры, обеспечивающие более высокую скорость передачи данных. Большинство со'
Устройства оцифровки и ввода изображений
89
временных фреймграбберов позволяют осуществлять оцифровку аналоговых сигналов всех стандартных типов, однако контроль за тем, чтобы выбранные па' раметры оцифровки соответствовали характеристикам оцифровываемого сигна' ла, в большинстве случаев ложится на пользователя. Цифровые камеры, цифровые фотоаппараты и цифровые сканеры сразу фор' мируют изображение в цифровом виде таким образом, что оно может быть введе' но в компьютер через тот или другой стандартный канал для ввода цифровых дан' ных. Еще несколько лет назад для цифрового обмена данными большинство устройств использовали такие порты: последовательный порт (serial port), парал лельный порт (parallel port) и порт RS232/464. Это были достаточно «узкие» ка' налы, существенно ограничивавшие скорость передачи цифровых видеоданных. Практически о передаче по ним видеоданных в реальном масштабе времени не могло быть и речи. На сегодня наиболее распространенным интерфейсом, исполь' зуемым в бытовых устройствах видеоввода, является Universal Serial Bus (USB). Первая версия этого порта обеспечивала невысокую пропускную способность ка' нала, в связи с чем для промышленных приложений в основном использовались другие специализированные порты/протоколы: IEEE 1394 (FireWire) и Camera Link. Однако новый стандарт USB2 вплотную приблизил технологию USB к по' требностям профессиональных разработчиков, в результате чего стали появлять' ся и профессиональные промышленные системы, ориентированные на ввод по USB'каналу. Таким образом, в настоящее время в промышленных системах тех' нического зрения могут использоваться все три упомянутых цифровых канала ввода. Выбор конкретного канала определяется на этапе проектирования системы в зависимости от особенностей каждой конкретной задачи.
2.3.4. Пространственное разрешение Важной характеристикой любого устройства ввода изображения является его разрешение. Различают яркостное разрешение (о котором речь, в частности, пой' дет в следующем разделе) и пространственное разрешение. В свою очередь о про' странственном разрешении говорят в двух основных смыслах – как о собственной характеристике устройства ввода и как о характеристике съемки данным устрой' ством реального объектного пространства (пространства сцены). Собственное разрешение камеры или сканера – это количество элементов изображения на кадр, которое данное устройство может обеспечить. О собственном разрешении аналоговых видеокамер обычно говорят в терминах телевизионных линий (ТВЛ). При этом считается, что разрешение ниже 200 ТВЛ является «низким», разрешение порядка 400–500 ТВЛ – «среднее», а разрешение в 600–800 ТВЛ и выше – «высокое». Собственное разрешение цифрового фотоаппарата оценивается в мегапиксе лях (Мпикс) – количестве пикселей цветного изображения максимального разме' ра, которое в состоянии сформировать данный фотоаппарат. На сегодняшний день разрешение ниже 1 Мпикс считается «низким», разрешение порядка 3–5 Мпикс – «средним», а разрешение выше 10 Мпикс – «высоким».
90
Цифровые изображения
Собственное разрешение цифровых видеокамер и фреймграбберов определя' ется размером выходного изображения в пикселях. Разрешение ниже 320×200 считается «низким», разрешение порядка 640×480ё576×768 считается «средним», а разрешение более 1024×1024 – «высоким». Собственное разрешение оптического сканера на основе сканирующей линей' ки характеризуется количеством элементов линейки. Следует сразу заметить, что качественные оценки «низкого» или «высокого» разрешения по ходу развития современной техники постоянно подвергаются пе' ресмотру в сторону увеличения пороговых значений. Лишь несколько лет назад стандарт VGA 640×480 считался эталоном «высокого» разрешения. Поэтому дан' ные качественные градации можно использовать только в качестве самых при' близительных ориентиров. На практике при выборе оборудования видеоввода для построения той или иной аппаратно'программной системы машинного зре' ния выбор типа камеры или сканера осуществляется, как правило, на основе тре' бований не к собственному, а к внешнему пространственному разрешению. Внешнее пространственное разрешение по своему смыслу характеризует раз' мер мельчайших деталей реальной сцены, которые можно различить на изобра' жении. Традиционно для характеристики пространственного разрешения аналоговых телевизионных систем применялся критерий количества пар различимых линий. Имеется в виду следующий тестовый эксперимент. Пусть имеется тестовое изоб' ражение (таблица, test field), состоящее из вертикальных линий шириной W, раз' деленных промежутками толщиной также W. В такой таблице ширина пары близ' ко расположенных линий будет 2W, и на некоторой единице длины разместится соответственно 1/2W таких пар линий. В этом смысле говорят, что данное устрой' ство обеспечивает, например, 100 различимых пар линий на миллиметр объектно' го пространства. Для цифровых фотоаппаратов, цифровых видеокамер и фреймграбберов удоб' нее использовать такую характеристику внешнего разрешения, как цена пикселя, или пиксельное разрешение. Допустим, собственное разрешение камеры по гори' зонтали составляет 640 пикселей. Пусть при этом производится съемка некото' рой области объектного пространства, горизонтальный размер которой составляет (на стандартной дальности съемки) порядка 6,4 м. Тогда внешнее пространствен' ное разрешение одного пикселя в горизонтальном направлении составит соответ' ственно 6,4м / 640 = 0,01м = 1см. Для оптических сканеров, предназначенных для сканирования документов, исторически утвердилась такая характеристика внешнего разрешения, как DPI (dots per inch) – количество отсканированных точек на дюйм расстояния. Если внешнее разрешение камер и фотоаппаратов нельзя охарактеризовать как заведо' мо низкое или высокое, поскольку такая оценка зависит от оптики (при замене объектива на объектив с другим фокусным расстоянием внешнее разрешение сис' темы сразу изменяется) и требований данной конкретной задачи (большая или меньшая точность измерений нам нужна), то для сканерной характеристики DPI такие качественные оценки существуют. Они связаны с требованиями систем ав'
Устройства оцифровки и ввода изображений
91
томатического распознавания текстов, а также с требованиями издательских сис' тем к растровым изображениям, отсканированным для печати. Считается, что разрешение ниже 300 dpi – это «низкое» разрешение, порядка 600 dpi – «нормаль' ное», или «среднее», разрешение, а свыше 1200 dpi – «высокое» разрешение. Час' то производители оптических сканеров указывают для своих продуктов сразу две характеристики разрешения – «физическое» и «математическое» разрешения, причем «математическое» разрешение как минимум в два раза выше физического. Это объясняется тем, что в аппаратное или программное обеспечение сканера за' шивается алгоритм межпиксельной интерполяции изображения, позволяющий создавать иллюзию более высокого разрешения, чем физически позволяет дости' гать количество элементов сканирующей линейки. На самом деле при выборе ска' нера для вашей конкретной задачи всегда следует опираться только на указанное «физическое» разрешение устройства. Маленькое методическое замечание в заключение раздела о разрешении. По' чему и в каком смысле размер цифрового изображения является мерой его разре' шения, если мы не знаем и не можем знать заранее, каково будет внешнее раз' решение, полученное в дальнейшем «на местности»? Видимо, дело в том, что, опираясь на знание размера изображения (DimX×DimY), мы все'таки можем ап' риори сказать, что разрешение на местности составит соответственно LX / DimX и LY / DimY, где (LX×LY) – размер поля зрения камеры в объектном пространстве. То есть разрешение цифрового изображения в пикселях обусловливает макси' мально возможное внешнее разрешение в относительных единицах – долях мак' симального размера регистрируемого объекта.
2.3.5. Программное обеспечение Последним существенным компонентом системы ввода, позволяющим пользова' телю получить доступ к изображению и его пикселям в цифровом виде непосред' ственно в своей программе анализа и обработки изображений, является соответ' ствующее программное обеспечение, поставляемое разработчиками устройств ввода или программных пакетов для работы с изображениями. В состав такого ПО обычно входят: • драйвер – специальная библиотека для связи с устройством «на низком уровне»; • библиотека стандартных функций «высокого уровня» для организации простого и удобного интерфейса с драйвером. Как правило, драйверы устройств ввода (камер, сканеров и фреймграбберов) поставляют их производители, и они сразу входят в стандартный комплект по' ставки. Обратите внимание на то, что для каждой операционной системы требует' ся специальный тип драйвера, совместимый именно с данной ОС. Практически все современные системы видеоввода подключаются к персональным компьюте' рам как устройства типа plug'and'play. То есть после физического подключения устройства и (если необходимо) перезагрузки компьютера операционная система должна самостоятельно определить факт наличия нового устройства и сама ин'
92
Цифровые изображения
сталлировать необходимые для данного устройства драйверы. Если нужного драйвера под рукой все'таки не оказалось (обычно это происходит в тех случаях, когда оборудование было выпущено раньше, чем данная операционная система), его почти всегда можно бесплатно скачать с Web'сайта производителя. Для самостоятельного программирования блока видеоввода в системах компь' ютерного зрения и общения на «высоком уровне» с современными устройствами видеоввода под операционной системой Windows существуют стандартные про' токолы обмена данными. В частности, для потокового видеоввода с видеокамер и фреймграбберов используется протокол Video for Windows (VFW), а для взаимо' действия с оптическими сканерами – так называемый протокол TWAIN. Среда LabVIEW имеет собственное средство для установки любых периферийных уст' ройств и непосредственной работы с ними – Hardware Navigator. Если вы исполь' зуете для разработки своих систем программную среду LabVIEW, вам, безусловно, стоит забыть о протоколах общего характера и взаимодействовать с устройствами ввода изображений (а также и со всеми другими периферийными устройствами) только средствами LabVIEW. При построении программно'аппаратных систем в LabVIEW это намного удобнее, быстрее и эффективнее.
2.4. Форматы хранения и передачи цифровых изображений В предыдущем разделе мы говорили о том, что с точки зрения абстрактной струк' туры данных все изображения представляют собой регулярные двумерные мас' сивы и различаются только типом пикселя. В то же время всем известно, что в настоящее время в мире широко используется несколько десятков различных форматов файлов для хранения и передачи растровых цифровых изображений. Чем же объясняется такое разнообразие файлового представления достаточно универсальной структуры данных? Здесь можно выделить следующие три основ' ные причины использования различных форматов: • разнообразие сопроводительной информации. В самом деле, кроме непос' редственно самого массива пикселей, в файле изображения необходимо хранить еще как минимум размеры DimX и DimY, а также описание структу' ры пикселя с указанием его типа и битности. Обычно такая информация хранится в самом начале файла изображения, до массива данных. Однако этим далеко не исчерпывается вся сопроводительная информация, кото' рую может оказаться полезным хранить вместе с изображением. Важно знать, например, пространственное разрешение изображения, если оно из' вестно (для сканерных изображений разрешение dpi известно всегда). Если цветное изображение сохраняется не в форме RGB, а в виде байтовых кодов соответствующих цветов (что было основным приемом работы с цветом на заре персональной техники), то вместе с массивом пикселей нужно в обяза' тельном порядке хранить и таблицу их цветовой кодировки и т. д. и т. п. Таким образом, в различных задачах, различных устройствах ввода и в раз'
Форматы хранения и передачи цифровых изображений
93
личных предметных областях возникала необходимость хранить в заголов' ке растрового изображения различные типы дополнительных данных; • использование процедур сжатия данных. Цифровое изображение, особенно полученное на оптическом сканере с высоким разрешением, занимает мно' го места на диске и в памяти компьютера. По той же причине оно медленно передается по различным сетям компьютерной коммуникации. Для многих практических приложений – прежде всего для систем архивирования дан' ных – задача уменьшения объема цифровых изображений стоит очень остро. Различные процедуры сжатия данных традиционно реализуются в отдель' ных программных средствах – архиваторах, которые позволяют сжимать любые компьютерные файлы, вне зависимости от их содержания. В то же время многие разработчики систем для работы с изображениями стремятся встроить возможность упаковки данных непосредственно в формат файла изображения. Отчасти это связано с тем, что так удобнее пользоваться фай' лами изображений, не вызывая внешних архиваторов. Отчасти – с тем, что изображение, как пространственно распределенный тип данных, обладает некоторой дополнительной специфической избыточностью по отношению к любым произвольным числовым или текстовым данным, что позволяет, по идее, строить специализированные алгоритмы сжатия изображений, бо' лее эффективные по сравнению с алгоритмами общего назначения; • исторические причины. Различные фирмы'разработчики ПО и устройств ввода для работы с изображениями, выпустившие некогда собственные форматы хранения и передачи изображений, старались в дальнейшем под' держивать и распространять именно этот формат данных. Наиболее распространенными на сегодняшний день являются следующие форматы цифровых изображений: BMP, PCX, TIFF, GIF, JPEG. Основные харак' теристики этих форматов приведены в табл. 2.4.1.
Таблица 2.4.1. Файловые форматы цифровых изображений Фор Макс. число Макс. число Макс. размер мат бит/пиксель цветов изображения, пиксель
Метод сжатия
Хранение нескольких изображений
BMP PCX GIF TIFF JPEG
–, RLE * RLE LZW –, LZW, RLE, др.* JPEG
– – + + –
24 24 8 24 24
16”777”216 16”777”216 256 16”777”216 16”777”216
65535×65535 65535×65535 65”535×65535 всего 4”294”967”295 65535×65535
* Изображение может храниться в неупакованном виде
Как видно, одной из важных характеристик формата цифрового изображения является применяемый в данном формате метод сжатия. Поэтому прежде чем рассмотреть сами форматы файлов, вспомним основные моменты, связанные со сжатием цифровых данных.
94
Цифровые изображения
2.4.1. Методы сжатия цифровых изображений Методы сжатия данных делятся на две основные группы: сжатие без потерь и сжатие с потерями информации. Сжатие цифровой информации без потерь ши' роко используется во всех областях, где необходимо архивировать текстовые дан' ные и компьютерные программы в виде исполняемых кодов. В этом случае любые потери информации при упаковке'распаковке данных могут привести к потере или искажению части содержания текста или потере работоспособности распако' ванной программы. Поэтому методы сжатия «с потерями» используются в основ' ном в области записи и хранения цифровых мультимедийных данных: изображе' ний, а также аудио' и видеозаписей. В этом случае с определенной потерей точности оцифровки можно смириться, если она будет незаметна или слабо за' метна для воспринимающего видео' или аудиоданные человека. Сжатие без потерь основано на том, что всякие цифровые данные, рассмот' ренные как последовательность (поток) бит информационно избыточны. Это по' зволяет ставить вопрос о сжатии данных в классической постановке, подразу' мевая под «сжатием» передачу того же количества информации с помощью последовательностей бит меньшей длины. Для этого используются специальные алгоритмы сжатия, уменьшающие избыточность. Эффект сжатия оценивают ко эффициентом сжатия: K = n / q, где n — число минимально необходимых символов для передачи сообщения (практически это число символов на выходе эталонного алгоритма сжатия); q — число символов в исходном сообщении. При двоичном кодировании n равно энт' ропии источника информации. Среди простых алгоритмов сжатия без потерь наиболее известными являются алгоритмы кодирования цепочек (Run Length Encoding, RLE). В них все последова' тельные цепочки одинаковых символов заменяются парами значений {повторяю' щийся символ, длина цепочки}. Трудно представить себе реальный текст, в котором буквы часто пппппппп повторялись бы подряд. Однако на цифровых изображениях вполне могут встречаться значительные области равной яркости. Поэтому данный метод достаточно эффективен при передаче растровых изображений (особенно со' зданных искусственно в графических редакторах), но малополезен при передаче текста. К методам сжатия без потерь относят также методы разностного кодирова' ния, основанные на том, что разности амплитуд последовательных отсчетов, как правило, представляются меньшим числом разрядов, чем сами амплитуды. Статистические методы сжатия можно проиллюстрировать на примере извес' тного метода Хаффмана. Идея этого метода заключается в том, что часто повторя' ющиеся символы следует кодировать более короткими цепочками битов, чем сим' волы, которые встречаются реже. Для этого строится двоичное дерево, листья которого соответствуют кодируемым символам, а код символа представляется последовательностью значений ребер, ведущих от корня к листу (все они прини' мают соответственно значения 0 или 1). При этом листья символов с высокой ве'
Форматы хранения и передачи цифровых изображений
95
роятностью появления располагаются ближе к корню, чем листья маловероятных символов. Очевидный недостаток данного метода заключается в необходимости заранее знать вероятности присутствия различных символов. Если они неизвест' ны априори, то для сжатия методом Хаффмана требуются два прохода по изобра' жению: на первом проходе собирается гистограмма изображения (подсчитывают' ся вероятности появления каждого возможного значения пикселей), на втором проходе производится собственно кодирование. Этот недостаток устраняется в однопроходных алгоритмах адаптивного сжатия, в которых для кодирования используется не гистограмма всего объема кодируемых данных, а только по' следних N просмотренных пикселей. Обобщением этого метода является метод, основанный на словаре сжатия дан' ных. В таких алгоритмах происходит выделение и запоминание в специальном словаре уже не отдельных символов, а повторяющихся цепочек символов, кото' рые соответственно кодируются цепочками меньшей длины. В настоящее время наиболее распространенным алгоритмом сжатия без потерь является алгоритм LZW, предложенный Лемпелем (Lempel), Зивом (Ziv) и Уэлчем (Welch). Идея этого метода заключается в следующем. Предположим, у нас имеется словарь, хранящий строки символов (значений яркости). Запишем в первые 256 ячеек простейшие «строки», состоящие из одного символа, номер которого равен номе' ру ячейки. Далее алгоритм просматривает входной поток байт, разбивая его на подстроки и добавляя новые ячейки в конец словаря. Пусть из входного потока прочитаны несколько последовательных символов, составляющих строку s. Най' дем в текущем словаре строку t, являющуюся самым длинным «префиксом» стро' ки s. Под «префиксом» здесь понимается строка, полностью совпадающая с пер' выми символами данной строки, если отсчитывать их «слева». Допустим, самый длинный префикс, включающий максимальное количество символов, совпадаю' щих с первыми символами данной строки, найден в ячейке с номером n. В этом случае мы выводим число n в выходной поток, перемещаем указатель входного потока на длину строки t вперед и добавляем в словарь новую ячейку, содержа' щую строку t + c, где с – символ анализируемой строки s, следующий сразу после префикса t. Таким образом, данный алгоритм преобразует поток символов на вхо' де в поток индексов ячеек словаря на выходе. При размере словаря, например, в 4096 ячеек можно передавать 12 бит на каждый индекс. Каждая распознанная цепочка символов добавляет в словарь одну ячейку. Любая ячейка словаря, кроме самых первых, содержащих одиночные символы, хранит копию некоторой другой ячейки, к которой в конец приписан один символ. При переполнении словаря упа' ковщик может либо прекратить его заполнение, либо очистить словарь (полнос' тью или частично). Данный алгоритм отличают высокая скорость работы – как при упаковке, так и при распаковке данных, умеренные требования к объему па' мяти и простые аппаратная и программная реализации. Он используется во мно' гих форматах хранения цифровых изображений. Сжатие с потерями основано на том, что перед кодированием данные предва' рительно подготавливаются (фильтруются) таким образом, что сжатие отфильт' рованных данных описанными выше методами становится существенно более
96
Цифровые изображения
эффективным, нежели сжатие самих исходных данных. Идею такого преобразо' вания легко понять на следующем примере. Пусть имеется некоторое полутоно' вое изображение «естественной» сцены, включающее большие области приблизи' тельно однородной яркости. В таких областях различия значений интенсивности соседних пикселей различаются лишь на несколько градаций серого, что суще' ственно меньше, чем перепады яркости на границах областей. Если мы попробуем непосредственно применить к таким изображениям, например, алгоритм RLE, то он будет совершенно неэффективен, так как средняя длина цепочек в точности оди' наковых значений яркости вдоль строк изображения будет 1–2 пикселя, что не даст никакого выигрыша при кодировании таких данных «длинами цепочек». В то же время, с точки зрения особенностей зрительного восприятия человека, незначи' тельными флуктуациями яркости вполне можно пренебречь. Допустим, мы сумели отфильтровать эти малые отклонения каким'либо алгоритмом помеховой фильтра' ции изображений (алгоритмы помеховой фильтрации будут рассмотрены в разделах 3.3 и 3.4 данной книги). В результате такой обработки «гладкость» изображения в однородных областях существенно повысится, и как следствие эффективность сжатия изображения даже таким простым алгоритмом, как RLE, сразу увеличится в несколько раз. В качестве примера современного алгоритма эффективного сжа' тия с потерями ниже будет рассмотрен алгоритм сжатия JPEG. Заметим, что из приведенного примера сразу становится видна и основная проблема, связанная с потерями информации при применении сжатия в системах машинного зрения. С одной стороны, чем более мощное сглаживание изображе' ния мы применяем на первом этапе, тем более эффективным будет его последую' щее кодирование. С другой стороны, чем мощнее алгоритмы сглаживания, тем выше вероятность того, что вместе с шумом и незначительными флуктуациями с изображения будут также удалены и полезные детали, окажутся искаженными контуры, может быть потеряна информация, обеспечивающая точность распозна' вания и измерения объектов и т. п. Причем в технических задачах машинного зре' ния требования к качеству анализируемых изображений, как правило, существен' но выше, чем в задачах визуального представления информации человеку (например, при записи и воспроизведении видеофильмов). Таким образом, важно помнить, что, выбирая метод и параметры сжатия (то есть формат хранения фай' ла изображения), нужно искать компромисс между желаемой степенью сжатия данных, которая определяется располагаемыми объемами свободной памяти но' сителя информации (диска, оперативной памяти, карты памяти и т. п.), и необхо' димым качеством изображения, которое определяется техническими требования' ми к работе создаваемой системы машинного зрения. Теперь рассмотрим вкратце каждый из ранее упомянутых форматов цифро' вых изображений.
2.4.2. Формат BMP Формат BMP (битовый массив, BitMaP) – это системный формат операционной системы Windows. В Windows API (наборе функций ядра системы) предусмотре'
Форматы хранения и передачи цифровых изображений
97
ны готовые средства для его загрузки, сохранения, отображения и выполнения других стандартных операций по работе с изображениями. В простейшем вариан' те файл BMP содержит классическую неупакованную структуру цифрового изоб' ражения, представленного в виде двумерного массива пикселей, которому пред' послана некоторая «шапка» (header), содержащая размеры массива и другую служебную информацию. Таким образом, в отличие от форматов, использующих сжатие, загрузив файл в формате BMP, вы сразу получаете доступ к пикселям по их координатам (x,y) и можете непосредственно приступать к его обработке и ана' лизу. Эти два фактора (простая структура и системная поддержка ОС Windows) делают данный формат крайне привлекательным для использования его в прак' тических задачах на начальных этапах изучения машинного зрения. На примере файла BMP удобно рассмотреть типовую структуру заголовка файла цифрового изображения. Для простейшего варианта формата BMP она имеет следующий вид (ниже при описании программных структур используется нотация языка программирования C, смысл полей данных ясен из комментариев). Сначала размещается структура BITMAPFILEHEADER, описывающая общую структуру файла: BITMAPFILEHEADER typedef struct tagBITMAPFILEHEADER { word
bfType;
//òèï ôàéëà
dword bfSize; //ðàçìåð ôàéëà â 32-áèòíûõ ñëîâàõ dword word bfReserved1; //â îáùåì ñëó÷àå íå èñïîëüçóåòñÿ word
bfReserved2;
// â îáùåì ñëó÷àå íå èñïîëüçóåòñÿ
dword bfOffbits; //ñìåùåíèå
íà÷àëà
äàííûõ
äâóìåðíîãî
ìàññèâà
îò
//çàãîëîâêà â áàéòàõ
Непосредственно за ней располагается структура BITMAPINFO, содержа' щая информацию о массиве пикселей. Она делится на две части: структуру BITMAPINFOHEADER, описывающую размеры и цветовой формат массива изоб' ражения, и массив структур RGBQUAD, определяющий цветовую палитру изобра' жения, если оно не является полутоновым. typedef struct tagBITMAPINFO { BITMAPINFOHEADER bmiHeader; RGBQUAD
bmiColors[1];
} typedef struct tagBITMAPINFOHEADER { dword biSize; //÷èñëî áàéò, çàíèìàåìûõ ñòðóêòóðîé BITMAPINFOHEADER dword biWidth; //øèðèíà èçîáðàæåíèÿ â ïèêñåëÿõ (DimX) dword biHeight;//âûñîòà èçîáðàæåíèÿ â ïèêñåëÿõ (DimY) word
biPlanes;
//÷èñëî áèòîâûõ ïëîñêîñòåé óñòðîéñòâà
word
biBitCount;
//÷èñëî áèòîâ íà ïèêñåëü
98
Цифровые изображения
Форматы хранения и передачи цифровых изображений
dword biCompression;
//òèï ñæàòèÿ (ñìîòðè íèæå)
dword biSizeImage;
//ðàçìåð èçîáðàæåíèÿ â áàéòàõ
99
также допускается работа с BMP'файлами формата OS/2, в которых используют' ся иные форматы информационного заголовка растрового массива и таблицы цветов.
dword biXPelsPerMeter; //ãîðèçîíòàëüíîå ðàçðåøåíèå óñòðîéñòâà, //ïèêñåëü/ì dword biYPelPerMeter;
//âåðòèêàëüíîå
ðàçðåøåíèå
dword biClrUsed;
//÷èñëî èñïîëüçóåìûõ öâåòîâ
dword biClrImportant;
//÷èñëî «âàæíûõ» öâåòîâ
óñòðîéñòâà,
ïèê-
ñåëü/ì
} BITMAPINFOHEADER;
Рассмотрим более подробно некоторые поля данной структуры. biSize – размер структуры. Его полезно знать, чтобы при считывании файла можно было сразу перейти к следующему элементу (таблице цветов). biBitCount – этим полем определяется число цветов или градаций серого, содержащихся в пикселе изображения. В зависимости от способа кодирования, может принимать значения: • 1 – монохромное (бинарное) изображение. Каждый бит в массиве данных кодирует один пиксель; • 4 – изображение имеет не более 16 цветов или градаций серого. Соответ' ственно и массив bmiColors (таблица цветов) имеет до 16 элементов. Цвет каждого пикселя определяется по таблице цветов при помощи четырехбит' ного индекса; • 8 – изображение имеет 256 цветов или градаций серого. Таблица цветов имеет 256 элементов. Каждый байт массива данных определяет значение одного пикселя. Наиболее распространенный формат для записи и обра ботки полутоновых изображений; • 24 – изображение допускает 224 цветов. Таблица цветов пуста, а цвет пиксе' лей определяется пакетами из трех байтов {RGB}, непосредственно храня' щимися в массиве изображения и описывающими цветовые интенсивности соответственно красной, зеленой и голубой составляющей цвета пикселя. biCompression – тип сжатия. Может принимать значения: • BI_RGB – сжатие отсутствует; • BI_RLE8 – сжатие для формата 8 бит на пиксель; • BI_RLE4 – сжатие для формата 4 бита на пиксель. biXPelsPerMeter и biYPelsPerMeter – пространственное разрешение изоб' ражения, определяемое свойствами устройства ввода и режимом сканирования. Далее в файле располагается собственно массив изображения. Он хранится последовательно по строкам, причем первой строкой считается нижняя строка изображения (начало координат находится в левом нижнем углу изображения). Заметим также, что в файлах BMP длина строк изображения выравнена таким образом, чтобы быть кратной четырем байтам (32 бита, dword). Это сделано для удобства оперирования с изображениями в 32'битной архитектуре. Не все файлы BMP имеют такую структуру. В частности, в некоторых вариан' тах формата изображение может сжиматься посредством алгоритма RLE. В Windows
2.4.3. Формат PCX Формат PCX – исторически первый стандарт представления растровой графики на персональных компьютерах IBM PC. Этот формат изначально применялся в программе Paintbrush фирмы ZSoft и впоследствии был преобразован фирмой Microsoft в Windows Paintbrush. Формат PCX удобен для хранения искусствен' ных изображений, в которых присутствуют значительные области однородных цветов, и плохо приспособлен для хранения «естественных» изображений, полу' ченных различными устройствами ввода. В связи с этим область применения дан' ного формата в последние годы сокращается, хотя файлы в формате PCX по'пре' жнему во множестве можно встретить в различных многолетних архивах цифровых изображений. Файлы формата PCX содержат следующие три основных блока: • заголовок PCX; • данные растрового массива; • факультативную таблицу цветов. Заголовок PCX имеет размер 128 байт и содержит несколько полей, в том чис' ле – размеры изображения и количество бит, кодирующих информацию о цвете каждого пикселя. Растровый массив изображения сжимается с помощью алгорит' ма сжатия RLE. Факультативная таблица цветов содержит 256 значений цветов RGB, определяющих цвета изображения. Такая структура связана с тем, что фор' мат PCX был изначально разработан с расчетом на существовавшие в то время адаптеры CGA' и EGA'дисплеев, поддерживавшие малое количество цветов на экране персонального компьютера. В дальнейшем формат был модифицирован для использования с более современными адаптерами VGA и даже TRUE COLOR (RGB). Соответственно кодирование цвета в современных версиях PCX может производиться с глубиной 1, 4, 8 или 24 бит на пиксель.
2.4.4. Формат GIF Разработанный компанией CompuServe формат GIF (Graphics Interchange Format, произносится «джиф») был задуман как формат межплатформенного обмена гра' фическими данными. Предназначенный для пересылки файл не может иметь большого объема, поэтому в формате GIF пиксель изображения не кодируется количеством бит более 8. Кроме того, этот формат использует рассмотренный выше алгоритм сжатия данных LZW. Еще одной важной особенностью данного формата является то, что формат GIF позволяет сохранять в одном файле два и более изображений. Существует даже понятие «анимированный GIF»: один из режимов визуализации файла формата GIF предполагает последовательное ото' бражение хранящихся в файле картинок, что создает эффект короткого мульт'
100
Цифровые изображения
фильма. Такие файлы нашли широкое применение в мультимедийных интернет' приложениях. Конкретная структура файла GIF зависит от версии GIF'спецификации, кото' рой соответствует файл. Независимо от номера версии, файл GIF начинается с заголовка длиной 13 байт. Заголовок содержит специальную «подпись», кото' рая идентифицирует этот файл в качестве файла GIF, номер версии формата GIF и другую служебную информацию. Если файл содержит одно изображение, то сразу после заголовка, как правило, располагается таблица цветов. Если в файле хранится несколько изображений, то вместо общей таблицы цветов каждое изоб' ражение сопровождается своей локальной таблицей цветов. Вслед за заголовком и общей таблицей цветов размещается изображение, которое может быть первым из нескольких располагаемых подряд изображений. Каждое следующее изобра' жение состоит из 10'байтового заголовка изображения, локальной таблицы цве' тов и массива растровых данных, которые сжимаются с помощью алгоритма LZW. Файлы формата GIF89a могут также содержать следующие факультативные блоки расширения с дополнительной информацией о каждом изображении: • блоки управления графикой, которые описывают, как изображение должно выводиться на экран (например, накладывается ли оно на предыдущее изображение подобно диапозитиву или просто заменяет его); • текстовые блоки, содержащие текст, отображаемый вместе с графикой; • блоки комментариев, содержащие текстовые комментарии в коде ASCII; • блоки информации прикладных программ, в которых хранится информа' ция, принадлежащая создавшей и использующей этот файл прикладной программе. Блоки расширения могут находиться практически в любом месте файла после общей таблицы цветов. В настоящее время формат GIF широко распространен благодаря своей отно' сительной компактности и возможностям «анимации» с использованием текста. Однако в области обработки и анализа изображений эти достоинства не играют определяющей роли.
2.4.5. Формат TIFF Формат TIFF (Tagged Image File Format, формат файлов изображения, снабжен' ных «тегами», то есть метками'дескрипторами) был изначально создан для хране' ния изображений и серий изображений, оцифрованных с помощью оптических сканеров. По структуре это один из самых сложных и многовариантных форматов хранения изображений. Файлы формата TIFF имеют расширение .tiff или .tif. Каждый файл начинается заголовком изображения (Image File Header, IFH). Важнейший элемент этого заголовка – каталог файлов изображений (Image File Directory, IFD), служащий указателем на информативные структуры данных. IFD представляет собой таблицу для идентификации одной или нескольких пор' ций данных переменной длины, называемых тегами. Теги, в свою очередь, хранят информацию об изображениях. В спецификации TIFF определено более 70 раз'
Форматы хранения и передачи цифровых изображений
101
личных типов тегов. Тег одного типа хранит информацию о ширине изображения в пикселях, другого – информацию о его высоте; тег третьего типа указывает на таблицу цветов, тег четвертого типа содержит сами данные растрового массива, и т. д. Такой формат на самом деле представляет собой достаточно гибкое и про' странное описание изображения, написанное на специальном языке, основу кото' рого составляют слова'теги, а синтаксис определяется стандартом TIFF. Этот «язык» может легко и естественно расширяться путем добавления новых типов тегов. Файл TIFF может содержать несколько изображений, каждому из которых сопутствуют собственный IFD и набор тегов. Растровые данные в каждом из изображений могут сжиматься с использованием любого из нескольких методов, в число которых входят RLE, LZW и несколько других. Сложность и гибкость данного формата является, с одной стороны, его досто' инством, с другой – порождает целый ряд проблем. Основная из них связана с совместимостью. Во'первых, формат столь обширен и трудоемок в реализации, что лишь немногие пакеты, работающие с изображениями, обеспечивают возмож' ность правильного считывания всех существующих модификаций файлов TIFF. Если же в одной программе реализовано одно подмножество формата, а в другой – другое, то велика вероятность того, что файл, сохраненный в одном пакете, не будет корректно прочитан в другом. Во'вторых, предусмотренная для разработчиков оригинального прикладного ПО возможность создавать свои специализированные расширения формата TIFF, добавляя новые теги, чревата тем, что изображения, со' зданные такими системами будут неверно или не полностью считываться стандарт' ными пакетами, игнорирующими неизвестные им новые теги. Тем не менее, несмотря на существование указанных проблем, формат TIFF стал «де'факто» стандартом в области хранения и передачи сканерных изображе' ний. Он также активно используется и в области создания приложений машинно' го зрения.
2.4.6. Формат JPEG Формат JPEG был создан в результате работы объединенной группы экспертов в области фотографии JPEG (Joint Photographic Experts Group). Он был задуман и разработан как новый международный стандарт сжатия цветных изображений. Группа JPEG взяла на себя задачу разработки общеупотребительного стандарта сжатия с тем, чтобы удовлетворить нуждам большинства возможных устройств и приложений, которые испытывают необходимость в сжатии изображений с высо' кими степенями сжатия. Эта задача была блестяще решена, и в настоящее время формат JPEG является основным стандартом ввода, хранения и передачи изобра' жений, получаемых от цифровых фотоаппаратов, бытовых видеокамер, web'ка' мер и множества других бытовых и специализированных устройств. При этом формат JPEG действительно одновременно обеспечивает хорошее визуальное ка' чество изображений и высокую степень сжатия данных за счет использования специального алгоритма сжатия, относящегося к классу алгоритмов сжатия с по' терями информации.
102
Цифровые изображения
Формат JPEG – достаточно сложный и гибкий формат. Он обеспечивает воз' можность сжатия/восстановления изображений в следующих четырех различ' ных режимах работы: • последовательное кодирование – каждая компонента изображения кодиру' ется за один проход слева'направо, сверху'вниз; • постепенное кодирование – изображение кодируется за несколько проходов для приложений, где время передачи велико и наблюдатель предпочитает следить за тем, как изображение восстанавливается за несколько проходов от грубого к точному; • кодирование без потерь – изображение кодируется так, чтобы гарантирова' лось точное восстановление значения каждого отсчета изображения (даже если результатом будет малый коэффициент сжатия по сравнению с режи' мами с потерей информации); • иерархическое кодирование – изображение кодируется с несколькими зна' чениями разрешения, так что варианты с низким разрешением могут быть доступными для просмотра без необходимости восстанавливать изображе' ние с полным разрешением. Для каждого режима определен один или несколько кодеков. Слово кодек означа' ет здесь «кодер/декодер». Кодеки для разных режимов отличаются точностью, с ко' торой они могут работать с отсчетами изображения, и методом энтропийного ко' дирования, которые используют. Базовый последовательный кодек, основанный на дискретном косинусном преобразовании (ДКП), является богатым и сложным мето' дом сжатия, который является вполне достаточным для многих приложений. Кроме того, чтобы удовлетворить требованиям режима работы без потерь, группа JPEG выбрала простой прогнозирующий метод, никак не связанный с ДКП'обработкой. JPEG#сжатие на основе ДКП Рассмотрим алгоритм сжатия серого полутонового изображения. Вначале изоб' ражение разбивается на квадратные блоки размером 8×8 пикселей. Алгоритм сжатия каждого блока 8×8 включает следующие три основных шага: • дискретное косинусное преобразование; • квантование полученных значений; • сжатие без потерь полученных квантованных данных. Дискретное косинусное преобразование определяется следующей математичес' кой формулой:
ДКП связано с дискретным преобразованием Фурье (ДПФ). Значения коэф' фициентов ДКП можно рассматривать как относительные величины вкладов двумерных пространственных частот, содержащихся в исходном 8 × 8 = 64'точеч' ном входном сигнале. Так как обычно значения отсчетов изменяются очень мед' ленно при переходе от одной точки изображения к другой, в типичном 8×8 блоке
Форматы хранения и передачи цифровых изображений
103
исходного изображения боêльшая часть пространственных частот имеет нулевую или близкую к нулевой амплитуду и не требует кодирования. На втором этапе каждый из 64 коэффициентов полученной матрицы ДКП еди' нообразно квантуется в соответствии с 64'элементной таблицей квантования, ко' торая должна быть задана как характеристика кодера. Квантование предназначено для того, чтобы добиться дополнительного сжатия путем представления коэффи' циентов ДКП с точностью не большей, чем необходимо для достижения требуемого качества изображения. Иначе говоря, целью этого шага обработки является осво' бождение изображения от информации, которая не является визуально значимой. Завершающий этап алгоритма JPEG'сжатия полутонового изображения пред' ставляет собой сжатие без потерь полученных квантованных данных. При этом первый (нулевой) коэффициент ДКП кодируется по разностной схеме сжатия, а остальные 63 коэффициента ДКП блока кодируются по схеме Хаффмана. Сжатие цветного изображения этим методом можно приближенно предста' вить себе как сжатие нескольких полутоновых изображений, которые сжимаются либо по отдельности, либо с чередованием 8×8 блоков каждого из них. При сжатии описанным методом потери информации происходят на втором шаге процесса. Чем большие пороговые значения указаны в матрице квантования, тем больше отбрасывается информации из изображения и тем более плотно сжи' мается изображение. Проблема состоит в том, что более высокие значения кванто' вания приводят к худшему качеству изображения. Поэтому при формировании изображения JPEG пользователь может устанавливать показатель качества, ве' личина которого «управляет» значениями матрицы квантования. Оптимальные показатели качества, обеспечивающие лучший баланс между коэффициентом сжатия и качеством изображения, различны для разных изображений и обычно устанавливаются в каждом конкретном практическом случае экспериментально. На рис. 2.4.1–2.4.4 представлен пример сжатия цифрового изображения чело' веческого лица. На рис. 2.4.1 показано стандартное тестовое полутоновое изобра' жение размера 256×256 (256 градаций серого). Его исходный размер в неупако' ванном формате BMP – 66614 байт. На рис. 2.4.2 показан результат его сжатия в формате JPEG с параметром «качества» 95% (размер файла – 30703 байт). На рис. 2.4.3 показан результат сжатия в формате JPEG с параметром «качества» 20% (размер файла – 4617 байт). На рис. 2.4.4 показана попиксельная разность изобра' жений рис. 2.4.1 и рис. 2.4.3. На последнем изображении хорошо видны высокоча' стотные элементы информации, «потерянные» в ходе сжатия. Эксперименты, аналогичные данному примеру, позволяют сделать вывод о том, что при коэффициентах сжатия порядка 15–25 раз – визуальное качество как по' лутоновых, так и цветных изображений практически полностью сохраняется. Происходит незначительная потеря контурной (высокочастотной) информации, которая, однако, не снижает возможности как зрительного, так и автоматического опознавания человеческого лица по изображению. Согласно данным, приводимым в литературе, для цветных изображений с уме' ренно сложными сценами все ДКП'режимы работы обычно дают следующие уровни качества изображений для указанных диапазонов сжатия:
104
Цифровые изображения
Форматы хранения и передачи цифровых изображений
105
Эти уровни являются лишь примерными – качество и сжатие могут значительно изменяться в соответствии с характеристиками изображения и содержанием сцены. Алгоритм JPEG#сжатия без потерь
Рис. 2.4.1. Тестовое полутоновое изображение
Рис. 2.4.2. Результат сжатия с параметром «качества» 95%
Для решения данной задачи группа JPEG выбрала простой прогнозирующий ме' тод, совершенно не связанный с ДКП'обработкой, описанной выше. Суть его зак' лючается в том, что предиктор комбинирует до трех значений соседних отсчетов (A, B и C) для выработки прогноза для отсчета X. Затем этот прогноз вычитается из действительного значения отсчета X, и разность кодируется без потерь одним из двух методов энтропийного кодирования: методом Хаффмана или методом арифметического кодирования. Кодеры без потерь обычно дают сжатие примерно в 2 раза для цветных изобра' жений со сценами умеренной сложности. В заключение еще раз необходимо заметить, что визуально приемлемое каче' ство изображений, сохраненных в формате JPEG, может оказаться принципиаль' но недостаточным при попытке использовать их в системах технического зрения. Особенно важно учитывать этот момент при выборе средств цифровой съемки или оцифровки изображений. Так, например, в настоящее время большинство ус' тройств, передающих цифровое видео по каналу USB, используют встроенное на аппаратном уровне JPEG'сжатие. Начиная работу с такими устройствами, необ' ходимо сразу протестировать получаемые изображения на предмет возможных искажений, потерь и артефактов, возникающих в процессе кодирования/декоди' рования. Если эксперименты показывают, что качество входных изображений не' достаточно для решения поставленной технической задачи, необходимо выбрать другую систему видеоввода, лучше всего – обладающую боêльшим разрешением и не использующую сжатие с потерями на аппаратном уровне.
2.4.7. Формат DICOM
Рис. 2.4.3. Результат сжатия с параметром «качества» 20%
Рис. 2.4.4. Попиксельная разность изображений на рис. 2.4.3 и рис. 2.4.1
• 0,25–0,5 бит/пиксель – качество в диапазоне от удовлетворительного до хорошего (достаточно для некоторых Интернет'приложений); • 0,5–0,75 бит/пиксель – качество в диапазоне от хорошего до очень хороше' го (достаточно для многих приложений); • 0,75–1,5 бит/пиксель – отличное качество (достаточно для большинства приложений); • 1,5–2,0 бит/пиксель – зрительно неотличимо от оригинала (достаточно для самых критичных приложений).
Завершая обзор форматов хранения и передачи цифровых изображений, рассмот' рим один специализированный формат, получивший распространение и являю' щийся стандартом передачи данных только в одной, но крайне важной области – медицине. DICOM (Digital Imaging and Communications in Medicine) является стандартом, определяющим форматы хранения и передачи различными медицинскими уст' ройствами и программными приложениями цифровых изображений и информа' ции, необходимой для их диагностической интерпретации. Информационная мо' дель стандарта DICOM представляет собой объектно'ориентированную модель, ключевыми элементами которой являются: «информационные объекты» – абст' рактное описание реальных объектов, используемых для представления меди' цинской информации, и «команды» (сервисы), которые могут выполняться над этими объектами. Комбинация информационного объекта и сервисов образует SOP'класс (Service'Object Pair Class), предоставляющий интерфейс взаимодей' ствия DICOM'устройств и приложений.
106
Цифровые изображения
Для обеспечения совместимости на уровне интерпретации данных (атрибутов информационных объектов) стандарт определяет набор правил (синтаксисов) коди' рования. Атрибут кодируется «элементом данных» – структурой, содержащей тег (числовое имя) атрибута, его тип (зависит от поддерживаемого синтаксиса), размер в байтах и значение. Элементы данных объединяются в смысловые группы, упорядо' чиваются по возрастанию тегов и в рамках экземпляра информационного объекта могут использоваться не более одного раза. С целью оптимизации доступа к отдель' ным атрибутам может добавляться стандартный элемент «размер группы в байтах». Синтаксис кодирования задает структуру элемента данных, порядок следования байтов при записи данных: обратный – «младший–старший», прямой – «старший– младший» (Little Endian, Big Endian), а также формат компрессии изображений. Для хранения информации на диске и ее передачи на съемных носителях стан' дарт DICOM определяет формат файла DICOM. Формат DICOM обеспечивает хранение цифровых изображений, текстовой информации, а также видео' и аудиопоследовательностей. Файл DICOM состоит из информационного заголов' ка (File Meta Information) и следующего за ним блока данных (экземпляра SOP' класса). Заголовок включает в себя сегмент служебной информации (128 байт), четырехбайтовый идентификационный префикс «DICM» и группу элементов, содержащих информацию об уникальных идентификаторах SOP'класса, его эк' земпляра, приложения, записавшего данный файл, и поддерживаемого синтакси' са кодировки. После информационного заголовка следует блок данных. Файл DICOM может содержать только один блок данных, то есть один экземпляр SOP' класса. Зато стандарт DICOM предоставляет механизм формирования групп DICOM'файлов и сервисы для управления этими группами. В части сетевого обмена данными стандарт DICOM вводит сервис верхнего уровня DIMSE (DICOM Message Service Element), определяющий набор прото' колов, синтаксис и семантику команд. На нижнем уровне стандарт поддерживает стек протоколов передачи данных, удовлетворяющих спецификации ISO/OSI, TCP/IP и стек протокола с выделенным соединением. DIMSE'сервис предостав' ляет два типа команд: команды выполнения и команды уведомления. Информа' ция передается в виде DICOM'сообщений, состоящих из команды и данных. Ко' манды кодируются набором «командных элементов», представляющих собой структуры со следующими полями: тег, размер в байтах, значение. Командные элементы передаются в порядке возрастания тегов, первыми идут младшие байты (Little Endian). Данные в сообщении кодируются элементом данных, исходя из поддерживаемого синтаксиса. Процесс обмена сообщениями начинается с этапа установления ассоциации, смысл которого состоит в согласовании типов переда' ваемых данных и синтаксиса их передачи. В случае успешного выполнения дан' ного этапа осуществляются передача команд выполнения или уведомления со' гласно протоколам DIMSE'сервиса и завершение сеанса передачи. Аналогичные специальные форматы и протоколы передачи данных суще' ствуют и во многих других практических областях человеческой деятельности, хотя общей тенденцией все'таки является унификация стандартов хранения и передачи изображений в тех универсальных форматах, которые мы рассматри' вали ранее.
Цифровые видеопоследовательности
107
2.5. Цифровые видеопоследовательности До сих пор мы говорили о цифровом изображении как об одномоментном фото' графическом кадре или документе, переведенном в цифровую форму. Соответ' ственно и задачу его ввода, оцифровки, хранения и передачи мы рассматривали применительно к одному статическому кадру. Между тем, в большинстве совре' менных задач видеонаблюдения, технического зрения, управления мобильными объектами и т. п. одно единственное статическое изображение еще не позволяет получить всю необходимую информацию о составе и характеристиках наблюдае' мой динамически меняющейся сцены. Задачи анализа собственного движения, выделения движущихся объектов сцены, контроля осуществляемых технических манипуляций и другие требуют регистрации и анализа уже не одиночного цифро' вого изображения, а достаточно длительной цифровой видеопоследовательности. Начнем с процедуры регистрации видеопоследовательностей. Попутно нам придется немного затронуть и общие особенности съемки динамических сцен.
2.5.1. Скорость съемки Стандартной скоростью ввода последовательностей изображений в области ви' деосъемки является скорость порядка 25–30 кадров в секунду. Такая скорость захвата/показа кадров была экспериментально установлена еще во времена зарождения кинематографа в начале двадцатого века. В силу особенностей устройства зрительной системы человека именно такое количество – 24 сменя' ющихся кадра в секунду – необходимо для того, чтобы вместо мелькающих от' дельных картинок человек увидел якобы плавно и непрерывно меняющееся изображение. Так в кино' и видеозаписи создается эффект «живого» изображе' ния. Поэтому большинство устройств регистрации видеоизображений, предназ' наченных для последующего визуального просмотра, – бытовых видеокамер, ка' мер систем видеонаблюдения и т. п. – продолжают выпускаться именно с такой частотой смены кадров. Существует, однако, и множество технических задач, в которых стандартная скорость съемки кадров, ориентированная на визуальное восприятие, ни в коей степени не является оптимальной. Примеры такой «замедленной» и «ускорен' ной» съемки были известны задолго до того, как на повестку дня встали проблемы ввода и обработки изображений в цифровом формате. Так, замедленный повтор голевых моментов спортивных состязаний действительно осуществляется путем медленной прокрутки видеопоследовательности, снятой с обычной скоростью, а вот замедленное движение в кинофильмах или научно'популярных фильмах, де' монстрирующих невидимые глазу детали движений человека, различных живот' ных и быстроизменяющихся природных явлений, требуют сначала осуществить ускоренную съемку (причем скорость съемки может быть увеличена в несколько раз или даже несколько сотен раз), а затем – показ снятого видеоматериала со ско' ростью 25 кадров в секунду. С другой стороны, при регистрации медленно проте' кающих процессов применяется замедленная либо прореженная съемка с по'
108
Цифровые изображения
следующей демонстрацией отснятого материала со «стандартной» скоростью. Разница этих двух приемов киносъемки заключается в следующем. Замедленная съемка предполагает, что общее время съемки увеличивается за счет увеличения времени экспозиции каждого кадра. Увеличение времени экспо' зиции требуется в тех случаях, когда количество света, приходящее от объекта съемки за 1/25 с, недостаточно для того, чтобы оставить на кинопленке или чув' ствительном элементе матрицы видеокамеры достаточно яркий и контрастный след. Примером такого рода является съемка астрономических объектов слабой светимости. Чем слабее «светит» регистрируемый объект, тем больше должна быть экспозиция, чтобы мы могли зарегистрировать необходимое количество пришедших от него фотонов. Иногда экспозицию приходится увеличивать до та' кой степени, что начинает сказываться относительное движение объекта за время наблюдения, и звезды начинают выглядеть на таких снимках как «черточки», со' ответствующие участкам траекторий небесных тел, связанных с суточным враще' нием Земли. Это типичное явление динамического «смаза» изображения, которое мы еще рассмотрим чуть позже. Прореженная съемка – это такая разновидность видеомонтажа, при которой сама съемка ведется с обычной скоростью и обычными значениями экспозиции, но впоследствии видеопоследовательность прореживается с определенным ша' гом (каждый второй кадр, каждый десятый, один кадр в секунду, в минуту, в час, в день и т. д.). При этом изображение объекта съемки выглядит привычно и есте' ственно (поскольку каждый отдельный кадр ничем не отличается от любого кадра обычной видеосъемки), но изображение в целом движется быстрее, чем в жизни. Таким образом, например, создаются фильмы, демонстрирующие «ускоренный» рост растений, «быстрое» строительство зданий, «быстрое» изменение земных ландшафтов, движение ледников и т. п.
2.5.2. «Смаз» изображения Рассмотрим теперь уже упомянутую выше проблему динамического смаза изоб' ражений. Мы говорили о том, что смаз возникает при видеорегистрации объектов с большими экспозициями. Однако понятие «большая экспозиция» здесь относи' тельно – смаз возникает и при съемке со стандартной скоростью съемки, если объект относительно камеры движется быстрее определенного значения скоро' сти. Это достаточно типичная проблема съемки динамически меняющихся сцен, характерная для всех видов регистрирующих устройств, вне зависимости от того, используют ли они в качестве приемника изображения кино' и фотопленку или электронные устройства, аналоговые или цифровые. Дело в том, что если за время экспозиции объект успевает переместиться в пространстве (а образ объекта – со' ответственно в плоскости изображения) на заметное расстояние, то фотопленка или матрица видеоприемника успеет за это время накопить световые сигналы, испущенные или отраженные объектом в разных его положениях. Представьте себе, что мы специально «суммируем» несколько последовательных кадров ви' деозаписи в одном кадре. При этом, разумеется, изображение объекта окажется
Цифровые видеопоследовательности
109
«размазанным», лишенным четких контуров. Это и есть причина возникновения динамического смаза при видеосъемке. С точки зрения решения любых технических задач машинного зрения динами' ческий смаз является эффектом вредным, он «портит» изображение, делая его нерезким, мешает выделять и распознавать объекты, осуществлять измерения и считывать информацию. В современной обработке изображений существуют раз' личные математические методы реконструкции изображений, позволяющие час' тично или даже полностью восстанавливать резкость смазанного изображения, однако такая фильтрация практически никогда не может быть произведена в ре' альном масштабе времени. Таким образом, единственный практический способ избавиться от смаза заключается в том, чтобы правильно организовать ви' деосъемку, исключив условия возникновения смаза.
2.5.3. Этапы проектирования системы видеосъемки В процессе проектирования системы видеосъемки динамических сцен, помимо обеспечения необходимого пространственного разрешения, необходимо обратить внимание на следующие технические аспекты. Выбор экспозиции Прежде всего необходимо оценить минимально необходимое время экспозиции, ис' ходя из оценки ожидаемой скорости движения объекта съемки. Для этого, с уче' том требуемого пространственного разрешения, скорость движения объекта в пространстве пересчитывается в скорость движения его образа в пикселях в плоскости изображения. Отсюда легко определить время экспозиции, за кото' рое образ объекта сдвинется не более чем на 1 пиксель. Это и есть минимально необходимое время экспозиции в данной задаче. Выбор камеры Следующим этапом является выбор аппаратуры для видеорегистрации. Допус' тимые времена экспозиции являются паспортными данными видеокамер – как цифровых, так и аналоговых. Если минимально необходимое время экспозиции попадает в диапазон указанных в паспорте камеры вариантов экспозиции, данная камера в принципе может быть использована при создании программно'аппарат' ного комплекса для решения данной задачи. Здесь, однако, необходимо обратить внимание на еще одну паспортную характеристику камеры, а именно – тип развертки. Современные камеры могут иметь один из двух типов развертки – прогрессивный и чересстрочный. Прогрессивный тип развертки означает, что ка' мера действительно один раз за 1/25 с формирует одно изображение размера (DimX×DimY) с заданными параметрами экспозиции. Чересстрочный тип развер' тки означает, что данная камера за то же самое время на самом деле формирует не один кадр, а два полукадра размером (DimX×DimY/2), которые затем передаются в компьютер или на фреймграббер как целый «псевдокадр» размера (DimX×DimY).
110
Цифровые изображения
При этом четные строки псевдокадра составляют строки первого полукадра, а не' четные строки – строки второго полукадра (в связи с чем такой режим съемки и получил название «чересстрочный»). При съемке быстро движущихся объектов, даже если время экспозиции подобрано правильно, на чересстрочных изображени' ях можно наблюдать визуальный эффект «чересстрочного смаза», когда кажется, что на изображении находится не одно изображение объекта, а два его разномомен' тных «призрака», иногда пересекающихся между собой и накладывающихся на фон видимой сцены. Иногда двух различных изображений на чересстрочном снимке не наблюдается, и лишь контуры объекта кажутся немного смазанными. Но при более близком рассмотрении обнаруживается так называемый «эффект гребенки», связанный с тем, что контуры объектов в разных полукадрах имеют все же несколько отличное положение, и в результате контур объекта на суммар' ном псевдокадре имеет вид «расчески» с выступающими зубьями. Такой эффект чересстрочного смаза также является помехой для дальнейшей обработки и ана' лиза изображения. Поэтому следует либо выбирать камеры с прогрессивной раз' верткой, либо в самом начале анализа изображения разбивать введенный кадр на два полукадра и далее работать с ними как с независимыми изображениями. Дос' тоинством такого подхода является то, что вы получаете видеопоследователь' ность с удвоенной скоростью съемки (не 25 кадров, а 50 полукадров в секунду). Во многих задачах технического контроля удвоенная скорость съемки, получае' мая без удорожания системы на обычных видеокамерах, является предпочтитель' ной и позволяет улучшить качество работы системы в целом. В то же время недо' статком работы по полукадрам является то, что при этом вдвое снижается пространственное разрешение по вертикали (ведь число строк полукадра вдвое ниже по сравнению с целым кадром). Во'первых, этого разрешения может не хва' тить для того, чтобы обеспечить требуемую точность измерения объектов, во вто' рых, даже если точности хватит, изображение становится геометрически анизот' ропным и имеет разный масштаб по вертикальной и горизонтальной осям, о чем все время придется помнить в ходе написания отладки алгоритмов геометриче' ского анализа полукадров. Освещенность и подсветка Наконец, последним этапом формирования схемы съемки динамической сцены является анализ условий освещенности и, если необходимо, выбор устройств до полнительной подсветки. Действительно, мы ранее говорили о том, что выбранное время экспозиции определяется, с одной стороны, скоростью движения объекта (чем быстрее движется объект, тем меньше должно быть время экспозиции), а с другой стороны – количеством фотонов, которое успевает попасть на видео' приемник (чем слабее поток света, тем дольше должно быть время экспозиции). Как видно, одно требование противоречит другому в ситуации, когда объект дви' жется быстро и в то же время слабо освещен. В случае близко расположенных объектов (от сантиметров до десятков метров дальности) естественным выходом из этого противоречия становится использование дополнительной технической подсветки. Подсветка увеличивает уровень освещенности объекта до необходи'
Цифровые видеопоследовательности
111
мого для качественной регистрации при данном времени экспозиции. В качестве дополнительного источника освещения в системах машинного зрения обычно ис' пользуются имеющиеся в продаже готовые устройства технической подсветки – прожекторы. В случае если система технического зрения требует использовать подсветку, а работающим рядом людям такая подсветка могла бы помешать, ис' пользуется инфракрасная подсветка (ИК'прожекторы). Такая подсветка невиди' ма для человека и в то же время ближний ИК'диапазон хорошо регистрируется практически всеми черно'белыми камерами для технического зрения и видеонаб' людения. Внимание! Современные цветные камеры имеют специальный фильтр, отсекающий свет ИКдиапазона (чтобы он не искажал красную составля ющую цветного спектра). Поэтому не следует использовать ИКпрожек торы с цветными камерами. Если ваша задача требует цветной съемки, используйте подсветку в видимом диапазоне. Во многих задачах, помимо общего уровня освещенности, к устройствам под' светки также предъявляются и другие дополнительные требования – к однород' ности освещения, его геометрии и т. д. Это обусловливает использование в таких системах различного рода специальных устройств подсветки. Например, при съемке металлических, стеклянных, полированных и других бликующих поверх' ностей часто предъявляется требование создания однородной безбликовой под светки. В таких задачах, как считывание штриховых кодов, используется специ' альная лазерная линейная подсветка. В фотограмметрических системах для трехмерного сканирования и бесконтактного измерения деталей и других объек' тов используется специальная структурированная подсветка. Вопросы, связан' ные со структурированной подсветкой, будут подробно рассмотрены в главе 5 данной книги.
2.5.4. Быстрая съемка и съемка быстропротекающих процессов Когда мы говорили о скорости съемки, то упоминали уже «ускоренную съемку». При этом подразумевалось, что: • время съемки не ограничено; • скорость съемки может быть увеличена в разы по сравнению со стандарт' ными системами. Современные цифровые камеры обеспечивают возможность подобной быст рой съемки с параметрами порядка 100–150 кадров в секунду при разрешении кад' ра порядка 640×480 пикселей. Достижение более высоких скоростей съемки мо' жет быть осуществлено только за счет уменьшения разрешения кадра, либо за счет перехода к использованию линейных камер (об их достоинствах и недостат' ках мы уже писали выше). Основным ограничителем здесь служит пропусканная способность цифровых каналов передачи данных в реальном времени. Аналогич' ным образом пропускная способность каналов ввода ограничивает и возможность
112
Цифровые изображения
увеличения разрешения для видеосистем, работающих с «обычной» скоростью съемки. Съемка с параметрами порядка (1300×1000 пикселей) × 30 кадров/с счи' тается на сегодня наилучшим вариантом в смысле пространственного разреше' ния в реальном времени. Все это касалось быстрой, но непрерывной съемки движущихся объектов и динамических процессов. Между тем, существует целый класс объектов интереса, для которых характерны так называемые «быстропротекающие» процессы. Про' цесс можно считать быстропротекающим, если от начала до конца данного про' цесса проходит не более нескольких секунд или даже долей секунд. К таким про' цессам относятся всевозможные процессы взрывов, выстрелов, разрушения материалов, сгорания топлива и т. п. Для видеорегистрации таких процессов со' здан специальный класс устройств, которые позволяют осуществлять съемку в высоком пространственном разрешении со скоростями порядка 500, 1000 и даже 2000 кадров в секунду. При этом, поскольку ни один современный канал передачи данных не позволил бы передать все эти данные в реальном времени по ходу реги' страции, зарегистрированные кадры сохраняются в самой видеосистеме, а затем, после окончания процесса, «перекачиваются» в компьютер для дальнейшего хра' нения и обработки. Типичные на сегодня времена регистрации в таких системах: до 3 с в режиме (1300×1000 пикселей) × 1000 кадров/с; до 10 с в режиме (800×600 пикселей) × 500 кадров/с. Экспозиции, применяемые в таких системах, являются уже не просто малыми, а сверхмалыми. Поэтому здесь еще более важно при орга' низации съемки оценивать уровень освещенности объекта съемки и при необхо' димости использовать специальные устройства дополнительной подсветки. Наконец, существуют системы видеорегистрации изображений, временной интервал между которыми составляет наносекунды (10–10 с). Такие наносекунд ные системы в настоящее время выдают даже не «фильм», а всего лишь несколько (3–6) последовательных кадров, на которых регистрируются последовательные фазы сверхбыстропротекающих процессов, видеорегистрация которых в принци' пе была невозможна. Использование подобных устройств только начинается и, несомненно, позволит в будущем расширить сферу применения методов машин' ного зрения на новые интересные группы прикладных задач в области нанотехно' логий.
2.5.5. Форматы хранения и передачи цифровых видеопоследовательностей Для хранения и передачи последовательностей цифровых изображений исполь' зуются либо последовательности файлов изображений стандартных форматов (BMP, GIF, JPEG), либо специальные форматы хранения видеоданных, в которых последовательные кадры кодируются специальным образом, отличным от коди' рования статических кадров. Системы, сохраняющие последовательность кадров как последовательность (папку, директорию) обычных статических изображений, обладают тем очевид'
Цифровые видеопоследовательности
113
ным преимуществом, что полученные изображения могут быть легко прочитаны, загружены и проанализированы любым из стандартных пакетов для работы с изображениями. Однако существует и ряд причин, делающих такой способ хра' нения и передачи менее предпочтительным по сравнению с использованием спе' циализированных форматов цифровых видеоданных: • Избыточность 1. Каждое изображение последовательности хранится вмес' те с собственным заголовком, содержащим тип, размеры, палитру и т. п. При небольшом размере изображения (например, 160×120 или 320×200) служебная информация может занимать до 10% объема файла. Между тем, очевидно, что для всех кадров видеопоследовательности этот заголовок можно было бы записать всего лишь один раз и дальше хранить только сами растровые данные. • Избыточность 2. Известно, что в медленно меняющихся сценах разность любых двух последовательных кадров содержит значительно меньше информации, чем сам исходный кадр. Следовательно, применение разно' стных схем сжатия видеоданных, учитывающих их последовательное рас' положение кадров, позволяет достичь существенно бол ê ьших степеней сжа' тия видеопотока, чем раздельное сжатие каждого кадра. Это особенно принципиально в задачах передачи цифровых видеоданных. • Существуют дополнительные (например, временные) параметры ви' деосъемки, которые не сводятся только к параметрам каждого из изображе' ний. Следовательно, для видеопоследовательности в целом все равно при' ходится хранить некий специальный заголовок – в виде отдельного файла либо в виде заголовка единого файла видеопоследовательности, записан' ной в специальном формате. • В мультимедийных приложениях (запись видеофильмов, клипов и т. п.), помимо хранения видеоданных, требуется также осуществлять и парал' лельную синхронную запись звуковых дорожек, а иногда и некоторых до' полнительных данных – текстовых и цифровых меток и т. п. Все это требует создания специальных единых форматов для хранения и передачи разно родных цифровых данных, имеющих временную протяженность. На первый взгляд, может показаться, что это чисто мультимедийное требование, кото' рое не может встретиться в системах технического зрения. Однако, как мы уже говорили ранее, комплексирование данных, приходящих из самых раз' ных источников, – одна из основных тенденций в современных информа' ционно'управляющих системах. В практической производственной задаче нам вполне может понадобиться осуществлять параллельную запись не толь' ко изображений от нескольких камер, но также и от нескольких микрофонов, нескольких электрических, тензометрических, акустических и т. п. датчиков. Весь этот массив информации крайне неудобно затем анализировать, если запись ведется в разные, никак не связанные друг с другом, файлы. Исходя из приведенных соображений, для записи, хранения и передачи циф' ровых видеоданных был создан ряд специальных файловых форматов. Наиболее распространенными из них на сегодня являются формат AVI и формат MPEG.
114
Цифровые изображения
Формат AVI Универсальный формат AVI. Вероятно, самым распространенным форматом для хранения видеоинформации является сегодня формат AVI. Компания Microsoft впервые выпустила пакет Video for Windows для операционной системы Windows 3.1 в ноябре 1992 года, и с тех пор формат AVI (Audio Video Interleave) является основным для хранения видео в операционных системах семейства Windows. Из других подобных универсальных форматов компьютерного видео наиболее изве' стен формат QuickTime MOV фирмы Apple. Основное отличие универсального формата AVI от потоковых форматов типа MPEG или таких специализированных разновидностей, как MP4 (MPEG Video Layer 4), заключается в том, что «стандартных» AVI'файлов практически не суще' ствует. AVI'файл – это «контейнер», который содержит общее описание содержимо' го в стандартизованном виде. Видео' и аудиопотоки, которые содержатся в AVI'фай' ле, могут использовать любую комбинацию кодеков. Эти кодеки устанавливаются и регистрируются в операционной системе независимо друг от друга, а программы ко' дирования хранятся в отдельных DLL'файлах. При этом помимо стандартных коде' ков могут использоваться и нестандартные кодеки. AVI может содержать много раз' личных видов компрессии в любых сочетаниях (например, DivX для видео и WMA для аудио). Работать с AVI'файлом можно только в том случае, если необходимый кодек доступен для кодирования/декодирования на данном компьютере. Впрочем, если информация о кодеке содержится в AVI'файле, и вы имеете доступ в Интернет, программа'плейер может сама обратиться на сайт Microsoft или другой компании, скачать необходимый кодек и установить его в системе. Воспроизведением AVI'файлов в ОС Windows управляет универсальная среда компании Windows Multimedia System, состоящая из интерфейса высокого уров' ня – MCI (Media Control Interface) или MCI API (Application Programming Inter' face) – и низкоуровневых MCI'драйверов. Структура AVI файла. Формат AVI (Audio Video Interleave, чередующиеся аудио и видео) позволяет одновременно хранить изображение и звук. При воспро' изведении видеопоток и дорожки звукового канала (waveform audio, или WAV) ана' лизируются, разделяются и обрабатываются драйверами различных устройств. Простые аудио' и видеопотоки могут содержаться в WAV или AVI файле без како' го'либо сжатия (компрессии). Простейший WAV имеет стандартный заголовок типа PCM (Pulse Coded Modu' lation) и содержит аудиоданные, обычно несжатые, полученные 8' или 16'разряд' ным сэмплированием аналогового звука. Однако так же, как и в AVI, в WAV'файле может содержаться звуковая информация со сжатием, а также прописываться ин' формация о необходимом для воспроизведения кодеке. Структура AVI'формата является вариантом формата RIFF (Resource Inter change File Format), разработанного компаниями IBM и Microsoft для обмена мультимедийными данными. Файлы этого формата имеют вложенную блочную структуру, то есть состоят из блоков (chunks), которые, в свою очередь, могут со' держать другие вложенные блоки. Основной RIFF'блок содержит идентифика' тор формата «avi», который указывает на тип файла.
Цифровые видеопоследовательности
115
В соответствии с общей структурой RIFF'типа, AVI'файл должен иметь сле' дующий вид: RIFF «AVI» //÷åòûðåõáóêâåííûé èäåíòèôèêàòîð ôàéëà (â RIFF-ôîðìàòå) LIST «hdrl» //ñïèñîê çàãîëîâêîâ áëîêîâ, îïðåäåëÿþùèõ ôîðìàòû ïîòîêîâ ::::::::::::::::::::::::::::::::: LIST «movi» // áëîêè äàííûõ (ïîòîêîâ) AVI-ôàéëà ::::::::::::::::::::::::::::::::: «idx1»
//íåîáÿçàòåëüíûé áëîê, îïðåäåëÿþùèé ðàçìåùåíèå áëîêîâ äàííûõ
//âíóòðè AVI-ôàéëà
В соответствии с этой структурой AVI'файл имеет, по крайней мере, два обяза' тельных блока: заголовок и данные, которые, в свою очередь, могут содержать не' сколько подблоков. Первый блок будет содержать общую информацию о видео' ролике: разрешение кадров и их частоту, формат аудио и т. д. Сначала в заголовке для записи длины потока отводилось 32 байт, поскольку в файловой системе FAT 16 максимальный раздел диска не мог превышать 2 Гбайт, поэтому и максималь' ный кусок видео, который можно было записывать в AVI'файле, не мог превы' шать 2 Гбайт (с учетом знака переменной размера). С появлением файловых сис' тем FAT 32 и NTFS верхняя граница размера раздела значительно отодвинулась. Список «hdrl» может состоять из подсписков: LIST «hdrl» //ñïèñîê çàãîëîâêîâ áëîêîâ, îïðåäåëÿþùèõ ôîðìàòû ïîòîêîâ «avih» //ãëàâíûé çàãîëîâîê AVI-ôàéëà LIST «strl» «strh»
//çàãîëîâîê ïîòîêà
«strf»
//ôîðìàò ïîòîêà
«strd»
//äîïîëíèòåëüíûé çàãîëîâîê äàííûõ
::::::::::::::::::::::::::::::::: Ñïèñîê «movi», â ñâîþ î÷åðåäü, ñîñòîèò èç ïîäáëîêîâ: LIST «movi»
//áëîêè äàííûõ (ïîòîêîâ) AVI-ôàéëà
SubChunk | LIST «rec»
//ïîäáëîê | ñïèñîê çàïèñåé
«##wb» (ðàçìåð áëîêà 4 áàéòà) (data)
//çâóêîâûå äàííûå (áëîê)
«##dc» (ðàçìåð áëîêà 4 áàéòà) (data)
//âèäåîäàííûå (áëîê)
«##db» (ðàçìåð áëîêà 4 áàéòà) (data)
//âèäåîäàííûå (áëîê)
Таким образом, подблок данных организован в виде последовательности запи' сей, каждая из которых состоит из одного кадра видео и соответствующего звуко' вого сопровождения. Первоначально ##dc'блок был предназначен для хранения сжатого изображения, а ##db'блок – для несжатого DIB (Device Independent Bitmap). Но фактически они оба могут содержать сжатые данные. Одним из недостатков формата AVI является то, что аудио' и видеофрагменты не содержат никаких меток времени или индексов кадра. В простейшем случае каждому кадру видео соответствует фрагмент звукового сопровождения, но дале' ко не все AVI'файлы строятся по этой простой схеме. Недостаток, заключающий'
116
Цифровые изображения
ся в отсутствии временных меток, был устранен в расширении AVI'формата – OpenDML AVI (поддержанном затем в системах DirectShow и в ActiveMovie). Цветовые палитры. Видеоданные в AVI'формате могут быть подготовлены и сохранены в различных цветовых пространствах, которые можно условно разде' лить по глубине цвета: • 8'битная черно'белая палитра (256 градаций серого); • 8'битная RGB'палитра (256 цветов); • 9'битная палитра YUV9; • 12'битная YUV (4:1:1); • 16'битная YUV2 (4:2:2); • 16'битная RGB (5 бит для красного, 6 – для зеленого и 5 – для синего); • 24'битная RGB (стандартная RGB'палитра); • 32'битная RGB (с альфа'каналом). 32'битная палитра по цветовой информативности аналогична 24'битной, старший байт служит для определения атрибута прозрачности. Видеокодеки. Запись видео и аудио в AVI'формате может производиться как без сжатия, так и со сжатием (компрессией). Причем компрессия может быть как без потерь информации, так и с потерями. Существует много различных техноло' гий сжатия, используемых компьютерными кодеками, совместимыми с форматом AVI. В настоящее время наиболее популярны кодеки, основанные на различных вариациях дискретного косинусного преобразования (смотри выше описание ал' горитма JPEG) и алгоритмах сжатия межкадровой разности (кодеки типа H.261, H.263, MPEG 1, MPEG 2, MPEG 4 и другие). Начиная с Video for Windows 1.1e, в системе Windows по умолчанию устанавлива' ется несколько стандартных кодеков: Intel Indeo; Microsoft Video 1 (формат работает только с 8' и 16'битным цветом); Microsoft RLE (Run Length Encoding), который ис' пользует только 8'битный цвет; Cinepak (пришедший с платформы Macintosh вместе с QuickTime). Впоследствии к ним добавились полноцветные кодеки, которые воз' никли вместе с платами для захвата и монтажа видео на компьютере: Motion JPEG; Editable MPEG, который использует только I'кадры. Есть и достаточно редкие, ком' мерческие кодеки, которые были созданы для специального использования. В последние годы к стандартным кодекам прибавились кодеки так называемой новой волны, порожденные новыми технологиями анализа движения. Такие коде' ки способны выделять на изображении движущиеся и неподвижные части в от' дельные объекты и применять к ним раздельные методы сжатия, что позволяет добиться значительного улучшения визуального восприятия при том же или даже меньшем объеме потока данных. Идея подобного кодирования заключается в том, что чем быстрее движение объекта в поле кадра, тем выше может быть коэффици' ент компрессии для его отображения. Формат MPEG Формат MPEG (Moving Pictures Experts Group) – наиболее распространенный на сегодня формат записи и передачи цифровых видеоданных в бытовых видеосис' темах (камерах и фотоаппаратах), Интернете и системах видеонаблюдения. Он
Цифровые видеопоследовательности
117
использует эффективные алгоритмы сжатия межкадровой разности. Кроме того, этот формат позволяет записывать несколько синхронных потоков цифровых данных от различных источников видео, аудио и другой информации. Все форматы сжатия семейства MPEG (MPEG 1, MPEG 2, MPEG 4, MPEG 7) используют высокую избыточность информации в изображениях, разделенных ма' лым интервалом времени. Между двумя соседними кадрами обычно изменяется толь' ко малая часть сцены. Например, происходит плавное смещение небольшого объекта на фоне фиксированного заднего плана. В этом случае полная информация о сцене может сохраняться выборочно – только для опорных изображений. Для остальных кадров достаточно передавать разностную информацию: о положении объекта, на' правлении и величине его смещения, новых элементах фона, открывающихся за объектом по мере его движения. Причем эти разности можно формировать не только по сравнению с предыдущими изображениями, но и с последующими (поскольку именно в них, по мере движения объекта, открывается ранее скрытая часть фона). Форматы сжатия семейства MPEG сокращают объем закодированной инфор' мации за счет использования следующих основных эффектов: • устраняется временная избыточность видео (учитывается только разно' стная информация); • устраняется пространственная избыточность изображений путем подавле' ния мелких деталей сцены; • устраняется часть информации о цветности; • повышается информационная плотность результирующего цифрового по' тока путем выбора оптимального математического кода для его описания. Форматы MPEG сжимают только опорные кадры – Iкадры (Intra frame, внут ренний кадр). В промежутки между ними включаются кадры, содержащие только изменения между двумя соседними I'кадрами – так называемые Pкадры (Pre dicted frame, прогнозируемый кадр). Для того чтобы сократить потери информа' ции между I'кадром и P'кадром, вводятся так называемые Bкадры (Bidirectional frame, двунаправленный кадр). В них содержится информация, которая берется из предшествующего и последующего кадров. Типичная последовательность кадров выглядит следующим образом: IBBPBBIBBPBBIBB… Соответственно, последо' вательность кадров в соответствии с их номерами будет воспроизводиться в сле' дующем порядке: 1423765… Рассмотрим теперь различные модификации формата MPEG. Форматы MPEG 1 и MPEG 2. В качестве начального шага обработки изобра' жения форматы сжатия MPEG 1 и MPEG 2 разбивают опорные кадры на несколько равных блоков, над которыми затем производится дискетное косинусное преоб' разование (ДКП). По сравнению с MPEG 1, формат сжатия MPEG 2 обеспечива' ет лучшее разрешение изображения при более высокой скорости передачи видео данных за счет использования новых алгоритмов сжатия и удаления избыточной информации, а также кодирования выходного потока данных. Кроме того, формат сжатия MPEG 2 дает возможность выбора уровня сжатия за счет точности кван' тования. Для видеозаписи с разрешением 352×288 пикселей формат сжатия MPEG 1 обеспечивает скорость передачи 1,2–3 Мбит/с, а MPEG 2 – до 4 Мбит/с.
118
Цифровые изображения
Формат MPEG 4 использует технологию так называемого фрактального сжа' тия изображений. Фрактальное сжатие подразумевает выделение из изображе' ния контуров и текстур объектов. Контуры представляются в виде так называе' мых сплайнов (специальных полиномиальных функций) и кодируются опорными точками. Текстуры могут быть представлены в качестве коэффициентов про' странственного частотного преобразования (например, дискретного косинусного или вейвлет'преобразования). Диапазон скоростей передачи данных, который поддерживает формат сжатия видеоизображений MPEG 4, гораздо шире, чем в MPEG 1 и MPEG 2. Формат сжатия видеоизображений MPEG 4 поддерживает широкий набор стандартов и значений скорости передачи данных. MPEG 4 включает методы прогрессивного и чересстрочного сканирования и поддерживает произвольные значения простран' ственного разрешения и скорости передачи данных в диапазоне от 5 Кбит/с до 10 Мбит/с. В MPEG 4 усовершенствован алгоритм сжатия, качество и эффектив' ность которого повышены при всех поддерживаемых значениях скорости переда' чи данных. Форматы MPEG 7. В октябре 1996 года группа MPEG приступила к разработ' ке формата сжатия MPEG 7, призванного определить универсальные механизмы описания аудио' и видеоинформации. Этот формат получил название Multimedia Content Description Interface. В отличие от предыдущих форматов сжатия семей' ства MPEG, MPEG 7 описывает информацию, представленную в любой форме (в том числе в аналоговой) и не зависит от среды передачи данных. Как и его пред' шественники, формат сжатия MPEG 7 генерирует масштабируемую информа' цию в рамках одного описания. Формат сжатия MPEG 7 использует многоуровневую структуру описания аудио' и видеоинформации. На высшем уровне прописываются свойства файла, такие как название, имя создателя, дата создания и т. д. На следующем уровне описания формат сжатия MPEG 7 указывает особенности сжимаемой аудио' или видеоинформации – цвет, текстуру, тон или скорость. Одной из отличительных особенностей MPEG 7 является его способность к определению типа сжимаемой информации. Если это аудио' или видеофайл, то он сначала сжимается с помо' щью алгоритмов MPEG 1, MPEG 2, MPEG 4, а затем описывается при помощи MPEG 7. Такая гибкость в выборе методов сжатия значительно снижает объем информации и ускоряет процесс сжатия. Основное преимущество формата сжа' тия MPEG 7 над его предшественниками состоит в применении уникальных деск' рипторов и схем описания, которые, помимо всего прочего, делают возможным автоматическое выделение информации как по общим, так и по семантическим признакам, связанным с восприятием информации человеком. Процедура занесе' ния в каталог и поиска данных находятся вне сферы рассмотрения этого формата сжатия.
Методы обработки изображений
3
Данная глава посвящена методам обработки изображений. При этом под обработ' кой изображений в узком смысле понимается такая «низкоуровневая» обработка изображения, результатом которой также является растровое изображение или другой растровый объект (например, одномерный массив).
3.1. Гистограмма и гистограммная обработка. Бинаризация и сегментация. Профили и проекции В главе 2 было подробно показано, что, несмотря на все возможное богатство се' мантического, физического и любого другого содержания изображения, само это содержание определяется, в конце концов, только лишь распределением интен' сивности некоторого сигнала по двумерной дискретной плоскости (или набором таких распределений, если изображение имеет несколько таких «цветовых», «ди' апазонных», «признаковых» или других плоскостей»). При этом каждый пиксель исходного цифрового изображения характеризуется тремя, вообще говоря, незави' симыми величинами – {x, у, I}, где пара целочисленных значений (x, у) описывает геометрическое положение данного пикселя в плоскости изображения, а величина I характеризует его яркость, или интенсивность, в данной точке плоскости. В соот' ветствии с этим принято различать в изображении его яркостную и геометричес кую составляющие. Эти составляющие в принципе могут изменяться независимо друг от друга. Допустим, мы на протяжении некоторого времени наблюдаем через окно какую' нибудь статическую внешнюю сцену при неизменных условиях освещенности, а затем условия освещенности неожиданно меняются. Cкажем, солнце зашло за тучу или, наоборот, вышло из'за облака. При этом мы увидим, что, хотя яркость
120
Методы обработки изображений
(среднее значение интенсивности сигнала) и контраст изображения (размах зна' чений между минимальной и максимальной наблюдаемой яркостью) изменились, геометрическая форма изображения (то есть положение видимых контуров объек' тов и областей различной яркости) осталась неизменной. Возможна и обратная си' туация, когда яркостные характеристики изображения в среднем не меняются, не' смотря на то что явно наблюдаются изменения формы – например, движение каких'либо частей изображения относительно остальных его частей. Отсюда выте' кает идея возможного раздельного анализа яркости и геометрии изображения. Та' кое разделение не только облегчает разработчику логический анализ задачи, но и понижает «порядок» изображения как предмета обработки с третьего ({x, у, I}) до второго ({x, у}) и первого ({I}) соответственно, что, в свою очередь, позволяет эконо' мить время вычислений и требуемый для решения задачи объем памяти. Особенную привлекательность этой идее на ранних этапах развития обработ' ки изображений придавало то, что анализ двумерных полей был сравнительно новой и неизведанной задачей, в то время как в области обработки одномерных функций и сигналов у математиков и специалистов в других областях знания был уже накоплен значительный опыт. Следовательно, выделив из изображения ка' кой'либо характеризующий его одномерный сигнал, можно было применить для его обработки и анализа большое количество уже существующих готовых инстру' ментов. Кроме того, как уже говорилось, обработка одномерных сигналов требует существенно меньшей затраты вычислительных ресурсов, что было крайне важно в те времена, когда вычислительная техника еще не была так мощна и совершен' на, как сегодня. Да и сегодня актуальность экономии вычислительных ресурсов сохраняется во всех тех задачах, которые должны решаться системами машинно' го зрения в реальном масштабе времени. Итак, яркостная составляющая изображения действительно характеризуется одномерным массивом гистограммы (частоты встречаемости на изображениях пикселей одинаковой яркости). Однако геометрические характеристики изобра' жения ({x, у}) по'прежнему требуют для своего описания двумерных данных. Ес' тественно предположить, что первые исследователи изображений старались и в этой области найти такие характеристики, которые описывали бы двумерную геометрию изображения при помощи некоторых одномерных массивов. И такие полезные способы описания действительно были найдены. Это так называемые «профили» и «проекции» изображения. Профилем изображения вдоль некоторой линии называется функция интенсивности изображения, распределенного вдоль данной линии (прорезки). Проекцией изображения на некоторую ось (направле' ние) называется интеграл (сумма) интенсивности пикселей изображения, взятый в направлении, перпендикулярном данной оси. Итак, в данной главе мы будем рассматривать основные способы обработки и анализа изображений путем сведения двумерных задач к одномерным: построение и анализ гистограмм, гистограммную обработку изображений, а также построе' ние и использование профилей и проекций изображения. Еще одно предварительное замечание, прежде чем мы начнем непосредствен' но разбираться с различными видами и способами обработки и анализа изображе'
Гистограмма и гистограммная обработка. Бинаризация и сегментация
121
ний. Любая информация об изображении (а также и любая процедура его обра' ботки) может носить глобальный или локальный характер. Глобальной считается информация или обработка, относящаяся ко всему изображению в целом. Локаль ной считается информация (или обработка), относящаяся (применяемая) к некото' рой его выделенной области (фрагменту изображения, некоторой линии, опреде' ленному множеству точек и т. д. и т. п.). Соответственно, необходимо помнить, что и гистограммы, и профили, и проекции, рассматриваемые ниже, могут относиться как к изображению в целом, так и к определенным его локальным областям.
3.1.1. Гистограмма и гистограммная обработка изображений Гистограмма характеризует частоту встречаемости на изображении пикселей одинаковой яркости. Для 8'битного полутонового изображения гистограмма яркости представляет собой одномерный целочисленный массив из 256 элементов: Hist: 1D-array [0..255] of unsigned long (32-bit integer).
Элементы гистограммы Hist[i] содержат целые значения, равные количеству пикселей изображения, яркость которых равна значению i. Визуально гистограм' ма обычно отображается как обычный график одномерной функции (см. ниже рис. 3.1.3, 3.1.4). Гистограмма позволяет оценить и необходимым образом изме' нить яркость изображения, его контраст, площадь изображения, которую занима' ют светлые, темные и другие яркостные элементы, и, наконец, определить, где на плоскости изображения находятся отдельные области (объекты), соответствую' щие тем или иным диапазонам значений яркости. Яркостными преобразованиями изображения называются преобразования двумерных функций яркости, описываемые простой формулой: Im’(x,y) = f(Im(x,y)). Здесь f(*) – функция отображения яркости, которая никак не зависит от поло' жения пикселя (x,y). Простейшим случаем яркостных преобразований изображе' ния являются линейные преобразования яркости, в которых функция отображе' ния яркости имеет вид: f(I) = a × I + b, где a – коэффициент, определяющий изменение контраста изображения, b – ко' эффициент, определяющий изменение средней яркости изображения, I – соб' ственно яркость в текущей точке изображения Im(x,y). Такие линейные преобразования яркости называют также фотографическими, так как при традиционной фотосъемке их можно устанавливать при помощи из' менения характеристик выдержки и диафрагмы объектива. Возможны и другие функции отображения яркости. Яркостные преобразования цифровых изображений часто называют гистог раммными, так как при этом, во'первых, изменяется гистограмма изображения,
122
Методы обработки изображений
во'вторых, вид функции преобразования (параметры преобразования) часто оп' ределяются адаптивно, на основании ранее собранной гистограммы исходного изображения. В случае дискретных цифровых изображений функция отображения яркости принимает вид так называемой таблицы отображения яркости LUT (LookUp Table, просмотровой таблицы). Гистограммная обработка изображения при помо' щи таблицы отображения яркости осуществляется следующим образом: Im[i,j] = LUT[Im[i,j]], где Im[i,j] – пиксель изображения с координатами (i,j), LUT – целочисленный мас' сив размера 256 элементов для 8'битного изображения или длиной 65 536 элемен' тов для 16'битного изображения. Далее без принципиальной потери общности будем рассматривать гистог' раммную обработку на примере 8'битных полутоновых изображений. При этом LUT может задаваться: • произвольной таблицей отображения, формируемой пользователем непос' редственно; • некоторой математической функцией, выбранной из заданного набора фун' кций; • адаптивно по гистограмме данного анализируемого изображения. Пользовательские таблицы отображения позволяют выполнять следующие типовые операции: • ручное вырезание определенных диапазонов яркости; • ручное вырезание битовых плоскостей; • ручную бинаризацию изображения по одному или двум порогам; • ручную сегментацию изображения на несколько яркостных диапазонов. Стандартные математические функции, используемые для формирования LUT, как правило, выделяются из следующего типового набора: • линейное преобразование – Linear; • логарифмическая функция – Log; • экспонента – Exp; • квадратичная функция – Square; • квадратный корень – Square root; • степенная функция – Power X; • обратная степенная функция – Power 1/X. Известным частным случаем стандартной обработки изображений является инвертирование яркости, определяемое зависимостью вида LUT[i] = 255 – i. В результате инвертирования изображения получается его негатив. При этом темные области становятся светлыми, и наоборот. Другое широко используемое преобразование – степенной закон вида LUT[i] = r(i)γ, где r – коэффициент контраста, γ – степень преобразования.
Гистограмма и гистограммная обработка. Бинаризация и сегментация
123
Такие преобразования известны в области аналогового телевидения как про' цедура гаммакоррекции. Легко увидеть, что, изменяя параметр γ, мы можем полу' чать LUT различного типа. При γ = 1 преобразование будет линейным, при γ < 1 предпочтение будет отдаваться более светлым цветам (на них придется большая часть диапазона), при γ > 1 предпочтение будет отдаваться более темным цветам. Такие преобразования часто используются для «выравнивания» яркости изобра' жений, получаемых на электронно'лучевых трубках (ЭЛТ). Рассмотрим теперь простейший способ адаптивной (то есть не наперед задан' ной, а зависящей от данного конкретного изображения) гистограммной обработ' ки. Начнем с линейной адаптивной процедуры, называемой яркостной нормали зацией изображения и описываемой следующей математической зависимостью: LUT[i] = 255 × (i – min(Hist(Im))) / (max(Hist(Im)) – min(Hist(Im))).
Данное преобразование равномерно «растягивает» диапазон яркостей [min(Hist(Im)), max(Hist(Im))], присутствующих на исходном изображении Im, на максимально возможный диапазон [0, 255]. Это способствует максимально возможному улучшению контраста изображения без потери каких'либо различий элементов яркости исходного изображения. Другой популярной процедурой адаптивной гистограммной обработки изоб' ражения является эквализация изображения. Эквализация также отображает реальный яркостной диапазон данного изображения (от минимального до макси' мального значения интенсивности) на диапазон [0, 255]. При этом обеспечивает' ся «выравнивание» числа пикселей изображения, имеющих различные значения яркости. Математическая форма данного преобразования имеет вид LUT[i] = 255 × (SUM(Hist(Im),1,i) / SUM(Hist(Im),1,255), где SUM(Hist(Im),k,i) обозначает сумму значений гистограммы изображения Im от ячейки с номером k до ячейки с номером i включительно. В тех случаях, когда в диапазоне [min(Hist(Im)), max(Hist(Im))] более или менее равномерно присут' ствуют все градации, визуальный эффект от эквализации изображения трудно отличить от его нормализации. Однако в случае, когда значительная часть града' ций яркости отсутствует, эквализация позволяет более равномерно использовать диапазон [0, 255] для более контрастного отображения присутствующих на изоб' ражении градаций. Визуально это выглядит как «проявление» большего количе' ства ранее незаметных на изображении деталей и контуров. В заключение этого краткого введения в гистограммную обработку и анализ изображений необходимо отметить, что наиболее общей смысловой единицей анализа гистограммы является мода. Это понятие, позаимствованное из матема' тической статистики, означает максимум, или «горб», графика гистограммы. Если гистограмма имеет одну моду, такая гистограмма называется унимодальной и свидетельствует о яркостной однородности изображения. Бимодальная гисто' грамма с двумя явно наблюдающимися модами, разделенными заметной «впади' ной», скорее всего, означает, что данное изображение содержит заметно отличаю' щиеся друг от друга «светлую» и «темную» области, часто называемые «фоном» и «объектом» или «фоном» и «символом». Разделение этих областей порогом, опре' деляемым по гистограмме, называется адаптивной бинаризацией изображения.
124
Методы обработки изображений
Наконец, если на гистограмме наблюдается несколько мод, такая гистограмма на' зывается мультимодальной, и ее анализ осуществляется более сложными методами. Рассмотрим теперь, как гистограммные преобразования яркости реализуются в среде NI Vision. Функция IMAQ: Histograph Виртуальный прибор IMAQ Histograph (рис. 3.1.1) осуществляет построение и визуализацию гистограммы изображения.
Q Histograph Рис. 3.1.1. Функция IMA IMAQ
Входными параметрами IMAQ Histograph являются: • исходное изображение Image; • область интереса Image Mask, которую можно вырезать с помощью VI (виртуального прибора) IMAQ ROIToMask; • диапазон яркостей Interval Range, внутри которого производится сбор гис' тограммы; • число ячеек гистограммы – Number of Classes. По умолчанию равно 256; • сообщение об ошибках error in (no error), полученных с выхода других вир' туальных приборов. На выходе IMAQ Histograph возвращает: • график гистограммы – Histogram Graph; • среднее значение яркости в гистограмме – Mean Value; • СКО – Standard Deviation; • Сообщение об ошибках error out, возникающих в результате работы IMAQ Histograph. Функция IMAQ: Histogram ВП IMAQ Histogram (рис. 3.1.2) выдает отчет о гистограмме изображения.
Гистограмма и гистограммная обработка. Бинаризация и сегментация
125
В качестве входных параметров IMAQ Histogram принимает: • исходное изображение Image; • область интереса Image Mask, которую можно вырезать с помощью вирту' ального прибора IMAQ ROIToMask; • диапазон яркостей Interval Range, внутри которого производится сбор гис' тограммы; • число ячеек гистограммы – Number of Classes. По умолчанию равно 256; • сообщение об ошибках error in (no error), полученных с выхода других вир' туальных приборов. В выходном кластере Histogram Report содержатся: • массив элементов гистограммы – histogram; • информация о минимальном, максимальном значениях яркости в гистог' рамме – Minimal Value, Maximal Value; • начальное (стартовое) значение яркости, начиная с которого строится гис' тограмма, – Starting Value; • шаг между ячейками гистограммы – Interval Width; • среднее значение яркости в гистограмме – Mean Value; • СКО – Standard Deviation; • число всех пикселей, которые участвуют в сборе гистограммы, – Area (pixels). Также на выходе IMAQ Histogram формируются сообщения об ошибках error out, возникающих в результате работы IMAQ Histogram. Рассмотрим пример использования функций IMAQ Histograph и IMAQ Histogram. На рис. 3.1.3 показана лицевая панель (Frontal Panel) учебного прило' жения в режиме сбора гистограммы по всему изображению, а на рис. 3.1.4 – по выделенному фрагменту изображения. После запуска программы следует загру' зить изображение при помощи элемента Path и при необходимости выделить ин' тересующий фрагмент изображения. В Histogram Graph выводится гистограмма. В таблице Histogram Report отражены численные характеристики гистограммы. Выход из программы осуществляется по нажатии кнопки Stop. При построении блокдиаграммы (рис. 3.1.5 и 3.1.6 соответственно) использо' вана так называемая структура управления событиями (Event Structure), в первом фрейме которой (рис. 3.1.5) указаны загрузка изображения (IMAQ ReadFile), вы' резка фрагмента (IMAQ ROIToMask), построение гистограммы (IMAQ Histo graph и Histogram Graph) и выдача статистики (IMAQ Histogram и Histogram Report). Выход из программы происходит по нажатии кнопки Stop (рис. 3.1.6). Все изображения, созданные IMAQ Create, выгружаются из памяти ВП IMAQ Dispose. Функция IMAQ: UserLookup
Q Histogram Рис. 3.1.2. Функция IMA IMAQ
ВП IMAQ MathLookup и IMAQ UserLookup осуществляют гистограммную обра' ботку изображения, преобразовывая каждый пиксель с помощью таблицы ото' бражения яркости – LUT (Look'Up'Table).
126
Методы обработки изображений
Гистограмма и гистограммная обработка. Бинаризация и сегментация
Рис. 3.1.5. Основной фрейм блокдиаграммы Рис. 3.1.3. Сбор гистограммы по всему изображению
Рис. 3.1.4. Сбор гистограммы по выделенному фрагменту изображения
Рис. 3.1.6. Выход из программы
127
128
Методы обработки изображений
IMAQ UserLookup осуществляет преобразования согласно таблице, заданной пользователем, а IMAQ MathLookup использует для преобразования заранее за' данные алгебраические функции (линейную, логарифмическую, экспоненциаль' ную и различные степенные). Входными параметрами для IMAQ UserLookup являются: • исходное изображение Image Src; • область интереса Image Mask, которую можно вырезать с помощью IMAQ ROIToMask; • шаблон выходного изображения Image Dst; • таблица отображения яркости пикселей изображения – Lookup Table; • сообщение об ошибках error in (no error), полученных с выхода других вир' туальных приборов. На выходе IMAQ UserLookup формируется изображение Image Dst Out, кото' рое записывается в Image Dst, если Image Dst подано на вход. В противном слу' чае результат Image Dst Out записывается в Image Src. Также на выходе IMAQ UserLookup формируется сообщение об ошибках error out, возникающих в результате работы IMAQ UserLookup. Функция IMAQ: MathLookup На вход IMAQ MathLookup (рис. 3.1.7) подаются: • исходное изображение Image Src; • область интереса Image Mask, которую можно вырезать с помощью IMAQ ROIToMask; • шаблон выходного изображения Image Dst; • диапазон яркостей, подвергающихся преобразованиям, – Range; • функции, использующиеся для преобразований, – Operator; • сообщение об ошибках error in (no error), полученных с выхода других вир' туальных приборов.
Q MathLo okUp Рис. 3.1.7. Функция IMA IMAQ MathLookUp
Преобразования Operator могут иметь следующий вид: • линейное преобразование – Linear; • логарифмическая функция – Log; • экспонента – Exp; • квадратичная функция – Square;
Гистограмма и гистограммная обработка. Бинаризация и сегментация • • • •
129
квадратный корень – Square root; степенная функция – Power X; обратная степенная функция – Power 1/X; X Value – показатель степени для степенной (Power X) и обратной степен' ной (Power 1/X) функций. На выходе IMAQ MathLookup, как и IMAQ UserLookup, формирует изобра' жение Image Dst Out, которое записывается в Image Dst, если Image Dst подано на вход. В противном случае результат Image Dst Out записывается в Image Src. Также на выходе IMAQ MathLookup формируется сообщение об ошибках error out, возникающих в результате работы IMAQ MathLookup. Пример использования ВП IMAQ MathLookup и IMAQ UserLookup приво' дится на рис. 3.1.8 и 3.1.9. На лицевой панели (рис. 3.1.8 и рис. 3.1.9) на группе закладок слева (Tab Control Left) расположены исходное изображение (закладка Source Img), загру' жаемое элементом управления Path, и графическое представление таблицы Lookup Table (закладка Lookup Table). На закладках справа (Tab Control Right) находятся обработанные (выходные) изображения. На закладке Dest Img (User LUT) расположено изображение, полученное IMAQ UserLookup. Это же изобра' жение находится на Dest Img (User LUT) на закладке слева (Tab Control Left) для удобства сравнения результатов. На закладке Dest Img (Math LUT) находит' ся изображение, обработанное IMAQ MathLookup. Под закладками в правой части лицевой панели находятся X Value – окно вво' да параметра Х для степенных функций и LUT Operator – переключатель выбора функций для преобразования Lookup Table. Рассмотрим блок'диаграмму для примера использования функций IMAQ MathLookup и IMAQ UserLookup. На рис. 3.1.10 показана схема фрагмента приложения, включающего загрузку изображения (IMAQ ReadFile), вырезку фрагмента (IMAQ ROIToMask) из ис' ходного изображения и вывод результатов работы IMAQ MathLookup и IMAQ UserLookup. Внутри специальной структуры выбора (Case Structure) находятся функции, формирующие LUT, которая подается на вход Lookup Table виртуального прибо' ра IMAQ UserLookup. В данном случае показано линейное преобразование LUT (Linear), о чем свидетельствует график на закладке Lookup Table (рис. 3.1.9). Ре' зультат обработки для каждого значения LUT Operator можно сравнивать на за' кладках Dest Img (User LUT) и Dest Img (Math LUT) – рис. 3.1.8 и 3.1.9. На рис. 3.1.11–3.1.16 показаны результаты применения различных функций преобразования. Результат применения логарифмического преобразования мож' но видеть на рис. 3.1.11. Результат применения экспоненциальной функции пока' зан на рис. 3.1.12. Результат выбора преобразования типа Square показан на рис. 3.1.13. Преобразование Square Root дает результаты, приведенные на рис. 3.1.14. Наконец, на рис. 3.1.15 представлен результат для Power X, а на рис. 3.1.16 – для Power 1/X при X=1.7. Выход из программы происходит по нажатии кнопки Stop на лицевой панели. Соответствующая ветвь блок'диаграммы показана на рис. 3.1.17.
130
Методы обработки изображений
Гистограмма и гистограммная обработка. Бинаризация и сегментация
Рис. 3.1.8. Результат обработки изображения заданной пользователем LUT
Рис. 3.1.10. Основной фрейм блокдиаграммы
okup T able Рис. 3.1.9. Графическое представление Lo Lookup Table
Рис. 3.1.11. Результат применения логарифмического преобразования
131
132
Методы обработки изображений
Гистограмма и гистограммная обработка. Бинаризация и сегментация
Рис. 3.1.12. Результат применения экспоненциальной функции
Рис. 3.1.14. Результат применения функции извлечения квадратного корня
Рис. 3.1.13. Результат применения квадратичной функции
Рис. 3.1.15. Результат применения степенной функции
133
134
Методы обработки изображений
Гистограмма и гистограммная обработка. Бинаризация и сегментация
135
Функция IMAQ Equalize
Рис. 3.1.16. Результат применения обратной степенной функции
IMAQ Equalize выполняет эквализацию изображения. Входными параметрами IMAQ Equalize являются: • исходное изображение Image Src; • область интереса Image Mask, которую можно вырезать с помощью IMAQ ROIToMask; • шаблон выходного изображения Image Dst; • диапазон яркостей Range, внутри которого производится эквализация; • кластер гистограммы – Histogram Report, выдаваемый виртуальным при' бором IMAQ Histogram. Если кластер присоединен, то эквализация произ' водится по этой гистограмме. Использование Histogram Report может быть полезно, когда требуется эквализовать изображение, поданное на вход Image Src по гистограмме другого изображения; • сообщение об ошибках error in (no error), полученных с выхода других вир' туальных приборов. На выходе IMAQ Equalize формируется изображение Image Dst Out, которое записывается в Image Dst, если Image Dst подано на вход. В противном случае результат Image Dst Out записывается в Image Src. Также на выходе IMAQ Equalize формируется сообщение об ошибках error out, возникающих в результате работы IMAQ Equalize. На рис.3.1.18 показан пример использования ВП IMAQ Equalize.
Рис. 3.1.17. Выход из программы
Q Equalize Рис. 3.1.18. Лицевая панель примера использования ВП IMA IMAQ
136
Методы обработки изображений
На рис. 3.1.19 показана соответствующая блок'диаграмма в LabVIEW. Внутри фрейма структуры событий находятся загрузка изображения (IMAQ ReadFile), вырезка фрагмента (IMAQ ROIToMask), эквализация изображения (IMAQ Equalize) и построение гистограмм (IMAQ Histograph) исходного и эквализован' ного изображений.
Гистограмма и гистограммная обработка. Бинаризация и сегментация
137
Также на выходе IMAQ Inverse формируется сообщение об ошибках error out, возникающих в результате работы IMAQ Inverse. На рис. 3.1.21 показан пример использования ВП IMAQ Inverse.
Рис. 3.1.19. Основной фрейм блокдиаграммы Q Inv er se Рис. 3.1.21. Лицевая панель примера использования ВП IMA IMAQ Inver erse
Функция IMAQ: Inverse Функция IMAQ Inverse (рис. 3.1.20) инвертирует яркость изображения. На вход IMAQ Inverse подаются: • исходное изображение Image Src; • область интереса Image Mask, которую можно вырезать с помощью IMAQ ROIToMask; • шаблон выходного изображения Image Dst; • сообщение об ошибках error in (no error), полученных с выхода других вир' туальных приборов. На выходе IMAQ Inverse формирует изображение Image Dst Out, которое за' писывается в Image Dst, если Image Dst подано на вход. В противном случае ре' зультат Image Dst Out записывается в Image Src.
На рис. 3.1.22 показана соответствующая блок'диаграмма в LabVIEW. Она вклю' чает следующие блоки: загрузка изображения (IMAQ ReadFile), вырезка фрагмента (IMAQ ROIToMask), инвертирование изображения виртуальным прибором IMAQ Inverse, а также преобразованием Lookup Table и построение графика Lookup Table.
3.1.2. Бинаризация полутоновых изображений В обработке изображений часто используется процедура «пороговой бинариза' ции» – разбиение изображения на две области, одна из которых содержит все пик' сели со значением ниже некоторого порога, а другая содержит все пиксели со зна' чением выше этого порога.
3.1.3. Адаптивная бинаризация
Q Inv er se Рис. 3.1.20. Функция IMA IMAQ Inver erse
Алгоритмы адаптивной бинаризации изображений базируются на использовании локальной или глобальной гистограммы изображения. Подход, основанный на использовании гистограммы яркостей пикселей, является одним из самых извест' ных и, безусловно, наиболее простым.
138
Методы обработки изображений
Гистограмма и гистограммная обработка. Бинаризация и сегментация
139
Рис. 3.1.23. Уровни яркости гистограммы аппроксимируются двумя нормальными распределениями: (а) функции распределения объекта и фона (б) соответствующие гистограммы и оптимальный порог Рис. 3.1.22. Основной фрейм блокдиаграммы
Оптимальная пороговая сегментация основана на приближении гистограммы изображения к некоторой кривой, используя весовые суммы двух или более веро' ятностей интенсивности с нормальным распределением. Тогда порог – это набор ближайших уровней яркости, соответствующих минимуму вероятности между максимумами двух или более нормальных распределений. Для определения оптимального порога бинаризации предложено большое ко' личество различных подходов. Наиболее удачным из них представляется подход Otsu, который предполагает не только определение оптимального порога бинари' зации, но и вычисление некоторого критерия бимодальности, то есть оценку того, действительно ли исследуемая гистограмма содержит именно две моды (два вы' раженных пика). Идея данного подхода заключается в следующем. Пусть изображение представляет собой двумерный массив IM размера X×Y, причем его элементы (пиксели) принимают значения на отрезке [0..255]. Тогда гис' тограмма этого изображения представляет собой одномерный массив Hist[0..255], в каждой ячейке которого Hist[i] содержится число пикселей изображения, имею' щих значение, равное i. Рассмотрим теперь «подгистограмму» Hist[k...l], 0.k, l.255. Для любой такой подгистограммы (окна) [k,l] можно вычислить оценку матема' тического ожидания яркости пикселей MO(k,l) и оценку дисперсии DISP(k,l). Пусть дан порог t: 0.t.255. Тогда для данного порога t можно вычислить «критерий разделимости» SC вида: SC(t) = 1 – (DISP(0,t) + DISP(t+1,255)) / DISP(0,255) (3.1.1)
Критерий SC(t) всегда принимает значение на отрезке [0,1], причем значение его тем больше, чем лучше разделимость яркостного распределения на два класса относительно порога t. Алгоритм Оtsu предполагает вычисление SC(t) для всех t.[0..255], после чего оптимальный порог Оtsu определяется как T = argmax SC(t), t.[0..255] (3.1.2). Этот алгоритм имеет ясный статистический смысл и, как показывает практи' ка, является эффективным и устойчивым способом определения адаптивного по' рога для бинаризации бимодальных изображений. Функции IMAQ: Threshold, AutoBThreshold Операция Threshold (порог) производит бинаризацию исходного изображения, исходя из заданных значений минимального и/или максимального порогов. Пос' ле этого значение каждого пикселя изображения становится равно 0 («фон») или 1 («объект»), как показано на рис. 3.1.25.
Q Thr eshold Рис. 3.1.24. Функция IMA IMAQ Threshold
140
Методы обработки изображений
В этом упражнении также используется функция (IMAQ AutoBThreshold), позволяющая автоматически определять пороги бинаризации.
Гистограмма и гистограммная обработка. Бинаризация и сегментация
141
3.1.4. Сегментация многомодальных изображений Специально разработанный для данного класса задач метод статистического вы' деления мод позволяет оценивать количество и степень выраженности мод гис' тограммы, опираясь на соответствующий график статистической производной (функции локальной разделимости).
Рис. 3.1.27. Пример автоматического разделения мод на гистограмме по максимумам функции локальной разделимости
Функции IMAQ: MultiThreshold, AutoMThreshold eshold Рис. 3.1.25. Результат операции Thr Threshold
ВП MultiThreshold и AutoMThreshold позволяют автоматически опреде' лять границы мод гистограммы и осуществлять мультипороговую гистограмм' ную сегментацию в LabVIEW.
3.1.5. Обработка цветных изображений В главе 2 мы уже писали о том, что цветные цифровые изображения представляют собой совокупность трех цветовых плоскостей, каждая из которых характеризует одну независимую составляющую цвета, представленную в том же формате, что и обычное 8'битное полутоновое изображение. Следовательно, все описанные про' цедуры обработки полутоновых изображений в яркостной области могут быть обобщены и на случай обработки цветных изображений. Специфика же здесь свя' зана прежде всего с различными цветовыми моделями, позволяющими по'разно' му работать с разными цветовыми и другими составляющими изображения. Назначение цветовой модели – дать средства описания цвета в пределах неко' торого цветового охвата. Наиболее часто в компьютерном зрении используются модели RGB, CMY, YUV, YCbCr, HSV. Цветовая модель RGB Рис. 3.1.26. Блокдиаграмма
RGB (Red, Green, Blue – красный, зеленый, синий) – аппаратно'ориентированная модель, используемая в дисплеях для аддитивного формирования оттенков само'
142
Методы обработки изображений
светящихся объектов (пикселей экрана). Система координат RGB – куб с нача' лом отсчета (0,0,0), соответствующим черному цвету (рис. 3.1.28). Максимальное значение RGB – (255,255,255) соответствует белому цвету. В модели RGB не раз' делены яркостная и оттеночная компоненты цвета, здесь легко указать яркости для одного из основных цветов, но затруднительно указать оттенок с требуемым цветовым тоном (например, телесным) и насыщенностью.
Гистограмма и гистограммная обработка. Бинаризация и сегментация
143
Подпространство, определяемое данной моделью, соответствует проекции цветового пространства на главную диагональ RGB'куба в направлении от белого к черному и являет собой перевернутый шестигранный конус (рис. 3.1.29). По вертикальной оси конуса задается V – мера яркости. Значению V = 0 соответству' ет вершина конуса, значению V = 1 – основание конуса; цвета при этом наиболее интенсивны. Цветовой тон H задается углом, отсчитываемым вокруг вертикаль' ной оси. В частности, 0° – чистый красный цвет (Red), 60° – желтый (Yellow), 120° – зеленый (Green), 180° – голубой (Cyan), 240° – синий (Blue), 300° – пурпурный (Magenta), то есть дополнительные цвета расположены друг против друга (отли' чаются на 180°). Насыщенность S определяет, насколько близок цвет к «чистому» пигменту и меняется от 0 на вертикальной оси V до 1 на боковых гранях шести' гранного конуса. Точка V = 0, в которой находится вершина конуса, соответствует черному цвету. Значение S при этом может быть любым в диапазоне 0–1. Точка с координатами V = 1, S = 0 – центр основания конуса, соответствует белому цве' ту. Промежуточные значения координаты V при S = 0, то есть на оси конуса, соот' ветствуют серым цветам. Если S = 0, то значение оттенка H считается неопреде' ленным.
Рис. 3.1.28. Цветовая модель RGB
Цветовая модель HSV Цветовая модель HSV (Hue, Saturation, Value – цветовой тон, насыщенность, мера яркости) – модель, ориентированная на человека и обеспечивающая воз' можность явного задания требуемого оттенка цвета. Среди прочих используемых в настоящее время моделей, эта модель отражает физические свойства цвета и наиболее точно соответствует способу восприятия цвета человеческим глазом. Оттенок цвета (H) ассоциируется в человеческом сознании с обусловленностью окраски предмета определенным типом пигмента, краски, красителя. Составляю' щая Н – это длина световой волны, отраженной или прошедшей через объект. Данная составляющая является объективной и отражает физическую сущность цвета. Насыщенность (S) характеризует степень, силу, уровень выражения оттен' ка цвета. Этот атрибут в человеческом сознании связан с количеством (концентра' цией) пигмента, краски, красителя. Насыщенность позволяет оценить, насколько «глубоким» и «чистым» является данный цвет, то есть как он отличается от ахрома' тического. Она определяет соотношение серого цвета и выбранного оттенка и вы' ражается в долях от 0 (серый) до 1 (полностью насыщенный). Мера яркости (V) характеризует относительную освещенность или затемненность цвета (интенсив' ность цвета), поэтому она измеряется в диапазоне от 0 (черный) до 1 (белый). При увеличении яркости цвет становится более светлым (белым). Составляющая V яв' ляется нелинейной, что близко соответствует восприятию человеком светлых и темных цветов. Две последние составляющие являются субъективно определяемы' ми, так как отражают психологические особенности восприятия цвета.
Рис. 3.1.29. Цветовая модель HSV
Цветовая модель HSV может быть получена из модели RGB следующим образом:
,
144
Методы обработки изображений
Гистограмма и гистограммная обработка. Бинаризация и сегментация
145
Цветовая сегментация изображения ,
, . Данное преобразование является нелинейным, что затрудняет его практи' ческое использование. Аппроксимация преобразования линейными зависимо' стями существенно упрощает алгоритм перевода из RGB в HSV и обеспечивает высокую вычислительную эффективность. Цветовая модель HSV является наи' более удобным представлением цветных изображений для их цветовой сегмен' тации.
Цветовая сегментация обычно производится по предварительно построенной моде' ли распределения цвета искомого объекта в цветовом пространстве HSV. На приме' ре задачи сегментации рассмотрим работу процедуры подобного рода на изображе' нии лица человека на основе цветовых характеристик человеческой кожи. Построение модели рассматривается как задача поиска группы кластеров, со' ответствующих оттенкам кожи. Структура и параметры модели формируются путем обработки изображений участков кожи, выделенных вручную. Распределе' ние, отражающее соотношение параметров цвета H и S, получено в данном приме' ре в результате обработки порядка 900 изображений фрагментов кожи размерами 3×3 пикселя (рис. 3.1.30).
Цветовая модель YUV Остановимся также на цветовом пространстве YUV, которое широко применяет' ся в телевещании и, соответственно, пришло на компьютер вместе с MPEG'фор' матом. Дело в том, что глаз человека наиболее чувствителен к яркости изображе' ния и несколько менее – к цветности. Если аддитивные составляющие RGB'сигнала представить в виде яркости (Y) и двух различных составляющих сигнала цветности (U и V) по следующим фор' мулам: Y = 0,299 R + 0,587 G + 0,114 B, U = 0,493 (B – Y), V = 0,877 (R – Y), то U в таком соотношении выражает различия между синей и желтой составляю' щими цветного изображения, а V – между красной и зеленой компонентами цвет' ного изображения. Известно, что глаз человека легче различает градации яркости и оттенки зеленого, поэтому U и V можно отображать с меньшей точностью, что способно существенно уменьшить количество информации, сохраняемой при сжатии. Таким образом, используя особенности человеческого зрения, еще до того, как будет применяться компрессия данных, мы можем получить выигрыш только за счет перехода к другому цветовому пространству. Поэтому, когда гово' рят, например, что сжатие в MPEG осуществляется с коэффициентом 100:1 и бо' лее, часто забывают, что часть информации была «потеряна» уже при переходе к другому цветовому пространству. Формат кодирования YUV 4:1:1 отличается от 4:2:2 способом дискретизации сигнала, которая вычисляется для конкретного канала как произведение базовой частоты цифрового кодирования на соответствующий коэффициент: например, на 4 отсчета для канала Y берется по одному отсчету для каждого из цветоразност' ных каналов.
Рис. 3.1.30. Взаимное соотношение компонент H и S на изображениях кожи
Аналогичным образом получено распределение, отражающее соотношение па' раметров цвета H и V (рис. 3.1.31). Как видно, «трубки» распределений (H,S) и (H,V), характеризующие оттенки кожи, являются достаточно компактными в цветовом пространстве и составляют группу первичных признаков на этапе построения модели. «Трубки» распределе' ний (H,S) и (H,V) могут быть разделены на подобласти, образующие группы кла стеров (компактных множеств точек). На этапе сегментации каждому пикселю изображения ставится в соответствие вектор параметров цвета (H,S,V) и прове' ряется принадлежность параметров цвета к одному из кластеров модели кожи.
146
Методы обработки изображений
Гистограмма и гистограммная обработка. Бинаризация и сегментация
147
Рис. 3.1.33. Пример цветовой пиксельной сегментации кожи
Рис. 3.1.31. Взаимное соотношение компонент H и V на изображениях кожи
Область изображения кожи формируется из пикселей, параметры которых вошли в один из кластеров. На рис. 3.1.32–3.1.34 приведены результаты работы алгорит' ма цветовой пиксельной сегментации лиц с различными оттенками кожи. Рис. 3.1.34. Пример цветовой пиксельной сегментации кожи
верка кластеров для выявления кластеров, действительно являющихся лицами. Правило, которому должен отвечать фрагмент изображения, на котором при' сутствует лицо, достаточно очевидно: лицо обычно должно быть симметрично от' носительно вертикальной оси. На рис. 3.1.35 показан пример работы алгоритма обнаружения лиц на цветных изображениях. Фрагменты изображения с обнару' женными лицами выделены рамкой. Функция IMAQ: ColorHistogram
Рис. 3.1.32. Пример цветовой пиксельной сегментации кожи
После того как на изображении выделены пиксели, цвет которых соответству' ет оттенкам кожи, производится слияние выделенных пикселей в систему класте' ров по мере близости их местоположения. Далее производится комплексная про'
ВП IMAQ ColorHistogram (рис. 3.1.36) дает отчет о гистограмме цветного изобра' жения. В качестве входных параметров IMAQ ColorHistogram принимает: • исходное изображение Image Src; • область интереса Image Mask, которую можно вырезать с помощью IMAQ ROIToMask; • число ячеек гистограммы – Number of Classes, по умолчанию равно 256;
148
Методы обработки изображений
Гистограмма и гистограммная обработка. Бинаризация и сегментация
149
Функция IMAQ: ColorHistograph IMAQ ColorHistograph (рис. 3.1.37) осуществляет построение и визуализацию гистограммы цветного изображения.
Q ColorHistograph Рис. 3.1.37. Функция IMA IMAQ
Рис. 3.1.35. Пример работы алгоритма обнаружения лиц
Q ColorHistogram Рис. 3.1.36. Функция IMA IMAQ
• цветовую модель Color Mode; • сообщение об ошибках error in (no error), полученных с выхода других вир' туальных приборов. На выходе IMAQ ColorHistogram возвращает для каждой из трех цветовых плоскостей: Red or Hue or X or L*, Green or Sat or Y or a*, Blue or Luma or Val or Inten or Z or b*, соответственно, следующие численные характеристики гистог' раммы Histogram Report: • массив гистограммы Histogram; • информацию о минимальном, максимальном значениях яркости в гистог' рамме – Minimal Value, Maximal Value; • начальное (стартовое) значение яркости, начиная с которого строится гис' тограмма, – Starting Value; • шаг между ячейками гистограммы – Interval Width; • среднее значение яркости в гистограмме – Mean Value; • СКО – Standard Deviation; • число всех пикселей, участвующих в сборе гистограммы, – Area (pixels). Также на выходе IMAQ ColorHistogram формируются сообщения об ошибках error out, возникающих в результате работы IMAQ ColorHistogram.
Входными параметрами IMAQ ColorHistograph являются: • исходное изображение Image Src; • область интереса Image Mask, которую можно вырезать с помощью IMAQ ROIToMask; • число ячеек гистограммы – Number of Classes, по умолчанию равно 256; • цветовая модель Color Mode; • сообщение об ошибках error in (no error), полученных с выхода других вир' туальных приборов. На выходе IMAQ ColorHistograph формируются: • график гистограммы – Histogram Graph для каждой из трех цветовых плос' костей: Red or Hue, Green or Sat, Blue or Luma or Val or Inten, соответ' ственно; • сообщение об ошибках error out, возникающих в результате работы IMAQ ColorHistograph. Рис. 3.1.38 и 3.1.39 демонстрируют пример использования ВП IMAQ Color Histograph и IMAQ ColorHistogram. На закладке Source Image можно задать интересующий фрагмент исходного изображения, по которому будет собрана гистограмма. На закладки Red Hue Hist, Green Sat Hist, Blue Luma Hist выводятся графики гистограмм для соответству' ющих цветовых плоскостей. В Hist Report представлены численные характерис' тики гистограммы. На рис. 3.1.40 показана блок'диаграмма для данного упражнения. ВП IMAQ ReadFile загружает изображение, IMAQ ROIToMask позволяет выделить фраг' менты изображения, IMAQ ColorHistograph производит построение гистограм' мы и ее визуализацию на графике, а IMAQ ColorHistogram выдает статистику по гистограмме. Функция IMAQ: ColorThreshold IMAQ ColorThreshold (рис. 3.1.41) производит пороговую бинаризацию по каж' дой из трех цветовых плоскостей.
150
Методы обработки изображений
Гистограмма и гистограммная обработка. Бинаризация и сегментация
151
Рис. 3.1.39. Численные характеристики гистограммы Рис. 3.1.38. Гистограмма цветовой плоскости Red or Hue
В качестве входных параметров IMAQ ColorThreshold принимает: • исходное изображение Image Src; • шаблон выходного 8'битного изображения Image Dst; • массивы Red or Hue Range, Green or Sat Range, Blue or Luma or Val or Inten Range, содержащие по два значения порога бинаризации для каждой из соответствующих цветовых плоскостей: Low Value – нижнее значение порога (по умолчанию равно нулю) и Upper value – верхнее значение поро' га (по умолчанию равно 255); • цветовую модель Color Mode; • Replace Value – значение яркости, которое присваивается пикселям, лежа' щим внутри границ порогов (по умолчанию равно единице); • сообщение об ошибках error in (no error), полученных с выхода других вир' туальных приборов. На выходе IMAQ ColorThreshold возвращает: • изображение Image Dst Out, которое записывается в Image Dst, если Image Dst подано на вход. В противном случае результат Image Dst Out записыва' ется в Image Src;
• сообщение об ошибках error out, возникающих в результате работы IMAQ ColorThreshold. На рис. 3.1.42 показан пример использования ВП IMAQ ColorThreshold. Значения порогов для каждой цветовой плоскости можно установить переме' щением ползунков либо задать с клавиатуры в соответствующих окнах ввода. Цветовая модель изображения выбирается из списка Color Mode. Соответствующая блок'диаграмма представлена на рис. 3.1.43. Она состоит из двух ВП: загрузки изображения (IMAQ ReadFile) и пороговой бинаризации (IMAQ ColorThreshold).
3.1.6. Профиль вдоль линии и анализ профиля Профилем изображения вдоль некоторой линии называется функция интенсив' ности изображения, распределенного вдоль данной линии (прорезки). Простейшим случаем профиля являются профиль строки изображения: ProfileY[x] = Im[x,y], где Y – номер строки изображения Im, и профиль столбца изображения:
152
Методы обработки изображений
Гистограмма и гистограммная обработка. Бинаризация и сегментация
153
Рис. 3.1.40. Основной фрейм блокдиаграммы Q ColorThr eshold Рис. 3.1.42. Лицевая панель примера использования ВП IMA IMAQ ColorThreshold
Q ColorThr eshold Рис. 3.1.41. Функция IMA IMAQ ColorThreshold
ProfileX[y] = Im[x,y], где X – номер столбца. В общем случае может рассматриваться профиль изображения вдоль любой прямой, ломаной или кривой линии, пересекающей изображение.
После того как массив профиля изображения вдоль заданной линии сформи' рован, его анализ осуществляется стандартными средствами и позволяет автома' тически выделять различного рода особые точки функции профиля, соответству' ющие контурам изображения, пересекаемым данной линией. На рис. 3.1.44 показан пример профиля изображения штрихового кода, взято' го вдоль прямой линии, пересекающей штриховой код в продольном направле' нии. Поскольку метод кодирования сигнала в штриховых кодах как раз и заклю' чается в определенной последовательности чередования штрихов и пробелов различной ширины, данный профиль изображения содержит всю необходимую информацию для того, чтобы считать штриховой код. На профиле хорошо замет' ны «толстые» и «тонкие» штрихи кода, а также положение начала и конца штри' ховой последовательности (границы объекта).
154
Методы обработки изображений
Гистограмма и гистограммная обработка. Бинаризация и сегментация
155
Функция IMAQ: LineProfile Функция LineProfile (рис. 3.1.45) осуществляет выборку значений интенсивнос' ти пикселей изображения вдоль заданной линии и выдает их в формате, совмести' мом с элементом управления Waveform Graph.
ofile Рис. 3.1.45. Функция IMAQ LinePr LineProfile
Рис. 3.1.43. Основной фрейм блокдиаграммы
Эта функция также вычисляет следующие статистические параметры анали' зируемого профиля: • минимальную интенсивность; • максимальную интенсивность; • среднюю интенсивность; • стандартное отклонение; • число точек в профиле. Координаты анализируемой линии задаются массивом из четырех элементов: Хмин, Умин, Хмакс, Умакс. Результаты упражнения на построение профиля представлены на рис. 3.1.46. Обратите внимание на блок'диаграмму (рис. 3.1.47). В данном примере, помимо необходимых ВП (LoadFile, LineProfile), используются функции, позволяющие добавлять графическую информацию на уже существующее изображение (палит' ра Overlay) и выводить изображение в отдельном окне – WinDraw.
Рис. 3.1.44. Пример профиля изображения штрихового кода
Рис. 3.1.46. Профиль линии на изображении
156
Методы обработки изображений
Гистограмма и гистограммная обработка. Бинаризация и сегментация
157
Рис. 3.1.47. Блокдиаграмма Рис. 3.1.49. Результат операции Simple Edge
Функция IMAQ: Simple Edge Данная функция (рис. 3.1.48) позволяет обнаруживать перепады яркости изобра' жения вдоль заданной линии (прямой, кривой или ломаной).
Q Simple Edge Рис. 3.1.48. Функция IMA IMAQ
На вход функции, помимо исходного изображения и массива координат узло' вых точек линии профиля, также подаются параметры бинаризации (пороги). «Краевыми» считаются точки, в которых собранный вдоль указанной линии про' филь яркости пересекает заданные пороговые значения (рис. 3.1.49). Функция позволяет определять координаты краевых точек с субпиксельной точностью и возвращает следующие значения: • число найденных краевых точек; • массив координат найденных краевых точек. Функция IMAQ: Edge Tool Входными параметрами данной функции (рис. 3.1.51), в отличие от предыдущей, являются параметры локального перепада яркости границ, а не глобальные поро' ги бинаризации.
Рис. 3.1.50. Блокдиаграмма
Например, мы можем выбрать краевые точки, характеризующиеся определен' ным перепадом значений интенсивности по сравнению с соседними точками, либо краевые точки с определенной «крутизной» перепада яркости. Данная фун' кция также позволяет определять координаты краевых точек с субпиксельной точностью до 1/12 пикселя. На выходе возвращаются:
158
Методы обработки изображений
Гистограмма и гистограммная обработка. Бинаризация и сегментация • амплитуды выделенных пиков; • вторая производная входного растрового массива.
Q Edge T ool Рис. 3.1.51. Функция IMA IMAQ To
• координаты краевых точек; • значения контраста (перепада) интенсивности в этих точках; • полярность перепада (переход из темной области в светлую кодируется «1», из светлой в темную «–1»).
Рис. 3.1.53. Блокдиаграмма
QP eakV alley Detector Рис. 3.1.54. Функция IMA IMAQ Pe akValley
ool Рис. 3.1.52. Результат операции Edge T To
Функция IMAQ: Peak#Valley Detector Данная функция (рис. 3.1.54) позволяет определять положения «пиков» (локаль' ных максимумов) или «впадин» (локальных минимумов) в одномерном растро' вом массиве (например, профиле яркости, проекции или гистограмме). В качестве входных параметров отбора выделяемых экстремумов можно за' дать ограничения на минимальную амплитуду и ширину сигнала. На рис. 3.1.55 представлены яркостной профиль линии и два выделенных на нем пика. Выходными параметрами функции являются: • число найденных пиков; • положения выделенных пиков;
alley Detectio n Рис. 3.1.55. Результат операции PeakV akValley Detection
159
160
Методы обработки изображений
Гистограмма и гистограммная обработка. Бинаризация и сегментация
161
лизируемой области) в целом. В частности, если на изображении наблюдается не' сколько контрастных объектов, то в проекции будут наблюдаться особенности функции (перепады или экстремумы функции проекции), соответствующие по' ложению каждого из наблюдаемых объектов. На рис. 3.1.57 показан пример вертикальной проекции изображения машино' читаемого документа (визы). Хорошо заметно, что две машиночитаемые тексто' вые строки дают два существенных экстремума на расположенном справа от изображения графике его горизонтальной проекции. Такие характерные элемен' ты проекции могут быть использованы, например, для быстрого обнаружения и сегментации на изображении текстовых строк в системах автоматического рас' познавания текста.
Рис. 3.1.56. Блокдиаграмма
3.1.7. Проекция и анализ проекции Проекцией изображения на некоторую ось (направление) называется интеграл (сумма) интенсивности пикселей изображения, взятый в направлении, перпенди' кулярном данной оси. Простейшим случаем проекции двумерного изображения являются: • вертикальная проекция на ось X, представляющая собой сумму интенсив' ностей пикселей, подсчитанную по столбцам изображения: ProjX[x] = SUM(Im[x,y], y = 0..DimY–1); • горизонтальная проекция на ось Y, представляющая собой сумму интенсив' ностей пикселей, подсчитанную по строкам изображения: ProjY[y] = SUM(Im[x,y], x = 0..DimX–1). В общем случае может рассматриваться проекция изображения на любую про' извольную ось. Пусть направление оси задано единичным вектором с координа' тами (ex,ey). Тогда проекция изображения на ось E будет определяться следующим выражением: ProjE[t] = SUM(Im[x,y]: x×ex + y×ey = t). После того как массив проекции сформирован, его анализ осуществляется стандартными средствами и позволяет автоматически выделять различные осо' бые точки функции проекции, соответствующие вертикальным или горизонталь' ным контурам различных объектов, присутствующих на изображении. Следует отметить, что свойства, выделяемые с помощью анализа профиля изображения, носят локальный характер и характеризуют только ту линию изображения, вдоль которой берется профиль, и ее небольшую окрестность. В то же время свойства, выделяемые путем анализа проекции всего изображения или какой'либо его об' ласти, носят глобальный характер и относятся ко всему изображению (всей ана'
Рис. 3.1.57. Пример проекции изображения машиночитаемого документа
Функция IMAQ: LinearAverages Данная функция (рис. 3.1.58) позволяет получать вертикальную и горизон' тальную проекции, нормированные соответственно на высоту и ширину изобра' жения (рис. 3.1.59), иными словами: • средние значения по столбцам – Х Axis Averages; • средние значения по строкам – Y Axis Averages; а также две производные характеристики: • сумму средних по столбцам и строкам – X+Y Axis Averages; • разность средних по столбцам и строкам – X–Y Axis Averages. Блок'диаграмма примера использования функции IMAQ LinearAverages представлена на рис. 3.1.60.
Q Line arA Рис. 3.1.58. Функция IMA IMAQ LinearA arAvv erages
162
Методы обработки изображений
Фильтрация изображений. Ранговая нелинейная фильтрация
163
3.2. Фильтрация изображений. Ранговая нелинейная фильтрация. Выделение объектов 3.2.1. Задача фильтрации изображений Зашумление изображения. Модели шумов
ar A Рис. 3.1.59. Результат операции Line Linear Avverages
Рис. 3.1.60. Блокдиаграмма
Выше мы уже писали о том, что под задачей «фильтрации изображений» в широ' ком смысле иногда понимают любые процедуры обработки изображений, при ко' торых на вход процедуры подается (одно) растровое изображение, и на выходе также формируется растровое изображение. Такие процедуры типа «один растро' вый вход, один растровый выход» называют фильтрами. Однако чаще под «фильтрацией» в более узком смысле понимают так называе' мую помеховую фильтрацию, или фильтрацию изображений от «шума». При этом неявно предполагается, что первоначально где'то существовало некое «исходное» идеально чистое (незашумленное) изображение, из которого затем путем зашумле ния (определенного вида искажения), было получено то реальное изображение, ко' торое мы наблюдаем. Задача помеховой фильтрации, таким образом, сводится к тому, чтобы путем некоторой обработки наблюдаемого реального изображения как можно лучше «очистить его от шума», то есть получить изображение, наиболее близкое по своим характеристикам к исходному «незашумленному» изображению. На самом деле необходимо понимать, что «зашумление» – это всего лишь очень упрощенная идеализированная модель возникновения искажений в цифро' вых изображениях реальных объектов. Вообще же говоря, искажения изображе' ния, получаемого путем видеосъемки реального трехмерного объекта в природ' ной обстановке, могут носить весьма сложный характер, зависящий от условий съемки (освещенность, туман, блики, тени, дождь, снег и т. п.), характеристик опти' ческой системы (дисторсии, расфокусировки, замутненность линз и зеркал и т. п.), характеристик электронной регистрирующей аппаратуры, характеристик канала передачи, характеристик устройств оцифровки и еще многих и многих факторов. Приближенные к реальности математические модели формирования цифровых изображений содержат сотни сложных нелинейных уравнений и множество таб' личных поправок. При этом закон формирования значения яркости каждого пик' селя изображения, как правило, не является независимым от формирования со' седних пикселей, яркостные параметры изображения зависят от геометрических, и т. д. При попытке математически «скорректировать» подобную сложную мо' дель регистрации изображения говорят уже не о фильтрации от шума, а о рестав рации, или реконструкции, изображений. К сожалению, методы реставрации изображений слишком сложны в вычисли' тельном смысле, чтобы на практике использоваться в системах машинного зре' ния, работающих в реальном масштабе времени. Кроме того, они требуют точного знания математической модели и всех параметров системы видеорегистрации, что на практике также практически невозможно. Поэтому в реальных системах машинного зрения, как правило, используются более простые, но тем не менее достаточно эффективные процедуры помеховой фильтрации, разработанные для
164
Методы обработки изображений
борьбы с гораздо более простыми искажениями в виде независимого зашумления пикселей изображения. Наиболее общей моделью независимого зашумления пикселей является шум замещения. Пусть дано исходное («незашумленное») полутоновое изображение Im, каждый пиксель которого может принимать значения в диапазоне [0..IMAX–1]. Общая модель шума замещения предполагает, что после зашумления каждый пиксель изображения, имевший ранее некотрое значение яркости I, либо с некото' рой известной вероятностью p(I) это значение сохранит, либо данное значение яркости будет случайным образом замещено с вероятностью q(I, J) некоторым другим значением яркости J из того же конечного дискретного диапазона [0..IMAX–1]. Как видно, для описания такой общей модели случайного замещения нам потре' буется задать таблицу переходных вероятностей размера (IMAX)2, что составляет весьма значительное количество в случае обычного 8'битового полутонового изображения (размер таблицы – 256×256 элементов). Такое описание явно явля' ется некомпактным и поэтому редко используется на практике для полутоновых изображений. В то же время для бинарных изображений, в которых IMAX = 2, такое описание является наиболее удобным, простым и естественным. Чуть ниже мы еще рассмотрим модель шума замещения на бинарных изображениях – так назы' ваемую модель шума «соль и перец». Для полутоновых изображений, как правило, рассматривают другую, более частную модель зашумления – аддитивный шум. Такая модель предполагает, что зашумленное изображение порождается по следующему закону: Im’[x,y] = Im[x,y] + R(x,y), где Im’[x,y] – пиксель зашумленного изображения, Im[x,y] – пиксель исходного изображения, а R(x,y) – случайная аддитивная шумовая компонента. Кроме того, в большинстве приложений зависимость шума от координат пикселя считается несущественной. И наконец, исходя из известного в статистике закона больших чисел, закон распределения аддитивной шумовой компоненты предпочитают опи' сывать удобным параметрическим семейством нормальных или гауссовских рас' пределений с нулевым средним. Таким образом, гауссовский аддитивный шум описывается следующим выражением: Im’[x,y] = Im[x,y] + N(0,σ), где N(a,σ) – нормальное распределение, a – математическое ожидание нормально распределенного сигнала, σ – средний квадрат отклонения (СКО) нормально распределенной величины. Именно такая модель зашумления чаще всего рас' сматривается в задачах фильтрации полутоновых изображений. На рис. 3.2.2–3.2.8 показаны примеры искусственного зашумления исходного полутонового изображения лейкоцитов (рис. 3.2.1) специально сгенерированным аддитивным гауссовским шумом с различными значениями СКО. Как видно, чем больше параметр зашумления σ, тем более искаженным выглядит изображение. При больших значениях σ (рис. 3.2.7, 3.2.8) даже человеческий глаз уже с трудом различает общие очертания крупноразмерных объектов изображения (в данном случае – лейкоцитов), более мелкие и менее контрастные объекты становятся практически неразличимыми.
Фильтрация изображений. Ранговая нелинейная фильтрация
165
Рис. 3.2.1. Исходное полутоновое изображение, σ = 0
Рис. 3.2.2. Зашумление полутонового изображения аддитивным гауссовским шумом, σ = 20
Рис. 3.2.3. Зашумление полутонового изображе ния аддитивным гауссов ским шумом, σ = 40
Рис. 3.2.4. Зашумление полутонового изображе ния аддитивным гауссов ским шумом, σ = 60
Рис. 3.2.5. Зашумление полутонового изображе ния аддитивным гауссов ским шумом, σ = 80
Рис. 3.2.6. Зашумление полутонового изображе ния аддитивным гауссов ским шумом, σ = 100
Рис. 3.2.7. Зашумление полутонового изображе ния аддитивным гауссов ским шумом, σ = 200
Рис. 3.2.8. Зашумление полутонового изображе ния аддитивным гауссов ским шумом, σ = 300
166
Методы обработки изображений
В следующих разделах мы будем иметь в виду этот пример, рассматривая раз' личные методы фильтрации цифровых изображений. Оконная фильтрация изображений в пространственной области Исходя из поставленной выше задачи восстановления исходных значений ярко' сти незашумленного изображения, а также из того, что шумовая компонента каж' дого пикселя является заранее неизвестной случайной величиной, следует, что для решения данной задачи необходимо использовать ту или иную процедуру статистического оценивания. Это может быть Байесовское оценивание, оценива' ние по методу наибольшего правдоподобия или любой другой метод, известный из курса математической статистики. Однако все эти методы требуют использо' вать для оценки искомой величины не одно единственное измерение (ведь оно также может быть зашумлено), а боêльшую или меньшую статистическую выбор ку, всегда включающую несколько отсчетов, характеризующих данную величину. В связи с этим и основная идея помеховой фильтрации изображений заключается в том, что для оценки исходного значения каждого пикселя изображения исполь' зуется не только значение самого данного пикселя (как в ранее рассмотренных градационных преобразованиях), но и значения еще нескольких близких к нему пикселей, попадающих в так называемое «окно» или апертуру фильтра. При этом «близость» пикселей к оцениваемому понимается в буквальном геометрическом смысле. Наиболее простыми для вычислительной реализации являются традиционно используемые прямоугольные окна (апертуры) фильтрации, определяемые про' стым условием типа «все пиксели данного окна отстоят от тестируемого цент рального пикселя на более чем на WinX/2 по горизонатали и WinY/2 по вертикали», где WinX и WinY – горизонтальный и вертикальный размер окна фильтрации со' ответственно. Возможны и другие, более сложные способы формирования окон фильтрации круглой, треугольной или любой другой произвольной формы. Типовая процедура оконной фильтрации предполагает, что окно фильтрации последовательно движется по входному изображению (например, алгоритм может обходить изображение «в порядке чтения»: сверху вниз по строкам, слева направо в каждой строке), при этом в каждом положении окна происходит анализ всех пикселей, принадлежащих в данный момент окну, и на основе такого анализа цен' тральному пикселю окна на выходном изображении присваивается то или иное финальное значение. Сформированное таким образом выходное изображение также называется результатом фильтрации. Процедуры оконной фильтрации могут различаться: • размером и формой окна (апертуры); • типом собираемых в окне локальных статистик; • способом принятия решения на основе собранных статистик. В любом случае речь идет об использовании для оценивания значения цент' рального пикселя апертуры информации о значениях его соседей по изображе' нию. В статистическом смысле это означает, что мы неявно опираемся на предпо' ложение о том, что на исходном незашумленном изображении значения яркостей
Фильтрация изображений. Ранговая нелинейная фильтрация
167
всех этих соседних пикселей были одинаковыми или очень близкими, и наблюда' емые различия в их яркостях на зашумленном изображении определяются только присутствием шумовой компоненты, которую и необходимо исключить. Между тем, как мы уже видели, исследуя профили изображения, содержательное изобра' жение вовсе не представляет собой одну сплошную «плоскость». В тех областях, которые визуально кажутся нам областями одинаковой или медленно меняющей' ся яркости, значения соседних пикселей действительно различаются незна' чительно. В то же время на границах таких областей наблюдаются порой весьма резкие перепады яркости – разница значений составляет от десятков до сотен гра' даций интенсивности даже между непосредственно соседствующими пикселями. Таким образом, мы видим, что на границах однородных областей оконные фильт' ры не могут работать эффективно, напротив, здесь они с большой вероятностью будут ошибаться, что визуально приведет к эффекту искажения формы контуров. Более того, если на исходном изображении присутствуют контрастные объекты (области), размер которых существенно меньше размера окна фильтрации, фильтр может просто «не заметить» такой объект, отфильтровать его как шум, что приведет к исчезновению мелкоразмерных объектов на результирующем выход' ном изображении. Казалось бы, из предыдущих рассуждений вытекает необходимость работать с небольшими по размеру апертурами фильтров. Ведь чем меньше окно фильтра, тем меньшее число точек контура будет им «задето», и тем больше будет число точек, расположенных на «плато» однородных областей, для которых предполо' жение о равной яркости всех пикселей в окружающей их области будет справед' ливо. Однако интуитивно понятно, что чем сильнее присутствующий на изобра' жении шум (чем противоречивее и «лживее» в среднем свидетельства точек об их яркости), тем большее количество пикселей приходится опрашивать, чтобы до' биться необходимой степени уверенности в ответе. То есть апертуры большего размера обладают большей способностью к подавлению шумовой компоненты, для чего в принципе и создается помеховый фильтр. Таким образом, конструируя и исследуя оконные процедуры фильтрации изображений, мы всегда должны оценивать наблюдаемое качество фильтрации по двум следующим основным позициям: • способности фильтра удалять (отфильтровывать) с изображения шум; • способности фильтра сохранять на изображении мелкоразмерные детали и форму контуров. С точки зрения последующего анализа изображения идеальным был бы такой помеховый фильтр, который мог бы полностью отфильтровывать шум, не иска' жая при этом формы контуров. К сожалению, эти требования противоречивы, по' этому в различных методах фильтрации мы имеем дело лишь с различными вари' антами компромисса между ними. Выбор конкретного помехового фильтра для реализации в практической системе машинного зрения определяется тем, какое из требований является более важным в данной конкретной задаче, а также огра' ничениями, налагаемыми на систему архитектурой и скоростью имеющихся вы' числительных средств.
168
Методы обработки изображений
Фильтрация изображений. Ранговая нелинейная фильтрация
169
Перейдем теперь к рассмотрению конкретных алгоритмов оконной фильтра' ции изображений. Поскольку принципиальный смысл основных процедур филь' трации проще почувствовать на примере фильтрации бинарных изображений, мы начнем с изучения простейших бинарных фильтров.
3.2.2. Фильтрация бинарных изображений Модель шума «соль и перец» Выше мы уже говорили о том, что для бинарных изображений наиболее удобной и со' ответствующей природе изображения является модель шума замещения типа «соль и перец». Под шумом Salt'and'Pepper (соль и перец) на бинарном изображении понима' ют замещение 1 на 0 с вероятностью (1–p) и замещение 0 на 1 c вероятностью (1–q). Переходные вероятности для такого бинарного шума представлены в табл. 3.2.1.
Рис. 3.2.12. Зашумление бинарного изображения шумом «соль и перец», σ = 60
Рис. 3.2.13. Зашумление бинарного изображения шумом «соль и перец», σ = 80
Рис. 3.2.14. Зашумление бинарного изображения шумом «соль и перец», σ = 100
Таблица 3.2.1. Переходные вероятности для бинарного шума «соль и перец» Im[x,y] → Im’[x,y] Im[x,y] = 1 Im[x,y] = 0
Im’[x,y] = 1 p (1 – q)
Im’[x,y] = 0 (1 – p) q
На рис. 3.2.10–3.2.16 показаны примеры искусственного зашумления исходно' го бинарного изображения лейкоцитов (рис. 3.2.9) специально сгенерированным шумом «соль и перец». Как видно, чем больше параметры зашумления (1–p) и (1–q), тем более искаженным выглядит изображение. При больших вероятностях заме' щения человеческий глаз уже с трудом различает общие очертания объектов изображения (рис. 3.2.15, 3.2.16). Рис. 3.2.15. Зашумление бинарного изображения шумом «соль и перец», σ = 200
Рис. 3.2.9. Исходное изображение, σ = 0
Рис. 3.2.10. Зашумление бинарного изображения шумом «соль и перец», σ = 20
Рис. 3.2.11. Зашумление бинарного изображения шумом «соль и перец», σ = 40
Структура оконного фильтра Введем ряд определений, позволяющих формально описать процедуру оконной фильтрации бинарного изображения.
Рис. 3.2.16. Зашумление бинарного изображения шумом «соль и перец», σ = 300
Входное изображение – массив l ×k элементов , каждый из кото' рых соответствует некоторой точке (пикселю) изображения и принимает значе' ния xij = {1,0}. Выходное изображение – массив l ×k элементов , каждый из ко' торых соответствует некоторой точке (пикселю) изображения и принимает значе' ния yij = {1,0}. ППР – правило принятия решения – правило, по которому принимается реше' ние о значении элемента выходного изображения . Апертура или окрестность точки (пикселя) – множество пикселей изображе' ния, расположенное некоторым образом относительно базового пикселя. Базовым называется пиксель, для которого применяется ППР. Положение апертуры на изображении определяется координатами базового пикселя аперту' ры. Базовый пиксель может находиться и не в геометрическом центре апертуры. Апертура определяется как массив d×c элементов
, каждый из ко'
170
Методы обработки изображений
Фильтрация изображений. Ранговая нелинейная фильтрация
торых соответствует точке (пикселю) апретуры и принимает значения Ωij = {0,1,2,…}. Также при определении апертуры указываются координаты базового пикселя апертуры (горизонтальная координата ∈ ; вертикальная координата ∈ ) от' носительно элемента апертуры с координатами (i = 1; j = 1) (левый верхний угол массива d ×c). Значение элемента апертуры, равное 0, показывает, что данный пик' сель не включен в апертуру, а равное 1, – что данный пиксель включен в апертуру. Число элементов или размер апертуры обозначается n: . Число единиц обозначается k1. Число нулей обозначается k0. Апертура может иметь любую произвольную конфигурацию, например
Такая фильтрация хорошо справляется с редкими одиночными (изолирован' ными) пикселями'артефактами (как на рис. 3.2.10), но при более интенсивных шумах данный алгоритм оказывается практически бесполезен, так как изолиро' ванные белые и черные шумовые точки встречаются все реже. Для таких случаев требуется более мощное решающее правило. Бинарная медианная фильтрация Медианный фильтр действует следующим образом. Пусть выбрана некоторая (чаще всего не проколотая) апертура Ωij, содержащая нечетное число n элементов. После опроса апертуры получаем {x1,…,xn} – последовательность из n штук нулей и единиц. ППР для бинарной медианы заключается в том, что мы упорядочиваем элементы последовательности {x1,…,xn}, ставя сначала нули, а потом единицы и в качестве значения выхода yij выбираем «средний по номеру» элемент упорядо' ченной последовательности {x1,…,xn}, то есть значение, стоящее на
. Рассмотрим теперь, используя введенную терминологию, различные методы оконной фильтрации бинарных изображений.
171
месте
в упорядоченном списке значений входных пикселей. Для бинарного медианного фильтра мы получаем следующее ППР: .
Логическая фильтрация помех Назовем проколотой окрестность, в которой базовый пиксель не учитывается при сборе статистики. В табл. 3.2.2 приведен пример проколотой окрестности 3×3.
Таблица 3.2.2. Проколая окрестность апертуры 3 ×3 (–1, –1) (–1, 0) (–1, –1)
(0, –1) (0, 0) (0, –1)
(1, –1) (1, 0) (1, –1)
На рис. 3.2.17–3.2.22 приводятся примеры фильтрации бинарного изображе' ния с различными степенями зашумления медианным фильтром с размером окна 3×3. Как видно, данный фильтр хорошо справляется со слабой и средней степе' нью зашумления (рис. 3.2.17–3.2.20), однако при дальнейшем увеличении мощ' ности шума фильтр с апертурой 3×3 начинает ошибаться (рис. 3.2.21 и 3.2.22). Для подавления более интенсивных шумов необходимо использовать медиан' ный фильтр с бол ê ьшими размерами окна фильтрации. На рис. 3.2.24–3.2.28 при' водятся примеры медианной фильтрации с различными размерами апертуры.
Проколотая окрестность 3×3 содержит 8 пикселей, влияющих на принятие ре' шения. При логической фильтрации помех решение принимается после опроса проколотой окрестности Ωij для каждого пикселя yij следующим образом:
.
Смысл этого выражения заключается в том, что если все соседние с централь' ным пиксели голосуют в пользу 0, центральный пиксель устанавливается в 0. Если все соседние пиксели голосуют в пользу 1, центральный пиксель устанавли' вается в 1. Если соседи не голосуют единогласно, центральный пиксель остается без изменений.
Рис. 3.2.17. Слабая степень зашумления исходного изображения
Рис. 3.2.18. Результат фильтрации изображения медианой (med) 3×3
Рис. 3.2.19. Средняя степень зашумления исходного изображения
172
Методы обработки изображений
Рис. 3.2.20. Результат фильтрации изображения med 3×3
Рис. 3.2.21. Сильная степень зашумления исходного изображения
Фильтрация изображений. Ранговая нелинейная фильтрация
Рис. 3.2.22. Результат фильтрации изображения med 3×3
173
Как видно из рис. 3.2.24–3.2.26, с увеличением размера окна растет способ' ность медианного фильтра подавлять шумовые точки. Однако при слишком боль' ших размерах апертуры очертания объектов оказываются слишком сильно иска' женными (рис. 3.2.27 и 3.2.28). Поэтому в каждом конкретном случае фильтры необходимо настраивать в зависимости от наблюдаемой степени искажений, ха' рактерных размеров наблюдаемых объектов. Рассмотрим еще раз медиану как правило принятия решения в бинарном окон' ном фильтре, действующем на изображении в присутствии шума «соль и перец». Легко заметить, что такое правило принятия решения соответствует максимуму апостериорной вероятности в том случае, если P = q > 0,5. Действительно, если в среднем инвертирование белых и черных элементов происходит с равной вероятностью (но не более 1/2), то в апертуре будет наблю' даться в среднем больше тех элементов, каких там и было больше до зашумления. Однако это не обязательно так, если вероятность перехода 0→1 больше вероятно' сти перехода 1→0, или наоборот. В этом случае «средняя» ранговая оценка может оказаться неоптимальной. Бинарная ранговая фильтрация Правило принятия решения для рангового, или процентильного, фильтра имеет вид, аналогичный ППР для медианного фильтра.
Рис. 3.2.23. Высокая степень зашумления исходного изображения
Рис. 3.2.24. Результат фильтрации изображения медианой (med) 5×5
где k = const – задаваемое значение, причем 0 < k ≤ n. Рис. 3.2.25. Результат фильтрации изображения med 7×7
Процентильные фильтры обозначаются
.
Легко заметить, что медианный фильтр есть частный случай процентильного при
.
В свете приведенных выше рассуждений ясно, что фильтрацию с более «низ' кими» рангами, чем медиана, следует применять в том случае, если вероятность перехода 1→0 существенно больше вероятности перехода 0→1. С более «высоки' ми» рангами следует работать в том случае, если вероятность перехода 0→1 суще' ственно больше вероятности перехода 1→0. Предельным случаем такого «асим' метричного» шума является униполярный шум c параметрами (p = 1) или (q = 1). В этих случаях оптимальная ранговая фильтрация принимает вид максимального или минимального фильтра соответственно.
Рис. 3.2.26. Результат фильтрации изображения med 9×9
Рис. 3.2.27. Результат фильтрации изображения med 15×15
Рис. 3.2.28. Результат фильтрации изображения med 31×31
Взвешенные ранговые фильтры Как уже говорилось выше, использование процентильных фильтров для подавле' ния помех основано на предположении о том, что объекты (однородные области)
174
Методы обработки изображений
Фильтрация изображений. Ранговая нелинейная фильтрация
на исходном изображении настолько велики, что число положений апертуры Ωij, в которых она целиком (всеми пикселями) попадает на объект или также целиком на фон, намного больше числа «переходных состояний» (рис. 3.2.29). Если это предположение не выполняется (например, сцена имеет вид «шах' матной доски» (рис. 3.2.30), то процентильная фильтрация приведет лишь к уси' лению помех (увеличению числа ошибок на сцене). Это связано с тем, что, под' считывая число единиц и нулей в апертуре, мы как бы заранее предполагаем, что на исходной сцене (в не искаженном состоянии) все соседние пиксели в подав' ляющем большинстве случаев имели одинаковые значения. И поэтому число еди' ниц воспринимается как число свидетельств в пользу предположения, что ба' зовый пиксель до зашумления имел значение 1, а число нулей – как число свидетельств, что его значение было 0. Пусть, однако, нам известен только мини' мальный размер объектов и минимальное расстояние между ними. Повысить ус' тойчивость фильтрации можно, придав более близким точкам окрестности боль' шее влияние на окончательный результат, чем дальним. Это можно осуществить при помощи матрицы весов. При этом значения каждого пикселя апертуры xkl при подсчете модифицированного числа единиц k1 умножается на определенный вес:
.
175
(3.2.2)
(3.2.1) реализует описанный выше принцип «штрафа за удаление». Общий размер апертуры в этом случае равен n = 36. (3.2.2) является весовой матрицей типа «маска» (матрица весов состоит из нулей и единиц). Данная маска с n = 5 позволяет фильтровать даже сцены типа «шахматная доска» (см. рис. 3.2.30).
3.2.3. Нелинейная фильтрация полутоновых изображений Алгоритмы нелинейной оконной фильтрации полутоновых изображений делятся на две большие группы: нелинейные ранговые и морфологические фильтры. Ран' говая фильтрация рассматривается в данном разделе. Морфологические фильт' ры будут подробно описаны в разделе 3.5.
, Ранговая оконная фильтрация где qkl – весовые коэффициенты элементов апертуры (целые числа). Модифицированный размер апертуры для взвешенного фильтра теперь имеет вид: . ППР (k/n)n для взвешенного процентильного фильтра практически эквива' лентно прежнему с учетом новых значений k1 и n. Приведем два возможных при' мера весовых матриц (3.2.1) и (3.2.2).
,
Рис. 3.2.29. Положение фильтра относительно объекта
(3.2.1)
Рис. 3.2.30. «Переходные состояния» фильтра на сцене вида «шахаматная доска»
Нелинейная ранговая фильтрация является непосредственным обобщением би' нарной ранговой фильтрации и опирается на понятие порядковой статистики. Вокруг каждого элемента изображения выбирается окрестность, входящие в нее элементы изображения упорядочиваются по возрастанию яркости. Ранговый фильтр порядка r (1 < r < N, где N – число отсчетов в окрестности) выбирает из полученного ряда элемент с номером r и присваивает его значение исходному эле' менту изображения. Когда число N нечетное и r = [N / 2] + 1, то фильтр называется медианным. Медианный фильтр имеет важное значение в обработке изображений вследствие высокой робастности, то есть нечувствительности результатов филь' трации к плотности распределения (первого порядка) шумовой компоненты. Это связано с тем, что медианный фильтр на апертуре (2M + 1) × (2M + 1) эффективно подавляет локальные области с линейным размером менее M. Рассмотрим примеры ранговой полутоновой фильтрации по аналогии с тем, как ранее были рассмотрены примеры ранговой бинарной фильтрации. Изобра' жения зашумлены гауссовским аддитивным шумом (см. рис. 3.2.2–3.2.8). На рис. 3.2.31–3.2.36 приводятся примеры фильтрации полутонового изобра' жения с различными степенями зашумления медианным фильтром с размером окна 3×3. Как видно, данный фильтр хорошо справляется со слабой и средней сте' пенью зашумления (рис. 3.2.31–3.2.34), однако при дальнейшем увеличении мощ' ности шума фильтр с апертурой 3×3 начинает ошибаться (рис. 3.2.35 и 3.2.36). Для подавления более интенсивных шумов необходимо использовать медиан' ный фильтр с боêльшими размерами окна фильтрации. На рис. 3.2.37–3.2.42 при' водятся примеры медианной фильтрации с различными размерами апертуры. Как видно из рис. 3.2.38–3.2.40, с увеличением размера окна растет способ' ность медианного фильтра подавлять шумовую компоненту. Однако при слиш'
176
Методы обработки изображений
Рис. 3.2.31. Слабая степень зашумления исходного изображения
Рис. 3.2.32. Результат фильтрации медианой (med) 3×3
Фильтрация изображений. Ранговая нелинейная фильтрация
Рис. 3.2.33. Средняя степень зашумления исходного изображения
Рис. 3.2.34. Результат фильтрации med 3×3
Рис. 3.2.35. Сильная степень зашумления исходного изображения
Рис. 3.2.36. Результат фильтрации med 3×3
Рис. 3.2.37. Зашумленное изображение
Рис. 3.2.38. Результат медианной фильтрации med апертуры 5×5
Рис. 3.2.39. Результат медианной фильтрации med 7×7
ком больших размерах апертуры (рис. 3.2.41 и 3.2.42), как и в случае бинарной фильтрации, очертания объектов оказываются слишком сильно искаженными. Кроме того, меньшие по размеру объекты оказываются полностью удаленными
Рис. 3.2.40. Результат медианной фильтрации med 9×9
Рис. 3.2.41. Результат медианной фильтрации med 15×15
177
Рис. 3.2.42. Результат медианной фильтрации med 31×31
с изображения. Поэтому в каждом конкретном случае фильтры необходимо на' страивать в зависимости от наблюдаемой степени искажений характерных разме' ров наблюдаемых объектов. Наряду с медианными фильтрами широко применяется метод минимаксной фильтрации, использующей для обработки значения минимального и максималь' ного элементов вариационного ряда, построенного из отсчетов окна фильтра. При наличии униполярного импульсного шума, характеризующегося либо положи' тельными, либо отрицательными выбросами из среднего уровня фоновой состав' ляющей, медианный фильтр может оказаться недостаточно надежным, когда плотность шума высока и более половины пикселей окна обработки составляют выбросы одинаковой полярности. Очевидный выход из этой ситуации – исполь' зовать элемент минимального ранга для выбросов положительной полярности и элемент максимального ранга для выбросов отрицательной полярности. В этом случае шумовые импульсы удаляются даже при очень сильном уровне засоренно' сти. В то же время отдельное применение минимального и максимального фильт' ра во многом аналогично действию операции эрозии и дилатации, которые будут рассматриваться дальше и приводят к искажению формы сигнала объекта. Поэто' му с целью сохранения формы полезного сигнала целесообразна последователь' ная схема минимальной фильтрации, состоящая из двух проходов по изображе' нию и обработки сначала минимальным (максимальным), а затем максимальным (минимальным) рангом локальной статистики. Такая схема увеличивает эффек' тивность фильтрации также и в случае биполярного импульсного шума. Опти' мальная последовательность, в которой следует выбирать минимальную (макси' мальную) процедуру, определяется характеристиками входного изображения: если неискаженное изображение состоит из ярких объектов на темном фоне, то правильная последовательность – min'max. Обратная процедура справедлива для негативного изображения. Сравнение минимальной фильтрации с медианной может вестись в двух на' правлениях: эффективности результатов фильтрации и требуемых вычислитель' ных затрат. При удалении шума минимаксный фильтр требует меньших размеров
178
Методы обработки изображений
апертур фильтра, чем медианный, но зато выполняет обработку в два прохода (ме' дианный – за один). Однако сложность построения ранговой статистики растет сверхлинейно с размером апертуры, ввиду этого минимальный фильтр в вычисли' тельном аспекте представляется более предпочтительным. Учитывая, что при орга' низации процедуры фоновой нормализации удаление сигнала от объекта требует для минимального фильтра меньших размеров апертуры, чем для медианного (при' мерно вдвое), данный тип фильтра может обеспечить большую надежность норма' лизации при одних и тех же вычислительных затратах или меньшую вычислитель' ную нагрузку при одинаковом уровне надежности. Недостаток минимального фильтра проявляется при обработке биполярного импульсного шума, где он не дает какого'либо выигрыша по сравнению с медианным фильтром, и, кроме того, проце' дура нормализации фона остается недостаточно эффективной вследствие того, что ранговая обработка хотя и в меньшей степени, чем линейная, но все же искажает яркостно'геометрические свойства фона при больших размерах апертуры. Имеется значительное число обобщений и модификаций процедур нелиней' ной ранговой обработки. Введем необходимые понятия для их краткого описания: • (i,j) – координаты текущего пикселя на изображении; • fij ∈(0, Q–1) – дискретное значение яркости в точке (i,j); • Q – число уровней яркости; • Sокрестность элемента (i,j) – заданное определенным образом множество элементов изображения, окружающих «центральный» элемент (i,j) – фор' ма апертуры. Примеры типичных S'окрестностей: квадрат, прямоугольник, крест, окружность и т. п.; • Mокрестность – подмножество элементов S'окрестности, обладающих ка' ким'либо нужным свойством, например подмножеством отсчетов, превы' шающих заданный порог, и др.; • N – число элементов M'окрестности; • fm(r) – r'я порядковая статистика по M'окрестности; • MEAN(m) =
– среднее арифметическое значение элементов M'
окрестности; • MED(m) = fm × (r – [N + 1 / 2]) – медиана элементов M'окрестности. Наиболее важные типы M'окрестности: • KSNокрестность, состоит из k элементов, ближайших по какой'либо мет' рике на растре к заданному элементу; • KNVокрестность из k ближайших соседей к данному элементу по значе' нию сигнала; • EVокрестность и ERокрестность: EV(f) = {fs(k): fij – εv ≤ fij + εv}; ER(f) = {fs(k): rm(fij) – rr ≤ k ≤ rm(fij) + rr}, где rm(f) – ранг элементов f в вариационном ряду M'окрестности. Введем простую модель импульсного шума замещения в виде F = f 0ij δij + (1 – δij) × f kij,
Фильтрация изображений. Ранговая нелинейная фильтрация
179
где δij – случайная величина, принимающая значения 0 или 1 с вероятностью p и характеризующая наличие (δ = 0) или отсутствие (δ = 1) сбоя сигнала. Можно показать, что для этой модели шума строгая постановка задачи опти' мального сглаживания по методу максимального правдоподобия приводит к ите' ративной процедуре фильтрации вида f(t+1) = MEAN(EV(f t)) или f(t+1) = MED(EV(f t)) в зависимости от выбора статистики сигнала (гауссовская или лапласовская). С точки зрения задачи подавления шума без потери формы сигнала критерии оптимальности можно определить следующим образом: ранговым алгоритмам, использующим EV'окрестности, соответствует критерий максимального подав' ления шума при уровне смаза, не превышающем заданного, а ранговым алгорит' мам, использующим KNV'окрестность, – критерий минимума смаза при задан' ном уровне подавления шума. Возможность выбора KNV'окрестности позволяет учесть априорную информацию о геометрических размерах деталей изображе' ния, которые необходимо сохранить; в свою очередь, выбор EV'окрестности по' зволяет учитывать априорную информацию о дисперсии шума, который должен быть устранен. К числу нелинейных ранговых фильтров относятся многие известные алго' ритмы, в частности сигмафильтр: f’ij = MEAN(EV(fij)), где εv = 1,5σ, σ – параметр СКО локальной статистики окна обработки, и сигма медианный фильтр: f’ij = MED(EV(fij)), причем, вообще говоря, отсечение отсчетов для усреднения может происходить на любом уровне значимости α: εv = ασ. Таким образом, эти формулы охватывают случай α'усеченных фильтров. Эффективной разновидностью ранговых алгоритмов сглаживания является так называемый SNNалгоритм. В этом алгоритме может быть применена любая схема сигма'фильтрации. Однако выбор M'окрестности обработки ведется исхо' дя из геометрических соображений таким способом, что усредняемые отсчеты не могли в силу геометрических свойств апертуры находиться по разные стороны от границы возможного перепада яркости (края). Заканчивая краткий обзор методов нелинейной ранговой фильтрации, можно сделать следующие выводы. Этот класс алгоритмов имеет высокую способность к подавлению шумовой компоненты, устойчив к различным видам шумов, допус' кает параллельную обработку информации и быстрые алгоритмы реализации. Функция IMAQ: NthOrder В качестве входных параметров функция ранговой фильтрации IMAQ NthOrder (рис. 3.2.43) принимает:
180
Методы обработки изображений
Фильтрация изображений. Ранговая нелинейная фильтрация
181
• • • •
исходное изображение Image Src; область интереса Image Mask; шаблон выходного изображения Image Dst; Size & Order – размер окна фильтрации и порядковый номер элемента мас' ки соответственно; • сообщение об ошибках error in (no error), полученных с выхода других вир' туальных приборов.
Q NthOr der Рис. 3.2.43. Функция IMA IMAQ NthOrder
На выход IMAQ NthOrder выдает изображение Image Dst Out, которое запи' сывается в Image Dst, если Image Dst подано на вход. В противном случае резуль' тат Image Dst Out записывается в Image Src. Также на выходе IMAQ NthOrder формируется сообщение об ошибках error out, возникающих в результате работы. На рис. 3.2.44 показан пример применения к изображению функции IMAQ NthOrder с параметрами Size = 5×5, Order = 8 (ранг 8/25). В данном примере ранг ниже медианы (13/25), что приводит к подавлению на изображении локальных светлых областей небольшого размера. На рис. 3.2.45 показан первый фрейм соответствующей данному примеру блок'диаграммы LabVIEW. Внутри первого фрейма структуры событий реализо' ваны загрузка исходного изображения (IMAQ ReadFile), вырезка фрагмента (IMAQ ROIToMask), а также установка свойств (Property Node) для координат маски (Mask) и порядкового номера элемента (Order), передающихся на вход IMAQ NthOrder. Второй фрейм структуры событий является вспомогательным. В нем устанавливаются ограничения на размеры маски и величину массива Order соответственно.
3.2.4. Задача выделения объектов интереса Традиционные схемы обнаружения мелко' и среднеразмерных объектов на изоб' ражениях заключались в проведении первоначальной яркостной сегментации анализируемого изображения с целью установления «области интереса», ограни' чивающей объект изображения, а затем в использовании различных признаковых описаний формы объекта для соотнесения найденных значений признаков с их эталонными значениями. Различные системы подобных признаков будут рас' смотрены нами позднее. К сожалению, при усложнении состава сцены, условий наблюдения и увеличе' нии шумовой компоненты для таких методов наблюдается существенный рост
Рис. 3.2.44. Результат выполнения ранговой фильтрации
вероятности аномальных ошибок обнаружения. Особенно это относится к про' стым схемам яркостной сегментации по порогу, которые обычно использовались при обнаружении области интереса или «носителя» объекта. Однако использова' ние методов нелинейной фильтрации непосредственно на этапе сегментации изображения позволяет разительно повысить эффективность процедур выделе' ния мелко' и среднеразмерных объектов на цифровых изображениях. Метод нормализации фона Метод нормализации фона был разработан для обнаружения малоразмер' ных объектов в составе сложных сцен и в присутствии интенсивных шумов. Он основан на использовании селектирующих свойств нелинейных оконных фильтров. Как уже упоминалось выше, медианный фильтр с апертурой (2M+1)×(2M+1) эффективно подавляет локальные области с линейным размером менее M. Таким образом, возникает чрезвычайно важная практическая возможность комбиниро' ванной обработки при обнаружении малых площадных объектов, заключающаяся
182
Методы обработки изображений
Фильтрация изображений. Ранговая нелинейная фильтрация
183
Рис. 3.2.45. Основной фрейм блокдиаграммы
в устранении как импульсного шума, так и неоднородного фона за счет примене' ния сочетания медианных фильтров разного размера апертуры (рис. 3.2.46). На первом шаге здесь применяется обработка фильтром малой апертуры (3×3÷5×5) для устранения импульсного шума. Затем осуществляется обработка фильтром большой размерности (до 35×35), оставляющая на изображении только фон и подавляющая полезный сигнал от объекта. На завершающем этапе произ' водится вычитание из изображения, полученного на первом шаге, карты фона, полученной на втором шаге. Таким образом, окончательное обнаружение объекта сводится к хорошо изученным процедурам сегментации по яркости. Данный при' ем получил в теории название нормализации фона и позволяет обеспечить обнару' жение сигнала от объекта даже при очень малых соотношениях сигнал/шум (<1), однако его практическое применение сдерживается необходимостью достижения высокой производительности вычислительной техники, так как требуемый объем операций растет пропорционально квадрату размера апертуры. Как видно из примера на рис. 3.2.47–3.2.49, в зависимости от того, какую по' следовательность фильтров мы выберем, метод нормализации фона может выде' лять объекты «положительного» или «отрицательного» контраста. Классическая процедура нормализации фона, являясь эффективным методом обнаружения простых объектов по признакам размера, может быть развита и уси' лена за счет применения морфологических (ММ Серра) методов обработки, кото' рые позволяют строить обнаружение объектов также по априорным данным об их яркостно'геометрической структуре (модели). Процедуры математической мор' фологии Серра будут также рассмотрены в разделе 3.5.
Рис. 3.2.46. Выделение объектов по схеме «нормализация фона»
Рис. 3.2.47. Исходное изображение
Рис. 3.2.48. Результат нормализации фона с параметрами (3,3,31,31)
Рис. 3.2.49. Результат нормализации фона с параметрами (31,31,3,3)
184
Методы обработки изображений
3.3. Линейная фильтрация изображений. Линейная фильтрация в пространственной области. Преобразование Фурье. Линейная фильтрация в частотной области 3.3.1. Линейная фильтрация изображений. Линейная фильтрация в пространственной области Линейная оконная фильтрация изображений в пространственной области заклю' чается в вычислении линейной комбинации значений яркости пикселей в окне фильтрации с коэффициентами матрицы весов фильтра, называемой также мас кой, или ядром, линейного фильтра. Рассмотрим вычисление такой линейной комбинации на примере окна фильт' рации размером 3×3. При этом маска фильтра представляется матрицей вида: Mask[–1,–1] Mask[0,–1] Mask[1,–1] Mask[–1,0] Mask[0,0] Mask[1,0] Mask[–1,1] Mask[0,1] Mask[1,1], а соответствующий фрагмент изображения с центральным пикселем Im(x,y), к которому на текущем шаге применяется данный фильтр, имеет вид: Im[x–1,y–1] Im[x,y–1] Im[x+1,y–1] Im[x–1,y] Im[x,y] Im[x+1,y] Im[x–1,y+1] Im[x,y+1] Im[x+1,y+1]. Результат линейной фильтрации для данного окна (для данного центрального пикселя) описывается следующей простой формулой: Im’[x,y] = Σi Σ(Im[x+i,y+j]×Mask[x+i,y+j]), i = –hWinX...hWinX, j = –hWinY…hWinY, (3.3.1), где hWinX = [WinX/2], hWinY = [WinY/2] – полуширина и полувысота окна фильтрации соответственно (в данном случае обе величины равны 1). Результат применения операции (3.3.1) ко всем пикселям изображения Im(x,y) называется сверткой изображения Im с маской Mask.
Линейная фильтрация изображений. Преобразование Фурье
185
Рассмотрим пример фильтрации зашумленного полутонового изображения фильтром «скользящее среднее». Изображения зашумлены гауссовским аддитив' ным шумом (см. рис. 3.2.2–3.2.8). На рис. 3.3.1–3.3.6 приводятся примеры фильтрации полутонового изображе' ния с различными степенями зашумления средним фильтром с размером окна 3×3. Как видно из примера, фильтр «скользящее среднее» обладает меньшей спо' собностью к подавлению шумовой компоненты по сравнению с ранее рассмотрен' ным медианным фильтром 3×3. Рассмотрим скользящее среднее с боêльшими размерами окна фильтрации. На рис. 3.2.23–3.2.28 приводится пример медианной фильтрации с различными раз' мерами апертуры.
Рис. 3.3.1. Слабая степень зашумления исходного изображения
Рис. 3.3.2. Результат фильтрации средним (avr) 3×3
Рис. 3.3.3. Средняя степень зашумления исходного изображения
Рис. 3.3.4. Результат фильтрации avr 3×3
Рис. 3.3.5. Сильная степень зашумления исходного изображения
Рис. 3.3.6. Результат фильтрации avr 3×3
Скользящее среднее в окне Простейшим видом линейной оконной фильтрации в пространственной области является скользящее среднее в окне. Результатом такой фильтрации является зна' чение математического ожидания, вычисленное по всем пикселям окна. Матема' тически это эквивалентно свертке с маской, все элементы которой равны 1/n, где n – число элементов маски. Например, маска скользящего среднего размера 3×3 имеет вид:
186
Методы обработки изображений
Линейная фильтрация изображений. Преобразование Фурье
Как видно из рис. 3.3.7–3.3.12, с увеличением размера окна растет способность медианного фильтра подавлять шумовую компоненту. Однако при этом нараста' ет и эффект кажущейся «расфокусировки» изображения (рис. 3.3.11 и 3.3.12) за счет размытия краев видимых объектов. Этого специфически присущего линей' ным фильтрам эффекта размытия мы также не наблюдали в случае нелинейной ранговой фильтрации.
Рис. 3.3.7. Зашумленное изображение
Рис. 3.3.8. Результат средней линейной фильтрации avr 5×5
187
Такая маска называется гауссовской, соответственно и использующий ее ли' нейный фильтр также называется гауссовским. Используя дискретные приближе' ния двумерной гауссовской функции, можно получить и другие гауссовские ядра бол ê ьшего размера. Обратите внимание на то, что сглаживающие, или фильтрую щие, маски линейных фильтров должны иметь сумму всех элементов равную 1. Данное условие нормировки гарантирует адекватный отклик фильтра на постоян' ный сигнал (постоянное изображение Im[x,y] = const). На рис. 3.3.13–3.3.15 приведен пример гауссовской линейной фильтрации за' шумленного изображения.
Рис. 3.3.9. Результат средней линейной фильтрации avr 7×7
Рис. 3.3.13. Зашумленное изображение
Рис. 3.3.14. Результат гауссовской линейной фильтрации gauss 5×5
Рис. 3.3.15. Результат гауссовской линейной фильтрации gauss 3×3
Функция IMAQ: Convolute
Рис. 3.3.10. Результат средней фильтрации avr 9×9 ии avr 3×3
Рис. 3.3.11. Результат средней линейной фильтрации avr 15×15
Рис. 3.3.12. Результат средней линейной фильтрации avr 31×31
Гауссовская фильтрация В предыдущем разделе мы рассмотрели «вырожденный» случай линейной фильт' рации с однородной маской. Между тем сама идея свертки изображения с весовой матрицей аналогична ранее рассмотренной идее введения весовой матрицы во взвешенных процентильных фильтрах. Повысить устойчивость результатов фильт' рации на краях областей можно, если придать более близким точкам окрестности большее влияние на окончательный результат, чем дальним. Примером реализа' ции этой идеи для окна размером 3×3 является следующая маска:
Функция IMAQ Convolute (рис. 3.3.16) осуществляет линейную фильтрацию (свертку) изображения в пространственной области с любой произвольно задан' ной маской. В качестве входных параметров IMAQ Convolute принимает: • исходное изображение Image Src; • область интереса Image Mask, которую можно вырезать с помощью IMAQ ROIToMask;
Q Co nv olute Рис. 3.3.16. Функция IMA IMAQ Conv nvolute
188
Методы обработки изображений
• шаблон выходного изображения Image Dst; • маску линейного фильтра Kernel, с которой производится свертка изобра' жения; • Divider (kernel sum) – сумму всех значений ячеек маски Kernel (служит для нормировки выходного значения фильтра); • сообщение об ошибках error in (no error), полученных с выхода других вир' туальных приборов. Выходными параметрами IMAQ Convolute являются: • изображение Image Dst Out, которое записывается в Image Dst, если Image Dst подано на вход. В противном случае результат Image Dst Out записыва' ется в Image Src; • сообщение об ошибках error out, возникающих в результате работы IMAQ Convolute. На рис. 3.3.17 и 3.3.18 приводится пример использования функции IMAQ Convolute. На лицевой панели приложения (рис. 3.3.18) в группе закладок слева (Tab Control Left) находятся исходное изображение Source Image, загружаемое с помощью элемента управления Path, а также маски фильтров Kernels и изобра' жение Destination Image, являющееся результатом фильтрации (свертки исход' ного изображения с текущей маской, заданной на закладке Kernels). В группу зак' ладок справа (Tab Control Right) входят изображение Destination Image и копия исходного изображения Source Image для удобства сравнения результатов. В данном примере процедура фильтрации может применяться не только ко всему исходному изображению целиком, но и к какому'либо его фрагменту. Фрагмент исходного выражения вырезается с помощью набора инструментов, находящихся слева от Source Image, помещенного на Tab Control Left. В правой нижней части лицевой панели находится окно Divider, в котором отображается сумма коэффи' циентов маски Manual kernel. Выход из программы осуществляется нажатием кнопки Stop. В правом верхнем углу закладки Kernels на Tab Control Left находится пере' ключатель Kernel (рис. 3.3.17). Его положение определяет, осуществляется ли фильтрация одной из заранее заданных масок (переключатель в положении Predefined) или пользователь конструирует фильтр самостоятельно (переключа' тель в положении Manual). В этом случае появляется возможность непосред' ственно в окне редактировать коэффициенты маски Manual kernel. Размер маски задается в поле Kernel Size. На рис. 3.3.17 показана маска фильтра Гаусса 5×5. Нажатие кнопки Apply this kernel вызывает обработку исходного изображения этой маской. Результат соот' ветствующего сглаживания изображения показан на рис. 3.3.18. На рис. 3.3.19–3.3.22 показаны фрагменты блок'диаграммы LabVIEW для данного примера использования функции IMAQ Convolute. Внутри первого фрейма Структуры событий (рис. 3.3.19) находятся ВП за' грузки изображения (IMAQ ReadFile), вырезки фрагмента (IMAQ ROIToMask), свертки с маской (IMAQ Convolute), а также отображение исходного и обрабо' танного изображений (Source Image и Destination Image, соответственно).
Линейная фильтрация изображений. Преобразование Фурье
189
Рис. 3.3.17. Маска фильтра Гаусса 5×5
Структура выбора (Case Structure) характеризует положение переключателя Kernel. Когда Kernel находится в положении Predefined (фрейм True в Струк' туре выбора), на вход IMAQ Convolute поступают маски Predefined kernel (рис. 3.3.19) из стандартного набора. Второй фрейм Структуры выбора (рис. 3.3.20) демонстрирует процесс подго' товки маски (Manual kernel), сконструированной пользователем (Kernel переве' ден в положение Manual). В данном примере маска Manual kernel создана «вруч' ную». Но можно эту же маску создать, используя ВП IMAQ BuildKernel. На рис. 3.3.21 и 3.3.22 проиллюстрирован процесс построения масок фильтров. Можно создать маску автоматически с помощью IMAQ GetKernel (рис. 3.3.21), который создает маску Predefined kernel по заданным параметрам, – семейству фильтров (Kernel Family), размерам маски (Kernel Size) и виду конкретной мас' ки (Kernel Number).
190
Методы обработки изображений
Линейная фильтрация изображений. Преобразование Фурье
191
edefined kernel Рис. 3.3.19. Пример использования заранее заданной маски Pr Predefined Рис. 3.3.18. Сглаживание изображения маской фильтра Гаусса 5×5
Рис. 3.3.22 демонстрирует процессы создания маски, сконструированной пользователем, и суммирования коэффициентов маски для окна Divider. Функция IMAQ: LowPass Данная функция (рис. 3.3.23) реализует сглаживающий низкочастотный фильтр в пространственной области. На вход IMAQ LowPass подаются: • исходное изображение Image Src; • область интереса Image Mask, которую можно вырезать с помощью IMAQ ROIToMask; • шаблон выходного изображения Image Dst; • Size & Tolerance – размеры маски и величина (выражена в процентах) от' клонения центрального пикселя от среднего в маске; • сообщение об ошибках error in (no error), полученных с выхода других вир' туальных приборов. На выходе IMAQ LowPass формирует изображение Image Dst Out, которое записывается в Image Dst, если Image Dst подано на вход. В противном случае результат Image Dst Out записывается в Image Src.
Рис. 3.3.20. Пример использования маски, сконструированной пользователем
192
Методы обработки изображений
Линейная фильтрация изображений. Преобразование Фурье
Q GetKernel Рис. 3.3.21. Построение масок фильтров с помощью ВП IMA IMAQ
Рис. 3.3.22. Создание маски, сконструированной пользователем
Также на выходе IMAQ LowPass формируется сообщение об ошибках error out, возникающих в результате работы. На рис. 3.3.24 приводится пример использования виртуального прибора IMAQ LowPass. В данном примере на лицевой панели содержимое групп закла' док слева (Tab Control Left) и справа (Tab Control Right) полностью дублирует друг друга. На закладках находятся исходное изображение Source Image, загру' жаемое с помощью элемента управления Path, а также изображение Destination Image, демонстрирующее результат обработки. Размер маски фильтра устанавли' вается соответствующими элементами управления в группе Mask. На рис. 3.3.25 представлена соответствующая блок'диаграмма для примера использования функции IMAQ LowPass.
3.3.2. Преобразование Фурье. Линейная фильтрация в частотной области Линейная фильтрация изображений может осуществляться как в пространствен' ной, так и в частотной области. При этом считается, что «низким» пространствен' ным частотам соответствует основное содержание изображения – фон и крупно' размерные объекты, а «высоким» пространственным частотам – мелкоразмерные объекты, мелкие детали крупных форм и шумовая компонента.
193
Q LowP ass Рис. 3.3.23. Функция IMA IMAQ LowPass
Традиционно для перехода в область пространственных частот используются методы, основанные на преобразовании Фурье. В последние годы все большее применение находят также методы, основанные на вейвлетпреобразовании (wavelettransform). Преобразование Фурье Преобразование Фурье позволяет представить практически любую функцию или набор данных в виде комбинации таких тригонометрических функций, как синус и косинус, что позволяет выявить периодические компоненты в данных и оценить их вклад в структуру исходных данных или форму функции. Традиционно разли' чаются три основные формы преобразования Фурье: интегральное преобразова' ние Фурье, ряды Фурье и дискретное преобразование Фурье.
194
Методы обработки изображений
Линейная фильтрация изображений. Преобразование Фурье
195
Рис. 3.3.25. Основной фрейм блокдиаграммы
,
Q LowP ass Рис. 3.3.24. Пример использования ВП IMA IMAQ LowPass
Интегральное преобразование Фурье переводит вещественную функцию в па' ру вещественных функций или одну комплексную функцию в другую. Вещественную функцию F(x) можно разложить по ортогональной системе тригонометрических функций, то есть представить в виде:
где
;
.
Дискретное преобразование Фурье переводит конечную последовательность вещественных чисел в конечную последовательность коэффициентов Фурье. Пусть {xi}0
где A(ω) и В(ω) называются интегральными косинус' и синус'преобразованиями:
,
где Ряд Фурье представляет периодическую функцию F(x), заданную на интерва' ле [a,b] в виде бесконечного ряда по синусам и косинусам. То есть периодической функции F(x) ставится в соответствие бесконечная последовательность коэффи' циентов Фурье.
,
,
,
i ≤ k < N / 2. Основное отличие между тремя формами преобразования Фурье заключается в том, что если интегральное преобразование Фурье определено по всей области
196
Методы обработки изображений
определения функции F(x), то ряд и дискретное преобразование Фурье определе' ны только на дискретном множестве точек, бесконечном для ряда Фурье и конеч' ном для дискретного преобразования. Как видно из определений преобразования Фурье, наибольший интерес для систем цифровой обработки сигналов представляет дискретное преобразование Фурье. Данные, получаемые с цифровых носителей или источников информации, представляют собой упорядоченные наборы чисел, записанные в виде векторов или матриц. Обычно принимается, что входные данные для дискретного преобразования представляют собой равномерную выборку с шагом ∆, при этом величина T=N∆ называется длиной записи, или основным периодом. Основная частота равна 1/T. Таким образом, в дискретном преобразовании Фурье производится разложение входных данных по частотам, которые являются целым кратным основной часто' ты. Максимальная частота, определяемая размерностью входных данных, равна 1/2∆ и называется частотой Найквиста. Учет частоты Найквиста имеет большое значение при использовании дискретного преобразования. Если входные данные имеют периодические составляющие с частотами, превышающими частоту Найк' виста, то при вычислении дискретного преобразования Фурье произойдет подме' на высокочастотных данных более низкой частотой, что может привести к ошиб' кам при интерпретации результатов дискретного преобразования. Важным инструментом анализа данных является также энергетический спектр. Мощность сигнала на частоте щ определяется следующим образом: . Эту величину часто называют энергией сигнала на частоте ω. Согласно теореме Парсеваля общая энергия входного сигнала равна сумме энергий по всем часто' там: . График зависимости мощности от частоты называется энергетическим спект' ром, или спектром мощности. Энергетический спектр позволяет выявлять скры' тые периодичности входных данных и оценивать вклад определенных частотных компонент в структуру исходных данных. Комплексное представление преобразования Фурье Кроме тригонометрической формы записи дискретного преобразования Фурье широко используется комплексное представление. Комплексная форма записи преобразования Фурье широко используется в многомерном анализе и в частно' сти при обработке изображений. Переход из тригонометрической в комплексную форму осуществляется на ос' новании формулы Эйлера:
Линейная фильтрация изображений. Преобразование Фурье
197
Если входная последовательность представляет собой N комплексных чисел, то ее дискретное преобразование Фурье будет иметь вид: , а обратное преобразование: . Если входная последовательность представляет собой массив вещественных чи' сел, то для нее существует как комплексное, так и синусно'косинусное дискретное преобразование. Взаимосвязь этих представлений выражается следующим образом: a0 = G0, Gk = (ak – jbk)/2, 1 < k < N/2, остальные N/2 значений преобразования являются комплексно сопряженными и не несут дополнительной информации. Поэтому график спектра мощности диск' ретного преобразования Фурье симметричен относительно N/2. Быстрое преобразование Фурье Простейший способ вычисления дискретного преобразования Фурье (ДПФ) – прямое суммирование, оно приводит к N операциям на каждый коэффициент. Всего коэффициентов N, так что общая сложность O(N2). Такой подход не пред' ставляет практического интереса, так как существуют гораздо более эффектив' ные способы вычисления ДПФ, называемые быстрым преобразованием Фурье (БПФ), имеющее сложность O(Nlog(N)). БПФ применяется только к последова' тельностям, имеющим длину (число элементов), кратную степени 2. Наиболее общий принцип, заложенный в алгоритм БПФ, заключается в разбиении входной последовательности на две последовательности половинной длины. Первая пос' ледовательность заполняется данными с четными номерами, а вторая – с нечет' ными. Это дает возможность вычисления коэффициентов ДПФ через два преоб' разования размерностью N/2. Обозначим
, тогда
.
Для m < N/2 тогда можно записать . Учитывая, что элементы ДПФ с индексом большим, чем N/2, являются комплексно сопряженны' ми к элементам с индексами, меньшими N/2, можно записать . Таким образом, можно вычислить БПФ длиной N, используя два ДПФ длиной N/2. Полный алгоритм БПФ заключается в рекурсивном выполне' нии вышеописанной процедуры, начиная с объединения одиночных элементов в пары, затем в четверки и так до конца.
198
Методы обработки изображений
Двумерное преобразование Фурье Дискретное преобразование Фурье для двумерного массива чисел размера (M×N) определяется следующим образом: , а обратное преобразование: . В случае обработки изображений компоненты двумерного преобразования Фурье называют пространственными частотами. Важным свойством двумерного преобразования Фурье является возможность его вычисления с использованием процедуры одномерного БПФ:
Линейная фильтрация изображений. Преобразование Фурье
199
Здесь –N и P определяют диапазон, за пределами которого r(t) = 0. При вычислении свертки с помощью преобразования Фурье используется свой' ство преобразования Фурье, согласно которому произведение образов функций в частотной области эквивалентно свертке этих функций во временной области. Для вычисления сверки необходимо преобразовать исходные данные в частот' ную область, то есть вычислить их преобразование Фурье, перемножить резуль' таты преобразования и выполнить обратное преобразование Фурье, восстановив исходное представление. Единственная тонкость в работе алгоритма связана с тем, что в случае дискрет' ного преобразования Фурье (в отличие от непрерывного) происходит свертка двух периодических функций, то есть наши наборы значений задают именно пе' риоды этих функций, а не просто значения на каком'то отдельном участке оси. То есть алгоритм считает, что за точкой xN идет не ноль, а точка x0, и т. д. по кругу. Поэтому, чтобы свертка корректно считалась, необходимо приписать к сигналу достаточно длинную последовательность нулей. Фильтрация изображений в частотной области
. Здесь выражение в квадратных скобках есть одномерное преобразование стро' ки матрицы данных, которое может быть выполнено с одномерным БПФ. Таким образом, для получения двумерного преобразования Фурье нужно сначала вы' числить одномерные преобразования строк, записать результаты в исходную мат' рицу и вычислить одномерные преобразования для столбцов полученной матри' цы. При вычислении двумерного преобразования Фурье низкие частоты будут сосредоточены в углах матрицы, что не очень удобно для дальнейшей обработки полученной информации. Для перевода получения представления двумерного преобразования Фурье, в котором низкие частоты сосредоточены в центре матри' цы, можно выполнить простую процедуру, заключающуюся в умножении исход' ных данных на (–1)m+n. Свертка с использованием преобразования Фурье Свертка функций s(t) и r(t) определяется как . На практике приходится иметь дело с дискретной сверткой, в которой непре' рывные функции заменяются наборами значений в узлах равномерной сетки (обычно берется целочисленная сетка): .
Линейные методы фильтрации относятся к числу хорошо структурированных методов, для которых разработаны эффективные вычислительные схемы, осно' ванные на быстрых алгоритмах свертки и спектральном анализе. В общем виде линейные алгоритмы фильтрации выполняют преобразование вида: f’(x,y) = ∫∫f(ζ–x,η–y)K(ζ,η)dζdη, где K(ζ,η) – ядро линейного преобразования. При дискретном представлении сигнала интеграл в данной формуле вырожда' ется во взвешенную сумму отсчетов исходного изображения в пределах некото' рой апертуры. При этом выбор ядра K(ζ,η) в соответствии с тем или иным крите' рием оптимальности может привести к ряду полезных свойств (гауссовское сглаживание при регуляризации задачи численного дифференцирования изобра' жения и др.). Наиболее эффективно линейные методы обработки реализуются в частотной области. Использование Фурье'образа изображения для выполнения операций фильтра' ции обусловлено прежде всего более высокой производительностью таких опера' ций. Как правило, выполнение прямого и обратного двумерного преобразования Фурье и умножение на коэффициенты Фурье'образа фильтра занимает меньше времени, чем выполнение двумерной свертки исходного изображения. Алгоритмы фильтрации в частотной области основываются на теореме о свер' тке. В двумерном случае преобразование свертки выглядит следующим образом: G(u,v) = H(u,v)F(u,v), где G – Фурье'образ результата свертки, Н – Фурье'образ фильтра, а F – Фурье' образ исходного изображения. То есть в частотной области двумерная свертка за' меняется поэлементным перемножением образов исходного изображения и соот' ветствующего фильтра.
200
Методы обработки изображений
Линейная фильтрация изображений. Преобразование Фурье
Для выполнения свертки необходимо выполнить следующие действия: 1. Умножить элементы исходного изображения на (–1)m+n для центрирования Фурье'образа. 2. Вычислить F(u,v), используя БПФ. 3. Умножить F(u,v) на функцию фильтра H(u,v). 4. Вычислить обратное преобразование Фурье. 5. Умножить вещественную часть обратного преобразования на (–1)m+n. Как правило, фильтры описываются вещественными функциями, в этом слу' чае каждый компонент H умножается на соответствующие элементы действи' тельной и мнимой части Фурье'образа изображения. Если исходная функция f(x,y) и фильтр H не комплексные, то результат свертки g(x,y) также должен быть вещественной функцией. Однако на практике обратное преобразование содержит паразитную мнимую составляющую, которую надо отбросить. Связь между функцией фильтра в частотной и пространственной области можно определить, используя теорему о свертке: Ф[f(x,y)*h(x,y)] = F(u,v)H(u,v), Ф[f(x,y)h(x,y)] = F(u,v)*H(u,v). Свертка функции с импульсной функцией может быть представлена следую' щим образом:
201
Идеальный фильтр низких частот H(u,v) имеет вид: H(u,v) = 1, если D(u,v) < Do, H(u,v) = 0, если D(u,v) і Do, где
– расстояние от центра частотной плоскости.
После свертки с этим фильтром на результирующем изображении появляются паразитные искажения в виде полутоновых ложных границ. Идеальный высокочастотный фильтр получается путем инверсии идеального низкочастотного фильтра: h(u,v) = 1 – H(u,v). Здесь происходит полное подавление низкочастотных компонент при сохра' нении высокочастотных. Однако, как и в случае идеального низкочастотного фильтра, его применение чревато появлением существенных искажений. Для синтеза фильтров с минимальными искажениями используются различ' ные подходы. Одним из них является синтез фильтров на основе экспоненты. Та' кие фильтры привносят минимальные искажения в результирующее изображе' ние и удобны для синтеза в частотной области. Широко используемым при обработке изображений является семейство филь' тров на основании вещественной функции Гаусса. Низкочастотный гауссовский фильтр имеет вид:
Фурье'преобразование импульсной функции: и Чем уже профиль фильтра в частотной области (чем больше σ), тем он шире в пространственной. Высокочастотный гауссовский фильтр имеет вид:
. Пусть f(x,y) = δ(x,y), тогда свертка
,
Из этих выражений видно, что функции фильтра в частотной и пространствен' ной областях взаимосвязаны через преобразование Фурье. Для данной функции фильтра в частотной области всегда можно найти соответствующий фильтр в пространственной области, применив обратное преобразование Фурье. То же верно и для обратного случая. Используя данную взаимосвязь, можно определить процедуру синтеза пространственных фильтров: 1. Определяем требуемые характеристики (форму) фильтра в частотной об' ласти. 2. Выполняем обратное преобразование Фурье. 3. Полученный фильтр можно использовать как маску для пространственной свертки, при этом размеры маски можно уменьшить по сравнению с разме' рами исходного фильтра.
В двумерном случае низкочастотный фильтр Гаусса выглядит следующим об' разом:
Высокочастотный гауссовский фильтр имеет вид:
Рассмотрим пример фильтрации изображения (см. рис. 3.2.1) в частотной об' ласти (рис. 3.3.26–3.3.31). Заметим, что частотная фильтрация изображения мо'
202
Методы обработки изображений
Линейная фильтрация изображений. Преобразование Фурье
203
Рис. 3.3.26. Низкочас тотная фильтрация с параметрами (10,10)
Рис. 3.3.27. Высокочас тотная фильтрация с параметрами (10,10)
Рис. 3.3.28. Низкочас тотная фильтрация с параметрами (50,50)
Рис. 3.3.32. Низкочас тотная фильтрация с параметрами (10,10)
Рис. 3.3.33. Высокочас тотная фильтрация с параметрами (10,10)
Рис. 3.3.34. Низкочас тотная фильтрация с параметрами (50,50)
Рис. 3.3.29. Высокочас тотная фильтрация с параметрами (50,50)
Рис. 3.3.30. Высокочас тотная фильтрация с параметрами (100,100)
Рис. 3.3.31. Высокочас тотная фильтрация с параметрами (200,200)
Рис. 3.3.35. Высокочас тотная фильтрация с параметрами (50,50)
Рис. 3.3.36. Высокочас тотная фильтрация с параметрами (100,100)
Рис. 3.3.37. Высокочас тотная фильтрация с параметрами (200,200)
жет иметь смысл как сглаживания (низкочастотная фильтрация), так и выделе' ния контуров и мелкоразмерных объектов (высокочастотная фильтрация). Как видно из рис. 3.3.26, 3.3.28 по мере нарастания «мощности» фильтрации в низкочастотной составляющей изображения все сильнее проявляется эффект «кажущейся расфокусировки», или размытия изображения. В то же время в вы' сокочастотную составляющую, где вначале наблюдаются лишь контуры объек' тов, постепенно переходит большая часть информационного содержания изобра' жения (рис. 3.3.27, 3.3.29–3.3.31). Рассмотрим теперь поведение высокочастотных и низкочастотных фильтров (рис. 3.3.32–3.3.37) в присутствии аддитивного гауссовского шума на изображе' нии (см. рис. 3 3.7). Как видно из рис. 3.3.32–3.3.34, свойства низкочастотных фильтров по подавле' нию аддитивной случайной помехи аналогичны свойствам ранее рассмотренных ли' нейных фильтров – при достаточной мощности фильтра помехи подавляются, одна' ко платой за это является сильное размытие контуров и «расфокусировка» всего
изображения. Высокочастотная составляющая зашумленного изображения переста' ет быть информативной, так как помимо контурной и объектовой информации там теперь также полностью присутствует и шумовая компонента (рис. 3.3.36 и 3.3.37). Применение частотных методов наиболее целесообразно в случае, когда извест' ны статистическая модель шумового процесса или/и оптическая передаточная функция канала передачи изображения. Учесть такие априорные данные удобно, выбрав в качестве восстанавливающего фильтра обобщенный управляемый (па' раметрами σ и μ) фильтр следующего вида:
где 0 < σ < 1, 0 < μ < 1 – назначаемые параметры фильтра, P(w1,w2) – передаточная функция системы, Q(w1,w2) – стабилизатор фильтра, согласованный с энергети' ческим спектром фона.
204
Методы обработки изображений
Выбор параметров σ = 1, μ = 0 приводит к чисто инверсной фильтрации, σ = μ = = 1 – к винеровской фильтрации, что позволяет получить изображение, близкое к истинному в смысле минимума СКО при условии, что спектры плотности мощ' ности изображения и его шумовой компоненты априорно известны. Для даль' нейшего улучшения эффекта сглаживания в алгоритм линейной (винеровской) фильтрации вводят адаптацию, основанную на оценке локальных статистик: ма' тематического ожидания M[(P)] и дисперсии σ(P). Этот алгоритм эффективно фильтрует засоренные однородные поверхности (области) фона. Однако при по' падании в скользящее окно обработки неоднородных участков фона импульсная характеристика фильтра сужается ввиду резкого изменения локальных статис' тик, и эти неоднородности (контуры, пятна) передаются практически без расфо' кусировки, свойственной неадаптивным методам линейной фильтрации. К достоинствам методов линейной фильтрации следует отнести их ясный фи' зический смысл и простоту анализа результатов. Однако при резком ухудшении соотношения «сигнал/шум» при возможных вариантах площадного зашумления и наличии высокоамплитудного импульсного шума линейные методы предвари' тельной обработки могут оказаться недостаточными. В этой ситуации значитель' но более мощными оказываются нелинейные методы.
3.3.3. ВейвлетHанализ Вейвлетанализ в отличие от Фурье'анализа опирается на специальные «малые волны» (вейвлеты), ограниченные во времени (в случае изображений – в про' странстве). Это позволяет в вейвлет'представлении сразу иметь и частотную и пространственную информацию. Вейвлет'анализ предназначен, прежде всего, для одновременного анализа изображения в нескольких масштабах, который по' лучил название кратномасштабного анализа. Пирамида изображений Исторически первой структурой для анализа изображений в различных масшта' бах являлась так называемая пирамида изображений. Изображение сцены может быть представлено в различных пространственных масштабах. При этом крупные детали сцены лучше видны на изображениях с мел' ким (грубым) разрешением. Мелкие детали сцены проявляются только на изобра' жениях с высоким разрешением. Информативность участков изображения также зависит от разрешения. Изображение, представленное в нескольких масштабах, в дальнейшем называется пирамидой. Использование пирамидальной структуры данных в алгоритмах обработки изображений имеет две основные цели: • сокращение времени обработки изображений; • определение более точных начальных приближений для обработки нижних уровней по результатам обработки верхних уровней. Принцип построения пирамиды изображений показан на рис. 3.3.38.
Линейная фильтрация изображений. Преобразование Фурье
205
Рис. 3.3.38. Принцип построения пирамиды изображений
Пирамида изображений представляет собой последовательность N изображе' ний, причем каждое последующее изображение получается из предыдущего пу' тем прореживания в два раза. Если позволяют вычислительное ресурсы, то для подавления высокочастот' ных шумов при прореживании рекомендуется перед прореживанием использо' вать низкочастотную линейную фильтрацию. В качестве ядра линейного фильтра обычно выбирают функцию Гаусса. В этом случае пирамида называется гауссо вой. Согласно теореме Котельникова сжатие в гауссовой пирамиде происходит с минимальной потерей информации. Изображение fN(x,y) представляет собой уменьшенную копию исходного изображения f1(x,y). Размер пикселя изображения уровня N равен pN = 2N–1.. Для координат пикселей изображений двух произвольных уровней пирамиды с номерами n и m справедливы следующие соотношения: 2n–1xn = 2m–1xm, 2n–1yn = 2m–1ym. Помимо гауссовых пирамид изображений часто рассматриваются также пира миды лапласианов. Для построения такой пирамиды выполняется следующая опе' рация: на каждом уровне гауссовой пирамиды выше нулевого текущее изображение увеличивается в два раза по каждой координате (при этом его размер становится равен размеру изображения на предыдущем уровне пирамиды), после чего вычис' ляется его разность с предыдущим уровнем. Получившийся результат также представляет собой пирамиду изображений, эквивалентную результату примене' ния оператора Лапласа соответствующего масштаба (см. описание оператора Лапласа ниже в разделе 3.4). Вейвлет#преобразование Вейвлетпреобразование – это математический инструмент для иерархической декомпозиции функций. С помощью вейвлетов функции представляются как
206
Методы обработки изображений
композиция грубой низкочастотной аппроксимации и уточняющих компонент (деталей), представляющих отсутствующие в аппроксимации элементы графика функции. Вне зависимости от вида функции (изображение, кривая, поверхность) вейвлет представляет функцию как иерархию уровней отображения с различной точностью детализации. В процедурах предобработки изображений вейвлет'пре' образование используется для уменьшения уровня шумов, анализа текстур, выде' ления контуров объектов и сжатия изображений. Для одномерного случая любая произвольная интегрируемая функция может быть представлена в виде линейной комбинации ортогональных функций:
Линейная фильтрация изображений. Преобразование Фурье
207
Однако пространственные (временные) и частотные характеристики не могут быть од' новременно измерены со сколь угодно высо' кой точностью. Точность измерения простран' ственных характеристик ∆x и частотных характеристик ∆ω ограничена снизу неравен' ством Гейзенберга: Рис. 3.3.39. Вейвлет Хаара
где ϕ – базисная функция, ci – весовые коэффициенты. Коэффициенты этого представления определяются из соотношения
где
есть квадрат нормы, или энергия базисной функции ϕ(t).
Такое представление называется обобщенным рядом Фурье. Обобщенный ряд Фурье при заданной системе базисных функций и конечном числе слагаемых N обеспечивает наилучший синтез по критерию минимума среднеквадратической ошибки. Так как базисные функции в разложении фиксированы, то вся информа' ция о функции f(x) содержится в весовых коэффициентах. В своей простейшей форме базисные функции могут быть представлены как смещенные вдоль пространственной или временной оси единичные импульсные функции. Такое отображение дает представление о локальных (пространствен' ных или временных) параметрах функции. Если в качестве базисной функции выбрана синусоида, то получается известное преобразование Фурье – дающее информацию о поведении частотных (спектральных) компонент функции f(x). Однако во многих приложениях, включая обработку изображений, необходимо одновременно иметь информацию и о пространственных и спектральных харак' теристиках функции f(x). Вейвлет'преобразование сигнала – это его представление в виде обобщенного ряда Фурье или интеграла Фурье по системе базисных функций, локализованных как в пространственной, так и в частотной областях. Примером такой базисной функции может служить вейвлет Хаара, который определяется выражением
Графически вейвлет Хаара изображен на рис. 3.3.39.
Рассмотрим процесс разложения сигнала F(t) в системе базисных функций Хаара. Пер' вая базисная функция, в отличие от всех последующих, представляет собой пря' мую линию. В случае нормированного базиса {ϕn(t)} свертка первой базисной функции с исходным сигналом будет определять его среднее значение. По' следующие базисные функции разложения Хаара представляют собой масштаби' руемые по степени 2, сдвинутые «ступеньки», представленные выше на рис. 3.3.39. Таким образом, система базисных функций Хаара в дискретном пространстве должна задаваться двумя параметрами: сдвига и частоты (масштаба):
где a – масштаб базисной функции; b – сдвиг. В дискретном случае параметр масштаба a = 2m, где m – любое целое положи' тельное число, параметр сдвига b = k2m. Таким образом, все множество базисных функций можно записать как
Ниже, на рис. 3.3.40, представлен вид базисных функций Хаара для различных масштабов. В результате разложения исходный сигнал точно описывается коэффициента' ми вейвлет'преобразования Хаара. Для вейвлет'преобразования, так же как и для ДПФ, существует алгоритм быстрого преобразования. Рассмотрим преобразование Хаара. Из рис. 3.3.40 вид' но, что функции с малым масштабным коэффициентом a используют те же отсче' ты сигнала для вычисления коэффициентов, что и функции с большим масштаб' ным коэффициентом. При этом операция суммирования одних и тех же отсчетов повторяется неоднократно. Следовательно, для уменьшения объема вычислений целесообразно вычислять вейвлет'преобразование с самого малого масштабного коэффициента. В результате получаем вейвлет'коэффициенты, представляющие собой средние значения C1,k = (xi + xi+1)/2 и разности
208
Методы обработки изображений
Линейная фильтрация изображений. Преобразование Фурье
Рис. 3.3.41. Исходное изображение
209
Рис. 3.3.42. Пример двумерного вейвлетпреобразования Хаара
Рис. 3.3.40. Вид базисных функций Хаара для различных масштабов
C1,j = (xi – xi+1)/2. Для коэффициентов C1,k = (xi + xi+1)/2 повторяем данную процедуру. При этом усреднение коэффициентов (C1,k + C1,k+11)/2 будет соответствовать усреднению четырех отсчетов сигнала, но при этом расходуется одна операция умножения и одна операция сложения. Процесс разложения повторяется до тех пор, пока не будут вычислены все коэффициенты спектра. Двумерное вейвлет'преобразование строится по тому же принципу, что и дву' мерное преобразование Фурье, то есть сначала вычисляются одномерные преоб' разования строк и по полученной матрице коэффициентов вычисляются вейвлет' преобразования столбцов. На рис. 3.3.41 представлено исходное изображение, а на рис. 3.3.42 – четыре компоненты вейвлет'образа. Размер каждой компоненты в два раза меньше соот' ветствующего линейного размера исходного изображения. Возможности вейвлет'преобразований по локализации частотно'простран' ственных особенностей исходного сигнала используются для алгоритмов подав' ления шумов и сжатия. При этом производится подавление малых коэффициен' тов разложения, что позволяет восстанавливать сигналы с высокой степенью подобия к исходному сигналу, однако при этом уменьшается влияние слабых шу' мовых сигналов и снижается объем информации, необходимый для представле' ния сигнала. На основании вейвлет'преобразования разработан самый современ' ный на сегодня стандарт сжатия изображений JPEG2000. Функции IMAQ: палитра Frequency Domain Палитра Frequency Domain содержит следующие функции, необходимые для ра' боты с изображениями в частотной области:
• • • • • • • • • • • • • • • •
IMAQ ArrayToComplexImage; IMAQ ArrayToComplexPlane; IMAQ ComplexAdd; IMAQ ComplexAttenuate; IMAQ ComplexConjugate; IMAQ ComplexDivide; IMAQ ComplexFlipFrequency; IMAQ ComplexImageToArray; IMAQ ComplexMultiply; IMAQ ComplexPlaneToArray; IMAQ ComplexPlaneToImage; IMAQ ComplexSubtract; IMAQ ComplexTruncate; IMAQ FFT; IMAQ ImageToComplexPlane; IMAQ InverseFFT.
Функция IMAQ: FFT Функция IMAQ FFT (рис. 3.3.43) вычисляет быстрое преобразование Фурье (БПФ) для заданного изображения. Так как БФП работает с комплексными числами, исходное изображение необ' ходимо предварительно преобразовать в комплексную форму. Делается это при помощи ВП IMAQ ImageToComplexPlane – . В данном случае исходное изоб'
210
Методы обработки изображений
Линейная фильтрация изображений. Преобразование Фурье
211
Q FFT Рис. 3.3.43. Функция IMA IMAQ
ражение помещается в действительную часть комплексного изображения. Исход' ное изображение и его Фурье'образ представлены на рис. 3.3.44. Соответствующая блок'диаграмма LabVIEW представлена на рис. 3.3.45.
Рис. 3.3.44. Исходное изображение и его Фурьеобраз Рис. 3.3.45. Блокдиаграмма
Функция IMAQ: InverseFFT Функция IMAQ InverseFFT (рис. 3.3.46) реализует обратное преобразование Фурье. Она позволяет восстановить исходное изображение по его Фурье'образу. Функция IMAQ: ComplexAttenuate Функция IMAQ ComplexAttenuate (рис. 3.3.47) реализует частотный фильтр. Амплитуда каждой частоты умножается на коэффициент фильтра высоких частот (low'pass filter) и на
Q Inv er seFFT Рис. 3.3.46. Функция IMA IMAQ Inver erseFFT
для для фильтра низких
частот (high'pass filter). На рис. 3.3.48 показаны: исходное изображение (вверху слева), его Фурье'об' раз (вверху справа), преобразованный Фурье'образ с наложенным на него линей' ным фильтром высоких частот (внизу справа) и восстановленное сглаженное изображение с отфильтрованными высокими частотами. На восстановленном изображении наблюдается эффект «размытия» контуров. Блок'диаграмма данного упражнения представлена на рис. 3.3.49.
Q ComplexAttentuate Рис. 3.3.47. Функция IMA IMAQ
Для обратного преобразования комплексного изображения в действительное используется ВП IMAQ ComplexPlaneToImage. Данный ВП позволяет преобра' зовать в изображение в действительной области действительную часть, мнимую часть, амплитуду или фазу изображения в комплексной области.
212
Методы обработки изображений
Линейная фильтрация изображений. Преобразование Фурье
Рис. 3.3.49. Блокдиаграмма
Рис. 3.3.48. Фильтр высоких частот: исходное изображение; его Фурьеобраз (вверху справа); Фурьеобраз с наложенным на него линейным фильтром высоких частот (внизу справа); восстановленное изображение (внизу слева)
Q ComplexCo njugate Рис. 3.3.50. Функция IMA IMAQ ComplexConjugate
Функция IMAQ: ComplexConjugate Функция ComplexConjugate (рис. 3.3.50) позволяет построить изображение, комплексно'сопряженное заданному. Результат операции представлен на рис 3.3.51. Соответствующая блок'диаг' рамма показана на рис 3.3.52.
njugate Рис. 3.3.51. Результат операции ComplexCo ComplexConjugate
213
214
Методы обработки изображений
Линейная фильтрация изображений. Преобразование Фурье
215
Рис. 3.3.52. Блокдиаграмма
Функция IMAQ: ComplexFlipFrequency Данная функция (рис. 3.3.53) транспонирует частотные компоненты комплексно' го изображения. В частности, после данной операции низкие частоты будут пред' ставлены не в центре Фурье'образа, а «по углам». На рис. 3.3.54 показаны: исходный Фурье'образ (слева), результат операции FlipFrequency (справа). Соответствующая блок'диаграмма представлена на рис. 3.3.55. Функция IMAQ: ComplexTruncate Данная функция (рис. 3.3.56) позволяет непосредственно вырезать (удалять) из спектра изображения заданный диапазон частот. Для этого необходимо указать,
Q ComplexFlipFr equency Рис. 3.3.53. Функция IMA IMAQ ComplexFlipFrequency
Рис. 3.3.54. Результат транспонирования
какие именно частоты (высокие или низкие) и на сколько процентов (от общего числа) необходимо вырезать. На рис. 3.3.57 показаны: Фурье'образ, после удаления 5% низких частот и вос' становленное по нему изображение. Блок'диаграмма данного упражнения показана на рис. 3.3.58. Следует отметить, что в LabVIEW с комплексными изображениями можно производить такие же арифметические операции, как и с действительными. Для этого используются такие функции, как IMAQ Complex Add , IMAQ Complex Subtract , IMAQ Complex Multiply и IMAQ Complex Divide . При работе в комплексной области также используются служебные функции, преобразую' щие комплексное изображение в массив IMAQ ComplexImageToArray и IMAQ
216
Методы обработки изображений
Выделение контуров на полутоновых изображениях
217
Рис. 3.3.55. Блокдиаграмма
Q ComplexT runc ate Рис. 3.3.56. Функция IMA IMAQ ComplexTrunc runcate
runc ate Рис. 3.3.57. Пример операции ComplexT ComplexTrunc runcate
ComplexPlaneToArray , а массив в изображение IMAQ ArrayToComplexImage и IMAQ ArrayToComplexPlane .
ла) f(x,y), определенную на ограниченной прямоугольной области X, называемой «кадром». Традиционно рассматриваются две модели «края»: «ступенька» и «из' лом». «Ступенька» предполагает скачкообразное изменение яркости вдоль неко' торого контура на изображении. Точки контура типа «ступенька» являются, таким образом, точками разрыва для функции f(x,y). Край типа «излом» – это совокупность точек разрыва первой производной функции f(x,y). Если же счи' тать, что функция яркости непрерывна и два раза непрерывно дифференцируема во всех своих точках, то «ступенчатым» краевым точкам соответствуют точки смены знака второй производной (максимума первой производной), а «излом' ным» краевым точкам – точки смены знака первой производной (локальные мак' симумы яркостной функции).
3.4. Выделение контуров на полутоновых изображениях 3.4.1. Задача выделения контуров Рассмотрим задачу выделения краев на изображении. Пусть полутоновое изобра' жение представляет собой двумерную функцию яркости (интенсивности сигна'
218
Методы обработки изображений
Выделение контуров на полутоновых изображениях
219
кусочно'постоянной модели изображения. Для этого в каждой точке изображения рассматриваются пары прилегающих «сенсорных полей» прямоугольной формы, граница между которыми проходит через исследуемый пиксель. Оцениваются сред' ние значения яркости для каждого сенсорного поля отдельно, и модуль разности между ними характеризует интенсивность перепада яркости в данной точке в на' правлении, перпендикулярном границе сенсорных полей. На области постоянной яркости будет зафиксирован нулевой перепад, а в точках контура – максимальный (если ориентация сенсорной пары соответствует ориентации контура в этих точках). Хотя для теоретического обоснования метода нет необходимости в предположении о дифференцируемости функции яркости, легко заметить, что вычисляемое значение в некотором смысле является аналогом производной по направлению. Поэтому оператор «сенсорная пара», вычисляющий в каждой точке перепад яркости для конкретной ориентации сенсорных полей, не является инвариантным к повороту. Поэтому на практике всегда используется набор из нескольких (как правило, ше' сти) различным образом ориентированных сенсорных пар. После обработки изображения полным набором сенсорных пар каждая точка характеризуется ори' ентацией сенсорной пары, для которой было вычислено максимальное значение перепада яркости, и величиной этого максимального перепада. Таким образом, применение набора сенсорных пар дает результат, аналогичный градиенту (в форме «угол–амплитуда»), причем ориентация определяется достаточно гру' бо, выбором одного из нескольких фиксированных направлений. Из методов обнаружения края при помощи различных дифференциальных операторов на сегодняшний день наиболее широко используются следующие опе' раторы: Робертса (Roberts), Собела (Sobel), Марра (Marr) и Кани (Canny). Рис. 3.3.58. Блокдиаграмма
Операторы вычисления производных Задачу поиска контурных точек действительно удобно решать в терминах произ' водных. Однако при этом необходимо иметь в виду следующие два существенных замечания. Во'первых, говоря о взятии производных двумерной функции, мы го' ворим о целой совокупности разнообразных операторов. Под первой произ' водной может пониматься как вектор'градиент, характеризуемый амплитудой и направлением, так и различные производные по направлению, определяемые только одним значением. Под второй производной также могут подразумеваться различные двумерные дифференциальные операторы. Во'вторых, задача вычис' ления производных на дискретном зашумленном изображении является, вообще говоря, некорректной (по Адамару). Как показано в работах школы академика Тихонова, эту задачу можно сделать корректной при помощи регуляризации, то есть путем наложения на функцию f(x,y) и ее производные дополнительных усло' вий. В практическом плане это означает, что прежде, чем взять производную, изображение необходимо отфильтровать (сгладить) тем или иным способом. Наиболее простым методом выделения края, не основанным на дифференциро' вании, является метод «сенсорных пар». Суть этого метода обнаружения «ступен' чатого» края состоит в непосредственной оценке величины перепада яркости для
Операторы вычисления векторов градиентов Операторы Робертса и Собела непосредственно вычисляют значения компонент вектора'градиента для каждой точки изображения путем свертки (см. раздел 3.3. «Линейная фильтрация изображений») локальной окрестности точки с малораз' мерными масками: ,
(3.4.1)
для оператора Робертса и
,
(3.4.2)
для оператора Собела. Практические исследования показывают, что оператор Робертса (рис. 3.4.1 и 3.4.2) не является в достаточной мере помехозащищенным, оператор же Собела (рис. 3.4.3–3.4.6) обеспечивает вполне удовлетворительные результаты при обра' ботке реальных изображений.
220
Методы обработки изображений
Выделение контуров на полутоновых изображениях
221
Операторы Марра и Лапласа Рассмотрим операторы выделения краев, основанные на вычислении симметрич' ных круговых производных. Простейшим оператором такого рода является оператор Лапласа. Оператор Лапласа (лапласиан) 3×3 имеет маску следующего вида: .
Рис. 3.4.1. Оператор Робертса: результат свертки с маской M
Рис. 3.4.2. Оператор Робертса: результат свертки с маской M2
Рис. 3.4.3. Оператор Собела: вертикальные контуры (маска Mx)
Рис. 3.4.4. Оператор Собела: горизонтальные контуры (маска My)
Рис. 3.4.5. Оператор Собела: амплитуда градиента
Рис. 3.4.6. Оператор Собела: поле направлений градиента
Непосредственным результатом применения оператора Собела является век' тор'градиент (gx,gy), не являющийся инвариантным к повороту изображения. Од' нако он может быть приведен к виду (A,ϕ), где A=
ϕ = arctg(gy/gx).
(3.4.3)
Величина A не зависит от угла разворота, а величина ϕ для любых одноимен' ных точек двух изображений, развернутых друг относительно друга на угол dϕ, будет отличаться только на константу dϕ. Так же, как в методе «сенсорных пар», величина A характеризует интенсивность перепада яркости в точке; величина ϕ – направление нормали к контуру в точке. Доказано, что точность углового разре' шения для приведенных масок размера (3×3) составляет примерно 4°. Известны маски размера (5×5), при помощи которых достигается еще большее угловое раз' решение. Учитывая, что вычисление ϕ на практике реализуется табличным спосо' бом, можно сделать вывод, что оператор Собела эффективнее в вычислительном плане и обеспечивает большую точность, чем метод «сенсорных пар», являясь при этом действительно инвариантным к поворотам изображения.
Такую маску можно интерпретировать как сумму разностей центрального эле' мента с каждым из 8 его ближайших соседей. Таким образом, в равной степени учи' тываются возможные перепады яркости во всех направлениях (рис. 3.4.7 и 3.4.8).
Рис. 3.4.7. Пример работы оператора Лапласа: лапласиан 3×3
Рис. 3.4.8. Пример работы оператора Лапласа: лапласиан 5×5
Оператор Марра выделения краев «ступенчатого» типа основан на поиске то' чек пересечения нуля второй пространственной производной f(x,y). Для этого используется оператор Лапласа ∇2, где ∇ – оператор Гамильтона (∂/∂x,∂/∂y), при' мененный после сглаживания изображения гауссовским линейным фильтром с симметричной маской G(σ,x,y), или непосредственно осуществляется свертка с маской С2G(σ,x,y). Этот фильтр известен также как РГР'фильтр (разность гаус' совских распределений), так как форма маски ∇2G(σ) хорошо аппроксимируется разностью гауссовских масок (G(σ1) – G(σ2)) с соотношением (σ1/σ2) = 1,7. В ра' боте показано, что РГР'фильтр является также хорошим приближением точного решения задачи регуляризации для оператора Лапласа при наложенном на f(x,y) условии минимума среднего квадрата второй производной. Оператор Марра является инвариантным к повороту, если носителем его мас' ки является круговая область. Этот оператор не вычисляет в явном виде направ' ления нормали к контуру. В то же время для определения множества контурных точек нет необходимости вводить искусственный порог (по модулю градиента), как в градиентных методах, они определяются непосредственно как точки пересе' чения нулевого уровня на отфильтрованном изображении. Еще одним удобным
222
Методы обработки изображений
Выделение контуров на полутоновых изображениях
свойством оператора Марра является то, что получающиеся контуры не имеют разрывов. Возможна масштабная настройка алгоритма путем выбора значения параметра σ. Как видно на рис. 3.4.9–3.4.12, по мере увеличения значения параметра σ опе' ратор Марра выделяет все более и более крупные элементы изображения. При этом формируемые данным оператором контуры продолжают сохранять харак' терную замкнутую форму.
Рис. 3.4.9. Исходное изображение
Рис. 3.4.10. Пример работы оператора Марра (σ = 1,0)
• яркостной порог Threshold Value, отсекающий пиксели с низким значени ем яркости; • Method – метод выделения контуров; • сообщение об ошибках error in (no error), полученных с выхода других вир' туальных приборов. Параметр Method позволяет выбирать из следующих вариантов (операторов): • дифференциальный оператор (Differentiation); • градиентный оператор (Gradient); • оператор Превитта; • оператор Робертса; • сигма'фильтр; • оператор Собела. На выходе IMAQ EdgeDetection возвращает изображение Image Dst Out, ко' торое записывается в Image Dst, если Image Dst подано на вход. В противном слу' чае результат Image Dst Out записывается в Image Src. Также на выходе IMAQ EdgeDetection формируется сообщение об ошибках error out, возникающих в результате работы. На рис. 3.4.14 показан пример использования ВП IMAQ EdgeDetection.
Рис. 3.4.11. Пример работы оператора Марра (σ = 2,0)
3.4.2. Операторы выделения контуров в IMAQ Vision Функция IMAQ: EdgeDetection Функция IMAQ EdgeDetection позволяет выделять или подчеркивать края (рис. 3.4.13). На вход IMAQ EdgeDetection принимает: • исходное изображение Image Src; • область интереса Image Mask, которую можно вырезать с помощью IMAQ ROIToMask; • шаблон выходного изображения Image Dst;
Рис. 3.4.12. Пример работы оператора опера тора Марра (σ = 3,0)
Q EdgeDetectio n Рис. 3.4.13. Функция IMA IMAQ EdgeDetection
223
Q EdgeDetectio n Рис. 3.4.14. Лицевая панель примера использования ВП IMA IMAQ EdgeDetection
224
Методы обработки изображений
Выделение контуров на полутоновых изображениях
На лицевой панели приложения находятся две одинаковые группы закладок: сле' ва – Tab Control Left и справа – Tab Control Right. На закладках находятся: исходное Source Image, загружаемое с помощью элемента управления Path, а также изображе' ние Destination Image, демонстрирующее результат обработки. Метод выделения контуров можно выбрать из выпадающего списка Method (рис. 3.4.14). На рис. 3.4.15 показан фрагмент соответствующей блок'диаграммы для при' мера использования IMAQ EdgeDetection.
Рис. 3.4.16. Пример выделения краев фильтром Лапласа. Сумма коэффициентов маски равно нулю
Рис. 3.4.15. Основной фрейм блокдиаграммы
Функция IMAQ: Convolute. Оператор Лапласа Фильтр Лапласа, в отличие от градиентных фильтров, осуществляет выделение кра' ев вне зависимости от направления (маска Predifined kernel на рис. 3.4.16–3.4.19). Если сумма коэффициентов маски равна нулю, фильтр Лапласа осуществляет собственно выделение контуров (рис. 3.4.16 и 3.4.17). Если сумма коэффициентов маски положительна, то результат выделения контуров накладывается на исходное изображение (рис. 3.4.18 и 3.4.19). Функция IMAQ: Convolute. Оператор Собела Аналогичным образом можно продемонстрировать и работу оператора Собела (рис. 3.4.20), а также оператора подчеркивания контуров на базе оператора Собе' ла (рис. 3.4.21).
Рис. 3.4.17. Пример выделения краев фильтром Лапласа. Сумма коэффициентов маски равно нулю
225
226
Методы обработки изображений
Рис. 3.4.18. Пример выделения краев фильтром Лапласа. Сумма коэффициентов маски положительна
Рис. 3.4.19. Пример выделения краев фильтром Лапласа. Сумма коэффициентов маски положительна
Выделение контуров на полутоновых изображениях
Рис. 3.4.20. Пример выделения краев оператором Собела
Рис. 3.4.21. Пример подчеркивания краев на базе оператора Собела
227
228
Методы обработки изображений
Математическая морфология Серра (ММ)
229
Блок'диаграмма функции IMAQ Convolute рассмотрена в разделе 3.3.1 (см. рис. 3.3.19–3.3.21). Функция IMAQ: CannyEdgeDetection Данная функция (рис. 3.4.22) реализует выделение контуров оператором Кани.
Q CannyEdgeDetectio n Рис. 3.4.22. Функция IMA IMAQ CannyEdgeDetection
Входными параметрами IMAQ CannyEdgeDetection являются: • исходное изображение Image Src; • шаблон выходного изображения Image Dst; • параметры фильтра (Filter Parameters); • Method – метод выделения контуров; • сообщение об ошибках error in (no error), полученных с выхода других вир' туальных приборов. На выходе IMAQ CannyEdgeDetection возвращает: • изображение Image Dst Out, которое записывается в Image Dst, если Image Dst подано на вход. В противном случае результат Image Dst Out записыва' ется в Image Src; • сообщение об ошибках error out, возникающих в результате работы IMAQ CannyEdgeDetection. На рис. 3.4.23 показан пример использования виртуального прибора IMAQ CannyEdgeDetection. В группе Filter Parameters имеется возможность устано' вить размер маски (WindowSize), пороги (HThresh и LThres) и Sigma. На рис. 3.4.24 показана соответствующая блок'диаграмма для примера ис' пользования IMAQ CannyEdgeDetection.
3.5. Математическая морфология Серра (ММ) Математическая морфология Серра позволяет осуществлять обработку изобра' жений с учетом формы и размера имеющихся на изображении областей. Морфо' логические операторы Серра позволяют: выделять или удалять на изображениях мелко' и среднеразмерные объекты заданной формы и размера, а также фильтро' вать (сглаживать) форму крупноразмерных объектов. Рассмотрим математический формализм морфологии Серра, основанный на понятиях теории множеств.
Рис. 3.4.23. Лицевая панель примера использования Q CannyEdgeDetectio n ВП IMA IMAQ CannyEdgeDetection
3.5.1. Теоретические основы математической морфологии Основные понятия математической морфологии Серра Пусть дано евклидово пространство EN, на множестве объектов (подмножеств) которого введены отношения включения (⊂), объединения (∪) и пересечения (∩). Рассмотрим некоторое преобразование Ψ: EN → EN (оператор Ψ). Оператор Ψ называется увеличивающим (increasing), если (X⊂Y)⇒(Ψ(X)⊂Ψ(Y)), X,Y⊂EN, то есть оператор сохраняет отношение принадлежности.
230
Методы обработки изображений
Рис. 3.4.24. Основной фрейм блокдиаграммы
Математическая морфология Серра (ММ)
231
Пусть даны A,B⊂E. Операция A⊕B = {a=b| a∈A, b∈B} = U{Ba} = U{Ab} (3.5.1) называется сложением Минковского. Операция (3.5.2) AψB = {z| Bz⊆A} = U{Az} называется вычитанием Минковского. Множество B будем в дальнейшем называть структурирующим элементом B. Так как операции, определяемые этими выражениями, удовлетворяют требовани' ям сохранения соответственно объединения и пересечения бинарных образов, то они называются также дилатацией (расширением) и эрозией (сжатием) изобра' жения X структурирующим элементом B (по структурирующему элементу B) и являются базовыми операциями ММ. Эти операции являются двойственными по отношению друг к другу в том смысле что: XψB = (XС ⊕ BV)С, где XС – дополнение к X, BV = {–b| b∈B}. Следовательно, все положения или теоремы, доказанные относительно одной из операций, автоматически могут быть представлены в двойственной форме от' носительно другой операции. Фундаментальный результат, полученный Матероном (теорема Матерона), состоит в том, что любой увеличивающий оператор Ψ, инвариантный относитель' но трансляции, может быть представлен в виде объединения эрозий: (3.5.3)
Оператор Ψ называется дилатацией (расширением), если Ψ(Uxi) = UΨ(xi), xi⊂EN, то есть оператор сохраняет объединение. Аналогично оператор, сохраняющий пересечение, называется эрозией (сжа тием), если Ψ(∩xi) = ∩(Ψ(xi)), xi⊂EN. Оператор называется экстенсивным, если Ψ(X)⊇X и антиэкстенсивным, если Ψ(X)⊆X. При рассмотрении последовательного применения операторов вводятся по' нятия: • усиливающий оператор (Ψ(Ψ(X))⊇Ψ(X)); • ослабляющий оператор (Ψ(Ψ(X))⊆Ψ(X)); • равносильный оператор (Ψ(Ψ(X)) = Ψ(X)). Морфологическими фильтрами называется множество операторов, являю' щихся одновременно равносильными и увеличивающими [6]. Морфологические операции на бинарных изображениях Определим трансляцию множества A⊂E по z∈E как преобразование Az = {y| a∈A, y=a=z}.
где k(Ψ) – ядро Ψ(X), то есть такое множество структурирующих элементов B, что Ψ(B) содержит начало координат. Этот результат также имеет двойственную форму: (3.5.4) где Ψ*(X) = (Ψ(XC))C. Именно в силу теоремы Матерона эрозия и дилатация являются базовыми операциями ММ, то есть любой морфологический фильтр может быть представ' лен в виде объединения эрозий или пересечения дилатаций. Введем, наконец, операции открытия и закрытия, часто используемые в мор' фологии. Операция X°B = (XψB)⊕B (3.5.5) называется открытием X по B и имеет ясный физический смысл: X°Bс = U{Bz| Bz ⊆X}. Этот оператор является антиэкстенсивным и увеличивающим. Закрытием X по B называется X•B = (X⊕B)ψB. (3.5.6) Этот оператор является экстенсивным и увеличивающим.
232
Методы обработки изображений
Математическая морфология Серра (ММ)
Кроме того, оба этих оператора явля' ются равносильными, а следовательно, открытие и закрытие – это два простей' ших морфологических фильтра. Примеры работы морфологических операторов Рассмотрим геометрический смысл опе' раторов математической морфологии на примере обработки искусственного изоб' ражения (рис. 3.5.1), на котором пред' Рис. 3.5.1. Изображение с «дефектами» ставлен прямоугольный объект, имею' типа «дырок» и «выступов» щий «дефекты формы» типа внутренних «дырок» и внешних «выступов». Попробуем морфологическими средствами уда' лить эти дефекты формы объекта. Поскольку объект имеет прямоугольную форму, будем использовать структу' рирующий элемент также прямоугольной формы. Габаритные размеры структу' рирующего элемента должны быть не меньше, чем характерный «поперечный» размер (минимальная хорда) дефектов формы, подлежащих удалению. Начнем с удаления внешних «выступов» формы. Для этого используется про' цедура открытия. На первом этапе этой процедуры выполняется операция сжатия (эрозии) объекта, которая удаляет («съедает») внешние «выступы» формы. Од' нако внешний размер объекта при этом уменьшается, а внутренние дефекты, на' против, увеличиваются в размерах, в связи с чем после сжатия необходимо выпол' нить расширение (дилатацию) объекта с тем же структурирующим элементом. В результате выполнения всей операции открытия в целом внешние размеры и форма объекта оказываются восстановлеными, но внутренние дефекты формы сохраняются (рис. 3.5.2 и 3.5.3).
Рассмотрим теперь морфологическую технику удаления внутренних дефектов формы («дырок»). Для этого используется процедура закрытия. На первом этапе этой процедуры выполняется операция расширения (дилатации) объекта, которая удаляет («заращивает») внутренние «дыры» и «каналы». Однако внешний размер объекта при этом увеличивается, внешние дефекты также увеличиваются в разме' рах, в связи с чем после расширения необходимо выполнить сжатие (эрозию) объекта с тем же структурирующим элементом. В результате выполнения всей опе' рации закрытия в целом размеры и внутренняя целостность объекта оказываются восстановлеными, но внешние дефекты формы сохраняются (рис. 3.5.4 и 3.5.5).
Рис. 3.5.4. Результат расширения (дилатация) объекта
Рис. 3.5.3. Результат открытия объекта (удаление внешних «выступов» формы)
Рис. 3.5.5. Результат закрытия объекта (удаление внутренних «дырок» формы)
Для того чтобы устранить и внешние и внутренние дефекты формы в данном примере, необходимо сначала применить к исходному изображению (рис. 3.5.1) открытие, а затем к результату открытия – закрытие с тем же прямоугольным структурирующим элементом (рис. 3.5.6 и 3.5.7).
Рис. 3.5.6. Результат открытия Рис. 3.5.2. Результат сжатия (эрозии) объекта
233
Рис. 3.5.7. Результат закрытия после открытия (полное восстановление формы)
234
Методы обработки изображений
Математическая морфология Серра (ММ)
Как видно из примера (рис. 3.5.6 и 3.5.7), последовательная комбинация от' крытия и закрытия обеспечила полное восстановление формы исходной геомет' рической фигуры. В заключение данного раздела рассмотрим особенности морфологической фильтрации изображений с круглым (дисковым) структурирующим элементом. На рис. 3.5.8–3.5.10 приведен результат открытия прямоугольного объекта круг' лым структурирующим элементом. Результат сравнения (вычитания) изображе' ний показывает, что после открытия форма объекта была специфическим образом искажена – углы прямоугольника оказались скругленными с радиусом закругле' ния, равным радиусу структурирующего элемента.
Рис. 3.5.8. Исходный объект
Рис. 3.5.9. Результат открытия (фильтрация с круглой маской: эффект округления углов)
Данный эффект естественным обра' зом следует из геометрического смысла операции открытия: результат открытия представляет собой объединение всех структурирующих элементов, целиком по' мещающихся внутри исходного объекта. Легко увидеть, что именно в углы прямоу' гольника дисковый структурирующий элемент никак не может поместиться це' ликом. В силу этого границу объекта пос' Рис. 3.5.10. Разность изображений ле открытия (закрытия) иногда удобно представлять как кривую, полученную путем «качения» структурирующего эле' мента по внутренней (внешней) границе исходного объекта.
235
ных изображений F⊂E2). Для обобщения операций морфологии на этот случай обычно вводят следующие понятия [7]. Тенью f называется множество U(f)⊂F×E, определяемое как U(f) = {(x,y)∈F×E|y≤f(x)}. (3.5.7) Поверхностью множества A⊆F ×E называется множество T(A): F→E, определя' емое в каждой точке как T[A](x) = max{y|(x,y)∈A}. (3.5.8) Связь между этими понятиями очевидна: T[U(f)] = f. Геометрическое представление те' ни функции и поверхности представ' лено на рис. 3.5.11. Теперь для интенсивного изобра' жения легко определить понятия ос' новных морфологических операций. Пусть F,K⊆EN–1, f: F→E, k: K→E. Тогда:дилатацией f по k называется (3.5.9) f⊕k = T[U(f)⊕bU(k)], Рис. 3.5.11. «Тень» функции и поверхность эрозией f по k называется «тени» fψk = T[U(f)ψbU(k)], (3.5.10) где ⊕b и ψb есть обычные бинарные операции над U(f),U(k)⊆EN. Другой способ вычисления эрозии и дилатации задается выражениями: f⊕k(x) = max{f(x–z)+k(z)}, Az∈K и (x–z)∈F, (3.5.11) fψk(x) = min{f(x+z)–k(z)}, Az∈K и (x+z)∈F. (3.5.12) Геометрическое представление эрозии и дилатации функции и поверхности проиллюстрировано на рис. 3.5.12 и 3.5.13.
Рис. 3.5.12. Полутоновая морфологическая эрозия
Рис. 3.5.13. Полутоновая морфологическая дилатация
Морфологические операции на полутоновых изображениях Естественный интерес представляет расширение основных операций и результа' тов морфологии на случай, когда изображение рассматривается как функция f: F→E, где F⊂EN–1, а f задает интенсивность изображения на F (для случая двумер'
Для полутоновых изображений существует аналог теоремы Матерона о пред' ставлении морфологических операторов в виде объединения зрозий. Кроме того, результаты здесь также могут быть представлены в двойственной форме, так как:
236
Методы обработки изображений
–(f⊕k) = (–f)ψk~, где k~(x) = k(–x), fψk = –((–f)⊕k~). Выражения для операций открытия и закрытия для полутонового случая пол' ностью эквивалентны формулам (3.5.5) и (3.5.6): f ° k=(fψk)⊕k, (3.5.13) f•k=(f⊕k)ψk (3.5.14) с учетом всех предыдущих выражений. Морфологическое выделение черт и объектов Выделение мелкоразмерных объектов, границ и характерных точек на изображе' нии является одной из главных областей применения ММ. В частности, характер' ными элементами являются «T»', «Y»' и «W»'соединения (на полутоновых изоб' ражениях), острые пики и глубокие впадины «рельефа изображения», мысы и «заливы», ступенчатые разрывы поверхности и т. д. Определим морфологическую границу Xm для множества X как разность расши' рения и сжатия X по сферическому структурирующему элементу Br: Xm = (X⊕Br) – (XψBr). (3.5.15) С топологической точки зрения, мы получим множество точек, окрестности которых пересекаются как с объектом X, так и с фоном (дополнением) XC. Введем категории точек морфологической границы: • гладкой поверхностью называется связное множество точек в Xm, которые имеют двумерную окрестность в Xm, то есть в каждой из этих точек сущест' вует непрерывная нормаль к поверхности; • сингулярной кривой называется кривая C⊆Xm, представляющая собой связ' ное множество точек, имеющих одномерную окрестность на Xm; • точки границы Xm, не принадлежащие ни гладкой поверхности, ни сингу' лярной кривой, называются сингулярными точками. Примером сингуляр' ных точек могут служить «T»', «Y»' и «W»'узлы. Детектор (3.5.15) обеспечивает хорошее обнаружение узлов и ступенчатых разрывов поверхности полутонового изображения. Однако для обнаружения пи' ков, впадин и острых углов необходим дру' гой алгоритм. Элементарные геометрические сообра' жения показывают, что операции расши' рения и сжатия позволяют обнаруживать пики и острые углы. Механизм обнаружения прост. Как уже отмечалось ранее, расшире' ние X дисковым (сферическим) структури' рующим элементом можно рассматривать как объединение всех дисков (сфер), вписан' Рис. 3.5.14. Принцип ных в изображение, а сжатие можно рассмат' морфологического обнаружения ривать как расширение по фону XC. Из рис. острых углов на бинарных 3.5.14 видно, что в точке острого угла раз' изображениях
Математическая морфология Серра (ММ)
237
ность между расширенным и сжатым изображением будет максимальна. Поэтому детектор острых углов можно определить как разность между открытием X и зак' рытием X: gXm = X ° B – X•B. (3.5.16) Структурирующий элемент, используемый для выделения черт, не обязан быть «сферическим» в точном смысле этого слова, поскольку масштаб изображе' ния по яркостной оси никак не связан с его геометрическим масштабом. Однако легко показать, что операции выделения черт при помощи ММ являются инвари' антными к поворотам в том и только том случае, когда структурирующий элемент имеет форму тела вращения вокруг оси, проходящей через точку с координатами (0,0). Поскольку результат применения морфологических операторов зависит только от формы структурирующего элемента, вращение изображения относи' тельно структурирующего элемента эквивалентно повороту на такой же угол (в обратном направлении) структурирующего элемента относительно изображе' ния. Тогда условием инвариантности операторов к повороту является эквивалент' ность структурирующего элемента самому себе при повороте относительно точки (0,0) на любой угол. Это выполняется только в том случае, когда структурирую' щий элемент имеет форму тела вращения. Габаритные размеры такого структурирующего элемента (диаметр носителя и высота) определяют масштаб «черт», выделяемых по описанной выше схеме. Математическая морфология и ее основные операции создают новую базу для применения метода нормализации фона (см. раздел 3.3). В этом случае использу' ются два структурирующих элемента В1 и В2. Элемент В1 конструируется таким образом, чтобы «подходить» даже к самым маленьким размерам объекта на изоб' ражении и в тоже время отсекать импульсный шум, элемент В2 имеет большие размеры апертуры и в состоянии подавить любой, даже самый большой по геомет' рическим размерам отклик объекта. Алгоритм нормализации фона выглядит в этом случае следующим образом: X’ = ((X ° B1)•B1) ° B2 × (X ° B1)•B1 (3.5.17) Для выбора класса и конкретной реализации алгоритмов предварительной об' работки, а также исследования их оптимальных параметров необходимо проведе' ние математического моделирования с учетом характеристик модельной и реаль' ной фоновой обстановки. Таким образом, в задачах инвариантного обнаружения на изображении границ, характерных точек и других черт, а также малоразмерных объектов в сложной шу' мовой обстановке могут применяться алгоритмы, основанные на использовании операторов математической морфологии со структурирующими элементами в форме тел вращения. Возможна масштабная настройка таких алгоритмов путем изменения размера структурирующих элементов. Морфологический спектр В различных областях, связанных с передачей и обработкой сигналов, нашли ши' рокое применение спектральные подходы, основанные на преобразовании Фурье
238
Методы обработки изображений
Математическая морфология Серра (ММ)
(см. раздел 3.2). В работах П. Марагоса сделана попытка по аналогии с преобразо' ванием Фурье ввести представления изображения в виде форморазмерного спек' тра, вычисляемого при помощи операций морфологии. Интересна также непос' редственная связь введенных спектров с операцией скелетизации изображения, давно и плодотворно используемой как в ММ, так и в других методах преобразо' вания и распознавания изображений. Рассмотрим с самых общих позиций преобразование Фурье. Оно содержит два этапа: • умножение одномерного сигнала S(t) на комплексную синусоиду e–iwt; • измерение площади под этим модифицированным сигналом S(t)e–iwt. Можно считать e–iwt некоторым «пробным образом», зависящим от частотного параметра W и выделяющим некоторую информацию (спектральный состав) из сигнала путем: модуляции; измерения преобразованного сигнала. Причем соб' ственной спектральной характеристикой «пробного образа» является импульс на соответствующей частоте W. Проведем аналогию с заменой: • S(t) → X – двумерный образ; • e–iwt → Bn – двумерный пробный элемент; • W → n – размерный (масштабный) параметр; • модуляция → морфологическая фильтрация ч с использованием структу' рирующего элемента Вn размером n. Далее для простоты будем рассматривать непрерывный бинарный случай, хотя все вводимые понятия распространены на дискретный бинарный и непре' рывный полутоновый случаи. Введем понятие размера множества В (заметим, что это понятие отличается от понятия размера, приведенного ранее). Пусть на плос' кости R2 дано некоторое выпуклое множество В, размер которого считается еди' ничным. Тогда множество rВ, имеющее относительно В размер r (r ∈ R), определя' ется как rB = {rB : b ∈ B}, r > 0. (3.5.18) Очевидно, форма rВ повторяет форму B. Рассмотрим компактное (связное) бинарное изображение . Определим образовый спектр (pattern spectrum) как функцию: множества X относительно выпуклого множества ,
(3.5.19)
, (3.5.20) где А(Х) – площадь Х и выражения (3.5.19) и (3.5.20) задают спектр соответственно на по' ложительной и отрицательной частях оси r. Пусть гВ есть rD'диск радиуса r. Убедимся в том, что спектральной характеристикой rD является импульс в точке r (как спектром e–iwt
Рис. 3.5.15. Последовательные этапы морфологической обработки при построении морфологического спектра с круглым структурирую щим элементом
239
является импульс в точке W) . В самом деле, так как X = rD – компактный диск, то существует максимальное р > 0, такое, что . При 0 < r < р имеем . Следовательно, функция является ступенчатой и ее произ' водная имеет один δ'импульс в точке r = р. Физический смысл спектра легко по' нять, если учесть, что
(см. выше). Это означает, что
есть
мера содержания X относительно rВ. Морфологический спектр содержит наряду с другими четыре основных вида информации об образе X: • неровность (шероховатость) поверхности относительно В, которой соот' ветствует нижняя часть спектра (r – мало); • существование длинных мысов или больших выступающих частей границы, содержащих SB, показывает наличие изолированных импульсов при r = S; • В'формность (В'образие) X, то есть максимальная степень содержания В в X может быть измерена с помощью PSx(p,B)/A(x); • отрицательная часть r'оси демонстрирует наличие больших импульсов, если существует значительная вогнутость (впадины или дыры) в X.
3.5.2. Операции математической морфологии в IMAQ Vision Функция IMAQ: Morphology Данный ВП (рис. 3.5.16) реализует большой набор различных морфологических операций.
Q Morphology Рис. 3.5.16. Функция IMA IMAQ
На вход IMAQ Morphology подаются: • исходное изображение Image Src; • шаблон выходного изображения Image Dst; • переключатель выбора формы маски (квадратная/шестиугольная) – Square/Hexa (Square); • тип морфологической операции; • структурирующий элемент Structuring Element; • число итераций Number of iterations (1), использующееся для эрозии и ди' латации;
240
Методы обработки изображений
• сообщение об ошибках error in (no error), полученных с выхода других вир' туальных приборов. Параметр «тип морфологической операции» предоставляет выбор из следую' щих процедур морфологической обработки: • медиана AutoM; • закрытие Close; • дилатация Dilate; • эрозия Erode; • морфологическое выделение контуров Gradient; • морфологическое выделение контуров внешних Gradient out; • морфологическое выделение контуров внутренних Gradient in; • хит'мисс трансформ (морфологическая нормализация фона) Hit miss; • открытие Open; • цикл семи последовательных операций закрытия–открытия PClose; • цикл семи последовательных операций открытия–закрытия POpen; • утолщение Thick; • утончение Thin. На выходе IMAQ Morphology возвращает изображение Image Dst Out, кото' рое записывается в Image Dst, если Image Dst подано на вход. В противном слу' чае результат Image Dst Out записывается в Image Src. Также на выходе IMAQ Morphology формируется сообщение об ошибках error out, возникающих в результате работы. На лицевой панели примера использования ВП IMAQ Morphology (рис. 3.5.17) в группе закладок слева (Tab Control Left) находятся: исходное изображение Source Image, загружаемое с помощью элемента управления Path, параметры мор' фологических фильтров Controls и изображение Dest Img (Binary), являющееся результатом бинаризации исходного изображения по порогу Range. Окно Re place Value устанавливает новое значение яркости для пикселей исходного изоб' ражения, яркость которых превышает заданный порог Range. В группу закладок справа (Tab Control Right) входят изображение Dest Img (Morphology), являю' щееся результатом морфологической фильтрации, и копия исходного изображе' ния Source Image для удобства сравнения результатов. Выход из программы осу' ществляется нажатием кнопки Stop. На закладке Controls (рис. 3.5.17) расположены: • переключатель выбора формы маски – Square/Hexa (Square); • маска структурирующего элемента Structuring Element, размер которой мож' но выбрать из Structuring Element Size (от 3×3 до 7×7). Создать структури' рующий элемент можно самостоятельно, редактируя содержимое маски. По завершению редактирования следует нажать кнопку Apply Structuring Element. При этом исходное изображение будет обработано выбранным морфологическим фильтром, использующим заданный структурирующий элемент; • окно ввода количества итераций Number of iterations (1); • меню выбора морфологических фильтров.
Математическая морфология Серра (ММ)
241
Q Morphology Рис. 3.5.17. Лицевая панель примера использования ВП IMA IMAQ Morphology. Результат двукратной дилатации
В данном примере на закладке Dest Img (Morphology) (Tab Control Right) находится изображение, полученное в результате двух итераций дилатации квад' ратным структурирующим элементом 5×5. Приведенные далее примеры обработки (рис. 3.5.18 и 3.5.19) были выполнены с использованием квадратного структурирующего элемента размером 5×5, пока' занного на рис. 3.5.17. На рис. 3.5.20 и 3.5.21 представлены результаты открытия Open и закрытия Close. На рис. 3.5.22 и 3.5.23 представлены результаты циклов семи последователь' ных операций открытия–закрытия POpen и закрытия–открытия PClose. На рис. 3.5.24–3.5.26 показаны результаты операций Gradient, Gradient out, Gradient in соответственно, а на рис 3.5.27 – результат операции Hit miss. На рис. 3.5.28 и 3.5.29 представлены результаты операций утолщения Thick и утончения Thin, выполненные маской 3×3. Для операции утолщения маска запол' нялась нулями с единицей в качестве центрального элемента маски, а для утонче' ния – единицами с нулем в центре маски. На рис. 3.5.30 представлена соответствующая блок'диаграмма для примера использования IMAQ Morphology. Внутри первого фрейма Структуры событий находятся: загрузка исходного изображения (IMAQ ReadFile), бинаризация (IMAQ Threshold), виртуальный прибор IMAQ Morphology, а также эквализация результирующего изображения IMAQ Equalize.
242
Методы обработки изображений
Математическая морфология Серра (ММ)
Рис. 3.5.18. Результат двукратной эрозии
Рис. 3.5.20. Результат открытия Open
Рис. 3.5.19. Результат обработки медианой AutoM
Рис. 3.5.21. Результат закрытия Close
243
244
Методы обработки изображений
Математическая морфология Серра (ММ)
Рис. 3.5.22. Результат циклов семи последовательных операций открытия–закрытия POpen
ent Рис. 3.5.24. Результат операций Gradi Gradient
Рис. 3.5.23. Результат циклов семи последовательных операций закрытия– открытия Pclose
ent out Рис. 3.5.25. Результат операций Gradi Gradient
245
246
Методы обработки изображений
Математическая морфология Серра (ММ)
ent in Рис. 3.5.26. Результат операций Gradi Gradient
Рис. 3.5.28. Результат применения функции Thick
Рис. 3.5.27. Результат применения функции Hit miss
Рис. 3.5.29. Результат применения функции Thin
247
248
Методы обработки изображений
Математическая морфология Серра (ММ)
249
• число итераций Number of iterations (1), использующееся для эрозии и ди' латации; • сообщение об ошибках error in (no error), полученных с выхода других вир' туальных приборов. Тип морфологической операции в данном случае может обозначать: • медиану AutoM; • закрытие Close; • дилатацию Dilate; • эрозию Erode; • открытие Open; • цикл семи последовательных операций закрытия–открытия PClose; • цикл семи последовательных операций открытия–закрытия POpen. На выходе IMAQ GrayMorphology возвращает изображение Image Dst Out, которое записывается в Image Dst, если Image Dst подано на вход. В противном случае результат Image Dst Out записывается в Image Src. Также на выходе IMAQ GrayMorphology формируется сообщение об ошибках error out, возникаю' щих в результате работы. На рис. 3.5.32 и 3.5.33 приводятся примеры работы ВП IMAQ GrayMorphology. Блок'диаграмма для примера использования ВП IMAQ GrayMorphology (рис. 3.5.34) в целом аналогична ранее рассмотренной блок'диаграмме для приме' ра использования ВП IMAQ Morphology. Рис. 3.5.30. Основной фрейм блокдиаграммы
Функция IMAQ: GrayMorphology Данная функция (рис. 3.5.31) реализует операторы полутоновой математической морфологии. В качестве входных параметров IMAQ GrayMorphology принимает: • исходное изображение Image Src; • шаблон выходного изображения Image Dst; • переключатель выбора формы маски (квадратная/шестиугольная) – Square/Hexa (Square); • тип морфологической операции; • структурирующий элемент Structuring Element;
Q Gra yMorphology Рис. 3.5.31. Функция IMA IMAQ GrayMorphology
Рис. 3.5.32. Результат двукратной полутоновой дилатации изображения структурирующим элементом 5×5
250
Методы обработки изображений
Методы анализа изображений
Рис. 3.5.33. Результат двукратной полутоновой эрозии изображения структурирующим элементом 5×5
4
4.1. Выделение и анализ связных областей В основе многих сложных процедур анализа изображения лежит выделение связ' ных областей или связных контуров, выполняемое на первом этапе анализа изоб' ражения. Связная область изображения – это, с одной стороны, тип объекта, все еще очень близко связанный с растровым изображением (связная область может быть представлена не только векторным списком, но и соответствующей бинар' ной растровой «маской»), и в то же время – это уже некая самостоятельная семан' тическая единица, позволяющая вести дальнейший геометрический, логический, топологический и любой другой анализ изображения. В данном разделе будут рассмотрены методы выделения связных областей на бинарных и полутоновых изображениях, а также системы яркостно'геометричес' ких признаков, используемых для описания областей изображения.
4.1.1. Выделение связных областей на бинарных изображениях Соседство и связность на цифровых изображениях
Рис. 3.5.34. Основной фрейм блокдиаграммы
Понятия «соседства» и «связности» тесно связаны с естественной топологией и геометрией дискретного цифрового изображения. Как мы уже отмечали ранее, каждый пиксель изображения с координатами (x,y) имеет восемь соседей, то есть примыкающих к нему (граничащих с ним) ближайших пикселей, составляющих прямоугольную окрестность 3×3 (табл. 4.1.1).
252
Методы анализа изображений
Выделение и анализ связных областей
Таблица 4.1.1. Прямоугольная окрестность 3×3 (x–1, y–1) (x–1, y) (x–1, y+1)
(x, y–1) (x , y ) (x, y+1)
(x+1, y–1) (x+1, y) (x+1, y+1)
При этом четыре пикселя (соседи по горизонтали и вертикали) являются бо' лее близкими соседями и находятся от центрального пикселя окрестности на рас' стоянии 1. Еще четыре пикселя (соседи по диагонали) являются менее близкими соседями и находятся от центрального пикселя окрестности на расстоянии √2. Соответственно в обработке изображений рассматриваются два вида соседства и два соответствующих им вида связности: • соседство «по кресту» и 4'связность; • соседство «по квадрату» и 8'связность. Чаще используется отношение 8'связности, при котором считается, что на прямоугольной решетке каждая точка изображения имеет восемь соседей. Связной областью изображения считается такая его область (множество то' чек), в которой: • все точки области имеют одинаковое значение (яркости или любого друго' го рассматриваемого признака); • между любыми двумя точками, принадлежащими данной области, суще' ствует непрерывный путь, состоящий из точек, также принадлежащих дан' ной области и являющихся при этом «соседями» в смысле заданного отно' шения соседства (8' или 4'связности). В случае анализа бинарного изображения первое условие означает, что рас' сматриваются отдельные связные области, из которых состоит «объект» или «фон». Ниже мы также будем рассматривать задачу сегментации полутоновых изображений, в результате которой изображение разбивается на несколько непе' ресекающихся связных областей. В этом случае связность областей понимается в чисто геометрическом (топологическом), а не яркостном смысле. Рассмотрим теперь два наиболее популярных алгоритма выделения связных областей на бинарных изображениях.
253
текущий размер массива 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. Двухпроходный алгоритм выделения связных областей
Метод «лесного пожара» Идея метода «выжигания области» или «метода лесного пожара» заключается в том, что область «поджигается» в одной точке, после чего каждая «подожжен' ная» точка, в свою очередь, «поджигает» всех своих соседей, имеющих ту же яр' кость. Уже «сгоревшие» точки вторично не «поджигаются». Таким образом, со' гласно определению связной области, в конце концов все точки связной области окажутся вовлеченными в этот процесс. Рассмотрим программно'алгоритмиче' скую реализацию этой идеи. Пусть дано изображение IM размера DimX×DimY и меточное изображение LAB такого же размера. Массив переменного размера RegionList содержит списки (массивы) точек, принадлежащих областям. Переменная RegionListSize содержит
Данный алгоритм также предназначен для выделения 4'связанных или 8'связан' ных областей. Идея его заключается в том, что единицей просмотра изображения является уже не отдельный пиксель, а связный отрезок строки (сегмент). При этом на первом проходе по изображению вновь обнаруженный связный сегмент помеча' ется либо новой оригинальной меткой – если он ни одним пикселем не касается какого'либо уже помеченного сегмента в предыдущей по ходу анализа строке, либо меткой той области, которой принадлежит граничащий с ним отрезок предыдущей строки. Такой алгоритм построчного просмотра изображения обеспечивает суще' ственно более высокое быстродействие по сравнению с описанным выше «стеко' вым» алгоритмом, однако в процессе пометки сегментов могут возникать так назы' ваемые коллизии, или «столкновения», меток. Это происходит в том случае, если
254
Методы анализа изображений
отрезок граничит одновременно с несколькими сегментами предыдущей строки, причем эти сегменты принадлежат разным областям (случай V'образных и Y'об' разных фигур). Для устранения таких коллизий используется второй проход по изображению. На втором проходе повторно размечаются те области, для которых на первом проходе были обнаружены коллизии и занесены в специальную таблицу эквивалентности пары индексов областей, подлежащих объединению. Рассмотрим алгоритмическую реализацию этого метода более подробно. Первый проход. Просматриваем содержимое изображения R столбец за столб' цом и присваиваем ненулевое значение v каждому ненулевому пикселю R(i,j). Ве' личина v выбирается в соответствии с номерами соседних пикселей, где свойство соседства показано на рисунке (соседи вне изображения R не рассматриваются). 1. Если все соседи – пиксели фона (со значением пикселя равным нулю), R(i,j) присваивается новый (на данный момент), неиспользованный номер. 2. Если имеется в точности один соседний пиксель с ненулевым номером, присваиваем этот номер пикселю R(i,j). 3. Если имеется больше, чем один ненулевой пиксель среди соседей, присваи' ваем номер любого одного из уже пронумерованных пикселей. Если номера любых соседей различаются (столкновение номеров), храним номера пары как равные. Равные пары храним в отдельной структуре данных (в таблице эквивалентности). Второй проход. Все пиксели области пронумерованы в течение первого прохо' да, но некоторые области имеют пиксели с различными номерами (в результате «столкновения» номеров). Все изображение просматриваем снова и перенумеро' вываем пиксели, используя информацию таблицы эквивалентности. Данный алгоритм единообразно реализуется и в случае 4', и в случае 8'связно' сти. Различия заключаются только в способе формирования маски опроса соседей (рис. 4.1.1). Поскольку оба описанных метода опираются на одно и то же определение связ' ной области, результаты их работы будут, естественно, одинаковы. Пример размет' ки связных областей на бинарном изображении показан на рис. 4.1.3 и 4.1.4. На меточном изображении все пиксели каждой связной области исходного изобра' жения помечены одним и тем же значением – уникальным индексом (номером) данной области.
Рис. 4.1.1. Маски обнаружения областей: слева – в случае 4связности, в центре – в случае 8связности, справа – случай «столкновения» номеров
Выделение и анализ связных областей
255
Рис. 4.1.2. Нахождение объектов в случае 8связности: (а), (б), (в) – шаги алгоритма. Таблица эквивалентности после шага (б): 2–5, 5–5, 2–4
Рис. 4.1.3. Исходное бинарное изображение
Рис. 4.1.4. Размеченные связные области на бинарном изображении
256
Методы анализа изображений
4.1.2. Методы сегментации полутоновых изображений Целью сегментации изображения в «широком смысле» является разбиение изоб' ражения на семантические области, которые имеют строгую корреляцию с объек' тами или областями наблюдаемой трехмерной сцены. В более узком смысле под сегментацией полутонового изображения понимают задачу разбиения плоскости кадра на ряд связных непересекающихся областей, каждая из которых обладает некоторой внутренней однородностью того или иного вида (например, однород' ной яркостью пикселей). Дадим формальное определение. Пусть вся область кадра обозначается как R. Тогда сегментацией изображения называется процесс разбиения R на такую совокупность связных областей {Ri}, i=1..n, что для них выполняются следующие основные условия: (а) R = U Ri, i = 1..n, (б) Ri ∩ Rj = ∅, i ≠ j, (в) Pred(Ri) = TRUE, i=1…n, (г) Pred(Ri ∪ Rj) = FALSE, i ≠ j, (4.1.1) где Pred(R) – булевский предикат однородности области в некотором заданном смысле. Первое условие данного выражения утверждает, что области разбиения цели' ком покрывают кадр изображения. Второе условие описывает тот факт, что обла' сти разбиения попарно не пересекаются. Третье условие требует, чтобы каждая область разбиения была однородной областью изображения в заданном смысле (например, в смысле максимально допустимой разницы значений яркости состав' ляющих ее пикселей). Наконец, четвертое условие требует, чтобы попарное объе' динение любых двух областей данного разбиения не удовлетворяло тому же усло' вию однородности. В самом деле, если объединение областей также является однородной областью, то эти две области на самом деле являются единой облас' тью, что и следует отразить в разбиении. Рассмотрим теперь основные методы сегментации изображений, используе' мые в современном машинном зрении.
Выделение и анализ связных областей
257
где g(i,j) – элемент результирующего бинарного изображения, f(i,j) – элемент ис' ходного изображения. Успех пороговой сегментации зависит от способа выбора порога. В разделе 3.1 мы рассматривали методы адаптивного выбора порога как функции глобальной или локальной гистограммы изображения. Существуют следующие основные виды пороговой сегментации. Диапазонная пороговая сегментация. Сегмент изображения с уровнями яркостей из заданного диапазона D считается «областью», или «фоном», в противном случае: g(i,j) = 1, для f(i,j)∈D, (4.1.3) g(i,j) = 0 в противном случае. Мультипороговая сегментация. Используется в том случае, если исходное изображение обладает не бимодальной, а мультимодальной гистограммой. В этом случае результирующее изображение не является бинарным: g(i,j) = 1, для f(i,j)∈D1, (4.1.4) g(i,j) = 2, для f(i,j)∈D2, g(i,j) = 3, для f(i,j)∈D3, ………………………… g(i,j) = n, для f(i,j)∈Dn, g(i,j) = 0, в противном случае. Адаптивная мультипороговая сегментация также рассматривалась ранее в разделе 3.1. На рис. 4.1.5–4.1.8 приводятся примеры такой сегментации. Методы слияния, разбиения и слияния/разбиения областей Слияние областей. Условия (4.1.1) фактически определяет некий итеративный алгоритм слияния областей, начинающийся с минимальных областей размером
Пороговая и мультипороговая сегментация Пороговая сегментация изображения по уровням яркости – простейший вид сег' ментации изображения. Этот метод основан на том, что многие объекты или обла' сти изображения характеризуются постоянной отражательной способностью или поглощением света на их поверхности. Отличительной чертой пороговой сегмен' тации являются вычислительная эффективность и возможность использования в системах реального масштаба времени. Пороговая сегментация выполняется следующим образом: g(i,j) = 1, для f(i,j) >= T, (4.1.2) g(i,j) = 0, для f(i,j) < T,
Рис. 4.1.5. Исходное изображение
Рис. 4.1.6. Адаптивная мультипороговая сегментация изображения по гисто грамме (три диапазона яркости)
258
Методы анализа изображений
Рис. 4.1.7. Исходное изображение
Выделение и анализ связных областей
Рис. 4.1.8. Адаптивная мультипороговая сегментация изображения по гистограм ме (пять диапазонов яркости)
в один пиксель, которые затем в повторяющихся циклах опроса изображения «сливаются» (объединяются) с соседними областями, если для объединенной об' ласти выполняется условие Pred(Ri) = TRUE. Условием останова такого алгорит' ма слияния служит выполнение всех четырех условий выражения. Это означает, что достигнут такой шаг процесса, на котором больше нельзя найти ни одной пары областей, которые можно было бы подвергнуть слиянию. Описанный выше метод приводит к качественным результатам сегментации. Основным его недостатком является то, что такая сегментация, начинающаяся с уровня отдельных пикселей, как правило, требует для своего осуществления зна' чительного количества времени. Причем большая часть времени тратится именно на начальных этапах работы алгоритма, когда размеры объединяемых областей малы, а количество вариантов объединения – велико. В связи с этим соблазнитель' ной является идея начать итеративный процесс анализа списка областей с некото' рого обоснованного начального приближения, которое сразу давало бы существен' но меньшее количество кандидатов. В качестве такого начального приближения могут выбираться, например, результаты выделения контуров оператором Марра (контуры оператора Марра всегда замкнуты, следовательно, как раз задают разбие' ние кадра на непересекающиеся области). Однако такая предварительная сегмента' ция (пресегментация) не гарантирует, что для всех предварительно выделенных областей будут выполняться условия Pred(Ri) = TRUE (ведь выделение предвари' тельных областей происходило не на базе Pred(Ri), а по другим критериям). В этом случае неудовлетворительные области вновь приходится подвергать разбиению. Таким образом, мы приходим к следующему алгоритму сегментации. Алгоритм 1. Слияние областей (общая структура): 1. Осуществить пресегментацию изображения на «стартовые» области ка' ким'либо неитеративным (однократным) методом.
259
2. Определить критерий слияния двух соседних областей. 3. Итеративно находить и объединять все пары соседних областей, удовлетво' ряющие критерию слияния. 4. Если на очередном шаге ни одной пары кандидатов на объединение не най' дено – остановиться и выйти из алгоритма. Различные методы слияния отличаются способом начальной сегментации изображения и критериями слияния. Итоговый результат слияния областей, как правило, существенно зависит от порядка опроса изображения. Разбиение областей – метод сегментации, противоположный слиянию. Разби' ение начинают с представления всего изображения как простой области, которая не всегда соответствует условию однородности. В процессе сегментации текущие области изображения последовательно расщепляются в соответствии с заданны' ми условиями однородности. Методы слияния и разбиения областей далеко не всегда приводят к одним и тем же результатам сегментации, даже если в них ис' пользуется один и тот критерий однородности. Слияние/разбиение областей. В большинстве случаев используется комбина' ция методов слияния и разделения. При этом часто используют пирамидальное представление изображения и области'квадранты. При этом элементы квадроде' рева областей соответствуют уровням пирамиды изображений. Процессы слия' ния и разбиения областей идут поочередно на каждой итерации. Если какая'либо область на каком'либо пирамидальном уровне неоднородна, она разделяется на четыре подобласти. Напротив, если на каком'либо уровне пирамиды наблюдают' ся четыре соседние области с приблизительно одинаковой величиной однородно' сти, они сливаются в простую область на более высоком уровне пирамиды. Процесс такой сегментации может быть понят как конструирование сегменти' рованного дерева квадрантов, где каждый лист узла представляет собой однород' ную область. Разделение и слияние соответствует удалению или построению частей сегментируемого дерева квадрантов. Методы слияния/разбиения, как правило, хранят информацию о соседних областях в виде соседствующих графов (или дру' гих подобных структур данных). Описанное дерево сегментации легко реализуемо программно. Алгоритм 2. Слияние/разбиение (рис. 4.1.9): 1. Провести начальную сегментацию областей, определить критерий одно' родности и пирамиду структуры данных. 2. Если какая'либо область R в пирамиде структуры данных неоднородна (Pred(R)=FALSE), разделяем ее на четыре дочерние области. Если любые четыре области, имеющие одинаковых родителей, могут быть слиты в про' стую однородную область, слияние областей осуществляется. Если нет больше областей, которые могли бы быть разделены или слиты на данном шаге, переходим к шагу (3). 3. Если имеются какие'либо две соседние области Ri, Rj (даже если они принадлежат различным уровням пирамиды или не имеют одних и тех же родителей), которые могут быть слиты в однородную область, объ' единяем их.
260
Методы анализа изображений
Выделение и анализ связных областей
261
Рис. 4.1.9. Разделение и слияние в иерархической структуре данных
Рис. 4.1.10. Сегментация с помощью дерева квадрантов
4. Производим слияние малых областей с самой большой подобной соседней областью; если необходимо, устраняем области с размерами менее задан' ных. На рис. 4.1.10 показана схема сегментации изображения при помощи дерева квадрантов. На рис. 4.1.11–4.1.16 приводятся примеры сегментации изображений методом слияния и методом слияния/разбиения. Как видно из приведенных примеров, ре' зультаты сегментации различными методами не всегда совпадают.
Рис. 4.1.11. Исходное изображение
Рис. 4.1.12. Результат сегментации изображения методом слияния
Рис. 4.1.13. Результат сегментации изображения методом слияния/разбиения
Рис. 4.1.14. Исходное изображение
4.1.3. Геометрическое описание выделенных областей В задачах распознавания образов для классификации и селекции выделенных об' ластей часто используются интегральные геометрические признаки. Обычно эти признаки задаются эвристически и характеризуют форму образа. К ним относят' ся следующие основные эвристики:
262
Методы анализа изображений
Выделение и анализ связных областей
263
Периметр образа равен сумме модулей элементарных векторов контура, со' единяющих два соседних элемента (по 8'связности).
где Р и Р1 – элементарные векторы, ориентированные соответственно по сетке и под углом 45°. Для вычисления значения признака F (формата) по контурным точкам образа строится матрица рассеяния Рис. 4.1.15. Результат сегментации изображения методом слияния
Рис. 4.1.16. Результат сегментации изображения методом слияния/разбиения
где • площадь образа; • положение центра тяжести образа; • положение центра тяжести образа, рассматриваемого как бинарный; • периметр образа; • отношение квадрата периметра к площади образа; • формат; • компактность; • периметр и площадь описанного прямоугольника минимальной площади; • отношение площади описанного прямоугольника к площади образа; • отношение квадрата периметра описанного прямоугольника к его площади; • формат описанного прямоугольника; • относительные длина и ширина образа. Площадь S считается как число ненулевых элементов образа. Координаты центра тяжести образа рассчитываются через статические мо' менты:
и находятся собственные числа этой матрицы:
Очевидно, что λ1,2 – действительные положительные числа (λ может обра' щаться в 0, если образ представляет собой прямую линию). Формат рассчитывается по формуле (для λ1,λ2):
Компактность рассчитывается по формуле:
где S – площадь образа, Su – площадь описанного прямоугольника, ориентирован' ного как эквивалентный эллипс. Для определения ориентации находятся собственные векторы матрицы рас' сеяния:
; что для бинарной матрицы имеет вид:
а для полутонового изображения:
Чтобы найти величины сторон описанного прямоугольника, ориентированного по собственным векторам, достаточно определить проекции образа на эти векто' ры. Величина проекции контурной точки образа на один из собственных векторов (пусть соответствующий λ2) определяется по формуле:
264
Методы анализа изображений
Подставляя значения собственных векторов, получаем:
Периметр и площадь минимального описанного прямоугольника рассчитывают' ся по следующим формулам: P3 = 2 × (T1 + T2); Su = T1 × T2, где Т1 и Т2 – стороны описанного прямоугольника. Отношение площади описанного прямоугольника к площади образа рассчитыва' ется по формуле:
Отношение квадрата периметра описанного прямоугольника к его площади рассчитывается по формуле:
Формат описанного прямоугольника:
Выделение и анализ связных областей
265
• моменты, инвариантные к изменению масштаба:
Действительно, при изменении масштаба в к раз значение всех централь' ных моментов изменится в кp+q+2 раз. Но так как все моменты имеют p + q = = const, то величина ηpq не изменится. • моменты, инвариантные к повороту: M1 = η02 + η20; М2 = а12 + 4η211; М3 = а22 + а42; М4 = а32 + а52; М5 = а2а3(а32 – 3а52) + а4а5(3а32 – а52); М6 = а1(а32 – а52) + 4η11а3а5; М = а4а3(а52 – 3а32) + а2а5(а32 – а52), где а1 = η20 – η02; а2 = η30 – 3η12; а3 = η30 + η12; а4 = 3η21 – η03; а5 = η21 – η03. Используются также и другие системы признаков.
4.1.4. Выделение и анализ связных областей в IMAQ Vision Функции выделения областей
Относительные длина и ширина:
Другой группой геометрических признаков являются моменты.
где Ω – образ в декартовой системе координат (x,y); B(x,y) – значение функции интенсивности (x,y). Для дискретного изображения имеем
Специальными приемами удается получить величины, инвариантные к сме' щению, изменению размера и повороту изображения: • моменты, инвариантные к смещению:
где xc, yc – координаты центра тяжести образа;
В терминах IMAQ Vision связная область называется «частицей» (particle). Опе' рация типа Threshold (см. главу 3) производит бинаризацию исходного изобра' жения, исходя из заданных значений минимального и максимального порогов. После этого значения пикселей становятся равными 0 – «фон» или 1 – «объект». Далее любой пиксель или группа примыкающих друг к другу ненулевых пиксе' лей, окруженная фоном, может быть выделена в качестве отдельной связной об' ласти при помощи следующей операции. Функция IMAQ: Label Функция IMAQ Label (разметка) – рис. 4.1.17 – осуществляет разметку связных областей уникальными идентификаторами, едиными для каждой области. При этом каждый пиксель данной связной области на выходном изображении содер' жит индекс (номер) данной области. Например, на рис. 4.1.19 слева видно, что каждый изолированный объект (связная область) приобрел свой уникальный
Q Label Рис. 4.1.17. Функция IMA IMAQ
266
Методы анализа изображений
Выделение и анализ связных областей
267
«цвет». При этом на 8'битном выходном изображении может быть промаркирова' но не более 255 объектов, на 16'битном – не более 65535 связных областей. Функцию IMAQ Segmentation Функцию IMAQ Segmentation (сегментация) – рис. 4.1.18 – применяют после функции IMAQ Label для того, чтобы определить области фона, «прилежащие» (наиболее близкие) к каждому из объектов. Данная функция осуществляет итеративное расширение областей (Dilate, см рис. 4.1.19 справа) до тех пор, пока не будет заполнено все «пустое» пространство фона. Блок'диаграмма приложения, демонстрирующего использование функций IMAQ Label и IMAQ Segmentation, представлена на рис. 4.1.20. Функции анализа и селекции областей Ниже описан ряд операций анализа связных областей, доступных в IMAQ Vision. Функция IMAQ: Count Objects Функция IMAQ Count Objects (подсчет объектов) – рис. 4.1.21 – позволяет не только найти количество объектов (связных областей) на изображении, но также осуществить их первичный отбор по нескольким простейшим параметрам.
Q Label Рис. 4.1.20. Блокдиаграмма примера, использующего функции IMA IMAQ Q Segmentatio n и IMA IMAQ Segmentation Q Segmentatio n Рис. 4.1.18. Функция IMA IMAQ Segmentation
Q Count Objects Рис. 4.1.21. Функция IMA IMAQ
Q Label (слева) Рис. 4.1.19. Пример применения функций IMA IMAQ n (справа) и IMA IMAQ Segmentation Q Segmentatio
В качестве параметров селекции объектов данной функции можно задавать такие параметры, как минимальная и максимальная площадь, порог бинаризации, знак контраста (являются объекты темными или светлыми) и некоторые другие. Данная функция также позволяет осуществить визуализацию результатов поиска путем наложения на исходное изображение дополнительных графических эле' ментов (рис. 4.1.22). Данная функция может вычислять следующие параметры объектов: • положение центра масс; • координаты описывающей рамки;
268
Методы анализа изображений
Выделение и анализ связных областей
269
Функция IMAQ: RejectBorder Функция IMAQ RejectBorder (рис. 4.1.24) позволяет удалять с изображения час' тицы, соприкасающиеся с его границами. На рис. 4.1.25 представлен пример работы этой функции. Блок'диаграмма данного примера представлена на рис. 4.1.26.
Q RejectBor der Рис. 4.1.24. Функция IMA IMAQ RejectBorder
Q Count Objects Рис. 4.1.22. Пример использования функции IMA IMAQ
Q RejectBor der Рис. 4.1.25. Пример работы функции IMA IMAQ RejectBorder der. Показаны: исходное изображение (слева), бинаризованное изображение (в центре), изображение после фильтрации краевых частиц (справа)
Функции IMAQ: Distance и Danielsson Q Count Objects Рис. 4.1.23. Блокдиаграмма примера применения ВП IMA IMAQ
• • • •
площадь; ориентацию (направление главной оси); формат (отношение сторон описывающего прямоугольника); число связных полостей («дырок») в объекте.
Функции IMAQ Distance и IMAQ Danielsson (определение расстояния) – рис. 4.1.27 – и IMAQ Danielsson (рис. 4.1.28) позволяют определять расстояние от каждой точки объекта до фона. У функции IMAQ Distance имеется входной параметр, который определяет, со сколькими соседними пикселями взаимодействует рассматриваемый. Возможные варианты 4 (square) и 6 (hexa). Для демонстрации результатов работы данных фун' кций в качестве исходного изображения был взят круг. Исходное изображение
270
Методы анализа изображений
Выделение и анализ связных областей
271
было бинаризовано и затем обработано ВП IMAQ Distance и IMAQ Danielsson. Результат представлен на рис. 4.1.29. Как видно, более точные результаты здесь дает функция IMAQ Danielsson. Именно ее рекомендуется использовать практи' чески во всех случаях, когда необходимо применение функций подобного рода. На рис. 4.1.30 приведена блок'диаграмма данного примера.
Рис. 4.1.26. Блокдиаграмма примера фильтрации краевых частиц
Q Distance Рис. 4.1.27. Функция IMA IMAQ
Q Dani elsso n Рис. 4.1.28. Функция IMA IMAQ Danielsso elsson
Рис.4.1.30. Блокдиаграмма примера использования функций IMA Q Distance и IMA Q Dani elsso n IMAQ IMAQ Danielsso elsson
e , Distance hexa Рис. 4.1.29. Результаты операций Distance squar square Q Dani elsso n и выполнения IMA IMAQ Danielsso elsson
QP article Filter 2 Рис. 4.1.31. Функция IMA IMAQ Particle
272
Методы анализа изображений
Выделение и анализ связных областей
273
Функция IMAQ: Particle Filter 2 Функция IMAQ Particle Filter 2 (фильтр частиц) позволяет выделять частицы согласно заданным критериям. Для того чтобы отсеять (или, наоборот, выбрать) соответствующие объекты, необходимо задать диапазон значений какого'либо се' лектирующего параметра или набора параметров. Например, используя функцию IMAQ Count Objects 2 (см. рис. 4.1.21), можно удалить группу карандашей, лежащих друг на друге (диапазон допустимых значе' ний площади областей – от 0 до 2000 пикселей). Результат удаления представлен на рис. 4.1.32, а блок'диаграмма – на рис. 4.1.33.
QP article Filter 2 Рис. 4.1.33. Блокдиаграмма примера для IMA IMAQ Particle QP article Filter 2 Рис. 4.1.32. Результат применения функции IMA IMAQ Particle
Функция IMAQ:Particle Analysis Функция IMAQ Particle Analysis (анализ частиц) – рис. 4.1.34 – позволяет вы' числять широкий набор параметров объекта. Продолжим рассмотрение уже знакомого изображения карандашей (см. рис. 4.1.22). В предыдущих упражнениях, промаркировав связные области, мы убедились, что на данном изображении существует некоторое количество изоли' рованных точек, «отдельных» частей карандашей, целый изолированный каран' даш и «слитная» группа карандашей. Для того чтобы рассортировать все эти объекты, можно воспользоваться ВП IMAQ Particle Analysis. Определим, напри' мер, координаты центра масс каждого объекта, а также их площади. На основе полученных данных (рис. 4.1.35), легко определить, где располагается группа ка' рандашей (первая строка, площадь – 7093), где изолированный карандаш (третья снизу строка, площадь – 1407), а где небольшие объекты малой площади, не име' ющие практического значения.
QP article Analysis Рис. 4.1.34. Функция IMA IMAQ Particle
Данная функция позволяет определять параметры объекта как в пикселях, так и в калиброванных метрических единицах. Ниже приводятся некоторые парамет' ры объектов, которые можно найти при помощи данной функции: • Х'координата центра масс; • У'координата центра масс; • Х'координата левого верхнего пикселя; • У'координата левого верхнего пикселя; • Хмин ограничивающего прямоугольника;
274
Методы анализа изображений
Выделение и анализ связных областей
275
IMA QP article Analysis Рис. 4.1.36. Блокдиаграмма примера измерений (IMA IMAQ Particle nalysis)
Q Quantify Рис. 4.1.37. Функция IMA IMAQ Рис. 4.1.35. Таблица измерений параметров объектов
• Умин ограничивающего прямоугольника; • Хмакс ограничивающего прямоугольника; • Умакс ограничивающего прямоугольника; • площадь объекта; • площадь полостей объекта; • периметр; • количество полостей объекта; • ориентация; • главная ось эквивалентного эллипса; • малая ось эквивалентного эллипса; • диагональ; • удлинение и др. Блок'диаграмма данного примера представлена на рис. 4.1.36. Функции сбора статистик по областям
• • • • • •
среднее значение яркости; дисперсия; информация о минимальном и максимальном значениях яркости; площадь области в калиброванных единицах; площадь области в пикселях; процентное отношение площади области, в которой проводились измере' ния, к общей площади изображения. В качестве входного параметра функция может принимать либо одну область изображения, заданную указателем мыши, либо, если присоединено меточное изображение (IMAQ Label), несколько областей (до 255), для которых будет про' изводиться расчет статистических параметров. В упражнении, блок'диаграмма которого приведена на рис. 4.1.40, рассматри' вается только одна область, причем ее задание производится интерактивным спо' собом при помощи функции IMAQ Select Rectangle (выбрать прямоугольник). Данная функция находится в палитре Machine Vision ⇒ Select Region of Interest. Окно выбора области интереса показано на рис. 4.1.38. Результат работы функ' ции IMAQ Quantify для данной области представлен на рис. 4.1.39, а блок'диа' грамма – на рис. 4.1.40.
Функция IMAQ: Quantify
Функция IMAQ: Centroid
Функция IMAQ Quantify (измерения) – рис. 4.1.37 – определяет следующий на' бор параметров заданной области изображения:
Функция IMAQ Centroid (центр тяжести) – рис. 4.1.41 – позволяет определить «центр масс» заданной области изображения.
276
Методы анализа изображений
Выделение и анализ связных областей
277
Рис. 4.1.40. Блокдиаграмма приложения, Q Quantify демонстрирующего возможности функции IMA IMAQ
Рис. 4.1.38. Выбор рабочей области
Q Centr oid Рис. 4.1.41. Функция IMA IMAQ Centro
Приведенный на рис. 4.1.43 пример использования данной функции по струк' туре сходен с предыдущим. Здесь используется следующий характерный прием. Поскольку одиночную точку сложно рассмотреть на полутоновом изображении (рис. 4.1.42), для визуализации найденного центра масс в данном примере вместо функции Overlay Point (наложить точку) используется функция Overlay Oval (наложить овал). В качестве входного параметра данная функция требует кластер из четырех элементов, задающий границы прямоугольника, в который будет впи' сан овал. Так как ситуация, когда из одной точки с целью лучшей визуализации необходимо сделать прямоугольник или квадрат, встречается довольно часто, ло' гично для этой цели создать отдельный ВП. Как раз такую функцию и выполняет ВП . Функция анализа связных контурных сегментов Функция IMAQ: GetPointsOnContour
Q Quantify Рис. 4.1.39. Отчет, выданный ВП IMA IMAQ
Функция IMAQ GetPointsOnContour (рис. 4.1.44) позволяет определить количе' ство наблюдаемых сегментов связных контуров и найти координаты составляю' щих их пикселей.
278
Методы анализа изображений
Выделение и анализ связных областей
279
Q GetP ointsO nCo ntour Рис. 4.1.44. Функция IMA IMAQ GetPo intsOnCo nContour
Q Centr oid Рис. 4.1.42. Пример применения IMA IMAQ Centro
Q Centr oid Рис. 4.1.43. Блокдиаграмма примера, использующего функцию IMA IMAQ Centro
На вход данной функции следует подавать контурное изображение, которое в рамках NI Vision может быть получено, например, при помощи функции IMAQ EdgeDetection (см. раздел 3.4.2). IMAQ GetPointsOnContour позволяет определить: • количество контуров на изображении; • является ли найденный контур замкнутым; • вес контура (сумму интенсивностей всех составляющих его пикселей); • информацию о каждом контурном пикселе. Информация о каждом контурном пикселе включает в себя: • координаты контура; • коэффициент криволинейности в данной точке сплайна третьего порядка, построенного на точках данного контура; • расстояние от пикселя до сплайна. Пример работы данной функции представлен на рис. 4.1.45, блок'диаграмма – на рис. 4.1.46. В данном упражнении из соображения большей наглядности на вход функции ВП IMAQ GetPointsOnContour подается бинаризованное контур' ное изображение.
Рис. 4.1.45. Исходное изображение (слева), контурное изображение (в центре) Q GetP ointsO nCo ntour (справа) и результат работы функции IMA IMAQ GetPo intsOnCo nContour
280
Методы анализа изображений
Выделение геометрических примитивов
281
совании участвовали две точки (концы первого отрезка), и в результате процеду' ры голосования победила та точка, которая набрала максимум голосов (в данном случае – два, в отличие от остальных точек плоскости, получивших 0 или 1 голос). При этом форма «голосующей кривой» для каждой точки определялась нашими априорными знаниями о геометрических характеристиках искомого объекта (в данном случае – заданной длиной сторон треугольника). Рассмотрим теперь, как эта идея может быть реализована в случае, когда тре' буется найти тот или иной геометрический примитив, заданный аналитическим уравнением, и при этом на изображении имеется не две и не три, а значительное количество голосующих контурных точек. Преобразование Хафа для поиска прямых Классическое преобразование Хафа предназначено для выделения на бинарном изображении прямых линий. Оно основывается на использовании пространства параметров, в котором и производится поиск прямых. Наиболее распространены следующие параметрические уравнения прямых: Рис. 4.1.46. Блокдиаграмма примера, nCo ntour Q GetP ointsO демонстрирующего использование IMA IMAQ GetPo intsOnCo nContour
4.2. Выделение геометрических примитивов 4.2.1. Методы выделения геометрических примитивов на основе преобразования Хафа Одним из наиболее эффективных методов поиска аналитически заданных прими' тивов является на сегодня группа методов, основанных на идее преобразования Хафа (Hough). Основная идея преобразования Хафа сходна с идеей хорошо знакомого нам по курсу школьной геометрии метода «общих геометрических мест». Вспомним, на' пример, задачу построения треугольника по трем его заданным сторонам. При этом вначале произвольным образом строится одна сторона треугольника, а затем проводятся две окружности с радиусами, равными длине соответственно второй и третьей сторон треугольника и центрами, совпадающими с концами первой пост' роенной стороны. Эти окружности являются «геометрическим местом точек», в которых могли бы заканчиваться искомые стороны треугольника. Для всех то' чек левой окружности выполняется условие «расстояние от центра равно длине второй стороны». Для всех точек правой окружности выполняется условие «рас' стояние от центра равно длине третьей стороны». Там, где окружности пересека' ются, выполняются оба условия: таким образом, это и есть искомая третья верши' на треугольника – «общее геометрическое место». Обобщая эту методику геометрического построения, можно сказать, что было осуществлено «голосование» в пользу возможного положения вершины, в голо'
Y = kX + b;
(4.2.1)
Xcos(θ) + Ysin(θ) = ρ.
(4.2.2)
Однако, поскольку прямые на плоскости характеризуются двумя параметра' ми, пространство параметров всегда будет иметь размерность два. Классическое преобразование Хафа использует параметры (ρ,θ) уравнения (4.2.2). Пусть контурное изображение рассматривается как множество точек (x,y) в исходном пространстве Е = (X,Y). Множество прямых, проходящих через каж' дую точку (x,y) может быть изображено как множество точек (ρ,θ) в пространстве {ρ,θ}. Функция отображения точки в пространстве Хафа называется «функцией отклика». Идея преобразования Хафа состоит в том, что для каждой точки пространства параметров суммируется количество голосов, поданных за нее, то есть число то' чек исходного пространства, порождающих отклики в пространстве параметров, проходящих через данную точку (ρ,θ). Здесь используется тот факт, что любые две синусоиды в пространстве параметров пересекутся в точке (ρ,θ) только тогда, когда порождающие их точки в исходном пространстве лежат на прямой, описы' ваемой уравнением Xcos(θ) + Ysin(θ) = ρ с параметрами (ρ,θ). Введенная таким образом функция А(ρ,θ) называется аккумуляторной функцией, причем абсолют' ное значение ее в точке (ρ,θ) равно числу точек контурного препарата, лежащих на соответствующей прямой в исходном пространстве изображения. В том случае, когда на изображении представлено m прямых, аккумуляторная функция A(ρ,θ) будет иметь ровно m локальных максимумов в точках, соответ' ствующих имеющимся прямым. Таким образом, для обнаружения прямых на ис' ходном изображении достаточно найти все значительные локальные максимумы аккумуляторной функции.
282
Методы анализа изображений
Выделение геометрических примитивов
283
зование этого метода при анализе контурных препаратов, а также – точеч' ных паттернов. На рис. 4.2.3 приводится пример анализа преобразования Хафа в задаче выде' ления штрихового кода. Здесь интересно то, что предметом поиска является уже не изолированный максимум пространства Хафа, соответствующий отдельной линии (например, линия 3 на рис. 4.2.2). Прямоугольному штриховому коду в пространстве Хафа соответствует определенное «плато», обнаружив границы которого, можно определить границы штрихового кода на изображении (линии 1 и 2 на рис. 4.2.2).
Рис. 4.2.1. Процедура голосования преобразования Хафа
Как правило, A(ρ,θ) вычисляется не для каждой точки пространства парамет' ров, а для каждой «ячейки аккумулятора», то есть некоторой прямоугольной об' ласти, на которые разбивается пространство параметров, и размер которых огра' ничивает точность вычислений половинным значением дискреты разбиения по каждому из параметров. Инвариантность преобразования Хафа к сдвигу, масштабированию и поворо' ту вытекает непосредственно из определения. Более того, поскольку прямые ли' нии при любых проективных преобразованиях трехмерного пространства всегда переходят только в прямые линии (в вырожденном случае – в точки), преобразо' вание Хафа позволяет обнаруживать линеаменты инвариантно не только к аф' финным преобразованиям плоскости, но и к группе проективных преобразований в пространстве. Это дает возможность использовать преобразование Хафа для робастного детектирования трехмерных объектов, контуры которых полностью или частично описываются линеаментами. Легко убедиться, что в смысле результата преобразование Хафа эквивалентно интегрированию контурного изображения вдоль всех возможных прямых. Это обусловливает его фильтрующие свойства и определяет высокую степень помехо' защищенности. Это замечание в полной мере относится и к обобщенному преоб' разованию Хафа (GHT), которое будет описано в следующем подразделе. Эффективность преобразования Хафа, по сравнению с согласованной фильт' рацией, связана с двумя основными факторами: • удачный выбор параметров. Здесь использован тот факт, что при проектив' ных преобразованиях прямая всегда переходит в прямую. В связи с этим сформировано пространство параметров низкой размерности (Dim = 2); • однократное использование входной информации. Каждый пиксель изоб' ражения опрашивается только один раз. При этом дальнейшие вычисления производятся только для пикселей, несущих полезную информацию (в дан' ном случае – контурных). Отсюда непосредственно следует, что вычисли' тельная эффективность преобразования Хафа тем выше, чем меньше число пикселей, несущих полезную информацию, по сравнению с площадью изображения. Это обусловливает, в частности, преимущественное исполь'
Рис. 4.2.3. Пример анализа преобразования Хафа в задаче поиска штрихового кода. Аккумулятор Хафа Рис. 4.2.2. Исходное изображение штрихового кода
Преобразование Хафа для поиска окружностей Описанный в предыдущем разделе алгоритм преобразования Хафа будет рабо' тать совершенно аналогично не только при любом другом выборе параметров прямых, но и будучи примененным к обнаружению любой другой кривой, описы' ваемой на плоскости некоторым числом параметров, что повлияет лишь на содер' жание и размерность пространства параметров. Например, при поиске окружностей заданного радиуса R мы можем считать, что имеем дело с двухпараметрическим семейством кривых (x – x0)2 + (y – y0)2 = R2, и производить поиск максимума аккумуляторной функции A(x,y) в пространстве параметров (x,y). Заметим, что пространство параметров в этом случае практи' чески совпадает с исходным (x,y). Рассмотрим сначала алгоритм обнаружения окружностей заданного радиуса, не использующий ориентацию нормали в контурных точках. Очевидно, что набор центров всех возможных окружностей радиуса R, проходящих через заданную точку, образует окружность радиуса R вокруг этой точки. Таким образом, функ' ция отклика для поиска окружностей известного размера представляет собой ок'
284
Методы анализа изображений
ружность такого же размера с центром в голосующей точке. Максимум аккумуля' тора соответствует положению центра окружности на изображении. Опишем теперь алгоритм обнаружения окружностей заданного радиуса, ис' пользующий ориентацию нормали в голосующих контурных точках. Первым шагом процесса является обнаружение пикселей края, окружающих периметр объекта. Для каждого краевого пикселя используется положение и ориентация контура с целью оценки центра кругового объекта радиуса R путем движения на расстояние R от краевого пикселя в направлении его нормали. Если эту операцию повторять для каждого краевого пикселя, будет найдено множество положений предполагаемых точек центра, которое может быть усреднено для определения точного местонахождения центра. Эти процессы могут выполняться в простран' стве изображения или в некотором абстрактном параметрическом пространстве, которое локально конгруэнтно пространству изображения, посредством чего эко' номится память и объем вычислений. Если радиус окружности является неизвестным или переменным, необходимо включить R в качестве дополнительной переменной в параметрическое простран' ство: тогда процедура поиска пика должна определить радиус, так же как и поло' жение центра, путем рассмотрения изменений вдоль третьего измерения парамет' рического пространства. Если размер обнаруженной окружности нас не интересует и требуется обнару' жить только ее центр, то можно обойтись и без увеличения размерности простран' ства параметров. Пусть для каждого возможного направления на «центр» контур' ная точка голосует не точкой на расстоянии R, а лучом в этом направлении. Таким образом, окажутся задействованными все возможные положения «центра» при любом масштабе объекта, и это позволит искать окружности независимо от их ра' диуса. На втором этапе, после обнаружения потенциальных центров окружности, можно повторно обратиться к изображению и уточнить радиус окружностей с центрами в найденных точках. Разработаны также эффективные модификации преобразования Хафа для вы' деления эллипсов и других известных видов аналитических кривых. Анализ аккумулятора при поиске геометрических примитивов Обычно используются два основных метода анализа пространства параметров. Первый метод заключается в непосредственном поиске фиксированного числа локальных максимумов (одного глобального максимума) в пространстве пара' метров. При этом возможны различные способы отыскания таких максимумов. Второй метод предполагает пороговую сегментацию аккумуляторной функ' ции (или ее проекций, как в методе латеральных гистограмм) и последующий ана' лиз связных областей пространства параметров. Очевидно, что оба эти подхода в некотором смысле эквивалентны, так как, выбирая порог равным значению ми' нимального локального максимума, мы получим при помощи второго метода то же, что и при использовании первого. Однако остается проблема оптимального выбора порога для конкретного изображения.
Выделение геометрических примитивов
285
Кроме того, очевидно, что короткие линии (отрезки кривых) дадут относи' тельно низкие пики аккумуляторной функции по сравнению с длинными. Поэто' му они будут обнаружены лишь в том случае, когда «априори» (до постройки по' рога) известно, что они присутствуют на изображении. Рассмотрим способ анализа аккумуляторной функции, исключающий поня' тие порога из рассмотрения. Основная идея этого метода заключается в том, что на каждом этапе анализа ведется поиск одного глобального максимума аккумуля' торной функции, после чего из всех ячеек аккумулятора вычитаются «вклады» всех тех точек исходного изображения, которые принадлежат кривой, соответ' ствующей обнаруженному максимуму, и вновь повторяют поиск. Практические результаты применения этого метода свидетельствует о его большей, по сравне' нию со стандартными методами, чувствительности к небольшим отрезкам (вы' боркам) и в то же время – о высокой робастности и устойчивости по отношению к шуму. Когда речь идет о сложных объектах, то преобразование Хафа и различные его модификации применяются на этапе выделения черт, после чего производится «сборка» возможных объектов, исходя из их структурного описания. Такой под' ход называется «иерархическим анализом».
4.2.2. Выделение геометрических примитивов в IMAQ Vision Выделение прямых линий Функции IMAQ: Find Vertical Edge и Find Horizontal Edge Ранее мы уже познакомились с двумя функциями, позволяющими определять границы в профиле линии (IMAQ Simple Edge и IMAQ Edge Tool). Но на практи' ке чаще бывает необходимо определить границы объекта на всем его протяжении. Для этого в NI Vision используется ВП IMAQ Find Vertical Edge (найти верти' кальную границу) – рис. 4.2.4. Также существует функция IMAQ Find Horizontal Edge (найти горизон' тальную границу). Поиск вертикальной (горизонтальной) границы осуществля' ется построением набора горизонтальных (вертикальных) отрезков в заданной области с определением в каждом из них граничных точек (точек перепада ярко' сти), аналогично тому, как это делается в IMAQ Edge Tool. После этого по найден'
Q Find V ertic al Edge Рис. 4.2.4. Функция IMA IMAQ Vertic ertical
286
Методы анализа изображений
Выделение геометрических примитивов
287
Рис. 4.2.5. Результат работы примера, Q Find V ertic al Edge использующего ВП IMA IMAQ Vertic ertical
ному набору «граничных» точек строится единая пря' мая линия, которая и считается искомой границей. На входе функции необходимо указать прямоу' гольную область (рис. 4.2.5), в которой должен про' изводиться поиск границы. Можно также задать па' раметры искомой границы: контрастность, ширину фильтра (количество точек окрестности, по которым ищется граница), крутизну, а также интервал между соседними параллельными отрезками, используемы' ми для обнаружения границы. На выходе функция выдает: • массив координат точек, лежащих вдоль гра' ницы; • начальную и конечную точки найденной прямой; • оценку прямолинейности границы.
Q Fit Line Рис. 4.2.7. Функция IMA IMAQ
При этом данная функция строит прямую не по всем точкам, а только по тем, которые удовлетворяют указанным параметрам. На выходе ВП IMAQ Fit Line можно получить: • коэффициенты уравнения аппроксимирующей прямой; • начальную и конечную точки найденной прямой; • СКО заданного набора точек от найденной прямой. Так как процесс аппроксимации является многошаговым, на входе функции необходимо задать максимальное число итераций, после которого процесс будет прекращен. Если за это количество шагов прямая, удовлетворяющая заданным условиям, так и не будет найдена, то значение Valid Fit на выходе будет равно FALSE. В случае успеха на выход функции также выдается массив номеров точек, по которым была построена прямая. На рисунке 4.2.8 представлен пример работы данной функции. Зеленым обо' значены неиспользованные точки, красным – использованные. Исходный набор точек (рис. 4.2.9) можно получить с помощью функции IMAQ Rake, описанной ниже.
Рис. 4.2.6. Блокдиаграмма примера применения Q Find V ertic al Edge Vertic ertical функции IMA IMAQ
Функция IMAQ: Fit Line Функция IMAQ Fit Line (рис. 4.2.7) позволяет аппроксимировать заданный на' бор точек прямой линией. При этом можно задавать следующие ограничения: • Pixel Radius – наибольшее возможное отклонение точки от прямой; • Minimum Score – нормированный параметр, оценивающий насколько хоро' шо по набору точек можно провести прямую; • Maximum Iterations – максимальное число итераций.
Q Fit Line Рис. 4.2.8. Пример работы функции IMA IMAQ
288
Методы анализа изображений
Выделение геометрических примитивов
289
Рис. 4.2.12. Блокдиаграмма примера, демонстрирующего возможности IMA Q Find Cir cular Edge IMAQ Circular Рис. 4.2.9. Блок диаграмма примера, Q Fit Line демонстрирующего использование ВП IMA IMAQ
Выделение окружностей и эллипсов Функция IMAQ: Find Circular Edge Функция IMAQ Find Circular Edge (определение границы окружности) – рис. 4.2.10 – позволяет найти на изображении край круглого объекта. Ее парамет' ры сходны с параметрами предыдущей функции.
Рис. 4.2.11. Пример определения границы окружности функцией IMA Q Find Cir cular Edge IMAQ Circular
Помимо описанных выше ВП, выполняющих поиск прямолинейных и круговых границ, суще' ствует также ВП IMAQ Find Concentric Edge , отличающийся способом построения опорных линий: в этой функции в качестве опорных ли' ний для поиска точек перепада яркости исполь' зуются концентрические окружности.
Функция IMAQ: Find Circles Функция IMAQ Find Circles (рис. 4.2.13) позволяет найти окружности на изобра' жении.
Q Find Cir cular Edge Рис. 4.2.10. Функция IMA IMAQ Circular
Для вызова данной функции необходимо также задать параметры окружности или сектора (части окружности), в которых будет производиться поиск границы. Выходными значениями функции являются: • массив координат граничных точек; • центр найденной окружности; • радиус найденной окружности; • оценка отклонения найденного контура от идеальной окружности. Пример работы функции представлен на рис. 4.2.11. Блок'диаграмма соответ' ствующего упражнения приводится на рис. 4.2.12.
Q Find Cir cles Рис. 4.2.13. Функция IMA IMAQ Circles
В качестве входных параметров этой функции можно задать минимальный и максимальный радиусы искомых окружностей. На выходе функция, помимо чис' ла найденных окружностей, возвращает их координаты центров и радиусы. На рис. 4.2.14 представлен результат работы ВП IMAQ Find Circles. Соответ' ствующая блок'диаграмма приведена на рис. 4.2.15.
290
Методы анализа изображений
Выделение геометрических примитивов
291
Q Fit Cir cle 2 Рис. 4.2.16. Функция IMA IMAQ Circle
Рис. 4.2.14. Поиск окружностей Q Find Cir cles с использованием функции IMA IMAQ Circles
Принцип действия данной функции сходен с принципом действия рассмотренного ранее ВП IMAQ Fit Line. При этом имеется возможность принудительного использования всех входных точек при построении окружности. Для этого в поле Reject Outliers (отклонить точки, лежа' щие вне заданных границ) необходимо устано' вить значение FALSE. На рис. 4.2.17 зеленым цветом обозначены точки из исходного набора Radial Points, не ле' жащие на полученной окружности, но внесшие свой вклад в ее построение (входное значение Reject Outliers – FALSE). Красным цветом вы' делены точки, использованные для построения окружности. В выходной массив Indexes of Points Used передаются порядковые номера (индексы) этих точек из входного массива Ra dial Points. Новый массив координат точек, вы' деленных красным, построен с помощью ВП Index Array (рис. 4.2.18). Выделение линий, близких к эллипсу Функция IMAQ: Fit Ellipse 2
Q Find Cir cles Рис. 4.2.15. Блокдиаграмма примера, использующего IMA IMAQ Circles
Функция IMAQ: Fit Circle 2 Функция IMAQ Fit Circle 2 (рис. 4.2.16) позволяет аппроксимировать заданный набор точек окружностью. При этом определяются следующие параметры окружности: • координаты центра; • радиус; • периметр; • площадь • оценка отклонения полученной окружности от идеальной.
Рис. 4.2.17. Построение окружности функцией IMA Q Fit Cir cle 2 IMAQ Circle
Помимо IMAQ Fit Line и IMAQ Fit Circle 2 в палитре инструментов IMAQ есть функция Fit Ellipse 2 (рис. 4.2.19), которая позволяет аппроксимировать набор точек эллипсом. Ее входные параметры идентичны IMAQ Fit Circle 2, а выходные отличаются только тем, что вместо радиуса функция IMAQ Ellipse 2 выдает координаты нача' ла и конца большой и малой осей аппроксимирующего эллипса. Выделение линий, близких к прямым Функция IMAQ: Rake Функция IMAQ Rake (грабли, гребенка) – рис. 4.2.20 – позволяет найти гранич' ные точки в заданной с помощью ROI Descriptor вертикальной области изобра' жения.
292
Методы анализа изображений
Выделение геометрических примитивов
293
а в поле Process – тип поиска (определяется либо только первый перепад яркости в направлении поиска, либо первый и последний, либо осуществляется поиск всех границ) – рис. 4.2.21. Также возможно получать координаты только последней най' денной границы. Для этого на вход ВП в поле Process (тип поиска) нужно подать значение Get All Edges (поиск всех границ), а на выходе снимать значения только с терминала Last Edges (последний найденный перепад яркости). На выходе функ' ции формируются списки координат границ (First Edges, Last Edges, All Edges) и опорных линий (Line Coordinates), а также массив, содержащий номера опорных линий, на которых были найдены границы (Lines with Edges).
Рис. 4.2.18. Блокдиаграмма примера, Q Fit Cir cle 2 демонстрирующего работу функции IMA IMAQ Circle
Q Ellipse 2 Рис. 4.2.19. Функция IMA IMAQ
Q Rake Рис. 4.2.21. Поиск граничных точек с помощью ВП IMA IMAQ
Выделение линий, близких к окружностям Функция IMAQ: Concentric Rake
Q Rake Рис. 4.2.20. Функция IMA IMAQ
При этом границы объекта ищутся на некотором наборе отрезков горизонтальных или вертикальных параллельных опорных линий, проведенных через данную об' ласть с шагом (в пикселях), заданным во входном терминале Step Size (рис. 4.2.22). Функция Rake позволяет задавать в поле Scan Detection одно из четырех направ' лений поиска (слева направо или справа налево, или сверху вниз, или снизу вверх),
ВП IMAQ Concentric Rake (рис. 4.2.23) полностью аналогичен ВП IMAQ Rake за исключением того, что опорные линии строятся не как параллельные линии в за' данной прямоугольной области, а как концентрические окружности в заданном круговом секторе. Результат выполнения функции IMAQ Concentric Rake представлен на рис. 4.2.24, а блок'диаграмма к данному примеру приведена на рис. 4.2.25. Функция IMAQ: Spoke Функция IMAQ Spoke (колесная спица) – рис. 4.2.26 – позволяет найти границы вдоль радиальных линий, проведенных в заданной кольцевой области на изобра' жении.
294
Методы анализа изображений
Q Rake Рис. 4.2.22. Блокдиаграмма примера для функции IMA IMAQ
Выделение геометрических примитивов
295
Рис. 4.2.25. Блокдиаграмма приложения, Q Co ncentric Rake демонстрирующего использование функций IMA IMAQ Concentric
Q Co ncentric Rake Рис. 4.2.23. Функция IMA IMAQ Concentric Q Spoke Рис. 4.2.26. Функция IMA IMAQ
Q Co ncentric Rake Рис. 4.2.24. Пример использования функции IMA IMAQ Concentric
Принцип действия данного ВП в целом анало' гичен ВП IMAQ Concentric Rake (рис. 4.2.27), однако, отличается тем, что опорные линии яв' ляются радиусами (что отражено в названии ВП IMAQ Spoke) заданного кольца или сектора кольца. Величина угла на входном терминале Step Size определяет частоту проведенных ради' альных опорных линий. Направление поиска Рис. 4.2.27. Пример применения границ вдоль опорных линий (к центру или от Q Spoke операции IMA IMAQ центра заданной кольцевой области) указывает' ся в поле Scan Direction. Блок'диаграмма, иллюстрирующую работу IMAQ Spoke, представлена на рис. 4.2.28.
296
Методы анализа изображений
Обнаружение объектов, заданных эталонами
297
Пусть дано n эталонных изображений {gi}, i = 1,..,n, каждое из которых соответ' ствует i'му классу. Отнесение вновь предъявляемого фрагмента изображения f к некоторому классу j может осуществляться, например, по методу минимального расстояния до соответствующего эталона: (4.3.2) Этот простейший метод имеет два основных недостатка: • критерий обнаружения зависит от линейных размеров эталона и изображе' ния; • критерий обнаружения не инвариантен даже к простейшим фотографичес' ким преобразованиям яркости вида f’ = af + b. Более приемлемым поэтому является использование корреляционной метри' ки, а именно – нормированного коэффициента корреляции. Q Spoke Рис. 4.2.28. Блокдиаграмма примера применения функции IMA IMAQ
(4.3.3)
4.3. Обнаружение объектов, заданных эталонами 4.3.1. Методы обнаружения объектов, заданных эталонами В этой группе методов предполагается, что для каждого класса объектов известно одно или несколько эталонных изображений. На основе этой информации необ' ходимо классифицировать каждое вновь предъявляемое изображение. Корреляционное обнаружение Традиционная техника сравнения изображения с эталоном основывается на рас' смотрении изображений как двумерных функций яркости (дискретных двумер' ных матриц интенсивности). При этом измеряется либо расстояние между изоб' ражениями, либо мера их близости. Как правило, для вычисления расстояний между изображениями использует' ся следующая формула: (4.3.1) где f(x,y), g(x,y) – функции интенсивности X'апертуры зоны поиска; величина α∈[1,∞] определяет характеристики используемой метрики. Очевидно, что при α = 2, это выражение описывает обычное евклидово расстояние между изображе' ниями, понимаемыми как векторы, принадлежащие пространству L2(x,y) на поле зрения Х'функций с интегрируемым квадратом.
где f0, g0 – средние значения интенсивности для изображений соответственно f и g. Нормированный коэффициент корреляции обладает следующими хорошо из' вестными свойствами. • –1 ≤ k(f,g) ≤ 1, f,g; • (k(f,g) = 1) ⇔ (g = af + b; a>0, b); • (k(f,g) = –1) ⇔ (g = af + b; a<0, b). Последний случай, как правило, называют «обратным контрастом». Пусть, как и ранее, дано n эталонных изображений {gi}, i = 1,..,n, каждое из кото' рых соответствует i'му классу. Обнаружение фрагмента изображения f по методу максимальной корреляционной связи осуществляется тогда по закону: (4.3.4) После этого, на основании полученного значения максимальной корреляции, может проверяться достоверность детектирования. Если k(f,gi) ≥ kmin, то обнару' жение признается достоверным. В противном случае объект считается нераспоз' нанным. Теоретическим обоснованием применения корреляционного метода обнаружения является его строгая оптимальность для обнаружения детермини' рованного сигнала в белом шуме с гауссовым распределением яркостей [9]. Важные недостатки корреляционных схем обнаружения проявляются в при' сутствии радиометрических (яркостных) и особенно геометрических искажений текущего изображения по сравнению с эталонными. Наблюдается быстрое умень' шение корреляционной связи при ракурсных искажениях. Особенно критичными являются повороты изображений.
298
Методы анализа изображений
Обнаружение объектов, заданных эталонами
Морфологический подход Ю. П. Пытьева
Множество изображений «той же формы» имеет вид:
Дальнейшим развитием идей корреляционного обнаружения с использованием эталонов является морфологический проекционный подход, предложенный Ю. П. Пытьевым [62]. Суть его заключается в следующем. Пусть изображения являются элементами гильбертова пространства изобра' жений f∈L2x, где х – поле зрения. Тогда можно говорить о норме изображения ||f|| и расстоянии между изображениями, равном ||f1 – f2||, где норма понимается как (4.3.5) Далее, пусть задано некоторое выпуклое и замкнутое подмножество изображе' ний Z∈L2x. Тогда любому изображению f∈L2x может быть поставлено в соответ' ствие такое изображение fmin∈Z, что ||fmin – f|| = min{||g – f||, g∈Z}. (4.3.6) Легко убедиться, что такое отображение v(f):f→Z всегда будет проектором в том (алгебраическом) смысле, что v(v(f)) = v(f). Поэтому можно также обозна' чить fmin = PrZ(f), то есть «fmin есть проекция f на Z». Используя введенное понятие проекции, можно определить численную меру близости изображения g к множеству изображений Z, а именно K(g,Z) (морфоло гический коэффициент корреляции), аналогичную обычной корреляционной мере близости двух изображений: K(g,Z) = ||PrZ(g)|| / ||g||. Легко убедиться, что морфологический коэффициент корреляции обладает следующими свойствами: 1. 0 ≤ К(f,Z) ≤ 1, f∈L2x, Z∈L2x. 2. (K(f,Z) = 1) ⇔ (f∈Z). Преимущества морфологического коэффициента корреляции связаны с воз' можностью более полного учета условий регистрации изображений. Пусть про' цесс регистрации изображения описывается при помощи некоторого преобразо' вания t∈T эталонного изображения g(x,y)∈L2x, где T – некоторая группа преобразований. Определим форму изображения g как Z = {g’ = t(g), t∈T}. Тогда при помощи KT(f,g) = K(f,Z) можно сравнивать изображение с эталоном инвари' антно к любым преобразованиям типа T. Рассмотрим, например, общую модель яркостных преобразований изображе' ния. Пусть эталонное изображение f является двумерной функцией интенсивнос' ти вида (4.3.7) где χi – индикаторная функция i'й области разбиения кадра, то есть ai – уровень яркости i'й области.
299
(4.3.8) Тогда проекционное преобразование можно считать параметрическим вида bi = b(ai), где i = 0,...,C–1, C – количество уровней яркости на изображении. Для любого изображения g(x,y) проекция Prf(g) определяется тогда набором параметров b вида
, i = 1,...,C–1.
(4.3.9)
Вычисление этих параметров не сопряжено с трудностями и сколько'нибудь значительными вычислительными затратами. После вычисления проекции изоб' ражения g на форму эталона f коэффициент морфологической корреляции K(g,f) вычисляется непосредственно. По аналогии с обычным корреляционным обнаружением, морфологическое обнаружение изображения f по принципу максимума корреляционного коэффи' циента осуществляется по правилу: (4.3.10) После этого, на основании полученного значения максимальной корреляции, может проверяться достоверность классификации. Если KT(f,gi) ≥ Kmin, то обнаружение признается достоверным. В противном случае объект считается нераспознанным. Теперь можно проанализировать соотношение между обычной нормирован' ной взаимно корреляционной функцией ku и коэффициентом морфологической корреляции km (4.3.11)
(4.3.12) Геометрическую разницу между этими двумя величинами иллюстрирует рис. 4.3.1, где обозначено α = arccos ku, β = arccos km. При этом связь между коэффициентами корреляции имеет вид: km ≥ |ku|. Значительный интерес представляет случай, когда морфологическая и обыч' ная корреляции совпадают: km = |ku|.
300
Методы анализа изображений
Обнаружение объектов, заданных эталонами
Рис. 4.3.1. Геометрическая интерпретация нормированной взаимно корреляционной функции ku и коэффициента морфологической корреляции km
301
морфологического коррелятора может превосходить соответствующие показате' ли обычных корреляционных алгоритмов. Согласованная фильтрация
Условия равенства морфологической и обычной корреляции имеют вид: (4.3.13) где α – свободный параметр. Условия (4.3.13) имеют весьма строгий характер, означая, что для совпадения морфологической и обычной корреляционных функций необходимо, чтобы сред' ние значения яркости функций f и ν совпадали с точностью до постоянного мно' жителя по всем областям разбиения поля зрения. Рассмотрим двухградационное эталонное изображение f, состоящее из объек' та с яркостью с2 и площадью μ2 на фоне яркости с1 и площади μ1, и пусть изображе' ние n есть изображение того же объекта, но сдвинутое в некотором направлении – рис. 4.3.2.
Если изображение рассматривается не как полутоновое, а как бинарное, то в этом случае эталонное обнаружение объектов сводится к процедуре согласованной фильтрации. Согласованная фильтрация представляет собой разновидность оконной филь' трации. При этом создается окно, совпадающее по форме с искомым объектом, назначается центральный пиксель окна (reference point), после чего производится проход окном по входному изображению. В каждом возможном положении окна подсчитывается число ненулевых элементов окна. Если это число больше некото' рого порога (ранга), то принимается решение об обнаружении объекта в этой точ' ке, и в центральный пиксель текущего окна на выходном изображении (предвари' тельно обнуленном) выставляется значение 1. Иногда при этом еще проверяется то условие, что в «окаймлении» согласованного окна число единиц не превышает некоторого порога («согласованная фильтрация с окаймлением»). Обобщенное преобразование Хафа
Рис. 4.3.2. Двухградационное изображение
Математическое исследование показывает, что при центрированной величине функций ν и f в двухградационном случае морфологическая и обычная корреляци онная функции идентичны. Следует отметить, что, обладая высокой устойчивостью к радиометрическим преобразованиям и зашумлениям, морфологические алгоритмы обнаружения (по Пытьеву), не обеспечивают в то же время необходимой робастности при геомет' рических искажениях. Кроме того, морфологический подход к обнаружению порождает и еще одну, новую трудность – необходимость параллельного анализа так называемой ин' формативности изображения. Дело в том, что однородное поле зрения идеально коррелирует с любым объектом, и чтобы использовать морфологический корре' лятор адекватно, нужно следить, чтобы «информативность» сравниваемых изоб' ражений была достаточной, то есть чтобы их яркостно'геометрические свойства были достаточно богатыми. По этим же причинам уровень аномальных ошибок
В предыдущей главе было описано преобразование Хафа, которое позволяет быс' тро и устойчиво обнаруживать графические примитивы, описываемые аналити' ческими уравнениями: прямые линии, окружности, эллипсы и т. п. Позднее метод голосования контурных точек в пространство параметров был обобщен и на слу' чай кривых, не описываемых в аналитической форме [82]. В такой наиболее об' щей форме он получил наименование обобщенного преобразования Хафа (GHT). Попробуем обобщить изложенную ранее схему обнаружения окружностей извес' тного радиуса, использующую информацию об ориентации вектора'градиента в кон' турных точках, на случай обнаружения объектов произвольной формы (рис. 4.3.3). В этом случае существенно то, что расстояние R от текущего пикселя границы больше не константа, а является функцией R(θ) от угла краевой ориентации θ; и угол направления на центр ϕ от краевого пикселя больше не равен θ, а является
Рис. 4.3.3. Идея обобщенного преобразования Хафа
302
Методы анализа изображений
Обнаружение объектов, заданных эталонами
303
функцией ϕ(θ). Мы можем переписать это в форме R = R(R(θ),ϕ(θ)), или, еще про' ще, как R(θ). В дополнение, в общем случае «центр» должен заново интерпретиро' ваться как условная точка локализации L. Выбор точки локализации L не является единственным и может регулировать ошибки. В общем случае следует ожидать, что положение точки локализации рядом с центром тяжести периметра объекта минимизирует ошибки, обусловленные неточностью оценки ориентации края. Для определения простых форм, включая форму круга, функция R(θ) может быть описана аналитически. Однако для большинства форм это невозможно. Ballard показал, что подход еще остается жизнеспособным, так как для запомина' ния информации о форме можно использовать просмотровые таблицы (look'up' table), содержащие дискретные значения R(θ) для различных значений углов. Из данного описания GHT непосредственно следует, что оно является инвариант' ным к вращению. Таким образом, преобразование Хафа, GHT и их различные модификации обеспечивают инвариантное обнаружение геометрических примитивов и объек' тов на изображении с высокой степенью помехозащищенности и значительной точностью определения параметров местоположения и ориентации. Существен' ным ограничением применимости этой группы методов является то, что опи' санные алгоритмы обнаруживают не сами полутоновые объекты, а их контуры. Поэтому объекты, не имеющие четко выраженного контура, не могут быть под' вергнуты детектированию с использованием GHT.
4.3.2. Функции привязки эталонов в IMAQ Vision Функция IMAQ: Shape Match Tool Данный инструмент (рис. 4.3.4) позволяет находить предметы на изображении по их известным очертаниям.
Q Shape Match T ool Рис. 4.3.5. Пример работы функции IMA IMAQ To ol. Показаны: исходное изображение (вверху слева), эталон (вверху справа), найденные объекты (внизу) Q Shape Match T ool Рис. 4.3.4. Функция IMA IMAQ To
На вход данной функции, помимо исходного изображения, подается также би' нарное эталонное изображение искомого предмета. Важной особенностью IMAQ Shape Match Tool является то, что он способен находить на изображении объекты, схожие по очертаниям с эталонными, но при этом отличающиеся от них по масш' табу (более крупные или более мелкие) – рис. 4.3.5. Блок'диаграмма данного ВП представлена на рис. 4.3.6.
Функция IMAQ: Rotation Detect Функция IMAQ Rotation Detect (обнаружить вращение) – рис. 4.3.7 – позволяет определить угол, на который было повернуто изображение или его часть. В качестве входных параметров данной функции задаются опорные координа' ты центра области, которая в дальнейшем будет поворачиваться, координаты цен' тра области, внутри которой будет производиться определение угла поворота, ра'
304
Методы анализа изображений
Обнаружение объектов, заданных эталонами
305
Рис.4.3.6. Блокдиаграмма Q Shape Match T ool примера использования ВП IMA IMAQ To
Q Rotatio n Detect Рис.4.3.8. Фрагмент лицевой панели упражнения для функции IMA IMAQ Rotation
Q Rotatio n Detect Рис. 4.3.7. Функция IMA IMAQ Rotation
диус области поиска и два изображения: опорное (исходное) и текущее (обраба' тываемое). Также необходимо указать точность, с которой определяется угол по' ворота. В примере, показанном на рис. 4.3.8, в качестве центра области поворота и цен' тра области поиска используются координаты центров соответствующих изобра' жений. Тестируемое изображение было предварительно повернуто на 90° по часо' вой стрелке (то есть 270° против часовой стрелки). Функция IMAQ Rotation Detect определила угол поворота в 270.25°, что говорит о достаточной точности вычислений. Блок'диаграмма примера приведена на рис. 4.3.9.
Рис. 4.3.9. Блокдиаграмма приложения, Q Rotatio n Detect демонстрирующего применение IMA IMAQ Rotation
306
Методы анализа изображений
Измерения на изображениях
307
4.4. Измерения на изображениях 4.4.1. Функции геометрических измерений в IMAQ Vision Функции 1D#измерений Функция IMAQ: Caliper Tool Функция IMAQ Caliper Tool (штангенциркуль) – рис. 4.4.1 – позволяет найти парные границы на изображении, а также определить их параметры: • контраст начальной и конечной границ; • координаты границ; • расстояние между границами.
Q Caliper T ool Рис. 4.4.2. Пример применения функции IMA IMAQ To
Q Caliper T ool Рис. 4.4.1. Функция IMA IMAQ To
Одним из параметров поиска является тип границ в паре. Так, например, можно задать, что первая граница должна являться «темной» (то есть переход должен осуществляться от более темного к более светлому тону), а вторая – «светлой» (от более светлого к более темному). Всего можно выбрать пять вари' антов искомых пар: • светлая–темная; • темная–светлая; • светлая–светлая; • темная–темная; • любая–любая. Необходимо учитывать, что если при поиске границ, например, типа «темная– светлая» на изображении присутствуют, скажем, три четких границы (допустим, «темная» и далее две «светлых»), то функция Caliper сможет определить только наличие двух пар границ (пары 1–2 и 1–3 соответственно). Если в той же ситуа' ции выбрать параметр поиска «светлая–светлая», то будет найдена одна пара гра' ниц: 2–3. Пример работы функции IMAQ Caliper Tool представлен на рис. 4.4.2, блок' диаграмма – на рис. 4.4.3.
Q Caliper T ool Рис. 4.4.3. Блокдиаграмма применения ВП IMA IMAQ To
Функция IMAQ: Line Gauge Функция IMAQ Line Gauge (рис. 4.4.4) позволяет измерять расстояния между гра' ницами на изображении с высокой степенью точности (вплоть до 1/12 пикселя). Измерения производятся на заданной линии. Пользователь может выбрать один из следующих режимов измерений:
308
Методы анализа изображений
Измерения на изображениях
309
Q Line Gauge Рис. 4.4.4. Функция IMA IMAQ
• граница–граница; • точка–граница; • граница–точка; • точка–точка. Границы (перепады яркости на заданном отрезке) находятся данной функци' ей автоматически, причем если выбран режим 1, то используются первая и после' дняя из них. Под точками подразумеваются начало и конец линии. Рисунок 4.4.5 демонстрирует результат выполнения ВП IMAQ Line Gauge, блок'диаграмма представлена на рис. 4.4.6.
Q Line Gauge Рис. 4.4.6. Блокдиаграмма примера для функции IMA IMAQ
Q Clamp Horizo ntal Max Рис. 4.4.7. Функция IMA IMAQ Horizontal
В качестве входных параметров данная функция получает прямоугольную об' ласть интереса, в которой должно производиться измерение. Можно также задать набор параметров функции определения границ, сходный с параметрами функ' ций типа IMAQ Find Edge. На рис. 4.4.8 продемонстрированы результаты обра' ботки ВП IMAQ Clamp Horizontal Max на примере изображения бутылки. Блок'диаграмма примера показана на рис. 4.4.9. Аналогичным образом проводятся измерения в функциях IMAQ Clamp Horizontal Min, IMAQ Clamp Vertical Max и IMAQ Clamp Vertical Min. Функция IMAQ: Polygon Area Q Line Gauge Рис. 4.4.5. Пример использования функции IMA IMAQ
Функции 2D#измерений Функция IMAQ: Clamp Horizontal Max Функция IMAQ Clamp Horizontal Max (рис. 4.4.7), находящаяся в палитре Machine Vision ⇒ Measure Distances, позволяет определить горизонтальные раз' меры (толщину) изображения.
Функция IMAQ Polygon Area (рис. 4.4.10) позволяет определить площадь многоугольника, образованного заданным массивом точек. При этом количество то' чек во входном массиве Vertex Points должно быть не менее трех. Рис. 4.4.8. Результат работы примера, Q Clamp Horizo ntal Max использующего функцию IMA IMAQ Horizontal
310
Методы анализа изображений
Рис. 4.4.9. Блокдиаграмма приложения, Q Clamp Horizo ntal Max демонстрирующего использование ВП IMA IMAQ Horizontal
Измерения на изображениях
311
QP olygo n Ar ea Рис.4.4.12. Блокдиаграмма примера для IMA IMAQ Polygo olygon Are
4.4.2. Функции яркостных измерений в IMAQ Vision Функция IMAQ: Light Meter (Rectangle) Функция IMAQ Light Meter (Rectangle) – рис. 4.4.13 – выполняет измерения яркости пикселей в выбранной прямоугольной области интереса. QP olygo n Ar ea Рис. 4.4.10. Функция IMA IMAQ Polygo olygon Are
Пример вычисления площади функцией IMAQ Polygon Area представлен на рис. 4.4.11, блок'диаграмма – на рис. 4.4.12.
Q Light Meter (Rectangle) Рис. 4.4.13. Функция IMA IMAQ
QP olygo n Ar ea Рис. 4.4.11. Результат выполнения ВП IMA IMAQ Polygo olygon Are
Входными параметрами ВП IMAQ Light Meter (Rectangle) являются: • исходное изображение Image; • область интереса Rectangle; • система координат Coordinate System, связанная с областью интереса Rectangle; • параметр Show Search Area, определяющий, показывать ли прямоуголь' ник, обрамляющий выделенную область интереса; • сообщение об ошибках error in (no error), полученных с выхода других вир' туальных приборов. На выходе IMAQ Light Meter (Rectangle) возвращает: • изображение Image Out, являющееся копией входного изображения Image; • гистограмму Histogram, собранную по области интереса Rectangle; • результаты измерений Gray Level Intensities, включающие в себя: – Mean Intensity – среднее значение яркости в области интереса; – Standard Deviation – СКО яркости в области интереса;
312
Методы анализа изображений
Считывание символьной информации
313
– Starting Value – минимальное значение яркости в области интереса; – Maximum Intensity – максимальное значение яркости в области интереса; • систему координат Coordinate System (duplicate) – копию системы коор' динат, поданной на вход; • сообщение об ошибках error out, возникающих в результате работы IMAQ Light Meter (Rectangle). На рис. 4.4.14 представлена лицевая панель примера, демонстрирующего воз' можности функции IMAQ Light Meter (Rectangle), соответствующая блок'диаг' рамма – на рис. 4.4.15.
Рис. 4.4.15. Блокдиаграмма приложения, Q IMA Q Light Meter (Rectangle) демонстрирующего использование функций IMA IMAQ IMAQ
Рис. 4.4.14. Построение гистограммы по области интереса изображения, Q Light Meter (Rectangle) выполненное ВП IMA IMAQ
Аналогичным образом работают функции яркостных измерений IMAQ Light Meter (Point) и IMAQ Light Meter (Line), отличающиеся только способом выбо' ра области измерений.
4.5. Считывание символьной информации 4.5.1. Задача оптического распознавания символов (OCR) Задача распознавания текстовой информации при переводе печатного и рукопис' ного текста в электронную форму является одной из важнейших составляющих любого проекта, имеющего целью автоматизацию документооборота или внедре'
ние безбумажных технологий. Вместе с тем эта задача является одной из наиболее сложных и наукоемких задач полностью автоматического анализа изображений. Даже человек, читающий рукописный текст в отрыве от контекста, делает в сред' нем около 4% ошибок. Между тем, в наиболее ответственных приложениях OCR необходимо обеспечивать более высокую надежность распознавания (свыше 98– 99%) даже при плохом качестве печати и оцифровки исходного текста. В последние десятилетия, благодаря использованию современных достиже' ний компьютерных технологий, были развиты новые методы обработки изобра' жений и распознавания образов, благодаря чему стало возможным создание таких промышленных систем распознавания печатного текста, как, например, FineReader, которые удовлетворяют основным требованиям систем автоматизации докумен' тооборота. Тем не менее создание каждого нового приложения в данной области по'прежнему остается творческой задачей и требует дополнительных исследова' ний в связи со специфическими требованиями по разрешению, быстродействию, надежности распознавания и объему памяти, которыми характеризуется каждая конкретная задача. Типовые проблемы, связанные с распознаванием символов Имеется ряд существенных проблем, связанных с распознаванием рукописных и печатных символов. Наиболее важные из них следующие:
314
Методы анализа изображений
• разнообразие форм начертания символов; • искажение изображений символов; • вариации размеров и масштаба символов. Каждый отдельный символ может быть написан различными стандартными шрифтами, например Times, Gothic, Elite, Courier, Orator, а также – множеством нестандартных шрифтов, используемых в различных предметных областях. При этом различные символы могут обладать сходными очертаниями. Например, «U» и «V», «S» и «5», «Z» и «2», «G» и «6». Искажения цифровых изображений текстовых символов могут быть вызваны: • шумами печати, в частности непропечаткой (разрывами слитных черт сим' волов), «слипанием» соседних символов, пятнами и ложными точками на фоне вблизи символов и т. п.; • смещением символов или частей символов относительно их ожидаемого положения в строке; • изменением наклона символов; • искажением формы символа за счет оцифровки изображения с «грубым» дискретом; • эффектами освещения (тени, блики и т. п.) при съемке видеокамерой. Существенным является и влияние исходного масштаба печати. В принятой терминологии масштаб 10, 12 или 17 означает, что в дюйме строки помещаются 10, 12 или 17 символов. При этом, например, символы масштаба 10 обычно круп' нее и шире символа масштаба 12. Система оптического распознавания текста (OCR), должна выделять на циф' ровом изображении текстовые области, выделять в них отдельные строки, затем – отдельные символы, распознавать эти символы и при этом быть нечувствитель' ной (устойчивой) по отношению к способу верстки, расстоянию между строками и другим параметрам печати. Структура систем оптического распознавания текстов Системы OCR состоят из следующих основных блоков, предполагающих аппа' ратную или программную реализацию: • блок сегментации (локализации и выделения) элементов текста; • блок предобработки изображения; • блок выделения признаков; • блок распознавания символов; • блок постобработки результатов распознавания. Эти алгоритмические блоки соответствуют последовательным шагам обработ' ки и анализа изображений. Сначала осуществляется выделение текстовых областей, строк и разбиение связных текстовых строк на отдельные знакоместа, каждое из которых соответ' ствует одному текстовому символу. После разбиения (а иногда до или в процессе разбиения), символы, представ' ленные в виде двумерных матриц пикселей, подвергаются сглаживанию, фильт'
Считывание символьной информации
315
рации с целью устранения шумов, нормализации размера, а также другим преоб' разованиям с целью выделения образующих элементов или численных призна' ков, используемых впоследствии для их распознавания. Распознавание символов происходит в процессе сравнения выделенных ха' рактерных признаков с эталонными наборами и структурами признаков, форми' руемыми и запоминаемыми в процессе обучения системы на эталонных и/или ре' альных примерах текстовых символов. На завершающем этапе смысловая или контекстная информация может быть использована как для разрешения неопределенностей, возникающих при распоз' навании отдельных символов, обладающих идентичными размерами, так и для корректировки ошибочно считанных слов и даже фраз в целом. Методы предобработки и сегментации изображений текстовых символов Предобработка является важным этапом в процессе распознавания символов и позволяет производить сглаживание, нормализацию, сегментацию и аппроксима' цию отрезков линий. Под сглаживанием в данном случае понимается большая группа процедур обра' ботки изображений, многие из которых были рассмотрены в главе 3 данной книги. В частности, широко используются морфологические операторы заполнения и утончения. Заполнение устраняет небольшие разрывы и пробелы. Утончение пред' ставляет собой процесс уменьшения толщины линии, в которой на каждом шаге области размером в несколько пикселей ставится в соответствие только один пик' сель «утонченной линии». Морфологический способ реализации подобных опера' ций на базе операторов расширения и сжатия Серра был описан в разделе 3.5. Рассмотрим также один специальный алгоритм бинарной фильтрации изобра' жений текстовых символов, получивший название стирание бахромы. Под «бах' ромой» здесь понимаются неровности границ символа, которые мешают, во'пер' вых, правильно определить его размеры, а во'вторых, искажают образ символа и мешают его дальнейшему распознаванию по контурному признаку. Суть алгоритма заключается в последовательном стирании крайних элемен' тов. Пусть в качестве апертуры фильтра выбрана окрестность второго порядка размером 3×3. Введем понятие крайнего верхнего пикселя. Крайним верхним пикселем будем называть такой пиксель Хij, в апертуре 3×3 которого наблюдаются следующие сочетания: а)
б)
в)
г)
д)
е)
Здесь 0 обозначает элемент фона, 1 – элемент символа.
316
Методы анализа изображений
С помощью поворота матриц (а)–(е) на 90°, 180° и 270° мы получим определение соответственно крайнего левого, крайнего нижнего и крайнего правого пикселей. При фильтрации, имеющей целью стирание бахромы, все определенные таким образом краевые пиксели стираются. Стираются также изолированные пиксели, не имеющие соседних пикселей символа в апертуре 3×3: ж) Остальные (пиксели, не являющиеся крайними или изолированными) пере' носятся на отфильтрованное изображение без изменения. По аналогии с описанным стиранием бахромы из единиц можно ввести стира' ние бахромы из нулей. При этом «краевые нули», апертуры которых соответству' ют матрицам (а)–(ж) с заменой единиц на нули и нулей на единицы, также «сти' раются», то есть замещаются единицами. Наконец, можно определить алгоритм комбинированного стирания бахромы: по единицам (по символу) и по нулям (по фону) одновременно. Помимо предоб' работки изображений в системах OCR, комбинированное стирание бахромы мо' жет быть использовано также и в других системах машинного зрения с целью по' давления помех на бинарных изображениях без искажения контуров объектов. Геометрическая нормализация изображений документов подразумевает ис' пользование алгоритмов, устраняющих наклоны и перекосы отдельных симво' лов, слов или строк, а также включает в себя процедуры, осуществляющие норма' лизацию символов по высоте и ширине после соответствующей их обработки. Процедуры сегментации осуществляют разбиение изображения документа на отдельные области. Как правило, прежде всего необходимо отделить печатный текст от графики и рукописных пометок. Далее большинство алгоритмов опти' ческого распознавания разделяют текст на символы и распознают их по отдельно' сти. Это простое решение действительно наиболее эффективно, если только сим' волы текста не перекрывают друг друга. Слияние символов может быть вызвано типом шрифта, которым был набран текст, плохим разрешением печатающего ус' тройства или высоким уровнем яркости, выбранным для восстановления разор' ванных символов. Дополнительное разбиение текстовых областей и строк на слова целесообраз' но в том случае, если слово является состоятельным объектом, в соответствии с которым выполняется распознавание текста. Подобный подход, при котором единицей распознавания является не отдельный символ, а целое слово, сложно реализовывать из'за большого числа элементов, подлежащих запоминанию и рас' познаванию, но он может быть полезен и весьма эффективен в конкретных част' ных случаях, когда набор слов в кодовом словаре существенно ограничен по усло' вию задачи. Под аппроксимацией отрезков линий понимают составление графа описания символа в виде набора вершин и прямых ребер, которые непосредственно аппрок' симируют цепочки пикселей исходного изображения. Данная аппроксимация
Считывание символьной информации
317
осуществляется для уменьшения объема данных и может использоваться при рас' познавании, основанном на выделении признаков, описывающих геометрию и то' пологию изображения. Признаки символов, используемые для автоматического распознавания текста Считается, что выделение признаков является одной из наиболее трудных и важ' ных задач в распознавании образов. Для распознавания символов может быть ис' пользовано большое количество различных систем признаков. Проблема заклю' чается в том, чтобы выделить именно те признаки, которые позволят эффективно отличать один класс символов от всех остальных в данной конкретной задаче. Ниже описан ряд основных методов распознавания символов и соответствую' щих им типов признаков, вычисляемых на основе цифрового изображения. Сопоставление изображений и шаблонов. Эта группа методов основана на непосредственном сравнении изображений тестового и эталонного символов. При этом вычисляется степень сходства между образом и каждым из эталонов. Классификация тестируемого изображения символа происходит по методу бли' жайшего соседа. Ранее мы уже рассматривали методы сравнения изображений в разделе 4.3, а именно – методы корреляции и согласованной фильтрации изоб' ражений. С практической точки зрения эти методы легко реализовать, и многие коммер' ческие системы OCR используют именно их. Однако при «лобовой» реализации корреляционных методов даже небольшое темное пятнышко, попавшее на вне' шний контур символа, может существенно повлиять на результат распознавания. Поэтому для достижения хорошего качества распознавания в системах, использу' ющих сопоставление шаблонов, применяются другие, специальные способы срав' нения изображений. Одна из основных модификаций алгоритма сравнения шаблонов использует представление шаблонов в виде набора логических правил. Например, символ 000000000 000aabb000 00aeeffb00 0ae0000fb0 0ae0ii0fb0 0ae0ii0fb0 0ae0000fb0 0cg0000hd0 0cg0jj0hd0 0cg0jj0hd0 0cg0000hd0 00cgghhd00 000ccdd000 000000000
318
Методы анализа изображений
может быть распознан как «ноль», если: (не менее 5 символов «a» являются «1» или не менее 4 символов «e» = «1») И (не менее 5 символов «b» являются «1» или не менее 4 символов «f» = «1») И (не менее 5 символов «c» являются «1» или не менее 4 символов «g» = «1») И (не менее 5 символов «d» являются «1» или не менее 4 символов «h» = «1») И (по крайней мере, 3 символа «i» являются «0») И (по крайней мере, 3 символа «j» являются «0»). Статистические характеристики. В данной группе методов выделение при' знаков осуществляется на основе анализа различных статистических распределе' ний точек. Наиболее известные методики этой группы используют вычисление мо ментов и подсчет пересечений. Моменты различных порядков с успехом используются в самых различных об' ластях машинного зрения в качестве дескрипторов формы выделенных областей и объектов (см. раздел 4.1). В случае распознавания текстовых символов, в каче' стве набора признаков используют значения моментов совокупности «черных» точек относительно некоторого выбранного центра. Наиболее общеупотреби' тельными в приложениях такого рода являются построчные, центральные и нор' мированные моменты. Для цифрового изображения, хранящегося в двумерном массиве, построчные моменты являются функциями координат каждой точки изображения следующе' го вида:
где p,q = 0,1,...,∞; M и N являются размерами изображения по горизонтали и верти' кали; f(x,y) является яркостью пикселя в точке (x,y) на изображении. Центральные моменты являются функцией расстояния точки от центра тяже' сти символа:
где x и y «с чертой» – координаты центра тяжести. Нормированные центральные моменты получаются в результате деления цен' тральных моментов на моменты нулевого порядка. Следует отметить, что строковые моменты, как правило, обеспечивают более низкий уровень распознавания. Центральные и нормированные моменты более предпочтительны вследствие их большей инвариантности к преобразованиям изображений. В методе пересечений признаки формируются путем подсчета того, сколько раз и каким образом произошло пересечение изображения символа с выбранными прямыми, проводимыми под определенными углами. Этот метод часто использу' ется в коммерческих системах благодаря тому, что он инвариантен к дисторсии и небольшим стилистическим вариациям написания символов, а также обладает
Считывание символьной информации
319
достаточно высокой скоростью и не требует высоких вычислительных затрат. На рис. 4.5.1 показано эталонное изображение символа R, система секущих прямых, а также вектор расстояний до эталонных векторов. На рис. 4.5.2 представлен при' мер реального изображения символа R. Цветом также помечена строка, соответ' ствующая ближайшему соседу.
Рис. 4.5.1. Эталонное изображение символа R
Рис. 4.5.2. Реальное изображение символа R
Метод зон предполагает разделение площади рамки, объемлющей символ, на области и последующее использование плотностей точек в различных областях в качестве набора характерных признаков. На рис. 4.5.3 показано эталонное изоб' ражение символа R, а на рис. 4.5.4 – реальное изображение символа R, полученное путем сканирования изображения документа. На обоих изображениях приводят' ся разбиение на зоны, пиксельные веса каждой зоны, а также вектор расстояний до эталонных векторов эталонных символов. Цветом помечена строка, соответ' ствующая найденному ближайшему соседу.
Рис. 4.5.3. Эталонное изображение символа R
Рис. 4.5.4. Реальное изображение символа R; K = 0.387
320
Методы анализа изображений
В методе матриц смежности в качестве признаков рассматриваются частоты совместной встречаемости «черных» и «белых» элементов в различных геометри' ческих комбинациях. Метод характеристических мест (characteristic'loci) ис' пользует в качестве признака число раз, которое вертикальный и горизонтальный векторы пересекают отрезки линий для каждой светлой точки в области фона символа. Существует также множество других методов данной группы. Интегральные преобразования. Среди современных технологий распознава' ния, основанных на преобразованиях, выделяются методы, использующие Фу' рье'дескрипторы символов, а также частотные дескрипторы границ. Преимущества методов, использующих преобразования Фурье'Меллина, свя' заны с тем, что они обладают инвариантностью к масштабированию, вращению и сдвигу символа. Основной недостаток этих методов заключается в нечувстви' тельности к резким скачкам яркости на границах: к примеру, по спектру про' странственных частот сложно отличить символ «O» от символа «Q» и т. п. В то же время при фильтрации шума на границах символа это свойство может оказаться полезным. Анализ структурных составляющих. Структурные признаки обычно исполь' зуются для выделения общей структуры образа. Они описывают геометрические и топологические свойства символа. Проще всего представить идею структурного распознавания символа текста применительно к задаче автоматического считыва' ния почтовых индексов. В таких «трафаретных» шрифтах положение каждого возможного отрезка'штриха заранее известно, и один символ отличается от дру' гого не менее чем наличием или отсутствием целого штриха. Аналогичная задача возникает и в случае контроля простых жидкокристаллических индикаторов (см. ниже описание функции IMAQ OCR Read LCD). В таких системах выделение структурных составляющих сводится к анализу элементов заранее известного трафарета (набора отрезков, подлежащих обнаружению). В системах структурного распознавания более сложных шрифтов часто ис' пользуемыми признаками также являются штрихи, применяемые для определе' ния следующих характерных особенностей изображения: концевых точек, точек пересечения отрезков, замкнутых циклов, а также их положения относительно рамки, объемлющей символ. Рассмотрим, например, следующий способ струк' турного описания символа. Пусть матрица, содержащая утонченный символ, раз' делена на девять прямоугольных областей (в виде сетки 33), каждой из которых присвоен буквенный код от «A» до «I». Символ рассматривается как набор штри' хов. При этом штрих, соединяющий некоторые две точки в начертании символа, может являться линией (L) или кривой (C). Штрих считается отрезком (дугой) кривой, если его точки удовлетворяют следующему выражению:
Считывание символьной информации
321
в противном случае считается, что это прямолинейный отрезок. В данной формуле (xi,yi) является точкой, принадлежащей штриху; ax + by + c = 0 – уравнение пря' мой, проходящей через концы штриха, коэффициент 0.69 получен опытным пу' тем. Далее символ может быть описан набором своих отрезков и дуг. Например, запись {«ALC», «ACD»} означает наличие прямой, проходящей из области «A» в область «C», и кривой, проходящей из области «A» в область «D» соответственно. Основное достоинство структурных методов распознавания определяется их устойчивостью к сдвигу, масштабированию и повороту символа на небольшой угол, а также – к возможным дисторсиям и различным стилевым вариациям и не' большим искажениям шрифтов. Классификация символов В существующих системах OCR используются разнообразные алгоритмы класси фикации, то есть отнесения признаков к различным классам. Они существенно различаются в зависимости от принятых наборов признаков и применяемой по отношению к ним стратегии классификации. Для признаковой классификации символов необходимо, в первую очередь, сформировать набор эталонных векторов признаков по каждому из распознавае' мых символов. Для этого на стадии обучения оператор или разработчик вводит в систему OCR большое количество образцов начертания символов, сопровож' даемых указанием значения символа. Для каждого образца система выделяет признаки и сохраняет их в виде соответствующего вектора признаков. Набор век' торов признаков, описывающих символ, называется классом, или кластером. В процессе эксплуатации системы OCR может появиться необходимость рас' ширить сформированную ранее базу знаний. В связи с этим некоторые системы обладают возможностью дообучения в реальном режиме времени. Задачей собственно процедуры классификации, или распознавания, выполняе' мой в момент предъявления системе тестового изображения символа, является определение того, к какому из ранее сформированных классов принадлежит век' тор признаков, полученный для данного символа. Алгоритмы классификации ос' нованы на определении степени близости набора признаков рассматриваемого символа к каждому из классов. Правдоподобие получаемого результата зависит от выбранной метрики пространства признаков. Наиболее известной метрикой признакового пространства является традиционное евклидово расстояние:
где F Lji – i'й признак из j'го эталонного вектора; F il – i'й признак тестируемого изоб' ражения символа. При классификации по методу ближайшего соседа символ будет отнесен к классу, вектор признаков которого наиболее близок к вектору признаков тести' руемого символа. Следует учитывать, что затраты на вычисления в таких систе' мах возрастают с увеличением количества используемых признаков и классов.
322
Методы анализа изображений
Одна из методик, позволяющих улучшить метрику сходства, основана на ста' тистическом анализе эталонного набора признаков. При этом в процессе класси' фикации более надежным признакам отдается больший приоритет:
где wi – вес i'го признака. Другая методика классификации, требующая знания априорной информации о вероятностной модели текста, основана на использовании формулы Байеса. Из правила Байеса следует, что рассматриваемый вектор признаков принадлежит классу «j», если отношение правдоподобия λ больше, чем отношение априорной вероятности класса j к априорной вероятности класса i. Постобработка результатов распознавания В ответственных системах OCR качество распознавания, получаемое при распоз' навании отдельных символов, не считается достаточным. В таких системах необ' ходимо использовать также контекстную информацию. Использование контекст' ной информации позволяет не только находить ошибки, но и исправлять их. Существует большое количество приложений OCR, использующих глобальные и локальные позиционные диаграммы, триграммы, n'граммы, словари и различные сочетания всех этих методов. Рассмотрим два подхода к решению этой задачи: сло варь и набор бинарных матриц, аппроксимирующих структуру словаря. Доказано, что словарные методы являются одними из наиболее эффективных при определении и исправлении ошибок классификации отдельных символов. При этом после распознавания всех символов некоторого слова словарь просмат' ривается в поисках этого слова с учетом того, что оно, возможно, содержит ошиб' ку. Если слово найдено в словаре, это не говорит об отсутствии ошибок. Ошибка может превратить одно слово, находящееся в словаре, в другое, также входящее в словарь. Такая ошибка не может быть обнаружена без использования смысло' вой контекстной информации: только она может подтвердить правильность напи' сания. Если слово в словаре отсутствует, считается, что в слове допущена ошибка распознавания. Для исправления ошибки прибегают к замене такого слова на наиболее похожее слово из словаря. Исправление не производится, если в словаре найдено несколько подходящих кандидатур для замены. В этом случае интерфейс некоторых систем позволяет показать слово пользователю и предложить различ' ные варианты решения, например исправить ошибку, игнорировать ее и продол' жать работу или внести это слово в словарь. Главный недостаток в использовании словаря заключается в том, что операции поиска и сравнения, применяющиеся для исправления ошибок, требуют значительных вычислительных затрат, возрас' тающих с увеличением объема словаря. Некоторые разработчики с целью преодоления трудностей, связанных с ис' пользованием словаря, пытаются выделять информацию о структуре слова из са' мого слова. Такая информация говорит о степени правдоподобия nграммов (сим'
Считывание символьной информации
323
вольных последовательностей, например пар или троек букв) в тексте. N'граммы также могут быть глобально позиционированными, локально позиционирован' ными или вообще непозиционированными. Например, степень достоверности не' позиционированной пары букв может быть представлена в виде бинарной матри' цы, элемент которой равен 1, тогда и только тогда, когда соответствующая пара букв имеется в некотором слове, входящем в словарь. Позиционная бинарная ди' аграмма Dij является бинарной матрицей, определяющей, какая из пар букв имеет ненулевую вероятность возникновения в позиции (i, j). Набор всех позиционных диаграмм включает бинарные матрицы для каждой пары положений. Рассмотрим теперь реализацию средств оптического распознавания символов в пакете IMAQ Vision. Функция IMAQ: OCR Read Text Функция IMAQ OCR Read Text (рис. 4.5.5) распознает текст на изображении в заданной пользователем области.
QO CR Re ad T ext Рис. 4.5.5. Функция IMA IMAQ OCR Read Text
На этапе обучения, необходимо создать базу данных, в которой хранятся эта' лонные изображения символов (букв и цифр) и соответствующие этим эталонам символьные значения. Обучение системы OCR можно произвести как в LabVIEW при помощи ВП IMAQ Train , так и в Vision Assistant (что зачастую существен' но удобнее и быстрее). Читатели могут самостоятельно изучить простой пример, прилагаемый к паке' ту OCR. Для этого необходимо набрать «ocr» (без кавычек) в поле поиска приме' ров (Help ⇒ Find Examples) и выбрать «OCR Example.vi». Лицевая панель этого ВП представлена на рис. 4.5.6.
4.5.2. Считывание штриховых кодов Задача обнаружения и считывания штриховых кодов на изображениях Штриховые коды – самый распространенный на сегодняшний день тип символь' ных идентификаторов товаров и других предметов, предназначенных для автома' тического считывания. Автоматически считываемые идентификаторы необходимы для эффективного функционирования систем автоматизированного складского учета, автоматизированных систем, используемых в торговле, автоматизирован'
324
Методы анализа изображений
Рис.4.5.6. Внешний вид лицевой панели ВП OCR Example.vi
ных систем контроля и инспекции на производстве. Вы, несомненно, неоднократ' но сталкивались со считывателями штриховых кодов в магазинах и супермарке' тах, где специализированные лазерные считыватели у касс успешно считывают штриховые коды EAN, используемые в торговле для идентификации товаров. Та' кие считыватели с лазерной подсветкой, по сути, анализируют не изображение, а линейный профиль вдоль одной подсвеченной линии (подобный пример мы рассматривали в разделе 3.2). Однако и в торговле и на производстве в последние годы все чаще используются не только линейные считыватели, но и двумерные считыватели на основе CCD'матриц, а также программное обеспечение для офис' ных и промышленных компьютеров, изображения в которые вводятся при помо' щи сканеров и видеокамер. Эта тенденция определяется следующими основными причинами: • штриховые коды в настоящее время бывают не только традиционного ли' нейного типа (прямоугольная область, заполненная вертикальными чер' ными и белыми штрихами различной толщины). В последние десятилетия получили широкое распространение и так называемые двумерные коды, которые позволяют на той же площади разместить существенно больше информации, причем информация в них распределена таким образом, что ее нельзя прочитать, просканировав только одну линию (см. ниже описание нескольких основных типов двумерных кодов). Например, микросхемы на компьютерном производстве в настоящее время, как правило, помечают
Считывание символьной информации
325
двумерным штриховым кодом Data Matrix. Для считывания двумерных ко' дов необходимы считыватели, получающие и анализирующие двумерные изображения; • даже в случае использования одномерных штриховых кодов, из'за различ' ного вида помех и искажений (загрязнение, затирание штрихов, изгиб и ко' робление поверхности, на которую нанесен штриховой код, наличие бликов и т. п.), линейный считыватель далеко не всегда в состоянии быстро и каче' ственно считать информацию, поскольку на линии сканирования могут оказаться помехи. В то же время двумерный считыватель может в анало' гичных условиях решить эту задачу за счет комплексирования информа' ции по всей площади кода, а не только по одной линии. Поэтому вероят' ность считывания у двумерных сканеров выше; • в автоматизированных системах, включающих человека, попадание скани' рующей линии на штриховой код обеспечивает оператор (например, кассир в супермаркете). В полностью автоматических системах (например, при считывании штриховых кодов на изделиях, движущихся по конвейеру) возникает задача автоматического обнаружения заранее неизвестного мес' тоположения штрихового кода, его размера, типа и ориентации (угла на' клона). Эта задача также может быть решена только средствами анализа двумерного изображения. Пакет IMAQ Vision, как и многие другие библиотеки, содержит готовые сред' ства считывания штриховых кодов. Маловероятно, что вам придется самостоя' тельно разрабатывать алгоритмы такого типа. Однако, возможно, вам придется в будущем проектировать комплексные системы технического зрения, и в вашем ведении окажется задача автоматического контроля в целом – начиная от выбора типа штрихового кода и способа его нанесения на контролируемый объект и заканчивая выбором способа его считывания и включением в систему соответ' ствующего аппаратного и программного обеспечения. Вам придется искать комп' ромисс между объемом кодируемой информации, вероятностью устойчивого счи' тывания и стоимостью системы. В этом случае вам пригодится наш краткий обзор типов существующих штриховых кодов, приводимый ниже в данном разделе. Одномерные штриховые коды В настоящее время существует около 200 видов штриховых символик линейных, или одномерных, кодов. Самыми популярными штриховыми кодами являются следующие: Codabar; «interleaved 2 of 5»; код 39; код 93; код 128; UPC'E; EAN'8; EAN'13. Рассмотрим штриховые коды, получившие наиболее широкое распространение. Штриховой код Codabar – дискретный, семиэлементный штриховой код, со' держащий цифры 0...9, знаки «+», «–», «:», «/», «.», знак доллара и четыре строба СТАРТ/СТОП. Буквы штрихового кода Codabar ограничены слева и справа. Изображение буквы состоит из четырех штрихов и трех пробелов. В специальных знаках три широких штриха, а в стробах СТАРТ/СТОП – два широких пробела и один широкий штрих (рис. 4.5.7).
326
Методы анализа изображений
Рис. 4.5.7. Штриховой код Codabar
Штриховой код «2 of 5». Буквы кода, обозначающие цифры от 0 до 9, содер' жат пять штрихов, два из которых широкие, а три – узкие. Пятый штрих изобра' жения буквы – дополнительный для контроля по четности. Помимо цифр данный код имеет стробы СТАРТ и СТОП, в изображении которых используются всего три штриха, два из них – широкие. Существует разновидность кода «2 of 5», в которой используется прямое и инвертированное изображение буквы. Про' странство между штрихами заполняется разновеликими пробелами, которые так' же являются носителями информации. Такой код получил название «interleaved 2 of 5». Буквы, находящиеся на нечетных позициях, представляются штрихами, а на четных позициях – пробелами. Код «2 of 5» является дискретным и самопроверяющимся, то есть одиночные ошибки считывания обнаруживаются автоматически. Недостатком кода «2 of 5» является относительно низкая плотность штрихов и пробелов и отсутствие воз' можности кодирования алфавитной информации (рис. 4.5.8). Этот код за рубе' жом используется для сортировки и учета товаров и изделий на складах, нумера' ции авиабилетов и т. п.
Рис. 4.5.8. Штриховой код «2 of 5»
Штриховой код 39. Наименование данного кода связано со структурой изоб' ражения букв «З из 9», где три элемента буквы (два штриха и один пробел) из девяти являются широкими, а остальные шесть – узкими. Каждая буква кода 39 представлена пятью штрихами и четырьмя пробелами. По сравнению с кодом «2 of 5» число вариантов изображения букв увеличивается в четыре раза и позво' ляет отобразить 40 различных букв. Предусмотрены четыре дополнительных зна' ка ($, », +, %). Код 39 является дискретным, контролируемым. Достоинством этого кода (рис. 4.5.9) является его очень высокая надежность, которая может быть увеличена добавлением в символ контрольной буквы. Этот код широко ис' пользуется в больницах, библиотеках, государственных учреждениях, на произ' водстве.
Считывание символьной информации
327
Рис. 4.5.9. Штриховой код 39
Штриховой код 128 обеспечивает возможность кодирования 128 различных букв. Код 128 принадлежит к той же группе, что и рассматриваемые далее коды EAN и UPC. В коде 128 первый элемент изображаемой буквы представляется штрихом, а последний – пробелом. Код 128 является непрерывным и неконтроли' руемым кодом (рис. 4.5.10). Предусматривается кодирование 107 различных букв (21 букв в резерве).
Рис. 4.5.10. Штриховой код 128
Штриховые коды UPC и EAN получили наиболее широкое распространение для кодирования товаров в производстве и торговле. Первый из них представляет стандарт кодирования, принятый в США, второй – в Европе. Сходство кодов UPC и EAN заключается в том, что в них используется для кодирования один и тот же набор букв: цифры от 0 до 9 и пять вспомогательных символов. Изображе' ние буквы содержит два штриха и два пробела. Длина буквы, отображающей циф' ру, равна 7 модулям. Вспомогательные буквы имеют три типоразмера 3, 5 и 6 мо' дулей (рис. 4.5.11). Обычно снизу штрихового кода печатается его цифровое значение для визуального контроля. Значение тринадцатой позиции символа оп' ределяется последовательностью сочетаний букв четного и нечетного паритетов, расположенных в левой части. Наибольшее распространение в торговле за рубе' жом получили тринадцати' и восьмиразрядные коды EAN. Эти штриховые коды относятся к непрерывным контролируемым кодам.
Рис. 4.5.11. Символ штрихового кода EAN
328
Методы анализа изображений
Считывание символьной информации
Символики сокращенной размерности (Reduced Space Symbology или RSS) – относительно новое семейство линейных штриховых кодов, характеризующее' ся малыми размерами штрихового кода (рис. 4.5.12–4.5.15) по сравнению с кода' ми EAN/UPC. Код RSS предназначен специально для совместного использова' ния с так называемыми композитными штриховыми кодами. Разработка RSS и композитной символики вызвана необходимостью маркировки малоразмерных объектов, на которые штриховой код EAN/UPC стандартного размера нанести затруднительно, а иногда и вовсе невозможно.
Рис. 4.5.12. Штриховой код сокращенной размерности – RSS14
Рис. 4.5.13. Штриховой код сокращенной размерности – сложенный RSS14
Рис. 4.5.12. Штриховой код сокращенной размерности – усеченный RSS14
Рис. 4.5.13. Штриховой код сокращенной размерности – расширенный RSS14
Двумерные штриховые коды Линейные штриховые коды были созданы и традиционно использовались как ма' шинно'читаемые идентификаторы на изделиях. При этом каждая этикетка содер' жала уникальный серийный номер, закодированный в виде черных и белых полос, который служил ключом в базе данных, содержащей более детальную ин' формацию. Но вскоре выяснилось, что многие пользователи нуждаются в более емких штриховых кодах, самостоятельно исполняющих роль портативной базы данных, а не только ключа в ней. Двумерный код (или 2Dкод) – наиболее общее наименование для всего этого класса символик. Названия стековая символика (stacked symbology) или многорядный код (multirow code) более точно отражают сущность серии кодов, в которых данные кодируются в виде нескольких строчек обычных одномерных штриховых кодов. Название матричный код (Matrix code) применяется для обозначения двумерных кодов, основанных на расположении черных элементов внутри матрицы. Каждый черный элемент имеет одинаковый размер, а позиция элемента кодирует данные. Линейный штриховой код имеет «вертикальную избыточность», означающую, что одна и та же информация повторяется по вертикали. Вертикальная избыточ'
329
ность позволяет штриховому коду, имеющему дефекты печати (например, пятна или просветы), сохранять читаемость. Двумерный код содержит информацию как по горизонтали, так и по вертикали. Поскольку оба направления содержат инфор' мацию, теряется возможность использования вертикальной избыточности (за' метим, что в двумерных стековых кодах присутствует небольшая вертикальная избыточность). Борьба с ошибками в двумерных кодах обеспечивается за счет ис' пользования специальных контрольных сумм, позволяющих гарантировать дос' товерность вводимой информации. Как правило, борьба с ошибками основывает' ся на применении кода Рида'Соломона. Первоначально двумерные коды разрабатывались для приложений, не даю' щих места, достаточного для размещения обычного штрихкодового идентифика' тора. Первым применением для таких символов стали упаковки лекарственных препаратов в здравоохранении. Эти упаковки малы по размерам и имеют мало места для размещения штрихового кода. Электронная промышленность также проявила интерес к кодам высокой плотности и двумерным кодам в связи с уменьшением размеров элементов и изделий. Позднее возможность кодирова' ния портативной базы данных сделала двумерные символики привлекательными для приложений, в которых минимизация размера кода не является основным требованием. Просто во многих случаях работнику гораздо удобнее непосред' ственно считать двумерный штриховой код с помощью портативного устройства, чем дозваниваться до компьютера, расположенного в офисе. На сегодня разработано более 20 различных символик двумерных штриховых кодов, которые отличаются формой и структурой символов, формой и возможны' ми цветами элементов, методами упаковки информации в символах, методами и степенью защиты информации от искажений изображений кодов на носителях. Ниже описаны два наиболее популярных типа двумерных кодов: стековая симво' лика PDF417 и матричная символика Datamatrix. Стековый код PDF417 Стековая символика PDF417 была введена в 1991 году фирмой Symbol Technolo' gies. PDF происходит от сокращения Portable Data File (портативный файл дан' ных), каждая буква символа состоит из 17 модулей, каждый из которых содержит 4 штриха и пробела (отсюда номер 417). Штриховой код открыт для общего пользования. Пример символа стекового кода PDF417 изображен на рис. 4.5.16.
Рис. 4.5.16. Символ штрихового кода PDF417
330
Методы анализа изображений
Каждый символ кода PDF417 содержит стартовую и стоповую группы штри' хов, увеличивающие надежность считывания штрихового кода. Он кодирует до 1850 буквенно'цифровых или 2710 цифровых знаков. Высокая емкость данных позволяет кодировать всю необходимую информацию о человеке, продукте, доку' менте или упаковке. Символику PDF417 рекомендуется использовать в транспорт' ной и автомобильной промышленностях, на транспортных этикетках и таможен' ных документах. PDF417 может кодировать не только текстовые, но и бинарные данные, поэтому им возможно закодировать все, что можно оцифровывать, вклю' чая цветные фотографии и отпечатки пальцев. Поэтому PDF417 используется также в системах идентификации личности. Матричный код Data Matrix Код Data Matrix от фирмы CiMatrix представляет собой двумерный код, разрабо' танный для размещения большого объема информации на ограниченной площади поверхности. Матричный код составляется из темных и светлых ячеек, которые могут быть квадратными (большинство современных матричных кодов), шести' угольными (MaxiCode) или круглыми (как в точечном коде) по форме. Данные кодируются в двоичной форме (обычно темная ячейка соответствует двоичной единице; а светлая ячейка – двоичному нулю), а схема декодирования использует технологии обнаружения и коррекции ошибки для создания избыточности. Мат' ричные коды масштабируются, и их теоретическая информационная емкость в один бит на ячейку дает им боêльшую плотность данных, чем у стековых кодов. Например, символ кода Data Matrix с размером ячейки (X'размер) в 10 mil (0,25 мм) может закодировать максимум 2000 знаков, занимая около 8 кв.см, по сравнению с 25 кв. см для тех же данных у символа PDF417 с тем же самым Х'размером. Данный штриховой код может масштабироваться от 1'mil плотности до четыр' надцатидюймовой площади и имеет теоретическую максимальную плотность до 500 миллионов символов на дюйм. На практике плотность, конечно, ограничива' ется разрешающей способностью печатающих устройств и сканеров. Код Data Matrix имеет фиксированную степень защиты от ошибок для каждого размера символа кода. Поскольку информация кодируется абсолютной позицией элемен' та внутри кода, то есть позицией относительно границ кода, код не так чувствите' лен к дефектам печати, как традиционный штриховой код. Схема кодирования имеет высокий уровень избыточности, данные рассредоточены внутри символа. Это позволяет сохранять читаемость кода при его частичном повреждении или потере части кода. Каждый код имеет измерительные линейки, которые выглядят как сплошная линия по одному краю символа и равномерно расположенные квад' ратные точки одинакового размера по другому краю. Эти линейки используются для определения ориентации и плотности кода. Существуют две основные версии данной символики. Одна использует свер' точное кодирование для коррекции ошибок, которое использовалось в первых версиях кода Data Matrix, эта версия описывается как ECC 000'140. Вторая вер' сия описывается как ECC 200 и использует коды Рида'Соломона для коррекции
Считывание символьной информации ошибок. Символы версии ECC 000'140 всегда имеют не' четное количество модулей по каждой стороне квадрата. Символы версии ECC 200 всегда содержат четное число элементов по каждой из сторон. Максимальная емкость символа ECC 200 (рис. 4.5.17) составляет 3116 цифр или 2335 букв в символе, состоящем из 144 модулей. Наиболее популярными применениями для Data Matrix является маркировка небольших предметов, таких как электронные элементы и печатные платы электронных приборов. Эти приложения используют способность Data Matrix разместить примерно 50 символов в коде размером 3 мм и тот факт, что код может быть прочитан при 20% кон' трастности печати. Код читается ПЗС'камерой или ПЗС' сканером.
331
Рис. 4.5.17. Символ штрихового кода Data Matrix версии ECC 200
Функция IMAQ: Read Barcode Функция IMAQ Read Barcode (рис. 4.5.18) позволяет распознавать штриховые коды на изображении.
Q Re ad Bar code Рис. 4.5.18. Функция IMA IMAQ Read Barcode
В качестве входного параметра нужно указать тип штрихкода. IMAQ Vision позволяет считывать следующие типы штриховых кодов: • Codabar; • Code 39; • Code 93; • Code 128; • EAN 8; • EAN 13; • Interleaved 2 of 5; • MSI; • UPCA. Стандартный пример приложения, иллюстрирующего считывание штрихо' вых кодов (рис. 4.5.19), можно найти, набрав слово «Barcodes» в поле поиска при' меров и выбрав «Read Barcode.vi». В составе IMAQ Vision имеются также специальные ВП, позволяющие считы' вать двумерные штриховые коды Data Matrix и PDF417.
332
Методы анализа изображений
Служебные функции пакета IMAQ Vision
333
ad Meter Рис. 4.5.20. Функция IMA IMAQ Read Q Re
IMAQ Get Meter или IMAQ Get Meter 2. Они отличаются тем, что первая функ' ция производит калибровку по трем указанным пользователем точкам – основа' нию стрелки, началу и концу дуги, описанной свободным концом стрелки на шка' ле прибора, а вторая – по двум линиям, которые являются крайними заданными положениями стрелки на шкале. Пример приложения, использующего данную функцию (рис. 4.5.21), можно найти, набрав «meter» в окне поиска примеров и выбрав пример «Meter Example.vi». Считывание показаний цифровых индикаторов Функция IMAQ: Read LCD
Рис. 4.5.19. Пример «Read Barcode.vi»
4.5.3. Считывание информации технических индикаторов Считывание показаний аналоговых индикаторов Функция IMAQ: Read Meter Функция IMAQ Read Meter (рис. 4.5.20) позволяет визуально считывать показа' ния с аналогового индикатора прибора. Для этого требуется указать координаты основания стрелки и массив коорди' нат дуги, которую описывает перемещение стрелки по шкале прибора. Для того чтобы было удобнее указывать эти параметры, можно использовать функции
Данный ВП (рис. 4.5.22) позволяет визуально считывать показания цифрового индикатора и выдавать их в числовом виде. Пользователь может указать, является ли экран наблюдаемого прибора жид' кокристаллическим (темные цифры на светлом фоне) или диодным (светлые цифры на темном фоне). Также задаются область поиска, порог бинаризации и флаги наличия знакового сегмента и десятичного разделителя. Здесь мы также рекомендуем ознакомиться с примером использования данной функции, который поставляется вместе с IMAQ Vision. Войдите в Help ⇒ Find Examples, перейдите к закладке Search и в поле поиска введите «LCD», после чего загрузите пример «LCD Example.vi» (рис. 4.5.23). Помимо рассмотренного, в палитре IMAQ имеются еще два ВП для считыва' ния показаний с цифровых индикаторов: IMAQ Get LCD ROI , позволяющий определять области, в которых содержатся цифры, и IMAQ Read Single Digit , позволяющий считать и распознать одну значащую цифру в заданной области интереса.
4.6. Служебные функции пакета IMAQ Vision 4.6.1. Ручные геометрические измерения и построения Функция IMAQ: Point Distances Функция IMAQ Point Distances (рис. 4.6.1) позволяет определить расстояния между соседними парами точек.
334
Методы анализа изображений
Служебные функции пакета IMAQ Vision
335
Рис. 4.5.23. Пример «LCD Example.vi»
QP oint Distances Рис. 4.6.1. Функция IMA IMAQ Po Рис. 4.5.21. Пример «Meter Example.vi»
Q Re ad LLCD CD Рис. 4.5.22. Функция IMA IMAQ Read
На вход функции подается массив из N точек. Функция находит расстояние между первой и второй точками, второй и третьей, … (N–1)'ой и N'ой точками и формирует из этих значений выходной массив (рис. 4.6.2). В упражнении, показанном на рис. 4.6.2 и 4.6.3, используется свойство области интереса ROI (region of interest), содержащееся в Property Node (узле свойств) для элемента отображения Image Original. Напомним, что практически для каж' дого элемента управления/отображения в Labview можно создать Property Node – структуру, содержащую полную информацию о данном элементе, например о
336
Методы анализа изображений
его положении на экране, текущем значении, названии и т. д. Таким образом, в ROI содержится информация о выбранных областях интереса. В данном случае ими являются три точки, установленные на этапе создания примера. Далее коор' динаты этих точек преобразуются в массив кластеров и используются в качестве входных параметров функции Point Distances. В данном примере на экран выво' дятся линии, соединяющие эти точки и расстояния между ними.
Служебные функции пакета IMAQ Vision
337
Q Get Angles Рис. 4.6.4. Функция IMA IMAQ
Рисунок 4.6.5 демонстрирует способ задания прямых. Если необходимо ис' пользовать четыре точки, то из них просто создается массив и подается на вход данной функции (в поле Points). Если же требуется измерить углы между прямы' ми с общей вершиной, то координаты этой вершины подаются на вход в качестве параметра Vertex. Также указывается, что данный параметр должен быть исполь' зован (в поле Use Vertex необходимо установить TRUE). В данном примере определяется угол между двумя прямыми с общей верши' ной (рис. 4.6.6 и 4.6.7).
QP oint Distances Рис. 4.6.2. Пример использования функции IMA IMAQ Po
Рис. 4.6.5. Определение углов по четырем (слева) и трем (справа) точкам
Функция IMAQ: Lines Intersection
Рис. 4.6.3. Блокдиаграмма приложения, QP oint Distances демонстрирующего применение ВП IMA IMAQ Po
Функция IMAQ Lines Intersection (рис. 4.6.8) позволяет найти координаты точки пересечения двух прямых (рис. 4.6.9) и угол между ними. Выходной параметр Angle (угол) отсчитывается от прямой Line 1 к прямой Line 2 против часовой стрелки. Блок'диаграмма данного упражнения представлена на рис. 4.6.10. Функция IMAQ: Perpendicular Line
Функция IMAQ: Get Angles Функция IMAQ Get Angles (рис. 4.6.4) позволяет определить углы между линия' ми, заданными тремя или четырьмя точками.
Функция IMAQ Perpendicular Line (рис. 4.6.11) позволяет построить перпенди' куляр к данной прямой из заданной точки и определить его длину (рис. 4.6.12). Соответствующая блок'диаграмма представлена на рис. 4.6.13.
338
Методы анализа изображений
Служебные функции пакета IMAQ Vision
Q Lines Inter sectio n Рис. 4.6.8. Функция IMA IMAQ Intersectio section
Q Get Angles Рис. 4.6.6. Результат выполнения функции IMA IMAQ
Q Lines Inter sectio n Рис. 4.6.9. Пример применения функций IMA IMAQ Intersectio section
Q Get Angles (сверху), Рис. 4.6.7. Основная блокдиаграмма примера для ВП IMA IMAQ блокдиаграмма вспомогательного ВП (снизу)
Рис. 4.6.10. Блокдиаграмма примера, Q Lines Inter sectio n использующего функции IMA IMAQ Intersectio section
339
340
Методы анализа изображений
QP erpendicular Line Рис. 4.6.11. Функция IMA IMAQ Perpendicular
Служебные функции пакета IMAQ Vision
Q Bisecting Line Рис. 4.6.14. Функция IMA IMAQ
QP erpendicular Line Рис. 4.6.12. Пример работы функции IMA IMAQ Perpendicular
Q Bisecting Line Рис. 4.6.15. Результат применения IMA IMAQ
QP erpendicular Line Рис. 4.6.13. Блокдиаграмма примера для функции IMA IMAQ Perpendicular
Функция IMAQ: Bisecting Line Функция IMAQ Bisecting Line (рис. 4.6.14) позволяет найти прямую, являющуюся биссектрисой угла, образованного двумя заданными прямыми линиями (рис. 4.6.15). Блок'диаграмма данного примера показана на рис. 4.6.16.
Рис. 4.6.16. Блокдиаграмма приложения, Q Bisecting Line демонстрирующего использование функций IMA IMAQ
341
342
Методы анализа изображений
Функция IMAQ: Mid Line Функция IMAQ Mid Line (рис. 4.6.17) позволяет найти прямую, параллельную заданной и делящую пополам перпендикуляр, опущенный на заданную прямую из заданной точки (рис. 4.6.18). Блок'диаграмма соответствующего приложения помещена на рис. 4.6.19.
Q Mid Line Рис. 4.6.17. Функция IMA IMAQ
Служебные функции пакета IMAQ Vision
343
4.6.2. Работа c растровым изображением и областями интереса Функция IMAQ: GetRowCol Функция IMAQ GetRowCol (рис. 4.6.20) позволяет сформировать массив, содер' жащий интенсивности пикселей, находящихся в выбранной строке или столбце изображения. В зависимости от формата изображения будет заполнен один из трех выход' ных массивов данного ВП. Например, если изображение 8'битное, только массив Pixels (U8) будет содержать значения (рис. 4.6.21), остальные два массива будут пустыми.
Q GetRowCol Рис. 4.6.20. Функция IMA IMAQ
Q Mid Line Рис. 4.6.18. Результат работы примера, использующего ВП IMA IMAQ
Q GetRowCol Рис. 4.6.21. Блокдиаграмма примера использования ВП IMA IMAQ
Функция IMAQ: ImageToArray
Q Mid Line Рис. 4.6.19. Блокдиаграмма применения функции IMA IMAQ
Функция IMAQ ImageToArray (рис. 4.6.22) позволяет преобразовать все изобра' жение или его часть из формата IMAQ Vision в двумерный массив. Выходные массивы заполняются точно так же, как в IMAQ GetRowCol.
344
Методы анализа изображений
Служебные функции пакета IMAQ Vision
Q ImageT oArra Рис. 4.6.22. Функция IMA IMAQ ImageToArra oArrayy
Помимо описанных, имеются еще две функции: IMAQ GetPixelValue и IMAQ GetPixelLine , позволяющие преобразовывать значения яркости конк' ретного пикселя и пикселей, принадлежащих заданной линии, соответственно из формата изображения IMAQ в числовой. В палитре IMAQ также имеется набор инструментов, позволяющих делать об' ратное преобразование. Функция IMAQ: SetPixelLine Функция IMAQ SetPixelLine (рис. 4.6.23) изменяет значения интенсивности пикселей, лежащих на заданной линии изображения. Функция IMAQ SetPixelLine позволяет рисовать линию, непосредственно из' меняя пиксели изображения (рис. 4.6.24).
Q SetPixelLine Рис. 4.6.23. Функция IMA IMAQ
В отличие от IMAQ SetPixelLine ВП IMAQ Overlay Line, как и все функции палитры Overlay, работают в отдельном слое изображения, называемом overlay, который является практически независимым от растрового слоя, содержащего значения пикселей. Overlay можно копировать из одного изображения в другое, модифицировать, стирать, но при этом само изображение остается неизменным. Этот слой также можно и смешать с изображением при помощи функции IMAQ Merge Overlay. Только в этом случае содержание изображения изменится. Помимо описанных двух слоев, на изображении в системе NI Vision может присутствовать и третий. Он представляет собой область интереса, отмеченную так называемыми «графическими объектами». Графические объекты – это такие элементы на изображении, положение и размеры которых можно интерактивно изменять при помощи мыши. Например, на рис. 4.6.25 на изображении выделено две области интереса. На левый из них в момент захвата данного скриншота был наведен курсор мыши, в результате чего данный графический объект стал «актив'
Q SetPixelLine Рис. 4.6.24. Пример работы функции IMA IMAQ
Рис. 4.6.25. Изображение с выделенными областями интереса
345
346
Методы анализа изображений
ным», что подчеркивается соответствующей дополнительной графикой, позволя' ющей пользователю изменять его свойства. Слой графических объектов также является независимым от изображения. С ним можно производить те же манипуляции, что и со слоем наложений (overlay). Другие функции палитры Pixel Manipulation VIs позволяют «залить» изобра' жение определенным цветом (функция IMAQ FillImage ), нарисовать на нем какую'либо геометрическую фигуру (IMAQ Draw ) или написать текст (IMAQ Draw Text ). Существуют также функции, присваивающие значения яркости пикселю (IMAQ SetPixelValue ), столбцу или строке пикселей (IMAQ SetRowCol ) либо всему изображению (IMAQ ArrayToImage ).
Цифровая фотограмметрия и бесконтактные измерения
5
5.1. Методы цифровой фотограмметрии 5.1.1. Фотограмметрический метод бесконтактных трехмерных измерений Развитие современной вычислительной техники и средств получения цифровых изображений обеспечило надежный фундамент для создания бесконтактных сис' тем трехмерных измерений, основанных на фотограмметрическом подходе, позволяющем определять пространственные координаты объекта по его разнора' курсным изображениям (фотографиям). В настоящее время фотограмметриче' ские методы широко используются для построения карт и моделей местности по аэро' и космическим снимкам. Снимки архитектурных сооружений используют' ся для измерения необходимых пространственных размеров зданий. Фотограм' метрические методы применяются в судостроении (внутренние и внешние обме' ры элементов корабля), медицине, микроизмерениях и многих других областях. Развитие фотограмметрии от появления фотографии как средства получения изображений до недавнего времени шло, главным образом, по линии решения за' дач, возникающих при проведении наземных съемок и аэрофотосъемок для целей картографирования. Использование фотограмметрии для измерений близко рас' положенных объектов (инженерной фотограмметрии) ограничивалось необходи' мостью использования дорогостоящей и низко производительной аналоговой из' мерительной техники (стереокомпараторов, стереометров, стереопланиграфов). Однако распространение высокопроизводительной вычислительной техники, с одной стороны, и совершенствование средств получения цифровых изображе' ний, с другой стороны, обусловили необходимые предпосылки для появления вы' сокоэффективных цифровых аппаратно'программных комплексов для практи'
348
Цифровая фотограмметрия и бесконтактные измерения
ческой инженерной фотограмметрии. В последние десятилетия стало возможным применять методы машинного зрения для решения задач бесконтактных измере' ний и создания трехмерных компьютерных моделей объектов сложной формы и тем самым обеспечивать высокую точность и высокую степень автоматизации из' мерений в промышленности и на производстве. Основными задачами, которые требуется решить при определении трехмер' ных координат точек объекта фотограмметрическими методами, являются сле' дующие. • Выбор конфигурации съемки. Качество измерений существенно зависит от выбранных масштаба съемки, расположения съемочных камер, собствен' ной формы объекта, а также от ограничений, налагаемых условиями съем' ки. Поэтому для обеспечения требуемых показателей качества модели в каждом конкретном случае необходимо для заданного класса объектов ре' шать задачу выбора количества, параметров и расположения камер. • Задача калибровки. Под задачей калибровки понимаются определение адекватной математической модели съемки (геометрии получения изобра' жения) и оценка параметров данной модели. • Задача стереоотождествления. Проблема стереоотождествления заключа' ется в идентификации на разноракурсных (стерео) снимках соответствую' щих двумерных изображений одной и той же заданной трехмерной точки поверхности объекта и высокоточном измерении ее координат на этих изображениях. • Задача расчета трехмерных координат точек объекта сложной формы. Стереосистема машинного зрения может определить трехмерные коорди' наты тех точек объекта, которые одновременно видны обеими камерами. Поэтому даже для не очень сложных поверхностей по стереопаре изобра' жений может быть восстановлена лишь частичная модель (фрагмент) объекта. Рассмотрим далее основные элементы фотограмметрического решения задач трехмерных бесконтактных измерений.
5.1.2. Математическая модель камеры В традиционных фото' и видеокамерах, используемых в технических системах, снимок формируется по закону центрального проектирования, когда точка сним' ка получается как точка пересечения прямой, проходящей через центр проекции (точку съемки) и точку объекта, с плоскостью снимка. Для описания геометрической модели камеры вводятся две системы координат: • Пиксельная система координат цифрового снимка (opixxpixypix) имеет начало координат в левом верхнем углу оцифрованного изображения. Начало ко' ординат выбирается таким образом, что левый верхний пиксель изображе' ния имеет координаты (0,0). Ось opixxpix направлена вправо вдоль строк изображения, а ось opixypix – вниз. Единицей измерения координат в этой си' стеме является пиксель.
Методы цифровой фотограмметрии
349
В этой системе координат измеряются координаты точек оцифрованного изображения. • Пространственная система координат цифрового снимка (Sxyz) имеет на' чало координат в центре проектирования. Отрицательное направление оси Sz совпадает с главной осью съемочной камеры. Оси Sx и Sy лежат в плоско' сти снимка и образуют вместе с осью Sz правую систему координат. Ось Sx параллельна оси opixxpix пиксельной системы координат, а ось Sy параллель' на оси opixypix пиксельной системы координат и направлена в противополож' ную сторону. При рассмотрении модели камеры считается, что плоскость снимка лежит впе' реди центра проектирования, поэтому любая точка снимка в этой системе имеет координаты (x, y, –f). Величина f равняется расстоянию от центра проектирова' ния до плоскости снимка и всегда считается положительной. В этой системе координат записываются координаты точки снимка в условиях коллинеарности и при вычислении пространственных координат точек объекта. Рассмотрим связи между пиксельной opixxpixypix и пространственной Sxyz систе' мами координат снимка. Пусть (xpix,ypix) – пиксельные координаты точки снимка. Тогда переход к искаженным координатам точки снимка осуществляется по фор' мулам: xa = mx × (xpix – bx), ya = my × (by – ypix), где mx, my – размер элемента дискретизации изображения, bx, by – пиксельные ко' ординаты главной точки снимка. Нелинейные искажения изображения вводятся в виде: ∆х = а0yа + ха(а1r2 + a2r4 + a3r6) + a4(r2 + 2xa2) + 2a5xaya, ∆y = a0xa + ya(a1r2 + a2r4 + a3r6) + a5(r2 + 2ya2) + 2a5xaya, где r2 = xa2 + ya2. Преобразование пиксельных координат точки снимка осуществляется следу' ющим образом: • пиксельные координаты xpix, ypix преобразуются к искаженным координатам xa,ya; • вычисляются нелинейные искажения ∆x, ∆y для данной точки; • вычисляются истинные координаты x, y точки снимка путем прибавления к рассчитанным искаженным координатам соответствующих нелинейных искажений: x = xa + ∆x, y = ya + ∆y. При решении задачи вычисления координат точки снимка, соответствующей данной точке поверхности, необходимо по истинным координатам (x,y) вычис' лить пиксельные координаты (xpix,ypix) точки снимка. В дальнейшем все геометри' ческие соотношения записываются для истинных координат снимка (x,y), связь которых с пиксельными координатами приведена выше.
350
Цифровая фотограмметрия и бесконтактные измерения
Положение снимка относительно выбранной фотограмметрической системы координат, в которой измеряются пространственные координаты точек объекта, определяется вектором координат точки съемки X0f и матрицей вращения Af, ко' торая является функцией трех углов последовательных поворотов системы коор' динат. В рассматриваемом методе используется последовательность поворотов, при' нятая в аэросъемке (α, ω, κ): • первый поворот вокруг оси – OY фотограмметрической системы координат; • второй – вокруг новой оси OX; • третий – вокруг оси OZ системы координат, связанной с камерой. Элементы матрицы вращения находятся из следующих соотношений: a11 = cosα × cosk – sinα × sinω × sink; a12 = cosω × sink; a13 = sinα × cosk + cosα × sinω × sink; a21 = –cosα × sink – sinα × sinω × cosk; a22 = cosω × cosk; a23 = –sinα × sink + cosα × sinω × cosk; a31 = –sinα × cosω; a32 = –sinω; a33 = cosα × cosω. Отсюда: a = –arctg(a31 / a33); ω = –arcsin(a32); k = arctg(a12 / a22). При решении фотограмметрических задач используются условия коллинеар' ности (нахождения на одной прямой) для точки съемки, точки объекта и точки снимка следующего вида: ex = dx + dzx / f; ey = dy + dzy / f,
Методы цифровой фотограмметрии
351
• производится съемка большого числа разноракурсных снимков калибро' вочного поля; • на каждом снимке измеряются координаты всех видимых точек калибро' вочного поля; • для каждой точки каждого снимка записываются условия коллинеарности центра проектирования, точки снимка с учетом искажений и точки калиб' ровочного поля; • по методу наименьших квадратов находятся значения оцениваемых пара' метров (в которые включаются и параметры камеры) соответствующих ми' нимуму суммы квадратов невязок условий коллинеарности. При проведении калибровки в вектор оцениваемых параметров включаются плановые координаты определяемых точек калибровочного поля, элементы внеш' него ориентирования всех снимков, а также элементы внутреннего ориентирова' ния и параметры нелинейных искажений всех камер комплекса. Наиболее трудоемкой ручной операцией при использовании данного подхо' да к калибровке является измерение большого количества координат опорных точек калибровочного поля на множестве разноракурсных изображений. Пусть калибровочное поле содержит 49 точек, видимых с двух камер на 15 снимках, полученных каждой камерой; тогда для проведения калибровки необходимо с высокой точностью определить координаты 1470 точек. Поэтому в задачах ближней фотограмметрии для применения подобного метода калибровки не' обходимо решить вопрос автоматической идентификации точек снимков, что достигается применением в качестве опорных точек специальных кодирован' ных меток, подлежащих автоматическому распознаванию (декодированию). При этом к алгоритму распознавания и структуре меток предъявляются два сле' дующих основных требования: • возможность определения координат центров меток с субпиксельной точ' ностью; • высокая надежность декодирования номера метки.
5.1.4. Внешнее ориентирование камер где В приведенных условиях невязки ex и ey измеряются в предметном простран' стве, в плоскости, параллельной плоскости снимка.
5.1.3. Калибровка видеокамер Рассмотрим удобный с практической точки зрения метод калибровки, который заключается в следующем: • изготавливается специальное калибровочное поле (плоский стенд) со спе' циально помеченными точками, координаты которых заранее известны с высокой степенью точности;
Необходимым этапом при построении фотограмметрического измерительного комплекса является определение элементов внешнего ориентирования камер. В результате выполнения процедуры внешнего ориентирования не только опре' деляется взаимное расположение камер, но и фиксируется фотограмметрическая система координат комплекса. Для проведения внешнего ориентирования используется то же калибровочное поле, что и в операции калибровки. Процедура внешнего ориентирования состоит из следующих этапов: • установка калибровочного поля в исходное положение, определяющее фо' тограмметрическую систему координат (в дальнейшем элементы внешнего ориентирования снимков будут определяться относительно именно этой системы);
352
Цифровая фотограмметрия и бесконтактные измерения
• получение снимков калибровочного поля в этом положении всеми камера' ми комплекса; • установка калибровочного поля в несколько дополнительных положений (при проведении ориентирования измерительного комплекса калибровоч' ное поле устанавливается в два дополнительных положения вблизи ближ' ней и дальней границы рабочей области комплекса соответственно); • получение снимков калибровочного поля в дополнительных положениях всеми камерами комплекса; • распознавание кодированных меток на всех полученных снимках; • вычисление элементов внешнего ориентирования по методу наименьших квадратов при условии минимума невязок условий коллинеарности вида: ex = dx + dzx / f; ex = dy + dzy / f, где
где Am(αm, ωm, km) и X0m – соответственно
матрица вращения и вектор сдвига калибровочного поля в дополнительных положениях. При проведении внешнего ориентирования в вектор оцениваемых параметров входят элементы внешнего ориентирования всех камер комплекса и параметры, определяющие положение калибровочного поля в дополнительных положениях.
5.1.5. Решение задачи стереосоответствия при построении модели поверхности. Структурированный подсвет После того как в результате проведенных операций калибровки и ориентирова' ния геометрическая модель стереосъемки стала известна нам со всеми своими па' раметрами, мы в принципе готовы к решению задачи реконструкции трехмерных координат точек снимаемой поверхности. При этом для того чтобы вычислить трехмерные координаты любой точки поверхности, необходимо лишь определить положение ее проекции на снимках всех камер, используемых в измерительном комплексе. Иными словами, нам необходимо установить соответствие каждой интересующей нас точки на изображении, полученном от одной камеры системы, ее же изображениям на снимках, полученных от других камер системы. Конечно, в лабораторных условиях оператор измерительного комплекса в состоянии ука' зать такие соответствующие точки разных снимков вручную, но в современных измерительных системах, используемых для реконструкции трехмерной формы объекта, необходимо измерять за короткие промежутки времени тысячи и даже сотни тысяч точек. Поэтому возникает задача автоматического определения соот' ветствующих точек на изображениях от нескольких камер, называемая также за дачей установления стереосоответствия.
Методы цифровой фотограмметрии
353
Как было описано выше, в случае калибровочного поля в решении этой задачи нам помогает обнаружение специальных меток, имеющих уникальные номера. После распознавания меток точки с номером 1 считаются соответствующими на всех снимках, также точки с номерами 2, 3 и т. д. Однако на реальных изображени' ях, например, земной поверхности, получаемых при аэрофотосъемке, никаких специальных меток нет. Задача установления стереосоответствия в таком случае может решаться только путем математического (например, корреляционного) со' поставления окрестностей соответствующих точек, которые должны выглядеть достаточно «похожими» с учетом разницы в ракурсе съемки. Поэтому в приложе' ниях так называемой «дальней» фотограмметрии задача определения стереосоот' ветствия точек является ключевой задачей стереореконструкции и сопряжена с целым рядом проблем, ошибок и специфических трудностей, связанных с не' однозначностью результатов анализа изображения, особенно в малоинформатив' ных областях, лишенных характерной контрастной текстуры, способствующей надежному отождествлению соответствующих и различению несоответствую' щих точек поверхности. К счастью, в приложениях инженерной фотограмметрии, в условиях работы на небольших дальностях с объектами небольшого размера (до единиц метров), мы имеем возможность искусственно создавать такую специальную текстуру на исследуемой поверхности за счет специального структурированного подсвета. Такой подсвет может осуществляться одной или несколькими линиями, регуляр' ной решеткой, множеством точек или каким'либо еще способом. Важно лишь, чтобы соответствующее программное обеспечение позволяло использовать диф' ференциацию точек изображения, создаваемую структурированным подсветом, для решения задачи стереоотождествления. В случае если количество подсве' ченных на одной стереопаре точек недостаточно для построения полной модели поверхности, используют ряд последовательных стереопар одного и того же объекта, причем от снимка к снимку элементы структурированного подсвета пе' ремещаются по поверхности – за счет движения источника подсвета относитель' но неподвижного объекта либо за счет движения самого объекта (например, на конвейере или специальном поворотном устройстве). В таком случае говорят о фотограмметрическом «сканировании» поверхности объекта. Рассмотрим простейший вариант «линейного» структурированного подсвета, при котором исходными данными для построения модели поверхности являются пиксельные координаты подсвеченных одной кодированной вертикальной лини' ей точек снимков всех камер. В случае двух камер для получения пространственных координат соответст' вующих точек необходимо решить задачу идентификации точки профиля правой камеры, соответствующей данной точке левой камеры. По координатам соответ' ствующих точек можно найти пространственные координаты точки в фотограм' метрической системе координат. Задача нахождения соответствующей точки на правом профиле может быть решена путем приведения координат точек снимка к нормальному случаю съемки в базисной системе координат (см. ниже). При этом ординаты соответствующих
354
Цифровая фотограмметрия и бесконтактные измерения
точек будут равны. Поэтому каждой точке левого снимка будет соответствовать точка правого снимка с равной ей ординатой. Абсцисса соответствующей точки находится линейной интерполяцией между ближайшими узлами ломаной.
5.1.6. Приведение координат точек снимков к нормальному случаю съемки. Определение элементов взаимного ориентирования по внешнему Для решения этой задачи используется базисная система координат, которая вво' дится принятым в аэросъемке способом. Ось X этой системы направлена по бази' су фотографирования (от левого снимка к правому), а направление остальных осей выбирается таким образом, чтобы угол ω при переходе от базисной системы координат к системе координат левого снимка в последовательности поворотов (α, ω, κ) был равен нулю. Пусть Bg = X0f2 – X0f1 – вектор координат базиса в фотограмметрической систе' ме координат. Тогда B1 = A1Bg – вектор координат базиса в системе координат, связанной с левой камерой. Обозначив координаты вектора B1 через (bx,by,bz), можно записать выражения для углов последовательных поворотов системы координат левого снимка отно' сительно базисной системы, которые могут быть получены следующим образом. Координаты вектора базиса в системе координат снимка определяются из со' отношений:
На основании формул для элементов матрицы через углы последовательных поворотов при ω = 0 можно записать: a11 = cosα × cosk; a21 = –cosα × sink; a31 = –sinα. Тогда
ω = 0; k = –arctg(by / bx). По полученным значениям углов может быть вычислена матрица перехода от базисной системы координат к системе координат Ab1, связанной с левой ка' мерой.
Методы цифровой фотограмметрии
355
После этого матрица перехода от базисной системы координат к системе, свя' занной с правой камерой, может быть найдена путем последовательного перехода от базисной к фотограмметрической системе координат с матрицей ATgb и последу' ющего перехода к системе координат правого снимка с матрицей Ag2 по формуле: Ab2 = Ag2ATgb, где Agb = ATb1Ag1 – матрица перехода от фотограмметрической системы координат к базисной, получаемая последовательными переходами от фотограмметрической системы координат к системе координат левого снимка с матрицей Ag1 и перехода от системы координат, связанной с левым снимком к базисной с матрицей ATb1. Пересчет координат точек первого исходного снимка осуществляется по сле' дующим формулам:
Для второго снимка пересчет осуществляется по аналогичным формулам:
Преобразование координат точек снимков в базисную систему можно выпол' нить для любого значения фокусного расстояния преобразованных координат. В данном случае оба снимка приводятся к фокусному расстоянию левого снимка. Равенство фокусных расстояний приведенных снимков необходимо для выпол' нения искомого условия равенства ординат соответствующих точек.
5.1.7. Вычисление пространственных координат точек поверхности После решения задачи стереосоответствия путем приведения координат точек к нормальному случаю съемки пространственные координаты каждой интересую' щей нас точки Xg трехмерной поверхности объекта вычисляются по формулам:
356
Цифровая фотограмметрия и бесконтактные измерения
Фотограмметрический комплекс для бесконтактных измерений
357
Таким образом, задача стереореконструкции трехмерной поверхности объек' та, сканируемой линейным структурированным подсветом, с математической точки зрения оказывается полностью решенной.
5.2. Фотограмметрический комплекс для бесконтактных измерений на базе LabVIEW и PXI Рассмотрим в качестве примера практического приложения в области бесконтак' тных трехмерных измерений фотограмметрический комплекс, реализованный на базе LabVIEW и промышленного компьютера PXI производства фирмы National Instruments (США). Поскольку это пример построения практической системы машинного зрения, мы будем уделять внимание не только построению программ' ного обеспечения и задействованным функциям LabVIEW, но и характеристикам аппаратного обеспечения, также определяющим финальные параметры системы в целом.
Рис. 5.2.1. Внешний вид компьютера PXI1002
повышенной влажностью, вибрацией, ударами, запыленностью и другими вред' ными факторами и воздействиями. Спецификация компьютера PXI'1002 представлена в табл. 5.2.1.
Таблица 5.2.1. Спецификация промышленного компьютера
Рассматриваемый фотограмметрический комплекс для бесконтактных измере' ний включает следующие аппаратные компоненты: • промышленный компьютер PXI'1002; • плату захвата видеосигнала (фреймграббер); • коммутатор входного видеосигнала; • ПК'управляемый источник структурированного подсвета на базе устрой' ства позиционирования и лазерного источника структурированного света; • две CCD'видеокамеры.
Промышленный компьютер PXI1002 Процессор: Тип и объем оперативной памяти: Чипсет: Видеосистема: Котроллеры периферийных устройств: Плата захвата видеоисигнала: Питание: Рабочая температура: Габаритные размеры: Масса: Производитель:
Промышленный компьютер
Плата захвата видеосигнала
Промышленный компьютер (рис. 5.2.1) отличается от обычного офисного ПК на базе аналогичного процессора возможностью беспрерывной круглосуточной ра' боты в условиях реального промышленного производства, характеризующихся
Плата видеозахвата PXI NI'1409 обеспечивает ввод в компьютер монохромных изображений с четырех камер. Основные технические характеристики платы ви' деозахвата PXI NI'1409 приведены в табл. 5.2.2.
5.2.1. Аппаратное обеспечение комплекса
Intel Pentium III 1200 MHz SDRAM 128 MB Intel Встроенная, 8 MB COM×2, LPT, GRIB, USB×2 NI PXI1409 222 V (–30 °С) – (+100 °С) 250×210×170 мм 5 кг National Instruments
358
Цифровая фотограмметрия и бесконтактные измерения
Фотограмметрический комплекс для бесконтактных измерений
359
Таблица 5.2.2. Основные технические характеристики платы видеозахвата Монохромная плата захвата NI1409 Количество подключаемых камер Объем памяти на борту Глубина оцифровки видеосигнала Скорость оцифровки видеосигнала Триггеры – 8 каналов Синхронизация – 6 каналов
До четырех камер 16 МВ 8, 10 бит 60 кадров/с 8 триггерных каналов 4 триггера
Коммутатор входного видеосигнала Для подключения к плате захвата нескольких камер, а также реализации некото' рых других аппаратных возможностей фреймграббера (таких, например, как триггеры), используется коммутатор (рис. 5.2.2). Рис. 5.2.3. Видеокамера PULNiX TM260NIR
Таблица 5.2.3. Основные характеристики камеры PULNiX TM260NIR (продолжение)
Рис. 5.2.2. Коммутатор входного видеосигнала
Коммутатор обеспечивает возможность поочередного подключения к плате видеозахвата до восьми видеокамер. Видеокамеры В данном измерительном комплексе используется две CCD'камеры типа PULNiX TM'260NIR. Внешний вид камеры показан на рис. 5.2.3. Основные технические характеристики камер приведены в табл. 5.2.3.
Таблица 5.2.3. Основные характеристики камеры PULNiX TM260NIR 1/2" ПЗСкамера, CCIR (TM260NIR), с повышенной чувствительностью в ближней ИКобласти спектра Разрешение: 752×582 (CCIR) Размер пикселя: 8,6×8,3 мкм (CCIR) Сканирование: 2:1 Синхронизация: внутренняя/внешняя
1/2" ПЗСкамера, CCIR (TM260NIR), с повышенной чувствительностью в ближней ИКобласти спектра Отношение сигнал/шум: > 50 дБ (AGC выкл.) Чувствительность: 0,5 лк, F=1,4 AGC (АРУ): вкл./выкл., ручной контроль Гаммакоррекция: 0,45 или 1,0 Электронный затвор: ручной до 1/29000 Крепление объектива: Cmount Питание: 12 В, 190 мА Рабочая температура: (–10 °С) – (+50 °С) Допустимые вибрации: 7g (10–2000 Гц), удар 70g Габаритные размеры: 44×44×62,3 мм Масса: 157 г Производитель: PULNiX
Источник структурированного света Структурированный подсвет измеряемого объекта обеспечивается лазерным ис' точником структурированного света Lasiris™ SNF Laser. Данный источник струк' турированного света (ИСС) обладает равномерным распределением интенсивно' сти в проецируемых шаблонах, варьируемой длиной волны излучения и выходной мощностью, защитой от перегрева, перегрузок электропитания и поставляется в исполнении, защищенном от ударов и вибрации. Внешний вид лазерного источ' ника структурированного света представлен на рис. 5.2.4. В рассматриваемом измерительном комплексе используется источник SNF' 501'660'35, генерирующий на выходе одну вертикальную линию. Основные тех' нические характеристики лазерного источника приведены в табл. 5.2.4.
360
Цифровая фотограмметрия и бесконтактные измерения
Фотограмметрический комплекс для бесконтактных измерений
361
Рис. 5.2.4. Лазерный источник структурированного света
Таблица 5.2.4. Основные технические характеристики лазерного источника света Лазерный источник структурированного света SNF50166035 Выходная мощность: 35 мВт Длина волны: 669 нм Угол расходимости: 20 Диапазон рабочих температур: (–10 °С) – (+48 °С) Размеры: ∅19×69 мм Вес: 65 г
Для автоматизации процесса измерений лазерный источник структурирован' ного света установлен на устройстве позиционирования, управляемом от персо' нального компьютера (рис. 5.2.5). Устройство позиционирования управляется через внешний контроллер, име' ющий параллельный интерфейс с персональным компьютером. Внешний вид контроллера представлен на рис. 5.2.6.
5.2.2. Программное обеспечение комплекса Программное обеспечение системы бесконтактных фотограмметрических изме' рений включает модуль калибровки системы (calibr.vi) и модуль множественных трехмерных измерений (scaner3d.vi). Модуль калибровки служит для определе' ния параметров ориентирования камер, что обеспечивает заданную точность из' мерений координат. Модуль сканирования служит для проведения в автомати' ческом режиме сеанса измерений точек поверхности объекта, одновременно видимых с обеих камер.
Рис. 5.2.5. Лазерный источник и устройство позиционирования
Рис. 5.2.6. Контроллер устройства позиционирования
Модуль калибровки Калибровка заключается в определении внешних и внутренних параметров ориенти' рования камеры (см. раздел 5.1). Для проведения калибровки используется специаль' ная калибровочная пластина с расположенными на ней изображениями кодированных меток. На изображении пластины, полученном каждой из камер, распознавание ме' ток происходит автоматически, с вычислением координат центра метки и ее номера. Данная процедура производится для обеих камер при различных положениях калиб' ровочной пластины. Всего таких положений 15. На основе полученных данных, а так' же известных (заранее измеренных вручную с высокой точностью) координат меток на самой пластине вычисляются параметры ориентирования камер. Внешний вид модуля, предназначенного для проведения процедуры калиб' ровки, показан на рис. 5.2.7. На данной форме расположены следующие элементы: • список индикаторов, каждый из которых во включенном состоянии инфор' мирует, что для соответствующего положения пластины пара изображений была получена; • переключатель NumStep, позволяющий выбрать, для какого положения пластины будет производиться съемка; • кнопка Snap, предназначенная для захвата пары изображений после того, как было выбрано соответствующее положение калибровочной пластины; • три закладки – Help, Left camera и Right camera; на первой расположено схематичное изображение, показывающее, в какое положение необходимо
362
Цифровая фотограмметрия и бесконтактные измерения
Фотограмметрический комплекс для бесконтактных измерений
363
установить калибровочную пластину, на остальных двух расположены со' ответственно изображения, полученные с левой и правой камеры при дан' ном положении калибровочной пластины (рис. 5.2.8); • кнопка Finish, при нажатии на которую происходит обработка всех полу' ченных снимков и определение параметров ориентирования. Рис. 5.2.9 показывает фрагмент диаграммы LabVIEW, описывающей процесс калибровки камер.
Рис. 5.2.7. Экранная форма проведения процедуры калибровки
Рис. 5.2.9. Фрагмент диаграммы, описывающей процесс калибровки камер
Результаты калибровки сохраняются в файлах заданного формата, которые впоследствии используются модулем сканирования в процессе расчетов. На рис. 5.2.10 показан диалог, отображающий качество результатов калиб' ровки. Модуль сканирования
Рис. 5.2.8. Изображение калибровочного поля
В описываемой системе реконструкция поверхности объекта реализуется на ос' нове подсветки лазером в виде вертикальной линии. Особенностью данного ис' точника подсвета является высокая яркость, позволяющая проводить процесс
364
Цифровая фотограмметрия и бесконтактные измерения
Фотограмметрический комплекс для бесконтактных измерений
Рис. 5.2.10. Диалог результатов калибровки
сканирования при достаточном уровне внешней освещенности (по меньшей мере, при дневной комнатной освещенности). Устройство, генерирующее лазерный подсвет, размещается на поворотном шаговом двигателе. В процессе сканирова' ния лазерный луч пробегает по всей поверхности объекта. В каждом положении луча происходит съемка объекта с двух камер. На основе двух полученных изоб' ражений освещенного профиля объекта восстанавливается сам пространствен' ный профиль. Внешний вид модуля, реализующего процесс сканирования, представлен на рис. 5.2.11. На форме, показанной на рисунке, расположены следующие элементы: • две закладки для левой и правой камеры, на каждой из которых расположе' ны: элемент для установки порогового значения яркости для определения сканирующей линии на изображении и само изображение объекта; • кнопки MoveLineBack и MoveLineForward для установки сканирующего лазерного луча в начальное положение; • элемент ScanStep для установки шага сканирования в единичных переме' щениях шагового двигателя; • кнопка Start для начала и остановки процесса сканирования. При запуске модуля последовательно появляются две специальные формы с изображением объекта для выбора прямоугольной области сканирования для левой и правой камеры. Перед началом сканирования задается пороговое значение и устанавливается начальное положение сканирующей линии, а также устанавливается требуемый шаг сканирования. Чем меньше шаг сканирования, тем больше требуется для него времени, но тем более детальной получается модель. Результаты изменения пара' метров сразу отображаются в окне (рис. 5.2.12).
Рис. 5.2.11. Экранная форма процесса сканирования
Рис. 5.2.12. Результат выделения структурированного подсвета на текущем шаге сканирования
365
366
Цифровая фотограмметрия и бесконтактные измерения
Фотограмметрический комплекс для бесконтактных измерений
Фрагмент диаграммы, реализующий процесс настройки параметров и отобра' жения внесенных изменений, показан на рис. 5.2.13.
Рис. 5.2.14. Фрагмент диаграммы, реализующей процесс сканирования
Рис. 5.2.13. Фрагмент диаграммы, реализующий процесс настройки параметров
После завершения всех подготовительных операций нажимается кнопка Start, и начинается процесс сканирования. Перемещение линии отображается в окне формы. За каждый шаг сканирования с камер снимаются два изображения. На каждом изображении производится выделение линии. Линия представлена в виде массива двумерных точек. Полученные координаты точек сохраняются в памяти для последующей обработки. Фрагмент диаграммы, реализующей процесс сканирования и отображения его на форме приложения, показан на рис. 5.2.14. Процесс сканирования завершается оператором, для чего необходимо «от' жать» кнопку Start. Далее для каждой пары линий, полученных ранее по их дву' мерным координатам, используя известные заранее параметры ориентирования камер, вычисляется соответствующий им трехмерный профиль объекта. Множе' ство таких профилей образуют поверхность объекта, состоящую из множества точек. Данное облако точек подвергается процедуре триангуляции. Полученный
в результате работы системы отсканирован' ный трехмерный объект (поверхность) бу' дет представлен в виде трехмерной нерегу' лярной сетки, состоящей из соединенных между собой соседних треугольников. Пример результата работы комплекса показан на рис. 5.2.15.
Рис. 5.2.15. Результат работы модуля сканирования
367
Compact Vision System (CVS)
369
Таблица 6.1.1. Технические характеристики CVS145x
Compact Vision System – новая промышленная платформа для систем технического зрения
6
Модель Быстродействие Энергонезависимая память ОЗУ Цифровые вводы/выводы Количество камер Разрешение Частота захвата кадров
CV S1454 CVS1454 833 MIPS* 32 29 до 3 до 2000×2000 до 100 1/с
CV S1455 CVS1455 1436 MIPS* 128
CV S1456 CVS1456 1623 MIPS* 256
*MIPS – миллионы инструкций в секунду
Помимо цифровых вводов/выводов для общения с внешним миром у CVS есть последовательный COM'порт и разъем Ethernet (рис. 6.1.1), по которому осуще' ствляется настройка системы, обновление ее программного обеспечения и доступ к файловой системе.
6.1. Compact Vision System (CVS) До сих пор мы рассматривали системы технического зрения, реализуемые в ос' новном на базе компьютеров общего назначения. Однако на практике при построе' нии промышленных систем машинного зрения часто возникает необходимость в использовании специализированных вычислительных устройств, обладающих небольшими размерами, созданных специально для анализа и обработки изобра' жений и способных работать в непосредственной близости от промышленных объектов в условиях воздействия различного рода вредных факторов. В данной главе мы рассмотрим одно из наиболее современных устройств такого рода. Устройство Compact Vision System (CVS) фирмы National Instruments (NI) представляет собой малогабаритное многоцелевое автономное устройство для захвата и обработки до трех каналов видеоизображений в реальном времени. CVS может быть использована в таких областях как робототехника, промышленный контроль, автоматизация и т. д. Плюсом этой системы является и то, что в ней нет каких'либо движущихся частей, а в корпусе нет технологических отверстий, бла' годаря чему ее можно устанавливать на предприятиях с повышенным содержани' ем влаги и/или пыли в воздухе. Эта система также выдерживает вибрацию и пере' грузки до 50 g.
6.1.1. Технические характеристики CVS Система CVS по сути является компьютером и обладает такими его компонента' ми, как процессор, ПЗУ, ОЗУ. На ее борту также есть плата для захвата изображе' ний и контроллер для вывода изображения на внешний монитор. На данный момент CVS выпускается в трех вариантах, отличающихся в основном быстро' действием (табл. 6.1.1).
Рис. 6.1.1. Передняя панель CVS
6.1.2. Подключение и настройка CVS Рассмотрим последовательность действий по первичному подключению и на' стройке CVS. CVS представляет собой компактное автономное устройство, не имеющее клавиатуры, мыши и других средств ввода информации. Поэтому на' стройка CVS и загрузка в него рабочего программного обеспечения осуществля' ется при помощи внешнего компьютера, подключенного к CVS по сети. Однако необходимо помнить, что и CVS является по своей сути компьютером, а не пери' ферическим устройством. Поэтому для подключения его к сетевому концентрато' ру (hub) необходим обычный восьмижильный Ethernet'кабель, а для подключе' ния к другому ПК напрямую – кабель'«кросcовер». Приступим к работе с CVS. Подключите CVS к сети. Удобно также сразу под' ключить к устройству внешний монитор. Так вы гораздо проще сможете ориенти'
370
Compact Vision System – новая промышленная платформа
роваться в процессах, происходящих на CVS (выключен/загружается/готов к ра' боте). Итак, подключите внешний монитор и включите питание системы. Для дальнейшей настройки нам потребуется утилита MAX (Measurement and Automation eXplorer), которая входит в комплект поставки CVS. При этом прежде всего следует установить сетевой контакт между тем внешним компьютером, на котором запускается утилита MAX, и устройством CVS. MAX может автомати' чески определить наличие CVS в сети, но для этого необходимо, чтобы у системы IP'адрес был 0.0.0.0 (значение по умолчанию) или же система была в той же под' сети, что и ПК, на котором запущена MAX. Если вы подключили внешний мони' тор, то IP'адрес CVS можно увидеть в момент загрузки. Если он отличен от выше оговоренных, его необходимо сбросить (в том случае если в дальнейшем вы хоти' те воспользоваться автоматическим поиском). Сделать это можно следующим образом. Переведите переключатель с названием IP reset (расположен на пере' дней панели CVS) во включенное положение и нажмите кнопку reset (располо' жена на передней панели CVS) или выключите, а затем включите питание систе' мы. Дождитесь загрузки, после чего не забудьте перевести переключатель в исходное положение. После данной процедуры IP'адрес CVS установлен в 0.0.0.0. Вернемся к утилите MAX. В окне Configuration выберите пункт Remote Systems (цифра 1, рис. 6.1.2) и нажмите кнопку Refresh (2, рис. 6.1.2). Через неко' торое время CVS будет обнаружена. Войдите в меню системы (3, рис. 6.1.2). Вве' дите ее название и сконфигурируйте сетевые параметры в соответствии с пара' метрами вашей сети (4, рис. 6.1.2) и, главное, присвойте системе уникальный IP'адрес. Для того чтобы параметры вступили в силу, необходимо нажать кнопку Apply (Применить) – (5, рис. 6.1.2), а затем Reboot (Перезагрузка) – (6, рис. 6.1.2). Для того чтобы проконтролировать правильность конфигурирования пара' метров CVS, вы, например, можете просмотреть содержимое ее постоянной па' мяти при помощи браузера (например, Internet Explorer) по FTP'протоколу. Для этого в браузере в графе «путь» достаточно набрать ftp://cvs.address/, где cvs.address – IP'адрес, заданный вами на предыдущем шаге (например, 192.168.36.253). Также вы можете проверить работоспособность камер. Подключите их к CVS. Далее выберите одну из подключенных камер (1, рис. 6.1.3). Вы также можете сконфигурировать параметры камеры (например, яркость, контрастность и т. д.) и настроить параметры захвата (например, разрешение, частота захвата и т. д.) в соответствующих меню – Acquisition Parameters и Camera Attributes (2, рис. 6.1.3). Далее воспользуйтесь кнопкой Grab (захват) для получения изображения с каме' ры в непрерывном режиме (3, рис. 6.1.3). Можно также использовать кнопку Snap для захвата одного изображения. Текущее изображение можно сохранить, вос' пользовавшись кнопкой Save Image (4, рис. 6.1.3). После этого необходимо установить на CVS программное обеспечение, с тем чтобы вы могли запускать на ней ваши приложения. Обратимся вновь к утилите MAX. Выберите пункт меню Software (1, рис. 6.1.4) и раскройте его. Вы увидите список ПО, установленного на CVS (2, рис. 6.1.4). Если система новая, то, скорее всего, никакого ПО на ней не установлено. Для
Compact Vision System (CVS)
Рис. 6.1.2. Внешний вид утилиты MAX: 1 – пункт меню Удаленные Системы Системы, 2 – кнопка Обновить Обновить, 3 – вход в меню CVS, 4 – установка параметров, 5 – кнопка Применить Применить, 6 – кнопка Перезагрузка
Рис. 6.1.3. Захват изображения при помощи утилиты MAX
371
372
Compact Vision System – новая промышленная платформа
Рис. 6.1.4. Установка программного обеспечения на CVS с помощью утилиты MAX: 1 – пункт меню программное обеспечение обеспечение, 2 – установленные компоненты, 3 – кнопка Установить ПО ПО.
того чтобы установить необходимые компоненты, нажмите кнопку Install Soft ware (Установить ПО). В появившемся диалоговом окне необходимо выбрать из списка то ПО, кото' рое будет установлено на CVS (1, рис. 6.1.5). Заметим, что для того, чтобы необхо' димый вам компонент присутствовал в списке, его сначала нужно установить на ПК, с которого впоследствии будет производиться его установка на CVS. Так как одновременно на ПК может присутствовать несколько версий одного программ' ного продукта (например, LabVIEW RT 7.0 и LabVIEW 7.1), то необходимо вы' брать ту версию, которая будет загружена в CVS (2, рис. 6.1.5). Процесс загрузки компонент протекает следующим образом. Сначала CVS пе' резагружается, чтобы подготовиться к приему нового ПО. Затем происходит не' посредственное копирование/установка выбранных компонент (рис. 6.1.6). И на' конец, CVS перезагружается для того, чтобы изменения вступили в силу. Для запуска приложений по захвату и обработке изображений вам понадобят' ся как минимум четыре следующих компоненты: LabVIEW Real'Time, IMAQ Vision RT, NI'IMAQ for IEEE 1394 RT, NI 1450 RT. Всегда старайтесь использо' вать самые новые версии компонент, так как они обладают большей устойчивос' тью и работоспособностью. Обновления можно регулярно загружать с сайта ком' пании National Instruments – www.ni.com.
Compact Vision System (CVS)
Рис. 6.1.5. Выбор компонент для установки на CVS
Рис. 6.1.6. Процесс загрузки компонент в CVS
373
374
Compact Vision System – новая промышленная платформа
6.1.3. Создание приложения для CVS Теперь, когда система Compact Vision System подключена, настроена и готова к работе, можно непосредственно приступить к написанию программ, исполняе' мых на CVS. Еще раз обратите внимание на то, что для программирования и за' грузки программ для CVS используется внешний компьютер, подключаемый к устройству по сети, но после завершения программирования внешний компьютер может быть отключен, и созданные приложения будут далее выполняться непос' редственно на CVS в автономном режиме. Программирование CVS осуществляется на LabVIEW. При загрузке LabVIEW на экране используемого для программирования внешнего ПК появляется окно, подобное представленному ниже (рис. 6.1.7). При этом важно, чтобы значки, обве' денные на рисунке, присутствовали и у вас. Первый из них – часы (1, рис. 6.1.7) – свидетельствует о том, что на данном компьютере установлено дополнение к LabVIEW – LabVIEW RT (Real Time). Оно позволяет создавать программы для систем реального времени, одной из которых является CVS. Второй значок – ка' мера (2, рис. 6.1.7) – свидетельствует о том, что на данном компьютере установле' но дополнение IMAQ Vision – набор драйверов для работы с камерами, а также набор виртуальных приборов для работы с изображениями.
Compact Vision System (CVS)
375
В стартовом окне (рис. 6.1.8) необходимо выбрать платформу, для которой разрабатывается данное приложение. Заметим, что, во'первых, возможность дан' ного выбора появляется только после установки LabVIEW RT, во'вторых, вы можете разрабатывать приложение на одной платформе (например, на ПК под управлением Windows), а затем запускать на другой (например, на CVS по управ' лением PharLap), и, в'третьих, вы всегда сможете изменить выбранную платфор' му: либо закрыв проект и выбрав ее в стартовом окне, либо зайдя в пункт меню Operate и выбрав Switch Execution Target. Заметим также, что для того, чтобы у вас появилась возможность выбора различных платформ, необходимо сначала сконфигурировать соответствующие ресурсы при помощи утилиты MAX. В на' шем случае идентификатором ресурса (CVS) служит IP'адрес системы, который был задан чуть ранее. Также можно не выбирать ранее сконфигурированные ре' сурсы, а задать адрес системы напрямую, но сконфигурированными ресурсами пользоваться удобнее.
Рис. 6.1.8. Выбор платформы, на которой будет исполняться созданный код
Рис. 6.1.7. Окно загрузки LabVIEW: 1 – на ПК установлен LabVIEW Real Time, 2 – на ПК установлен IMAQ Vision
Создадим теперь простейшую программу, которая захватывает один кадр и выводит его на внешний монитор (рис. 6.1.9), и запустим ее на CVS. Так как программа разрабатывалась на ПК, а выполняться она будет на уда' ленной системе, вначале ее код будет автоматически загружен в оперативную па' мять CVS (рис. 6.1.10). Заметим, что при этом загружается не только сама про' грамма, но и функции, необходимые для ее выполнения. В связи с этим загрузка приложения может занять некоторое время, даже несмотря на то, что сама про'
376
Compact Vision System – новая промышленная платформа
Пример приложения: фотограмметрический комплекс на базе CVS
377
Рис. 6.1.9. Программа для захвата изображения и вывода его на внешний монитор Рис. 6.1.11. Программа для захвата изображения и вывода его на внешний монитор в непрерывном режиме
бежать сбоя в работе при выходе из LabVIEW, можно воспользоваться опцией Exit without closing LabVIEW RT Engine VIs в пункте меню File или же опцией Switch Execution Target в пункте меню Operate. Но даже в этих случаях програм' ма будет работать только до первой перезагрузки системы. Чтобы созданное вами приложение сохранилось в постоянной памяти CVS, необходимо его откомпилировать. Для этого войдите в пункт меню File и выбери' те опцию Build Application or Shared Library (DLL). В качестве главного вирту' ального прибора выберите главный ВП вашего приложения и скомпилируйте его. При этом ваш проект будет помещен в исполняемый файл и скопирован на CVS. Теперь после перезагрузки данное приложение будет запускаться на CVS автома' тически.
Рис. 6.1.10. Загрузка кода в оперативную память CVS
грамма очень простая. По завершении загрузки программа сразу же начнет вы' полняться. Данная программа должна выполнить следующие действия: захватить один кадр с первой камеры и вывести его на монитор. Для того чтобы захватить следующий кадр, необходимо запустить эту программу еще раз. Попробуем модифицировать нашу программу таким образом, чтобы захват изображения происходил в непрерывном режиме (рис. 6.1.11). Теперь изображе' ние, получаемое с первой камеры, будет захватываться и выводиться на монитор до тех пор, пока на интерфейсной панели внешнего ПК не будет нажата кнопка Stop. Обратите внимание на то, что, хотя программа в данный момент выполняет' ся на CVS, LabVIEW поддерживает связь с системой таким образом, что интер' фейс пользователя на внешнем ПК сохраняет работоспособность. Следует также помнить, что до сих пор программа записана только в оператив' ной памяти CVS (и, разумеется, на ПК). Таким образом, при выходе из LabVIEW или при перезагрузке CVS данная программа будет потеряна. Для того чтобы из'
6.2. Пример приложения: фотограмметрический комплекс на базе CVS Рассмотрим в качестве примера разработки практической системы технического зрения на базе Compact Vision System, вариант фотограмметрического измери' тельного комплекса, функционально подобного комплексу, описанному ранее в главе 5.
6.2.1. Аппаратное обеспечение комплекса Общая схема описываемой системы бесконтактных измерений на базе CVS фир' мы National Instruments представлена на рис. 6.2.1. Система включает: • блок CVS NI'1454; • две камеры BASLER A601f; • вращательный позиционер NANOTEC; • контроллер шагового двигателя;
378
Compact Vision System – новая промышленная платформа
Пример приложения: фотограмметрический комплекс на базе CVS
379
Рис. 6.2.1. Схема системы бесконтактных измерений на базе CVS фирмы NI
• лазер; • блоки питания. В связи с тем что CVS представляет собой автономный блок, осуществляющий выполнение заданной программы в независимом режиме, программное обеспече' ние системы на базе CVS состоит из ряда блоков, расположенных как на CVS, так и на host'компьютере. Программные средства для данной конфигурации аппаратных средств систе' мы бесконтактных измерений включают следующие блоки: • программный модуль управления CVS; • интерфейсный модуль связи с CVS; • модуль обработки данных, получаемых от CVS.
6.2.2. Программное обеспечение комплекса Программное обеспечение (ПО) рассматриваемого 3D'сканера состоит из двух частей: • интерфейса пользователя с интегрированным блоком управления шаговым двигателем; • приложения, загруженного в постоянную память CVS, осуществляющего захват, обработку и передачу изображения. Обмен данными между этими частями ПО осуществляется при помощи техно' логии Data Socket фирмы National Instruments. Приложение для ПК Интерфейсная часть приложения, запускаемая на ПК (рис. 6.2.2), позволяет: • проверять работоспособность комплекса в целом; • изменять параметры сканирования – точность, диапазон и др.; • восстанавливать начальное положение вращательного устройства позици' онирования (позиционера) при каких'либо сбоях; • производить сканирование объекта и визуализировать его модель;
Рис. 6.2.2. Внешний вид интерфейса пользователя
• захватывать изображение и сохранять его в файл (например, чтобы исполь' зовать его в дальнейшем при калибровке системы). Данная программа состоит из двух практически независимых частей – сетевой и пользовательской. Сетевая часть программы обеспечивает взаимодействие с CVS. Пользовательская часть позволяет управлять позиционером и обеспечива' ет общую координацию действий пользователя и системы в целом. Сетевая часть приложения (см. блок'диаграмму на рис. 6.2.3) находится в ре' жиме ожидания команды, поступающей с CVS, а затем обрабатывает ее. Для каж' дой возможной команды предусмотрена своя ветвь обработки. Список команд, поступающих от CVS, представлен ниже: • cvs ok – система CVS включена и функционирует нормально; • restarting – CVS перезагружается (не используется); • one shot – команда к приему изображения с левой и правой камер; • move – команда к началу движения сканирующей линии в следующую точку; • data – информация после завершения сканирования. Пользовательская часть ПО реализует взаимодействие между пользователем и CVS. При помощи пользовательского интерфейса задаются моменты начала и окончания сканирования, устанавливается точность, определяется диапазон ска' нирования, текущее изображение сохраняется в файл, происходит управление перемещением позиционера (рис. 6.2.4) и т. п.
380
Compact Vision System – новая промышленная платформа
Пример приложения: фотограмметрический комплекс на базе CVS
381
является проверка наличия соединения с ПК. Вторым важным элементом (2) яв' ляется проверка наличия команды, сгенерированной на предыдущей итерации. Если команда не поступила (то есть система на данный момент свободна), исполь' зуется третий важный элемент (3) – прием команд из ПК. Далее, в зависимости от команды, реализуется определенное состояние State Machine (4).
Рис. 6.2.3. Блокдиаграмма сетевой части интерфейсного приложения
Рис. 6.2.4. Фрагмент диаграммы, отвечающий за перемещение позиционера на заданный угол
Программный модуль CVS Программный модуль CVS позволяет принимать/передавать данные через Ethernet (по DataSocket), захватывать изображение и производить его обработку. Структура данной программы базируется на так называемой «машине состоя' ний» (State Machine). Машина состояний отличается от обычной структуры вы' бора (Case) только тем, что при обработке каждого состояния есть возможность указать, какое состояние необходимо обрабатывать на следующей итерации. Структура программы представлена на рис. 6.2.5. Первым важным элементом (1)
Рис. 6.2.5. Блокдиаграмма фрагмента программы CVS: 1 – проверка наличия подключения; 2 – проверка наличия команды с предыдущей итерации; 3 – проверка наличия команды от ПК; 4 – структура машины состояний (State Machine)
Возможные состояния State Machine в данной системе: • nothing – в случае если сканирование не запущено, система не выполняет никаких действий; если сканирование запущено, система захватывает изоб' ражения с обеих камер и обрабатывает их; • Background – захват изображений с обеих камер, сохранение для дальней' шего использования и передача изображений в ПК; • OneShot – захват изображений с обеих камер и передача в ПК; • Average – установка числа кадров, по которым будет проводиться усредне' ние захваченных изображений (целесообразно использовать для камер с плохими шумовыми характеристиками);
382
Compact Vision System – новая промышленная платформа
• CheckCVS – передача в ПК команды «CVS Ok», означающей, что система находится в готовности; • Accuracy – указание количества точек, на которое разбивается весь диапа' зон сканирования; • Bright – установка параметров камер (brightness, shutter, gain) для наблю' дения области сканирования пользователем и передачи изображений в ПК; • Dark – установка параметров камер (brightness, shutter, gain) для обработки и передачи изображений в ПК (рис. 6.2.6); • ScanFrom – установка начальной границы области сканирования; • ScanTo – установка конечной границы области сканирования; • Mode – выбор режима сканирования; • ClearError – сброс флага ошибки; • Stop – остановка сканирования; • DS send – отправка команд на ПК; • Moved – подготовка системы к захвату и обработке изображения. (Данную команду ПК присылает после того, как вращательный позиционер переме' щается в очередную точку.)
Пример приложения: фотограмметрический комплекс на базе CVS
383
объекты («частицы»). Для каждой из этих областей построчно определяется са' мая яркая точка строки и точки вокруг нее, чья интенсивность составляет не ме' нее 80% от яркости данной максимальной точки. И наконец, производится расчет центра масс оставшегося отрезка, в результате которого формируется оценка по' ложения сканирующей линии в данной строке. Программная реализация приложения для CVS Приложение, запускаемое на CVS, состоит из трех «фреймов». В первом фрейме (рис. 6.2.8) происходит инициализация переменных (установка их значений в на' чальное положение). Также в этом фрейме производится удаление внутреннего содержимого файлов данных.
Рис. 6.2.8. Фрагмент первого фрейма программы CVS Рис. 6.2.6. Захваченное изображение в двух режимах: Bright (слева) и Dark (справа)
На этапе обработки изображения используется следующая схема выделения ярких вертикальных линий (рис. 6.2.7). Исходное изображение бинаризуется. После этого определяются области, в которых располагаются связные яркие
В этом фрейме также производится настройка изображения, передаваемого на внешний монитор (настраиваются следующие параметры: частота обновления экрана, разрешение, глубина цвета) и на рабочий монитор во время отладки про' граммы (рис. 6.2.9). Во втором фрейме (рис. 6.2.10) располагается основной программный код. Вначале производится инициализация и настройка камер с помощью ВП InitCameras.vi
– рис. 6.2.11 – и ВП ConfigBaslerCamera.vi
– рис. 6.2.12.
Настройка камер подразумевает установку их рабочего разрешения и начало не' прерывного захвата изображений. ВП InitImages.vi Рис. 6.2.7. Нахождение ярких точек
инициализацию и настройку изображений (рис. 6.2.13).
позволяет произвести
384
Compact Vision System – новая промышленная платформа
Пример приложения: фотограмметрический комплекс на базе CVS
385
Рис. 6.2.9. Настройка формата изображения, передаваемого на внешний монитор (слева) и на рабочий монитор (справа)
Рис. 6.2.12. Блокдиаграмма ВП ConfigBaslerCamera.vi
Рис. 6.2.13. Блокдиаграмма ВП InitImages.vi
Рис. 6.2.10. Фрагмент второго фрейма программы CVS
Рис. 6.2.11. Блокдиаграмма ВП InitCameras.vi
Вначале также производится установка соединения с сервером DataSocket (рис. 6.2.14) по адресам обмена данными. В данном случае используются два адре' са: 3dscanerMainRead (по этому адресу программа на ПК считывает данные, а программа CVS записывает) и 3dscanerMainWrite (по этому адресу программа на ПК записывает данные, а программа CVS считывает).
Рис. 6.2.14. Установка соединения с серверов DataSocket
386
Compact Vision System – новая промышленная платформа
Рассмотрим следующий фрагмент блок'диаграммы первого фрейма данной программы (рис. 6.2.15). Вначале происходит проверка наличия команды с пре' дыдущей итерации (например, на ней произошел захват фрейма, тогда на теку' щую итерацию поступит команда DSsend). Если команда не поступила (то есть программе на текущей итерации не требуется ничего делать), то выполняется проверка поступления команд с ПК. Если команда поступила, то обрабатывается строка, выделяется команда и ее аргументы, после чего происходит выполнение. Если команда не поступила, то на текущей итерации не будет выполняться ника' ких действий (если только не был запущен процесс сканирования – в этом случае на текущей итерации будет произведен захват очередной пары изображений и их обработка).
Пример приложения: фотограмметрический комплекс на базе CVS
387
Как следует из описания, одним из этапов работы является бинаризация, поэтому, чтобы исходное изображение сохранилось, результат этой операции надо скопи' ровать в отдельное изображение. Обычно инициализация изображений произво' дится в начале программы. Однако, так как это изображение используется только в данном ВП, то, чтобы не устанавливать связи через всю программу, инициализа' ция вспомогательного изображения «ALD binary» производится при первом за' пуске данного ВП (рис. 6.2.17). При первом запуске также инициализируется изображение «ALD 8bit», которое необходимо для накопления и усреднения изображений при работе с низкокачественными камерами (Web'камеры и другие источники изображений).
Рис. 6.2.15. Фрагмент блокдиаграммы первого фрейма программы CVS
Виртуальный прибор ReverseBytesAtSNG
. Данный ВП переводит каж'
дый элемент массива типа single (4'байтовое число с плавающей точкой) в строку, изменяет порядок байтов на обратный и создает массив таких строк (рис. 6.2.16). Использование этого ВП необходимо в связи с тем, что представление числа в LabVIEW отличается от представления числа в динамической библиотеке, ис' пользуемой в данном примере для построения трехмерного изображения поверх' ности по опорным точкам. Виртуальный инструмент Advanced Line Detection 3.vi производит поиск яр' ких линий и определение их координат. Принцип его работы кратко описан выше.
Рис. 6.2.16. Блокдиаграмма ВП ReverseBytesAtSNG
Рис. 6.2.17. Фрагмент блокдиаграммы «Advanced Line Detection 3.vi»
На первом этапе производится бинаризация изображения и обнаружение границ ярких линий. Затем изображение переводится в двумерный массив (рис. 6.2.18). Далее выполняется следующая последовательность действий. Выбирается часть строки двумерного массива, лежащая внутри границ, определенных на предыдущем шаге. Находится максимальное значение в выбранной области и выбирается подо' бласть вокруг нее, в которой лежат значения, превышающие 80% порог от макси' мального (рис. 6.2.19). Далее, пользуясь методом определения центра масс, ищется субпиксельное положение центральной точки (данное значение не является целым числом). Найденное значение добавляется в массив координат Х ярких точек. Коор' динаты Y ярких точек находятся автоматически при выделении определенной строки из массива. Координата Y равна номеру обрабатываемой строки. Наконец, формируется выходной массив кластеров, содержащих ХY'коорди' наты ярких точек (рис. 6.2.20).
388
Compact Vision System – новая промышленная платформа
Пример приложения: фотограмметрический комплекс на базе CVS
389
Рис. 6.2.20. Фрагмент блокдиаграммы Advanced Line Detection 3.vi
Рис. 6.2.18. Фрагмент блокдиаграммы «Advanced Line Detection 3.vi»
Сканирование проводилось описанным выше фотограмметрическим комплек' сом на базе CVS в условиях дневного освещения. Результаты сканирования пред' ставлены на рис. 6.2.22. На изображении видно, что трехмерная форма объекта была реконструирована с достаточно высоким качеством. Точность измерений в данном примере составила порядка 0,1 мм при рабочей области сканирования X×Y мм.
Рис. 6.2.21. Сканируемая деталь
Рис. 6.2.19. Фрагмент блокдиаграммы «Advanced Line Detection 3.vi»
6.2.3. Пример сканирования детали В качестве примера объекта, подлежащего сканированию, используем деталь характерной выпуклой формы (подобные детали используются в процессе изго' товления элементов обшивки самолета). Вид сканируемой детали показан на (рис. 6.2.21).
Рис. 6.2.22. Результаты сканирования тестовой детали
Автоматизация измерений и технический контроль
391
• обработка документов, распознавание текста и штриховых кодов; • медицинские приложения.
Примеры практических систем машинного зрения
7.1. Автоматизация измерений и технический контроль
7
В предыдущих главах были описаны основные математические и алгоритмичес' кие подходы, используемые в настоящее время в области машинного зрения. Мы также рассмотрели те готовые программные средства для разработки систем об' работки и анализа изображений, которые имеются в среде LabVIEW и пакете IMAQ Vision фирмы National Instruments. Описанные методы и средства LabVIEW позволяют среднему разработчику самостоятельно создавать эффективные про' тотипы практически любых систем машинного зрения. Однако, прежде чем мы сможем считать данный курс обработки и анализа изображений завершенным, читателю необходимо еще составить себе хотя бы общее представление о том, ка' кие конкретные практические задачи призваны и способны решать современные системы технического зрения, какие характеристики по точности, надежности и быстродействию они должны и могут при этом обеспечивать. С этой целью в дан' ной главе представлен ряд примеров практических систем машинного и компью' терного зрения, разработанных в последние годы в лабораториях компьютерного зрения ФГУП ГосНИИ Авиационных систем и ЗАО «Институт информацион' ных технологий». Некоторые из этих систем были созданы с использованием средств LabVIEW и IMAQ Vision, другие – с использованием иных программных средств. В контексте данной главы принципиально лишь то, что во всех описан' ных ниже примерах практических приложений решались достаточно типовые за' дачи машинного и компьютерного зрения, а также то, что технические характери' стики описанных ниже систем являются типовыми и удовлетворительными на современном этапе развития технологии, а также программных и аппаратных средств машинного зрения. Примеры практических приложений сгруппированы по следующим крупным тематическим блокам: • автоматизация измерений и технический контроль; • машинное зрение, видеонаблюдение и биометрия;
7.1.1. Система автоматического выделения и фильтрации следа частиц Задача выделения треков частиц – одна из первых классических задач обработки изображений. В частности, в свое время именно эта задача породила исследования по выделению прямолинейных объектов на изображениях, а также инициировала разработку ряда структурно'лингвистических методов распознавания образов. В данном случае речь идет не об анализе изображений траекторий физических частиц атомного или субатомного уровня, а об исследовании картины массового истечения горячих частиц макроуровня в специальном физическом эксперимен' те. При этом, хотя регистрация изображений движущихся горячих частиц произ' водится при помощи скоростной видеосъемки, за время экспозиции видеокамеры частицы все равно успевают пройти значительное расстояние, в результате чего их образы на цифровом изображении представляют собой размытые прямолиней' ные отрезки. По длине получившегося отрезка'следа можно судить о скорости, по его толщине – о размере, а по яркости – о температуре соответствующей частицы. Специфика анализа изображений в данной задаче связана с тем, что, во'первых, среди множества прямолинейных объектов необходимо выделять только те от' резки, которые удовлетворяют ряду условий (находятся в фокусе камеры и не пе' ресекаются с другими треками), во'вторых, измерения параметров треков необхо' димо производить с субпиксельной точностью, поскольку разница в толщине треков порядка нескольких десятых долей пикселя в данном случае соответствует различным типоразмерам частиц в объектном пространстве. Разработанная система компьютерного зрения позволила автоматизировать процесс обработки и анализа 12'битных цифровых изображений следа частиц, полученных скоростной фотосъемкой. Система обеспечивает надежное выделение следа частиц с субпиксельной точ' ностью и их фильтрацию согласно следующим параметрам: • минимальная и максимальная длина следа частицы; • максимальная интенсивность по длине следа; • поперечный размер следа частицы с учетом угла следа; • угол наклона следа частицы относительно границ изображения. Частицы с пересекающимся следом или частицы на границах изображения от' фильтровываются. Система также содержит универсальное средство анализа цифровых изобра' жений, позволяющее строить гистограмму, проекции и профили изображения, применять к изображению как стандартные, так и произвольные LUT'преобразо'
392
Примеры практических систем машинного зрения
вания, отображать значения интенсивности изображения в виде трехмерной по' верхности и т. д. На рис. 7.1.1 и 7.1.2 показаны результаты обработки. Цветом помечены выде' ленные треки частиц, удовлетворяющие заданным параметрам.
Рис. 7.1.1. Результаты обработки частиц
Рис. 7.1.2. Результаты обработки частиц
Автоматизация измерений и технический контроль
393
изводства и транспортировки – от заготовки до непосредственной поставки по' требителю. При этом наиболее распространенные на сегодняшний день ручные методы измерений (при этом измеряются габаритные размеры связки древесины, после чего объем связки определяется по табличным формулам) обеспечивают результаты с погрешностью до 25–30%. Бесконтактные методы измерения объе' ма лесоматериалов методами машинного зрения и цифровой фотограмметрии по' зволяют обеспечить точность измерения объема связки порядка 3–5%, что дает несомненный и существенный экономический эффект. Разработанный аппаратно'программный комплекс предназначен для проведе' ния дистанционных измерений параметров пачки древесины на основе стерео' метрической съемки. Состав комплекса: • персональный компьютер; • плата захвата и оцифровки изображений; • две цифровые видеокамеры высокого разрешения; • специальное программное обеспечение. Функции комплекса: • просмотр видеоизображения с левой и правой камеры на мониторе ПК; • захват и оцифровка видеоизображений и сохранение их в файлы; • проведение измерений трехмерных размеров объекта в ручном режиме; • поиск границ среза ствола и расчет его площади в полуавтоматическом ре' жиме; • поиск всех срезов стволов в пачке, расчет их площадей в автоматическом режиме; • поиск границ пачки древесины, расчет ее площади в автоматическом режиме. Характеристики комплекса: • точность измерения линейных размеров отдельных торцов стволов – 1%; • время получения и обработки одной стереопары в автоматическом режи' ме – 0,5 мин; • вероятность автоматического выделения каждого отдельного торца ство' ла – 0,95. Рисунки 7.1.3–7.1.5 демонстрируют работу системы бесконтактного измере' ния круглых лесоматериалов. На рис. 7.1.3 показан внешний вид пачки древеси' ны, на рис. 7.1.4 – исходная стереопара, а результаты анализа трансформирован' ного изображения – на рис. 7.1.5.
7.1.2. Система автоматизированного бесконтактного измерения объема круглых лесоматериалов Задача измерения объема лесо' и пиломатериалов является одной из чрезвычайно актуальных задач в области лесозаготовки и деревообрабатывающей области в целом. К качеству и составу поставляемых лесоматериалов в мире предъявля' ются достаточно высокие требования, что определяет необходимость контроля объема и параметров поставляемых партий лесоматериалов на всех этапах их про'
Рис. 7.1.3. Пачка древесины
Рис. 7.1.4. Исходная стереопара
Рис. 7.1.5. Резуль таты анализа
394
Примеры практических систем машинного зрения
Автоматизация измерений и технический контроль
395
7.1.3. Система определения гранулометрического состава рудной массы (разработка ИИТ и ООО «НВП ЦентрHЭСТАгео») Задача определения гранулометрического состава тех или иных сыпучих матери' алов (рудной породы, земли, продуктов химического производства) также явля' ется весьма востребованной задачей в области технического контроля в горнодо' бывающих, перерабатывающих, химических и других областях промышленности. С математической точки зрения задача гранулометрии сводится к анализу изоб' ражений гранулированного (разбитого на отдельные комки или гранулы) мате' риала с целью оценки процентного содержания в данном материале гранул раз' личного размера и/или формы либо поиска и отделения частиц специфической формы и размера. При построении промышленных гранулометрических систем следует учитывать, что реальные условия эксплуатации таких систем технического зрения зачастую бывают связаны с запыленностью, вибрацией и другими вредны' ми факторами, влияющими на аппаратные составляющие аппаратно'программ' ных комплексов, а также на точность практически осуществимых измерений. Широко распространены также лабораторные варианты гранулометрических си' стем (прежде всего – на базе микроскопической съемки), создание которых не сталкивается с описанными проблемами, но, в свою очередь, имеет собственную специфику, связанную прежде всего с правильным подбором подсвета. Созданный в ИИТ программно'аппаратный комплекс предназначен для опре' деления гранулометрического состава руды, подаваемой на горно'обогати' тельную фабрику. Спецификой предложенного решения является использование стереоинформации. По стереопаре изображений с высокой точностью восстанав' ливается наблюдаемая трехмерная поверхность рудной массы, после чего к полу' ченной цифровой модели применяется ряд специальных процедур структурного анализа изображений (рис. 7.1.6–7.1.9). Для структурированной поверхности вы' полняется автоматическая оценка размеров выделенных гранул, исследуется их распределение по размеру, строится гистограмма распределения.
Рис. 7.1.6. Исходная стереопара
Рис. 7.1.7. Модель поверхности рудной массы
Рис. 7.1.8. Анализ изображений
Рис. 7.1.9. Структурированная поверхность
Все процессы обработки полностью автоматизированы. Надежность и точ' ность результата, получаемого по данной методике, значительно превышает ана' логичные показатели, получаемые на основе единичного изображения.
7.1.4. Система автоматического измерения угла схождения сварного шва Данный пример демонстрирует одну из типовых задач визуального технического контроля, предполагающую автоматическое измерение некоторого контролируе' мого технического или технологического параметра по цифровым изображениям с целью организации обратной связи с контролируемым технологическим про' цессом. По результатам измерений компьютер формирует команды исполни' тельному устройству, которое воздействует на объект измерений, и за счет такой обратной связи система технического зрения обеспечивает нахождение измеряе' мого параметра в заданном диапазоне значений. При сварке труб из листового материала возникает проблема определения ка' чества сварного шва методами неразрушающего контроля. Одним из параметров,
396
Примеры практических систем машинного зрения Рис. 7.1.10. Изображение сварного шва с выделенными краевыми элементами и линиями, по которым производится оценка угла схождения
Автоматизация измерений и технический контроль
397
Рис. 7.1.11. Результат автоматического определения границ кристаллов
влияющих на качество сварного шва, является так называемый угол схождения. Было предложено кон' тролировать угол схождения сварного шва путем анализа изображений этого угла, получаемых непос' редственно в ходе сварке. В описываемой системе решалась задача автоматиче' ского обнаружения краев листа и определения величины угла схождения этих краев (рис. 7.1.10). Разработанная система позволила обеспечить автоматическое измерение и контроль границ угла схождения с субпиксельной точностью.
• автоматическое формирование карты кристаллов на пластине с присвоением им номеров и характе' ристик (целый/нецелый, закапанный/незакапан' ный), визуализация характеристик цветом, сохра' нение краткого/полного отчетов. Пример результата работы системы приводится на рис. 7.1.11. Показан резуль' тат автоматического определения границ кристаллов, некондиционные кристал' лы помечены точками.
7.1.5. Система автоматического распознавания и подсчета некондиционных кристаллов на круглой пластине
7.1.6. Система компенсации геометрических искажений и бесшовной сшивки изображений, получаемых от многокамерных систем видеоввода
Еще один пример системы технологического контроля. Задача возникла в облас' ти изготовления кристаллов для электронной промышленности. Технологиче' ский процесс изготовления кристаллов устроен таким образом, что на определен' ной стадии обработки круглой пластины, включающей в себя кристаллы, все некондиционные кристаллы оказываются помеченными («закапанными»), и тре' буется составить соответствующую карту пластины, на которой были бы точно помечены закапанные и незакапанные кристаллы. Задача решается средствами машинного зрения. Специфика задачи связана с тем, что пластина имеет зеркаль' ную отражающую поверхность, и это вызывает значительные проблемы в форми' ровании однородного безбликового подсвета, необходимого для получения каче' ственного изображения пластины с кристаллами. Разработанный программно'аппаратный комплекс предназначен для внедре' ния в производстве электронных микросхем в качестве экспресс'методики под' тверждения соответствия изготавливаемой продукции требованиям специфика' ции, а также повышения достоверности работы маркировочных автоматов при разбраковке кристаллов на пластине. Состав комплекса: • персональный компьютер; • цифровая система видеоввода VS'CTT'285'2001; • светоизолирующий тубус со встроенной системой подсветки. Функции системы: • ввод оператором уникальных данных пластины; • ввод с видеокамеры цифрового изображения пластины; • автоматическое распознавание закапанных кристаллов на круглой плас' тине и их отображение цветом на экране для визуального контроля опе' ратора;
Данный пример демонстрирует типичную проблему, возникающую в системах технического зрения. Как мы знаем, необходимое разрешение системы видео' ввода определяется двумя противоречивыми требованиями: с одной стороны – масштабом съемки, необходимым для того, чтобы контролируемые детали были доступны для измерения с требуемой точностью, с другой стороны – размером рабочей области системы (габаритами объекта измерений), которая должна целиком помещаться в формируемое изображение. При этом в случае, когда раз' меры измеряемого объекта достаточно велики, а технологические условия пред' полагают высокую точность измерений, данное противоречие зачастую оказы' вается практически неразрешимым для существующих технических камер приемлемого ценового диапазона. Одно из возможных решений данной пробле' мы следующее: если необходимого разрешения и одновременно охвата области интереса невозможно достичь, используя одну видеокамеру, это можно сделать, используя одновременно несколько камер (набор или даже матрицу камер). Однако задача сшивки «мозаичного» изображения из фрагментов, снятых с не' скольких камер, является не такой простой задачей в связи с тем, что геометрия и яркость каждого снимка немного отличаются, и объективы камер всегда вно' сят дополнительные искажения (дисторсию), существенно изменяющие конту' ры изображений, особенно по краям снимка. Поэтому для решения задач сшив' ки многокамерных изображений используются специальные математические методы. В данном приложении – специально разработанное программное обеспечение для системы бесшовной сшивки изображений, получаемых от многокамерных си' стем видеоввода. Система позволяет компенсировать геометрические искажения и высокоточно сшивать в единое панорамное изображение до 16 изображений от разных видеокамер.
398
Примеры практических систем машинного зрения
Функции системы: • калибровка и ориентирование видеокамер системы; • ввод в ПК изображений от всех видеокамер системы; • формирование обзорного (уменьшенного) сшитого изображения для нави' гации; • исправление геометрии снимков (внесение поправок на дисторсию объек' тивов); • сшивка панорамного изображения; • коррекция «краевых эффектов» сшивки изображений; • формирование, визуализация и сохранение детального сшитого изображения. Характеристики системы: • количество камер – от 4 до 16 (матрица камер от 2×2 до 4×4); • захват полутонового цифрового изображения с 8' или 12'разрядной оциф' ровкой; • размер изображения от одной камеры – 576×768 пикселей; • время формирования обзорного снимка – не более 3 с; • время формирования детального сшитого снимка – не более 20 с; • сшивка изображений осуществляется без видимых артефактов; • экспорт изображений в формате TIFF, BMP.
7.1.7. Система автоматизированного контроля качества внутренней поверхности труб Данный пример демонстрирует построение системы технического зрения, осуще' ствляющей сканирование контролируемой поверхности специальной движущейся камерой. В данной системе также используется «линейный» структурированный подсвет, позволяющий анализировать линейные профили («срезы») исследуемой поверхности с целью восстановления ее трехмерной формы без использования стереоинформации. Состав системы: • цифровая система видеоввода типа VS'CTT'075'2001; • источник структурированного подсвета; • автономное колесное устройство для сканирующего перемещения по внут' ренней поверхности трубы с платформой для крепления видеокамеры («колесный сканер»); • управляющий ПК. Схема сканирования поверхности. В процессе сканирования внутренней по' верхности трубы колесный сканер с закрепленными на нем видеокамерой и ис' точником подсвета последовательно перемещается по поверхности трубы таким образом, что при его спиралевидном движении (одновременно по окружности и вглубь трубы) поле зрения камеры «заметает» всю поверхность трубы. При этом на каждом кадре, соответствующем данному положению сканера, регистрируется один профиль поверхности трубы, представляющий собой результат линейной
Зрение роботов
399
структурированной подсветки этой поверхности. Путем последующего анализа формы каждого снятого профиля определяются наличие и размеры дефектов по' верхности, которые данный профиль пересекает. В итоге за счет геометрической сшивки данных, полученных от отдельных профилей, формируется финальная карта выделенных на поверхности дефектов. Настраиваемые параметры системы: • пороговый уровень минимальных регистрируемых дефектов (длина, шири' на, глубина); • величина шага сканирования по образующей; • диаметр и длина контролируемого изделия; • скорость сканирования. Характеристики системы: • погрешность оценки глубины дефектов – не более 0,1–0,15 мм; • погрешность оценки площади дефектов – не более 15%; • погрешность оценки ширины и протяженности дефектов – не более 20%.
7.2. Зрение роботов Под «роботом» в наиболее широком смысле в настоящее время понимают любое автономное мобильное техническое устройство, способное самостоятельно пере' мещаться, ориентироваться в пространстве и выполнять определенные действия в автоматическом или автоматизированном режиме. Мобильные роботы могут двигаться по поверхности земли, в водной или воздушной среде, представлять со' бой роботизированные транспортные средства или человекоподобные устрой' ства, в любом случае возникает задача получения и анализа визуальной информа' ции об окружающем мире, на основе которой затем формируется автоматическое управление исполнительными органами робота. Решением этой задачи занимает' ся дисциплина под названием «зрение роботов». Она является одной из извест' ных областей приложения методов и средств машинного зрения. В данном разделе мы кратко рассмотрим две современные технологии техни' ческого зрения, связанные с роботами: интеллектуальные системы автомобильно' го базирования и зрение мобильных роботов.
7.2.1. Область применения: автомобильные системы Технология автоматического визуального анализа дорожной ситуации для ин' теллектуальных систем управления автоматизированными наземными транспор' тными средствами должна включать следующие характерные элементы: • комплексное использование датчиков различного типа (ТВ, ИК, мм'радар, лазерный дальномер и др.), а также стереоинформации; • автоматическую реконструкцию поверхности дороги и других значимых элементов трехмерной сцены наблюдения в реальном времени; • автоматическое самоориентирование и самопозиционирование транспорт' ного средства относительно дороги;
400
Примеры практических систем машинного зрения
• автоматическое выделение препятствий в зоне движения транспортного средства; • автоматическое слежение за поведением других участников движения; • оценку сценариев развития событий, выдачу сигналов «тревоги» (для авто' матизированных систем) либо формирование критериев управления (для автоматических систем); • формирование «тревожных» сообщений водителю в случае реализации не' благоприятных или нестандартных сценариев развития событий в зоне ви' деонаблюдения; • программно'аппаратные средства для реализации методов и алгоритмов сбора и обработки видеоинформации. Целевые области применения такой технологии: • создание автоматизированных транспортных средств повышенной безопас' ности; • создание автономных транспортных средств боевого и двойного назначения; • создание автономных транспортных средств для работы в агрессивных сре' дах и другой обстановке, угрожающей жизни человека. Ведущие компании мира и военные ведомства технологически развитых стран ведут активные работы в данном направлении, предполагающем как гражданс' кие, так и военные области применения. Рассмотрим несколько примеров харак' терных разработок такого типа. Компания General Motors разрабатывает систему автоматического управле' ния транспортными средствами, которая должна дебютировать на легковом авто' мобиле Opel Vectra модельного ряда 2008 года. Автопилот можно будет использо' вать в условиях плотного движения на скоростях до 100 км/ч. При этом система, получившая название Traffic Assist, сможет функционировать в полностью авто' матическом режиме, не требуя выполнения каких'либо действий со стороны во' дителя. Комплекс Traffic Assist состоит из лазерных датчиков и видеокамер, информация с которых поступает на анализ в бортовой компьютер. Автопилот сможет распознавать дорожную разметку, препятствия и определять положение других участников дорожного движения. В зависимости от текущей ситуации компьютер будет отдавать команды двигателю, приводу рулевого колеса или тор' мозной системе. Компании Volvo и Ford объявили о планах оснащения своих автомобилей но' вой интеллектуальной системой, эффективно предотвращающей аварийные си' туации, причина которых – усталость, ослабление внимания, сон водителя. Ис' пользуется «активная» система, которая предусматривает переход автомобиля на автоматическое управление при отклонении от запрограммированных парамет' ров. Компания Infiniti также планирует начать установку специальных «антисон' ных» систем в свои автомобили. Система состоит из видеокамеры, сенсора скоро' сти и сигнального устройства. Ее основная задача – предупреждать нечаянное смещение автомобиля с полосы движения. Компания Toyota сообщила о завершении работ над новым эксперименталь' ным автомобилем ASV'2 («Advanced Safety Vehicle»), который оснащен девятью
Зрение роботов
401
различными системами безопасности, позволяющими избежать аварийных си' туаций. Одна из систем следит за расстоянием до различных объектов перед авто' мобилем. И если она обнаруживает препятствие в опасной близости от автомоби' ля, подаются звуковой и световой сигналы. Если же водитель не реагирует на подаваемые сигналы, система начинает тормозить автоматически. Кроме того, ав' томобиль оборудован системой, следящей за объектами справа от водителя, на «слепой стороне». Система подает сигнал, если автомобиль приближается слиш' ком близко к объекту правой стороной. Также отслеживается состояние дорожно' го покрытия: влажность, покрытие, обледенение. Алюминиевый робот с тремя ногами и тремя руками был испытан в Германии в качестве водителя автомобиля. Робот Klaus был создан компанией Volkswagen AG, местным технологическим колледжем и группой Robert Bosch. Klaus оснащен тремя лазерными сканерами, стереокамерой, системой видео и спутниковой нави' гации, а также радаром, соединенным с компьютером. В США под эгидой ряда военных программ проводятся автомобильные гонки по бездорожью между беспилотными автоматическими автомобилями под назва' нием «Большой вызов». Участники гонки автономно преодолевают 340 километ' ров пустыни. Задачи по самостоятельной прокладке маршрута полностью ложатся на управляющие компьютерные системы. Типичным участником гонки является авторобот, созданный в университете Карнеги'Меллона (США). Авторобот «Пес' чаная буря» (Sandstorm) сконструирован на основе внедорожника Hummer. Од' ной из наиболее сложных проблем для автороботов является преодоление пре' пятствий. Система GPS держит автомобиль на правильном курсе с точностью до одного метра, но она не способна предупредить его о ямах или камнях. Поэтому помимо GPS робот оснащен специальными сенсорами, позволяющими опреде' лять препятствия. Лазерные радары «прощупывают» местность перед машиной и передают данные в центральный бортовой компьютер на базе четырех процессо' ров Intel Itanium 2. Помимо этого, с двух видеокамер поступает стереоизображе' ние. Система использует специально написанное ПО. Кроме компьютера на базе Itanium, на автомобиле установлены еще четыре системы, каждая с двумя процес' сорами Intel Xeon, на которых работают такие приложения, как доступ к картам и другой информации, контроль состояния автомобиля и управление им.
7.2.2. Область применения: мобильные роботы Технология создания систем машинного зрения для автономных робототехничес' ких систем должна включать следующие характерные элементы: • использование стерео' и многокамерных систем зрения; • использование трехмерных моделей объектов и окружающей обстановки; • автоматическую реконструкцию элементов трехмерной сцены наблюдения в реальном времени; • автоматическое самоориентирование и самопозиционирование транспорт' ного средства относительно известной или неизвестной сцены наблюдения; • автоматическое выделение препятствий в зоне движения робота;
402
Примеры практических систем машинного зрения
• автоматическое распознавание целевых объектов сцены, формирование управления роботом, нацеленного на приближение к целевым объектам, их захват, использование или перемещение; • считывание автоматических идентификаторов (цифробуквенных либо штриховых), нанесенных на целевые объекты, выполнение сценариев рабо' ты, связанных с целевыми объектами указанного типа; • автоматическое слежение за поведением других движущихся объектов сцены; • автоматические опознавание людей, распознавание и выполнение команд, подаваемых жестами; • оценку сценариев развития событий, формирование соответствующего ин' теллектуального управления; • программно'аппаратные средства для реализации методов и алгоритмов сбора и обработки видеоинформации. Целевые области применения данной технологии: • создание интеллектуальных робототехнических систем для работы на со' временных производственных технологических линиях; • создание автономных мобильных роботов для осуществления погрузочно' разгрузочных и других складских работ; • создание автономных мобильных роботов для работы в сфере обеспечения безопасности, сфере обслуживания и различных производственных сферах в общении и кооперации с человеком; • создание автономных мобильных роботов для работы в агрессивных средах и другой обстановке, угрожающей жизни человека. Эксперты по робототехнике предсказывают резкий рост рынка мобильных ро' ботов в течение ближайших 3–5 лет. Фундаментом грядущего расцвета рынка роботов станут прорывные достижения в области машинного зрения и в техноло' гиях автоматического управления манипуляторами, а также снижение цен на ин' теллектуальные аппараты. Пока основными покупателями подобных устройств считаются промышленные и военные компании, но уже в конце текущего десяти' летия основной доход будет поступать от массового покупателя. Рассмотрим несколько примеров современных разработок в области мобиль' ной робототехники. В университете Карнеги'Меллон (США) завершена работа над стереоскопи' ческой системой зрения роботов, которая позволит машинам ориентироваться в любых помещениях. Система состоит из двух цифровых камер и встроенной в компьютерный мозг робота 3D'матрицы. Расстояние до объектов определяется геометрически по разнице смещения их изображений, полученных каждой из ка' мер. Разработки в области стереоскопического зрения роботов также активно ведут компании Tyzx, Point Grey Research и Videre Design. Другой современный метод компьютерного зрения использует лазерные искатели, измеряющие рас' стояние до объектов по времени возврата отраженного света. Фирма Evolution Robotics предложила технологию, которая позволяет роботу ориентироваться в окружающей среде при помощи колесных датчиков и Web'ка' меры. Это оборудование стоит менее $50, а не $5000, как другие существующие
Зрение роботов
403
системы навигации роботов, основанные на лазерных дальномерах. Система, на' зываемая «системой одновременной визуальной локализации и позиционирова' ния (visual simultaneous localization and mapping, VSLAM), составляет карту окре' стностей по расстоянию и направлению движения колес робота, а также по объектам, распознаваемым посредством камеры и программного обеспечения. Впоследствии робот ориентируется по этим данным. При первом путешествии по помещению система «обучается», а затем корректирует карту в соответствии с из' менениями в расстановке предметов. Значительны современные достижения в области практического внедрения мобильных роботов. Робот HelpMate с конструкцией R2'D2, поставляемый про' изводителем медицинского оборудования Pyxis, разносит пробы крови, лекарства и еду по коридорам более чем сотни клиник. Matsushita Electric Works работает над собственным медицинским роботом'курьером и планирует начать его постав' ки. Продаются роботы'пылесосы. Honda и Sony создали роботов'гуманоидов. У ходячего робота Sony SDR'4X ростом 58,5 см 38 суставов, в его голову встроены стереокамеры. Во время движения он избегает препятствий и может различать голоса и песни. Японский производитель Kawada представил разработанного им робота'гума' ноида, который предназначен для работы на производстве. Робот HRP'2P (что означает Humanoid Robotics Project'2 Prototype) работает под управлением ART' Linux. HRP'2P повторяет фигуру человека, и его конечности имеют те же степени свободы, что и человеческие руки и ноги. Производством роботов занимаются та' кие компании, как iRobot и ActivMedia Robotics. Общепризнанными мировыми лидерами в области разработки и производства коммерческих мобильных роботов являются Япония и США. Применительно к использованию робототехники в военных целях и в чрезвы' чайных ситуациях приоритетное значение имеют пригодность к эксплуатации в жестких и экстремальных условиях и способность обеспечить защиту обслужи' вающего персонала. Для выполнения вышеуказанных задач спецподразделения имеют следующие основные группы мобильных роботов: • мобильный робототехнический комплекс – универсальные наземные робо' ты, предназначенные для действий на объектах транспорта, промышленно' сти, городской инфраструктуры и т. д., на открытой слабопересеченной ме' стности; • специальные робототехнические комплексы – роботы, способные переме' щаться по вертикальным и наклонным поверхностям промышленных объ' ектов и транспортных средств, а также в трубопроводах и узких местах; • малогабаритный дистанционно пилотируемый летательный аппарат (МДПЛА) — воздушный робот для проведения разведки на открытой мест' ности, сильно пересеченной местности, в горах, в городе. Большинство используемых в этой области мобильных роботов на сегодняш' ний день не являются полностью автономными интеллектуальными системами, однако процент таких устройств по сравнению с телеуправляемыми системами постоянно растет.
404
Примеры практических систем машинного зрения
Видеонаблюдение
405
7.2.3. Система обнаружения препятствий на дороге перед движущимся транспортным средством Применительно к задаче автоматического управления движением транспортного средства в ГосНИИАС разработана система обнаружения препятствий на скорос' тных автомобильных дорогах. Система основана на анализе цифровых стерео' изображений, получаемых при помощи двух CCD'видеокамер. Реконструкция трехмерной формы поверхности дороги, самопозиционирование автомобиля и обнаружение препятствий осуществляются внутри собственной полосы движе' ния автомобиля в масштабе реального времени. Система обеспечивает устойчи' вое обнаружение различных типов препятствий на расстоянии до 100 м. Разрабо' тан также вариант системы, использующий комплексирование визуальной стереоинформации и данных автомобильного радара. На рис. 7.2.1 показаны результаты выделения собственной полосы движения и препятствий, наблюдаемых на дороге в различных условиях освещенности и раз' личных дорожных ситуациях. Рис. 7.2.2. Пример автоматической привязки фрагментов: слева – исходное изображение, справа вверху – исходный фрагментэталон, справа внизу – идентифицированный фрагмент ортоплана
7.3. Видеонаблюдение Рис. 7.2.1. Примеры работы системы обнаружения препятствий на дорогах
7.2.4. Система автоматической привязки телефрагментов к ортофотоизображению Данная система может быть рассмотрена как пример задачи, решаемой в рамках информационного обеспечения автономного летательного аппарата. Система осуществляет привязку фрагментов цифровых телевизионных изоб' ражений местности к системе геодезических координат путем автоматической идентификации их с соответствующими фрагментами ортоплана местности. Ориентирование и масштаб исходных фрагментов могут быть произвольными. Ортоплан местности создается предварительно путем трансформирования и сшивки блока аэрофотоснимков. Для идентификации фрагментов разработан уникальный алгоритм стереоотождествления, позволяющий сравнивать изобра' жения разной геометрии.
7.3.1. Область применения: видеонаблюдение Автоматические и автоматизированные системы видеонаблюдения являются од' ной из ключевых составляющих современных комплексных систем безопасности. Задача видеонаблюдения подразумевает визуальный контроль заданной области пространства при помощи одной или нескольких видеокамер, позволяющий со' хранять и просматривать цифровые видеоданные, а также постоянно оценивать состояние контролируемой территории, выделяя так называемые охранные собы' тия, заключающиеся в тех или иных изменениях наблюдаемой обстановки. Современная система видеонаблюдения аккумулирует в себе значительное количество различных технологий компьютерного зрения, включая как собствен' но технологии видеонаблюдения, так и технологии OCR (см. раздел 4.5) и биомет' рические технологии, о которых речь пойдет ниже, и ряд других. Таким образом, технология интеллектуального видеонаблюдения должна включать следующие основные элементы и программно'алгоритмические модули: • визуальные датчики различного типа (ТВ, ИК и др.) для дистанционного видеонаблюдения;
406
Примеры практических систем машинного зрения
• средства распределенного сбора информации, сжатия, обработки и переда' чи цифровой видеоинформации по локальным и глобальным сетям в реаль' ном времени; • автоматическое выделение объектов интереса (люди, транспортные сред' ства, другие объекты); • автоматическое слежение за движущимися объектами в зоне наблюдения; • биометрическое распознавание персонала, биометрический контроль дос' тупа в критические зоны объекта наблюдения; • автоматическую идентификацию транспортных средств, грузов и оборудо' вания на основе распознавания идентификационных меток (регистрацион' ных номеров, штриховых кодов, других технологических маркировок); • методы оценки сценариев поведения наблюдаемых объектов и групп объектов; • формирование «тревожных» сообщений оператору в случае реализации не' благоприятных или нестандартных сценариев развития событий в зоне ви' деонаблюдения; • программно'аппаратные средства для реализации методов и алгоритмов сбора и обработки видеоинформации. Рассмотрим ряд примеров создания систем видеонаблюдения и их элементов.
Видеонаблюдение
407
движения приемника изображения, а также выделение движущихся малоразмер' ных объектов по признаку их движения и одновременное сопровождение движе' ния нескольких обнаруженных объектов. На рис. 7.3.1 показаны: слева – кадр видеопоследовательности с выделенными движущимися объектами; справа – стадии выделения движущихся объектов.
7.3.2. Система обнаружения и сопровождения движущихся объектов по признаку их движения Система, описанная в данном примере, относится к большому классу задач, объ' единяемых термином «анализ движения». Анализ движения в самом общем виде подразумевает сравнение ряда последовательных (во времени) цифровых изобра' жений сцены наблюдения с целью регистрации различного рода изменений, в ча' стности – определение факта движения в заданных областях наблюдения (про стейшие детекторы движения), выделение движущихся объектов и слежение за ними (интеллектуальные детекторы движения), обнаружение момента возник' новения новых или исчезновения ранее наблюдавшихся объектов (детекторы ос тавленных предметов) и т. п. В алгоритмическом плане большинство систем ана' лиза движения используют либо корреляционное слежение за объектами сцены, либо метод «анализа оптических потоков». Существуют также и другие специфи' ческие методы анализа движения, описание которых находится за рамками дан' ной книги, посвященной в основном методам анализа статических изображений, а не динамических видеопоследовательностей. Разработанная в ИИТ система предназначена для автоматического выделения и сопровождения малоразмерных объектов по признаку их движения на изобра' жениях, получаемых с подвижной видеокамеры. Система, реализованная на базе персонального компьютера, осуществляет ввод с видеокамеры, визуализацию и обработку цифровых изображений движущихся сцен в реальном времени. Система производит оценку и компенсацию общего сдвига изображения сцены, происходящего за счет собственного относительного
Рис. 7.3.1. Выделение движущихся объектов сцены наблюдения
Также в системе реализован режим слежения за одним объектом, выбираемым оператором вручную (рис. 7.3.2). В случае если видеокамера снабжена сервопри' водом, позволяющим перемещать оптическую ось камеры, может быть задейство' ван режим физического сопровождения наблюдаемого объекта (система управля' ет приводом таким образом, чтобы выделенный объект в процессе движения все время находился в центре кадра). Интеллектуальный детектор движения Данная система предназначена для автоматического выделения и сопровождения крупноразмерных объектов (сравнимых по габаритам с размерами самого кадра) по признаку их движения на изображениях, получаемых с неподвижной видеока'
408
Примеры практических систем машинного зрения
Видеонаблюдение
409
ражения, вращающиеся объекты и тени дают другие примеры, когда оптический поток не совпадает с полем движения. Но доступен только оптический поток, по' этому приходится исходить из предположения, что в обычном случае он не слиш' ком сильно отличается от поля движения. Это позволяет оценивать относитель' ное движение, исходя из изменения изображения во времени. В литературе предложено множество различных методов вычисления оптичес' кого потока. Особенность данной системы, разработанной в ИИТ, заключается том, что для оценки оптического потока используются не столько дифференциальные, сколько интегральные методы. После вычисления оптического потока осуществля' ется формирование гипотез о положении и размерах движущихся объектов. Пример работы детектора движения можно видеть на рис. 7.3.3. Детектор оставленных предметов Еще один пример модуля «анализа движения» для систем видеонаблюдения. Де' тектор оставленных предметов подразумевает регистрацию момента возникнове'
Рис. 7.3.2. Режим слежения за указанным объектом
меры. Этот пример демонстрирует реализацию принципов метода анализа опти' ческих потоков, основная идея которого заключается в следующем. Движение объектов перед камерой или движение камеры в неподвижной окру' жающей обстановке приводят к соответствующим изменениям в изображении. Эти изменения можно использовать для восстановления относительного движе' ния, а также формы движущихся объектов. Кажущееся движение яркостной кар' тинки, наблюдаемое при движении камеры относительно изображаемых объ' ектов, называется оптическим потоком. Оптический поток является полезным понятием даже при условии деформации наблюдаемых поверхностей, а в частном случае движения твердого тела оптический поток строго определен. Определим поле движения, приписав каждой точке изображения вектор скоро' сти. В некоторый выбранный момент времени точка Pi на изображении соответ' ствует некоторой точке P0 на поверхности объекта. Эти две точки связаны уравне' ниями проектирования (см. главу 5). Когда точка объекта P0 перемещается относительно камеры со скоростью v0, это порождает движение vi соответствую' щей точки изображения Pi. За время ∆t точка P0 перемещается на расстояние v0∆t, а ее изображение Pi – на расстояние vi∆t. В идеале оптический поток соответству' ет определенному ранее полю движения, однако это не всегда так. Зеркальные от'
Рис. 7.3.3. Оптический поток с последующей сегментацией движущихся объектов
410
Примеры практических систем машинного зрения
ния новых или исчезновения ранее наблюдавшихся объектов сцены наблюдения. При этом специфика задачи заключается в том, что, хотя одновременно в сцене наблюдения может присутствовать множество движущихся и неподвижных со' ставляющих, данный детектор должен выделять лишь те объекты, которые ранее находились в движении, а затем стабилизировали свое положение на заданный промежуток времени, либо наоборот – находились в покое, после чего пришли в движение (рис. 7.3.4). Функции системы: • обнаружение новых объектов сцены наблюдения; • обнаружение пропавших объектов сцены наблюдения; • регистрация новой сцены наблюдения; • контроль отсутствия сдвигов камеры относительно сцены наблюдения. Параметры работы системы: • список областей интереса, в которых происходит регистрация новых и про' павших объектов сцены наблюдения; • список областей игнорирования, в которых не происходит регистрация но' вых и пропавших объектов сцены; • минимальные допустимые размеры регистрируемых объектов (высота, ши' рина, площадь); • максимальные допустимые размеры регистрируемых объектов (высота, ширина, площадь); • период времени стабилизации положения объекта, по истечении которого объект считается не движущимся, а новым стабильным объектом сцены на' блюдения. Список формируемых «охранных событий»: • «обнаружен новый объект»; • «обнаружен пропавший объект»; • «камера сдвинута либо сцена наблюдения внезапно изменилась». Входные данные: • видеопоследовательность изображений с разрешением 8/16/24/32 бит (последовательность файлов JPEG либо поток формата AVI); • минимальный размер кадра: 320×240; • максимальный размер кадра: 768×576. Выходные данные: • сигналы об «охранных событиях»; • список объемлющих прямоугольников для вновь обнаруженных новых объектов; • список объемлющих прямоугольников для вновь обнаруженных пропав' ших объектов. Производительность системы: • обработка 4 независимых видеоканалов с частотой 25 кадров в секунду на одном ПК; • обработка 16 независимых видеоканалов с частотой 6 кадров в секунду на одном ПК.
Видеонаблюдение
411
Рис. 7.3.4. Детектирование оставленного предмета: вверху – выделенные «новые» элементы изображения в момент движения, внизу – обнаружение оставленного предмета по истечении заданного времени стабилизации изображения
Показатели производительности определены для видеопотока кадров разме' ром 320×240 на ПК типа IBM PC PentiumIV'3,2.
7.3.3. Система стереообнаружения движения в зоне видеонаблюдения В современных системах видеонаблюдения задача анализа движения, как прави' ло, рассматривается как задача, решаемая на базе информации, получаемой от од' ной видеокамеры. Однако такие системы анализа движения имеют ряд очевид' ных недостатков: они регистрируют движение теней, световых пятен (например, от автомобильных фар), движение изображений на телевизионных мониторах и т. п. артефакты, в то время как с точки зрения обеспечения безопасности необхо' димо регистрировать лишь движение реальных трехмерных объектов заданного размера в заданной трехмерной области наблюдения. Использование стереоин' формации позволяет преодолеть указанные недостатки стандартных детекторов движения. В ИИТ разработан прототип системы стереообнаружения нарушителей в кон' тролируемой зоне видеонаблюдения (рис. 7.3.5). Принцип действия системы ос' нован на применении оригинального метода дифференциального ортофото, ис'
412
Примеры практических систем машинного зрения
Видеонаблюдение
413
Одним из типовых приложений такого рода является разработанная в ИИТ система выделения и распознавания номерных знаков автомашин в потоке на ав' томагистрали (рис. 7.3.6). Система считывания автономеров реализована на базе системы видеонаблюдения «Интеллект» фирмы ITV и внедрена на ряде зарубеж' ных автомобильных трасс.
Рис. 7.3.5. Пример обнаружения нарушителя
пользуемого также в проекте «Система обнаружения препятствий на дорогах» (см. выше). Состав системы: • стереосистема из двух CCD'камер; • IBM'совместимый персональный компьютер, оборудованный платой одно' временного захвата двух цифровых изображений; • специализированное программное обеспечение. Функции системы: • однократная трехмерная реконструкция тестового пространства/помеще' ния (в момент включения); • обнаружение новых/неизвестных (не входящих в трехмерную модель) объектов (в реальном масштабе времени в режиме охранного видеонаблю' дения); • определение дальности и характеристик движения выделенных объектов (в реальном масштабе времени); • оценка размера и характера движения обнаруженных объектов с целью се' лекции людей'нарушителей от других возможных типов объектов (в реаль' ном масштабе времени). Характеристики системы: • размер контролируемой рабочей области – 10×10×5 м; • устойчивость работы системы относительно следующих типов помех: – движущиеся тени и пятна света на неподвижных поверхностях; – движущиеся мелкие животные; – движение на экранах мониторов, телевизоров и т. п. объектах в поле зрения; – вибрации здания; – движущиеся объекты за пределами контролируемой зоны/помещения, наблюдаемые через дверь, окно и т. п.
7.3.4. Система считывания регистрационных номеров автомобилей Как уже говорилось выше, одной из функций комплексных систем видеонаблю' дения является считывание идентификационных меток объектов, прежде всего – номеров транспортных средств, пересекающих зону наблюдения.
Рис. 7.3.6. Примеры считывания иностранных автомобильных номеров
Функции системы: • регистрация появления автомобиля (подсчет автомобилей); • выделение номерного знака; • распознавание символов номерного знака; • сохранение распознанного номера в базе данных. Характеристики: • обработка до 4 видеоканалов 320×240 на одном процессоре в реальном мас' штабе времени; • максимально допустимая скорость автомобилей 120 км/ч; • вероятность распознавания при скорости движения до 80 км/ч: – день – до 85%; – ночь – до 80%. • ширина зоны контроля при фронтальном размещении камеры – 3 м; • допустимый угол наклона изображения номера – до 15°; • освещенность в зоне контроля – не менее 50 люкс.
7.3.5. Система считывания номеров железнодорожных вагонов и цистерн Задача выделения и распознавания номеров железнодорожных вагонов и цистерн не менее актуальна, особенно для России с ее развитой сетью железных дорог и большими объемами грузовых перевозок, в том числе – связанных с экспортом и импортом сырья. Функции системы: • регистрация появления вагона или цистерны; • выделение номерного знака; • распознавание символов номерного знака; • сохранение распознанного номера в базе данных.
414
Примеры практических систем машинного зрения
Характеристики: • обработка до 4 видеоканалов 320×240 на одном процессоре в реальном мас' штабе времени; • максимально допустимая скорость вагонов и цистерн – до 20 км/ч (на под' ходе к станции); • вероятность распознавания – до 90%; • ширина зоны контроля при съемке сбоку перпендикулярно стенке вагона – 6 м; • допустимый угол наклона изображения номера – до 5°; • освещенность в зоне контроля – не менее 50 люкс. Система считывания номеров железнодорожных вагонов и цистерн (рис. 7.3.7) также реализована на базе системы видеонаблюдения «Интеллект» фирмы ITV (www.itvgroup.ru).
Рис. 7.3.7. Примеры считывания номеров железнодорожных вагонов и цистерн
7.4. Биометрия 7.4.1. Область применения: биометрия В последние годы во всем мире наблюдается все возрастающий интерес к методам распознавания и идентификации личности. Основные пути и способы решения этих задач лежат в области разработки биометрических систем. В биометриче' ских системах для распознавания человека используется совокупность биометри' ческих характеристик, основанных на биологических особенностях человеческо' го тела. В качестве таких биометрических характеристик могут выступать: голос, почерк, отпечатки пальцев, геометрия кисти руки, рисунок сетчатки или радуж' ной оболочки глаза, лицо и ДНК. Биометрическая защита более эффективна в сравнении с такими методами, как использование паролей, PIN'кодов, смарт'карт, жетонов (tokens) или техно' логии PKI (инфраструктура открытых ключей), поскольку биометрия позволяет идентифицировать именно конкретного человека, а не устройство. Традицион' ные методы защиты не исключают возможности потери или кражи информации, вследствие чего она становится доступной незаконным пользователям. Уникаль' ный биометрический идентификатор, каковым является, например, отпечаток пальца или изображение лица, служит ключом, который невозможно потерять.
Биометрия
415
Биометрическая система безопасности позволяет отказаться от парольной защи' ты либо служит для ее усиления. Одной из основных причин, которые существенно повысили значимость авто' матической обработки и анализа биометрической информации, явилось повыше' ние требований к функциональным возможностям автоматических систем безопас' ности, расположенных в общественных местах (вокзалы, аэропорты, супермаркеты и т. п.), связанных с необходимостью в реальном времени выполнять необходимые действия по установлению личности присутствующих на контролируемой терри' тории людей, причем, зачастую скрытно, то есть не только бесконтактно (дистанци' онно), но и без специального сотрудничества (специального предъявления биомет' рических признаков) со стороны идентифицируемых персон. В настоящее время существует множество методов биометрической аутенти' фикации, которые делятся на две основные группы – статические и динамические методы. Статические методы биометрической аутентификации основываются на фи' зиологической (статической) характеристике человека, то есть уникальной ха' рактеристике, данной ему от рождения и неотъемлемой от него. К этой группе от' носятся следующие методы аутентификации: • по отпечатку пальца. В основе этого метода лежит уникальность для каж' дого человека рисунка папиллярных узоров на пальцах. Отпечаток пальца, полученный с помощью специального сканера, преобразуется в цифровой код (свертку) и сравнивается с ранее введенным эталоном. Данная техно' логия является самой распространенной по сравнению с другими методами биометрической аутентификации; • по форме ладони. Данный метод построен на геометрии кисти руки. С помо' щью специального устройства, состоящего из камеры и нескольких подсве' чивающих диодов (включаясь по очереди, они дают разные проекции ладо' ни), строится трехмерный образ кисти руки, по которому формируется свертка и распознается человек; • по расположению вен на лицевой стороне ладони. С помощь инфракрасной камеры считывается рисунок вен на лицевой стороне ладони или кисти руки, полученная картинка обрабатывается, и по схеме расположения вен формируется цифровая свертка; • по сетчатке глаза. Вернее, это способ идентификации по рисунку крове' носных сосудов глазного дна. Для того чтобы этот рисунок стал виден – че' ловеку нужно посмотреть на удаленную световую точку, и таким образом подсвеченное глазное дно сканируется специальной камерой; • по радужной оболочке глаза. Рисунок радужной оболочки глаза также явля' ется уникальной характеристикой человека, причем для ее сканирования достаточно портативной камеры со специализированный программным обеспечением, позволяющим захватывать изображение части лица, из кото' рого выделяется изображение глаза, из которого, в свою очередь, выделяет' ся рисунок радужной оболочки, по которому строится цифровой код для идентификации человека;
416
Примеры практических систем машинного зрения
• по изображению или форме лица. В данном методе идентификации строится двумерный или трехмерный образ лица человека. На лице выделяются кон' туры бровей, глаз, носа, губ и т. д., вычисляется расстояние между ними и строится не просто образ, а еще множество его вариантов на случаи поворо' та лица, наклона, изменения выражения. Количество образов варьируется в зависимости от целей использования данного способа (для аутентифика' ции, верификации, удаленного поиска на больших территориях и т. д.); • по термограмме лица. В основе данного способа аутентификации лежит уникальность распределения на лице артерий, снабжающих кровью кожу, которые выделяют тепло. Для получения термограммы используются спе' циальные камеры инфракрасного диапазона. В отличие от предыдущего этот метод позволяет различать даже близнецов; • по ДНК. Преимущества данного способы очевидны, однако используемые в настоящее время методы получения и обработки ДНК работают настоль' ко долго, что такие системы используются только для специализированных экспертиз; • другие методы. Существуют еще такие уникальные способы – как иденти' фикация по подногтевому слою кожи, по объему указанных для сканирова' ния пальцев, форме уха, запаху тела и т. д. Как видно, большинство биометрических технологий данной группы связано с анализом изображений и реализуется теми или иными методами компьютерно' го зрения. Динамические методы биометрической аутентификации основываются на по' веденческой (динамической) характеристике человека, то есть построены на осо' бенностях, характерных для подсознательных движений в процессе воспроизве' дения какого'либо действия. Методы аутентификации этой группы: • по рукописному почерку. Как правило, для этого вида идентификации чело' века используется его роспись (иногда написание кодового слова). Цифро' вой код идентификации формируется, в зависимости от необходимой сте' пени защиты и наличия оборудования (графический планшет, экран карманного компьютера Palm и т. д.), двумя способами: – по самой росписи, то есть для идентификации используется просто сте' пень совпадения двух картинок; – по росписи и динамическим характеристикам написания, то есть для идентификации строится свертка, в которую входит информация о фор' ме подписи, временных характеристиках нанесения росписи и статисти' ческих характеристиках динамики нажима на поверхность; • по клавиатурному почерку. Метод в целом аналогичен вышеописанному, но вместо росписи используется некое кодовое слово (когда для этого ис' пользуется личный пароль пользователя, такую аутентификацию называ' ют двухфакторной) и не нужно никакого специального оборудования, кроме стандартной клавиатуры. Основной характеристикой, по которой строится свертка для идентификации, является динамика набора кодово' го слова;
Биометрия
417
• по голосу. Одна из старейших технологий, в настоящее время ее развитие ускорилось, так как предполагается ее широкое использование в построе' нии «интеллектуальных зданий». Существует достаточно много способов построения кода идентификации по голосу, как правило, это различные со' четания частотных и статистических характеристик голоса; • другие методы. Для данной группы методов также описаны только самые распространенные методы, существуют еще такие уникальные способы, как идентификация по движению губ при воспроизведении кодового слова, по динамике поворота ключа в дверном замке и т. д. Существующие биометрические системы В настоящее время на рынке предлагается ряд готовых систем и технологий био' метрической идентификации и аутентификации личности. Например, в области распознавания лиц одними из наиболее продвинутых ре' шений являются следующие. • Система ZNFace компании ZN Vision Technologies AG – сочетает в себе но' вейшие компьютерные разработки с системой контроля доступа, основан' ной на автоматическом распознавании лиц. ZN'камера делает снимок чело' века, стоящего на рубеже контроля, и проверяет его в считанные доли секунды. Специально разработанный модуль оптического фильтра и функ' ция контроля за живым лицом предотвращает любую попытку обмана пу' тем применения фотографий или масок. • Компьютеризованная база фотоданных ZNPhantomas – может автомати' чески сравнивать и идентифицировать лица. Для сравнения годится фото' графия, фоторобот, рисунок или кадр, полученный при видеосъемке. ZN' Phantomas проводит поиск среди сохраненных в памяти изображений, используя систему распознавания лиц, созданную по образу работы чело' веческого мозга на базе технологии органического видения. Скорость рабо' ты системы позволяет просматривать 10 тыс. изображений за три минуты. Система может работать со всеми SQL'базами данных, использующими ODBC'протокол (Oracle, Sybase SQL, DB2, Informix). • Система FaceIT компании Identix Inc – осуществляет распознавание людей при попадании изображения лица в поле зрения видеокамеры высокого разрешения. Разработки фирмы финансируются госдепартаментом США. Данная система проходит апробацию в аэропортах США. В прессе появля' лись сообщения, что результаты тестирования нельзя назвать удовлетвори' тельными, однако контракт с фирмой продолжен и теперь акцент переносит' ся на идентификацию по фотографиям. Госдепартамент США собирается обязать гостей США иметь фото установленного образца, дабы облегчить распознавательным программам работу. • Из систем, разработанных в России и СНГ, можно рассмотреть продукцию фирмы AsiaSoftware. Фирма предлагает FRS SDK – комплект разработчи' ка, предназначенный для построения информационно'поисковых систем,
418
Примеры практических систем машинного зрения связанных с распознаванием лиц, и ряд систем идентификации по изобра' жениям лиц. Система базируется на алгоритмах распознавания и сравне' ния изображений. Основой этих алгоритмов является модифицированный метод анализа принципиальных компонент, заключающийся в вычисле' нии максимально декореллированных коэффициентов, характеризующих входные образы человеческих лиц. На вход системы подается оцифрован' ное видеоизображение. Специальные алгоритмы определяют наличие изображения лица человека, выделяют его, определяют точное расположе' ние зрачков, производят позиционирование и масштабирование. После этого происходит автоматическое кодирование выделенного изображения лица человека с целью определения основных характерных признаков. Раз' мер полученного массива признаков составляет примерно 300 байт, что по' зволяет строить идентификационные системы даже на однокристальных ЭВМ.
Характеристики биометрических систем Показателями надежности биометрических систем могут служить вероятности ошибок первого и второго рода. Ошибки первого рода определяют вероятность ложного отказа (FRR – False Rejection Rate) и возникают при отказе в доступе легальному пользователю системы. Ошибки же второго рода показывают вероят' ность ложного допуска (FAR – False Acceptance Rate) и появляются при предос' тавлении доступа постороннему лицу. FRR и FAR связаны обратной зависимо' стью. Современные биометрические системы имеют очень большой разброс этих характеристик. Биометрическую систему также можно характеризовать уровнем равной веро' ятности ошибок первого и второго рода (EER – Equal Error Rates) – точкой, в ко' торой вероятность ошибки первого рода равна вероятности ошибки второго рода. На основании EER можно делать выводы об относительных достоинствах и недо' статках разных биометрических методов. Чем ниже уровень EER, тем выше каче' ство системы. Еще один параметр, влияющий на выбор и установку биометрической систе' мы, – пропускная способность. Она характеризует время, которое требуется чело' веку для взаимодействия с данным биометрическим устройством. Сортировать и сравнивать описанные выше биометрические методы по пока' заниям ошибок первого рода очень сложно, так как они сильно разнятся для од' них и тех же методов из'за сильной зависимости от оборудования, на котором они реализованы. По показателям ошибок второго рода общая сортировка методов биометриче' ской аутентификации выглядит так (от лучших к худшим): • ДНК; • радужная оболочка глаза, сетчатка глаза; • отпечаток пальца, термография лица, форма ладони; • форма лица, расположение вен на кисти руки и ладони;
Биометрия
419
• подпись; • клавиатурный почерк; • голос. Отсюда становится видно, что, с одной стороны, статические методы иденти' фикации существенно лучше динамических, а с другой – существенно дороже. Текущее состояние технологии и перспективы дальнейших разработок В настоящий момент общее состояние биометрических технологий в мире еще нельзя признать удовлетворительным. Скорее можно говорить о биометрии как о быстро развивающейся области исследований и приложений, в которой еще не удалось достичь требуемых показателей. Целый ряд серьезных проверок, прове' денных в последнее время, показал недостаточную надежность таких систем. Например, полицейское управление города Тампа, штат Флорида (США), после двух лет эксплуатации деинсталлировало за бесполезностью программное обеспечение опознания лиц, работавшее совместно с камерами наружного наблю' дения. Сеть таких камер позволяла вести надзор за публикой в городском парке развлечений Айбор'сити. Предполагалось, что техника в комплекте с программой для сканирования/опознания лиц, подсоединенной к базе из 30 тысяч известных правонарушителей и сбежавших из дома детей, повысит эффективность работы полиции. Однако за два года система не дала ни одного успешного результата, будь то автоматическое опознание разыскиваемых или арест подозреваемых. Программное обеспечение было предоставлено компанией Identix, одним из веду' щих в США поставщиков биометрических технологий опознания по лицу и отпе' чаткам пальцев. Известен отчет японского криптографа Цутомо Мацумото, скомпромети' ровавшего более десятка систем опознания пользователя по отпечатку пальца. Недавно аналогичное обширное исследование было предпринято немецким ком' пьютерным журналом «c’t». Выводы экспертов однозначны: биометрические сис' темы для потребительского рынка пока не достигли того уровня, когда их можно рассматривать в качестве реальной альтернативы традиционным паролям. Так, систему опознания лиц FaceVACS'Logon немецкой фирмы Cognitec удается ввес' ти в заблуждение, просто предъявив фотографию зарегистрированного пользова' теля. Для обмана более изощренного ПО, анализирующего характерные призна' ки живого человека (мимические движения лица), может быть успешно применен экран ноутбука, на котором демонстрируется видеоклип с записью лица. Не' сколько сложнее обмануть систему Authenticam BM'ET100 фирмы Panasonic для опознания радужной оболочки глаза, поскольку здесь инфракрасные датчики ре' агируют не только на характерный узор изображения радужки, но и на иную глу' бину расположения зрачка. Однако, если проделать небольшое отверстие на мес' те зрачка в фотоснимке глаза, куда при опознании заглядывает другой человек, систему удается обмануть. Что же касается систем опознания пользователя по отпечатку пальца с помощью емкостного сенсора на мышке или клавиатуре, то здесь самым распространенным способом обмана является повторное «оживле'
420
Примеры практических систем машинного зрения
Биометрия
421
ние» уже имеющегося отпечатка, оставленного зарегистрированным пользовате' лем. Для «реанимации» остаточного отпечатка иногда бывает достаточно просто подышать на сенсор, либо приложить к нему тонкий полиэтиленовый пакет, на' полненный водой. Подобные трюки, в частности, весьма удачно опробованы на мышках ID Mouse фирмы Siemens, оснащенных емкостным сенсором FingerTIP производства Infineon. Наконец, «искусственный палец», отлитый в парафиновой форме из силикона, позволил исследователям одолеть все шесть протестирован' ных дактилоскопических систем. Однако, несмотря на общую негативную оценку современного состояния био' метрических систем идентификации личности, во всем мире наблюдается тенден' ция к развитию исследований и разработок в области биометрии. При этом одной из основных тенденций последнего времени является постепенный перенос при' оритетов с контактных на бесконтактные методы биометрического распознавания. Для создания таких биометрических систем нового поколения необходимо ре' шить ряд специфических проблем, пока еще не имеющих адекватного решения. Первая группа проблем связана с тем, что системы скрытного наблюдения с целью обеспечения безопасности должны работать в условиях естественного по' ведения человека, не предъявляющего специально свое лицо и не произносящего заранее известные ключевые фразы. В этом случае еще до решения задачи распоз' навания необходимо решить задачу обнаружения (определения местоположения, выделения человека в группе), да и сама задача распознавания лица и голоса в неконтролируемых условиях становится существенно сложнее. Вторая группа существующих здесь проблем связана с тем, что в случае задачи обеспечения безо' пасности (в отличие от задачи обеспечения контроля доступа) нет возможности опереться на сотрудничество идентифицируемой персоны и на этапе обучения. При этом для обучения приходится использовать имеющиеся фрагментарные и разнородные аудио' и видеоматериалы самого различного качества и происхож' дения. Это еще более усложняет задачу обучения биометрической системы. Нако' нец, третья группа проблем связана с тем, что получаемые (с учетом перечислен' ных проблем) вероятности правильного распознавания и ложного обнаружения заданной персоны в естественной обстановке только по лицу или только по голо' су оказываются существенно ниже показателей, требуемых для удовлетворитель' ного функционирования ответственных систем обеспечения безопасности и конт' роля доступа. С этим связана необходимость использовать комплексирование результатов биометрического распознавания, полученного от разных источников информации. Именно с решением указанных проблем могут быть связаны существенные прорывы в области биометрических технологий в ближайшие годы.
ступа, системы паспортного и визового контроля, системы предупреждения пре' ступлений и идентификации преступников, системы контроля доступа, системы учета и сбора статистики посетителей, системы идентификации удаленных поль' зователей и пользователей Интернета, верификации кредитных карточек, крими' налистической экспертизы, контроля времени посещения на предприятиях и т. д. Помимо описанных биометрических технологий аутентификации, область «биометрии в широком смысле» включает также ряд приложений, связанных с выделением и измерением различных биологических характеристик человечес' кого тела, жестов, движений и т. п., предназначенных не для персональной иден' тификации, а для использования в спортивных, медицинских, телекоммуникаци' онных, развлекательных и других целях. Рассмотрим теперь несколько примеров биометрических приложений, встре' чающихся на практике.
Биометрия в широком и узком смысле
Модуль обнаружения лиц
Таким образом, биометрические технологии идентификации представляют собой быстро развивающееся научно'техническое направление, в результатах которого остро нуждаются такие области применения, как системы охраны и контроля до'
Представляет собой библиотеку, включающую набор функций, позволяющих ре' шать задачи обнаружения лиц, определения их положения на цифровом изобра' жении, а также межкадрового прослеживания наблюдаемых лиц в реальном мас'
7.4.2. Система обнаружения и распознавания лиц В ИИТ разработана технология обнаружения и распознавания лиц по двумерным изображениям, включающая три основных модуля: • детектирование (обнаружение) лиц; • индексация (кодирование и последующий быстрый поиск лиц в базе); • идентификация лиц. Модули применяются последовательно. Выделенные на текущем кадре изоб' ражения лиц поступают в систему индексации, которая в ответ указывает задан' ное количество «кандидатов» из хранящейся базы изображений лиц, наиболее похожих на текущее изображение. После этого процедура идентификации обра' батывает изображения лиц найденных кандидатов с целью их точного распозна' вания. Такой подход позволяет осуществлять полнофункциональную работу с «живым» видеопотоком с целью выделения и распознавания лиц по значитель' ным объемам банков изображений в режиме, близком к режиму реального масш' таба времени. Рисунок 7.4.1 демонстрирует составляющие представленной технологии обна' ружения и распознавания лиц. Показаны: текущее видеоизображение (слева вверху), результат выделения лица (справа вверху); результат поиска в индекси' рованной базе изображений лиц (второй ряд изображений – найденные «канди' даты», среди которых могут быть и ложные); результат окончательной идентифи' кации лица (третий ряд изображений – показаны только «кандидаты», успешно прошедшие идентификацию). Рассмотрим теперь несколько подробнее характеристики перечисленных про' граммных модулей.
422
Примеры практических систем машинного зрения
Биометрия
423
циализированных приложений в области биометрических систем, охранных сис' тем, систем обработки мультимедийной информации и архивов изображений. Характеристики модуля: • скорость индексации: до 10 тыс. изображений/с; • скорость поиска: до 10 млн изображений/с (Intel Pentium'IV'2GHz); • максимальный объем базы: 1 млн записей; • размер одной записи: от 100 до 600 байт. Модуль распознавания лиц
Рис. 7.4.1. Система обнаружения и распознавания лиц
штабе времени. Процедура обнаружения лица выделяет человеческое лицо на черно'белых или цветных изображениях во фронтальной или околофронтальной проекции и возвращает координаты объемлющих прямоугольников для всех об' наруженных лиц. Процедура слежения за лицами позволяет накапливать и сохра' нять в системе информацию о лице человека (последовательность изображений лица с различными ракурсами и выражениями) до тех пор, пока лицо не выйдет из зоны наблюдения или не отвернется от камеры. Данное решение может быть использовано как удобное и гибкое средство по созданию различных клиент'ориентированных биометрических систем. Важной особенностью системы является возможность записи «фильмов», включающих последовательность изображений одного и того же лица, что обеспе' чивает более гибкое формирование охранных событий по «входам» и «выходам» одного и того же лица. Модуль индексации лиц в базе Представляет собой библиотеку, позволяющую индексировать наборы цифровых изображений (паттернов) и затем производить последующий высокоскоростной поиск среди них «наиболее схожих» изображений. Данный продукт можно исполь' зовать как для организации сервисов поиска изображений, так и для создания спе'
Система распознавания лица представляет собой программно'алгоритмический комплекс, решающий задачи верификации и идентификации пользователя на ос' нове сравнительного анализа предъявляемого лица. Процедура верификации предусматривает сравнение предъявляемого лица с выбранным лицом, храня' щимся в текущей базе данных. Процедура идентификации предусматривает про' верку принадлежности предъявляемого лица ко всей базе данных лиц или заранее оговоренной ее части. Библиотека включает в себя набор алгоритмов автоматической верификации и идентификации лиц, обеспечивающих биометрическое распознавание пользо' вателя с вероятностью до 95%. Наличие интерфейса настраиваемых параметров работы алгоритмов, спектр методов распознавания лиц, эффективные алгоритмы предобработки, возможность оптимизации решения под аппаратные требования заказчика и многое другое позволяют использовать данное решение как удобное и гибкое средство по созданию клиент'ориентированных биометрических систем. В настоящее время описанные технологии реализованы в виде коммерческих продуктов (программных модулей), которые продвигаются на рынке российской фирмой ITV www.itvgroup.ru, одним из ведущих разработчиков интегрированных систем безопасности и видеонаблюдения. Перечисленные программные модули интегрированы в систему видеонаблюдения «Интеллект» фирмы ITV, имеются внедрения описанных модулей на нескольких крупных объектах в России.
7.4.3. Система трехмерной реконструкции и формирования строго фронтального изображения лица человека Описанные в предыдущем разделе биометрические технологии являются тради' ционными технологиями в том смысле, что для биометрического распознавания лица используется его двумерное изображение. Подобные традиционные системы имеют уже упоминавшееся очевидное достоинство, связанное с возможностью дис' танционного бесконтактного скрытого наблюдения. Однако достижимые на сегод' няшний день вероятности распознавания в таких системах существенно ниже, чем в биометрических системах, основанных, например, на считывании радужной оболочки глаза или сравнении отпечатков пальцев.
424
Примеры практических систем машинного зрения
Одним из основных способов повышения вероятности распознавания лиц яв' ляется трехмерная съемка и последующая реконструкция произвольных ракурс' ных изображений лица. Рассмотрим также разработанный в ИИТ программно'аппаратный комплекс для трехмерной реконструкции и получения строго фронтального изображения лица человека (рис. 7.4.2). Комплекс предназначен для «мгновенной» трехмерной съемки лица. Высокоточная трехмерная реконструкция лица осуществляется фо' тограмметрическим методом на основе стереоизображений, полученных в ближ' нем ИК'диапазоне при помощи специального структурированного подсвета. При построении строго фронтального изображения лица используется блок автомати' ческого или полуавтоматического определения основных черт лица (глаза, нос, рот), по результатам работы которого осуществляется необходимый простран' ственный разворот текстурированной модели лица (рис. 7.4.3). Основные функции системы: • реконструкция трехмерной модели лица; • формирование строго фронтального изображения лица на основе его око' лофронтального изображения.
Рис. 7.4.2. Внешний вид комплекса для трехмерной съемки лиц (без кожуха)
Рис. 7.4.3. Пример трехмерной реконструкции модели лица и искусственно сгенерированного изображения того же лица
Биометрия
425
Состав системы: • четыре видеокамеры; • источник структурированного ИК'подсвета; • компьютер; • фреймграбберы; • специализированное ПО. Параметры работы системы: • точность реконструкции 3D модели лица – 0.2 мм; • точность разворота лица к фронтальному положению – 10°. • Время обработки – не более 2 c от момента съемки до выдачи результата.
7.4.4. Система автоматического выделения человеческого лица и слежения за его чертами Данная система связана с телекоммуникационными приложениями и решает за' дачу автоматического обнаружения лица и его характерных крупных элементов (глаз, рта, бровей, носа), а также слежения за этими объектами и их последующей передачи по сети и отображения в реальном масштабе времени на персональном компьютере типа IBM PC. В качестве устройства ввода используется web'камера, обеспечивающая входной поток данных в формате RGB (24 бит) со скоростью не менее 10 кадров в секунду. Размер входных изображений: 320×240 пикселей. Лицо пользователя расположено анфас к камере и не закрыто никакими другими предметами (объектами). Допускаются повороты и наклоны лица в пределах ±10°. Условия освещенности – обычные офисные. Результаты выделения границ бровей, носа и рта аппроксимируются сплайнами по нескольким характерным точкам. Результаты обнаружения глаз характеризуются флагом «глаз открыт/ закрыт», а также центрами и радиусами соответствующих окружностей. На рис. 7.4.4 поверх исходных изображений человеческих лиц показана выде' ленная информация о лице и его чертах, представленная в виде векторных графи' ческих элементов для передачи по сетям или дальнейшей визуализации вирту' альных персонажей средствами машинной графики в реальном времени.
Рис. 7.4.4. Примеры автоматического выделения лица и черт лица
426
Примеры практических систем машинного зрения
Биометрия
427
7.4.5. Система распознавания жестов руки человека Распознавание жестов представляет собой обширную область приложений ком' пьютерного зрения. Под «жестами» в широком смысле понимаются любые дви' жения человеческого тела. В узком смысле обычно подразумеваются некоторые характерные движения рук человека, имеющие в определенной предметной обла' сти какие'либо определенные семантические значения. Распознавание жестов может использоваться для построения различного рода человекомашинных ин' терфейсов, управления различными техническими средствами и системами вир' туальной реальности. В качестве простого примера можно рассмотреть систему распознавания жес' тов руки человека по изображениям от черно'белой видеокамеры низкого разре' шения (рис. 7.4.5). Система не требует предварительного обучения и устойчиво различает до 10 различных жестов. Рис. 7.4.6. Интерфейс системы для биомеханических исследований
Рис. 7.4.5. Простой пример системы распознавания жестов
7.4.6. Cистема для биомеханических исследований на основе высокоскоростной стереосъемки движений человека Системы для биомеханических исследований, предназначенные для регистрации и анализа характеристик движений человека, в определенном смысле также явля' ются системами «распознавания жестов», однако основной упор здесь делается на измерительных аспектах системы – требуется с высокой точностью реконструи' ровать траектории движения различных частей человеческого тела. Рассмотрим аппаратно'программный комплекс для биомеханических иссле' дований на базе синхронизированных высокоскоростных камер VS'FAST (от 100 до 500 кадров/с) и связанных в локальную сеть персональных компьютеров со специализированным программным обеспечением для накопления, анализа и графического представления биомеханической информации (рис. 7.4.6). Комп' лекс предназначен для проведения исследований деятельности спортсменов раз' личных видов спорта, требующих регистрации и анализа быстро протекающих процессов (проведение борцовских приемов, ударов, работа со спортивными сна' рядами и тренажерами и т. п.).
Основные функции комплекса: • регистрация и ввод видеоряда скоростной съемки от одной, двух или трех цифровых камер FS'FAST; • калибровка и ориентирование видеокамер; • автоматическое и полуавтоматическое выделение и межкадровое слежение за положением отражающих меток («маркеров»), закрепленных на теле спортсмена в стандартных точках тела; • формирование непрерывных траекторий движения маркеров в объектном пространстве; • параллельное визуальное воспроизведение видеоряда (последовательнос' ти цифровых изображений) и векторной модели движения маркеров; • расчет характеристик движения (координаты, величина перемещения, зна' чения вектора скорости и ускорения, угловые скорости и ускорения) на ос' новании двумерной (плоской) модели движения для маркеров, звеньев, групп звеньев, общего центра масс и центра масс выделенных элементов тела спортсмена в плоскости, параллельной плоскости кадра (для одной камеры); • расчет характеристик движения (координаты, величина перемещения, зна' чения вектора скорости и ускорения, угловые скорости и ускорения) на ос' новании трехмерной (объемной) модели движения для маркеров, звеньев, групп звеньев, общего центра масс и центра масс выделенных элементов тела спортсмена; • отображение временных и фазовых графиков изменения расчетных ве' личин; • сохранение регистрируемых последовательностей изображений и данных расчетов, а также дополнительной информации о проведении эксперимен' та (идентификационные, физиологические и др. данные о спортсмене, от'
428
Примеры практических систем машинного зрения дельные медицинские показатели, регистрируемые в ходе эксперимента) с целью дальнейшего использования для проведения статистических и дру' гих исследований.
7.4.7. Система слежения за положением головы и направлением взгляда ребенка Задача слежения за направлением взгляда человека имеет ряд важных практиче' ских приложений, в частности – в области бесконтактного управления компью' терами и другими человеко'машинными системами, в системах виртуальной ре' альности, где направление взгляда определяет область пространства, которую требуется сгенерировать и отобразить средствами визуализации, в системах конт' роля направления взгляда водителя транспортного средства (для предотвраще' ния засыпания за рулем или выявления аномального поведения водителя) и ряде других областей. Рассмотрим систему слежения за положением головы и направлением взгляда ребенка по видеорегистрациям (рис. 7.4.7). Данная система предназначена для проведения экспериментальных работ в области медицины, физиологии и психо' логии. Входные данные системы: • цифровые видеопоследовательности в формате AVI; • размер кадра не менее 640×480 пикселей.
Обработка документов, распознавание текста и штриховых кодов
429
В результате обработки на каждом кадре оцениваются: • положение головы; • положение глаз; • угол наклона головы; • состояние глаз («открыт/закрыт» для каждого глаза); • оценка направления взгляда (только для открытых глаз). Характеристики работы системы: • точность определения положения «лобного» маркера – 1 пиксель; • точность определения положения центров глаз – 1 пиксель; • точность определения угла наклона головы – 1°; • вероятность правильного определения состояния глаз – 0,95; • точность оценки положения зрачка (для открытых глаз) – 1–2 пикселя; • время обработки на один фрейм 640×480 пикселей – 0,25 с (IBM PC Pen' tiumIII'900).
7.5. Обработка документов, распознавание текста и штриховых кодов Методы выделения и распознавания символьной информации (текстовых симво' лов и штриховых кодов) были подробно описаны в разделе 4.5. Выше мы уже сталкивались с задачами считывания символьной информации в области видео' наблюдения при идентификации транспортных средств (автомобилей, вагонов и цистерн). В данном разделе мы рассмотрим несколько практических систем, ра' ботающих в области анализа изображений документов и также использующих эти технологии.
7.5.1. Система автоматического поиска и считывания штриховых кодов Система предназначена для использования в автоматизированных системах складского контроля, автоматической сортировки и регистрации товаров, посы' лок и т. п. приложений. Изображение объекта с нанесенным штриховым кодом регистрируется видео' камерой и вводится в персональный компьютер. В ходе анализа полученного цифрового изображения все имеющиеся штриховые коды обнаруживаются и счи' тываются (рис. 7.5.1).
Рис. 7.4.7. Примеры работы системы
Рис. 7.5.1. Примеры выделения и считывания штриховых кодов в сложных условиях
430
Примеры практических систем машинного зрения
Система обеспечивает следующие характеристики: • считываются все основные кодировки одномерных штриховых кодов (2 из 5, ITF, EAN'13, Code 39, Code 128, Codabar), а также двумерных кодов – PDF, QR Code и Data Matrix; • обнаруживаются и считываются все штриховые коды в поле зрения каме' ры, независимо от их размера, положения, ориентации и геометрических свойств поверхности, на которую они нанесены; • допускается частичное загрязнение и затирание штриховых кодов, а также целлофановое покрытие объекта поверх кодов; • штриховые коды распознаются на любом сложном структурированном фоне.
7.5.2. Система автоматического распознавания маH шиночитаемых документов Данная система анализа растровых изображений обеспечивает высокую степень надежности распознавания и считывания в системах автоматизированной обработ' ки машиночитаемых документов. Подобными машиночитаемыми зонами снабже' ны паспортные, визовые и т. п. документы повышенной важности (рис. 7.5.2).
Рис. 7.5.2. Пример выделения и считывания машиночитаемой информации на изображении паспортного документа
Обработка документов, распознавание текста и штриховых кодов
431
Функции системы: • автоматический поиск и выделение машиночитаемых зон на изображениях; • автоматическое разбиение выделенных машиночитаемых строк на знако' места, соответствующие отдельным символам; • распознавание буквенно'цифровых символов; • контроль и коррекция считанной последовательности символов с учетом структуры машиночитаемой зоны. Характеристики системы: • выделение машиночитаемых зон осуществляется независимо от их размеров, положения и параметров угловой ориентации документа на изображении; • устойчивое распознавание машиночитаемых символов при низком разре' шении (170–200 точек на дюйм); • возможность обучения системы различным типам машиночитаемых шриф' тов при разработке специализированных приложений.
7.5.3. Система считывания номеров денежных банкнот Система автоматически определяет тип банкноты (валюта и номинал), считывает номер банкноты и ведет базу данных номеров с привязкой к образу банкноты (рис. 7.5.3). В качестве исходных данных используется цифровое изображение банк' ноты с пространственным разрешением 200 dpi и яркостным разрешением 8 бит.
Рис. 7.5.3. Результаты распознавания номера банкноты
432
Примеры практических систем машинного зрения
7.5.4. Система оценки подлинности денежных банкнот Следующие два примера не используют технологии считывания символьной ин' формации, однако также связаны с анализом изображений документов. Исходными данными для оценки подлинности денежных банкнот в данном случае являются цифровые изображения банкнот в видимом и ИК'диапазоне. Осуществляются распознавание типов банкнот в видимом диапазоне и контроль подлинности банкнот путем сравнения их цифрового изображения в видимом и ИК'диапазоне (рис. 7.5.4).
Обработка документов, распознавание текста и штриховых кодов
граммы. Данная система обеспечивает распознавание при объеме базы известных образов до 30 элементов.
7.5.5. Cистема для оценки ветхости денежных банкнот Система осуществляет анализ следующих основных характеристик изображения банкноты: • яркостной контраст элементов банкноты; • наличие бликов от склеек (скотч); • наличие загнутых углов; • наличие надрывов и прорезов банкноты; • наличие на поверхности банкноты пятен масла или краски; • наличие дырок и проколов. Система осуществляет вычисление следующих основных числовых характе' ристик ветхости банкноты: • показатели яркостного контраста (абсолютный и относительный); • суммарная площадь бликов от склеек (скотч) (мм2); • площади загнутых углов;
Рис. 7.5.4. Изображения банкноты в видимом и ИКдиапазонах, а также элементы, используемые для распознавания номинала банкноты
Подсистема обучения позволяет создавать и редактировать структуры, описы' вающие образ банкноты. Эта подсистема ведет базу данных эталонных образов банкнот (с возможностью редактирования, удаления и создания новых элементов на основе информации, получаемой со сканера), оценивает значения ошибок рас' познавания для всех элементов базы в числовом и графическом виде. Подсистема распознавания производит распознавание сканированного образа банкноты на основании базы данных, полученной при помощи обучающей про'
433
Рис. 7.5.5. Пример анализа банкноты
434
Примеры практических систем машинного зрения
• длина и ширина обнаруженных надрывов и прорезов банкноты (мм); • суммарные площади пятен масла или краски (мм2); • суммарные площади обнаруженных дырок и проколов (мм2). По результатам анализа перечисленных характеристик принимается решение об отбраковке ветхих банкнот.
7.6. Медицинские приложения 7.6.1. Проекты в области анализа и обработки медицинских изображений Коллектив лаборатории компьютерного зрения ИИТ имеет пятнадцатилетний опыт работы в области создания медицинских приложений. За это время был осу' ществлен ряд проектов по разработке систем анализа изображений различного типа (рентгеновских, томографических, а также монокулярных и стереоскопиче' ских видео изображений) в различных отраслях медицинской диагностики. В 1990–1991 гг. по заказу офтальмологического центра академика С. Н. Федо' рова (МНТЦ «Микрохирургия глаза») была разработана кератометрическая сис' тема на основе CCD'камеры. В 1995–1998 гг. при участии главного рентгенолога ВВС РФ д.м.н. профессора А. Ю. Васильева была проведена серия научно'исследовательских работ по созда' нию автоматизированных комплексов медицинской диагностики в области ком' пьютерной томографии и рентгенографии. Были разработаны следующие про' граммные комплексы: • система компьютерного анализа томографических изображений для улуч' шения диагностики воспалительных заболеваний пазух и полости носа (си' нуитов); • система компьютерного анализа рентгеновских и томографических изобра' жений для улучшения диагностики очагового и инфильтративного тубер' кулеза легких; • система компьютерного анализа медицинской рентгенографической ин' формации в задаче ранней диагностики остеопороза; • система компьютерного анализа томографических изображений для оцен' ки степени ожирения у мужчин. В 1995–1999 гг. велись работы по созданию системы восстановления и измере' ния трехмерной формы зубов человека по стереоизображениям видимого диапа' зона (в помощь врачу'дантисту). В 2001–2005 гг. по заказу компании MTL Ltd. был создан ряд программных приложений, предназначенных для хранения, передачи, обработки и анализа ме' дицинских радиологических изображений различных типов, а также система ав' томатизированной компьютерной диагностики в области маммологии. Кроме того, проводился ряд исследований в области анализа микроскопических изображений, результаты которых также могут быть использованы при разработке различных систем медицинского назначения (например, цитологических).
Медицинские приложения
435
7.6.2. Системы для компьютерного анализа томографических изображений При создании систем анализа томографических изображений общего назначения основной акцент делался на разработку процедур автоматической и полуавтома' тической сегментации изображений на основе денситометрической информации. Реализованная схема алгоритма сегментации включает: • первичную гистограммную сегментацию методом статистического выделе' ния мод; • формирование связных областей с заданными характеристиками методом слияния/разбиения. Специально разработанный для данного класса задач метод статистического выделения мод позволяет оценивать количество и степень выраженности мод ги' стограммы (рис. 7.6.1), опираясь на соответствующий график статистической производной.
Рис. 7.6.1. Пример автоматического разделения мод на гистограмме по максимумам функции локальной разделимости
Метод слияния/разбиения связных областей использует полученную на пер' вом этапе разметку пикселей изображения в качестве стартового приближения, после чего происходит процесс итеративной релаксации с целью минимизации заданной энергетической функции. Алгоритм сегментации может быть использо' ван как в автоматическом, так и в полуавтоматическом режиме. В этом случае врач'оператор может инициализировать процесс сегментации интересующих его объектов путем указания соответствующих «затравочных» точек.
436
Примеры практических систем машинного зрения
Медицинские приложения
В общем случае, после сегментации или полуавтоматического выделения объектов интереса производится морфометрический анализ и классификация объектов или групп объектов в пространстве яркостно'геометрических призна' ков. В конкретных приложениях реализуются также дополнительные режимы для полуавтоматического измерения специфических параметров объектов.
7.6.3. Система компьютерного анализа томографических изображений для диагностики воспалительных заболеваний пазух и полости носа (синуитов) Разработана система компьютерного анализа томографических изображений в интересах диагностики воспалительных заболеваний пазух и полости носа (си' нуитов). Для того чтобы обеспечить врачу'оператору возможность максимально гиб' кой настройки системы анализа изображения, был использован оригинальный фреймовый интерфейс, позволяющий создавать или модифицировать схему ана' лиза средствами визуального программирования непосредственно в ходе сеанса обработки каждого снимка. На рис. 7.6.2 показан интерфейс системы, включающий фреймовую схему об' работки томографического изображения пазух и полости носа вместе с результа' тами анализа данного конкретного изображения.
Рис. 7.6.2. Интерфейс системы компьютерного анализа томографических изображений для диагностики синуитов
7.6.4. Система компьютерного анализа томографических изображений для оценки степени ожирения у мужчин Разработана система компьютерного анализа томографических изображений для оценки степени ожирения у мужчин. При разработке системы была предложена оригинальная схема сегментации изображения, учитывающая «концентрическое» строение томографического ска' на тела человека в районе пупка. Этот метод позволил полностью автоматизиро' вать функцию сегментации и измерения элементов жировых отложений всех заданных типов. После выделения областей, соответствующих различным эле' ментам жировых отложений (рис. 7.6.3), вычисляются количественные показате' ли, определяющие тип, степень ожирения и прогноз возможности похудения для данного пациента.
Рис. 7.6.3. Пример томографического скана и результат его сегментации системой оценки степени ожирения
437
438
Примеры практических систем машинного зрения
Медицинские приложения
439
7.6.5. Система компьютерного анализа медицинской рентгенографической информации для ранней диагностики остеопороза Разработана система компьютерного анализа медицинской рентгенографической информации для ранней диагностики остеопороза. В системе реализован ряд спе' циальных алгоритмов структурного анализа рентгеновских изображений, вклю' чая прослеживание трабекулярных линий, выделение концевых и узловых точек, а также сбор различного рода статистической информации о длинах, толщинах и направлениях трабекул. В ходе разработки произведен всесторонний статисти' ческий анализ результатов исследования изображений, включающий процедуры кластерного анализа в пространстве признаков, процедуры оценки наличия вза' имных регрессионных зависимостей различных подгрупп признаков (в том чис' ле – по кластерам), а также оценку параметров регрессионных зависимостей в аналитической форме. На основе сформированных врачами экспертных оценок определена диагностическая значимость каждого из реализованных признаков. Разработано пользовательское программное обеспечение, предназначенное для оснащения автоматизированного рабочего места (АРМ) – рис. 7.6.4 – врача'диаг' носта, проводящего исследования по диагностике остеопороза. При разработке АРМ была обеспечена возможность накопления результатов обследований в кли' нической базе данных для проведения повторного статистического анализа с це' лью дообучения диагностической экспертной системы.
7.6.6. Автоматизированное рабочее место врачаHрентгенолога Автоматизированное рабочее место врача'рентгенолога представляет собой ком' плексное решение в области ввода, обработки, анализа, передачи и хранения ме' дицинских радиологических данных. Состав системы: • один или несколько ПК типа IBM PC (в зависимости от числа клиентских мест); • специальное медицинское оборудование для получения изображений; • программный модуль для управления медицинским рентгенологическим оборудованием; • программный модуль для работы с базой данных (БД); • программный модуль для анализа и обработки цифровых изображений (Viewer). Функции модуля управления оборудованием: • оцифровка рентгеновских снимков при помощи планшетного сканера вы' сокого разрешения; • ввод изображений (в том числе в режиме «живого видео») и управление настройками различных специализированных источников медицинских
Рис. 7.6.4. Интерфейс комплекса диагностики остеопороза
радиологических изображений (конкретные функции модуля зависят от вида конкретного рентгенологического оборудования). Функции модуля БД: • ведение нормативно'справочной информации (классификаторов, справоч' ников); • ввод данных о пациенте в БД; • просмотр данных о пациенте из БД; • поиск данных о пациенте в БД; • формирование отчетов; • запись данных обследования пациента на CD; • архивирование части данных на CD и последующее их считывание; • ограничение доступа и разграничение прав пользователей. Функции модуля Viewer: • загрузка снимков в форматах TIFF, BMP, DICOM 3.0; • сохранение снимков в форматах TIFF, BMP, DICOM 3.0; • масштабирование изображения; • изменение контраста и яркости изображения; • вывод на экран одновременно нескольких изображений;
440
Примеры практических систем машинного зрения
• инвертирование изображения (негатив/позитив); • измерение расстояния между точками на снимке, выделение и расчет пло' щадей; • разворот изображения на угол, кратный 90°, зеркальное отображение; • вырезка фрагмента изображения; • просмотр значений интенсивности элементов изображения; • нанесение на изображение графических элементов с возможностью измере' ния длин, расстояний и углов между ними; • пометка контуров областей и других криволинейных объектов на изобра' жениях с возможностью измерения длин контуров, площадей выделенных областей, а также средней интенсивности изображения по выделенным об' ластям; • наложение на изображение информации о пациенте; • добавление меток с комментариями. Дополнительные функции обработки и анализа изображений модуля Viewer: • построение профилей яркости, апертур, проекций и гистограмм изобра' жений; • фильтрация изображений в пространственной и частотной областях; • сравнение изображений; • расширенный набор функций обработки и анализа изображений в версии Viewer Pro.
7.6.7. Система телемедицины в области радиологических обследований Система «Телемедицина» предназначена для обеспечения удаленной сетевой компьютерной диагностики заболеваний на основе анализа цифровых радиологи' ческих снимков органов и тканей пациента. Система представляет собой распре' деленную систему, функционирующую в сети Интернет и объединяющую в рамках единого информационного пространства подсистемы автоматизации нескольких лечебно'профилактических учреждений (ЛПУ), единого консультационно'диа' гностического центра (КДЦ) и центра обработки данных (ЦОД). Система включает следующие основные программные компоненты: • АРМ – автоматизированное рабочее место диагностического обследования пациентов, которое устанавливается в ЛПУ и КДЦ и используется для вво' да, анализа и сохранения в цифровом виде результатов медицинского рент' геновского обследования пациентов, формирования врачебных заключе' ний и диагнозов по результатам обследований, а также для решения ряда других задач по автоматизации деятельности врачей и лаборантов; • ЛПУ'клиент – модуль расширения для рабочего места АРМ, который уста' навливается в ЛПУ и используется сотрудниками ЛПУ для формирования и отправки в ЦОД заявок на получение квалифицированных заключений по обследованиям пациентов, проведенных в ЛПУ;
Медицинские приложения
441
• КДЦ'клиент – модуль расширения для рабочего места АРМ, который уста' навливается в КДЦ и используется врачами КДЦ для работы с заявками, поступившими из ЛПУ в ЦОД; • ЦОД'клиент – автоматизированное рабочее место администратора ЦОД, которое устанавливается в ЦОД и используется для включения в единую информационную сеть и удаленного конфигурирования подсистем автома' тизации ЛПУ и КДЦ. Доступ к данным на серверах СУБД, установленных в ЛПУ, КДЦ и ЦОД, осу' ществляется в режиме удаленного доступа через защищенные каналы сети Ин' тернет.
7.6.8. Модуль управления данными медицинского обследования на основе технологии DICOM В области медицины именно стандарт DICOM определяет используемые форма' ты хранения и протоколы передачи двумерных данных, отличающиеся от стан' дартов и форматов работы с изображениями, принятых в других областях (см. раздел 2.5). Разработанный модуль предназначен для считывания, сохранения и сетевой пе' редачи данных медицинского обследования с использованием технологии DICOM. Модуль может встраиваться в медицинские приложения различного назначения. В состав модуля входят: • модуль работы с файлами медицинских изображений формата DICOM 3.0; • модуль поддержки сервисов сетевой передачи данных на основе техноло' гии DICOM. Функции модуля: • загрузка и визуализация текстовых данных медицинского обследования; • загрузка и визуализация 8' и 16'битных цифровых изображений, либо се' рий цифровых изображений; • загрузка и наложение на изображение графических и текстовых данных (overlays); • сохранение текстовых данных медицинского обследования; • сохранение одного или серии цифровых изображений обследования; • сохранение графической и текстовой информации, наносимой пользовате' лем на изображения обследования. Входные данные: • данные медицинского обследования; • внешние файлы формата DICOM 3.0, отвечающие стандартным специфи' кациям сервис'класса хранения данных DICOM (Media Storage Standard Sop Classes); • запросы в формате DICOM, поступающие от внешних приложений, на вы' полнение сервисов сетевой передачи данных спецификации Storage Service Class.
442
Примеры практических систем машинного зрения
Выходные данные: • файлы формата DICOM 3.0, формируемые по данным медицинского обсле' дования и отвечающие одной из стандартных спецификаций сервис'класса хранения данных DICOM (Media Storage Standard Sop Classes); • запросы в формате DICOM, посылаемые внешним приложениям, на вы' полнение сервисов сетевой передачи данных спецификации Storage Service Class; • запросы в формате DICOM, посылаемые внешним приложениям, на вы' полнение сервисов сетевой передачи и печати данных спецификации Print Management Service Class. Поддерживаемые сервисы DICOM: • сервис ACSE (Association Control Service Element); • сервисы спецификации Storage Service Class в режиме Service Class Provider (SCP); • сервисы спецификации Storage Service Class в режиме Service Class User (SCU); • сервисы спецификации Print Management Service Class в режиме Service Class User (SCU). Описанный DICOM'модуль является составной частью программного обес' печения системы ДИАРМ'МТ фирмы MTL, представляющей комплексное реше' ние в области ввода, обработки, анализа, передачи и хранения медицинских ра' диологических данных.
Список литературы Литература по машинному зрению Литература по машинному зрению на русском языке В список включены базовые источники на русском языке, полезные для самостоя' тельного ознакомления с областью машинного зрения и ее отдельными раздела' ми. 1. Айзерман М. А., Браверман Э. М., Розоноэр Л. И. Теоретические основы метода потенциальных функций в задачах обучения автоматическому разделе' нию входных ситуаций на классы. // Автоматика и телемеханика. – 1964. Т. XXII. – № 6. – С. 81–88. 2. Анисимов Б. В., Курганов В. Д., Злобин В. К. Распознавание и цифровая об' работка изображений. – М.: Высшая школа, 1983. – 295 с. 3. Белоглазов И. Н., Тарасенко В. П. Корреляционно'экстремальные системы. – М.: Сов. Радио, 1974. – 392 c. 4. Бонгард М. М. Проблема узнавания. – М.: Наука, 1967. – 98 c. 5. Бутаков Е. А., Островский В. И., Фадеев И. Л. Обработка изображений на ЭВМ. – М.: Радио связь, 1987 – 250 c. 6. Василенко Г. И., Цибулькин Л. М. Голографические распознающие устрой' ства. – М.: Радио и связь, 1985 – 312 c. 7. Васильев В. И. Распознающие системы: Справочник. – Киев: Наукова дум' ка, 1983 – 424 c. 8. Визильтер Ю. В., Желтов С. Ю., Степанов А. А. Новые методы обработки изображений. – НЗНТ, Серия: Авиационные системы / ГосНИИАС. – 1992. – № 4. – C. 21. 9. Виттих В. А., Сергеев В. В., Сойфер В. А. Обработка изображений в автома' тизированных системах научных исследований. – М.: Наука, 1982. – 216 c. 10. Гонсалес Р., ВУДС Р., Цифровая обработка изображений. – М.: Техносфе' ра, 2005. – 1072 c. 11. Горелик А. Г., Скрипкин В. А. Методы распознавания. – М.: Высшая шко' ла, 1984. – 208 c.
444
Список литературы
12. Горелик А. Г., Гуревич И. Б., Скрипкин В. А. Современное состояние и про' блемы распознавания. – М.: Радио и связь, 1985. – 160 c. 13. Дуда Р., Харт П. Распознавание образов и анализ сцен: Пер. с анг. – М.: Мир, 1976. – 511 c. 14. Журавлев Ю. И., Гуревич И. Б. Распознавание образов и распознавание изображений: Распознавание, классификация, прогноз. Математические методы и их применение // Ежегодник. – М.: Наука, 1989. – Вып. 2. – C. 302. 15. Красовский А. А., Белоглазов И. Н., Чигин Г. П. Теория корреляционно' экстремальных навигационных систем. – М.: Наука, 1979. – 448 c. 16. Кучеренко К.И., Очин Е.Ф. Двумерные медианные фильтры для обработ' ки изображений // Зарубежная радиоэлектроника. – 1986. – № 6. – C. 50–61. 17. Лобанов. Фотограмметрия. ' М.: Недра, 1984. – 552 c. 18. Марр Д. Зрение. Информационный подход к изучению представления и обработки зрительных образов. ' М.: Радио и связь, 1987. – 400 c. 19. Павлидис Т. Алгоритмы машинной графики и обработки изображений: Пер. с анг. – М.: Радио и связь, 1986. – 400 c. 20. Прэтт У. Цифровая обработка изображений: Пер. с анг. – М.: Мир, 1982. – 1 кн. – 525 c. – 2 кн. – 474 c. 21. Пытьев Ю. П. Морфологический анализ изображений. // Доклад АН СССР, 1983. – Т. 269. – № 5. – C. 1061–1064. 22. Пытьев Ю. П. Задачи морфологического анализа изображений // Cб. «Ма' тематические методы исследования природных ресурсов Земли из Космоса.» – М.: Наука, 1984. – C. 41–83. 23. Рабиндер Л., Гоулд Б. Теория и применение цифровой обработки сигнала. – М.: Мир, 1978. – 379 c. 24. Розенфельд А. Распознавание и обработка изображений с помощью вычис' лительных машин: Пер. с анг. – М.: Мир, 1972. – 230 c. 25. Русын Б. П. Структурно'лингвистические методы распознавания изобра' жений в реальном времени. – Киев: Наукова думка, 1986. – 128 c. 26. Тихонов А. Н. Теория восстановления сигналов. – М.: Наука, 1983. – 225 c. 27. Ту Дж., Гонсалес Р. Принципы распознавания образов. – М.: Мир, 1978. – 411 c. 28. Фу К. Структурные методы в распознавании образов. – М.: Мир, 1977. – 320 c. 29. Хорн Б. К. Зрение роботов. – М.: Мир, 1989. – 487 c. 30. Хуанг Т. С. Обработка изображения и цифровая фильтрация. – М.: Мир, 1979. – 274 c. 31. Цыпкин Я. З. Адаптация и обучение в автоматических системах. – М.: На' ука, 1968. – 390 c. 32. Ярославский Л. П. Введение в цифровую обработку изображений. – М.: Сов. Радио, 1979. – 312 c. 33. Ярославский Л .П. Цифровая обработка сигналов в оптике и голографии: Введение в цифровую оптику. – М.: Радио и связь, 1987. – 296 c.
Литература по машинному зрению
445
Литература по машинному зрению на английском языке В расширенный список литературы на английском языке включены как базовые источники, так и отдельные ключевые публикации, полезные для углубленного самостоятельного изучения отдельных разделов машинного зрения. 34. Ackerman F. High precision digital image correlation. // IPSUS. – 1984. – № 9. 35. Akey M. L. and Mitchell O. R. Detection and sub'pixel location of objects in digitized aerial imagery. // Proc. 7th Int. Conf. on Pattern Recogn. Montreal (30July – 2August). – 1984. – Pp. 411–414. 36. Aloimonos J. Y., Weiss I. and Bandyopadhyay A. Active vision. // Int.J.Compu' ter Vision. – 1988. – № 1. – Pp. 681–688. 37. Ayache N. and Faugeras O. D. HYPER. A new approach for the recognition and positioning of two'dimensional objects. // IEEE Trans. Pattern Anal. Mach. Intell. – 1986. – № 8(1). – Pp. 44–54. 38. Ballard D. H. Generalizing the Hough transform to detect arbitrary shapes. // Pattern Recognition. – 1981. – № 13(2). – Pp. 111–122. 39. Ballard D. H., and Brown C. M. Computer Vision. // Prentice'Hall, Englewood Cliffs, New Jersey. – 1982. 40. Barnard S. T. and Thompson W. B. Disparity analysis of images. // IEEE Trans. Pattern Anal. Mach. Intell. – 1980. – № 2(4). – Pp. 333–340. 41. Batchelor B. G., Hill D. A. and Hodgson D. C. Automated Visual Inspection. IFS (Publications) Ltd. // Bedford, UK/North'Holland, Amsterdam. – 1985. 42. Bender E. A. Mathematical Methods in Artificial Intelligence. // IEEE Comput. Society Press, Los Alamitos, California. – 1996. – P. 636. 43. Besl P. J. and Jain R. C. Three'dimensional object recognition. // Comput. Sur' veys. –1984. – № 17. – Pp. 75–145. 44. Bovik A. C., Huang T. S. and Munson D. C. The effect of median filtering on edge estimation and detection. // IEEE Trans. Pattern Anal. Mach. Intell. – 1987. – № 9. – Pp.181–194. 45. Brady J. M. and Wang H. Vision for mobile robots. // Phil Trans R. Soc. (London). – 1992. – 337. – Pp. 341–350. 46. Brooks R. A. Model'based three'dimensional interpretations of two'dimensio' nal images. // IEEE Trans. Pattern Analysis and Machine Intelligence. – 1983. – № 5(2). – Pp. 140–149. 47. Brown D. C. Close range camera calibration. // Photogrammetric Engineering. – August 1971. – № 37(8). – Pp. 855–866. 48. Brown C. M. Inherent bias and noise in the Hough transform. // IEEE Trans. Pattern Anal. Mach. Intell. – 1983. –№ 5. – Pp. 493–505. 49. Burns J., Hanson A., Riseman E. Extracting straight lines. // IEEE Trans. On Patt. Analysis and Machine Intel. – 1986. – Vol. 8. – № 4. 50. Canny. J. A computational approach to edge detection. // IEEE Trans. Pattern Anal. Mach. Intell. – 1986. – № 8. – Pp. 679–698.
446
Список литературы
51. Chakravarty and Freeman H. Characteristic views as a basis for three' dimensional object recognition. // Proc. Soc. Photo'opt. Instrum. Eng. Conf. Robot Vision. – 1982. – 336. – Pp. 37–45. 52. Charniak E. and McDermott D. Introduction to Artificial Intelligence. // Addison Wesley, Reading, MA. – 1985. 53. Crowley J. L., Bobet P. and Schmid C. Auto'calibration by direct observation of objects. // Image Vision Comput. – 1993. – № 11(2). – Pp. 67–81. 54. Davies E. R. Corner detection using the generalised Hough transform. Proc. 2nd Int. Conf. jn Image Processing and Its Applications. // IEEE Conf. Publ. – (24– 26 June) 1986. – № 265. – Pp. 175–179. 55. Davies E. R. A new parametrisation of the straight line and its application for the optimal detection of objects with straight edges. Davies. // Pattern Recogn. – 1987d. № 6. – Pp. 9–14. 56. Davies E. R. The performance of the generalised Hough transform: concavities, ambiguities and positional accuracy // Proceedings of the 3rd Alvey Vision Conference, Cambridge. – 15–17 September 1987h. – Pp. 327–333. 57. Davies E. R. Improved localisation in a generalised Hough scheme for the detection of straight edges. // Image Vision Comput. – 1987j. –№ 5. – Pp.279–286. 58. Davies E. R. Application of the generalised Hough transform to corner detection. // IEEE Proc. – 1988a. – 135, Pp. 49–54. 59. Davies E. R. A modified Hough scheme for general circle location. // Pattern Recogn. – 1988b. – № 7. – Pp. 34–37. 60. Davies E. R. Machine Vision: Theory, Algorithms, Practicalities. // Academic Press. 2'nd Edition, San Diego. – 1997. – P. 750. 61. Davies E. R. Locating objects from their point features using an optimised Hough' like accumulation technique. // Pattern Recogn. –1992d. – № 13(2). – Pp.113–121. 62. Davies E. R. Computationally efficient Hough transform for 2'D object location. // Proc. 4'th British Machine Vision Assoc. Conf. ' Univ. of Surrey (21– 23 September). – 1993b. – Vol. 1. – Pp. 259–268. 63. Deans S. R. Hough transform from the Radom transform. // IEEE Trans. Pat' tern Anal. Mach. Intell. – 1981. № 3. – Pp. 185–188. 64. Dickmanns E. D. and Graefe V. Applications of dynamic monocular machine vision. // Machine Vision and Applications. – 1988. – №. 1. – Pp. 241–261. 65. Dickmanns E. D. and Graefe V. Dynamic monocular machine vision. // Machine Vision and Applications. – 1988. – № 1. – Pp. 223–240. 66. Dickmanns E. D. and Mysliwetz B. D. Recursive 3'D road and relative ego'state recognition. // IEEE Trans. Pattern Anal. Mach. Intell. – 1992. – № 14. – Pp. 199–213. 67. Duda R. O. and Hart P. E. Use of the Hough transformation to detect lines and curves in pictures. // Comm. ACM 15, 11–15. 1972. – Pp. 11–15. 68. Ellis T. J., Abbood A. and Brillault B. Ellipse detection and matching with uncertainty. // Image Vision Comput. – 1992. – № 10(5). – Pp. 271–276. 69. Faugeras O., Luong T. and Maybank S. Camera selfcalibration: Theory and experiments. // Proceedings of the 2nd European Conference on Computer Vision, Springer'Verlag. – 1992. – Pp. 321–334.
Литература по машинному зрению
447
70. Faugeras O. Three'dimensional Computer Vision – a Geometric Viewpoint. // MIT Press, Cambridge, MA. – 1993. 71. Forstner W. and Pertl A. Photogrammetric standart methods and digital image matching techniques for high precision surface measurements. // Pattern Recognition in Practice II, 57–72. – Elsevier Science Publishers. – 1986. – Pp. 57–72. 72. Forstner W. Mid'level vision processes for automatic building extraction, Automatic Extraction of Man'Made Objects from Aerial and Space Images. // Birk' hauser Verlag, Basel. – 1995. 73. Fua P. Combining stereo and monocular information to compute dense depth maps that preserve depth discontinuuities. // Proceedings of the 12th Intern. Joint Conf.on Artificial Intell. – 1991. – Pp. 1292–1298. 74. Gavrila D. M. and Groen F. C. A. 3D object recognition from 2'D images using geometric hashing. // Pattern Recogn. Lett. – 1992. – № 13(4). – Pp. 263–278. 75. Gemand D. Stochastic model for boundary detection. // Image Vision Comput. – 1987. – № 5(2). – Pp. 61–65. 76. Geman S. and Geman D. Stochastic relaxation, Gibbs distributions, and the Bayesian restoration of images. // IEEE Trans. Pattern Analysis and Machine Intelli' gence. – 1984. – № 6. – Pp. 721–741. 77. Gerig G. and Klein F. Fast contour identification through efficient Hough transform and simplified interpretation strategy. // Proc. 8th Int. Conf. on Pattern Re' cogn. – Paris (27–31 October) – 1986. – Pp. 498–500. 78. Godbole S. and Amin A. Mathematical morphology for edge overlap detection for medical images. // Real'Time Imaging. – 1995. – № 1(3). – Pp. 191–201. 79. Golub G. H., Ch. F. Van Loan. Matrix computations. // John Hopkins Uni' versity Press. – 1983. 80. Gonzalez R. and Wintz P. Digital Image Processing (2nd edition). // Addison' Wesley, Reading, MA. – 1987. 81. Gonzalez R. and Woods R. Digital Image Processing (editors). // Addison' Wesley. – 1992. 82. O’Gorman L. and Kastruri R. Document Image Analysis. // IEEE Computer Society Press, Los Alamitos, California. – 1995. 83. Grimson W. E. L. Recognition of object families using parameterised models. // Proc. First Int’l. Conf. Computer Vision. – 1987. – Pp. 93–101. 84. Grimson W. E. L. On the recognition of parameterised 2'D objects. // The International Journal of Computer Vision. – 1989. – № 2(4). – Pp. 353–372. 85. Grimson W. E. L. Object Recognition by Computer: The Role of Geometric Constraints. // MIT Press. – 1990. 86. Grimson W. E. L. and Huttenlocher D. P. On the sensitivity of the Hough transform for object recognition. // IEEE Trans. Pattern Anal. Mach. Intell. – 1990, – № 12(3). – Pp. 255–274. 87. Grosso E., Sandini G. and Tistarelli M. 3'D object recognition using stereo and moti' on. // IEEE Trans. Systems, Man, and Cybernetics. – 1989. – № 19(6). – Pp. 1465–1476. 88. Gruen A., Baltsavias E. Adaptive least squares correlation with geometrical constraints. // SPIE. – 1985. – Vol. 595.
448
Список литературы
89. Gruen A., Baltsavias E. Geometrically constrained multiphoto matching. // PERS. – 1988. – Vol.№5. 90. Hu M. K. Visual pattern recognition by moment invariants. // IRE Trans. Information Theory. – 1962. – Vol. IT'8. – February. 91. Haralick R. M. and Chu Y. H. Solving camera parameters from the perspective projection of a parameterized curve. // Pattern Recogn. Lett. – 1984. – № 17(6). – Pp. 637–695. 92. Haralick R. M. and Joo H. 2D–3D pose estimation. // Proc. 9th Int. Conf. on Pattern Recogn. Rome, Italy. – (14–17 November). – 1988. – Pp. 385–391. 93. Haralick R. M. and Shapiro L. G. Image segmentation techniques. // Computer Vision, Graphics and Image Processing. – 1985. – № 29(1). – Pp. 100–132. 94. Haralick R. M. and Shapiro L. G. Machine vision. // Addison'Wesley. – 1991. 95. Haralick R. M. and Shapiro L. G. Computer and Robot Vision. // Addison' Wesley, Reading, Massachusetts. – 1992. 96. Haralick R. M., Chu Y. H., Watson L. T. and Shapiro L. G. Matching wire frame objects from their two dimensional perspective projections. // Pattern Recogn. Lett. – 1984. – № 17(6). – Pp. 607–619. 97. Haralick R. M., Stenberg S. R. and Zhuang X. Image analysis using mathema' tical morphology. // IEEE Trans. Pattern Analysis and Machine Intelligence. – 1987. Vol. 9. – № 4. – Pp. 532–550. 98. Harris C. G. Determination of ego'motion from matched points. // Proceedings of the 3rd Alvey Conference. – 1987. – Pp. 189–192. 99. Horaud R. New methods for matching 3'D objects with single perspective views. // IEEE Trans. Pattern Analysis and Machine Intelligence. – 1987. – № 9. – Pp. 401–412. 100. Horn B. K .P. and Brooks M. J. (eds.). Shape from Shading. // MIT Press, Cambridge, MA. – 1989. 101. Hough P.V.C. Methods and Means for Recognizing Complex Patterns. – U.S., Patent 3069654, 1962. 102. Huang T. S. (ed). Image Sequence Processing and Dynamic Scence Analysis. // Springer'Verlag, New York. – 1983. 103. Huang T. S., Bruckstein A. M., Holt R. J. and Netravali A. N. Uniqueness of 3'D pose under weak perspective: a geometrical proof. // IEEE Trans. Pattern Analysis and Machine Intelligence. – 1995. – № 17(12). – Pp. 1220–1221. 104. Huber P. J. Robust Statistics. // Wiley, New York. – 1981. 105. Hueckel M. A local visual operator which recognizes edges and lines. // Journal of the association of Computing Machinery. – 1973. – № 20. – Pp. 634–646. 106. Huertas А. and G. Medioni. Detection of intensity changes with subpixel accu' racy using laplacian'gaussian masks. // IEEE Trans. Pattern Analysis and Machine Intelligence. – September 1983. – № 8(5). – Pp. 651–664. 107. Huertas A., Nevatia R. Detecting buildings in aerial images. // Computer Visi' on, Graphics and image processing. – 1988. 108. Hummel R. A. and Zucker S. W. On the foundations of relaxation labelling processes. // IEEE Trans. Pattern Analysis and Machine Intelligence. – 1983. – № 5. – Pp. 267–287.
Литература по машинному зрению
449
109. Huttenlocher D. P., Klanderman G. A. and Rucklidge W. J. Comparing images using the Hausdorff distance. // IEEE Trans. Pattern Analysis and Machine Intelli' gence. – 1993. – № 15(9). – Pp. 850–863. 110. Illingworth J. and Kittler J. The adaptive Hough transform. // IEEE Trans. Pattern Anal. Mach. Intell. – 1987. – Vol. 9. – Pp. 690–698. 111. Illingworth J. and Kittler J. A survey of the Hough transform. // Comput. Vision Graph. Image Process. – 1988. – Vol. 44. – Pp. 87–116. 112. Jain A. K. Fundamentals of Digital Image Processing. // Prentice'Hall Inter' national Editions. – 1989. 113. Jolion J.'M. and Rosenfeld A. Cluster detection in background noise. // Pattern Recogn. Lett. – 1989. – № 22(5). – Pp. 603–607. 114. Kasturi R. and Jain R. C. Computer Vision: Advances and Applications. // IEEE Computer Society Press, Las Alamitos, California. – 1991. 115. Kim D. Y., Kim J. J., Meer P., Mintz D. and Rosenfeld A. Robust computer vision: a least median of squares based approach. // Proc. DARPA Image Understan' ding Workshop, Palo Alto, CA. – ((23–26 May). – 1989. – Pp. 1117–1134. 116. Kiryati N. and Bruckstein A. M. Antialiasing the Hough transform. // Comput. Vision Graph. Image Process.: Graph. Models Image Process. – 1991. – № 53. – Pp. 213–222. 117. Kitchen L. and Rosenfeld A. Gray'level corner detection. // Pattern Recogn. Lett. – 1982. – № 1. – Pp. 95–102. 118. Koller, Weber J., Huang T., Malik J., Ogasawara G., Rao B. and Russell S. Towards robus automatic traffic scene analysis in real'time. // Proc. 12th Int. Conf. on Pattern Recogn. Jerusalem (9–13October). – 1994. – Vol. 1. – Pp. 126–131. 119. Leavers V.F. and Boyce J. F. The Radom transform and its application to shape parametrization in machine vision. // Image Vision Comput. – 1987. – № 5. 120. Levine M. D. Vision in man and machine. // McGraw'Hill. – 1985. 121. Li H. and Lavin M. A.. Fast Hough transform based on bintree data structure. // Proc. Conf. Comput. Vision and Pattern Recogn. Miami Beach, Florida. – 1986. – Pp. 640–642. 122. Lowe. Perceptual Organization and Visual Recognition. // Kluwer Academic Publishers. – 1985. 123. Lutton and Martinez. P. A genetic algorithm for the detection of 2'D geometric primitives in images. // Proc. 12th Int. Conf. on Pattern Recogn. – Jerusalem (9–13 October). – 1994. – Vol. 1. – Pp. 526–528. 124. Lutton, Maоtre H. and Lopez'Krahe J. Contribution to the determination of vanishing points using Hough transform. // IEEE Trans. Pattern Anal. Mach. Intell. – 1994. – № 16(4). – Pp. 430–438. 125. Malik J., Weber J., Luong Q.'T. and Koller D. Smart cars and smartroads. // Proc. 6'th British Machine Vision Assoc. Conf. – Birmingham (11–14 September). – 1995. – Pp. 367–381. 126. Marr D., Hildreth E. Theory of edge detection. // Proc. R. Soc. (London). – 1980. – B207. – Pp. 187–217. 127. Marr D. and Poggio T. Cooperative computation of stereo disparity. // Science. – 1976. – № 194. – Pp. 283–287. 128. Matheron. Random Setsand Integral Geometry. // John Wiley & Sons. – 1975.
450
Список литературы
129. McIvor M. Edge detection in dynamic vision. // Proc. 4'th Alvey Vision Conf. – Manchester (31August – 2 September). – 1988. – Pp. 141–145. 130. Medioni and Ram Nevatia. Segment'based stereo matching. // Computer Vision, Graphics and Image Processing. – 1985. – № 31. – Pp. 2–18. 131. Meer P., Mintz D. and Rosenfeld A. Least median of squares based robust ana' lysis of image structure. // Proc. DARPA Image Understanding Workshop. – Pitts' burgh, Pennsylvania (11–13 September). – 1990. – Pp. 231–259. 132. Meer P., Mintz D., Rosenfeld A. and Kim D. Y. Robust regression methods for computer vision: a review. // Int. J. Comput.Vision. – 1991. – № 6(1). – Pp. 59–70. 133. Merlin P. M. and Farber D. J. A parallel mechanism for detecting curves in pictures. // IEEE Trans. Comput. – 1975. – № 28. – Pp. 96–98. 134. Minsky M. L. and Papert S. A. // MIT Press, Cambridge, MA. – 1969. 135. Moravec H. P. Towards automatic visual obstacle avoidance. // Proceedings of the International Joint Conference on Artifical Intelligence. –1977. – № 584. 136. Moravec H. P. Obstacle avoidance and navigation in the real world by a seeing robot rover. // Stanford Artif. Intell. Lab. Memo ALM'340. – 1980. 137. Mumford D. The problem of robust shape descriptors. // Proc. First Int’l. Conf. Computer Vision. – 1987. – Pp. 602–606. 138. Mundy J. L. and Zisserman A. (eds). Geometric Invariance in Computer Visi' on. // MIT Press, Cambridge, MA. – 1992. 139. Nevatia R. Machine perception. // Prentice'Hall. – 1982. 140. Newman T. S. and Jain A. K. A survey of automated visual inspection. // Computer Vision Image Understanding. – 1995. – № 61(2). – Pp. 231–262. 141. Otsu N. A threshold selection method from gray'level histograms. // IEEE Trans. Systems, Man and Cybernetics. – 1979. – Vol. SMC'9. – №1б. 142. Overington and Greenway P. Practical first'difference edge detection with subpixel accuracy. // Image Vision Comput. – 1987. – № 5. – Pp. 217–224. 143. Postaire J.G. and Touzani A. Mode boundary detection by cluster analysis. // Pattern Recogn. – 1989. – № 22(5). – Pp. 477–489. 144. Princen J., Yuen H. K., Illingworth J. and Kittler J. Properties of the adaptive Hough transform. // Proc. 6th Scand. Conf. on Image Analysis. – Oulu, Finland (19– 22June). – 1989. – Pp. 613–620. 145. Rosenfeld A. and Kak A. C. Digital Picture Processing. // Academic Press, New York, second edition. – 1982. – Two volumes. 146. Rousseeuw P. J. and Leroy A. M. Robust Regression and Outlier Detection. // Wiley, New York. – 1987. 147. Schalkoff R. J. Digital Image Processing and Computer Vision. // Wiley, New York. – 1989. 148. Schneiderman H., Nashman M., Wavering A. J. and Lumia R. Vision'based robotic convoy driving. // Machine Vision and Applications. – 1995. – № 8(6). – Pp. 359–364. 149. Seeger U. and Seeger R. Fast corner detection in grey'level images. // Pattern Recogn. Lett. – 1994. – № 15(7). – Pp. 669–675. 150. Ser P.'K. and Siu W.'C. Novel detection of conics using 2'D Hough planes. // IEEE Proc. Vision Image Signal Process. – 1995. – № 142(5). – Pp. 262–270.
Литература по машинному зрению
451
151. Serra J. Image Analysis and Mathematical Morphology. // Academic Press. – 1982. 152. Serra J. Introduction to mathematical morphology. // Computer Vision, Graphics and Image Processing. – 1986. – Vol. 35. – №3. 153. Schenk, Automatic Generation of DEM“s, Digital Photogrammetry: An Addentum to the Manual of Photogrammetry. // American Society for Photogram' metry & Remote Sensing. – 1996. 154. Shirai Y. Three'dimensional Computer Vision. // Springer'Verlag, Berlin. – 1987. 155. Silberberg T.M., Davis L. and Harwood D. An iterative Hough procedure for three'dimensional object recognition. // Pattern Recogn. Lett. – 1984. – № 17. – Pp. 621–629. 156. Sklansky J. On the Hough technique for curve detection. // IEEE Trans. Comput. – 1978. – № 27. – Pp. 923–926. 157. Stein F. and Medioni G. Structural indexing: Efficient 3'D object recognition. // IEEE Trans. Pattern Anal. Mach. Intell. – 1992. – № 14(2). – Pp. 125–145. 158. Stephens R. S. Probabilistic approach to the Hough transform. // Image Vision Comput. – 1991. – № 9(1). – Pp. 66–71. 159. Stockman G. C. and Agrawala A. K. Equivalence of Hough curve detection to template matching. // Comm. ACM. – 1977. – № 20. – Pp. 820–822. 160. THOMAS RISSE. Hough Transform for line Recognition: Complexity of Evidence Accumulation and Cluster Detection. // Computer Vision, Graphics, and Image Processing. – 1989. – № 46. – Pp. 327–345. 161. Torre V. and Poggio T. On edge detection. // IEEE Trans. Pattern Anal. Mach. Intell. – 1986. – № 8(2). – Pp. 147–163. 162. Tsai R. Y. An efficient and accurate camera calibration technique for 3'D machine vision. // Proceedings CVPR“86. IEEE. – 1986. – Pp. 364–374. 163. Weska J. S. A survey of threshold selection techniques. // Comput. Graph. Image Process. – 1978. – № 7. – Pp. 259–265. 164. Wong R. Y., Hall E. L. Scene matching with invariant moments. // Computer graphics and image processing. – 1978. – Vol. 8. 165. Xu and Oja E. Randomized Hough transform (RHT): basic mechanisms, algorithms and computationnal complexities. // Computer Vision Graph. Image Process: Image Understanding. – 1993. – № 57. – Pp. 131–154. 166. Yang J. and Li X. Boundary detection using mathematical morphology. // Pattern Recogn. Lett. – 1995. – № 16(12). – Pp. 1277–1286. 167. Yakimovsky A. Y. Boundary and object detection in real world images. // Journal of the Association of Computing Machinery. – 1976. – № 23. – Pp. 599–618. 168. Yuen H. K., Illingworth J. and Kittler J. Ellipse detection using the Hough transform. // Proc. 4'th Alvey Vision Conf. – Manchester (31August–2 September). – 1988. – Pp. 167–174. 169. Zheltov S. Yu., vizilter yu. v., stepanov А. А. Shape analysis using Pytiev morphologic paradigm and its use in machine vision. // SPIE Proceedings. – 1994. – Vol. 2350.
452
Список литературы
170. mottle v. v., kopilov А. v., blinov A. b., Zheltov S. Yu. Quasi'statistical approach to the problem of stereo image matching. // SPIE Proceedings. – 1994. –Vol. 2363. 171. Zheltov S. Yu., blochinov Yu. B., stepanov А. А., sibiryakov А. V. Computer 3'D Site Model Generation Based On Aerial Images. // SPIE Proceedings. – 1997. – Vol.3084. 172. Zheltov S. Yu., sibiryakov А. V. Adaptive subpixel Cross'Correlation in a Point Correspondence Problem/Optical 3D Measurement Techniques. // Zurich. – 29 IX – 2 X 1997. 173. vizilter yu. v., Zheltov S. Yu., morzeev yu. v. Image segmentation using the original histogram based multithreshold preseg'mentation. // European Symposium on Aerospace Remote Sensing, Institute of Electrical Engineers (IEE). – London. United Kingdom 22–26X 1997. –Vol. 3217. 174. Zheltov S. Yu., sibiryakov А. V. Using An Image Preliminary Segmentation For Adaptive Subpixel Correlation. // The 8'th International Conference on Computer Graphics and Visualizationics. Conference Proceedings. ' Moscow. – 7–11.09.1998. 175. Zheltov S. Yu., Knyaz V. A., Glasov V. N. Method for 3'D urban objects reconstruction based on combined digital videogrammetry – laser rangefinder technique. // Proceedings of 2nd International Workshop on Urban Multi'Media/3'D Mapping. – Tokyo. – 30 IX – 2 X 1999. – Pp. 189–193. 176. Zheltov S. Yu., Knyaz V. A. Photogrammetric method of virtual model generation for complex 3'D objects. // Proceedings of International Conference on Computer Graphics. Graphicon’99. – Moscow. – 26 VIII – 1 IX 1999. – Pp. 182–186. 177. vizilter yu. v., Zheltov S. Yu., lukin А. А. Development of OCR system for portable passport and visa reader. // SPIE Proceedings. – 1999. – Vol. 3651. 178. Zheltov S. Yu., Knyaz V. A. Approach to Accurate Photorealistic Model Generation for Complex 3'D Objects. // International Archives of Photogrammetry and Remote Sensing. – Amsterdam. – 2000. – Vol. XXXIII. – Part B5/1. – Pp. 428–433. 179. Zheltov S. Yu., Knyaz V. A., Stepanyants D. G. Automated photogrammet' ric system for photorealistic skull 3'D reconstruction: Videometrics and Optical Methods for 3'D Shape Measurements. // Proceeding of SPIE. – 2001. – Vol. 4309. – Pp. 336–345. 180. Zuniga O. A. and Haralick R. M. Corner detection using the facet model. // Proc. IEEE Comput. Vision Pattern Recogn. Conf. – 1983. – Pp. 30–37.
Литература по LabVIEW и NI Vision Литература по LabVIEW и NI Vision на русском языке 181. Cуранов А. Я. LabVIEW 7: Справочник по функциям. – М.: ДМК Пресс, 2005. – 512 с. 182. Батоврин В. К., Бессонов А. С., Мошкин В. В. LabVIEW: Практикум по основам измерительных технологий: Учебное пособие для вузов. – М.: ДМК Пресс, 2005. – 208 с.
Литература по LabVIEW и NI Vision
453
183. Бутырин П. А. и др. Автоматизация физических исследований и экспери' мента: компьтерные измерения и виртуальные приборы на основе LabVIEW 7 // Под ред. Бутырина П. А. – М.: ДМК Пресс, 2005. – 264 с.
Литература по LabVIEW и NI Vision на английском языке 184. Klinger T. Image processing with LabVIEW and IMAQ Vision. – Prentice Hall, 2003. – 319 p. 185. LabVIEW user manual. Part number 323427A'01. – National Instruments, 2003. 186. LabVIEW measurements manual. Part number 322661B'01. – National Instruments, 2003. 187. LabVIEW help. Part Number 370117D'01. – National Instruments, 2004. 188. NI IMAQ user manual. Part number 370160D'01. – National Instruments, 2004. 189. NI IMAQ Vision concept manual. Part number 322916B'01. – National Instruments, 2003. 190. NI IMAQ Vision for LabVIEW user manual. Part number 323917B'01. – National Instruments, 2003. 191. NI IMAQ function reference help. Part Number 370161C'01. – National Instruments, 2004. 192. NI IMAQ Vision Assistant tutorial. Part Number 322228D'01. – National Instruments, 2003.
Предметный указатель PXI (термин LabVIEW). См. Промышленный компьютер PXI (термин LabVIEW) PXI. См. Платформа (термин LabVIEW): аппаратная PXI
Предметный указатель А–B–C Audio Video Interleave. См. Формат: AVI AVI. См. Формат: AVI BitMaP. См. Формат: BMP Block Diagram (термин LabVIEW). См. Блок'диаграмма (термин LabVIEW) BMP. См. Формат: BMP CCD'матрица. См. ПЗС'матрица Close'range photogrammetry. См. Фотограмметрия Compact Vision System (термин LabVIEW). См. Промышленная платформа Compact Vision System (термин LabVIEW) Connector pane (термин LabVIEW). См. Панель (термин LabVIEW): соединительная Control flow model. См. Поток: управления CVS (термин LabVIEW). См. Промышленная платформа Compact Vision System (термин LabVIEW)
R–S–T
IMage AcQuision. См. Технология захвата изображения IMAQ (термин LabVIEW) IMAQ. См. Технология захвата изображения IMAQ (термин LabVIEW) IMAQ Vision. См. Технология захвата изображения IMAQ (термин LabVIEW) Joint Photographic Experts Group. См. Формат: JPEG JPEG. См. Формат: JPEG LabVIEW, 24 Look'Up'Table, 122 LUT. См. Look'Up'Table LZW. См. Алгоритм сжатия данных: LZW
M–N–O
Dataflow model. См. Поток: данных DICOM, 441. См. Формат: DICOM Digital Imaging and Communications in Medicine. См. Формат: DICOM Digital photogrammetry. См. Фотограмметрия: цифровая Dots per inch. См. DPI DPI, 90
Machine vision. См. Зрение: машинное Matching, 17 Matrix code. См. Штриховой код: двумерный: матричный Moving Pictures Experts Group. См. Формат: MPEG MPEG. См. Формат: MPEG Multi'row code. См. Штриховой код: двумерный: многорядный National Instruments (термин LabVIEW), 24, 44 NI Vision. См. Платформа (термин LabVIEW): машинного зрения NI Vision Node (термин LabVIEW). См. Узел (термин LabVIEW) OCR. См. Распознавание: символов оптическое
F–G–H
P
FireWire. См. Протокол: FireWire Front Panel (термин LabVIEW). См. Панель (термин LabVIEW): лицевая GHT. См. Преобразование Хафа: обобщенное GIF. См. Формат: GIF Graphics Interchange Format. См. Формат: GIF HSV. См. Изображения: цветовая модель: HSV
Palette (термин LabVIEW) Controls, 26 Functions, 26 Tools, 26 Parallel port. См. Порт: параллельный Pattern recognition. См. Распознавание: образов PCX. См. Формат: PCX Pixel. См. Пиксель Plug'and'play, 91 Pull'down menu (термин LabVIEW). См. Меню: контекстное
D
I–J–L IEEE 1394. См. Протокол: IEEE 1394
RGB. См. Изображения: цветовая модель: RGB RLE. См. Алгоритм сжатия данных: RLE Run Length Encoding. См. Алгоритм сжатия данных: RLE Serial port. См. Порт: последовательный SubVI (термин LabVIEW). См. Подприбор (термин LabVIEW) Tagged Image File Format. См. Формат: TIFF Terminal (термин LabVIEW). См. Терминал (термин LabVIEW) Tif. См. Формат: TIFF TIFF. См. Формат: TIFF TWAIN. См. Протокол: TWAIN
U–V–W–Y Universal Serial Bus. См. Порт: USB USB. См. Порт: USB VFW. См. Протокол: Video for Windows Video for Windows. См. Протокол: Video for Windows Vision Assistant (термин LabVIEW), 50 Warping. См. Коробление Wire (термин LabVIEW). См. Проводник (термин LabVIEW) YUV. См. Изображения: цветовая модель: YUV
А Автоиндексирование массива, 36 Автоматизация измерений, 391 Адаптивная бинаризация изображения. См. Изображения: бинаризация: адаптивная Адаптивная гистограммная обработка. См. Обработка: гистограммная адаптивная Аддитивный шум. См. Шум: аддитивный Аккумуляторная функция. См. Функция: аккумуляторная Акустическое изображение. См. Изображение: акустическое Алгебраическая операция. См. Операция: алгебраическая Алгоритм сжатия данных LZW, 95 RLE, 94 Анализ движения, 406 иерархический, 285 изображения. См. Изображения: анализ оптических потоков, 408 Аналитическая фотограмметрия. См. Фотограмметрия: аналитическая Аналоговая видеокамера. См. Видеокамера: аналоговая Аналоговый видеосигнал. См. Видеосигнал: аналоговый
455
Аномальная ошибка. См. Ошибка: аномальная Апертура, 169 фильтра. См. Фильтра: апертура Аппаратная платформа PXI. См. Платформа (термин LabVIEW): аппаратная PXI Аппроксимация отрезков линий, 316 Архиватор. См. Процедура сжатия данных
Б Базовый пиксель. См. Пиксель: базовый Безбликовая подсветка. См. Подсвет: безбликовый Бесконтактные измерения. См. Измерения: бесконтактные Бесконтактные трехмерные измерения. См. Измерения: трехмерные: бесконтактные Бимодальная гистограмма. См. Гистограмма: бимодальная Бинаризация изображения по критерию Otsu. См. Изображения: бинаризация: по критерию Otsu Бинарное изображение. См. Изображение: бинарное Бинарный медианный фильтр. См. Фильтр: медианный: бинарный Биометрическая система. См. Система: биометрическая Биометрические характеристики. См. Биометрический идентификатор Биометрический идентификатор, 414 Биометрия, 414, 421 Биомеханические исследования, 426 Битовое изображение. См. Изображение: бинарное Ближний ИК'диапазон. См. ИК'диапазон: ближний Блок'диаграмма (термин LabVIEW), 24 БПФ. См. Фурье: преобразование: быстрое Булевское изображение. См. Изображение: бинарное Быстрая съемка. См. Съемка: ускоренная Быстрое преобразование Фурье. См. Фурье: преобразование: быстрое Быстропротекающий процесс, 111
В Вейвлет Хаара, 206 Вейвлет'анализ, 204 Вейвлет'преобразование, 205 Взаимное ориентирование. См. Ориентирование: взаимное Видеокамера аналоговая, 88, 89 линейная, 86 цифровая, 89 Видеокодек. См. Кодек Видеонаблюдение, 405, 411 Видеопоследовательность. См. Цифровая: видеопоследовательность
456
Обработка и анализ цифровых изображений с примерами
Видеосигнал аналоговый, 88 цифровой, 88 Видимое поле, 59 Виртуальный прибор (термин LabVIEW), 24 Внешнее ориентирование камер. См. Ориентирование: внешнее ВП (термин LabVIEW). См. Виртуальный прибор (термин LabVIEW) Входное изображение. См. Изображение: входное Выделение контуров на изображении, 216 Высокочастотная фильтрация. См. Фильтрация: высокочастотная Высокочастотный гауссовский фильтр. См. Фильтр: гауссовский: высокочастотный Выходное изображение. См. Изображение: выходное Вычитание изображений. См. Изображений: разность Вычитание Минковского. См. Операция: вычитание Минковского
Г Гамма'излучение, 77 Гамма'коррекция, 123 Гауссовая пирамида изображений. См. Изображения: пирамида: гауссовая Гауссовский высокочастотный фильтр. См. Фильтр: гауссовский: высокочастотный Гауссовский низкочастотный фильтр. См. Фильтр: гауссовский: низкочастотный Гауссовский фильтр. См. Фильтр: гауссовский Геометрическая модель камеры. См. Математическая модель камеры Геометрическая нормализация изображения. См. Изображения: нормализация: геометрическая Геометрические измерения на изображении. См. Измерения: на изображении: геометрические Геометрия изображения. См. Изображения: геометрия снимка осевая проективная, 87 центральная проективная, 87 цилиндрическая, 87 Гиперспектральная съемка. См. Съемка: гиперспектральная Гиперспектральное изображение. См. Изображение: гиперспектральное Гистограмма бимодальная, 123 изображения. См. Изображения: гистограмма мультимодальная, 124 унимодальная, 123 Гистограммные преобразования изображения. См. Изображения: яркостные преобразования Гладкая поверхность. См. Поверхность гладкая Глобальная обработка изображения. См. Изображения: обработка: глобальная
Глобальная переменная. См. Переменная (термин LabVIEW): глобальная Гранулометрия, 394
Д Дальнометрический локатор. См. Локатор: лазерный Двумерное изображение. См. Изображение: двумерное поле дальностей. См. Поле: дальностей двумерное скоростей. См. Поле: скоростей двумерное Двумерное преобразование Фурье. См. Фурье: преобразование: двумерное Двумерный приемник изображений. См. ПЗС'матрица Двумерный штриховой код. См. Штриховой код: двумерный Детектор движения интеллектуальный, 406, 408 простейший, 406 оставленных предметов, 406, 410 пересечений, 85 Диапазон длин волн, 76 Диапазонная пороговая сегментация изображения. См. Изображения: сегментация: пороговая диапазонная Дилатация. См. Операция: дилатации Дискретное косинусное преобразование. См. Преобразование: дискретное косинусное Дискретное преобразование Фурье. См. Фурье: преобразование: дискретное Дистанционные измерения. См. Измерения: бесконтактные Дисторсия, 88 ДКП. См. Преобразование: дискретное косинусное ДПФ. См. Фурье: преобразование: дискретное Драйвер, 91
З Закон центрального проектирования, 348 Зрение компьютерное, 18, 390 машинное, 15, 18, 19, 390 роботов, 18, 399 Замедленная съемка. См. Съемка: замедленная
И Идеальный высокочастотный фильтр. См. Фильтр: идеальный: высокочастотный Идеальный фильтр низких частот. См. Фильтр: идеальный: низкочастотный Иерархический анализ. См. Анализ: иерархический Иерархическое кодирование. См. Кодирование информации: иерархическое Излучатель, 79
Предметный указатель Измерения на изображении геометрические, 306 яркостные, 311 Измерения трехмерные бесконтактные, 348, 392 Изображение эталонное, 298 Изображение, 81 акустическое, 80 бинарное, 82 битовое. См. Изображение: бинарное булевское. См. Изображение: бинарное входное, 169 выходное, 169 гиперспектральное, 84 двумерное, 59 инфракрасное, 78 комплексное, 83 логическое. См. Изображение: бинарное меточное, 83 микроволновое. См. Изображение: радиолокационное многозональное, 81, 84 полутоновое, 79, 83 повышенного разрешения, 83 признаковое, 84 радиоволновое, 80 радиолокационное, 79 растровое, 59 рентгеновское, 77, 438 тепловизионное, 78 томографическое, 77, 435 ультразвуковое, 80 ультрафиолетовое, 78 фронтальное, 424 цветное, 84, 141 цифровое, 59 Изображений операция попиксельного сравнения, 62 разность, 62 сумма, 62 сшивка бесшовная, 397 умножение, 71 Изображения анализ, 11, 61 бинаризация адаптивная, 123, 137 по критерию Otsu, 138 пороговая, 137 геометрия, 87 гистограмма, 121 инвертирование яркости, 122 контраст, 120 нормализация, 123 геометрическая, 316 обработка, 11, 18, 119 глобальная, 121 локальная, 121 пирамида, 204 гауссовая, 205 лапласианов, 205 понимание, 18 предобработка, 16, 315 проекция, 120, 160 профиль, 120
457
профиль вдоль линии, 151 размытие, 202 реконструкция, 108 свертка, 184 сглаживание, 315 сегментация, 16, 138, 141, 255, 316 мультипороговая, 256 пороговая, 256 пороговая диапазонная, 257 цветовая, 145 сканирование, 85 механическое, 85 оптико'механическое, 85 смаз, 108 трехмерная реконструкция, 424 фильтрация, 163 в частотной области, 199 линейная, 184, 192 логическая, 170 помеховая, 163, 166 цветовая модель HSV, 142 RGB, 141 YUV, 144 эквализация, 123 яркостные преобразования, 121 яркость, 119 Измерения субпиксельные. См. Локализация: субпиксельная Изолированный пиксель. См. Пиксель: изолированный ИК'изображение. См. Изображение: инфракрасное ИК'подсветка. См. Подсвет: инфракрасный ИК'диапазон ближний, 78 тепловой, 78 Инвертирование яркости. См. Изображения: инвертирование яркости Индикатор (термин LabVIEW), 26 Инженерная фотограмметрия. См. Фотограмметрия: инженерная Инструментальная панель. См. Панель (термин LabVIEW): инструментальная Интегральное преобразование Фурье. См. Фурье: преобразование: интегральное Интеллектуальный детектор движения. См. Детектор: движения: интеллектуальный Инфракрасное изображение. См. Изображение: инфракрасное Инфракрасный диапазон. См. ИК'диапазон Инфракрасный подсвет. См. Подсвет: инфракрасный Искусственный интеллект, 18
К Калибровка камер, 88, 348, 350, 361 Карта глубин, 80 скоростей, 81
458
Обработка и анализ цифровых изображений с примерами
Квант излучения. См. Фотон Кодек, 102, 116 Кодирование информации без потерь. См. Сжатие цифровой информации: без потерь иерархическое, 102 последовательное, 102 постепенное, 102 Комбинированное стирание бахромы. См. Операция: стирание бахромы: комбинированное Компактность образа. См. Образа: компактность Комплексирование, 81 Комплексное изображение. См. Изображение: комплексное Комплексное представление преобразования Фурье. См. Фурье: преобразования комплексное представление Компьютерное зрение. См. Зрение: компьютерное Контекстное меню (термин LabVIEW). См. Меню: контекстное Контраст изображения. См. Изображения: контраст Конфигурация съемки, 348 Коробление, 22 Корреляционное обнаружение. См. Метод: обнаружения: корреляционный Корреляционное слежение, 406 Корреляционный метод обнаружения. См. Метод: обнаружения: корреляционный Коэффициент корреляции морфологический, 298 нормированный, 297 Коэффициент сжатия, 93 Краевой пиксель. См. Пиксель: краевой
Л Лазерный локатор. См. локатор: лазерный Лапласианов пирамида. См. Изображения: пирамида: лапласианов Линейная камера. См. Видеокамера: линейная Линейная подсветка. См. Подсвет: линейный Линейная фильтрация изображения. См. Изображения: фильтрация: линейная Линейный штриховой код. См. Штриховой код: линейный Лицевая панель (термин LabVIEW). См. Панель (термин LabVIEW): лицевая Логическая операция. См. Операция: логическая Логическая фильтрация. См. Изображения: фильтрация: логическая Логическое изображение. См. Изображение: бинарное Локализация субпиксельная, 21 точная, 20 Локальная обработка изображения. См. Изображения: обработка: локальная Локальная переменная. См. Переменная (термин LabVIEW): локальная
Локатор дальнометрический. См. Локатор: лазерный лазерный, 80
М Маска фильтра. См. Фильтра: маска Массив, 34 Математическая модель камеры, 349 Математическая морфология Серра. См. Морфология Серра математическая Матрица весов, 174 Матричный код. См. Штриховой код: двумерный: матричный Машинное зрение. См. Зрение: машинное Медиана. См. Фильтр: медианный Медианный фильтр. См. Фильтр: медианный Меню контекстное (термин LabVIEW), 26 Метод зон, 319 «лесного пожара», 252 матрицы смежности, 320 нормализации фона, 181 обнаружения корреляционный, 297 пересечений, 318 фотограмметрический бесконтактных трехмерных измерений, 347 характеристических мест, 320 Меточное изображение. См. Изображение: меточное Механическое сканирование изображения. См. Изображения: сканирование: механическое Микроволновое изображение. См. Изображение: радиолокационное Минимаксная фильтрация. См. Фильтрация: минимаксная Многозональное изображение. См. Изображение: многозональное Многорядный код. См. Штриховой код: двумерный: многорядный Мода гистограммы, 123 Модульная парадигма. См. Парадигма: модульная Момент инвариантный к изменению масштаба, 264 к повороту, 264 к смещению, 264 построчный, 318 центральный, 318 нормированный, 318 Морфологическая граница, 235 Морфологическая операция на бинарных изображениях. См. Операция: морфологическая: на бинарных изображениях на полутоновых изображениях. См. Операция: морфологическая: на полутоновых изображениях Морфологический коэффициент корреляции. См. Коэффициент: корреляции: морфологический
Предметный указатель Морфологический оператор заполнения. См. Оператор: морфологический: заполнения Морфологический оператор утончения. См. Оператор: морфологический: утончения Морфологический подход Ю. П. Пытьева, 298 Морфологический спектр. См. Спектр: морфологический Морфология Серра математическая, 228 Мультимодальная гистограмма. См. Гистограмма: мультимодальная Мультипороговая сегментация изображения. См. Изображения: сегментация: мультипороговая Мультиспектральная съемка. См. Съемка: мультиспектральная
Н Несинхронность регистрации и обработки данных, 20 Низкочастотная фильтрация. См. Фильтрация: низкочастотная Низкочастотный гауссовский фильтр. См. Фильтр: гауссовский: низкочастотный Нормализация изображения. См. Изображения: нормализация Нормализация фона. См. Метод: нормализации фона Нормальная ошибка. См. Ошибка: нормальная Нормированный коэффициент корреляции. См. Коэффициент: корреляции: нормированный Нормированный центральный момент. См. Момент: центральный: нормированный Ночное виêдение, 78
О Областей разбиение, 259 слияние, 257 Область связная, 252 Обнаружение препятствий, 404 штрихового кода. См. Штриховой код: обнаружение Обобщенное преобразование Хафа. См. Преобразование Хафа: обобщенное Обобщенный ряд Фурье. См. Фурье: ряд: обобщенный Обработка гистограммная адаптивная, 123 Образа компактность, 263 ориентация, 263 периметр, 262 площадь, 261 формат, 262 центр тяжести, 261 Образовый спектр. См. Спектр: образовый Объектно'ориентированное программирование. См. Программирование: объектно'ориентированное Обработка изображений. См. Изображения: обработка
459
Объекты, разнообразие и изменчивость, 19 Одномерный штриховой код. См. Штриховой код: одномерный Окрестность пикселя. См. Апертура проколотая, 170 точки. См. Апертура Оператор вычисления векторов градиентов, 219 вычисления производных, 218 Лапласа, 221 Марра, 221 Робертса, 219 Собела, 219 Оператор морфологический заполнения, 315 утончения, 315 Операция алгебраическая, 62 вычитание Минковского, 231 дилатации, 230, 232, 234 закрытия, 231, 232 логическая, 65 морфологическая на бинарных изображениях, 230 на полутоновых изображениях, 234 открытия, 231, 232 побитовая, 65 попиксельного сравнения изображений. См. Изображений: операция попиксельного сравнения расширения. См. Операция: дилатации сжатия. См. Операция: эрозии сложение Минковского, 231 стирание бахромы, 315 комбинированное, 316 эрозии, 230, 232, 234 Оптико'механическое сканирование изображения. См. Изображения: сканирование: оптико'механическое Оптическая система. См. Система: оптическая Оптический поток. См. Поток: оптический Оптический сканер. См. Сканер: оптический Оптический эффект. См. Эффект: оптический искажающий Ориентация образа. См. Образа: ориентация Ориентирование взаимное, 354 внешнее, 351 Ортоплан, 405 Ортофотоизображение, 404 Освещенность объекта. См. Подсвет Осевая проективная геометрия снимка. См. Геометрия: снимка: осевая проективная Ошибка аномальная, 21 нормальная, 21
П Палитра, 45 Панель (термин LabVIEW) инструментальная, 27
460
Обработка и анализ цифровых изображений с примерами
лицевая, 24 соединительная, 29 Парадигма модульная, 16 Параллельный порт. См. Порт: параллельный Переменная (термин LabVIEW) глобальная, 31 локальная, 31 общего доступа, 31, 43 Периметр образа. См. Образа: периметр ПЗС'матрица, 87 Пиксель, 59 базовый, 169 изолированный, 316 краевой, 316 крайний верхний, 315 левый, 316 нижний, 316 правый, 316 Пиксельная система координат. См. Система координат: пиксельная Пиксельное разрешение. См. Разрешение: пиксельное Пирамида изображений. См. Изображения: пирамида Пирамида лапласианов. См. Изображения: пирамида: лапласианов Планшетный сканер. См. Сканер: оптический Платформа (термин LabVIEW) аппаратная PXI, 44 машинного зрения (NI Vision), 44 Площадь образа. См. Образа: площадь ПО. См. Программное обеспечение Побитовая операция. См. Операция: побитовая Поверхность гладкая, 236 Подприбор (термин LabVIEW), 24, 30 Подсвет безбликовый, 111 инфракрасный, 78 линейный, 111 структурированный, 79, 111, 353, 359 Поле дальностей двумерное, 80 движения, 408 скоростей двумерное, 81 Полукадр, 109 Полутоновое изображение. См. Изображение: полутоновое Помеха загораживающая, 19 Помеховая фильтрация. См. Изображения: фильтрация: помеховая Понимание изображений. См. Изображения: понимание Попиксельная операция. См. Изображений: операция попиксельного сравнения Пороговая бинаризация изображения. См. Изображения: бинаризация: пороговая Пороговая сегментация изображения. См. Изображения: сегментация: пороговая Порт USB, 89
параллельный, 89 последовательный, 89 Последовательное кодирование. См. Кодирование информации: последовательное Последовательный порт. См. Порт: последовательный Постепенное кодирование. См. Кодирование информации: постепенное Постобработка результатов распознавания, 322 Построчный момент. См. Момент: построчный Поток данных, 24 оптический, 408 управления, 24 ППР. См. Правило принятия решения Правило принятия решения, 169 Предобработка изображения. См. Изображения: предобработка Преобразование дискретное косинусное, 102 Фурье. См. Фурье: преобразование Фурье быстрое. См. Фурье: преобразование: быстрое Фурье двумерное. См. Фурье: преобразование: двумерное Фурье дискретное. См. Фурье: преобразование: дискретное Фурье интегральное. См. Фурье: преобразование: интегральное Хафа, 281 обобщенное, 301 Пресегментация, 258 Признаковое изображение. См. Изображение: признаковое Проводник (термин LabVIEW), 26 Программирование объектно'ориентированное, 32 Программное обеспечение, 91, 360, 374, 378 Прогрессивная развертка. См. Развертка: прогрессивная Проекция изображения. См. Изображения: проекция Проколотая окрестность. См. Окрестность: проколотая Промышленная платформа Compact Vision System (термин LabVIEW), 368 Промышленный компьютер PXI (термин LabVIEW), 357 Прореженная съемка. См. Съемка: прореженная Просмотровая таблица. См. Look'Up'Table Пространственная система координат. См. Система координат: пространственная Пространственное разрешение. См. Разрешение: изображения: пространственное Протокол FireWire, 89 IEEE 1394, 89 TWAIN, 92 Video for Windows, 92
Предметный указатель Профиль вдоль линии. См. Изображения: профиль вдоль линии Профиль изображения. См. Изображения: профиль Процедура сжатия данных, 93 Процентильный фильтр. См. Фильтр: ранговый Псевдотрехмерный рельеф, 61
Р Радиоволновое изображение. См. Изображение: радиоволновое Радиолокационное изображение. См. Изображение: радиолокационное Разбиение областей. См. Областей: разбиение Развертка прогрессивная, 109 чересстрочная, 109 Размытие изображения. См. Изображения: размытие Разность изображений. См. Изображений: разность Разрешение в относительных единицах, 91 видеокамеры собственное, 89 изображения пространственное, 90 яркостное, 89 пиксельное, 90 Ранговый фильтр. См. Фильтр: ранговый Распознавание образов, 18 Распознавание символов оптическое, 312 Растровое изображение. См. Изображение: растровое Расчет трехмерных координат точек объекта, 348 Реконструкция изображения. См. Изображения: реконструкция Рентгеновское изображение. См. Изображение: рентгеновское Рентгенограмма, 77 Робастность, 19, 20, 175 Робот, 399 Ряд Фурье. См. Фурье: ряд обобщенный.
С Свертка изображения. См. Изображения: свертка функций, 198 Светодиод, 85 Связная область. См. Область: связная Сглаживание изображения. См. Изображения: сглаживание Сегментация изображения. См. Изображения: сегментация Сжатие цифровой информации без потерь, 92 с потерями, 95, 101 Сингулярная кривая, 236
461
точка, 236 Система биометрическая, 414 видеоввода, 397 видеонаблюдения, 405 компьютерного зрения, 390 координат пиксельная, 348 пространственная, 349 машинного зрения, 390 обнаружения препятствий, 404 оптическая, 85 тепловизионная, 78 Сканер оптический, 85 планшетный. См. Сканер: оптический цифровой, 89 Сканирование изображения. См. Изображения: сканирование Сканирование поверхности, 364 Скользящее среднее. См. Фильтр: скользящее среднее в окне Слияние областей. См. Областей: слияние Сложение изображений. См. Изображений: сумма Сложение Минковского. См. Операция: сложение Минковского Смаз изображения. См. Изображения: смаз Собственное разрешение видеокамеры. См. Разрешение: видеокамеры собственное Согласованная фильтрация. См. Фильтрация: согласованная Соединительная панель (термин LabVIEW). См. Панель (термин LabVIEW): соединительная Спектр морфологический, 239 мощности. См. Спектр: энергетический образовый, 238 энергетический, 196 Ссылка строгого типа, 32 Стереоизображение, 404 Стереообнаружение движения, 412 Стереоотождествление, 348 Стереосоответствие, 352 Стирание бахромы. См. Операция: стирание бахромы Структура яркостно'геометрическая, 15 Структурированный подсвет. См. Подсвет: структурированный Структурирующий элемент, 231, 236 Субпиксельная локализация. См. Локализация: субпиксельная Субпиксельные измерения. См. Локализация: субпиксельная Сумма изображений. См. Изображений: сумма Считывание штриховых кодов. См. Штриховой код: считывание Сшивка изображений. См. Изображений: сшивка бесшовная Съемка быстрая. См. Съемка: ускоренная гиперспектральная, 81
462
Обработка и анализ цифровых изображений с примерами
замедленная, 107 мультиспектральная, 81 прореженная, 108 ускоренная, 107, 111
Т Таблица отображения яркости. См. Look'Up'Table просмотровая. См. Look'Up'Table Текстурированный фон, 19 Тепловизионная система. См. Система: тепловизионная Тепловизионное изображение. См. Изображение: тепловизионное Тепловизор, 78 Тепловой ИК'диапазон. См. ИК'диапазон: тепловой Термограмма, 78 Технология захвата изображения IMAQ (термин LabVIEW), 44 Томографическое изображение. См. Изображение: томографическое Точная локализация. См. Локализация: точная Терминал (термин LabVIEW), 24 Точность. См. Локализация: точная Трехмерная реконструкция. См. Изображения: трехмерная реконструкция
У Узел (термин LabVIEW), 24 Ультразвуковое изображение. См. Изображение: ультразвуковое Ультрафиолетовое изображение. См. Изображение: ультрафиолетовое Умножение изображений. См. Изображений: умножение Унимодальная гистограмма. См. Гистограмма: унимодальная Униполярный импульсный шум. См. Шум: униполярный: импульсный Униполярный шум. См. Шум: униполярный Ускоренная съемка. См. Съемка: ускоренная Устройство видеоввода. См. Фреймграббер
Ф Фильтр, 84, 163 гауссовский, 187 высокочастотный, 201 низкочастотный, 201 идеальный высокочастотный, 201 низкочастотный, 201 медианный, 171, 173 бинарный, 171 процентильный. См. Фильтр: ранговый ранговый, 173, 175 скользящее среднее в окне, 184 Фильтра апертура, 166
маска, 184 ядро. См. Фильтра: маска Фильтрация высокочастотная, 202 изображения. См. Изображения: фильтрация изображения в частотной области. См. Изображения: фильтрация: в частотной области минимаксная, 177 низкочастотная, 202 Фильтрация согласованная, 301 с окаймлением, 301 Формат AVI, 113 BMP, 96 DICOM, 105 GIF, 99 JPEG, 101 MPEG, 116 PCX, 99 TIFF, 100 образа. См. Образа: формат Фотограмметрический измерительный комплекс на базе Compact Vision System, 377 Фотограмметрический метод бесконтактных трехмерных измерений. См. Метод: фотограмметрический бесконтактных трехмерных измерений Фотограмметрическое «сканирование» поверхности, 353 Фотограмметрия аналитическая, 18 инженерная, 347 цифровая, 18, 347 Фотодиод, 84 Фотон, 77 Фреймграббер, 88 Фронтальное изображение. См. Изображение: фронтальное Функция распределения цвета. См. Функция: распределения яркости, 59 Функция аккумуляторная, 281 отклика, 281 Фурье преобразование, 193 быстрое, 197 двумерное, 198 дискретное, 195 интегральное, 194 преобразования комплексное представление, 196 ряд, 194 обобщенный, 206
Ц Цветное изображение. См. Изображение: цветное Цветовая компонента, 79 Цветовая модель изображения. См. Изображения: цветовая модель
Предметный указатель Цветовая сегментация изображения. См. Изображения: цветовая сегментация Центр снимка, 88 Центр тяжести образа. См. Образа: центр тяжести Центральная проективная геометрия снимка. См. Геометрия: снимка: центральная проективная Центральный момент. См. Момент: центральный Цилиндрическая геометрия снимка. См. Геометрия: снимка: цилиндрическая Цифровая видеокамера. См. Видеокамера: цифровая видеопоследовательность, 107 фотограмметрия. См. Фотограмметрия: цифровая Цифровое изображение. См. Изображение: цифровое Цифровой видеосигнал. См. Сканер: цифровой
Ч Частота Найквиста, 196 Чересстрочная развертка. См. Развертка: чересстрочная
Ш Штриховой код, 429 двумерный, 328 матричный, 328 многорядный, 328 линейный, 325 обнаружение, 324 одномерный. См. Штриховой код: линейный считывание, 325 Шум, 19 аддитивный, 164
463
замещения, 164 униполярный, 173 импульсный, 177
Э Эквализация изображения. См. Изображения: эквализация Экспозиция, 87, 107, 109 Элемент управления (термин LabVIEW), 26 Энергетический спектр. См. Спектр: энергетический Энергия сигнала, 196 Эрозия. См. Операция: эрозии Эталонное изображение. См. Изображение: эталонное Эффект загораживания, 19 заслонения. См. Эффект: загораживания изменения среды, 19 оптический искажающий, 19 резкой смены освещения, 19
Я Ядерный магнитный резонанс, 80 Ядро фильтра. См. Фильтра: маска Яркостно'геометрическая структура. См. Структура: яркостно'геометрическая Яркостное разрешение. См. Разрешение: изображения: яркостное Яркостные измерения на изображении. См. Измерения: на изображении: яркостные Яркостные преобразования изображения. См. Изображения: яркостные преобразования Яркость изображения. См. Изображения: яркость
Книги издательства «ДМК Пресс» можно заказать в торгово'изда' тельском холдинге «АЛЬЯНС'КНИГА» наложенным платежом, вы' слав открытку или письмо по почтовому адресу: 123242, Москва, а/я 20 или по электронному адресу:
[email protected]. При оформлении заказа следует указать адрес (полностью), по ко' торому должны быть высланы книги; фамилию, имя и отчество полу' чателя. Желательно также указать свой телефон и электронный адрес. Эти книги вы можете заказать и в Internet'магазине: www.alians kniga.ru. Оптовые закупки: тел. (495) 2589194, 2589195; электронный ад' рес books@alianskniga.ru.
Визильтер Ю. В., Желтов С. Ю., Князь В. А., Ходарев А. Н., Моржин А. В.
Обработка и анализ цифровых изображений с примерами на LabVIEW IMAQ Vision + DVD Главный редактор
Мовчан Д. А.
dm@dmkpress.ru
Литературный редактор Верстка Дизайн обложки
Кикава Л. В. Чаннова А. А. Мовчан А. Г.
Подписано в печать 24.12.2007. Формат 70×100 1/16 . Гарнитура «Петербург». Печать офсетная. Усл. печ. л. 43,5. Тираж 1000 экз.