Устройство, способ и система для реконструкции 3d-модели объекта

Иллюстрации

Показать все

Данное изобретение относится к области обработки изображений и, в частности, оно ориентировано на устройство, способ и систему для 3D-реконструкции объекта из изображений, генерируемых посредством сканирования объекта на 360°. Заявленная группа изобретений включает устройство для реконструкции 3D-модели объекта, способ реконструкции 3D-модели объекта и систему для реконструкции 3D-модели объекта. Причем устройство для реконструкции 3D-модели объекта содержит: модуль сканирования, выполненный с возможностью сканирования объекта вдоль траектории вокруг объекта и захвата изображений объекта из разных точек на этой траектории, блок памяти, выполненный с возможностью сохранения захваченных изображений объекта, по меньшей мере один процессор, выполненный с возможностью осуществления процесса 3D-реконструкции с использованием сохраненных захваченных изображений для образования 3D-модели объекта и модуль отображения, выполненный с возможностью отображения 3D-модели объекта, при этом упомянутый по меньшей мере один процессор выполнен с возможностью осуществления процесса 3D-реконструкции посредством: оценки во время сканирования объекта местоположения модуля сканирования, соответствующего каждому из захваченных изображений, передачи оцененных местоположений модуля сканирования к блоку памяти для их сохранения, уточнения, после завершения сканирования объекта, оцененных местоположений модуля сканирования, сохраненных в блоке памяти, с использованием информации о начальной и конечной точках траектории, и передачи уточненных местоположений модуля сканирования к блоку памяти для их сохранения, конструирования карты глубины, соответствующей каждому из уточненных местоположений модуля сканирования и каждому из захваченных изображений, объединения всех карт глубины для генерирования 3D-представления объекта, создания поверхностной сетки объекта на основе 3D-представления, наложения цветных текстур на поверхностной сетке объекта для реконструкции 3D-модели объекта и передачи 3D-модели объекта к блоку памяти для ее сохранения. Технический результат заключается в обеспечении возможности быстрого создания высококачественной 3D-модели (3D-сетки и цветной текстуры) объекта в условиях жестких ограничений как на размер хранилища данных, так и на вычислительные затраты, то есть с использованием меньшего времени и вычислительных затрат, чем аналоги из уровня техники, а также без использования дополнительного дорогостоящего аппаратного обеспечения. 3 н. и 17 з.п. ф-лы, 18 ил.

Реферат

Область техники, к которой относится изобретение

Данное изобретение, в общем, относится к области обработки изображений, и, в частности, оно ориентировано на устройство, способ и систему для 3D-реконструкции объекта из изображений, генерируемых посредством сканирования объекта на 360 градусов.

Уровень техники

3D-реконструкция является процессом вычисления математического представления трехмерной поверхности объекта из двумерных проекций объекта, получаемых с разных точек просмотра. Реконструированная 3D-модель объекта может быть сохранена, обработана и отображена в цифровом виде и физически воссоздана с использованием устройств 3D-печати. Процесс 3D-реконструкции широко используют в различных сферах деятельности, таких как развлечения (кинофильмы, анимация, компьютерные игры и т.д.), дизайн интерьеров, архитектура, промышленный дизайн, технология прототипирования.

Существуют разные подходы к 3D-реконструкции, которые основаны на различных оптических системах, используемых для захвата изображений. Обычно оптическая система может быть выполнена либо в виде специализированной камеры глубины (например, активного датчика глубины или стереокамеры), либо в виде традиционной монокулярной камеры.

Специализированная камера глубины может захватывать карты глубины (либо непосредственно в случае активного датчика глубины, либо после обработки пары скорректированных стереоизображений в случае стереокамеры) объекта или среды в реальном времени. Каждый пиксель в картах глубины соответствует дискретному измерению расстояния, получаемому посредством камеры из 3D-точки в среде. Например, документ US 8587583 B2 описывает подход, в котором местоположение камеры оценивают с использованием захваченной карты глубины, причем все карты глубины непрерывно объединяют во внутренней памяти обрабатывающего устройства с использованием оцененного местоположения камеры. Этот подход имеет два недостатка: во-первых, он требует дорогостоящего аппаратного обеспечения для реализации датчика глубины, используемого для захвата карт глубины, и, во-вторых, алгоритм обработки является вычислительно сложным и требует мощного графического процессора для обработки данных в реальном времени.

