Next Article in Journal
Enhanced Carrier Phase Recovery Using Dual Pilot Tones in Faster-than-Nyquist Optical Transmission Systems
Previous Article in Journal
A Refined Model for Ablation Through Cavitation Bubbles with Ultrashort Pulse Lasers
Previous Article in Special Issue
Particle Size Inversion Based on L1,∞-Constrained Regularization Model in Dynamic Light Scattering
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Single-Shot, Monochrome, Spatial Pixel-Encoded, Structured Light System for Determining Surface Orientations

1
College of Intelligent Systems, Science and Engineering, Harbin Engineering University, Harbin 150001, China
2
College of Mathematical Sciences, Harbin Engineering University, Harbin 150001, China
*
Authors to whom correspondence should be addressed.
Photonics 2024, 11(11), 1046; https://doi.org/10.3390/photonics11111046
Submission received: 20 September 2024 / Revised: 27 October 2024 / Accepted: 4 November 2024 / Published: 7 November 2024
(This article belongs to the Special Issue Optical Sensors and Devices)

Abstract

:
This study introduces a technique for determining surface orientations by projecting a monochrome, spatial pixel-encoded pattern and calculating the surface normals from single-shot measurement. Our method differs from traditional methods, such as shape from shading and shape from texture, in that it does not require relating the local surface orientations of adjacent points. We propose a multi-resolution system incorporating symbols varying in sizes from 8 × 8, 10 × 10, 12 × 12, 14 × 14, and 16 × 16 pixels. Compared to previous methods, we have achieved a denser reconstruction and obtained a 5.2 mm resolution using an 8 × 8 pattern at a depth of 110 cm. Unlike previous methods, which used local point orientations of grid intersection and multiple colors, we have used the monochrome pattern and deterministic centroid positions to compute the unit vector or direction vector between the neighboring symbols. The light plane intersections are used to calculate the tangent vectors on the surface. Surface normals are determined by the cross-product of two tangent vectors on the surface. A real experiment was conducted to measure simple plane surfaces, circular surfaces, and complex sculptures. The results show that the process of calculating surface normals is fast and reliable, and we have computed 1654 surface normals in 29.4 milliseconds for complex surfaces such as sculptures.

1. Introduction

Structured light (SL) is a useful and low-cost method for 3D measurements. Various SL methods have evolved during the past few decades [1,2]. SL can provide high accuracy and dense reconstruction; however, it is sensitive to object color and texture [3,4]. The structured light-based systems work well for measuring objects in the close range. They cannot be employed for far-distance measurement. SL techniques are mainly classified into temporal and spatial encoding schemes [5]. Temporal coding schemes include binary and gray coding, phase shift, and fringe patterns [6,7]. The spatial encoding schemes include 1D and 2D grid-indexed-based methods [8]. The advantage of spatial encoding schemes is being fast and single-shot [9]. These include the De Bruijn Sequence [10], pseudo-random sequence or M-arrays [11,12,13,14,15,16], non-formal coding schemes [17,18], and speckle projection techniques [19].
The two principal descriptors for defining shapes or objects in 3D are their position and orientation profiles. The orientation profile of the shapes is generally represented by surface normals, which describe the orientation of the neighborhood points on the surface. A surface normal at a certain point is a vector perpendicular to the tangential plane of the surface at that point. It defines the orientation of the surface at that point. Orientation can be realized by correlating the neighboring position data. However, this may not be independent information and depends on a particular abstraction of position data. Different densities of the same position data may result in various orientations, necessitating an independent determination of orientation.
The orientation profile has been determined using several methods in the computer vision community, including photometric stereo [20], texture [21,22], shading [23], specular flow [24], and polarization [25]. Traditional methods, such as texture and shading, require specific object properties to determine the surface orientation. These properties include consistent albedo or uniform texture distribution on the surface. This may restrict the application of these methods to a range of objects that lack such attributes. This work employs a monochrome spatial pixel-encoded symbol-based pattern to determine the orientation profile regardless of the position on the surface. Thus, it overcomes the limitations of traditional methods, as spatial SL encoding can produce artificial and uniform textures on the object surface regardless of position. The monochrome pattern also allows us to measure colored surfaces with non-uniform albedo.
The computation of surface normals is essential for many visualization and object registration [26], 3D geometry [27], semantic segmentation [28], classification [29], recognition [30], and representation [31] problems in artificial intelligence (AI) and robotics applications. Fast and accurate estimation of surface normals is required in many automotive applications [32].
The existing literature on SL is mainly related to determining the position profiles of a surface. Fewer works calculate surface normals through SL. For instance, a grid pattern is employed in [33] by using two orthogonal stripe patterns for static and smooth planar surfaces to find the orientation and structure of a surface. The grid pattern has the advantage of both simple point and line patterns. However, sharp discontinuities may appear as abrupt changes on the surface. So, grid coding implies weak constrictions on the surface of 3D objects [34]. In another approach, the target object is illuminated with a grid pattern [35]. The surface normals at the grid points (where the intersections of the grid lines occur) are determined by analyzing the variations in the lengths of the grid edges. Significant inaccuracies happen in some regions, mainly when the surface orientation differs significantly from the reference plane or where there is non-zero surface curvature.
In [36], surface normals were determined by projecting stripe patterns by estimating the slope and intervals between the stripes for a smooth planar surface. Labeling intersecting points of the grid is also time consuming, considerably if some parts of the object are occluded. In [37], a pseudo-random array of color dots was used as an illumination pattern. It was assumed that each circular dot from the surface would appear as an ellipse in the image. The center points of such ellipse were regarded as feature points, and a method was used to calculate the surface normals by using the shear and scaling factor of the ellipse along the epipolar lines. The approach assumes that the object surface is planar, not only in the intermediate vicinity of elliptical pattern elements, but also in the far neighborhood. So, the method could not be helpful for the measurement of objects with large curvatures. Multiple same-color dots may appear on the same epipolar line, causing ambiguous decoding.
In [38], two strip patterns were projected at different angles to compute two surface tangents for the same position. In this approach, the angle of the strips depends upon the orientation of the 3D object and gradient operation, thus resulting in outliers and erroneous noisy measurements. A method for determining surface normals using the slope and widths of the stripes was introduced in [39]. This approach relies on the assumption that the surface patches between the two stripe edges are either planar or highly smooth, and the inclination angle can be estimated from the deformed width of the stripe by comparing it to the measured width on the reference plane. In this approach, it was assumed that the pattern lighting and imaging system has a parallel orientation. Therefore, the intrinsic parameters of the camera and projector are neglected. Hence, errors due to overly simplified projection and image models are unavoidable.
Among all the mentioned attempts, the most important is [40], which utilized grid point intersections of rhombic-shaped color objects spread through the robust pseudo-random sequence as grid line feature points. Due to the surface curvature or texture, the neighboring rhombic-shaped symbols forming grid intersections may be disconnected. The accurate location of the grid-intersection points of the rhombic-shaped color symbols cannot be determined due to the presence of image noise. The grid intersection points in the image are determined by calculating the differentials of raw intensities between neighboring locations through a mask. This process results in increased image noise and decreased accuracy. Due to the use of multiple colors, the projected pattern will be immune to noise and segmentation errors influenced by the surface color. With highly saturated surface colors, the projected illumination can easily warp through the intrinsic shades of the measuring surface. This method utilized local point orientation angles to compute the normals to the intersecting planes to determine the surface tangents. When the surface curvature modulates the projected pattern due to which the neighboring rhombic-shaped objects are disconnected, hence the exact location of grid point intersections and the accurate estimation of local point orientations is impeded.
In contrast, we utilized the deterministic centroid positions of adjacent symbols to compute the surface normals. We propose improvement in the method presented in [40] by implementing it through a monochromatic, multi-resolution system. The monochromatic geometric symbol-based method is an alternative to the color-encoding technique. The monochrome geometric symbol-based methods are more resilient compared to color encoding in terms of the effect of ambient light, uneven albedos, and surface colors [41]. Instead of using local point orientation angles in computation, we used the deterministic centroid position to determine the unit vector or direction vector between the neighboring symbols. These unit vectors are utilized in calculating the normals of the intersecting planes, which in turn determine the surface tangents. These unit vector calculations will simplify the process of determining the normals to the projection-side light planes as all the unit vectors on the projection-side will be parallel to the X and Y axes. Our previous works [14,42], introduced pixel-encoded patterns for encoding SL to find the position information. We presented a flexible method to design patterns according to the surface area requirements and measurement precision by using the multi-resolution system through single-shot measurement. This was achieved by employing robust pseudo-random sequences of any required size depending upon the projector’s resolution. In this work, we suggested a grid-indexed-based SL method to determine the orientation regardless of the surface position.

2. Materials and Methods

2.1. Designing of a Pattern

This section will explain how to form a projection pattern to determine the surface orientation using spatially encoded SL patterns. These Patterns use pixel-encoded monochrome symbols varying in size from 8 × 8, 10 × 10, 12 × 12, 14 × 14, and 16 × 16 pixels and spread through corresponding robust pseudo-random sequences or M-array.

