Patent ID: 12198384

DETAILED DESCRIPTION

An estimation device according to an embodiment includes one or more hardware processors configured to function as an estimation unit, a control unit, and a simultaneous localization and mapping (SLAM). The estimation unit estimates whether motion of a moving object is pure rotation from a plurality of first monocular images acquired by a monocular camera mounted on the moving object. The control unit determines a translation amount for translating the monocular camera in a case in which the motion of the moving object is the pure rotation. The SLAM unit estimates at least one of a location or an orientation of the monocular camera, and three-dimensional points of a subject of the monocular camera by monocular SLAM, from the first monocular images and a second monocular image acquired by the monocular camera that is translated based on the translation amount.

Exemplary embodiments of an estimation device, an estimation method, and a computer program product will be explained below in detail with reference to the accompanying drawings. The embodiments herein are not limited to the following embodiments.

First Embodiment

A first embodiment will be described with an example of an estimation device mounted in an autonomous mobile robot as follows as an example of a moving object.

A destination is given to the autonomous mobile robot, and the autonomous mobile robot then moves to the destination.

Routes along which the autonomous mobile robot travels are changed during the travel, depending on obstacle conditions.

An example of the autonomous mobile robot is a drone. An example of a drone having a destination and moving thereto is illustrated inFIG.1.

FIG.1is an overhead view of an autonomous mobile robot100of the first embodiment and an example of movement to the destination. The example inFIG.1illustrates a case in which the autonomous mobile robot100is a drone equipped with a monocular camera1. The example inFIG.1illustrates a case in which a path to the given destination is a narrow space surrounded by right and left walls disposed to face each other.

It is described in the first embodiment that motion estimation is carried out by using monocular SLAM. The monocular SLAM is a technique that estimates a self-location and three-dimensional points in the surrounding environment based on locations of the same objects (for example, corners of a subject in a three-dimensional space) in an image. As an example, a case in which two frames are used for motion estimation is illustrated inFIG.2.

FIG.2is a diagram illustrating an example of estimation processing of three-dimensional points104by using the monocular SLAM. InFIG.2, corners of a subject102are detected in an image of a past frame101aand an image of a current frame101bby using, for example, Shi-Tomasi corner detection. The subject102may be any subject. In the present embodiment, locations in the image to be a feature, such as the corners of the subject102, are referred to as feature points103.

After the feature points103are detected, a pair of the feature points similar between one feature point103in the past frame101aand the other feature point103in the current frame101bis detected. In the pair of feature points, these feature points are assumed to have a correspondence relationship. The monocular SLAM is used to estimate the three-dimensional points104based on the correspondence relationship between the pair of feature points. A self-location105of the monocular camera1is estimated based on the estimated three-dimensional points104(seeFIG.8described later for details).

In a case in which the monocular SLAM performs only rotational motion (referred to as “pure rotation” in the present embodiment), a problem occurs. First, optical flows will be described.

FIG.3is a diagram illustrating an example of optical flows106. The optical flows106represent vectors each of which indicates the movement of the feature points103that have a correspondence relationship in the frames101. The optical flows106are used to estimate the self-location105of the monocular camera1.

FIG.4Ais a diagram illustrating a first example in which a distinction between pure rotation and translation is not drawn in optical flows106.FIG.4Bis a diagram illustrating a second example in which a distinction between pure rotation and translation is not drawn in the optical flows106. First, a problem occurring at the start of motion estimation (a stage in which there are no estimated three-dimensional points104, and the self-location105of the monocular camera1is not detected) will be described.

Motion estimation at the start of motion estimation is performed by using a 5-point algorithm or other algorithms such as a general method. In the 5-point algorithm, the motion (that is, self-location) of the monocular camera1at the start of motion estimation is estimated based on inputs of the five optical flows106.

However, as illustrated inFIGS.4A and4B, since only the optical flows106are provided, a distinction between rotation and translation may not be drawn.FIGS.4A and4Bare examples of motion estimation in a case in which the optical flows106have approximately the same orientations and approximately the same lengths.

