RU2810240C2 - Formation of texture models using a portable scanner - Google Patents

Formation of texture models using a portable scanner Download PDF

Info

Publication number
RU2810240C2
RU2810240C2 RU2021125867A RU2021125867A RU2810240C2 RU 2810240 C2 RU2810240 C2 RU 2810240C2 RU 2021125867 A RU2021125867 A RU 2021125867A RU 2021125867 A RU2021125867 A RU 2021125867A RU 2810240 C2 RU2810240 C2 RU 2810240C2
Authority
RU
Russia
Prior art keywords
scanner
color
pixel
value
data
Prior art date
Application number
RU2021125867A
Other languages
Russian (ru)
Other versions
RU2021125867A (en
Inventor
Антон БОСНИГА
Original Assignee
Артек Юроп С.А Р.Л.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Артек Юроп С.А Р.Л. filed Critical Артек Юроп С.А Р.Л.
Publication of RU2021125867A publication Critical patent/RU2021125867A/en
Application granted granted Critical
Publication of RU2810240C2 publication Critical patent/RU2810240C2/en

Links

Images

Abstract

FIELD: generation of texture models using movable scanners.
SUBSTANCE: when scanning an object, colour data is generated when shooting from multiple positions of the 3D scanner relative to the object being scanned. The proposed method further includes generating a pixel map of the object's surface using the object's colour data. The pixel map of the object includes for each corresponding pixel from a plurality of pixels: the colour value of the corresponding point on the surface of the object; the value of a non-colour property, such as texture, for a point on the surface of a scanned object.
EFFECT: creation of a physically accurate texture model of an object, in which the texture of an object can be accurately shown at various scanning angles and lighting conditions of the object.
30 cl, 14 dwg

Description

ОБЛАСТЬ ТЕХНИКИTECHNICAL FIELD

[0001] Настоящее изобретение в целом относится к формированию моделей текстуры и, в частности, к формированию моделей текстуры с помощью портативных сканеров, таких как трехмерные сканеры на основе структурированной подсветки и/или фотограмметрические сканеры. [0001] The present invention generally relates to the generation of texture models and, in particular, to the generation of texture models using handheld scanners such as 3D structured illumination scanners and/or photogrammetric scanners.

УРОВЕНЬ ТЕХНИКИBACKGROUND OF THE ART

[0002] Целью компьютерной графики является точная модель физического внешнего вида объектов, включая их цвет, при разных условиях освещенности. Для этого необходимо иметь модель текстуры для объекта. Формирование физически точной модели является более сложным, чем простое фотографирование объекта для выявления его цвета. Например, когда человек фотографирует объект, фотография отображает только то, как выглядит объект при конкретных условиях освещенности, которые имели место во время фотографирования объекта. Кроме того, некоторые условия освещенности, такие как вспышка, могут оставить случайные блики на фотографии (например, области объекта, которые выглядят слишком яркими и блестящими). [0002] The goal of computer graphics is to accurately model the physical appearance of objects, including their color, under different lighting conditions. To do this you need to have a texture model for the object. Forming a physically accurate model is more complex than simply photographing an object to reveal its color. For example, when a person takes a photograph of an object, the photograph represents only what the object looks like under the specific lighting conditions that occurred at the time the object was photographed. Additionally, certain lighting conditions, such as flash, can leave random highlights in the photo (such as areas of the subject that appear too bright and shiny).

[0003] Таким образом, если 3D модель объекта была текстурирована на основании таких фотографий (например, если модель текстуры была сформирована с применением таких фотографий) без какой-либо дополнительной обработки, 3D модель не будет выглядеть физически точной. Основная трудность в формировании физически точных моделей текстуры заключается в создании модели физических характеристик, которые влияют на внешний вид объекта, а не, например, характеристик, имеющихся в отдельной фотографии. Такая модель является наиболее полезной для анимаций, для того, чтобы текстуру объекта можно было показать с разных точек зрения и в различных условиях освещенности. [0003] Thus, if a 3D model of an object was textured based on such photographs (eg, if the texture model was generated using such photographs) without any additional processing, the 3D model would not appear physically accurate. The main difficulty in generating physically accurate texture models is creating a model of the physical characteristics that affect the appearance of an object, rather than, for example, the characteristics present in a single photograph. This model is most useful for animations, so that the texture of an object can be shown from different points of view and in different lighting conditions.

СУЩНОСТЬ ИЗОБРЕТЕНИЯSUMMARY OF THE INVENTION

[0004] В соответствии с некоторыми вариантами осуществления предложен способ формирования модели текстуры для объекта. Способ включает в себя сканирование объекта, имеющего поверхность. При сканировании формируются данные цвета из множества пространственных положений 3D сканера относительно объекта. Способ дополнительно включает в себя формирование с помощью по меньшей мере данных цвета пиксельной карты поверхности объекта, причем пиксельная карта содержит для каждого соответствующего пикселя из множества пикселей: значение цвета соответствующей точки на поверхности объекта; и значение для нецветового свойства соответствующей точки на поверхности объекта.[0004] In accordance with some embodiments, a method for generating a texture model for an object is provided. The method includes scanning an object having a surface. When scanning, color data is generated from multiple spatial positions of the 3D scanner relative to the object. The method further includes generating, using at least the color data, a pixel map of the surface of an object, wherein the pixel map contains, for each corresponding pixel of the plurality of pixels: a color value of a corresponding point on the surface of the object; and a value for the non-color property of the corresponding point on the object's surface.

[0005] В соответствии с некоторыми вариантами осуществления предложена электронная система для формирования моделей текстуры объектов. Электронная система содержит сканер (например, портативный сканер, такой как портативный 3D сканер), который содержит один или более оптических датчиков, один или более процессоров и запоминающее устройство. В запоминающем устройстве хранятся команды, которые, при их исполнении одним или более процессорами, инициируют выполнение одним или более процессорами способов, описанных в настоящем документе. [0005] In accordance with some embodiments, an electronic system is provided for generating texture models of objects. The electronic system includes a scanner (eg, a handheld scanner, such as a handheld 3D scanner) that contains one or more optical sensors, one or more processors, and a storage device. The storage device stores instructions that, when executed by one or more processors, cause one or more processors to execute the methods described herein.

[0006] В соответствии с некоторыми вариантами осуществления предложен постоянный машиночитаемый носитель данных. В постоянном машиночитаемом носителе данных хранятся команды, которые, при их выполнении электронной системой с одним или более процессорами, запоминающим устройством и портативным сканером, который содержит один или более оптических датчиков, инициируют выполнение одним или более процессорами способов, описанных в настоящем документе. [0006] In accordance with some embodiments, a non-transitory computer-readable storage medium is provided. A non-transitory computer-readable storage medium stores instructions that, when executed by an electronic system having one or more processors, a storage device, and a portable scanner that includes one or more optical sensors, cause one or more processors to perform the methods described herein.

КРАТКОЕ ОПИСАНИЕ ГРАФИЧЕСКИХ МАТЕРИАЛОВBRIEF DESCRIPTION OF GRAPHIC MATERIALS

[0007] Для лучшего понимания различных описанных вариантов осуществления должна быть приведена ссылка на приведенное ниже описание вариантов осуществления вместе с прилагаемыми графическими материалами, на которых одинаковые ссылочные позиции обозначают соответствующие части на всех фигурах.[0007] For a better understanding of the various embodiments described, reference is made to the following description of the embodiments in conjunction with the accompanying drawings, in which like reference numerals designate corresponding portions throughout the figures.

[0008] На Фиг.1A-1B представлены различные виды 3D сканера в соответствии с некоторыми вариантами осуществления.[0008] Figures 1A-1B show various views of a 3D scanner in accordance with some embodiments.

[0009] На Фиг.2 представлена блок-схема 3D сканера в соответствии с некоторыми вариантами осуществления. [0009] FIG. 2 is a block diagram of a 3D scanner in accordance with some embodiments.

[0010] На Фиг.3 представлено схематическое изображение среды сбора данных в соответствии с некоторыми вариантами осуществления. [0010] FIG. 3 is a schematic illustration of a data acquisition environment in accordance with some embodiments.

[0011] На Фиг.4 представлен пример возможного применения данных, полученных из среды сбора данных, показанной на Фиг.3 в соответствии с некоторыми вариантами осуществления. [0011] FIG. 4 illustrates an example of a possible application of data obtained from the data acquisition environment shown in FIG. 3 in accordance with some embodiments.

[0012] На Фиг.5A-5C проиллюстрированы схематические примеры изображений поверхности объекта, применяемых для формирования текстурированного 3D представления объекта, в соответствии с некоторыми вариантами осуществления.[0012] FIGS. 5A-5C illustrate schematic examples of images of an object's surface used to generate a textured 3D representation of the object, in accordance with some embodiments.

[0013] На Фиг.5D проиллюстрирован схематический пример текстурированного 3D представления объекта показанного на Фиг.5A-5C, сформированного в соответствии с некоторыми вариантами осуществления.[0013] Figure 5D illustrates a schematic example of a textured 3D representation of the object shown in Figures 5A-5C generated in accordance with some embodiments.

[0014] На Фиг.6 представлен сборочный чертеж 3D сканера в соответствии с некоторыми вариантами осуществления. [0014] Figure 6 is an assembly drawing of a 3D scanner in accordance with some embodiments.

[0015] На Фиг.7A-7D представлена блок-схема способа формирования модели текстуры для объекта в соответствии с некоторыми вариантами осуществления.[0015] FIGS. 7A-7D are a flow diagram of a method for generating a texture model for an object in accordance with some embodiments.

ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯDESCRIPTION OF IMPLEMENTATION OPTIONS

[0016] В описанных вариантах осуществления применяют данные цвета, полученные посредством портативного сканера, для формирования реалистичных карт текстуры объектов. В некоторых вариантах осуществления портативные сканеры представляют собой трехмерные (3D) сканеры (например, устройства, которые создают 3D модель поверхности объекта). Эти 3D сканеры применяют для формирования реалистичных текстурированных 3D представлений физических объектов. Некоторые 3D сканеры созданы на основе подхода структурированной подсветки, описанного ниже, при этом другие созданы на основе фотограмметрического подхода. Трехмерные сканеры применяют во многих областях, включая промышленное проектирование и производство, компьютерную анимацию, науку, образование, медицину, искусство, дизайн и другие.[0016] The described embodiments use color data obtained through a handheld scanner to generate realistic texture maps of objects. In some embodiments, handheld scanners are three-dimensional (3D) scanners (eg, devices that create a 3D model of the surface of an object). These 3D scanners are used to generate realistic, textured 3D representations of physical objects. Some 3D scanners are based on the structured illumination approach described below, while others are based on the photogrammetric approach. 3D scanners are used in many fields, including industrial engineering and manufacturing, computer animation, science, education, medicine, art, design and others.

[0017] С обычными 3D сканерами единственным типом информации о материале для каждого пикселя, доступной пользователю, является карта цветов, скомпонованная при несогласованной освещенности. С помощью таких сканеров на основании измеренных значений данной области поверхности объекта для каждого пикселя формируется значение красного, зеленого, синего (RGB - англ.: red, green, blue). Например, различные значения цвета для каждого пикселя усредняют или одно из значений цвета выбирают в качестве характерного (например, наиболее яркий пиксель). Иными словами, текстуры, формируемые этими сканерами, компонуют без учета характера изменения отраженного света, а также направления и интенсивности, при которых был зарегистрирован каждый пиксель цветовой текстуры. Полученные цветовые карты содержат несогласованную информацию об освещении и затенении и не содержат информации о материале, которая бы способствовала фотореалистической прорисовке объекта. [0017] With conventional 3D scanners, the only type of per-pixel material information available to the user is a color map compiled under inconsistent illumination. With the help of such scanners, based on the measured values of a given area of the object’s surface, a red, green, blue value (RGB - English: red, green, blue) is formed for each pixel. For example, the different color values for each pixel are averaged, or one of the color values is selected as representative (eg, the brightest pixel). In other words, the textures generated by these scanners are composed without taking into account the nature of the change in reflected light, as well as the direction and intensity at which each pixel of the color texture was recorded. The resulting color maps contain inconsistent lighting and shading information and do not contain material information that would support a photorealistic rendering of the object.

[0018] В качестве альтернативы, для обычных систем, которые специально спроектированы для формирования фотореалистических моделей текстуры материалов, обычно требуются сложные системы из точно позиционированных и тщательно откалиброванных источников света и камер. [0018] Alternatively, conventional systems that are specifically designed to generate photorealistic material texture models typically require complex systems of precisely positioned and carefully calibrated light sources and cameras.

[0019] Настоящее изобретение обеспечивает системы и способы, которые отделяют несогласованные освещенность и затенение от истинного цвета поверхности объекта с помощью портативного сканера (например, 3D сканера) без необходимости в сложных системах из точно позиционированных и тщательно откалиброванных источников света и камер. Кроме того, системы и способы, предложенные в настоящем документе, позволяют измерять свойства материала (отражательную способность, цвет зеркальности, металличность, шероховатость поверхности) для каждого пикселя карты текстуры для объекта. Это выполняют путем применения соответствующих пикселей из различных изображений поверхности объекта (например, зарегистрированных в разных пространственных положениях при перемещении сканера относительно объекта) вместе с данными отслеживания, которые предоставляют информацию о пространственных положениях, в которых были зарегистрированы различные значения. Иными словами, в некоторых вариантах осуществления 3D сканер собирает значения цвета (например, значения RGB) для разных пикселей и записывает углы, под которыми были зарегистрированы эти значения. Значения цвета от соответствующих пикселей связаны со свойствами материала посредством уравнений, которые описывают характер изменения падения света под разными углами на поверхность объекта (например, ламбертовская диффузная модель или более сложная модель текстуры). Данный процесс приводит к отдельному, скорректированному значению RGB для каждой пиксельной точки, тем самым устраняя случайные блики. Кроме того, можно вычислить свойства, такие как максимальное значение зеркальности и угол, при котором наблюдается данное значение. [0019] The present invention provides systems and methods that separate inconsistent illumination and shading from the true color of an object's surface using a handheld scanner (eg, a 3D scanner) without the need for complex systems of precisely positioned and carefully calibrated light sources and cameras. In addition, the systems and methods proposed herein allow the measurement of material properties (reflectivity, specularity color, metallicity, surface roughness) for each pixel of the texture map for an object. This is accomplished by applying corresponding pixels from different images of the object's surface (eg, recorded at different spatial positions as the scanner moves relative to the object) together with tracking data that provides information about the spatial positions at which the different values were recorded. That is, in some embodiments, the 3D scanner collects color values (eg, RGB values) for different pixels and records the angles at which those values were recorded. The color values from the corresponding pixels are related to material properties through equations that describe how the incidence of light at different angles changes on the surface of an object (for example, a Lambertian diffuse model or a more complex texture model). This process results in a separate, adjusted RGB value for each pixel point, thereby eliminating stray reflections. In addition, properties such as the maximum specularity value and the angle at which this value is observed can be calculated.

[0020] Данные системы и способы позволяют достичь существенных улучшений текстуры моделей, сформированных путем 3D сканирования. Кроме того, эти системы и способы содействуют определению различных свойств материала.[0020] These systems and methods can achieve significant improvements in the texture of models formed by 3D scanning. In addition, these systems and methods facilitate the determination of various material properties.

[0021] Далее будут рассмотрены варианты осуществления, примеры которых проиллюстрированы на прилагаемых графических материалах. В последующем описании изложены многочисленные конкретные детали для обеспечения полного понимания различных описанных вариантов осуществления. Однако для специалиста в данной области техники будет очевидно, что различные описанные варианты осуществления могут быть осуществлены на практике без этих конкретных деталей. В иных случаях способы, процедуры, компоненты, схемы и сети, известные специалистам в данной области техники, не описываются подробно, чтобы неоправданно не затруднять понимание изобретательских аспектов вариантов осуществления.[0021] Embodiments will now be discussed, examples of which are illustrated in the accompanying drawings. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the various embodiments described. However, it will be apparent to one skilled in the art that the various embodiments described may be practiced without these specific details. Otherwise, methods, procedures, components, circuits and networks known to those skilled in the art are not described in detail so as not to unduly obscure the inventive aspects of the embodiments.

[0022] На Фиг.1A-1B представлены виды спереди и сзади 3D сканера 100 в соответствии с некоторыми вариантами осуществления. В некоторых вариантах осуществления 3D сканер 100 применяют для получения данных, на основании которых можно сформировать реалистичные цветовые карты объектов. Однако, следует понимать, что 3D сканер 100 представляет собой только пример такого устройства. Для формирования реалистичных цветовых карт объектов в соответствии с вариантами осуществления настоящего изобретения можно также применять другие устройства (такие как фотограмметрические сканеры).[0022] FIGS. 1A-1B show front and rear views of a 3D scanner 100 in accordance with some embodiments. In some embodiments, a 3D scanner 100 is used to obtain data from which realistic color maps of objects can be generated. However, it should be understood that the 3D scanner 100 is only an example of such a device. Other devices (such as photogrammetric scanners) can also be used to generate realistic color maps of objects in accordance with embodiments of the present invention.

[0023] Сканер 100 содержит корпус 102 основной части, рукоятку 108 и батарейный отсек 110 (например, который содержит батарею). В некоторых вариантах осуществления 3D сканер 100 представляет собой портативный, переносной сканер. В связи с этим в некоторых вариантах осуществления 3D сканер 100 имеет размеры менее 30 см х 30 см х 30 см (например, соответствующие внутренним размерам коробки с размерами 30 см х 30 см х 30 см). В некоторых вариантах осуществления 3D сканер 100 является достаточно легким для ношения человеком в одной руке (например, 3D сканер 100 весит около 2,5 кг). [0023] The scanner 100 includes a main body body 102, a handle 108, and a battery compartment 110 (eg, which contains a battery). In some embodiments, the 3D scanner 100 is a portable, portable scanner. Therefore, in some embodiments, the 3D scanner 100 has dimensions smaller than 30 cm x 30 cm x 30 cm (eg, corresponding to the internal dimensions of a box measuring 30 cm x 30 cm x 30 cm). In some embodiments, the 3D scanner 100 is light enough to be carried by a person in one hand (eg, the 3D scanner 100 weighs about 2.5 kg).

[0024] В некоторых вариантах осуществления корпус 102 основной части можно отделять от рукоятки 108. В некоторых вариантах осуществления корпус 102 основной части можно установить (например, без рукоятки 108 и батарейного отсека 110) на отдельном устройстве (например, сканирующем манипуляторе с электроприводом) посредством точек 112 крепления (например, точек 112a-112c крепления). Таким образом, 3D сканер 100 можно преобразовать из переносного сканера в промышленный или лабораторный сканер. [0024] In some embodiments, the body body 102 may be detachable from the handle 108. In some embodiments, the body body 102 may be mounted (e.g., without the handle 108 and battery compartment 110) on a separate device (e.g., a motorized scanning arm) by attachment points 112 (eg, attachment points 112a-112c). Thus, the 3D scanner 100 can be converted from a portable scanner to an industrial or laboratory scanner.

[0025] В некоторых вариантах осуществления 3D сканер 100 формирует 3D модель объекта путем проецирования пространственной структуры освещения (в настоящем документе упоминается как «структурированная подсветка») на поверхность объекта и при этом пространственную структуру освещения проецируют на поверхность объекта, получая посредством оптического датчика (например, камеры) изображение поверхности объекта. В связи с этим корпус 102 основной части вмещает один или более внутренних источников света (например, лазер 606 VCSEL, Фиг.6) и оптическую систему 104 источника. Один или более внутренних источников света проецируют свет стробоскопически (например, проецируют пульсирующий свет) с определенной частотой через пространственно-структурированный слайд, расположенный внутри корпуса 102 основной части (например, слайд 616, Фиг.6), через оптическую систему 104 источника на поверхность объекта. Изображения структурированной подсветки, спроецированные на поверхность объекта, получают посредством оптической системы 106 камеры, которая помещена в корпус 102 основной части. Одна или более камер/датчиков (например, ПЗС-детекторы 602, Фиг.6) записывает изображения структурированной подсветки, спроецированные на поверхность объекта. 3D модель формы поверхности объекта можно определить с помощью искажений в структуре света, спроецированного на поверхность объекта (т. е. когда искажения вызваны формой поверхности объекта), как более подробно описано в патенте США № 7 768 656, озаглавленном System and Method for Three-Dimensional Measurement of the Shape of Material Objects, содержание которого полностью включено в настоящий документ посредством ссылки. [0025] In some embodiments, the 3D scanner 100 generates a 3D model of an object by projecting a spatial illumination structure (referred to herein as “structured illumination”) onto the surface of the object, and wherein the spatial illumination structure is projected onto the object surface as obtained through an optical sensor (e.g. , cameras) image of the surface of the object. In this regard, the main body housing 102 houses one or more internal light sources (eg, VCSEL laser 606, FIG. 6) and a source optical system 104. One or more internal light sources project light stroboscopically (eg, project pulsating light) at a specific frequency through a spatially structured slide located within the main body housing 102 (eg, slide 616, FIG. 6) through the source optical system 104 onto the surface of the object. . Structured illumination images projected onto the surface of an object are obtained through a camera optical system 106 that is housed in the main body body 102. One or more cameras/sensors (eg, CCD detectors 602, FIG. 6) records structured illumination images projected onto the surface of the object. A 3D model of the surface shape of an object can be determined using distortions in the pattern of light projected onto the object's surface (i.e., when the distortions are caused by the object's surface shape), as described in more detail in US Pat. No. 7,768,656, entitled System and Method for Three- Dimensional Measurement of the Shape of Material Objects, the contents of which are incorporated herein by reference in their entirety.

