admin / 18.08.2018

1.1.3 Признаки Хаара

Аннотация

Приведен обзор методов обнаружения положения руки на изображении. Предлагается способ обнаружения руки в реальном времени в видеопотоке на основе признаков Хаара и AdaBoost-классификатора. Анализируются результаты работы программной реализации предложенного способа.

Ключевые слова: обнаружение руки, признаки Хаара, AdaBoost.

Введение

В разговоре человека с собеседником жесты руки часто играют важную роль, добавляя эмоциональную окраску произносимым словам и привнося тем самым дополнительную информацию. В компьютерном мире жесты можно использовать для управления компьютером. Этот факт является предпосылкой для создания способа интерактивного взаимодействия человека с компьютером. При реализации данного подхода необходимо обнаружить положение руки (если она имеется на изображении или видеофрейме) и отслеживать ее движение. Эта задача является ервоочередной в системах интерактивного взаимодействия человек-машина. В данной работе излагается высокоскоростной алгоритм обнаружения руки в реальном времении, обсуждаются результаты работы соответствующей программной реализации.

Методы обнаружения руки на изображении

Существуют различные методы обнаружения руки на изображении. Эти методы можно разделить на две группы: методы на основе внешнего вида руки (Vision-based approach) и методы на основе 3D-модели руки (3D hand model based approach) [1]. В методах на основе внешнего вида руки при моделировании используются двумерные параметры изображения, которые сравниваются с такими же параметрами, выделенными из входного изображения. В методах на основе 3D-модели применяются кинематические 3D-модели руки, с помощью которых можно оценить параметры руки, сравнивая их с двумерными проекциями этих 3D-моделей. В методах первого типа используются такие признаки, как цвет кожи [2-4], образы руки [5, 6], локальные признаки [7, 8], оптический поток [9, 10].

Рисунок 1 — Примеры признаков Хаара: a – множество простых признаков; б – множество расширенных признаков

Каждый метод имеет преимущества и недостатки. Методы на основе цвета кожи имеют высокую скорость выполнения и могут работать в реальном времени, но при этом зависят от изменения освещения или не позволяют отличить руку от вещей, цвет которых подобен цвету кожи. Методы с использованием образов руки и локальных признаков работают так же быстро, но на сложном фоне не обеспечивают точное обнаружение. Оптический поток позволяет обнаружить только движущиеся объекты. Методы на основе 3D-моделей обеспечивают большую степень свободы (можно обнаруживать и одновременно распознавать различные формы руки), но требуют большого объема вычислений и наличия обширной базы данных, включающей все позы руки.

В настоящее время метод Джонса – Виолы с использованием признаков Хаара и AdaBoost-классификатора для обнаружения человеческих лиц предлагает один из лучших алгоритмов для решения таких задач. В данной работе метод Джонса – Виолы используется для решения задачи обнаружения руки в реальном времени.

Метод обнаружения руки на изображении на основе признаков Хаара и AdaBoost-классификатора (метод Джонса – Виолы)

Метод Джонса – Виолы был разработан для решения задачи обнаружения человеческих лиц на изображении. Главное преимущество этого метода состоит в высокой скорости его выполнения. В [11] показано, что метод Джонса Виолы может обрабатывать до 15 кадр/с, т. е. позволяет работать в реальном времени. В данной работе метод Джонса – Виолы применяется для обнаружения руки и отслеживания ее положения в видеопоследовательности.

Признаки Хаара. Значение признаков Хаара вычисляется по формуле [11]

где I – интенсивность пикселей; S1 – все пиксели в области черного прямоугольника; S2 – все пиксели в области белого прямоугольника. На рис. 1 показаны простые и расширенные признаки Хаара, используемые в данной работе.

Рисунок 2 — Понятие интегрального изображения: а – интегральное изображение в точке p(x,y); б – вычисление суммы пикселей внутри прямоугольника

Интегральное изображение. Использование интегрального изображения позволяет быстро вычислить значения признаков Хаара независимо от размера изображения. Интегральное изображение P в точке p(x,y) вычисляется как сумма интенсивностей всех точек, находящихся выше и левее нее (рис. 2,а) [11]:

Таким образом, сумма пикселей внутри прямоугольника D (см. рис. 2,б) может быть вычислена в виде P4 + P1 – P2 – P3 и не зависит от размера изображения.

