Помощь в написании студенческих работ
Антистрессовый сервис

Обзор методов распознавания действий человека

РефератПомощь в написанииУзнать стоимостьмоей работы

Построение оптического потока Построение оптического потока является одним из известных и старейших подходов в компьютерном зрении. Данный подход является примером способа построения глобального представления изменения изображения с учетом времени. Для каждого пикселя вычисляется его скорость и направление изменения физического положения. Такой подход чувствителен к изменению изображения (помехи… Читать ещё >

Обзор методов распознавания действий человека (реферат, курсовая, диплом, контрольная)

Программы распознавания действий человека

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

  • 1. Преобразование видеопотока или последовательности изображений в вид, который будет приниматься классификатором;
  • 2. Классификация данных, полученных из первой части программы;

Помимо этого, необходимо разработать GUI, который будет отображать результат работы программы.

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

В настоящее время доступно множество различных видеокамер. Они бывают как отдельными периферийными устройствами, так и встроенными (например, в ноутбуках). У каждого устройства есть характеристики: разрешение, угол обзора, формат. Помимо привычных RGB камер становятся доступны камеры с различными встроенными датчиками. Очевидно, что писать для каждой из камер свою программу для работы с видеопотоком затратно. Известная библиотека OpenCV [47] предоставляет возможность работы с различными источниками данных (от видеопотоков до файлов), скрывая от разработчика детали работы с камерой. Так же новая и развивающаяся библиотека OpenNI [48] фокусируется на работе с сенсорами современных видеокамер. Для видеокамеры Kinect есть официальная библиотека Microsoft Kinect SDK [46].

a) OpenCV.

OpenCV (Open Source Computer Vision) — библиотека с открытым исходным кодом, в которой реализовано более 2500 классических и современных алгоритмов компьютерного зрения и машинного обучения с различными оптимизациями для GPU (графический процессор) и CPU (центральный процессор). Она распространяется под свободной лицензией BSD, что позволяет изменять и использовать её в коммерческих целях. Библиотека поддерживает языки программирования C++, C, Python, Java и Matlab, и операционные системы Windows, MacOS, Linux и Android. Так же существует обёртка EmguCV для работы с платформой.NET, разработанная открытым сообществом программистов.

В OpenCV изображения хранятся в структуре Mat [39], которая представляет собой массив массивов чисел с плавающей точкой. Например, если исходное изображение является цветным (в RGB формате), то в структуре Mat оно будет представлено массивом массивов размера три, в каждом из которых будет храниться нормализованное значение соответствующей цветовой компоненты для каждого пикселя. Работа с видео в OpenCV представляется в виде работы с каждым отдельным кадром данного видео в формате Mat. Последняя актуальная версия на момент написания работы — 2.4.9.

В EmguCV для работы с изображениями используется специальный класс Image, где TColor — класс цвета изображении, а TDepth — глубина цвета. Версионность данной обёртки копирует версионность библиотеки OpenCV.

b) OpenNI.

OpenNI (Open Natural Interaction) — библиотека с открытым исходным кодом, предоставляющая стандартизированный API для работы с различными датчиками (RGB, глубины, инфракрасные, аудио датчики). Так же сообществом поддерживаются и распространяются библиотеки, созданные разработчиками на основе OpenNI [45].

При работе с источником данных в OpenNI можно указать, данные с какого датчика следует использовать. Выбранные данные предоставляются пользователю покадрово в виде экземпляра класса VideoFrameRef [44], который содержит всю необходимую информацию о хранимом кадре. Данные из объекта класса VideoFrameRef конвертируются в структуру Mat без каких-либо трудностей [41]. Последняя актуальная версия на момент написания работы — 2.1.

c) Kinect SDK.

Kinect SDK — официальная библиотека для работы с сенсорами Kinect от компании Microsoft. Библиотека предоставляет разработчику как низкоуровневые функции для работы с данными с датчиков, так и высокоуровневые функции для работы с абстракциями, такими как объекты на изображении. Библиотека работает только на операционной системе Windows.

Сенсор Kinect имеет инфракрасный датчик, RGB и датчик глубины. Для каждого вида данных имеется свой класс для предоставления данных разработчику. В случае данных с сенсора глубины используется класс DepthFrame. Данные в нём представлены в виде массива целочисленных значений каждого пикселя полученного изображения. Последняя актуальная версия на момент написания работы — 2.0.

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