[0026] В некоторых вариантах осуществления внутренние источники света представляют собой лазеры. В некоторых вариантах осуществления внутренние источники света представляют собой лазеры поверхностного излучения с вертикальным резонатором (VCSEL - англ.: vertical-cavity surface-emitting lasers). В некоторых вариантах осуществления 3D сканер 100 работает как источник света класса 1, что означает, что лазеры рассматриваются как источник света класса 1 в любой точке пространства снаружи корпуса 102 основной части (т. е. как определено в разделе 21 Свода федеральных правил (CFR - англ.: Code of Federal Regulations), часть 1040 на дату подачи настоящего изобретения). [0026] In some embodiments, the internal light sources are lasers. In some embodiments, the internal light sources are vertical-cavity surface-emitting lasers (VCSELs). In some embodiments, the 3D scanner 100 operates as a Class 1 light source, which means that the lasers are considered a Class 1 light source at any point in space outside the body housing 102 (i.e., as defined in Title 21 of the Code of Federal Regulations (CFR). English: Code of Federal Regulations), part 1040 as of the filing date of the present invention).

[0027] Следует отметить, что в некоторых вариантах осуществления 3D сканер 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 быть переносным, безопасным и работать при обычных дневных условиях (например, при 120 000 люкс, 100 000 люкс, 20 000 люкс, 2000 люкс или 1000 люкс). Это позволяет сканеру 100 иметь относительно короткое минимальное рабочее расстояние (например, минимальное рабочее расстояние, которое не превышает 35 мм).[0027] It should be noted that in some embodiments, the 3D scanner 100 provides sufficient illumination to the surface of the object such that images acquired under daytime outdoor conditions have a signal-to-noise ratio sufficient to reconstruct the 3D shape of at least a portion of the object (e.g. with an accuracy of at least 0.1 mm, 0.2 mm, 0.3 mm, 0.4 mm or 0.5 mm or alternatively with a resolution of 0.25 mm, 0.5 mm, 0.75 mm or 1 mm). A common approach to ensure that a laser operates in the Class 1 range is to house the laser in a larger housing so that by the time the light exits the housing, the light has been attenuated sufficiently to be considered Class 1. This approach is not suitable for handheld scanners. since portable scanners must be relatively small in size (eg, less than 30 cm x 30 cm x 30 cm). Some embodiments of the present invention operate as light sources housed in the main body housing 102 as Class 1 light sources with appropriate selection of pulse width, peak power, pulse repetition rate, and/or duty cycle allowing the scanner 100 to be portable, safe, and operational under normal daytime conditions (for example, at 120,000 lux, 100,000 lux, 20,000 lux, 2000 lux, or 1000 lux). This allows the scanner 100 to have a relatively short minimum working distance (eg, a minimum working distance that does not exceed 35 mm).

[0028] Кроме того, для увеличения отношения сигнал/шум от данных структурированной подсветки и для различения данных структурированной подсветки от данных текстуры (например, цвета) в некоторых вариантах осуществления описанные выше VCSEL лазеры работают на частоте, которая находится за пределами видимого спектра (например, частоте инфракрасного (ИК) диапазона). В таких вариантах осуществления корпус 102 основной части дополнительно вмещает объектив камеры (например, оптическую систему 106 камеры), светоделительное устройство ИК/видимого спектра, которое направляет свет ИК-диапазона к первому оптическому датчику (например, ПЗС-детектору 602-a, Фиг.6) и свет видимого диапазона ко второму оптическому датчику (например, ПЗС-детектору 602-b, Фиг.6). В некоторых вариантах осуществления данные от первого оптического датчика детектируются синхронно со стробоскопическим светом от одного или более внутренних источников света для того, чтобы данные со стробоскопической частотой детектировались преимущественно по отношению к информации на других частотах. Это можно выполнить, например, посредством синхронной демодуляции или стробирования первого оптического датчика для сбора данных синхронно с одним или более источников света, излучающих свет. [0028] Additionally, to increase the signal-to-noise ratio of structured illumination data and to distinguish structured illumination data from texture (e.g., color) data, in some embodiments, the VCSEL lasers described above operate at a frequency that is outside the visible spectrum (e.g. , frequency of the infrared (IR) range). In such embodiments, the body body 102 further houses a camera lens (e.g., camera optical system 106), an IR/visible beam splitter that directs IR light to the first optical sensor (e.g., CCD detector 602-a, FIG. 6) and visible light to a second optical sensor (eg, CCD detector 602-b, FIG. 6). In some embodiments, data from the first optical sensor is detected in synchronization with strobe light from one or more internal light sources such that data at the strobe frequency is detected preferentially relative to information at other frequencies. This can be accomplished, for example, by synchronously demodulating or gating the first optical sensor to collect data synchronously with one or more light emitting light sources.

[0029] В некоторых вариантах осуществления второй оптический датчик, помещенный в корпус 102 основной части (например, ПЗС-детектор 602-b, Фиг.6), получает данные текстуры (например, данные цвета). В некоторых вариантах осуществления данные текстуры (например, изображения) применяют одновременно для прорисовки 3D реконструкции в цвете, а также для отслеживания положения и/или вращения сканера 100 (например, посредством фотограмметрического анализа), которые в свою очередь применяют для регистрации (например, согласования) данных структурированной подсветки (например, данных 3D формы), полученных 3D сканером 100 в разных положениях относительно объекта (например, описанных ниже со ссылкой на Фиг.3).[0029] In some embodiments, a second optical sensor housed in the body body 102 (eg, CCD detector 602-b, FIG. 6) receives texture data (eg, color data). In some embodiments, texture data (e.g., images) is used simultaneously to render a 3D reconstruction in color and to track the position and/or rotation of scanner 100 (e.g., through photogrammetric analysis), which in turn is used for registration (e.g., matching ) structured illumination data (eg, 3D shape data) acquired by the 3D scanner 100 at various positions relative to the object (eg, described below with reference to FIG. 3).

[0030] В некоторых вариантах осуществления корпус 102 основной части также вмещает один или более датчиков движения, которые отслеживают движение сканера 100. Один или более датчиков движения необязательно содержит 3-осевой акселерометр, 3-осевой гироскоп и 3-осевой магнитометр для измерения положения и/или вращения сканера 100. В некоторых вариантах осуществления один или более датчиков движения содержит все три из 3-осевого акселерометра, 3-осевого гироскопа и 3-осевого магнитометра и, таким образом, называется датчиком с девятью (9) степенями свободы (DOF - англ.: degree of freedom), несмотря на тот факт, что сканер 100 имеет только шесть механических степеней свободы (т. е. три степени свободы положения и три - вращения). Данные положения и/или вращения от одного или более датчиков движения применяют для отслеживания положения и/или вращения сканера 100 (например, путем применения фильтра Калмана), который в свою очередь применяют для регистрации (например, согласования) данных структурированной подсветки (например, данных 3D формы) и данных цвета (например, изображений), полученных сканером 100 в разных положениях относительно объекта (например, описанных ниже со ссылкой на Фиг.3). [0030] In some embodiments, the main body housing 102 also houses one or more motion sensors that monitor the movement of the scanner 100. The one or more motion sensors optionally include a 3-axis accelerometer, a 3-axis gyroscope, and a 3-axis magnetometer for measuring position and /or rotation of the scanner 100. In some embodiments, one or more motion sensors comprise all three of a 3-axis accelerometer, a 3-axis gyroscope, and a 3-axis magnetometer and is thus referred to as a nine (9) degrees of freedom (DOF) sensor. English: degree of freedom), despite the fact that the scanner 100 has only six mechanical degrees of freedom (i.e. three degrees of freedom of position and three of rotation). Position and/or rotation data from one or more motion sensors is used to track the position and/or rotation of scanner 100 (e.g., by applying a Kalman filter), which in turn is used to record (e.g., match) structured illumination data (e.g., data 3D shape) and color data (eg, images) acquired by the scanner 100 at various positions relative to the object (eg, described below with reference to FIG. 3).

[0031] Для облегчения встроенной обработки данных (например, для создания по меньшей мере начальной 3D реконструкции объекта), чтобы обеспечить пользователям возможность полностью мобильного сканирования, в некоторых вариантах осуществления корпус 102 основной части вмещает множество процессоров, содержащих одну или более программируемых пользователем вентильных матриц, один или более графических процессоров (ГП - англ.: graphical processing units) и/или один или более ЦП. В некоторых вариантах осуществления корпус 102 основной части содержит достаточно средств обработки для формирования по меньшей мере начальной реконструкции 3D модели объекта (например, предварительный просмотр 3D модели объекта). [0031] To facilitate on-chip data processing (e.g., to generate at least an initial 3D reconstruction of an object) to provide users with a fully mobile scanning capability, in some embodiments, the main body housing 102 houses a plurality of processors containing one or more field programmable gate arrays , one or more graphical processing units (GPUs) and/or one or more CPUs. In some embodiments, the body body 102 contains sufficient processing means to generate at least an initial reconstruction of a 3D model of the object (eg, a preview of the 3D model of the object).

[0032] В некоторых вариантах осуществления корпус 102 основной части дополнительно вмещает дисплей 114, который отображает графический интерфейс пользователя (GUI - англ.: graphical user interface) для сканера 100. Кроме того, в то время как сканер 100 сканирует объект, графический интерфейс пользователя для сканера 100 отображает начальную 3D реконструкцию объекта (например, предварительный просмотр 3D реконструкции объекта). В некоторых вариантах осуществления дисплей 114 представляет собой чувствительный к прикосновению дисплей (иногда называемый сенсорным дисплеем) и, таким образом, может также принимать вводимые пользователем данные (например, начать сканирование, приостановить сканирование, завершить сканирование и иным образом управлять сканером 100). [0032] In some embodiments, the body housing 102 further houses a display 114 that displays a graphical user interface (GUI) for the scanner 100. Additionally, while the scanner 100 scans an object, the graphical user interface for scanner 100, displays an initial 3D reconstruction of the object (eg, a preview of the 3D reconstruction of the object). In some embodiments, display 114 is a touch-sensitive display (sometimes referred to as a touch display) and thus can also accept user input (eg, start scanning, pause scanning, end scanning, and otherwise control scanner 100).