It is illustrated in the example inFIG.4Athat a distinction between pure rotation (clockwise) and translation (moving toward right) is not drawn. In this case, the pure rotation is performed in a case in which distances between individual three-dimensional points104of the subject102and the monocular camera1are different from each other, and the translation is performed in a case in which distances between individual three-dimensional points104of the subject102and the monocular camera1are approximately the same as each other.

It is illustrated in the example inFIG.4Bthat a distinction between the pure rotation (clockwise) and the translation (moving toward right) is not drawn. In this case, the pure rotation is performed in a case in which distances between individual three-dimensional points104of the subject102and the monocular camera1are the same as each other, and the translation is performed in a case in which distances between individual three-dimensional points104of the subject102and the monocular camera1are approximately the same as each other.

As illustrated inFIGS.4A and4B, it is difficult to distinguish between the case of pure rotation and the case of translational motion in which the distance between the subject102and the monocular camera1is nearly constant. In the motion estimation carried out by using the optical flows106, estimation based on the indistinguishable optical flows106described above may result in incorrect estimation of both rotation and translation. Therefore, in a case in which pure rotation of the autonomous mobile robot100equipped with the monocular camera1is performed at the start of estimating motion, the accuracy of motion estimation deteriorates.

Next, a problem occurring during motion estimation continuation (a stage in which there are estimated three-dimensional points104, and the self-location105of the monocular camera1is detected in the past frame101a) will be described.

FIG.5Ais a diagram illustrating a first example in which the three-dimensional points104can be estimated.FIG.5Bis a diagram illustrating the first example in a case in which the estimation of the three-dimensional points104fails. A location of an optical axis in each ofFIGS.5A and5Bis the actual location of an optical axis of the monocular camera1.

A smaller baseline is obtained, as illustrated inFIG.5B, in a case in which the monocular camera1performs pure rotation as compared to a case in which the monocular camera1moves to obtain a sufficient baseline during the motion estimation continuation (FIG.5A). In a case in which three-dimensional locations of the three-dimensional points104are estimated in a situation in which the baseline is small, an incorrect depth (infinite distance) may be estimated, as illustrated inFIG.5B.

FIG.6Ais a diagram illustrating a second example in which the three-dimensional points104can be estimated.FIG.6Bis a diagram illustrating the second example in a case in which the estimation of the three-dimensional points104fails. A location of an optical axis in each ofFIGS.6A and6Bis the actual location of an optical axis of the monocular camera1. After pure rotation, there may be no three-dimensional points104estimated at the finite depth (as illustrated inFIG.5A, three-dimensional locations of three-dimensional points estimated in a situation with a large baseline). In the motion to be estimated, specifically in translation, three-dimensional points104estimated at the finite depth are required, as illustrated inFIG.6A. Thus, in a case in which there are no such three-dimensional points104estimated at the finite depth (FIG.6B), the correct translational motion may not be estimated.

FIG.7is an overhead view illustrating an example of a situation requiring pure rotation. The example inFIG.7illustrates a case in which the autonomous mobile robot100equipped with the monocular camera1translates to a wall in front of itself and then continues pure rotation until the autonomous mobile robot100rotates by 90 degrees to the right at a corner. As described above, the autonomous mobile robot100may perform pure rotation depending on an obstacle condition. The problem described above causes the motion estimation of the autonomous mobile robot100to fail after the pure rotation.

For example, in the related art, such as Publication of Japanese Translation of PCT Application No. 2016-526313, in a case in which the pure rotation is continuously performed during the motion estimation continuation (for example, a case in which the pure rotation is continuously performed to 180 degrees), most of the three-dimensional points104of the subject102become three-dimensional points104at the infinite distance, and the correct translational motion may not be estimated.

Here, an example of a method of estimating translation based on the three-dimensional points104estimated at the finite depth will be described.

