ШБН 2079-3316 ПРОГРАММНЫЕ СИСТЕМЫ: ТЕОРИЯ И ПРИЛОЖЕНИЯ № 4(8), 2011, с. 33-43 УДК 004.93'1, 004.932.2
Д. Н. Степанов, И. П. Тищенко Задача моделирования полета беспилотного летательного аппарата на основе системы технического зрения
Аннотация. Рассматривается задача моделирования полета беспилотного летательного аппарата над некоторой местностью при наличии ограничений на движение аппарата. Предлагается подход для решения задачи автоматического определения его положения и ориентации с применением технологий технического зрения и искусственного интеллекта.
Ключевые слова и фразы: беспилотный летательный аппарат, искусственный спутник Земли, модель камеры, моделирование, алгоритм КДЫБДС, алгоритм Левенберга—Марквард-та.
Введение
Беспилотные летательные аппараты (БПЛА) широко применяются в военном деле, главным образом в разведке. Крупные аппараты могут быть оснащены вооружением и вести боевые действия. Применение БПЛА в гражданских целях также может быть весьма эффективным (мониторинг лесных пожаров, составление топографических карт и т. д.). Большую роль играет метод определения положения и ориентации аппарата в пространстве во время его полета. Чаще всего для этого применяются системы позиционирования СГ8/ГЛОНАСС. Однако использование подобных технологий позиционирования может быть затруднено или вообще невозможно. Работа таких систем может быть нарушена в результате целенаправленного подавления либо из-за технических неполадок. Сигнал СГ8/ГЛОНАСС может оказаться недоступным из-за рельефа горной местности или городских зданий. Использование СГ8/ГЛОНАСС может быть неприемлемым по причине секретности или недостаточной точности. Поэтому
Работа поддержана Госконтрактом № 07.514.11.4033 по ФЦП «Исследования и разработки по приоритетным направлениям развития научно-технологического комплекса России на 2007-2013 годы».
© Д. Н. Степанов, И. П. Тищенко, 2011 © Программные системы: теория и приложения, 2011
разработка систем позиционирования БПЛА, независимых от данных спутниковых систем навигации, является актуальным направлением исследований. Перспективный способ решения такой задачи — оснащение аппаратов фото- или видеокамерами (одной или несколькими) и использование алгоритмов и методов технического зрения.
1. Математическая модель камеры
В качестве математической модели камеры выберем модель камеры-обскуры [1, 2]. В трехмерном пространстве задана глобальная система координат, с центром в точке О (рис. 1). Введем некоторые обозначения и понятия. Наблюдаемая камерой точка Ро простран-
Рис. 1. Математическая модель камеры и две системы координат
ства проецируется на некоторую плоскость (плоскость изображения, аналог светочувствительной матрицы камеры). Точка С (центр проекции) — начало системы координат, связанной с камерой. Фокусное расстояние камеры — это расстояние между плоскостью изображения и центром проекции. Оптическая ось — луч, имеющий начало в точке С и перпендикулярный плоскости изображения. Пересечение отрезка Ро С с плоскостью изображения дает двумерный образ точки Ро — точку рс, координаты которой выражаются в пикселях. Для вычисления координат точки рс используются следующие матричные
уравнения (точка рс представлена в однородных координатах):
'X *' Г11 г 12 Г13 'X тх
р * у * — Г 21 Г22 Г23 У + т 1У
я *. г зі Г32 Гзз. т _
— РРо + Т,
Ыс X Ух 0 Сх
Рс _ * У* — 0 и су
_ .0 0 і
'X *'
у *
г *
— мр *
і
Рс
-Рс
Матрица М содержит внутренние параметры камеры, причем они не зависят от положения камеры в пространстве. Точка с пиксельными координатами (сх,су) — главная точка, в ней оптическая ось пересекается с плоскостью изображения, чаще всего эта точка примерно совпадает с центром изображения. Параметры ]х и /у — фокальные длины. Если Р — фокусное расстояние камеры, а зх,зу — ширина и высота одного элемента светочувствительной матрицы, то /х = ^, /у = . Матрица Д и вектор Т — внешние параметры каме-
ры. Они задают ориентацию и положение камеры относительно глобальной системы координат и используются для перехода в систему координат камеры посредством операций поворота (К) и параллельного переноса (Т). Поворот вокруг произвольной оси в трехмерном пространстве можно представить в виде комбинации трех поворотов вокруг каждой из координатных осей на некоторые углы ф, ф и в. Существует взаимно однозначное соответствие между тремя углами и матрицами поворота (прямое и обратное преобразование Родригеса [3]).
2. Постановка задачи определения положения и ориентации БПЛА
Предположим, что наряду с БПЛА у нас есть возможность задействовать еще один летательный аппарат—искусственный спутник Земли (ИСЗ), оборудованный камерой. Матрица внутренних параметров камеры известна, центром проекции камеры является точка О (рис. 2). Положение и ориентация спутника относительно мировой системы координат, связанной с Землей (с ее центром), являются известными. Пусть в трехмерном пространстве задана точка Р, которой на снимке, полученном с камеры ИСЗ, соответствует точка д\.
Камера, установленная на БПЛА, имеет такие же внутренние параметры. Центр проекции камеры расположен в точке О', а образ точки Р — в точке ^2. Требуется вычислить матрицу К и вектор Т, которые связывают системы координат ИСЗ и БПЛА посредством поворота и параллельного переноса. Если удастся найти эти параметры, то будет возможно вычислить положение и ориентацию БПЛА относительно мировой системы координат. Привяжем глобальную систему коорди-
Р
Рис. 2. Наблюдение одной и той же точки пространства двумя разными камерами
нат к камере на ИСЗ. В этом случае пиксельные координаты точек д\ и Ц2 выражаются следующим образом (и> — некоторый масштабирующий множитель):
гЧ1 = МР,
Р = гм-1ди
тц2 — М (ДР + Т).
Наложим ограничения на матрицу Д и вектор Т. Пусть и ИСЗ, и БПЛА всегда остаются на одной и той же высоте над уровнем моря (значение аппликаты остается постоянным), а их камеры всегда направлены строго перпендикулярно поверхности Земли, т. е. оба аппарата могут менять свою ориентацию, поворачиваясь относительно только оси Ог на некоторый угол в (два остальных угла, определяющих ориентацию, равны нулю). При таких допущениях матрица Д и вектор Т имеют следующий вид:
cos в — sin в G ~TX
R = sin в cos в G , T = T ±y
G G 1 G
RP + Т =
X cos в — Y sin в + Тх X sin в + Y cos в + Ту Z
=> w = Z.
Вычислим, как связаны между собой координаты точек qi и q2'. Zq2 = М (RP + Т) = М (RZM-1qi + Т) = Z (MRM-1)qi + МТ,
q2 = (MRM-1)qi + -1 МТ.
Введем матрицу R и вектор Т:
cos в — 4^ sin в
f у
^ sin в cos в
Jx
GG
— cos в-сх + sin 9-Су + сх
Ту
— ^ sin в^Сх — cos в •Су + Су
(1)
Т = - МТ £
dx
dy
G
Т = ZM-iT
Тогда координаты точек ді и Ц2 связываются посредством уравнения 42 — &Чі + Т, которое можно переписать следующим образом:
42 — Нді,
Н
cos в — sin 9
Jy
IjT sin в cos в
Jx
GG
— cos 6-cx + sin 6-Cy + cx + dx
Jy У
f
— sin 6^cx — cos в^Су + cy + dy
і
1
Как видим, матрица Н определяется тремя неизвестными параметрами с!х, с!у и в (фокальные длины и координаты главной точки известны). Введем функцию та1сЪ(11,12), которая принимает на вход два изображения (Д и /2) и возвращает множество пар «соответству-
ющих» точек
Хн и1
.Уг. 7 У г.
,г = 1, 2,... д, таких, что если некоторая
точка X пространства наблюдаема на снимке /1, то она должна быть наблюдаема и на снимке /2, причем ее проекция на первом снимке
Щ
имеет координаты , а на втором —
Ж Ж
. Задача сводится к вычислению параметров с!х, <1у и в , при условии, что:
1, 2,... д.
и1 Хг
Щ = н Уг
1 1
Вычислив компоненты вектора Т, можно найти вектор Т по формуле 1 с точностью до множителя г (аппликата точки Р). Поставленную задачу предлагается решать с помощью моделирования (получение снимков местности с виртуальных ИСЗ и БПЛА) и применения различных математических методов (вычисление матрицы Н).
3. Моделирование полета БПЛА, оснащенного камерой
Для моделирования полета БПЛА необходимо иметь как минимум две точки — пункт отправки и пункт назначения. Зададим желаемую траекторию полета БПЛА в виде некоторой кривой (эталонный путь). Предположим, что траекторию можно аппроксимировать последовательностью прямых отрезков. Выберем на эталонном пути серию точек (назовем их опорными) и сопоставим каждой точке некоторую прямоугольную область на карте местности. Каждую такую область назовем опорным снимком местности. Эти снимки выполняются с помощью камеры на ИСЗ и в дальнейшем применяются для определения положения и ориентации БПЛА. Позиционируем каждый прямоугольник так, чтобы соответствующая ему опорная точка располагалась в его центре. Ориентация каждого прямоугольника при этом должна совпадать с направлением того отрезка эталонного пути, на котором лежит опорная точка. Реальный полет БПЛА можно промоделировать с помощью множества снимков, которые выполняются камерой, установленной на аппарате. Выберем на эталонном
пути другую серию точек, означающих моменты съемки для определения положения и ориентации, и сместим координаты каждой точки на некоторый случайный вектор (максимальную длину вектора можно ограничить). Эти смещения имитируют воздействие внешних факторов на БПЛА и отклоняют его траекторию от эталонной. Каждой точке также можно сопоставить свою прямоугольную область на карте местности, в результате получив серию тестовых снимков. Еще одним возможным подходом может быть разбиение всей карты местности на множество фрагментов (перекрывающихся или непе-рекрывающихся). Применение такого подхода, возможно, позволит находить положение и ориентацию БПЛА без привязки к какому-то конкретному маршруту, или же в случае значительного отклонения от заданного маршрута. На рис. 3 показан пример желаемого пути БПЛА (в виде красной ломаной линии), опорные точки показаны в виде красных кругов, прямоугольные области опорных снимков заключены в синие и зеленые рамки (чередование двух разных цветов было выбрано для большей наглядности). Пример возможной траектории полета (при наличии случайных возмущений) показан в виде ломаной черной линии. Точки, из которых БПЛА выполняет тестовые снимки, показаны белым цветом.
Рис. 3. Моделирование полета БПЛА
4. Алгоритм выбора наилучшего опорного снимка
Пусть задано множество опорных снимков А = [Ai,A2, .. .Аа}. Используя это множество, требуется определить ориентацию БПЛА и положение, из которого был сделан некоторый тестовый снимок В. В качестве основного средства для решения этой задачи предлагается использовать множество пар соответствующих точек. Для снимка В необходимо выбрать наиболее подходящий снимок А* из множества А, исходя из такой эвристики, что функция match должна возвращать для снимков В и А* как можно больше пар соответствующих точек:
А* = arg max(count(match(B, Ak))),
Afc eA
Здесь count — функция, которая выдает мощность множества, возвращаемого функцией match.
5. Поиск линейного преобразования, связывающего два снимка
Имея множество пар соответствующих точек для опорного и тестового снимков, можно вычислить параметры dx, dy и в, которые определяют линейное преобразование, связывающее эти снимки. Для этого вполне достаточно взять любые две пары и решить систему нелинейных уравнений. Проблема состоит в том, что реализация функции match, способной находить множество пар соответствующих точек с абсолютной точностью и без ошибок, является весьма затруднительным. Это обусловлено в основном дискретностью изображений и зашумленностью исходных данных и может привести к тому, что неизвестные параметры будут вычислены неправильно. Одним из возможных способов решения задач подобного рода является алгоритм RANSAC — стабильный метод оценки параметров некоторой модели на основе случайных выборок [4,5]. В результате его работы все исходные данные разделяются на два типа: точки, удовлетворяющие модели (инлаеры, англ. inlier) и шумы — случайные включения в исходные данные (аутлаеры, англ. outlier). Алгоритм RANSAC берет за основу минимальное количество точек (в нашем случае две), необходимое для построения модели, после чего проверяет, какое количество из всех точек соответствует модели, используя функцию оценки с заданным порогом. Для решения задачи можно воспользоваться и методом наименьших квадратов (МНК), но он находит
решение, исходя из всего множества точек. Применение такого подхода может дать приемлемые результаты только в том случае, если удастся выделить те пары точек, которые являются инлаерами. К способам решения задач на основе МНК относятся алгоритм Гаусса-Ньютона [6] и его развитие — алгоритм Левенберга-Марквардта [7,8]. Рассмотрим постановку задачи по МНК. Пусть задан функционал от п переменных, который представляет собой сумму квадратов т различных функций:
т
Р(*) = ^ /г2(^) ^ шт,
XI ~А(х)~
Х2 І2(х)
, /(х) =
Х„_ ./т(Х)_
Задано начальное приближение х$. Алгоритм Левенберга-Марквардта основан на применении следующей итеративной схемы:
(^3 (Хк) ^(Хк) + Хк ^8^ (Хк^ J(х&рк ,1 {хк') /(%к)?
%к+1 %к Рк •
В приведенном выше уравнении J(хь) —якобиан от вектор-функции /, вычисленный в точке Хк; Хк —некоторая неотрицательная константа, своя для каждой итерации; diag (хк )^(хк)] —матри-
ца, главная диагональ которой совпадает с главной диагональю матрицы (х^^(х^), а остальные значения равны нулю; Хк —невязка.
На каждой итерации алгоритма решается система линейных уравнений, решением является вектор невязки. Критерием останова является достижение заданного максимального количества итераций, или же ситуация, когда длина вектора Хк не превосходит некоторого числа е. Ожидается, что поиск неизвестных параметров dx, dy и в может быть произведен по следующей схеме: вначале применяется алгоритм RANSAC для разделения всего множества пар соответствующих точек на инлаеры и аутлаеры. Далее, результат работы RANSAC используется в качестве начального приближения для решения оптимизационной задачи по МНК с применением алгоритма Левенберга-Марквардта.
6. Вычисление ориентации и положения БПЛА
Пусть опорный снимок сопоставлен точке на карте с координатами (хо,уо), а ориентация спутника, с применением которого был выполнен этот снимок, определяется углом во . Тогда ориентация и положение БПЛА, из которого был выполнен тестовый снимок, определяется следующим образом:
£ = Оо + в,
При этом положение и ориентация аппарата определяются в системе координат карты местности, в дальнейшем необходим перевод этих координат в географические.
Заключение
Результатом данной работы является математическая постановка задачи по определению положения и ориентации БПЛА во время своего полета (при наличии некоторых ограничений). Для решения задачи предлагается использовать опорные снимки земной поверхности, полученные с помощью ИСЗ. Предложен метод моделирования полета БПЛА, оборудованного камерой. Ожидается, что с использованием вышеизложенных алгоритмов удастся получить приемлемые результаты решения поставленной задачи. В дальнейшем планируется реализовать рассмотренную методику и провести эксперименты, которые позволят выяснить ее эффективность. Одна из основных задач — выбор подходящего алгоритма поиска соответствующих пар точек на изображениях. Также предполагается расширить проблему, сняв ограничения на то, как могут двигаться ИСЗ и БПЛА во время полета над поверхностью Земли. Должна быть исследована задача управления БПЛА при его автономном полете.
Список литературы
[1] Камера-обскура, http://en.wikipedia.org/wiki/Camera_obscura. f1
[2] Bradski G., Kaehler А. Learning OpenCV. : O’Reilly Media, 2008.— 576 p. f1
[3] Прямое и обратное преобразование Родригеса, http://en.wikipedia.org/wiki/Rodrigues’_rotation_formula. f1
[4] Алгоритм RANSAC, http://ru.wikipedia.org/wiki/RANSAC. f5
[5] Zuliani M. RANSAC for Dummies, 2011.— 101 p. f5
X Хо d.x
У = У0 + dy
[6] Алгоритм Гаусса-Ньютона, http://en.wikipedia.org/wiki/Gauss%E2%80%93Newton_algorithm. ^5
[7] Алгоритм Левенберга-Марквардта, http://en.wikipedia.org/wiki/Levenberg%E2%80%93Marquardt_ algorithm. ^5
[8] Ранганатан А. Алгоритм Левенберга-Марквардта, 204, c.5 ^5
D. N. Stepanov, I. P. Tishchenko. The problem of modeling the flight unmanned aerial vehicle based on vision systems.
Abstract. The problem of simulation of the flight unmanned aerial vehicle over some terrain with restrictions on the movement of the machine is considered. The approach to solving the problem of automatic determination of its position and orientation using machine vision technology and artificial intelligence is proposed.
Key Words and Phrases: unmanned aerial vehicle, artificial Earth satellite, camera model, modeling, RANSAC algorithm, Levenberg—Marquardt algorithm.
Образец ссылки на статью:
Д. Н. Степанов, И. П. Тищенко. Задача моделирования полета беспилотного летательного аппарата на основе системы технического зрения // Программные системы: теория и приложения : электрон. научн. журн. 2011. №4(8), с. 33-43. URL: http://psta.psiras.ru/read/psta2011_4_ 33-43.pdf