This invention relates to a photographic apparatus, device and method for taking images to be used for creating three-dimensional model. Further, this invention typically relates to those taking images from different longitudinal or latitudinal positions, namely different latitudinal angles.
Recently, technologies creating a three-dimensional model of an object from a plurality of images taken from a plurality of positions and/or orientations have been developed. In detail, such technologies generally generate silhouettes from photographed images, create the geometry of the three-dimensional model by using the silhouettes, generate textures from photographed images, and set the generated textures on each polygon of the geometry.
Further, technologies to display such three-dimensional models in an Internet browser and so on and to make necessary rotations so as to make it possible to observe the models have also been developed. Using these technologies, to make three-dimensional models observable through the internet browser, it becomes possible for electronic commerce (E-Commerce) customers to observe merchandise as three-dimensional objects. Thus, it is expected that such three-dimensional object modeling technologies will greatly contribute to the advancement of E-Commerce businesses.
However, it is essential to obtain not only images of the object obtained from longitudinally different angles but also images obtained from vertically (latitudinally) different angles, for example bottom and top images, of the object for creating the three-dimensional model having high quality geometry and high quality texture. Accordingly, it is ordinarily necessary for the user to prepare a studio for photographing the objects to be three-dimensionally modeled and make various arrangements for the photography, for example to repeatedly photograph the object many times. Furthermore, the users have to set lighting conditions and appropriate backgrounds for each of the photographs from various positions and orientations, so as to be able to take textures and silhouettes effectively.
These photographing operations carried out by the users are actually time-consuming. Further, considering operations of longitudinally changing relative positions between a camera and the object to be modeled and operations of setting a camera at a plurality of different latitudinal positions (angles), it necessarily gives users a significantly large workload in order to create three-dimensional object models.
In addition to these, ideal positions for photographing the object are different in dependence on the size of the object. This causes further workload for the user to create two or more three-dimensional object models having different sizes. Namely, the users have to manually change setting of the camera and the object for each object. Accordingly, it has been very difficult to effectively create many three-dimensional object models.
By not only photographing lateral images but also top and bottom images of the object, it would be possible to create a three-dimensional model observable from all orientations. However, to do so, it would be necessary for a user to invert the object, since the bottom of the object sitting on the object-setting surface is invisible. Inverting the object would also cause another adjustment between the image of the bottom and other pre-photographed images to be necessary since focal lengths for photographing the bottom is normally slightly different from ones for photographing other images. A user would have to adjust size of these images by using computer programs increasing workload of the user.
Accordingly, though such technologies are very useful and can contribute industrial progress, users may be restricted as ones who have some photographing skill and users need significant time to photograph the object for creating a three-dimensional object model. In this respect, these technologies have something to be improved.
This invention has been made to improve a three-dimensional model creating technology.
Objects of this invention are to provide an apparatus and method for photographing the images that are necessary for creating a high quality three-dimensional object model while minimising the number of photographs and to introduce a method for photographing necessary images.
To accomplish the above objects, this invention introduces, as one aspect, an apparatus for creating three-dimensional object model, comprising photographing means for photographing an object to be modeled for obtaining images to be used for creating the three-dimensional object model, setting means for longitudinally and latitudinally setting a relative position between the object and said photographing means, said setting means being capable of setting the object and said photographing means a plurality of different relative longitudinal and latitudinal positions, and control means for controlling said photographing means and said setting means so that a number of photographs taken from different relative longitudinal positions at a first relative latitudinal position is larger than that taken from different relative longitudinal positions at a second relative latitudinal position, the first relative latitudinal position being closer to a lateral position than the second relative latitudinal position.
Further, to accomplish the above objects, this invention introduces, as another aspect, a method for creating three-dimensional object model, comprising steps of photographing an object to be modeled for obtaining images to be used for creating the three-dimensional object model, longitudinally and latitudinally setting a relative position between the object and a photographing position at a plurality of different relative longitudinal and latitudinal positions, and controlling so that a number of photographs photographed from different relative longitudinal positions at a first relative latitudinal position is larger than that photographed from different relative longitudinal positions at a second relative latitudinal position, the first relative latitudinal position being closer to a lateral position than the second relative latitudinal position.
By using the above-mentioned apparatus or the method, it becomes possible to minimize the number of photographs for obtaining necessary images to effectively keep a high quality three-dimensional object model. Accordingly, the number of manual user operations is reduced and the total photographing time for creating a three-dimensional object model is significantly decreased.
This invention also introduces, as one of preferred embodiments, an apparatus which positions the object on a plane as manner putting the object so as to be shown in any direction, sets the object and the photographing means at a third relative latitudinal position where the photographing means locates below the object and controls so that a number of photographs taken from different relative longitudinal positions at the first relative latitudinal position is larger than that taken from different relative longitudinal positions at the third relative latitudinal position.
By introducing such a preferred embodiment, it becomes possible to create a high-quality three-dimensional object model, which is visible from all orientations, with a minimum number of photographs.
Another one of objects of this invention is to introduce an apparatus, which can reduce photographing time for photographing necessary images for creating three-dimensional object model without deteriorating quality of the resultant model.
To accomplish the above objects, this invention introduces, as another aspect of this invention, an apparatus for creating three-dimensional object model, comprising photographing means for photographing an object to be modeled for obtaining images to be used for creating the three-dimensional object model, setting means for longitudinally and latitudinally setting a relative position between the object and said photographing means, said setting means being capable of setting the object and said photographing means at a plurality of different relative longitudinal and latitudinal positions, and control means for controlling said photographing means and said setting means so that said photographing means continuously photographs the object at a first relative latitudinal position and a second relative latitudinal position while said setting means sets the object at one of the relative longitudinal positions.
According to the apparatus above, it becomes possible to reduce time to be photographed for a three-dimensional object model effectively without any deterioration of the resultant three-dimensional object model.
Another one of objects of this invention is to introduce an apparatus, which can reduce a number of photographs for photographing necessary images for creating three-dimensional object model irrespective of a size of the object.
To accomplish the above objects, this invention introduces, as another aspect of this invention, an apparatus for creating three-dimensional object model, comprising photographing means for photographing an object to be modeled for obtaining images to be used for creating the three-dimensional object model, setting means for longitudinally and latitudinally setting a relative position between the object and said photographing means, said setting means being capable of setting the object and said photographing means at a plurality of different relative longitudinal and latitudinal positions, control means for controlling said photographing means and said setting means so that said photographing means photographs the object at a plurality of different relative longitudinal and latitudinal positions, and selection means for selecting at least one of relative latitudinal positions in accordance with a size of the object.
Other features or aspects would be clarified by following detailed embodiments with reference with of drawings.
There will now be described, by way of example only, embodiments of the invention, with reference to the accompanying drawings, of which:
A circular glass table 2 is supported on the upper plates of the frame 1. The table is rotated by stepping motors and pinch rollers consisting of rubber. These stepping motors and rollers are numbered 3, 4, and 5. The reference 6 indicates a central axis of rotation of the table 2 and the table rotates around the axis 6. The reference 7 indicates an intersection point of the rotation axis 6 and the table 2. The point 7 is, in this embodiment, for obvious reasons, a central point of the circular table.
Around a circumference of the table 2 are provided rotary encoder marks 8 for being detected so as to provide an angle of rotation of the table 2. The encoder marks 8 are composed of evaporated aluminum thin films respectively extending in the radial directions of the table 2. A photo reflector 9 located at a position confronting the thin films detects them and thus detects the angle of rotation of the table 2.
11, 12, 13, 14 and 15 indicate guide rollers guiding the table 2 so as to rotate around the rotation axis 6. 16 and 17 indicate spaces where three-dimensional objects are set. Space 16 is a space for a bigger object and space 17 is a space for a smaller object.
A digital camera 18 (digital_cam#0), is located on a parallel plane higher than the plane of the table 2 by a predetermined height A. The reference 19 indicates a horizontal line indicating the plane on which the digital camera 18 is located. The digital camera 18 is aimed at the central point 7 and an optical axis of the camera makes an angle of 10 degrees with the plane of the table 2.
Another digital camera 20 (digital_cam#1), is located on a parallel plane higher than the plane of the table 2 by a predetermined height B. The reference 21 indicates a horizontal line indicating the plane on which the digital camera 20 is located. The digital camera 20 is aimed at the central point of the object space 16 and the optical axis of the camera 20 makes an angle of 10 degrees with the plane of the table 2.
Another digital camera 22 (digital_cam#2), is aimed at the central point 7 of the table 2, and the optical axis thereof makes an angle of 45 degrees with the plane of the table 2. Another digital camera 23 (digital_cam#3) is aimed at the central point 7 of the table 2, and the optical axis thereof makes at an angle of 80 degrees with the plane of the table 2. Another digital camera 24 (digital_cam#4) below the plane of the table 2, is aimed at the central point 7 of the table 2, and the optical axis thereof makes an angle of 70 degrees with the plane of the table 2.
A flashlight 25 (flashlight#0,1) for giving backlight is set above the plane of the table 2 opposite the digital cameras 18 and 20. Similarly, another flashlight 26 (flashlight#2) gives backlight. The flashlight 26 is set below the plane of the table 2 opposite the digital camera 22 set at an upward angle of 45 degrees towards an object in spaces 16 or 17. A further flashlight 27 (flashlight#3) for giving backlight is set opposite the digital camera 23 at an upward angle of 80 degrees towards an object in spaces 16 or 17. Another flashlight 28 (flashlight#4) for giving backlight is set opposite the digital camera 24 at a downward angle of 70 degrees towards an object in spaces 16 or 17.
White-light diffuser plates 29, 30, 31 and 32 are located in front of each of the flashlights 25, 26, 27, and 28. For instance, the diffuser plate 29 located at a position illuminated by the flashlight 25 diffuses light received from the flashlight 25. Similarly, the diffuser plate 30 located at a position illuminated by the flashlight 26 diffuses light received from the flashlight 26, the diffuser plate 31 located at a position illuminated by the flashlight 27 diffuses light received from the flashlight 27, and the diffuser plate 32 located at a position illuminated by the flashlight 28 diffuses light received from the flashlight 28.
A polarizing panel 33 having an approximately same size as the diffuser plate 31 is located thereon. Polarizing filter 34 is located in front of the lens of the digital camera 24. The polarizing angle of the polarizing filter 34 is set at a roughly right angle with the polarizing panel 33. A white-light diffuser composed of several plates, is located so as to surround the object 16 or 17. A plurality of fluorescent lights 36 are provided as front light sources and are located behind the light diffuser plates 35 so as to illuminate object spaces 16 and 17 with diffuse light.
Lines extending from each of the digital cameras 18, 20, 22, 23 and 24 represent each of photographing areas thereof in a vertical cross-section. Two solid lines represent an outside border of the photographing area corresponding to a set predetermined focal length, and a central one-dotted-chained line shows a central axis of the photographing area.
Central processing unit (CPU) 40 executes an application program. Normally, such an application program is stored in a ROM or a hard disk within the computer 39 as an object code. Then, such a program is read out from the storage and written into a memory within the CPU 40 for execution when the system launched. Since it does not relate to this invention directly, detailed descriptions of data flow, control flow and memory construction within the CPU 40 are omitted in this specification.
A video monitor 41 is connected to the computer 39. A video signal to be displayed at the video monitor 41 is output from a video board 42 to which the monitor 41 is connected. The video board 42 is driven by a set of software programs called a video driver 43. A keyboard 44 is provided by which users of this system manually input data and they may also give instructions using a mouse 45. Such input data and instructions are interpreted in a keyboard and mouse driver 46 composed of a set of software programs.
All of the digital cameras 18, 19, 20, 21 and 22 are connected to the computer 39 by the well-known Universal Serial Bus (USB). The item referenced 47 represents USB ports to which the digital cameras 18, 19, 20, 21 and 22 are physically connected and their HUB interfaces. A USB device manager 48 manages the USB ports and HUB interfaces 47. Also provided are software programs composing a USB driver 49 for controlling the digital cameras 18, 19, 20, 21 and 22.
An interface box 50 controls communications amongst a STM driver 51, a photo reflection detector 53, a lighting control unit 55 and the computer 39. All of elements 51 to 60 are located in the interface box 50 and are described hereafter.
The STM driver 51 drives and controls stepping motors 3, 4, and 5 for rotating the glass circular table 2 in accordance with outputs from a digital to analogue converter (DAC) 52 which converts digital data from the computer into an analogue signal to be used in the STM driver 51. The photo reflection detector (PR) 53 detects an output of the photo reflector 9 indicating positions of the encoder marks 8 composed of evaporated aluminum thin films located a circumference of the table 2. The analogue output of the photo reflection detector 53 is converted to digital data at an analogue to digital converter (ADC) 54.
The lighting control unit 55 has a register that controls flashlights 25, 26, 27 and 28, which are used as backlights for the object on the table. This register is composed of a 5-bit hardware register, the bits of which control flashlights 25, 26, 27 and 28 and fluorescent lights 36 in accordance with control signals provided via a serial interface 61. Such light-control signals are created in accordance with the application program and are communicated via the serial interface 61 under control of a communication serial port driver (COM port Driver) 62.
The control signals for controlling the flashlights are input to two-input AND gates 57, 58, 59 and 60 respectively. A first port, labelled #0, #1 of the register is connected to one input of the AND gate 57. A port #2 of the register is connected to one input of the AND gate 58, a port #3 of the register is connected to one input of the AND gate 59 and a port #4 of the register is connected to one input of the AND gate 60. The register also has a port #FL for front lights and is therefore connected to the plurality of fluorescent lights 36.
A five-input OR gate 56 has its inputs respectively connected to X-triggers of digital cameras 18, 20, 22, 23 and 24. These X-triggers are provided for synchronizing flash with photographing and are well known as “Flash Synchronization” connection points. The other input of each of the AND gates 57, 58, 59 and 60 is connected to the output of the OR gate 56.
A hard disc unit 63 stores data 64 of texture images and silhouette images. A three-dimensional object model creating program is stored in a ROM or a hard disc within the computer 39 as an object code and is represented as stored at 65. The program is read out from the storage and written into a memory within the CPU 40 for execution when the system is launched. The application program and the model creating program (an object modeling engine) communicate through the communication (COM) interface. A program for displaying a graphical user interface (GUI) for the application program stored in CPU 40 is represented as stored at 66.
Operations of the system shown in
In the step #101, all previous settings and data used for previous operations are retrieved and the values are reinitialised. The intialising process is shown in
In a step #203 following the step #202, the CPU 40 initialises the interface box 50, the serial interface 61 and the serial port driver 62 and confirms communication between the interface box to and the interface 61.
Finally in a step #204 of the initializing step #101, the circular glass table 2 is returned to the predetermined principal rotating position in accordance with the application program. In particular, the CPU 40 instructs rotation of the table 2 so as to locate it at the principal rotation position. This instruction is transferred to the interface box 50 through the serial interface 61 and the serial port driver 62. Digital data representing the principal rotating position (#0) is compared with digital data representing the actual rotation position of the table 2 and the CPU 40 calculates digital driving data for the stepping motors 3, 4, and 5.
The digital driving data is converted to an analogue signal at the digital to analogue converter (DAC) 52 and supplied to the STM driver 51. The STM driver 51 drives stepping motors 3, 4, 5 in accordance with the analogue signal. The photo reflection detector (PR) 53 determines the actual rotation position of the table 2 by detecting an output of the photo reflector 9 reflecting the positions of the encoder marks 8.
The CPU 40 refers the table shown in
After the above initialising process, operations are returned to a step #102 shown in the
In this embodiment, the user can select the size of the object as “Small” or “Large”. In accordance with this embodiment, it is preferable to select “Small” if the height of the object is smaller than the predetermined height A which corresponds to the horizontal line 19 indicating the plane on which the digital camera 18 is located. On the other hand, if the height of the object is larger than the height A but smaller than the height B which corresponds to the horizontal line 21 representing the plane on which the digital camera 20 is located, it is preferable for the user to select “Large”.
If the user selects the object size as “Large”, this result is registered as “obj_size=large” in a step #103. If the user selects the object size as “Small”, this is registered as “obj_size=small” in a step #104.
Following these steps #103 and #104, the user can select whether calibration is to be carried out or not. Similar to the step #102, the CPU 40 displays a calibration-selecting page via the GUI on the display of the video monitor 41 in accordance with the application program. If the user selects to carry out the calibration, the process goes to a step #106. If the user selects not to carry out the calibration, the process skips steps #106 to #121 and goes to a step #122.
The steps #106 to #121 for calibration are now described as follows. In the step #106, the fluorescent lights 36, the front lights, are turned on. In detail, in accordance with the application program, the CPU 40 instructs the writing of a flag “1” in the front light control bit of the register in the lighting control unit 55 of the interface box 50 though the serial interface 61 under control of the COM port Driver 62. Accordingly an output of the port of front lights #FL switches to a predetermined level representing “1” and, as shown in the table of
In a step #107, the CPU 40 displays a window urging the user to put the calibration mat 37 on the circular glass table 2 via the GUI on the display of the video monitor 41 in accordance with the application program. Further, in a step #108, the CPU 40 displays a window for the user to confirm whether the calibration mat 37 has already been put on the table 2 or not. If the user confirms this, namely ready to calibrate, the process goes to a step #109.
In a step #109, a loop variable N is set as one of sixteen integers from “0” to “15”. Initially the variable N is set as “0”.
In a step #110, the CPU 40 determines a targeted rotating position (angle) of the table 2 by outputting one of the data sets (rotation_set: #0-#15). The CPU 40 refers the table shown in
In the step #111, a variable, a software repeat counter C, is set as “0”, “1”, “2”, “3”, or “4”. Initially the variable C is set as “0”.
In a following step #112, the imaging parameters shown in the table of the
In a step #113, a parameter representing a focal length is also transferred to the digital camera (digital_cam_#C) through the USB ports HUB interfaces 47. In this step #113, the transferred parameter is a set #0 (zoom_pos_set: #0), which represents a wide-end focal length in accordance with the table of the
In a step #114, the CPU 40 sends a command to photograph to the digital camera (digital_cam_#C) and the digital camera takes an image. Image data obtained by the digital camera (digital_cam_#C) is transferred to the hard disc unit 63 through the USB ports HUB interfaces 47 after compressing the image data in conformity with well-known JEPG compression scheme in a step #115. The name of such image file is, for example, “img_cam #0. jpg”.
The JEPG compressed image data obtained in the step #114 and stored in the step #115 is processed and developed and the CPU 40 detects the calibration dots 38 on a calibration mat 37 in the captured image in accordance with the application program and three-dimensional object model creating program 65 in a step #116. The CPU 40 processes and analyses the detected calibration dots and determines a central position of the calibration mat 37 for creating supposed three-dimensional coordinates. In accordance with the supposed three-dimensional coordinates, a position and an orientation of the digital camera, and a focal length of the digital camera, the focal length of the camera can be obtained from the image of the calibration dots 38 by using perspective information. Detailed methods or processes for obtaining the central position of the calibration mat 37, the supposed three-dimensional coordinates, the position and the orientation of the digital camera, and the focal length were disclosed in several former patent applications, for example, a Japanese Raid-Open Patents numbered 00-96374, a Japanese Raid-Open Patents numbered 98-170914 and a UK patent application numbered 0012812.4, and these methods or processes can be adopted for this step #116. Therefore, in this specification, detailed descriptions of such concrete methods and processes.
In the step #116, if the digital camera 24 (digital_cam_#4) located beneath the table is designated by the variable C, the image of the calibration dots is obtained from the back of the calibration mat 37 and is processed and analysed for obtaining the position and the orientation of the digital camera 24, and the focal length of the digital camera 24.
After the step #116 and confirming the completion of obtaining information for the digital camera (digital_cam_#C) in a step #117, the obtained camera information, including the position, the orientation and the focal length of the digital camera (digital_cam_#C_#N) are stored in the hard disc unit 63 as a file named “cal_cam#C” in a step #118.
In a step #119, the variable C designating the digital camera is incremented. In the initial stage, the variable C is changed from “0” to “1”. As easily understood, the steps #111 to #119 are repeated for each value of the variable C from “0” to “4”.
In the step #120, the variable N is incremented and the process goes back to the step #109 from the step #120. (Lines returning from steps #119 to #111 and #120 to #100 are not shown in the
The variable N is incremented one by one and finally comes to “15”. At that point all of the photographic processes have been completed, the circular glass table has been completely rotated around the object and all camera calibration parameters with each camera position at every rotation angle have been stored by step #118.
Namely, each of the digital cameras 18 (digital_cam#0), 20 (digital_cam#1), 22 (digital_cam#2), 23 (digital_cam#3), and 24 (digital_cam#4) have been selected in turn and each digital camera has photographed the image of the calibration dots 38 in order to obtain the camera information (the position, the orientation and the focal length) for each of the digital cameras. These information have been stored in the hard disc unit 63 as files “cal_cam#0”, “cal_cam#1”, “cal_cam#2”, “cal_cam#3”, and “cal_cam#4”.
After these repeated processes in the steps #109 to #120, a value of the variable N is checked in a step #120 to confirm whether the repeated processes in the steps #109 to #120 are completed for all of the digital cameras 18, 20, 22, 23, and 24 or not. If it is confirmed, the process goes to a next step #121. In the step #121, the CPU 40 instructs to write a flag “0” in the front light control bit of the register in the lighting control unit 55. Accordingly an output of the port of front lights #FL switches to another predetermined level representing “0” and the fluorescent lights 36 are turned off in accordance with the table of the
All processes for calibration are completed at the step #121 and the process returns to a step #122. In a step #122, the CPU 40 displays a window for asking the user if an actual modeling process shall be started, using the GUI, on the display of the video monitor 41. If the user instructs by using keyboard 44 or the mouse 45 to start an actual modeling, the process goes to a step #123.
In the step #123, the CPU 40 turns on the fluorescent lights 36, i.e. the front lights. This process is the same as the step #106. This time, the variable N is set as one of sixteen integers from “0” to “15”. Initially the variable N is set as “0” in a step #124.
In a step #125, the CPU 40 determines a targeted rotation position (angle) of the table 2 by outputting one of the data sets (rotation_set: #0˜#15). The CPU 40 refers to the table shown in
At step #126, if the user selected the object size as “Small”, the process goes to a step #127. If the user selected the object size as “Large”, the process goes to a step #128. In the step #127, numbers to be selectively used as another variable C are set as 0, 2, 3, and 4. On the other hand, in the step #128, numbers to be selectively used as another variable C are set as 1, 2, 3, and 4. This means, the digital camera 18 (digital_cam_#0) is used if the object size is small, but the digital camera 19 (digital_cam_#1) is used if the object size is large. Other digital cameras 20.22, and 24 are commonly used irrespective of the size of the object. In an initial stage, this variable C is set either “0” or “1 in accordance with the size of the object.
Two steps #129 and #130 both check the variable C and the variable N. If the variable C is “2” and the variable N is not a multiple of two, the process directly goes from the step #129 to the step #140, skipping steps #131 to #139. If the variable C is “3” or “4” and the variable N is not a multiple of four, the process directly goes from the step #130 also to the step #140, skipping steps #131 to #139. Otherwise, the process goes to a step #129.
This means, if the camera 18 (digital_cam_#0) or 19 (digital_cam_#1) is selected, the steps #131 to #139 (executing the photographing of an object) are always carried out the photographing process irrespective of a photographing angle, namely the rotation position of the table 2. Accordingly, each of sixteen (16) images is taken by the camera (digital_cam_#0) 18 or the camera (digital_cam_#1) 20.
On the other hand, if the camera 20 (digital_cam_#2) is selected, the steps #131 to #139 (executing the photographing) are carried out only when the table 2 is at the principal rotation position or rotation positions different from the principal rotation position (#0) by each of multiple angles of 45 degrees. Accordingly, eight (8) images are taken by the camera 20 (digital_cam_#2). Similarly, if the camera 22 (digital_cam_#3) or the camera 24 (digital_cam_#4) is selected, the steps #131 to #139 (executing the photographing) are carried out only when the table 2 is at the principal rotation position or rotation positions different from the principal rotating position (#0) by each of multiple angles of 90 degrees. Accordingly, only four (4) images are taken by both the camera 22 (digital_cam_#3) and the camera 24 (digital_cam_#4).
The photographing process carried out in the steps #131 to #139 is described hereafter. In the step #131, the CPU 40 instructs to write a flag “1” in one of the backlight control bits of the register in the lighting control unit 55 of the interface box 50 though the serial interface 61 under control of the COM port Driver 62. For example, for port #0,#1 the corresponding bit of the register is switched to “1”, which switches the output of port #0,#1 to a level representing “1”. Thus (in accordance with the table of
In the following step #132, the imaging parameters, shown in the table of the
In a step #133, a parameter representing a focal length (zoom_pos_set: #X), is also transferred to the digital camera (digital_cam_#C) through the USB ports HUB interfaces 47. The focal length “#X” is manually selected by the user among six focal lengths (“#0” to “#5”) shown in the table of the
Of course, this user's selection may be given by using the GUI. For example, the CPU 40 displays a focal length selecting page showing six focal lengths to be selected, using the GUI, on the display of the video monitor 41 via the video board 42. The user utilises the keyboard 44 or the mouse 45 to select one of the focal lengths by referring the displayed page.
In a step #134, the CPU 40 sends a command to photograph to the digital camera (digital_cam_#C) and the digital camera takes an image. In response to this command to photograph, one of the X-triggers of digital cameras 18, 20, 22, 23 and 24 is closed and becomes a predetermined level representing “1” for a predetermined period of time. Thus, the output of the OR gate 56 becomes a predetermined level representing “1” and one of the AND gates 56, 58, 59 and 60 corresponding to the digital camera (digital_cam_#C) outputs a predetermined level representing “1”. Accordingly, one of the flashlights 25, 26, 27, and 28 is turned on and emits flashlight in synchronization with the X-trigger, namely a photographing operation of the digital camera (digital_cam_#C). For example, in the initial stage of this photographing process while the variable C is 0 or 1, the digital camera 18 (digital_cam_#0) or the digital camera 20 (digital_cam_#1) photographs the object and the flashlight 25 emits flashlight.
In a step #135, the CPU 40 instructs to write a flag “0” in one of the backlight control bits of the register in the lighting control unit 55. For example, for port #0,#1 the corresponding bit of the register is switched to “0”, which switches the output of port #0,#1 to a level representing “0”. Thus the backlight #0,#1 is disabled.
The image data obtained by the digital camera (digital_cam_#C) in the step #134 is transferred to the hard disc unit 63 after compressing in conformity with well-known JEPG compression scheme in a step #136. The name of such image file is “sil_cam#C_#N. jpg”. For instance, if the digital camera 18 (digital_cam_#0) is used in the initial stage and the photographing is made while the table 2 locates at the principal rotation position, the name of the image file is “sil_cam#0—#0. jpg”. As seen, the name of the file includes “sil” indicating a silhouette image, “#C” indicating the camera used for photographing, and “#N” indicating the rotation position of the table 2.
In a step #137, the imaging parameters shown the
The digital camera typically uses the same focal length (zoom_pos_set: #X) for both obtaining the silhouette image and the texture image. Therefore, the same focal length (zoom_pos_set: #X) is used also in the capturing step #133. It shall be noted that the fluorescent lights 36, the front lights, have been continuously turned on since the step #123.
In a step #138, the CPU 40 sends a command to photograph to the digital camera (digital_cam_#C) and the digital camera takes a texture image. In this moment, since none of the X-triggers of digital cameras 18, 20, 22, 23 and 24 is closed and each has a predetermined level representing “0”, none of the flashlights 25, 26, 27, and 28 is turned on and emits any lights.
The image data obtained by the digital camera (digital_cam_#C) is, in the step #138, transferred to the hard disc unit 63 after compression in conformity with the well-known JEPG compression scheme in a step #139. The name of such image file is, for example, “ima_cam#C_#N.jpg”. For instance, if the digital camera 18 (digital_cam_#0) is used in the initial stage and the photographing is made while the table 2 located at the principal rotating position, the name of the image file is “ima_cam#0—#0 .jpg”. As seen, the name of the file includes “ima” indicating a texture image, “#C” indicating the camera used for photographing, and “#N” indicating the rotating position of the table 2.
After all of the steps #131 to #139 executing photographing are completed, the variable C is incremented in a step #140. If it was judged that the object is small, the process goes back to the step #127 from the step #139, (the line for that not being shown in
After photographing process using the digital camera 22 (digital_cam_#2) is completed, the variable becomes “3” and the digital camera 23 (digital_cam_#3) is selected to be used in the photographing process. Finally, the variable C comes “4” and the digital camera 24 (digital_cam_#4) is selected to be used in the photographing process.
Before step #141, all of these photographing processes are executed whilst the table 2 is located at the principal rotation position. In the step #141, the variable N is incremented and the process goes back to the step #124 from the step #140, (the line for that not being shown in
The variable N is incremented by units of one and finally becomes “15”. At that point all of the photographic processes have been completed, the circular glass table has been completely rotated around the object and all texture images and silhouette images from all angles have been stored in the hard disc unit 63. The final total number of the texture images is 32 (=16+8+4+4) and the final total number of the silhouette images also is 32 (=16+8+4+4).
After all photographing process repeatedly executed in the steps #124 to #139 have completed, the process goes to a step #142. In the step #142, the CPU 40 instructs to write a flag “0” in the front light control bit of the register in the lighting control unit 55. Accordingly an output of the port of front lights #FL turns to the predetermined level representing “0” and the fluorescent lights 36 are turned off in accordance with the table of the
In a step #143, executing the three-dimensional object model creating program 65, the CPU 40 creates three-dimensional geometry data of the object by using all silhouette images stored in the hard disc unit 63. The three-dimensional geometry is defined by polygons, including triangles and four-cornered polygons. Detailed methods or processes for obtaining the three-dimensional geometry data by using silhouette images taken from different positions and orientations is disclosed in former patent applications, for example, U.S. Pat. No. 6,317,139, U.S. Pat. No. 4,710,876, and a UK application number 0114157.1 (CRE235), and these methods or processes can be adopted to this step #143. Therefore, in this specification, detailed descriptions of such methods and processes are omitted.
In the step #143, before creating three-dimensional geometry, parameters including photographing positions, orientations, and focal lengths for each of digital cameras and each photographing are calibrated by using the obtained camera information, including the position, the orientation and the focal length of the digital cameras stored in the hard disc unit 63 as files named “cal_cam#C” in the step #118.
In a step #144, in accordance with the three-dimensional object model creating program 65, the CPU 40 creates three-dimensional texture data to be put on surfaces of each polygons created in the step #143 by using all texture images stored in the hard disc unit 63. Detailed methods or processes for obtaining the three-dimensional texture data for each polygon by using two-dimensional texture images taken from different positions and orientations is disclosed in former patent applications, for example, UK application number 0022343.4 (CRE223), and such methods or processes can be adopted to this step #144. Therefore, in this specification, detailed descriptions of such concrete methods and processes are omitted. Thus, all information of three-dimensional object including geometry and texture are finally obtained.
In a step #145, the resultant three-dimensional object having geometry on which texture images have been put is displayed on the display of the video monitor 41. As known, such resultant three-dimensional model can be rotated, magnified or like by the user, using the keyboard 44 or the mouse 45.
In a step #146, all information of such a resultant three-dimensional object including three-dimensional geometry information and three-dimensional texture information to be put on the geometry is stored in the hard disc unit 63 as an ordinal VRML file (*.wrl), for example. The process is completed after the step #146.
When the digital camera 24 located beneath the glass table 2 photographs the object, normally the digital camera 24 picks up the light reflected by the glass table 2. This reflected light obviously deteriorates quality of the resultant three-dimensional object. Especially, the existence of the white-light diffuser plate 31 causes a significant problem, namely that directly reflected light from the plate 31 illuminates a lower surface on the glass table within a photographing area of the digital camera 24. This reflected light illuminating the lower surface in the main deteriorates the contrast of texture images of a bottom of the object.
To solve this, in this embodiment, the polarizing panel 33, which has almost the same size as the white-light diffuser plate 31, was put thereon and the polarizing filter 34 was set in front of a camera lens of the digital camera 24, which has a photographing area illuminated by the directly reflected light from the white-light diffuser plate 31. Further the polarizing angle of the polarizing filter 34 is set at roughly a right angle with the polarizing panel 33. Accordingly the system of this embodiment can significantly reduce the inappropriate influence caused by the directly reflected light from the white-light diffuser plate 31 on the resultant three-dimensional object model.
In accordance with the embodiment described above, finally all information of such a resultant three-dimensional object is finally stored as the VRML file. However, it is possible to store by using other types of files.
In accordance with the embodiment described above, the fluorescent lights 36 are used as front lights. However, other types of lights such as tungsten lights can be used. The white balance of the digital cameras has preferably, however, to be set so that colour temperature of the produced image is appropriate.
Further, other types of lights, such as tungsten lights or fluorescent lights, can be used as backlights instead of the flashlights.
To make description more brief and concise, the embodiment described above only introduced two kind of image parameters, as shown in
The location of cameras and focal lengths of each of camera lens are considered and are decided in accordance with several factors, including the size of the object, distance between the object and backlight, and the size of the backlight, so that the outline of the object is surrounded by the backlight.
In accordance with the embodiment described above, a plurality of digital cameras are prepared for each vertical (latitudinal) location. However, it would also be possible to move one digital camera so as to locate it at a plurality of latitudinal locations by using a moving mechanism. If the moving mechanism accurately locates the digital camera at each latitudinal location, such a system may give a cheaper solution than this embodiment. This aspect of this embodiment is therefore not in how many cameras are used but rather the existence of a plurality of latitudinal locations where the camera photographs the object. Therefore, it shall be understood that obtaining a plurality of latitudinal locations for photographing by moving the digital camera is within the scope of this invention.
The material of the nylon fibers is selected so that fibers can be made sufficiently fine enough to be unnoticeable or invisible from the digital cameras. The number of fibers is decided in accordance with size and weight of the object. The size of the hole is decided so as to cause no obstacle to the creation of silhouette images taken by all digital cameras.
By this embodiment shown in
These embodiments described above have many advantages in comparison with the prior technology for creating three-dimensional object model, as follows.
First of all, the above-described embodiments make it possible to minimize the number of photographs while keeping the quality of resultant three-dimensional object model, by decreasing a number of photographs from latitudinal relative positions further from the lateral position. This greatly contributes to a reduction in the total number of photographs and total time for photographing.
Further, in accordance with the above-described embodiments, since a plurality of photographs at the same longitudinal photographing position are continuously conducted from one or more different latitudinal photographing positions, the time needed for changing relative latitudinal and longitudinal positions between the object and the camera is minimized. Especially, as a plurality of cameras are provided at different latitudinal positions, as shown in the above-described embodiments, the time needed for photographing is greatly reduced. Further, by continuously photographing the object under different lighting conditions for silhouette and texture images, the quality of the resultant three-dimensional object models is greatly improved without significantly increasing photographing time.
Further, to put the object on a material, which is at least partially transparent, so that the object looks to be substantially floating in air and to photograph the object from a plurality of angles including an angle below the table as explained in the embodiments, it becomes possible to take silhouette images from the bottom of the object and texture images of the bottom of the object without manually changing the direction or orientation of the object. This also greatly contributes to the creation of the resultant three-dimensional object, which is visible from all orientation without relying on manual user operations or increasing the time needed for those manual user operations.
Further, by changing latitudinal photographing positions, at least a latitudinal photographing position close to the lateral angles, in accordance with a size of the object, it becomes possible to always obtain a high quality three-dimensional object model irrespective of a size of the object without increasing a number of photographs.
As described above, in this specification, although only two embodiments have been disclosed, it is possible to replace some of particular elements with alternative elements and remain within the scope of the present invention. A couple of such alternative elements are disclosed as follows.
In the above-described embodiments, an element on which an object to be modeled locates is composed of a glass table or fine transparent fibers secured on the plate. A method or elements for making the object shown in all orientation shall not be limited into the glass table or fine transparent fibers. For example, it is possible to replace these with a transparent fiber hanging the object, a transparent needle-shaped resin piercing the object, or a transparent stool on which the object is set.
Further, in the above-described embodiments, a plurality of digital cameras are prepared and set at different positions for photographing the object from a plurality of different orientations. This structure may be replaced with a structure, which guides and moves one digital camera so that the digital camera, revolving it around the object. If such a structure utilising a single camera is adopted, the camera is moved to locate it at one or more positions for every angle at which the object is rotated and photographs taken from each position.
Further, in the above-described embodiments, although photographs under different lighting conditions are taken for silhouette and texture images, it is not essential to separately photograph the silhouette and texture images. Namely, the present invention can be applied to an apparatus, a method and device, photographing once for both silhouette and texture images wherein the silhouette images are obtained by removing the background by using the choroma-key technique. Even applying such apparatus, method and device, as it can be seen, the advantage of the present invention of reducing the number of photographs and time similarly exists. Therefore it shall be understood that an apparatus, a method and a device adopting such a structure is with a scope of the present invention.
Further, in the above-described embodiments, longitudinal relative positions, namely rotating positions of the table, are commonly used for several latitudinal positions of a camera and photographs for silhouette and texture images. However, these conditions are not essential for the present invention and, for example, all longitudinal positions can be different for each photographing at different latitudinal positions and can be different between silhouette and texture images.
Furthermore, in the above-described embodiments, automatic photographing is carried out by rotating a table and setting it at a plurality of predetermined angles and it is described as a fully automatic photographing apparatus. However, even it the table is manually or part-manually rotated, it is accomplished that the number of photographs is reduced. Therefore, such a structure that the table is manually rotated is also adopted in the scope of the present invention.
As described above, according to one aspect of the present invention, it becomes possible to minimize a number of photographs and to reduce time for photographing without deteriorating the quality of the resultant three-dimensional object model, by differentiating a number of photographs taken from different relative longitudinal positions between the object and the photographing position, especially by making a larger number of photographs from a relative latitudinal position closer to a lateral position than other relative latitudinal positions.
Further, according to another aspect of the present invention, it becomes possible to reduce necessary time for relatively changing positions of the object and the photographing position by taking a plurality of photographs at a plurality of different relative latitudinal positions while keeping a relative longitudinal position between the object and the photographing position. Accordingly the total time needed for photographing the necessary images for creating a three-dimensional object model is shorter. Especially, by taking a plurality of photographs for creating both silhouette and texture images under different lighting conditions while keeping the relative longitudinal position between the object and the photographing position, total photographing time is further reduced.
Further, it becomes possible to obtain a high quality three-dimensional object model irrespective of a size of the object without increasing the number of photographs, by selecting a relative latitudinal position between the object and the photographing position in accordance with the size of the object.
Number | Date | Country | Kind |
---|---|---|---|
0310504.6 | May 2003 | GB | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/GB2004/001896 | 5/4/2004 | WO | 00 | 1/19/2007 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2004/114681 | 12/29/2004 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
4710876 | Cline et al. | Dec 1987 | A |
6317139 | Williams | Nov 2001 | B1 |
6952204 | Baumberg et al. | Oct 2005 | B2 |
6954212 | Lyons et al. | Oct 2005 | B2 |
6970591 | Lyons et al. | Nov 2005 | B1 |
6975326 | Baumberg et al. | Dec 2005 | B2 |
6975755 | Baumberg | Dec 2005 | B1 |
7079679 | Kirk et al. | Jul 2006 | B2 |
7092014 | Li et al. | Aug 2006 | B1 |
20010041064 | Huebner | Nov 2001 | A1 |
20020159628 | Matusik et al. | Oct 2002 | A1 |
20030035061 | Iwaki et al. | Feb 2003 | A1 |
20030038801 | Terauchi et al. | Feb 2003 | A1 |
20030066949 | Mueller et al. | Apr 2003 | A1 |
20030160785 | Baumberg | Aug 2003 | A1 |
20030189567 | Baumberg | Oct 2003 | A1 |
20040155877 | Hong et al. | Aug 2004 | A1 |
20040196294 | Hong et al. | Oct 2004 | A1 |
20050151751 | Hong et al. | Jul 2005 | A1 |
20050190179 | Hong et al. | Sep 2005 | A1 |
20060017722 | Hong et al. | Jan 2006 | A1 |
Number | Date | Country |
---|---|---|
199 13 853 | Oct 2000 | DE |
1 193 646 | Apr 2002 | EP |
5-135155 | Jun 1993 | JP |
8-233517 | Sep 1996 | JP |
10-170914 | Jun 1998 | JP |
2001-82940 | Mar 2001 | JP |
Number | Date | Country | |
---|---|---|---|
20070109295 A1 | May 2007 | US |