WO2024106468A1 - 三次元再構成方法、及び三次元再構成システム - Google Patents

三次元再構成方法、及び三次元再構成システム Download PDF

Info

Publication number
WO2024106468A1
WO2024106468A1 PCT/JP2023/041096 JP2023041096W WO2024106468A1 WO 2024106468 A1 WO2024106468 A1 WO 2024106468A1 JP 2023041096 W JP2023041096 W JP 2023041096W WO 2024106468 A1 WO2024106468 A1 WO 2024106468A1
Authority
WO
WIPO (PCT)
Prior art keywords
pixel
camera
image
structured light
neural network
Prior art date
Application number
PCT/JP2023/041096
Other languages
English (en)
French (fr)
Inventor
淳雨 李
泰輔 橋本
叡一 松元
Original Assignee
株式会社Preferred Networks
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社Preferred Networks filed Critical 株式会社Preferred Networks
Publication of WO2024106468A1 publication Critical patent/WO2024106468A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/30Polynomial surface description
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis

Definitions

  • This disclosure relates to a three-dimensional reconstruction method and a three-dimensional reconstruction system.
  • a three-dimensional reconstruction method that generates a three-dimensional model of an object based on multiple images obtained by photographing the object from different directions using a camera.
  • Such a three-dimensional reconstruction method is used in 3DCG (3 Dimensional Computer Graphics), etc.
  • the present disclosure aims to provide a three-dimensional reconstruction method and a three-dimensional reconstruction system that can improve the reconstruction accuracy of an object.
  • a three-dimensional reconstruction method includes: acquiring images from at least a first viewpoint and a second viewpoint, and identifying, based on the projection pattern of the structured light, a pixel in the image from the first viewpoint and a pixel in the image from the second viewpoint that correspond to the same point on the surface of the actual object onto which the structured light is projected, as a first pixel and a second pixel, respectively; calculating, based on current parameters in an object shape neural network that reconstructs the three-dimensional shape of the object, a first coordinate corresponding to the first pixel and a second coordinate corresponding to the second pixel on the surface of the object reconstructed by the object shape neural network; and updating parameters of the object shape neural network using at least the first coordinate and the second coordinate.
  • the present disclosure provides a 3D reconstruction method and a 3D reconstruction system that can improve the reconstruction accuracy of an object.
  • FIG. 1 is a diagram illustrating an example of the overall configuration of a three-dimensional reconstruction system according to an embodiment.
  • FIG. 2 is a diagram illustrating an example of a functional configuration of a control device according to the first embodiment.
  • 3 is a diagram illustrating an example of a functional configuration of a model generating unit in the control device of FIG. 2 .
  • 1A and 1B are diagrams illustrating examples of structured light projection patterns.
  • 4A and 4B are diagrams showing example images captured by a first camera and a second camera.
  • 1 is a diagram of an example of a captured image of an object without structured light projected thereon;
  • FIG. 1 is a diagram illustrating an example of a three-dimensional scene.
  • FIG. 11A and 11B are diagrams illustrating examples of results of identifying corresponding pixels in a first image and a second image.
  • FIG. 2 is a diagram illustrating an example of a relationship between corresponding pixels and corresponding coordinates.
  • 3 is a flowchart of an example of processing by the control device of FIG. 2 .
  • 3 is a flowchart of an example of processing by a rendering unit of the control device of FIG. 2 .
  • 3 is a flowchart of an example of processing by a model output unit of the control device of FIG. 2 .
  • FIG. 11 is a diagram illustrating an example of a functional configuration of a control device according to a second embodiment.
  • 14 is a diagram illustrating an example of a functional configuration of a model generating unit in the control device of FIG. 13 .
  • FIG. 11 is a diagram illustrating an example of a first loss according to the second embodiment.
  • FIG. 11 is a diagram illustrating an example of a second loss according to the second embodiment.
  • 14 is a flowchart of an example of processing by the control device of FIG. 13 .
  • FIG. 2 is a block diagram of an example of a hardware configuration of a control device according to the embodiment.
  • Fig. 1 is a diagram showing an example of the overall configuration of the three-dimensional reconstruction system 100.
  • the X direction, Y direction, and Z direction are mutually perpendicular.
  • the Z direction is a normal direction of the mounting surface, and is typically a vertical direction.
  • the Z positive direction side is expressed as the upper side, and the Z negative direction side is expressed as the lower side.
  • the X direction and the Y direction are extension directions of the mounting surface, and are typically horizontal directions.
  • the three-dimensional reconstruction system 100 has a support table 2, a first camera 3, a second camera 4, a rotation unit 5, a projection unit 6, and a control device 70.
  • the support table 2 and the rotation unit 5 are not essential components, and the three-dimensional reconstruction system 100 does not necessarily have to have them.
  • the three-dimensional reconstruction system 100 generates a three-dimensional model of the object 10 based on multiple images of the object 10 taken from different directions by the first camera 3 and the second camera 4.
  • Examples of the object 10 include a textureless cylindrical object as exemplified in FIG. 1, as well as any shape that is sized to be placed inside the outer edge of the support base 2 when viewed from above.
  • object includes both an object that exists in reality and is the subject of three-dimensional reconstruction, and a reconstructed object based on multiple images of the subject. Whether “object” refers to a subject that exists in reality or a reconstructed object can be distinguished as appropriate depending on the context. For example, when referring to the handling of an object in real space, such as “placing an object on a support stand,” "object” means a subject that exists in reality. On the other hand, when referring to the handling of an object in virtual space, such as "storing an object” or “reconstructing an object,” “object” means a reconstructed object that exists in reality. An “actual object” corresponds to a subject that exists in reality and is the subject of three-dimensional reconstruction.
  • the support table 2 is a base on which the object 10 is placed and rotated on its upper surface 2A.
  • the support table 2 is a transparent plate such as an acrylic plate. Because the support table 2 is a transparent plate, it is possible to photograph the object 10 placed on the upper surface 2A from the lower surface 2B, which is the back side of the upper surface 2A, as shown in FIG. 2.
  • the three-dimensional reconstruction system 100 can photograph the object 10 from all directions, thereby obtaining three-dimensional reconstruction information of the object 10 with no information missing.
  • Each of the first camera 3 and the second camera 4 is an example of a camera capable of photographing an object 10 placed on the top surface 2A from different directions.
  • the first camera 3 is installed toward the top surface 2A of the support base 2, and can photograph the object 10 by pointing it diagonally upward from the top surface 2A.
  • the first cameras 3 are each installed at a different inclination angle.
  • the number of cameras may be one or more.
  • the second camera 4 is installed below the first camera 3 and can be directed toward the object 10 from a position lower than the first camera 3 to capture the object 10.
  • the second cameras 4 are installed at different inclination angles.
  • Each of the first camera 3 and the second camera 4 may be a so-called RGB camera capable of capturing an RGB image including the colors R (Red), G (Green), and B (Blue) of the object 10, but is not limited to this.
  • they may be infrared cameras.
  • the dashed arrow extending from the first camera 3 represents a first gaze direction vector v1, which is the direction of a line of sight from the first camera 3.
  • the first gaze direction vector v1 corresponds to the first viewpoint.
  • the dashed arrow extending from the second camera 4 represents a second gaze direction vector v2, which is the direction of a line of sight from the second camera 4.
  • the second gaze direction vector v2 corresponds to the second viewpoint.
  • the gaze direction vector v when there is no need to distinguish between the first gaze direction vector v1 and the second gaze direction vector v2, they may be collectively referred to as the gaze direction vector v.
  • the term “camera” refers to an element capable of capturing an RGB image of the object 10.
  • This "camera” encompasses the entire camera device, sensors such as a CMOS sensor or depth sensor built into the camera device, and sensors used alone. It is preferable that this "camera” has a spatial resolution according to the spatial frequency of the projection pattern contained in the structured light 60 so that it can capture the structured light 60 projected onto the object 10. For example, in this embodiment, it is preferable to use a camera with high spatial resolution, such as a 4K camera, so that it can capture the structured light 60 with a high spatial frequency.
  • the internal parameters include information related to the distortion of the lens of each camera.
  • the internal parameters are known based on simulation results, etc.
  • the external parameters include information related to the attitude (pose) of each camera.
  • the attitude of a camera includes the relative attitude of the camera with respect to a predetermined reference and the absolute attitude in the world coordinate system.
  • the attitude includes the position and the direction.
  • the attitude of a camera corresponds to the tilt of the optical axis of the optical system such as the lens included in each camera.
  • the external parameters are known based on simulation results, etc., or can be calculated by any method for each reconstruction operation by the 3D reconstruction system 100. In this embodiment, a case where the external parameters are known based on simulation results, etc. is illustrated.
  • the rotation unit 5 rotates the object 10 by rotating the support base 2.
  • the rotation unit 5 rotates the support base 2 in the direction of the arrow 20.
  • Each of the first camera 3 and the second camera 4 photographs the object 10 at each of a plurality of rotation angles set by the rotation unit 5, thereby being able to capture images of the object 10 from different directions.
  • a known power transmission system can be used for the mechanism of the rotating unit 5.
  • the rotating unit 5 has a motor and a gear mechanism.
  • the rotating unit 5 may be configured so that the driving force of the motor is transmitted to the rotation shaft of the support base 2 via the gear mechanism.
  • the rotating unit 5 may be configured so that a driving force is applied to the outer edge of the support base 2 to rotate the support base 2.
  • the projection unit 6 projects structured light 60 onto the actual object 10.
  • the structured light 60 is light having a predetermined pattern.
  • the structured light 60 includes a plurality of linear patterns that are each a linear pattern extending in the Z direction, in other words, the vertical direction, and are arranged in a direction perpendicular to the Z direction, in other words, the horizontal direction.
  • the shape of the cross-sectional light intensity distribution in the direction perpendicular to the extension direction of the linear patterns included in the structured light 60 is substantially rectangular here, but may be other shapes such as substantially sinusoidal.
  • the vertical direction is an example of a first direction
  • the horizontal direction is an example of a second direction.
  • the projection pattern of the structured light 60 here has a predetermined spatial frequency in the horizontal direction.
  • the structured light 60 may have a plurality of predetermined projection patterns.
  • the plurality of projection patterns may be composed of a plurality of images, for example.
  • the structured light 60 may have a plurality of projection patterns in which the spatial frequencies of the linear patterns are different from each other.
  • the structured light 60 may have a plurality of projection patterns in which the directions in which the linear patterns extend are different from each other.
  • Each pixel (the position of each pixel) of the image of the projection pattern can be encoded into a plurality of projection patterns, and by decoding the projection patterns contained in each image captured with each projection pattern of the structured light 60 projected, it is possible to calculate which pixel of the image of the projection pattern each pixel of the captured image corresponds to.
  • the structured light 60 based on the plurality of predetermined projection patterns of the structured light 60, it is possible to calculate which pixel of the image of the projection pattern each pixel of the image captured by each of the first camera 3 and the second camera 4 corresponds to. Therefore, based on these plurality of projection patterns, it is possible to associate a first pixel in the first image captured by the first camera 3 with a second pixel in the second image captured by the second camera 4, which correspond to the same point on the object surface.
  • the structured light 60 can correspond to the first pixel and the second pixel described above, it does not necessarily have to have multiple projection patterns made up of multiple images, and may have multiple projection patterns made up of a single image.
  • the structured light 60 may include a plurality of linear patterns that are each a linear pattern extending in the horizontal direction and arranged side by side in the vertical direction.
  • the projection pattern of the structured light 60 has a predetermined spatial frequency in the vertical direction.
  • the structured light 60 may include a plurality of linear patterns each extending vertically and arranged side by side in the horizontal direction, and a plurality of linear patterns each extending horizontally and arranged side by side in the vertical direction. In this way, if the camera orientation is accurate, the corresponding points can be determined by obtaining the former plurality of linear patterns and the epipolar line, but even if the camera orientation is not so accurate, the accuracy of the correspondence between the first pixel and the second pixel can be increased by using both the former plurality of linear patterns and the latter plurality of linear patterns.
  • the structured light 60 may include linear patterns extending diagonally instead of or in addition to the linear patterns extending vertically and horizontally, or may include patterns other than linear patterns, such as circular patterns and curved patterns.
  • the pattern projected by the structured light 60 is not limited to a pattern in which a predetermined geometric pattern is repeated, and may be any pattern that can be encoded as described above.
  • the structured light 60 will be described in detail later with reference to Figure 4.
  • the projection unit 6 projects structured light 60 onto the real object 10 so that each of the first camera 3 and the second camera 4 can capture the structured light 60 projected onto the real object 10.
  • the projection unit 6 is disposed between the first camera 3 and the second camera 4, and projects the structured light 60 onto the real object 10 from this position. It is preferable that the projection unit 6 is disposed according to the installation positions of the first camera 3 and the second camera 4 so that there is no shadow of the structured light 60 projected onto the surface of the object 10, particularly in the images captured by the first camera 3 and the second camera 4.
  • the projection unit 6 projects the structured light 60 onto the actual object 10 in synchronization with the shooting by the first camera 3 and the second camera 4.
  • the projection unit 6 projects the structured light 60 onto the actual object 10 in synchronization with the exposure in the shooting by the first camera 3 and the second camera 4.
  • the three-dimensional reconstruction system 100 can obtain a photographed image of the actual object 10 onto which a desired pattern is projected. Note that in order to eliminate the need to strictly synchronize the projection of the structured light 60 with the shooting by each camera, the shooting by each camera may be performed as video shooting rather than still image shooting.
  • the projection unit 6 is, for example, a projector capable of projecting an image including a predetermined pattern.
  • the projection unit 6 may be configured by combining a display unit, such as a liquid crystal panel or an organic EL (Electro Luminescence) panel, that displays the predetermined pattern, with a light source that irradiates light onto the display unit.
  • the projection unit 6 may also be configured to include one or more combinations of one or more projectors, display units, and light sources. From the perspective of projecting structured light 60 having a plurality of patterns, it is preferable that the projection unit 6 is capable of easily changing the projection pattern.
  • the control device 70 controls the operation of the three-dimensional reconstruction system 100. Specifically, the control device 70 controls the projection operation by the projection unit 6, the photographing operation of the object 10 by the first camera 3 and the second camera 4, etc. The control device 70 also reconstructs the object 10 by generating a three-dimensional model of the object 10 based on the photographed image of the object 10. In this embodiment, the control device 70 is configured to output reconstruction information of the object 10 based on multiple RGB images photographed by the first camera 3 and the second camera 4.
  • the three-dimensional reconstruction system 100 may further include other components, such as an illumination unit that illuminates the object 10 with light. It is preferable that the illumination unit is positioned according to the installation positions of the first camera 3 and the second camera 4 so that there is no shadow on the surface of the object 10 in the images captured by the first camera 3 and the second camera 4.
  • control device 70> 2 is a block diagram showing an example of the functional configuration of the control device 70 according to the first embodiment.
  • the control device 70 has a projection control unit 701, an imaging control unit 702, an attitude acquisition unit 703, and a model generation unit 704.
  • Each of these functions may be realized by a processor such as a CPU (Central Processing Unit) or an electric circuit, or may be realized by one or more electric circuits or one or more processors.
  • each of the above functions may be realized by distributed processing between the control device 70 and components other than the control device 70.
  • the projection control unit 701 controls the operation of the projection unit 6.
  • the projection control unit 701 controls the operation of the projection unit 6 so as to project structured light having a predetermined pattern onto the object 10 in synchronization with the capture of images by the first camera 3 and the second camera 4, respectively.
  • the photography control unit 702 controls the operation of the rotation unit 5, the first camera 3, and the second camera 4 so that the object 10 is photographed by the first camera 3 and the second camera 4 to obtain a plurality of images during rotation by the rotation unit 5.
  • the photography control unit 702 may also control lighting.
  • the attitude acquisition unit 703 acquires attitude information of the first camera 3 and the second camera 4 that has been acquired in advance and stored in memory.
  • the model generation unit 704 reconstructs the object 10 by generating a three-dimensional model of the object 10 based on multiple captured images of the object 10 taken by the first camera 3 and the second camera 4 and information on the respective orientations of the first camera 3 and the second camera 4 acquired by the orientation acquisition unit 703.
  • the model generation unit 704 outputs the generated three-dimensional model of the object 10 as reconstruction information of the object 10.
  • the three-dimensional model may represent only the object 10 or may represent the scene itself including the object 10.
  • the model generation unit 704 reconstructs the object 10 using a machine learning method based on the error (i.e., loss) between the captured image and an image obtained by rendering the three-dimensional information.
  • the model generation unit 704 acquires images of the actual object 10 onto which the structured light 60 is projected, for at least two viewpoints including a first viewpoint (e.g., a viewpoint including the first line of sight vector v1 in FIG. 1) and a second viewpoint (e.g., a viewpoint including the second line of sight vector v2 in FIG. 1). Based on the projection pattern of the structured light 60, the model generation unit 704 identifies a first pixel in the image of the first viewpoint and a second pixel in the image of the second viewpoint, which correspond to the same point on the surface of the actual object 10 onto which the structured light 60 is projected.
  • a first viewpoint e.g., a viewpoint including the first line of sight vector v1 in FIG. 1
  • a second viewpoint e.g., a viewpoint including the second line of sight vector v2 in FIG.
  • the model generation unit 704 calculates a first coordinate corresponding to the first pixel and a second coordinate corresponding to the second pixel on the surface of the object 10 reconstructed by the object shape NN.
  • the first coordinate and the second coordinate are three-dimensional coordinates.
  • the model generation unit 704 updates the parameters of the object shape NN using at least the first coordinate and the second coordinate.
  • the model generation unit 704 updates the parameters of the object shape NN so that, with respect to the three-dimensional shape of the object 10 reconstructed by the object shape NN, a point on the surface of the object 10 corresponding to the first pixel coincides with a point on the surface of the object 10 corresponding to the second pixel.
  • "updating the parameters of the object shape NN using the first coordinate and the second coordinate” conceptually includes directly incorporating the information of the three-dimensional coordinates of the first coordinate and the second coordinate into a loss function related to the parameter update of the object shape NN, and incorporating other information obtained based on the three-dimensional coordinates of the first coordinate and the second coordinate into a loss function related to the parameter update of the object shape NN.
  • this concept includes incorporating the information of the two-dimensional coordinates obtained by projecting the three-dimensional coordinates of the first coordinate and the second coordinate onto a two-dimensional plane into a loss function related to the parameter update of the object shape NN.
  • the model generation unit 704 may further acquire images of the actual object 10 onto which the structured light 60 is not projected, from at least two viewpoints.
  • the model generation unit 704 further calculates the color of the object 10 represented by the object shape NN and the object color NN, based on the current parameter ⁇ in the object shape NN and the current parameter ⁇ in the object color neural network (hereinafter referred to as object color NN) that represents the color of the object 10.
  • the model generation unit 704 further updates the parameters of the object shape NN and the object color NN using information on the calculated color of the object 10.
  • Fig. 3 is a block diagram showing an example of the functional configuration of the model generating unit 704.
  • Fig. 4 is a diagram showing an example of a projection pattern of the structured light 60.
  • Fig. 5 is a diagram showing an example of images captured by the first camera 3 and the second camera 4.
  • Fig. 6 is a diagram showing an example of an image captured of an object on which the structured light 60 is not projected.
  • Fig. 7 is a diagram explaining an example of a three-dimensional scene 55.
  • Fig. 8 is a diagram explaining an example of a result of identifying corresponding pixels in the first image 30 and the second image 40.
  • Fig. 9 is a diagram explaining an example of the relationship between corresponding pixels and corresponding coordinates.
  • the model generation unit 704 has an acquisition unit 41, an object data storage unit 42, a rendering unit 43, a corresponding pixel identification unit 44, a corresponding coordinate calculation unit 45, a model update unit 46, and a model output unit 47.
  • the acquisition unit 41 acquires images of the actual object 10 onto which the structured light 60 is projected, from at least two viewpoints including a first viewpoint and a second viewpoint. Specifically, the acquisition unit 41 acquires the first image 30 captured by the first camera 3 as an image from the first viewpoint via the imaging control unit 702 shown in FIG. 2. The acquisition unit 41 also acquires the second image 40 captured by the second camera 4 as an image from the second viewpoint via the imaging control unit 702.
  • the projection unit 6 sequentially projects structured light 60-1, structured light 60-2, ..., and structured light 60-N onto the object 10 in synchronization with the photographing by the first camera 3 and the second camera 4.
  • the first camera 3 photographs a first image 30 (30-1, 30-2, ..., 30-N) of the object 10 onto which structured light 60 (60-1, 60-2, ..., 60-N) of different projection patterns is projected.
  • the second camera 4 photographs a second image 40 (40-1, 40-2, ..., 40-N) of the object 10 onto which structured light 60 (60-1, 60-2, ..., 60-N) of different projection patterns is projected.
  • the first image 30 includes first image 30-1, first image 30-2, ..., and first image 30-N.
  • the first image 30-1 is a photographed image of the object 10 with structured light 60-1 projected onto it.
  • the first image 30-2 is a photographed image of the object 10 with structured light 60-2 projected onto it.
  • the first image 30-N is a photographed image of the object 10 with structured light 60-N projected onto it. The same is true for the other first images 30.
  • the second image 40 includes second image 40-1, second image 40-2, ..., and second image 40-N.
  • the second image 40-1 is a photographed image of the object 10 with structured light 60-1 projected onto it.
  • the second image 40-2 is a photographed image of the object 10 with structured light 60-2 projected onto it.
  • the second image 40-N is a photographed image of the object 10 with structured light 60-N projected onto it. The same is true for the other second images 40.
  • first image 30 and the second image 40 are each RGB images, but this is not limited thereto, and the first image 30 and the second image 40 may each be a monochrome image or a grayscale image.
  • the first image 30 and the second image 40 may each be an image having three or more gradations per pixel.
  • the three-dimensional reconstruction system 100 can capture images of the object 10 from multiple capture directions by rotating the object 10 and capturing images at each predetermined angle.
  • the three-dimensional reconstruction system 100 can acquire captured images by increasing the number of viewpoints of the object 10 in addition to the two viewpoints of the first camera 3 and the second camera 4. Increasing the number of viewpoints can improve the accuracy of the three-dimensional reconstruction.
  • the three-dimensional reconstruction system 100 may increase the number of cameras without rotating the object 10, or may increase the number of viewpoints of the object 10 by rotating the cameras intermittently around the object 10.
  • the three-dimensional reconstruction system 100 may capture images by continuously rotating the object 10, not limited to intermittent rotation.
  • the acquisition unit 41 may further acquire images of the actual object 10 onto which structured light is not projected, for at least one viewpoint.
  • the third image 50 is a photographed image of the actual object 10 onto which structured light is not projected.
  • the third image 50 is an "image from at least one viewpoint" acquired by at least one of the first camera 3 and the second camera 4 via the photographing control unit 702.
  • the third image 50 is a color image (e.g., an RGB image).
  • the three-dimensional reconstruction system 100 continuously rotates the object 10 on the support table 2 by continuously rotating the support table 2.
  • the three-dimensional reconstruction system 100 photographs the object 10 onto which structured light is not projected, for at least one of the first camera 3 and the second camera 4, at predetermined angles during the continuous rotation.
  • the acquisition unit 41 acquires the third image 50 at the above-mentioned predetermined angles.
  • the three-dimensional reconstruction system 100 can reconstruct not only the shape of the object 10 but also the color of the object 10 by acquiring the third image 50 in addition to the first image 30 and the second image 40. Furthermore, the three-dimensional reconstruction system 100 can improve the accuracy of reconstructing the shape of the object 10 by acquiring the third image 50 in addition to the first image 30 and the second image 40, compared to reconstructing based only on the image of the object 10 onto which the structured light 60 is projected.
  • the acquisition unit 41 acquires the posture information of the first camera 3 and the second camera 4 acquired by the posture acquisition unit 703 in FIG. 2.
  • the acquisition unit 41 outputs the first image 30, the second image 40, and the third image 50, as well as information regarding the attitudes of the first camera 3 and the second camera 4, to the rendering unit 43 and the corresponding pixel identification unit 44, respectively.
  • the object data storage unit 42 in FIG. 3 stores data representing the shape and color of the object 10.
  • An example of data representing the shape of the object 10 will be described with reference to FIG. 7.
  • FIG. 7 shows a three-dimensional scene 55 including the first camera 3, the object 10, a line of sight vector v, a camera view 51, etc. Note that although the first camera 3 is shown as an example here, it can be replaced with the second camera 4.
  • SDF Signed Distance Field
  • Each point contained in the SDF contains information on the signed distance from that point to the nearest surface of the object 10.
  • the distance d in Figure 7 represents this signed distance.
  • the signed distance takes a negative (-) value for points inside the object 10 and a positive (+) value for points outside the object 10.
  • the zero isosurface of the SDF represents the surface of the object 10.
  • the line of sight vector v corresponds to the line of sight from the camera, and is also called a light ray or ray.
  • the camera view 51 is an image generated (rendered) as an image seen from the first camera 3.
  • the color of a pixel at position P in the camera view 51 is determined by the color of light (point color) emanating from each point in the three-dimensional scene on the line of sight vector v from the camera that passes through that pixel. This light color can be calculated by a weighted sum, which is an accumulation of color information at each three-dimensional coordinate on the line of sight vector v.
  • Sampling points Sm represent sampling points of pixel colors on the gaze direction vector v.
  • a weight is assigned to each sampling point Sm. The weight increases as the sampling point Sm approaches the surface of the object 10.
  • the weight assigned to a sampling point Sm may be expressed as a function of the SDF calculated for that sampling point Sm.
  • Region Ar indicates a region where the weight is relatively large compared to other regions.
  • the SDF may be approximately represented as a neural field by a neural network.
  • This neural network corresponds to the object shape NN.
  • the object shape NN can represent the zero isosurface of the SDF, i.e., the object surface, and therefore corresponds to data representing the shape of the object 10.
  • One example of data representing the color of the object 10 is a vector field (Color Field) representing the color (e.g., RGB values) of each point x in the three-dimensional scene 55, conditioned by the line of sight direction.
  • This vector field may be approximately represented as a neural field by a neural network. For example, when a point x in the three-dimensional scene and a line of sight vector v for that point x are input, this neural network outputs the color c of the pixel corresponding to that point x.
  • This neural network corresponds to the object color NN.
  • the object color NN corresponds to the data representing the color of the object 10.
  • the rendering unit 43 in FIG. 3 generates the camera view 51 in FIG. 7 using the object shape NN and object color NN stored in the object data storage unit 42 as data representing the shape and color of the object 10.
  • the camera view 51 may be generated for each pixel according to the volume rendering method, for example, using the method of the NeuS (Neural Surface reconstruction method) paper (see, for example, Non-Patent Document 1).
  • the corresponding pixel identification unit 44 identifies a first pixel in the first image 30 from a first viewpoint and a second pixel in the image from a second viewpoint that correspond to the same point on the surface of the actual object 10 onto which the structured light 60 is projected, based on multiple projection patterns of the structured light 60.
  • the first pixel Pa0 in the first image 30 and the second pixel Pb0 in the second image 40 are pixels captured at the same point (same position) on the surface of the actual object 10.
  • the luminance of the first pixel Pa0 in the first image 30 changes depending on the projection pattern of the structured light 60. That is, the first pixel Pa0 has a dark luminance in the first image 30-1, a dark luminance in the first image 30-2, ..., and a bright luminance in the first image 30-N.
  • the second pixel Pb0 in the second image 40 like the first pixel Pa0, has a dark luminance in the second image 40-1, a dark luminance in the second image 40-2, ..., and a bright luminance in the second image 40-N.
  • the corresponding pixel identification unit 44 identifies multiple pixels (e.g., the first pixel Pa0 and the second pixel Pb0) that represent the same point (same position) on the actual object 10 in multiple captured images (e.g., the first image 30 and the second image 40) as corresponding pixels.
  • the above dark luminance refers to the luminance of a pixel in the captured image that corresponds to a position on the object 10 onto which a dark pattern in the structured light 60 is projected.
  • the bright luminance refers to the luminance of a pixel in the captured image that corresponds to a position on the object 10 onto which a bright pattern in the structured light 60 is projected. Pixels with dark luminance and pixels with bright luminance may be called dark pixels and bright pixels, respectively.
  • the encoding process described above corresponds to a process of expressing the position of each pixel as a combination of dark luminance and bright luminance using structured light 60-1, structured light 60-2, ..., structured light 60-N.
  • the decoding process described above corresponds to a process of acquiring the position of each pixel included in the captured image based on the combination of dark luminance and bright luminance using multiple projection patterns.
  • the corresponding pixel identification unit 44 can identify corresponding pixels such as the first pixel Pa and the second pixel Pb from all pixels in the first image 30 and the second image 40 that reflect the structured light 60 projected onto the actual object 10.
  • the corresponding line P0 in FIG. 8 is a line that connects corresponding pixels such as the first pixel Pa0 and the second pixel Pb0, and visualizes the corresponding pixels for the purpose of explanation.
  • the corresponding coordinate calculation unit 45 in FIG. 3 will be described with reference to FIG. 9.
  • a function S(x) that returns the signed distance between the point x and the surface of the object 10 closest to the point x can be approximated by a function S(x; ⁇ ) that is expressed by an object shape NN having a parameter ⁇ .
  • the function S(x) corresponds to the above-mentioned SDF
  • the function S(x; ⁇ ) corresponds to an approximation of the SDF.
  • the first pixel Pa represents a pixel in the first image 30 captured by the first camera 3.
  • the second pixel Pb represents a pixel in the second image 40 captured by the second camera 4.
  • the first pixel Pa and the second pixel Pb are pixels that are associated by the corresponding pixel identification unit 44.
  • the zero isosurface of S(x; ⁇ ) moves in the direction in which the first coordinate xa and the second coordinate xb coincide, and it is possible to obtain a function S(x; ⁇ ) that accurately represents the shape of the surface of the object 10.
  • the distance loss L D may be the sum of the distances for all corresponding pixels.
  • the loss function refers to a function that may include, in addition to the loss represented by the above-mentioned index, an error (i.e., loss) between an image (camera view) obtained by rendering based on three-dimensional information (shape and color of the object) represented by the object shape NN and object color NN and a captured image.
  • the first coordinate xa' represents the first coordinate xa after the zero isosurface of S(x; ⁇ ) is moved to make the first coordinate xa and the second coordinate xb the same coordinate.
  • the second coordinate xb' represents the second coordinate xb after the zero isosurface of S(x; ⁇ ) is moved to make the first coordinate xa and the second coordinate xb the same coordinate.
  • the intersection point x of a ray from a camera having an attitude ⁇ and the surface of the object can be obtained by the following formula (1) (see, for example, the Internet ⁇ URL: https://arxiv.org/pdf/2003.09852.pdf>).
  • the ray is a ray that passes through a pixel P in the camera view from the center of the camera, and its line of sight vector is ⁇ .
  • multiple sample points x may be set on the ray, S(x; ⁇ ) may be calculated for each sample point x, and the sample point x for which S(x; ⁇ ) ⁇ 0 may be determined as the intersection point between the ray and the surface of the object.
  • the corresponding coordinate calculation unit 45 in FIG. 3 calculates a first coordinate xa corresponding to a first pixel Pa and a second coordinate xb corresponding to a second pixel Pb on the surface of the object 10 reconstructed by the object shape NN based on the current parameter ⁇ in the object shape NN that reconstructs the three-dimensional shape of the object 10.
  • the corresponding coordinate calculation unit 45 outputs the calculated first coordinate xa and second coordinate xb to the model update unit 46.
  • the model update unit 46 updates the parameter ⁇ of the object shape NN using at least the first coordinate xa and the second coordinate xb.
  • the model update unit 46 further updates the parameters of the object shape NN and the object color NN stored in the object data storage unit 42 using information on the calculated color of the object 10.
  • the model update unit 46 calculates the loss L R ( ⁇ , ⁇ , ⁇ ) between the camera view 51 and the third image 50 actually captured for each of the multiple camera views 51 in FIG. 7 generated by the rendering unit 43.
  • This loss L R can be calculated by accumulating the color difference between corresponding pixels for all pixels between the camera view 51 and the third image 50.
  • the definition of the loss L R is not limited to the accumulation of the color difference between the above pixels for all pixels, and may be another definition.
  • the calculation method of the loss L R is not limited to the accumulation of the color difference between the above pixels for all pixels, and may be another method.
  • the model update unit 46 may calculate the loss L R between the camera view 51 and either the first image 30 or the second image 40 that was actually captured.
  • the model update unit 46 adds the distance loss L D with a weight ⁇ D to the loss L R , and calculates the loss function L ( ⁇ , ⁇ , ⁇ ) from the following equation.
  • L( ⁇ , ⁇ , ⁇ ) LR + ⁇ DLD
  • the loss function L( ⁇ , ⁇ , ⁇ ) may be weighted with a coefficient ⁇ E and added with the SDF regularization constraint E(
  • E means taking the expectation with respect to x
  • means taking the gradient with respect to x.
  • the model update unit 46 updates each parameter of the object shape NN and object color NN by the backpropagation method based on the loss function L( ⁇ , ⁇ , ⁇ ).
  • the model update unit 46 repeats the update of each NN until a predetermined criterion is met.
  • the object shape NN and object color NN finally obtained represent the three-dimensional shape and color of the actual object 10, i.e., a three-dimensional model.
  • the predetermined criterion may be, for example, until the loss L( ⁇ , ⁇ , ⁇ ) falls below a predetermined value.
  • the predetermined criterion may be, for example, until a predetermined number of updates have been performed.
  • the 3D shape of an object is reconstructed by optimizing the parameter ⁇ of the object shape NN based on images captured from multiple viewpoints.
  • the accuracy of the 3D reconstruction may be reduced due to the fact that the solution cannot be uniquely determined (an ill-posed problem).
  • the parameter ⁇ is optimized by using the first image 30 and the second image 40 of the object 10 onto which the structured light 60 is projected, and including the distance loss L D related to the positional correspondence between the first image 30 and the second image 40 in the loss function L( ⁇ , ⁇ , ⁇ ).
  • This adds a constraint condition that approaches a desired solution even when the object includes at least a portion of a monochromatic textureless region, and the accuracy of the three-dimensional reconstruction can be increased.
  • a three-dimensional reconstruction method and a three-dimensional reconstruction system 100 that can increase the reconstruction accuracy of the object 10 can be provided.
  • the model update unit 46 stores the three-dimensional model obtained as a result of the update in the object data storage unit 42 as reconstruction information.
  • the model generation unit 704 can also output the reconstruction information to an external device such as a display device or a PC (Personal Computer).
  • the model output unit 47 uses the data stored in the object data storage unit 42 to generate three-dimensional mesh data that represents the shape of the three-dimensional model of the object 10, and a texture map that is applied to this three-dimensional mesh data.
  • the model output unit 47 converts these into a data format that can be viewed by a three-dimensional viewer and outputs them.
  • the model output unit 47 since the finally obtained object shape NN represents an SDF, the model output unit 47 generates a mesh that approximates the zero isosurface of this SDF.
  • the model output unit 47 can convert the zero isosurface of the SDF into mesh data, for example, using the marching cubes method or other known methods.
  • the model output unit 47 also inputs, for each polygon that constitutes the mesh, the three-dimensional coordinates of the polygon and the inverse vector of the normal vector of the zero isosurface of the SDF in these three-dimensional coordinates to the object color NN.
  • the model output unit 47 obtains the color of the polygon as an output from the object color NN.
  • the model output unit 47 can generate a texture map of the mesh using the obtained polygon color.
  • the method of acquiring the color of a polygon is not limited to acquiring one color per polygon.
  • the method of acquiring the color of a polygon may be to acquire one color for each of a number of unit areas obtained by further dividing one polygon.
  • the spatial resolution can be improved compared to acquiring one color per polygon.
  • the unit area corresponds to one pixel.
  • the model update unit 46 may update only the object shape NN without updating the object color NN.
  • the three-dimensional reconstruction system 100 may reconstruct only the object shape without reconstructing the object color. This also has the effect of providing a three-dimensional reconstruction method and a three-dimensional reconstruction system 100 that can improve the reconstruction accuracy of the object 10.
  • Fig. 10 is a flowchart showing an example of processing by the control device 70.
  • the control device 70 starts the processing of Fig. 10 when it receives an operation input of a reconstruction start instruction from a user via its operation unit.
  • an object 10 is placed on the upper surface 2A of the support table 2 in Fig. 1.
  • the position where the object 10 is placed is preferably the center of rotation of the support table 2.
  • external parameters such as attitude information of each camera of the first camera 3 and the second camera 4 with respect to the object 10 are assumed to be acquired in advance.
  • step S91 the control device 70 controls the operation of the projection unit 6 with the projection control unit 701, thereby projecting structured light 60 from the projection unit 6 onto the object 10.
  • the support table 2 is not rotating, and the object 10 placed on the upper surface 2A of the support table 2 is stationary. Also, the projection unit 6 continues projecting the structured light 60 until it is stopped by the projection control unit 701.
  • step S92 step of capturing the first and second images
  • the control device 70 controls the operation of the first camera 3 and the second camera 4 by the image capture control unit 702, thereby capturing images of the stationary object 10 with the first camera 3 and the second camera 4, and acquiring the first image 30 and the second image 40 of the object 10.
  • step S93 the control device 70 determines whether or not the object 10 has been photographed using all of the predetermined projection patterns included in the structured light 60. In other words, the control device 70 determines whether or not the object 10 has been photographed by projecting all of the N projection patterns.
  • step S94 the control device 70 changes the projection pattern of the structured light 60 from the projection unit 6 by controlling the operation of the projection unit 6 with the projection control unit 701. After changing the projection pattern, the control device 70 performs the processes from step S91 onwards again.
  • step S95 the control device 70 controls the operation of the rotation unit 5 with the imaging control unit 702 to rotate the support base 2 by a predetermined angle (e.g., 30°) and rotates the object 10 on the upper surface 2A. After the support base 2 has rotated by the predetermined angle, the control device 70 controls the operation of the rotation unit 5 with the imaging control unit 702 to stop the rotation unit 5 and stop the rotation of the support base 2.
  • a predetermined angle e.g. 30°
  • step S96 the control device 70 determines whether or not the object 10 has been photographed from all shooting directions (for example, 12 viewpoints obtained by dividing a full 360° circle into 30° increments).
  • step S96 If it is determined in step S96 that an image has not been captured (step S96, NO), the control device 70 repeats the processes from step S91 onwards. On the other hand, if it is determined in step S96 that an image has been captured (step S96, YES), in step S97, the control device 70 stops the projection of structured light 60 from the projection unit 6 onto the object 10 by controlling the operation of the projection unit 6 with the projection control unit 701.
  • step S98 the control device 70 controls the operation of the rotation unit 5 by the imaging control unit 702 to start continuous rotation of the support table 2 (e.g., continuous rotation of one revolution of 360°).
  • the continuous rotation of the support table 2 causes the object 10 placed on the upper surface 2A of the support table 2 to rotate continuously.
  • the rotation unit 5 continues to rotate the support table 2 until it is stopped by the imaging control unit 702.
  • step S99 step of capturing a third image
  • the control device 70 controls the operation of at least one of the first camera 3 and the second camera 4 by the capture control unit 702 to capture an image of the rotating object 10 and obtain a third image 50.
  • the first camera 3 captures an image of the object 10 every time the rotating support base 2 rotates a predetermined angle (e.g., 30°), and obtains a predetermined number of third images 50 (e.g., 12 images obtained by dividing one revolution of 360° into 30° increments), i.e., images of the object 10 onto which the structured light 60 is not projected.
  • the capture control unit 702 causes the first camera 3 and the second camera 4 to capture images at approximately the same timing when the object 10 is rotating. This allows the capture control unit 702 to acquire RGB images in parallel from each camera when the object 10 is at a position of any rotation angle.
  • the captures by the first camera 3 and the second camera 4 do not necessarily have to be captured at approximately the same timing, and may be intentionally staggered.
  • step S99 the photography control unit 702 continues the photography operation to acquire images while the rotation unit 5 rotates the object 10 once. This allows at least one of the first camera 3 and the second camera 4 to photograph the object 10 from directions tilted at different angles relative to the top surface 2A and from multiple directions along the direction of rotation. Each camera can acquire an RGB image in each photography direction. In other words, the photography control unit 702 can photograph the object 10 simultaneously from different directions using multiple cameras.
  • the photography control unit 702 outputs the third image 50 to the model generation unit 704.
  • step S100 the control device 70 controls the operation of the rotation unit 5 via the imaging control unit 702, thereby stopping the rotation unit 5 and the continuous rotation of the support base 2.
  • step S101 camera view generation step
  • the control device 70 generates a camera view 51 for each shooting direction using the model generation unit 704.
  • step S102 the control device 70 uses the corresponding pixel identification unit 44 of the model generation unit 704 to identify corresponding pixels for each shooting direction.
  • step S103 the control device 70 calculates corresponding coordinates for each shooting direction using the corresponding coordinate calculation unit 45 of the model generation unit 704.
  • step S104 the control device 70 calculates the loss function L( ⁇ , ⁇ , ⁇ ) by the model update unit 46 of the model generation unit 704. After the calculation is completed, the model update unit 46 determines whether the loss function L( ⁇ , ⁇ , ⁇ ) is less than a predetermined value.
  • step S104 If it is determined in step S104 that the difference is not less than the predetermined value (step S104, NO), in step S105 (update step), the control device 70 calculates the loss function L( ⁇ , ⁇ , ⁇ ) for each shooting direction using the model update unit 46 of the model generation unit 704.
  • the model update unit 46 updates each parameter of the object shape NN and object color NN using the backpropagation method based on this loss function L( ⁇ , ⁇ , ⁇ ).
  • the control device 70 then performs the processes from step S101 onwards again.
  • the control device 70 repeats the update of each NN using the model update unit 46 until the predetermined criteria are met.
  • step S106 output step
  • the control device 70 generates a three-dimensional model (three-dimensional mesh and texture map) using the model output unit 47 of the model generation unit 704 based on the object shape NN and object color NN finally obtained as a result of the update, and outputs it as reconstruction information.
  • this processing flow ends. Note that since the corresponding pixels do not change during the repeated processing of steps S101 to S105, the processing of step S102 to identify the corresponding pixels may be executed only once outside the repeated processing of steps S101 to S105. For example, after executing steps S100 and S102, the processing of steps S101, S103, S104, and S105 may be repeated.
  • the process by the control device 70 may be the one shown in FIG. 10, or may involve repeating the process of projecting structured light 60 and photographing multiple times, and then photographing without projecting structured light 60, for each predetermined rotation angle.
  • the photographing processes of steps S97 and S99 may be inserted between steps S93 and S95 in FIG. 10, and steps S97 to S100 may be omitted.
  • Fig. 11 is a flowchart showing an example of the generation process of the camera view 51 shown in step S101 of Fig. 10 by the rendering unit 43 of the model generation unit 704.
  • the rendering unit 43 starts the process of Fig. 11 when a position P in the camera view 51 is selected in the generation process of the camera view 51 in the model generation unit 704.
  • step S111 the rendering unit 43 determines the line of sight vector v that passes through the pixel at the selected position P.
  • step S112 the rendering unit 43 obtains the three-dimensional coordinates of each sample point x_i on the determined line-of-sight vector v.
  • step S113 the rendering unit 43 obtains the color c_obj of each sample point x_i based on the line of sight vector v, the three-dimensional coordinates of each sample point x_i, and the object color NN.
  • step S114 the rendering unit 43 obtains information on the signed distance d_i from each sample point x_i to the surface of the object 10 based on the three-dimensional coordinates of each sample point x_i and the object shape NN.
  • step S115 the rendering unit 43 calculates the color weight w_i of each sample point x_i based on the signed distance d_i of each sample point x_i.
  • step S116 the rendering unit 43 calculates the weighted sum of the colors of each sample point based on the color c_obj of each sample point x_i and the color weight w_i of each sample point x_i, and obtains the final color c_obj of the pixel.
  • the weights are normalized so that the sum is 1. Also, it is designed in advance that the weight becomes larger when the signed distance d_i is close to 0, that is, when it is close to the surface of the object 10.
  • step S117 the rendering unit 43 outputs the color c_obj of the pixel at position P in the camera view 51.
  • the processing of step S117 is completed, the process of obtaining the color c_obj of one pixel at position P in the camera view 51 ends.
  • the rendering unit 43 can generate the camera view 51.
  • Fig. 12 is a flowchart showing an example of a generation process of a three-dimensional model (three-dimensional mesh and texture map) by the model output unit 47.
  • the model output unit 47 starts the process of Fig. 12 when it is determined in step S104 of Fig. 10 that the difference is less than a predetermined value (step S104, YES). Note that, although this flowchart describes an example of calculating one color for one polygon, as described above, it is also possible to calculate colors for each of multiple locations within one polygon.
  • step S121 the model output unit 47 generates a three-dimensional mesh that approximates the shape of the object 10 based on the object shape NN.
  • step S122 the model output unit 47 calculates, for each polygon constituting the three-dimensional mesh, the inverse vector u of the normal vector of the polygon at the three-dimensional coordinate q that represents the position of the polygon.
  • the model output unit 47 may, for example, calculate the three-dimensional coordinate corresponding to the position of the center of gravity of the polygon and acquire the coordinate as the three-dimensional coordinate q of the polygon, or may acquire another coordinate value relating to the position of the polygon in three-dimensional space as the three-dimensional coordinate of the polygon.
  • step S123 the model output unit 47 obtains the three-dimensional coordinates q of each polygon, for example, by the calculation described above. Note that the order of execution of steps S122 and S123 may be reversed. Steps S122 and S123 may be executed in parallel.
  • step S124 the model output unit 47 calculates the color c_p of each polygon based on the polygon's three-dimensional coordinates q, the inverse vector u, and the object color NN.
  • step S125 the model output unit 47 outputs the polygon color c_p obtained for each polygon in step S124. That is, in this step, the model output unit 47 generates a texture map to be applied to the three-dimensional mesh generated in step S121.
  • this processing flow ends.
  • This embodiment differs from the first embodiment in that it simultaneously optimizes the object shape NN, object color NN, and information related to the orientation of the first and second cameras in the 3D reconstruction system. More specifically, this embodiment differs from the first embodiment mainly in that it simultaneously optimizes the object shape NN, object color NN, and information related to the orientation of the first and second cameras in the 3D reconstruction system.
  • the first camera 3 acquires an image of the actual object 10 at a first viewpoint
  • the second camera 4 acquires an image of the actual object 10 at a second viewpoint
  • a second point obtained by projecting the first coordinates onto the second camera 4 and further updates the parameters of the object shape NN and object color NN, and the camera parameters, using at least the first point and the second point.
  • Example of functional configuration of control device 70a> 13 is a block diagram showing an example of the functional configuration of a control device 70a included in a three-dimensional reconstruction system 100a according to this embodiment.
  • the three-dimensional reconstruction system 100a has almost the same configuration as the three-dimensional reconstruction system 100 according to the first embodiment, except that it has a control device 70a.
  • the control device 70a has almost the same configuration as the control device 70 in the first embodiment, except that it does not have a posture acquisition unit 703 (see FIG. 2) and has a model generation unit 704a.
  • Fig. 14 is a block diagram showing an example of the functional configuration of the model generating unit 704a.
  • Fig. 15 is a diagram explaining an example of a first loss according to this embodiment.
  • Fig. 16 is a diagram explaining an example of a second loss according to this embodiment.
  • the model generation unit 704a has an acquisition unit 41a, a geometric loss calculation unit 48, and a model update unit 46a. Other than this, the model generation unit 704a has almost the same functional configuration as the model generation unit 704 according to the first embodiment.
  • the acquisition unit 41a outputs the first image 30, the second image 40, and the third image 50 acquired from the first camera 3 and the second camera 4 via the shooting control unit 702 in FIG. 13 to the rendering unit 43, the corresponding pixel identification unit 44, and the geometric loss calculation unit 48, respectively.
  • the acquisition unit 41a has almost the same functions as the acquisition unit 41 shown in FIG. 2.
  • the geometric loss calculation unit 48 calculates a geometric loss (e.g., a first loss L SR ( ⁇ , ⁇ ) or a second loss L ST ( ⁇ , ⁇ )) to optimize the parameters of the object shape NN and object color NN, and information regarding the postures of each of the first camera 3 and the second camera 4.
  • a geometric loss e.g., a first loss L SR ( ⁇ , ⁇ ) or a second loss L ST ( ⁇ , ⁇ )
  • FIG. 15 and FIG. 16 show a point x in a three-dimensional scene 55, a function S(x; ⁇ ) of an object shape NN having a parameter ⁇ , a first pixel Pa in a first image 30, a second pixel Pb in a second image 40, etc.
  • the intersection point x between a ray from a camera having an attitude ⁇ and the surface of the object can be obtained by formula (1) as described above.
  • the ray is a ray that passes through a pixel P in the camera view from the center of the camera, and its line of sight vector is ⁇ .
  • multiple sample points x may be set on the ray, S(x; ⁇ ) may be calculated for each sample point x, and the sample point x for which S(x; ⁇ ) ⁇ 0 may be determined as the intersection point between the ray and the surface of the object.
  • the first coordinate xa and the second coordinate xb are obtained by the corresponding pixel specification unit 44 and the corresponding coordinate calculation unit 45 in the same manner as described with reference to FIG. 9.
  • the geometric loss calculation unit 48 calculates a first point Q(xb, ⁇ a) obtained by projecting the second coordinate xb onto the first camera 3, and a second point Q(xa, ⁇ b) obtained by projecting the first coordinate xa onto the second camera 4.
  • ⁇ a and ⁇ b are camera parameters of the first camera 3 and the second camera 4, respectively.
  • the geometric loss calculation unit 48 calculates the sum of the distance
  • the first loss L SR may be the sum of the distances for all corresponding pixels.
  • the second loss L ST is information about a loss obtained using the shape of an object calculated by a triangulation method from the first image 30 and the second image 40. Therefore, the second loss L ST can also be called a triangulation loss.
  • the first coordinate xa and the second coordinate xb are obtained by the corresponding pixel specifying unit 44 and the corresponding coordinate calculating unit 45 in the same manner as described with reference to Fig. 9.
  • the geometric loss calculation unit 48 calculates the intersection of the light rays Ra( ⁇ ) and Rb( ⁇ ) passing through the corresponding pixels pa and pb in the captured images of the first camera 3 and the second camera 4, respectively, by a triangulation method.
  • the light rays passing through the corresponding pixels pa and pb, respectively may not intersect due to the attitude error of the first camera 3 and the second camera 4.
  • the geometric loss calculation unit 48 calculates the point ya on the light ray Ra( ⁇ ) that is closest to the light ray Rb( ⁇ ) and the point yb on the light ray Rb( ⁇ ) that is closest to the light ray Ra( ⁇ ).
  • the geometric loss calculation unit 48 calculates the second loss L ST that evaluates the distance between the four points (for example, the sum of the distance
  • the second loss L ST may be the sum of the distances for all the corresponding pixels.
  • the geometric loss calculation unit 48 outputs the calculated first loss L SR and second loss L ST to the model update unit 46 a.
  • the model update unit 46a further updates the parameters ⁇ and ⁇ of the object shape NN and the object color NN, and the camera parameters ⁇ a and ⁇ b, respectively, using at least the first point Q(xb, ⁇ a) and the second point Q(xa, ⁇ b).
  • the initial values of the camera parameters may be acquired by a known method (for example, a method of calculation based on the appearance of a predetermined marker included in the captured image, or a method of calculation based on feature point extraction from the captured image, such as SfM (Structure from Motion)).
  • the model update unit 46a calculates the loss function La( ⁇ , ⁇ , ⁇ ) by the following formula using the loss L R ( ⁇ ), the first loss L SR , and the second loss L ST .
  • La( ⁇ , ⁇ , ⁇ ) LR + ⁇ SR LSR + ⁇ ST LST ⁇ SR and ⁇ ST are predetermined coefficients. Note that, in this embodiment as well, a regularization constraint of the SDF may be added to the loss function La( ⁇ , ⁇ , ⁇ ) as in the first embodiment.
  • the model update unit 46a updates the parameters of the object shape NN and object color NN, and the camera parameters ⁇ a and ⁇ b, by backpropagation based on the loss function La( ⁇ , ⁇ , ⁇ ).
  • the function of the model update unit 46a is almost the same as that of the model generation unit 704 in the first embodiment, except that the loss function La( ⁇ , ⁇ , ⁇ ) is used instead of the loss function L( ⁇ , ⁇ , ⁇ ).
  • Fig. 17 is a flowchart showing an example of processing by the control device 70a.
  • the control device 70a starts the processing in Fig. 17 when it receives an operation input of a reconstruction start instruction from a user via its operation unit.
  • an object 10 is placed on the upper surface 2A of the support table 2 in Fig. 1.
  • the position where the object 10 is placed is preferably the rotation center of the support table 2.
  • This embodiment differs from the first embodiment in FIG. 10 in that external parameters such as the attitude information of each of the first camera 3 and the second camera 4 relative to the object 10 are not acquired in advance.
  • the processing of steps S171 to S183 is the same as the processing of steps S91 to S103 in FIG. 10, so a duplicated description will be omitted here.
  • step S184 the control device 70a causes the geometric loss calculation unit 48 of the model generation unit 704a to calculate the first loss LSR and the second loss LST for optimizing the information relating to the postures of the first camera 3 and the second camera 4.
  • the geometric loss calculation unit 48 outputs the calculation results to the model update unit 46a of the model generation unit 704a.
  • step S185 the control device 70a calculates the loss function La( ⁇ , ⁇ , ⁇ ) by the model update unit 46a of the model generation unit 704a. After the calculation is completed, the model update unit 46a determines whether the loss function La( ⁇ , ⁇ , ⁇ ) is less than a predetermined value.
  • step S186 the control device 70a calculates the loss function La( ⁇ , ⁇ , ⁇ ) for each shooting direction using the model update unit 46a of the model generation unit 704a.
  • the model update unit 46a updates each parameter of the object shape NN and object color NN using the backpropagation method based on this loss function La( ⁇ , ⁇ , ⁇ ).
  • the control device 70a then performs the processes from step S181 onwards again.
  • the control device 70a repeats the update of each NN using the model update unit 46a until the predetermined criteria are met.
  • step S187 output step
  • the control device 70a generates a three-dimensional model (three-dimensional mesh and texture map) using the model output unit 47 of the model generation unit 704a based on the object shape NN and object color NN finally obtained as a result of the update, and outputs it as reconstruction information.
  • the 3D reconstruction system 100a simultaneously optimizes the object shape NN and information relating to the respective attitudes of the first camera 3 and the second camera 4, and performs 3D reconstruction.
  • the 3D reconstruction system 100a even if there is no known information relating to the respective attitudes of the first camera 3 and the second camera 4, it is possible to optimize the information relating to the respective attitudes of the first camera 3 and the second camera 4.
  • the geometric loss calculation unit 48 may not calculate the second loss L ST , but may calculate only the first loss L SR ( ⁇ ) and output it to the model update unit 46a.
  • the model update unit 46a may calculate the loss function La ( ⁇ , ⁇ , ⁇ ) using the loss L R , the distance loss L D , and the first loss L SR .
  • the model update unit 46a may not update the object color NN , but may update only the object shape NN .
  • the three-dimensional reconstruction system 100a may not reconstruct the object color NN , but may reconstruct only the object shape NN .
  • each device (three-dimensional reconstruction system 100 and 100a) in the above-mentioned embodiment may be configured with hardware, or may be configured with information processing of software (programs) executed by a CPU, a GPU (Graphics Processing Unit), or the like.
  • software that realizes at least a part of the functions of each device in the above-mentioned embodiment may be stored in a non-transient storage medium (non-transient computer-readable medium) such as a CD-ROM (Compact Disc-Read Only Memory) or a USB (Universal Serial Bus) memory, and the information processing of the software may be executed by having the computer read the software.
  • the software may also be downloaded via a communication network. Furthermore, the information processing by the software may be executed by hardware by implementing all or a part of the processing of the software in a circuit such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array).
  • ASIC Application Specific Integrated Circuit
  • FPGA Field Programmable Gate Array
  • the storage medium that stores the software may be a removable medium such as an optical disk, or a fixed medium such as a hard disk or memory.
  • the storage medium may be provided inside the computer (main storage device, auxiliary storage device, etc.) or outside the computer.
  • FIG. 18 is a block diagram showing an example of the hardware configuration of each device (3D reconstruction systems 100 and 100a) in the above-mentioned embodiment.
  • each device may be realized as a computer 7 including a processor 71, a main storage device 72 (memory), an auxiliary storage device 73 (memory), a network interface 74, and a device interface 75, which are connected via a bus 76.
  • the computer 7 in FIG. 18 includes one of each component, but may include multiple of the same component.
  • the software may be installed in multiple computers, and each of the multiple computers may execute the same or different parts of the software.
  • a form of distributed computing may be used in which each computer communicates via a network interface 74 or the like to execute the processing.
  • each device in the above-mentioned embodiment may be configured as a system that realizes functions by one or more computers executing instructions stored in one or more storage devices.
  • the system may be configured such that information sent from a terminal is processed by one or more computers provided on the cloud, and the processing results are sent to the terminal.
  • each device three-dimensional reconstruction systems 100 and 100a
  • the various calculations of each device (three-dimensional reconstruction systems 100 and 100a) in the above-described embodiments may be executed in parallel using one or more processors, or using multiple computers via a network. Furthermore, the various calculations may be distributed to multiple computing cores within a processor and executed in parallel. Furthermore, some or all of the processes, means, etc. disclosed herein may be realized by at least one of a processor and a storage device provided on a cloud that can communicate with computer 7 via a network. In this way, each device in the above-described embodiments may be in the form of parallel computing using one or more computers.
  • Processor 71 may be an electronic circuit (processing circuit, processing circuitry, CPU, GPU, FPGA, ASIC, etc.) that performs at least one of computer control and calculations.
  • Processor 71 may also be a general-purpose processor, a dedicated processing circuit designed to perform a specific calculation, or a semiconductor device that includes both a general-purpose processor and a dedicated processing circuit.
  • Processor 71 may also include an optical circuit, or may include a calculation function based on quantum computing.
  • the processor 71 may perform calculations based on data and software input from each device in the internal configuration of the computer 7, and may output calculation results and control signals to each device.
  • the processor 71 may control each component that constitutes the computer 7 by executing the OS (Operating System) of the computer 7, applications, etc.
  • OS Operating System
  • Each of the devices (three-dimensional reconstruction systems 100 and 100a) in the above-described embodiments may be realized by one or more processors 71.
  • the processor 71 may refer to one or more electronic circuits arranged on one chip, or to one or more electronic circuits arranged on two or more chips or two or more devices. When multiple electronic circuits are used, the electronic circuits may communicate with each other by wire or wirelessly.
  • the main memory device 72 may store instructions executed by the processor 71 and various data, and information stored in the main memory device 72 may be read by the processor 71.
  • the auxiliary memory device 73 is a memory device other than the main memory device 72. Note that these memory devices refer to any electronic components capable of storing electronic information, and may be semiconductor memories. The semiconductor memories may be either volatile or non-volatile memories.
  • the memory devices for saving various data in each device (three-dimensional reconstruction systems 100 and 100a) in the above-mentioned embodiments may be realized by the main memory device 72 or the auxiliary memory device 73, or may be realized by built-in memories built into the processor 71.
  • each device (three-dimensional reconstruction systems 100 and 100a) in the above-mentioned embodiment is composed of at least one storage device (memory) and at least one processor connected (coupled) to this at least one storage device, at least one processor may be connected to one storage device. Also, at least one storage device may be connected to one processor. Also, a configuration may be included in which at least one processor out of the multiple processors is connected to at least one storage device out of the multiple storage devices. Also, this configuration may be realized by storage devices and processors included in multiple computers. Furthermore, a configuration may be included in which a storage device is integrated with a processor (for example, a cache memory including an L1 cache and an L2 cache).
  • the network interface 74 is an interface for connecting to the communication network 8 wirelessly or by wire.
  • the network interface 74 may be an appropriate interface, such as one that conforms to existing communication standards.
  • the network interface 74 may exchange information with an external device 9A connected via the communication network 8.
  • the communication network 8 may be any one of or a combination of a WAN (Wide Area Network), a LAN (Local Area Network), a PAN (Personal Area Network), etc., as long as information is exchanged between the computer 7 and the external device 9A.
  • An example of a WAN is the Internet
  • an example of a LAN is IEEE 802.11 or Ethernet (registered trademark)
  • an example of a PAN is Bluetooth (registered trademark) or NFC (Near Field Communication), etc.
  • the device interface 75 is an interface such as a USB that directly connects to the external device 9B.
  • External device 9A is a device connected to computer 7 via a network.
  • External device 9B is a device connected directly to computer 7.
  • External device 9A or external device 9B may be, for example, an input device.
  • the input device is, for example, a device such as a camera, a microphone, motion capture, various sensors, a keyboard, a mouse, a touch panel, etc., and provides acquired information to computer 7. It may also be a device equipped with an input section, memory, and a processor, such as a personal computer, a tablet terminal, or a smartphone.
  • external device 9A or external device 9B may be, for example, an output device.
  • the output device may be, for example, a display device such as an LCD (Liquid Crystal Display) or an organic EL (Electro Luminescence) panel, or may be a speaker that outputs sound, etc.
  • the output device may be a device equipped with an output section, memory, and a processor, such as a personal computer, tablet terminal, or smartphone.
  • external device 9A or external device 9B may be a storage device (memory).
  • external device 9A may be a network storage device
  • external device 9B may be a storage device such as an HDD.
  • the external device 9A or the external device 9B may be a device having some of the functions of the components of each device (the three-dimensional reconstruction systems 100 and 100a) in the above-mentioned embodiments.
  • the computer 7 may transmit some or all of the processing results to the external device 9A or the external device 9B, and may receive some or all of the processing results from the external device 9A or the external device 9B.
  • data is output (including similar expressions), unless otherwise specified, this includes cases where data itself is used as output, or data that has been processed in some way (e.g., data with noise added, normalized data, features extracted from data, intermediate representations of various data, etc.) is used as output.
  • connection and “coupled” are used in this specification (including the claims), they are intended as open-ended terms that include direct connection/coupling, indirect connection/coupling, electrically connection/coupling, communicatively connection/coupling, functionally connection/coupling, physically connection/coupling, etc. These terms should be interpreted appropriately according to the context in which they are used, but any form of connection/coupling that is not intentionally or naturally excluded should be interpreted as being included in the terms without any limitations.
  • this may include that the physical structure of element A has a configuration capable of executing operation B, and that the permanent or temporary setting/configuration of element A is configured/set to actually execute operation B.
  • element A is a general-purpose processor
  • the processor has a hardware configuration capable of executing operation B, and is configured to actually execute operation B by setting a permanent or temporary program (instruction).
  • element A is a dedicated processor, dedicated arithmetic circuit, etc., it is sufficient that the circuit structure, etc. of the processor is implemented to actually execute operation B, regardless of whether control instructions and data are actually attached.
  • the pieces of hardware when multiple pieces of hardware perform a predetermined process, the pieces of hardware may work together to perform the predetermined process, or some of the hardware may perform all of the predetermined process. Also, some of the hardware may perform part of the predetermined process, and other hardware may perform the rest of the predetermined process.
  • the hardware performing the first process and the hardware performing the second process when an expression such as "one or more pieces of hardware perform a first process, and the one or more pieces of hardware perform a second process" (including similar expressions) is used, the hardware performing the first process and the hardware performing the second process may be the same or different. In other words, it is sufficient that the hardware performing the first process and the hardware performing the second process are included in the one or more pieces of hardware.
  • hardware may include electronic circuits, devices including electronic circuits, etc.
  • each of the multiple storage devices may store only a portion of the data, or may store the entire data. Also, a configuration in which some of the multiple storage devices store data may be included.
  • the loss function is not limited to those including the losses described in the above-mentioned embodiments, and may include losses calculated using a first coordinate and a second coordinate corresponding to a first pixel in a first viewpoint image and a second pixel in a second viewpoint image, respectively, which correspond to the same point on the actual object surface onto which the structured light is projected.
  • the distance loss L D according to the first embodiment, and the first loss L SR and the second loss L ST according to the second embodiment may be replaced with a loss L sdf ( ⁇ ) that makes the SDF of the intersection zero.
  • the loss L sdf may be the sum of the distances for all corresponding pixels.
  • the three-dimensional reconstruction system calculates the point ya on the light ray Ra( ⁇ ) that is closest to the light ray Rb( ⁇ ) and the point yb on the light ray Rb( ⁇ ) that is closest to the light ray Ra( ⁇ ) in Fig. 16.
  • the three-dimensional reconstruction system according to the embodiment may evaluate the distance between the two points (ya, yb) so that the two points are positioned at the same position, and calculate the absolute values of the SDFs at the points ya and yb as the loss so that the SDFs at these points are 0.
  • SDF Serial Distance Field
  • NeRF Neuronal Radiance Fields
  • the NeRF can be approximately expressed by a neural network that outputs the color (radiance) and opacity (volume density) of the point x viewed from the viewpoint, and corresponds to the object shape NN and the object color NN in each of the above-mentioned embodiments.
  • a sampling point xa where the opacity of a plurality of sampling points x on a ray passing from a first viewpoint through a first corresponding pixel changes significantly (changing from almost zero to a predetermined threshold value or more indicating the presence of an object) with respect to adjacent sampling points may be regarded as a point on the object surface (first coordinate corresponding to the first corresponding pixel), and a point xb (second coordinate corresponding to the second corresponding pixel) may be calculated in the same manner for a ray passing from a second viewpoint through a second corresponding pixel.
  • the first coordinates and the second coordinates may be used to calculate a distance loss or a geometric loss, and parameters of the neural network (object shape NN and object color NN) may be updated based on the calculated distance loss or geometric loss and the loss L- R .
  • a three-dimensional reconstruction method comprising the steps of: photographing an actual object onto which structured light is projected, from at least a first viewpoint and a second viewpoint, acquiring images from each viewpoint; identifying, based on a projection pattern of the structured light, a pixel in the image from the first viewpoint and a pixel in the image from the second viewpoint that correspond to an identical point on a surface of the actual object onto which the structured light is projected, as a first pixel and a second pixel, respectively; calculating, based on current parameters in an object shape neural network that reconstructs a three-dimensional shape of the object, a first coordinate corresponding to the first pixel and a second coordinate corresponding to the second pixel on the surface of the object reconstructed by the object shape neural network; and updating parameters of the object shape neural network by using at least the first coordinate and the second coordinate.
  • ⁇ 2> The 3D reconstruction method according to ⁇ 1>, wherein in updating the parameters, the parameters of the object shape neural network are updated in a direction in which the first coordinates and the second coordinates coincide with each other.
  • ⁇ 3> The 3D reconstruction method according to ⁇ 1> or ⁇ 2>, further acquiring an image of the actual object without projecting the structured light, for at least one viewpoint, further calculating a color of the object based on current parameters in an object color neural network representing a color of the object and current parameters in the object shape neural network, and updating parameters of the object shape neural network using at least information related to the first coordinates and the second coordinates, and the calculated color of the object.
  • ⁇ 4> The 3D reconstruction method according to any one of ⁇ 1> to ⁇ 3>, further acquiring images of the actual object without projecting the structured light, for at least one viewpoint, further calculating a color of the object represented by the object color neural network based on current parameters in the object color neural network representing the color of the object, and further updating parameters of the object color neural network using information about the calculated color of the object.
  • ⁇ 5> The 3D reconstruction method according to any one of ⁇ 1> to ⁇ 4>, further acquiring an image of the actual object without the structured light projected, for at least one viewpoint, further calculating a color of the object based on current parameters in an object color neural network representing a color of the object and current parameters in the object shape neural network, and updating parameters of the object shape neural network and the object color neural network using at least the first coordinates and the second coordinates, and information related to the calculated color of the object.
  • ⁇ 6> The 3D reconstruction method according to any one of ⁇ 1> to ⁇ 5>, wherein the structured light includes a plurality of projection patterns.
  • ⁇ 7> The 3D reconstruction method according to any one of ⁇ 1> to ⁇ 5>, wherein the structured light includes a plurality of linear patterns each extending in a first direction and arranged side by side in a second direction perpendicular to the first direction, and a plurality of linear patterns each extending in the second direction and arranged side by side in the first direction.
  • the method further includes using at least the first point and the second point to update parameters of the object shape neural network.
  • the 3D reconstruction method described in ⁇ 4> further comprising: acquiring an image of the actual object at the first viewpoint by a first camera; acquiring an image of the actual object at the second viewpoint by a second camera; calculating a first point obtained by projecting the second coordinates onto the first camera; and calculating a second point obtained by projecting the first coordinates onto the second camera.
  • the method further includes using at least the first point and the second point to update parameters of the object color neural network.
  • a three-dimensional reconstruction method comprising: photographing an actual object onto which structured light is projected, from at least a first viewpoint and a second viewpoint, obtaining images from each viewpoint; identifying, based on a projection pattern of the structured light, a pixel in the image from the first viewpoint and a pixel in the image from the second viewpoint that correspond to an identical point on a surface of the actual object onto which the structured light is projected, as a first pixel and a second pixel, respectively; and updating parameters of an object shape neural network so that, with regard to a three-dimensional shape of the object reconstructed by the object shape neural network, a point on the surface of the object corresponding to the first pixel coincides with a point on the surface of the object corresponding to the second pixel.
  • a three-dimensional reconstruction system including: a projection unit that projects structured light; a camera that acquires images from each of the first and second viewpoints by photographing an actual object onto which the structured light is projected, from at least a first viewpoint and a second viewpoint; a corresponding pixel identification unit that identifies, based on a projection pattern of the structured light, a pixel in the image from the first viewpoint and a pixel in the image from the second viewpoint that correspond to an identical point on a surface of the actual object onto which the structured light is projected, as a first pixel and a second pixel, respectively; a corresponding coordinate calculation unit that calculates, based on current parameters in an object shape neural network that reconstructs a three-dimensional shape of the object, a first coordinate corresponding to the first pixel and a second coordinate corresponding to the second pixel on a surface of the object reconstructed by the object shape neural network; and a model updating unit that updates parameters of the object shape neural network by using at least the first coordinate and the second coordinate.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Length Measuring Devices By Optical Means (AREA)

Abstract

オブジェクトの再構成精度を高くすることができる三次元再構成方法を提供する。三次元再構成方法は、構造化光が投影された実際のオブジェクトを少なくとも第1視点と第2視点から撮影することで得られる、それぞれの視点の画像を取得し、前記構造化光の投影パターンに基づいて、前記構造化光が投影された前記実際のオブジェクト表面上の同一点に対応する、前記第1視点の画像中の画素、及び、前記第2視点の画像中の画素、を、それぞれ、第1画素及び第2画素として特定し、前記オブジェクトの三次元形状を再構成するオブジェクト形状ニューラルネットワークにおける現在のパラメータに基づき、前記オブジェクト形状ニューラルネットワークで再構成された前記オブジェクトの表面上の、前記第1画素に対応する第1座標及び前記第2画素に対応する第2座標を計算し、前記第1座標及び前記第2座標を少なくとも用いて、前記オブジェクト形状ニューラルネットワークのパラメータを更新する。

Description

三次元再構成方法、及び三次元再構成システム
 本開示は、三次元再構成方法、及び三次元再構成システムに関する。
 従来、カメラにより異なる方向からオブジェクトを撮影して得られる複数の画像に基づき、オブジェクトの三次元モデルを生成する三次元再構成方法が知られている。このような三次元再構成方法は、3DCG(3 Dimensional Computer Graphics)等において使用される。
 また、ニューラルネットワークを用いたボリュームレンダリングにより、三次元再構成を行う技術が存在している。
Peng Wang他、「35th Conference on Neural Information Processing Systems」,16,December,2021、インターネット<URL:https://arxiv.org/pdf/2106.10689.pdf>、インターネット<URL:https://lingjie0206.github.io/papers/NeuS/index.htm>
 しかしながら、従来の三次元再構成方法では、オブジェクトが単色テクスチャレスのものである場合等に、オブジェクトの再構成精度が低い場合がある。
 本開示は、オブジェクトの再構成精度を高くすることができる三次元再構成方法及び三次元再構成システムを提供することを目的とする。
 本開示の実施形態の一観点に係る三次元再構成方法は、構造化光が投影された実際のオブジェクトを少なくとも第1視点と第2視点から撮影することで得られる、それぞれの視点の画像を取得し、前記構造化光の投影パターンに基づいて、前記構造化光が投影された前記実際のオブジェクト表面上の同一点に対応する、前記第1視点の画像中の画素、及び、前記第2視点の画像中の画素、を、それぞれ、第1画素及び第2画素として特定し、前記オブジェクトの三次元形状を再構成するオブジェクト形状ニューラルネットワークにおける現在のパラメータに基づき、前記オブジェクト形状ニューラルネットワークで再構成された前記オブジェクトの表面上の、前記第1画素に対応する第1座標及び前記第2画素に対応する第2座標を計算し、前記第1座標及び前記第2座標を少なくとも用いて、前記オブジェクト形状ニューラルネットワークのパラメータを更新する。
 本開示によれば、オブジェクトの再構成精度を高くすることができる三次元再構成方法及び三次元再構成システムを提供できる。
実施形態に係る三次元再構成システムの全体構成例の図である。 第1実施形態に係る制御装置の機能構成例の図である。 図2の制御装置におけるモデル生成部の機能構成例の図である。 構造化光の投影パターン例の図である。 第1カメラ及び第2カメラによる撮影画像例の図である。 構造化光が投影されていないオブジェクトの撮影画像例の図である。 三次元シーンの一例を説明する図である。 第1画像及び第2画像における対応画素の特定結果例の図である。 対応画素と対応座標との関係の一例を説明する図である。 図2の制御装置による処理例のフローチャートである。 図2の制御装置のレンダリング部による処理例のフローチャートである。 図2の制御装置のモデル出力部による処理例のフローチャートである。 第2実施形態に係る制御装置の機能構成例の図である。 図13の制御装置におけるモデル生成部の機能構成例の図である。 第2実施形態に係る第1損失の一例を説明する図である。 第2実施形態に係る第2損失の一例を説明する図である。 図13の制御装置による処理例のフローチャートである。 実施形態に係る制御装置のハードウェア構成例のブロック図である。
 以下、添付図面を参照しながら実施形態について詳細に説明する。説明の理解を容易にするため、各図面において同一の構成要素に対しては可能な限り同一の符号を付して、重複する説明は適宜省略する。
 [実施形態]
 <三次元再構成システム100の全体構成例>
 図1を参照して、本実施形態に係る三次元再構成システム100の構成を説明する。図1は、三次元再構成システム100の全体構成の一例を示す図である。図1において、X方向、Y方向及びZ方向は互いに垂直な方向である。Z方向は載置面の法線方向であり、典型的には鉛直方向である。Z正方向側を上側、Z負方向側を下側と表記する。X方向及びY方向は載置面の延在方向であり、典型的には水平方向である。
 図1に示すように、三次元再構成システム100は、支持台2と、第1カメラ3と、第2カメラ4と、回転部5と、投影部6と、制御装置70と、を有する。なお、支持台2及び回転部5は必須の構成部ではなく、三次元再構成システム100が必ずしも有さなくてよい。
 三次元再構成システム100は、第1カメラ3及び第2カメラ4により、異なる方向からオブジェクト10を撮影した複数の画像に基づき、オブジェクト10の三次元モデルを生成する。オブジェクト10としては、例えば図1に例示されるテクスチャレスな円筒オブジェクトの他、上面視において支持台2の外縁の内側に載置可能なサイズを有する任意の形状のもの等が挙げられる。
 本明細書及び特許請求の範囲において、「オブジェクト」には、現実に存在して三次元再構成の対象となる物体、すなわち被写体と、この被写体を撮影した複数の画像に基づき再構成されたものと、の両方が含まれる。「オブジェクト」が現実に存在する被写体を指すか、或いは再構成されたものを指すかは、文脈に応じて適宜区別できる。例えば、「オブジェクトを支持台に載置する」等の現実空間におけるオブジェクトの取り扱いを示す場合には、「オブジェクト」は現実に存在する被写体を意味する。一方、「オブジェクトを記憶する」又は「オブジェクトを再構成する」等の仮想空間におけるオブジェクトの取り扱いを示す場合には、「オブジェクト」は現実に存在する被写体を再構成したものを意味する。「実際のオブジェクト」は、現実に存在して三次元再構成の対象となる被写体に対応する。
 支持台2は、オブジェクト10を上面2Aに載置し、回転させる台座である。支持台2は、アクリル板等の透明板である。支持台2は透明板であるので、図2に示すように上面2Aの裏側となる下面2Bからも、上面2Aに載置されたオブジェクト10を撮影可能である。三次元再構成システム100は、支持台2に透明板を用いることにより、オブジェクト10を全方位から撮影できるため、情報の欠落がないオブジェクト10の三次元再構成情報を得ることができる。
 第1カメラ3及び第2カメラ4のそれぞれは、上面2Aに載置されたオブジェクト10を異なる方向から撮影可能なカメラの一例である。第1カメラ3は、支持台2の上面2A側の方向に設置され、上面2Aに対する斜め上方向からオブジェクト10に向けられてオブジェクト10を撮影可能である。第1カメラ3は、異なる傾斜角度でそれぞれ設置される。なお、カメラの個数は、1以上であればよい。
 第2カメラ4は、第1カメラ3の下方に設置され、第1カメラ3よりも下方からオブジェクト10に向けられてオブジェクト10を撮影可能である。第2カメラ4は、異なる傾斜角度でそれぞれ設置される。
 第1カメラ3及び第2カメラ4のそれぞれは、オブジェクト10のR(Red)、G(Green)、B(Blue)の各色を含むRGB画像を撮影できる、いわゆるRGBカメラであってもよいが、これに限定されない。例えば赤外線カメラであってもよい。
 図1において、第1カメラ3から延びる破線の矢印は、第1カメラ3からのある1つの視線の方向である第1視線方向ベクトルv1を表している。第1視線方向ベクトルv1は、第1視点に対応する。第2カメラ4から延びる破線の矢印は、第2カメラ4からのある1つの視線の方向である第2視線方向ベクトルv2を表している。第2視線方向ベクトルv2は、第2視点に対応する。本明細書では、第1視線方向ベクトルv1と第2視線方向ベクトルv2を区別しない場合は、視線方向ベクトルvとして総称表記する場合がある。
 本実施形態では、「カメラ」は、オブジェクト10のRGB画像を撮像できる要素を意味する。この「カメラ」は、カメラ装置全体や、カメラ装置に内蔵されるCMOSセンサや深度センサなどのセンサ類や、単体で用いられるセンサを包含している。この「カメラ」は、オブジェクト10に投影された構造化光60を撮影できるように、構造化光60に含まれる投影パターンの空間周波数に応じた空間分解能を有することが好ましい。例えば本実施形態では、空間周波数が高い構造化光60を撮影できるように、4Kカメラ等の高空間分解能のカメラを使用することが好ましい。
 第1カメラ3及び第2カメラ4のそれぞれは、内部パラメータと、外部パラメータと、を有する。内部パラメータは各カメラが備えるレンズの歪曲に関連する情報等を含む。本実施形態では、内部パラメータは、シミュレーション結果等に基づき既知である。外部パラメータは、各カメラの姿勢(ポーズ)に関する情報等を含む。カメラの姿勢は、所定の基準に対するカメラの相対姿勢と、世界座標系における絶対姿勢と、を含む。なお姿勢とは、位置と向きを含む。またカメラの姿勢は、各カメラに含まれるレンズ等の光学系の光軸の傾きに対応する。外部パラメータは、シミュレーション結果等に基づき既知であるか、或いは三次元再構成システム100による再構成動作ごとに任意の方法によって計算可能である。本実施形態では、外部パラメータはシミュレーション結果等に基づき既知である場合を例示する。
 回転部5は、支持台2を回転させることにより、オブジェクト10を回転させる。回転部5は、例えば支持台2を矢印20方向に回転させる。第1カメラ3及び第2カメラ4のそれぞれは、回転部5による複数の回転角度ごとにオブジェクト10を撮影することにより、異なる方向からオブジェクト10の画像を撮影できる。
 回転部5の機構には公知の動力伝達系を使用できる。例えば、回転部5はモータとギヤ機構とを有する。回転部5は、モータの駆動力がギヤ機構を介して支持台2の回転軸に伝達されるように構成されてもよい。或いは回転部5は、支持台2の外縁部に駆動力を付与して支持台2を回転させるように構成されてもよい。
 投影部6は、実際のオブジェクト10に構造化光60を投影する。構造化光60は、所定のパターンを有する光である。図1に示した例では、構造化光60は、それぞれがZ方向、換言すると縦方向、に延伸する線状パターンであって、Z方向に直交する方向、換言すると横方向、に並んで配置される複数の線状パターンを含んでいる。構造化光60に含まれる線状パターンの延伸方向と直交する方向における断面光強度分布の形状は、ここでは略矩形状であるが、略正弦波状等の他の形状であってもよい。縦方向は第1の方向の一例であり、横方向は第2の方向の一例である。ここでの構造化光60の投影パターンは、横方向において所定の空間周波数を有する。投影部6が構造化光60を投影することにより、実際のオブジェクト10の表面上には、構造化光60が有する所定のパターンが投影される。
 本実施形態では、構造化光60は、所定の複数の投影パターンを有してもよい。複数の投影パターンは、例えば複数の画像から構成される。構造化光60は、線状パターンの空間周波数が互いに異なる複数の投影パターンを有してもよい。或いは、構造化光60は、線状パターンが延伸する向きが互いに異なる複数の投影パターンを有してもよい。投影パターンの画像の各画素(各画素の位置)は、複数の投影パターンに符号化(エンコード)でき、構造化光60の各投影パターンが投影された状態で撮影された各画像に含まれる投影パターンを復号化(デコード)することで、撮影された画像の各画素が投影パターンの画像のどの画素に対応するかが計算できる。本実施形態では、構造化光60の所定の複数の投影パターンに基づいて、第1カメラ3及び第2カメラ4のそれぞれにより撮影された画像の各画素が投影パターンの画像のどの画素に対応するかが計算できるので、これら複数の投影パターンを手掛かりに、互いにオブジェクト表面上の同一点に対応する、第1カメラ3により撮影された第1画像における第1画素と、第2カメラ4により撮影された第2画像における第2画素と、を対応付けることができる。但し、構造化光60は、上記の第1画素と第2画素とを対応付けることができれば、必ずしも複数の画像で構成される複数の投影パターンを有さなくてもよく、1つの画像で構成される複数の投影パターンを有してもよい。
 本実施形態では、構造化光60は、それぞれが横方向に延伸する線状パターンであって、縦方向に並んで配置される複数の線状パターンを含んでもよい。この場合の構造化光60の投影パターンは、縦方向において所定の空間周波数を有する。
 また、本実施形態では、構造化光60が、それぞれが縦方向に延伸し、横方向に並んで配置される複数の線状パターンと、それぞれが横方向に延伸し、縦方向に並んで配置される複数の線状パターンの、それぞれを含んでもよい。これにより、カメラの姿勢が正確であれば前者の複数の線状パターンとエピポーラ線が求まれば対応点を確定できるところ、カメラの姿勢がそれほど正確ではなくとも前者の複数の線状パターンと後者の複数の線状パターンの両方を用いることで、上記の第1画素と第2画素との対応付け精度を高くすることができる。なお、構造化光60は、縦方向及び横方向のそれぞれに延伸する線状パターンに代えて、あるいはこれらに加えて、斜め方向に延伸する線状パターンを含んでもよいし、円状パターン、曲線状パターン等の線状パターン以外のパターンを含んでもよい。また、構造化光60によって投影されるパターンは、所定の幾何学模様が繰り返されるパターンに限られず、上記エンコードが可能なパターンであればよい。
 なお、構造化光60については、別途、図4も参照して詳述する。
 投影部6は、第1カメラ3及び第2カメラ4のそれぞれが、実際のオブジェクト10に投影された構造化光60を撮影できるように、実際のオブジェクト10に構造化光60を投影する。例えば、図1に示すように、投影部6は、第1カメラ3と第2カメラ4との間に配置され、この位置から実際のオブジェクト10に構造化光60を投影する。投影部6は、特に第1カメラ3及び第2カメラ4による撮影画像内においてオブジェクト10表面に投影された構造化光60の陰影が無くなるように、第1カメラ3及び第2カメラ4の設置位置に応じて配置されることが好ましい。
 投影部6は、第1カメラ3及び第2カメラ4それぞれによる撮影に同期して構造化光60を実際のオブジェクト10に投影する。例えば、投影部6は、第1カメラ3及び第2カメラ4それぞれによる撮影における露光に同期して構造化光60を実際のオブジェクト10に投影する。投影部6による投影と、第1カメラ3及び第2カメラ4それぞれによる撮影と、が同期することで、三次元再構成システム100は、所望のパターンが投影された実際のオブジェクト10の撮影画像を取得できる。なお、構造化光60の投影と各カメラによる撮影とを厳密に同期することを不要とするべく、各カメラによる撮影を静止画撮影ではなく動画撮影で行ってもよい。
 投影部6は、例えば、所定のパターンを含む画像を投影可能なプロジェクタである。或いは、投影部6は、所定のパターンを表示する液晶パネルや有機EL(Electro Luminescence)パネル等の表示部と、表示部に光を照射する光源と、を組み合わせて構成されてもよい。また、投影部6は、1以上のプロジェクタ、表示部及び光源の1以上の組合せ等を含んで構成されてもよい。複数のパターンを有する構造化光60を投影する観点では、投影部6は、投影パターンを容易に変更可能なものであることが好ましい。
 制御装置70は、三次元再構成システム100の動作を制御する。具体的には、制御装置70は、投影部6による投影動作、第1カメラ3及び第2カメラ4によるオブジェクト10の撮影動作等を制御する。また、制御装置70は、オブジェクト10の撮影画像に基づき、オブジェクト10の三次元モデルを生成することにより、オブジェクト10を再構成する。本実施形態では、制御装置70は、第1カメラ3及び第2カメラ4により撮影された複数のRGB画像に基づき、オブジェクト10の再構成情報を出力するように構成されている。
 三次元再構成システム100は、上記の構成部の他、オブジェクト10に光を照明する照明部等、他の構成部をさらに有してもよい。照明部は、特に第1カメラ3及び第2カメラ4による撮影画像内においてオブジェクト10の表面の陰影が無くなるように、第1カメラ3及び第2カメラ4の設置位置に応じて配置されることが好ましい。
 [第1実施形態]
 <制御装置70の機能構成例>
 図2は、第1実施形態に係る制御装置70の機能構成の一例を示すブロック図である。制御装置70は、投影制御部701と、撮影制御部702と、姿勢取得部703と、モデル生成部704と、を有する。これら各機能は、CPU(Central Processing Unit)等のプロセッサ又は電気回路によって実現される他、1以上の電気回路又は1以上のプロセッサによって実現されてもよい。また上記各機能は、制御装置70と、制御装置70以外の構成部と、の分散処理によって実現されてもよい。
 投影制御部701は、投影部6の動作を制御する。例えば、投影制御部701は、第1カメラ3及び第2カメラ4のそれぞれによる撮影に同期して、オブジェクト10に所定のパターンを有する構造化光を投影するように投影部6の動作を制御する。
 撮影制御部702は、回転部5による回転中に、第1カメラ3及び第2カメラ4によりオブジェクト10を撮影して複数の画像を取得するように、回転部5、第1カメラ3、第2カメラ4の各動作を制御する。なお、撮影制御部702は、照明の制御を行ってもよい。
 姿勢取得部703は、予め取得され、メモリに記憶された第1カメラ3及び第2カメラ4それぞれの姿勢情報を取得する。
 モデル生成部704は、第1カメラ3及び第2カメラ4によるオブジェクト10の複数の撮影画像と、姿勢取得部703により取得された第1カメラ3及び第2カメラ4それぞれの姿勢に関する情報と、に基づき、オブジェクト10の三次元モデルを生成することにより、オブジェクト10を再構成する。モデル生成部704は、生成したオブジェクト10の三次元モデルをオブジェクト10の再構成情報として出力する。三次元モデルは、オブジェクト10だけを表現したものでも、オブジェクト10を含むシーンそのものを表現したものでもよい。本実施形態では、モデル生成部704は、三次元情報をレンダリングして得られた画像と、撮影画像と、の誤差(すなわち損失)に基づく機械学習による方法で、オブジェクト10を再構成する。
 また、本実施形態では、モデル生成部704は、構造化光60が投影された実際のオブジェクト10の画像を、少なくとも第1視点(例えば、図1の第1視線方向ベクトルv1を含む視点)と第2視点(例えば、図1の第2視線方向ベクトルv2を含む視点)とを含む2視点分、取得する。モデル生成部704は、構造化光60の投影パターンに基づいて、構造化光60が投影された実際のオブジェクト10表面上の同一点に対応する、第1視点の画像中の第1画素、及び、第2視点の画像中の第2画素、を特定する。モデル生成部704は、オブジェクト10の三次元形状を再構成するオブジェクト形状ニューラルネットワーク(以下、オブジェクト形状NN(Neural Network)という)における現在のパラメータθに基づき、オブジェクト形状NNで再構成されたオブジェクト10の表面上において、第1画素に対応する第1座標、及び、第2画素に対応する第2座標を計算する。第1座標及び第2座標は、三次元座標である。モデル生成部704は、第1座標及び第2座標を少なくとも用いて、オブジェクト形状NNのパラメータを更新する。すなわち、モデル生成部704は、後述されるように、オブジェクト形状NNによって再構成されるオブジェクト10の三次元形状に関し、第1画素に対応するオブジェクト10の表面上の点と、第2画素に対応するオブジェクト10の表面上の点と、が一致するように、オブジェクト形状NNのパラメータを更新する。なお、第1座標及び第2座標を用いてオブジェクト形状NNのパラメータを更新する、とは、第1座標及び第2座標の三次元座標の情報をオブジェクト形状NNのパラメータ更新に関する損失関数に直接的に組み込むこと、および、第1座標及び第2座標の三次元座標に基づいて得られる別の情報をオブジェクト形状NNのパラメータ更新に関する損失関数に組み込むことを概念的に含む。例えば、第1座標及び第2座標の三次元座標を二次元平面に投影して得られる二次元座標の情報をオブジェクト形状NNのパラメータ更新に関する損失関数に組み込むことがこの概念に含まれる。
 また、本実施形態では、モデル生成部704は、構造化光60が投影されていない実際のオブジェクト10の画像を、少なくとも2視点分、さらに取得してもよい。モデル生成部704は、オブジェクト形状NNにおける現在のパラメータθ、及び、オブジェクト10の色を表現するオブジェクト色ニューラルネットワーク(以下、オブジェクト色NNという)における現在のパラメータφに基づき、オブジェクト形状NN及びオブジェクト色NNで表現されたオブジェクト10の色をさらに計算する。モデル生成部704は、計算されたオブジェクト10の色に関する情報を用いてオブジェクト形状NN及びオブジェクト色NNのパラメータをさらに更新する。構造化光60が投影されていない実際のオブジェクト10の画像をオブジェクト形状NNの更新に用いることで、構造化光60がうまく投影されにくい透明や金属の材質のオブジェクト10の形状を学習することができる。
 <モデル生成部704の機能構成例>
 次に、図3~図9を参照して、モデル生成部704の機能構成について説明する。図3は、モデル生成部704の機能構成の一例を示すブロック図である。図4は、構造化光60の投影パターンの一例を示す図である。図5は、第1カメラ3及び第2カメラ4それぞれによる撮影画像の一例を示す図である。図6は、構造化光60が投影されていないオブジェクトの撮影画像の一例を示す図である。図7は、三次元シーン55の一例を説明する図である。図8は、第1画像30及び第2画像40における対応画素の特定結果の一例を説明する図である。図9は、対応画素と対応座標との関係の一例を説明する図である。
 図3に示すように、モデル生成部704は、取得部41と、オブジェクトデータ記憶部42と、レンダリング部43と、対応画素特定部44と、対応座標計算部45と、モデル更新部46と、モデル出力部47と、を有する。
 取得部41は、構造化光60が投影された実際のオブジェクト10の画像を、少なくとも第1視点と第2視点とを含む2視点分、取得する。具体的には、取得部41は、図2に示した撮影制御部702を介して、第1カメラ3より撮影された第1画像30を第1視点の画像として取得する。また、取得部41は、撮影制御部702を介して、第2カメラ4により撮影された第2画像40を第2視点の画像として取得する。
 図4に示す例では、構造化光60は、構造化光60-1、構造化光60-2、・・・、及び構造化光60-NからなるN通りの投影パターンを含む。構造化光60-1、構造化光60-2、・・・、及び構造化光60-Nは、それぞれ縦方向に延伸する線状パターンを含み、各線状パターンの空間周波数が相互に異なっている。各線状パターンの空間周波数は、構造化光60-1、構造化光60-2、・・・、構造化光60-Nの順に高くなっている。
 投影部6は、第1カメラ3及び第2カメラ4による撮影に同期させ、構造化光60-1、構造化光60-2、・・・、及び構造化光60-Nを順次、オブジェクト10に投影する。第1カメラ3は、異なる投影パターンの構造化光60(60-1、60-2、・・・、60-N)が投影されたオブジェクト10の第1画像30(30-1、30-2、・・・、30-N)を撮影する。第2カメラ4は、異なる投影パターンの構造化光60(60-1、60-2、・・・、60-N)が投影されたオブジェクト10の第2画像40(40-1、40-2、・・・、40-N)を撮影する。
 図5において、第1画像30は、第1画像30-1、第1画像30-2、・・・、及び第1画像30-Nを含む。第1画像30-1は、構造化光60-1が投影された状態のオブジェクト10を撮影した撮影画像である。第1画像30-2は、構造化光60-2が投影された状態のオブジェクト10を撮影した撮影画像である。第1画像30-Nは、構造化光60-Nが投影された状態のオブジェクト10を撮影した撮影画像である。他の第1画像30についても同様である。
 第2画像40は、第2画像40-1、第2画像40-2、・・・、及び第2画像40-Nを含む。第2画像40-1は、構造化光60-1が投影された状態のオブジェクト10を撮影した撮影画像である。第2画像40-2は、構造化光60-2が投影された状態のオブジェクト10を撮影した撮影画像である。第2画像40-Nは、構造化光60-Nが投影された状態のオブジェクト10を撮影した撮影画像である。他の第2画像40についても同様である。
 なお、本明細書では、第1画像30及び第2画像40のそれぞれがRGB画像である例を示すが、これに限定されず、第1画像30及び第2画像40のそれぞれはモノクロ画像やグレースケール画像であってもよい。第1画像30及び第2画像40のそれぞれは1画素あたり3階調以上の階調を持つ画像であってよい。
 本明細書に示す例では、三次元再構成システム100は、図1に示した支持台2を所定角度刻みで間欠的に回転させる(例えば30°刻みで1周360°回転させる)ことにより、支持台2上のオブジェクト10を所定角度刻みで間欠的に回転させる。三次元再構成システム100は、所定角度ごとにオブジェクト10の回転を停止させた各状態において、N通りのパターンの構造化光60が投影されたオブジェクト10を、第1カメラ3及び第2カメラ4により撮影する。取得部41は、上記の所定角度ごとで、N個の第1画像30とN個の第2画像40とを取得する。
 三次元再構成システム100は、オブジェクト10を回転させ、所定角度ごとで撮影を行うことにより、複数の撮影方向からオブジェクト10を撮影することができる。つまり、三次元再構成システム100は、第1カメラ3及び第2カメラ4の2視点に対し、オブジェクト10に対する視点数をさらに増やして撮影画像を取得できる。視点数が増えることで、三次元再構成の精度を高くすることができる。但し、三次元再構成システム100は、オブジェクト10を回転させず、カメラの数を増やす、あるいは、カメラをオブジェクト10の周りに間欠的に回転させることでオブジェクト10に対する視点の数を増やしてもよい。また、三次元再構成システム100は、間欠的な回転に限らず、連続的にオブジェクト10を回転させて撮影を行ってもよい。
 また、本実施形態では、取得部41は、構造化光が投影されていない実際のオブジェクト10の画像を、少なくとも1視点分、さらに取得してもよい。図6において、第3画像50は、構造化光が投影されていない実際のオブジェクト10の撮影画像である。第3画像50は、撮影制御部702を介して、第1カメラ3及び第2カメラ4の少なくとも一方により取得される、「少なくとも1視点分の画像」である。第3画像50は、カラー画像(例えばRGB画像)である。本明細書に示す例では、三次元再構成システム100は、支持台2を連続的に回転させることで、支持台2上のオブジェクト10を連続的に回転させる。三次元再構成システム100は、構造化光が投影されていないオブジェクト10を、連続回転中に、所定角度ごとで第1カメラ3及び第2カメラ4の少なくとも一方によって撮影する。取得部41は、上記の所定角度ごとで第3画像50を取得する。
 三次元再構成システム100は、第1画像30及び第2画像40に加えて第3画像50をさらに取得することで、オブジェクト10の形状だけでなく、オブジェクト10の色を再構成できる。また、三次元再構成システム100は、第1画像30及び第2画像40に加えて第3画像50を取得することで、構造化光60が投影されたオブジェクト10の画像のみに基づいて再構成する場合と比較して、オブジェクト10の形状の再構成精度を高くすることができる。
 取得部41は、上記の他、図2の姿勢取得部703により取得された第1カメラ3及び第2カメラ4の姿勢情報を取得する。
 取得部41は、第1画像30、第2画像40及び第3画像50と、第1カメラ3及び第2カメラ4それぞれの姿勢に関する情報と、をレンダリング部43及び対応画素特定部44のそれぞれに出力する。
 図3におけるオブジェクトデータ記憶部42は、オブジェクト10の形状と色を表すデータを記憶する。図7を参照して、オブジェクト10の形状を表すデータの一例を説明する。図7は、第1カメラ3、オブジェクト10、視線方向ベクトルv、カメラビュー51等を含む三次元シーン55を示している。なお、ここでは第1カメラ3を例示するが、第2カメラ4に置換可能である。
 オブジェクト10の形状を表すデータの一例は、三次元シーン中の各点(location)に対応して形成される場を意味するSDF(Signed Distance Field)である。SDFに含まれる各点は、その点から最も近いオブジェクト10の表面までの符号付き距離の情報を含む。図7における距離dは、この符号付距離を表している。符号付き距離は、オブジェクト10の内側の点については負(-)の値をとり、オブジェクト10の外側の点については正(+)の値をとる。SDFのゼロ等値面がオブジェクト10の表面を表す。
 視線方向ベクトルvは、カメラからの視線に対応し、光線又はレイ(Ray)とも呼ばれる。カメラビュー51は、第1カメラ3から見た画像として生成(レンダリング)された画像である。カメラビュー51における位置Pでの画素の色は、その画素を通るカメラからの視線方向ベクトルv上の三次元シーンの各点から発する光の色(点の色)により決定される。この光の色は、視線方向ベクトルv上の各三次元座標における色情報の累積である重み付け和により算出できる。
 サンプリング点Smは、視線方向ベクトルv上での画素の色のサンプリング点を表している。各サンプリング点Smには重みが付与される。重みは、オブジェクト10の表面に近づくにつれ大きくなる。サンプリング点Smに付与される重みは、そのサンプリング点Smに対して計算されるSDFの関数として表現されてもよい。領域Arは、重みが他の領域に対して相対的に大きくなる領域を示している。
 SDFは、ニューラルネットワークによってニューラル場として近似的に表現されてもよい。このニューラルネットワークは、例えば、三次元シーン55中の点x(三次元座標:x=(x,y,z))を入力すると、その点xからオブジェクト10の表面までの符号付き距離dを出力するものである。このニューラルネットワークは、オブジェクト形状NNに対応する。オブジェクト形状NNは、SDFのゼロ等値面すなわちオブジェクト表面を表現できるので、オブジェクト10の形状を表現するデータに対応する。
 オブジェクト10の色を表すデータの一例は、三次元シーン55中の点xそれぞれについて、視線方向によって条件付けされたその点xの色(例えばRGB値)を表すベクトル場(Color Field)である。このベクトル場は、ニューラルネットワークによってニューラル場として近似的に表現されてよい。このニューラルネットワークは、例えば、三次元シーン中の点xと、その点xに対する視線方向ベクトルvと、を入力すると、その点xに対応する画素の色cを出力するものである。このニューラルネットワークは、オブジェクト色NNに対応する。オブジェクト色NNは、オブジェクト10の色を表現するデータに対応する。
 図3におけるレンダリング部43は、オブジェクト10の形状と色を表すデータとしてオブジェクトデータ記憶部42に記憶されているオブジェクト形状NN及びオブジェクト色NNを用いて、図7におけるカメラビュー51を生成する。カメラビュー51の生成は、本実施形態ではボリュームレンダリング法に従い、例えばNeuS(Neural Surface reconstruction method)論文の手法(例えば、非特許文献1を参照)を用いて、画素ごとに行ってよい。
 対応画素特定部44は、構造化光60の複数の投影パターンに基づいて、構造化光60が投影された実際のオブジェクト10表面上の同一点に対応する、第1視点の第1画像30中の第1画素、及び、前記第2視点の画像中の第2画素、を特定する。
 例えば、第1画像30における第1画素Pa0と第2画像40における第2画素Pb0は、実際のオブジェクト10表面状の同一点(同じ位置)を撮影した画素である場合を、図5を用いて説明する。第1画像30における第1画素Pa0は、構造化光60の投影パターンに応じてその輝度が変化する。すなわち第1画素Pa0は、第1画像30-1では暗輝度、第1画像30-2では暗輝度、・・・、第1画像30-Nでは明輝度になる。一方、第2画像40における第2画素Pb0は、第1画素Pa0と同様に、第2画像40-1では暗輝度、第2画像40-2では暗輝度、・・・、第2画像40-Nでは明輝度になる。対応画素特定部44は、複数の撮影画像(例えば第1画像30と第2画像40)において実際のオブジェクト10上で同一点(同じ位置)を表す複数の画素(例えば第1画素Pa0と第2画素Pb0)を、対応画素として特定する。
 なお、上記の暗輝度は、撮影画像において、構造化光60における暗いパターンが投影されたオブジェクト10上での位置に対応する画素の輝度を意味する。明輝度は、撮影画像において、構造化光60における明るいパターンが投影されたオブジェクト10上での位置に対応する画素の輝度を意味する。暗輝度の画素、明輝度の画素はそれぞれ、暗画素、明画素と呼んでもよい。
 三次元再構成システム100において、上述した符号化処理は、構造化光60-1、構造化光60-2、・・・、構造化光60-Nにより、各画素について、画素の位置を暗輝度および明輝度の組合せで表す処理に対応する。一方、上述した復号化処理は、撮影画像に含まれる各画素について、複数の投影パターンによる暗輝度および明輝度の組み合わせに基づいて画素の位置を取得する処理に対応する。
 図8に示すように、対応画素特定部44は、第1画素Pa及び第2画素Pb等の対応画素を、第1画像30および第2画像40における、実際のオブジェクト10に投影された構造化光60が映っている全画素で特定できる。図8における対応線P0は、第1画素Pa0と第2画素Pb0等の対応画素同士を結ぶ線であり、説明のために対応画素同士を可視化したものである。
 図3における対応座標計算部45について、図9を参照して説明する。図9において、三次元シーン55中に点xを与えると、その点xと、その点xに最も近いオブジェクト10の表面と、の符号付き距離を返す関数S(x)は、パラメータθを有するオブジェクト形状NNによって表現される関数S(x;θ)により近似できる。関数S(x)は、上述したSDFに対応し、関数S(x;θ)は、SDFを近似したものに対応する。S(x)=0となる時の点xの座標は、オブジェクト10表面の座標に対応する。
 第1画素Paは、第1カメラ3による第1画像30内での画素を表している。第2画素Pbは、第2カメラ4による第2画像40内での画素を表している。第1画素Paと第2画素Pbは、対応画素特定部44によって、対応付けられた画素である。
 第1画素Pa及び第2画素Pbは、オブジェクト10表面に投影された構造化光60上の同じ点を撮影したものである。このため、S(x;θ)=0によって表現されたオブジェクト10表面と第1画素Paを通る視線方向ベクトルとの交点の第1座標xaと、オブジェクト10表面と画素Pbを通る視線方向ベクトルとの交点の第2座標xbと、は同じ座標になるべきである。従って、距離|xa-xb|、すなわち、第1座標xaと第2座標xbとが近づくと値が小さくなる指標(項)を距離損失Lとして含む損失関数を用いて、オブジェクト形状NNの関数S(x;θ)におけるパラメータθを最適化すると、第1座標xaと第2座標xbとが一致する方向にS(x;θ)のゼロ等値面が移動し、オブジェクト10表面の形状を精確に表現する関数S(x;θ)を得ることができる。なお、距離損失Lは、全ての対応画素についての距離の和でよい。ここで、損失関数とは、上述の指標で表された損失の他に、オブジェクト形状NN及びオブジェクト色NNによってあらわされる三次元情報(オブジェクトの形状および色)を基にしたレンダリングによって得られた画像(カメラビュー)と、撮影画像と、の誤差(すなわち損失)を含みうる関数をいう。なお、図9において、第1座標xa’は、第1座標xaと第2座標xbを同じ座標にするためにS(x;θ)のゼロ等値面を移動させた後の第1座標xaを表している。同様に、第2座標xb’は、第1座標xaと第2座標xbを同じ座標にするためにS(x;θ)のゼロ等値面を移動させた後の第2座標xbを表している。
 関数S(x;θ)=0を満たす点xの集合がオブジェクトの表面を表すので、姿勢οを持つカメラからの光線(レイ)と、オブジェクトの表面との交点xは、次の式(1)によって求められる(例えば、インターネット<URL:https://arxiv.org/pdf/2003.09852.pdf>を参照)。光線は、カメラの中心からカメラビューにおける画素Pを通る光線であり、その視線方向ベクトルはνであるとする。この式(1)は、現在のパラメータθとカメラの姿勢の情報であるカメラパラメータτ(本実施形態においてτは既知)おいて、ο=ο)、t=t(θ、τ)、ν=ν(τ)、x=ο+t・νtとし、式S(x;θ)=0の陰関数微分を利用して求められる。なお、式(1)を用いずに、光線上に複数のサンプル点xを設定して各サンプル点xについてS(x;θ)を計算し、S(x;θ)≒0とみなせるサンプル点xを、光線とオブジェクトの表面との交点として求めてもよい。
Figure JPOXMLDOC01-appb-M000001
 図3における対応座標計算部45は、オブジェクト10の三次元形状を再構成するオブジェクト形状NNにおける現在のパラメータθに基づき、該オブジェクト形状NNで再構成されたオブジェクト10の表面上において、第1画素Paに対応する第1座標xa及び第2画素Pbに対応する第2座標xbを計算する。対応座標計算部45は、計算した第1座標xa及び第2座標xbを、モデル更新部46に出力する。
 モデル更新部46は、第1座標xa及び第2座標xbを少なくとも用いて、オブジェクト形状NNのパラメータθを更新する。また、モデル更新部46は、計算されたオブジェクト10の色に関する情報を用いて、オブジェクトデータ記憶部42に記憶されているオブジェクト形状NN及びオブジェクト色NNのパラメータをさらに更新する。例えば、モデル更新部46は、レンダリング部43によって生成された図7における複数のカメラビュー51それぞれについて、カメラビュー51と、実際に撮影された第3画像50との損失L(θ、φ、τ)を計算する。この損失Lは、例えばカメラビュー51と第3画像50との間において、対応する画素同士の色の差を全画素について累積することにより計算できる。但し、損失Lの定義は、上記の画素同士の色の差を全画素について累積したものに限定されず、他の定義であってもよい。また損失Lの計算方法は、上記の画素同士の色の差を全画素について累積計算する方法に限定されず、他の方法であってもよい。オブジェクト10の色を再構成せず、オブジェクト10の形状のみを再構成する場合には、モデル更新部46は、カメラビュー51と、実際に撮影された第1画像30又は第2画像40のどちらか一方との損失Lを計算してもよい。
 本実施形態では、モデル更新部46は、上記の損失Lに上記の距離損失Lを、重みλを付して加えて、次式から損失関数L(θ、φ、τ)を計算する。
L(θ、φ、τ)=L+λ
 損失関数L(θ、φ、τ)に、SDFの正則化拘束E(||∇S(x;θ)||-1)を所定の係数λで重みを付して加えてもよい。なお、Eは、xに関しての期待値を取ることを意味し、∇は、xに関して勾配を取ることを意味する。
 モデル更新部46は、上記の損失関数L(θ、φ、τ)に基づく誤差逆伝播法により、オブジェクト形状NN及びオブジェクト色NNの各パラメータを更新する。モデル更新部46は、所定の基準を満たすまで各NNの更新を繰り返す。モデル更新部46による更新の結果、最終的に得られるオブジェクト形状NN及びオブジェクト色NNは、実際のオブジェクト10の三次元形状と色、すなわち三次元モデルを表現するものとなる。所定の基準には、例えば損失L(θ、φ、τ)が所定値未満になるまで等といった基準を適用できる。或いは、所定の基準には、予め定められた回数分の更新が行われるまで等といった基準が適用されてもよい。
 ここで、例えばNeuS論文の手法では、複数視点の撮影画像に基づき、オブジェクト形状NNのパラメータθを最適化することで、オブジェクトの三次元形状を再構成する。しかしながら、NeuS論文の手法では、オブジェクトが単色テクスチャレスの領域を少なくとも一部に含むと、解が一意に定まらない(不良設定問題)等で三次元再構成の精度が低くなる場合がある。
 本実施形態では、構造化光60が投影されたオブジェクト10の第1画像30及び第2画像40を用いて、第1画像30と第2画像40との位置の対応関係に関する距離損失Lを損失関数L(θ、φ、τ)に含めて、パラメータθを最適化する。これにより、オブジェクトが単色テクスチャレスの領域を少なくとも一部に含む場合にも、望ましい解に近づく制約条件が加わり、三次元再構成の精度を高くすることができる。この結果、本実施形態では、オブジェクト10の再構成精度を高くすることができる三次元再構成方法及び三次元再構成システム100を提供できる。
 モデル更新部46は、更新の結果、得られる三次元モデルを再構成情報としてオブジェクトデータ記憶部42に格納する。また、モデル生成部704は、外部装置である表示装置又はPC(Personal Computer)等に再構成情報を出力することもできる。
 モデル出力部47は、オブジェクトデータ記憶部42に記憶されたデータを用いて、オブジェクト10の三次元モデルの形状を表す三次元メッシュデータと、この三次元メッシュデータに貼られるテクスチャマップと、を生成する。モデル出力部47は、これらを三次元ビューアにより閲覧可能なデータフォーマットに変換して出力する。
 本実施形態では、最終的に得られるオブジェクト形状NNは、SDFを表現するので、モデル出力部47は、このSDFのゼロ等値面を近似するメッシュを生成する。モデル出力部47は、例えば、マーチングキューブ法、或いは他の公知の方法を用いてSDFのゼロ等値面をメッシュデータに変換できる。またモデル出力部47は、例えば、メッシュを構成する各ポリゴンについて、ポリゴンの三次元座標と、この三次元座標におけるSDFのゼロ等値面の法線ベクトルの逆ベクトルと、をオブジェクト色NNに入力する。モデル出力部47は、オブジェクト色NNからの出力としてポリゴンの色を取得する。モデル出力部47は、取得したポリゴンの色によりメッシュのテクスチャマップを生成できる。
 ポリゴンの色を取得する方法は、1つのポリゴンにつき1つの色を取得するものに限定されない。例えば、ポリゴンの色を取得する方法は、1つのポリゴンをさらに細分化した複数の単位領域ごとに1つの色を取得するものであってもよい。この場合には、1つのポリゴンにつき1つの色を取得する場合と比較して、空間分解能を向上させることができる。単位領域は、例えば、再構成したオブジェクト10を画像として表示する場合には、1つの画素に対応する。
 なお、本実施形態では、モデル更新部46は、オブジェクト色NNを更新せず、オブジェクト形状NNのみを更新してもよい。また、三次元再構成システム100は、オブジェクト色を再構成せず、オブジェクト形状のみを再構成してもよい。これらによっても、オブジェクト10の再構成精度を高くすることができる三次元再構成方法及び三次元再構成システム100を提供できるという効果が得られる。
 <制御装置70による処理例>
 図10は、制御装置70による処理の一例を示すフローチャートである。例えば制御装置70は、その操作部を介してユーザから再構成開始指示の操作入力を受け付けた際に、図10の処理を開始する。図10の処理が開始される前に、図1における支持台2の上面2A上には、オブジェクト10が載置されている。オブジェクト10の載置位置は、支持台2の回転中心であるのが好ましい。また、本実施形態では、オブジェクト10に対する第1カメラ3及び第2カメラ4の各カメラの姿勢情報等の外部パラメータは予め取得されているものとする。
 まず、ステップS91において、制御装置70は、投影制御部701で投影部6の動作を制御することにより、投影部6からオブジェクト10に構造化光60を投影する。なお、この際には、支持台2は回転しておらず、支持台2の上面2A上に載置されたオブジェクト10は静止している。また、投影部6は、投影制御部701によって停止されるまで構造化光60の投影を続ける。
 続いて、ステップS92(第1画像及び第2画像の撮影ステップ)において、制御装置70は、撮影制御部702で第1カメラ3及び第2カメラ4のそれぞれの動作を制御することにより、静止しているオブジェクト10を第1カメラ3及び第2カメラ4のそれぞれで撮影し、オブジェクト10の第1画像30及び第2画像40を取得する。
 続いて、ステップS93において、制御装置70は、構造化光60に含まれる所定の全ての投影パターンでオブジェクト10を撮影したか否かを判定する。つまり、制御装置70は、N通りの投影パターンにおける全てのパターンを投影してオブジェクト10を撮影したか否かを判定する。
 ステップS93において、撮影していないと判定された場合には(ステップS93、NO)、ステップS94において、制御装置70は、投影制御部701で投影部6の動作を制御することにより、投影部6からの構造化光60の投影パターンを変更する。投影パターンを変更後、制御装置70は、ステップS91以降の処理を再度行う。
 一方、ステップS93において、撮影したと判定された場合には(ステップS93、YES)、ステップS95において、制御装置70は、撮影制御部702で回転部5の動作を制御することにより、支持台2を所定角度(例えば30°)回転させ、上面2A上のオブジェクト10を回転させる。支持台2が所定角度回転した後、制御装置70は、撮影制御部702で回転部5の動作を制御することにより、回転部5を停止させて支持台2の回転を停止させる。
 続いて、ステップS96において、制御装置70は、全ての撮影方向(例えば1周360°を30°刻みで分けた12視点)からオブジェクト10を撮影したか否かを判定する。
 ステップS96において、撮影していないと判定された場合には(ステップS96、NO)、制御装置70は、ステップS91以降の処理を再度行う。一方、ステップS96において、撮影したと判定された場合には(ステップS96、YES)、ステップS97において、制御装置70は、投影制御部701で投影部6の動作を制御することにより、投影部6からオブジェクト10への構造化光60の投影を停止する。
 続いて、ステップS98において、制御装置70は、撮影制御部702により回転部5の動作を制御することにより、支持台2の連続回転(例えば1周360°の連続回転)を開始させる。支持台2の連続回転により、支持台2の上面2A上に載置されたオブジェクト10が連続回転する。回転部5は、撮影制御部702によって停止されるまで支持台2の回転を続ける。
 続いて、ステップS99(第3画像の撮影ステップ)において、制御装置70は、撮影制御部702で第1カメラ3及び第2カメラ4の少なくとも一方の動作を制御することにより、回転中のオブジェクト10を撮影し、第3画像50を取得する。第1カメラ3は、回転中の支持台2が所定角度(例えば30°)回転するごとにオブジェクト10を撮影し、所定数(例えば1周360°を30°刻みで分けた12個)の第3画像50、すなわち構造化光60が投影されていないオブジェクト10の画像を取得する。
 第1カメラ3及び第2カメラ4のそれぞれにより第3画像50を撮影する場合には、撮影制御部702は、オブジェクト10が回転しているときに第1カメラ3及び第2カメラ4の撮影をほぼ同一タイミングで実行させる。これにより、撮影制御部702は、オブジェクト10が任意の回転角度の位置にあるときの各カメラのRGB画像を並行して取得できる。但し、第1カメラ3及と第2カメラ4の撮影は、必ずしもほぼ同一タイミングでなくてもよく、意図的にずらされてもよい。
 撮影制御部702は、ステップS99では回転部5がオブジェクト10を1回転させる間、撮影動作を継続させて画像を取得する。これにより、第1カメラ3及び第2カメラ4の少なくとも一方は、上面2Aに対してそれぞれ別の角度で傾斜した方向から、また回転方向に沿った複数の方向からオブジェクト10を撮影できる。各カメラは、各撮影方向においてRGB画像を取得できる。つまり、撮影制御部702は、複数のカメラを用いて異なる方向から同時にオブジェクト10を撮影できる。撮影制御部702は、第3画像50をモデル生成部704に出力する。
 続いて、ステップS100において、制御装置70は、撮影制御部702により回転部5の動作を制御することにより、回転部5を停止させて支持台2の連続回転を停止させる。
 続いて、ステップS101(カメラビュー生成ステップ)において、制御装置70は、モデル生成部704により、撮影方向ごとでのカメラビュー51を生成する。
 続いて、ステップS102(対応画素特定ステップ)において、制御装置70は、モデル生成部704の対応画素特定部44により、撮影方向ごとにおいて対応画素を特定する。
 続いて、ステップS103(対応座標計算ステップ)において、制御装置70は、モデル生成部704の対応座標計算部45により、撮影方向ごとにおいて対応座標を計算する。
 続いて、ステップS104において、制御装置70は、モデル生成部704のモデル更新部46により、損失関数L(θ、φ、τ)を計算する。計算終了後、モデル更新部46は、損失関数L(θ、φ、τ)が所定値未満であるか否かを判定する。
 ステップS104において、所定値未満ではないと判定された場合には(ステップS104、NO)、ステップS105(更新ステップ)において、制御装置70は、モデル生成部704のモデル更新部46により、撮影方向ごとでの損失関数L(θ、φ、τ)を計算する。モデル更新部46は、この損失関数L(θ、φ、τ)に基づく誤差逆伝播法によって、オブジェクト形状NN及びオブジェクト色NNの各パラメータを更新する。その後、制御装置70は、ステップS101以降の処理を再度行う。制御装置70は、所定の基準を満たすまでモデル更新部46による各NNの更新を繰り返す。
 一方、ステップS104において、所定値未満であると判定された場合には(ステップS104、YES)、ステップS106(出力ステップ)において、制御装置70は、更新の結果、最終的に得られたオブジェクト形状NN及びオブジェクト色NNに基づき、モデル生成部704のモデル出力部47により、三次元モデル(三次元メッシュとテクスチャマップ)を生成し、再構成情報として出力する。ステップS106の処理が完了すると、本処理フローは終了する。なお、対応画素はステップS101~S105の繰り返し処理の間で変わらないため、対応画素を特定するステップS102の処理は、ステップS101~S105の繰り返し処理の外で1回だけ実行してもよい。例えばステップS100、S102を実行した後に、ステップS101、S103、S104、S105の処理を繰り返してもよい。
 制御装置70による処理は、図10に示したものの他、構造化光60を投影して撮影する処理を複数回行った後、構造化光60を投影することなく撮影する、という処理を所定回転角ごとに繰り返すものであってもよい。つまり、制御装置70による処理では、図10におけるステップS93とステップS95の間にステップS97とステップS99の撮影処理が入る代わりに、ステップS97~ステップS100の処理が省略されてもよい。
 <レンダリング部43によるカメラビュー51の生成処理例>
 図11は、モデル生成部704のレンダリング部43による図10のステップS101に示したカメラビュー51の生成処理の一例を示すフローチャートである。例えばレンダリング部43は、モデル生成部704におけるカメラビュー51の生成処理において、カメラビュー51における位置Pが選択された際に図11の処理を開始する。
 まず、ステップS111において、レンダリング部43は、選択された位置Pの画素を通る視線方向ベクトルvを決定する。
 続いて、ステップS112において、レンダリング部43は、決定された視線方向ベクトルv上の各サンプル点x_iの三次元座標を取得する。
 続いて、ステップS113において、レンダリング部43は、視線方向ベクトルvと、各サンプル点x_iの三次元座標と、オブジェクト色NNと、に基づいて、各サンプル点x_iの色c_objを取得する。
 続いて、ステップS114において、レンダリング部43は、各サンプル点x_iの三次元座標と、オブジェクト形状NNと、に基づいて、各サンプル点x_iからオブジェクト10表面までの符号付き距離d_iの情報を取得する。
 続いて、ステップS115において、レンダリング部43は、各サンプル点x_iの符号付き距離d_iに基づいて、各サンプル点x_iの色の重みw_iを計算する。
 続いて、ステップS116において、レンダリング部43は、各サンプル点x_iの色c_objと、各サンプル点x_iの色の重みw_iと、に基づいて、各サンプル点の色の重み付け和を、画素の最終的な色c_objとして計算により取得する。この場合、重みの合計が1となるように正規化される。また、符号付き距離d_iが0に近い、つまりオブジェクト10の表面に近いと、重みが大きくなるよう予め設計されている。
 続いて、ステップS117において、レンダリング部43は、カメラビュー51における位置Pの画素の色c_objを出力する。ステップS117の処理が完了すると、カメラビュー51における位置Pの1つの画素の色c_objを取得する処理が終了する。
 以上の処理を、カメラビュー51の全画素に対して行うことにより、レンダリング部43はカメラビュー51を生成することができる。
 <モデル出力部47による三次元モデルの生成処理例>
 図12は、モデル出力部47による三次元モデル(三次元メッシュとテクスチャマップ)の生成処理の一例を示すフローチャートである。モデル出力部47は、図10のステップS104において、所定値未満であると判定された場合に(ステップS104、YES)、図12の処理を開始する。なお、このフローチャートでは1つのポリゴンについて1つの色を計算する例を説明するが、上述の通り、1つのポリゴン内の複数箇所それぞれについて色を計算するようにしてもよい。
 まず、ステップS121において、モデル出力部47は、オブジェクト形状NNに基づき、オブジェクト10の形状を近似する三次元メッシュを生成する。
 続いて、ステップS122において、モデル出力部47は、三次元メッシュを構成する各ポリゴンについて、該ポリゴンの位置を表す三次元座標qにおける該ポリゴンの法線ベクトルの逆ベクトルuを計算する。なお、モデル出力部47は、例えば、該ポリゴンの重心の位置に相当する三次元座標を計算し、その座標をポリゴンの三次元座標qとして取得してもよいし、ポリゴンの三次元空間中の位置に関する別の座標値をポリゴンの三次元座標として取得してもよい。
 続いて、ステップS123において、モデル出力部47は、各ポリゴンの三次元座標qを例えば上述の計算により取得する。なお、ステップS122とステップS123の実行順序は逆でもよい。ステップS122とステップS123が並行に実行されてもよい。
 続いて、ステップS124において、モデル出力部47は、各ポリゴンについて、ポリゴンの三次元座標qと、上記の逆ベクトルuと、オブジェクト色NNと、に基づいて、ポリゴンの色c_pを計算により取得する。
 続いて、ステップS125において、モデル出力部47は、各ポリゴンについてステップS124において取得されたポリゴンの色c_pを出力する。すなわち、このステップにおいて、モデル出力部47は、ステップS121において生成された三次元メッシュに貼られるテクスチャマップを生成する。ステップS125の処理が完了すると、本処理フローは終了する。
 [第2実施形態] 
 次に、第2実施形態に係る三次元再構成システムについて説明する。なお、既に説明した実施形態と同一の名称、符号については、同一もしくは同質の部材又は構成部を示しており、詳細説明を適宜省略する。
 本実施形態では、オブジェクト形状NNと、オブジェクト色NNと、三次元再構成システムにおける第1カメラ及び第2カメラの姿勢に関する情報と、を同時に最適化する点が、第1実施形態とは異なる。より詳しくは、本実施形態では、第1カメラ3により、第1視点における実際のオブジェクト10の画像を取得し、第2カメラ4により、第2視点における実際のオブジェクト10の画像を取得し、第2座標を第1カメラ3に投影した第1の点と、第1座標を第2カメラ4に投影した第2の点と、を計算し、第1の点及び第2の点を少なくとも用いて、オブジェクト形状NNとオブジェクト色NNのパラメータ、及び、カメラパラメータ、をさらに更新する点が、第1実施形態とは主に異なる。
 <制御装置70aの機能構成例>
 図13は、本実施形態に係る三次元再構成システム100aが備える制御装置70aの機能構成の一例を示すブロック図である。三次元再構成システム100aは、制御装置70aを有する点以外は、第1実施形態に係る三次元再構成システム100とほぼ同じ構成を有する。制御装置70aは、姿勢取得部703(図2参照)を有さない点、及びモデル生成部704aを有する点以外は、第1実施形態における制御装置70とほぼ同じ構成を有する。
 <モデル生成部704aの機能構成例>
 図14~図16を参照して、モデル生成部704aの機能構成について説明する。図14は、モデル生成部704aの機能構成の一例を示すブロック図である。図15は、本実施形態に係る第1損失の一例を説明する図である。図16は、本実施形態に係る第2損失の一例を説明する図である。
 図14に示すように、モデル生成部704aは、取得部41aと、幾何損失計算部48と、モデル更新部46aと、を有する。この点以外では、モデル生成部704aは、第1実施形態に係るモデル生成部704とほぼ同じ機能構成を有する。
 取得部41aは、図13の撮影制御部702を介して第1カメラ3及び第2カメラ4から取得した第1画像30、第2画像40及び第3画像50を、レンダリング部43、対応画素特定部44及び幾何損失計算部48のそれぞれに出力する。この点以外では、取得部41aは、図2に示した取得部41の機能とほぼ同じ機能を有する。
 幾何損失計算部48は、オブジェクト形状NN及びオブジェクト色NNのパラメータ、第1カメラ3及び第2カメラ4それぞれの姿勢に関する情報を最適化するための幾何損失(例えば第1損失LSR(θ、τ)又は第2損失LST(θ、τ))を計算する。
 図15及び図16は、図9と同様に、三次元シーン55中における点x、パラメータθを有するオブジェクト形状NNの関数S(x;θ)、第1画像30内での第1画素Pa、第2画像40内での第2画素Pb等を示している。
 関数S(x;θ)=0を満たす点xの集合がオブジェクトの表面を表すので、姿勢οを持つカメラからの光線(レイ)と、オブジェクトの表面との交点xは、前述の通り、式(1)によって求められる。光線は、カメラの中心からカメラビューにおける画素Pを通る光線であり、その視線方向ベクトルはνであるとする。式(1)は、現在のパラメータθと現在のカメラの姿勢の情報であるカメラパラメータτ(本実施形態においてτは最適化対象)おいて、ο=ο)、t=t(θ、τ)、ν=ν(τ)、x=ο+t・νtとし、式S(x;θ)=0の陰関数微分を利用して求められる。なお、式(1)を用いずに、光線上に複数のサンプル点xを設定して各サンプル点xについてS(x;θ)を計算し、S(x;θ)≒0とみなせるサンプル点xを、光線とオブジェクトの表面との交点として求めてもよい。
 第1損失LSRは、ある撮影画像における対応画素のオブジェクトの表面(関数S(x;θ)=0)上での点xを別の撮影画像上に投影した点(すなわち別の撮影画像における対応画素)を用いて得られる損失に関する情報である。このため、第1損失LSRを再投影損失ということもできる。図15において、第1座標xa及び第2座標xbは、図9を用いて説明した方法と同じ方法で、対応画素特定部44及び対応座標計算部45によって得られる。
 幾何損失計算部48は、第2座標xbを第1カメラ3に投影した第1の点Q(xb,τa)と、第1座標xaを第2カメラ4に投影した第2の点Q(xa,τb)と、を計算する。なお、τa、τbは、それぞれ、第1カメラ3、第2カメラ4のカメラパラメータである。幾何損失計算部48は、距離|Pa-Q(xb,τa)| と距離|Pb-Q(xa,τb)|との和を第1損失LSRとして算出する。なお、第1損失LSRは、全ての対応画素についての距離の和でよい。
 第2損失LSTは、第1画像30及び第2画像40から三角測量方式により計算されるオブジェクトの形状を用いて得られる損失に関する情報である。このため、第2損失LSTを三角測量損失ということもできる。図16において、第1座標xa及び第2座標xbは、図9を用いて説明した方法と同じ方法で、対応画素特定部44及び対応座標計算部45によって得られる。
 幾何損失計算部48は、第1カメラ3及び第2カメラ4の撮影画像における対応画素pa及びpbそれぞれを通る光線Ra(τ)及び光線Rb(τ)の交点を、三角測量方式により計算する。ここで、対応画素pa及びpbのそれぞれを通る光線は、第1カメラ3及び第2カメラ4それぞれの姿勢誤差があるために、交差しない可能性がある。このため、幾何損失計算部48は、光線Ra(τ)上で光線 Rb(τ) に最も近い点yaと、光線Rb(τ) 上で光線Ra(τ)に最も近い点ybと、を計算する。最後に、幾何損失計算部48は、4点(xa,xb,ya,yb)が同じ位置に配置されるように、4点間の距離(例えば、距離|xa-ya|と距離|ya-yb|と距離|yb-xb|との和)を評価する第2損失LSTを算出する。なお、第2損失LSTは、全ての対応画素についての距離の和でよい。
 図14において、幾何損失計算部48は、算出した第1損失LSR及び第2損失LSTのそれぞれをモデル更新部46aに出力する。
 モデル更新部46aは、少なくとも第1の点Q(xb,τa)及び第2の点Q(xa,τb)を用いて、オブジェクト形状NN及びオブジェクト色NNそれぞれのパラメータθ及びφ、カメラパラメータτa及びτbをさらに更新する。なお、カメラパラメータの初期値は、公知の方法(例えば、撮影された画像に含まれる所定のマーカーの見え方に基づいて算出する方法や、SfM(Structure from Motion)等の撮影された画像からの特徴点抽出に基づいて算出する方法)によって取得してよい。本明細書に示す例では、モデル更新部46aは、損失L(θ)と、第1損失LSRと、第2損失LSTと、を用いて、次式により損失関数La(θ、φ、τ)を計算する。
La(θ、φ、τ)=L+λSRSR+λSTST
 λSR、λSTは、所定の係数である。なお、本実施形態においても、損失関数La(θ、φ、τ)に第1実施形態のようにSDFの正則化拘束を加えてもよい。
 モデル更新部46aは、損失関数La(θ、φ、τ)に基づく誤差逆伝播法により、オブジェクト形状NN及びオブジェクト色NNの各パラメータ、カメラパラメータτa及びτbを更新する。モデル更新部46aの機能は、損失関数L(θ、φ、τ)に代えて損失関数La(θ、φ、τ)を用いる点を除き、第1実施形態におけるモデル生成部704の機能とほぼ同じである。
 <制御装置70aによる処理例>
 図17は、制御装置70aによる処理の一例を示すフローチャートである。例えば制御装置70aは、その操作部を介してユーザから再構成開始指示の操作入力を受け付けた際に、図17の処理を開始する。図17の処理が開始される前に、図1における支持台2の上面2A上には、オブジェクト10が載置されている。オブジェクト10の載置位置は、支持台2の回転中心であるのが好ましい。
 本実施形態では、オブジェクト10に対する第1カメラ3及び第2カメラ4の各カメラの姿勢情報等の外部パラメータは予め取得されていない点が、図10における第1実施形態とは異なる。一方、ステップS171~S183の処理は、図10におけるステップS91~S103の処理と同じであるため、ここでは重複する説明を省略する。
 ステップS184において、制御装置70aは、モデル生成部704aの幾何損失計算部48により、第1カメラ3及び第2カメラ4それぞれの姿勢に関する情報を最適化するための第1損失LSR及び第2損失LSTを計算する。幾何損失計算部48は、計算終了後、計算結果をモデル生成部704aのモデル更新部46aに出力する。
 続いて、ステップS185において、制御装置70aは、モデル生成部704aのモデル更新部46aにより、損失関数La(θ、φ、τ)を計算する。モデル更新部46aは、計算終了後、損失関数La(θ、φ、τ)が所定値未満であるか否かを判定する。
 ステップS185において、所定値未満ではないと判定された場合には(ステップS185、NO)、ステップS186(更新ステップ)において、制御装置70aは、モデル生成部704aのモデル更新部46aにより、撮影方向ごとでの損失関数La(θ、φ、τ)を計算する。モデル更新部46aは、この損失関数La(θ、φ、τ)に基づく誤差逆伝播法によって、オブジェクト形状NN及びオブジェクト色NNの各パラメータを更新する。その後、制御装置70aは、ステップS181以降の処理を再度行う。制御装置70aは、所定の基準を満たすまでモデル更新部46aによる各NNの更新を繰り返す。
 一方、ステップS185において、所定値未満であると判定された場合には(ステップS185、YES)、ステップS187(出力ステップ)において、制御装置70aは、更新の結果、最終的に得られたオブジェクト形状NN及びオブジェクト色NNに基づき、モデル生成部704aのモデル出力部47により、三次元モデル(三次元メッシュとテクスチャマップ)を生成し、再構成情報として出力する。ステップS187の処理が完了すると、本処理フローは終了する。
 以上のようにして、三次元再構成システム100aは、オブジェクト形状NNと、第1カメラ3及び第2カメラ4それぞれの姿勢に関する情報と、を同時に最適化し、三次元再構成を行う。これにより、本実施形態では、第1カメラ3及び第2カメラ4それぞれの姿勢に関する既知の情報がない場合でも、第1カメラ3及び第2カメラ4それぞれの姿勢に関する情報を最適化できる。この結果、本実施形態では、オブジェクトの再構成精度を高くすることができる三次元再構成システム及び三次元再構成方法を提供できる。
 本実施形態では、幾何損失計算部48は、第2損失LSTを算出せず、第1損失LSR(θ)のみを算出してモデル更新部46aに出力してもよい。且つモデル更新部46aは、損失Lと、距離損失Lと、第1損失LSRを用いて損失関数La(θ、φ、τ)を計算してもよい。また、モデル更新部46aは、オブジェクト色NNを更新せず、オブジェクト形状NNのみを更新してもよい。且つ三次元再構成システム100aは、オブジェクト色を再構成せず、オブジェクト形状のみを再構成してもよい。これらによっても、第1カメラ3及び第2カメラ4それぞれの姿勢に関する既知の情報がない場合でも、オブジェクト10の再構成精度を高くすることができる三次元再構成方法及び三次元再構成システム100を提供できるという効果が得られる。
 <上述した実施形態におけるハードウェア構成例>
 前述した実施形態における各装置(三次元再構成システム100及び100a)の一部又は全部は、ハードウェアで構成されていてもよいし、CPU、GPU(Graphics Processing Unit)等が実行するソフトウェア(プログラム)の情報処理で構成されてもよい。ソフトウェアの情報処理で構成される場合には、前述した実施形態における各装置の少なくとも一部の機能を実現するソフトウェアを、CD-ROM(Compact Disc-Read Only Memory)、USB(Universal Serial Bus)メモリ等の非一時的な記憶媒体(非一時的なコンピュータ可読媒体)に収納し、コンピュータに読み込ませることにより、ソフトウェアの情報処理を実行してもよい。また、通信ネットワークを介して当該ソフトウェアがダウンロードされてもよい。さらに、ソフトウェアの処理の全部又は一部がASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等の回路に実装されることにより、当該ソフトウェアによる情報処理がハードウェアにより実行されてもよい。
 ソフトウェアを収納する記憶媒体は、光ディスク等の着脱可能なものでもよいし、ハードディスク、メモリ等の固定型の記憶媒体であってもよい。また、記憶媒体は、コンピュータ内部に備えられてもよいし(主記憶装置、補助記憶装置等)、コンピュータ外部に備えられてもよい。
 図18は、前述した実施形態における各装置(三次元再構成システム100及び100a)のハードウェア構成の一例を示すブロック図である。各装置は、一例として、プロセッサ71と、主記憶装置72(メモリ)と、補助記憶装置73(メモリ)と、ネットワークインタフェース74と、デバイスインタフェース75と、を備え、これらがバス76を介して接続されたコンピュータ7として実現されてもよい。
 図18のコンピュータ7は、各構成要素を一つ備えているが、同じ構成要素を複数備えていてもよい。また、図18では、1台のコンピュータ7が示されているが、ソフトウェアが複数台のコンピュータにインストールされて、当該複数台のコンピュータそれぞれがソフトウェアの同一の又は異なる一部の処理を実行してもよい。この場合、コンピュータそれぞれがネットワークインタフェース74等を介して通信して処理を実行する分散コンピューティングの形態であってもよい。つまり、前述した実施形態における各装置(三次元再構成システム100及び100a)は、1又は複数の記憶装置に記憶された命令を1台又は複数台のコンピュータが実行することで機能を実現するシステムとして構成されてもよい。また、端末から送信された情報をクラウド上に設けられた1台又は複数台のコンピュータで処理し、この処理結果を端末に送信するような構成であってもよい。
 前述した実施形態における各装置(三次元再構成システム100及び100a)の各種演算は、1又は複数のプロセッサを用いて、又はネットワークを介した複数台のコンピュータを用いて、並列処理で実行されてもよい。また、各種演算が、プロセッサ内に複数ある演算コアに振り分けられて、並列処理で実行されてもよい。また、本開示の処理、手段等の一部又は全部は、ネットワークを介してコンピュータ7と通信可能なクラウド上に設けられたプロセッサ及び記憶装置の少なくとも一方により実現されてもよい。このように、前述した実施形態における各装置は、1台又は複数台のコンピュータによる並列コンピューティングの形態であってもよい。
 プロセッサ71は、少なくともコンピュータの制御又は演算のいずれかを行う電子回路(処理回路、Processing circuit、Processing circuitry、CPU、GPU、FPGA、ASIC等)であってもよい。また、プロセッサ71は、汎用プロセッサ、特定の演算を実行するために設計された専用の処理回路又は汎用プロセッサと専用の処理回路との両方を含む半導体装置のいずれであってもよい。また、プロセッサ71は、光回路を含むものであってもよいし、量子コンピューティングに基づく演算機能を含むものであってもよい。
 プロセッサ71は、コンピュータ7の内部構成の各装置等から入力されたデータやソフトウェアに基づいて演算処理を行ってもよく、演算結果や制御信号を各装置等に出力してもよい。プロセッサ71は、コンピュータ7のOS(Operating System)や、アプリケーション等を実行することにより、コンピュータ7を構成する各構成要素を制御してもよい。
 前述した実施形態における各装置(三次元再構成システム100及び100a)は、1又は複数のプロセッサ71により実現されてもよい。ここで、プロセッサ71は、1チップ上に配置された1又は複数の電子回路を指してもよいし、2つ以上のチップ或いは2つ以上のデバイス上に配置された1又は複数の電子回路を指してもよい。複数の電子回路を用いる場合、各電子回路は有線又は無線により通信してもよい。
 主記憶装置72は、プロセッサ71が実行する命令及び各種データ等を記憶してもよく、主記憶装置72に記憶された情報がプロセッサ71により読み出されてもよい。補助記憶装置73は、主記憶装置72以外の記憶装置である。なお、これらの記憶装置は、電子情報を格納可能な任意の電子部品を意味するものとし、半導体のメモリでもよい。半導体のメモリは、揮発性メモリ又は不揮発性メモリのいずれでもよい。前述した実施形態における各装置(三次元再構成システム100及び100a)において各種データ等を保存するための記憶装置は、主記憶装置72又は補助記憶装置73により実現されてもよく、プロセッサ71に内蔵される内蔵メモリにより実現されてもよい。
 前述した実施形態における各装置(三次元再構成システム100及び100a)が、少なくとも1つの記憶装置(メモリ)と、この少なくとも1つの記憶装置に接続(結合)される少なくとも1つのプロセッサで構成される場合、記憶装置1つに対して、少なくとも1つのプロセッサが接続されてもよい。また、プロセッサ1つに対して、少なくとも1つの記憶装置が接続されてもよい。また、複数のプロセッサのうち少なくとも1つのプロセッサが、複数の記憶装置のうち少なくとも1つの記憶装置に接続される構成を含んでもよい。また、複数台のコンピュータに含まれる記憶装置とプロセッサによって、この構成が実現されてもよい。さらに、記憶装置がプロセッサと一体になっている構成(例えば、L1キャッシュ、L2キャッシュを含むキャッシュメモリ)を含んでもよい。
 ネットワークインタフェース74は、無線又は有線により、通信ネットワーク8に接続するためのインタフェースである。ネットワークインタフェース74は、既存の通信規格に適合したもの等、適切なインタフェースを用いればよい。ネットワークインタフェース74により、通信ネットワーク8を介して接続された外部装置9Aと情報のやり取りが行われてもよい。なお、通信ネットワーク8は、WAN(Wide Area Network)、LAN(Local Area Network)、PAN(Personal Area Network)等の何れか又はそれらの組み合わせであってよく、コンピュータ7と外部装置9Aとの間で情報のやり取りが行われるものであればよい。WANの一例としてインターネット等があり、LANの一例としてIEEE802.11やイーサネット(登録商標)等があり、PANの一例としてBluetooth(登録商標)やNFC(Near Field Communication)等がある。
 デバイスインタフェース75は、外部装置9Bと直接接続するUSB等のインタフェースである。
 外部装置9Aはコンピュータ7とネットワークを介して接続されている装置である。外部装置9Bはコンピュータ7と直接接続されている装置である。
 外部装置9A又は外部装置9Bは、一例として、入力装置であってもよい。入力装置は、例えば、カメラ、マイクロフォン、モーションキャプチャ、各種センサ、キーボード、マウス、タッチパネル等のデバイスであり、取得した情報をコンピュータ7に与える。また、パーソナルコンピュータ、タブレット端末、スマートフォン等の入力部とメモリとプロセッサを備えるデバイスであってもよい。
 また、外部装置9A又は外部装置9Bは、一例として、出力装置でもよい。出力装置は、例えば、LCD(Liquid Crystal Display)、有機EL(Electro Luminescence)パネル等の表示装置であってもよいし、音声等を出力するスピーカ等であってもよい。また、パーソナルコンピュータ、タブレット端末又はスマートフォン等の出力部とメモリとプロセッサを備えるデバイスであってもよい。
 また、外部装置9Aまた外部装置9Bは、記憶装置(メモリ)であってもよい。例えば、外部装置9Aはネットワークストレージ等であってもよく、外部装置9BはHDD等のストレージであってもよい。
 また、外部装置9A又は外部装置9Bは、前述した実施形態における各装置(三次元再構成システム100及び100a)の構成要素の一部の機能を有する装置でもよい。つまり、コンピュータ7は、外部装置9A又は外部装置9Bに処理結果の一部又は全部を送信してもよいし、外部装置9A又は外部装置9Bから処理結果の一部又は全部を受信してもよい。
 本明細書(請求項を含む)において、「a、b及びcの少なくとも1つ(一方)」又は「a、b又はcの少なくとも1つ(一方)」の表現(同様な表現を含む)が用いられる場合は、a、b、c、a-b、a-c、b-c又はa-b-cのいずれかを含む。また、a-a、a-b-b、a-a-b-b-c-c等のように、いずれかの要素について複数のインスタンスを含んでもよい。さらに、a-b-c-dのようにdを有する等、列挙された要素(a、b及びc)以外の他の要素を加えることも含む。
 本明細書(請求項を含む)において、「データを入力として/を用いて/データに基づいて/に従って/に応じて」等の表現(同様な表現を含む)が用いられる場合は、特に断りがない場合、データそのものを用いる場合や、データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、データから抽出した特徴量、データの中間表現等)を用いる場合を含む。また、「データを入力として/を用いて/データに基づいて/に従って/に応じて」何らかの結果が得られる旨が記載されている場合(同様な表現を含む)、特に断りがない場合、当該データのみに基づいて当該結果が得られる場合や、当該データ以外の他のデータ、要因、条件及び/又は状態にも影響を受けて当該結果が得られる場合を含む。また、「データを出力する」旨が記載されている場合(同様な表現を含む)、特に断りがない場合、データそのものを出力として用いる場合や、データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、データから抽出した特徴量、各種データの中間表現等)を出力として用いる場合を含む。
 本明細書(請求項を含む)において、「接続される(connected)」及び「結合される(coupled)」との用語が用いられる場合は、直接的な接続/結合、間接的な接続/結合、電気的(electrically)な接続/結合、通信的(communicatively)な接続/結合、機能的(operatively)な接続/結合、物理的(physically)な接続/結合等のいずれをも含む非限定的な用語として意図される。当該用語は、当該用語が用いられた文脈に応じて適宜解釈されるべきであるが、意図的に或いは当然に排除されるのではない接続/結合形態は、当該用語に含まれるものして非限定的に解釈されるべきである。
 本明細書(請求項を含む)において、「AがBするよう構成される(A configured to B)」との表現が用いられる場合は、要素Aの物理的構造が、動作Bを実行可能な構成を有するとともに、要素Aの恒常的(permanent)又は一時的(temporary)な設定(setting/configuration)が、動作Bを実際に実行するように設定(configured/set)されていることを含んでよい。例えば、要素Aが汎用プロセッサである場合、当該プロセッサが動作Bを実行可能なハードウェア構成を有するとともに、恒常的(permanent)又は一時的(temporary)なプログラム(命令)の設定により、動作Bを実際に実行するように設定(configured)されていればよい。また、要素Aが専用プロセッサ、専用演算回路等である場合、制御用命令及びデータが実際に付属しているか否かとは無関係に、当該プロセッサの回路的構造等が動作Bを実際に実行するように構築(implemented)されていればよい。
 本明細書(請求項を含む)において、含有又は所有を意味する用語(例えば、「含む(comprising/including)」、「有する(having)」等)が用いられる場合は、当該用語の目的語により示される対象物以外の物を含有又は所有する場合を含む、open-endedな用語として意図される。これらの含有又は所有を意味する用語の目的語が数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)である場合は、当該表現は特定の数に限定されないものとして解釈されるべきである。
 本明細書(請求項を含む)において、ある箇所において「1つ又は複数(one or more)」、「少なくとも1つ(at least one)」等の表現が用いられ、他の箇所において数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)が用いられているとしても、後者の表現が「1つ」を意味することを意図しない。一般に、数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)は、必ずしも特定の数に限定されないものとして解釈されるべきである。
 本明細書において、ある実施形態の有する特定の構成について特定の効果(advantage/result)が得られる旨が記載されている場合、別段の理由がない限り、当該構成を有する他の1つ又は複数の実施形態についても当該効果が得られると理解されるべきである。但し、当該効果の有無は、一般に種々の要因、条件及び/又は状態に依存し、当該構成により必ず当該効果が得られるものではないと理解されるべきである。当該効果は、種々の要因、条件及び/又は状態が満たされたときに実施形態に記載の当該構成により得られるものに過ぎず、当該構成又は類似の構成を規定したクレームに係る発明において、当該効果が必ずしも得られるものではない。
 本明細書(請求項を含む)において、複数のハードウェアが所定の処理を行う場合、各ハードウェアが協働して所定の処理を行ってもよいし、一部のハードウェアが所定の処理の全てを行ってもよい。また、一部のハードウェアが所定の処理の一部を行い、別のハードウェアが所定の処理の残りを行ってもよい。本明細書(請求項を含む)において、「1又は複数のハードウェアが第1の処理を行い、前記1又は複数のハードウェアが第2の処理を行う」等の表現(同様な表現を含む)が用いられている場合、第1の処理を行うハードウェアと第2の処理を行うハードウェアは同じものであってもよいし、異なるものであってもよい。つまり、第1の処理を行うハードウェア及び第2の処理を行うハードウェアが、前記1又は複数のハードウェアに含まれていればよい。なお、ハードウェアは、電子回路、電子回路を含む装置等を含んでよい。
 本明細書(請求項を含む)において、複数の記憶装置(メモリ)がデータの記憶を行う場合、複数の記憶装置のうち個々の記憶装置は、データの一部のみを記憶してもよいし、データの全体を記憶してもよい。また、複数の記憶装置のうち一部の記憶装置がデータを記憶する構成を含んでもよい。
 以上、本開示の実施形態について詳述したが、本開示は上記した個々の実施形態に限定されるものではない。特許請求の範囲に規定された内容及びその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲において、種々の追加、変更、置き換え、部分的削除等が可能である。例えば、前述した実施形態において、数値又は数式を説明に用いている場合、これらは例示的な目的で示されたものであり、本開示の範囲を限定するものではない。また、実施形態で示した各動作の順序も例示的なものであり、本開示の範囲を限定するものではない。
 損失関数は、上述した各実施形態で説明した損失を含むものに限定されず、構造化光が投影された実際のオブジェクト表面上の同一点に対応する、第1視点の画像中の第1画素、及び、第2視点の画像中の第2画素のそれぞれに対応する第1座標及び第2座標を用いて計算される損失を含むものであってよい。例えば、上述した第1実施形態に係る距離損失L、及び、第2実施形態に係る第1損失LSR及び第2損失LSTは、交点のSDFを0にする損失Lsdf(θ)に置き換えられてもよい。損失Lsdf(θ)は次式により表される。
