АНАЛИЗ ВИДЕОИЗОБРАЖЕНИЙ В РЕАЛЬНОМ ВРЕМЕНИ СРЕДСТВАМИ ЯЗЫКА АКТОРНЫЙ ПРОЛОГ
А.А. Морозов 1-2, О.С. Сушкова 1 1 Институт радиотехники и электроники им. В.А. Котельникова РАН, Москва, Россия, 2 Московский городской психолого-педагогический университет, Москва, Россия
Аннотация
Разработаны метод и средства логического объектно-ориентированного программирования систем интеллектуального видеонаблюдения нового поколения, поддерживающих анализ поведения и взаимодействия людей, животных и технических объектов. В состав разработанных средств логического программирования входят: транслятор объектно-ориентированного логического языка Акторный Пролог в Java, свободно распространяемая библиотека встроенных классов Акторного Пролога на Java, включающая процедуры низкоуровневого анализа видеоизображений и компьютерной графики, а также среда программирования на языке Акторный Пролог. Применение разработанного метода рассмотрено на примере решения задачи интеллектуального видеомониторинга аномального поведения людей. Объектно-ориентированные средства логического языка Акторный Пролог позволяют разбивать программу анализа видео на взаимодействующие параллельные процессы, реализующие различные этапы обработки видеоизображений и анализа сцен, а трансляция в язык Java обеспечивает надёжность, переносимость и открытость создаваемых программ интеллектуального видеонаблюдения.
Ключевые слова: анализ видеоизображений в реальном времени, интеллектуальное видеонаблюдение, параллельное объектно-ориентированное логическое программирование, выявление аномального поведения, Акторный Пролог, распознавание сложных событий, машинное зрение, техническое зрение, трансляция Пролога в Java.
Цитирование: Морозов, А.А. Анализ видеоизображений в реальном времени средствами языка Акторный Пролог / А.А. Морозов, О.С. Сушкова // Компьютерная оптика. -2016. - Т. 40, № 6. - С. 947-957. - DOI: 10.18287/2412-6179-2016-40-6-947-957.
Введение
Целью данной работы является создание метода и средств логического объектно-ориентированного программирования (ЛООП) систем интеллектуального видеонаблюдения нового поколения. Идея интеллектуального видеонаблюдения заключается в автоматической обработке данных, поступающих в реальном времени с камер видеонаблюдения, с целью распознавания аномальных событий, в том числе общественно-опасного поведения людей [1]. Типичными задачами, решаемыми существующими коммерческими системами интеллектуального видеонаблюдения, являются: обнаружение оставленных предметов, присутствие людей в контролируемой зоне, подсчёт количества посетителей, упавший человек, резкое изменение параметров движения объекта, попытки вывести из строя камеру видеонаблюдения и т.п. Дальнейшее развитие методов и средств интеллектуального видеонаблюдения исследователи связывают с анализом активности одиночных людей и групп людей [1, 2]. Различают следующие направления исследований, связанные с анализом активности людей [2]: анализ жестов, анализ действий, анализ поведения и анализ взаимодействий между людьми и объектами. Для авторов представляют интерес, прежде всего, задачи анализа поведения и взаимодействий между людьми и объектами. Другим направлением исследований авторов является анализ поведения подопытных животных в биомедицинских исследованиях.
Принципиальным отличием между анализом действий и анализом поведения людей (животных) явля-
ется то, что при анализе поведения учитывается контекст, в котором происходят действия. Например, одно и то же действие, быстрый выход сотрудников из офиса, является нормальным поведением людей в конце рабочего дня и во время обеденного перерыва, однако в другое время суток это поведение может свидетельствовать о каком-то чрезвычайном происшествии и должно рассматриваться как аномальное поведение группы людей. Для накопления и использования знаний о контексте наблюдаемых событий удобно и целесообразно использовать логические языки, поэтому одним из перспективных направлений в области анализа поведения в последние годы было признано логическое программирование [3 - 11].
Идея логического программирования систем интеллектуального видеонаблюдения заключается в том, что для описания и анализа видеосцен, а также сценариев поведения людей, животных и технических объектов используется некоторый логический язык. При этом с помощью логических формул описываются свойства объектов, имеющие отношение к решаемой задаче, а также временные и пространственные связи между анализируемыми объектами и событиями. Для реализации этой идеи, как правило, используются расширения разработанных ранее логических языков и систем логического программирования.
Одной из первых систем интеллектуального видеонаблюдения, в которых для анализа временный последовательностей, описывающих перемещения людей, были применены средства логического программирова-
ния, является система интеллектуального видеонаблюдения W4 [3]. В работе [4] описана другая система интеллектуального видеонаблюдения, VidMAP, сочетающая алгоритмы анализа видеоизображений, реализованные на языке C++, с системой логического программирования Пролог. Система VidMAP позволяет анализировать видеопоток в режиме реального времени, то есть обрабатывать видеокадры и делать логические выводы в темпе поступления информации с видеокамер. Система осуществляет полный цикл обработки видеоинформации, включая ввод данных с одной или нескольких видеокамер, вычитание фона, трассировку объектов, генерацию логических формул, описывающих видеосцену, и логический вывод. В работе [5] описана система интеллектуального видеонаблюдения VERSA, реализованная на основе системы логического программирования SWI-Prolog [12]. В отличие от системы VidMAP, система VERSA не обеспечивает полный цикл обработки видеоизображений; логический вывод осуществляется на основе подготовленных заранее описаний видеокадров. При этом, однако, в системе VERSA разработаны средства описания пространственных и временный отношений между объектами и событиями на основе интервальной арифметики. В работе [6] описана система распознавания сложных аудиовизуальных событий на основе Answer Set Programming [13]. Эксперименты с системой показали, что данный подход обеспечивает высокую скорость обработки данных, достаточную для того, чтобы обрабатывать аудиовидеопоток в темпе реального времени.
Одним из важных направлений исследований является разработка методов и средств нечётких рассуждений для анализа нечёткой и неполной информации о видеосцене и сценариях поведения людей, животных и объектов. В работе [7] описано расширение логики предикатов, предназначенное для нечётких рассуждений о наблюдаемых объектах и событиях. В логику предикатов добавлен формализм бире-шёток [14], позволяющий работать с нечёткими описаниями распознаваемых образов. Другая система, созданная на основе диалекта исчисления событий [15] и системы вероятностного логического программирования ProbLog [16], описана в работе [8]. На вход системы подаются подготовленные вручную списки так называемых «кратковременных» событий (ходьба, бег, неподвижное состояние, активность на месте, резкое движение). Система с помощью вероятностного логического вывода распознаёт «долговременные» виды активности людей (человек оставил предмет, встреча людей, совместное передвижение людей, драка). В одной из предыдущих работ [9] этой же исследовательской группы исчисление событий реализовано стандартными средствами логического программирования, без использования вероятностного подхода. В работе [8] обсуждаются преимущества и недостатки обоих подходов.
В работе [10] предлагается логический метод распознавания актов вандализма и хулиганства в автобусах на основе данных камер видеонаблюдения. Ана-
лиз аудио- и видеоданных реализован с помощью нечёткого логического вывода. В работе [11] язык Пролог используется для выделения в толпе пассажиров взаимосвязанных групп людей, что позволяет устанавливать принадлежность вещей и тем самым снизить количество ложных сообщений об оставленных без присмотра предметах.
Логическое программирование широко применяется также в исследованиях по анализу видеоинформации, хранимой в видеоархивах [17 - 26]. Для описания семантики и анализа видеосцен применяются примерно такие же методы, что и для интеллектуального видеонаблюдения, однако акцент делается не на реальное время обработки данных, а на анализ данных большого размера. Первые работы в этой области не были напрямую связаны с логическим программированием, однако в них можно найти легко узнаваемые идеи, реализованные в современных системах логического анализа видео. Например, в работе [18] описана система NAOS, предназначенная для распознавания событий на основе геометрического описания динамических сцен. Для описания сцен в системе применяются формулы логики первого порядка, расширенные временными интервалами, а для анализа применяются механизм сопоставления с образцом и поиск с откатом, характерные для современных языков логического программирования. В работе [19] описана система SOO-PIN, предназначенная для анализа семантики динамических сцен, включающих перемещение объектов и их взаимодействие. Анализ динамических сцен реализован на основе теории фреймов Минского [27]. Интересно, что система разработана на основе объектно-ориентированного параллельного логического языка Parlog++ [28], однако смысл, вкладываемый авторами [19] в термины «объектно-ориентированный логический язык» и «параллельный логический язык», существенным образом отличается от того, который будет использоваться далее в этой работе. Более подробное обсуждение этого вопроса будет приведено ниже. В работе [20] рассмотрен SQL-подобный язык пространственно-временных запросов к архиву видеоданных. Язык позволяет описывать пространственные отношения между объектами с помощью правил языка Пролог. В работе [21] рассмотрена система интеллектуального видеонаблюдения с языковым человеко-машинным интерфейсом, позволяющим задавать вопросы о наблюдаемых событиях, включая время и место событий, пол наблюдаемых людей. Для детектирования событий используется язык Пролог. В работе [22] для описания и анализа семантики видеоданных предложено использовать аппарат марковских логических сетей [29]. Идея этого способа представления знаний состоит в использовании формул логики предикатов первого порядка, снабжённых весами, указывающими их достоверность. Для логического анализа видеосцен при этом используется разновидность прямого логического вывода. Позднее предложенный математический аппарат был успешно применён в работе [23] для анализа сложного взаимодействия группы людей на примере игры в баскетбол. В работе [24] математический аппарат
марковских логических сетей использован для видеопротоколирования работы бригады хирургов-травматологов. В работе [25] описан другой метод нечётких рассуждений о видеосцене. Для описания видеосцены используется логический язык первого порядка, расширенный средствами субъективной логики [30]. В работе [26] описан математический аппарат вероятностной логики событий, объединяющий логику предикатов первого порядка с множествами временных интервалов и вероятностными оценками. Разработанный метод анализа видео рассмотрен на примере анализа поведения игроков в волейбол.
Несмотря на интенсивные исследования в данной области, логические методы и средства анализа семантики видеоизображений пока что реализованы только в рамках экспериментальных систем. Одной из основных причин этого, по мнению авторов, является общее техническое отставание логического программирования от других направлений информатики. Отставание проявляется, в частности, в том, что в разработке экспериментальных и промышленных систем логического программирования участвует значительно меньшее количество людей, чем в создании и развитии императивных языков и систем программирования. Это означает, что для успешного развития этого направления необходима не только разработка новых методов и средств логического анализа, но и развитие (совершенствование) трансляторов логических языков, систем программирования и прикладных библиотек. Авторы рассматривают данную работу как шаг в направлении практической реализации методов логического анализа видеоизображений, поэтому обсуждение методов и средств логического анализа в данной работе будет осуществляться одновременно с обсуждением вопросов их реализации.
Отличительной особенностью нашего подхода к логическому программированию систем интеллектуального видеонаблюдения является использование объектно-ориентированного логического языка Ак-торный Пролог [31 - 34]. С точки зрения авторов, поддержка объектно-ориентированного подхода является совершенно необходимой для перехода логических методов анализа из области экспериментальных исследований в сферу практического применения. К сожалению, подавляющее большинство работ в области логического программирования интеллектуального видеонаблюдения основано на использовании классического (не объектно-ориентированного) Пролога (то есть логики предикатов первого порядка в форме хорновских дизъюнктов). Это обусловлено несколькими причинами:
1. Разработчики логических методов и средств анализа видео часто игнорируют вопросы их практического применения.
2. Проблема объединения объектно-ориентированного и логического подходов к программированию является самостоятельной областью теоретических и экспериментальных исследований [35], и до сих пор не существует общепринятого подхода к её решению.
3. Наиболее распространённые системы логического программирования с открытым кодом не являются объектно-ориентированными.
Сложность объединения логического и объектно-ориентированного подходов к программированию заключается в необходимости разработки математической семантики для объектно-ориентированных средств логического языка. Можно выделить три основных подхода к объединению логического и объектно-ориентированного программирования [35]:
1. «Внелогический подход», в рамках которого проблема разработки математической семантики языка просто игнорируется. В язык вводятся синтаксические конструкции, аналогичные объектно-ориентированным средствам императивных языков. По мнению авторов, данный подход является тупиковым.
2. Так называемый «клаузальный подход», идея которого заключается в том, что в качестве «объекта» рассматривается набор предложений языка Пролог (хорновских дизъюнктов) и логических переменных.
3. «Процессный подход», в рамках которого «объектами» считаются рекурсивно исполняемые процедуры. Именно этот подход применён в работе [19]. С точки зрения авторов, «процессный подход» неудобен в использовании и неэффективен на уровне реализации. Поэтому рассматриваемые в данной статье средства логического программирования основаны на «клаузальном подходе» к ЛООП.
По сравнению с другими языками программирования, Акторный Пролог [36, 37] обладает следующим набором достоинств:
1. Все объектно-ориентированные средства языка имеют классическую теоретико-модельную семантику. Это означает, что существует подмножество языка, в отношении которого выполняются стандартные теоремы о корректности и полноте логического вывода методом резолюций [38]. При выполнении определённых условий можно гарантировать, что логическая программа найдёт все существующие решения задачи, и все найденные решения будут математически корректны.
2. Акторный Пролог является параллельным логическим языком.
3. Разработан транслятор Акторного Пролога в Java [33, 34]. Трансляция логического языка в Java целесообразна с точки зрения практического применения методов интеллектуального видеонаблюдения, так как обеспечивает надёжность, переносимость и открытость создаваемых систем обработки видео.
В настоящей работе описана суть метода решения задач интеллектуального видеонаблюдения на примере распознавания аномального поведения людей.
1. Принципы объектно-ориентированного логического анализа видеоизображений
При решении задачи интеллектуального видеонаблюдения можно выделить подзадачи распознавания низкого уровня (например, вычитание фона видео-
изображения, выделение на видеоизображении людей, автомобилей, построение траекторий перемещения объектов, оценка их скорости и т.п.) и подзадачи распознавания высокого уровня (например, распознавание бегущих людей, драки, оставленных без присмотра предметов и др.). При этом логические средства удобно применять для решения высокоуровневых задач распознавания, а входными данными для них должны служить результаты распознавания низкого уровня, полученные с применением методов анализа видеоизображений, реализованных на языках программирования более низкого уровня.
Применение параллельного логического программирования является очень удобным с точки зрения структурирования текста программы и становится совершенно необходимым в условиях анализа видеоизображений, поступающих в реальном времени, потому что различные этапы анализа имеют разный приоритет. Некоторые операции (например, вычитание фона, выделение блобов (блоб - набор связанных пикселей переднего плана видеоизображения), трассировка объектов и др.) являются критически важными, потому что их пропуск может привести к потере видеозахвата объектов. Другие операции (анализ графа взаимодействия объектов, визуализация результатов анализа и пр.) при этом могут быть приостановлены для экономии вычислительных ресурсов. К сожалению, большинство логических языков, включая первый логический язык Пролог, изначально создавались как последовательные языки. В настоящее время параллельные логические языки давно уже не являются экзотикой, но, тем не менее, существующие проекты логического программирования систем интеллектуального видеонаблюдения до сих пор были основаны на последовательных логических языках.
Для описания объектов (элементов) видеосцен используются так называемые недоопределённые множества Акторного Пролога [36]. Например, недо-определённое множество
{ frame1: B, frame2: E, mean_velocity: V} обозначает участок траектории движения объекта в интервале времени с кадра B до кадра E. Переменная V обозначает среднюю скорость движения объекта на этом участке.
Отношения между элементами видеосцены описываются с помощью хорновских дизъюнктов, например, правило
is_a_running_person(E):-
E == { frame1: T1, frame2: T2, mean_velocity: V, mean_standardized_area: A, wr2_mean: M, wr2_skewness: S, wr2_cardinality: C | _ }, is_a_fast_obj ect(T 1 ,T2,V), is_a_pedestrian(A,M,S,C). определяет понятие «бегущий человек» как быстро движущийся объект, размер и статистические метри-
ки движения которого соответствуют человеку (а не транспортному средству). Статистические метрики движения объектов будут рассмотрены в параграфе 3.
2. Пример анализа видеоизображений
Рассмотрим пример анализа видеоданных из набора BEHAVE [41] (рис. 1). В соответствии с методом логического программирования систем интеллектуального видеонаблюдения, программа анализа создаёт несколько параллельных процессов.
Рис. 1. В поле зрения программы интеллектуального
видеонаблюдения попала ситуация, похожая на уличный инцидент (нападение группы хулиганов). Прямоугольниками
обозначены движущиеся блобы, жирными линиями обозначены связные графы перемещений блобов. Скорость движения блобов обозначена с помощью цвета рёбер графа
Первый процесс читает последовательность №ЕО-изображений, имитирующую ввод видеоизображения в реальном времени, и реализует анализ низкого уровня, а именно, вычитание фона, выделение блобов, трассировку объектов, определение точек взаимодействия блобов. Все эти операции реализуются с помощью встроенного класса Акторного Пролога 'ImageSubtractor', входящего в состав ^уа-библиоте-ки [39]. Второй процесс анализирует информацию, подготовленную первым процессом, и выводит на экран результаты видеонаблюдения. Заметим, что приоритет второго процесса при этом должен быть ниже, чем приоритет первого процесса, чтобы чрезмерное потребление вычислительных ресурсов на высокоуровневую обработку не могло привести к потере видеозахвата первым процессом.
Для распознавания аномального поведения в рассматриваемом примере подходит следующий сценарий поведения, описанный в виде логических правил: «Где-то в поле видимости камеры встречаются два человека (или несколько человек), после чего группа людей разделяется, и по крайней мере один из людей убегает». Такая ситуация может свидетельствовать об уличном инциденте, драке или краже, поэтому её стоит отметить как вероятный случай аномального поведения и выдать соответствующее предупреждение оператору системы видеонаблюдения.
Отличительной особенностью разработанного авторами метода анализа видеоданных является пред-
ставление информации о движущихся объектах в виде термов (структур данных), а не фактов Пролога (логических формул). Логическая программа получает результаты низкоуровневого анализа видеоизображения в виде структуры данных, описывающей набор связных графов перемещений блобов. При этом каждый граф представлен в виде списка недо-определённых множеств [36], соответствующих отдельным рёбрам графа. Каждое ребро является направленным и снабжено следующими атрибутами: список номеров рёбер - непосредственных предшественников рассматриваемого ребра, список номеров рёбер - прямых продолжателей рассматриваемого ребра, координаты и скорость блоба в различные моменты времени, средняя скорость блоба на данном ребре графа и др.
Рис. 2. Программа интеллектуального видеонаблюдения распознала уличный инцидент. Прямоугольниками обозначено текущее положение участников происшествия.
Остальные обозначения такие же, как на рис. 1
Считается, что граф описывает искомую ситуацию, если в нём содержится хотя бы одно ребро A, имеющее в качестве последователя ребро B, соответствующее бегущему человеку, и в качестве предшественника - ребро C, соответствующее встрече, по крайней мере двух людей. Ребро графа соответствует бегущему человеку, если средняя скорость и длина трека блоба, соответствующего этому ребру, отвечают заданному логическому условию (подробный пример логического определения см. в [40]). Если некоторый граф содержит искомый сценарий уличного инцидента, логическая программа выводит на экран надпись «Attention!» и указывает текущее положение участников происшествия (рис. 2).
Рассмотренный пример представляет собой простую логическую программу, осуществляющую интеллектуальный видеомониторинг аномального поведения людей. Заметим, что выразительных средств логического языка достаточно, чтобы запрограммировать все необходимые этапы обработки информации: ввод видеоинформации в реальном времени, низкоуровневая обработка видеоизображения, логический анализ видеоинформации и вывод результатов на экран.
3. Экспериментальная проверка метода и средств логического объектно-ориентированного анализа
Экспериментальная проверка программного обеспечения (ПО) интеллектуального видеонаблюдения является нетривиальной задачей, потому что распознавание аномального поведения включает некоторую иерархию взаимосвязанных подзадач распознавания, а именно:
1. Аккуратное выделение движущихся объектов.
2. Достаточно точное вычисление координат и оценка скорости движения объектов в кадре.
3. Классификация объектов, присутствующих в кадре, по крайней мере разделение идущих (бегущих) людей и транспортных средств.
4. Поиск подграфов, соответствующих искомым схемам аномального поведения, в графе траекторий движения объектов.
Простое тестирование алгоритмов распознавания, а именно подсчёт правильно и неправильно распознанных тестовых образцов с построением ROC-кривых, является совершенно недостаточным и, более того, может ввести в заблуждение относительно качества работы ПО, потому что не даёт представления о том, как небольшие изменения условий видеонаблюдения, ухудшающие количественные характеристики работы методов низкого уровня, могут повлиять на качество решения задач более высокого уровня. Поэтому для полноценного тестирования ПО интеллектуального видеонаблюдения необходимо:
1. Создание специальных тестовых видеоклипов, отражающих реальные условия видеонаблюдения, включая возможные ракурсы съёмки, возможные изменения освещения и фона, состав наблюдаемых объектов и пр.
2. Всестороннее тестирование отдельных этапов обработки видеоданных с пониманием того, какие параметры одного этапа обработки существенно влияют на реализацию последующих этапов. Например, наличие выбросов в оценке мгновенной скорости объектов критично при детектировании на последующем этапе так называемых «резких движений», но может быть проигнорировано в схеме обработки, описанной выше, в параграфе 2.
3. Совместное тестирование всех этапов анализа, включая проверку производительности системы анализа при различных уровнях нагрузки.
Для авторов представляет интерес прежде всего экспериментальная проверка и тестирование работы новых методов и средств распознавания, разработанных в рамках данного проекта. Ниже будут рассмотрены результаты экспериментальной проверки одного из промежуточных этапов анализа видеоизображений, а именно различение классов движущихся объектов «люди» и «транспортные средства».
Для экспериментов с указанной подзадачей распознавания хорошо подходит набор видеоданных BEHAVE [41]. В этом наборе содержатся инсценировки драк, преследования и других видов аномального поведения с участием нескольких людей. При
этом съёмка осуществляется на улице, по которой время от времени проходят настоящие пешеходы, движутся автомобили и велосипедисты.
Первые же эксперименты с анализом видео-примеров BEHAVE продемонстрировали, что передвижение транспортных средств приводит к многочисленным ложным срабатываниям логических программ распознавания аномального поведения, учитывающих скорость движения объектов. Анализ результатов экспериментов показал, что совершенно необходимо надёжное различение быстро передвигающихся людей и транспортных средства (включая велосипедистов), однако описанные в литературе методы классификации, основанные на распознавании формы движущихся объектов (например, двух колёс велосипеда) и (или) циклического движения ног идущего (бегущего) человека, являются недостаточными, так как движущиеся объекты часто видны лишь в течение коротких промежутков времени или перекрываются другими объектами.
Для решения задачи распознавания были разработаны метрики, характеризующие изменения формы движущихся объектов [32]. Метрики основаны на оконной модификации множественного коэффициента детерминации R2, математический смысл которого - доля вариации отклика Y, объяснённая независимой переменной X в некотором регрессионном уравнении. Например, если переменная X обозначает время, а переменная Y - длину контура движущегося объекта, величина R2 в общем случае для бегущего человека будет меньше, чем для движущегося велосипеда, потому что бегущий человек машет руками, и это приводит к постоянному изменению длины его контура, не зависящему линейно от времени.
В качестве метрик, характеризующих движущиеся объекты, были использованы среднее и асимметрия выборки значений R2, вычисленных в неперекрывающихся окнах.
Будем называть оконной метрикой wR2 некоторой траектории движения объекта в интервале времени от tB до tE множество значений
wR2 = \Rlw},
(3.1)
где t - это время (/ е {в + м/ 2,..., - м/ 2}) и м - это ширина окна в окрестностях момента времени 4 Пусть мК2- значение метрики К2 в г-м окне. Тогда среднее выборки значений мК2 равно
mean(wR2) = (S " wR2 )/n, а асимметрия выборки значений R2 равна
skewness(wR2) = [^ n(n — 1)/(n - 2)] • s(wR2),
n s ^ ( wr,2 —wR2 )3
s(wR ) =-
n S n=1 (wR,2 — wR2 )2
(3.2)
(3.3)
(3.4)
где п - количество окон на рассматриваемом отрезке траектории движения объекта.
При прочих равных условиях транспортные средства характеризуются большими по сравнению с пешеходами значениями метрики теап(мЯ2) (см. рис. 3) и меньшими значениями метрики ¿кемпе&^мЛ2). Это позволяет использовать данные метрики в логических правилах, отличающих пешеходов от автомобилей и велосипедистов, в том числе в нечётких определениях.
1
0 12 3 4
Рис. 3. Диаграмма рассеяния значений метрики движения блобов «среднее по оконному R2». Длина окна метрики -440 мс. Реальное время, Pentium 2,67 ГГц. Координата x обозначает скорость объекта, координата y обозначает величину метрики. Люди обозначены кружками: маленькие светлые кружки обозначают одиночных пешеходов, большие светлые кружки обозначают группы пешеходов, маленькие тёмные кружки обозначают одиночных бегущих людей, большие тёмные кружки обозначают группы бегущих людей. Транспортные средства обозначены ромбами: маленькие тёмные ромбы обозначают велосипедистов, большие светлые ромбы обозначают автомобили
Отличительной особенностью разработанного метода анализа является реализация нечётких логических определений с помощью стандартных арифметических предикатов. С их помощью задаются пороговые функции на различных статистических метриках, характеризующих размер и изменение формы объектов. При этом сохраняется классическая теоретико-модельная семантика логических формул, а для логического вывода используется обычная SLD-резолюция (поиск в глубину с откатом), что обеспечивает высокую скорость обработки информации.
В наборе тестов BEHAVE было выбрано 193 движущихся объекта, алгоритм оценки скорости объектов [31] выделил 22 блоба из 193 как быстрые объекты. На последующих этапах анализа все эти 22 блоба были правильно классифицированы как люди или транспортные средства с помощью разработанных метрик размера и изменения формы движущихся объектов [32] (правильно распознаны все 15 бегущих людей и 7 транспортных средств).
4. Дальнейшее развитие метода объектно-ориентированного логического анализа В настоящее время развитие метода и средств анализа видеоизображений продолжается. Основными направлениями работ являются: 1. Разработка средств распределённого логического программирования.
2. Совершенствование алгоритмов низкоуровневого анализа изображений.
Средства распределённого логического программирования создаются для экспериментов с много-агентной обработкой видеоинформации. Идея много-агентной обработки [42] пришла из области искусственного интеллекта и состоит в том, что система сбора и анализа видеоинформации разбивается на множество независимых программ (агентов), обладающих свойством автономности (агент работает без прямого вмешательства со стороны пользователя и других агентов), социальными связями (агент взаимодействует с другими агентами посредством некоторых заранее предусмотренных механизмов), реактивностью (агент реагирует на внешние события) и проактивностью (агент планирует свои действия для достижения некоторых целей).
С теоретической точки зрения использование агентного подхода к разработке систем интеллектуального видеонаблюдения способно обеспечить высокую гибкость, надёжность и расширяемость таких систем. Например, если различные этапы низкоуровневой и высокоуровневой обработки видеоизображений выполняются отдельными агентами, новый вид анализа может быть добавлен в систему видеонаблюдения без изменения уже существующих агентов и даже без остановки системы. Для этого в систему просто добавляется новый агент, умеющий использовать результаты работы других агентов и способный передать им результаты своей работы.
Агенты, работающие в составе системы интеллектуального видеонаблюдения, должны выполнять специфические функции, выходящие за рамки привычных операций обработки и обмена символьной информацией, характерных для стандартных платформ агентного программирования. Именно по этой причине в рамках проектов по интеллектуальному видеонаблюдению исследователи часто разрабатывают свои собственные агентные платформы, в том числе на языке Java вместо того, чтобы пытаться «втиснуть» видеообработку в стандартные платформы.
Акторный Пролог может быть легко адаптирован к программированию распределённых систем искусственного интеллекта. Для этого не требуется даже расширение синтаксиса языка, достаточно просто обеспечить возможность удалённого вызова методов экземпляров классов из других программ [43].
Для реализации этой идеи мы используем протокол удалённых вызовов Java (Java RMI). В экземпляре класса, пришедшем в программу извне, может быть осуществлён удалённый вызов предиката, точно так же, как в собственных экземплярах классов программы. Кроме того, встроенные классы Акторного Пролога, отвечающие за обработку изображений, могут использовать переданные извне экземпляры классов для обмена видеоданными.
Второе направление работ связано с проектами видеонаблюдения в биомедицинских экспериментах.
Рис. 4. Видеоизображение подопытного животного в боксе. Прямоугольниками обозначены блобы, соответствующие животному, а также кабелю, соединяющему вживлённые в голову животного электроды с передающим устройством.
Видеоматериал получен из ИВНД и НФ РАН
national Workshop on Events in Multimedia 2010: подопытного животного с вживлёнными электроэнцефалографическими (ЭЭГ) электродами. Эксперимент проводится с целью изучения судорожной активности головного мозга, то есть осуществляется одновременная запись ЭЭГ головного мозга подопытного животного и видеозапись его поведения. Сопоставление данных ЭЭГ и поведения необходимо, в частности, потому, что резкие движения подопытного животного могут приводить к появлению артефактов в ЭЭГ-записях, очень похожих на эпилептические разряды. Задачей видеонаблюдения является распознавание резких движений животного и использование этой информации при интерпретации результатов эксперимента.
Видеонаблюдение за поведением животных осуществляется круглосуточно, в том числе ночью, в условиях плохого освещения. Цвет шерсти животного мало отличается от цвета опилок на дне клетки, поэтому точное выделение контура животного является достаточно сложной задачей. В настоящее время осуществляется разработка методов вычитания фона, устойчивых к условиям плохой освещённости и отсутствию цветовой информации.
Заключение
В статье рассмотрены метод и средства объектно-ориентированного логического программирования систем интеллектуального видеонаблюдения. В состав разработанных средств логического программирования входят транслятор объектно-ориентированного логического языка Акторный Пролог в Java, свободно распространяемая библиотека встроенных классов [39] Акторного Пролога на Java, включающая процедуры низкоуровневого анализа видеоизображений и компьютерной графики, а также среда программирования на языке Акторный Пролог. Объектно-ориентированные средства логического языка позволяют разбивать программу на взаимодействующие параллельные процессы, реализующие различные этапы обработки видеоизображений и анализа сцен, а трансляция в язык Java обеспечивает надёжность, пе-
реносимость и открытость создаваемых программ интеллектуального видеонаблюдения. Созданное ПО опубликовано на сайте [44] вместе со ссылками на примеры видеоданных и статьями о логическом программировании видеообработки. Целью создания сайта [44] является поддержка исследований в области логического программирования систем интеллектуального видеонаблюдения.
Благодарности
plementation of the probabilisAbhishek Vaish, Allahabad, А.Ф. Полупанову и В.Е. Анциперову, ИРЭ им. В.А. Котельникова РАН, а также В.В. Девяткову, А.Н. Алфимцеву, В.С. Попову и И.И. Лычкову, МГТУ им. Н.Э. Баумана, А.О. Тишкиной, ИВНД и НФ РАН.
Исследование выполнено за счёт гранта Российского научного фонда (проект № 16-11-10258).
Литература
1. Vishwakarma, S. A survey on activity recognition and behavior understanding in video surveillance / S. Vishwakarma,
A. Agrawal // Visual Computer. - 2013. - Vol. 29, Issue 10. -P. 983-1009. - DOI: 10.1007/s00371-012-0752-6.
2. Borges, P.V.K. Video-based human behavior understanding: A survey / P.V.K. Borges, N. Conci, A. Cavallaro // IEEE Transactions on Circuits and Systems for Video Technology. - 2013. - Vol. 23(11). - P. 1993-2008. - DOI: 10.1109/TCSVT.2013.2270402.
3. Haritaoglu, I. W4: Who? When? Where? What? A real time system for detecting and tracking people / I. Haritaoglu, D. Harwood, L.S. Davis // Proceedings of the Third IEEE International Conference on Automatic Face and Gesture Recognition, 1998, Nara, Japan. - 1998. -P. 222-227. - DOI: 10.1109/AFGR.1998.670952.
4. Shet, V. VidMAP: Video monitoring of activity with Prolog / V. Shet, D. Harwood, L. Davis // IEEE Conference on Advanced Video and Signal Based Surveillance, 2005. AVSS 2005. - 2005.
- P. 224-229. - DOI: 10.1109/AVSS.2005.1577271.
5. O'Hara S. VERSA - video event recognition for surveillance applications / O'Hara S. - M.S. Thesis. University of Nebraska at Omaha, 2008. - 93 p.
6. Machot, F. Real time complex event detection for resource-limited multimedia sensor networks / F. Machot, K. Kyamakya,
B. Dieber, B. Rinner // 8th IEEE International Conference on Advanced Video and Signal-Based Surveillance (AVSS), 2011.
- 2011. - P. 468-473. - DOI: 10.1109/AVSS.2011.6027378.
7. Shet, V. Predicate logic based image grammars for complex pattern recognition / V. Shet, M. Singh, C. Bahlmann, V. Ramesh, J. Neumann, L. Davis // International Journal of Computer Vision. - 2011. - Vol. 93, Issue 2. - P. 141-161.
- DOI: 10.1007/s11263-010-0343-9.
8. Skarlatidis, A. A probabilistic logic programming event calculus / A. Skarlatidis, A. Artikis, J. Filippou, G. Paliouras // Theory and Practice of Logic Programming. - 2015. - Vol. 15(2). -P. 213-245. - DOI: 10.1017/S1471068413000690.
9. Artikis, A. A logic programming approach to activity recognition / A. Artikis, M. Sergot, G. Paliouras // EiMM '10 Proceedings of the 2nd ACM International Workshop on Events in Multimedia. - 2010. - P. 3-8. - DOI: 10.1145/1877937.1877941.
10. Ma, J. Event composition with imperfect information for bus surveillance / J. Ma, W. Liu, P. Miller, W. Yan // Sixth IEEE International Conference on Advanced Video and Signal Based Surveillance, AVSS 2009, 2-4 September 2009, Genova, Italy.
- 2009. - P. 382-387. - DOI: 10.1109/AVSS.2009.25.
11. Ferryman, J. Robust abandoned object detection integrating wide area visual surveillance and social context / J. Ferryman, D. Hogg, J. Sochman, A. Behera,
J.A. Rodriguez-Serrano, S. Worgan, L. Li, V. Leung, M. Evans, P. Cornic, S. Herbin, S. Schlenger, M. Dose // Pattern Recognition Letters. - 2013. - Vol. 34, Issue 7. -P. 789-798. - DOI: 10.1016/j.patrec.2013.01.018.
12. Wielemaker, J. SWI-Prolog / J. Wielemaker, T. Schrijvers, M. Triska, T. Lager // Theory and Practice of Logic Programming. - 2012. - Vol. 12, Issue 1-2. - P. 67-96.
13. Baral, C. Using answer set programming to model multiagent scenarios involving agents' knowledge about other's knowledge / C. Baral, G. Gelfond, T.C. Son, E. Pontelli // AAMAS '10 Proceedings of the 9th International Conference on Autonomous Agents and Multiagent Systems, Toronto, 2010; - Vol. 1. - P. 259-266.
14. Ginsberg, M.L. Multivalued logics: A uniform approach to reasoning in artificial intelligence / M.L. Ginsberg // Computational intelligence. - 1988. - Vol. 4, Issue 3. - P. 265316. - DOI: 10.1111/j.1467-8640.1988.tb00280.x.
15. Kowalski, R. A logic-based calculus of events / R. Kowalski, M. Sergot // New Generation Computing. - 1986. -Vol. 4, Issue 1. - P. 67-96. - DOI: 10.1007/BF03037383.
16. Kimmig, A. On the implementation of the probabilistic logic programming language ProbLog / A. Kimmig, B. Demoen, L.D. Raedt, V.S. Costa, R. Rocha // Theory and Practice of Logic Programming. - 2011. - Vol. 11(2-3). -P. 235-262. - DOI: 10.1017/S1471068410000566.
17. Ballan, L. Event detection and recognition for semantic annotation of video / L. Ballan, M. Bertini, A. Del Bimbo, L. Seidenari, G. Serra // Multimedia Tools and Applications. - 2011. - Vol. 51, Issue 1. - P. 279-302. - DOI: 10.1007/s11042-010-0643-7.
18. Neumann, B. Natural language description of time-varying scenes / Neumann B. // Semantic Structures: Advances in Natural Language Processing. - 1984. - P. 167-207.
19. Dance, S. A concurrent, hierarchical approach to symbolic dynamic scene interpretation / S. Dance, T. Caelli, Z.-Q. Liu // Pattern Recognition. - 1996. - Vol. 29, Issue 11. -P. 1891-1903. - DOI: 10.1016/0031-3203(96)00029-5.
20. Donderler, M.E. Rule-based spatiotemporal query processing for video databases / M.E. Donderler, O. Ulusoy, U. Gudukbay // The VLDB Journal. - 2004. - Vol. 13(1). -P. 86-103. - DOI: 10.1007/s00778-003-0114-0.
21. QasemiZadeh, B. A speech based approach to surveillance video retrieval / B. QasemiZadeh, J. Shen, I. O'Neill, P. Miller, P. Hanna, D. Stewart, H. Wang // AVSS '09. Sixth IEEE International Conference on Advanced Video and Signal Based Surveillance, 2009. - 2009. - P. 336-339. - DOI: 10.1109/AVSS.2009.54.
22. Tran, S.D. Event modeling and recognition using Markov logic networks / S.D. Tran, L.S. Davis // ECCV '08 Proceedings of the 10th European Conference on Computer Vision. - Part II. -P. 610-623. - DOI: 10.1007/978-3-540-88688-4_45.
23. Morariu V.I. Analyzing structured scenarios by tracking people and their limbs / V.I. Morariu. - Ph.D. Thesis. -University of Maryland, 2010.
24. Chakraborty, I. Video based activity recognition in a trauma center / I. Chakraborty, A. Elgammal // 2013 10th IEEE International Conference and Workshops on Automatic Face and Gesture Recognition (FG). - 2013. - P. 1-8.
25. Han, S. Subjective logic based hybrid approach to conditional evidence fusion for forensic visual surveillance / S. Han, B. Koo, A. Hutter, V.D. Shet, W. Stechele // 2010 Seventh IEEE International Conference on Advanced Video and Signal Based Surveillance (AVSS). - 2010. - P. 337344. - DOI: 10.1109/AVSS.2010.19.
26. Selman, J. PEL-CNF: Probabilistic event logic conjunctive normal form for video interpretation / J. Selman, M. Amer, A. Fern, S. Todorovic // 2011 IEEE International Conference on Computer Vision Workshops (ICCV Workshops). -2011. - P. 680-687. - DOI: 10.1109/ICCVW.2011.6130308.
27. Minsky M. A framework for representing knowledge / M. Minsky. - In Book: The psychology of computer vision, ed. by P.H. Winston, B. Hom. - New York: McGraw-Hill, 1975. - P. 211-277.
28. Davison, A. From parlog to polka in two easy steps / A. Davison. - In Book: International symposium on programming language implementation and logic programming. - Berlin-Heidelberg: Springer, 1991. -P. 171-182. - ISBN: 978-3-540-54444-9.
29. Richardson, M. Markov logic networks / M. Richardson, P. Domingos // Machine Learning. - 2006. - Vol. 62(1). -P. 107-136. - DOI: 10.1007/s10994-006-5833-1.
30. Josang, A. A logic for uncertain probabilities / A. Jo-sang // International Journal of Uncertainty, Fuzziness and Knowledge-Based Systems. - 2001. - Vol. 9(3). -P. 279-311. - DOI: 10.1142/S0218488501000831.
31. Morozov, A.A. Development of concurrent object-oriented logic programming platform for the intelligent monitoring of anomalous human activities / A.A. Morozov, A. Vaish, A.F. Polupanov, V.E. Antciperov, I.I. Lychkov, A.N. Alfim-tsev, V.V. Deviatkov. - In Book: Biomedical Engineering Systems and Technologies. 7th International Joint Conference, BIOSTEC 2014, Angers, France, March 3-6, 2014, Revised Selected Papers / Ed. by G. Plantier, T. Schultz, A. Fred, H. Gamboa. - Springer International Publishing, 2015. - P. 8297. - DOI: 10.1007/978-3-319-26129-4_6.
32. Morozov, A.A. Development of the logic programming approach to the intelligent monitoring of anomalous human behaviour / A.A. Morozov, A.F. Polupanov. - In Book: Proceedings of 9th Open German-Russian Workshop on Pattern Recognition and Image Understanding (OGRW 2014) / Ed. by D. Paulus, C. Fuchs, D. Droege. - Koblenz: University of Koblenz-Landau, 2015. - P. 82-85. - URL: https://kola.opus.hbz-nrw.de/files/915/OGRW_2014_Proceedings.pdf.
33. Morozov, A.A. Intelligent visual surveillance logic programming: Implementation issues / A.A. Morozov, A.F. Po-lupanov. - In Book: Proceedings of the International Joint Workshop on Implementation of Constraint and Logic Programming Systems and Logic-based Methods in Programming Environments 2014 (July 17-18, 2014, Vienna, Austria) / Ed. by T. Ströder, T. Swift. - Aachen: RWTH Aachen University, 2014. - P. 31-45. - URL: http://aib.infor-matik.rwth-aachen.de/2014/2014-09.pdf.
34. Morozov, A.A. A translator of Actor Prolog to Java / A.A. Morozov, A.F. Polupanov, O.S. Sushkova. - In Book: RuleML 2015 DC and Challenge. Proceedings of the 9th International Rule Challenge and the 5th RuleML Doctoral Consortium (Berlin, Germany, August 2-5) / Ed. by
N. Bassiliades, P. Fodor, A. Giurca, G. Gottlob, T. Kliegr, G.J. Nalepa, M. Palmirani, A. Paschke, M. Proctor, D. Roman, F. Sadri, N. Stojanovic. - Berlin: CEUR, 2015. -URL: https://www.csw.inf.fu-berlin.de/ruleml2015-ceur/.
35. Davison, A. A survey of logic programming-based object-oriented languages / A. Davison. - In Book: Research Directions in Concurrent Object Oriented Programming / Ed. by P. Wegner, A. Yonezawa, G. Agha. - Cambridge, MA: MIT Press, 1993. - P. 42-106. - ISBN: 0-262-01139-5.
36. Morozov, A.A. Actor Prolog: An object-oriented language with the classical declarative semantics / A.A. Morozov. -In: Proceedings of the International Workshop on Implementation of Declarative Languages (IDL 1999), Paris, France, September 1999 / Ed. by K. Sagonas, P. Tarau. -P. 39-53. - URL: http://www.cplire.ru/Lab144/paris.pdf.
37. Morozov, A.A. Logic object-oriented model of asynchronous concurrent computations / A.A. Morozov // Pattern Recognition and Image Analysis. - 2003. - Vol. 13, No. 4. - P. 640649. - URL: http://www.cplire.ru/Lab144/pria640.pdf.
38. Чень, Ч. Математическая логика и автоматическое доказательство теорем / Ч. Чень, Р. Ли. - М.: Наука, 1983.
39. Actor-prolog-java-library: A GitHub repository containing source codes of Actor Prolog built-in classes [Electronical Resource] / A.A. Morozov. - URL: https://github.com/Mo-rozov2012/actor-prolog-java-library/ (request date 03.06.2016).
40. Morozov A.A. Development of a method for intelligent video monitoring of abnormal behavior of people based on parallel object-oriented logic programming / A.A. Morozov // Pattern Recognition and Image Analysis. - 2015. - Vol. 25(3). -P. 481-492. - DOI: 10.1134/S1054661815030153.
41. Blunsden, S.J. The BEHAVE video dataset: Ground truthed video for multi-person behavior classification / S.J. Blunsden, R.B. Fisher // Annals of the BMVA. - 2010. - No. 4. - P. 1-12. - DOI: 10.3390/s131114398.
42. Gascueña, J.M. On the use of agent technology in intelligent, multisensory and distributed surveillance / J.M. Gascueña, A. Fernández-Caballero // The Knowledge Engineering Review. - 2011. - Vol. 26(2). - P. 191-208. -DOI: 10.1017/S0269888911000026.
43. Морозов, А. А. О проблеме введения средств распределённого многоагентного программирования в логический язык со строгой типизацией / А.А. Морозов, О.С. Сушкова, А.Ф. Полупанов // Журнал радиоэлектроники. - 2016. -№ 7. - URL: http://jre.cplire.ru/jre/jul 16/9/text.pdf.
44. Разработка методов и средств логического программирования для интеллектуального видеомониторинга аномального поведения людей [Электронный ресурс]. -URL: - http://www.fullvision.ru (дата обращения 03.06.2016).
Сведения об авторах
Морозов Алексей Александрович, к.ф.-м.н., старший научный сотрудник Института радиотехники и электроники им. В. А. Котельникова РАН, а также Московского городского психолого-педагогического университета. Области научных интересов: логическое программирование, интеллектуальное видеонаблюдение, обработка биомедицинских сигналов (ЭЭГ, ЭМГ, МЭГ). E-mail: [email protected] .
Сушкова Ольга Сергеевна, младший научный сотрудник Института радиотехники и электроники им. В.А. Котельникова РАН. Области научных интересов: информационные технологии, обработка биомедицинских сигналов, электроэнцефалография, электромиография. E-mail: [email protected] .
ГРНТИ: 27.47.23; 28.23.15; 28.23.17; 28.23.11; 20.19.29; 50.53 Поступила в редакцию 10 июня 2016 г. Окончательный вариант - 17 ноября 2016 г.
REAL-TIME ANALYSIS OF VIDEO BY MEANS OF THE ACTOR PROLOG LANGUAGE
A.A. Morozov 1-2, O.S. Sushkova 1 1 Kotel'nikov Institute of Radio Engineering and Electronics of the RAS, Moscow, Russia, 2Moscow State University of Psychology & Education, Moscow, Russia
Abstract
Object-oriented logical means for a real-time analysis of video were developed. The software includes a translator of the Actor Prolog object-oriented logic language to Java, an open source Java library that contains built-in classes of Actor Prolog, and a programming environment of the Actor Prolog language. An example of using the software for intelligent video monitoring of abnormal behavior in people is considered. Object-oriented means of the Actor Prolog language make it possible to divide a logic program into several parallel processes corresponding to various stages of the video processing. The translation of logic programs to Java provides reliability, portability, and openness of the intelligent video surveillance programs.
Keywords: real-time video analysis, intelligent visual surveillance, parallel object-oriented logic programming, abnormal activity detection, Actor Prolog, complex event recognition, computer vision, technical vision, translation of Prolog to Java.
Citation: Morozov AA, Sushkova OS. Real-time analysis of video by means of the Actor Prolog language. Computer Optics 2016; 40(6): 947-957. DOI: 10.18287/2412-6179-2016-40-6-947-957.
Acknowledgements: Authors are grateful to Abhishek Vaish, A.F. Polupanov, V.E. Antciperov, V.V. Deviatkov, A.N. Alfimtsev, V.S. Popov, I.I. Lychkov and A.O. Tishkina for co-operation. The work was funded by the Russian Science Foundation (RSF), grant No. 16-11-10258.
References
[1] Vishwakarma S, Agrawal A. A survey on activity recognition and behavior understanding in video surveillance. Visual Computer 2013; 29(10): 983-1009. DOI: 10.1007/s00371-012-0752-6.
[2] Borges PVK, Conci N, Cavallaro A. Video-based human behavior understanding: A survey. IEEE Transactions on Circuits and Systems for Video Technology 2013; 23(11): 1993-2008. DOI: 10.1109/TCSVT.2013.2270402.
[3] Haritaoglu I, Harwood D, Davis LS. W4: Who? When? Where? What? A real time system for detecting and tracking people. Proceedings of the Third IEEE International Conference on Automatic Face and Gesture Recognition, 1998, Nara, Japan, 1998: 222-227. DOI: 10.1109/AFGR.1998.670952.
[4] Shet V., Harwood D., Davis L. VidMAP: Video monitoring of activity with Prolog. AVSS 2005: 224-229. DOI: 10.1109/AVSS.2005.1577271.
[5] O'Hara S. VERSA - video event recognition for surveillance applications. M.S. thesis. University of Nebraska at Omaha; 2008.
[6] Machot F, Kyamakya K, Dieber B, Rinner B. Real time complex event detection for resource-limited multimedia sensor networks. AVSS 2011: 468-473. DOI: 10.1109/AVSS.2011.6027378.
[7] Shet V, Singh M, Bahlmann C, Ramesh V, Neumann J, Davis L. Predicate logic based image grammars for complex pattern recognition. International Journal of Computer Vision 2011; 93(2): 141-161. DOI: 10.1007/s11263-010-0343-9.
[8] Skarlatidis A., Artikis A., Filippou J., Paliouras G. A probabilistic logic programming event calculus. Theory and Practice of Logic Programming 2015; 15(2): 213-245. DOI: 10.1017/S1471068413000690.
[9] Artikis A, Sergot M, Paliouras G. A logic programming approach to activity recognition. EiMM '10 Proceedings of the 2nd ACM International Workshop on Events in Multimedia 2010: 3-8. DOI: 10.1145/1877937.1877941.
[10] Ma J, Liu W, Miller P, Yan W. Event composition with imperfect information for bus surveillance. AVSS 2009: 382-387. DOI: 10.1109/AVSS.2009.25.
[11] Ferryman J, Hogg D, Sochman J, Behera A, Rodriguez-Serrano JA, Worgan S, Li L, Leung V, Evans M, Cornic P, Herbin S, Schlenger S, Dose M. Robust abandoned object detection integrating wide area visual surveillance and so-
cial context. Pattern Recognition Letters 2013; 34(7): 789798. DOI: 10.1016/j.patrec.2013.01.018.
[12] Wielemaker J, Schrijvers T, Triska M, Lager T. SWI-Prolog. Theory and Practice of Logic Programming 2012; 12(1-2): 67-96.
[13] Baral C., Gelfond G., Son T.C., Pontelli E. Using answer set programming to model multi-agent scenarios involving agents' knowledge about other's knowledge. Proceedings of the 9th International Conference on Autonomous Agents and Multiagent Systems, Toronto, 2010; 259-266.
[14] Ginsberg ML. Multivalued logics: A uniform approach to reasoning in artificial intelligence. Computational intelligence 1988; 4(3): 265-316. DOI: 10.1111/j.1467-8640.1988.tb00280.x.
[15] Kowalski R, Sergot M. A logic-based calculus of events. New Generation Computing 1986; 4(1): 67-96. DOI: 10.1007/BF03037383.
[16] Kimmig A, Demoen B, Raedt LD, Costa VS, Rocha R. On the implementation of the probabilistic logic programming language ProbLog. Theory and Practice of Logic Programming 2011; 11(2-3): 235-262. DOI: 10.1017/S1471068410000566.
[17] Ballan L, Bertini M, Del Bimbo A, Seidenari L, Serra G. Event detection and recognition for semantic annotation of video. Multimedia Tools and Applications 2011; 51(1): 279-302. DOI: 10.1007/s11042-010-0643-7.
[18] Neumann B. Natural language description of time-varying scenes. Semantic Structures: Advances in Natural Language Processing 1984: 167-207.
[19] Dance S, Caelli T, Liu Z-Q. A concurrent, hierarchical approach to symbolic dynamic scene interpretation. Pattern Recognition 1996; 29(11): 1891-1903. DOI: 10.1016/0031 -3203(96)00029-5.
[20] Donderler ME, Ulusoy O, Gudukbay U. Rule-based spatiotemporal query processing for video databases. The VLDB Journal 2004; 13(1): 86-103. DOI: 10.1007/s00778-003-0114-0.
[21] QasemiZadeh B, Shen J, O'Neill I, Miller P, Hanna P, Stewart D, Wang H. A speech based approach to surveillance video retrieval. AVSS '09 2009: 336-339. DOI: 10.1109/AVSS.2009.54.
[22] Tran SD, Davis LS. Event modeling and recognition using Markov logic networks. ECCV '08 2008; Pt II: 610-623. DOI: 10.1007/978-3-540-88688-4 45.
[23] Morariu VI. Analyzing structured scenarios by tracking people and their limbs. Ph.D. Thesis. University of Maryland; 2010.
[24] Chakraborty I., Elgammal A. Video based activity recognition in a trauma center. 2013 10th IEEE International Conference and Workshops on Automatic Face and Gesture Recognition (FG) 2013: 1-8.
[25] Han S., Koo B., Hutter A., Shet V.D., Stechele W. Subjective logic based hybrid approach to conditional evidence fusion for forensic visual surveillance. AVSS 2010: 337344. DOI: 10.1109/AVSS.2010.19.
[26] Selman J, Amer M, Fern A, Todorovic S. PEL-CNF: Probabilistic event logic conjunctive normal form for video interpretation. ICCV Workshops 2011: 680-687. DOI: 10.1109/ICCVW.2011.6130308.
[27] Minsky M. A framework for representing knowledge. In book: Winston PH, Hom B, eds. The psychology of computer vision. New York: McGraw-Hill, 1975: 211-277.
[28] Davison A. From parlog to polka in two easy steps. In Book: International symposium on programming language implementation and logic programming. Berlin Heidelberg: Springer; 1991; 171-182. ISBN: 978-3-540-54444-9.
[29] Richardson M, Domingos P. Markov logic networks. Machine Learning 2006; 62(1): 107-136. DOI: 10.1007/s10994-006-5833-1.
[30] Josang A. A logic for uncertain probabilities. International Journal of Uncertainty, Fuzziness and Knowledge-Based Systems 2001; 9(3): 279-311. DOI: 10.1142/S0218488501000831.
[31] Morozov AA, Vaish A, Polupanov AF, Antciperov VE, Lychkov II, Alfimtsev AN, Deviatkov VV. Development of concurrent object-oriented logic programming platform for the intelligent monitoring of anomalous human activities. In Book: Plantier G, Schultz T, Fred A, Gamboa H, eds. Biomedical Engineering Systems and Technologies. Springer International Publishing; 2015; 82-97. DOI: 10.1007/978-3-319-26129-4_6.
[32] Morozov AA, Polupanov AF. Development of the logic programming approach to the intelligent monitoring of anomalous human behaviour. In Book: Paulus D, Fuchs C, Droege D, eds. Proceedings of 9th Open German-Russian Workshop on Pattern Recognition and Image Understanding (OGRW 2014). Koblenz: University of KoblenzLandau; 2015: 82-85. Source: (https://kola.opus.hbz-nrw.de/files/915/OGRW_2014_Proceedings.pdf).
[33] Morozov AA, Polupanov AF. Intelligent visual surveillance logic programming: Implementation issues. In Book: Stroder T, Swift T, eds. Proceedings of the International Joint Workshop on Implementation of Constraint and Logic Programming Systems and Logic-based Methods in Programming Environments 2014 (July 17-18, 2014, Vienna, Austria). Aachen:
RWTH Aachen University; 2014: 31-45. Source: (http://aib.informatik.rwth-aachen.de/2014/2014-09.pdt).
[34] Morozov AA, Polupanov AF, Sushkova OS. A Translator of Actor Prolog to Java. In Book: Bassiliades N, Fodor P, Giurca A, Gottlob G, Kliegr T, Nalepa GJ, Palmirani M, Paschke A, Proctor M, Roman D, Sadri F, Stojanovic N, eds. RuleML 2015 DC and Challenge. Proceedings of the 9th International Rule Challenge and the 5th RuleML Doctoral Consortium (Berlin, Germany, August 2-5). Berlin: CEUR; 2015. Source: (https://www.csw.inf.fu-berlin.de/ruleml2015-ceur/).
[35] Davison A. A survey of logic programming-based object-oriented languages. In Book: Wegner P, Yonezawa A, Agha G, eds. Research Directions in Concurrent Object Oriented Programming. Cambridge, MA: MIT Press; 1993: 42-106. ISBN: 0-262-01139-5.
[36] Morozov AA. Actor Prolog: An object-oriented language with the classical declarative semantics. In: Sagonas K, Tarau P, eds. Proc IDL 1999. Paris, France: 1999: 39-53. Source: (http://www.cplire.ru/Lab144/paris.pdf).
[37] Morozov A.A. Logic object-oriented model of asynchronous concurrent computations. Pattern Recognition and Image Analysis 2003; 13(4): 640-649. Source: (http://www.cplire.ru/Lab144/pria640.pdf).
[38] Chang C-L, Lee R. Symbolic logic and mechanical theorem proving. New York: Academic Press; 1973. ISBN: 978-0-08-091728-3.
[39] Actor-prolog-java-library: A GitHub repository containing source codes of Actor Prolog built-in classes. Source: (https://github.com/Morozov2012/actor-prolog-java-library/).
[40] Morozov A.A. Development of a method for intelligent video monitoring of abnormal behavior of people based on parallel object-oriented logic programming. Pattern Recognition and Image Analysis 2015; 25(3): 481-492. DOI: 10.1134/S1054661815030153.
[41] Blunsden S.J., Fisher R.B. The BEHAVE video dataset: Ground truthed video for multi-person behavior classification. Annals of the BMVA 2010; 4: 1-12. DOI: 10.3390/s131114398.
[42] Gascueña JM, Fernández-Caballero A. On the use of agent technology in intelligent, multisensory and distributed surveillance. The Knowledge Engineering Review 2011; 26(2): 191-208. DOI: 10.1017/S0269888911000026.
[43] Morozov AA, Sushkova OS, Polupanov AF. Incorporation of distributed multiagent programming means in a strongly typed logic language [In Russian]. Zhurnal Radioelektro-niki [Journal of Radioelectronics] 2016; 7. Source: (http://jre.cplire.ru/ jre/jul16/9/text.pdf).
[44] Development of logic programming approach to intelligent monitoring of anomalous human activities. Source: (http://www.fullvision.ru/actor_prolog/show_eng.php)
Authors' information
Alexei Alexandrovich Morozov, Ph.D., Senior Research Associate of the Kotel'nikov Institute of Radio Engineering and Electronics of RAS and Moscow State University of Psychology & Education. Research interests: logic programming, intelligent surveillance, biomedical signal processing (EEG, EMG, MEG). E-mail: [email protected] .
Olga Sergeevna Sushkova, Ph.D. Student of the Kotel'nikov Institute of Radio Engineering and Electronics of RAS. Research interests: information technologies, biomedical signal processing, electroencephalography, electromyography. E-mail: o.sushkova@mail. ru .
Received June 10, 2016. The final version - November 17, 2016.