Научная статья на тему 'Эффективные методы выделения движения объектов в последовательности изображений'

Эффективные методы выделения движения объектов в последовательности изображений Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
315
35
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СЛЕЖЕНИЕ / ОПТИЧЕСКИЙ ПОТОК / СЕГМЕНТАЦИЯ / CUDA / GPU / ВИЗУАЛЬНОЕ ПРОГРАММИРОВАНИЕ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Казаков Борис Борисович, Ивановский Сергей Алексеевич

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Казаков Борис Борисович, Ивановский Сергей Алексеевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

A novel approach to motion tracking based on optical flow calculation has been developed. Using of regularized local methods in optical flow calculations allows to track objects in real time on the wide variety of hardware (including embed systems). A development environment for visual algorithm analysis has been developed in order to perform large number of numerical experiments.

Текст научной работы на тему «Эффективные методы выделения движения объектов в последовательности изображений»

УДК 519.688

5.5. Казаков, СЛ. Ивановский

ЭФФЕКТИВНЫЕ МЕТОДЫ ВЫДЕЛЕНИЯ ДВИЖЕНИЯ ОБЪЕКТОВ В ПОСЛЕДОВАТЕЛЬНОСТИ ИЗОБРАЖЕНИЙ

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

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

Процесс разработки и анализа алгоритмов потребовал проведения множества вычислительных экспериментов. Чтобы упростить эксперименты, был создан программный комплекс визуального исследования алгоритмов. Основная цель его создания — возможность визуального проектирования, исследования и модификации алгоритмов в интерактивном режиме.

Оптический поток. Оптический поток [1] — это поле двумерных векторов, соответствующее смещению пикселов изображений объектов при переходе к следующему кадру. Оптический поток (ОП) позволяет выделить движущиеся объекты в тех случаях, когда классические методы сегментации не позволяют этого сделать, и определить траекторию движущихся объектов на изображениях наблюдаемой сцены. Также существуют методы, позволяющие классифицировать тип деятельности человека по наблюдаемому в видеокадрах полю оптического потока.

Основное уравнение оптического потока имеет вид

f(x,y,t) = I(x + u,y + v,t+l),

(I)

где (и, у) — вектор оптического потока в точке с координатами (х,у) в момент времени I, который необходимо определить; 1(х, у, /), 1(х, у, I + 1) — значения интенсивностей точек изображения с координатами (х,у) в момент времени Г и Г+ 1.

Различные методы решения этого уравнения отличаются друг от друга точностью, объемом вычислений и областью применения [5].

Локальные методы вычисления оптического потока. Для решения уравнения (1) построим разложения функции /,(х+ и, у + у) в ряд Тейлора первого порядка (1 ]:

/ 5/> Л П

/1 +—'-и + —-v-/0 =0. дх ду

(2)

где /0 = /0(х, у) = /0(х, у, 0, /| = /,(*, у) = у, r+ 1),

ИЛИ

Ix(x,y)u + ¡y(x,y)v=-In (3)

где Л "/о-

дх ду

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

/,о>+/ду»2, (4)

уео>

в котором ю—локальная окрестность вокруг точки, представленная в виде регулярной сетки точек;./— индекс точки с координатами Ц, yj) в локальной окрестности; IX(J), Iy(J) - частные производные изображения в момент времени (/+ 1)вточкеу; ¿^(»-коэффициентвзвешивания в точкеJ, который для получения корректного результата может быть выбран как коэффициент

двумерного биномиального фильтра с радиусом, равным радиусу окрестности.

Чтобы найти вектор ОП в точке (х, у), минимизирующий функционал (4), необходимо решить систему линейных уравнений

10c(j)I2x(j) ZOc(j)Ix(j)Iy(j)

je ш

Y.OÁj)iÁj)iyU) 1оду)/2о)

V/€(0

jeto

loc(j)i,<J)W)

(и>

(5)

y em

YOc(j)IJj)I,<J)

\je w