sdf(θ)=|ya-yb|+|S(ya;θ)|+|S(yb;θ)|
なお、損失Lsdfは、全ての対応画素についての距離の和でよい。
 上記の損失Lsdf(θ)を用いる場合には、実施形態に係る三次元再構成システムは、図16において、光線Ra(τ)上で光線 Rb(τ) に最も近い点yaと、光線Rb(τ) 上で光線Ra(τ)に最も近い点ybと、を計算する。実施形態に係る三次元再構成システムは、最後に、2点(ya,yb)が同じ位置に配置されるように、2点間の距離を評価しつつ、点yaと点ybにおけるSDFが0になるように、それらのSDFの絶対値を損失として算出してもよい。
 上述した各実施形態において、オブジェクト10の形状を表すデータ(オブジェクトの三次元形状を再構成するデータ)の一例として、SDF(Signed Distance Field)を説明したが、オブジェクト10の形状を表すデータの別の例としてNeRF(Neural Radiance Fields)を採用してもよい。NeRFは、三次元空間中の点xの座標、及び、その点xを見る視点(光線)の視線方向ベクトルv、が入力されると、その視点から見た点xの色(放射輝度)及び不透明度(体積密度)を出力するニューラルネットワークで近似的に表現でき、上述した各実施形態におけるオブジェクト形状NNとオブジェクト色NNに対応する。この性質を利用して、第1視点から第1の対応画素を通る光線上の複数のサンプリング点xの不透明度が、隣接のサンプリング点に対して大きく変化(ほぼゼロから、オブジェクトの存在を示す所定閾値以上に変化)するサンプリング点xaをオブジェクト表面上の点(第1の対応画素に対応する第1座標)と見なし、第2視点から第2の対応画素を通る光線についても同様に点xb(第2の対応画素に対応する第2座標)を計算してよい。そして、それら第1座標及び第2座標を用いて距離損失あるいは幾何損失を計算し、計算された距離損失あるいは幾何損失、及び、損失Lに基づいてニューラルネットワーク(オブジェクト形状NN及びオブジェクト色NN)のパラメータを更新してよい。
 本発明の態様は、例えば、以下のとおりである。