В подходах на основе монокулярной камеры может быть использован способ 3D-реконструкции на основе силуэта. В этом способе изображения, захваченные посредством камеры, используются для извлечения силуэтов, которые затем образуют объемную структуру, вместе с их пересечениями. Такой способ описан в документе US 8270704 B2 и имеет в качестве результата полигональную сетку с цветной текстурой. Недостатком этого способа является его вычислительная сложность в отношении объемного объединения и извлечения силуэтов, что ограничивает его реализацию на мобильных устройствах. Другой недостаток состоит в том, что этот способ не может восстанавливать вогнутости, которые не видны на изображениях силуэтов.

Другим классом способов, использующих аппаратное обеспечение на основе монокулярной камеры, является процесс 3D-реконструкции на основе определения структуры по движению, в котором характерные точки извлекают и сопровождают для последовательных захваченных изображений. Характерные траектории в зависимости от времени используют затем для реконструкции их 3D-местоположений и перемещения камеры. Такой подход описан в документе US 8532367 B2. Недостатком этого подхода является то, что он обычно реконструирует облако 3D-точек или полигональную сетку без текстуры (текстур), так что визуальный внешний вид реконструированной 3D-модели не является достаточным. Также, для лучшей точности этот подход требует большого количества характерных точек, что увеличивает вычислительные затраты.

Как следует из вышеприведенного, все описанные подходы имеют один общий недостаток: все они имеют высокую вычислительную сложность, так что их реализация на мобильных платформах, таких как смартфоны или планшетные компьютеры, является невозможной вследствие ограниченной вычислительной производительности такого класса устройств. Для преодоления этого недостатка обычно используют облачную обработку данных. Например, документ US 8941644 B2 описывает методы создания 3D-моделей наборов изображений с использованием доступной по сети (например, облачной) вычислительной службы, а не клиентского мобильного устройства. Этот подход требует доступа в Интернет для пользователя и обычно занимает значительно больше времени, чем 3D-реконструкция на клиентском мобильном устройстве.

Таким образом, существует потребность в методах 3D-реконструкции объектов, которые могли бы быть выполнены с использованием меньшего времени и вычислительных затрат, чем аналоги из уровня техники, а также без использования дополнительного дорогостоящего аппаратного обеспечения.

Раскрытие изобретения

Технический результат, достигаемый с использованием данного изобретения, состоит в возможности быстрого создания высококачественной 3D-модели (3D-сетки и цветной текстуры) объекта в условиях жестких ограничений как на размер хранилища данных, так и на вычислительные затраты.

Согласно первому аспекту, представлено устройство для реконструкции 3D-модели объекта. Это устройство содержит модуль сканирования, блок памяти, по меньшей мере один процессор и модуль отображения. Модуль сканирования выполнен с возможностью сканирования объекта вдоль траектории вокруг объекта и захвата изображений объекта из разных точек на этой траектории. Блок памяти выполнен с возможностью сохранения захваченных изображений объекта. Упомянутый по меньшей мере один процессор выполнен с возможностью осуществления процесса 3D-реконструкции с использованием сохраненных захваченных изображений для формирования 3D-модели объекта. Модуль отображения выполнен с возможностью отображения 3D-модели объекта.

В одном варианте реализации упомянутый по меньшей мере один процессор выполнен с возможностью осуществления процесса 3D-реконструкции посредством: оценки во время сканирования объекта местоположения модуля сканирования, соответствующего каждому из захваченных изображений; передачи оцененных местоположений модуля сканирования к блоку памяти для их сохранения; уточнения, после завершения сканирования объекта, оцененных местоположений модуля сканирования, сохраненных в блоке памяти, с использованием информации о начальной и конечной точках траектории, и передачи уточненных местоположений модуля сканирования к блоку памяти для их сохранения; конструирования карты глубины, соответствующей каждой из уточненных местоположений модуля сканирования и каждому из захваченных изображений; объединения всех карт глубины для генерирования 3D-представления объекта; создания поверхностной сетки объекта на основе 3D-представления; наложение текстур на поверхностной сетке объекта для реконструкции 3D-модели объекта; и передачи 3D-модели объекта к блоку памяти для ее сохранения.

Модуль сканирования выполнен с возможностью сканирования объекта вдоль траектории, которая может быть замкнутым или незамкнутым контуром. Замкнутый или незамкнутый контур может иметь круговую или произвольную форму.

В одном варианте реализации упомянутый по меньшей мере один процессор выполнен с возможностью оценки местоположений модуля сканирования во время сканирования объекта с использованием метода одновременной навигации и составления карты(Simultaneous Localization and Mapping).

