ВОССТАНОВЛЕНИЕ ГЛУБИНЫ ТОЧКИ ПРИ НАБЛЮДЕНИИ С ОДНОЙ КАМЕРЫ С ПОМОЩЬЮ РАНДОМИЗАЦИИ ЕЕ ПОЛОЖЕНИЯ Кривоконь Д.С., dmitry00@gmail.com Вахитов А.Т., alexander.vakhitov@gmail.com Аннотация В статье представлен рандомизированный алгоритм для оценки глубины точки на основе наблюдений с одной камеры. Рандомизация положения камеры позволяет решить задачу в случае движения точки без наложения существенных ограничений на характер ее движения, подавить помехи в наблюдениях оптического потока и ошибки дискретизации. Статья содержит результаты работы алгоритма, как на модельных данных, так и в реальных условиях. Введение В задачах наблюдения при помощи видеокамер часто возникает необходимость оценки геометрии окружающей среды. К примеру, для успешного управления роботом требуется оценивать положения находящихся в области видимости объектов и препятствий, аналогичные задачи возникают в приложениях автоиндустрии, где необходимо вычислять положения пешеходов, автомобилей и т.п. Для решения задач в случае, когда окружающая среда статична (например, при наблюдении роботом), существуют методы построения карты, основанные на детектировании особых точек на кадрах видео последовательности [1] и оценки оптического потока в них [2,3]. Положения камер и точек в таких алгоритмах вычисляются при помощи минимизации суммарной ошибки перепроектирования [4]. Интересным подходом к задачам реконструкции являются динамические системы. Так авторы [5] предложили несколько асимптотических наблюдателей, которые оценивают глубину точки за счет известного оптического потока между кадрами. Они доказали сходимость их алгоритма и показали, что при помощи него можно получить адекватные оценки глубины на реальных данных в контролируемых условиях. В нашей статьей мы предлагаем метод типа РАСА [6] для оценки глубины одной точки, основанный на подходе [5]. Используя случайные возмущения положения центра проектирования камеры, мы оцениваем глубину точки при помощи дискретной процедуры. Использование рандомизации позволяет избавиться от неоднозначностей, появляющихся в задаче, подавить помехи, ошибку дискретизации, а также оценивать положение точки в случае ее движения. Последнее свойство алгоритма является крайне важным. Предыдущие подходы к решению задачи реконструкции в случае движения так или иначе использовали некие ограничения на возможное движение объекта. Так в [7] авторы рассматривают линейно движущийся объект, а в [8] представлено решение для точки, движущейся в некоторой плоскости. Для сходимости нашего подхода необходимо ограниченность движения объекта с течением времени. Такое предположение можно считать разумным для большинства реальных приложений. Методы типа РАСА РАСА (рандомизированные алгоритмы стохастической аппроксимации) были предложены в работах Граничина О. Н. [6,9] и J.C. Spall [10]. Это методы стохастической аппроксимации типа алгоритма Робинса-Монро разработанные специально для задач оптимизации. РАСА представляет собой итеративную процедуру, которая на каждой итерации корректирует текущую оценку при помощи аппроксимации градиента по случайному направлению. Для данной статьи важны результаты о сходимости методов РАСА с вероятностью 1 в случае неизвестной, но ограниченной помехи наблюдения [6,9], а также результаты о оптимальной скорости сходимости в классе алгоритмов стохастической оптимизации [11]. Также представляет интерес алгоритм с постоянным размером шага, представленный в [12] и примененный для задачи отслеживания минимума нестационарного функционала. Постановка задачи Для простоты вывода мы будем рассматривать сферическую модель камеры, все последующие уравнения и сам алгоритм могут быть переформулированы для проективного случая при помощи простой замены координат. В каждый момент времени движущаяся система координат, привязанная к камере, задается положением центра проектирования камеры Cn в некоторой фиксированной системе координат и кватернионом qn , который задает ее ориентацию. Пусть vn = Cn – C{n−1} - скорость движения центра камеры, а ωn - ее скорость поворота. Далее рассмотрим движущуюся точку наблюдаемую камерой. Ее положение определено лучом 𝜂n (пиксель) из центра камеры к точке и глубиной Dn относительно этого луча. Дискретизируя уравнение динамики глубины из [5], можно получить: Dn = D{n−1} − 〈vn , ηn 〉 + ϵn где 𝜖n представляет собой ошибку дискретизации и возможный дрейф точки. При введенных обозначениях задачу отслеживания положения ̂n , что точки можно сформулировать как задачу получения таких оценок 𝐷 ̂n → 𝐷𝑛 . Наш алгоритм основан на использовании данных об оптическом 𝐷 потоке в каждый момент времени. Глубина точки и оптический поток связаны следующим уравнением: wn = Γn (〈vn , ηn 〉ηn − vn ) − ωn × ηn + ϵ𝑤𝑛 , где ϵ𝑤𝑛 - это помеха оптического потока. Алгоритм ̂n Мы предлагаем следующую процедуру для получения оценок 𝐷 истинного значения глубины 𝐷𝑛 : 1. Сгенерировать случайное возмущение Δ𝑛 по равномерному распределению на сфере радиуса 1 в трехмерном пространстве. 2. Сдвинуть камеру согласно пробному возмущению. 3. Сделать наблюдение оптического потока 𝑤𝑛 . ̂𝑛−1 используя: 4. Обновить 𝐷 ̂ ̂𝑛−1 − 〈vn , ηn 〉 + α(1 − 𝐷 ̂n−1 Γ̂n ), 𝐷𝑛 = 𝐷 (1) 〈Δ𝑛 ,ηn 〉ηn −Δ𝑛 где Γ̂n = 𝑤𝑛 ‖〈Δ 〉η . ‖ 𝑛 ,ηn n −Δ𝑛 Уравнение (1) является дискретной аппроксимацией асимптотического наблюдателя представленного в [5]. Идея алгоритма заключается в том, что Γ̂n , будет аппроксимировать истинное значение обратной глубины. Рассмотрим уравнение (1) В нем есть члены, которые каким-то образом включают в себя Δ𝑛 . Если мы скалярно домножим все выражение на 〈Δ𝑛 , ηn 〉ηn − Δ𝑛 , то некоторые члены будут включать в себя Δ𝑛 линейно, а некоторые квадратично. Линейные члены будут равны нулю после усреднения, а единственный квадратичный член будет содержать как множитель Γ̂𝑛 , что и позволяет получить формулу для оценок. Моделирование Условия Мы рассматриваем несколько сценариев в нашем тестировании. В каждом из них предполагается, что положение и ориентация камеры точно известны в каждый момент времени. В качестве начального положения камеры мы используем начало координат, а ее скорость движения либо равна нулю, либо меняется между (1,0,0) и (-1,0,0) с периодом в 10 итераций. Для простоты мы не рассматриваем изменения ориентации камеры, т.к. оно несущественно влияет на алгоритм оценивания. Начальное положение точки устанавливается в (0,0,10), а ее динамика разбивается на два случая: стационарная точка и линейно движущаяся точка с постоянной скоростью (0.1, 0.1, 0.1). Начальное приближение глубины точки равно 100 а начальная ошибка, соответственно 90. Наконец, мы рассматриваем три случая помехи в оптическом потоке: 1. Нулевая помеха 2. Равномерная с мат. ожиданием 0 3. Смещенная равномерная Рисунок 1 - Стационарный случай без помех Рисунок 2 - Стационарный случай с равномерной смещенной помехой Рисунок 3 - Случай линейно движущейся точки и смещенной помехи Результаты Алгоритм тестировался на последовательностях данных в 200 итераций. Из наших тестов мы получили, что алгоритм подавляет ошибку начального приближения в большинстве случаев к 80-ой итерации. На основе этого для оценки качества работы алгоритма мы использовали среднюю ошибку оценок, начиная с 100 итерации (для более стабильного определения). Таблица 1 содержит результаты тестирования. Каждое значение в ней подсчитано усреднением по 1000 запускам алгоритма. На Рис. 1, 2, 3 показаны примеры траекторий. Таблица 1 - Результаты моделирования Условия теста Помеха №1 Помеха №2 Помеха №3 Стац. камера, стац. точка 0.1844 2.0609 3.8970 Стац. камера, движущаяся точка 2.5218 7.8300 9.8289 Движущаяся камера, стац. точка 2.7666 3.4075 4.5668 Движущаяся камера, стац. точка 7.4645 8.8753 11.3551 Реальный эксперимент Условия В реальном эксперименте первостепенной задачей является определение положения объекта и камеры, т.к. эти данные необходимы для последующей оценки качества работы алгоритма. Для решения этой задачи мы использовали подход на использовании специальных маркеров (см Рис. 4). Рисунок 4 - Пример изображения с маркерами Каждый маркер представляется собой плоский объект известной геометрии, соответственно, зная положение его проекций на изображении можно определить положение камеры относительного него при помощи стандартных методов реконструкции. Основываясь на этом, мы построили нашу систему тестирования следующим образом. Для определения движения камеры используется набор из 8 маркеров, для которых известны их положения относительно друг друга (большее количество маркеров необходимо для большей точности). Движущийся объект представлен одним маркером. Определяя сначала положение камеры относительно базы маркеров, а потом положение камеры относительно объекта, мы получаем всю необходимую нам информацию. Случайность в данном эксперименте симулируется вручную при помощи периодического движения камеры. Такой подход в целом удовлетворяет условиям работы алгоритма, т.к. движения камеры в среднем будет равно нулю и не будет коррелировано с движением объекта. Результаты Алгоритм тестировался для двух случаев: случай со статическим объектом и случай с движущимся объектов. В каждом из них он показал результаты, согласующиеся с моделированием. Помеха в начальном приближения с течением времени подавлялась, после чего алгоритм успешно отслеживал истинную глубину точки. Примеры траекторий и соответствующих им графиков ошибки показаны на Рис. 5, 6, 7, 8. Рисунок 5 - Траектория глубины для статического случая Рисунок 6 - График ошибки для статического случая Рисунок 7 - Траектория глубины для случая с движением Рисунок 8 - График ошибки для случая с движением Заключение В статье был представлен алгоритм для оценки глубины при помощи одной камеры на основе наблюдения оптического потока. Были показаны результаты моделирования и тестирования на реальных данных. В обоих случаях алгоритм успешно справлялся с задачей отслеживания глубины, даже в тех вариантах, где присутствовали смещенные помехи и движение объекта. В будущем планируется добавить в алгоритм шаг предсказания движения объекта, а также изучить возможность применения алгоритма к задаче оценки геометрии статической сцены в целом. Работа выполнена при частичной финансовой поддержке РФФИ (грант № 13-07-00250-а). Литература 1. 2. 3. 4. Klein G., Murray D. Parallel tracking and mapping for small AR workspaces // In: Proc. of the 6th IEEE and ACM International Symposium on Mixed and Augmented Reality. 2007. P.225-234. Lucas B. D., Kanade T. An iterative image registration technique with an application to stereo vision // In: Proc. of the 7th International Joint Conference on Artificial intelligence. 1981. Horn B. K. P., Schunck B. G. Determining optical flow // Artificial intelligence. 1983. 17(1). P. 185-203. Lourakis M., Argyros A. The Design and Implementation of a Generic Sparse Bundle Adjustment Software Package Based on the Levenbergmarquardt Algorithm. Technical Report 340. Institute of Computer Science- FORTH. Heraklion. Crete. Greece. 2004. Zarrouati N., Aldea E., Rouchon P. SO(3)-invariant Asymptotic Observers for Dense Depth Field Estimation Based on Visual Data and Known Camera Motion. arXiv preprint arXiv:1103.2539. 2011. 6. Граничин О. Н. Процедура стохастической аппроксимации с возмущением на входе // Автоматика и телемеханика. 1992. # 2. C. 97104. 7. Han M., Kanade T. Reconstruction of a scene with multiple linearly moving objects // In: Proc. of IEEE Conference on the Computer Vision and Pattern Recognition. 2000. P. 542--549. 8. Sturm P. Structure and motion for dynamic scenes the case of points moving in planes // In: Proc. of the European Conference on Computer Vision. 2002. P. 507--509. 9. Граничин О. Н. Об одной стохастической рекуррентной процедуре при зависимых помехах в наблюдении, использующей на входе пробные возмущения // Вестник Ленингр. ун-та. Сер. 1. 1989. Вып.1(4). С. 1921. 10. Spall J. C. Multivariate stochastic aproximation using a simultaneous perturbation gradient aproximation // IEEE Trans. Automat. Contr. 1992. 37(3). P. 332--341. 11. Поляк Б. Т., Цыбаков А. Б. Оптимальные порядки точности поисковых алгоритмов стохастической аппроксимации // Проблемы передачи информации. 1990. #2. С. 45-53. 12. Granichin O., Gurevich L., Vakhitov A. Discrete-time minimum tracking based on stochastic approximation algorithm with randomized differences // In: Proc. of the Combined 48th IEEE Conf. on Decision and Control and 28th Chinese Control Conf. Shanghai. P.R. China. 2009. P. 5763 -5767. 5.