[0033] На Фиг.2 представлена блок-схема 3D сканера 100 и/или компьютерной системы 310 обработки 3D данных, которая принимает данные от 3D сканера 100 и выполняет обработку данных после получения в соответствии с некоторыми вариантами осуществления (совместно сканер 100 и система 310 называются «система 100/310»). Следует отметить, что в некоторых вариантах осуществления различные модули, описанные на Фиг.2, распределяют между 3D сканером и компьютерной системой 310 обработки 3D данных. [0033] FIG. 2 is a block diagram of a 3D scanner 100 and/or a 3D data processing computer system 310 that receives data from a 3D scanner 100 and performs processing on the data upon receipt in accordance with some embodiments (scanner 100 and system 310 together). called the “100/310 system”). It should be noted that in some embodiments, the various modules described in FIG. 2 are distributed between the 3D scanner and the 3D data processing computer system 310.

[0034] Система 100/310 обычно содержит запоминающее устройство 204, один или более процессор(-ов) 202, источник 206 питания, подсистему 208 пользовательского ввода/вывода, датчики 209, источники 211 света и коммуникационную шину 210 для соединения этих компонентов. Процессор(-ы) 202 выполняют модули, программы и/или команды, хранящиеся в запоминающем устройстве 204 и тем самым выполняют операции обработки. [0034] The system 100/310 typically includes a memory 204, one or more processor(s) 202, a power supply 206, a user input/output subsystem 208, sensors 209, light sources 211, and a communications bus 210 for interconnecting these components. Processor(s) 202 execute modules, programs and/or instructions stored in memory device 204 and thereby perform processing operations.

[0035] В некоторых вариантах осуществления процессор(-ы) 202 содержат по меньшей мере один графический процессор. В некоторых вариантах осуществления процессор(-ы) 202 содержат по меньшей мере одну программируемую пользователем вентильную матрицу. [0035] In some embodiments, processor(s) 202 include at least one graphics processor. In some embodiments, processor(s) 202 include at least one field programmable gate array.

[0036] В некоторых вариантах осуществления в запоминающем устройстве 204 хранится одна или более программ (например, наборы команд) и/или структуры данных. В некоторых вариантах осуществления в запоминающем устройстве 204 или на постоянном машиночитаемом носителе данных запоминающего устройства 204 хранятся следующие программы, модули и структуры данных, или их подмножество или супермножество:[0036] In some embodiments, storage device 204 stores one or more programs (eg, instruction sets) and/or data structures. In some embodiments, the following programs, modules, and data structures, or a subset or superset thereof, are stored in memory 204 or non-transitory storage medium of memory 204:

операционная система 212;operating system 212;

модуль 214 фильтра Калмана;Kalman filter module 214;

модуль 216 отслеживания движения; motion tracking module 216;

модуль 218 отслеживания цвета;color tracking module 218;

модуль 220 3D регистрации;3D registration module 220;

модуль 222 унификации цвета;color unification module 222;

модуль 224 объединения;association module 224;

модуль 226 калибрования цвета; color calibration module 226;

модуль 228 текстурирования; иtexturing module 228; And

запоминающее устройство 230, содержащее буфер(-ы), ОЗУ, ПЗУ и/или другое запоминающее устройство, в котором хранятся данные, применяемые и генерируемые системой 100/310. a storage device 230 containing buffer(s), RAM, ROM and/or other storage device that stores data used and generated by the system 100/310.

[0037] Нет необходимости в том, чтобы реализовывать вышеуказанные модули (например, структуры данных и/или программы, содержащие наборы команд) в виде отдельных программных средств, процедур или модулей и, таким образом, различные подмножества этих модулей можно комбинировать или иным образом реорганизовывать в различных вариантах осуществления. В некоторых вариантах осуществления в запоминающем устройстве 204 хранится подмножество вышеуказанных модулей. Кроме того, в запоминающем устройстве 204 могут храниться дополнительные модули, не описанные выше. В некоторых вариантах осуществления модули, хранящиеся в запоминающем устройстве 204 или на постоянном машиночитаемом носителе данных запоминающего устройства 204, обеспечивают команды для реализации соответствующих операций в вышеописанных способах. В некоторых вариантах осуществления некоторые или все из этих модулей могут быть реализованы с помощью специализированных схем аппаратных средств (например, FPGA), которые включают часть или все функции модуля. Один или более вышеуказанных элементов можно выполнять посредством одного или более процессора(-ов) 202.[0037] The above modules (eg, data structures and/or programs containing instruction sets) need not be implemented as separate software tools, procedures or modules, and thus various subsets of these modules can be combined or otherwise rearranged in various embodiments. In some embodiments, memory 204 stores a subset of the above modules. Additionally, memory 204 may store additional modules not described above. In some embodiments, modules stored in storage device 204 or a non-transitory computer readable storage medium of storage device 204 provide instructions for implementing corresponding operations in the methods described above. In some embodiments, some or all of these modules may be implemented using dedicated hardware circuits (eg, FPGAs) that include some or all of the module's functionality. One or more of the above elements may be performed by one or more processor(s) 202.

[0038] В некоторых вариантах осуществления подсистема 208 ввода/вывода соединяет с возможностью связи систему 100/310 с одним или более устройств, таких как одно или более удаленных устройств 236 (например, наружный дисплей) через коммуникационную сеть 250 и/или через проводное или беспроводное соединение. В некоторых вариантах осуществления коммуникационная сеть 250 представляет собой Интернет. В некоторых вариантах осуществления подсистема 208 ввода/вывода соединяет с возможностью связи систему 100/310 с одним или более интегрированных или периферийных устройств, таких как дисплей 114.[0038] In some embodiments, I/O subsystem 208 communicatively connects system 100/310 to one or more devices, such as one or more remote devices 236 (e.g., outdoor display) via communications network 250 and/or via wired or wireless connection. In some embodiments, communications network 250 is the Internet. In some embodiments, I/O subsystem 208 communicatively connects system 100/310 to one or more integrated or peripheral devices, such as display 114.

[0039] В некоторых вариантах осуществления датчики 209 содержат первый оптический датчик, который собирает 3D данные (например, первый ПЗС-детектор, такой как ПЗС-детектор 602-a, Фиг.6), второй оптический датчик, который собирает данные текстуры (например, цвет) (например, второй ПЗС-детектор, такой как ПЗС-детектор 602-b, Фиг.6) и датчик движения (например, датчик 9 DOF, который можно реализовать путем применения микроэлектромеханических систем (MEMS - англ.: microelectromechanical systems), гироскопов и одного или более датчиков Холла). [0039] In some embodiments, sensors 209 include a first optical sensor that collects 3D data (e.g., a first CCD detector, such as CCD detector 602-a, FIG. 6), a second optical sensor that collects texture data (e.g. , color) (for example, a second CCD detector such as CCD detector 602-b, FIG. 6) and a motion sensor (for example, a 9 DOF sensor, which can be implemented by using microelectromechanical systems (MEMS) , gyroscopes and one or more Hall sensors).

[0040] В некоторых вариантах осуществления источники 211 света содержат один или более лазеров. В некоторых вариантах осуществления один или более лазеров включают в себя лазеры поверхностного излучения с вертикальным резонатором (VCSEL - англ.: vertical-cavity surface-emitting lasers). В некоторых вариантах осуществления источники 211 света также содержат матрицу светоизлучающих диодов (LED - англ.: light emitting diodes), которые излучают свет видимой области спектра. [0040] In some embodiments, light sources 211 include one or more lasers. In some embodiments, the one or more lasers include vertical-cavity surface-emitting lasers (VCSELs). In some embodiments, the light sources 211 also include an array of light emitting diodes (LEDs) that emit light in the visible region of the spectrum.

[0041] Коммуникационная шина 210 необязательно содержит схемы (иногда называемые набором микросхем), которые соединяют компоненты системы и управляют связью между ними.[0041] Communications bus 210 optionally contains circuitry (sometimes called a chipset) that connects system components and controls communications between them.

[0042] На Фиг.3 показано схематическое изображение среды 300 сбора данных в соответствии с некоторыми вариантами осуществления. В среде 300 сбора данных 3D сканер 100 сканирует объект 302, имеющий поверхность. При сканировании формируются данные цвета (например, цветные изображения поверхности объекта) из множества пространственных положений (например, из положений 304) 3D сканера 100 относительно объекта 302. Например, на Фиг.3 3D сканер перемещают из положения 304a (где получают первое цветное изображение) в положение 304b (где получают второе цветное изображение), в положение 304c (где получают третье цветное изображение). Следует отметить, что в некоторых вариантах осуществления одновременно с получением данных цвета (например, цветного изображения) 3D сканер 100 получает данные, соответствующие трехмерной (3D) форме (например, путем проецирования пространственной структуры освещения на поверхность объекта и, в то время как пространственную структуру освещения проецируют на поверхность объекта, получая изображения поверхности объекта (например, отличные от цветных изображений)).[0042] FIG. 3 shows a schematic representation of a data acquisition environment 300 in accordance with some embodiments. In the data acquisition environment 300, a 3D scanner 100 scans an object 302 having a surface. Scanning generates color data (e.g., color images of an object's surface) from a plurality of spatial positions (e.g., positions 304) of the 3D scanner 100 relative to the object 302. For example, in FIG. 3, the 3D scanner is moved from position 304a (where the first color image is acquired) to position 304b (where a second color image is obtained), to position 304c (where a third color image is obtained). It should be noted that in some embodiments, simultaneously with acquiring color data (e.g., a color image), the 3D scanner 100 acquires data corresponding to a three-dimensional (3D) shape (e.g., by projecting a spatial illumination structure onto the object's surface and, while the spatial structure illumination is projected onto the surface of the object, producing images of the object's surface (eg, other than color images)).

[0043] Следует отметить, что каждое из первого цветного изображения (полученного с помощью 3D сканера 100 в положении 304a), второго цветного изображения (полученного с помощью 3D сканера 100 в положении 304b) и третьего цветного изображения (полученного с помощью 3D сканера 100 в положении 304c) регистрирует точку 306 на поверхности объекта 302. То есть имеется соответствующий пиксель в каждом из первого, второго и третьего цветных изображений, которые соответствуют точке 306 на поверхности объекта 302. В некоторых вариантах осуществления соответствующий пиксель в каждом из первого, второго и третьего цветных изображений имеет значение RGB, на основании которого может быть вычислена яркость в виде линейной комбинации значения красного (R), значения зеленого (G), значения синего (B) (например, функция светимости). Такое значение яркости иногда называют «относительной яркостью» и оно имеет значение, нормированное к 1 или 100. [0043] It should be noted that each of the first color image (obtained by the 3D scanner 100 at position 304a), the second color image (obtained by the 3D scanner 100 at 304b), and the third color image (obtained by the 3D scanner 100 at position 304c) registers a point 306 on the surface of the object 302. That is, there is a corresponding pixel in each of the first, second, and third color images that correspond to a point 306 on the surface of the object 302. In some embodiments, a corresponding pixel in each of the first, second, and third color images has an RGB value from which luminance can be calculated as a linear combination of the red (R) value, green (G) value, blue (B) value (eg, luminance function). This brightness value is sometimes called "relative brightness" and has a value normalized to 1 or 100.

[0044] В некоторых вариантах осуществления данные, полученные 3D сканером 100, передаются (например, через проводное или беспроводное соединение) в компьютерную систему 310 обработки 3D данных, где они принимаются. В некоторых вариантах осуществления компьютерная система 310 обработки 3D данных формирует пиксельную карту (например, карту текстуры) поверхности объекта. В качестве альтернативы, в некоторых вариантах осуществления пиксельную карту формируют посредством 3D сканера 100. [0044] In some embodiments, data acquired by the 3D scanner 100 is transmitted (eg, via a wired or wireless connection) to a 3D data processing computer system 310, where it is received. In some embodiments, the 3D data processing computer system 310 generates a pixel map (eg, a texture map) of the surface of an object. Alternatively, in some embodiments, the pixel map is generated by the 3D scanner 100.

[0045] На Фиг.4 представлен пример возможного применения данных, полученных из среды 300 сбора данных, показанной на Фиг.3, в соответствии с некоторыми вариантами осуществления. В частности, на Фиг.4 проиллюстрированы данные, собранные из точки 306 на поверхности объекта 302. График на Фиг.4 иллюстрирует яркость различных пикселей данных из различных цветных изображений, полученных при различных пространственных положениях относительно поверхности объекта. В связи с этим в некоторых вариантах осуществления 3D сканер 100 и/или компьютерная система 310 обработки 3D данных определяет соответствие пиксель-уровень между пикселями в различных изображениях поверхности объекта (например, в предоставленном примере, регистрирует первое, второе и третье цветные изображения). В некоторых вариантах осуществления определение соответствия пиксель-уровень между пикселями в различных изображениях поверхности объекта включает в себя определение того, что первый пиксель в первом цветном изображении соответствует тому же положению на поверхности объекта, что и второй пиксель на втором цветном изображении. [0045] FIG. 4 illustrates an example of a possible application of data obtained from the data acquisition environment 300 shown in FIG. 3, in accordance with some embodiments. In particular, FIG. 4 illustrates data collected from a point 306 on the surface of an object 302. The graph in FIG. 4 illustrates the brightness of various pixels of data from various color images acquired at various spatial positions relative to the surface of the object. Accordingly, in some embodiments, the 3D scanner 100 and/or the 3D data processing computer system 310 determines the pixel-level correspondence between pixels in different images of an object's surface (eg, in the provided example, registers the first, second, and third color images). In some embodiments, determining a pixel-level correspondence between pixels in different images of an object's surface includes determining that a first pixel in the first color image corresponds to the same position on the object's surface as a second pixel in the second color image.

[0046] Значения яркости наносят на график напротив угла от номинального вектора нормали для точки 306 на поверхности объекта. В некоторых вариантах осуществления номинальный вектор нормали представляет собой вектор нормали из 3D реконструкции объекта (например, реконструированный из данных, соответствующих трехмерной (3D) форме, полученной при сканировании). [0046] Luminance values are plotted opposite the angle from the nominal normal vector for point 306 on the surface of the object. In some embodiments, the nominal normal vector is a normal vector from a 3D reconstruction of an object (eg, reconstructed from data corresponding to a three-dimensional (3D) shape obtained from a scan).

[0047] Данные содержат первый пиксель из первого цветного изображения, имеющего яркость 404a, второй пиксель из второго цветного изображения, имеющий яркость 404b и третий пиксель из третьего цветного изображения, имеющий яркость 404c. В некоторых вариантах осуществления на основании этих данных определяют направление «истинной нормали» (например, путем выбора угла, при котором был получен пиксель данных с максимальной яркостью, или соответствие данных заданной функции (например, функции Гаусса) и выбор угла, при котором соответствующая заданная функция имеет максимум, как более подробно описано со ссылкой на способ 700 на Фиг.7A-7C). В некоторых вариантах осуществления путем применения направления «истинной нормали» определяют диффузное значение (например, путем применения пикселей данных, полученных при углах, которые превышают заданный угол относительно направления истинной нормали - эти данные, показаны на Фиг.4 жирными точками, тогда как углы в пределах заданного угла показаны незакрашенными точками). Другие свойства материала, такие как параметр зеркальности, металличности, шероховатость поверхности можно определить с помощью направления истинной нормали. [0047] The data comprises a first pixel from a first color image having a luminance 404a, a second pixel from a second color image having a luminance 404b, and a third pixel from a third color image having a luminance 404c. In some embodiments, the direction is determined based on this data "true normal" (e.g., by selecting the angle at which a pixel of data was obtained with maximum brightness, or fitting the data to a given function (e.g., a Gaussian function) and selecting the angle at which the corresponding given function has a maximum, as described in more detail with reference to method 700 in Figures 7A-7C). In some embodiments, by applying the "true normal" direction, a diffuse value is determined (for example, by applying pixels of data obtained at angles that exceed a specified angle relative to the true normal direction - this data is shown in FIG. 4 as bold dots, while the angles in within a given angle are shown as open dots). Other material properties, such as specularity, metallicity, and surface roughness, can be determined using the direction of the true normal.

[0048] На Фиг.5A-5C проиллюстрированы схематические примеры (т. е. иллюстрации) изображений поверхности объекта, применяемых для формирования текстурированного 3D представления объекта в соответствии с некоторыми вариантами осуществления. Например, на Фиг.5A проиллюстрировано изображение 502a гайки, полученное из первого пространственного положения. На изображении 502a на гайке наблюдается случайный блик 504a (например, зеркальноподобное отражение от источника света, присутствующего при получении изображения 502a). Случайный блик 504a представляет собой зеркальное (например, зеркальноподобное) отражение от источника света, который присутствовал при получении изображения 502a. На Фиг.5B проиллюстрировано второе изображение 502b, полученное из второго пространственного положения, отличного от первого пространственного положения, а на Фиг.5C проиллюстрировано третье изображение 502c, полученное из третьего пространственного положения, отличного от первого и второго пространственных положений. На Фиг.5D проиллюстрирован пример текстурированного 3D представления 506 объекта (т. е. гайки), показанного на Фиг.5A-5C, сформированного в соответствии с некоторыми вариантами осуществления настоящего изобретения. Текстурированное 3D представление 506 объекта не содержит случайного блика (например, не содержит один или более бликов, которые присутствовали на изображениях поверхности объекта). Кроме того, текстурированное 3D представление 506 обеспечивает модель, которая более точно представляет текстуру (цвет) как объекта, так и стола, по сравнению с изображениями (необработанными данными), показанными на Фиг.5A-5C, таким образом, что текстура как объекта, так и стола может быть более точно отображена при различных условиях освещенности.[0048] FIGS. 5A-5C illustrate schematic examples (i.e., illustrations) of images of an object's surface used to generate a textured 3D representation of an object in accordance with some embodiments. For example, FIG. 5A illustrates a nut image 502a obtained from a first spatial position. In image 502a, there is a random highlight 504a on the nut (eg, a specular reflection from a light source present when image 502a is captured). Random highlight 504a is a specular (eg, mirror-like) reflection from a light source that was present when image 502a was acquired. FIG. 5B illustrates a second image 502b obtained from a second spatial position different from the first spatial position, and FIG. 5C illustrates a third image 502c obtained from a third spatial position different from the first and second spatial positions. 5D illustrates an example of a textured 3D representation 506 of the object (ie, nut) shown in FIGS. 5A-5C generated in accordance with some embodiments of the present invention. The textured 3D object representation 506 does not contain random highlights (eg, does not contain one or more highlights that were present in images of the object's surface). In addition, the textured 3D representation 506 provides a model that more accurately represents the texture (color) of both the object and the table, compared to the images (raw data) shown in FIGS. 5A-5C, such that the texture of both the object so the table can be more accurately displayed under different lighting conditions.