FIG.8is a diagram illustrating an example of a method of estimating translation based on the three-dimensional points104estimated at the finite depth. In a case in which three-dimensional points104estimated at the finite depth are obtained, the monocular SLAM is used to estimate the self-location105of the monocular camera1in real time, as illustrated inFIG.8, for example. First, the three-dimensional points104are estimated at the finite depth based on the correspondence relationship between pairs of the feature points103(S1; correspondence). Next, the three-dimensional points104estimated at the finite depth are then projected as points107on the current camera image (S2; projection). Finally, a location and an orientation (rotation) of the monocular camera1are optimized so that differences between locations indicated by the projected points107and locations on the image, which have the correspondence relationship with the pairs of feature points103, are minimized (S3; optimization).

Here, the three-dimensional points104at the finite depth is used as inputs for motion estimation to optimize translation and rotation, while the three-dimensional points104at the infinite distance is used as inputs for motion estimation to optimize rotation only. In a case in which there are some three-dimensional points104that are estimated at the finite depth out of the three-dimensional points104input during the optimization, the translation can be estimated by using only the three-dimensional points104that are estimated at the finite depth, for example. In general, as the number of the three-dimensional points104to be input is increased, the accuracy of the motion estimation is improved. Therefore, as the three-dimensional points104estimated at the finite depth is increased, the improvement in the accuracy of the estimation for translation can be expected. Conversely, as the number of the three-dimensional points104estimated at the finite depth used during the motion estimation is decreased, the accuracy of estimation of translation deteriorates. In a case in which there are no three-dimensional points104estimated at the finite depth, the translation cannot be estimated.

As described above, there are some problems in a case in which the autonomous mobile robot100starts and continues the motion estimation.

At Start of Motion Estimation

At the start of motion estimation, the optical flows106may have approximately the same orientations and approximately the same lengths. In this case, as illustrated inFIGS.4A and4Bdescribed above, the accuracy of the motion estimation at the start of motion estimation deteriorates because rotation and translation are not distinguished.

During Motion Estimation Continuation

In a case in which the pure rotation continues even during the motion estimation continuation (for example, the case in which the pure rotation is continuously performed to 180 degrees), most of the three-dimensional points104of the subject102may become the three-dimensional points104at the infinite distance. Thus, in a case in which the pure rotation continues, the accuracy of the estimation for translation deteriorates.

Hereinbelow, embodiments of an estimation device that can improve the accuracy of estimating the motion of the autonomous mobile robot100even in the above-described case will be described.

In order to solve the above problems, an estimation device10of the first embodiment causes the autonomous mobile robot100(monocular camera1) to translate, in the case in which the motion of the monocular camera1is pure rotation, so that the sufficient baseline is obtained, thereby preventing deterioration of the accuracy of the motion estimation or failure in the motion estimation.

Here, a definition of each of the deterioration and failure in the estimation accuracy in the description according to the first embodiment will be described as follows. In addition, specific examples of the deterioration and failure in the accuracy of motion estimation will be described in the following section.

The “deterioration in estimation accuracy” is defined as a large difference (greater than a given threshold value) between an estimated result and a true value. The “failure in estimation” is defined as the inability to perform estimation because there is no data to be used in the motion estimation performed by the estimation device10.

Specific Examples of “Deterioration in Motion Estimation Accuracy”

At the start of motion estimation, a distinction between rotation and translation may not be drawn by using the optical flows106alone, and deterioration in the accuracy of estimating both rotation and translation occurs.

As the pure rotation continues, the accuracy of estimating translation deteriorates because the number of three-dimensional points104estimated at the finite depth out of the three-dimensional points104input during the optimization is decreased.

Specific Examples of “Failure in Motion Estimation”

In a case in which there is no input for the estimated three-dimensional points104at the time of motion estimation (both the three-dimensional points104at the finite depth and the three-dimensional points104at the infinite distance are not available as input for the motion estimation), both rotation and translation cannot be estimated.

In a case in which there is no input of the three-dimensional points104estimated at the finite depth at the time of motion estimation, translation cannot be estimated.

The features of the first embodiment of the estimation device10are as follows.

The autonomous mobile robot100(monocular camera1) is translated during the pure rotation.

The amount of translating (baseline) the autonomous mobile robot100(monocular camera1) is varied according to a distance to the subject102. The farther the distance to the subject102, the smaller the variation in visibility (parallax). Since the monocular SLAM obtains information on a distance between the subject102and the monocular camera1based on the variation in visibility, the accuracy of the motion estimation decreases as the variation in visibility is small.

