Рейтинг
+1.13
голосов:
1
avatar

Прикладные вопросы распознавания образов  

Автоматическая внешняя калибровка камер на основе анализа траекторий движений объектов

1. Введение. Всеобщей тенденцией в развитии систем видеонаблюдения является разработка алгоритмов трекинга (слежения за объектами), которые очень важны в местах скопления людей и автомобилей, таких, как аэропорты, улицы города, автопарковки и т.д. Важным вопросом при проектировании алгоритмов трекинга является внешняя калибровка камер, т.е. определение под каким углом расположены камеры в реальном пространстве. Вопросам внешней калибровки камер, уделено внимание в некоторых публикациях, например, в [1, 2]. В ряде публикаций освещены подходы к внешней калибровки камер по входному изображению и известной геометрии рассматриваемых объектов с выделением проблем: PnP, PnL, PnA [3]. Однако данные подходы невозможно использовать для автоматической внешней калибровки камер, когда направления камер определяются по мере поступления данных из окружающего мира. В данной работе предлагается подход к автоматической внешней калибровке камер, в котором участие человека сводится к минимуму.
В большинстве случаев примерное расположение (координаты) камер в пространстве известно. Приняв к сведению эту информацию, можно значительно упростить калибровку камер. Пользователям систем видеонаблюдения хотелось бы, чтобы внешняя калибровка осуществлялась автоматически, например, в процессе того, как какие-либо объекты перемещались внутри системы, а система видеонаблюдения сама корректировала и определяла направления камер.

2. Постановка задачи. Есть N > 1 камер с известными координатами в пространстве (здесь и далее будем понимать под координатами, только координаты X и Y без высоты). Камеры работают в приблизительно одинаковых режимах: частота кадров, разрешение. Области зрения M камер (2 ≤ M ≤ N) пересекаются друг с другом, например, попарно. В областях зрения камер происходит перемещение объектов, причем в системе видеонаблюдения может находиться несколько объектов. Необходимо определить углы поворота максимально возможного количества камер. На вход поступают видеопотоки с камер и их координаты в пространстве. На выходе должен быть такой результат калибровки, что для каждой камеры присутствует следующая информация:
• наиболее вероятный угол поворота (или неопределенный);
• наличие пересечений области зрения камеры с областями зрения других камер;
• возможные переходы объектов из области зрения камеры в области зрения других камер.


( Читать дальше )

4 битные маркеры Aztec Marker

4 битные маркеры Aztec Marker обладают повышенной надежностью за счет увеличенного количества корректировочных слов Рида-Соломона, но позволяют кодировать всего 15 маркеров.
Ниже можно посмотреть ролик распознавания:

Скачать маркеры и программу работающую с Web-камерой можно здесь:
http://intbusoft.com/download/products/AztecMarkerWebCam.zip

Распознавание дорожных знаков (знак ограничения скорости)

Распознавание дорожных знаков является достаточно сложной задачей, если рассматривать распознавание в целом. Однако при рассмотрении отдельных типов знаков значительно упрощается. Здесь будет описан алгоритм распознавания знаков ограничения скорости. Для тестов было использовано 2 изображения.



( Читать дальше )

Выделение цвета кожи человека