В некоторых вариантах реализации модуль сканирования реализован в виде монокулярной камеры или многовидовой стереокамеры, или датчика глубины, или любой их комбинации.

В одном варианте реализации каждое из местоположений модуля сканирования, оцененное и затем уточненное посредством упомянутого по меньшей мере одного процессора, характеризуется набором параметров, включающим в себя координаты модуля сканирования и ориентацию модуля сканирования в пространстве. Ориентация модуля сканирования может задаваться посредством углов рыскания, наклона и/или крена.

В некоторых других вариантах реализации устройство дополнительно содержит одно или более устройств человеческого интерфейса, позволяющих пользователю управлять процессом сканирования объекта. Упомянутые одно или более устройства человеческого интерфейса могут быть выполнены с возможностью предоставления пользователю возможности настройки угла сканирования и/или времени сканирования. Упомянутые одно или более устройства человеческого интерфейса могут включать в себя одну или более кнопок, один или более микрофонов, громкоговорителей, сенсорный экран или любые их комбинации. Модуль сканирования может быть выполнен с возможностью сканирования объекта, захвата его изображений и/или остановки сканирования и захвата на основе пользовательского речевого сигнала, принятого через микрофон.

В одном варианте реализации модуль отображения дополнительно выполнен с возможностью отображения одного или более промежуточных данных, сохраненных в блоке памяти. Промежуточные данные могут содержать изображения объекта, захваченные посредством модуля сканирования, и местоположения модуля сканирования, оцененные и уточненные посредством упомянутого по меньшей мере одного процессора.

В одном варианте реализации упомянутый по меньшей мере один процессор дополнительно выполнен с возможностью уточнения оцененных местоположений модуля сканирования на основе алгоритма сопровождения Лукаса-Канаде.

В одном варианте реализации устройство дополнительно содержит один или более инерциальных датчиков, и упомянутый по меньшей мере один процессор выполнен с возможностью использования данных от этих инерциальных датчиков вместе с захваченными изображениями объекта для оценки местоположений модуля сканирования.

В одном варианте реализации упомянутый по меньшей мере один процессор выполнен с возможностью наложения текстур на поверхностной сетке объекта посредством: проверки, из каких местоположений модуля сканирования каждая грань поверхностной сетки является видимой или невидимой, и текстурирования каждой видимой или невидимой грани поверхностной сетки посредством проецирования на нее соответствующего одного из захваченных изображений объекта. Кроме того, упомянутый по меньшей мере один процессор дополнительно выполнен с возможностью, если две или более видимые или невидимые грани поверхностной сетки текстурированы из одного захваченного изображения объекта, коррекции неоднородностей цвета между соседними гранями поверхностной сетки.

Устройство может быть портативным или мобильным устройством, или отдельным персональным компьютером (PC), или может быть реализовано с использованием технологии облачной обработки.

Согласно второму аспекту, представлен способ реконструкции 3D-модели объекта. Этот способ состоит в следующем. Сначала объект сканируют посредством модуля сканирования вдоль траектории вокруг объекта и захватывают изображения объекта из разных точек на этой траектории. Захваченные изображения затем сохраняют в блоке памяти. Далее по меньшей мере один процессор используют для: оценки во время сканирования объекта местоположения модуля сканирования, соответствующего каждому из захваченных изображений; сохранения оцененных местоположений модуля сканирования в блоке памяти; уточнения, после завершения сканирования объекта, оцененных местоположений модуля сканирования, сохраненных в блоке памяти, с использованием информации о начальной и конечной точках траектории, и сохранения уточненных местоположений модуля сканирования в блоке памяти; конструирования карты глубины, соответствующей каждому из уточненных местоположений модуля сканирования и каждому из захваченных изображений; объединения всех карт глубины для генерирования 3D-представления объекта; создания поверхностной сетки объекта на основе 3D-представления; наложения текстур на поверхностной сетке объекта для реконструкции 3D-модели объекта; и сохранения 3D-модели объекта в блоке памяти. Наконец, 3D-модель объекта отображают на модуле отображения.