[0049] На Фиг.6 представлен чертеж, иллюстрирующий различные компоненты 3D сканера 100 в соответствии с некоторыми вариантами осуществления. В частности, на Фиг.6 проиллюстрирован поперечный разрез корпуса 102 основной части (Фиг.1). Как показано на Фиг.6, сканер 100 содержит (среди прочих компонентов):[0049] FIG. 6 is a drawing illustrating various components of a 3D scanner 100 in accordance with some embodiments. Specifically, FIG. 6 illustrates a cross-section of the main body body 102 (FIG. 1). As shown in FIG. 6, scanner 100 includes (among other components):

Первый оптический датчик 602a (например, первый датчик с прибором с зарядовой связью (ПЗС)), который собирает 3D данные сканируемого объекта (например, собирает изображения структурированной подсветки, засвеченные и искаженные поверхностью объекта, из которых можно определить реконструкцию 3D формы). В некоторых вариантах осуществления первый оптический датчик 602a чувствителен к излучение в инфракрасной (ИК) области спектра (хотя первый оптический датчик 602a может быть также чувствителен к излучению в видимой области спектра);A first optical sensor 602a (eg, a first charge-coupled device (CCD) sensor) that collects 3D data of the object being scanned (eg, collects structured illumination images illuminated and distorted by the surface of the object, from which a 3D shape reconstruction can be determined). In some embodiments, the first optical sensor 602a is sensitive to radiation in the infrared (IR) region of the spectrum (although the first optical sensor 602a may also be sensitive to radiation in the visible region of the spectrum);

Второй оптический датчик 602b (например, второй ПЗС-детектор), который собирает данные текстуры (например, цвет) от сканируемого объекта (например, собирает изображения в то время как структурированная подсветка не отображается на поверхности объекта, например, собирает изображения в промежутке между стробоскопическими импульсами структурированной подсветки, засвечивающими объект). В некоторых вариантах второй оптический датчик 602b чувствителен к излучению в видимой области спектра (хотя второй оптический датчик 602b может быть также чувствителен к излучению в ИК области спектра); A second optical sensor 602b (e.g., a second CCD detector) that collects texture data (e.g., color) from the scanned object (e.g., collects images while structured illumination is not displayed on the object's surface, e.g., collects images between strobe structured illumination pulses illuminating the object). In some embodiments, the second optical sensor 602b is sensitive to radiation in the visible region of the spectrum (although the second optical sensor 602b may also be sensitive to radiation in the infrared region of the spectrum);

Светоделительное устройство 604, которое отделяет излучение в видимой области спектра от излучения в ИК области спектра. Светоделительное устройство 604 преимущественно направляет излучение в ИК области спектра, принятое через оптическую систему 106 камеры к первому оптическому датчику 602a и преимущественно направляет излучение в видимой области спектра, принятое через оптическую систему 106 камеры ко второму оптическому датчику 602b;A beam splitter 604 that separates visible light from infrared light. The beam splitter 604 advantageously directs the IR light received through the camera optical system 106 to the first optical sensor 602a and advantageously directs the visible light received through the camera optical system 106 to the second optical sensor 602b;

Источник 606 света. В некоторых вариантах осуществления источник 606 света представляет собой источник пульсирующего света (например, источник стробоскопического света). В некоторых вариантах осуществления источник 606 света представляет собой источник излучения в инфракрасной области спектра. В некоторых вариантах осуществления источник 606 света представляет собой лазер. В некоторых вариантах осуществления источник света 606 представляет собой лазер поверхностного излучения с вертикальным резонатором. В некоторых вариантах осуществления источник 606 света выполнен с возможностью работы (например, посредством соответствующего выбора длительности импульса, пиковой мощности, частоты повторения импульсов и/или коэффициента заполнения) как лазер класса 1 в любой точке пространства снаружи корпуса 102 основной части.Light source 606. In some embodiments, the light source 606 is a pulsed light source (eg, a strobe light source). In some embodiments, the light source 606 is a radiation source in the infrared region of the spectrum. In some embodiments, the light source 606 is a laser. In some embodiments, the light source 606 is a vertical cavity surface emitting laser. In some embodiments, the light source 606 is configured to operate (eg, through appropriate selection of pulse width, peak power, pulse repetition rate, and/or duty cycle) as a Class 1 laser at any point in space outside the main body housing 102.

Слайд 616, который имеет образованную (например, напечатанную или вытравленную) на нем пространственную структуру, через которую свет проецируют на поверхность объекта (например, пространственная структура образована как непрозрачные и прозрачные участки слайда). Таким образом, свет, излучаемый источником 606 света проходит через слайд 616 и проецируется через оптическую систему 104 источника как структурированный свет к (например, на) поверхности объекта; иA slide 616 that has a pattern formed (eg, printed or etched) thereon through which light is projected onto the surface of an object (eg, the pattern is formed as opaque and transparent portions of the slide). Thus, light emitted by the light source 606 passes through the slide 616 and is projected through the source optical system 104 as structured light to (eg, on) the surface of the object; And

Коллектор 608 охлаждения (помеченный в нескольких местах на чертеже), содержит цельный металлический элемент, находящийся в тепловом контакте с источником 606 света, оптическими датчиками 602 и множеством процессоров, включая ГП, расположенный в позиции 614 и FPGA, расположенную в позиции 612. Cooling manifold 608 (labeled in several places in the drawing) contains a solid metal element in thermal contact with light source 606, optical sensors 602, and a plurality of processors, including a GPU located at 614 and an FPGA located at 612.

[0050] Ввиду способа получения 3D данных (например, стробоскопически излучаемый свет от достаточно мощного источника света, а также сбора и обработки многих изображений каждую секунду) выделение и отвод тепла представляет одну из наиболее сложных задач при проектировании носимого 3D сканера, выполненного с возможностью предварительного просмотра 3D реконструкций объектов в режиме реального времени. В то время как поддержание относительно низкой температуры является важным, поддержание постоянной температуры (как в пространстве, так и по времени) является по меньшей мере в равной степени важным. Коллектор 608 охлаждения поддерживает температуру различных компонентов 3D сканера 100 постоянной и стабильной путем обеспечения тепловой связи между основными теплогенерирующими компонентами 3D сканера. Таким образом, коллектор 608 охлаждения сокращает время «разогрева», необходимое 3D сканеру для достижения стабильной температуры, обеспечивая большую вычислительную мощность и увеличивая продолжительность времени, в течение которого 3D сканер может собирать данные. [0050] Due to the way 3D data is acquired (e.g., stroboscopically emitted light from a sufficiently powerful light source, and the collection and processing of many images every second), heat generation and dissipation poses one of the most difficult challenges when designing a wearable 3D scanner with pre-reading capability. viewing 3D reconstructions of objects in real time. While maintaining a relatively low temperature is important, maintaining a constant temperature (both spatially and temporally) is at least equally important. The cooling manifold 608 maintains the temperature of the various components of the 3D scanner 100 constant and stable by providing thermal coupling between the major heat-generating components of the 3D scanner. Thus, the cooling manifold 608 reduces the "warm-up" time required for the 3D scanner to reach a stable temperature, providing more processing power and increasing the length of time that the 3D scanner can collect data.

[0051] На Фиг.7A-7D представлена блок-схема способа 700 формирования модели текстуры для объекта в соответствии с некоторыми вариантами осуществления. В некоторых вариантах осуществления способ 700 выполняют в сканере (например, отдельном портативном сканере) (например, 3D сканере 100 на Фиг.1A-1B или фотограмметрическом сканере). Портативный сканер содержит один или более оптических датчиков. В некоторых вариантах осуществления портативный сканер содержит дисплей. В некоторых вариантах осуществления портативный сканер представляет собой 3D сканер, который содержит процессоры для формирования 3D реконструкции по меньшей мере части формы поверхности объекта. В некоторых вариантах осуществления портативный сканер представляет собой портативный носимый сканер (например, имеющий размеры менее 30 см х 30 см х 30 см, такие, чтобы все устройство могло поместиться внутри коробки размером 30 см х 30 см х 30 см). В некоторых вариантах осуществления портативный сканер не представляет собой 3D сканер (например, портативный сканер представляет собой фотограмметрический сканер, который не формирует 3D реконструкцию формы объекта, а скорее формирует карту текстуры для существующей нетекстурированной 3D модели объекта). В некоторых вариантах осуществления сканер представляет собой фотограмметрический сканер, который формирует 3D реконструкцию поверхности объекта. Для простоты объяснения способ 700 описан как выполняемый 3D сканером 100. Однако, способ 700 можно выполнять с помощью любого портативного сканера, изготовленного в соответствии с настоящим изобретением. В некоторых вариантах осуществления одну или более операций способа 700 можно выполнять в компьютерной системе отдельно от портативного сканера (например, системе 310 на Фиг.3, которая выполняет обработку данных после получения для формирования модели текстуры). С другой стороны, в других вариантах осуществления 3D сканер 100 выполняет способы, отличные от способа 700 в соответствии с идеями настоящего изобретения. Некоторые операции в способе 700, необязательно, комбинируют и/или, необязательно, меняют порядок некоторых операций.[0051] FIGS. 7A-7D illustrate a flow diagram of a method 700 for generating a texture model for an object in accordance with some embodiments. In some embodiments, method 700 is performed in a scanner (eg, a separate handheld scanner) (eg, 3D scanner 100 in FIGS. 1A-1B or a photogrammetric scanner). A portable scanner contains one or more optical sensors. In some embodiments, the portable scanner includes a display. In some embodiments, the portable scanner is a 3D scanner that includes processors for generating a 3D reconstruction of at least a portion of the surface shape of an object. In some embodiments, the portable scanner is a portable wearable scanner (eg, having dimensions less than 30 cm x 30 cm x 30 cm such that the entire device can fit inside a box measuring 30 cm x 30 cm x 30 cm). In some embodiments, the handheld scanner is not a 3D scanner (e.g., the handheld scanner is a photogrammetric scanner that does not generate a 3D reconstruction of the object's shape, but rather produces a texture map to an existing non-textured 3D model of the object). In some embodiments, the scanner is a photogrammetric scanner that generates a 3D reconstruction of the object's surface. For ease of explanation, method 700 is described as being performed by a 3D scanner 100. However, method 700 can be performed by any handheld scanner manufactured in accordance with the present invention. In some embodiments, one or more operations of method 700 may be performed on a computer system separate from the handheld scanner (eg, system 310 of FIG. 3, which performs post-acquisition processing of the data to generate a texture model). On the other hand, in other embodiments, the 3D scanner 100 performs methods different from the method 700 in accordance with the teachings of the present invention. Some of the operations in method 700 optionally combine and/or optionally change the order of some of the operations.

[0052] Способ 700 можно применять для отделения несогласованного освещения и затенения от истинного цвета поверхности объекта, сканированного с применением портативного сканера. Кроме того, способ 700 можно применять для определения свойств материала (отражательной способности, цвета зеркальности, металличности, шероховатости поверхности) для каждого пикселя карты текстуры для объекта. В связи с этим в некоторых вариантах осуществления в способе 700 применяют соответствующие пиксели из различных изображений поверхности объекта (например, зарегистрированные при различных пространственных положениях сканера относительно объекта) вместе с данными отслеживания, которые предоставляют информацию о пространственных положениях, в которых были зарегистрированы различные значения, для формирования однопиксельной карты текстуры (называемой ниже пиксельной картой). Значения цвета от соответствующих пикселей данных связаны со свойствами материала посредством уравнений, которые описывают характер изменения падения света под разными углами на поверхность объекта (например, ламбертовская диффузная модель или более сложная модель текстуры, также называемые моделью освещения и затенения). В некоторых вариантах осуществления в способе 700 получают отдельное, скорректированное значение RGB для каждой пиксельной точки, тем самым устраняя случайные блики (т. е. зеркальные отражения от источника света, присутствующие при получении данных цвета, которые не должны обязательно присутствовать при прорисовке текстурированной 3D реконструкции при разном освещении). В способе 700 дополнительно получают по меньшей мере одно значение на пиксель для нецветового свойства материала, такое как максимальное значение зеркальности и угол, при котором получено это значение (например, «истинная нормаль»). [0052] Method 700 can be used to separate inconsistent lighting and shading from the true surface color of an object scanned using a handheld scanner. In addition, method 700 can be used to determine material properties (reflectivity, specularity color, metallicity, surface roughness) for each pixel of a texture map for an object. Accordingly, in some embodiments, method 700 uses corresponding pixels from different images of the object's surface (e.g., recorded at different spatial positions of the scanner relative to the object) along with tracking data that provides information about the spatial positions at which the different values were recorded. to generate a single-pixel texture map (referred to below as a pixel map). Color values from corresponding data pixels are related to material properties through equations that describe how light at different angles changes on the surface of an object (for example, a Lambertian diffuse model or a more complex texture model, also called a lighting and shading model). In some embodiments, method 700 obtains a separate, adjusted RGB value for each pixel point, thereby eliminating stray reflections (i.e., specular reflections from the light source present when acquiring color data that would not necessarily be present when rendering a textured 3D reconstruction under different lighting conditions). Method 700 further obtains at least one value per pixel for a non-color material property, such as a maximum specular value and the angle at which this value is obtained (eg, "true normal").

[0053] Как показано на Фиг.7A, 3D сканер 100 сканирует (702) объект, имеющий поверхность. При сканировании формируются данные цвета из множества пространственных положений 3D сканера 100 относительно объекта. В некоторых вариантах осуществления компьютерная система 310 обработки 3D данных отдельно от 3D сканера 100 принимает данные цвета, формируемые 3D сканером 100 из множества пространственных положений 3D сканера 100 относительно объекта (например, как описано со ссылкой на Фиг.3). В некоторых вариантах осуществления 3D сканер 100 не имеет предварительной информации о пространственных положениях 3D сканера 100 относительно объекта (например, пространственные положения не определяют заранее или не калибруют точно). [0053] As shown in FIG. 7A, the 3D scanner 100 scans (702) an object having a surface. During scanning, color data is generated from multiple spatial positions of the 3D scanner 100 relative to the object. In some embodiments, a 3D data processing computer system 310 separate from the 3D scanner 100 receives color data generated by the 3D scanner 100 from a plurality of spatial positions of the 3D scanner 100 relative to an object (eg, as described with reference to FIG. 3). In some embodiments, the 3D scanner 100 has no prior knowledge of the spatial positions of the 3D scanner 100 relative to the object (eg, the spatial positions are not predetermined or precisely calibrated).

[0054] В некоторых вариантах осуществления сканирование включает в себя (704) изменение положения 3D сканера 100 во множестве пространственных положений относительно объекта. Например, как показано на Фиг.3, положение 3D сканера 100 изменяют из положения 304a к положению 304b, к положению 304c. 3D сканер 100 получает изображение объекта 302 в каждом из этих положений.[0054] In some embodiments, scanning includes (704) repositioning the 3D scanner 100 in a plurality of spatial positions relative to the object. For example, as shown in FIG. 3, the position of the 3D scanner 100 is changed from position 304a to position 304b to position 304c. The 3D scanner 100 acquires an image of the object 302 at each of these positions.

[0055] В некоторых вариантах осуществления отдельный оптический датчик получает (706) данные цвета из множества пространственных положений 3D сканера 100 относительно объекта (например, изменяют положение отдельного оптического датчика во время процесса сканирования). Как указано ниже, в некоторых вариантах осуществления 3D сканер 100 содержит дополнительные оптические датчики, которые получают данные, отличные от данных цвета.[0055] In some embodiments, an individual optical sensor receives (706) color data from a plurality of spatial positions of the 3D scanner 100 relative to an object (eg, changing the position of the individual optical sensor during the scanning process). As discussed below, in some embodiments, the 3D scanner 100 includes additional optical sensors that acquire data other than color data.

[0056] В некоторых вариантах осуществления сканирование формирует (708) данные, соответствующие трехмерной (3D) форме по меньшей мере части поверхности объекта (например, данные, из которых можно реконструировать 3D форму по меньшей мере части поверхности объекта). [0056] In some embodiments, the scan generates (708) data corresponding to the three-dimensional (3D) shape of at least a portion of the object's surface (eg, data from which the 3D shape of at least a portion of the object's surface can be reconstructed).

[0057] В некоторых вариантах осуществления один или более оптических датчиков содержат (710) первый оптический датчик (например, первый, инфракрасный, ПЗС) (например, ПЗС-детектор 602a, Фиг.6). В некоторых вариантах осуществления первый оптический датчик предназначен для формирования данных, соответствующих 3D форме по меньшей мере части поверхности объекта. Формирование данных, соответствующих трехмерной (3D) форме по меньшей мере части поверхности объекта, включает в себя многократное выполнение операций проецирования пространственной структуры освещения на поверхность объекта и, при проецировании пространственной структуры освещения на поверхность объекта, получение изображения поверхности объекта с помощью первого оптического датчика.[0057] In some embodiments, the one or more optical sensors include 710 a first optical sensor (eg, a first, infrared, CCD) (eg, CCD detector 602a, FIG. 6). In some embodiments, the first optical sensor is configured to generate data corresponding to the 3D shape of at least a portion of the surface of the object. Generating data corresponding to a three-dimensional (3D) shape of at least a portion of the object's surface includes repeatedly performing the operations of projecting a spatial illumination structure onto the object's surface and, when projecting the spatial illumination structure onto the object's surface, obtaining an image of the object's surface using a first optical sensor.

[0058] В некоторых вариантах осуществления один или более оптических датчиков содержат (712) второй оптический датчик (например, второй, оптический, камера) (например, ПЗС-детектор 602b, Фиг.6). В некоторых вариантах осуществления второй оптический датчик предназначен для формирования данных цвета (например, второй оптический датчик представляет собой отдельный оптический датчик, описанный в операции 706). Формирование данных цвета из множества пространственных положений 3D сканера 100 относительно объекта включает в себя получение изображения поверхности объекта посредством второго оптического датчика вместе с 3D сканером 100, расположенным в каждом из множества пространственных положений относительно объекта. Следует отметить, что в таких вариантах осуществления множество пикселей из данных цвета применяют для формирования значений для отдельного пикселя пиксельной карты (например, где множество пикселей содержит соответствующие пиксели из различных изображений). Чтобы избежать недоразумений, пиксели изображений поверхности объекта иногда в настоящем документе упоминаются как «пиксели данных». [0058] In some embodiments, the one or more optical sensors include (712) a second optical sensor (eg, second, optical, camera) (eg, CCD detector 602b, FIG. 6). In some embodiments, the second optical sensor is configured to generate color data (eg, the second optical sensor is a separate optical sensor described in operation 706). Generating color data from a plurality of spatial positions of the 3D scanner 100 relative to an object includes obtaining an image of the surface of the object through a second optical sensor in conjunction with the 3D scanner 100 located at each of the plurality of spatial positions relative to the object. It should be noted that in such embodiments, a plurality of pixels from the color data are used to generate values for an individual pixel in a pixel map (eg, where the plurality of pixels contains corresponding pixels from different images). To avoid confusion, pixels of object surface images are sometimes referred to herein as “data pixels”.

[0059] В некоторых вариантах осуществления изображения обеспечивают значения RGB для пикселей данных. В некоторых вариантах осуществления изображения, полученные вторым оптическим датчиком отличаются от изображений, полученных первым оптическим датчиком, которые применяют для формирования данных, соответствующих трехмерной (3D) форме по меньшей мере части поверхности объекта. В некоторых вариантах осуществления изображения, применяемые для формирования данных цвета, получают в то время как не проецируют пространственную структуру освещения на поверхность объекта (например, в промежутке между проекциями пространственной структуры освещения на поверхность объекта).[0059] In some embodiments, the images provide RGB values for the data pixels. In some embodiments, the images obtained by the second optical sensor are different from the images obtained by the first optical sensor, which are used to generate data corresponding to the three-dimensional (3D) shape of at least a portion of the surface of the object. In some embodiments, the images used to generate the color data are obtained while the spatial illumination structure is not projected onto the surface of the object (eg, between projections of the spatial illumination structure onto the surface of the object).

[0060] В некоторых вариантах осуществления 3D сканер 100 определяет (714) соответствие пиксель-уровень между пикселями данных в различных изображениях поверхности объекта (например, регистрирует цветные изображения, полученные первым оптическим датчиком). В некоторых вариантах осуществления определение соответствия пиксель-уровень между пикселями в различных изображениях поверхности объекта включает в себя определение того, что первый пиксель в первом изображении соответствует тому же положению на поверхности объекта, что и второй пиксель на втором изображении (отличающемся от первого изображения). [0060] In some embodiments, the 3D scanner 100 determines (714) a pixel-level correspondence between data pixels in various images of an object's surface (eg, registers color images acquired by the first optical sensor). In some embodiments, determining a pixel-level correspondence between pixels in different images of an object's surface includes determining that a first pixel in the first image corresponds to the same position on the object's surface as a second pixel in a second image (different from the first image).

[0061] Со ссылкой на Фиг.7B, в некоторых вариантах осуществления 3D сканер 100 формирует (716) 3D реконструкцию по меньшей мере части формы поверхности объекта с помощью данных, соответствующих трехмерной (3D) форме по меньшей мере части поверхности объекта. В некоторых вариантах осуществления соответствие пиксель-уровень определяют с помощью данных, соответствующих трехмерной (3D) форме по меньшей мере части поверхности объекта (например, данные, соответствующие трехмерной (3D) форме по меньшей мере части поверхности объекта применяют для формирования 3D реконструкции, которую применяют для регистрации цветных изображений). В некоторых вариантах осуществления соответствие пиксель-уровень определяют с помощью регистрации изображения (например, выявления или сопоставления признаков или путем определения соответствий между изображениями). В некоторых вариантах осуществления соответствие пиксель-уровень определяют с помощью фотограммометрии (например, путем применения анализа изображений для определения, какой из двух пикселей в разных изображениях соответствует одному и тому же положению на поверхности объекта). В некоторых случаях положения камеры, а также 3D форма поверхности известны и соответствие пиксель-уровень вычисляют с помощью проективной геометрии.[0061] Referring to FIG. 7B, in some embodiments, the 3D scanner 100 generates (716) a 3D reconstruction of at least a portion of the object's surface shape using data corresponding to the three-dimensional (3D) shape of at least a portion of the object's surface. In some embodiments, the pixel-level correspondence is determined using data corresponding to the three-dimensional (3D) shape of at least a portion of the object's surface (e.g., data corresponding to the three-dimensional (3D) shape of at least a portion of the object's surface is used to generate a 3D reconstruction that is applied to register color images). In some embodiments, pixel-level correspondence is determined by image registration (eg, feature detection or matching, or by determining correspondences between images). In some embodiments, pixel-level correspondence is determined using photogrammetry (eg, by using image analysis to determine which of two pixels in different images correspond to the same position on the surface of an object). In some cases, the camera positions as well as the 3D shape of the surface are known and the pixel-level correspondence is calculated using projective geometry.

