ТРЕХМЕРНЫЙ СКАНЕР С ОБРАТНОЙ СВЯЗЬЮ ПО СБОРУ ДАННЫХ
THREE-DIMENSIONAL SCANNER WITH DATA COLLECTION FEEDBACK

Область техники
[0001] Настоящее изобретение относится, в целом, к трехмерным сканерам и, в частности, к трехмерным сканерам с обратной связью по сбору данных.
Уровень техники
[0002] Трехмерные (3D) сканеры являются устройствами, которые создают 3D-модель поверхности физического объекта. Трехмерные сканеры применяются во многих областях, в том числе в промышленном проектировании и изготовлении, компьютеризированной анимации, науке, образовании, медицине, искусстве, проектировании и т.д.
Сущность изобретения
[0003] В некоторых обстоятельствах предпочтительно, чтобы 3D-сканер был ручным. Например, ручные 3D-сканеры могут революционизировать археологические полевые работы. Рассмотрим задачу исследования структуры хрупкого археологического образца, обнаруженного в далеком уголке земного шара. Без ручного 3D-сканера может потребоваться раскопать образец, запаковать его в полевых условиях, перевезти по пересеченной местности, и исследовать в лаборатории. Этот процесс является трудным, занимает много времени, и существует опасность повредить образец. В случае ручного 3D-сканера, форма объекта может быть отсканирована в полевых условиях, что уменьшает или устраняет эти проблемы.
[0004] Археология является только одним примером. Существуют многие другие ситуации, в которых полезна возможность получать 3D-модель объекта без нахождения в лабораторных или промышленных условиях. В качестве другого примера, существует традиция заказывать официальный бюст каждого президента США. Бюсты предыдущих президентов изготавливали с использованием гипса, и при этом требовалось, чтобы президент дышал через соломинки в его ноздрях, в то время как тонкий слой гипса высыхал на его лице. Напротив, захват данных для бюста Барака Обамы завершился за пару минут с использованием пары 3D-сканеров.
[0005] Однако, некоторые проблемы все же существуют. Например, одной из проблем, связанных с 3D-сканерами, является то, что пользователю трудно в реальном времени узнавать, собрал ли он или она достаточно данных для получения качественной 3D-реконструкции. Пользователь может вернуться в лабораторию, которая может находиться, например, за тысячи миль от места археологических изысканий, только чтобы понять, что эти данные имеют пропуски, и что полная 3D-модель поверхности не может быть реконструирована. В результате, часто требуется значительное время, чтобы обучить пользователя правильно использовать 3D-сканер, что ограничивает применимость доступных в настоящее время 3D-сканеров.
[0006] Вышеупомянутые недостатки и другие проблемы, связанные с 3D-сканерами, устраняются раскрытыми устройствами и способами. В некоторых вариантах осуществления, это устройство является 3D-сканером. В некоторых вариантах осуществления, это устройство является портативным 3D-сканером. В некоторых вариантах осуществления, это устройство является ручным 3D-сканером. В некоторых вариантах осуществления, это устройство имеет дисплей, который обеспечивает обратную связь (например, при сканировании объекта), указывающую на качество или количество полученных данных (например, 3D-данных). В некоторых вариантах осуществления, это устройство имеет чувствительный к касаниям дисплей (также известный как «сенсорный экран» или «дисплей с сенсорным экраном»). В некоторых вариантах осуществления, это устройство имеет графический пользовательский интерфейс (GUI), один или более процессоров, память и один или более модулей, программ, или наборов команд, запоминаемых в памяти, для выполнения множественных функций. Выполняемые команды для выполнения этих функций могут быть включены в непереходной компьютерно-читаемый носитель данных или другой компьютерный программный продукт, выполненный с возможностью выполняться одним или более процессорами.
[0007] Согласно некоторым вариантам осуществления, способ выполняется в трехмерном (3D) сканере, который имеет связь с дисплеем. 3D-сканер включает в себя один или более оптических датчиков. Способ включает в себя этап, на котором сканируют, с использованием одного или более оптических датчиков, объект, имеющий поверхность, причем этап сканирования генерирует данные, соответствующие 3D-форме по меньшей мере части поверхности объекта. Способ дополнительно включает в себя этап, на котором генерируют, с использованием этих данных, 3D-реконструкцию по меньшей мере части формы поверхности объекта. Способ дополнительно включает в себя этап, на котором обеспечивают, для дисплея, предварительное изображение 3D-реконструкции по меньшей мере части формы поверхности объекта. Способ дополнительно включает в себя этап, на котором обеспечивают, для дисплея, для визуализации с предварительным изображением 3D-реконструкции по меньшей мере части формы поверхности объекта, указание на по меньшей мере одно из количества или качества данных, соответствующих 3D-форме по меньшей мере части поверхности объекта.
[0008] Согласно некоторым вариантам осуществления, трехмерный (3D) сканер включает в себя корпус, один или более лазеров, помещенных в корпус, один или более оптических датчиков, помещенных в корпус, и один или более процессоров, помещенных в корпус. Один или более процессоров имеют связь с одним или более лазерами и одним или более оптическими датчиками. 3D-сканер дополнительно включает в себя память, запоминающую команды, которые, при выполнении одним или более процессорами, заставляют 3D-сканер генерировать данные, соответствующие 3D-форме по меньшей мере части поверхности объекта, посредством повторного выполнения операций проецирования, с использованием одного или более лазеров, структурированного света по направлению к поверхности объекта; и, при проецировании структурированного света по направлению к поверхности объекта, получения, с использованием одного или более оптических датчиков, изображения поверхности объекта.
[0009] Согласно некоторым вариантам осуществления, трехмерный (3D) сканер включает в себя один или более источников света; один или более оптических датчиков; множество процессоров, имеющих связь с одним или более источниками света и одним или более оптическими датчиками; и память. Память запоминает команды, которые, при выполнении множеством процессоров, заставляют 3D-сканер генерировать данные, соответствующие 3D-форме по меньшей мере части поверхности объекта, посредством повторного выполнения операций: проецирования, с использованием одного или более источников света, структурированного света по направлению к поверхности объекта; и, при проецировании структурированного света по направлению к поверхности объекта, получения, с использованием одного или более оптических датчиков, изображения поверхности объекта. 3D-сканер включает в себя систему охлаждения, содержащую единственный элемент из металла, термически связанный с одним или более источниками света, одним или более оптическими датчиками и множеством процессоров.
[0010] Согласно некоторым вариантам осуществления, способ выполняется в 3D-сканере, который включает в себя один или более оптических датчиков. Способ включает в себя этап, на котором сканируют, с использованием одного или более оптических датчиков, объект, имеющий поверхность. Этап сканирования генерирует первые данные, соответствующие трехмерной (3D) форме поверхности объекта. Способ дополнительно включает в себя, для каждой части из множества соответствующих частей поверхности объекта, этап, на котором определяют, соответствует ли количество или качество первых данных заданному порогу, который соответствует количеству или качеству данных, необходимых для реконструкции формы части поверхности объекта с заданной точностью. Способ дополнительно включает в себя, после этапа определения, для каждой соответствующей части из множества частей поверхности объекта, соответствует ли количество или качество первых данных заданному порогу, который соответствует количеству или качеству данных, необходимых для реконструкции формы части поверхности объекта с заданной точностью, этап, на котором дополнительно сканируют объект с использованием одного или более оптических датчиков. Этап дополнительного сканирования генерирует вторые данные, соответствующие трехмерной форме поверхности объекта. Способ дополнительно включает в себя этап, на котором отбрасывают по меньшей мере часть вторых данных, причем отброшенная часть вторых данных соответствует соответствующим частям поверхности объекта, для которых количество или качество первых данных соответствовало заданному порогу.
[0011] Согласно некоторым вариантам осуществления, 3D-сканер включает в себя один или более источников света, один или более оптических датчиков, необязательно, дисплей, один или более процессоров, и память, запоминающую одну или более программ; причем одна или более программ выполнены с возможностью выполняться одним или более процессорами, и одна или более программ включают в себя команды для выполнения или обусловливания выполнения операций любого из способов, описанных здесь. Согласно некоторым вариантам осуществления, компьютерно-читаемый носитель данных имеет запомненные в нем команды, которые, при выполнении 3D-сканером с одним или более источниками света, одним или более оптическими датчиками, необязательно, дисплеем, и одним или более процессорами, заставляют 3D-сканер выполнять или обусловливать выполнение операций любого из способов, описанных здесь. Согласно некоторым вариантам осуществления, графический пользовательский интерфейс на 3D-сканере с одним или более источниками света, одним или более оптическими датчиками, необязательно, дисплеем, одним или более процессорами, и памятью, запоминающей одну или более программ, включает в себя один или более элементов, отображаемых в любом из способов, описанных здесь, которые обновляются в ответ на входные данные, описанные в любом из способов, описанных здесь. Согласно некоторым вариантам осуществления, электронное устройство включает в себя: один или более источников света, один или более оптических датчиков, необязательно, дисплей, и средство для выполнения или обусловливания выполнения операций любого из способов, описанных здесь.
[0012] Таким образом, 3D-сканеры снабжены улучшенными способами и интерфейсами для обеспечения обратной связи по сбору данных во время получения данных 3D-сканирования, в результате чего увеличивается эффективность, результативность, и удовлетворенность пользователей такими устройствами.
Краткое описание чертежей
[0013] Для лучшего понимания различных описанных вариантов осуществления необходимо обратиться к Описанию Вариантов осуществления, приведенному ниже, в связи с нижеследующими чертежами, в которых одинаковые ссылочные позиции относятся к соответствующим частям на всех чертежах, на которых:
[0014] Фиг. 1A-1B показывают различные виды 3D-сканера согласно некоторым вариантам осуществления.
[0015] Фиг. 2 является блок-схемой последовательности операций способа анализа 3D-данных от 3D-сканера, выполняемого при получении 3D-данных, согласно некоторым вариантам осуществления.
[0016] Фиг. 3 является блок-схемой 3D-сканера согласно некоторым вариантам осуществления.
[0017] Фиг. 4A-4F показывают иллюстративные пользовательские интерфейсы для обеспечения обратной связи по сбору 3D-данных на 3D-сканере согласно некоторым вариантам осуществления.
[0018] Фиг. 5 является механическим чертежом, показывающим поперечное сечение 3D-сканера, включающего в себя систему охлаждения, согласно некоторым вариантам осуществления.
[0019] Фиг. 6A-6B показывают блок-схему последовательности операций способа обеспечения обратной связи по сбору 3D-данных от 3D-сканера согласно некоторым вариантам осуществления.
[0020] Фиг. 7 показывает блок-схему последовательности операций способа получения и запоминания данных от 3D-сканера согласно некоторым вариантам осуществления.
Описание вариантов осуществления изобретения
[0021] Как описано далее, некоторые варианты осуществления обеспечивают 3D-сканер, который обеспечивает обратную связь по сбору данных. В некоторых вариантах осуществления, в то время как пользователь сканирует объект для сбора данных, 3D-сканер отображает предварительное изображение 3D-реконструкции объекта, а также указание на качество или количество данных (например, на встроенном дисплее на 3D-сканере). Предварительное изображение 3D-реконструкции и указание на количество или качество данных обновляются непрерывно в реальном времени, когда пользователь получает дополнительные данные. В некоторых вариантах осуществления, указание на качество или количество данных накладывается на 3D-реконструкцию объекта. Например, 3D-реконструкция объекта появляется в виде поверхности, и цвет этой поверхности представляет количество или качество данных. Пользователь может, таким образом, видеть на дисплее, где в данных имеются пропуски. Например, когда вообще нет данных для части объекта, в некоторых вариантах осуществления предварительное изображение 3D-реконструкции вообще не показывает никакой поверхности для этой области объекта. Когда имеются некоторые данные для части объекта, но их недостаточно для формирования адекватной реконструкции этой части объекта, 3D-реконструкция этой части объекта визуализируется красным цветом. Таким образом, пользователь может продолжать получать данные до тех пор, пока предварительное изображение полностью не заполнится данными с количеством или качеством, достаточным для полной реконструкции 3D-модели объекта. В некоторых вариантах осуществления, достаточность количества или качества данных для полной реконструкции 3D-модели объекта указывается отличным цветом. В некоторых вариантах осуществления отличным цветом является зеленый цвет.
[0022] Таким образом, пользователь может определять, что он или она собрали достаточно данных, а также может определять, какие части объекта требуют сбора дополнительных данных. Последний признак позволяет пользователю сфокусироваться на сканировании тех частей объекта, которые требуют дополнительных данных. По сравнению с раскрытыми вариантами осуществления, предыдущие системы и способы 3D-сканирования требовали, чтобы пользователь собирал данные без обратной связи, достаточной для того, чтобы узнать, что собраны достаточные данные. В результате, на всякий случай пользователи обычно получали избыточное количество данных, что приводило к избыточному использованию памяти сканера и выработке теплоты внутри сканера. Проблема избыточного использования памяти и выработки теплоты затрудняла создание действительно автономного ручного 3D-сканера (например, ручного 3D-сканера, выполненного с возможностью генерировать по меньшей мере начальную 3D-реконструкцию), поскольку задачи, связанные с памятью и выработкой теплоты, делегировались, обычно посредством проводного соединения, внешнему компьютеру. Таким образом, раскрытые варианты осуществления улучшают 3D-сканеры посредством обеспечения эффективного сбора данных, что, в свою очередь, обеспечивает меньший размер 3D-сканера и его портативность.
[0023] Дополнительно, некоторые варианты осуществления настоящего раскрытия обеспечивают ручные 3D-сканеры, выполненные с возможностью работать в условиях внешнего дневного света (например, получать отношение сигнал-шум, достаточное для реконструкции 3D-формы объекта), с лазерами, работающими как лазеры класса 1 (например, безопасные при любых условиях обычного использования). Обычный подход для того, чтобы убедиться, что лазеры работают в диапазоне класса 1, состоит в том, чтобы поместить лазер в большой корпус таким образом, чтобы к моменту выхода света из корпуса свет ослаблялся достаточно для того, чтобы он считался относящимся к классу 1. Этот подход не работает для ручных сканеров, поскольку ручные сканеры должны иметь относительно малый размер (например, меньший 30 см * 30 см * 30 см). Некоторые варианты осуществления настоящего раскрытия управляют своими источниками света как источниками света класса 1 посредством соответствующего выбора длительности импульса, максимальной мощности, частоты повторения, и/или коэффициента заполнения таким образом, чтобы лазерный свет относился к классу 1 на относительно малом расстоянии от лазера (например, 25 см).
[0024] Дополнительно, из-за способа получения 3D-данных (например, путем стробоскопического вывода света из достаточно мощного источника света, а также сбора и обработки многих изображений каждую секунду), выработка и удаление теплоты является одной из наибольших проблем при проектировании ручного 3D-сканера, выполненного с возможностью создавать предварительные изображения 3D-реконструкций объектов в реальном времени. При том, что важно поддерживать относительно низкую температуру, поддержание согласованной температуры (как в пространстве, так и во времени) является по меньшей мере столь же важным. Для этой цели, некоторые варианты осуществления обеспечивают систему охлаждения, содержащую единственный элемент из металла, термически связанный с источниками света, оптическими датчиками и процессорами сканера. Система охлаждения поддерживает различные компоненты сканера при согласованной и стабильной температуре посредством обеспечения термической связности между основными тепловыделяющими компонентами сканера. Таким образом, система охлаждения уменьшает время «нагрева», необходимое для достижения сканером стабильной температуры, позволяет обеспечить большую вычислительную мощность, и увеличивает интервал времени, в течение которого сканер может собирать данные.
[0025] Дополнительной проблемой при проектировании 3D-сканеров является то, что 3D-сканеры создают огромное количество данных во время сканирований. Некоторые варианты осуществления улучшают процесс запоминания данных от 3D-сканера посредством идентификации областей сканируемого объекта, для которых уже были собраны достаточные данные. Эти варианты осуществления затем отбрасывают некоторые или все данные, собранные для этих областей, когда сканирование продолжается. Таким образом, эти варианты осуществления уменьшают общее количество данных, собираемых при сканировании объекта, что улучшает устройство посредством уменьшения емкости памяти, необходимой для устройства, или, альтернативно, посредством обеспечения возможности использовать память устройства тогда, когда это наиболее необходимо, что имеет результатом 3D-реконструкции более высокого качества.
[0026] Теперь обратимся к вариантам осуществления, примеры которых показаны в прилагаемых чертежах. В нижеследующем описании, многочисленные конкретные детали изложены для обеспечения полного понимания различных описанных вариантов осуществления. Однако, специалистам в данной области техники будет понятно, что различные описанные варианты осуществления могут быть применены на практике без этих конкретных деталей. В других примерах, общеизвестные способы, процедуры, компоненты, схемы, и сети не описаны подробно, чтобы без необходимости не затруднять понимание изобретательских аспектов вариантов осуществления.
[0027] Фиг. 1А-1В показывают различные виды 3D-сканера 100 согласно некоторым вариантам осуществления. Сканер 100 включает в себя корпус 102 основного тела, ручку 108, и батарейный корпус 110 (например, который содержит батарею). В некоторых вариантах осуществления, 3D-сканер 100 является портативным, ручным сканером. Для этой цели, в некоторых вариантах осуществления 3D-сканер 100 имеет размеры, меньшие 30 см * 30 см * 30 см (например, помещается внутри коробки с размерами 30 см * 30 см * 30 см). В некоторых вариантах осуществления, 3D-сканер 100 является достаточно легким для того, чтобы человек мог переносить его одной рукой (например, 3D-сканер 100 весит около 2,5 кг).
[0028] В некоторых вариантах осуществления, корпус 102 основного тела может быть отделен от ручки 108. В некоторых вариантах осуществления, корпус 102 основного тела может быть установлен (например, без ручки 108 и батарейного корпуса 110) в отдельное устройство (например, робототехнический, моторизованный, сканирующий манипулятор) посредством установочных точек 112 (например, с установочной точки 112-а по установочную точку 112-с). Таким образом, 3D-сканер 100 может быть преобразован из ручного сканера в промышленный или лабораторный сканер.
[0029] В некоторых вариантах осуществления, 3D-сканер 100 генерирует 3D-модель объекта посредством проецирования пространственной структуры света (называемой здесь «структурированным светом») на поверхность объекта, и, в то время как пространственная структура света проецируется на поверхность объекта, получения, с использованием оптического датчика (например, камеры), изображения поверхности объекта. Для этой цели, корпус 102 основного тела вмещает один или более внутренних источников света (например, лазер 506 поверхностного излучения с вертикальным резонатором (VCSEL)), фиг. 5) и оптическую систему 104 источников. Один или более внутренних источников света проецируют свет стробоскопически (например, проецируют импульсный свет) с конкретной частотой через пространственно-структурированный слайд, внутренний по отношению к корпусу 102 основного тела (например, слайд 516, фиг. 5), через оптическую систему 104 источников на поверхность объекта. Изображения структурированного света, проецируемого на поверхность объекта, получают через оптическую систему 106 камеры, размещенную в корпусе 102 основного тела. Одна или более камер/датчиков (например, детекторов 502 с устройствами с зарядовой связью (CCD), фиг. 5) записывают изображения структурированного света, проецируемого на поверхность объекта. 3D-модель формы поверхности объекта может определяться искажениями структуры света, проецируемого на поверхность объекта (т.е., там, где искажения вызваны формой поверхности объекта), как более подробно описано в патенте США № 7768656, озаглавленном «System and Method for Three-Dimensional Measurement of the Shape of Material Objects» («Система и способ для трехмерного измерения формы материальных объектов»), который полностью включен в эту заявку по ссылке.
[0030] В некоторых вариантах осуществления, внутренние источники света являются лазерами. В некоторых вариантах осуществления, внутренние источники света являются лазерами поверхностного излучения с вертикальным резонатором (VCSEL). В некоторых вариантах осуществления, 3D-сканер 100 работает как источник света класса 1, что означает, что лазеры считаются относящимися к классу 1 везде за пределами корпуса 102 основного тела (т.е., как определено Разделом 1040 Свода 21 федеральных правил (CFR) по состоянию на дату подачи этого раскрытия).
[0031] Следует отметить, что в некоторых вариантах осуществления сканер 100 обеспечивает достаточное освещение поверхности объекта, так что изображения, получаемые в условиях внешнего дневного света, имеют отношение сигнал-шум, достаточное для реконструкции 3D-формы по меньшей мере части объекта (например, с точностью по меньшей мере 0,1 мм, 0,2 мм, 0,3 мм, 0,4 мм, или 0,5 мм; или, альтернативно, с разрешением 0,25 мм, 0,5 мм, 0,75 мм, или 1 мм). Обычный подход для того, чтобы убедиться, что лазеры работают в диапазоне класса 1, состоит в том, чтобы поместить лазер в большой корпус таким образом, чтобы к моменту выхода света из корпуса свет ослаблялся достаточно для того, чтобы он считался относящимся к классу 1. Этот подход не работает для ручных сканеров, поскольку ручные сканеры должны иметь относительно малый размер (например, меньший 30 см * 30 см * 30 см). Некоторые варианты осуществления настоящего раскрытия управляют источниками света, помещенными в корпус 102 основного тела, как источниками света класса 1, посредством соответствующего выбора длительности импульса, максимальной мощности, частоты повторения, и/или коэффициента заполнения, что позволяет сканеру 100 быть ручным, безопасным, и работать в условиях обычного дневного света (например, при 120000 лк, 100000 лк, 20000 лк, 2000 лк, или 1000 лк). Это также позволяет сканеру 100 иметь относительно короткое минимальное рабочее расстояние (например, минимальное рабочее расстояние, которое не больше 35 мм).
[0032] Дополнительно, для увеличения отношения сигнал-шум в структурированных световых данных, и для отличения структурированных световых данных от текстурных (например, цветовых) данных, в некоторых вариантах осуществления VCSEL-лазеры, описанные выше, работают на частоте, находящейся за пределами видимого спектра (например, на частоте инфракрасного (infrared - IR) света). В таких вариантах осуществления, корпус 102 основного тела вмещает, дополнительно к объективу камеры (например, оптической системе 106 камеры), делитель IR/видимого лучей, который направляет IR-свет в первый оптический датчик (например, CCD-детектор 502-а, фиг. 5), а видимый свет во второй оптический датчик (например, CCD-детектор 502-b, фиг. 5). В некоторых вариантах осуществления, данные от первого оптического датчика детектируются синхронно со стробоскопическим светом от одного или более внутренних источников света таким образом, чтобы данные на стробоскопической частоте детектировались предпочтительно по сравнению с информацией на других частотах. Это может быть обеспечено, например, с использованием синхронного детектирования или посредством стробирования первого оптического датчика для сбора данных синхронно с одним или более источниками света, генерирующими свет.
[0033] В некоторых вариантах осуществления, второй оптический датчик, размещенный в корпусе 102 основного тела (например, CCD-детектор 502-b, фиг. 5) получает текстурные данные (например, цветовые данные). В некоторых вариантах осуществления, текстурные данные используются как для визуализации 3D-реконструкции в цвете (например, когда цвет не используется для обеспечения обратной связи в отношении количества или качества данных, описанной ниже), так и для отслеживания положения и/или поворота сканера 100 (например, посредством анализа и совмещения изображений), которое, в свою очередь, используется для совмещения (например, выравнивания) структурированных световых данных (например, данных о 3D-форме), получаемых сканером 100 в разных положениях относительно объекта (например, как описано ниже со ссылкой на фиг. 3).
[0034] Корпус 102 основного тела также вмещает один или более датчиков перемещения, которые отслеживают перемещение сканера 100. Один или более датчиков перемещения могут включать в себя трехосный акселерометр, трехосный гироскоп, и/или трехосный магнитометр для измерения положения и/или поворота сканера 100. В некоторых вариантах осуществления, один или более датчиков перемещения включают в себя все три из трехосного акселерометра, трехосного гироскопа, и трехосного магнитометра, и, таким образом, называются датчиком с девятью (9) степенями свободы (degree of freedom - DOF), несмотря на тот факт, что сканер 100 имеет только шесть механических степеней свободы (т.е., три позиционные и три поворотные степени свободы). Позиционные и/или поворотные данные от одного или более датчиков перемещения используются для отслеживания положения и/или поворота сканера 100 (например, посредством применения фильтра Калмана), которые, в свою очередь, используются для совмещения (например, выравнивания) структурированных световых данных (например, данных о 3D-форме), получаемых сканером 100 в разных положениях относительно объекта (например, как описано ниже со ссылкой на фиг. 3).
[0035] Для обеспечения внутренней автоматической обработки (например, для создания по меньшей мере начальной 3D-реконструкции объекта), чтобы обеспечить пользователю возможность полностью мобильного сканирования, в некоторых вариантах осуществления корпус 102 основного тела вмещает множество процессоров, включающих в себя одну или более матриц программируемых логических вентилей, один или более графических процессоров (GPU), и/или один или более CPU. Эти компоненты, а также задачи, решаемые каждым из них, обсуждаются более подробно со ссылкой на фиг. 2-3. В этом месте достаточно отметить, что корпус 102 основного тела содержит достаточные средства обработки для генерирования по меньшей мере начальной реконструкции 3D-модели объекта (например, предварительного изображения 3D-модели объекта).
[0036] Корпус 102 основного тела дополнительно вмещает дисплей 114, который отображает графический пользовательский интерфейс для сканера 100. Среди прочего, сканер 100 сканирует объект, графический пользовательский интерфейс для сканера 100 отображает начальную 3D-реконструкцию объекта (например, предварительное изображение 3D-реконструкции объекта). В некоторых вариантах осуществления, дисплей 114 является чувствительным к касаниям дисплеем (иногда называемым сенсорным экраном) и, таким образом, может также принимать пользовательские вводы (например, чтобы начать сканирование, остановить сканирование, закончить сканирование, или иным образом управлять сканером 100).
[0037] Фиг. 2 является блок-схемой последовательности операций способа 200 анализа 3D-данных от 3D-сканера, выполняемого при получении 3D-данных, согласно некоторым вариантам осуществления. Способ 200 выполняется в 3D-сканере (например, 3D-сканере 100, фиг. 1, 3, и 5). Некоторые операции в способе 200 могут быть объединены, и/или может быть изменен порядок некоторых операций. Для облегчения объяснения способ 200 описан как способ, выполняемый 3D-сканером 100. Однако, способ 200 может быть выполнен с использованием любого 3D-сканера, созданного согласно настоящему раскрытию. Напротив, в других вариантах осуществления 3D-сканер 100 выполняет способы, отличные от способа 200, согласно идеям настоящего раскрытия. В некоторых вариантах осуществления, способ 200 выполняется непрерывно в реальном времени в то время, когда получают 3D-данные. В некоторых вариантах осуществления, способ 200 имеет результатом предварительное изображение 3D-реконструкции формы объекта, которое отображается на дисплее 3D-сканера в то время, когда пользователь получает данные (например, предварительное изображение 3D-реконструкции формы объекта генерируется непрерывно в реальном времени и обновляется, когда сканер 100 получает дополнительные данные от датчиков 202).
[0038] Сканер 100 получает данные от множества датчиков 202. Например, первый оптический датчик собирает текстурные (например, цветовые) данные 204-а (например, первый CCD-детектор, такой как CCD-детектор 502-а, фиг. 5), второй оптический датчик собирает 3D-данные 204-b (например, второй CCD-детектор, такой как CCD-детектор 502-b, фиг. 5), и датчик перемещения собирает данные 204-c о перемещении (например, 9-DOF-датчик, который может быть реализован с использованием микроэлектромеханических систем (MEMS), гироскопов или других систем детектирования перемещения и одного или более датчиков Холла). В некоторых вариантах осуществления, данные от множества датчиков 202 получают одновременно во время сканирования. Используемый здесь термин «одновременно» означает, что измерения от двух датчиков 202 получают в последовательности, достаточно быстрой для того, чтобы измерение от первого датчика 202 и измерение от второго датчика 202 могли считаться полученными одновременно (например, для целей операций 212-a и 212-c отслеживания, описанных ниже).
[0039] Сканер 100 выполняет одну или более первых операций обработки в отношении данных, получаемых от датчиков 202. В некоторых вариантах осуществления, первые операции обработки выполняются одной или более матрицами 206 программируемых логических вентилей (FPGA). Для простоты, первые операции обработки описаны здесь как операции обработки, выполняемые единственной FPGA 206, хотя в некоторых вариантах осуществления эти операции могут быть разделены между множественными FPGA.
[0040] Например, FPGA 206 принимает 3D-данные 204-b от первого оптического датчика и генерирует реконструкцию 208-b, представляющую форму поверхности объекта. В некоторых вариантах осуществления, реконструкция 208-b является структурой данных, содержащей данные для трехмерного массива точек (например, реконструкция 208-b является реконструкцией облака точек формы поверхности объекта, но еще не сеткой). В некоторых вариантах осуществления, FPGA 206 генерирует реконструкцию 208-b для каждого изображения, получаемого первым оптическим датчиком (например, при этом каждое изображение соответствует структуре структурированного света, который освещает поверхность объекта и который искажается ею). Таким образом, в некоторых вариантах осуществления FPGA 206 генерирует множество представлений формы поверхности объекта, при этом представления из этого множества представлений еще не выровнены (например, не совмещены) друг с другом.
[0041] В некоторых вариантах осуществления, FPGA 206 принимает цветовые данные 204-а от второго оптического датчика. Цветовые данные 204-а используются для генерирования демозаики 208-а. В некоторых вариантах осуществления, FPGA 206 принимает множество цветных изображений поверхности объекта. В некоторых вариантах осуществления, описанных в другом месте в этом документе, 3D-данные и цветные изображения получают стробоскопически в разные моменты времени (например, чередующиеся друг с другом).
[0042] В некоторых вариантах осуществления, FPGA 206 принимает данные 204-c о перемещении и применяет фильтр Калмана к данным о перемещении для определения положения и/или поворота 208-с сканера 100. В некоторых вариантах осуществления, положение и/или поворот 208-с сканера 100 определяется относительно эталонного положения и/или поворота. В некоторых вариантах осуществления, эталонное положение и/или поворот являются положением и/или поворотом сканера 100, когда сканирование начинается. В некоторых вариантах осуществления, эталонное положение и/или поворот находят относительно измеряемого объекта.
[0043] Фильтр Калмана работает на основе предположения, что данные 204-c о перемещении являются зашумленными и содержат ошибки. По существу, фильтр Калмана сглаживает данные 204-c о перемещении для определения положения и/или поворота 208-с сканера 100 способом, который более точен, чем использование необработанного измеренного положения и/или поворота в качестве фактического значения положения и/или поворота сканера 100. Для этой цели, определенное положение и/или поворот 208-с сканера 100 является функцией множества измеренных положений и/или поворотов сканера 100, измеряемых датчиками 202 (например, измеряемыми 9-DOF-датчиком). Когда новое измерение положения и/или поворота принимается FPGA 206, новое измерение положения и/или поворота используется для обновления, а не для полной замены существующего определенного положения и/или поворота 208-с сканера 100. Например, множество существующих измеренных положений и/или поворотов сканера 100 используется для определения скорости (например, и/или угловой скорости) сканера 100. Скорость и/или угловая скорость сканера 100 используются для определения интерполированного положения и/или поворота сканера 100, которое взвешивается с новым измеренным положением и/или поворотом для создания определенного положения и/или поворота 208-с сканера 100. В некоторых вариантах осуществления, весовой коэффициент интерполированного положения и/или поворота относительно весового коэффициента измеренного положения и/или поворота зависит от изменчивости последних измеренных положений (например, последних 10 измерений), которая используется в качестве указания на шум последних 10 измерений.
[0044] Сканер 100 выполняет одну или более вторых операций обработки на основании результатов первых операций обработки. В некоторых вариантах осуществления, вторые операции обработки выполняются одним или более графическими процессорами 210. В некоторых вариантах осуществления, графические процессоры 210 (GPU) принимают результаты первых операций обработки от FPGA 206. Для простоты, вторые операции обработки описаны здесь как операции обработки, выполняемые единственным GPU 210, хотя в других вариантах осуществления эти операции могут быть разделены между множественными GPU 210.
[0045] В некоторых вариантах осуществления, GPU 210 применяет две операции отслеживания (операции 212-a и 212-c отслеживания), которые используются для выполнения 3D-совмещения 212-b (например, выравнивания) реконструкций 208-b. 3D-совмещение 212-b сдвигает соответствующие реконструкции 208-b (например, облака точек) в общей системе отсчета. Например, в некоторых вариантах осуществления общая система отсчета является системой отсчета существующего воксельного представления 212-f поверхности объекта (например, реконструкции 208-b сдвигаются на визуализирующую геометрию 212-е существующего объекта). Следует отметить, что хотя термины «совмещение» и «выравнивание» используют взаимозаменяемо, следует понимать, что в некоторых вариантах осуществления дополнительное выравнивание и другая постобработка могут выполняться автономно после завершения сканирования.
[0046] Следует отметить, что реконструкции 208-b и воксельное представление 212-f являются примерами «3D-реконструкций» формы поверхности объекта. А именно, 3D-реконструкция формы поверхности объекта может быть облаком точек, воксельным представлением, или реконструкцией любого другого типа.
[0047] Операция 212-а отслеживания анализирует демозаику 208-а для идентификации соответствующих признаков в демозаике. Соответствующие признаки используются затем для определения относительного сдвига, применяемого между первой демозаикой и второй демозаикой для сдвига первой демозаики в общей системе отсчета, как второй демозаики (например, посредством выполнения выравнивания и совмещения изображений). Относительный сдвиг между первой демозаикой и второй демозаикой используется затем для определения относительного сдвига между первой реконструкцией (например, соответствующей первой демозаике и полученной по существу одновременно с ней) и второй реконструкцией (например, соответствующей второй демозаике и полученной по существу одновременно с ней).
[0048] Подобным образом, операция 212-с отслеживания использует определенные положения и/или повороты 208-с сканера 100 для определения относительных сдвигов между реконструкциями 208-b. Например, может быть определен относительный сдвиг между первой реконструкцией (например, соответствующей первому определенному положению и/или повороту сканера 100 и полученной по существу одновременно с ними) и второй реконструкцией (например, соответствующей второму определенному положению и/или повороту сканера 100 и полученной по существу одновременно с ними).
[0049] В некоторых вариантах осуществления, относительные сдвиги из операций 212-a и 212-c отслеживания (например, взвешенные друг относительно друга) используются в 3D-совмещении 212-b для определения общего относительного сдвига, применяемого к каждой реконструкции 208-b, чтобы сдвинутые реконструкции 208-b размещались в общей системе отсчета.
[0050] GPU 210 выполняет операцию 212-d объединения, в которой сдвинутые реконструкции 208-b, созданные операцией 212-b 3D-совмещения, объединяются в одном объединенном воксельном представлении 212-f (которое может быть существующим воксельным представлением, сгенерированным на основании ранее полученных данных). Например, операция 212-d объединения выдает среднее значение (или взвешенное среднее значение) сдвинутых реконструкций для генерирования объединенного воксельного представления 212-f 3D-формы поверхности объекта. В некоторых вариантах осуществления, объединенное воксельное представление 212-f обновляется в реальном времени при получении дополнительных данных (например, посредством сдвига дополнительно полученных реконструкций 208-b в системе отсчета объединенного воксельного представления 3D-формы поверхности объекта, и затем объединения дополнительно полученных реконструкций 208-b с объединенным воксельным представлением для создания обновленного объединенного воксельного представления).
[0051] Каждая точка в воксельном представлении 212-f называется вокселом и представляет некоторый объем трехмерного пространства (например, в отличие от пиксела, который представляет область двумерного пространства). В некоторых вариантах осуществления, каждый воксел в воксельном представлении 212-f включает в себя значение, которое указывает на то, представляет ли воксел поверхность объекта (например, «1», если воксел представляет поверхность объекта, и «0» если воксел не представляет поверхность объекта).
[0052] В некоторых вариантах осуществления, объединенное воксельное представление 212-f также запоминает, для каждого воксела, статистическую информацию, соответствующую количеству и/или качеству данных, собранных для этого воксела. Статистическая информация, соответствующая количеству и/или качеству данных, используется для отображения в реальном времени указания на количество и/или качество данных, как описано ниже со ссылкой на способ 600.
[0053] В некоторых вариантах осуществления, текстура (например, цвет) из демозаики 208-а добавляется в объединенное воксельное представление 212-f. Для этой цели, текстурные данные из демозаики 208-а подвергаются цветовой унификации (например, при которой в демозаике 208-а идентифицируются общие точки, и текстурные данные сдвигаются таким образом, чтобы общие точки имели одинаковый цвет) и цветовой калибровке (например, при которой баланс и яркость демозаики 208-а калибруются по всей демозаике 208-а). Унифицированная, откалиброванная демозаичная информация добавляется затем в объединенное воксельное представление 212-f, созданное операцией 212-d объединения, для создания текстурированного объединенного воксельного представления. Текстурированное объединенное воксельное представление визуализируется и отображается на дисплее (например, дисплее 114, фиг. 1В) в качестве предварительного изображения реального времени 3D-реконструкции объекта.
[0054] Фиг. 3 является блок-схемой 3D-сканера 100 согласно некоторым вариантам осуществления. Сканер 100 включает в себя память 304, один или более процессоров 302, источник 306 питания, подсистему 308 пользовательского ввода/вывода (input/output - I/O), датчики 202, источники 311 света, и шину 310 связи для соединения этих компонентов. Процессор (процессоры) 302 выполняет модули, программы, и/или команды, запомненные в памяти 304 и посредством этого выполняет операции обработки.
[0055] В некоторых вариантах осуществления, процессор (процессоры) 302 включает в себя по меньшей мере один графический процессор (например, GPU 210, фиг. 2). В некоторых вариантах осуществления, процессор (процессоры) 302 включает в себя по меньшей мере одну матрицу программируемых логических вентилей (например, FPGA 206, фиг. 2).
[0056] В некоторых вариантах осуществления, память 304 запоминает одну или более программ (например, наборов команд) и/или структур данных. В некоторых вариантах осуществления, память 304 или непереходной компьютерно-читаемый носитель данных памяти 304 запоминает нижеследующие программы, модули, и структуры данных, или их подмножество или надмножество, некоторые из которых включают в себя команды для выполнения соответствующих операций, описанных выше со ссылкой на фиг. 2:
- операционная система 312;
- модуль 314 фильтра Калмана;
- модуль 316 отслеживания перемещения;
- модуль 318 отслеживания цвета;
- модуль 320 цветовой унификации;
- модуль 324 объединения;
- модуль 326 цветовой калибровки;
- модуль 328 текстурирования; и
- память 330, включающая в себя буфер (буферы), RAM, ROM, и/или другую память, которая запоминает данные, используемые и генерируемые сканером 100.
[0057] Вышеупомянутые идентифицированные модули (например, структуры данных и/или программы, включающие в себя наборы команд) не обязательно должны быть реализованы в виде отдельных программ, процедур, или модулей программного обеспечения, и, таким образом, различные подмножества этих модулей могут быть объединены или, иначе, перегруппированы в различных вариантах осуществления. В некоторых вариантах осуществления, память 304 запоминает подмножество модулей, идентифицированных выше. Дополнительно, память 304 может запоминать дополнительные модули, не описанные выше. В некоторых вариантах осуществления, модули, запомненные в памяти 304 или в непереходном компьютерно-читаемом носителе данных памяти 304, обеспечивают команды для реализации соответствующих операций в способах, описанных ниже. В некоторых вариантах осуществления, некоторые или все эти модули могут быть реализованы специализированными аппаратными схемами (например, FPGA 206, фиг. 2), которые берут на себя часть или всю функциональность модуля. Один или более вышеупомянутых идентифицированных элементов могут быть выполнены одним или более процессорами 302.
[0058] В некоторых вариантах осуществления, подсистема 308 I/O коммуникационно соединяет сканер 100 с одним или более устройствами, такими как одно или более удаленных устройств 336 (например, внешний дисплей), через сеть 350 связи и/или через проводное и/или беспроводное соединение. В некоторых вариантах осуществления, сеть 350 связи является Интернетом. В некоторых вариантах осуществления, подсистема 308 I/O коммуникационно соединяет сканер 100 с одним или более интегрированными или периферийными устройствами, такими как чувствительный к касаниям дисплей 114.
[0059] В некоторых вариантах осуществления, датчики 202 включают в себя первый оптический датчик, который собирает 3D-данные (например, первый CCD-детектор, такой как CCD-детектор 502-а, фиг. 5), второй оптический датчик, который собирает текстурные (например, цветовые) данные (например, второй CCD-детектор, такой как CCD-детектор 502-b, фиг. 5), и датчик перемещения (например, 9-DOF-датчик, который может быть реализован с использованием микроэлектромеханических систем (MEMS), гироскопов и одного или более датчиков Холла).
[0060] В некоторых вариантах осуществления, источники 311 света включают в себя один или более лазеров. В некоторых вариантах осуществления, один или более лазеров содержат лазеры поверхностного излучения с вертикальным резонатором (VCSEL). В некоторых вариантах осуществления, источники 311 света также включают в себя массив светодиодов (LED), которые генерируют видимый свет.
[0061] Шина 310 связи может включать в себя схемы (иногда называемые набором микросхем), которые соединяют компоненты системы и управляют связью между ними.
[0062] Фиг. 4A-4F показывают иллюстративные пользовательские интерфейсы для обеспечения обратной связи по сбору 3D-данных на 3D-сканере (например, 3D-сканере 100, фиг. 1 и 3) согласно некоторым вариантам осуществления. В некоторых вариантах осуществления, пользовательские интерфейсы, показанные на фиг. 4A-4F, отображаются и обновляются в реальном времени во время сканирования объекта (например, когда сканер 100 собирает данные, как описано выше со ссылкой на фиг. 2). В некоторых вариантах осуществления, пользовательские интерфейсы, показанные на фиг. 4A-4F, отображаются на дисплее, который интегрирован в 3D-сканер. В некоторых вариантах осуществления, пользовательские интерфейсы, показанные на фиг. 4A-4F, отображаются на удаленном дисплее, который имеет связь с 3D-сканером (например, 3D-сканер передает беспроводным образом удаленному дисплею информацию для отображения пользовательских интерфейсов, показанных на фиг. 4A-4F).
[0063] Фиг. 4А показывает пользовательский интерфейс, отображающий предварительное изображение 400-а 3D-реконструкции по меньшей мере части формы поверхности объекта. В этом случае, объект является фарфоровой овцой. Предварительное изображение 400-а показывает 3D-реконструкцию части формы поверхности объекта в первый момент времени (например, включает в себя все данные, полученные во время сканирования вплоть до первого момента времени).
[0064] Следует отметить, что предварительные изображения, обозначенные одной и той же ссылочной позицией (например, 400), соответствуют одному и тому же предварительному изображению (т.е., одному единственному предварительному изображению, отображаемому в течение сканирования). Для ссылки на моментальный снимок предварительного изображения в конкретный момент времени к этой ссылочной позиции добавляется буква (например, что имеет место выше в случае предварительного изображения 400-а).
[0065] Дополнительно, пользовательский интерфейс отображает указание на по меньшей мере одно из количества или качества данных, соответствующих 3D-форме поверхности объекта. Например, указание на по меньшей мере одно из количества или качества данных отображается в виде части предварительного изображения 400-а 3D-реконструкции по меньшей мере части формы поверхности объекта (например, указание на по меньшей мере одно из количества или качества данных отображается в виде цвета предварительного изображения 400-а части поверхности). В некоторых вариантах осуществления, каждая соответствующая точка в предварительном изображении 400, которая представляет поверхность объекта (например, каждый воксел, который представляет поверхность объекта), отображает соответствующее указание на качество и/или количество данных для этой соответствующей точки (например, соответствующего воксела). Таким образом, в некоторых вариантах осуществления предварительное изображение 400 обеспечивает 3D-визуализацию количества и/или качества данных на протяжении поверхности объекта.
[0066] В примере, показанном на фиг. 4A-4D, части предварительного изображения 400, имеющие разное количество и/или качество данных, отображены разными структурами заполнения (например, согласно надписи, обеспеченной на фигурах). Альтернативно, части предварительного изображения 400, имеющие разное количество и/или качество данных, могут быть отображены разными цветами. Например, части предварительного изображения 400, имеющие разное количество и/или качество данных, могут быть отображены согласно шкале цветов, которая может быть почти непрерывной (например, имеющей 256 разных цветов, представляющих разное количество и/или качество данных). Например, части предварительного изображения 400, имеющие малое количество данных и/или данные плохого (низкого) качества, могут быть отображены красным цветом. Части предварительного изображения 400, имеющие больше данных и/или данные лучшего (среднего) качества, могут быть показаны желтым цветом. Однако, части предварительного изображения 400, показанные желтым цветом, могут не иметь достаточных данных для реконструкции объекта согласно заданным техническим требованиям к точности. Части предварительного изображения 400, имеющие данные высокого качества и/или данные лучшего качества, могут быть показаны зеленым цветом. В некоторых вариантах осуществления, большое количество/ высокое качество данных указывает на то, что объект может быть реконструирован с заданными техническими требованиями к точности (например, с точностью по меньшей мере 0,1 мм, 0,2 мм, 0,3 мм, 0,4 мм, или 0,5 мм; или, альтернативно, с разрешением 0,25 мм, 0,5 мм, 0,75 мм, или 1 мм). В других вариантах осуществления, цвета и/или оттенки цветов, отличные от красного, желтого, и зеленого цветов и/или меньше или больше цветов могут использоваться для обеспечения обратной связи в отношении количества и/или качества собранных данных для пользователя. В одном варианте осуществления, единственный цвет с одним или более оттенками используется для обеспечения обратной связи в отношении количества и/или качества собранных данных для пользователя. В другом варианте осуществления, два или более цветов используются для обеспечения обратной связи в отношении количества и/или качества собранных данных для пользователя.
[0067] В примере, показанном на фиг. 4А, часть 402-а предварительного изображения 400-а имеет достаточные данные для определения местоположения поверхности объекта, но в других отношениях эти данные являются недостаточными и/или плохими. Это позволяет пользователю видеть в реальном времени, где данные являются недостаточными и/или имеют плохое качество.
[0068] В некоторых обстоятельствах, другие части поверхности объекта, например, часть 402-b, могут вообще не иметь никаких данных (и, таким образом, никакое местоположение не определяется). Эти части визуализируются как пропуски в предварительном изображении 400-а 3D-реконструкции поверхности объекта. Это позволяет пользователю видеть в реальном времени, где при сканировании пропускаются данные.
[0069] Фиг. 4В показывает пользовательский интерфейс, отображающий предварительное изображение 400-b 3D-реконструкции формы поверхности объекта. Предварительное изображение 400-b является обновлением предварительного изображения 400-а. А именно, предварительное изображение 400-b показывает 3D-реконструкцию части формы поверхности объекта во второй момент времени, который является более поздним, чем первый момент времени (например, включает в себя все данные, полученные во время сканирования вплоть до второго момента времени). Таким образом, больше данных было получено для предварительного изображения 400-b по сравнению с предварительным изображением 400-а. В результате, предварительное изображение 400-b показывает области с большим количеством данных и/или улучшенными данными по сравнению с предварительным изображением 400-а. Например, часть 402-с отображена со структурой заполнения, указывающей на большое количество и/или высокое качество данных (например, указывающей на адекватные данные для этой области объекта); часть 402-d отображена со структурой заполнения, указывающей на среднее количество и/или качество данных (например, указывающей на то, что данные для этой области объекта являются лучшими, чем данные для этой области объекта в предварительном изображении 400-b, но все же недостаточными); и часть 402-e отображена со структурой заполнения, указывающей на малое количество и/или низкое качество данных (например, указывающей на недостаточные данные и/или данные плохого качества для этой области объекта). Часть 402-b еще указывает на пропуск в данных. Таким образом, предварительное изображение 400-b подсказывает пользователю, куда следует переместить сканер для завершения сканирования (например, пользователь должен переместить сканер таким образом, чтобы он был более прямо обращен к областям с пропущенными и/или плохими данными).
[0070] Фиг. 4С показывает пользовательский интерфейс, отображающий предварительное изображение 400-с 3D-реконструкции формы поверхности объекта. Предварительное изображение 400-с является обновлением предварительного изображения 400-b. А именно, предварительное изображение 400-с показывает 3D-реконструкцию части формы поверхности объекта в третий момент времени, который является более поздним, чем второй момент времени (например, включает в себя все данные, полученные во время сканирования вплоть до третьего момента времени).
[0071] Фиг. 4D показывает пользовательский интерфейс, отображающий предварительное изображение 400-d 3D-реконструкции формы поверхности объекта. Предварительное изображение 400-d является обновлением предварительного изображения 400-c. А именно, предварительное изображение 400-d показывает 3D-реконструкцию части формы поверхности объекта в четвертый момент времени, который является более поздним, чем третий момент времени (например, включает в себя все данные, полученные во время сканирования вплоть до третьего момента времени). Предварительное изображение 400-d показывает, что почти весь объект имеет достаточные данные для реконструкции 3D-формы объекта.
[0072] Фиг. 4E-4F показывают предварительное изображение 404 другой сцены (по сравнению с фиг. 4A-4D). В частности, предварительное изображение 404 показывает предварительное изображение 3D-реконструкции человека, когда сканируется человек. Предварительное изображение 404, показанное на фиг. 4E-4F, в основном аналогично предварительному изображению 400, показанному на фиг. 4A-4D, описанных выше, за исключением отличий, указанных ниже.
[0073] В частности, предварительное изображение 404 отображает указание на активную область 406 сканирования (например, область, где данные собираются в настоящее время, на основе положения 3D-сканера относительно объекта). Например, предварительное изображение 404 показывает прямоугольную рамку, указывающую на активную область 406 сканирования. В некоторых вариантах осуществления, структура заполнения или цвет внутри активной области 406 предварительного изображения 404 указывает на расстояние до сканируемого объекта (например, в не на количество/качество данных), в то время как цвет снаружи активной области предварительного изображения 404 указывает на количество и/или качество данных, как описано выше со ссылкой на фиг. 4A-4D. В некоторых обстоятельствах, обеспечение расстояния до объекта для активной области 406 снабжает пользователя более релевантной информацией об активной области 406, поскольку пользователь уже сканирует активную область 406 и не может, таким образом, переместить сканер для сканирования активной области 406. Пользователь может, однако, настроить расстояние до объекта для более эффективного сбора данных для активной области 406.
[0074] Дополнительно, фиг. 4E-4F показывают, что в некоторых вариантах осуществления пользователь может переключаться между показом предварительного изображения 404-а с указанием на количество и/или качество данных и предварительного изображения 404-b, которое показывает естественную текстуру (например, цвет) объекта. Последнее может быть полезным, чтобы обеспечить пользователю понимание того, как будет выглядеть конечная 3D-реконструкция.
[0075] Специалист в данной области техники, получающий пользу от этого раскрытия, поймет, что существуют многочисленные пути обеспечения обратной связи, указывающей на достаточное количество и/или качество данных для некоторой области реконструкции. Например, области, требующие больше данных, могут быть очерчены на экране или указаны стрелкой. Альтернативно, акустические и/или тактильные признаки могут быть использованы для обеспечения такой обратной связи. Например, акустический или тактильный признак может быть выполнен с возможностью указывать на то, что текущая область получения накопила достаточно данных, что означает, что пользователь должен переместить сканер.
[0076] Фиг. 5 является механическим чертежом, показывающим различные компоненты 3D-сканера 100, включающего в себя систему охлаждения, согласно некоторым вариантам осуществления. В частности, фиг. 5 показывает поперечное сечение корпуса 102 основного тела (фиг. 1). Как показано на фиг. 5, сканер 100 включает в себя (среди прочих компонентов):
- первый оптический датчик 502-а (например, первый детектор с устройством с зарядовой связью (CCD)), который собирает 3D-данные сканируемого объекта (например, собирает изображения структурированного света, который освещает поверхность объекта и который искажается ею, на основании чего может быть определена реконструкция 3D-формы объекта). В некоторых вариантах осуществления, первый оптический датчик 502-а чувствителен к инфракрасному (IR) свету (хотя первый оптический датчик 502-а может быть также чувствительным к видимому свету);
- второй оптический датчик 502-b (например, второй CCD-детектор), который собирает текстурные (например, цветовые) данные сканируемого объекта (например, собирает изображения, когда структурированный свет не падает на поверхность объекта, например, собирает изображения между стробоскопическими импульсами структурированного света, испускаемого на объект). В некоторых вариантах осуществления, второй оптический датчик 502-b чувствителен к видимому свету (хотя второй оптический датчик 502-b может быть также чувствительным к IR-свету);
- делитель 504 лучей, который разделяет видимый свет и IR-свет. Делитель 504 лучей предпочтительно направляет IR-свет, принимаемый через оптическую систему 106 камеры, к первому оптическому датчику 502-а и предпочтительно направляет видимый свет, принимаемый через оптическую систему 106 камеры, ко второму оптическому датчику 502-b;
- источник 506 света. В некоторых вариантах осуществления, источник 506 света является источником импульсного света (например, стробоскопическим источником света). В некоторых вариантах осуществления, источник 506 света является инфракрасным источником света. В некоторых вариантах осуществления, источник 506 света является лазером. В некоторых вариантах осуществления, источник 506 света является лазером поверхностного излучения с вертикальным резонатором. В некоторых вариантах осуществления, источник 506 света выполнен с возможностью функционировать (например, посредством соответствующего выбора длительности импульса, максимальной мощности, частоты повторения, и/или коэффициента заполнения) как лазер класса 1 везде за пределами корпуса 102 основного тела;
- слайд 516, который имеет образованную (например, напечатанную или протравленную на нем) пространственную структуру, через которую свет проецируется на поверхность объекта (например, пространственная структура может быть образована непрозрачными и прозрачными частями слайда). Таким образом, свет, генерируемый источником 506 света, проходит через слайд 516 и проецируется через оптическую систему 104 источника в виде структурированного света по направлению к поверхности (например, на поверхность) объекта; и
- систему 508 охлаждения (обозначенную в нескольких местах на чертеже), содержащую единственный элемент из металла, термически связанный с источником 506 света, оптическими датчиками 502 и множеством процессоров, включающих в себя GPU (например, GPU 210, фиг. 2), расположенный в положении 514, и FPGA (например, FPGA 206, фиг. 2), расположенную в положении 512.
[0077] Из-за способа получения 3D-данных (например, путем стробоскопического вывода света из достаточно мощного источника света, а также сбора и обработки многих изображений каждую секунду), выработка и удаление теплоты является одной из наибольших проблем при проектировании ручного 3D-сканера, выполненного с возможностью создавать предварительные изображения 3D-реконструкций объектов в реальном времени. При том, что важно поддерживать относительно низкую температуру, поддержание согласованной температуры (как в пространстве, так и во времени) является по меньшей мере столь же важным. Система 508 охлаждения поддерживает различные компоненты 3D-сканера 100 при согласованной и стабильной температуре посредством обеспечения термической связности между основными тепловыделяющими компонентами 3D-сканера. Таким образом, система 508 охлаждения уменьшает время «нагрева», необходимое для достижения 3D-сканером стабильной температуры, позволяет обеспечить большую вычислительную мощность, и увеличивает интервал времени, в течение которого 3D-сканер может собирать данные.
[0078] Фиг. 6А-6В показывают блок-схему последовательности операций способа 600 обеспечения обратной связи по сбору 3D-данных от 3D-сканера согласно некоторым вариантам осуществления. Способ 600 выполняется в 3D-сканере (например, 3D-сканере 100, фиг. 1, 3, и 5) в связи с дисплеем. 3D-сканер включает в себя один или более оптических датчиков. В некоторых вариантах осуществления, 3D-сканер включает в себя дисплей. В некоторых вариантах осуществления, 3D-сканер включает в себя процессоры для генерирования 3D-реконструкции по меньшей мере части формы поверхности объекта. В некоторых вариантах осуществления, 3D-сканер является портативным, ручным 3D-сканером (например, имеет размеры, меньшие 30 см * 30 см * 30 см, так что все устройство может помещаться внутри коробки размером 30 см * 30 см * 30 см). Некоторые операции в способе 600 могут быть объединены, и/или порядок некоторых операций может быть изменен. Для облегчения объяснения, способ 600 описан как способ, выполняемый 3D-сканером 100. Однако, способ 600 может быть выполнен с использованием любого 3D-сканера, созданного согласно настоящему раскрытию. Напротив, в других вариантах осуществления 3D-сканер 100 выполняет способы, отличные от способа 600, согласно идеям настоящего раскрытия.
[0079] Как описано ниже, способ 600 обеспечивает обратную связь по сбору 3D-данных от 3D-сканера 100. В некоторых вариантах осуществления, в то время как пользователь сканирует объект для сбора данных, 3D-сканер 100 отображает предварительное изображение 3D-реконструкции объекта, а также указание на количество или качество данных. В некоторых вариантах осуществления, указание на количество или качество накладывается на 3D-реконструкцию объекта. Например, 3D-реконструкция объекта появляется в виде поверхности, и цвет этой поверхности представляет количество или качество данных. Пользователь может, таким образом, видеть на дисплее, где существуют пропуски в данных. Например, когда вообще нет данных для части объекта, в некоторых вариантах осуществления предварительное изображение 3D-реконструкции вообще не показывает никакой поверхности для этой области объекта. Когда имеются некоторые данные для части объекта, но их недостаточно для формирования адекватной реконструкции этой части объекта, 3D-реконструкция этой части объекта визуализируется красным цветом.
[0080] Таким образом, пользователь может определять, что он или она собрали достаточно данных, а также может определять, какие части объекта требуют сбора дополнительных данных. Последний признак позволяет пользователю сфокусироваться на сканировании тех частей объекта, которые требуют дополнительных данных. По сравнению со способом 600, предыдущие способы 3D-сканирования требовали, чтобы пользователь собирал данные без обратной связи, достаточной для того, чтобы узнать, что собраны достаточные данные. В результате, на всякий случай пользователи обычно получали избыточное количество данных, что приводило к избыточному использованию памяти и выработке теплоты. Проблема избыточного использования памяти и выработки теплоты затрудняла создание действительно автономного ручного 3D-сканера, поскольку задачи, связанные с памятью и выработкой теплоты, делегировались, обычно посредством проводного соединения, внешнему компьютеру. Таким образом, способ 600 улучшает сам 3D-сканер посредством обеспечения эффективного сбора данных, что, в свою очередь, обеспечивает меньший размер 3D-сканера 100. Для работающих от батареи электронных устройств, обеспечение пользователю возможности получать 3D-данные сканирования быстрее и более эффективно сохраняет энергию и увеличивает интервал времени между подзарядками батареи.
[0081] Сканер 100 сканирует (602), с использованием одного или более оптических датчиков, объект, имеющий поверхность. Сканирование генерирует данные, соответствующие трехмерной (3D) форме по меньшей мере части поверхности объекта. В некоторых вариантах осуществления, один или более датчиков включают в себя (604) камеру (например, оптические датчики 502, фиг. 5). Сканирование объекта включает в себя повторное выполнение операций: проецирования пространственной структуры света на поверхность объекта (например, с использованием источника 506 света и слайда 516, фиг. 5); и, в то время как пространственная структура света проецируется на поверхность объекта, получения, с использованием камеры, изображения поверхности объекта. В некоторых вариантах осуществления, сканирование объекта также включает в себя сбор цветовых данных (например, как описано со ссылкой на цветовые данные 204-а, фиг. 2) и сбор данных о перемещении (например, как описано со ссылкой на данные 204-c о перемещении, фиг. 2).
[0082] Сканер 100 генерирует (606), с использованием этих данных, 3D-реконструкцию по меньшей мере части формы поверхности объекта (например, как описано со ссылкой на операции, выполняемые FPGA 206 и GPU 210, фиг. 2). В некоторых вариантах осуществления, генерируемая 3D-реконструкция по меньшей мере части формы поверхности объекта является начальной реконструкцией, а не конечной реконструкцией. Например, после завершения сканирования могут быть выполнены дополнительные операции обработки после сканирования (например, дополнительное выравнивание) для улучшения 3D-реконструкции.
[0083] Сканер 100 обеспечивает (608) для дисплея предварительное изображение 3D-реконструкции по меньшей мере части формы поверхности объекта (например, предварительное изображение 400, фиг. 4A-4D, предварительное изображение 404, фиг. 4E-4F). В некоторых вариантах осуществления, отображение предварительного изображения 3D-реконструкции по меньшей мере части формы поверхности объекта включает в себя отображение объединенного воксельного представления, описанного со ссылкой на фиг. 2.
[0084] Сканер 100 обеспечивает (610) для дисплея, для визуализации с предварительным изображением 3D-реконструкции по меньшей мере части формы поверхности объекта, указание на по меньшей мере одно из количества или качества данных, соответствующих 3D-форме по меньшей мере части поверхности объекта.
[0085] В некоторых вариантах осуществления, сканер 100 обеспечивает для дисплея, для визуализации с предварительным изображением 3D-реконструкции по меньшей мере части формы поверхности объекта, указание на качество данных, соответствующих 3D-форме по меньшей мере части поверхности объекта. В некоторых вариантах осуществления, указание на качество данных является указанием на точность или разрешение данных. В некоторых вариантах осуществления, указание на точность данных указывает на статистически вероятную разницу (например, максимальную или среднюю разницу) между фактической формой поверхности объекта и 3D-реконструкцией формы поверхности объекта (например, указание на точность данных представляет приближенное значение величины, обратной ошибке реконструкции).
[0086] В некоторых вариантах осуществления, сканер 100 обеспечивает для дисплея, для визуализации с предварительным изображением 3D-реконструкции по меньшей мере части формы поверхности объекта, указание на количество данных, соответствующих 3D-форме по меньшей мере части поверхности объекта. В некоторых вариантах осуществления, указание на количество данных измеряют посредством числа отсчетов (например, точек), которое каждый воксел накапливает в процессе сканирования.
[0087] В некоторых вариантах осуществления, сканер 100 обеспечивает для дисплея, для визуализации с предварительным изображением 3D-реконструкции по меньшей мере части формы поверхности объекта, указание на объединенную меру количества и качества данных (например, меру, которая основана как на количестве, так и на качестве данных), соответствующих 3D-форме по меньшей мере части поверхности объекта. Например, в некоторых вариантах осуществления сканер 100 обеспечивает для дисплея, для визуализации с предварительным изображением 3D-реконструкции по меньшей мере части формы поверхности объекта, указание на произведение количества и качества данных (например, произведение величины, обратной ошибке реконструкции, для каждого соответствующего воксела, и числа отсчетов, накопленных для соответствующего воксела).
[0088] В некоторых вариантах осуществления, сканер 100 обеспечивает (612) для дисплея множество отдельных указаний на по меньшей мере одно из количества или качества данных, соответствующих отдельным частям поверхности объекта (например, указание для каждого воксела). В некоторых вариантах осуществления, указание на по меньшей мере одно из количества или качества данных отображается (614) в виде части предварительного изображения 3D-реконструкции по меньшей мере части формы поверхности объекта. В некоторых вариантах осуществления, указание на по меньшей мере одно из количества или качества данных отображается (616) в виде цвета предварительного изображения части поверхности (например, как описано со ссылкой на предварительное изображение 400, фиг. 4A-4D, предварительное изображение 404, фиг. 4E-4F). Например, каждый воксел, который представляет поверхность объекта в предварительном изображении 3D-реконструкции, отображается в цвете, который представляет количество и/или качество данных, соответствующих этому соответствующему вокселу.
[0089] В некоторых вариантах осуществления, сканер 100 выполнен с возможностью обеспечивать для дисплея, для визуализации с предварительным изображением 3D-реконструкции по меньшей мере части формы поверхности объекта, множество отдельных и переменных указаний на количество и/или качество данных, соответствующих 3D-форме по меньшей мере части поверхности объекта (например, переменных указаний, указывающих на разные свойства 3D-реконструкции). В некоторых вариантах осуществления, пользователь может переключаться между отдельными и переменными указаниями на количество и/или качество данных (например, одно указание отображается одномоментно). Например, в некоторых вариантах осуществления 3D-сканер 100 принимает пользовательский ввод для перехода с отображения указания на количество данных на отображение указания на качество данных. Как отмечено выше (например, со ссылкой на фиг. 4E-4F), в некоторых вариантах осуществления пользователь может также переключаться между отображением указания на количество и/или качество данных и отображением 3D-реконструкции с ее естественной текстурой.
[0090] В некоторых вариантах осуществления, указание на по меньшей мере одно из количества или качества данных обеспечивается для вывода (например, отображается посредством звукового и/или визуального сигнала или иным образом). Например, в некоторых вариантах осуществления это указание является слышимым указанием (например, «звоном» при получении достаточных данных). В некоторых вариантах осуществления, указание содержит стрелку, которая указывает на области объекта, для которых необходимы дополнительные данные. В других вариантах осуществления, достаточность количества или качества данных указывается одним или более зуммерными сигналами или одной или более вспышками света.
[0091] В некоторых вариантах осуществления, сканер 100 дополнительно сканирует (618) объект для генерирования дополнительных данных, соответствующих форме по меньшей мере части поверхности объекта. Сканер 100 обновляет (620) предварительное изображение 3D-реконструкции по меньшей мере части формы поверхности объекта. Сканер 100 обновляет (622) указание на по меньшей мере одно из количества или качества данных, соответствующих 3D-форме по меньшей мере части поверхности объекта. Например, предварительное изображение 400-b (фиг. 4В) является обновлением предварительного изображения 400-а (фиг. 4А).
[0092] В некоторых вариантах осуществления, сканер 100 определяет (624), соответствует ли по меньшей мере одно из количества или качества данных заданному порогу. В некоторых вариантах осуществления, заданный порог соответствует количеству или качеству данных, необходимых для реконструкции формы по меньшей мере части поверхности объекта с заданной точностью (или разрешением). Указание указывает на то, соответствует ли по меньшей мере одно из количества или качества данных заданному порогу.
[0093] Например, со ссылкой на фиг. 4D, сканер 100 определяет, соответствует ли количество и/или качество данных заданным критериям точности и/или разрешения для соответствующих частей поверхности объекта (например, на повоксельной основе). Вокселы, которые представляют поверхность объекта и соответствуют заданным критериям, визуализируются в структуре заполнения, соответствующей данным, которые соответствуют заданным критериям.
[0094] В некоторых вариантах осуществления, пользователь может конфигурировать заданные критерии. Например, пользователь может конфигурировать 3D-сканер для настройки необходимой точности и/или разрешения. Например, пользователь может конфигурировать сканер 100 для получения 3D-реконструкции с точностью по меньшей мере 0,1 мм, 0,2 мм, 0,3 мм, 0,4 мм, или 0,5 мм; или, альтернативно, с разрешением 0,25 мм, 0,5 мм, 0,75 мм, или 1 мм. Указание на количество или качество данных настраивается на основе точности и/или разрешения, обеспечиваемых пользователем. Например, когда пользователь настраивает сканер 100 на получение 3D-реконструкции с точностью 0,5 мм, показательный воксел в предварительном изображении визуализируется в зеленом цвете, когда имеется достаточно данных, чтобы соответствующий воксел представлял поверхность объекта с точностью 0,5 мм. Однако, если пользователь настраивает сканер 100 на получение 3D-реконструкции с точностью 0,1 мм, показательный воксел в предварительном изображении визуализируется в зеленом цвете, когда имеется достаточно данных, чтобы соответствующий воксел представлял поверхность объекта с точностью 0,1 мм. Для обеспечения для пользователя обратной связи по количеству и/или качеству, которая основана на точности и/или разрешении, необходимо, чтобы пользователь помог сканеру 100 обеспечить удовлетворительное сканирование и при этом уменьшить емкость памяти (например, запоминающего устройства), необходимой для этого.
[0095] В некоторых вариантах осуществления, сканер 100 передает (626) в реальном времени для дисплея предварительное изображение 3D-реконструкции по меньшей мере части формы поверхности объекта и указание на по меньшей мере одно из количества или качества данных, соответствующих 3D-форме по меньшей мере части поверхности объекта. Например, в некоторых вариантах осуществления дисплей является отдельным от сканера 100, и сканер 100 беспроводным образом передает (например, посредством Bluetooth, Wi-Fi, или Интернета) в реальном времени для дисплея предварительное изображение 3D-реконструкции по меньшей мере части формы поверхности объекта и указание на по меньшей мере одно из количества или качества данных, соответствующих 3D-форме по меньшей мере части поверхности объекта.
[0096] Следует понимать, что конкретный порядок, в котором описаны операции на фиг. 6А-6В, является просто примером и не предназначен для указания на то, что описанный порядок является единственным порядком, в котором могут быть выполнены операции. Специалисты в данной области техники могут понять различные пути переупорядочения операций, описанных здесь. Дополнительно, следует отметить, что детали других процессов, описанных здесь относительно других способов, описанных здесь (например, способов 200 и 700), также применимы аналогичным образом к способу 600, описанному выше в отношении фиг. 6А-6В.
[0097] Фиг. 7 показывает блок-схему последовательности операций способа 700 получения и запоминания данных от 3D-сканера согласно некоторым вариантам осуществления. Способ 700 выполняется в 3D-сканере (например, 3D-сканере 100, фиг. 1, 3, и 5). 3D-сканер включает в себя один или более оптических датчиков. В некоторых вариантах осуществления, 3D-сканер включает в себя процессоры для генерирования 3D-реконструкции по меньшей мере части формы поверхности объекта. В некоторых вариантах осуществления, 3D-сканер является портативным, ручным 3D-сканером (например, имеет размеры, меньшие 30 см * 30 см * 30 см, так что все устройство может помещаться внутри коробки размером 30 см * 30 см * 30 см). Некоторые операции в способе 700 могут быть объединены, и/или порядок некоторых операций может быть изменен. Для облегчения объяснения, способ 700 описан как способ, выполняемый 3D-сканером 100.
[0098] Дополнительной проблемой при проектировании 3D-сканеров является то, что 3D-сканеры создают огромное количество данных во время сканирований. Способ 700 улучшает процесс запоминания данных от 3D-сканера посредством идентификации областей сканируемого объекта, для которых уже были собраны достаточные данные. Способ 700 затем отбрасывает некоторые или все данные, собранные для этих областей, когда сканирование продолжается. Таким образом, способ 700 уменьшает общее количество данных, собираемых при сканировании объекта, что улучшает устройство посредством уменьшения емкости памяти, необходимой для устройства, или, альтернативно, посредством обеспечения возможности использовать память, которая присутствует в устройстве, тогда, когда это наиболее необходимо, что имеет результатом 3D-реконструкции более высокого качества.
[0099] Для этой цели, сканер 100 сканирует (702), с использованием одного или более оптических датчиков, объект, имеющий поверхность. Сканирование генерирует первые данные, соответствующие трехмерной (3D) форме поверхности объекта.
[00100] В некоторых вариантах осуществления, один или более датчиков включают в себя камеру. В некоторых вариантах осуществления, сканирование объекта включает в себя выполнение первого набора итераций (например, множества итераций) проецирования пространственной структуры света на поверхность объекта; и, в то время как пространственная структура света проецируется на поверхность объекта, получение, с использованием камеры, соответствующего изображения поверхности объекта. В некоторых вариантах осуществления, сканирование объекта включает в себя генерирование 3D-реконструкции по меньшей мере части формы поверхности объекта на основании соответствующих изображений, полученных в первом наборе итераций.
[00101] Для каждой части из множества соответствующих частей поверхности объекта, сканер 100 (704) определяет, соответствует ли количество или качество первых данных заданному порогу, который соответствует количеству или качеству данных, необходимых для реконструкции формы части поверхности объекта с заданной точностью (или разрешением).
[00102] В некоторых вариантах осуществления, пользователь может конфигурировать заданную точность (или разрешение). Например, пользователь может конфигурировать 3D-сканер для настройки необходимой точности и/или разрешения. Например, пользователь может конфигурировать сканер 100 для получения 3D-реконструкции с точностью по меньшей мере 0,1 мм, 0,2 мм, 0,3 мм, 0,4 мм, или 0,5 мм; или, альтернативно, с разрешением 0,25 мм, 0,5 мм, 0,75 мм, или 1 мм. Указание на количество или качество данных настраивается на основе точности и/или разрешения, обеспечиваемых пользователем. Например, когда пользователь настраивает сканер 100 на получение 3D-реконструкции с точностью 0,5 мм, показательный воксел в предварительном изображении визуализируется в зеленом цвете, когда имеется достаточно данных, чтобы соответствующий воксел представлял поверхность объекта с точностью 0,5 мм. Однако, если пользователь настраивает сканер 100 на получение 3D-реконструкции с точностью 0,1 мм, показательный воксел в предварительном изображении визуализируется в зеленом цвете, когда имеется достаточно данных, чтобы соответствующий воксел представлял поверхность объекта с точностью 0,1 мм. Для обеспечения для пользователя обратной связи по количеству и/или качеству, которая основана на точности и/или разрешении, необходимо, чтобы пользователь помог сканеру 100 обеспечить удовлетворительное сканирование и при этом уменьшить емкость памяти (например, запоминающего устройства), необходимой для этого.
[00103] После определения, для каждой соответствующей части из множества частей поверхности объекта, соответствует ли количество или качество первых данных заданному порогу, который соответствует количеству или качеству данных, необходимых для реконструкции формы части поверхности объекта с заданной точностью, сканер 100 дополнительно сканирует (706) объект с использованием одного или более оптических датчиков. Дополнительное сканирование генерирует вторые данные, соответствующие трехмерной форме поверхности объекта.
[00104] В некоторых вариантах осуществления, дополнительное сканирование объекта включает в себя выполнение второго набора итераций (например, одной или более итераций) проецирования пространственной структуры света на поверхность объекта; и, в то время как пространственная структура света проецируется на поверхность объекта, получение, с использованием камеры, соответствующего изображения поверхности объекта. В некоторых вариантах осуществления, дополнительное сканирование объекта включает в себя генерирование 3D-реконструкции по меньшей мере части формы поверхности объекта на основании одного или более соответствующих изображений, полученных во втором наборе из одной или более итераций. В некоторых вариантах осуществления, сканер 100 совмещает 3D-реконструкцию на основании второго набора из одной или более итераций с 3D-реконструкцией на основании первого набора из одной или более итераций (например, как описано выше в отношении операции 212-b 3D-совмещения, фиг. 2) перед идентификацией частей вторых данных, которые соответствуют соответствующим частям поверхности объекта, для которых количество или качество первых данных соответствовала заданному порогу. В некоторых вариантах осуществления, сканер 100 идентифицирует, с использованием совмещенной 3D-реконструкции на основании второго набора из одной или более итераций, части вторых данных, которые соответствуют соответствующим частям поверхности объекта, для которых количество или качество первых данных соответствовало заданному порогу.
[00105] Сканер 100 отбрасывает (708) по меньшей мере часть вторых данных. Отброшенная часть вторых данных соответствует соответствующим частям поверхности объекта, для которых количество или качество первых данных соответствовало заданному порогу (например, идентифицированным частям, описанным выше). В некоторых вариантах осуществления, сканер 100 запоминает (например, в памяти) комплементарную часть вторых данных, которая соответствует соответствующим частям поверхности объекта, для которых количество или качество первых данных не соответствовало заданному порогу.
[00106] Следует понимать, что конкретный порядок, в котором описаны операции на фиг. 7, является просто примером и не предназначен для указания на то, что описанный порядок является единственным порядком, в котором могут быть выполнены операции. Специалисты в данной области техники могут понять различные пути переупорядочения операций, описанных здесь. Дополнительно, следует отметить, что детали других процессов, описанных здесь относительно других способов, описанных здесь (например, способов 200 и 600), также применимы аналогичным образом к способу 700, описанному выше в отношении фиг. 7.
[00107] Приведенное выше описание в целях объяснения было обеспечено со ссылкой на конкретные варианты осуществления. Однако не предполагается, что иллюстративное описание, приведенное выше, является исчерпывающим или ограничивает изобретение раскрытыми точными формами. Многие модификации и изменения возможны ввиду вышеупомянутых идей изобретения. Варианты осуществления были выбраны и описаны для наилучшего объяснения принципов изобретения и его практических применений, чтобы обеспечить специалистам в данной области техники возможность наилучшего использования изобретения и различных описанных вариантов осуществления с различными модификациями, подходящими к конкретному предполагаемому использованию.
[00108] Также следует понимать, что хотя термины «первый», «второй», и т.д. используются здесь в некоторых примерах для описания различных элементов, эти элементы не должны ограничиваться этими терминами. Эти термины используются только для отличения одного элемента от другого. Например, первый датчик может называться вторым датчиком, и, подобным образом, второй датчик может называться первым датчиком, не выходя за рамки объема различных описанных вариантов осуществления. Первый датчик и второй датчик являются датчиками, но они не являются одинаковыми датчиками, если контекст явно не указывает на иное.
[00109] Терминология, используемая в описании различных вариантов осуществления, описанных здесь, обеспечена только с целью описания конкретных вариантов осуществления и не предназначена для ограничения. Предполагается, что используемые в описании различных описанных вариантов осуществления формы единственного числа включают в себя также формы множественного числа, если контекст явно не указывает на иное. Следует также понимать, что термин «и/или», используемый здесь, относится к и включает в себя любые и все возможные комбинации одного или более связанных перечисленных элементов. Следует также понимать, что термины «включает в себя», «включающий в себя», «содержит», и/или «содержащий», используемые в этом описании изобретения, указывают на наличие заданных признаков, единых объектов, этапов, операций, элементов, и/или компонентов, но не исключают наличия или добавления одного или более других признаков, единых объектов, этапов, операций, элементов, компонентов, и/или их групп.
[00110] Используемый здесь термин «если» может толковаться как термин, означающий «когда» или «после» или «в ответ на определение» или «в ответ на детектирование» в зависимости от контекста. Подобным образом, фраза «если определено» или «если детектировано [заданное условие или событие]» может толковаться как фраза, означающая «после определения» или «в ответ на определение» или «после детектирования [заданного условия или события]» или «в ответ на детектирование [заданного условия или события]» в зависимости от контекста.