2.1.1. Defining Symbols

We propose a multi-resolution system in which the symbol sizes vary from 8 × 8, 10 × 10, 12 × 12, 14 × 14, and 16 × 16 pixels in symbol space. The symbols used to form the projection pattern are depicted in Figure 1.
These symbols have already been proposed in our previous work, and their physical properties have been analyzed and recorded [14]. To implement the algorithm for surface normal computation, we selected fourteen symbols whose centroid positions are exactly at the center of the symbol spaces. The reason for choosing symbols with a centroid at the center of the symbol space is to simplify the process of computing surface normals since the neighborhood symbols in the projection pattern will align in horizontal rows or vertical columns, and it will be explained in the subsequent Section 2.2.

2.1.2. Robust Pseudo-Random Sequences or M-Arrays

To spread the symbols in a projection pattern in a controllable manner, we generated five M-arrays of different sizes. We formed the M-arrays using the method described in our previous work [14]. We used a projector with a resolution of 800 × 1280 and proposed a multi-resolution system with a pattern designed employing fourteen symbols or symbols. We generated five M-arrays corresponding to each pixel size. Each M-array consisted of four alphanumeric bases. Therefore, four symbols were used simultaneously out of fourteen symbols in a projection pattern.
The robustness of the codewords in all the M-arrays was ensured by computing the Hamming distances between each codeword. The dimensions, number of symbols, Hamming distances, percentile of the robust codeword, and number of feature points contributed by each M-array are shown in Table 1.
The Hamming distance profiles of each M-array formed to use in the projection pattern are represented in Figure 2. The profiles of M-arrays reflected that most of the codewords have Hamming distances greater than 3, and about 60% of codewords have Hamming-distance spaces of 7, 8, and 9, which proves that the generated M-arrays are robust.

2.1.3. Formation of a Projection Pattern

We used five M-arrays with four symbols to generate five projection patterns using the symbols or symbols proposed in [14]. The number of feature points in the pattern increased with the use of smaller symbol resolution as M-arrays for smaller symbols have bigger dimensions while keeping the projector resolution constant, which is 800 × 1280. Conversely, as the symbol sizes in the pattern increased, both the number of feature points and the M-array dimensions reduced. The identical phenomenon is illustrated in the seventh column of Table 1. The number of feature points for an 8 × 8 symbol resolution is 12,496, while for a 10 × 10 resolution, it decreases to 8352, and for a 12 × 12 resolution, it is further reduced to 5187. Similarly, the pattern resolution of 14 × 14 comprises 4000 feature points, while the symbol resolution of 16 × 16 possesses the fewest feature points of 3124. So, the number of feature points has decreased from 12,496 for the 8 × 8 pattern to almost one-fourth, specifically 3124 for the 16 × 16 pattern resolution. Consequently, the employment of smaller symbol sizes enables denser reconstruction of 3D points and results in the computation of a greater number of surface normals on the measured object. The parts of five generated projection patterns using single-centroid symbols are shown in Figure 3.

2.2. Computation of Surface Normals

To compute surface normals, we used the principle described in [40] with necessary modifications. Figure 4 explains the mechanism of calculating surface normals.

2.2.1. Defining of Points Geometry

Let us consider three points, P1 (X1, Y1, Z1), P2 (X2, Y2, Z2), and P3 (X3, Y3, Z3) on the surface of a 3D object in the world coordinate system. The corresponding points on the camera image plane are Pc1 (xc1, yc1, fc), Pc2 (xc2, yc2, fc), and Pc3 (xc3, yc3, fc). Similarly, the corresponding points on the projector pattern plane are Pp1 (xp1, yp1, fp), Pp2 (xp2, yp2, fp), and Pp3 (xp3, yp3, fp). The projector induced points on the surface of the 3D object while the camera recorded the induced points of the projector on the surface. P1 is the point where we compute the surface normal or, more specifically, the centroid position of the symbol in consideration induced by the projected pattern. So, P1 is a projection of Pp1, and it is observed in the camera image as Pc1. P2 is the right-side neighborhood point or, more specifically, the centroid of the right-side neighborhood symbol, which lies on the surface induced through the projected pattern. So, P2 is a projection of Pp2, and it is observed in the camera image as Pc2. P3 is the down-side neighborhood point or, more specifically, the centroid of the down-side neighborhood symbol that lies on the surface induced by the projected pattern. So, P3 is a projection of Pp3, and it is observed in the camera image as Pc3. The points on the projected patterns are fully accessible since they are the entities under system design. Similarly, the points in the camera image are the entities under observation. Point P1 is selected where the correspondence between the projected pattern and camera image matches exactly.

2.2.2. Defining Device Parameters, Projection, and Image Planes

C is the camera’s optical center, and P is the projector’s optical center. The optical centers of the projector and camera are at the distance of focal lengths from the midpoints of the projector pattern plane and camera image plane. The camera focal length is denoted by fc, and the projector focal length is denoted by fp. Xc and Yc are the dimensions of the camera image plane, and Xp and Yp are the dimensions of the projector pattern plane. Oc (xoc = Xc/2, yoc = Yc/2, fc) and Op (xop = Xp/2, yop = Yp/2, fp) are the midpoints of the camera image plane and projector pattern plane, respectively, and they are exactly half of the camera and projector X and Y dimensions.

2.2.3. Defining Light Planes and Their Normals

npx is normal to the light plane defined by the projector optical center, P, to the world coordinates, P1 and P2, i.e., ∏PP1P2. The corresponding light plane to the camera side from the camera’s optical center, C, to the point, P1, and P2 is ∏CP1P2, and its normal is denoted by ncx. The two common vertices of these two light planes are formed by the current symbol considered for surface orientation calculation and its right-side neighborhood symbols, which are induced on the surface by the projected pattern. The edges of these light planes are passed through the centroids of current symbols and its right-side neighborhood symbol both in the projected pattern and camera image. The two light planes, i.e., ∏PP1P2, which is passing from the projected pattern, and ∏CP1P2, which is passing from the camera image, intersect each other on the curve between the two points on the surface, i.e., P1 and P2. Similarly, npy is the normal to the light plane defined by the projector’s optical center, P, to the world coordinates, P1 and P3, i.e., ∏PP1P3. The corresponding light planes to the camera side from the camera’s optical center, C, to the points, P1 and P3, is ∏CP1P3, and its normal is denoted by ncy. The two common vertices of these two light planes are formed by the current symbol considered for surface orientation calculation and its down-side neighborhood symbols, which are induced on the surface by the projected pattern. The edges of these light planes are passed through the centroids of current symbols and its down-side neighborhood symbol both in the projected pattern and camera image. The two light planes, i.e., ∏PP1P3, which is passing from the projected pattern, and ∏CP1P3, which is passing from the camera image, intersect each other on the curve between the two points on the surface, i.e., P1 and P3.

2.2.4. Underlying Principle

The smaller planes on the projector and camera sides, i.e., light planes from the optical centers (C or P) of the projector or camera to the coordinate points on the projector (Pp1, Pp2) or (Pp1, Pp3) and camera (Pc1, Pc2) or (Pc1, Pc3), are part of the bigger plane, i.e., light plane from the optical centers (C or P) of the projector and camera to the 3D world coordinate points (P1, P2) or (P1, P3) on the measuring object. The smaller light plane ∏PPp1Pp2 is part of the bigger light plane ∏PP1P2. Similarly, the smaller light plane ∏PPp1Pp3 is part of the bigger light plane ∏PPp1Pp3. On the camera side, the smaller light plane ∏CPc1Pc2 is part of the bigger light plane ∏CP1P2. Similarly, the smaller light plane ∏CPc1Pc3 is part of the bigger light plane ∏CP1P3. Thus, any normal on the smaller plane will be the normal on the bigger plane. From the smaller planes of the projector and camera, we can easily determine the normal to the bigger planes that intersect on the 3D object since all the parameters of the smaller light planes are known.

Computation of Light Planes Normals to the Projector Side