Согласно третьему аспекту, предоставлена система для реконструкции 3D-модели объекта. Эта система содержит: модуль сканирования, модуль памяти, модуль оценки местоположения, модуль уточнения местоположения, модуль конструирования карты глубины, модуль объединения карт глубины, модуль создания поверхностной сетки, модуль наложения текстур и модуль отображения. Модуль сканирования выполнен с возможностью сканирования объекта вдоль траектории вокруг объекта и захвата изображений объекта из разных точек этой траектории. Модуль хранения выполнен с возможностью сохранения захваченных изображений объекта. Модуль оценки местоположения выполнен с возможностью оценки во время сканирования объекта местоположений модуля сканирования на основе сохраненных захваченных изображений и передачи оцененных местоположений модуля сканирования в модуль памяти для их сохранения. Модуль уточнения местоположения выполнен с возможностью уточнения после завершения сканирования объекта оцененных местоположений модуля сканирования, сохраненных в модуле памяти, с использованием информации о начальной и конечной точках траектории и передачи уточненных местоположений модуля сканирования в модуль памяти для их сохранения. Модуль конструирования карты глубины выполнен с возможностью конструирования карты глубины, соответствующей каждому из уточненных местоположений модуля сканирования и каждому из захваченных изображений. Модуль объединения карт глубины выполнен с возможностью объединения всех карт глубины, тем самым генерируя 3D-представление объекта. Модуль создания поверхностной сетки выполнен с возможностью создания поверхностной сетки объекта на основе 3D-представления. Модуль наложения текстур выполнен с возможностью наложения текстур на поверхностной сетке объекта для реконструкции 3D-модели объекта и передачи 3D-модели объекта в модуль памяти для ее сохранения. Модуль отображения выполнен с возможностью отображения 3D-модели объекта.

Каждый из вышеуказанных модулей системы может быть реализован посредством одного или более процессоров в зависимости от конкретных применений.

Эта система может быть интегрирована в портативное или мобильное устройство или единственный PC, или может быть реализована с использованием технологии облачной обработки.

Другие признаки и преимущества данного изобретения будут очевидны после прочтения нижеследующего подробного описания и анализа сопроводительных чертежей.

Краткое описание чертежей

Сущность данного изобретения пояснена ниже со ссылкой на сопроводительные чертежи, на которых:

Фиг. 1 показывает иллюстративное применение данного изобретения;

Фиг. 2 показывает функциональную блок-схему всего алгоритма 3D-реконструкции;

Фиг. 3 показывает в общем виде функциональную блок-схему алгоритма оценки местоположения камеры;

Фиг. 4 показывает функциональную блок-схему алгоритма оценки местоположения камеры для каждого кадра;

Фиг. 5 показывает функциональную блок-схему алгоритма разреженного выравнивания изображений (sparse image alignment - SIA);

Фиг. 6 показывает функциональную блок-схему алгоритма разреженного выравнивания характерных точек (sparse feature alignment - SFA);

Фиг. 7 показывает функциональную блок-схему алгоритма локальной групповой коррекции (local bundle adjustment - LBA);

Фиг. 8 показывает функциональную блок-схему алгоритма обновления фильтра глубины;

Фиг. 9 показывает функциональную блок-схему алгоритма уточнения местоположения камеры;

Фиг. 10 показывает функциональную блок-схему алгоритма оценки карты глубины;

Фиг. 11 показывает функциональную блок-схему алгоритма объединения глубин;

Фиг. 12 показывает функциональную блок-схему алгоритма реконструкции поверхности;

Фиг. 13 показывает функциональную блок-схему алгоритма наложения текстур;

Фиг. 14 показывает функциональную блок-схему алгоритма проверки видимости грани с использованием z-буфера;

Фиг. 15 показывает функциональную блок-схему алгоритма маркировки грани;

Фиг. 16 показывает функциональную блок-схему алгоритма заполнения дырок;

Фиг. 17 показывает функциональную блок-схему алгоритма генерирования атласа текстур и параметризации; и

Фиг. 18 показывает принципиальную схему мобильного устройства, в котором могут быть реализованы вышеупомянутые алгоритмы.

Осуществление изобретения

Различные варианты реализации данного изобретения далее описаны более подробно со ссылкой на приложенные чертежи. Однако, данное изобретение может быть осуществлено во многих других формах и не должно толковаться как ограниченное какой-либо определенной структурой или функцией, представленной в нижеследующем описании. Напротив, эти варианты реализации приведены для обеспечения подробности и полноты описания данного изобретения. Согласно данному описанию, специалистам в данной области техники будет очевидно, что объем данного изобретения охватывает любой вариант реализации данного изобретения, который описан здесь, независимо от того, реализован ли этот вариант реализации независимо или совместно с любым другим вариантом реализации данного изобретения. Например, устройство и способ, описанные здесь, могут быть реализованы на практике с использованием любого количества вариантов реализации, представленных здесь. Кроме того, следует понимать, что любой вариант реализации данного изобретения может быть реализован с использованием одного или более элементов и/или этапов, представленных в приложенной формуле изобретения.

