Диссертация (1149687), страница 8
Текст из файла (страница 8)
Хранениевсех данных реализовано при помощи документной базы данных MongoDB [28]и соответствующего интерфейса работы с ней для python pymongo. При этомпредполагается, что хранение видео и изображений осуществляется на диске, ав базе данных сохраняются лишь пути к файлам.Разработка велась с использованием Eclipse под операционную систему Linux. Для целей прототипирования использовались компоненты пакетаIPython, такие как IPython Notebook.503.1Структура комплекса и основные объектыВсе данные внутри системы привязаны к некоторой камере.
Камера представляет собой объект, который в первую очередь характеризуется ее калибровочными параметрами. Калибровочные параметры представляются собой класссодержащий следующие поля:–focal_length — фокусное расстояние камеры,–pixel_width — физическая ширина в мм. пикселя камеры,–pixel_height — физическая высота в мм.
пикселя камеры,–width — ширина в пикселях изображения камеры,–height — высота в пикселях изображения камеры,–center_x, center_y — координаты оптического центра камеры в пикселях,–K1, K2 — параметры радиальной дисторсии камеры,–P1, P2 — параметр тангенциальной дисторсии камеры.Дисторсия камеры моделируется при помощи уравнений, представленных в [33]:(1)2(2)2242(1)(1) (2) = (1) (1 + 1 + 2 ) + (2 ( + 2 ) + 21 ),242(2)(1) (2) = (2) (1 + 1 + 2 ) + (2 ( + 2 ) + 21 ),Матрицу внутренних параметров камеры, по описанному классу можно получить следующим образом:⎛⎜⎜=⎜⎝ _ℎ_ℎ00⎞0_⎟⎟ _ℎ⎟._ℎℎ _ ⎠0151С объектом камеры также ассоциируются все видео и фото, которые были сделаны при помощи нее.
Они хранятся внутри класса камеры в виде списков путейк соответствующим файлам. При этом с каждым файлом видео или изображения может быть связан дополнительный файл видео или изображения соответственно, в котором убраны оптические искажения, если таковые имелись. Онимоделируются и убираются при помощи коэффициентов из класса калибровочных параметров. Объект камеры (как и другие объекты системы) сериализуетсяв MongoDB при помощи стандартных средств pymongo.Сдетектированные особые точки хранятся в виде объектов, содержащихкоординаты точки, опциональный дескриптор и идентификатор, уникальныйв рамках одного кадра или изображения. Их списки могут быть привязаны кпутю изображения или номеру кадра видео.
Для видео данные каждого кадрахранятся вместе с его номером в списке, который также может быть привязан к соответствующему путю файла. С этими данными как для видео так идля изображений хранится конфигурация детектора точек, которая использовался при их вычислении. Привязка данных к файлам опциональна, т.к. онимогут быть загружены вручную, к примеру, для целей моделирования.
Сопоставления точек между кадрами или изображениями хранится в виде списковидентификаторов с соответствующими привязками. Так, точки могут быть сопоставлены между разными изображениями, разными кадрами одного видео,разными кадрами нескольких видео и т.п. Список сопоставленных точек называется траекторий, и в дальнейшем используется в алгоритмах реконструкциив качестве представления объекта.Положение камеры хранится в виде матрицы поворота ∈ R3×3и коор-динат ее оптического центра. Каждое положение привязано к кадру видео илиизображению, при этом привязка осуществляется при помощи путей к файлам,номеров кадров и т.п. Наблюдаемые объекты же привязаны к траекториям, полученным при помощи сопоставления точек и хранят в себе трехмерное положение объекта для каждого элемента траектории, а также флаг, указывающий52на то является ли объект статическим или движущимся.
В задачах моделирования, когда для объекта может быть известно его истинное положение в каждыймомент времени, это положение также сохраняется.3.2Детектирование и сопоставление особых точекДетектирование и сопоставление особых точек реализовано с использованием достаточно стандартных методов. В случае обработки изображений общепризнаным решением для поиска точек является алгоритм SIFT [69] и егоаналоги. В разработанной системе есть возможность выбора из двух алгоритмов, собственно, SIFT и его оптимизированного аналога SURF. Каждый из этихалгоритмов кроме определения положения точек, также предоставляет возможность вычисления дескрипторов точек, которые в дальнейшем могут использоваться для алгоритмов сопоставления. Эти алгоритмы принимают некоторыйна вход набор параметров, который в основном отвечает за чувствительностьсоответствующих детекторов.
Регулируя их, можно обменивать количество найденных точек на уверенность в том, что эти точки действительно являются особыми. Также в них можно регулировать размерность вычисляемых дескрипторов, что в некоторых случаях может сэкономить вычислительные мощности.При обработке видео использование алгоритмов SIFT или SURF [30] затруднительно из-за количества кадров, которые необходимо обработать. Данные алгоритмы работают достаточно медленно, да и кроме того дескрипторы,которые они предоставляют для видео уже не имеют такой большой практической значимости, вследствии того, что сопоставление точек ведется на кадрахдостаточно близких друг от друга, из-за чего его можно производить более простыми методами.
Поэтому для видео обычно используют другие алгоритмы. Вкачестве таких в программном комплексе предлагаются на выбор алгоритмы53Harris Corner Detector [52], FAST [76] и Good Features To Track [78]. Данные алгоритмы аналогично алгоритмам SIFT и SURF принимают на вход параметры,регулирующие их чувствительность.Сопоставления точек с разных кадров и изображений осуществляется различными методами в зависимости от того, обрабатываются ли видео или отдельные фотографии. Для изображений, т.к. они могли были быть полученыс сильно различающихся ракурсов, используются методы на основе дескрипторов. В данных алгоритмах для каждой точки одного кадра или изображенияпроизводится попытка найти к ней максимально близкую точку на другом кадре или изображении в смысле расстояния между дескрипторами.
Полный перебор всех возможных пар точек и вычисление расстояний между ними был быкрайне не эффективным, поэтому для ускорения поиска ближайших соседейиспользуются специально разработанная для этого структура данных рандомизированного KD дерева [74].
Общий смысл алгоритма поиска при помощинее заключается в том, что перед его началом дескрипторы одного кадра добавляются в специальные индекс, который разбивает пространство дескрипторов на иерархическое дерево вложенных кубов, по которому потом достаточнопросто производить поиск ближайших соседей. Таким образом весь алгоритмсопоставления заключается в вычислении для каждого кадра или изображениясоответствующего KD дерева, по которому в дальнейшем осуществляется поискближайших точек.
Стоит заметить, что в системе задается порог на расстояниемежду дескрипторами после которого точки уже не могут считаться связанными. Для видео сопоставление точек производится намного проще. Т.к. соседниекадры в видео отличаются незначительно, то и положения особых точек между ними будут достаточно близки.
Поэтому точки в таком случае достаточносравнивать по расстоянию, т.е. ближайшей к точке одного кадра будет точкадругого кадра, координаты которой отличаются наименьшим образом от исходных координат. В таком случае с точки зрения проиводительности можновычислить все возможные расстояния между парами точек, т.к. вычисление его54достаточно дешевая операция по сравнению с вычислением расстояний междудескрипторами. Зная все расстояния для всех возможных пар, можно найтиоптимальное решение задачи сопоставления с точки зрения суммы расстояниймежду получающимися в итоге парама.
Для этого нужно рассмотреть даннуюзадачу как задачу о минимальном паросочетании в двудольном графе, дальше кней можно применить широко известный алгоритм Куна-Манкерса и получитьфинальный результат.3.3Оценка положения камеры и наблюдаемых объектовВ случае когда положения камеры неизвестны, их необходимо оценитьна основе статичных объектов, которые имеются в наблюдаемой сцене. Дляэтого используются классические методы трехмерной реконструкции на основестатичного окружения. Во время обработки данных система хранит текущиекоординаты всех трехмерных точек, для которых удалось восстановить их положения по траекториям. При получении нового кадра и новых точек траекторий происходит первоначальная оценка нового положения камеры на основеметода с использованием RANSAC [44]. Для каждой траектории точек на изображении в текущей модели есть трехмерная точка с известными координатами.Используя эти координаты и сопоставления между точками текущего кадра иимеющимися траекториями, новое положения камеры можно восстановить припомощи линейных методов реконструкции на основе 2D-3D соответствий [53].Но т.к.
некоторые из точек могут соответствовать движущимся объектам, а нестатичным, и т.к. в работе алгоритмов сопоставления неизбежны ошибки из-запомех, то для более устойчивой оценки положения камеры используется подход на основе RANSAC. Из всех точек для которых нашлись соответсвтующиетраектории в модели несколько раз производится сэмплирование набора фикси-55рованного размера. Эти наборы используются для получения оценок текущегоположения камеры. Точки не попавшие в сэмплированный набор используютсядля оценки качества получаемых положений.
Та оценка положения камеры, которая предсказывает наилучшим образом остальные сопоставления точек траекториям выбирается в качестве основной гипотезы. Дальше из всех соответствий точек текущего кадра и траекторий в системе выбираются те, которыеподходят под зафиксированную гипотезу (используя некоторый порог на ошибку невязки). Они же используются дальше для получения финальной гипотезыо текущем положении камеры. Эта оценка положения камеры добавляется втекущую модель после чего запускается глобальный алгоритм уточнения модели на основе метода уравнивания связок. После этого уточнения происходитклассификация новых траекторий на относящихся к статичным и движущимсяобъектам. Движущимися объектами назначаются те траектории, которые напротяжении фиксированного количества кадров не удовлетворяли статичноймодели окружения по уравнениям невязки.
Положение этих объектов восстанавливается уже при помощи рандомизированных алгоритмов оценки.Координаты движущихся объектов оцениваются при помощи одного изпредложенный во второй главе методов. Если управление камерой ведется непосредственно при помощи некоторого устройства, и пробное возмущение в каждый момент времени известно, то оно используется как и для реконструкцииположения движущихся объектов, так и для уточнения положений камеры.Если же оно неизвестно, считается что собственное движение камеры и естьпробное возмущение, его величина оценивается при помощи модуля описанногов разделе выше.