The pure rotation is detected from the optical flows106. Specifically, the following criteria will be used for determination. In a case in which there are any variations in lengths of the optical flows106, it is determined that translation is performed. In a case in which there are no variations in the lengths of the optical flows106, it is determined that pure rotation is performed.

Hereinbelow, an example of a functional configuration of the estimation device10of the first embodiment will be described in details. The estimation device10of the first embodiment estimates the self-location105(location and orientation) of the autonomous mobile robot100and the three-dimensional points104of the subject102based on monocular images which the monocular camera1inputs in real time.

Example of Functional Configuration

FIG.9is a diagram illustrating an example of a functional configuration of the estimation device10of the first embodiment. The estimation device10of the first embodiment is connected to the autonomous mobile robot100. The estimation device10is mounted in the autonomous mobile robot100. The estimation device10may be a server device including components (a SLAM unit2, an estimation unit3, and a control unit4) in addition to the monocular camera1, and the server device may be remotely connected to the autonomous mobile robot100via a wireless network or other means.

The estimation device10of the first embodiment is provided with the monocular camera1, the SLAM unit2, the estimation unit3, and the control unit4.

The monocular camera1is mounted on the autonomous mobile robot100and acquires monocular images in real time. The autonomous mobile robot100is, for example, a drone. The autonomous mobile robot100is a robot that can move to a given destination. A path along which the autonomous mobile robot moves can be changed while the autonomous mobile robot travels, depending on an obstacle condition estimated by the SLAM unit2.

The SLAM unit2estimates the self-location105of the monocular camera1(autonomous mobile robot100) and the three-dimensional points104of the subject102from monocular images acquired by the monocular camera1, by using the SLAM technology. For example, Non-Patent Document 1 and parallel tracking and mapping (PTAM) can be used as the SLAM technology. PTAM is monocular SLAM that estimates a camera pose from a correspondence relationship between feature points.

The estimation unit3estimates whether the motion of the autonomous mobile robot100is pure rotation from the optical flows106indicating movement of the feature points of the subject102. For example, in a case in which the lengths of the optical flows vary (that is, the variations in the lengths are equal to or greater than a threshold value), the estimation unit3estimates that the autonomous mobile robot100performs translation. In addition, for example, in a case in which the lengths of the optical flows do not vary (that is, the variations in the lengths are smaller than the threshold value), the estimation unit3estimates that the autonomous mobile robot100performs pure rotation.

However, as illustrated inFIGS.4A and4Bdescribed above, a distinction between translation and rotation may not be drawn in a case in which the optical flows106have approximately the same orientations and approximately the same lengths. In such a case, there is no problem even though the estimation unit3of the first embodiment estimates that the autonomous mobile robot100performs the pure rotation. This is because the number of new three-dimensional points104only increases even though the monocular camera1is moved to obtain the baseline by the translation of the autonomous mobile robot100(monocular camera1) in a case in which the pure rotation is estimated. Therefore, the estimation unit3of the first embodiment estimates that the autonomous mobile robot100performs the pure rotation in the case in which there are no variations in the lengths of the optical flows106.

The control unit4causes the autonomous mobile robot100in which the monocular camera1is mounted to translate. For example, in the example inFIG.1, a translation direction is vertical up and down because the horizontal left and right direction is close to the wall. The amount of translating (translation amount) the autonomous mobile robot100is determined by the control unit4.

For example, the control unit4determines the amount b (baseline) of translating the monocular camera1by the following Equations (1) and (2).

At Start of Motion Estimation
b=upper limit of movable region  (1)
During Motion Estimation Continuation
b=F(d)  (2)

In a case in which F(d) is greater than the movable region, b is set to the upper limit of the movable region.

Here, d is a distance between the monocular camera1and the subject102, and F is a function for determining the amount of translating the monocular camera1.