<1> 構造化光が投影された実際のオブジェクトを少なくとも第1視点と第2視点から撮影することで得られる、それぞれの視点の画像を取得し、前記構造化光の投影パターンに基づいて、前記構造化光が投影された前記実際のオブジェクト表面上の同一点に対応する、前記第1視点の画像中の画素、及び、前記第2視点の画像中の画素、を、それぞれ、第1画素及び第2画素として特定し、前記オブジェクトの三次元形状を再構成するオブジェクト形状ニューラルネットワークにおける現在のパラメータに基づき、前記オブジェクト形状ニューラルネットワークで再構成された前記オブジェクトの表面上の、前記第1画素に対応する第1座標及び前記第2画素に対応する第2座標を計算し、前記第1座標及び前記第2座標を少なくとも用いて、前記オブジェクト形状ニューラルネットワークのパラメータを更新する、三次元再構成方法である。
<2> 前記パラメータの更新では、前記オブジェクト形状ニューラルネットワークの前記パラメータを、前記第1座標及び前記第2座標が一致する方向に更新する、前記<1>に記載の三次元再構成方法である。
<3> 前記構造化光が投影されていない前記実際のオブジェクトの画像を、少なくとも1視点分、さらに取得し、前記オブジェクトの色を表現するオブジェクト色ニューラルネットワークにおける現在のパラメータ、及び、前記オブジェクト形状ニューラルネットワークにおける現在のパラメータに基づき、前記オブジェクトの色をさらに計算し、前記第1座標及び前記第2座標、及び、計算された前記オブジェクトの色に関する情報を少なくとも用いて、前記オブジェクト形状ニューラルネットワークのパラメータを更新する、前記<1>または前記<2>に記載の三次元再構成方法である。
<4> 前記構造化光が投影されていない前記実際のオブジェクトの画像を、少なくとも1視点分、さらに取得し、前記オブジェクトの色を表現するオブジェクト色ニューラルネットワークにおける現在のパラメータに基づき、前記オブジェクト色ニューラルネットワークで表現された前記オブジェクトの色をさらに計算し、計算された前記オブジェクトの色に関する情報を用いて前記オブジェクト色ニューラルネットワークのパラメータをさらに更新する、前記<1>から前記<3>のいずれか1つに記載の三次元再構成方法である。
<5> 前記構造化光が投影されていない前記実際のオブジェクトの画像を、少なくとも1視点分、さらに取得し、前記オブジェクトの色を表現するオブジェクト色ニューラルネットワークにおける現在のパラメータ、及び、前記オブジェクト形状ニューラルネットワークにおける現在のパラメータに基づき、前記オブジェクトの色をさらに計算し、前記第1座標及び前記第2座標、及び、計算された前記オブジェクトの色に関する情報を少なくとも用いて、前記オブジェクト形状ニューラルネットワーク及び前記オブジェクト色ニューラルネットワークのパラメータを更新する、前記<1>乃至前記<4>のいずれか1つに記載の三次元再構成方法である。
<6> 前記構造化光は、複数の投影パターンを含む、前記<1>乃至前記<5>のいずれか1つに記載の三次元再構成方法である。
<7> 前記構造化光は、それぞれが第1の方向に延伸し、前記第1の方向とは直交する第2の方向に並んで配置される複数の線状パターンと、それぞれが前記第2の方向に延伸し、前記第1の方向に並んで配置される複数の線状パターンと、を含む、前記<1>乃至前記<5>のいずれか1つに記載の三次元再構成方法である。
<8> 第1カメラにより、前記第1視点における前記実際のオブジェクトの画像を取得し、第2カメラにより、前記第2視点における前記実際のオブジェクトの画像を取得し、前記第2座標を前記第1カメラに投影した第1の点と、前記第1座標を前記第2カメラに投影した第2の点と、を計算し、前記第1の点及び前記第2の点を少なくとも用いて、前記オブジェクト形状ニューラルネットワークのパラメータをさらに更新する、前記<1>に記載の三次元再構成方法である。
<9> 第1カメラにより、前記第1視点における前記実際のオブジェクトの画像を取得し、第2カメラにより、前記第2視点における前記実際のオブジェクトの画像を取得し、前記第2座標を前記第1カメラに投影した第1の点と、前記第1座標を前記第2カメラに投影した第2の点と、を計算し、前記第1の点及び前記第2の点を少なくとも用いて、前記オブジェクト色ニューラルネットワークのパラメータをさらに更新する、前記<4>に記載の三次元再構成方法である。
<10> 構造化光が投影された実際のオブジェクトを少なくとも第1視点と第2視点から撮影することで得られる、それぞれの視点の画像を取得し、前記構造化光の投影パターンに基づいて、前記構造化光が投影された前記実際のオブジェクト表面上の同一点に対応する、前記第1視点の画像中の画素、及び、前記第2視点の画像中の画素、を、それぞれ、第1画素及び第2画素として特定し、オブジェクト形状ニューラルネットワークによって再構成される前記オブジェクトの三次元形状に関し、前記第1画素に対応する前記オブジェクトの表面上の点と、前記第2画素に対応する前記オブジェクトの表面上の点と、が一致するように、前記オブジェクト形状ニューラルネットワークのパラメータを更新する、三次元再構成方法である。
<11> 構造化光を投影する投影部と、前記構造化光が投影された実際のオブジェクトを少なくとも第1視点と第2視点から撮影することで得られる、それぞれの視点の画像を取得するカメラと、前記構造化光の投影パターンに基づいて、前記構造化光が投影された前記実際のオブジェクト表面上の同一点に対応する、前記第1視点の画像中の画素、及び、前記第2視点の画像中の画素、を、それぞれ、第1画素及び第2画素として特定する対応画素特定部と、前記オブジェクトの三次元形状を再構成するオブジェクト形状ニューラルネットワークにおける現在のパラメータに基づき、前記オブジェクト形状ニューラルネットワークで再構成された前記オブジェクトの表面上の、前記第1画素に対応する第1座標及び前記第2画素に対応する第2座標を計算する対応座標算出部と、前記第1座標及び前記第2座標を少なくとも用いて、前記オブジェクト形状ニューラルネットワークのパラメータを更新するモデル更新部と、を有する三次元再構成システムである。
 この出願は、2022年11月18日に日本国特許庁に出願された日本国特許出願第2022-184955号に基づいて、その優先権を主張するものであり、この日本国特許出願の全内容を含む。