Прочитал статью «A Real-Time Face Tracker» (http://www-prima.inrialpes.fr/perso/Tran/Documents/Articles/Divers/RTFaceTracker.pdf).
Вообще статья посвящена трекингу лица, однако меня она заинтересовала по другой причине – в ней представлена модель описания цвета кожи. Поэтому я опишу смысл этой модели.

Основная идея в том, что человек адаптируется к яркости изображения, и для того, чтобы распознать необходимо отбросить информацию о яркости. Используется понятие «чистого» цвета (хроматический), описанного в работе [G. Wyszecki and W.S. Styles. Color Science: Concepts and Methods, Quantitative Data and Formulae, Second Edition, John Wiley & Sons, New York, 1982].

«Чистый» цвет получается следующим образом:
r = R / (R + G + B),
g = G / (R + G + B).
Синий цвет лишний, поскольку после нормализации r+g+b =1.

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


( Читать дальше )

Выделение контура лица после детектирования

Встроенные возможности OpenCV позволяют детектировать лицо, но при распознавании лиц может потребоваться более точное определение его границ. Метод выделения границ лица описан в проекте «Face detection and swap». Там расставлялись точки, называемые «щупами», которые сдвигались к лицу, пока не находился подходящий цвет лица, и движение не останавливалось. Расстановка «щупов» выглядела так:

Однако в данном примере у нас фон лица темный, что значительно облегчает задачу. Мы рассмотрим примеры с более недружелюбным фоном:



( Читать дальше )

Новый тип оптических маркеров Aztec Marker

Использование оптических маркеров для трекинга не является чем-то новым, и на настоящий момент существует ряд разработок в этой области. Наиболее известные технологии – это ARToolKit и ARTag. Однако у данных технологий есть определенные недостатки, например обязательное отсутствие шума по краям. У многих разработчиков возникала идея: «а может использовать в качестве маркеров хорошо детектируемые и хорошо зарекомендовавшие себя коды, ну, например, QR Code или Aztec (Small Aztec) Code». Пример такого маркера получил название Aztec Marker, о его структуре подробнее можно почитать здесь.
Там же вы можете скачать исходный код для кодирования и декодирования маркеров.


( Читать дальше )

Определение неправомерной вставки дополнительных кадров в видеопоток

Предположим, вы разрабатываете какую-нибудь технологию обработки видео информации, поступающей с видеокамеры в реальном времени. Технология готова, но как защитить ее? Вы хотите, чтобы пользователь мог выбрать варианты покупки вашего SDK для одной камеры, двух, трех и т.д. Конечно, нет проблем, если взаимодействие с видео вы встраиваете в SDK, но если такой возможности нет? В таком случае можно анализировать последовательность кадров, чтобы определить, принадлежат ли кадры текущему видеопотоку или нет. Данную возможность можно реализовать, используя реализованную в OpenCV технологию отличий. При реализации примера будем иметь в виду, что камера неподвижна и однонаправлена.
Поскольку неизвестно, как будет подделываться видеопоток (после каждого кадра или после последовательности кадров), то нельзя заниматься сравнением только последовательных кадров. Но можно чередовать сравнения, например один кадр – сравниваем с предыдущем, второй – с 5 кадром перед этим и т.п. После нахождения отличий можно посчитать процент измененного изображения и суммировать результат в единицу времени.


( Читать дальше )

Бинаризация описанная в работе "Edge Assisted Fast Binarization Scheme for Improved Vehicle License Plate Recognition"

Edge Assisted Fast Binarization Scheme for Improved Vehicle License Plate Recognition
M Satish, Lajish V L and Sunil Kumar Kopparapu
TCS Innovation Labs — Mumbai
Tata Consultancy Services Ltd., Yantra Park, Thane (West), Maharashtra 400 601, India

Предлагается быстрый адаптивный порог бинаризации при распознавании автомобильных номеров. Авторами предлагается новый метод, основанный на анализе краев. Метод сравнивается с локальным и глобальным методами Отсу.
Суть метода.
Пусть изображение состоит из пикселей переднего плана (G1) и пикселей заднего плана (G2) и G1>G2 (на самом деле не суть важно, что больше). Обычно выбирают порог G1≥GT≥G2, поскольку переход не резок, а плавный.


( Читать дальше )

Структура системы распознавания образов реального времени

Выбор структуры обусловлен классом системы распознавания образов (СРО) реального времени (РВ). Если предполагается строить гибкую систему РВ без обратной связи, то достаточно использовать один программный процесс и один поток, в котором в цикле будут формироваться данные (например, с видеокамеры) и передаваться на процедуру распознавания. Однако такой подход не исключает ситуации, когда программа зависнет или аварийно завершится, что неприемлемо в полностью автоматизированных системах.
В работе [1] была предложена структурная схема программной СРО РВ. Система должна состоять из отдельных модулей, каждый из которых может быть оформлен в виде процессов, потоков или библиотечных функций.
Программные системы РВ реализуются на соответствующих операционных системах, например, QNX Neutrino, Windows CE, или на обычных операционных системах (Windows, Linux) с расширениями РВ. Особенностью подобных операционных систем является поддержка вытеснения потоков, что позволяет полностью вытеснять потоки с меньшим приоритетом при поступлении более важных потоков. Наиболее высшим приоритетом должен обладать модуль контроля, поскольку он обладает правом принудительно завершать работу модулей распознавания. В качестве примера построения структуры была разработана программная имитационная модель, работающая на обычной версии Windows XP. Поскольку наиболее подвержены ошибкам и зависаниям модули распознавания, то они реализовывались в виде отдельных процессов, а модули управления, контроля и сбора и обработки данных – в виде отдельных потоков главного процесса модели (для удобства обмена данными внутри одного адресного пространства). Для взаимодействия потоков и процессов использовались мьютексы, являющиеся наиболее простым и эффективным механизмом синхронизации.


( Читать дальше )