RU2810240C2 - Formation of texture models using a portable scanner - Google Patents
Formation of texture models using a portable scanner Download PDFInfo
- 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
Links
- 230000015572 biosynthetic process Effects 0.000 title 1
- 238000000034 method Methods 0.000 claims abstract description 68
- 230000003287 optical effect Effects 0.000 claims description 57
- 238000005286 illumination Methods 0.000 claims description 27
- 238000003860 storage Methods 0.000 claims description 18
- 230000003746 surface roughness Effects 0.000 claims description 6
- 230000000977 initiatory effect Effects 0.000 claims 2
- 239000000126 substance Substances 0.000 abstract 1
- 239000000463 material Substances 0.000 description 18
- 238000012545 processing Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 11
- 230000033001 locomotion Effects 0.000 description 9
- 230000004044 response Effects 0.000 description 8
- 230000005855 radiation Effects 0.000 description 6
- 238000001228 spectrum Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 238000009877 rendering Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000001816 cooling Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000002310 reflectometry Methods 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 230000033228 biological regulation Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000009792 diffusion process Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000005315 distribution function Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000002238 attenuated effect Effects 0.000 description 1
- 238000003339 best practice Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 230000017525 heat dissipation Effects 0.000 description 1
- 230000020169 heat generation Effects 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000000275 quality assurance Methods 0.000 description 1
- 238000003908 quality control method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000001429 visible spectrum Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Abstract
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
[0023] Сканер 100 содержит корпус 102 основной части, рукоятку 108 и батарейный отсек 110 (например, который содержит батарею). В некоторых вариантах осуществления 3D сканер 100 представляет собой портативный, переносной сканер. В связи с этим в некоторых вариантах осуществления 3D сканер 100 имеет размеры менее 30 см х 30 см х 30 см (например, соответствующие внутренним размерам коробки с размерами 30 см х 30 см х 30 см). В некоторых вариантах осуществления 3D сканер 100 является достаточно легким для ношения человеком в одной руке (например, 3D сканер 100 весит около 2,5 кг). [0023] The
[0024] В некоторых вариантах осуществления корпус 102 основной части можно отделять от рукоятки 108. В некоторых вариантах осуществления корпус 102 основной части можно установить (например, без рукоятки 108 и батарейного отсека 110) на отдельном устройстве (например, сканирующем манипуляторе с электроприводом) посредством точек 112 крепления (например, точек 112a-112c крепления). Таким образом, 3D сканер 100 можно преобразовать из переносного сканера в промышленный или лабораторный сканер. [0024] In some embodiments, the
[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
[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
[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
[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
[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
[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
[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
[0032] В некоторых вариантах осуществления корпус 102 основной части дополнительно вмещает дисплей 114, который отображает графический интерфейс пользователя (GUI - англ.: graphical user interface) для сканера 100. Кроме того, в то время как сканер 100 сканирует объект, графический интерфейс пользователя для сканера 100 отображает начальную 3D реконструкцию объекта (например, предварительный просмотр 3D реконструкции объекта). В некоторых вариантах осуществления дисплей 114 представляет собой чувствительный к прикосновению дисплей (иногда называемый сенсорным дисплеем) и, таким образом, может также принимать вводимые пользователем данные (например, начать сканирование, приостановить сканирование, завершить сканирование и иным образом управлять сканером 100). [0032] In some embodiments, the
[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
[0034] Система 100/310 обычно содержит запоминающее устройство 204, один или более процессор(-ов) 202, источник 206 питания, подсистему 208 пользовательского ввода/вывода, датчики 209, источники 211 света и коммуникационную шину 210 для соединения этих компонентов. Процессор(-ы) 202 выполняют модули, программы и/или команды, хранящиеся в запоминающем устройстве 204 и тем самым выполняют операции обработки. [0034] The
[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
[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
[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]
[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
[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
[0044] В некоторых вариантах осуществления данные, полученные 3D сканером 100, передаются (например, через проводное или беспроводное соединение) в компьютерную систему 310 обработки 3D данных, где они принимаются. В некоторых вариантах осуществления компьютерная система 310 обработки 3D данных формирует пиксельную карту (например, карту текстуры) поверхности объекта. В качестве альтернативы, в некоторых вариантах осуществления пиксельную карту формируют посредством 3D сканера 100. [0044] In some embodiments, data acquired by the
[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
[0046] Значения яркости наносят на график напротив угла от номинального вектора нормали для точки 306 на поверхности объекта. В некоторых вариантах осуществления номинальный вектор нормали представляет собой вектор нормали из 3D реконструкции объекта (например, реконструированный из данных, соответствующих трехмерной (3D) форме, полученной при сканировании). [0046] Luminance values are plotted opposite the angle from the nominal normal vector for
[0047] Данные содержат первый пиксель из первого цветного изображения, имеющего яркость 404a, второй пиксель из второго цветного изображения, имеющий яркость 404b и третий пиксель из третьего цветного изображения, имеющий яркость 404c. В некоторых вариантах осуществления на основании этих данных определяют направление «истинной нормали» (например, путем выбора угла, при котором был получен пиксель данных с максимальной яркостью, или соответствие данных заданной функции (например, функции Гаусса) и выбор угла, при котором соответствующая заданная функция имеет максимум, как более подробно описано со ссылкой на способ 700 на Фиг.7A-7C). В некоторых вариантах осуществления путем применения направления «истинной нормали» определяют диффузное значение (например, путем применения пикселей данных, полученных при углах, которые превышают заданный угол относительно направления истинной нормали - эти данные, показаны на Фиг.4 жирными точками, тогда как углы в пределах заданного угла показаны незакрашенными точками). Другие свойства материала, такие как параметр зеркальности, металличности, шероховатость поверхности можно определить с помощью направления истинной нормали. [0047] The data comprises a first pixel from a first color image having a
[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
[0049] На Фиг.6 представлен чертеж, иллюстрирующий различные компоненты 3D сканера 100 в соответствии с некоторыми вариантами осуществления. В частности, на Фиг.6 проиллюстрирован поперечный разрез корпуса 102 основной части (Фиг.1). Как показано на Фиг.6, сканер 100 содержит (среди прочих компонентов):[0049] FIG. 6 is a drawing illustrating various components of a
Первый оптический датчик 602a (например, первый датчик с прибором с зарядовой связью (ПЗС)), который собирает 3D данные сканируемого объекта (например, собирает изображения структурированной подсветки, засвеченные и искаженные поверхностью объекта, из которых можно определить реконструкцию 3D формы). В некоторых вариантах осуществления первый оптический датчик 602a чувствителен к излучение в инфракрасной (ИК) области спектра (хотя первый оптический датчик 602a может быть также чувствителен к излучению в видимой области спектра);A first
Второй оптический датчик 602b (например, второй ПЗС-детектор), который собирает данные текстуры (например, цвет) от сканируемого объекта (например, собирает изображения в то время как структурированная подсветка не отображается на поверхности объекта, например, собирает изображения в промежутке между стробоскопическими импульсами структурированной подсветки, засвечивающими объект). В некоторых вариантах второй оптический датчик 602b чувствителен к излучению в видимой области спектра (хотя второй оптический датчик 602b может быть также чувствителен к излучению в ИК области спектра); A second
Светоделительное устройство 604, которое отделяет излучение в видимой области спектра от излучения в ИК области спектра. Светоделительное устройство 604 преимущественно направляет излучение в ИК области спектра, принятое через оптическую систему 106 камеры к первому оптическому датчику 602a и преимущественно направляет излучение в видимой области спектра, принятое через оптическую систему 106 камеры ко второму оптическому датчику 602b;A
Источник 606 света. В некоторых вариантах осуществления источник 606 света представляет собой источник пульсирующего света (например, источник стробоскопического света). В некоторых вариантах осуществления источник 606 света представляет собой источник излучения в инфракрасной области спектра. В некоторых вариантах осуществления источник 606 света представляет собой лазер. В некоторых вариантах осуществления источник света 606 представляет собой лазер поверхностного излучения с вертикальным резонатором. В некоторых вариантах осуществления источник 606 света выполнен с возможностью работы (например, посредством соответствующего выбора длительности импульса, пиковой мощности, частоты повторения импульсов и/или коэффициента заполнения) как лазер класса 1 в любой точке пространства снаружи корпуса 102 основной части.
Слайд 616, который имеет образованную (например, напечатанную или вытравленную) на нем пространственную структуру, через которую свет проецируют на поверхность объекта (например, пространственная структура образована как непрозрачные и прозрачные участки слайда). Таким образом, свет, излучаемый источником 606 света проходит через слайд 616 и проецируется через оптическую систему 104 источника как структурированный свет к (например, на) поверхности объекта; иA
Коллектор 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
[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
[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,
[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
[0054] В некоторых вариантах осуществления сканирование включает в себя (704) изменение положения 3D сканера 100 во множестве пространственных положений относительно объекта. Например, как показано на Фиг.3, положение 3D сканера 100 изменяют из положения 304a к положению 304b, к положению 304c. 3D сканер 100 получает изображение объекта 302 в каждом из этих положений.[0054] In some embodiments, scanning includes (704) repositioning the
[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
[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,
[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,
[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
[0061] Со ссылкой на Фиг.7B, в некоторых вариантах осуществления 3D сканер 100 формирует (716) 3D реконструкцию по меньшей мере части формы поверхности объекта с помощью данных, соответствующих трехмерной (3D) форме по меньшей мере части поверхности объекта. В некоторых вариантах осуществления соответствие пиксель-уровень определяют с помощью данных, соответствующих трехмерной (3D) форме по меньшей мере части поверхности объекта (например, данные, соответствующие трехмерной (3D) форме по меньшей мере части поверхности объекта применяют для формирования 3D реконструкции, которую применяют для регистрации цветных изображений). В некоторых вариантах осуществления соответствие пиксель-уровень определяют с помощью регистрации изображения (например, выявления или сопоставления признаков или путем определения соответствий между изображениями). В некоторых вариантах осуществления соответствие пиксель-уровень определяют с помощью фотограммометрии (например, путем применения анализа изображений для определения, какой из двух пикселей в разных изображениях соответствует одному и тому же положению на поверхности объекта). В некоторых случаях положения камеры, а также 3D форма поверхности известны и соответствие пиксель-уровень вычисляют с помощью проективной геометрии.[0061] Referring to FIG. 7B, in some embodiments, the
[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
[0064] 3D сканер 100 формирует (720) пиксельную карту поверхности объекта с помощью по меньшей мере данных цвета. Пиксельная карта содержит для каждого соответствующего пикселя из множества пикселей: значение цвета соответствующей точки на поверхности объекта; и значение для нецветового свойства соответствующей точки на поверхности объекта. В некоторых вариантах осуществления пиксельная карта содержит значения для множества нецветовых свойств соответствующей точки на поверхности объекта для каждого соответствующего пикселя из множества пикселей. В некоторых вариантах осуществления пиксельная карта представляет собой (722) карту текстуры на поверхности объекта (например, содержащую набор значений для параметров, которые применяют вместе для фотореалистичного представления 3D модели). В некоторых вариантах осуществления значение цвета представляет собой диффузное значение для пикселя. В некоторых вариантах осуществления диффузное значение (например, значение RGB) представляет склонность материала рассеивать свет во всех направлениях (например, одинаково во всех направлениях). Следует отметить, что пиксели пиксельной карты, в отличие от пикселей данных (т. е. пикселей изображений), представляют область поверхности объекта. Таким образом, в некоторых случаях пиксели пиксельной карты упоминаются как «surfels» (т. е. элементы поверхности), при этом пиксельная карта упоминается как карта «surfel». [0064] The
[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.,
[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
[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,
[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
[0088] В некоторых вариантах осуществления 3D сканер 100 применяет (744) текстурированное 3D представление объекта для того, чтобы анимировать соответствующий объект в анимацию (например, путем отображения карты цветов на полигональную координатную сетку 3D реконструкции объекта). [0088] In some embodiments, the
[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
[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
[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)
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)
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)
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 |