Claims (11)

  1.  構造化光が投影された実際のオブジェクトを少なくとも第1視点と第2視点から撮影することで得られる、それぞれの視点の画像を取得し、
     前記構造化光の投影パターンに基づいて、前記構造化光が投影された前記実際のオブジェクト表面上の同一点に対応する、前記第1視点の画像中の画素、及び、前記第2視点の画像中の画素、を、それぞれ、第1画素及び第2画素として特定し、
     前記オブジェクトの三次元形状を再構成するオブジェクト形状ニューラルネットワークにおける現在のパラメータに基づき、前記オブジェクト形状ニューラルネットワークで再構成された前記オブジェクトの表面上の、前記第1画素に対応する第1座標及び前記第2画素に対応する第2座標を計算し、
     前記第1座標及び前記第2座標を少なくとも用いて、前記オブジェクト形状ニューラルネットワークのパラメータを更新する、三次元再構成方法。
  2.  前記パラメータの更新では、前記オブジェクト形状ニューラルネットワークの前記パラメータを、前記第1座標及び前記第2座標が一致する方向に更新する、請求項1に記載の三次元再構成方法。
  3.  前記構造化光が投影されていない前記実際のオブジェクトの画像を、少なくとも1視点分、さらに取得し、
     前記オブジェクトの色を表現するオブジェクト色ニューラルネットワークにおける現在のパラメータ、及び、前記オブジェクト形状ニューラルネットワークにおける現在のパラメータに基づき、前記オブジェクトの色をさらに計算し、
     前記第1座標及び前記第2座標、及び、計算された前記オブジェクトの色に関する情報を少なくとも用いて、前記オブジェクト形状ニューラルネットワークのパラメータを更新する、請求項1に記載の三次元再構成方法。
  4.  前記構造化光が投影されていない前記実際のオブジェクトの画像を、少なくとも1視点分、さらに取得し、
     前記オブジェクトの色を表現するオブジェクト色ニューラルネットワークにおける現在のパラメータに基づき、前記オブジェクト色ニューラルネットワークで表現された前記オブジェクトの色をさらに計算し、
     計算された前記オブジェクトの色に関する情報を用いて前記オブジェクト色ニューラルネットワークのパラメータをさらに更新する、請求項1に記載の三次元再構成方法。
  5.  前記構造化光が投影されていない前記実際のオブジェクトの画像を、少なくとも1視点分、さらに取得し、
     前記オブジェクトの色を表現するオブジェクト色ニューラルネットワークにおける現在のパラメータ、及び、前記オブジェクト形状ニューラルネットワークにおける現在のパラメータに基づき、前記オブジェクトの色をさらに計算し、
     前記第1座標及び前記第2座標、及び、計算された前記オブジェクトの色に関する情報を少なくとも用いて、前記オブジェクト形状ニューラルネットワーク及び前記オブジェクト色ニューラルネットワークのパラメータを更新する、請求項1に記載の三次元再構成方法。
  6.  前記構造化光は、複数の投影パターンを含む、請求項1乃至請求項5のいずれか1項に記載の三次元再構成方法。
  7.  前記構造化光は、
     それぞれが第1の方向に延伸し、前記第1の方向とは直交する第2の方向に並んで配置される複数の線状パターンと、
     それぞれが前記第2の方向に延伸し、前記第1の方向に並んで配置される複数の線状パターンと、を含む、請求項1乃至請求項5のいずれか1項に記載の三次元再構成方法。
  8.  第1カメラにより、前記第1視点における前記実際のオブジェクトの画像を取得し、
     第2カメラにより、前記第2視点における前記実際のオブジェクトの画像を取得し、
     前記第2座標を前記第1カメラに投影した第1の点と、前記第1座標を前記第2カメラに投影した第2の点と、を計算し、
     前記第1の点及び前記第2の点を少なくとも用いて、前記オブジェクト形状ニューラルネットワークのパラメータをさらに更新する、請求項1に記載の三次元再構成方法。
  9.  第1カメラにより、前記第1視点における前記実際のオブジェクトの画像を取得し、
     第2カメラにより、前記第2視点における前記実際のオブジェクトの画像を取得し、
     前記第2座標を前記第1カメラに投影した第1の点と、前記第1座標を前記第2カメラに投影した第2の点と、を計算し、
     前記第1の点及び前記第2の点を少なくとも用いて、前記オブジェクト色ニューラルネットワークのパラメータをさらに更新する、請求項4に記載の三次元再構成方法。
  10.  構造化光が投影された実際のオブジェクトを少なくとも第1視点と第2視点から撮影することで得られる、それぞれの視点の画像を取得し、
     前記構造化光の投影パターンに基づいて、前記構造化光が投影された前記実際のオブジェクト表面上の同一点に対応する、前記第1視点の画像中の画素、及び、前記第2視点の画像中の画素、を、それぞれ、第1画素及び第2画素として特定し、
     オブジェクト形状ニューラルネットワークによって再構成される前記オブジェクトの三次元形状に関し、前記第1画素に対応する前記オブジェクトの表面上の点と、前記第2画素に対応する前記オブジェクトの表面上の点と、が一致するように、前記オブジェクト形状ニューラルネットワークのパラメータを更新する、三次元再構成方法。
  11.  構造化光を投影する投影部と、
     前記構造化光が投影された実際のオブジェクトを少なくとも第1視点と第2視点から撮影することで得られる、それぞれの視点の画像を取得するカメラと、
     前記構造化光の投影パターンに基づいて、前記構造化光が投影された前記実際のオブジェクト表面上の同一点に対応する、前記第1視点の画像中の画素、及び、前記第2視点の画像中の画素、を、それぞれ、第1画素及び第2画素として特定する対応画素特定部と、
     前記オブジェクトの三次元形状を再構成するオブジェクト形状ニューラルネットワークにおける現在のパラメータに基づき、前記オブジェクト形状ニューラルネットワークで再構成された前記オブジェクトの表面上の、前記第1画素に対応する第1座標及び前記第2画素に対応する第2座標を計算する対応座標算出部と、
     前記第1座標及び前記第2座標を少なくとも用いて、前記オブジェクト形状ニューラルネットワークのパラメータを更新するモデル更新部と、を有する三次元再構成システム。