Если нужно получить результаты на реальных изображениях, следует использовать муль-тимасштабное представление изображения [4J; для получения устойчивых оценок оптического потока надо применить какую-либо методику регуляризации.

Глобальные вариационные методы вычисления потока. Вариационные методы вычисления ОП основаны на минимизации функционала

min {EHS = EHSr + XEHSl}, (6)

и

в котором EHSr — регуляризующий член; EHSi — член подобия.

Классический метод предложен в работе [2]:

п

(7)

где область О соответствует всему изображению.

Одна из современных модификаций этого метода ТУ1Л представлена в работе [3], в которой описан итерационный метод минимизации функционала:

пип {ЕТу1Л=ЕТуг + ХЕ1Л,}. (8)

Здесь

ErVr = j]VU| + |Vv|¿Q;£A1( = п

= J|/,(x + w,.y + v)-/0(x,.y)|fto о

(9)

и регуляризующий член Е^допускает разрывы в поле оптического потока (в функционале [2] накладывалось ограничение на пространственную непрерывность оптического потока), а ин-

формационный член Еи за счет использования нормы £1 является робастным функционалом, что делает результаты менее чувствительными к шуму.

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

Рассмотрим две модификации стандартного метода, которые позволяют регуляризовать решение локального метода, сохраняя при этом возможность нахождения решения в замкнутом виде.

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

Вторая модификация состоит в добавлении регуляризирующей составляющей в минимизируемый функционал. Он принимает вид

Е = хадх/,о>++ло'»2 +

Ml

+ IßO)0cOX"2 + v2),

jeCl

(Ю)

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

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

Слежение за объектами с использованием оптического потока

На основе модуля вычисления оптического потока разработан программный комплекс слежения за объектами. Разработанный метод слежения за объектами состоит из трех основных частей: сегментации изображений, выделения объектов, сопоставления объектов при смене кадров.

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

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

Структурная схема метода слежения за объектами представлена на рис. 1.

Реализация на графическом процессоре. В течение последних лет появились новые средства ускорения вычислений с использование графических процессоров (GPU). Графический процессор — это параллельный конвейер. В современных ускорителях такого типа присутствует около 30—150 процессорных модулей. За один такт графический процессор может параллельно выполнить 30— 150 операций. Это и делается в случае, когда алгоритм требует выполнить одновременно множество независимых операций с плавающей точкой.

Для решения подобных задач можно использовать язык параллельных вычислений CUDA [6], разработанный фирмой NVIDIA. Программа состоит из двух основных частей: вызывающего и инициализирующего модуля, работающего на центральном процессоре, и масштабируемого ядра, работающего на GPU. Ядро организовано таким образом, чтобы его можно было выполнить на различном количестве процессорных модулей, что позволяет повышать скорость выполнения программы пропорционально количеству модулей.

Итерационный метод решения уравнения (8) организован таким образом, что его легко перенести на архитектуру GPU. Как показали результаты эксперимента, реализация TVL1 -алгоритма HaGPU позволила значительно повысить скорость вычислений и вычислять оптический поток в реальном временидля изображений среднего размера (512x512). При этом время вычислений в пакете matlab, например, составляет 7 с, а при использовании ускорителя GPU — 0,03 с, т. е. за одну секунду можно обработать 33 кадра.

Сравнение применимости методов вычисления оптического потока для слежения за объектами. Чтобы сравнить возможность использования различных методов вычисления оптического потока при выделении объектов, определим результаты работы методов на четырех сюжетах. Оценим точность выделения ОП, применяя три метода: нерегуляризованный локальный метод, глобальный вариационный метод, регуляризо-ванный локальный метод.

Рис. 1. Схема слежения за объектами на основе оптического потока

Рис. 2. Кадр из исходной последовательности (движение на перекрестке)

Результат обработки видеозаписи движения на перекрестке показан на рис. 2 и 3. В этом примере хорошо видно, что вариационный и регуля-ризованный локальный методы справляются с выделением движущихся объектов. При этом протяженный автобус лучше выделяется вариационным методом, а небольшие автомобили — регуляризованным МНК.

Рекомендации по использованию различных методов. Анализ результатов экспериментов по-

зволяетсформировать определенные выводы по области применения рассмотренных методов.

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

Локальные методы не позволяют стабильно выделить объекты и пригодны для слежения только в редких случаях.

Регуляризованные локальные методы чаще всего дают результаты, достаточно близкие к результатам глобального вариационного метода, а в определенных случаях выделяют объекты точнее. Существенное преимущество регуляризован-ных локальных методов по сравнению с глобальными — намного меньший объем вычислений. Оценка производительности показала, что вре-

б)

Шч Ч - - йрж'Ш»«» »у* " ■•га» штфф^'Уч. \ г - -'4 $ т ш да * 1; ШШШйШ® г щщ .