Кроме того, один или более вариантов реализации, описанных здесь, могут быть реализованы посредством одной или более программ или команд, которые являются исполняемыми посредством одного или более процессоров. Эти программы или команды могут переноситься в машиночитаемом носителе. Примеры машиночитаемых носителей могут включать в себя, но не ограничиваясь этим, постоянные запоминающие устройства, такие как накопители на жестких дисках, на портативных устройствах. Мобильное устройство может быть любым устройством, обычно достаточно малым, чтобы быть портативным, которое снабжено одним или более процессорами или другими вычислительными блоками. Другие примеры компьютерных носителей информации включают в себя портативные запоминающие устройства, такие как CD- или DVD-диски, флэш-память или твердотельная память (как на многих сотовых телефонах или устройствах потребительской электроники) и магнитная память. Компьютеры, терминалы, сетевые устройства (например, мобильные устройства, такие как сотовые телефоны), все они являются примерами машин и устройств, которые используют процессоры, память и команды, хранящиеся на машиночитаемых носителях. Вдобавок, варианты реализации могут быть реализованы в виде компьютерных программ или используемой компьютерами несущей среде, способной переносить такую программу.

Слово «иллюстративный» используется здесь в смысле «используемый в качестве примера или иллюстрации». Любой вариант реализации, описанный здесь в качестве «иллюстративного», не должен обязательно рассматриваться в качестве предпочтительного или имеющего преимущество перед другими вариантами реализации.

Кроме того, термины, связанные с направлением, такие как «по часовой стрелке», «против часовой стрелки» и т.д., используются со ссылкой на ориентацию описываемой (описываемых) фигуры (фигур). Поскольку компоненты вариантов реализации данного изобретения могут быть ориентированы по-разному, термины, связанные с направлением, используются в целях иллюстрации и не предполагают никакого ограничения. Следует понимать, что могут быть использованы другие варианты реализации, и могут быть выполнены структурные или логические изменения, не выходя за рамки объема данного изобретения.

Фиг. 1 показывает иллюстративное применение данного изобретения. Предположим, что пользователь 100 желает реконструировать 3D-модель интересующего объекта 102, который для примера показан в виде автомобиля. Процесс 3D-реконструкции начинают со сканирования объекта 102 посредством модуля сканирования. В некоторых вариантах реализации модуль сканирования может быть реализован в виде монокулярной камеры или многовидовой стереокамеры, или датчика глубины, или их комбинации. Пользователь 100 может расположить объект 102 на подставке 104 для удобства. Во время сканирования объекта 102 камера портативного устройства 106, такого как, например, мобильный телефон, должна быть всегда направлена на объект 102. В качестве примера пользователь 100 может перемещаться по траектории 108, при этом направляя камеру на объект 102. Хотя траектория 108 показана в виде круговой траектории против часовой стрелки, специалистам в данной области техники должно быть ясно, что этот тип траектории не представляет собой никакого ограничения для данного изобретения, и при необходимости могут быть использованы другие типы траекторий. Например, траектория 108 может быть замкнутым или незамкнутым контуром, а также может иметь круговую или произвольную форму. Кроме того, пользователь 100 может перемещаться в направлении по часовой стрелке, направлении против часовой стрелки или как в направлении по часовой стрелке, так и в направлении против часовой стрелки, во время сканирования объекта 102 в зависимости от конкретных применений.

После завершения сканирования объекта 102 (которое, например, происходит, когда траектория 108 становится замкнутой), пользователь 100 должен остановить захват изображений объекта 102. После остановки захвата выполняют этап постобработки с использованием специального программного обеспечения, установленного на устройстве 106. Результатом этапа постобработки является текстурированная сетка (которая также называется здесь 3D-моделью объекта 102). Операция постобработки будет описана более подробно ниже. Текстурированную сетку сохраняют на устройстве 106 в некотором стандартном формате, и ее можно дополнительно использовать любым подходящим способом.