PCT/JP2023/041096 2022-11-18 2023-11-15 三次元再構成方法、及び三次元再構成システム WO2024106468A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022184955 2022-11-18
JP2022-184955 2022-11-18

Publications (1)

Publication Number Publication Date
WO2024106468A1 true WO2024106468A1 (ja) 2024-05-23

Family

ID=91084800

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2023/041096 WO2024106468A1 (ja) 2022-11-18 2023-11-15 三次元再構成方法、及び三次元再構成システム

Country Status (1)

Country Link
WO (1) WO2024106468A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014002033A (ja) * 2012-06-18 2014-01-09 Canon Inc 画像処理装置、画像処理方法
JP2020042503A (ja) * 2018-09-10 2020-03-19 株式会社MinD in a Device 三次元表象生成システム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014002033A (ja) * 2012-06-18 2014-01-09 Canon Inc 画像処理装置、画像処理方法
JP2020042503A (ja) * 2018-09-10 2020-03-19 株式会社MinD in a Device 三次元表象生成システム

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
WANG PENG, LIU LINGJIE; LIU YUAN; THEOBALT CHRISTIAN; KOMURA TAKU; WANG WENPING: "NeuS: Learning Neural Implicit Surfaces by Volume Rendering for Multi-view Reconstruction", 35TH CONFERENCE ON NEURAL INFORMATION PROCESSING SYSTEMS (NEURIPS 2021)., 1 January 2021 (2021-01-01), XP093170726 *
XU QIANGENG; XU ZEXIANG; PHILIP JULIEN; BI SAI; SHU ZHIXIN; SUNKAVALLI KALYAN; NEUMANN ULRICH: "Point-NeRF: Point-based Neural Radiance Fields", 2022 IEEE/CVF CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION (CVPR), IEEE, 18 June 2022 (2022-06-18), pages 5428 - 5438, XP034195665, DOI: 10.1109/CVPR52688.2022.00536 *
加藤大晴, ニューラル3D表現の最新動向, 第28回画像センシングシンポジウム, 10 June 2022, pp. 1-39, non-official translation (KATO, Hiroharu, Latest trends in neural 3D representation, 28th Image Sensing Symposium) *
池畑諭, 三次元陰関数表現が切り開く三次元コンピュータビジョンの最前線 -NeRFへ至る道と更にその先へ-, 電子情報通信学会誌, 01 May 2022, vol. 105, no. 5, pp. 375-380, (IKEHATA, Satoshi, Journal of the Institute of Electronics, Information and Communication Engineers), non-official translation (Advances in 3D Computer Vision with Neural Implicit Representation - The road to NeRF and beyond -) *