On the projector side, the normal to the light plane ∏PP1P2 can be calculated from the smaller plane ∏PPp1Pp2. The normal to this plane is simply the vector cross-product of the position vector at point, Pp1, and the unit vector between points, P1 and P2. Similarly, the normal to the light plane ∏PP1P3 can be calculated from the smaller plane ∏PPp1Pp3. The normal to this plane is also the vector cross-product of the position vector at point, Pp1, and the unit vector between the points, Pp1 and Pp3.
n p = x p 1 x o p y p 1 y o p f p X ĉ p x ĉ p y 0 = i j k x p 1 x o p y p 1 y o p f p ĉ p x ĉ p y 0
where i , j, and k are the unit vectors along the X, Y, and Z axes. ĉpx and ĉpy are the components of the unit vector between the points (Pp1 to Pp2) or (Pp1 to Pp3). So, if the unit vector is calculated between the right-side neighborhood points between Pp1 and Pp2, it can be written as:
ĉ p = x p 2 x p 1   i + y p 2 y p 1   j x p 2 x p 1 2 + ( y p 2 y p 1 ) 2 2   = ĉ p x   i + ĉ p y   j
Similarly, if the unit vector is calculated between the down-side neighborhood points between Pp1 and Pp3, it can be written as:
ĉ p = x p 3 x p 1   i + y p 3 y p 1   j x p 3 x p 1 2 + ( y p 3 y p 1 ) 2 2   = ĉ p x   i + ĉ p y     j
The advantage of using symbols in the projection pattern with a centroid exactly at the center of the symbol space will be evident here. Since the two neighborhood symbols in the projection pattern are horizontally aligned for the right-side neighborhood and vertically aligned for the down-side neighborhood. Thus, unit vector computation simplifies the process of determining the projection-side planes as all the unit vectors on the projection side are either parallel to the X- or Y-axis. Thus, for the light plane parallel to the X-axis, (xp2 − xp1) = 0, and ĉpy = 1. Similarly, for the light plane parallel to the Y-axis, (yp3 − yp1) = 0 and ĉpx = 1. Therefore, normals to the light plane parallel to the X-axis and Y-axis can be easily determined as:
n p x = i j k x p 1 x o p y p 1 y o p f p 1 0 0 = f p   j y p 1 y o p k = 0   f p y p 1 y o p
n p y = i j k x p 1 x o p y p 1 y o p f p 0 1 0 = f p   i + x p 1 x o p   k = f p 0 x p 1 x o p

Computation of Light Plane Normals to the Camera Side

On the camera side, the normal to the light plane ∏CP1P2 can be calculated from the smaller plane ∏CPc1Pc2. The normal to this plane is simply the vector cross-product of the position vector at point, Pc1, and the unit vector between points, Pc1 and Pc2. Similarly, the normal to the light plane ∏CP1P3 can be calculated from the smaller plane ∏CPc1Pc3. The normal to this plane is also the vector cross-product of the position vector at point, Pc1, and the unit vector between the points, Pc1 and Pc3.
n c = x c 1 x o c y c 1 y o c f c X ĉ c x ĉ c y 0 = i j k x c 1 x o c y c 1 y o c f c ĉ c x ĉ c y 0
where ĉcx and ĉcy are the components of the unit vector between the points (Pc1 to Pc2) or (Pc1 to Pc3). The arc between the real-world points, P1 to P2 and P1 to P3, on the 3D object surface will appear as the curves in the camera image points, Pc1 to Pc2 and Pc1 to Pc3. So, if the unit vector is calculated between Pc1 and right-side neighborhood point, Pc2, it can be computed as:
ĉ c = x c 2 x c 1   i + y c 2 y c 1   j x c 2 x c 1 2 + ( y c 2 y c 1 ) 2 2   = ĉ c x   i + ĉ c y   j  
where ĉ c x = x c 2 x c 1 x c 2 x c 1 2 + ( y c 2 y c 1 ) 2 2   , and ĉ c y = y c 2 y c 1   x c 2 x c 1 2 + ( y c 2 y c 1 ) 2 2
Since the unit vector of the curve between Pc1 and the right-side neighborhood point, Pc2 is calculated. So (xc2, yc2) can be written as (xRNB, yRNB) while the initial point (xc1, yc1) is the point where the surface normal is computed. Therefore, Equation (7) will become:
ĉ c R N B = x R N B x c 1   i + y R N B y c 1   j x R N B x c 1 2 + ( y R N B y c 1 ) 2 2   = ĉ c x R N B   i + ĉ c y R N B   j  
where ĉ c x R N B = x R N B x c 1 x R N B x c 1 2 + ( y R N B y c 1 ) 2 2   , and ĉ c y R N B = y R N B y c 1   x R N B x c 1 2 + ( y R N B y c 1 ) 2 2
Therefore, the normal to the light plane ∏CP1P2 can be calculated using Equation (6):
n c x = x c 1 x o c y c 1 y o c f c X ĉ c x R N B ĉ c y R N B 0 = i j k x c 1 x o c y c 1 y o c f c ĉ c x R N B ĉ c y R N B 0 = ĉ c y R N B f c   i + ĉ c x R N B f c   j + x c 1 x o c ĉ c y R N B y c 1 y o c ĉ c x R N B   k = ĉ c y R N B   f c           ĉ c x R N B   f c   x c 1 x o c ĉ c y R N B y c 1 y o c ĉ c x R N B
Similarly, if the unit vector is calculated between Pc1 and down-side neighborhood point, Pc3, it can be computed as:
ĉ c = x c 3 x c 1   i + y c 3 y c 1   j x c 3 x c 1 2 + ( y c 3 y c 1 ) 2 2   = ĉ c x   i + ĉ c y   j
where ĉ c x = x c 3 x c 1 x c 3 x c 1 2 + ( y c 3 y c 1 ) 2 2   , and ĉ c y = y c 3 y c 1   x c 3 x c 1 2 + ( y c 3 y c 1 ) 2 2
Since the unit vector of the curve between Pc1 and the right-side neighborhood point, Pc3 is calculated. So (xc3, yc3) can be written as (xDNB, yDNB) while the initial point (xc1, yc1) is the point where the surface normal is computed. Therefore, Equation (10) will become:
ĉ c D N B = x D N B x c 1   i + y D N B y c 1   j x D N B x c 1 2 + ( y D N B y c 1 ) 2 2   = ĉ c x D N B   i + ĉ c y D N B   j  
where ĉ c x D N B = x D N B x c 1 x D N B x c 1 2 + ( y D N B y c 1 ) 2 2   , and ĉ c y D N B = y D N B y c 1   x D N B x c 1 2 + ( y D N B y c 1 ) 2 2
Therefore, the normal to the light plane ∏CP1P3 can be calculated using Equation (6):
n c y = x c 1 x o c y c 1 y o c f c X ĉ c x D N B ĉ c y D N B 0 = i j k x c 1 x o c y c 1 y o c f c ĉ c x D N B ĉ c y D N B 0 = ĉ c y D N B f c   i + ĉ c x D N B f c   j + x c 1 x o c ĉ c y D N B y c 1 y o c ĉ c x D N B   k = ĉ c y D N B   f c           ĉ c x D N B   f c   x c 1 x o c ĉ c y D N B y c 1 y o c ĉ c x D N B

Computation of Surface Tangents

The two light planes ∏PP1P2 (with the normal denoted as ‘npx’), which is passing from the projected pattern plane, and ∏CP1P2 (with the normal denoted as ‘ncx’), which is passing from the camera image plane, intersect on the 3D object surface on the arc forming between P1 and P2, which are the centroids of the current symbol and the right-side neighborhood symbol in a horizontal location. These light planes are called the x-planes of the projector and camera sides. Similarly, the two light planes ∏PP1P3 (with the normal denoted as ‘npy’), which is passing from the projected pattern plane, and ∏CP1P3 (with the normal denoted as ‘ncy’), which is passing from the camera image plane, intersect on the 3D object surface on the arc between P1 and P3, which are the centroids of the current symbol and the down-side neighborhood symbol in a vertical location. These light planes are called the y-planes of the projector and camera sides. After accommodating translation and rotation on both the camera and the projector side, the surface tangents will be calculated. The vectors, ncx, ncy, npx, and npy, after rotation and translation, will take the following form:
T c R c n c x = n c x 1 n c x 2 n c x 3 , a n d   T c R c n c y = n c y 1 n c y 2 n c y 3
T p R p n p x = n p x 1 n p x 2 n p x 3 , a n d   T p R p n p y = n p y 1 n p y 2 n p y 3
where Rp and Rc are the 3 × 3 rotation matrices, Tp and Tc are the 3 × 1 translation matrices with respect to world coordinates, or 3D object coordinates for the projector and camera, respectively. The rotation and translation are known as external or extrinsic calibration parameters for the camera and projector.
The tangent along the X-direction on the object surface will be the vector cross-product of the normals of the two corresponding intersecting x-planes:
t x = ( T c R c n c x ) X ( T p R p n p x )
The tangent along the Y-direction on the object surface, will be the vector cross-product of the normal of the two corresponding intersecting y-planes:
t y = ( T c R c n c y ) X ( T p R p n p y )
The tangents on the object surface, tx and ty, will then be calculated as follows:
t x = n c x 1 n c x 2 n c x 3 X n p x 1 n p x 2 n p x 3 = i j k n c x 1 n c x 2 n c x 3 n p x 1 n p x 2 n p x 3 = ( n c x 2 n p x 3 n c x 3 n p x 2 ) i + ( n c x 3 n p x 1 n c x 1 n p x 3 ) j + ( n c x 1 n p x 2 n c x 2 n p x 1 ) k = ( n c x 2 n p x 3 n c x 3 n p x 2 ) ( n c x 3 n p x 1 n c x 1 n p x 3 ) ( n c x 1 n p x 2 n c x 2 n p x 1 ) = t x 1 t x 2 t x 3
t y = n c y 1 n c y 2 n c y 3 X n p y 1 n p y 2 n p y 3 = i j k n c y 1 n c y 2 n c y 3 n p y 1 n p y 2 n p y 3 = ( n c y 2 n p y 3 n c y 3 n p y 2 )   i + ( n c y 3 n p y 1 n c y 1 n p y 3 )   j + ( n c y 1 n p y 2 n c y 2 n p y 1 )   k = ( n c y 2 n p y 3 n c y 3 n p y 2 ) n c y 3 n p y 1 n c y 1 n p y 3 n c y 1 n p y 2 n c y 2 n p y 1 = t y 1 t y 2 t y 3
The surface normal will be the vector cross-product of the two tangent vectors and will be computed as:
n X , Y , Z = t x X t y = t x 1 t x 2 t x 3 X t y 1 t y 2 t y 3 = i j k t x 1 t x 2 t x 3 t y 1 t y 2 t y 3 = t y 3 t x 2 t y 2 t x 3 i + t y 1 t x 3 t y 3 t x 1 j + t y 2 t x 1 t y 1 t x 2 k = t y 3 t x 2 t y 2   t x 3 t y 1 t x 3 t y 3 t x 1 t y 2 t x 1 t y 1 t x 2 = n x n y n z
The computation of surface normals using Equation (19) is a totally deterministic process that requires only image and projection information local to a particular point. Unlike traditional methods, such as shape from shading or texture, it does not necessitate the assumptions of the relationship between the orientations of neighborhood points. Computed surface normals are calculated from the finitely small light planes. Their values are normalized by computing the unit vectors as follows:
n ^ X , Y , Z = n x i + n y j + n z k n x 2 + n y 2 + n z 2 2