In other words, the control unit4determines the upper limit of the movable region of the monocular camera1at the start of estimating motion, and determines the translation amount b to be within a range equal to or smaller than the upper limit according to the distance between the monocular camera1and the subject102during the motion estimation continuation.

In order to cause the monocular camera1to translate, the control unit4causes the autonomous mobile robot100to translate in a given direction, thereby translating the monocular camera1. At the start of estimating motion, the control unit4determines, based on the upper limit of the movable region of the monocular camera1, a direction, for which the upper limit is greater, as the given direction. For example, the movable region is the height from the ground to the ceiling in the example inFIG.1.

For example, in a case in which the autonomous mobile robot100or the estimation device10is provided with an ultrasonic sensor, the distance d may be a statistic (for example, mean or median) of the depths of the three-dimensional points104acquired by the ultrasonic sensor. For example, the distance d may also be a statistic of depths of an object of interest, such as a particular pedestrian or an oncoming vehicle. Detection of the object of interest can be achieved by the estimation unit3using a neural network obtained by a machine learning method such as a convolutional neural network (CNN), for example.

The larger the distance d, the smaller the variation in visibility. Therefore, the accuracy of motion estimation may not be obtained in a case in which the autonomous mobile robot100equipped with the monocular camera1is not significantly translated. Therefore, the larger the distance d, the greater the translation of the autonomous mobile robot100equipped with the monocular camera1. That is, F is a function such that the larger the distance d, the larger b=F(d).

Here, the reason why the larger the distance d, the smaller the variation in visibility, in the case in which the autonomous mobile robot100equipped with the monocular camera1is not significantly translated is described. In a case in which a focal length (constant) of the monocular camera1is denoted by f, and the variation in visibility (parallax) is denoted by s, d, b, s, and f have the following relationship.
d=b×(f/s)  (3)

The following Equation (4) is obtained by modifying Equation (3).
s=f×(b/d)  (4)

Therefore, according to Equation (4), unless the autonomous mobile robot100equipped with the monocular camera1is significantly translated so that the larger the distance d, the greater the translation amount (baseline) b, the parallax s, that is the variation in visibility may be small.

Next, an example of simulation results of the optical flows106in a case in which the autonomous mobile robot100(monocular camera1) performs translational motion and an example of simulation results of the optical flows106generated in a case in which the autonomous mobile robot100performs pure rotational motion will be described.

FIG.10Ais a diagram illustrating an example of optical flows106in a case in which the monocular camera1has been translated by 40 centimeters in the horizontal lateral direction.FIG.10Bis a diagram illustrating an example of depths of three-dimensional points104in a case in which the monocular camera1has been translated by 40 centimeters in the horizontal lateral direction.

FIG.11Ais a diagram illustrating an example of optical flows106in a case in which the monocular camera1performs pure rotation by 1.5 degrees in yaw only.FIG.11Bis a diagram illustrating an example of depths of three-dimensional points104in a case in which the monocular camera1performs pure rotation by 1.5 degrees in yaw only.

“number of valid flow” inFIGS.10A and11Ais the number of samples of the optical flows106. “flow length” is a statistic (maximum, minimum, and mean) of the lengths of the optical flows106. A difference between maximum, minimum, and mean of “flow length” inFIG.11Ais smaller than a difference between maximum, minimum, and mean of “flow length” inFIG.10A.

The difference between minimum, maximum, and mean means that there are variations in the optical flows106. Here, the variation means that lengths of vectors of the optical flows106vary in depth (front and rear in depth direction) in the image. For example, the estimation unit3calculates a variance value of the “flow length” of the optical flows106and determines the magnitude of variation by using the variance value and a threshold value set in advance to an appropriate value according to an operating environment of the autonomous mobile robot100.

Specifically, for example, in a case in which the variance value of the “flow length” is equal to or greater than a threshold value, the estimation unit3determines that the variation is large (estimated as translation). Furthermore, in a case in which the variance value of the “flow length” is smaller than the threshold value, the estimation unit3determines that the variation is small (estimated as pure rotation).

The estimation device10may be provided with a plurality of the monocular cameras1. For example, in a case in which the monocular cameras1with different performance are provided, monocular images imaged by any monocular camera1may be used for the estimation processing.