Similar Documents

Publication Publication Date Title
US11869139B2 (en) System and method for three-dimensional scanning and for capturing a bidirectional reflectance distribution function
Maier et al. Intrinsic3D: High-quality 3D reconstruction by joint appearance and geometry optimization with spatially-varying lighting
US20200219301A1 (en) Three dimensional acquisition and rendering
EP3664039B1 (en) Method for acquiring three-dimensional object by using artificial lighting photograph and device thereof
CN107155341B (zh) 三维扫描系统和框架
US20050195332A1 (en) Image processing method and apparatus
US20100296724A1 (en) Method and System for Estimating 3D Pose of Specular Objects
JP2017227975A (ja) 複合現実環境を作成するためのシステム等
EP3382645B1 (en) Method for generation of a 3d model based on structure from motion and photometric stereo of 2d sparse images
JPH11175762A (ja) 光環境計測装置とそれを利用した仮想画像への陰影付与装置及び方法
WO2020075252A1 (ja) 情報処理装置、プログラム及び情報処理方法
KR20200129657A (ko) 혼합현실 환경의 동적인 3차원 현실데이터 구동을 위한 실사기반의 전방위 3d 모델 비디오 시퀀스 획득 방법
WO2022078439A1 (zh) 一种空间与物体三维信息采集匹配设备及方法
JP5441752B2 (ja) 環境内の3d物体の3d姿勢を推定する方法及び装置
WO2024106468A1 (ja) 三次元再構成方法、及び三次元再構成システム
JP7333437B2 (ja) 3dデジタルモデル表面のレンダリングおよび変換
JP5506371B2 (ja) 画像処理装置、画像処理方法およびプログラム
WO2023223958A1 (ja) 三次元再構成方法、及び三次元再構成システム
JP3387856B2 (ja) 画像処理方法、画像処理装置および記憶媒体
JP2012173916A (ja) 撮像装置および画像処理情報生成プログラム
Chikurtev et al. 3D modelling for object recognition with depth sensors
Klein et al. Scan&paint: Image-based projection painting
Jiddi Photometric registration of indoor real scenes using an RGB-D camera with application to mixed reality
Padhye Techniques to Create a Realistic Digital Collection of Near Planar Cultural Heritage Objects
Stereo et al. Human Factors and Wearable Technologies, Vol. 85, 2023, 30-35 AHFE