2.3. Computation of 3D World Coordinates [43,44,45,46]

The projective transformation from 3D world coordinates to the camera and projector coordinates can be written as:
X C Y C Z C 1 = R c   T c 0     1 X w Y w Z w 1 = M c X w Y w Z w 1
X P Y P Z P 1 = R P   T P 0     1 X w Y w Z w 1 = M p X w Y w Z w 1
After including the internal or intrinsic camera parameters, the following transformation will be obtained:
Z c u c v c = f c 0 x o c 0 f c y o c 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 R c T c 0 1 X w Y W Z W 1
Z p u p v p = f p 0 x o p 0 f p y o p 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 R p T p 0 1 X w Y W Z W 1
The camera and projector coordinates are transformed into a 2D image and pattern plane (un, vn) with the following relationship:
Z X Z Y Z = Z u n v n = 1 0 0 0 0 1 0 0 0 0 1 0 X Y Z 1
The camera and projector lens distortions, including radial distortion and tangential distortion, can be defined as:
m c d = u c d v c d = 1 + k c 1 r c 2 + k c 2 r c 4 u c n v c n + d x c
m p d = u p d v p d = 1 + k p 1 r p 2 + k p 2 r p 4 u p n v p n + d x p
where (ucd, vcd) and (upd, vpd) are the camera and projector digital image coordinates after accommodating distortion effects. (ucn, vcn) and (upn, vpn) are the coordinates of the camera and projector image plane after transformation from 3D to 2D. rc2 = ucn2 + vcn2 and rp2 = upn2 + vpn2. kc1, kc2, and kp1, kp2 are the radial distortion parameters of the camera and projector. The tangential distortion for the camera and projector will be defined as:
d x c = 2 p 1 c u c n v c n + p 2 c r c 2 + 2 u c n 2 p 1 c r c 2 + 2 v c n 2 + 2 p 2 c u c n v c n
d x p = 2 p 1 p u p n v p n + p 2 p r p 2 + 2 u p n 2 p 1 p r p 2 + 2 v p n 2 + 2 p 2 p u p n v p n
where P1c, P2c, and P1p, P2p are the camera and projector’s tangential distortion parameters.
The complete transformation from 3D world coordinates to the digital image and pattern after accommodation of the camera’s extrinsic and intrinsic parameters and lens distortion for the camera and projector will be:
Z p u p v p 1 1 = m p d f p 0 x o p 0 f p y o p 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 R p T p 0 1 X w Y W Z W 1 = n 11 n 12 n 13 n 14 n 21 n 22 n 23 n 24 n 31 n 32 n 33 n 34 X w Y W Z W 1
Z c u c v c 1 1 = m c d f c 0 x o c 0 f c y o c 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 R c T c 0 1 X w Y W Z W 1 = m 11 m 12 m 13 m 14 m 21 m 22 m 23 m 24 m 31 m 32 m 33 m 34 X w Y W Z W 1
Eliminating Zp and Zc using the plane line triangulation method [47], the 3D world coordinates can be calculated as:
m 31 u c m 11 m 32 u c m 12 m 33 u c m 13 m 31 v c m 21 m 32 v c m 22 m 33 v c m 23 n 31 u p n 11 n 32 u p n 12 n 33 u p n 13 X w Y W Z W = m 14 m 34 u c m 24 m 34 v c n 14 n 34 u p

2.4. Decoding of Patterns

2.4.1. Preprocessing, Segmentation, and Labeling

Preprocessing is carried out as described in our previous works [14,42] by using thresholding and segmentation by using the Otsu methods [48], and segmentation and labeling are carried out by applying the algorithm specified by Haralick [49].

2.4.2. Decoding, Classification, and Computation of Parameters

The decoding and classification of the symbols are carried out using techniques described in our previous works [14,42], using area functions and shape description parameters. The only difference here in this work is that we use four symbols in the pattern compared to the three symbols and stripes previously. The four symbols we employed in the experiment are butterfly-shaped diagonally arranged square symbols, square-shaped symbols, horizontal strips, and plus-shaped (+) symbols, as shown in Figure 5.
The square-shaped symbol and plus (+)-shaped symbols are differentiated from the horizontal stripe and diagonally arranged circles based on areas, eccentricity ratio, and aspect ratio. The square has a maximum area, and the plus sign also has a greater area than horizontal strips and diagonally arranged circles. The aspect ratio and eccentricity of the square and plus signs are lower, while stripe and diagonally arranged circles have higher values. The squares were then differentiated from the plus sign based on the solidity ratio and rectangularity ratio. The square-shaped symbols have higher solidity and rectangularity ratios compared to the plus sign, which has lower values. The horizontal strip and diagonally arranged squares are then differentiated based on their orientations, as horizontal stripes have an orientation around zero while diagonally arranged squares have an orientation around forty-five degrees.

2.4.3. Calibration

Before applying the projection patterns to the surface to be measured, the projector and the camera must be calibrated by using any of the techniques available in [50,51,52,53] by computing the intrinsic and extrinsic parameters.

2.5. Experiment and Devices

2.5.1. Camera and Projector Devices

The experimental setup comprised of a digital camera (DH-HV2051UC, Daheng Imaging, Beijing, China) and a DLP projector (DELL M110, Dell Technologies, Beijing, China). The camera has a pixel resolution of 1600 × 1200. It is a progressive scan CMOS device with an 8-bit pixel depth and 10-bit analog-to-digital conversion accuracy. The pixel size is 4.2 um × 4.2 um. It can acquire ten frames per second. The projector has a pixel resolution of 800 × 1280, with a projection or throw ratio of 1.5:1 and a contrast ratio of 10,000:1 (typical at full on or off).

2.5.2. Target Surfaces

We experimented on three surfaces: (1) a simple plane surface that is approximately 800 mm wide and 600 mm long, (2) a cylindrical surface that has a radius of 150 mm and height of 406 mm, and (3) a sculpture that has a height of 223 mm, width of 190 mm, and depth of 227 mm. The standard deviation of the cylindrical surface is equal to its radius of 150 mm. The estimated standard deviation of the textured surface, i.e., sculpture, is approximately 200 to 225 mm. The surfaces to be measured are white to avoid the influence of spatial varying reflectivity.

2.5.3. Experiment Setup

Our method was endorsed through a real experiment, and we appraised the system’s performance. The surface to be measured was 110 cm apart from the projector and camera, whereas the camera and projector were separated by 18 cm. We put the target surface in the mid-position of the projector and camera. The projector and camera were tilted at 85.3 degrees to throw a pattern and record the observation. The angle of incidence from the projector to the camera was 9.4 degrees. The ambient light was firmly controlled during the recording of images so that errors could be minimized.

Pattern Employed in the Experiment

We tested and proved our method using five projection patterns with resolutions of 8 × 8, 10 × 10, 12 × 12, 14 × 14, and 16 × 16 pixels. The five projection patterns differed only in resolution (8 × 8, 10 × 10, 12 × 12, 14 × 14, and 16 × 16) and their corresponding M-arrays. Table 1 shows that all the M-arrays had four symbols and a 3 × 3 window feature, with the only difference being their dimensions. The 8 × 8 resolution projection pattern employed a 90 × 144 M-array. The 10 × 10 pattern resolution used a 75 × 117 M-array. The 12 × 12 pattern resolution utilized a 60 × 93 M-array. The 14 × 14 pattern resolution used a 51 × 81 M-array. For the 16 × 16 resolution, a 45 × 72 M-array was deployed. For the 8 × 8 and 10 × 10 resolutions, 1-pixel spacing between the symbols was used, whereas for the 12 × 12, 14 × 14, and 16 × 16 resolutions 2-pixel spacing was used. Figure 5 shows the texture of the five projection patterns used in the experiment.