Example of Estimation Method

FIG.12is a flowchart illustrating an example of an estimation method of the first embodiment. The example inFIG.12describes the flowchart illustrating the case in which the motion of the autonomous mobile robot100has been estimated as pure rotation.

First, the estimation unit3estimates that the motion of the autonomous mobile robot100is pure rotation from a plurality of first monocular images acquired by the monocular camera1mounted on the autonomous mobile robot100(an example of a moving object) (step S11).

Next, in a case in which the motion of the autonomous mobile robot100has been estimated as the pure rotation by processing at step S11, the control unit4determines the translation amount to translate the monocular camera1(step S12).

Next, the SLAM unit2estimates, from the first monocular images and a second monocular image acquired by the monocular camera1that has been translated based on the translation amount determined by the processing at step S12, a location and an orientation of the monocular camera1and three-dimensional points104of the subject102of the monocular camera1by the monocular SLAM (step S13).

At step S13, the estimation of the location and the orientation of the monocular camera1may be an estimation of at least one of the location or the orientation of the monocular camera1. For example, the result obtained by estimating only the location of the monocular camera1may be used.

Accordingly, the estimation device10of the first embodiment enables the improvement of the accuracy of estimating motion of the autonomous mobile robot100(an example of a moving object) by using the monocular SLAM. Specifically, the estimation device10of the first embodiment provides, for example, the following effects (1) to (3).

(1) Effect of Translating Monocular Camera1During Pure Rotation

Even in the case of pure rotation at the start of estimating motion, a sufficient baseline can be obtained. Thus, three-dimensional points104at the finite depth are obtained. Therefore, the deterioration of the accuracy of motion estimation or the failure of motion estimation can be prevented.

Even in the case in which the pure rotation is continuously performed (for example, a case of continuously rotating by 180 degrees), a sufficient baseline can be obtained. Thus, three-dimensional points104at the finite depth are obtained. Therefore, the deterioration of the accuracy of motion estimation or the failure of motion estimation can be prevented.

(2) Effect of Varying Translation Amount According to Distance of Subject102

In a case in which the amount of translating the monocular camera1is small relative to the distance to the subject102, the accuracy of estimating motion and the accuracy of estimating three-dimensional points may deteriorate. The estimation device10of the first embodiment increases the amount of translating the monocular camera1(varying the amount of translating the monocular camera1depending on the distance to the subject102) so that the farther the subject102is from the monocular camera1, the larger the baseline, thereby preventing deterioration of the accuracy of motion estimation.

The amount of translating the monocular camera1can be reduced as compared to the unconditional, large translation of the monocular camera1to accommodate the distant subject102.

(3) Effect of Detecting Pure Rotation From Variations in Optical Flows

Since the history of motion estimation is not used, whether the monocular camera1performs pure rotation can be detected even at the start of motion estimation (there is no history of motion estimation at the start).

Only the monocular camera1can detect whether the pure rotation is performed. Even in applications requiring an inertial measurement unit (IMU) or other devices to detect the pure rotation, the product cost can be reduced because it is no longer necessary to install a sensor other than the monocular camera1.

In the case of the autonomous mobile robot100, such as a drone, which is expected to be moved for a long period of time, a method of detecting the pure rotation by using the IMU has a problem. Specifically, in a case in which rotational and translational motion are estimated by the IMU, errors are accumulated in the estimation of speed, a problem in which the accuracy of estimating the pure rotation significantly deteriorates occurs. According to the method of detecting the pure rotation by using the estimation device10of the first embodiment, such a problem does not occur. A specific example of the accumulation of errors in acceleration will be described. It is assumed that an initial speed is given at a certain time. It is also assumed that a speed is continuously integrated from the acceleration to obtain a speed after a certain time. In a case in which there is an error in the acceleration that can be acquired by the IMU, errors in acceleration will be accumulated in the speed for each time of integration. Therefore, the amount of the errors in the speed increases over time.

Second Embodiment

Next, a second embodiment will be described. In the description of the second embodiment, similar explanations to the first embodiment will not be repeated, and components that differ from the first embodiment will be described.

