Распознавание элементов сцены по её неполному изображению
Автор: Крупин Алексей Владимирович, Рубчинский Александр Анатольевич
Журнал: Сетевое научное издание «Системный анализ в науке и образовании» @journal-sanse
Статья в выпуске: 2, 2013 года.
Бесплатный доступ
В статье исследуются вопросы моделирования сцены для имплантации виртуальных образов, в частности приводится описание логико-геометрического анализа сцены с отдельными распознанными элементами. Приводится описание применения полученного метода на примере распознавания линий разметки на футбольном поле.
Моделирование сцены, распознавание линий, логико-геометрический анализ, предикаты, мир линий, футбольное поле
Короткий адрес: https://sciup.org/14122585
IDR: 14122585
Текст научной статьи Распознавание элементов сцены по её неполному изображению
Работа по анализу, исследованию и алгоритмизации методов моделирования сцены для имплантации виртуальных образов уже ни один год ведется в России и западных странах (BrandBrigade1, Sportvision Inc.2, Hego Group3, Orad Hi-Tec Systems4), но чаще всего это коммерческие частные разработки, защищенные патентами и договорами о неразглашении. Пример работы одной из коммерческих программ приведен на рисунке 1. Имеющиеся разработки в данной области не содержат описания работы алгоритмов или частей алгоритмов в открытом доступе. В связи с этим, исследование и разработка методов моделирования сцен является актуальной и целесообразной задачей.

Рис. 1. Работы коммерческой программы по имплантации виртуальных образов AKI Virtual Football компании Hego Group на примере спортивных мероприятий
-
1. Логико-геометрический анализ сцены
Степень разработанности проблемы является недостаточной. Применительно к имплантации виртуальной рекламы при футбольных телетрансляциях имеется патент («Method and apparatus for implanting images into a video sequence» – Patent Numbers: P-783-IL in , P-783-SG in , P-783-AU in ) и работы ( «A new approach to image processing» Рубчинский А.А), не содержащие описания нескольких этапов, включая важный этап логического анализа сцены с отдельными распознанными объектами.
При решении проблем с логическим анализом сцены предполагается применить методы системного анализа, и методы искусственного интеллекта, относящиеся к правилам вывода, хорновские формулы. При этом появляется необходимость существенной модификации и разработки новых вариантов правил вывода, учитывающих геометрическую специфику объектов. В данном случае из проблемы моделирования сцены выделяются задачи логико-геометрического типа.
В рассматриваемом случае сцена предполагается известной и задача состоит в распознавании элементов сцены, расположенных (возможно, частично) на участке сцены, получаемом с помощью камеры. В данном случае под распознаванием понимается установление взаимно-однозначного соответствия между отрезками линий, имеющихся на кадре, и отдельными элементами сцены, являющиеся известными заранее линиями.
В статье рассматривается частная задача логико-геометрического распознавания сцены – распознаваний линий на плоскости. Для примера была выбрана задача распознавания линий разметки на футбольном поле. В нашем случае мы заранее имеем полную картину сцены, нашей задачей является распознавание линий сцены отдельного участка, захваченного камерой, общим решением данной задачи является применение логических условий расположения линий в пространстве относительно друг друга.
Прежде чем перейти к описанию используемых принципов решения данной задачи введём некоторые понятия и определения.
Для решения поставленной задачи, мы будем использовать исчисления предикатов. По аналогии с «Миром блоков», необходимо ввести понятие «Мир линий». «Мир линий» – это записанное с помощью исчисление предикатов отношение между линиями и группами линий. Мир линий состоит из отрезков линий разной длины, находящихся в определенных отношениях относительно друг друга (пересечение, параллельность и т.д.).
Для решения данной задачи была написана программа на языке высокого уровня, стоит отдельно отметить тот факт, что входные данные для программы (параметры мира линий) не были заранее сгруппированы, входные данные могли вводиться в любой последовательности.
Разработанная программа предназначена для распознавания линий разметки футбольного поля. Программа распознает линии разметки для случаев с уже известной стороной поля, программа не обладает универсальностью, но позволяет распознавать линии разметки в приведенных ниже случаях. Работа программы в первую очередь основана на определении среди уравнений прямых (входные данные) линии разметки. Затем определяются (если заданы) боковые линии (ближняя боковая, дальняя боковая). В зависимости от количества заданных линий определяются точки пересечения: в программе имеют место пересечения вида начало-начало, конец-начало (начало-конец) и конец-конец. Определение точек начало и конца отрезков основано на заранее известных данных о стороне поля.
Приведем пример распознавания линий для данной задачи (первоначальные кадры представлены на рисунках 2, 7, 10):