AdaBoost-классификатор. Видеопоток, получаемый с помощью видеокамеры, представляет собой последовательность кадров. Для каждого кадра вычисляется его интегральное изображение. Затем кадр сканируется окном малого размера (субокном), содержащим признаки Хаара. Для каждого j-го признака соответствующий классификатор определяется формулой [11]

где x – субокно; ?j – пороговое значение; pj – направление знака неравенства; fj – признак Хаара.

AdaBoost-алгоритм позволяет повысить точность классификации с помощью ряда слабых классификаторов, используя так называемую каскадную классификацию (рис. 3). В результате вычисляется взвешенная комбинация этих слабых классификаторов:

(N – количество слабых классификаторов; ?i – коэффициент, полученный из тренируемой базы данных; hi – слабый классификатор).

Рисунок 3 — Каскадная классификация в алгоритме AdaBoost

Программная реализация и обсуждение результатов

В данной программной реализации создана база изображений для тренировки AdaBoost-классификатора, содержащая 400 изображений с объектом (рука) (рис. 4) и 500 случайных изображений без объекта (негативные изображения) (рис. 5). Разработан 14-ступенчатый каскадный классификатор для распознавания руки. Для тестирования использовалась база изображений, содержащая 100 изображений размером 640х480 с объектом.

Рисунок 4 — Часть базы позитивных изображений с объектом

Рисунок 5 — Часть базы негативных изображений без объекта

В результате численных экспериментов установлено, что обработка каждого изображения из тестовой выборки выполняется за 50–60 мс (рис. 6). Объект правильно обнаруживается на 99 изображениях из 100.

Рисунок 6 — Обнаружение руки в реальном времени

При работе в реальном времени видеопоток получается с помощью встроенной камеры ноутбука Asus с частотой 15 кадр/с. Размер кадра – 640х480 пикселей. Программа протестирована на ноутбуке Asus с процессором Intel Core Duo 2, видеокартой NVIDIA GEFORCE G621M. Скорость обработки в реальном времени составляет приблизительно 14-15 кадр/с, что является достаточным для отслеживания и распознавания движения объектов.

Выводы

Алгоритм Джонса – Виолы на основе признаков Хаара и AdaBoost позволяет решать задачу обнаружения руки с таким же быстродействием, как и задачу обнаружения человеческих лиц (для которой он первоначально предназначался). Скорость обработки на обычном компьютере достигает 14-15 кадр/с, что является достаточным для работы в режиме реального времени.

Следует отметить, что алгоритм обеспечивает достаточно высокую точность. Для дальнейшего повышения точности классификатора необходимо расширить базу изображений (как позитивных, так и негативных) для обучения.

Список литературы

1. ZHOU H., HUANG T. S. Tracking articulated hand motion with Eigen dynamics analysis // Proc. of the Intern. conf. on computer vision, Nice (France), 14–16 Oct. 2003. Washington DC: IEEE Computer Soc., 2003. V. 2. P. 1102–1109.

2. WU Y., HUANG T. S. Non-stationary color tracking for vision-based human computer interaction // IEEE Trans.

Neural Networks. 2002. V. 13, N 4. P. 948– 960.

3. MANRESA C., VARONA J., MAS R., PERALES F. J. Hand tracking and gesture recognition for humancomputer interaction // Electron. Lett. Comput. Vision Image Anal. 2005. V. 5, N 3. P. 96–104.

4. MCKENNA S., MORRISON K. A comparison of skin history and trajectory-based representation schemes for the recognition of user-specific gestures // Pattern Recognition. 2004. V. 37. P. 999–1009.

5. CHEN F., FU C., HUANG C. Hand gesture recognition using a real-time tracking method and hidden Markov models // Image Vision Comput. 2003. V. 21, N 8. P. 745–758.

6. NG C. W., RANGANATH S. Gesture recognition via pose classification // Proc. of the 15th Intern. conf. on pattern recognition, Barcelona (Spain), 3–7 Sept. 2000. Washington DC: IEEE Computer Soc., 2000. V. 3. P. 699–704.

7. OKA K., SATO Y., KOIKE H. Real-time fingertip tracking and gesture recognition // Proc. IEEE. Comput. Graphics Appl. 2002. V. 22, N 6. P. 64–71.