3. Results

3.1. Comparison of Measured Resolution

The system is designed to perform in between the depth ranges of 40 to 250 cm. Table 2 shows the comparison of the XY-plane of the projector’s resolution and the corresponding area covered for the depth ranges of 40 to 250 cm on a flat surface. In the experiment and measurement, objects or surfaces were 110 cm from the projector and the camera. The XY-plane projector resolutions were 5.2 mm for 8 × 8, 6.3 mm for 10 × 10, 8.0 mm for 12 × 12, 9.2 mm for 14 × 14, and 10.3 mm for 16 × 16. This work achieved the exact resolution of our previous work [14]. See Table 2. We have compared our technique with position-based methodologies and orientation-based methodologies. The position-based methods were Zhou (2023) [16], Yin (2021) [19], and Nguyen (2020) [7], whereas Song (2010) [40], Davies (1998) [37], and our proposed method determine both position and orientation, while Winkelbach (2001, 2002) [38,39] specifically used it only to determine the orientation. Despite achieving the exact resolution that we presented in our previous work [14], our method has surpassed other approaches in terms of resolution, and the data presented in Table 2 confirm this assertion. More precisely, we conducted measurements with a resolution of 5.2 mm using an 8 × 8 pattern at a depth of 110 cm. In contrast, the earlier position-based methods, such as that of Zhou [16], which used a large-sized M-array, achieved 11.8 mm. Yin [19], who employed speckle and fringe projection, achieved 11.3 mm. Nguyen [7], who used a fringe-based method, had a resolution of 18.2 mm. The earlier orientation-based methods, such as Song [40], which utilized a pseudo-random sequence of diamond-shaped colored elements, had a resolution of 11.3 mm. Meanwhile, Winkelbach [38,39] employed a stripe pattern that has a measured resolution of 38.5 mm. Davies [37], who used color circles as a projection, had a measurement resolution of 25.3 mm.

3.2. Classification or Decoding of Symbols or Feature Points in a Pattern

We applied the methods described in the preceding section and [14] to classify and decode the patterns used in the experiment. The application of our process to the original projection resulted in the successful decoding of 100% of the pattern symbols, thereby proving the reliability of the applied method. Once we had verified the algorithm’s accuracy on the original pattern, we used the technique for the pattern obtained from the planar surface, circular surface, and sculpture. Table 3 displays the number of symbols or feature points detected, decoded, and classified when the experiment utilized five different patterns on the measured surfaces. Our method successfully interpreted 100% of the symbols on a planar or flat surface for all five resolutions, which further confirms its reliability. In contrast, the previous work [14] achieved a classification of 98% of primitives. This indicates an improvement in the decoding process. Our classification method demonstrates better performance than other approaches. For instance, Petriu [11] was able to decode 59% of primitives, Albitar [12] was able to decode 95%, and Ahsan [14] was able to decode 97% of primitives on circular surfaces and 85% of primitives on a sculpture. We can accurately classify 98.4% of primitives for a 16 × 16 size, 98.7% of feature points on a 14 × 14 size, 99.0% for a 12 × 12 size, 99.3% for a 10 × 10 size, and 99.5% of primitives for an 8 × 8 size when dealing with circular surfaces. Moreover, we can classify 96.2% of primitives for a 16 × 16 size, 97.1% for a 14 × 14 size, 97.6% for a 12 × 12 size, 98.4% for a 10 × 10 size, and 98.9% for an 8 × 8 size when our method is applied to a sculpture. Therefore, smaller symbol sizes exhibit a noticeable and progressive improvement in classification. The classification of smaller symbols improved due to the reduced exposure to distortion caused by surface curvature. Since more shape descriptor parameters are utilized for the classification of symbols, there are no instances of wrong classification or false detection.
Figure 6 displays the parts of decoded patterns for the original projection and their results from captured images when applied to a flat planar surface. Figure 7 illustrates the decoded patterns of the acquired images from cylindrical and sculpture surfaces. To distinguish the symbols from each other, the centroid positions of each symbol type were highlighted using distinct colors. This was performed on all five patterns used in the experiment, i.e., the 8 × 8, 10 × 10, 12 × 12, 14 × 14, and 16 × 16 resolutions. The centroid positions of the square-shaped symbol are indicated with a black star (*). The centroid positions of the butterfly-shaped diagonally arranged squares are marked with a blue star (*). The centroid positions of a horizontal strip are reflected through a green star (*). Similarly, the centroid positions of the plus sign symbol are marked with a pink star (*).

3.3. Point Clouds and Surface Normals of the Measured Objects

After applying the method explained in the previous section, the surface normals and point clouds of the measured surfaces, i.e., cylinder and sculpture, were obtained for the five patterns used in the experiment. The measured resolution for the point clouds was 5.2 mm for an 8 × 8, 6.3 mm for a 10 × 10, 8.0 mm for a 12 × 12, 9.2 mm for a 14 × 14, and 10.3 mm for a 16 × 16 pattern. Figure 8 shows the point clouds obtained from the cylinder and sculpture for the five patterns employed in the experiment. Figure 9 shows the surface normals plot of the measured surfaces for the five projection patterns.
In our previous work [14], we implemented a 16 × 16 resolution, whereas in [42], we implemented two resolutions, 14 × 14 and 16 × 16. In this work, we implemented five resolutions, i.e., 8 × 8, 10 × 10, 12 × 12, 14 × 14, and 16 × 16. We obtained a denser point cloud and more surface normals with a smaller resolution of 8 × 8. The density of the point cloud decreased with an increase in the pattern size resolution of the point cloud from 8 × 8 to 16 × 16. All the points in the point clouds lay in between the depth or Z-axis of 1040 mm to 1120 mm.
The points in the point clouds were calculated on the basis of the corresponding matching points in the M-array. We may miss at least two rows or two columns near the boundaries of the measuring surface due to the window feature (3 × 3) of the M-array. Table 4 shows the number of points for which the correspondence has been established with respect to the total number of points decoded for each pattern and surface.
The corresponding points were compared with our previous work [14], which shows an improvement in the process of attaining the corresponding points. In the process of matching corresponding points for the original patterns, the result remained the same for the exact resolution, i.e., 16 × 16. As the symbol sizes or pattern resolution reduced, the percentage of the corresponding points increased and reached up to 96.4% for 8 × 8, compared to 92.8% for 16 × 16. A smaller symbol size or resolution resulted in a greater number of corresponding points, indicating that a smaller symbol size increases the possibility of matching points in close proximity to the boundaries. This phenomenon was witnessed in all three types of surfaces: plane or flat, cylinder, and sculpture. We have made significant progress in the process of matching points compared to our previous work [14]. In the previous work on a plane surface, we achieved 82.2% of matching points. However, with the exact resolution of 16 × 16, we have now achieved 87.6% of the corresponding points. The matching point increases as the resolution decreases and rises to 93.6% for an 8 × 8 resolution. When considering a cylindrical surface, the matching points increased from the previous 76.1% to 85.5% for a 16 × 16 resolution and rose to 92.4% for an 8 × 8 resolution. For a sculpture, the matching points increased from the previous 67.9% to 74.5% for a 16 × 16 resolution and reached up to 78.7% for an 8 × 8 resolution.

3.4. Time Durations of the Different Processes

Table 5 displays the time duration of the different processes in the decoding, computation of the surface normals, and computation of the 3D point clouds and compares these values with those in [14]. Each process has a specific time duration. The time durations were measured on an average core i5 computer. The average time for each process was calculated and repeated many times for optimization to obtain the optimum values. The time measurements are specified in milliseconds. All the processes, such as filtering and thresholding, labeling, parameter calculation, classification, correspondence matching, computation of surface normals, and computation of point clouds, indicate an increase in the time duration with the complexity and texture of the surface and the number of detected primitives. With the decrease in resolution for each type of surface, the number of primitives increases, which increases the time durations. Compared to [14], the preprocessing, labeling, classification, correspondence matching, and computation of point cloud time decreased. This may be due to the better specification of the computing machine compared to that used in [14]. However, the time for parameter calculation has increased since four symbols were employed in the pattern compared to the three in [14], and more shape descriptor parameters are required to be calculated for symbol classification. The computation time of surface normals is a few milliseconds, which signifies that the method is fast and can be applied to real-time applications. For instance, for sculptures using an 8 × 8 resolution, 1654 surface normals were calculated in 29.4 milliseconds. Similarly, for cylindrical surfaces using an 8 × 8 resolution, 2517 surface normals were computed in 68.9 milliseconds.

4. Conclusions