Рис. 2. Первоначальный кадр

Рис. 3. Первоначальный кадр для первого случая

Рис. 4. Пример нахождения линии ворот

Рис. 5. Расшифровка номеров линий для первого случая
Поясним, как работает распознающий алгоритм. На первоначальном кадре (рис. 3), имеется простой геометрический факт: все линии, идущие ВДОЛЬ поля (боковые линии поля, линии штрафной и линии вратарской) пересекаются с линией ворот только концами. Напомним, что концом в данном случае названа точка на линии с максимальной координатой по оси х-ов (в системе координат, привязанной к левому верхнему углу изображения), началом названа точка на линии с минимальной координатой по оси х -ов и что все концы (и начала) линий ИЗВЕСТНЫ, как и их уравнения.
Поэтому для каждой из линий, идущих ПОПЕРЁК поля, проверяем условия нахождения на ней всех концов заданных линий, идущих ВДОЛЬ поля (в рамках данного кадра). Если существует линия на которой находятся более одного конца, то это и есть линия ворот (см. рис. 4).
Введём в рассмотрение предикат «belong(α,β)» , принимающий значение «истина», если точка α лежит на линии β , и «ложь» в противном случае. С помощью предиката «belong(α,β)» находим линию ворот (если она есть на кадре) или определяем её отсутствие.
Рассмотрим столь же простые соображения, связанные с боковой линией штрафной. Линия (идущая вдоль поля) является боковой линией штрафной, если:
-
a) её конец совпадает с концом (или началом) линии ворот, или
-
b) на рисунке есть точка пересечения боковой линии поля и линии ворот и данная линия является ближайшей к боковой линии, или
-
c) точка пересечения данной линии с линией ворот находится левее (у неё меньше координата х ) или правее (у неё больше координата х ), чем точка пересечения какой-либо другой линии с лицевой, которая левее штанги ворот, и т.д.
Все условия записываются в терминах двух предикатов – упомянутого belong(α,β) и cross (α,β) (пересечения линий α и β ).
Следует также отметить, что изначально известна сторона поля кадра, в нашем случае (рис. 3) – правая.
Рассмотрим пример (рис. 5, 8, 11). С помощью приведённых выше простых условий мы можем определить линию ворот ( y 1 ) и дальнюю боковую линию ( y 2 ). После этого используя предикат belong(α,β) , находим оставшиеся линии, идущие ПОПЕРЁК, концы которых лежат на линии ворот.
Имея данные о наличии среди исходных данных боковой линии (дальней или ближней) и точно зная количество линий, концы которых лежат на линии ворот, мы можем сделать вывод о том, какие это линии. Например, для нашего случае (рис. 5), мы имеем 3 пересечения с линией ворот. Одно из пересечений мы уже определили выше – дальняя линия боковой, следовательно, два оставшихся пересечения легко определяются, а линии распознаются как дальняя линия вратарской и дальняя линия штрафной. Зная, что геометрически одна прямая лежит выше другой, а следовательно коэффициент b ( y = k • x + b ) дальней линии штрафной будет больше коэффициента b для дальней линии ворот. Затем, среди оставшихся линий идущих ПОПЕРЁК, находим те, которые пересекаются с дальней линией штрафной и дальней линией вратарской, это передняя линия штрафной и передняя линия вратарской соответственно.
Приведем уравнения для описанного выше случая.
Имеем 6 линий. Уравнения для данных прямых:
у 1 = к 1 • x + m 1 ; y 2 = k 2 • x + m 2 ; y 3 = k 3 • x + m 3 ; y 4 = k 4 • x + m 4 ; y 5 = k 5 • x + m 5 ; y 6 = k 6 • x + m 6 .
Координаты начала и конца:
n 1( x 11, y 11) и k 1( x 12, y 12); n 2( x 21, y 21) и k 2( x 22, y 22); n 3( x 31, y 31) и k 3( x 32, y 32);
n 4( x 41, y 41) и k 4( x 42, y 42); n 5( x 51, y 51) и k 5( x 52, y 52); n 6( x 61, y 61) и k 6( x 62, y 62).
Сторона поля: sight (right) – сторона поля правая.
Присутствует линия ворот. Количество пересечений вида начало-начало равно 2.
Запишем логические условия для распознавания линий разметки:
V y 1 V y 2 V y 3 V y 4 V y 5 V y 6 number of (crossing ( y 1 , y 2 ) v crossing ( y 15 y 3 ) v crossing ( y 1 , y 4 ) v crossing ( y 1 , y 5 ) v crossing ( y 1 , y 6 )) > 1 v number of (belong ( k 2 , y 1 ) v belong ( k 3 , y 1 ) v belong ( k 4 , y 1 ) v (belong ( k 5, y 1 ) v (belong ( k 6, y 1 )) > 1 ^ y 1 - линия ворот;
V y 1 V y 2 V y 3 V y 4 V y 5 V y 6 ( n 1 ( x 11 , y 11 ) = k 2 ( x 22 , y 22 )) ^ y 2 - дальняя боковая линия;
∀ y 1 ∀ y 2 ∀ y 3 ∀ y 4 ∀ y 5 ∀ y 6 crossing ( y 1, y 3) ∨ crossing ( y 1, y 3) ∨ ( m 3 > m 5) → y 3 – дальняя линия штрафной; y 5 – дальняя линия вратарской;
∀ y 1 ∀ y 2 ∀ y 3 ∀ y 4 ∀ y 5 ∀ y 6 ( n 3( x 31, y 31) = n 4( x 41, y 41)) ∨ ( n 5( x 51, y 51) = n 6( x 61, y 61)) → y 4 – передняя линия штрафной, y 6 – передняя линия вратарской.
Number of (function) – функция, проверяющая количество выполнений заданного условия.
Получившийся результат мы можем наблюдать на рисунке 6. Расшифровка цвета линий на рисунке представлена в таблице 1.

Рис. 6. Результат работы алгоритма по распознаванию линий для первого случая

Рис. 7. Первоначальный кадр для второго случая

Рис. 8. Расшифровка номеров линий для второго случая
Рассмотрим 2-ой случай, представленный на рис.7. Имеем 4 линии. Уравнения для данных прямых:
y 1 = k 1 • x + m 1; y 2 = k 2 • x + m 2 ; y 3 = k 3 • x + m 3 ; y 4 = k 4 • x + m 4 .
Координаты начала и конца:
n1(x11,y11) и k1(x12,y12); n2(x21, y21) и k2(x22,y22); n3(x31,y31) и k3(x32,y32);
n4 (x41 , y41 ) и k4 (x42 , y42 ) .
Сторона поля: sight (right) – сторона поля правая. Отсутствует линия ворот. Количество пересечений вида конец-начало равно 2.
Запишем логические условия для распознавания линий разметки:
V y 1 V y 2 V y 3 V y 4( k 1( x 12, y 12) = n 2( x 21, y 21)) v ( m1 > m 3 ) v ( m 2 > m 4 ) ^ y 1 - передняя линия вратарской; y 2 – ближняя линия вратарской;
V y 1 V y 2 V y 3 V y 4( k 3 ( x 32, y 32) = n 4( x 41, y 41)) v ( m 1 > m 3 ) v ( m 2 > m 4) ^ y 3 - передняя линия штрафной; y 4 – ближняя линия штрафной.
Получившийся результат представлен на рисунке 9.

Рис. 9. Результат работы алгоритма по распознаванию линий для второго случая

Рис. 10. Первоначальный кадр для третьего случая

Рис. 11. Расшифровка номеров линий для третьего случая
Рассмотрим 3-ий случай (рис.10).
Имеем 3 линии. Уравнения для данных прямых:
y 1 = k 1 • x + m 1; y 2 = k 2 • x + m 2 ; y 3 = k 3 • x + m 3 .
Координаты начала и конца:
n1(x11,y11) и k1(x12,y12) ; n2(x21, y21) и k2(x22,y22) ; n3(x31,y31) и k3(x32,y32) .
Сторона поля: sight (right) – сторона поля правая.
Отсутствует линия ворот.
Запишем логические условия для распознавания линий разметки:
V y 1 V y 2 V y 3 V y 4 V y 5 V y 6 number of (crossing ( y 1, y 2 ) v crossing ( y 1, y 3 ) v crossing ( y 1, y 4 ) v crossing ( y 1, y 5 ) v crossing ( y 1, y 6 )) > 1 v number of (belong ( k 2 , y 1 ) v belong ( k 3 , y 1 ) v belong ( k 4 , y 1) v (belong ( k 5 , y 1 ) v (belong ( k 6 , y 1 )) > 1 ^ y 1 - линия ворот;
V y 1 V y 2 V y 3 number of (crossing ( y 1, y 2 ) v crossing ( y 1, y 3 )) > 1 v number of (belong ( k 2 , y 1) v belong ( k 3 , y 1) > 1 ^ y 1 - линия ворот;
V y 1 V y 2 V y 3 ( n 1 ( x 11, y 11) = k 2 ( x 22 , y 22 )) ^ y 2 - дальняя боковая линия;
V y 1 V y 2 V y 3 crossing ( y 1, y 3 ) ^ y 3 - дальняя линия штрафной.
Number of (function) – функция, проверяющая количество выполнений заданного условия.
Получившийся результат представлен на рисунке 12.

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

Заключение
В данной статье рассматривается метод распознавания линий разметки. Работа в целом посвящена распознаванию линий не привязанных к конкретной задаче, это могут быть как спортивные, так и развлекательные мероприятия.
Существуют варианты, неподдающиеся точному распознаванию линий разметки полученным алгоритмом (например, случай представленный на рисунке 13). Случаи, подобные приведенному, встречаются не часто, чаще всего они присутствуют на изображениях, полученных при довольно большом масштабе. По примерным оценкам, за время матча, количество кадров, не поддающихся распознаванию, составляет 5-7% от общего объема материала.

Рис. 13. Первоначальный кадр для четвертого случая
Список литературы Распознавание элементов сцены по её неполному изображению
- Rubchinsky A. A. New Approach to Image Processing // Четвёртая Международная конференция по проблемам управления. Сборник трудов. - М.: 2009. - С. 398-410.
- Люгер Д. Искусственный интеллект: стратегии и методы решения сложные проблем. - М.: Виль-ямс, 2003.
- Дуда Р., Харт П. Распознавание образов и анализ сцен. - М.: Мир, 1976.
- Ковальски Р. Логика в решении проблем. - М: Наука,1990.
- Горелик А.Л. Современные состояния проблемы распознавания. Некоторые аспекты. - М.: Радио и Связь,1985.
- Форсайт Д., Понс Ж. Компьютерное зрение. Современный подход: Пер. с англ. М.: Вильямс. - 2004.
- Ту Дж., Гонсалес Р. Принципы распознавания образов. - М.: Мир, 1978.
- Грибов М.Г., ХачумовВ.М. Определение геометрических параметров объектов по растровым изображениям // Автометрия. - 2001. - №1. - C. 40-49.
- EDN: MPJEFJ
- Bojan Babic, Nenad Nesic, Zoran Miljkovic. A review of automated feature recognition with rule-based pattern recognition. In: Computers in Industry. - 2008. - Vol. 59. - Issue 4. - Pp. 321-337.