Color projection module, fringe decoding method, apparatus, medium, device and system
By employing periodically repeating colored stripe patterns in the colored stripe coded structured light 3D measurement technology, the number of stripe colors and decoding width are reduced, solving the problems of unstable decoding and poor reconstruction integrity in existing technologies, and achieving efficient and fast 3D measurement.
Patent Information
- Application Number
- CN202310412276.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-12-31
- Publication Date
- 2026-08-25
- Estimated Expiration
- 2040-12-31
AI Technical Summary
In existing color stripe coded structured light 3D measurement technology, the variety of stripe colors or the large decoding width lead to unstable decoding, poor reconstruction integrity, low scanning efficiency, and difficulty in quickly and accurately measuring small and complex objects.
A single-frame color stripe pattern is used, which includes m periodically repeating basic stripe sequences. Each basic stripe sequence includes k different colors of stripes. Any consecutive n stripes form a unique n-bit stripe sequence. The total number of stripes l ≤ l0, l0 = kn, where k and n are both positive integers. By using a periodically repeating color stripe encoding method, the number of stripe colors and the decoding width are reduced.
It improves decoding stability, simplifies the structure, increases scanning efficiency, and enables fast and high-precision measurement of small, complex objects.
Smart Images

Figure CN116379964B_ABST
Abstract
Description
[0001] This disclosure is a divisional application of Chinese patent application No. 202011626487.6. Technical Field
[0002] This disclosure relates to the field of three-dimensional measurement technology, and in particular to a color projection module, stripe decoding method, device, medium, equipment and system. Background Technology
[0003] In recent years, structured light 3D measurement technology has developed rapidly. Relying on its non-contact, high-precision, and high-efficiency measurement characteristics, it has been widely applied in industrial inspection, auxiliary medical devices, electronic equipment, and cultural relic restoration. Structured light 3D measurement technology is a 3D reconstruction technique that projects a coded pattern onto the surface of an object and obtains the object's true 3D shape by acquiring and analyzing the coded pattern modulated by the object's surface morphology. Structured light 3D measurement technology can be divided into single-frame structured light and multi-frame structured light based on the number of projected coded patterns. Multi-frame structured light technology requires the continuous projection of multiple frames of coded patterns, placing certain requirements on the object's movement speed or scanning speed, and cannot achieve high frame rate real-time scanning; moreover, the corresponding structure is relatively complex, and the projection equipment is expensive. In contrast, single-frame structured light technology only requires the projection of one coded pattern onto the surface of the object, resulting in faster measurement speeds, no need to change the coded pattern, simpler structure, and lower cost, making it widely studied.
[0004] Color stripe coded structured light technology, as a single-frame structured light technique, is often used for high-precision measurement of complex objects due to its advantages such as good anti-interference and high accuracy. This technology projects multiple colored coded stripes onto the object, then uniquely decodes the current stripe's number information using the color information of adjacent stripes, and finally calculates the three-dimensional coordinates of points on the object's surface through correct matching. To ensure the uniqueness of the encoding of each stripe in a single image, strict requirements are placed on the number of stripe colors (k) and the number of stripes used for decoding a single stripe (n, hereinafter referred to as the decoding width). The total number of stripes in a single image must be less than k. n Existing color stripe coding techniques, in order to ensure the uniqueness of the stripe code across the entire image, employ a large number of stripe colors or require a large number of stripes for decoding (at least 5 stripe colors or at least 4 stripes). However, the more stripe colors used, the more severe the interference from the object's surface texture, leading to less stable decoding. Furthermore, the more stripes required for decoding a single stripe, the greater the interference from discontinuous surfaces, resulting in a higher decoding error rate and difficulty in reconstructing smaller objects. Therefore, existing color stripe coding techniques are largely limited to ensuring the uniqueness of each stripe code within a single image, resulting in a large number of stripe colors or large decoding widths, unstable decoding, and poor reconstruction integrity, thus significantly limiting scanning efficiency. Summary of the Invention
[0005] To solve the above-mentioned technical problems, or at least partially solve them, this disclosure provides a color projection module, stripe decoding method, apparatus, medium, device, and system. It proposes a single-width encoded, periodically repeatable color stripe coded structured light three-dimensional measurement technology, which greatly reduces the number of stripe colors and the decoding width, and improves scanning efficiency.
[0006] This disclosure provides a color projection module for projecting a color stripe pattern onto the surface of a measured object, wherein a single frame of the color stripe pattern includes m periodically repeating basic stripe sequences; where m is a positive integer;
[0007] The basic stripe sequence includes k different colored stripes, and any n consecutive stripes forming an n-position stripe sequence are unique; the total number l of the basic stripe sequence satisfies l ≤ l0, l0 = k n Both k and n are positive integers equal to or greater than 2.
[0008] In some embodiments, the basic stripe sequence is based on a k-ary n-order de Brouin sequence arrangement.
[0009] In some embodiments, at least some of the stripe spacing is different in two adjacent periods.
[0010] In some embodiments, at least some stripe spacings are different within the same period.
[0011] In some embodiments, k is 3, and / or n is 3.
[0012] In some embodiments, the three distinct colors are red, green, and blue.
[0013] In some embodiments, the module includes a tri-color light source, a mirror array, and a control system;
[0014] The control system is used to adjust the angle of each mirror in the mirror array so that the mirror reflects light of the corresponding color and projects the preset colored stripe pattern.
[0015] In some embodiments, the module includes a tri-color light source and an MRSK code;
[0016] The light from the three-color light source passes through the MRSK code and projects the preset colored stripe pattern.
[0017] This disclosure also provides a color stripe decoding method for decoding stripe patterns projected onto the surface of an object by any of the aforementioned color projection modules and captured by a camera module. The decoding method includes:
[0018] Acquire a stripe pattern on the surface of the object being tested; the stripe pattern is formed based on a single frame of the colored stripe pattern projected onto the surface of the object being tested;
[0019] Based on the stripe pattern, determine the pixel coordinates of the center of each stripe;
[0020] Based on the pixel coordinates and corresponding colors, the number of each stripe is determined;
[0021] Based on the number of each stripe, three-dimensional reconstruction is performed on each stripe to determine the three-dimensional point coordinates of the measured object.
[0022] In some embodiments, determining the number of each stripe based on the pixel coordinates and the corresponding color includes:
[0023] Based on the preset color code, the pixel coordinates and the corresponding colors, the color code corresponding to each stripe is determined;
[0024] For the i-th stripe: Based on the color code of each stripe, determine the n consecutive color codes corresponding to the n consecutive stripes containing the i-th stripe, and use them as the encoding value of the i-th stripe; i is a positive integer less than or equal to l;
[0025] Based on the encoded values of each stripe, the number of each stripe in a single basic encoded sequence is determined;
[0026] Obtain the preset pixel coordinate range for each cycle;
[0027] Based on the preset pixel coordinate range and the pixel coordinates, the period of each stripe is determined;
[0028] The number of each stripe in the colored stripe pattern is determined based on the number of each stripe in a single basic coding sequence and the period.
[0029] In some embodiments, the decoding method further includes:
[0030] Based on the continuity of the three-dimensional points, determine whether the decoding of the current stripe is misaligned;
[0031] When decoding misalignment occurs, the corresponding 3D point coordinates are corrected and updated.
[0032] In some embodiments, the three-dimensional reconstruction of each stripe based on its number includes:
[0033] Based on the number, determine the corresponding light plane;
[0034] Based on the light plane equation, the pixel coordinates of the center of the target stripe, and the preset parameters of the camera module, the three-dimensional point coordinates are reconstructed; or
[0035] When the camera module adopts a binocular system, the corresponding stripe is determined based on the number of each stripe in the left and right camera images of the binocular system;
[0036] Based on the corresponding stripes and the preset parameters of the camera module, the coordinates of the three-dimensional points are reconstructed.
[0037] This disclosure also provides a color stripe decoding apparatus for performing any of the above-described decoding methods, the decoding apparatus comprising:
[0038] A stripe pattern acquisition module is used to acquire the stripe pattern on the surface of the object being measured; the stripe pattern is formed based on a single frame of the colored stripe pattern projected onto the surface of the object being measured;
[0039] A pixel coordinate determination module is used to determine the pixel coordinates of the center of each stripe based on the stripe pattern.
[0040] The numbering determination module is used to determine the number of each stripe based on the pixel coordinates and the corresponding color;
[0041] The 3D point coordinate determination module is used to perform 3D reconstruction of each stripe based on its number, and to determine the 3D point coordinates of the object being measured.
[0042] In some embodiments, the number determination module is specifically used for:
[0043] Based on the preset color code, the pixel coordinates and the corresponding colors, the color code corresponding to each stripe is determined;
[0044] For the i-th stripe: Based on the color code of each stripe, determine the n consecutive color codes corresponding to the n consecutive stripes containing the i-th stripe, and use them as the encoding value of the i-th stripe; i is a positive integer less than or equal to l;
[0045] Based on the encoded values of each stripe, the number of each stripe in a single basic encoded sequence is determined;
[0046] Obtain the preset pixel coordinate range for each cycle;
[0047] Based on the preset pixel coordinate range and the pixel coordinates, the period of each stripe is determined;
[0048] The number of each stripe in the colored stripe pattern is determined based on the number of each stripe in a single basic coding sequence and the period.
[0049] In some embodiments, the three-dimensional point coordinate determination module is specifically used for:
[0050] Based on the number, determine the corresponding light plane;
[0051] Based on the light plane equation, the pixel coordinates of the center of the target stripe, and the preset parameters of the camera module, the three-dimensional point coordinates are reconstructed; or
[0052] When the camera module adopts a binocular system, the corresponding stripe is determined based on the number of each stripe in the left and right camera images of the binocular system;
[0053] Based on the corresponding stripes and the preset parameters of the camera module, the coordinates of the three-dimensional points are reconstructed.
[0054] In some embodiments, the decoding device further includes:
[0055] The decoding error identification module is used to determine whether the decoding of the current stripe is misaligned based on the continuity of the three-dimensional points;
[0056] The decoding error correction module is used to correct and update the coordinates of the corresponding 3D points when decoding misalignment occurs.
[0057] This disclosure also provides a computer-readable storage medium storing a computer program that, when executed by a processor, causes the processor to implement any of the above-described decoding methods.
[0058] This disclosure also provides an electronic device, including:
[0059] processor;
[0060] Memory, used to store executable instructions;
[0061] The processor is configured to read the executable instructions from the memory and execute the executable instructions to implement any of the above-described decoding methods.
[0062] This disclosure also provides a three-dimensional measurement system based on color stripe coded structured light, the system including a color projection module and a camera module at a preset angle;
[0063] The color projection module uses any of the above-mentioned color projection modules to project a color stripe pattern onto the surface of the object being measured.
[0064] The camera module is used to acquire a stripe pattern modulated by the surface of the object under test. The stripe pattern is formed based on a single frame of the color stripe pattern projected onto the surface of the object under test. In the stripe pattern, there is no overlapping area between the stripes of each cycle.
[0065] In some embodiments, the color projection module and the camera module are disposed in the same intraoral scanner.
[0066] In some embodiments, the system further includes a data processing module;
[0067] The data processing module is used to receive the stripe pattern and execute any of the above-described decoding methods.
[0068] In some embodiments, the color projection module is implemented using methods such as DLP, LCOS, or transmissive projection.
[0069] The camera module includes a color image sensor, or
[0070] The camera module includes a beam splitting system and at least two image acquisition sensors.
[0071] The technical solution provided in this disclosure has the following advantages compared with the prior art:
[0072] The color projection module provided in this embodiment is used to project a color stripe pattern onto the surface of a measured object. A single frame of the color stripe pattern includes m periodically repeating basic stripe sequences, where m is a positive integer. Each basic stripe sequence includes k different colored stripes, and any consecutive n stripes forming an n-bit stripe sequence are unique. The total number of stripes l in the basic stripe sequence satisfies l ≤ l0, l0 = k. n Both k and n are positive integers equal to or greater than 2. Therefore, a periodically repeating color stripe encoding method is used to form a color stripe pattern, reducing the number of stripe colors and the number of stripes required for decoding. Since fewer stripes result in less interference from discontinuities on the object's surface, a lower decoding error rate, and easier reconstruction of smaller objects. Consequently, this color stripe pattern contains fewer color types and has a narrower decoding width, leading to higher decoding stability and better reconstruction integrity; it also simplifies the structure and improves scanning efficiency. Attached Figure Description
[0073] The accompanying drawings, which are incorporated in and form a part of this specification, illustrate embodiments consistent with this disclosure and, together with the description, serve to explain the principles of this disclosure.
[0074] To more clearly illustrate the technical solutions in the embodiments of this disclosure or the prior art, the accompanying drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, for those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0075] Figure 1 This is a schematic diagram of a colored stripe pattern according to an embodiment of the present disclosure;
[0076] Figure 2 This is a schematic flowchart of a color stripe decoding method according to an embodiment of the present disclosure;
[0077] Figure 3 This is a schematic diagram of the structure of a color stripe decoding device according to an embodiment of the present disclosure;
[0078] Figure 4 This is a schematic diagram of the structure of an electronic device provided in an embodiment of the present disclosure;
[0079] Figure 5 This is a schematic diagram of the structure of a three-dimensional measurement system according to an embodiment of the present disclosure;
[0080] Figure 6 This is a schematic diagram of the structure of another three-dimensional measurement system according to an embodiment of the present disclosure;
[0081] Figure 7 This is a schematic diagram illustrating the parameter correlation principle of a three-dimensional measurement system according to an embodiment of this disclosure. Detailed Implementation
[0082] To better understand the above-mentioned objectives, features, and advantages of this disclosure, the solutions disclosed herein will be further described below. It should be noted that, unless otherwise specified, the embodiments and features described herein can be combined with each other.
[0083] Numerous specific details are set forth in the following description in order to provide a full understanding of this disclosure, but this disclosure may also be implemented in other ways different from those described herein; obviously, the embodiments in the specification are only some, and not all, of the embodiments of this disclosure.
[0084] Based on the background information above, existing color stripe coding structured light 3D measurement technology requires a large number of stripe colors and a large number of stripes (i.e., the number of stripes) to ensure the uniqueness of the color coding on a single image. When scanning small, complex objects (such as teeth or dental molds), the coding pattern is prone to missing or broken codes due to depth modulation, resulting in decoding failure or errors. This leads to poor integrity of the single-frame reconstructed data, greatly reducing scanning quality and efficiency.
[0085] To address the aforementioned problems, this disclosure proposes a periodically repeatable color stripe coded structured light 3D measurement technology, including a color projection module, a decoding method, a decoding device, a storage medium, an electronic device (e.g., a computer), and a 3D measurement system. This technical solution utilizes a periodically repeating stripe arrangement, which significantly reduces the number of stripe colors and the number of stripes required for decoding, thereby improving decoding stability, simplifying the system structure, increasing scanning efficiency, and enabling rapid, high-precision, and complete measurement of small, complex-shaped objects.
[0086] The following is combined Figures 1-7The present disclosure provides an exemplary description of the color projection module, stripe encoding / decoding method, apparatus, and three-dimensional measurement system provided in the embodiments of this disclosure.
[0087] In this embodiment, the color projection module is used to project a color stripe pattern (also called "color stripe" or "stripe pattern") onto the surface of the object being measured. A single frame of the color stripe pattern includes m periodically repeating basic stripe sequences: where m is a positive integer, the basic stripe sequence includes k stripes of distinct colors, and any n consecutive stripes forming an n-bit stripe sequence are unique; the total number l of stripes in the basic stripe sequence satisfies l ≤ l0, l0 = k. n Both k and n are positive integers equal to or greater than 2.
[0088] Where, l0 = k n Both k and n are positive integers equal to or greater than 2. A sequence of n stripes of one or more colors from k different colors can form k stripes. n A sequence of stripes with different colors arranged in different patterns, for example, red and green stripes arranged in a sequence of 2 stripes, forming 2 2 There are four different stripe sequences: (red-red), (red-green), (green-red), and (green-green). Alternatively, two of the three colors—red, green, and blue—can be arranged in a two-stripe sequence, forming three different stripe sequences. 2 There are different stripe sequences; for example, red, green, and blue stripes arranged in a stripe sequence of 3 can form 3 3 There are n distinct stripe sequences. In the basic stripe sequence, any n consecutive stripes form a unique n-stripe sequence; that is, the basic stripe sequence forms l arbitrary consecutive n stripes that constitute an n-position stripe sequence based on color arrangement, and the l arbitrary consecutive n stripes that constitute an n-position stripe sequence based on color arrangement are k. n There are l types of n-bit stripe sequences with different color arrangements. Therefore, a colored stripe pattern can be formed using a smaller number of colors, a narrower decoding width, and a periodically repeating stripe arrangement.
[0089] The values of k and n can be determined based on the size of the surface of the object being measured, the performance parameters of the color projection module, and the performance parameters of the camera; this embodiment is not limited to these values. It should be noted that the n-position color-based stripe sequence, consisting of l arbitrarily consecutive n stripes in the basic stripe sequence, is determined based on a cyclic stripe sequence formed by connecting the beginning and end of the basic stripe sequence.
[0090] For example, the value of k can be 2, 3 or other larger values, that is, the stripe colors in the color stripe encoding can be 2, 3 or more; similarly, the value of n can be 2, 3 or other larger values, that is, the number of stripes required to decode a single stripe is 2, 3 or more; the values of k and n can be the same or different, and this disclosure does not limit them.
[0091] For example, if both k and n are 3, then l0 = k n =27, l≤27.
[0092] For example, Figure 1 This is a schematic diagram of a colored stripe pattern according to an embodiment of the present disclosure. (See reference) Figure 1 The values of k, n, and m are all 3, and l = l0 = 27, thus forming a total of 81 stripes, including 3 repeating cycles, 3 different colors, and a color stripe pattern with a decoding width of 3.
[0093] The color projection module provided in this embodiment can form a single-frame color stripe pattern based on a periodically repeatable color stripe encoding method, reducing the number of stripe colors and the number of stripes required for decoding. Since fewer stripes result in less interference from discontinuities on the object's surface, a lower decoding error rate, and easier reconstruction of smaller objects. Therefore, the color stripe pattern contains fewer color types and has a narrower decoding width, leading to higher decoding stability and better reconstruction integrity; it also simplifies the structure and improves scanning efficiency.
[0094] In this basic stripe sequence, any n consecutive stripes are colored stripes from k different colors, and the stripe sequences formed by any n consecutive stripes in the basic stripe sequence are all distinct. The k colors are represented by the symbols 0, 1, ..., (k-1), and the encoding sequence determined based on the basic stripe sequence satisfies the DeBruijn sequence.
[0095] A k-element, n-order DeBruijn sequence, or B(k,n), is a cyclic sequence of k elements. All sequences of length n consisting of k elements appear exactly once in its subsequences (in a circular form). Here, the color code corresponds to an element in the DeBruijn sequence, the color type k corresponds to the type of element in the DeBruijn sequence, and any sequence of n consecutive stripes corresponds to a subsequence of the DeBruijn sequence.
[0096] The total number of fringes l in the basic fringe sequence is less than or equal to k. n When the total number of fringes in the basic fringe sequence is equal to k n At that time, the l formed in the basic stripe sequence n A stripe sequence based on arbitrarily continuous n stripes includes kn All stripe sequences in a series of stripe sequences with distinct stripe arrangements; when the total number of stripes in the basic stripe sequence is less than k. n At that time, the l formed in the basic stripe sequence n A stripe sequence formed by n arbitrary consecutive stripes is called k. n A portion of a stripe sequence in a stripe sequence with different arrangements.
[0097] For example, the basic stripe sequence k=3, n=3, and the three colors are represented by the numbers 0, 1, and 2 respectively. For instance, red is represented by 0, green by 1, and blue by 2. The 27 stripes arranged in the order of red-red-red-green-red-red-red-blue-red-green-green-red-green-blue-red-blue-green-red-blue-blue-green-green-blue-blue-blue-blue-blue-blue have the following encoding sequence:
[0098] {0,0,0,1,0,0,2,0,1,1,0,1,2,0,2,1,0,2,2,1,1,1,2,1,2,2,2}.
[0099] In this encoded sequence, any sequence of three consecutive codes is unique. For example, the first three-digit sequence is {0,0,0}, the second three-digit sequence is {0,0,1}, ..., and the last three-digit sequence is {2,2,2}. Each three-digit sequence appears only once in the entire encoded sequence. Each code corresponds to a stripe of a certain color, and each three-digit sequence corresponds to a stripe in the base sequence, which is the encoded value of that stripe used for identification and location. This sequence corresponds to 27 stripes.
[0100] The three-digit sequence in this sequence corresponds to one of the stripes and serves as the encoding value of that stripe. Preferably, the n-digit sequence formed by consecutive n-digit codes serves as the encoding value of the stripe corresponding to one of the n-digit codes. For example, {0,0,0} is the encoding value of the first stripe in the basic stripe sequence, {0,0,1} is the encoding value of the second stripe in the basic stripe sequence, and so on. That is, the 3-digit sequence formed by consecutive 3-digit codes serves as the encoding sequence of the stripe corresponding to the first digit of the 3-digit code. Of course, it can also be that {0,0,0} is the encoding value of the second stripe in the basic stripe sequence, {0,0,1} is the encoding value of the third stripe in the basic stripe sequence, that is, the 3-digit sequence formed by consecutive 3-digit codes serves as the encoding value of the stripe corresponding to the second digit of the 3-digit code.
[0101] In other implementations, other encoding principles can be used to ensure that the n-bit sequence of any consecutive n codes is unique.
[0102] In some embodiments, at least some of the stripe spacing is different in two adjacent periods.
[0103] By setting the spacing of some or all stripes to be different in two adjacent cycles, a differential spacing design between two adjacent cycles can be achieved, which is beneficial for checking decoding errors during the decoding process and ensuring decoding accuracy.
[0104] For example, the spacing of the odd-numbered stripe in the odd-numbered period can be set to be less than the spacing of the stripe in the even-numbered period, and the spacing of the even-numbered stripe in the odd-numbered period can be set to be greater than the spacing of the stripe in the even-numbered period; or, other stripe spacing differentiation settings can be used, which are not limited here.
[0105] For example, the stripe spacing can be the distance between the center lines of two adjacent stripes, or the distance between the opposite edges of two adjacent stripes, or it can be defined by other reference points. In the same colored stripe pattern, the same reference points can be used for definition, and there is no limitation here.
[0106] In some embodiments, the stripe spacing is reversed in two adjacent periods.
[0107] For example, in any two adjacent periods, in one period, the stripe spacing is distributed in the order ddDDddDDdd…; in the other period, the stripe spacing is distributed in the order DDddDDddDD…, where D≠d. For instance, if D>d, then in one period, the stripe spacing follows a trend of small-small-large-small-large-small-large-small…; in the other period, the stripe spacing follows a trend of large-small-small-large-small-large-large-large…. This achieves the opposite size of the stripe spacing at corresponding positions in two adjacent periods, one large and one small.
[0108] In other embodiments, other stripe spacing distribution methods may be selected, and this disclosure does not limit the specific methods.
[0109] In some embodiments, the stripe spacing is different in each period.
[0110] In some embodiments, at least some stripe spacings are different within the same period.
[0111] In the same period, the spacing of some or all stripes may be different, which can be set according to the needs of the color projection module. This disclosure does not limit the specific settings.
[0112] In some embodiments, k is 3.
[0113] Thus, the variety of stripe colors is limited. In other embodiments, the value of k can also be 2, 4, or other values, which are not limited here.
[0114] In some embodiments, the three distinct colors are red, green, and blue.
[0115] In this way, by using only the three primary colors as three distinct colors, there is no need to further synthesize or decompose the colors of the colored stripes, which helps to simplify the stripe encoding and decoding method.
[0116] In some embodiments, the color projection module includes a three-color light source, a mirror array, and a control system; the control system is used to adjust the angle of each mirror in the mirror array so that the mirror reflects light of the corresponding color and projects a preset color stripe pattern.
[0117] The color projection module can be implemented as a Digital Light Processing (DLP) projector. This DLP projector mainly includes an RGB three-color light source, a mirror array (such as a Digital Micromirror Device, DMD), and a control system. By adjusting the angle of each mirror in the mirror array through the control system, each mirror can reflect light of its corresponding color to project a colored stripe pattern.
[0118] Among them, the colored stripe pattern is a colored stripe pattern determined based on the colored stripe coding method, which satisfies the above-mentioned arrangement rules of colored stripes.
[0119] In some embodiments, the color projection module includes a tri-color light source and an MRSK code; the light from the tri-color light source passes through the MRSK code and projects a preset color stripe pattern.
[0120] The color projection module can also be implemented using an optical engine based on the principle of perspective projection. This optical engine mainly includes RGB three-color light sources and MRSK codes. By customizing the MRSK codes, the desired pattern, i.e., a preset colored stripe pattern, can be projected after the three-color light sources pass through.
[0121] In other embodiments, the color projection module may also include an optical engine employing other principles, which will not be elaborated upon or limited in this disclosure.
[0122] The color projection module provided in this embodiment can be used as a projector in a three-dimensional measurement system or a projection device in other measurement systems, but this embodiment does not limit it.
[0123] In the above embodiments, the basic coding sequence in the colored stripe pattern is repeated for m periods to form a periodic repeating coding sequence with a total length of ml.
[0124] Where m is a positive integer, and the stripes between each cycle do not overlap in the image. Exemplarily, m can be 1, 2, 3, or other larger values, and this disclosure does not limit this.
[0125] The basic encoding sequence is treated as a periodic unit and repeated for m periods to form a periodically repeating encoding sequence with a total length of ml. Furthermore, the number of periods, m, must be set to ensure that no overlapping areas of fringes appear between periods within the depth-of-field measurement range of the system. This facilitates decoding.
[0126] For example, the range of movement of the i-th stripe in the m0-th cycle on the image is... The range of movement of the i-th stripe in the m1-th cycle on the image is: Where x represents the image coordinates, then we must have Based on the measurement depth range determined by the structure of the three-dimensional measurement system described below, the number of cycles, m, can be determined.
[0127] For example, referring to the above, when the basic coding sequence is 27 bits and m is 3, the periodic repeating coding sequence can be represented as:
[0128] {0,0,0,1,0,0,2,0,1,1,0,1,2,0,2,1,0,2,2,1,1,1,2,1,2,2,2,|0,0,0,1,0,0,2,0,1,1,0,1,2,0,2,1,0,2,2,1,1,1,2,1,2,2,2,|0,0,0,1,0,0,2,0,1,1,0,1,2,0,2,1,0,2,2,1,1,1,2,1,2,2,2}.
[0129] Its total length is 3×27=81, that is, ml=81, which can meet the resolution requirements of the following three-dimensional measurement system.
[0130] The color stripe coding system ensures that each code value is unique within a periodic unit, but the entire coding sequence is repeated over multiple periods. Therefore, high-resolution coding sequences can be achieved using fewer stripe colors and a smaller decoding width through periodic repetition. Simultaneously, the fewer coding colors and smaller decoding width result in high decodeability and a low decoding error rate, enabling rapid, accurate, and complete measurement of small-sized objects.
[0131] Based on the same inventive concept, this disclosure also provides a color stripe decoding method for decoding the stripe pattern projected onto the surface of the object being measured by any of the aforementioned color projection modules and acquired by the camera module. Since decoding is performed using the aforementioned periodically repeating encoding method, the number of stripes required for decoding can be greatly reduced, thereby improving decoding stability, simplifying the system structure, increasing scanning efficiency, and enabling rapid, high-precision, and complete measurement of small, complex-shaped objects.
[0132] For example, Figure 2This is a schematic flowchart illustrating a color stripe decoding method according to an embodiment of this disclosure. (Refer to...) Figure 2 The decoding method may include:
[0133] S301. Obtain the stripe pattern on the surface of the object being measured.
[0134] For example, a camera module may acquire an image of the surface of the object under test, the image including a stripe pattern; the stripe pattern is formed based on a single frame of color stripe pattern projected onto the surface of the object under test.
[0135] S302. Based on the stripe pattern, determine the pixel coordinates of the center of each stripe.
[0136] For example, this step may include performing image analysis on the stripe image, extracting the stripe center line, and obtaining the pixel coordinates x of the stripe center.
[0137] S303. Determine the number of each stripe based on the pixel coordinates and the corresponding color.
[0138] The number represents the relative position of the stripe within the entire color stripe coding.
[0139] In some embodiments, this step may include:
[0140] Step 1: Based on the preset color code, pixel coordinates and corresponding colors, determine the color code (i.e., code) corresponding to each stripe.
[0141] The system assigns a color code to each color, with each color having a pre-defined color code. For example, color codes can be represented by numbers, with 0 for red, 1 for green, and 2 for blue; alternatively, color codes can be represented by letters or other forms, which are not limited here.
[0142] Thus, by looking up the corresponding preset color code based on the pixel coordinates and their corresponding colors, the color code corresponding to each stripe can be determined.
[0143] Step 2: For the i-th stripe: Based on the color code of each stripe, determine the consecutive n color codes corresponding to the n consecutive stripes containing the i-th stripe, and use them as the encoding value of the i-th stripe; i is a positive integer less than or equal to l.
[0144] In this context, as mentioned above, each stripe is distinguished by using the corresponding n color codes of n consecutive stripes; the n consecutive color codes can be used as the encoding value of the i-th stripe, which facilitates decoding.
[0145] Step 3: Based on the encoding value of each stripe, determine the number of each stripe in a single basic encoding sequence.
[0146] That is, for each stripe: based on the color sequence (i.e., code) of the n consecutive stripes to which the stripe belongs, determine the number of the stripe in a basic coding sequence.
[0147] Therefore, the number of each stripe within a periodic unit can be determined. Specifically: based on the color sequence of the current stripe and the consecutive n stripes, the corresponding code value p is determined, and thus the number I of the stripe in the basic code sequence can be obtained. p At this point, there are m stripes with a code value of p.
[0148] For example, such as Figure 1 The first stripe in the first cycle is encoded with three consecutive digits as {0,0,0}, and this encoding is used three times in the entire stripe pattern: the first stripe in the first cycle, the first stripe in the second cycle, and the first stripe in the third cycle.
[0149] Step 4: Obtain the preset pixel coordinate range for each cycle.
[0150] In this step, the preset pixel coordinate range for each period is determined based on the hardware arrangement of the projection module and the camera module, so as to provide data support for determining the period in which the stripes are located in subsequent steps.
[0151] Step 5: Determine the period of each stripe based on the preset pixel coordinate range and pixel coordinates.
[0152] Therefore, the period of each stripe can be determined.
[0153] The color stripes acquired by the aforementioned camera module take into account depth-of-field limitations. Therefore, stripes with the same encoded value will only appear in non-overlapping image areas across different periods. Based on this, the period m of each stripe can be determined using its pixel coordinate x and encoded value p. i In other words, the structure of the 3D measuring device determines the depth of field. When the object being measured is within the depth of field of the 3D measuring device, the fringe pattern projected by the projection module is modulated by the object and acquired by the camera module. Each period of the fringe pattern will only be imaged within the corresponding imaging area of the camera module, thus determining the image range of each period of the fringe. The mapping relationship between the fringe pattern projected by the projection module and the fringe pattern acquired by the camera module is determined by the following factors: the depth of field and magnification of the projection module, the depth of field and magnification of the camera module, and the angle between the optical axis of the projection module and the optical axis of the camera module.
[0154] For example, the image range in which the first stripe can appear in the first period is x1 = [5, 100], the image range in which the first stripe can appear in the second period is x2 = [275, 370], and the image range in which the first stripe can appear in the third period is x3 = [545, 640]. Based on this, the period in which the corresponding stripe appears can be determined according to the stripe pixel coordinate x encoded as {0, 0, 0} and the range in which the stripe appears.
[0155] Step 6: Determine the number of each stripe in the entire colored stripe pattern based on the number and period of each stripe in a single basic coding sequence.
[0156] Based on the aforementioned steps, the number p within a single period and the period m in which each stripe belongs are calculated. i Based on this, the number I of each stripe in the entire sequence can be calculated, i.e., I = I p +m i ×l.
[0157] S304. Based on the number of each stripe, perform three-dimensional reconstruction of each stripe to determine the three-dimensional point coordinates of the measured object.
[0158] In this step, based on the implementation of the camera module in the 3D measurement system, binocular or monocular reconstruction can be performed according to the stripe encoding to obtain the 3D point coordinates of the object being measured, thereby realizing the 3D reconstruction of the surface of the object being measured.
[0159] In some embodiments, the step of performing three-dimensional reconstruction of each stripe based on its number may include:
[0160] Based on the number, determine the corresponding light plane;
[0161] Based on the light plane equation, the pixel coordinates of the center of the target stripe, and the preset parameters of the camera module, the 3D point coordinates are reconstructed; or
[0162] When the camera module adopts a binocular system, the corresponding stripes are determined based on the number of each stripe in the left and right camera images of the binocular system.
[0163] Based on the corresponding stripes and the preset parameters of the camera module, the coordinates of the three-dimensional points are reconstructed.
[0164] Specifically, the computer (data storage and data processing system) of the 3D measurement system has preset intrinsic and extrinsic parameters of the optical engine (i.e., color projection module) and camera (i.e., camera module). For example, the intrinsic and extrinsic parameters of the optical engine and camera can be determined through calibration.
[0165] The computer has a pre-defined encoding rule for colored stripe patterns, such as R=0, G=1, B=2, and three consecutive digits are used as the first (or second, or third) digit code value to represent the stripe number.
[0166] The computer has a preset number of light planes corresponding to each stripe in the color stripe pattern. For example, the light plane number corresponding to the first stripe is (0,0,0), and the light plane number corresponding to the second stripe is (0,0,1). For example, the light plane number corresponding to each stripe can be determined by calibration.
[0167] The computer has a preset stripe period range, which is a preset pixel coordinate range, including the range of three-dimensional space X, Y, and Z.
[0168] Based on this, the optical engine projects a colored stripe pattern onto the surface of the object being measured. The camera acquires the stripe image modulated by the surface of the object being measured and transmits it to the computer. Based on the acquired stripe image, the computer extracts the center line of each stripe and determines the pixel coordinates and the corresponding RGB values based on the center line of each stripe. Based on the pixel coordinates and their RGB values, and the computer's preset encoding rules (R=0, G=1, B=2), the corresponding encoding value is determined. Based on the encoding rule of "using three consecutive 3-digit encoding values as the first (or second, or third) code corresponding to the stripe number", the number of each stripe is determined.
[0169] Subsequently, if a monocular system is used, the corresponding light plane is determined based on the fringe number; the 3D point coordinates are reconstructed based on the light plane equation, the center coordinates of the target fringe, and the camera's intrinsic and extrinsic parameters. If a binocular system is used, the light plane does not need to be calibrated; instead, the corresponding fringe is determined based on the fringe number in the left and right images, and the 3D point coordinates are reconstructed based on the corresponding fringe and the camera's intrinsic and extrinsic parameters. In this way, the 3D point coordinates of the measured object can be determined.
[0170] In some embodiments, Figure 2 Based on this, the decoding method also includes identifying and correcting periodic errors in the decoding, which may specifically include the following steps:
[0171] Step 1: Based on the continuity of three-dimensional points, determine whether the decoding of the current stripe is misaligned.
[0172] Step 2: When decoding misalignment exists, correct and update the corresponding 3D point coordinates.
[0173] Steps one and two identify and correct stripe errors and / or periodic errors during decoding.
[0174] For example, as described above, in the color stripe encoding method, an offset operation is performed on the odd-numbered stripes in both odd and even periods. When a stripe in an odd period is incorrectly decoded as an even period, a very large depth difference will appear between the corresponding odd-numbered stripes. Based on this, by using a certain depth difference threshold, it can be determined whether the decoding period of the current stripe is misaligned; and when the period is incorrect, the period number is adjusted to the adjacent period to correct the period number and improve decoding accuracy.
[0175] The depth difference threshold can be set based on the depth of field and the number of periods, and the specific value of the threshold is not limited in the embodiments of this disclosure.
[0176] For example, situations where period misalignment occurs and it is necessary to re-match and identify the correct period (i.e., correct the period) to update the 3D point coordinates may include: Case 1, multiple (at least n) consecutive stripes are decoded incorrectly; Case 2, the stripe numbers of adjacent periods are incorrectly decoded.
[0177] Furthermore, if one or two stripes are misaligned during decoding, they are relatively easy to identify and can be deleted. Therefore, no further correction is required; that is, the 3D point coordinates will be updated to delete the corresponding erroneous points.
[0178] For situations where period correction is required, the decoding method provided in this disclosure can employ the following two steps for identification.
[0179] Step 1: When decoding misalignment, the depth of the stripes will change abruptly. In some cases, the depth of the misaligned stripes will exceed the depth of field of the camera (pre-calibrated). Thus, they will be identified or deleted. That is, if the coordinates of a 3D point that exceeds the depth of field are identified, the corresponding 3D point coordinates will be deleted.
[0180] Step Two: If the fringe depth does not exceed the depth of field, the fringe spacing between adjacent periods differs due to the different directional shifts in the fringes. Therefore, when fringe decoding is misaligned, the depth between consecutive n fringes will exhibit a wavy pattern. For example, if fringes 1, 2, and 3 of the first period are misaligned and mistakenly identified as fringes 1, 2, and 3 of the second period, the reconstructed 3D point coordinates corresponding to fringes 1 and 3 will exhibit a significant jump relative to their surrounding coordinates, causing the depth corresponding to these three fringes to present a 'V' shape, thus being identified. In other words, if a wavy distribution of 3D points is detected, a periodic misalignment of the corresponding fringes can be identified.
[0181] Furthermore, if a periodic misalignment of the stripes is identified, the period is corrected (i.e., adjusted). The correction steps may include:
[0182] The depth of the periodically misaligned stripes is recalculated. Multiple depth cases are calculated using the light planes of adjacent periods (e.g., if the first stripe of the second period is misaligned, its depth is calculated using the first light plane of the first period and the first light plane of the third period). The one with the smallest wavy pattern is the correct period of the stripe.
[0183] In this way, errors in stripe periodicity can be identified and corrected, improving decoding accuracy, thereby correcting and updating the coordinates of three-dimensional points.
[0184] In some embodiments, a decoding method for the above encoding method may include: extracting the stripe center line based on the stripe pattern and obtaining the pixel coordinates x of the stripe center. Then, determining the encoding value of each stripe, that is: determining the encoding value p corresponding to the stripe based on the color sequence of n consecutive stripes containing the current stripe, thereby obtaining the stripe's number I in the basic encoding sequence. p The number at this time is I. p There are a total of m stripes. Next, the period of each stripe is determined: Since depth-of-field constraints were considered during the generation of the color stripe encoding, stripes with the same encoding value will only appear in non-overlapping image areas in different periods; based on this, according to the pixel coordinate x and number I of each stripe... p This allows us to determine the period m of the fringe. i Next, based on the encoded value p and number I calculated for each stripe... p and the period m i Calculate the number of each stripe in the entire sequence, I = I p +m i ×l. Next, binocular or monocular reconstruction is performed based on the fringe encoding to obtain the three-dimensional point coordinates of each fringe, thereby achieving three-dimensional reconstruction of the surface of the measured object. Optionally, this decoding method may also include: identifying periodic errors in decoding. Based on the aforementioned differentiated design of adjacent periodic fringes, when an odd-period fringe is incorrectly decoded as an even-period fringe, a very large depth difference will appear between the corresponding odd-period fringes. Therefore, by using a certain depth difference threshold, it can be determined whether the decoding period of the current fringe is misaligned, and period correction can be performed in conjunction with depth of field. Since decoding is performed using the aforementioned periodic repetition encoding method, the number of fringes required for decoding can be greatly reduced, thereby improving decoding stability, simplifying the system structure, increasing scanning efficiency, and enabling rapid, high-precision, and complete measurement of small, complex-shaped objects.
[0185] Based on the above embodiments, this disclosure also provides a color stripe decoding device for performing any of the above decoding methods. Therefore, this decoding device also possesses the beneficial effects of any of the above decoding methods. Similarities can be understood as described above, and will not be repeated here.
[0186] For example, Figure 3 This is a schematic diagram of the structure of a color stripe decoding device according to an embodiment of the present disclosure. (Refer to...) Figure 3 The decoding device includes: a stripe pattern acquisition module 501, used to acquire the stripe pattern on the surface of the object being measured; the stripe pattern is a stripe pattern formed based on a single frame of color stripe pattern projected onto the surface of the object being measured; a pixel coordinate determination module 502, used to determine the pixel coordinates of the center of each stripe based on the stripe pattern; a number determination module 503, used to determine the number of each stripe based on the pixel coordinates and the corresponding color; and a three-dimensional point coordinate determination module 504, used to perform three-dimensional reconstruction of each stripe based on the number of each stripe to determine the three-dimensional point coordinates of the object being measured.
[0187] Therefore, this color stripe decoding device can decode the aforementioned color stripe pattern that uses periodic repetition, which can greatly reduce the number of stripes required for decoding, thereby improving decoding stability, simplifying the system structure, improving scanning efficiency, and enabling fast, high-precision, and complete measurement of small, complex-shaped objects.
[0188] In some embodiments, the numbering determination module 503 is specifically used for: determining the color code corresponding to each stripe based on a preset color code, pixel coordinates, and the corresponding color; for the i-th stripe: determining the consecutive n color codes corresponding to the n consecutive stripes where the i-th stripe is located based on the color code of each stripe, and using them as the encoding value of the i-th stripe; i is a positive integer less than or equal to 1; determining the number of each stripe in a single basic encoding sequence based on the encoding value of each stripe; obtaining the preset pixel coordinate range of each period; determining the period where each stripe is located based on the preset pixel coordinate range and pixel coordinates; and determining the number of each stripe in the color stripe pattern based on the number and period of each stripe in a single basic encoding sequence.
[0189] In this way, the number of each stripe in the stripe pattern in a periodic unit and the number of its period can be determined, thereby determining its number in the entire color stripe coding.
[0190] In some embodiments, the three-dimensional point coordinate determination module 504 is specifically used for:
[0191] Based on the number, determine the corresponding light plane;
[0192] Based on the light plane equation, the pixel coordinates of the center of the target stripe, and the preset parameters of the camera module, the 3D point coordinates are reconstructed; or
[0193] When the camera module adopts a binocular system, the corresponding stripe is determined based on the stripe number of each stripe in the left and right camera images of the binocular system.
[0194] Based on the corresponding stripes and the preset parameters of the camera module, the coordinates of the three-dimensional points are reconstructed.
[0195] In this way, three-dimensional reconstruction of the object under test can be achieved based on a monocular or binocular system.
[0196] In some embodiments, the decoding device further includes: a decoding error identification module, used to determine whether the decoding of the current stripe is misaligned based on the continuity of the three-dimensional points; and a decoding error correction module, used to correct and update the coordinates of the corresponding three-dimensional points when a decoding misalignment exists.
[0197] In this way, by judging the continuity of three-dimensional points, it can be determined whether the decoding period of the current stripe is misaligned; and when the period is incorrect, the period number can be adjusted to the adjacent period to correct the period number and improve the decoding accuracy.
[0198] Based on the above embodiments, this disclosure also provides an electronic device (i.e., a decoding device) that can be used to implement any of the above decoding methods.
[0199] For example, Figure 4 This is a schematic diagram of the structure of an electronic device according to an embodiment of the present disclosure. (Refer to...) Figure 4 The electronic device 70 includes a processor 701 and a memory 702 storing computer program instructions (i.e., executable instructions); wherein the processor is used to read executable instructions from the memory and execute the executable instructions to implement any of the above-mentioned decoding methods.
[0200] Specifically, the processor 701 may include a central processing unit (CPU), an application-specific integrated circuit (ASIC), or one or more integrated circuits that can be configured to implement the embodiments of this application.
[0201] Memory 702 may include a large-capacity storage for information or instructions. For example, and not limitingly, memory 702 may include a hard disk drive (HDD), a floppy disk drive, flash memory, optical disk, magneto-optical disk, magnetic tape, or a Universal Serial Bus (USB) drive, or a combination of two or more of these. Where appropriate, memory 702 may include removable or non-removable (or fixed) media. Where appropriate, memory 702 may be internal or external to the integrated gateway device. In a particular embodiment, memory 702 is a non-volatile solid-state memory. In a particular embodiment, memory 702 includes read-only memory (ROM). Where appropriate, the ROM may be a mask-programmed ROM, a programmable ROM (PROM), an erasable PROM (Electrically Programmable ROM, EPROM), an electrically erasable programmable PROM (EEPROM), an electrically alterable ROM (EAROM), or flash memory, or a combination of two or more of these.
[0202] The processor 701 reads and executes computer program instructions stored in the memory 702 to perform the steps of the decoding method provided in the embodiments of this disclosure.
[0203] In one example, the electronic device 70 may further include a transceiver 703 and a bus 704. Wherein, as... Figure 4 As shown, the processor 701, memory 702 and transceiver 703 are connected via bus 704 and communicate with each other.
[0204] Bus 704 includes hardware, software, or both. For example, and not limitingly, the bus may include an Accelerated Graphics Port (AGP) or other graphics bus, an Extended Industry Standard Architecture (EISA) bus, a Front Side Bus (FSB), a Hyper Transport (HT) interconnect, an Industrial Standard Architecture (ISA) bus, an Infinite Bandwidth Interconnect, a Low Pin Count (LPC) bus, a memory bus, a MicroChannel Architecture (MCA) bus, a Peripheral Component Interconnect (PCI) bus, a PCI-Express (PCI-X) bus, a Serial Advanced Technology Attachment (SATA) bus, a Video Electronics Standards Association Local Bus (VLB) bus, or other suitable buses, or a combination of two or more of these. Where appropriate, bus 704 may include one or more buses. Although specific buses are described and illustrated in the embodiments of this application, this application considers any suitable bus or interconnection.
[0205] Based on the above embodiments, this disclosure also provides a computer-readable storage medium storing a computer program that, when executed by a processor, causes the processor to implement any of the above-described decoding methods.
[0206] For example, it can be combined Figure 4 A storage medium including instructions, such as a memory 302 including instructions, wherein the instructions can be executed by a processor 301 to complete the decoding method provided in the embodiments of this disclosure.
[0207] Optionally, the storage medium may be a non-transitory computer-readable storage medium, such as ROM, random access memory (RAM), compact disc ROM (CD-ROM), magnetic tape, floppy disk, and optical data storage device.
[0208] Based on the above embodiments, this disclosure also provides a three-dimensional measurement system based on color stripe coded structured light. This system can use any of the above-described color projection modules and decoding methods to achieve three-dimensional measurement of the object being measured. Therefore, it also has the beneficial effects of any of the above embodiments, which can be understood with reference to the above text, and will not be repeated here.
[0209] For example, Figure 5 This is a schematic diagram of the structure of a three-dimensional measurement system according to an embodiment of the present disclosure. Figure 6 This is a schematic diagram of another three-dimensional measurement system according to an embodiment of the present disclosure. (Refer to...) Figure 5 or Figure 6 The system includes a color projection module 601 and a camera module 602 positioned at a preset angle. The color projection module 601 uses any of the aforementioned color projection modules to project a color stripe pattern onto the surface of the object under test 600. The camera module 602 is used to acquire the stripe pattern modulated by the surface of the object under test 600. The stripe pattern is formed based on a single frame of color stripe pattern projected onto the surface of the object under test. In the stripe pattern, there is no overlapping area between the stripes of each cycle.
[0210] When the camera module acquires color stripes, due to depth-of-field limitations, stripes with the same encoding value will only appear in non-overlapping image areas across different periods. Based on this, the period m of each stripe can be determined using its pixel coordinate x and encoding value p. i In other words, the structure of the 3D measuring device determines the depth of field. When the object being measured is within the depth of field of the 3D measuring device, the fringe pattern projected by the projection module is modulated by the object and acquired by the camera module. The fringes of each period in the fringe pattern will only be imaged in the corresponding imaging area of the camera module, thus determining the image range of each period of fringes. The mapping relationship between the fringe pattern projected by the projection module and the fringe pattern acquired by the camera module is determined by the following factors: the depth of field and magnification of the projection module, the depth of field and magnification of the camera module, and the angle between the optical axis of the projection module and the optical axis of the camera module. The following section combines... Figure 7 This example illustrates the relationship between the preset angle (the angle between the optical axis of the projection module and the optical axis of the camera module), the depth of field, and the number of cycles. For example, Figure 7 This is a schematic diagram illustrating the parameter correlation principle of a three-dimensional measurement system according to an embodiment of this disclosure. (Refer to...) Figure 7In this context, 6021 represents the camera lens, the preset angle between the color projection module 601 and the camera module 602 is α, △L1 and △L2 represent the foreground depth of field and the background depth of field, respectively, and their sum is the depth of field; the range of movement of the fixed projection light on the camera image corresponding to this depth of field is (a+b) / v, that is, the single-cycle range (a+b) / v=(△L1+△L2)×tanα÷v; at most one cycle unit is set within this single-cycle range to ensure that the stripes between each cycle do not overlap; where v represents the scaling factor, which is generally the camera magnification and can be set based on the system structure, and is not limited here.
[0211] For example, the color projection module 601 and the camera module 602 may be integrated into the same scanner, such as in the same intraoral scanner; or they may be set separately, which is not limited in this embodiment.
[0212] For example, the encoding method may be executed locally in the color projection module 601 or on a remote server; the decoding method may be executed locally in the camera module 602, or in an electronic device (e.g., a computer), or on a remote server, and this disclosure does not limit the specific implementation of the method.
[0213] In some embodiments, the system may further include a data processing module, which receives the stripe pattern and executes any of the above-described decoding methods to achieve the scanning process of the object under test. The data processing module may be a built-in functional module in an electronic device, such as the functional modules in any of the above-described decoding devices.
[0214] In some embodiments, the color projection module 601 is implemented using digital light processing (DLP), liquid crystal on silicon (LCOS), or transmissive projection.
[0215] Among them, DLP technology does not require polarized light, resulting in high light utilization efficiency; and its small pixel pitch allows for almost seamless color stripe coding images with finer stripes. LCOS technology, based on single-crystal silicon, enables finer circuitry, making it easier to achieve high-resolution projection structures and simplifying product structure. Transmission projection technology, also known as perspective projection, uses a preset light source that passes through a preset pattern corresponding to the color stripe coding pattern on a light transmission section to generate target light rays that are projected onto the surface of the object being measured (600) in the form of color-coded stripes. This light coding method is relatively simple.
[0216] In other embodiments, other methods known to those skilled in the art may be used to enable the color projection module 601 to implement the above-described encoding method, and this disclosure does not limit this approach.
[0217] In some embodiments, camera module 602 includes a color image sensor, or camera module includes a beam splitting system and at least two image acquisition sensors.
[0218] For example, refer to Figure 5 The camera module 602 includes a color image sensor 620, meaning the camera module 602 can be a color camera. This color camera can directly capture multi-colored stripe patterns and textures, and decode them using the aforementioned decoding method.
[0219] For example, refer to Figure 6 The camera module 602 includes a beam splitting system 622 and at least two ( Figure 6 The image shows two image acquisition sensors (or cameras) 621; exemplarily, the beam splitting system 622 may include a beam splitter that can separate different spectral colors, which can be acquired by multiple cameras, each camera acquiring one or more colors.
[0220] For example, corresponding to the above three color encoding methods, one implementation of the camera module 602 is as follows: three image acquisition sensors are all set to be black and white image acquisition sensors, each of which acquires one color; or two black and white image acquisition sensors (i.e., black and white cameras) and one color image acquisition sensor (i.e., color camera) are set, the two black and white cameras acquire two of the three colors respectively, such as blue light and green light, and the color camera acquires the third color, such as red light and a three-channel texture map.
[0221] In other embodiments, the camera module 602 may be implemented in other ways, and this disclosure does not limit this approach.
[0222] Based on the above, the three-dimensional measurement system based on color stripe coded structured light mainly consists of a color projection module 601 and a camera module 602; wherein, the color projection module 601 and the camera module 602 form a certain angle; the color projection module 601 is used to project a color-coded stripe pattern, and the camera module 602 is used to acquire the stripe pattern modulated on the surface of the object under test 600. The color projection module 601 may be implemented using, but is not limited to, DLP, LCOS, or transmission projection methods. The camera module 602 may be implemented using, but is not limited to, one color image sensor, two image sensors plus a beam splitter system, or three image sensors plus a beam splitter system.
[0223] Therefore, based on the structural design, encoding method, and decoding method of the aforementioned three-dimensional measurement system, a simple, efficient, stable, and low-cost color stripe coded structured light three-dimensional measurement method is realized, which can be used for rapid and high-precision measurement of small, complex objects. Specifically, the embodiments of this disclosure greatly reduce the number of stripe colors used by using periodically repeating color stripe coded structured light technology, thereby reducing the number of spectra, simplifying the color stripe projection structure, and lowering hardware costs; and reducing the number of stripes used for decoding, improving the stability and efficiency of decoding, resulting in high solvability and low error rate; based on a smaller number of stripe colors and a smaller decoding width, higher resolution is achieved by utilizing periodic repetition encoding, making the three-dimensional measurement system structure simpler and the scanning efficiency higher.
[0224] It should be noted that, in this document, relational terms such as "first" and "second" are used merely to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.
[0225] The above description is merely a specific embodiment of this disclosure, enabling those skilled in the art to understand or implement it. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of this disclosure. Therefore, this disclosure is not to be limited to the embodiments described herein, but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.
Claims
1. A projection module for projecting a colored stripe pattern onto the surface of a measured object, characterized in that, The single frame of the colored stripe pattern includes m A basic stripe sequence that repeats periodically; among which, m It is a positive integer; The basic stripe sequence includes k Stripes of various colors, and arbitrarily continuous. n Composed of stripes n Each stripe sequence is unique; the total number of stripes in the basic stripe sequence l satisfy l≤l 0, l 0= k n , k and n All are integers equal to or greater than 2; The projection module determines the three-dimensional point coordinates of the measured object through the following steps: determining the pixel coordinates of the center of each stripe based on the stripe pattern on the surface of the measured object; determining the number of each stripe based on the pixel coordinates and the corresponding color; and performing three-dimensional reconstruction of each stripe based on the number of each stripe to determine the three-dimensional point coordinates of the measured object.
2. The projection module according to claim 1, characterized in that, The basic stripe sequence is based on the de Bruin sequence arrangement.
3. The projection module according to claim 1, characterized in that, In two adjacent periods, at least some of the stripe spacing is different.
4. The projection module according to claim 1, characterized in that, Within the same period, at least some of the stripe spacings are different.
5. The projection module according to claim 1, characterized in that, k The value of is 3, and / or the value of n is 3.
6. The projection module according to claim 5, characterized in that, The three distinct colors are red, green, and blue.
7. A method for decoding color stripes, characterized in that, Decoding the stripe pattern projected by the projection module onto the surface of the object under test, as described in any one of claims 1-6, and acquired by the camera module, the decoding method includes: Acquire a stripe pattern on the surface of the object being tested; the stripe pattern is formed based on a single frame of the colored stripe pattern projected onto the surface of the object being tested; Based on the stripe pattern, determine the pixel coordinates of the center of each stripe; Based on the pixel coordinates and corresponding colors, the number of each stripe is determined; Based on the number of each stripe, three-dimensional reconstruction is performed on each stripe to determine the three-dimensional point coordinates of the measured object.
8. The decoding method according to claim 7, characterized in that, Based on the pixel coordinates and corresponding colors, the number of each stripe is determined, including: Based on the preset color code, the pixel coordinates and the corresponding colors, the color code corresponding to each stripe is determined; Regarding the first i Each stripe: Based on the color code of each stripe, determine the first stripe. i The continuous stripe n The continuous stripes n The color code is used as the first color code. i The encoded value of each stripe; i Less than or equal to l Positive integers; Based on the encoded value of each stripe, the number of each stripe in a single basic stripe sequence is determined; Obtain the preset pixel coordinate range for each cycle; Based on the preset pixel coordinate range and the pixel coordinates, the period of each stripe is determined; The number of each stripe in the colored stripe pattern is determined based on the number of each stripe in a single basic coding sequence and the period.
9. The decoding method according to claim 7, characterized in that, Also includes: Based on the continuity of the three-dimensional points, determine whether the decoding of the current stripe is misaligned; When decoding misalignment occurs, the corresponding 3D point coordinates are corrected and updated.
10. The decoding method according to claim 7, characterized in that, The three-dimensional reconstruction of each stripe based on its number includes: Based on the number, determine the corresponding light plane; Based on the light plane equation, the pixel coordinates of the center of the target stripe, and the preset parameters of the camera module, the three-dimensional point coordinates are reconstructed; or When the camera module adopts a binocular system, the corresponding stripe is determined based on the number of each stripe in the left and right camera images of the binocular system; Based on the corresponding stripes and the preset parameters of the camera module, the coordinates of the three-dimensional points are reconstructed.
11. A color stripe decoding device, characterized in that, For performing the decoding method according to any one of claims 7-10, the decoding apparatus comprises: A stripe pattern acquisition module is used to acquire the stripe pattern on the surface of the object being measured; the stripe pattern is formed based on a single frame of the colored stripe pattern projected onto the surface of the object being measured; A pixel coordinate determination module is used to determine the pixel coordinates of the center of each stripe based on the stripe pattern. The numbering determination module is used to determine the number of each stripe based on the pixel coordinates and the corresponding color; The 3D point coordinate determination module is used to perform 3D reconstruction of each stripe based on its number, and to determine the 3D point coordinates of the object under test.
12. The decoding device according to claim 11, characterized in that, The number determination module is specifically used for: Based on the preset color code, the pixel coordinates and the corresponding colors, the color code corresponding to each stripe is determined; Regarding the first i Each stripe: Based on the color code of each stripe, determine the first stripe. i The continuous stripe n The continuous stripes n The color code is used as the first color code. i The encoded value of each stripe; i Less than or equal to l Positive integers; Based on the encoded value of each stripe, the number of each stripe in a single basic stripe sequence is determined; Obtain the preset pixel coordinate range for each cycle; Based on the preset pixel coordinate range and the pixel coordinates, the period of each stripe is determined; The number of each stripe in the colored stripe pattern is determined based on the number of each stripe in a single basic coding sequence and the period.
13. A computer-readable storage medium, characterized in that, The storage medium stores a computer program that, when executed by a processor, causes the processor to implement the decoding method according to any one of claims 7-10.
14. An electronic device, characterized in that, include: processor; Memory, used to store executable instructions; The processor is configured to read the executable instructions from the memory and execute the executable instructions to implement the decoding method according to any one of claims 7-10.
15. A three-dimensional measurement system based on color stripe coded structured light, characterized in that, Includes a projection module and a camera module at a preset angle; The projection module is the projection module according to any one of claims 1-6, and the projection module is used to project a colored stripe pattern onto the surface of the object being measured; The camera module is used to acquire a stripe pattern modulated by the surface of the object under test. The stripe pattern is formed based on a single frame of the color stripe pattern projected onto the surface of the object under test. In the stripe pattern, there is no overlapping area between the stripes of each cycle.
16. The system according to claim 15, characterized in that, The projection module and the camera module are housed in the same intraoral scanner.
17. The system according to claim 15, characterized in that, It also includes a data processing module; The data processing module is used to receive the stripe pattern and execute the decoding method according to any one of claims 7-10.
18. The system according to claim 15, characterized in that, The projection module is implemented using DLP, LCOS, or perspective projection. The camera module includes a color image sensor, or The camera module includes a beam splitting system and at least two image acquisition sensors.
Citation Information
Patent Citations
Depth information measurement method based on single frame modulation template
CN106815864A
Method for using fringe encoding to measure shape of object
TWI532974B