ЗЕВ? ь"- ■ ■ Й..-Д'я

Ч > -'■: ...

- 1 ЖАу.: : ч -а®

Рис. 3. Вычисленный оптический поток: вариационный метод (а) и регуляризованный локальный метод (б)

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

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

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

Алгоритм описывается в виде направленного графа. Для построения графа программа, реализующая алгоритм, разбивается на смысловые блоки. Отдельный блок представляется в виде черного ящика с набором входных и выходных данных. Блоки соответствуют узлам графа. Поток данных между блоками определяет ребра графа. Чтобы определить семантику ребер, каждому из них приписывается имя выходного и входного параметра. Два узла графа могут соединяться больше чем одним ребром при условии, что они (ребра) соот ветствуют разным входным параметрам. Естественное ограничение — то, что к одному узлу не могут присоединяться два ребра с одинаковым входным параметром. Значения входных

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

Для задания семантики блоков выбран язык python, его основные достоинства:

интерпретируемость — это позволяет менять семантику блоков "налету" без необходимости перекомпиляции;

наличие обширной библиотеки функций (для языка python существуют библиотеки математических функций, отображения произвольных графиков, пользовательского интерфейса, работы с графами и т. д.) [3];

наличие привычного синтаксиса и возможность использования нетипизируемых переменных (нетипизируемые переменные облегчают передачу данных между блоками; синтаксис языка напоминает синтаксис С++, однако имеются существенные отличия);

способность налету встраивать подпрограммы на языке С1Л)Адля эффективного вычисления «узких мест» вычислительных алгоритмов.

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

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

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Дальнейшее развитие методов слежения заключается в соединении алгоритмов вычисления

оптического потока с традиционными схемами рекуррентной (последовательной) обработки (типа фильтра Калмана).

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

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

СПИСОК ЛИТЕРАТУРЫ

1. Lucas B., Kanade T. An iterative image registration technique with an application to stereo vision // Proc. of Imaging understanding workshop. 1981. P. 121-130.

2. Horn B.K.P., Schunck B.G. Determing optical flow // Artificial Intelligence. 1981. Vol. 17. P. 185-203.

3. Zach C., Pock T., Bischof EI. A duality based approach for realtime tv-11 optical flow // Ann. Symp. German Association Patt. Rccogn, 2007. P. 214-223.

4. Luettgen Mark R., Clem Karl W„ Willsky Alan S.

Efficient Multiscale Regularizaron with Applications to the Computation of Optical Flow // IEEE Trans, on image processing. 1993. P. 41—64.

5. Barron J.L., Fleet D.J., Beauchemin S.S. Performance of optical flow techniques // Intern. Journal of Computer Vision. 1994. P. 43-77.

6. Ryoo S., Rodrigues C., Stone S. et al. Program optimization study on a 128-core GPU // The Firs! Workshop on General Purpose Processing on Graphics Processing Units. 2007.

УДК: 004.258

A.B. Том или н, М.С. Стуков, A.A. Стенин

ПРИМЕНЕНИЕ ДИВЕРСИФИКАЦИИ В ЗАДАЧАХ ДИНАМИЧЕСКОЙ ЗАЩИТЫ ПАМЯТИ

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

несанкционированный доступ к конфиденциальной информации;

нарушение целостности конфиденциальной информации;

60

подмена или повышение привилегий пользователя КС;

отказ в обслуживании сервисов целевой КС.

Как свидетельствует статистика CVE NVD NIST3a 2008 год, в коммерческих операционных системах (ОС) семейства Microsoft Windows, проприетарных ОС семейства UNIX, свободных ОС семейства GNU/Linux было зарегистрировано 5844 уязвимости. При этом 8621 из них (14,75 %)

1 Статистика взята с учетом технических отчетов и уведомлений US-CERT и OVAL из CVE NVD NIST - Common Vulnerabilities and Exposures (CVE) National Vulnerability Database (NVD) National Institute of Standards and Technology (NIST) - Общие уязвимости и воздействия (CVE) в Национальном хранилише стандартов, основные уязвимости управления данными (NVD) при Национальном институте стандартов и технологий (NIST) США (см.: электр. ресурс http://nvd.nist.gov/).

Г

i Надоели баннеры? Вы всегда можете отключить рекламу.