Фиг. 2 объясняет процесс 3D-реконструкции. Этот процесс может быть разделен на два основных этапа: этап в реальном времени и этап постобработки (которые оба показаны с использованием пунктирных линий). Этап в реальном времени начинается с подэтапа 200, на котором выполняют захват изображений, как показано выше со ссылкой на Фиг. 1. Эти изображения затем используют на подэтапе 202 для оценки местоположений камеры в режиме реального времени. Каждое местоположение камеры может быть охарактеризовано посредством набора разных параметров. Например, такой набор параметров может включать в себя координаты камеры и ориентацию камеры в пространстве. Ориентация камеры может быть задана посредством углов рыскания, наклона и/или крена. Подэтап 202 может быть выполнен с использованием системы одновременной навигации и составления карты (Simultaneous Localization and Mapping - SLAM). Использование координат и ориентации камеры гарантирует, что система SLAM оценивает траекторию камеры, а также ее ориентацию в каждый момент времени. Такой подход позволяет работать при любых условиях съемки, включая, но не ограничиваясь этим, перемещение, вращение, встряхивающие движения и т.д. Этап в реальном времени обычно выполняют на CPU устройства 106.

После завершения этапа в реальном времени процесс переходит к этапу постобработки. Этап постобработки выполняют как на CPU, так и на GPU устройства 106, и этот этап обычно занимает несколько секунд.

Известно, что система SLAM обычно приводит к существенному дрейфу траектории. Например, замкнутая круговая траектория обычно оценивается в качестве незамкнутой дуги. Для улучшения точности оцененных местоположений камеры (как траектории, так и ориентации камеры), используют подэтап 204, на котором уточняют оцененные местоположения камеры. С этой целью используют всю доступную информацию в отношении начальной и конечной точек траектории.

Таким образом, местоположения камеры оценивают в два этапа способом «от грубого к точному». Грубую оценку выполняют во время сканирования объекта 102 с использованием системы SLAM, а оцененные местоположения камеры уточняют на основе информации о начале и конце траектории для обеспечения компенсации смещения, вызванного особенностями конфигурации системы SLAM.

На основе уточненных местоположений камеры и захваченных изображений на подэтапе 206 конструируют карты глубины. Такие карты глубины из разных местоположений камеры объединяют на подэтапе 208. Результатом такого объединения является 3D-представление объекта 102, которое используют на подэтапе 210 для создания поверхностной сетки (также называемой здесь реконструкцией поверхности). Далее на подэтапе 212 накладывают текстуры на поверхностную сетку. Результатом такого отображения является текстурированная сетка (или 3D-модель) 214, которая характеризует объект 102. Результирующую текстурированную сетку показывают на дисплее устройства 106.

Таким образом, быструю реконструкцию 3D-модели обеспечивают за счёт высокоскоростного извлечения карты глубины и объединения карт глубины, реализованных с использованием CPU и GPU устройства 106. Высокое качество результирующей 3D-модели обеспечивают за счёт тщательной реконструкции поверхности и точного наложения текстуры.

Каждый из вышеуказанных подэтапов процесса 3D-реконструкции будет теперь описан более подробно со ссылкой на Фиг. 3-17.

Фиг. 3 показывает в общем виде алгоритм оценки местоположения камеры (подэтап 202).

Подобный подход был предложен в следующем документе - Christian Forster, Matia Pizzoli и Davide Scaramuzza. SVO: Fast semi-direct monocular visual odometry. In Robotics and Automation (ICRA), 2014 IEEE International Conference, страницы 15-22, IEEE, 2014. Главный недостаток алгоритма Форстера состоит в том, что он неудовлетворительно функционирует в случае быстрого вращения вокруг объекта и большого перекрытия. Алгоритм Форстера был разработан для микролетательных устройств (таких как квадрокоптер), которые перемещаются главным образом поступательно.

Алгоритм оценки местоположения камеры начинается с использования первого изображения 300 для инициализации 302 карты. Инициализация 302 карты означает инициализацию оценки местоположения камеры следующим образом. Мировая система координат задаётся совпадающей с системой координат первого изображения. Извлекают ключевые точки из первого изображения 300 с использованием алгоритма FAST, известного из уровня техники (см Edward Rosten и Tom Drummond, “Fusing points and lines for high performance tracking”, In Computer Vision, 2005, ICCV 2005, Tenth IEEE International Conference, том 2, страницы 1508-1515, IEEE, 2005). Назначают среднюю глубину сцены для каждой найденной ключевой точки. Эти ключевые точки вместе с назначенными глубинами сохраняют в базе 304 данных карт. Эта база данных хранит все ключевые точки, оцененные посредством алгоритма FAST. Все ключевые точки в базе данных карт сохраняют в мировой системе координат, которая является той же, что и система координат первого изображения 300.