В своем обзоре Ronald Poppe разделяет способы представления изображения на две категории: глобальную и локальную [26]. В случае глобального представления при помощи различных техник (например, вычитание фона или слежения за объектом) выделяется область интереса, которая и является дескриптором изображения. Плюс данного подхода в том, что дескриптор сохраняет полезную информацию, которую можно интерпретировать различными способами, однако он является слабо устойчивым к искажениям и требует аккуратного вычисления. Локальное представление, в противоположность глобальному, является подходом, при котором выделяются и отслеживаются какие-либо независимые точки на изображении (points of interest). Данный подход более устойчив к искажениям и шуму, но может потребовать дополнительной обработки входных данных.

Рассмотрим самые популярные подходы в построении дескрипторов для последовательности изображений.

a) Выделение силуэта.

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

Bobick и Davis в своей работе [4] предложили выделять силуэт из каждого кадра, получать изображения разницы между соседними кадрами и строить окончательное изображение, накладывая полученные изображения друг на друга. Полученное изображение получило название Motion Energy Image (MEI). Помимо этого, вводится понятие Motion History Image (MHI) — изображение, интенсивность каждого пикселя которого зависит от времени возникновения действия в данной точке.

MEI и MHI могут быть использованы как вместе, так и по отдельности. Как можно заметить, MHI сохраняет в себе информацию о времени для каждого кадра. Минусом использования MHI является то, что такое изображение не подходит для продолжительных действий или последовательности действий, так как такой алгоритм работает только со статичными камерами, что, как следствие, будет вызывать накладывание изображений друг на друга. Опубликованы работы, в которых для дальнейшей обработки полученных изображений считаются Hu-моменты [4] или применяется преобразование Радона [32], что позволяет добавить инвариантность к переносу и масштабированию у полученных изображений.

Другой подход в работе с силуэтами для отражения временного пространства представлен в работе Blank [2]. Выделенные силуэты складываются в фигуру в трехмерном пространстве, где роль третьего измерения играет время. Затем особенности из полученной фигуры выделяются при помощи решения приведённого в [2] уравнения. Как и для подсчета MEI и MHI, данный подход предполагает вычитание фона для каждого кадра, что накладывает некоторые ограничения на работу алгоритма. Yan Ke с коллегами в своей работе описывают улучшенный алгоритм, основанный на построении объёмной фигуры из изображений силуэтов человека и времени в роли третьего измерения, который позволяет работать без покадрового вычитания фона [19].

b) Построение оптического потока Построение оптического потока является одним из известных и старейших подходов в компьютерном зрении. Данный подход является примером способа построения глобального представления изменения изображения с учетом времени. Для каждого пикселя вычисляется его скорость и направление изменения физического положения. Такой подход чувствителен к изменению изображения (помехи, изменение освещения), однако широко используется для различного рода задач. Обзор по использованию и модификациям оптического потока представлен в работе Denis Fortun, Patrick Bouthemy, Charles Kervrann [13]. Учет физических способностей человека для улучшения работы алгоритма определения действий представлено в работе [10], где авторы предлагают разделить регионы интереса на три горизонтальные части (для головы, тела и туловища).

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

Laptev и Lindeberg в работе [24] модифицировали алгоритм детектора углов Харриса для работы с 3D. Для пикселя на изображении вводится понятия соседа, который подразумевает соответствующие пиксели в соседних кадрах. Алгоритм рассматривает кубы из пикселей определённого размера и выделяет те регионы, где происходит наибольшее изменение как в пространственном, так и во временном измерении, далее в этих кубах выделяются точки интереса. Одним из недостатков такого подхода является относительно небольшое количество полученных стабильных точек интереса. Так же есть и другие подходы для выделения точек интереса при рассмотрении видео как 3D объекта. Rapantzikos в работе [27] использует 3D дискретные вейвлеты для выделения регионов интереса. Wong и Cipolla [35] рассматривают подпространства в пространстве видео, объединяя коррелирующие между собой части в одно общее, тем самым определяя место нахождения точек интереса, связанных с движением.

Для работы с точками интереса существует множество различных алгоритмов. Некоторые из них вдохновлены алгоритмами определения точек интереса в статических изображениях. Существует множество различных модификаций алгоритма SIFT (Scale Invariant Feature Transform) [23] и SURF (Speeded Up Robust Features) [33].

d) Другие подходы.

Другим распространённым подходом является построение скелета человека. Алгоритмы подобного рода делятся на две группы: подход на основе шарнира (joint-points) и на основе частей тела человека. В первом случае скелет рассматривается как набор отдельных точек, которые задают движение изменением своего положения [17]. Во втором случае подход основывается на том, какие части тела участвуют в движении. Это позволяет моделировать движения отдельных частей тела и их взаимодействие [30].

Jhuang в работе [25] опирался на исследования работы зрительной системы человека и представил алгоритм, работающий в несколько этапов, обеспечивающий некоторую инвариантность к положению объекта на изображении.

Показать весь текст
Заполнить форму текущей работой