Example of Functional Configuration

FIG.13is a diagram illustrating an example of a functional configuration of an estimation device10-2of the second embodiment. The second embodiment of the estimation device10-2includes the monocular camera1, the SLAM unit2, the estimation unit3, the control unit4, and a moving unit5. The difference from the configuration of the first embodiment is that the estimation device10-2further includes the moving unit5.

The moving unit5changes a location of the monocular camera1mounted on the autonomous mobile robot100by translating the monocular camera1based on the translation amount b (baseline) determined by the control unit4.

FIG.14is a diagram illustrating an example of the moving unit5of the second embodiment. The autonomous mobile robot100of the second embodiment is, for example, an industrial robot or an automobile. The moving unit5translates the monocular camera1, for example, as illustrated inFIG.14. In the example inFIG.14, a motion range of the monocular camera1corresponds to the upper limit of the movable range of the first embodiment (Equation (1)). In the example inFIG.14, a direction along which the monocular camera1translates is perpendicular to a direction of an optical axis of the camera. The translation amount b (baseline) is determined by the control unit4.

As described above, the estimation device10-2of the second embodiment further includes the moving unit5that translates a location of the monocular camera1mounted on a moving object, such as an industrial robot and an automobile, based on the translation amount. In a case of causing the monocular camera1to translate, the control unit4controls the moving unit5to translate the monocular camera1.

According to the estimation device10-2of the second embodiment, the same effect as the estimation device of the first embodiment is obtained.

Finally, examples of a hardware configuration of the estimation device10(10-2) according to the first and second embodiments are described. The estimation device10(10-2) of the first and second embodiments can be implemented by using, for example, any computer device as underlying hardware.

Example Hardware Configuration

FIG.15is a diagram illustrating an example of a hardware configuration of the estimation device10(10-2) of the first and second embodiments. The estimation device10(10-2) in the first and second embodiments is provided with a processor201, a main memory device202, an auxiliary memory device203, a display device204, an input device205, and a communication device206. The processor201, the main memory device202, the auxiliary memory device203, the display device204, the input device205, and the communication device206are connected to each other via a bus210.

The estimation device10(10-2) may not include some of the above configurations. For example, in a case in which the estimation device10(10-2) can use an input function and a display function of an external device, the estimation device10(10-2) may not include the display device204and the input device205.

The processor201executes a computer program read out from the auxiliary memory device203by the main memory device202. The main memory device202is a memory such as ROM and RAM. The auxiliary memory device203is a hard disk drive (HDD), a memory card, or the like.

The display device204is, for example, a liquid crystal display. The input device205is an interface for operating the estimation device10(10-2). The display device204and the input device205may be implemented by a touch panel or the like, which has both a display function and an input function. The communication device206is an interface for communicating with other devices.

For example, a computer program executed by the estimation device10(10-2) is provided as a computer program product that is formed in an installable or executable format file, and that is recorded in a computer-readable storage medium, such as a memory card, hard disk, CD-RW, CD-ROM, CD-R, DVD-RAM, and DVD-R.

For example, the computer program executed by the estimation device10(10-2) may be stored in a computer connected to a network such as the Internet and provided by downloading via the network.

For example, the computer program executed by the estimation device10(10-2) may also be provided via a network such as the Internet without being downloaded. Specifically, the estimation processing may be executed through an application service provider (ASP) type cloud service, for example.

For example, the computer program for the estimation device10(10-2) may be provided with a ROM or the like in which the computer program is embedded in advance.

The computer program executed by the estimation device10(10-2) has a modular structure including functions that can also be implemented by a computer program out of the functional configurations described above. As actual hardware, the processor201reads out the computer program from a storage medium and executes each of the functions, thereby loading each of the above-described functional blocks into the main memory device202. That is, each of the above functional blocks is generated in the main memory device202.

Some or all of the above-described functions may be implemented by hardware such as integrated circuits (IC) without using software.

While certain embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions. Indeed, the novel embodiments described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the embodiments described herein may be made without departing from the spirit of the inventions. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the inventions.