8. HUANG C., JENG S. A model-based hand gesture recognition system // Machine Vision Appl. 2001. V. 12, N 5. P. 243–258.

9. CUTLER R., TURK M. View-based interpretation of real-time optical flow for gesture recognition // Proc. of the 3rd IEEE conf. on face and gesture recognition, Nara (Japan), 14–16 Apr. 1998. Washington DC: IEEE Computer Soc., 1998. P. 416–421.

10. LU S., METAXAS D., SAMARAS D., OLIENSIS J. Using multiple cues for hand tracking and model refinement // Proc. of the IEEE conf. on computer vision and pattern recognition, Madison (USA), 16–22 June 2003. Washington DC: IEEE Computer Soc., 2003. P. 443–450.

11. VIOLA P., JONES M. Rapid object detection using a boosted cascade of simple features // Proc. of the IEEE conf. on computer vision and pattern recognition. Washington DC: IEEE Computer Soc., 2001. P. 511–518.


Признаки Хаара, про которые я расскажу, известны большинству людей, которые так или иначе связаны с системами распознавания и машинного обучения, но, судя по всему, мало кто использует их для решения задач вне стандартной области применения. Статья посвящена применению каскадов Хаара для сравнения близких изображений, в задачах сопровождение объекта между соседними кадрами видео, поиска соответствия на нескольких фотографиях, поиска образа на изображении и прочих подобных задач.

В большинстве случаев, когда нужно простое сравнение двух достаточно похожих фрагментов изображения его реализуют через их ковариацию (или что-нибудь аналогичное). Берётся образец (на фотографии — цветок) и передвигается по изображению по X и Y в поисках точки, где отличие образца (J) от изображения (I):

достигает своего минимума.

Этот способ очень быстр в реализации, интуитивен и досконально известен.

Пожалуй я не встречал ни единой группы разработчиков, где бы его не использовали. Конечно, все замечательно знают его недостатки:

  • Неустойчивость при смене освещения
  • Неустойчивость при изменении масштаба или повороте изображения
  • Неустойчивость, если часть изображения — изменяющийся фон
  • Маленькая скорость работы — если нужно обнаружить область n*n на изображении m*m, то количество операций будет пропорционально n2∙(m-n)2.

Как бороться с этими недостатками все тоже знают.

  • Освещение нейтрализуется нормировкой или переходом к бинаризации области.
  • Изменения масштаба и небольшие повороты нейтрализуются изменением разрешения при корреляции.
  • С фоном при таком подходе никто не борется.
  • Скорость оптимизируют путём поиска с большим шагом или при маленьком разрешении.

В ситуациях, когда результатов корреляции недостаточно — переходят к более сложным методам, таким как сравнению карт особых точек (SURF), границ, или непосредственному выделению объектов. Но эти алгоритмы совсем о другом: в большинстве случаев они достаточно медленные, их сложно написать с нуля (особенно на каком-нибудь DSP-процессоре), есть ограничения на структуру изображения.

В какой-то момент, обдумывая очередной проект, упёрся в задачку где требовалось сравнить несколько изменчивых областей в изображении. И думал, пока мне не вспомнился однажды упомянутый на Хабре алгоритм Predator, где было показано быстрое и устойчивое ведение объекта в видео. Немножко поразмыслив, я понял, что весь этот подход, позволяющий решать большой класс задач прошёл мимо меня.
Напомню, что такое признаки Хаара. Каскады из признаков обычно упоминаются как база для построения систем выделения сложных объектов, таких как лица, руки, или другие предметы. В большинстве статей этот подход неразрывно связывают с алгоритмом обучения AdaBoosta. Сам по себе каскад Хаара — это набор примитивов, для которых считается их свёртка с изображением. Используются самые простые примитивы, состоящих из прямоугольников и имеющих всего два уровня, +1 и -1. При этом каждый прямоугольник используется несколько раз разного размера. Под свёрткой тут подразумевается s = X-Y, где Y — сумма элементов изображения в тёмной области, а X — сумма элементов изображения в светлой области ( можно так же брать X/Y, тогда будет устойчивость при изменении масштаба).

Такие свёртки подчёркивают структурную информацию объекта: например для центра лица человека будет всегда отрицательна следующая свёртка:

Глаза будут темнее, чем область между ними, так же как область рта будет темнее чем лоб. Чем больше используется различных примитивов, тем точнее можно потом классифицировать объект. При этом если точная классификация не нужна — можно использовать меньшее количество примитивов.
Тут можно упомянуть, что в задаче распознавания объектов, после того, как построены наборы признаков по тестовой выборке, алгоритмы обучения (AdaBoost, SVM) определяют последовательность (каскад) свёрток, соответствующих объекту. При распознавании объекта на изображении производиться его сравнение с тестовым изображением.
В чём же плюс Хаара и почему нельзя использовать вместо этих уродских прямоугольничков такие замечательные и физичные кривые как, например, синусоиды и гауссианы?
Плюс в том, что каскады Хаара очень быстро считаются через интегральное представление изображений. Более подробно это описано по ссылке, а тут я лишь кратко скажу, что интегральное изображение представляется как:

Значение в точке X,Y матрицы (II), полученной из исходного изображения (I) это сумма всех точек в прямоугольнике (0,0,X,Y).

Тогда интеграл по любому прямоугольнику (ABCD) в изображении представим как:
SumOfRect(ABCD) = II(A) + II(С) — II(B) — II(D)
Что даёт всего лишь 4 обращения к памяти и 3 математических действия для подсчёта суммы всех элементов прямоугольника вне зависимости от его размера. При расчёте других свёрток, отличных от свёрток примитивов Хаара, требуется количество действий пропорциональное квадрату размера примитива (если не рассчитывать через БПФ, что возможно не для любых паттернов).
Вернёмся к нашей задачке. Пусть мы хотим найти небольшой фрагмент (J) в большом изображении (I).

Для того, чтобы это сделать не требуется обучение. По одному фрагменту всё равно невозможно его произвести. Примитивы Хаара помогут получить образ J и искать на I именно его. Достаточно получить свёртки J с набором Хаар-признаков и сравнить с набором свёрток тех же примитивов, рассчитанных на I в окнах пропорциональных небольшому фрагменту.
Плюсы:

  • Устойчивость к смене освещения, даже если это локальная смена освещения, устойчивость к шумам (примитивы представляют собой простейший полосовой фильтр).
  • Если примитивы были не очень маленькие, то сильно устойчивее корреляции при изменении масштаба(размер примитивов при этом не будет влиять на точность, если обход с маленьким шагом).
  • Если признаки на большом изображении рассчитать заранее и при сдвиге окна поиска брать уже посчитанные и актуальные для него — поиск будет значительно быстрее корреляции (нужно сравнить меньшее количество элементов).

При этом видно, что можно провести ряд достаточно простых оптимизаций, которые ускорят и уточнят этот подход.
Если кому-то захотелось поиграться, я написал небольшую программку, в которой реализован самый простой вариант этого алгоритма. В программе осуществляется ведение выбранного фрагмента в видеопотоке. EmguCV для подцепления камеры и простых преобразований изображения (Хаар делается вручную).

ссылка на оригинал статьи http://habrahabr.ru/post/198338/

Пилоны сити-формат 1,2 х 1,8 м

Продукция / Наружная реклама / Стелы, пилоны, пиларсы / Пилоны сити-формат 1,2 х 1,8 м

Сити-формат — вид уличных световых рекламных конструкций, подходящих для проведения рекламных компаний и социальной рекламы. Успех узнаваемости бренда достигается массовостью и повторяемостью размещения его на подобных рекламных конструкциях. 
Стандарттный габаритный размер сити-формата 1,2 х1,9 м (рекламное поле 1,2 х 1,8 м). 

2 СТОРОННИЕ ПИЛОНЫ (ДИСПЛЕИ) СИТИ-ФОРМАТ НА ОПОРЕ

Изображение Характеристики
Габаритные размеры: 1300 х 2500 х 200 мм. 

Рекламная поверхность: 1200 х 1800 мм 

Размещение информации: сменное, через дверцу. 

Установка: на фундамент.

Материалы конструкции: металлокаркас из профильных труб; наружная обкладка — сталь, окрашенная порошковой эмалью; лицевая панель — акрилл 3мм

Подсветка: внутренняя светодиодные модули                          

Стоимость:
— Односторонние 67600 руб
— Двухсторонние 77150 руб


Смотрите также:

FILED UNDER : IT

Submit a Comment

Must be required * marked fields.

:*
:*