[0062] В некоторых вариантах осуществления 3D реконструкция представляет собой полигональное представление объекта (например, полигональная сетка, содержащая множество многоугольников, причем каждый многоугольник из множества многоугольников представляет собой область поверхности объекта). Каждый многоугольник из множества многоугольников, таким образом, имеет номинальный вектор нормали. Определение соответствия пиксель-уровень между пикселями данных в разных изображениях поверхности объекта включает в себя выбор в качестве соответствующих пикселей из различных изображений, соответствующих области, представленной одним и тем же многоугольником (например, множество пикселей из различных изображений, представляющих один и тот же многоугольник, группируют вместе). Со ссылкой на Фиг.4, в некоторых вариантах осуществления номинальный вектор нормали представляет собой номинальный вектор нормали для многоугольника. В некоторых вариантах осуществления выбор в качестве соответствующих пикселей из различных изображений, соответствующих области, представленной одним и тем же многоугольником, включает в себя отображение данных цвета на системе координат 3D реконструкции объекта. [0062] In some embodiments, the 3D reconstruction is a polygonal representation of an object (eg, a polygonal mesh containing a plurality of polygons, each polygon of the plurality of polygons representing a surface area of the object). Each polygon of the set of polygons thus has a nominal normal vector. Determining a pixel-level correspondence between data pixels in different images of an object's surface involves selecting as corresponding pixels from different images corresponding to the region represented by the same polygon (e.g., a plurality of pixels from different images representing the same polygon, group together). Referring to FIG. 4, in some embodiments, the nominal normal vector is a nominal normal vector for the polygon. In some embodiments, selecting as corresponding pixels from different images corresponding to an area represented by the same polygon includes mapping the color data onto a 3D reconstruction coordinate system of the object.

[0063] В некоторых вариантах осуществления 3D сканер 100 определяет (718) множество пространственных положений 3D сканера 100 относительно объекта, из которых были получены данные цвета, посредством 3D реконструкции по меньшей мере части формы поверхности объекта. В некоторых вариантах осуществления данные о движении (например, от датчика 9 DOF) также применяют для определения множества пространственных положений (например, определения углов, при которых были получены пиксели данных цвета относительно поверхности объекта). Например, информация из множества источников (например, 3D данные, данные цвета и данные о движении от датчика 9 DOF комбинируют для определения пространственных положений 3D сканера 100 относительно объекта для различных изображений). [0063] In some embodiments, the 3D scanner 100 determines (718) a plurality of spatial positions of the 3D scanner 100 relative to an object from which color data was obtained by 3D reconstructing at least a portion of the surface shape of the object. In some embodiments, motion data (eg, from DOF sensor 9) is also used to determine a plurality of spatial positions (eg, determining the angles at which color data pixels were acquired relative to the surface of an object). For example, information from multiple sources (eg, 3D data, color data, and motion data from the DOF sensor 9 are combined to determine the spatial positions of the 3D scanner 100 relative to the object for various images).

[0064] 3D сканер 100 формирует (720) пиксельную карту поверхности объекта с помощью по меньшей мере данных цвета. Пиксельная карта содержит для каждого соответствующего пикселя из множества пикселей: значение цвета соответствующей точки на поверхности объекта; и значение для нецветового свойства соответствующей точки на поверхности объекта. В некоторых вариантах осуществления пиксельная карта содержит значения для множества нецветовых свойств соответствующей точки на поверхности объекта для каждого соответствующего пикселя из множества пикселей. В некоторых вариантах осуществления пиксельная карта представляет собой (722) карту текстуры на поверхности объекта (например, содержащую набор значений для параметров, которые применяют вместе для фотореалистичного представления 3D модели). В некоторых вариантах осуществления значение цвета представляет собой диффузное значение для пикселя. В некоторых вариантах осуществления диффузное значение (например, значение RGB) представляет склонность материала рассеивать свет во всех направлениях (например, одинаково во всех направлениях). Следует отметить, что пиксели пиксельной карты, в отличие от пикселей данных (т. е. пикселей изображений), представляют область поверхности объекта. Таким образом, в некоторых случаях пиксели пиксельной карты упоминаются как «surfels» (т. е. элементы поверхности), при этом пиксельная карта упоминается как карта «surfel». [0064] The 3D scanner 100 generates (720) a pixel map of the surface of an object using at least color data. The pixel map contains for each corresponding pixel from a plurality of pixels: the color value of the corresponding point on the surface of the object; and a value for the non-color property of the corresponding point on the object's surface. In some embodiments, the pixel map contains values for a plurality of non-color properties of a corresponding point on the surface of an object for each corresponding pixel of the plurality of pixels. In some embodiments, a pixel map is (722) a map of texture on the surface of an object (eg, containing a set of values for parameters that are used together to render a photorealistic representation of a 3D model). In some embodiments, the color value is a diffuse value per pixel. In some embodiments, a diffuse value (eg, an RGB value) represents the tendency of a material to diffuse light in all directions (eg, equally in all directions). It should be noted that pixels in a pixel map, unlike data pixels (i.e., image pixels), represent the surface area of an object. Thus, in some cases, the pixels of a pixmap are referred to as "surfels" (i.e., surface features), while a pixmap is referred to as a "surfel" map.

[0065] В некоторых вариантах осуществления нецветовое свойство представляет собой свойство текстуры (например, свойство, которое влияет на внешний вид соответствующей точки на поверхности объекта). В некоторых вариантах осуществления нецветовое свойство (или свойства) выбирают (724) из группы, состоящей из следующего: параметр отражательной способности, параметр зеркальности, параметр металличности, шероховатость поверхности или направление нормали. В некоторых вариантах осуществления параметр зеркальности представляет склонность, представляющую склонность материала рассеивать свет подобно зеркалу (например, с углом падения равным углу отражения). [0065] In some embodiments, the non-color property is a texture property (eg, a property that affects the appearance of a corresponding point on the surface of an object). In some embodiments, the non-color property (or properties) is selected (724) from the group consisting of the following: a reflectivity parameter, a specularity parameter, a metallicity parameter, a surface roughness, or a normal direction. In some embodiments, the specularity parameter is a propensity representing the tendency of a material to scatter light like a mirror (eg, with an angle of incidence equal to the angle of reflection).

[0066] В некоторых вариантах осуществления значение цвета для каждого из множества пикселей пиксельной карты представляет собой (726) векторное значение (например, значение RGB). [0066] In some embodiments, the color value for each of the plurality of pixels in the pixel map is (726) a vector value (eg, an RGB value).