We have described a method to find the surface orientations through a single-shot, spatially encoded monochromatic symbol-based pixel-level design. Our technique is more robust against image noise and surface color variations due to the monochromatic design. We presented multi-resolution patterns to determine the dense reconstruction for calculating the surface orientation. We have calculated orientations through surface normals and position profiles for different resolutions and compared these results quantitatively and qualitatively with previous methods. Our method differs from shape to shading and shape to texture in that it does not necessitate an assumption of the relationship between local surface orientations at neighborhood points. Therefore, we introduced a position-agnostic approach to identify the orientation independently. We applied the technique on real objects such as a plane surface, circular surface, and complex sculpture. We obtained a higher resolution compared to previous methods and computed the surface normals in a matter of milliseconds. We improved the correspondence matching and estimation of feature points in a pattern. A higher percentage of feature points has been decoded, resulting in an increased number of matching points in the correspondence. Additionally, the duration of the processing has been decreased. By employing a monochromatic pattern and a straightforward decoding approach, we can obtain a greater number of decoded primitives and points that match correspondences.

Author Contributions

Conceptualization, A.E., Q.Z., J.L. and U.F.; Methodology, A.E., Q.Z. and J.L.; Software, A.E.; Validation, A.E., J.L. and G.F.; Formal analysis, A.E. and M.B.; Investigation, A.E.; Resources, Q.Z. and Y.L.; Data curation, A.E.; Writing—original draft, A.E.; Writing—review & editing, A.E., J.L. and Y.L.; Visualization, A.E.; Supervision, Q.Z.; Project administration, Q.Z.; Funding acquisition, Q.Z. All authors have read and agreed to the published version of the manuscript.

Funding

This research received no external funding.

Data Availability Statement

The data will be publicly available on GIT HUB repository.

Conflicts of Interest

The authors declare no conflict of interest.

References

  1. Salvi, J.; Fernandez, S.; Pribanic, T.; Llado, X. A State of the Art in Structured Light Patterns for Surface Profilometry. Pattern Recognit. 2010, 43, 2666–2680. [Google Scholar] [CrossRef]
  2. Zhang, S. High-Speed 3D Shape Measurement with Structured Light Methods: A Review. Opt. Lasers Eng. 2018, 106, 119–131. [Google Scholar] [CrossRef]
  3. Webster, J.G.; Bell, T.; Li, B.; Zhang, S. Structured Light Techniques and Applications; Wiley: Hoboken, NJ, USA, 2016; pp. 1–24. [Google Scholar]
  4. Geng, J. Structured-Light 3D Surface Imaging: A Tutorial. Adv. Opt. Photonics 2011, 3, 128–160. [Google Scholar] [CrossRef]
  5. Salvi, J.; Pagès, J.; Batlle, J. Pattern Codification Strategies in Structured Light Systems. Pattern Recognit. 2004, 37, 827–849. [Google Scholar] [CrossRef]
  6. Rusinkiewicz, S.; Hall-Holt, O.; Levoy, M. Real-Time 3D Model Acquisition. ACM Trans. Graph. 2002, 21, 438–446. [Google Scholar] [CrossRef]
  7. Nguyen, H.; Wang, Y.; Wang, Z. Single-Shot 3D Shape Reconstruction Using Structured Light and Deep Convolutional Neural Networks. Sensors 2020, 20, 3718. [Google Scholar] [CrossRef]
  8. Ahsan, E.; QiDan, Z.; Jun, L.; Yong, L.; Muhammad, B. Grid-Indexed Based Three-Dimensional Profilometry. In Coded Optical Imaging; Liang, D.J., Ed.; Springer Nature: Cham, Switzerland, 2023. [Google Scholar]
  9. Wang, Z. A Tutorial on Single-Shot 3D Surface Imaging Techniques. IEEE Signal Process. Magzine 2024, 41, 71–92. [Google Scholar] [CrossRef]
  10. Pagès, J.; Salvi, J.; Collewet, C.; Forest, J. Optimised de Bruijn Patterns for One-Shot Shape Acquisition. Image Vis. Comput. 2005, 23, 707–720. [Google Scholar] [CrossRef]
  11. Petriu, E.M.; Sakr, Z.; Spoelder, H.J.W.; Moica, A. Object Recognition Using Pseudo-Random Color Encoded Structured Light. In Proceedings of the 17th IEEE Instrumentation and Measurement Technology Conference, Baltimore, MD, USA, 1–4 May 2000; IEEE: Piscataway, NJ, USA, 2000; pp. 1237–1241. [Google Scholar]
  12. Albitar, C.; Graebling, P.; Doignon, C. Robust Structured Light Coding for 3D Reconstruction. In Proceedings of the 2007 IEEE 11th International Conference on Computer Vision, Rio De Janeiro, Brazil, 14–21 October 2007; IEEE: Piscataway, NJ, USA, 2007; pp. 1–6. [Google Scholar]
  13. Morano, R.A.; Ozturk, C.; Conn, R.; Dubin, S.; Zietz, S.; Nissanov, J. Structured Light Using Pseudorandom Codes. IEEE Trans. Pattern Anal. Mach. Intell. 1998, 20, 322–327. [Google Scholar] [CrossRef]
  14. Elahi, A.; Lu, J.; Zhu, Q.D.; Yong, L. A Single-Shot, Pixel Encoded 3D Measurement Technique for Structure Light. IEEE Access 2020, 8, 127254–127271. [Google Scholar] [CrossRef]
  15. Lu, J.; Han, J.; Ahsan, E.; Xia, G.; Xu, Q. A Structured Light Vision Measurement with Large Size M-Array for Dynamic Scenes. In Proceedings of the 35th Chinese Control Conference (CCC), Chengdu, China, 27–29 July 2016; IEEE: Piscataway, NJ, USA, 2016; pp. 3834–3839. [Google Scholar]
  16. Zhou, X.; Zhou, C.; Kang, Y.; Zhang, T.; Mou, X. Pattern Encoding of Robust M-Array Driven by Texture Constraints. IEEE Trans. Instrum. Meas. 2023, 72, 5014816. [Google Scholar] [CrossRef]
  17. Maruyama, M.; Abe, S. Range Sensing by Projecting Multiple Slits with Random Cuts. IEEE Trans. Pattern Anal. Mach. Intell. 1993, 15, 647–651. [Google Scholar] [CrossRef]
  18. Ito, M.; Ishii, A. A Three-Level Checkerboard Pattern (TCP) Projection Method for Curved Surface Measurement. Pattern Recognit. 1995, 28, 27–40. [Google Scholar] [CrossRef]
  19. Yin, W.; Hu, Y.; Feng, S.; Huang, L.; Kemao, Q.; Chen, Q.; Zuo, C. Single-Shot 3D Shape Measurement Using an End-to-End Stereo Matching Network for Speckle Projection Profilometry. Opt. Express 2021, 29, 13388. [Google Scholar] [CrossRef]
  20. Woodham, R.J. Photometric Method For Determining Surface Orientation From Multiple Images. Opt. Eng. 1980, 19, 139–144. [Google Scholar] [CrossRef]
  21. Knill, D.C. Surface Orientation from Texture: Ideal Observers, Generic Observers and the Information Content of Texture Cues. Vision Res. 1998, 38, 1655–1682. [Google Scholar] [CrossRef]
  22. Garding, J. Direct Estimation of Shape from Texture. IEEE Trans. Pattern Anal. Mach. Intell. 1993, 15, 1202–1208. [Google Scholar] [CrossRef]
  23. Zhang, R.; Tsai, P.-S.; Cryer, J.E.; Shah, M. Shape-from-Shading: A Survey. IEEE Trans. Pattern Anal. Mach. Intell. 1999, 21, 690–706. [Google Scholar] [CrossRef]
  24. Adato, Y.; Vasilyev, Y.; Zickler, T.; Ben-Shahar, O. Shape from Specular Flow. IEEE Trans. Pattern Anal. Mach. Intell. 2010, 32, 2054–2070. [Google Scholar] [CrossRef]
  25. Cheng, Y.; Hu, F.; Gui, L.; Wu, L.; Lang, L. Polarization-Based Method for Object Surface Orientation Information in Passive Millimeter-Wave Imaging. IEEE Photonics J. 2016, 8, 5500112. [Google Scholar] [CrossRef]
  26. Lu, J.; Guo, C.; Fang, Y.; Xia, G.; Wang, W.; Elahi, A. Fast Point Cloud Registration Algorithm Using Multiscale Angle Features. J. Electron. Imaging 2017, 26, 033019. [Google Scholar] [CrossRef]
  27. Nehab, D.; Rusinkiewicz, S.; Davis, J.; Ramamoorthi, R. Efficiently Combining Positions and Normals for Precise 3D Geometry. ACM Trans. Graph. 2005, 24, 536–543. [Google Scholar] [CrossRef]
  28. Fan, R.; Wang, H.; Cai, P.; Liu, M. SNE-RoadSeg: Incorporating Surface Normal Information into Semantic Segmentation for Accurate Freespace Detection. In Lecture Notes in Computer Science (Including Subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics); Vedaldi, A., Bischof, H., Brox, T., Frahm, J., Eds.; Springer: Cham, Switzerland, 2020; Volume 12375 LNCS, pp. 340–356. ISBN 9783030585761. [Google Scholar]
  29. Grilli, E.; Menna, F.; Remondino, F. A Review of Point Clouds Segmentation and Classification Algorithms. Int. Arch. Photogramm. Remote Sens. Spat. Inf. Sci. 2017, 42, 339–344. [Google Scholar] [CrossRef]
  30. Campbell, R.J.; Flynn, P.J. A Survey of Free-Form Object Representation and Recognition Techniques. Comput. Vis. Image Underst. 2001, 81, 166–210. [Google Scholar] [CrossRef]
  31. Pomerleau, F.; Colas, F.; Siegwart, R. A Review of Point Cloud Registration Algorithms for Mobile Robotics. Found. Trends® Robot. 2015, 4, 1–104. [Google Scholar] [CrossRef]
  32. Badino, H.; Huber, D.; Park, Y.; Kanade, T. Fast and Accurate Computation of Surface Normals from Range Images. In Proceedings of the IEEE International Conference on Robotics and Automation, Shanghai, China, 9–13 May 2011; IEEE: Piscataway, NJ, USA, 2011; pp. 3084–3091. [Google Scholar]
  33. Wang, Y.F.; Mitiche, A.; Aggarwal, J.K. Computation of Surface Orientation and Structure of Objects Using Grid Coding. IEEE Trans. Pattern Anal. Mach. Intell. 1987, PAMI-9, 129–137. [Google Scholar] [CrossRef]
  34. Hu, G.; Stockman, G. 3-D Surface Solution Using Structured Light and Constraint Propagation. IEEE Trans. Pattern Anal. Mach. Intell. 1989, 11, 390–402. [Google Scholar] [CrossRef]
  35. Shrikhande, N.; Stockman, G. Surface Orientation from a Projected Grid. IEEE Trans. Pattern Anal. Mach. Intell. 1989, 11, 650–655. [Google Scholar] [CrossRef]
  36. Asada, M.; Ichikawa, H.; Tsuji, S. Determining Surface Orientation by Projecting a Stripe Pattern. IEEE Trans. Pattern Anal. Mach. Intell. 1988, 10, 2–7. [Google Scholar] [CrossRef]
  37. Davies, C.J.; Nixon, M.S. A Hough Transform for Detecting the Location and Orientation of Three-Dimensional Surfaces Via Color Encoded Spots. IEEE Trans. Syst. man Cybern. B Cybern. 1998, 28, 90–95. [Google Scholar] [CrossRef]
  38. Winkelbach, S.; Wahl, F.M. Shape from 2D Edge Gradients. In Lecture Notes in Computer Science, Proceedings of the 23rd DAGM Symposium, Munich, Germany, 12–14 September 2001; Radig, B., Florczyk, S., Eds.; Springer: Berlin, Germany, 2001; pp. 377–384. [Google Scholar]
  39. Winkelbach, S.; Wahl, F.M. Shape from Single Stripe Pattern Illumination. In Lecture Notes in Computer Science, Proceedings of the 24th DAGM Symposium, Zurich, Switzerland, 16–18 September 2002; Goo, L., Van, L., Eds.; Springer: Berlin, Germany, 2002; pp. 240–247. [Google Scholar]
  40. Song, Z.; Chung, R. Determining Both Surface Position and Orientation in Structured-Light-Based Sensing. IEEE Trans. Pattern Anal. Mach. Intell. 2010, 32, 1770–1780. [Google Scholar] [CrossRef] [PubMed]
  41. Shi, G.; Li, R.; Li, F.; Niu, Y.; Yang, L. Depth Sensing with Coding-Free Pattern Based on Topological Constraint. J. Vis. Commun. Image Represent. 2018, 55, 229–242. [Google Scholar] [CrossRef]
  42. Elahi, A.; Zhu, Q.; Lu, J.; Hammad, Z.; Bilal, M.; Li, Y. Single-Shot, Pixel-Encoded Strip Patterns for High-Resolution 3D Measurement. Photonics 2023, 10, 1212. [Google Scholar] [CrossRef]
  43. Savarese, S. Lecture 2: Camera Models; Stanford University: Stanford, CA, USA, 2015; p. 18. [Google Scholar]
  44. Hata, K.; Savarese, S. CS231A Course Notes 1 Camera Models; Stanford University: Stanford, CA, USA, 2015; p. 16. [Google Scholar]
  45. Collins, R. CSE486, Penn State Lecture 12: Camera Projection; Penn State University: University Park, PA, USA, 2007. [Google Scholar]
  46. Collins, R. CSE486, Penn State Lecture 13: Camera Projection II; Penn State University: University Park, PA, USA, 2020. [Google Scholar]
  47. Meza, J.; Vargas, R.; Romero, L.A.; Zhang, S.; Marrugo, A.G. What Is the Best Triangulation Approach for a Structured Light System? In Proceedings of the SPIE, Volume 11397: Dimensional Optical Metrology and Inspection for Practical Applications IX 113970D, Bellingham, WA, USA, 18 May 2020; SPIE: Bellingham, WA, USA, 2020; p. 113970D. [Google Scholar]
  48. Sezgin, M.; Sankur, B. Survey over Image Thresholding Techniques and Quantitative Performance Evaluation. J. Electron. Imaging 2004, 13, 146–165. [Google Scholar] [CrossRef]
  49. Haralick, R.M.; Shapiro, L.G. Computer and Robot Vision; Addison-Wesley Publishing Company: San Francisco, CA, USA, 1992; Volume 1, ISBN 9780201569438. [Google Scholar]
  50. Xie, Z.; Wang, X.; Chi, S. Simultaneous Calibration of the Intrinsic and Extrinsic Parameters of Structured-Light Sensors. Opt. Lasers Eng. 2014, 58, 9–18. [Google Scholar] [CrossRef]
  51. Nie, L.; Ye, Y.; Song, Z. Method for Calibration Accuracy Improvement of Projector-Camera-Based Structured Light System. Opt. Eng. 2017, 56, 074101. [Google Scholar] [CrossRef]
  52. Huang, B.; Ozdemir, S.; Tang, Y.; Liao, C.; Ling, H. A Single-Shot-Per-Pose Camera-Projector Calibration System for Imperfect Planar Targets. In Proceedings of the IEEE International Symposium on Mixed and Augmented Reality Adjunct (ISMAR-Adjunct), LMU Munich, Munich, Germany, 16–20 October 2018; IEEE: Piscataway, NJ, USA, 2018; pp. 15–20. [Google Scholar]
  53. Moreno, D.; Taubin, G. Simple, Accurate, and Robust Projector-Camera Calibration. In Proceedings of the 2012 Second International Conference on 3D Imaging, Modeling, Processing, Visualization & Transmission, Zurich, Switzerland, 13–15 October 2012; IEEE: Piscataway, NJ, USA, 2012; pp. 464–471. [Google Scholar]