Все последовательные изображения 306 (которые захватывают посредством камеры устройства 106) используют вместе с картами из базы 304 данных для принятия решения, какие кадры (или изображения) являются ключевыми кадрами (которые используют в целях сопровождения и 3D-реконструкции). Дополнительно местоположения камеры для этих ключевых кадров оценивают 308 вместе с обновлением карт в базе 304 данных. Результатом подэтапа 202 являются ключевые кадры 310 с оцененными местоположениями камеры.

Фиг. 4 объясняет обработку нового изображения 404 в алгоритме оценки местоположения камеры. В алгоритме оценки местоположения камеры используют подход системы SLAM, показанный на Фиг. 3. Оценку траектории камеры, а также ее ориентации в каждый момент времени выполняют с использованием нового подхода (Фиг. 4), включающего в себя этап оценки перемещения и этап проверки (которые оба показаны с использованием пунктирных линий).

Этап оценки перемещения реализуется следующим образом. На подэтапе 400 (который называют разреженным выравниванием изображений) оценивают местоположение камеры, соответствующее новому изображению 404, на основе ключевых точек из карты, сохраненной в базе 304 данных. На этом подэтапе точки из карты проецируют на изображение 404, и алгоритм непосредственного выравнивания изображения (Direct Image Alignment) используют для оценки местоположения камеры, соответствующего изображению 404.

Затем изображение 404 и соответствующее ему местоположение камеры используют на подэтапе 402 (который называют разреженным выравниванием характерных точек). На этом подэтапе точки из карты проецируют на изображение 404, и алгоритм сопровождения Лукаса-Канаде (Lucas Kanade tracker - LKT), известное из уровня техники (см Simon Baker и Iain Matthews, “Lucas-kanade 20 years on: A unifying framework”, International journal of computer vision, 56(3):221-255, 2004) используют для уточнения местоположения каждой точки на изображении. LKT сопровождает фрагмент (прямоугольную область) вокруг проекции точки с использованием метода градиентного спуска.

Далее обработка переходит к подэтапу 408 (который называют локальной групповой коррекцией), где используют изображение 404, соответствующее ему местоположение камеры и список точек карты с уточненными местоположениями. Местоположение камеры вычисляют на основе начальной аппроксимации, полученной на подэтапе 400, координат точек, сохраненных в базе 304 данных карт, и уточненных местоположений камеры, полученных на подэтапе 402. Это является классической задачей внешней калибровки (Perspective-n-Points - PnP). Такое оцененное местоположение камеры назначают для изображения 404 и используют во всех других частях алгоритма 202 оценки местоположения камеры без дополнительных изменений. После уточнения местоположения мировые 3D-координаты точек карты также уточняют.

Затем новое изображение 404 устанавливают в качестве последнего изображения 406 камеры для дальнейшего использования на подэтапах 400 и 402.

После этого новое изображение 404 и соответствующее ему местоположение камеры сохраняют в очереди 410 изображений. Изображения из очереди изображений затем используют на этапе проверки.

На этапе проверки каждое поступающее изображение (такое как изображение 404) проверяют на предмет того, является ли оно ключевым кадром или нет (подэтап 412).

Если изображение 404 является ключевым кадром, то его сохраняют в списке ключевых кадров 310 с оцененными местоположениями и используют на подэтапе 414 для извлечения характерных точек из изображения 404.

Далее выполняют подэтап 420, на котором создают фильтры глубины с использованием оценки глубины, равной текущей средней глубине сцены для каждой характерной точки, и сохраняют их в списке 422 активных фильтров глубины для дополнительного использования. Примеры использования таких фильтров глубины описаны в “Video-based, real-time multi-view stereo”, George Vogiatzis and Carlos Hernandez. Image and Vision Computing, 29(7):434-441, 2011.

Для обеспечения сканирования на 360 градусов фильтры глубины продлевают из предшествующих ключевых кадров. Фрагменты, связанные с фильтрами глубины, которые еще не сошлись, выравнивают на последнем ключевом кадре, и новый фрагмент связывают фильтром глубины для каждого фильтра, в то время как состояние фильтра глубины поддерживают неизменным. Это обеспечивает возможность схождения фрагментов в случае быстрого сканирования, когда фрагменты изменяются быстрее, чем сходятся фильтры глубины.

Если изображение 404 не является ключевым кадром, то обработка переходит к подэтапу 416 (который называют обновлением фильтров глубины). На этом подэтапе используют поиск вдоль эпиполярной линии для выравнивания характерной точки из списка 422 с точкой на новом изображении. Если это выравнивание является успешным, то глубину точки вычисляют с использованием технологий триангуляции. Эту глубину регистрируют в фильтре глубины соответствующей точки.

Затем каждый фильтр глубины проверяют на сходимость (подэтап 418). Если фильтр глубины сошёлся (т.е. изменение глубины является достаточно малым), то соответствующую точку добавляют в базу 304 данных карт и исключают из списка 422 активных фильтров глубины.

Этапы оценки перемещения и проверки выполняют в отношении каждого из захваченных изображений. После обработки всех изображений, полный список ключевых кадров 310 с оцененными местоположениями является доступным для использования на следующем подэтапе 204 (т.е. уточнение местоположения камеры).

Фиг. 5 объясняет подэтап 400 (т.е. разреженное выравнивание изображений).

Сначала извлекают 500 видимые точки для последнего изображения 406 камеры из базы 304 данных карт. Эти точки фильтруют для обеспечения сканирования на 360 градусов. При таких условиях должны быть приняты специальные меры для исключения следующих точек:

- Точки, которые были захвачены в существенно разных направлениях просмотра. В этом случае их изображения сильно отличаются от исходного фрагмента, и сопровождение не может быть надежным.

- Точки, которые перекрыты другими точками. Для фильтрации таких точек используют технологию z-буфера.

Затем фрагменты всех отфильтрованных точек объединяют 502 в один вектор характерных точек. Этот вектор характерных точек затем сопровождают 504 с использованием LKT в новом изображении 404 и получают 506 местоположение камеры нового изображения от средства сопровождения.

Фиг. 6 объясняет подэтап 402 (т.е. разреженное выравнивание характерных точек).

Сначала извлекают 600 видимые точки для последнего изображения 406 камеры из базы 304 данных карт, учитывая оцененное местоположение камеры. Создают 602 фрагмент независимо для каждой точки. Каждый фрагмент сопровождают 604 с использованием LKT в новом изображении 404 и получают 606 для каждой точки обновленное местоположение каждой точки на новом изображении.

Фиг. 7 объясняет подэтап 408 (т.е. локальную групповую коррекцию).

Местоположение 506 камеры нового изображения обновляют 700 с использованием процедуры PnP на основе начальной аппроксимации (полученной на подэтапе 400) и обновленного местоположения 606 каждой точки на новом изображении (полученного на подэтапе 402). Таким образом, получают 706 обновленное местоположение камеры нового изображения. Обновленное местоположение камеры назначают для нового изображения 404 и используют во всех других частях алгоритма 202 оценки местоположения камеры без дополнительных изменений.

Затем точки, которые использовались на подэтапе 402 несколько раз, выбирают 702 для оптимизации структуры. Используют технологию групповой коррекции для обновления 704 мировых 3D-координат этих точек на основе обновленного местоположения 606 каждой точки на изображениях и обновленных местоположений 706 камеры. Такие обновленные мировые 3D-координаты точек затем сохраняют в базе 304 данных карт.

Фиг. 8 объясняет подэтап 416 (т.е. обновление фильтров глубины).

Для каждого изображения неключевого кадра из очереди 410 обновляют фильтры глубины. Для каждого фильтра глубины из списка 422 вычисляют эпиполярную линию на новом изображении. Затем выполняют линейный поиск 800 вокруг оценки глубины вдоль этой эпиполярной линии. Далее LKT находит 802 оптимальное выравнивание точек из фильтра глубины в окрестности минимума поиска с использованием эпиполярной линии. Если LKT не может выполнить это, то тогда фильтр глубины обновляют с использованием флага 808 ошибки. Если LKT достигает успеха в нахождении оптимального выравнивания точек, то тогда находят глубину с использованием процедуры 804 триангуляции. Эту глубину используют для обновления 806 фильтра глубины. Обновление фильтра глубины используют для нахождения нового математического ожидания и дисперсии значения глубины для фильтра глубины.

Фиг. 9 объясняет подэтап 204 (т.е. уточнение местоположения камеры).

К этому моменту пользователем завершен этап в реальном времени, состоящий из подэтапов 200 и 202, и процесс 3D-реконструкции переходит к этапу постобработки, реализуемому с использованием CPU и GPU устройства 106.

Подэтап 204 реализуют с использованием CPU устройства 106. Местоположения камеры, полученные посредством системы SLAM, могут содержать существенное смещение и нуждаются в уточнении перед дополнительной обработкой. Это смещение может быть выражено в виде систематической ошибки в оценке координат x, y, z и углов рыскан