[0067] В некоторых вариантах осуществления значение для нецветового свойства для каждого из множества пикселей пиксельной карты представляет собой (728) скалярное значение (например, единственное значение между 0 и 1). [0067] In some embodiments, the value for the non-color property for each of the plurality of pixels in the pixmap is (728) a scalar value (eg, a single value between 0 and 1).

[0068] В некоторых вариантах осуществления для каждого соответствующего пикселя из множества пикселей пиксельной карты, значения цвета соответствующей точки на поверхности объекта (730) представляет собой скорректированное значение цвета (например, значение «истинной диффузии»). Формирование скорректированного значения цвета включает в себя: определение номинального значения цвета для соответствующего пикселя с помощью данных цвета (например, с помощью соответствующих пикселей от различных изображений поверхности объекта); и настройку номинального значения цвета для соответствующего пикселя пиксельной карты с помощью значения для нецветового свойства соответствующей точки на поверхности объекта (например, 3D сканер 100 применяет данные цвета для определения направления «истинной нормали» и применяет направление «истинной нормали» для определения значения «истинной диффузии»). [0068] In some embodiments, for each corresponding pixel of the plurality of pixels in the pixel map, the color value of the corresponding point on the surface of the object (730) is a corrected color value (eg, a "true diffusion" value). Generating a corrected color value includes: determining a nominal color value for a corresponding pixel using color data (eg, using corresponding pixels from various images of the object's surface); and setting a nominal color value for a corresponding pixel of the pixmap with a value for a non-color property of a corresponding point on the object's surface (e.g., 3D scanner 100 applies the color data to determine the "true normal" direction and applies the "true normal" direction to determine the "true diffusion" value ").

[0069] В некоторых вариантах осуществления настройку номинального значения цвета для пикселей пиксельных карт применяют для удаления случайных бликов (например, путем уменьшения интенсивности пикселей, которые выглядят чрезмерно яркими из-за отражений от вспышки и/или другого освещения). В обычных системах такие случайные блики удаляются вручную (например, художником). Таким образом, некоторые варианты осуществления настоящего изобретения устраняют необходимость в ручном удалении проблемных точек из данных текстуры.[0069] In some embodiments, adjusting the nominal color value of pixel maps is used to remove stray highlights (eg, by reducing the intensity of pixels that appear overly bright due to reflections from flash and/or other lighting). In conventional systems, such random highlights are removed manually (for example, by an artist). Thus, some embodiments of the present invention eliminate the need to manually remove problem points from texture data.

[0070] Со ссылкой на Фиг.7C, в некоторых вариантах осуществления нецветовое свойство представляет собой (732) направление нормали. Для каждого соответствующего пикселя из множества пикселей пиксельной карты значение цвета определяют с помощью данных цвета из заданного диапазона углов относительно направления нормали для соответствующего пикселя.[0070] Referring to FIG. 7C, in some embodiments, the non-color property is (732) the normal direction. For each corresponding pixel of the plurality of pixels in the pixel map, a color value is determined using color data from a given range of angles relative to the normal direction for the corresponding pixel.

[0071] В некоторых вариантах осуществления заданный диапазон углов представляет собой (734) диапазон углов больше диффузного порогового угла. Для каждого соответствующего пикселя из множества пикселей пиксельной карты параметр зеркальности определяют с помощью данных цвета, полученных при углах относительно направления нормали, которые меньше диффузного порогового угла.[0071] In some embodiments, the specified angle range is (734) a range of angles greater than the diffuse threshold angle. For each corresponding pixel of the plurality of pixels in the pixel map, the specularity parameter is determined using color data obtained at angles relative to the normal direction that are less than the diffuse threshold angle.

[0072] В некоторых вариантах осуществления для каждого соответствующего пикселя из множества пикселей пиксельной карты направление нормали определяют (736) путем выбора в качестве направления нормали угла, при котором в данных цвета наблюдается максимальная яркость.[0072] In some embodiments, for each corresponding pixel of the plurality of pixel map pixels, a normal direction is determined (736) by selecting as the normal direction the angle at which maximum brightness occurs in the color data.

[0073] Например, в некоторых вариантах осуществления способ 700 включает определение, для каждого соответствующего пикселя из множества пикселей пиксельной карты, какой пиксель из соответствущих пикселей данных имеет наибольшую яркость. Угол, при котором был получен соответствующий пиксель данных с наибольшей яркостью, определяют как направление нормали (например, «истинной нормали»). Пиксели данных, полученные при углах, менее, например, 55° от этой «истинной нормали» применяют для определения настраиваемого значения цвета для соответствующего пикселя посредством модели диффузного отражения Ламберта для диффузной яркости:[0073] For example, in some embodiments, method 700 includes determining, for each corresponding pixel of a plurality of pixels in a pixel map, which pixel of the corresponding data pixels has the greatest brightness. The angle at which the corresponding data pixel with the highest brightness was obtained is defined as the direction of the normal (eg, the "true normal"). Data pixels obtained at angles less than, for example, 55° from this “true normal” are used to determine a custom color value for the corresponding pixel using the Lambert diffuse reflectance model for diffuse luminance:

(1) (1)

где представляет собой яркость при наблюдаемом угле относительно направления нормали, представляет собой энергию света, падающего на поверхность, и представляет собой диффузный цвет поверхности (также иногда называемый диффузное альбедо пикселя или «surfel»). Where represents the brightness at the observed angle relative to the direction of the normal, represents the energy of light incident on a surface, and represents the diffuse color of a surface (also sometimes called diffuse pixel albedo or "surfel").

[0074] В некоторых вариантах осуществления параметр зеркальности (например, глянец или, наоборот, шероховатость) определяют для соответствующего пикселя путем вычитания максимального значения соответствующей модели диффузного отражения Ламберта (например, значения ) из яркости пикселя данных, который имеет наибольшую яркость в соответствии со следующим уравнением рендеринга теории микрограней:[0074] In some embodiments, a specularity parameter (e.g., gloss or, conversely, roughness) is determined for a corresponding pixel by subtracting the maximum value of the corresponding Lambert diffuse reflectance model (e.g., the value ) from the brightness of the data pixel that has the highest brightness according to the following micro-edge theory rendering equation:

(2) (2)

где представляет собой яркость отраженного излучения и представляет собой яркость при нормальном падении на поверхность.Where represents the brightness of the reflected radiation and represents the brightness at normal incidence on a surface.

[0075] В некоторых вариантах осуществления для каждого соответствующего пикселя из множества пикселей пиксельной карты направление нормали определяют (738) путем сопоставления данных цвета (например, предполагаемой яркости) с заданной функцией угла, при котором были получены данные цвета и выбор, в качестве направления нормали, угла, при котором соответствующая заданная функция имеет максимальную яркость. Пиксели данных, полученные при углах, менее, например, 55° от этой «истинной нормали» применяют для определения настраиваемого значения цвета для соответствующего пикселя посредством модели отражения Ламберта для диффузной яркости, как описано выше. Параметр зеркальности (например глянец или, наоборот, шероховатость) определяют для соответствующего пикселя путем вычитания максимального значения соответствующей модели отражения Ламберта (например, значения ) из наибольшего значения соответствующей предполагаемой яркости в соответствии с уравнением (2). [0075] In some embodiments, for each corresponding pixel of the plurality of pixel map pixels, a normal direction is determined (738) by mapping color data (eg, estimated brightness) to a given function of the angle at which the color data was obtained and selected as the normal direction , the angle at which the corresponding given function has maximum brightness. Data pixels obtained at angles less than, for example, 55° from this “true normal” are used to determine a custom color value for the corresponding pixel through the Lambert reflectance model for diffuse luminance, as described above. The specularity parameter (for example, gloss or, conversely, roughness) is determined for the corresponding pixel by subtracting the maximum value of the corresponding Lambert reflection model (for example, the value ) from the largest value of the corresponding estimated brightness in accordance with equation (2).

[0076] В более общем смысле, в некоторых вариантах осуществления способ 700 включает для каждого соответствующего пикселя из множества пикселей пиксельной карты применение первого подмножества данных цвета, соответствующих пикселю, для определения первого параметра (например, параметра зеркальности или направления истинной нормали) и применение второго подмножества данных цвета, соответствующих пикселю, отличных от первого подмножества данных цвета, для определения второго параметра (например, диффузного параметра). В некоторых вариантах осуществления, как описано выше, разделение на два подмножества данных цвета (данные для вычисления диффузного цвета и данные для вычисления цвета зеркальности) может основываться на угле, при котором были получены данные. В некоторых вариантах осуществления разделение на два подмножества данных цвета можно выполнить на основании других принципов или любой их вариации. [0076] More generally, in some embodiments, method 700 includes, for each corresponding pixel of a plurality of pixels in a pixel map, using a first subset of color data corresponding to the pixel to determine a first parameter (e.g., a specularity parameter or true normal direction) and using a second a subset of color data corresponding to a pixel other than the first subset of color data to determine a second parameter (eg, a diffuse parameter). In some embodiments, as described above, the division into two subsets of color data (diffuse color calculation data and specular color calculation data) may be based on the angle at which the data was acquired. In some embodiments, dividing the color data into two subsets may be performed based on other principles or any variation thereof.

[0077] Со ссылкой на Фиг.7D, в некоторых вариантах осуществления для каждого пикселя из множества пикселей пиксельной карты значение для нецветового свойства соответствующей точки на поверхности объекта определяют (740) путем: предоставления решающему устройству для системы одного или более уравнений текстуры (например, уравнений освещения и затенения) (например, модель текстуры, которая может содержать уравнения затенения и/или модель отражения) изображений поверхности объекта вместе с информацией, указывающей пространственное положение 3D сканера 100 относительно объекта, при котором были получены изображения; и приема значения для нецветового свойства соответствующей точки на поверхности объекта в качестве выходных данных от решающего устройства для системы одного или более уравнений текстуры.[0077] Referring to FIG. 7D, in some embodiments, for each pixel of a plurality of pixel map pixels, a value for a non-color property of a corresponding point on the surface of an object is determined (740) by: providing the solver for the system with one or more texture equations (e.g., illumination and shading equations) (e.g., a texture model that may include shading equations and/or a reflection model) of images of the object's surface along with information indicating the spatial position of the 3D scanner 100 relative to the object at which the images were acquired; and receiving a value for a non-color property of a corresponding point on the surface of the object as output from the solver for the system of one or more texture equations.

[0078] Следует отметить, что в некоторых вариантах осуществления модель текстуры содержит систему уравнений, которую обычно применяют для физического рендеринга. Таким образом, в некоторых вариантах осуществления операция 740 сводится к запуску модели физического рендеринга (PBR - англ.: physically-based rendering) в «обратном порядке». Обычно такие модели PBR применяются компьютерными аниматорами (например, для видеоигр или фильмов), которые вводят свойства материала, который они хотят выбрать и получить, в качестве выходных данных, предполагаемые цвета, которые зависят от освещения, выбранного аниматором. В операции 740 применяют в качестве входных данных предполагаемые цвета при различных углах и определяют свойства материала. [0078] It should be noted that in some embodiments, the texture model includes a system of equations that is typically used for physical rendering. Thus, in some embodiments, operation 740 amounts to running the physical-based rendering (PBR) model in “reverse order.” Typically, such PBR models are used by computer animators (for example, for video games or films) who input the properties of the material they want to select and produce, as output, suggested colors that depend on the lighting chosen by the animator. At step 740, expected colors at various angles are used as input and material properties are determined.

[0079] В некоторых вариантах осуществления модель текстуры представляет собой модель двумерной функции распределения отражательной способности объектов (BRDF - англ.: bidirectional reflectance distribution function). Например, модель диффузного отражения Ламберта может быть записана следующим образом:[0079] In some embodiments, the texture model is a bidirectional reflectance distribution function (BRDF) model. For example, Lambert's diffuse reflectance model can be written as follows:

(3) (3)

где представляет собой единичный вектор в направлении источника света, представляет собой единичный вектор в направлении смотрящего.Where represents a unit vector in the direction of the light source, represents a unit vector in the direction of the viewer.

[0080] В некоторых вариантах осуществления модель текстуры представляет собой модель зеркальности микрограней на основе BRDF, такую как модель зеркального затенения микрограней Кука-Торренса или другую модель микрограней. Модель зеркального затенения микрограней Кука-Торренса предполагает, что поверхность содержит микрограни, каждая из которых зеркально отражает свет. Модель зеркального затенения микрограней Кука-Торренса может быть записана следующим образом:[0080] In some embodiments, the texture model is a BRDF-based microfacet specularity model, such as a Cook-Torrance microfacet specular shading model or other microfacet model. The Cook-Torrance microfacet specular shading model assumes that a surface contains microfacets, each of which specularly reflects light. The Cook-Torrance model of specular shading of microfacets can be written as follows:

(4) (4)

где представляет собой единичный угловой бисектор и , n представляет собой единичный вектор нормали (например, единичный вектор в направлении «истинной нормали»). Функции D, F и G описаны ниже. В некоторых случаях модель Кука-Торренса применяют для определения значения параметра зеркальности (например, зеркального затенения) и модель отражения Ламберта применяют для определения диффузного значения.Where represents a unit angular bisector And , n represents the unit normal vector (for example, the unit vector in the "true normal" direction). Functions D, F and G are described below. In some cases, the Cook-Torrance model is used to determine the value of a specularity parameter (eg, specular occlusion) and the Lambert reflectance model is used to determine the diffuse value.

[0081] Только грани, которые являются перпендикулярными в направлении h вносят вклад в зеркальный компонент отражения от l к v. Таким образом, функция D(h) представляет собой функцию распределения наклона граней, которая соответствует части граней, которые ориентированы в направлении h. Функция D может быть записана следующим образом:[0081] Only faces that are perpendicular in the h direction contribute to the specular component of the l to v reflection. Thus, the function D ( h ) is the distribution function of the slope of the faces, which corresponds to the portion of the faces that are oriented in the direction of h . Function D can be written as follows:

(5) (5)

где представляет собой квадрат шероховатости. Where represents the square of roughness.

[0082] Функция G представляет собой фактор геометрического затухания, который учитывает затенение или маскирование одной грани другой гранью и может быть записана следующим образом: [0082] The G function is a geometric attenuation factor that takes into account the shading or masking of one face by another face and can be written as follows:

(6) (6)

(7) (7)

где k представляет собой параметр, специфичный для модели. Например, в некоторых вариантах осуществления, k относится к шероховатости материала.where k is a model-specific parameter. For example, in some embodiments, k refers to the roughness of the material.

[0083] Функция F представляет собой терм Френеля, который описывает как свет отражается от каждой гладкой микрограни, и может быть записан следующим образом:[0083] The F function is a Fresnel term that describes how light is reflected from each smooth microfacet, and can be written as follows:

(8) (8)

где представляет собой зеркальное отражение при падении света под прямым углом. Where represents a specular reflection when light is incident at a right angle.

[0084] Следует отметить, что модели BRDF и формулы, описанные выше, включающие модель зеркального затенения микрограней Кука-Торренса являются только примерами моделей текстуры. Специалисту в данной области техники, ознакомленному с преимуществами данного изобретения, будет понятно, что можно применять любое количество моделей текстуры в соответствии с различными вариантами осуществления настоящего изобретения. Другие модели текстуры включают, помимо прочего, модель отражения Фонга, модель распределения Гаусса, модель распределения Бекмана, анизотропную модель Гейдриха-Зайделя и/или анизотропную модель Уорда. [0084] It should be noted that the BRDF models and formulas described above, including the Cook-Torrance microfacet specular shading model, are only examples of texture models. One skilled in the art familiar with the advantages of the present invention will appreciate that any number of texture patterns may be employed in accordance with various embodiments of the present invention. Other texture models include, but are not limited to, the Phong reflection model, the Gaussian distribution model, the Beckmann distribution model, the anisotropic Heydrich-Seidel model, and/or the anisotropic Ward model.

[0085] Таким образом, некоторые варианты осуществления настоящего изобретения предполагают, что текстура поверхности на объекте может быть разложена (например, аддитивно) на множество свойств текстуры материала (например, яркость отраженного излучения и диффузная яркость) и что эти свойства текстуры могут быть связаны с наблюдениями цвета при модели текстуры. Если явно не указано обратное, приведенную ниже формулу изобретения не следует истолковывать как ограниченную конкретной моделью текстуры.[0085] Thus, some embodiments of the present invention contemplate that the surface texture on an object can be decomposed (e.g., additively) into a plurality of material texture properties (e.g., reflected luminance and diffuse luminance) and that these texture properties can be related to observations of color with a texture model. Unless expressly stated to the contrary, the following claims should not be construed as being limited to a particular texture model.

[0086] Кроме того, как можно было увидеть из приведенных выше уравнений, некоторые модели текстуры связывают местоположение одного или более источников света с наблюдаемым цветом. В некоторых вариантах осуществления 3D сканер содержит источник света. В некоторых вариантах осуществления источник света на 3D сканере по существу ярче любого источника света, наружного по отношению к 3D сканеру. Таким образом, в некоторых вариантах осуществления местоположение источника света известно и способ включает применение в уравнениях текстуры известного местоположения источника света. Например, способ включает предположение того, что зеркальные отражения обусловлены только источником света на 3D сканере и решение уравнений текстуры вне зависимости от любых источников света, расположенных снаружи 3D сканера (например, решение уравнений текстуры включает предположение того, что окружающее освещение является незначительным по сравнению со светом, излучаемым источником света на 3D сканере). [0086] Additionally, as can be seen from the equations above, some texture models relate the location of one or more light sources to an observed color. In some embodiments, the 3D scanner includes a light source. In some embodiments, the light source on the 3D scanner is substantially brighter than any light source external to the 3D scanner. Thus, in some embodiments, the location of the light source is known and the method includes applying the known location of the light source to the texture equations. For example, the method includes assuming that specular reflections are due only to a light source on a 3D scanner and solving texture equations independent of any light sources located outside the 3D scanner (e.g., solving texture equations involves assuming that ambient illumination is negligible relative to light emitted by the light source on the 3D scanner).

[0087] В некоторых вариантах осуществления 3D сканер 100 формирует (742) текстурированное 3D представление объекта посредством 3D реконструкции по меньшей мере части формы поверхности объекта и пиксельной карты. [0087] In some embodiments, the 3D scanner 100 generates (742) a textured 3D representation of an object by 3D reconstructing at least a portion of the object's surface shape and pixel map.

[0088] В некоторых вариантах осуществления 3D сканер 100 применяет (744) текстурированное 3D представление объекта для того, чтобы анимировать соответствующий объект в анимацию (например, путем отображения карты цветов на полигональную координатную сетку 3D реконструкции объекта). [0088] In some embodiments, the 3D scanner 100 uses (744) a textured 3D representation of an object to animate the corresponding object into animation (eg, by mapping a color map onto a polygonal coordinate grid of a 3D reconstruction of the object).

[0089] В некоторых вариантах осуществления нецветовое свойство представляет собой направление нормали, и направления нормали на пиксельной карте, применяют для целей метрологии, осмотра и контроля качества (например, осмотра поверхности, обнаружения царапин и трещин и т.д.). В некоторых вариантах осуществления 3D сканер 100 обнаруживает одну или более трещин (или царапин) и отображает (например, на встроенном дисплее или на дисплее, отдельном от 3D сканера 100) 3D представление объекта с визуальной индикацией, отображающей местоположение трещин (или царапин). В некоторых вариантах осуществления в соответствии с определением того, что объект поцарапан (или треснут) сверх указанного порогового значения (например, порогового значения обеспечения качества), 3D сканер 100 формирует отчет, указывающий, что объект поцарапан (или треснут) сверх указанного порогового значения. [0089] In some embodiments, the non-color property is a normal direction, and the normal directions on the pixel map are used for metrology, inspection, and quality control purposes (eg, surface inspection, scratch and crack detection, etc.). In some embodiments, the 3D scanner 100 detects one or more cracks (or scratches) and displays (for example, on an integrated display or on a display separate from the 3D scanner 100) a 3D representation of the object with a visual indication indicating the location of the cracks (or scratches). In some embodiments, in accordance with a determination that an object is scratched (or cracked) above a specified threshold (eg, a quality assurance threshold), the 3D scanner 100 generates a report indicating that the object is scratched (or cracked) above a specified threshold.

[0090] В некоторых вариантах осуществления 3D сканер 100 отображает (например, на встроенном дисплее или дисплее, отдельном от 3D сканера 100) пиксельную карту (например, отображает текстурированное 3D представление объекта). В некоторых вариантах осуществления 3D сканер 100 отображает значения цвета пиксельной карты без отображения значений нецветовых свойств пиксельной карты (например, отображает текстурированное 3D представление объекта только с диффузным цветом). В некоторых вариантах осуществления 3D сканер 100 отображает значения нецветовых параметров пиксельной карты без отображения значений цвета пиксельной карты (например, отображает текстурированное 3D представление объекта только с диффузным цветом). В некоторых вариантах осуществления 3D сканер 100 принимает пользовательский ввод и в ответ на пользовательский ввод переключается между отображением текстурированного 3D представления объекта, отображением значений цвета пиксельной карты и отображением значений для нецветового свойства (или свойств) (например, в ответ на прием пользовательского ввода 3D сканер 100 переходит от отображения текстурированного 3D представления объекта к отображению значений цвета пиксельной карты или значений для нецветового свойства; или в ответ на прием пользовательского ввода 3D сканер 100 переходит от отображения значений цвета пиксельной карты к отображению текстурированного 3D представления объекта или отображению значений для нецветового свойства; или в ответ на прием пользовательского ввода 3D сканер 100 переходит от отображения значений нецветового свойства к отображению текстурированного 3D представления объекта или отображению значений цвета пиксельной карты). [0090] In some embodiments, the 3D scanner 100 displays (eg, on an integrated display or a display separate from the 3D scanner 100) a pixel map (eg, displays a textured 3D representation of an object). In some embodiments, the 3D scanner 100 displays the color values of the pixmap without displaying the values of the non-color properties of the pixmap (eg, displays a textured 3D representation of an object with only diffuse color). In some embodiments, 3D scanner 100 displays non-color pixmap parameter values without displaying pixmap color values (eg, displays a textured 3D representation of an object with only diffuse color). In some embodiments, the 3D scanner 100 receives user input and, in response to the user input, switches between displaying a textured 3D representation of the object, displaying pixmap color values, and displaying values for a non-color property (or properties) (e.g., in response to receiving user input, the 3D scanner 100 transitions from displaying a textured 3D representation of the object to displaying pixmap color values or values for a non-color property; or in response to receiving user input, the 3D scanner 100 transitions from displaying pixmap color values to displaying a textured 3D representation of the object or displaying values for a non-color property; or in response to receiving user input, the 3D scanner 100 transitions from displaying non-color property values to displaying a textured 3D representation of the object or displaying pixmap color values).

[0091] Вышеприведенное описание, в целях пояснения, было приведено со ссылкой на конкретные варианты осуществления и графические материалы. Однако, вышеприведенное описание не является исчерпывающим и не ограничивает изобретение конкретными описанными формами. Возможны многие модификации и вариации, принимая во внимание вышеизложенные идеи. Варианты осуществления были выбраны и описаны в порядке, который наилучшим образом поясняет принципы изобретения и его практическое применение, в целях обеспечения специалистов в данной области техники возможностью наилучшего применения изобретения и различных описанных вариантов осуществления с различными модификациями, подходящими для определенного предусмотренного вида применения.[0091] The above description, for purposes of explanation, has been given with reference to specific embodiments and drawings. However, the above description is not exhaustive and does not limit the invention to the specific forms described. Many modifications and variations are possible, taking into account the above ideas. The embodiments have been selected and described in an order that best explains the principles of the invention and its practical application in order to enable those skilled in the art to best practice the invention and the various embodiments described with various modifications suitable for the particular intended use.

[0092] Кроме того, следует понимать, что, хотя термины первый, второй и т. д. в некоторых случаях приводятся в настоящем документе для описания различных элементов, эти элементы не должны ограничиваться этими терминами. Эти термины применяются только для отличения одного элемента от другого. Например, первый датчик может называться вторым датчиком, и, аналогичным образом, второй датчик может называться первым датчиком, без отступления от объема различных описанных вариантов осуществления. Первый датчик и второй датчик одновременно являются датчиками, но они не являются одним и тем же датчиком, если контекст явным образом не указывает на иное.[0092] In addition, it should be understood that although the terms first, second, etc. are used in some cases herein to describe various elements, these elements should not be limited to these terms. These terms are used only to distinguish one element from another. For example, the first sensor may be referred to as a second sensor, and likewise, the second sensor may be referred to as a first sensor, without departing from the scope of the various embodiments described. The first sensor and the second sensor are both sensors, but they are not the same sensor unless the context clearly indicates otherwise.

[0093] Терминология, применяемая в описании различных описанных вариантов осуществления в настоящем документе, предназначена исключительно для описания конкретных вариантов осуществления и не должна рассматриваться как ограничивающая. Применяемые в описании различных описанных вариантов осуществления и в прилагаемой формуле все формы единственного числа также включают в себя формы множественного числа, если контекст явно не указывает на иное. Кроме того, следует понимать, что термин «и/или» в контексте настоящего документа означает и охватывает любые возможные комбинации одного или более связанных перечисляемых элементов. Кроме того, следует понимать, что термины «включает», «включающий», «содержит» и/или «содержащий» в контексте настоящего описания указывают на наличие указанных признаков, целых величин, этапов, операций, элементов и/или компонентов, но не исключают наличие или добавление одного или более иных признаков, целых величин, этапов, операций, элементов, компонентов и/или их групп.[0093] The terminology used in the description of the various described embodiments herein is intended solely to describe specific embodiments and should not be construed as limiting. As used in the description of the various embodiments described and in the accompanying claims, all singular forms also include plural forms unless the context clearly indicates otherwise. In addition, it should be understood that the term “and/or” as used herein means and covers any possible combinations of one or more related enumerated elements. In addition, it should be understood that the terms “includes,” “comprising,” “contains,” and/or “comprising,” as used herein, indicate the presence of specified features, quantities, steps, operations, elements, and/or components, but not exclude the presence or addition of one or more other features, integers, stages, operations, elements, components and/or groups thereof.

[0094] В контексте настоящего документа термин «если» необязательно приводится в значении «когда» или «при», или «в ответ на определение», или «в ответ на обнаружение», в зависимости от контекста. Аналогичным образом, фразу «если это определено» или «если обнаружено [указанное состояние или событие]», необязательно, толковать как означающую «после определения» или «в ответ на определение», или «после обнаружения [указанного состояния или события]», или «в ответ на обнаружение [указанного состояния или события]», в зависимости от контекста.[0094] As used herein, the term “if” does not necessarily mean “when” or “at” or “in response to a determination” or “in response to a detection”, depending on the context. Likewise, the phrase "if determined" or "if [specified condition or event] is detected" need not be interpreted to mean "after determination" or "in response to determination" or "after detection of [specified condition or event]" or "in response to the detection of [a specified condition or event]", depending on the context.

Claims (77)

1. Способ формирования моделей текстуры с помощью портативного сканера, включающий:1. A method for generating texture models using a portable scanner, including: сканирование объекта, имеющего поверхность, посредством трехмерного (3D) сканера с одним или более оптическими датчиками, причем при сканировании формируются:scanning an object having a surface using a three-dimensional (3D) scanner with one or more optical sensors, and during scanning the following are formed: - данные цвета из множества пространственных положений 3D сканера относительно объекта; и- color data from multiple spatial positions of the 3D scanner relative to the object; And - данные, соответствующие трехмерной (3D) форме по меньшей мере части поверхности объекта,- data corresponding to the three-dimensional (3D) shape of at least part of the surface of the object, формирование 3D реконструкции формы упомянутой по меньшей мере части поверхности объекта с помощью данных, соответствующих трехмерной (3D) форме по меньшей мере части поверхности объекта, причем 3D реконструкция содержит множество пикселей, и generating a 3D reconstruction of the shape of said at least a portion of the object's surface using data corresponding to a three-dimensional (3D) shape of at least a portion of the object's surface, the 3D reconstruction comprising a plurality of pixels, and для каждого пикселя, упомянутого множества пикселей, определение направления истинной нормали, for each pixel, said plurality of pixels, determining the direction of the true normal, формирование пиксельной карты поверхности объекта с помощью, по меньшей мере, данных цвета, причем пиксельная карта для каждого соответствующего пикселя из множества пикселей содержит: generating a pixel map of the surface of an object using at least the color data, wherein the pixel map for each corresponding pixel of the plurality of pixels comprises: - значение цвета соответствующей точки на поверхности объекта, причем для каждого соответствующего пикселя из упомянутого множества пикселей пиксельной карты значение цвета определяют с помощью данных цвета из заданного диапазона углов относительно направления истинной нормали для соответствующего пикселя, и при этом упомянутый заданный диапазон углов представляет собой диапазон углов больше диффузного порогового угла; и - a color value of a corresponding point on the surface of an object, wherein for each corresponding pixel of said plurality of pixels of the pixel map, the color value is determined using color data from a given range of angles relative to the direction of the true normal for the corresponding pixel, and wherein said specified range of angles is a range of angles greater than the diffuse threshold angle; And - значение отражательной способности соответствующей точки на поверхности объекта, причем значение отражательной способности соответствующей точки на поверхности объекта определяют с помощью направления истинной нормали для соответствующей точки на поверхности объекта, и при этом значение отражательной способности определяют с помощью данных цвета, полученных при углах относительно направления истинной нормали, которые меньше диффузного порогового угла. - a reflectance value of a corresponding point on the surface of an object, wherein the reflectance value of a corresponding point on the surface of an object is determined using the direction of the true normal for the corresponding point on the surface of the object, and wherein the reflectance value is determined using color data obtained at angles relative to the direction of the true normals that are less than the diffuse threshold angle. 2. Способ по п.1, в котором пиксельная карта представляет собой карту текстуры поверхности объекта. 2. The method of claim 1, wherein the pixel map is a surface texture map of the object. 3. Способ по п.1, дополнительно включающий формирование, для каждого соответствующего пикселя из упомянутого множества пикселей, значения нецветового свойства соответствующего пикселя с помощью, по меньшей мере, данных цвета, при этом нецветовое свойство выбирают из группы, состоящей из следующего: параметр металличности и шероховатость поверхности. 3. The method of claim 1, further comprising generating, for each corresponding pixel of said plurality of pixels, a non-color property value of the corresponding pixel using at least the color data, wherein the non-color property is selected from the group consisting of the following: a metallicity parameter and surface roughness. 4. Способ по п.1, в котором сканирование включает в себя изменение положения 3D сканера на множество пространственных положений относительно объекта. 4. The method according to claim 1, wherein the scanning includes changing the position of the 3D scanner to a plurality of spatial positions relative to the object. 5. Способ по п.1, в котором отдельный оптический датчик получает данные цвета из множества пространственных положений 3D сканера относительно объекта. 5. The method of claim 1, wherein the individual optical sensor receives color data from a plurality of spatial positions of the 3D scanner relative to the object. 6. Способ по п.1, дополнительно включающий:6. The method according to claim 1, additionally including: формирование текстурированного 3D представления объекта посредством 3D реконструкции формы упомянутой по меньшей мере части поверхности объекта и пиксельной карты. generating a textured 3D representation of the object by 3D reconstruction of the shape of said at least part of the surface of the object and a pixel map. 7. Способ по п.6, дополнительно включающий:7. The method according to claim 6, additionally including: применение текстурированного 3D представления объекта для того, чтобы анимировать соответствующий объект в анимацию. applying a textured 3D representation of an object in order to animate the corresponding object into animation. 8. Способ по п.1, дополнительно включающий:8. The method according to claim 1, additionally including: определение множества пространственных положений 3D сканера относительно объекта, из которых были получены данные цвета, посредством 3D реконструкции формы упомянутой по меньшей мере части поверхности объекта. determining a plurality of spatial positions of the 3D scanner relative to the object from which the color data was obtained by 3D reconstructing the shape of said at least part of the surface of the object. 9. Способ по п.1, в котором:9. The method according to claim 1, in which: упомянутые один или более оптических датчиков включают в себя первый оптический датчик; и said one or more optical sensors include a first optical sensor; And формирование данных, соответствующих трехмерной (3D) форме упомянутой по меньшей мере части поверхности объекта, включает в себя многократное выполнение следующих операций:generating data corresponding to the three-dimensional (3D) shape of said at least part of the surface of the object involves repeatedly performing the following operations: проецирование пространственной структуры освещения на поверхность объекта; и,projection of the spatial structure of lighting onto the surface of an object; And, когда пространственную структуру освещения проецируют на поверхность объекта, получение изображения поверхности объекта посредством первого оптического датчика. when the spatial illumination structure is projected onto the surface of an object, obtaining an image of the surface of the object through the first optical sensor. 10. Способ по п.1, в котором:10. The method according to claim 1, in which: упомянутые один или более оптических датчиков включают в себя второй оптический датчик; иsaid one or more optical sensors include a second optical sensor; And формирование данных цвета из множества пространственных положений 3D сканера относительно объекта включает в себя получение изображения поверхности объекта посредством второго оптического датчика, с помощью 3D сканера, расположенного в каждом из множества пространственных положений относительно объекта. generating color data from a plurality of spatial positions of the 3D scanner relative to the object includes obtaining an image of the surface of the object through a second optical sensor, using the 3D scanner located at each of the plurality of spatial positions relative to the object. 11. Способ по п.1, дополнительно включающий: 11. The method according to claim 1, additionally including: определение соответствия пиксель-уровень между пикселями в различных изображениях поверхности объекта. determining pixel-level correspondence between pixels in different images of an object's surface. 12. Способ по п.1, в котором: 12. The method according to claim 1, in which: для каждого соответствующего пикселя из упомянутого множества пикселей пиксельной карты значение цвета соответствующей точки на поверхности объекта представляет собой скорректированное значение цвета; и for each corresponding pixel of the plurality of pixels of the pixel map, the color value of the corresponding point on the surface of the object is an adjusted color value; And формирование скорректированного значения цвета включает в себя:generating an adjusted color value includes: - определение номинального значения цвета для соответствующего пикселя с помощью данных цвета; и - determining the nominal color value for the corresponding pixel using the color data; And - настройку номинального значения цвета для соответствующего пикселя пиксельной карты с помощью значения для отражательной способности соответствующей точки на поверхности объекта. - setting the nominal color value for the corresponding pixel of the pixel map using the value for the reflectance of the corresponding point on the surface of the object. 13. Способ по п.1, в котором, для каждого соответствующего пикселя из упомянутого множества пикселей пиксельной карты, направление истинной нормали определяют путем выбора, в качестве направления истинной нормали, угла, при котором в данных цвета наблюдается максимальная яркость. 13. The method of claim 1, wherein, for each corresponding pixel of said plurality of pixels in the pixel map, the true normal direction is determined by selecting, as the true normal direction, the angle at which maximum luminance is observed in the color data. 14. Способ по п.1, в котором, для каждого соответствующего пикселя из упомянутого множества пикселей пиксельной карты, направление истинной нормали определяют путем: 14. The method of claim 1, wherein, for each corresponding pixel of said plurality of pixels in the pixel map, the true normal direction is determined by: сопоставления данных цвета с заданной функцией угла, при котором были получены данные цвета; иmatching the color data with a given function of the angle at which the color data was obtained; And выбора, в качестве направления истинной нормали, угла, при котором сопоставленная заданная функция имеет максимальную яркость.selecting, as the direction of the true normal, the angle at which the associated given function has maximum brightness. 15. Способ по п.1, в котором значение цвета для каждого из упомянутого множества пикселей представляет собой векторное значение.15. The method of claim 1, wherein the color value for each of said plurality of pixels is a vector value. 16. Способ по п.1, в котором значение отражательной способности для каждого из упомянутого множества пикселей представляет собой скалярное значение.16. The method of claim 1, wherein the reflectance value for each of said plurality of pixels is a scalar value. 17. Способ по п.1, в котором 3D сканер представляет собой портативный ручной 3D сканер.17. The method according to claim 1, wherein the 3D scanner is a portable hand-held 3D scanner. 18. Электронная система для формирования моделей текстуры с помощью портативного сканера, содержащая:18. Electronic system for generating texture models using a portable scanner, containing: 3D сканер, который содержит один или более оптических датчиков;A 3D scanner that contains one or more optical sensors; один или более процессоров; иone or more processors; And запоминающее устройство, в котором хранятся команды, которые, при их исполнении упомянутыми одним или более процессорами, инициируют выполнение упомянутыми одним или более процессорами способа по любому из пп.1-17. a storage device in which instructions are stored which, when executed by said one or more processors, cause said one or more processors to execute a method according to any one of claims 1 to 17. 19. Постоянный машиночитаемый носитель данных для хранения команд, инициирующих способ по пп.1-17, на котором хранятся команды, которые, при их выполнении электронной системой с одним или более процессорами, запоминающим устройством и 3D сканером, который содержит один или более оптических датчиков, инициируют выполнение упомянутыми одним или более процессорами способа по любому из пп.1-17. 19. A non-transitory computer-readable storage medium for storing instructions initiating the method according to claims 1 to 17, on which instructions are stored that, when executed by an electronic system with one or more processors, a storage device and a 3D scanner that contains one or more optical sensors , initiate execution by said one or more processors of the method according to any one of claims 1 to 17. 20. Способ формирования моделей текстуры с помощью портативного сканера, включающий:20. A method for generating texture models using a portable scanner, including: сканирование объекта, имеющего поверхность, посредством трехмерного (3D) сканера с одной или более камерами, причем при сканировании формируются:scanning an object having a surface using a three-dimensional (3D) scanner with one or more cameras, and during scanning the following are formed: - данные цвета из множества пространственных положений 3D сканера относительно объекта, причем формирование данных цвета из упомянутого множества пространственных положений 3D сканера относительно объекта включает получение изображения поверхности объекта с помощью упомянутых одной или более камер, расположенных в каждом из упомянутого множества пространственных положений относительно объекта; и- color data from a plurality of spatial positions of the 3D scanner relative to the object, wherein generating color data from said plurality of spatial positions of the 3D scanner relative to the object includes obtaining an image of the surface of the object using said one or more cameras located in each of said plurality of spatial positions relative to the object; And - данные, соответствующие трехмерной (3D) форме по меньшей мере части поверхности объекта, причем формирование данных, соответствующих трехмерной (3D) форме по меньшей мере части поверхности объекта, включает в себя многократное выполнение следующих операций:- data corresponding to a three-dimensional (3D) shape of at least a portion of the surface of an object, wherein generating data corresponding to a three-dimensional (3D) shape of at least a portion of the surface of an object involves repeatedly performing the following operations: - проецирование пространственной структуры освещения на поверхность объекта; и,- projection of the spatial structure of lighting onto the surface of the object; And, - когда пространственную структуру освещения проецируют на поверхность объекта, получение изображения поверхности объекта посредством упомянутых одной или более камер; - when the spatial structure of illumination is projected onto the surface of an object, obtaining an image of the surface of the object by means of said one or more cameras; формирование 3D реконструкции формы упомянутой по меньшей мере части объекта с помощью упомянутых данных, соответствующих трехмерной (3D) форме упомянутой по меньшей мере части поверхности объекта, и generating a 3D reconstruction of the shape of said at least part of the object using said data corresponding to the three-dimensional (3D) shape of said at least part of the surface of the object, and формирование пиксельной карты поверхности объекта, причем пиксельная карта для каждого соответствующего пикселя из упомянутого множества пикселей содержит: generating a pixel map of the object's surface, wherein the pixel map for each corresponding pixel of said plurality of pixels contains: - значение нецветового свойства соответствующей точки на поверхности объекта, и- the value of the non-color property of the corresponding point on the surface of the object, and - значение цвета соответствующей точки на поверхности объекта, причем значение цвета формируют с помощью данных цвета и корректируют согласно значению нецветового свойства соответствующей точки на поверхности объекта;- a color value of the corresponding point on the surface of the object, wherein the color value is generated using the color data and adjusted according to the value of the non-color property of the corresponding point on the surface of the object; при этом: wherein: для каждого пикселя из упомянутого множества пикселей пиксельной карты значение нецветового свойства соответствующей точки на поверхности объекта определяют посредством:for each pixel of said plurality of pixel map pixels, the value of the non-color property of the corresponding point on the surface of the object is determined by: - предоставления, решающему устройству для системы одного или более уравнений текстуры, изображений поверхности объекта вместе с информацией, указывающей пространственные положения 3D сканера относительно объекта, на котором были получены изображения; и- providing, to the solver for the system of one or more texture equations, images of the surface of the object together with information indicating the spatial positions of the 3D scanner relative to the object on which the images were obtained; And - приема значения нецветового свойства соответствующей точки на поверхности объекта в качестве выходных данных от решающего устройства для системы одного или более уравнений текстуры. - receiving the value of a non-color property of a corresponding point on the surface of an object as output from a solver for a system of one or more texture equations. 21. Способ по п.20, в котором пиксельная карта представляет собой карту текстуры поверхности объекта. 21. The method of claim 20, wherein the pixel map is a surface texture map of the object. 22. Способ по п.20, в котором нецветовое свойство выбирают из группы, состоящей из следующего: диффузное значение, значение зеркальности, параметр металличности и шероховатость поверхности. 22. The method of claim 20, wherein the non-color property is selected from the group consisting of the following: diffuse value, specularity value, metallicity parameter, and surface roughness. 23. Способ по п.20, в котором сканирование включает в себя изменение положения 3D сканера на множество пространственных положений относительно объекта. 23. The method of claim 20, wherein the scanning includes changing the position of the 3D scanner to a plurality of spatial positions relative to the object. 24. Способ по п.20, в котором отдельный оптический датчик получает данные цвета из множества пространственных положений 3D сканера относительно объекта. 24. The method of claim 20, wherein the individual optical sensor obtains color data from a plurality of spatial positions of the 3D scanner relative to the object. 25. Способ по п.20, дополнительно включающий:25. The method according to claim 20, further including: формирование текстурированного 3D представления объекта посредством 3D реконструкции формы упомянутой по меньшей мере части поверхности объекта и пиксельной карты. generating a textured 3D representation of the object by 3D reconstructing the shape of said at least part of the surface of the object and the pixel map. 26. Способ по п.25, дополнительно включающий:26. The method according to claim 25, further comprising: применение текстурированного 3D представления объекта для того, чтобы анимировать соответствующий объект в анимацию. applying a textured 3D representation of an object in order to animate the corresponding object into animation. 27. Способ по п.20, дополнительно включающий:27. The method according to claim 20, further comprising: определение множества пространственных положений 3D сканера относительно объекта, из которых были получены данные цвета, посредством 3D реконструкции формы упомянутой по меньшей мере части поверхности объекта. determining a plurality of spatial positions of the 3D scanner relative to the object from which the color data was obtained by 3D reconstructing the shape of said at least part of the surface of the object. 28. Способ по п.20, дополнительно включающий: 28. The method according to claim 20, further including: определение соответствия пиксель-уровень между пикселями в различных изображениях поверхности объекта. determining pixel-level correspondence between pixels in different images of an object's surface. 29. Электронная система для формирования моделей текстуры с помощью портативного сканера, содержащая:29. Electronic system for generating texture models using a portable scanner, containing: 3D сканер, который содержит один или более оптических датчиков;A 3D scanner that contains one or more optical sensors; один или более процессоров; иone or more processors; And запоминающее устройство, в котором хранятся команды, которые, при их исполнении упомянутыми одним или более процессорами, инициируют выполнение упомянутыми одним или более процессорами способа по любому из пп.20-28. a storage device in which instructions are stored which, when executed by said one or more processors, cause said one or more processors to execute the method of any one of claims 20 to 28. 30. Постоянный машиночитаемый носитель данных для хранения команд, инициирующих способ по пп.21-28, на котором хранятся команды, которые, при их выполнении электронной системой с одним или более процессорами, запоминающим устройством и 3D сканером, который содержит один или более оптических датчиков, инициируют выполнение упомянутыми одним или более процессорами способа по любому из пп.20-28.30. A non-transitory computer-readable storage medium for storing commands initiating the method of claims 21 to 28, which stores commands that, when executed by an electronic system with one or more processors, a storage device and a 3D scanner that contains one or more optical sensors , initiate execution by said one or more processors of the method according to any one of claims 20-28.
RU2021125867A 2019-02-05 2020-01-21 Formation of texture models using a portable scanner RU2810240C2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US62/801,568 2019-02-05
US62/840,290 2019-04-29

Publications (2)

Publication Number Publication Date
RU2021125867A RU2021125867A (en) 2023-03-06
RU2810240C2 true RU2810240C2 (en) 2023-12-25

Family

ID=

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090278845A1 (en) * 2005-10-03 2009-11-12 Ssd Company Limited Image generating device, texture mapping device, image processing device, and texture storing method
RU2467395C1 (en) * 2011-07-11 2012-11-20 Российская Федерация, От Имени Которой Выступает Министерство Промышленности И Торговли Российской Федерации Method of forming images of three-dimensional objects for real-time systems
WO2014191055A1 (en) * 2013-05-31 2014-12-04 Longsand Limited Three-dimensional object modeling
US20180182163A1 (en) * 2016-05-27 2018-06-28 Rakuten, Inc. 3d model generating system, 3d model generating method, and program

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090278845A1 (en) * 2005-10-03 2009-11-12 Ssd Company Limited Image generating device, texture mapping device, image processing device, and texture storing method
RU2467395C1 (en) * 2011-07-11 2012-11-20 Российская Федерация, От Имени Которой Выступает Министерство Промышленности И Торговли Российской Федерации Method of forming images of three-dimensional objects for real-time systems
WO2014191055A1 (en) * 2013-05-31 2014-12-04 Longsand Limited Three-dimensional object modeling
US20180182163A1 (en) * 2016-05-27 2018-06-28 Rakuten, Inc. 3d model generating system, 3d model generating method, and program

Similar Documents

Publication Publication Date Title
US7564571B2 (en) Method for calibrating a camera-laser-unit in respect to a calibration-object
US9363501B2 (en) Combining depth-maps from different acquisition methods
JP6506507B2 (en) Measurement apparatus and control method thereof
CN105701793B (en) Method and apparatus for digitizing the appearance of real materials
US8134555B2 (en) Acquisition of surface normal maps from spherical gradient illumination
US6831641B2 (en) Modeling and rendering of surface reflectance fields of 3D objects
US6791542B2 (en) Modeling 3D objects with opacity hulls
US20040070565A1 (en) Method and apparatus for displaying images
RU2767590C2 (en) Three-dimensional scanner with data collection feedback
US20040227948A1 (en) Reflectometry apparatus and method
CN107221025B (en) System and method for synchronously acquiring three-dimensional color point cloud model of object surface
US11443474B2 (en) Generation of texture models using a moveable scanner
Hawkins et al. A Dual Light Stage.
Müller et al. Generating high fidelity 3-D thermograms with a handheld real-time thermal imaging system
GB2545394A (en) Systems and methods for forming three-dimensional models of objects
RU2810240C2 (en) Formation of texture models using a portable scanner
JP2004164571A (en) Method for modeling three-dimensional object
Goesele New acquisition techniques for real objects and light sources in computer graphics
JP2019105656A (en) Measuring device and method for controlling the same
Debevec et al. Digitizing the parthenon: Estimating surface reflectance under measured natural illumination
US20130009982A1 (en) Apparatus and method for displaying an image of an object on a visual display unit
Weinmann et al. Appearance capture and modeling.
JP7463697B2 (en) Gloss acquisition state calculation device, gloss acquisition state calculation method, gloss acquisition state calculation program, terminal, and gloss acquisition state display program
Siepmann et al. Pixel synchronous measurement of object shape and colour
Takase et al. Measurement of bidirectional reflectance distribution function with a linear light source