Figure 1. Symbols varying in size from (a) 8 × 8, (b) 10 × 10, (c) 12 × 12, (d) 14 × 14 and (e) 16 × 16 pixels.
Figure 1. Symbols varying in size from (a) 8 × 8, (b) 10 × 10, (c) 12 × 12, (d) 14 × 14 and (e) 16 × 16 pixels.
Photonics 11 01046 g001
Figure 2. The Hamming distance profiles of various M-arrays. Note: Each M-array has four symbols.
Figure 2. The Hamming distance profiles of various M-arrays. Note: Each M-array has four symbols.
Photonics 11 01046 g002
Figure 3. Parts of projection patterns for symbol sizes varying from (a) 8 × 8, (b) 10 × 10, (c) 12 × 12, (d) 14 × 14 and (e) 16 × 16 pixels.
Figure 3. Parts of projection patterns for symbol sizes varying from (a) 8 × 8, (b) 10 × 10, (c) 12 × 12, (d) 14 × 14 and (e) 16 × 16 pixels.
Photonics 11 01046 g003
Figure 4. Computation of surface normals.
Figure 4. Computation of surface normals.
Photonics 11 01046 g004
Figure 5. The texture of patterns employed in experiment work: (a) 8 × 8; (b) 10 × 10; (c) 12 × 12; (d) 14 × 14; (e) 16 × 16 pixels.
Figure 5. The texture of patterns employed in experiment work: (a) 8 × 8; (b) 10 × 10; (c) 12 × 12; (d) 14 × 14; (e) 16 × 16 pixels.
Photonics 11 01046 g005
Figure 6. Classification of symbols for each resolution: (a) part of the original pattern; (b) parts of plane or flat surface.
Figure 6. Classification of symbols for each resolution: (a) part of the original pattern; (b) parts of plane or flat surface.
Photonics 11 01046 g006
Figure 7. Classification of symbols on the measured surfaces for each resolution: (a) cylinder; (b) sculpture.
Figure 7. Classification of symbols on the measured surfaces for each resolution: (a) cylinder; (b) sculpture.
Photonics 11 01046 g007aPhotonics 11 01046 g007b
Figure 8. Point cloud for measured surfaces for each resolution: (a) cylinder; (b) sculpture.
Figure 8. Point cloud for measured surfaces for each resolution: (a) cylinder; (b) sculpture.
Photonics 11 01046 g008
Figure 9. Surface normals for measured surfaces for each resolution: (a) cylinder; (b) sculpture.
Figure 9. Surface normals for measured surfaces for each resolution: (a) cylinder; (b) sculpture.
Photonics 11 01046 g009aPhotonics 11 01046 g009b
Table 1. Properties of M-arrays for various resolutions and number of feature points contributed in pattern.
Table 1. Properties of M-arrays for various resolutions and number of feature points contributed in pattern.
Symbol SizeSpacing Between
Consecutive Symbols
No. of Symbols Used in M-ArrayM-Array Dimensions
(m × n)
Average Hamming DistanceRobust Codewords (%)No. of Feature Points in the Projected
Pattern
8 × 81490 × 1446.751799.868312,496
10 × 101475 × 1176.752499.86678352
12 × 122460 × 936.750399.87135187
14 × 142451 × 816.748999.87344000
16 × 162445 × 726.749599.84523124
Table 2. Comparison of measured projector resolutions and the area covered.
Table 2. Comparison of measured projector resolutions and the area covered.
Pattern
Resolution
Depth (z) cmArea (cm2)Proposed MethodZhou (2023) [16]Yin (2021) [19]Nguyen (2020) [7]Song (2010) [40]Winkelbach (2001, 2002) [38,39]Davies (1998) [37]
Position and OrientationPosition Based MethodsPosition and OrientationOrientationPosition and Orientation
Resolution (mm)Resolution (mm)Resolution (mm)Resolution (mm)Resolution (mm)Resolution (mm)Resolution (mm)
8 × 8250103.8 × 16611.726.725.941.425.787.457.6 (Area reduced to 63.0 × 166)
10 × 1014.3
12 × 1218.3
14 × 1420.9
16 × 1623.5
8 × 820083 × 132.89.421.320.733.120.669.946.1 (Area reduced to 50.4 × 132.8)
10 × 1011.5
12 × 1214.6
14 × 1416.7
16 × 1618.8
8 × 815062.3 × 99.67.016.115.624.915.452.434.5 (Area reduced to 37.8 × 99.6)
10 × 108.6
12 × 1211.0
14 × 1412.5
16 × 1614.1
8 × 812049.8 × 79.75.612.712.319.712.341.927.6 (Area reduced to 30.2 × 79.7)
10 × 106.9
12 × 128.8
14 × 1410.0
16 × 1611.3
8 × 811045.7 × 73.05.211.811.318.211.338.525.3 (Area reduced to 27.7 × 73.0)
10 × 106.3
12 × 128
14 × 149.2
16 × 1610.3
8 × 810041.5 × 66.44.710.710.316.510.335.023.0 (Area reduced to 25.2 × 66.4)
10 × 105.7
12 × 127.3
14 × 148.3
16 × 169.4
8 × 88033.2 × 53.13.88.58.213.28.228.018.4 (Area reduced to 20.1 × 53.1)
10 × 104.6
12 × 125.8
14 × 146.7
16 × 167.5
8 × 86024.9 × 39.82.86.46.210.06.221.013.8 (Area reduced to 15.1 × 39.8)
10 × 103.4
12 × 124.4
14 × 145.0
16 × 165.6
8 × 84016.6 × 26.61.94.24.17.54.114.09.2 (Area reduced to 10.1 × 26.6)
10 × 102.3
12 × 122.9
14 × 143.3
16 × 163.8
Table 3. Detected and decoded primitives and comparison.
Table 3. Detected and decoded primitives and comparison.
Pattern Type
& Depth
Surface Types
PrimitivesOriginal PatternPlaneCylinderSculpture
Pattern 1 (8 × 8 resolution)
Depth 110 cm
Detected12,496420527392127
Decoded12,496420527242103
%10010099.598.9
Pattern 2 (10 × 10 resolution)
Depth 110 cm
Detected8352281019671449
Decoded8352281019541426
%10010099.398.4
Pattern 3 (12 × 12 resolution)
Depth 110 cm
Detected518717171159901
Decoded518717171148879
%10010099.097.6
Pattern 4 (14 × 14 resolution)
Depth 110 cm
Detected40001281951723
Decoded40001281939702
%10010098.797.1
Pattern 5 (16 × 16 resolution)
Depth 110 cm
Detected31241031749558
Decoded31241031737537
%10010098.496.2
Ahsan (2020) [14] (16 × 16 resolution)
Depth 200 cm
Detected312416501161689
Decoded312416171128585
%10098.097.184.9
Table 4. Percentage of corresponding points in the M-arrays with respect to decoded primitives.
Table 4. Percentage of corresponding points in the M-arrays with respect to decoded primitives.
Pattern Type
& Depth
Surface Types
PrimitivesOriginal PatternPlaneCylinderSculpture
Pattern 1 (8 × 8 resolution)
Depth 110 cm
Correspondence12,040393725171654
Decoded12,496420527242103
%96.493.692.478.7
Pattern 2 (10 × 10 resolution)
Depth 110 cm
Correspondence7980259617801076
Decoded8352281019541426
%95.692.491.175.5
Pattern 3 (12 × 12 resolution)
Depth 110 cm
Correspondence489515501014662
Decoded518717171148879
%94.490.388.375.3
Pattern 4 (14 × 14 resolution)
Depth 110 cm
Correspondence37441139819521
Decoded40001281939702
%93.688.987.274.2
Pattern 5 (16 × 16 resolution)
Depth 110 cm
Correspondence2898903631400
Decoded31241031737537
%92.887.685.674.5
Ahsan (2020) [14] (16 × 16 resolution)
Depth 200 cm
Correspondence28981329859397
Decoded312416171128585
%92.882.276.167.9
Table 5. The time calculation for different processes.
Table 5. The time calculation for different processes.
Surface TypeMethodResolutionPreprocessing (Filtering + Thresholding)LabelingParameter CalculationClassificationCorrespondenceRate of CorrespondenceComputation of Surface NormalsComputation of 3D Point Cloud
Original PatternAhsan [14] (2020) depth: 200 cm16 × 16566425873.34850.19--
Proposed Method depth: 110 cm16 × 16307.618.91105.41.2836.90.27--
14 × 14322.321.91366.41.41278.10.32--
12 × 12342.426.31644.61.61969.60.38--
10 × 10352.634.42651.82.64604.00.55--
8 × 8363.759.24011.44.48437.80.68--
Plane SurfaceAhsan (2020) [14] depth: 200 cm16 × 1661153365.62.24800.3-24.7
Proposed Method depth: 110 cm16 × 16380.917.7472.60.52265.30.2618.522.4
14 × 14390.424.0594.10.63388.90.3019.325.6
12 × 12401.325.3739.90.75587.00.3428.538.2
10 × 10412.333.21048.10.921403.10.5069.389.6
8 × 8422.636.51492.51.42301.10.55174.1207.7
CylinderAhsan (2020) [14] depth: 200 cm16 × 1664941.53612.7331.10.29-24.3
Proposed Method depth: 110 cm16 × 16360.817.8326.10.25178.70.2510.614.4
14 × 14371.019.1415.80.31292.50.3115.021.2
12 × 12379.620.8463.40.38372.50.3316.421.8
10 × 10386.723.2746.80.62904.90.4629.339.4
8 × 8397.326.9977.60.921505.20.5568.989.4
SculptureAhsan (2020) [14] depth: 200 cm16 × 16644382712.73180.5-15.4
Proposed Method depth: 110 cm16 × 16372.012.2260.10.18196.20.377.010.4
14 × 14384.516.2307.20.25321.10.467.411.4
12 × 12393.617.5326.70.29474.10.5411.416.2
10 × 10401.018.6524.10.46934.50.6619.326.2
8 × 8411.920.4764.60.682097.81.0029.442.1
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Elahi, A.; Zhu, Q.; Lu, J.; Farooq, U.; Farid, G.; Bilal, M.; Li, Y. Single-Shot, Monochrome, Spatial Pixel-Encoded, Structured Light System for Determining Surface Orientations. Photonics 2024, 11, 1046. https://doi.org/10.3390/photonics11111046

AMA Style

Elahi A, Zhu Q, Lu J, Farooq U, Farid G, Bilal M, Li Y. Single-Shot, Monochrome, Spatial Pixel-Encoded, Structured Light System for Determining Surface Orientations. Photonics. 2024; 11(11):1046. https://doi.org/10.3390/photonics11111046

Chicago/Turabian Style

Elahi, Ahsan, Qidan Zhu, Jun Lu, Umer Farooq, Ghulam Farid, Muhammad Bilal, and Yong Li. 2024. "Single-Shot, Monochrome, Spatial Pixel-Encoded, Structured Light System for Determining Surface Orientations" Photonics 11, no. 11: 1046. https://doi.org/10.3390/photonics11111046

APA Style

Elahi, A., Zhu, Q., Lu, J., Farooq, U., Farid, G., Bilal, M., & Li, Y. (2024). Single-Shot, Monochrome, Spatial Pixel-Encoded, Structured Light System for Determining Surface Orientations. Photonics, 11(11), 1046. https://doi.org/10.3390/photonics11111046

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop