This application claims the benefit of Japanese Patent Application No. 2016-068637, filed on Mar. 30, 2016, which is hereby incorporated by reference herein in its entirety.
The present invention relates to a technique to measure a three-dimensional shape of a measurement-target object.
Conventionally, as a method of measuring a three-dimensional shape of a measurement-target object in a high density, a stereo phase-shift method is known (e.g., T. Zaman, “Development of a Topographic Imaging Device”, Delft University of Technology, 2013). In the stereo phase-shift method, the phase of a pattern in a form of a stripe (hereafter, stripe pattern), having a luminance that changes periodically, is shifted a plurality of times, and then, the stripe pattern is projected onto a measurement-target object and images are captured from two different directions. Then, from the images captured from the two directions, the phase value of each pixel in each direction is calculated, and, from correspondence between the phase values in the two directions, the three-dimensional shape of the measurement-target object is calculated by using the principle of triangulation. By positively projecting a pattern and calculating the phase value, as described above, it is made possible to measure a three-dimensional shape with a high accuracy and in a high density, even in a case in which the color of a measurement-target object is uniform. Further, by capturing images from two different directions, it is made possible to measure a three-dimensional shape with a high accuracy, even in a case in which a projection device and an image capturing device have nonlinear output characteristics.
The prior art has such a problem, however, that, in a case in which the density range of a measurement-target object is wide, the contrast of a stripe pattern projected onto a dark portion of the measurement-target object decreases, and the projected stripe pattern is embedded in noise of the image capturing device, and, therefore, estimation of the phase value becomes difficult. It is possible to reduce the influence of noise of the image capturing device by capturing a plurality of images by changing the exposure condition of the image capturing device, and by performing High Dynamic Range (HDR) combination of the obtained images, but, in this case, the number of captured images increases and the image capturing time lengthens. In particular, with the stereo phase-shift method of the prior art, it is necessary to project a plurality of patterns called a gray code for specifying the period of the phase, in addition to the stripe patterns with changed phases. Due to the product of the number of gray codes to be projected and the number of exposure conditions of the HDR combination, the number of captured images increases. Further, in a case in which the measurement-target object is a cultural property, such as an oil painting, it is necessary to alleviate damage to the cultural property by reducing the number of captured images to reduce the amount of light exposed to the cultural property.
Consequently, an object of the present invention is to provide a three-dimensional shape measuring apparatus and a three-dimensional shape measuring method capable of measuring a three-dimensional shape of a measurement-target object having a wide density range with a high accuracy and with a small number of captured images.
According to one aspect, the present invention provides a three-dimensional shape measuring apparatus including a projection unit configured to project a stripe pattern having a luminance that changes periodically, and a reference position pattern indicating a position of at least one period, of a plurality of periods of the stripe pattern, as a reference position, onto a measurement-target object, an image capturing unit configured to capture images of the measurement-target object from a plurality of directions, a control unit configured to control the projection unit and the image capturing unit, to acquire a captured image of the stripe pattern by performing control so that the image capturing unit captures images of the measurement-target object from the plurality of directions under a plurality of exposure conditions at a time at which the stripe pattern is projected, and to acquire a captured image of the reference position pattern by performing control so that the image capturing unit captures images of the measurement-target object from the plurality of directions under one exposure condition at a time at which the reference position pattern is projected, and a shape calculation unit configured to calculate a three-dimensional shape of the measurement-target object based on a captured image of the stripe pattern and a captured image of the reference position pattern.
Further features of the present invention will become apparent from the following description of exemplary embodiments with reference to the attached drawings.
In the following, embodiments of the present invention are explained with reference to the drawings. The following embodiments are not intended to limit the present invention and all the combinations of the features explained in the present embodiments are not necessarily indispensable to solve the problem of the present invention. Explanation is given by attaching the same symbol to the same configuration.
In the present embodiment, a three-dimensional shape measuring apparatus that acquires roughness shape information and color information on a surface by taking an object substantially in a form of a plane having roughness of several mm to several tens μm on the surface, such as an oil painting, as a measurement-target object.
Three-Dimensional Shape Measuring Apparatus
Image capturing devices 104 and 105 are each a device to capture an image of the measurement-target object 101 onto which a two-dimensional pattern is projected, and, for example, an image capturing device, such as a Digital Single Lens Reflex (DSLR) camera. As the image capturing devices 104 and 105, it is possible to use, for example, a combination of a DSLR camera having an 8,688 pixels×5,792 pixels complementary metal oxide semiconductor (CMOS) area sensor and a macro lens with a focal length of 100 mm, but the image capturing devices 104 and 105 are not limited to this configuration. It may also be possible to use a tilt lens, or the like, so that the surface of the measurement-target object 101 comes in focus on the entire surface of a measurement range 107. In the present embodiment, it is assumed that the image capturing devices 104 and 105 have photoelectric conversion characteristics that obtain a linear signal value for the luminance on the measurement-target object 101 and an image to be recorded has color information on three channels of red, green, and blue (RGB) for each pixel and each channel is quantized with 16 bits.
A control device 106 is a device to control the projection device 103, the image capturing device 104, and the image capturing device 105, and to perform a series of control processes to calculate a three-dimensional shape of the measurement-target object 101. In the present embodiment, the control device 106 is described as a personal computer (PC), including a central processing unit (CPU) and including main storage devices, such as a random access memory (RAM), and auxiliary storage devices, such as a hard disk (HD) and a flash memory. The control device 106 is not limited, however, to a PC, and may be a microcomputer, or the like, incorporated as part of a three-dimensional shape measuring apparatus. The CPU of the control device 106 executes programs stored in the HD, or the like, by using the RAM as a work memory, and controls the entire operation of the three-dimensional shape measuring apparatus. The programs executed by the CPU include programs for shape measuring processing, or the like, to be described later.
The projection device 103, the image capturing device 104, and the image capturing device 105 are connected with the control device 106, respectively, via an interface, such as a universal serial bus (USB) interface, not shown schematically. As shown in
An image acquisition control unit 203 is configured to control the projection device 103 and the image capturing devices 104 and 105 so as to acquire a captured image that is used for shape calculation by a shape calculation unit 205, to be described later, and includes an image capturing control unit 2031 and a projection control unit 2032. The image capturing control unit 2031 is configured to control the image capturing device 104 and the image capturing device 105, and, for example, changes the image capturing condition of each image capturing device, gives instructions to perform image capturing, receives a captured image from each image capturing device, and so on. The projection control unit 2032 is configured to control the projection device 103, and, for example, transmits a pattern to be projected (hereafter, called a projected pattern) to the projection device 103, gives instructions to start or to end projection, and so on.
A user interface (UI) management unit 204 is configured to perform processing, such as processing to manage information input by a user via the input device 201 and processing to cause the display device 202 to display three-dimensional shape measurement results, and includes an input control unit 2041 and a display control unit 2042. The input control unit 2041 is configured to control the input device 201, and the display control unit 2042 is configured to control the display device 202. The shape calculation unit 205 calculates a three-dimensional shape of the measurement-target object 101 based on a captured image acquired by the image acquisition control unit 203. A color calculation unit 206 calculates color information corresponding to a three-dimensional shape calculated by the shape calculation unit 205. Details of the color calculation unit 206 will be described later.
Three-Dimensional Shape Measuring Processing
At step S302, the image acquisition control unit 203 acquires a captured image of a projected pattern by causing the image capturing devices 104 and 105 to capture an image of the measurement-target object 101 at the time at which the projection device 103 projects the projected pattern onto the measurement-target object 101. Details of the image acquisition step S302 will be described later. On the completion of the captured image acquisition processing at step S302, the processing advances to a shape calculation step S303. At step S303, the shape calculation unit 205 calculates three-dimensional shape information on the measurement-target object 101 based on the captured image acquired at S302. The three-dimensional shape information calculated in the present embodiment is point group information in which each of X, Y, and Z coordinate values with the center of the area sensor of the image capturing device 104 as the origin is recorded by 32-bit floating point numbers in units of mm and has coordinate values in the same number as the number of pixels of the area sensor. Here, the X-axis, the Y-axis, and the Z-axis are axes of a Cartesian coordinate system, and the X-axis and the Y-axis make up a plane including the area sensor plane of the image capturing device 104 and the Z-axis is defined in the direction perpendicular to the X-axis and the Y-axis.
At step S304, the color calculation unit 206 calculates color information on RGB corresponding to each point of the point group information calculated at step S303. Specifically, the processing at this step is processing to record color information on each pixel of an image captured by the image capturing device 104 at the time at which a color acquisition pattern, to be described later, is projected onto the measurement-target object 101 in association with the point group information calculated at step S303. In the present embodiment, the coordinate values of each point included in the point group information are calculated so as to correspond to each pixel of the image captured by the image capturing device 104 in a one-to-one manner. Because of this, in the processing at step S304, the XYZ coordinates are searched for from the point group information for each pixel and information of 144 bits in total of XYZRGB obtained by adding color information of 48 bits in total, i.e., 16 bits for each of RGB, to the coordinate values searched for is recorded. Finally, at step S305, the UI management unit 204 displays the point group information to which the color information is added on the display device 202 and terminates the processing. Specifically, at this step, processing to display a list of each numerical value of the point group information to which the color information is added on the display device 202 or processing to display a projection viewed in an arbitrary direction by plotting the XYZ coordinates in a color corresponding to the color information on a three-dimensional space is performed. The processing at step S305 is not limited to this processing, and it may also be possible to make up processing so as to directly record the point group information to which the color information is added in the HD or the flash memory, not shown schematically, without producing a display on the display device 202.
Projected Pattern
Here, (j, i) is a set of two-dimensional coordinates indicating the position of a pixel, and j indicates the position of the pixel in the horizontal direction and i indicates the position of the pixel in the vertical direction. I0 (j, i), I1 (j, i), and I2 (j, i) are pixel values, respectively, of the positions (j, i) of the stripe patterns shown in
In the present embodiment, the phase is calculated for each image capturing device based on images captured by the image capturing device 104 and the image capturing device 105 at the time at which the stripe patterns in
Specifically, first, from each of the images captured by the image capturing devices 104 and 105 at the time at which the reference position pattern is projected, the reference position (position of the step edge portion) is extracted. Then, a period identification image representing a period identification number of each pixel position of the phase image is generated so that the period identification number of the phase image corresponding to the extracted position is the same value (common predetermined number) between the image capturing device 104 and the image capturing device 105. Further, the phase unwrapping processing of the phase image is performed using the generated period identification image. Due to this, it is made possible to generate an unwrapped phase image for which matching of the phase image has been performed between the image capturing devices. The present embodiment employs a configuration in which both the captured image of the reference position pattern and the phase image are used at the time of generating the period identification image for the phase image, and, therefore, it is made possible to perform matching between the phase images of different image capturing devices by making use of one reference position pattern.
Here, it is assumed that Φ(j, i) takes a value between 0 and 2π.
The reference position pattern is created so that the step edge portion is located in a specific period of a plurality of periods in
Further, the position of the step edge portion in
There is a possibility that the position (extraction position) of the step edge portion extracted from the captured image of the reference position pattern deviates due to the influence of noise, or the like, of the image capturing device. For example, in a case in which the amount of exposure for image capturing is overexposure at the time at which the reference position pattern is projected, there is a possibility that the bright portion of an image to be captured extends from the original position and the extraction position of the step edge portion deviates. Even in a case in which the extraction position deviates as described above, on a condition that the extraction position is located within the same period, the processing results at the period identification image generation step S1117, to be described later, are not changed. Consequently, by creating the reference position pattern so that the step edge portion is located in the middle of the period, processing robust against the above-described deviation of the extraction position is obtained. On the contrary, in a case in which the step edge portion is located originally in the vicinity of the period switch portion at which the phase is 0 or 2π, there is a possibility that a different period identification image is generated for the deviation of the extraction position such as this, and, therefore, the processing becomes unstable. That is, in the present embodiment, by providing the step edge portion of the reference position pattern at a position other than the period switch portion at which the phase becomes 0 or 2π, it is possible to generate a period identification image with a high accuracy even in a case in which the influence of noise, or the like, of the image capturing device is strong.
Exposure Condition
In a case in which the measurement-target object 101 is a dark object having a high optical density, the contrast of a projected stripe pattern becomes low and it becomes difficult to distinguish the projected stripe pattern from noise applied in the image capturing devices 104 and 105, and, therefore, the accuracy of the calculation of the phase based on the image to be captured is reduced.
Consequently, in the present embodiment, for each of the stripe patterns in
The exposure conditions as shown in
As the exposure condition for image capturing of the stripe pattern, first, the same condition as the exposure condition for image capturing of the color acquisition pattern is set to the exposure setting number 1. Next, the exposure condition obtained by setting the Exposure Value (EV) to −3 step in the exposure setting number 1 is set to the exposure setting number 0 and similarly, the exposure condition obtained by setting the EV to +3 step in the exposure setting number 1 is set to the exposure setting number 2. It is desirable to set the exposure condition by fixing the f-stop and changing the shutter speed because changing the f-stop causes a geometric distortion to occur. There is a possibility, however, that the projection device 103 and the shutter speed interfere with each other and a flicker is caused. Consequently, in a case in which the frame rate of the projection device 103 is, for example, 1/30 sec, it is desirable to set the shutter speed to a speed longer than a reference value, which is 1/15 sec longer than 1/30 sec. That is, the exposure conditions are set by, first, setting the same f-stop and changing the shutter speed. Then, in a case in which the shutter speed is shorter than the reference value, it is desirable to set the shutter speed so as to become longer than the reference value by adjusting the International Organization for Standardization (ISO) speed.
The above-described exposure setting is exemplary and the exposure setting is not limited to this. It is desirable for the conditions of the exposure setting number 0 to the exposure setting number 2 to be determined appropriately in accordance with the density range of the measurement-target object 101 and the number of exposure conditions that are set at the time of capturing an image of the stripe pattern is not limited to three and may be two or five. Further, the exposure condition for image capturing of the reference position pattern may be the same as the exposure condition for image capturing of the color acquisition pattern and any exposure condition may be set as long as the position of the step edge portion described previously can be extracted from the captured image.
Details of Image Acquisition Step
Next, at step S803, the image acquisition control unit 203 determines whether the variable n is smaller than a number Nn of stripe patterns. In the case where it is determined that the variable n is smaller than the number Nn of stripe patterns, the processing advances to step S804 and, in the other cases, the processing advances to step S812. In the present embodiment, as the stripe patterns, the three patterns shown in
At step S807, the image acquisition control unit 203 reads the exposure setting number corresponding to the captured image number indicated by the variable cnt from
By repeating the processing at steps S803 to S811 as described above, image capturing is performed the number of times corresponding to the number of exposure settings for all the stripe patterns. In the present embodiment, the number Nn of stripe patterns is three and the number Nm of exposure settings is three, and, therefore, the image capturing step S808 is performed three×three times, i.e., nine times.
Next, in the case where the processing advances to step S812 in accordance with the determination at step S803, the image acquisition control unit 203 projects the reference position pattern in
Details of Shape Calculation Unit
An HDR combination unit 902 performs HDR combination of images captured under a plurality of different exposure conditions for each stripe pattern and generates one combined image of higher quality than that of the captured images. As HDR combination processing, a variety of methods are known already. For example, in a case in which an image 1 captured under a condition that the amount of exposure is small and an image 2 captured under a condition that the amount of exposure is large are combined, first, each coefficient by which each of RGB values of the image 2 is multiplied is determined so that average RGB values in a predetermined area become equal. Then, the RGB values after combination are obtained by weighted-averaging the RGB values of the image 2, which are multiplied by the determined coefficients, and the RGB values of the image 1 for each of the RGB channels. At this time, by performing the weighted-averaging so that the smaller the value, the heavier the weight of the image 2 for each of the RGB channels, it is possible to acquire an image after combination in which noise at a dark portion of the image 1 has been reduced.
In the present embodiment, first, the image captured by the image capturing device 104 with the captured image number 0 shown in
A phase image generation unit 903 generates a phase image by calculating the phase of each pixel in accordance with expression (4) from the three combined images of the image capturing device 104 of the six combined images in all generated by the HDR combination unit 902. At this time, it may also be possible to calculate the phase by using only the G channel of the combined image or to calculate the phase by using luminance information obtained by adding each channel of R, G, and B with a predetermined weight. Further, the phase image is image data in which each channel of each pixel is represented by a 32-bit floating point number that takes a value between 0 to 2π, but the phase image is not limited to this. Similarly, the phase image generation unit 903 generates a phase image by calculating the phase of each pixel in accordance with expression (4) also for the three images captured by the image capturing device 105. The phase image generated for each image capturing device is stored in a storage medium, such as the RAM, not shown schematically.
A binarization processing unit 904 generates a binarized image of the reference position pattern by performing binarization processing of the image (captured image of the reference position pattern) captured by the image capturing device 104 and the image captured by the image capturing device 105 with the captured image number 9 in
Further, it is also possible to perform binarization processing with a higher accuracy by using an image whose entire surface is white obtained by projecting a projected pattern having an entire surface that is uniformly white and capturing the image of the pattern under the same exposure condition and an image having an entire surface that is black obtained by projecting a projected pattern having an entire surface that is uniformly black and capturing the image of the pattern under the same exposure condition. That is, by comparing the captured image of the reference position pattern with the image having an entire surface that is white and the image having an entire surface that is black, the binarization processing of the captured image of the reference position pattern is performed. In this case, by calculating a difference 1 from the luminance information on the image having an entire surface that is black and a difference 2 from the luminance information on the image having an entire surface that is white, respectively, for each pixel, it is possible to determine the pixel value so as to be 0 in a case in which the absolute value of the difference 1 is less than the absolute value of the difference 2, and so as to be 255 in the other cases. The method of binarization processing is not limited only to the method described here. Here, the binarization processing unit 904 is shown as a processing unit separate from a period identification image generation unit 905, to be described later, but it may also be possible to design a configuration in which the binarization processing unit 904 is included in the period identification image generation unit 905.
The period identification image generation unit 905 generates a period identification image based on the phase images of the image capturing device 104 and the image capturing device 105 generated by the phase image generation unit 903 and the binarized images of the reference position pattern of the image capturing device 104 and the image capturing device 105 generated by the binarization processing unit 904. Although details of this processing will be described later, the period identification image is an image in which the number of the period of the phase is allocated in each pixel of the phase image and the period identification image is stored in the RAM, or the like, as, for example, an image in which each channel corresponding to each pixel of the phase image is represented by eight bits.
The period identification image is used in the phase unwrapping processing, to be described later. Further, the above-described predetermined number is common between the image capturing devices, and, therefore, by performing the phase unwrapping processing using the period identification images generated as described above, it is possible to generate an unwrapped phase image for which matching has been taken between the phase images of the image capturing devices. Due to this, the phase at a point on the measurement-target object 101 is the same between the unwrapped phase images generated by the image capturing device 104 and the image capturing device 105, respectively, and, therefore, a corresponding point search, to be described later, is enabled.
A phase unwrapping unit 906 generates an unwrapped phase image in which repetition does not take place for each period based on the period identification image and the phase image. This processing can be represented by expression (5) below in a case in which the pixel value of the unwrapped phase image is taken to be ΦDc (j, i), the pixel value of the period identification image is taken to be P (j, i), and the pixel value of the phase image is taken to be Φ (j, i).
Φc(j,i)=Φ(j,i)+2πP(j,i) (5)
The unwrapped phase image is image data in which each channel of each pixel is represented by a 32-bit floating point number, and generated for each of the image capturing device 104 and the image capturing device 105 and stored in a storage medium, such as the RAM, respectively.
A corresponding point search unit 907 calculates the position of a pixel of the unwrapped phase image of the image capturing device 105, at which the phase value is the same, for each pixel of the unwrapped phase image of the image capturing device 104. Specifically, first, a 3×3 fundamental matrix F is calculated in advance from a relationship in the attitude and position between the image capturing device 104 and the image capturing device 105 and an epi-polar line is calculated from a relationship of expression (6) below.
Here, (u, v) is two-dimensional coordinates indicating the position of a pixel of the unwrapped phase image of the image capturing device 104. Further, (u′, v′) is two-dimensional coordinates indicating the position of a pixel of the unwrapped phase image of the image capturing device 105. The corresponding point search unit 907 uniquely determines an equation (equation of a straight line) representing an epi-polar line that passes through the coordinates (u′, v′) for arbitrary coordinates (u, v) by expression (6). Then, the corresponding point search unit 907 searches for a pixel having a pixel value equal to the pixel value at the coordinates (u, v) in the unwrapped phase image of the image capturing device 104 in the unwrapped phase image of the image capturing device 105 along the above-described straight line represented by the equation. The corresponding point search unit 907 stores the coordinates (u′, v′) of the position searched for in the RAM, or the like. This corresponding point search processing is performed for all the pixels in the unwrapped phase image of the image capturing device 104.
The corresponding point search processing performed by the corresponding point search unit 907 is not limited to the above-described processing. For example, it may also be possible to calculate similarity of a pixel in a predetermined area by a block matching method or the like and to record the coordinates (u′, v′) in the unwrapped phase image of the image capturing device 105, at which the similarity to the coordinates (u, v) in the unwrapped phase image of the image capturing device 104 becomes the maximum.
A triangulation unit 908 calculates three-dimensional coordinates (X, Y, Z) of a measurement point on the measurement-target object 101 from the coordinates (u, v) in the unwrapped phase image of the image capturing device 104 and the coordinates (u′, v′) in the unwrapped phase image of the image capturing device 105, which correspond to the coordinates (u, v). Specifically, 3×4 projection matrices P and P′ represented by expressions (7) and (8) below are calculated in advance from the focal length, position, and attitude of the image capturing device 104 and the image capturing device 105 and simultaneous equations including expression (7) and expression (8) are solved for (X, Y, Z).
Solving the simultaneous equations is equivalent to solving expression (9) below in a case in which it is assumed that the element in the mth row and nth column of the matrix P is represented by Pmn and the element in the mth row and nth column of the matrix P′ is represented by P′mn.
The triangulation unit 908 sequentially calculates the three-dimensional coordinates (X, Y, Z) for all the pixels of the unwrapped phase image of the image capturing device 104 in accordance with expression (9) and generates point group information in which the three-dimensional coordinates (X, Y, Z) are recorded by 32-bit floating point numbers for each of the three channels of XYZ and the point group information is stored in a storage medium, such as the HD.
Details of Shape Calculation Step
Next, at step S1102, the image read unit 901 determines whether the variable v is less than a number Nv of image capturing devices. In the present embodiment, the number Nv of image capturing devices=2. In a case in which it is determined that the variable v is less than the number Nv of image capturing devices, the processing advances to S1103 and, in the other cases, the processing advances to step S1120. At step S1103, the image read unit 901 selects the with image capturing device. In accordance with the selection processing at this step, instructions to read which of the images captured by the image capturing device 104 and the image capturing device 105 in the subsequent processing are given. That is, in a case in which v=0, the image captured by the image capturing device 104 is read in the subsequent processing and, in a case in which v=1, the image captured by the image capturing device 105 is read in the subsequent processing.
At step S1104, the image read unit 901 initializes the variable cnt indicating the captured image number by 0. At step S1105, the image read unit 901 initializes the variable n indicating the projected pattern number by 0. Next, at step S1106, the image read unit 901 determines whether the variable n is less than the number Nn of stripe patterns. In the present embodiment, the number Nn of stripe patterns is three as described already. In a case in which it is determined that the variable n is less than the number Nn of stripe patterns, the processing advances to step S1107 and, in the other cases, the processing advances to step S1114. At step S1107, the image read unit 901 initializes the variable m indicating the exposure setting number by 0.
At step S1108, the image read unit 901 determines whether the variable m is less than the number Nm of exposure settings. In a case in which it is determined that the variable m is less than the number Nm of exposure settings, the processing advances to step S1109 and, in the other cases, the processing advances to step S1112. At step S1109, the image read unit 901 reads the image captured by the image capturing device specified by the variable v with the captured image number indicated by the variable cnt. Then, at steps S1110 and S1111, the image read unit 901 adds 1 to the variable cnt indicating the captured image number and to the variable m indicting the exposure setting number, respectively, and returns the processing to step S1108.
After the processing at steps S1109 to S1111 is repeated the number of times corresponding to the number Nm of exposure settings, it is determined that the variable m has reached the number Nm of exposure settings at step S1108 and the processing advances to step S1112. At step S1112, the HDR combination unit 902 performs HDR combination of the Nm captured images read in the loop of steps S1108 to S1111 and generates one combined image. Then, at step S1113, the image read unit 901 adds 1 to the variable n and returns the processing to step S1106. A case in which the processing advances to step S1114 in accordance with the results of the determination at step S1106 means that the image (combined image) after the HDR combination has been generated for all the stripe patterns at step S1112. At step S1114, the phase image generation unit 903 generates the phase image by using the combined images.
Next, at step S1115, the image read unit 901 reads the image captured at the time at which the reference position pattern is projected, which corresponds to the captured image number 9 in
After this, at step S1118, the phase unwrapping unit 906 generates an unwrapped phase image based on the period identification image generated at step S1117 and the phase image generated at step S1114. That is, the phase unwrapping unit 906 generates an unwrapped phase image by calculating the phase value after unwrapping of each pixel in accordance with expression (5). Then, at step S1119, the image read unit 901 adds 1 to the variable v and returns the processing to step S1102. After the unwrapped phase image is generated for all the image capturing devices by the processing at steps S1103 to S1119, it is determined that the variable v has reached the number Nv of image capturing devices at step S1120 and the processing advances to step S1120. Then, at step S1120, the corresponding point search unit 907 searches for a corresponding point at which the phase value is the same between the unwrapped phase images of the different image capturing devices. At step S1121, the triangulation unit 908 calculates a three-dimensional shape of the measurement-target object by using the principle of triangulation based on the coordinates of the corresponding point.
Details of Period Identification Image Generation Step
In the present embodiment, the period identification image is generated based on the binarized image of the reference position pattern and the phase image.
The processing at steps S1201 to S1216 is processing (number initialization processing) to identify and to count the period switch portion for each line for the phase image and to initialize the pixel value (period identification number) of the period identification image by the count value. First, at step S1201, the period identification image generation unit 905 initializes a variable i indicating the position in the height direction of a pixel by 0. At step S1202, the period identification image generation unit 905 determines whether or not the number initialization processing has been completed for all the lines of the phase image by determining whether or not the variable i is less than a height H of the image. In a case in which the variable i is less than the height H, the processing advances to step S1203 so that the number initialization processing of the ith line is performed and, in the other cases, it is determined that the number initialization processing of all the lines has been completed and the processing advances to step S1217. In the present embodiment, from the number of pixels of the area sensors of the image capturing devices 104 and 105, the height H of the image is 5,792.
At step S1203, the period identification image generation unit 905 initializes a variable period_counter to count the period switch portion in the ith line of the phase image by 0 and initializes a variable j indicating the position in the width direction of a pixel by Nt. Here, Nt is a parameter to specify the position range of a pixel that is referred to at the time of determining the period switch portion from the phase image, and is a natural number. That is, in order to determine whether or not the pixel at a position (j, i) of the phase image is the period switch portion, the pixels at a position (j −Nt, i) to a position (j+Nt −1, i) are referred to.
At step S1204, the period identification image generation unit 905 determines whether or not the processing of one line of the image has been completed by determining whether or not the variable j is less than an image width W −Nt. In a case in which the variable j is less than the image width W −Nt, it is determined that the processing of one line has not been completed and the processing advances to step S1205. In the other cases, it is determined that the processing of one line has been completed and the processing advances to step S1216. In the present embodiment, from the number of pixels of the area sensors of the image capturing devices 104 and 105, the image width W is 8,688.
At step S1205, the period identification image generation unit 905 calculates a difference Φ(j −1, i)−Φ(j, i) between the value of the adjacent pixel and the value of the pixel of interest in a phase image Φ generated at step S1114 and determines whether or not the difference is greater than or equal to a threshold value Th set in advance. As shown in
In the processing at steps S1207 to S1215, the peripheral pixels of the pixel, which is a candidate of the period switch portion, are taken into consideration, and whether or not performing period switching at the pixel is appropriate is determined. Specifically, at steps S1207, the period identification image generation unit 905 initializes a variable t to refer to the peripheral pixels by −Nt. Then, at step S1208, the period identification image generation unit 905 determines whether or not reference to the peripheral pixels has been completed by determining whether or not the variable t is less than Nt. In a case in which the variable t is less than Nt, it is determined that the reference has not been completed and the processing advances to step S1209 and, in the other cases, it is determined that the reference has been completed and the processing advances to step S1213. At step S1209, the value of (I) (j+t, i) is saved sequentially in buffer memories BUF1 and BUF2 each having a size of 2×Nt. At steps S1210 and S1211, in a case in which t is greater than or equal to 0, 2π is added to the value of the BUF2. Then, at step S1212, 1 is added to the variable t and the processing is returned to step S1208.
By the loop of steps S1208 to S1212, the phase values of the peripheral pixels of the pixel of interest before phase unwrapping are stored in the BUF1 and values corresponding to the phase values of the peripheral pixels of the pixel of interest after phase unwrapping are stored in the BUF2. Next, at step S1213, the variances of the data recorded in the BUF1 and BUF2 are calculated, respectively. In a case in which the pixel of interest is appropriate as the period switch portion, the variance of the BUF2 is less than the variance of the BUF1 and, in the other cases, the variance of the BUF1 is less than the variance of the BUF2. Consequently, at step S1214, whether or not the variance of the BUF2 is less than the variance of the BUF1 is determined and, in a case in which it is determined that the variance of the BUF2 is less than the variance of the BUF1, the pixel of interest is taken to be the period switch portion and the processing is advanced to step S1215. At step S1215, 1 is added to the variable period_counter to count the period switch portion and the processing is advanced to step S1206. At step S1206, as described previously, the value of the variable period_counter is recorded in the pixel value ID (j, i) of the period identification image and 1 is added to j and the processing is returned to step S1204.
As described above, by determining the appropriateness of the period switch portion, it is possible to generate a period identification image with a high accuracy even in a case in which the influence of noise, or the like, of the image capturing device is strong. Here, the appropriateness of the period switch portion is determined by the variance, but the invention is not limited to such a determination. For example, it may also be possible to use an error at the time of performing linear regression in place of the variance. On the completion of the number initialization processing of the ith line, the processing advances to step S1216. At step S1216, 1 is added to the variable i and the processing is returned to step S1202. On the completion of the number initialization processing for all the lines of the phase image, i.e., in a case in which the pixel value has been initialized in all the pixels of the period identification image ID, the processing is branched into step S1217 at S1202.
The processing at steps S1217 to S1228 is processing to extract the position of the step edge portion from the binarized image of the reference position pattern generated at step S1116 and to modify the pixel value of the period identification image so that the period identification number corresponding to the position becomes a predetermined number common between the image capturing devices. By the processing such as this, it is guaranteed that the phase value after phase unwrapping at a certain point on the measurement-target object 101 is the same between the different image capturing devices. First, at step S1217, the period identification image generation unit 905 initializes the variable i indicating the position in the height direction of a pixel by 0. Next, at step S1218, whether or not the variable i is less than the height H of the image is determined. In a case in which the variable i is less than the height H of the image, the processing advances to step S1219 so that the pixel value of the ith line of the period identification image is modified and, in the other cases, it is determined that the modification of the pixel value of all the lines of the period identification image has been completed and the processing ends.
At step S1219, the period identification image generation unit 905 initializes a variable tmp_id to store the period identification number before modification corresponding to the position of the step edge portion and the variable j indicating the position in the width direction of a pixel by 0, respectively. At step S1220, the period identification image generation unit 905 determines whether or not the processing of one line of the image has been completed by determining whether or not the variable j is less than the image width W−Nt. In a case in which the variable j is less than the image width W−Nt, it is determined that the processing of one line has not been completed and the processing is advanced to step S1221. In the other cases, it is determined that the processing of one line has been completed and the processing is advanced to step S1224.
At step S1221, the period identification image generation unit 905 determines whether or not the value of the adjacent pixel is different from the value of the pixel of interest in the binarized image generated at step S1116. In a case in which the value of the adjacent pixel is the same as that of the pixel of interest, it is determined that the pixel of interest is not the step edge portion and 1 is added to the variable j at S1222 and the processing is returned to S1220. In a case in which the value of the adjacent pixel is different from that of the pixel of interest, it is determined that the pixel of interest is the step edge portion and the pixel value ID (j, i) of the period identification image at this time is stored in the variable tmp_id at step S1223 and the processing is advanced to step S1224.
In the processing at steps S1224 to S1227, the value of each pixel of the ith line of the period identification image is modified. First, the variable j indicating the position in the width direction of a pixel is initialized again at step S1224 and whether or not the processing of one line has been completed is determined at step S1225. In a case in which it is determined that the processing of one line has been completed, the processing is advanced to step S1228 and the above-described processing is performed repeatedly for the next line by adding 1 to the variable i, and, in the other case, the processing is advanced to step S1226. At step S1226, the variable tmp_id is subtracted from the pixel value of the period identification image ID and 128 is added to the pixel value. By doing so, the pixel value of the period identification image ID at the step edge portion becomes 128. Then, at step S1227, 1 is added to the variable j and the processing is returned to step S1225. In the present embodiment, the pixel value of the period identification image ID at the step edge portion is caused to become a predetermined number of 128, but the predetermined number is not limited to 128 and may be any value.
As described above, with the configuration of the three-dimensional shape measuring apparatus of the present embodiment, it is made possible to measure a three-dimensional shape of a target object whose density range is wide with a high accuracy and with a small number of captured images.
In the first embodiment, the three-dimensional shape measuring method is explained, which uses the image having one step edge shown in
As shown in
In the present embodiment, at the period identification image generation step, it is possible to perform the same processing as the detailed processing at step S1117 explained in
By performing both the two pieces of processing described above, two kinds of period identification image are generated: the period identification image in which the period identification number of the phase image located at the edge portion of the portion 1302 is 128 and the period identification image in which the period identification number of the phase image located at the edge portion of the portion 1301 is 126. By doing so, it is made possible to perform processing that is more robust against an error in period identification image generation by, for example, producing an error display for a user by determining that the period identification images are not generated correctly in a case in which the two kinds of period identification image are compared and the results of the comparison indicate that the two kinds of period identification image are different. It may also be possible to employ a configuration in which the two kinds of period identification image are displayed on the display device 202, or the like, and a user is caused to make selection. The values 126 and 128 explained as the periods of the period identification images are merely exemplary and the values are not limited to those noted above.
Embodiments of the present invention can also be realized by a computer of a system or an apparatus that reads out and executes computer executable instructions (e.g., one or more programs) recorded on a storage medium (which may also be referred to more fully as a ‘non-transitory computer-readable storage medium’) to perform the functions of one or more of the above-described embodiments and/or that includes one or more circuits (e.g., an application specific integrated circuit (ASIC)) for performing the functions of one or more of the above-described embodiments, and by a method performed by the computer of the system or apparatus by, for example, reading out and executing the computer executable instructions from the storage medium to perform the functions of one or more of the above-described embodiments and/or controlling the one or more circuits to perform the functions of one or more of the above-described embodiments. The computer may comprise one or more processors (e.g., a central processing unit (CPU), or a micro processing unit (MPU)) and may include a network of separate computers or separate processors to read out and to execute the computer executable instructions. The computer executable instructions may be provided to the computer, for example, from a network or the storage medium. The storage medium may include, for example, one or more of a hard disk, a random-access memory (RAM), a read only memory (ROM), a storage of distributed computing systems, an optical disk (such as a compact disc (CD), a digital versatile disc (DVD), or a Blu-ray Disc (BD)™), a flash memory device, a memory card, and the like.
By the present invention, even in a case in which a measurement-target object has a wide density range, it is made possible to measure its three-dimensional shape with a high accuracy and with a small number of captured images.
While the present invention has been described with reference to exemplary embodiments, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures and functions.
Number | Date | Country | Kind |
---|---|---|---|
2016-068637 | Mar 2016 | JP | national |
Number | Name | Date | Kind |
---|---|---|---|
20100195114 | Mitsumoto | Aug 2010 | A1 |
20140368835 | Tabata | Dec 2014 | A1 |
Entry |
---|
T. Zaman, “Development of a Topographic Imaging Device,” Delft University of Technology, 2013, pp. 1-143. |
Number | Date | Country | |
---|---|---|---|
20170287157 A1 | Oct 2017 | US |