WO2024009528A1 - カメラパラメータ算出装置、カメラパラメータ算出方法及びカメラパラメータ算出プログラム - Google Patents
カメラパラメータ算出装置、カメラパラメータ算出方法及びカメラパラメータ算出プログラム Download PDFInfo
- Publication number
- WO2024009528A1 WO2024009528A1 PCT/JP2022/044040 JP2022044040W WO2024009528A1 WO 2024009528 A1 WO2024009528 A1 WO 2024009528A1 JP 2022044040 W JP2022044040 W JP 2022044040W WO 2024009528 A1 WO2024009528 A1 WO 2024009528A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- camera
- parameter calculation
- time
- series
- camera parameter
- Prior art date
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 156
- 239000013598 vector Substances 0.000 claims abstract description 35
- 230000006870 function Effects 0.000 claims description 37
- 238000000034 method Methods 0.000 claims description 21
- 238000006243 chemical reaction Methods 0.000 abstract description 5
- 238000012545 processing Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 11
- 230000005484 gravity Effects 0.000 description 10
- 210000003127 knee Anatomy 0.000 description 8
- 238000013519 translation Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 210000002683 foot Anatomy 0.000 description 5
- 210000003423 ankle Anatomy 0.000 description 4
- 239000000470 constituent Substances 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 210000000707 wrist Anatomy 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 239000011295 pitch Substances 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
Definitions
- the present disclosure relates to a technique for calculating camera parameters.
- a calibration index In order to calibrate a camera such as a sensing camera, in a geometry-based method, it is necessary to associate three-dimensional coordinate values in a three-dimensional space with pixel positions in a two-dimensional image. Conventionally, a repeating pattern with a known shape is photographed, and the intersection point or center of a circle is detected from the obtained image, thereby associating three-dimensional coordinates with pixel positions in a two-dimensional image. .
- the above-mentioned object having a known repeating pattern is called a calibration index.
- camera calibration means calculating camera parameters.
- Non-Patent Document 1 camera parameters are calculated by a geometry-based method that uses a calibration index to associate three-dimensional coordinate values in a three-dimensional space with pixel positions in a two-dimensional image.
- Non-Patent Document 2 the coordinates of the head and feet of a person walking in a straight line in a video are extracted, and the horizon line based on the vanishing point is estimated from the trajectory of the head and feet.
- Non-Patent Document 1 involves a process of photographing a repeating pattern with a known shape, a process of detecting an intersection point or the center of a circle from the obtained image, and a correspondence between three-dimensional coordinates and pixel positions in a two-dimensional image. It is necessary to add processing. Therefore, the calibration work is complicated and the camera may not be easily calibrated.
- Non-Patent Document 2 there is a risk that camera calibration may not be possible in a narrow space such as a home, if the feet are not captured or if the camera cannot be photographed at a sufficient distance to estimate the vanishing point. Furthermore, in this method, when a distorted lens such as a fisheye camera or a wide-angle camera is used, it becomes difficult to estimate the vanishing point, and camera calibration may not be possible.
- the present disclosure has been made to solve such problems, and aims to provide a technology that does not require a calibration index and can calculate camera parameters even when walking distance is short. shall be.
- a camera parameter calculation device includes an acquisition unit that acquires images captured by a camera, and calculates time-series skeletal coordinates that are image coordinates of a user's skeletal point from the time-series images acquired by the acquisition unit. an estimating unit that estimates, a feature point calculating unit that calculates a time-series feature point representing a reference position of the user's torso based on the time-series skeletal coordinates estimated by the estimation unit, and a feature point calculation unit that calculates a time-series feature point representing a reference position of the user's torso; By minimizing an objective function based on the distance error between the walking straight line represented and each of a plurality of camera line-of-sight lines passing through a plurality of line-of-sight vectors of the camera corresponding to each of the image coordinates of the feature points in the time series, the image coordinates are determined. and a camera parameter calculation unit that calculates the camera parameters for mutually converting the system and the world coordinate system.
- FIG. 1 is a block diagram illustrating an example of a configuration of a camera parameter calculation system according to Embodiment 1 of the present disclosure.
- FIG. 3 is a diagram illustrating an example of skeleton information including skeleton points estimated by an estimator.
- 2 is a flowchart illustrating an example of camera parameter calculation processing of the camera parameter calculation device according to Embodiment 1 of the present disclosure. It is a figure which shows an example of the feature point in the image which photographed the user who is walking.
- FIG. 7 is a diagram showing an example of a polynomial approximate curve for correcting time-series feature points.
- FIG. 3 is a schematic diagram for explaining calculation of camera parameters by a camera parameter calculation unit. It is a block diagram showing an example of composition of a camera parameter calculation system in Embodiment 2 of this indication. It is a flowchart which shows an example of camera parameter calculation processing of the camera parameter calculation device of Embodiment 2 of this indication.
- a camera parameter calculation device includes an acquisition unit that acquires images shot by a camera, and image coordinates of a user's skeletal point from the time-series images acquired by the acquisition unit.
- an estimation unit that estimates time-series skeletal coordinates;
- a feature point calculation unit that calculates time-series feature points representing a reference position of the user's torso based on the time-series skeletal coordinates estimated by the estimation unit;
- Minimize an objective function based on a distance error between a walking straight line representing the walking direction of the user and each of a plurality of camera line-of-sight lines passing through a plurality of line-of-sight vectors of the camera corresponding to each of the image coordinates of the feature points in the time series.
- a camera parameter calculation unit that calculates camera parameters for mutually converting the image coordinate system and the world coordinate system.
- the image coordinates of the time-series feature points are calculated using the time-series feature points representing the reference position of the user's torso and the camera parameters for mutually converting the image coordinate system and the world coordinate system.
- a plurality of line-of-sight vectors of respective cameras are represented.
- camera parameters are calculated by minimizing an objective function based on a distance error between a walking straight line representing the user's walking direction and each of a plurality of camera line-of-sight lines passing through a plurality of line-of-sight vectors. If there is an error in the camera parameters, the walking straight line and the camera line of sight do not intersect, resulting in a distance error between the walking straight line and the camera line of sight.
- the camera parameters are calculated by optimizing the camera parameters so that this distance error is minimized. At this time, if there are the same number of time-series images as the camera parameters to be calculated, it is possible to calculate the camera parameters. Therefore, no calibration index is required, and camera parameters can be calculated even when the walking distance is short.
- the plurality of line-of-sight vectors are calculated using the time series feature points calculated by the feature point calculation unit and the camera parameters. It may be calculated to correspond to each image coordinate of the feature point.
- a plurality of line-of-sight vectors can be expressed using the time-series feature points calculated by the feature point calculation unit and the camera parameters.
- the camera parameter calculation device described in (1) or (2) above may further include an output unit that outputs the camera parameters calculated by the camera parameter calculation unit.
- image processing such as removing image distortion can be performed at any time using the stored camera parameters.
- the camera parameter calculation unit calculates the sum of distance errors between the walking straight line and each of the plurality of camera line of sight lines. It may be used as the objective function.
- the sum of distance errors is used as the objective function, so optimal camera parameters can be calculated.
- the camera parameter calculation unit may be configured to calculate the square of a distance error between the walking straight line and each of the plurality of camera line-of-sight straight lines. may be used as the objective function.
- the sum of the squares of the distance errors is used as the objective function, so it is possible to calculate the optimal camera parameters.
- the user moves in a straight line based on the time-series feature points calculated by the feature point calculation unit.
- the camera may further include a determination unit that determines whether or not the user is present, and the camera parameter calculation unit may calculate the camera parameter when it is determined that the user is moving straight ahead.
- the feature point calculation unit calculates the time series based on the calculated image coordinates of the feature points in the time series. Calculate polynomial approximation curves for each of the x and y coordinates of the feature points, and use the calculated polynomial approximation curves for each of the x and y coordinates to calculate the values of the x and y coordinates of the feature points in the time series. may be corrected.
- the estimated time-series skeletal coordinates may contain errors
- the x-coordinates and y-coordinates of the time-series feature points are Since each value of the y-coordinate is corrected, the time-series feature points become a linear trajectory, and camera parameters can be calculated with high accuracy.
- the camera parameter calculation device according to any one of (1) to (7) above, further comprising a setting storage unit that stores in advance a distortion parameter representing lens distortion of the camera, and the camera parameter calculation unit
- the plurality of line-of-sight vectors may be expressed using the distortion parameters stored in the setting storage unit as part of the camera parameters.
- the present disclosure can be implemented not only as a camera parameter calculation device having the above-described characteristic configuration, but also as a camera that executes characteristic processing corresponding to the characteristic configuration of the camera parameter calculation device. It can also be realized as a parameter calculation method. Further, the characteristic processing included in such a camera parameter calculation method can also be implemented as a computer program that causes a computer to execute it. Therefore, the following other aspects can also achieve the same effects as the camera parameter calculation device described above.
- a camera parameter calculation method is a camera parameter calculation method using a computer, in which images taken by a camera are acquired, and images of the user's skeletal points are determined from the acquired time-series images. Estimate time-series skeletal coordinates that are coordinates, calculate time-series feature points representing the reference position of the user's torso based on the estimated time-series skeletal coordinates, and calculate a walking straight line representing the user's walking direction.
- the image coordinate system and the world coordinates are minimized by minimizing an objective function based on the distance error between each of the plurality of camera line-of-sight lines passing through the plurality of line-of-sight vectors of the camera corresponding to each of the image coordinates of the feature points in the time series. Calculate camera parameters for mutual conversion between the two systems.
- a camera parameter calculation program includes an acquisition unit that acquires images taken by a camera, and image coordinates of a user's skeletal point from the time-series images acquired by the acquisition unit. an estimation unit that estimates a certain time series of skeletal coordinates; and a feature point calculation unit that calculates a time series of feature points representing a reference position of the user's torso based on the time series of skeletal coordinates estimated by the estimation unit. , minimize the objective function based on the distance error between the walking straight line representing the user's walking direction and each of the plurality of camera line-of-sight lines passing through the plurality of line-of-sight vectors of the camera corresponding to the image coordinates of the feature points in the time series.
- the computer functions as a camera parameter calculation unit that calculates camera parameters for mutually converting the image coordinate system and the world coordinate system.
- the present disclosure can also be realized as a camera parameter calculation system that operates using such a camera parameter calculation program.
- a computer program can be distributed via a computer-readable non-transitory recording medium such as a CD-ROM or a communication network such as the Internet.
- a computer-readable non-transitory recording medium records a camera parameter calculation program, and the camera parameter calculation program acquires an image taken by a camera.
- an estimating unit that estimates time-series skeletal coordinates that are image coordinates of the user's skeletal points from the time-series images acquired by the acquisition unit;
- a feature point calculation unit that calculates time-series feature points representing a reference position of the user's torso based on a walking straight line representing the walking direction of the user, and the camera corresponding to image coordinates of the time-series feature points, respectively.
- the computer functions as a calculation unit.
- FIG. 1 is a block diagram illustrating an example of the configuration of a camera parameter calculation system according to Embodiment 1 of the present disclosure.
- the camera parameter calculation system includes a camera parameter calculation device 1 and a camera 4.
- the camera 4 is a fixed camera installed in a house where a user who is the object of sensing recognition resides.
- the camera 4 photographs the user at a predetermined frame rate, and inputs the photographed image to the camera parameter calculation device 1 at a predetermined frame rate.
- the camera parameter calculation device 1 is composed of a computer including a processor 2, a memory 3, and an interface circuit (not shown).
- the processor 2 is, for example, a central processing unit.
- the memory 3 is a nonvolatile rewritable storage device such as a flash memory, a hard disk drive, or a solid state drive.
- the interface circuit is, for example, a communication circuit.
- the camera parameter calculation device 1 may be configured with an edge server installed in a house, a smart speaker installed in a house, or a cloud server.
- the camera 4 and the camera parameter calculation device 1 are connected via a local area network.
- the camera parameter calculation device 1 is configured as a cloud server, the camera 4 and the camera parameter calculation device 1 are connected via a wide area communication network such as the Internet. Note that a part of the configuration of the camera parameter calculation device 1 may be provided on the edge side, and the rest may be provided on the cloud side.
- the processor 2 includes an acquisition section 21, an estimation section 22, a feature point calculation section 23, a camera parameter calculation section 24, and an output section 25.
- the acquisition unit 21 to output unit 25 may be realized by a central processing unit executing a camera parameter calculation program, or may be configured with a dedicated hardware circuit such as an ASIC (Application Specific Integrated Circuit).
- ASIC Application Specific Integrated Circuit
- the acquisition unit 21 acquires an image photographed by the camera 4.
- the acquisition unit 21 stores the acquired image in the frame memory 31.
- the estimation unit 22 estimates time-series skeletal coordinates, which are the image coordinates of the user's skeletal points, from the time-series images acquired by the acquisition unit 21.
- the estimation unit 22 estimates a plurality of skeletal points of the user and the reliability of each skeletal point from the image read from the frame memory 31.
- the estimation unit 22 estimates a plurality of skeletal points and reliability by inputting the image to a learned model obtained by machine learning the relationship between the image and the skeletal points.
- An example of a trained model is a deep neural network.
- An example of a deep neural network is a convolutional neural network that includes convolutional layers, pooling layers, and the like. Note that the estimation unit 22 may be configured with a learning model other than a deep neural network.
- FIG. 2 is a diagram showing an example of skeleton information 201 including skeleton points P1 to P17 estimated by the estimation unit 22.
- the skeleton information 201 is information indicating the skeleton points P1 to P17 for one person.
- the skeleton information 201 includes, for example, a left eye skeleton point P1, a right eye skeleton point P2, a left ear skeleton point P3, a right ear skeleton point P4, a nose skeleton point P5, a left shoulder skeleton point P6, and a right shoulder skeleton point.
- the skeleton information 201 includes 17 skeleton points P1 to P17.
- the estimation unit 22 estimates these 17 skeleton points P1 to P17.
- the skeleton information 201 includes links L1 to L12 indicating connections between skeleton points.
- the skeletal information 201 includes, for example, a link L1 connecting the left shoulder skeletal point P6 and the right shoulder skeletal point P7, a link L2 connecting the left shoulder skeletal point P6 and the left hip skeletal point P8, a link L2 connecting the left shoulder skeletal point P6 and the left hip skeletal point P8, and the right shoulder skeletal point P7.
- Link L3 connecting right hip skeletal point P9, link L4 connecting left hip skeletal point P8 and right hip skeletal point P9, link L5 connecting left shoulder skeletal point P6 and left elbow skeletal point P10, right A link L6 connects the shoulder skeleton point P7 and the right elbow skeleton point P11, a link L7 connects the left elbow skeleton point P10 and the left wrist skeleton point P12, and a link L7 connects the right elbow skeleton point P11 and the right wrist skeleton point P13.
- a link L8 connects the left hip skeletal point P8 and the left knee skeletal point P14
- a link L10 connects the right hip skeletal point P9 and the right knee skeletal point P15
- a link L10 connects the left knee skeletal point P8, and the left knee skeletal point P14 and a link L11 that connects the skeleton point P16 of the left ankle
- a link L12 that connects the skeleton point P15 of the right knee and the skeleton point P17 of the right ankle.
- the broken line is an auxiliary line indicating the contour of the face and the position of the neck.
- Skeletal points P1 to P17 are expressed by X and Y coordinates indicating their positions on the image.
- the skeleton information 201 is expressed by a part key that uniquely identifies the skeleton points P1 to P17, the coordinates of the skeleton points P1 to P17, and the reliability of the skeleton points P1 to P17.
- the skeleton information 201 is ⁇ part key "right eye”: [X coordinate, Y coordinate, reliability], part key "left eye”: [X coordinate, Y coordinate, reliability], ..., part key "left foot” Neck': [X coordinate, Y coordinate, reliability] ⁇ It is expressed in a dictionary format.
- the reliability is the reliability estimated by the estimation unit 22 for each of the skeleton points P1 to P17.
- the reliability is a probability expression of the likelihood of the estimated skeleton points P1 to P17. As the reliability value increases, the probability increases.
- the reliability is expressed, for example, by a value of 0 or more and 1 or less.
- the skeleton information 201 is composed of 17 skeleton points P1 to P17, but this is only an example, and the number of skeleton points P1 to P17 may be 16 or less. However, it may be 18 or more.
- the trained model may be configured to estimate a predetermined number of skeleton points of 16 or less or 18 or more.
- the skeleton information 201 may include skeleton points other than skeleton points P1 to P17 shown in FIG. 2 (for example, skeleton points such as fingers and mouth).
- the feature point calculation unit 23 calculates feature points from the plurality of skeleton points P1 to P17 estimated by the estimation unit 22.
- the feature point calculation unit 23 calculates time-series feature points representing the reference position of the user's torso based on the time-series skeletal coordinates estimated by the estimation unit 22.
- the feature point calculation unit 23 calculates polynomial approximate curves for each of the x-coordinate and y-coordinate of the time-series feature points based on the calculated image coordinates of the time-series feature points. Then, the feature point calculation unit 23 corrects the values of the x and y coordinates of the time series feature points using the polynomial approximate curves of the calculated x and y coordinates. Note that details of the feature point calculation unit 23 will be described later.
- the camera parameter calculation unit 24 calculates camera parameters based on the feature points calculated by the feature point calculation unit 23 and the settings stored in the setting storage unit 32.
- the camera parameter calculation unit 24 calculates an objective based on a distance error between a walking straight line representing the user's walking direction and each of a plurality of camera line-of-sight lines passing through a plurality of camera line-of-sight vectors corresponding to image coordinates of time-series feature points.
- camera parameters for mutually transforming the image coordinate system and the world coordinate system are calculated.
- the plurality of line-of-sight vectors are calculated using the time-series feature points calculated by the feature point calculation unit 23 and camera parameters so as to correspond to the image coordinates of the time-series feature points. Note that details of the camera parameter calculation unit 24 will be described later.
- the output unit 25 outputs the camera parameters calculated by the camera parameter calculation unit 24.
- the memory 3 includes a frame memory 31 and a setting storage section 32.
- the frame memory 31 stores images that the acquisition unit 21 acquires from the camera 4.
- the frame memory 31 stores time-series images acquired by the acquisition unit 21.
- the setting storage unit 32 stores the settings of the installed camera 4.
- the setting storage unit 32 stores distortion parameters representing lens distortion of the camera 4 in advance.
- the camera parameter calculation unit 24 uses the distortion parameters stored in the setting storage unit 32 as part of the camera parameters to represent a plurality of line-of-sight vectors. Note that details of the setting storage section 32 will be described later.
- the camera parameter calculation device 1 does not necessarily need to be realized by a single computer device, and may be realized by a distributed processing system (not shown) including a terminal device and a server.
- the acquisition section 21, frame memory 31, and estimation section 22 may be provided in the terminal device, and the setting storage section 32, feature point calculation section 23, camera parameter calculation section 24, and output section 25 may be provided in the server. good.
- data is exchanged between the constituent elements via a wide area communication network.
- FIG. 3 is a flowchart illustrating an example of camera parameter calculation processing by the camera parameter calculation device 1 according to Embodiment 1 of the present disclosure. Note that the camera parameter calculation process is performed when the camera 4 is installed, and thereafter is performed periodically, for example, every week or every month.
- step S1 the acquisition unit 21 acquires an image from the camera 4.
- the acquisition unit 21 stores the acquired image in the frame memory 31.
- step S2 the estimating unit 22 obtains a plurality of time-series images from the frame memory 31, and inputs the obtained plurality of time-series images to the trained model, so that each image is A plurality of skeletal points and the reliability of each skeletal point are estimated.
- the estimating unit 22 obtains a plurality of time-series images from the frame memory 31, and inputs the obtained plurality of time-series images to the trained model, so that each image is A plurality of skeletal points and the reliability of each skeletal point are estimated.
- the estimation unit 22 tracks the user in time series in estimating the skeleton points and reliability. To track the user, it is sufficient to identify the people whose centroids of the circumscribed rectangles of multiple skeletal coordinates are closest to each other between consecutive images in time series as the same person, and to minimize the combination of the distances between the centroids of the circumscribed rectangles. The decision may be made using the Hungarian method. Then, the estimating unit 22 identifies a user to be used for calculating camera parameters. For example, the estimation unit 22 selects the user with the largest time-series average of the area of the circumscribed rectangle of the skeleton.
- estimation unit 22 does not need to estimate only the skeleton points and the reliability of the skeleton points.
- step S3 the feature point calculation unit 23 calculates feature points from the skeletal coordinates estimated by the estimation unit 22.
- FIG. 4 is a diagram showing an example of feature points 401 in an image of a walking user.
- the feature point represents the reference point of the upper body in image coordinates, and is the center of gravity in skeletal coordinates of the torso.
- the feature point calculation unit 23 calculates the barycenter coordinates of four skeletal points P6 to P9 on both shoulders and both hips as feature points 401. Skeletal points that are not detected due to occlusion or body orientation are excluded from the feature point calculation.
- the feature point calculation unit 23 does not detect any skeleton points necessary for calculating the center of gravity, it does not calculate feature points and adds information indicating that "there is no feature point" to the image instead of the feature points.
- the images are recorded in association with each other, and the images are ignored in calculating camera parameters.
- the feature point calculation unit 23 may calculate the center of gravity coordinates of the torso using the reliability of the skeleton points P6 to P9 as weights. Further, the feature point calculation unit 23 may calculate the coordinates of the center of gravity of a circumscribed rectangle including the torso as the feature point 401 instead of the center of gravity of the skeletal points P6 to P9 of both shoulders and both hips. Note that the skeletal points used for calculating the center of gravity are not limited to the skeletal points P6 to P9 of both shoulders and both hips, and may include the skeletal points of both knees or both elbows.
- the feature point calculation unit 23 may calculate feature points only from skeleton points whose reliability is greater than a threshold value.
- step S4 the feature point calculation unit 23 extracts a plurality of time-series feature points in a predetermined section.
- the predetermined section is a section from the present to a certain time in the past (for example, 10 seconds ago).
- step S5 the feature point calculation unit 23 determines whether the predetermined section includes a walking section where the user is walking.
- a walking section is a section in which a plurality of time-series feature points are continuous for more than a threshold value.
- the threshold value is, for example, 2 seconds.
- the feature point calculation unit 23 selects a plurality of time-series feature points of the walking section.
- the feature point calculation unit 23 selects a plurality of time-series feature points of the longest walking section.
- the process returns to step S1.
- the feature point calculation unit 23 may determine that the predetermined section does not include a walking section.
- the user may specify a predetermined section.
- a terminal owned by a user may receive an input of a shooting start instruction and a shooting end instruction from the user.
- the user may start walking after inputting an instruction to start shooting, and input an instruction to end shooting after finishing walking.
- the terminal transmits a shooting start instruction and a shooting end instruction to the camera parameter calculation device 1.
- a communication unit (not shown) of the camera parameter calculation device 1 receives the shooting start instruction and the shooting end instruction.
- the feature point calculation unit 23 may define a predetermined interval from the time when the imaging start instruction is input to the time when the imaging end instruction is input, and extract a plurality of time-series feature points in the predetermined interval.
- the input unit (not shown) of the camera parameter calculation device 1 may accept the operator's designation of a predetermined section from a moving image shot in advance.
- step S6 the feature point calculation unit 23 corrects the calculated time-series feature points.
- the skeletal coordinates estimated by the estimation unit 22 include estimation errors, and the trajectory of the time-series feature points on the image is not smooth. Therefore, the feature point calculation unit 23 approximates the time-series feature points using a polynomial so that the trajectory of the time-series feature points on the image moves smoothly.
- FIG. 5 is a diagram showing an example of a polynomial approximation curve for correcting time-series feature points.
- the horizontal axis represents the frame, and the vertical axis represents the x-coordinate of the feature point.
- the feature point calculation unit 23 calculates a polynomial approximate curve of the x-coordinate of the time-series feature points based on the calculated image coordinates of the time-series feature points.
- the degree N of the polynomial g is, for example, fourth degree.
- the feature point calculation unit 23 corrects the x-coordinate values of the time-series feature points using the polynomial approximation curve of the calculated x-coordinates.
- the feature point calculation unit 23 calculates the correction value v of the x-coordinate of the feature point by substituting the value of u of the uncorrected calculated value of the feature point into the polynomial g.
- the feature point calculation unit 23 calculates a correction value for the y-coordinate (vertical direction of the image) of the feature point. That is, the feature point calculation unit 23 calculates a polynomial approximate curve of the y-coordinate of the time-series feature points based on the calculated image coordinates of the time-series feature points. Then, the feature point calculation unit 23 corrects the value of the y-coordinate of the time-series feature points using the polynomial approximate curve of the calculated y-coordinate.
- step S7 the camera parameter calculation unit 24 calculates the camera parameter based on the time-series feature points calculated by the feature point calculation unit 23 and the setting values of the user's home stored in the setting storage unit 32. Calculate.
- step S8 the output unit 25 outputs the camera parameters calculated by the camera parameter calculation unit 24.
- the first embodiment is useful for camera calibration in a house where there are many restrictions on the installation position of the camera 4.
- Camera parameters are projection-type parameters that project world coordinates onto image coordinates.
- (X, Y, Z) are world coordinate values
- (x, y) are image coordinate values
- ( T _ _ _ _ Z ) is a translation vector with respect to the world coordinate reference
- d x and d y are the pixel pitches of the image sensor of the camera 4 in the horizontal and vertical directions.
- d x , d y , C x , C y , r 11 to r 33 , T X , T Y , and T Z are camera parameters.
- Equations (1) to (4) represent the conversion from (X, Y, Z) to (x, y).
- the conversion is performed using the inverse functions or inverse matrices of formulas (1) to (4).
- the rotation matrix is regular, and an inverse matrix can always be calculated, and a 4x4 matrix including translation vectors is also regular. Therefore, for example, if the inverse function of ⁇ can be calculated as in the case of a pinhole camera, it is possible to convert (x, y) to (X, Y, Z) on the unit sphere.
- the lens distortion ⁇ may be calculated by calibrating the camera 4 in advance, a designed value of the lens may be used, or a pinhole camera may be assumed.
- the lens distortion ⁇ is expressed as a function or a table equivalent to a function.
- the lens distortion ⁇ is stored in the setting storage section 32.
- the camera parameter calculation unit 24 acquires lens distortion ⁇ from the setting storage unit 32.
- the user's walking is assumed to be a uniform linear motion. In uniform linear motion, the positions of feature points in three-dimensional space (center of gravity of the torso) exist on one straight line.
- the camera parameter calculation unit 24 can calculate the walking speed by expressing the user's walking speed with a plurality of parameters and including the plurality of parameters representing the walking speed in the camera parameters. It is.
- the setting storage unit 32 may store in advance the principal point image coordinates (C x , C y ) of the camera 4 and the horizontal and vertical pixel pitches d x and d y of the image sensor of the camera 4. .
- FIG. 6 is a schematic diagram for explaining calculation of camera parameters by the camera parameter calculation unit 24.
- the user is walking from the door toward the back of the hallway.
- Camera 4 is installed at the upper end of the hallway.
- the image coordinate position p i (x i , y i ) of the i-th feature point of N images taken of a user walking at a constant speed w and the world coordinate position p i (x i , Y i , Z i ) (w(i-1)+X 0 , Y 0 , Z 0 ).
- i represents a frame index.
- (X 0 , Y 0 , Z 0 ) is the initial position of the three-dimensional position corresponding to the feature point.
- the walking straight line L walk which is the locus of the torso center of gravity, which is the position in the three-dimensional space of the feature point, and the camera line of sight line L eye,i do not intersect, and the walking line L walk and the camera line of sight do not intersect.
- the straight line L eye,i has a distance error d i (distance between two straight lines).
- the camera line of sight line L eye,i is expressed by the following equation (5).
- Equation (5) P cam is the camera position, and V e,i is a directional vector directed from the camera position P cam to the world coordinate position P i (X i , Y i , Z i ) of the feature point. , s eye is a parametric variable.
- the camera position P cam is the same as the translation vector T (T X , T Y , T Z ).
- the walking straight line L walk has a walking direction vector of m (m X , m Y , m Z ), a parameter of s walk , and is a straight line that passes through the walking start position P 0 .
- the walking straight line L walk is expressed by the following equation (6).
- the objective function may be defined based on the distance error d i between the walking straight line L walk and the camera line of sight line L eye,i .
- the camera parameter calculation unit 24 calculates time-series feature points using the time-series feature points calculated by the feature point calculation unit 23 and camera parameters ⁇ for mutually converting the image coordinate system and the world coordinate system. represents a plurality of line-of-sight vectors of the camera 4 corresponding to each image coordinate.
- the camera parameter calculation unit 24 minimizes an objective function based on a distance error d i between a walking straight line L walk representing the user's walking direction and each of a plurality of camera line-of-sight lines L eye,i passing through a plurality of line-of-sight vectors. Calculate camera parameter ⁇ . Note that the distance error d i between the walking straight line L walk and the camera line of sight line L eye,i can be calculated using a formula for calculating the distance between straight lines.
- the camera parameter calculation unit 24 uses the sum of distance errors d i between the walking straight line L walk and each of the plurality of camera line-of-sight lines L eye,i as an objective function.
- the camera parameter calculation unit 24 may use the sum of the squares of the distance errors d i between the walking straight line L walk and each of the plurality of camera line-of-sight lines L eye,i as the objective function.
- the unknowns are the rotation matrix R (3 degrees of freedom) of the camera, the translation vector T (T X , T Y , T Z ), the walking speed w, the walking start position P 0 (X 0 , Y 0 , Z 0 ), and the walking direction.
- the vector m (m X , m Y , m Z ). Since the total degree of freedom is 13, if N is 13 or more, the camera parameter calculation unit 24 can calculate the camera parameters.
- the Levenberg-Marquardt method is used for nonlinear optimization of the objective function.
- the tilt angle of camera 4 is -20°
- the pan angle is 0°
- the roll angle is 0°.
- the translation vector of the camera 4 T It is.
- the walking speed w is 3 km/h.
- the walking start position P 0 is (0, 0.5, 0.9) [m].
- the walking direction vector m is (1,0,0)[m].
- T X , T Y , and T Z of the camera position P cam may use values measured in advance, or may be excluded from the variables for camera parameter calculation.
- the image coordinates of the time-series feature points are determined using the time-series feature points representing the reference position of the user's torso and the camera parameters for mutually converting the image coordinate system and the world coordinate system.
- a plurality of line-of-sight vectors of corresponding cameras are represented.
- camera parameters are calculated by minimizing an objective function based on a distance error between a walking straight line representing the user's walking direction and each of a plurality of camera line-of-sight lines passing through a plurality of line-of-sight vectors. If there is an error in the camera parameters, the walking straight line and the camera line of sight do not intersect, resulting in a distance error between the walking straight line and the camera line of sight.
- the camera parameters are calculated by optimizing the camera parameters so that this distance error is minimized. At this time, if there are the same number of time-series images as the camera parameters to be calculated, it is possible to calculate the camera parameters. Therefore, no calibration index is required, and camera parameters can be calculated even when the walking distance is short.
- Non-Patent Document 2 since the vanishing point is estimated from the trajectory of a person's head and feet, it is not possible to stably calculate camera parameters unless the walking distance is long.
- the image coordinates of the center of gravity of the torso are reflected in the objective function without using the vanishing point, so camera parameters can be stably calculated even for cameras with lens distortion. .
- FIG. 7 is a block diagram illustrating an example of the configuration of a camera parameter calculation system according to Embodiment 2 of the present disclosure.
- the camera parameter calculation system in Embodiment 2 includes a camera parameter calculation device 1A and a camera 4.
- the same reference numerals are attached
- the camera parameter calculation device 1A is composed of a computer including a processor 2A, a memory 3, and an interface circuit (not shown).
- the processor 2A includes an acquisition section 21, an estimation section 22, a feature point calculation section 23, a camera parameter calculation section 24, an output section 25, and a determination section 26.
- the determination unit 26 determines whether the user is moving straight forward based on the time-series feature points calculated by the feature point calculation unit 23. Then, the camera parameter calculation unit 24 calculates camera parameters when the determination unit 26 determines that the user is moving straight ahead.
- FIG. 8 is a flowchart illustrating an example of camera parameter calculation processing by the camera parameter calculation device 1A according to Embodiment 2 of the present disclosure.
- step S11 to step S15 is the same as the processing from step S1 to step S5 shown in FIG. 3, so a description thereof will be omitted.
- step S16 the determination unit 26 determines whether the user is moving straight toward the camera 4.
- the determining unit 26 calculates a torso index for each frame to determine whether the user's front is facing the camera 4 based on the following formula (7).
- Torso index (x coordinate of left shoulder + x coordinate of left hip) - (x coordinate of right shoulder + x coordinate of right hip)... (7)
- the torso index always takes a positive value.
- the torso index becomes a negative value. Therefore, by determining whether the sign of the torso index is positive or negative, it is possible to determine whether the user's front is facing the camera 4.
- the determination unit 26 determines whether the ratio of the number of frames in which the torso index is positive to all the number of frames in the walking section is greater than or equal to a threshold value.
- the threshold value is, for example, 0.7.
- the determination unit 26 determines that the user is moving straight toward the camera 4 when the ratio of the number of frames in which the torso index is positive to all the number of frames in the walking section is equal to or greater than a threshold value.
- the determination unit 26 determines that the user is not moving straight toward the camera 4 when the ratio of the number of frames in which the torso index is positive to all the number of frames in the walking section is smaller than the threshold value.
- step S16 If it is determined that the user is not moving straight toward the camera 4 (NO in step S16), the process returns to step S11.
- step S16 if it is determined that the user is moving straight toward the camera 4 (YES in step S16), the process moves to step S17.
- step S17 to step S19 is the same as the processing from step S6 to step S8 shown in FIG. 3, so a description thereof will be omitted.
- camera parameters can be calculated with high accuracy by removing feature points calculated by walking in a direction other than straight, which adversely affects camera parameter calculation.
- each component may be configured with dedicated hardware, or may be realized by executing a software program suitable for each component.
- Each component may be realized by a program execution unit such as a CPU or a processor reading and executing a software program recorded on a recording medium such as a hard disk or a semiconductor memory.
- the program may be executed by another independent computer system by recording the program on a recording medium and transferring it, or by transferring the program via a network.
- LSI Large Scale Integration
- circuit integration is not limited to LSI, and may be realized using a dedicated circuit or a general-purpose processor.
- An FPGA Field Programmable Gate Array
- reconfigurable processor that can reconfigure the connections and settings of circuit cells inside the LSI may be used.
- a processor such as a CPU executing a program.
- the technology according to the present disclosure does not require a calibration index and can calculate camera parameters even when the walking distance is short, so it is useful as a technology for calculating camera parameters.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Analysis (AREA)
Abstract
カメラパラメータ算出装置(1)は、カメラ(4)によって撮影された画像を取得する取得部(21)と、時系列の画像からユーザの骨格点の画像座標である時系列の骨格座標を推定する推定部(22)と、時系列の骨格座標に基づきユーザの胴体の基準位置を表す時系列の特徴点を算出する特徴点算出部(23)と、ユーザの歩行方向を表す歩行直線と、時系列の特徴点の画像座標それぞれに対応するカメラ(4)の複数の視線ベクトルを通る複数のカメラ視線直線それぞれとの距離誤差に基づく目的関数を最小化することによって、画像座標系と世界座標系とを相互に変換するためのカメラパラメータを算出するカメラパラメータ算出部(24)とを備える。
Description
本開示は、カメラパラメータを算出する技術に関する。
センシングカメラ等のカメラ校正を行うために、幾何ベースの手法では3次元空間中の3次元座標値と2次元画像中の画素位置とを対応づける必要がある。従来より、形状が既知の繰り返しパタンが撮影され、得られた画像から交点又は円の中心が検出されることで、3次元座標と2次元画像中の画素位置との対応付けが行われている。上述の形状が既知の繰り返しパタンを有する物体は校正指標と呼ばれる。
また、従来、動画に映る直線歩行する人の画像座標からカメラ校正を行う手法が提案されている。なお、カメラ校正とは、カメラパラメータを算出することである。
例えば、非特許文献1では、校正指標を用いて3次元空間中の3次元座標値と2次元画像中の画素位置とを対応づける幾何ベースの手法によって、カメラパラメータが算出される。
また、例えば、非特許文献2では、動画に映る一人の直線歩行する人の頭及び足の座標が抽出され、その頭及び足の軌跡から消失点に基づく水平線が推定される。
非特許文献1の手法では、形状が既知の繰り返しパタンを撮影する処理と、得られた画像から交点又は円の中心を検出する処理と、3次元座標と2次元画像中の画素位置との対応付けを行う処理とが必要である。そのため、校正作業が複雑であり、容易にカメラ校正ができないおそれがある。
また、非特許文献2の手法では、宅内等の狭い空間において、足が映らない場合、又は消失点を推定するための十分な距離が撮影できない場合、カメラ校正ができないおそれがある。また、本手法では、魚眼カメラ又は広角カメラのように歪のあるレンズが使用された場合に消失点の推定が困難になり、カメラ校正ができないおそれがある。
上記の従来の手法では、宅内に設置されたセンシングカメラのように、校正指標を設置することが困難であったり、カメラ校正に必要な十分な歩行距離を確保することが困難であったりする場合、カメラ校正が困難である。
R.Y.Tsai、「A Versatile Camera Calibration Technique for High-Accuracy 3D Machine Vision Metrology Using Off-the-Shelf TV Cameras and Lenses」、IEEE Journal of Robotics and Automation、Volume 3、Number 4、pages 323-344、1987年8月
F.Lv、T.Zhao、R.Nevatia、「Camera Calibration from Video of a Walking Human」、IEEE Transactions on Pattern Analysis and Machine Intelligence、Volume 28、Number 9、pages 1513-1518、2006年9月
本開示は、このような課題を解決するためになされたものであり、校正指標が不要であり、歩行距離が短い場合であってもカメラパラメータを算出することができる技術を提供することを目的とする。
本開示に係るカメラパラメータ算出装置は、カメラによって撮影された画像を取得する取得部と、前記取得部によって取得された時系列の画像からユーザの骨格点の画像座標である時系列の骨格座標を推定する推定部と、前記推定部によって推定された前記時系列の骨格座標に基づき前記ユーザの胴体の基準位置を表す時系列の特徴点を算出する特徴点算出部と、前記ユーザの歩行方向を表す歩行直線と、前記時系列の特徴点の画像座標それぞれに対応する前記カメラの複数の視線ベクトルを通る複数のカメラ視線直線それぞれとの距離誤差に基づく目的関数を最小化することによって、画像座標系と世界座標系とを相互に変換するための前記カメラパラメータを算出するカメラパラメータ算出部と、を備える。
本開示によれば、校正指標が不要であり、歩行距離が短い場合であってもカメラパラメータを算出することができる。
(本開示の基礎となった知見)
近年、カメラによるセンシングが実施されているが、高精度に画像認識するためには、カメラ校正が必要となる。カメラが商業施設又は屋外等に設置される場合、施工業者によるカメラ校正が可能である。一方、校正指標が設置できず、撮影空間が狭い場所においては、従来のカメラ校正手法は利用できないという課題がある。特に、カメラの設置位置に制約のある住宅内においては、このような課題が生じ易い。したがって、従来のカメラ校正手法では、宅内に設置されたカメラのカメラパラメータを算出することは困難である。
近年、カメラによるセンシングが実施されているが、高精度に画像認識するためには、カメラ校正が必要となる。カメラが商業施設又は屋外等に設置される場合、施工業者によるカメラ校正が可能である。一方、校正指標が設置できず、撮影空間が狭い場所においては、従来のカメラ校正手法は利用できないという課題がある。特に、カメラの設置位置に制約のある住宅内においては、このような課題が生じ易い。したがって、従来のカメラ校正手法では、宅内に設置されたカメラのカメラパラメータを算出することは困難である。
以上の課題を解決するために、下記の技術が開示される。
(1)本開示の一態様に係るカメラパラメータ算出装置は、カメラによって撮影された画像を取得する取得部と、前記取得部によって取得された時系列の画像からユーザの骨格点の画像座標である時系列の骨格座標を推定する推定部と、前記推定部によって推定された前記時系列の骨格座標に基づき前記ユーザの胴体の基準位置を表す時系列の特徴点を算出する特徴点算出部と、前記ユーザの歩行方向を表す歩行直線と、前記時系列の特徴点の画像座標それぞれに対応する前記カメラの複数の視線ベクトルを通る複数のカメラ視線直線それぞれとの距離誤差に基づく目的関数を最小化することによって、画像座標系と世界座標系とを相互に変換するためのカメラパラメータを算出するカメラパラメータ算出部と、を備える。
この構成によれば、ユーザの胴体の基準位置を表す時系列の特徴点と、画像座標系と世界座標系とを相互に変換するためのカメラパラメータとを用いて時系列の特徴点の画像座標それぞれに対応するカメラの複数の視線ベクトルが表される。そして、ユーザの歩行方向を表す歩行直線と複数の視線ベクトルを通る複数のカメラ視線直線それぞれとの距離誤差に基づく目的関数を最小化することによってカメラパラメータが算出される。カメラパラメータに誤差がある場合、歩行直線とカメラ視線直線とが交差せず、歩行直線とカメラ視線直線との距離誤差が生じる。この距離誤差が最小になるようにカメラパラメータが最適化されることにより、カメラパラメータが算出される。このとき、算出するカメラパラメータと同じ数の時系列の画像があれば、カメラパラメータを算出することが可能である。したがって、校正指標が不要であり、歩行距離が短い場合であってもカメラパラメータを算出することができる。
(2)上記(1)記載のカメラパラメータ算出装置において、前記複数の視線ベクトルは、前記特徴点算出部によって算出された前記時系列の特徴点と、前記カメラパラメータとを用いて前記時系列の特徴点の画像座標それぞれに対応するように算出されてもよい。
この構成によれば、特徴点算出部によって算出された時系列の特徴点と、カメラパラメータとを用いて複数の視線ベクトルを表すことができる。
(3)上記(1)又は(2)記載のカメラパラメータ算出装置において、前記カメラパラメータ算出部によって算出された前記カメラパラメータを出力する出力部をさらに備えてもよい。
この構成によれば、出力されたカメラパラメータが記憶されることにより、記憶されたカメラパラメータを用いて、画像の歪みの除去などの画像処理をいつでも行うことができる。
(4)上記(1)~(3)のいずれか1つに記載のカメラパラメータ算出装置において、前記カメラパラメータ算出部は、前記歩行直線と前記複数のカメラ視線直線それぞれとの距離誤差の総和を前記目的関数として用いてもよい。
この構成によれば、距離誤差の総和が目的関数として用いられるので、最適なカメラパラメータを算出することができる。
(5)上記(1)~(3)のいずれか1つに記載のカメラパラメータ算出装置において、前記カメラパラメータ算出部は、前記歩行直線と前記複数のカメラ視線直線それぞれとの距離誤差の2乗の総和を前記目的関数として用いてもよい。
この構成によれば、距離誤差の2乗の総和が目的関数として用いられるので、最適なカメラパラメータを算出することができる。
(6)上記(1)~(5)のいずれか1つに記載のカメラパラメータ算出装置において、前記特徴点算出部によって算出された前記時系列の特徴点に基づいて前記ユーザが直進歩行しているか否かを判定する判定部をさらに備え、前記カメラパラメータ算出部は、前記ユーザが直進歩行していると判定された場合、前記カメラパラメータを算出してもよい。
この構成によれば、ユーザが直進歩行している場合、カメラパラメータが算出され、ユーザが直進歩行していない場合、カメラパラメータが算出されないので、高精度にカメラパラメータを算出することができる。
(7)上記(1)~(6)のいずれか1つに記載のカメラパラメータ算出装置において、前記特徴点算出部は、算出した前記時系列の特徴点の画像座標に基づいて、前記時系列の特徴点のx座標及びy座標それぞれの多項式近似曲線を算出し、算出したx座標及びy座標それぞれの前記多項式近似曲線を用いて、前記時系列の特徴点のx座標及びy座標それぞれの値を補正してもよい。
この構成によれば、推定された時系列の骨格座標には誤差が含まれているおそれがあるが、x座標及びy座標それぞれの多項式近似曲線を用いて、時系列の特徴点のx座標及びy座標それぞれの値が補正されるので、時系列の特徴点が直線的な軌跡になり、高精度にカメラパラメータを算出することができる。
(8)上記(1)~(7)のいずれか1項に記載のカメラパラメータ算出装置において、前記カメラのレンズ歪を表す歪パラメータを予め記憶する設定記憶部をさらに備え、前記カメラパラメータ算出部は、前記設定記憶部に記憶された前記歪パラメータを前記カメラパラメータの一部に用いて前記複数の視線ベクトルを表してもよい。
この構成によれば、カメラのレンズ歪を表す歪パラメータは算出する必要がないので、カメラパラメータの算出に要する処理時間を短縮することができる。
また、本開示は、以上のような特徴的な構成を備えるカメラパラメータ算出装置として実現することができるだけでなく、カメラパラメータ算出装置が備える特徴的な構成に対応する特徴的な処理を実行するカメラパラメータ算出方法などとして実現することもできる。また、このようなカメラパラメータ算出方法に含まれる特徴的な処理をコンピュータに実行させるコンピュータプログラムとして実現することもできる。したがって、以下の他の態様でも、上記のカメラパラメータ算出装置と同様の効果を奏することができる。
(9)本開示の他の態様に係るカメラパラメータ算出方法は、コンピュータにおけるカメラパラメータ算出方法であって、カメラによって撮影された画像を取得し、取得した時系列の画像からユーザの骨格点の画像座標である時系列の骨格座標を推定し、推定した前記時系列の骨格座標に基づき前記ユーザの胴体の基準位置を表す時系列の特徴点を算出し、前記ユーザの歩行方向を表す歩行直線と、前記時系列の特徴点の画像座標それぞれに対応する前記カメラの複数の視線ベクトルを通る複数のカメラ視線直線それぞれとの距離誤差に基づく目的関数を最小化することによって、画像座標系と世界座標系とを相互に変換するためのカメラパラメータを算出する。
(10)本開示の他の態様に係るカメラパラメータ算出プログラムは、カメラによって撮影された画像を取得する取得部と、前記取得部によって取得された時系列の画像からユーザの骨格点の画像座標である時系列の骨格座標を推定する推定部と、前記推定部によって推定された前記時系列の骨格座標に基づき前記ユーザの胴体の基準位置を表す時系列の特徴点を算出する特徴点算出部と、前記ユーザの歩行方向を表す歩行直線と、前記時系列の特徴点の画像座標それぞれに対応する前記カメラの複数の視線ベクトルを通る複数のカメラ視線直線それぞれとの距離誤差に基づく目的関数を最小化することによって、画像座標系と世界座標系とを相互に変換するためのカメラパラメータを算出するカメラパラメータ算出部としてコンピュータを機能させる。
また、本開示は、このようなカメラパラメータ算出プログラムによって動作するカメラパラメータ算出システムとして実現することもできる。また、このようなコンピュータプログラムを、CD-ROM等のコンピュータ読み取り可能な非一時的な記録媒体あるいはインターネット等の通信ネットワークを介して流通させることができるのは、言うまでもない。
(11)本開示の他の態様に係るコンピュータ読み取り可能な非一時的な記録媒体は、カメラパラメータ算出プログラムを記録しており、前記カメラパラメータ算出プログラムは、カメラによって撮影された画像を取得する取得部と、前記取得部によって取得された時系列の画像からユーザの骨格点の画像座標である時系列の骨格座標を推定する推定部と、前記推定部によって推定された前記時系列の骨格座標に基づき前記ユーザの胴体の基準位置を表す時系列の特徴点を算出する特徴点算出部と、前記ユーザの歩行方向を表す歩行直線と、前記時系列の特徴点の画像座標それぞれに対応する前記カメラの複数の視線ベクトルを通る複数のカメラ視線直線それぞれとの距離誤差に基づく目的関数を最小化することによって、画像座標系と世界座標系とを相互に変換するためのカメラパラメータを算出するカメラパラメータ算出部としてコンピュータを機能させる。
なお、以下で説明する実施の形態は、いずれも本開示の一具体例を示すものである。以下の実施の形態で示される数値、形状、構成要素、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。また全ての実施の形態において、各々の内容を組み合わせることもできる。
(実施の形態1)
以下、本開示の実施の形態1について図面を参照しながら説明する。
以下、本開示の実施の形態1について図面を参照しながら説明する。
図1は、本開示の実施の形態1におけるカメラパラメータ算出システムの構成の一例を示すブロック図である。
カメラパラメータ算出システムは、カメラパラメータ算出装置1及びカメラ4を備える。
本実施の形態1では、カメラ4は、センシングの認識対象となるユーザが居住する住宅内に設置された固定カメラである。カメラ4は、所定のフレームレートでユーザを撮影し、撮影した画像を所定のフレームレートでカメラパラメータ算出装置1に入力する。
カメラパラメータ算出装置1は、プロセッサ2、メモリ3、及びインターフェイス回路(図略)を含むコンピュータで構成されている。プロセッサ2は、例えば中央演算処理装置である。メモリ3は、例えばフラッシュメモリ、ハードディスクドライブ、又はソリッドステートドライブ等の不揮発性の書き換え可能な記憶装置である。インターフェイス回路は、例えば通信回路である。
カメラパラメータ算出装置1は、住宅内に設置されたエッジサーバで構成されてもよいし、住宅内に設置されたスマートスピーカであってもよいし、クラウドサーバで構成されてもよい。カメラパラメータ算出装置1がエッジサーバ又はスマートスピーカで構成される場合、カメラ4とカメラパラメータ算出装置1とはローカルエリアネットワークを介して接続される。また、カメラパラメータ算出装置1がクラウドサーバで構成される場合、カメラ4とカメラパラメータ算出装置1とはインターネット等の広域通信網を介して接続される。なお、カメラパラメータ算出装置1の構成の一部がエッジ側に設けられ、残りがクラウド側に設けられてもよい。
プロセッサ2は、取得部21、推定部22、特徴点算出部23、カメラパラメータ算出部24、及び出力部25を含む。取得部21~出力部25は中央演算処理装置がカメラパラメータ算出プログラムを実行することで実現されてもよいし、ASIC(Application Specific Integrated Circuit)等の専用のハードウェア回路で構成されてもよい。
取得部21は、カメラ4によって撮影された画像を取得する。取得部21は、取得した画像をフレームメモリ31に記憶する。
推定部22は、取得部21によって取得された時系列の画像からユーザの骨格点の画像座標である時系列の骨格座標を推定する。推定部22は、フレームメモリ31から読み出した画像からユーザの複数の骨格点及び各骨格点の信頼度を推定する。推定部22は、画像と骨格点との関係を機械学習することで得られた学習済みモデルに画像を入力することで複数の骨格点及び信頼度を推定する。学習済みモデルの一例は、ディープニューラルネットワークである。ディープニューラルネットワークの一例は、畳み込み層及びプーリング層等を含む畳み込みニューラルネットワークである。なお、推定部22は、ディープニューラルネットワーク以外の学習モデルで構成されてもよい。
図2は、推定部22が推定する骨格点P1~P17を含む骨格情報201の一例を示す図である。
骨格情報201は、一人分の骨格点P1~P17を示す情報である。骨格情報201は、例えば、左目の骨格点P1、右目の骨格点P2、左耳の骨格点P3、右耳の骨格点P4、鼻の骨格点P5、左肩の骨格点P6、右肩の骨格点P7、左腰の骨格点P8、右腰の骨格点P9、左肘の骨格点P10、右肘の骨格点P11、左手首の骨格点P12、右手首の骨格点P13、左膝の骨格点P14、右膝の骨格点P15、左足首の骨格点P16、及び右足首の骨格点P17を含む。骨格情報201は、17の骨格点P1~P17を含む。
推定部22は、これら17の骨格点P1~P17を推定する。さらに、骨格情報201は、骨格点同士の繋がりを示すリンクL1~L12を含む。骨格情報201は、例えば、左肩の骨格点P6と右肩の骨格点P7とを繋ぐリンクL1、左肩の骨格点P6と左腰の骨格点P8とを繋ぐリンクL2、右肩の骨格点P7と右腰の骨格点P9とを繋ぐリンクL3、左腰の骨格点P8と右腰の骨格点P9とを繋ぐリンクL4、左肩の骨格点P6と左肘の骨格点P10とを繋ぐリンクL5、右肩の骨格点P7と右肘の骨格点P11とを繋ぐリンクL6、左肘の骨格点P10と左手首の骨格点P12とを繋ぐリンクL7、右肘の骨格点P11と右手首の骨格点P13とを繋ぐリンクL8、左腰の骨格点P8と左膝の骨格点P14とを繋ぐリンクL9、右腰の骨格点P9と右膝の骨格点P15とを繋ぐリンクL10、左膝の骨格点P14と左足首の骨格点P16とを繋ぐリンクL11、及び右膝の骨格点P15と右足首の骨格点P17とを繋ぐリンクL12を含む。
図2において、破線は顔の輪郭と首の位置とを示す補助線である。骨格点P1~P17は、画像上での位置を示すX座標及びY座標で表現される。骨格情報201は、骨格点P1~P17を一意に特定するパーツキーと、骨格点P1~P17の座標と、骨格点P1~P17の信頼度とで表現される。例えば、骨格情報201は、{パーツキー「右目」:[X座標、Y座標、信頼度]、パーツキー「左目」:[X座標、Y座標、信頼度]、・・・、パーツキー「左足首」:[X座標、Y座標、信頼度]}というような辞書形式で表現される。
信頼度は、推定部22が各骨格点P1~P17に対して推定した信頼度である。信頼度は、推定された骨格点P1~P17の確からしさを確率で表現したものである。信頼度の値が大きくなるにつれて確からしさが高くなる。信頼度は、例えば0以上1以下の値により表される。なお、図2の例では、骨格情報201は、17の骨格点P1~P17で構成されているが、これは一例に過ぎず、骨格点P1~P17の数は、16以下であってもよいし、18以上であってもよい。この場合、学習済みモデルは、16以下又は18以上の所定数の骨格点を推定するように構成されればよい。また、骨格情報201は、図2で示す骨格点P1~P17以外の骨格点(例えば、指及び口等の骨格点)を含んでもよい。
特徴点算出部23は、推定部22によって推定された複数の骨格点P1~P17から、特徴点を算出する。特徴点算出部23は、推定部22によって推定された時系列の骨格座標に基づきユーザの胴体の基準位置を表す時系列の特徴点を算出する。また、特徴点算出部23は、算出した時系列の特徴点の画像座標に基づいて、時系列の特徴点のx座標及びy座標それぞれの多項式近似曲線を算出する。そして、特徴点算出部23は、算出したx座標及びy座標それぞれの多項式近似曲線を用いて、時系列の特徴点のx座標及びy座標それぞれの値を補正する。なお、特徴点算出部23の詳細については後述する。
カメラパラメータ算出部24は、特徴点算出部23によって算出された特徴点と設定記憶部32に記憶されている設定とに基づきカメラパラメータを算出する。カメラパラメータ算出部24は、ユーザの歩行方向を表す歩行直線と、時系列の特徴点の画像座標それぞれに対応するカメラの複数の視線ベクトルを通る複数のカメラ視線直線それぞれとの距離誤差に基づく目的関数を最小化することによって、画像座標系と世界座標系とを相互に変換するためのカメラパラメータを算出する。複数の視線ベクトルは、特徴点算出部23によって算出された時系列の特徴点と、カメラパラメータとを用いて時系列の特徴点の画像座標それぞれに対応するように算出される。なお、カメラパラメータ算出部24の詳細については後述する。
出力部25は、カメラパラメータ算出部24によって算出されたカメラパラメータを出力する。
メモリ3は、フレームメモリ31及び設定記憶部32を含む。フレームメモリ31は、取得部21がカメラ4から取得した画像を記憶する。フレームメモリ31は、取得部21によって取得された時系列の画像を記憶する。
設定記憶部32は、設置されているカメラ4の設定を記憶する。設定記憶部32は、カメラ4のレンズ歪を表す歪パラメータを予め記憶する。カメラパラメータ算出部24は、設定記憶部32に記憶された歪パラメータをカメラパラメータの一部に用いて複数の視線ベクトルを表す。なお、設定記憶部32の詳細については、後述する。
カメラパラメータ算出装置1は、必ずしも単一のコンピュータ装置で実現される必要はなく、端末装置とサーバとを含む分散処理システム(不図示)によって実現されてもよい。この場合、取得部21、フレームメモリ31、及び推定部22が端末装置に設けられ、設定記憶部32、特徴点算出部23、カメラパラメータ算出部24、及び出力部25がサーバに設けられてもよい。また、この場合、構成要素間でのデータの受け渡しは、広域通信網を介して行われる。
以上がカメラパラメータ算出装置1の構成である。引き続き、カメラパラメータ算出装置1のカメラパラメータ算出処理について説明する。
図3は、本開示の実施の形態1のカメラパラメータ算出装置1のカメラパラメータ算出処理の一例を示すフローチャートである。なお、カメラパラメータ算出処理は、カメラ4の設置時に行われ、その後、例えば1週間毎又は1ヶ月毎など定期的に行われる。
まず、ステップS1において、取得部21は、カメラ4から画像を取得する。取得部21は、取得した画像をフレームメモリ31に記憶する。
次に、ステップS2において、推定部22は、フレームメモリ31から複数枚の時系列の画像を取得し、取得した複数枚の時系列の画像を学習済みモデルに入力することで、各画像に対して複数の骨格点と各骨格点の信頼度とを推定する。ここでは、説明を簡単にするために、1枚の画像には1人のユーザのみが映っており、歩行している1人のユーザを撮影した画像がカメラパラメータの算出に利用されるものとして説明するが、これは一例であり、歩行している複数のユーザを撮影した画像がカメラパラメータの算出に利用されてもよい。
推定部22は、骨格点及び信頼度の推定において、時系列でユーザを追跡する。ユーザの追跡は、時系列で連続する画像間で、複数の骨格座標の外接矩形の重心が最も近い人物同士を同一人物とすればよく、外接矩形の重心間距離の組み合わせが最小となるようにハンガリアン法で決定してもよい。そして、推定部22は、カメラパラメータの算出に利用するユーザを特定する。例えば、推定部22は、骨格の外接矩形の面積の時系列平均が最大のユーザを選択する。
なお、推定部22は、骨格点のみを推定し、骨格点の信頼度を推定しなくてもよい。
次に、ステップS3において、特徴点算出部23は、推定部22によって推定された骨格座標から特徴点を算出する。
図4は、歩行しているユーザを撮影した画像における特徴点401の一例を示す図である。
特徴点は、画像座標における上半身の基準点を表し、胴体の骨格座標の重心である。特徴点算出部23は、両肩及び両腰の4つの骨格点P6~P9の重心座標を特徴点401として算出する。遮蔽物又は体の向きによって検出されない骨格点は特徴点の計算から除かれる。また、特徴点算出部23は、重心の計算に必要な骨格点が1点も検出されない場合、特徴点を算出せず、「特徴点がない」ことを示す情報を特徴点の代わりに画像に対応付けて記録し、カメラパラメータの算出において当該画像を無視する。
なお、特徴点算出部23は、骨格点P6~P9の信頼度を重みとして胴体の重心座標を算出してもよい。また、特徴点算出部23は、両肩及び両腰の骨格点P6~P9の重心の代わりに胴体を含む外接矩形の重心座標を特徴点401として算出してもよい。なお、重心の算出に使用する骨格点は、両肩及び両腰の骨格点P6~P9に限定せず、両膝又は両肘の骨格点等を含めてもよい。
また、特徴点算出部23は、信頼度が閾値より大きい骨格点のみから特徴点を算出してもよい。
次に、ステップS4において、特徴点算出部23は、所定区間の複数の時系列の特徴点を抽出する。所定区間は、現在から過去のある時刻(例えば、10秒前)までの区間である。
次に、ステップS5において、特徴点算出部23は、所定区間にユーザが歩行している歩行区間が含まれているか否かを判定する。歩行区間は、複数の時系列の特徴点が閾値以上連続している区間である。閾値は、例えば2秒である。特徴点算出部23は、歩行区間の複数の時系列の特徴点を選択する。所定区間に複数の歩行区間が存在する場合、特徴点算出部23は、最も長い歩行区間の複数の時系列の特徴点を選択する。ここで、所定区間に歩行区間が含まれていないと判定された場合(ステップS5でNO)、ステップS1に処理が戻る。
なお、歩行しているユーザを真正面から撮影した場合、特徴点は算出されるが、時系列の特徴点が移動しないおそれがある。特徴点算出部23は、複数の時系列の特徴点の軌跡が移動しない場合、所定区間に歩行区間が含まれていないと判定してもよい。
また、ユーザが所定区間を指定してもよい。例えば、ユーザが所持する端末は、ユーザによる撮影開始指示と撮影終了指示との入力を受け付けてもよい。ユーザは、撮影開始指示を入力した後に歩行を開始し、歩行を終了した後に撮影終了指示を入力してもよい。端末は、撮影開始指示と撮影終了指示とをカメラパラメータ算出装置1に送信する。カメラパラメータ算出装置1の通信部(不図示)は、撮影開始指示と撮影終了指示とを受信する。特徴点算出部23は、撮影開始指示が入力された時刻から撮影終了指示が入力された時刻までを所定区間とし、所定区間の複数の時系列の特徴点を抽出してもよい。
また、カメラパラメータ算出装置1の入力部(不図示)は、予め撮影された動画像から、オペレータによる所定区間の指定を受け付けてもよい。
一方、所定区間に歩行区間が含まれていると判定された場合(ステップS5でYES)、ステップS6において、特徴点算出部23は、算出された時系列の特徴点を補正する。推定部22によって推定された骨格座標は推定誤差を含み、時系列の特徴点の画像上の軌跡は滑らかではない。そのため、特徴点算出部23は、時系列の特徴点の画像上の軌跡が滑らかに移動するように、時系列の特徴点を多項式で近似する。
図5は、時系列の特徴点を補正するための多項式近似曲線の一例を示す図である。図5において、横軸は、フレームを表し、縦軸は、特徴点のx座標を表す。
まず、特徴点算出部23は、算出した時系列の特徴点の画像座標に基づいて、時系列の特徴点のx座標の多項式近似曲線を算出する。特徴点算出部23は、時系列の特徴点のフレーム(時間)の値(u)に対する、時系列の特徴点のx座標(画像の横方向)の値(v)をプロットした時に、v=g(u)とする多項式gを時系列の特徴点にフィッティングし、多項式近似曲線を算出する。多項式gの次数Nは、例えば、4次である。
そして、特徴点算出部23は、算出したx座標の多項式近似曲線を用いて、時系列の特徴点のx座標の値を補正する。特徴点算出部23は、特徴点の補正前の算出値のuの値を多項式gに代入することで、特徴点のx座標の補正値vを算出する。
同様に、特徴点算出部23は、特徴点のy座標(画像の縦方向)の補正値を算出する。すなわち、特徴点算出部23は、算出した時系列の特徴点の画像座標に基づいて、時系列の特徴点のy座標の多項式近似曲線を算出する。そして、特徴点算出部23は、算出したy座標の多項式近似曲線を用いて、時系列の特徴点のy座標の値を補正する。
次に、ステップS7において、カメラパラメータ算出部24は、特徴点算出部23によって算出された時系列の特徴点と、設定記憶部32に記憶されているユーザ宅の設定値とに基づき、カメラパラメータを算出する。
次に、ステップS8において、出力部25は、カメラパラメータ算出部24によって算出されたカメラパラメータを出力する。
上述の手順により、宅内に設置したセンシングのためのカメラ4を校正することができる。特に、本実施の形態1は、カメラ4の設置位置に制約が多い住宅内におけるカメラ校正において有用である。
本開示におけるカメラパラメータの一例を下記に説明する。世界座標系から画像座標系への変換式は、下記の数式(1)~(4)で表される。カメラパラメータは世界座標を画像座標に投影する投影式のパラメータである。数式(3)のΓ(η)がレンズ歪を表す投影関数であり、その一例であるピンホールカメラモデルでは、Γ(η)=ftan(η)である。なお、fは焦点距離であり、ηは入射角である。
数式(1)~(4)は(X,Y,Z)から(x,y)への変換を表している。(x,y)から単位球面上の(X,Y,Z)へ変換する場合、数式(1)~(4)の逆関数又は逆行列を用いて変換する。なお、回転行列は正則であり、常に逆行列の計算が可能であり、並進ベクトルを含む4x4の行列も正則である。したがって、例えば、ピンホールカメラのようにΓの逆関数が計算可能な場合、(x,y)から単位球面上の(X,Y,Z)への変換が可能である。
レンズ歪Γは、予めカメラ4が校正されることにより算出されてもよいし、レンズの設計値が利用されてもよいし、ピンホールカメラが仮定されてもよい。レンズ歪Γは、関数、又は関数と同等のテーブルで表される。レンズ歪Γは、設定記憶部32に記憶されている。カメラパラメータ算出部24は、レンズ歪Γを設定記憶部32から取得する。説明を簡単にするため、ユーザの歩行は等速直線運動とする。等速直線運動では、特徴点の3次元空間中の位置(胴体の重心)が一つの直線上に存在する。なお、ユーザの歩行が非等速直線運動である場合、カメラパラメータ算出部24は、ユーザの歩行速度を複数のパラメータで表現し、歩行速度を表す複数のパラメータをカメラパラメータに含めることで算出可能である。
なお、設定記憶部32は、カメラ4の主点画像座標(Cx,Cy)、及びカメラ4のイメージセンサの横方向及び縦方向の画素ピッチdx及びdyを予め記憶してもよい。
また、ユーザの歩行は等速直線運動とすることで、算出された人の胴体の重心位置(特徴点)を非特許文献1の校正指標として利用することが可能となる。また、算出された特徴点は校正指標に比べて不安定なため、時系列の画像中の特徴点が滑らかに変化するように特徴点が補正される。
続いて、カメラパラメータ算出部24によるカメラパラメータの算出について説明する。
図6は、カメラパラメータ算出部24によるカメラパラメータの算出について説明するための模式図である。図6において、ユーザがドアから廊下の奥に向かって歩行している。カメラ4は、廊下の奥の上方に設置されている。
速度wの等速で歩行するユーザを撮影したN枚の画像のi番目の特徴点の画像座標位置pi(xi,yi)と、特徴点に対応する世界座標位置Pi(Xi,Yi,Zi)=(w(i-1)+X0,Y0,Z0)とを考える。なお、iは、フレームインデックスを表す。また、(X0,Y0,Z0)は、特徴点に対応する3次元位置の初期位置である。カメラパラメータがΩであるとすると、pi(xi,yi)=Ω(Pi(Xi,Yi,Zi))が成り立ち、N個の等式が得られる。あるいは、Pi(Xi,Yi,Zi)=Ω-1(pi(xi,yi))のN個の等式が得られる。ここで、ユーザの特徴点の軌跡を示す歩行直線Lwalkと、カメラ4の世界座標系における光軸を示すカメラ視線直線Leyeとが一致しないので、N個の等式は一次独立である。なお、時系列の特徴点が移動しない等の特異条件は除去されている。すなわち、カメラパラメータを用いた目的関数が定義され、目的関数に対して非線形最適化が行われることにより、カメラパラメータを算出することができる。
目的関数の定義について以降に説明する。カメラパラメータΩの逆関数を用いて、Pi(Xi,Yi,Zi)=Ω-1(pi(xi,yi))が計算された場合、スケールが不明なため1点の世界座標ではなく、カメラ視線直線Leye上にPiが存在する。すなわち、pi(xi,yi)に対応するカメラ視線直線Leye,iが得られる。カメラパラメータに誤差がある場合、特徴点の3次元空間中の位置である胴体重心の軌跡である歩行直線Lwalkとカメラ視線直線Leye,iとが交差せず、歩行直線Lwalkとカメラ視線直線Leye,iとは距離誤差di(2直線間の距離)を有する。カメラ視線直線Leye,iは、方向ベクトルがVe,i=PcamPi(PcamPiの上にはベクトルを示す右向きの矢印が付く)であり、媒介変数がseyeであり、カメラ位置Pcamを通る直線である。カメラ視線直線Leye,iは、下記の数式(5)で表される。
Leye,i=Ve,iseye+Pcam・・・(5)
なお、数式(5)において、Pcamはカメラ位置であり、Ve,iはカメラ位置Pcamから特徴点の世界座標位置Pi(Xi,Yi,Zi)に向かう方向ベクトルであり、seyeは媒介変数である。カメラ位置Pcamは、並進ベクトルT(TX,TY,TZ)と同じである。Pi(Xi,Yi,Zi)は、特徴点の画像座標位置pi(xi,yi)に基づいて、Pi(Xi,Yi,Zi)=Ω-1(pi(xi,yi))で算出される。
なお、数式(5)において、Pcamはカメラ位置であり、Ve,iはカメラ位置Pcamから特徴点の世界座標位置Pi(Xi,Yi,Zi)に向かう方向ベクトルであり、seyeは媒介変数である。カメラ位置Pcamは、並進ベクトルT(TX,TY,TZ)と同じである。Pi(Xi,Yi,Zi)は、特徴点の画像座標位置pi(xi,yi)に基づいて、Pi(Xi,Yi,Zi)=Ω-1(pi(xi,yi))で算出される。
また、歩行直線Lwalkは、歩行方向ベクトルがm(mX,mY,mZ)であり、媒介変数がswalkであり、歩行開始位置P0を通る直線である。歩行直線Lwalkは、下記の数式(6)で表される。
Lwalk=mswalk+P0・・・(6)
歩行直線Lwalkとカメラ視線直線Leye,iとの距離誤差diに基づき目的関数が定義されればよい。カメラパラメータ算出部24は、特徴点算出部23によって算出された時系列の特徴点と、画像座標系と世界座標系とを相互に変換するためのカメラパラメータΩとを用いて時系列の特徴点の画像座標それぞれに対応するカメラ4の複数の視線ベクトルを表す。カメラパラメータ算出部24は、ユーザの歩行方向を表す歩行直線Lwalkと複数の視線ベクトルを通る複数のカメラ視線直線Leye,iそれぞれとの距離誤差diに基づく目的関数を最小化することによってカメラパラメータΩを算出する。なお、歩行直線Lwalkとカメラ視線直線Leye,iとの距離誤差diは、直線と直線との距離を算出する公式により算出することができる。
歩行直線Lwalkとカメラ視線直線Leye,iとの距離誤差diに基づき目的関数が定義されればよい。カメラパラメータ算出部24は、特徴点算出部23によって算出された時系列の特徴点と、画像座標系と世界座標系とを相互に変換するためのカメラパラメータΩとを用いて時系列の特徴点の画像座標それぞれに対応するカメラ4の複数の視線ベクトルを表す。カメラパラメータ算出部24は、ユーザの歩行方向を表す歩行直線Lwalkと複数の視線ベクトルを通る複数のカメラ視線直線Leye,iそれぞれとの距離誤差diに基づく目的関数を最小化することによってカメラパラメータΩを算出する。なお、歩行直線Lwalkとカメラ視線直線Leye,iとの距離誤差diは、直線と直線との距離を算出する公式により算出することができる。
カメラパラメータ算出部24は、歩行直線Lwalkと複数のカメラ視線直線Leye,iそれぞれとの距離誤差diの総和を目的関数として用いる。
また、カメラパラメータ算出部24は、歩行直線Lwalkと複数のカメラ視線直線Leye,iそれぞれとの距離誤差diの2乗の総和を目的関数として用いてもよい。
未知数は、カメラの回転行列R(3自由度)、並進ベクトルT(TX,TY,TZ)、歩行速度w、歩行開始位置P0(X0,Y0,Z0)、歩行方向ベクトルm(mX,mY,mZ)である。合計の自由度は13であるので、Nが13以上である場合、カメラパラメータ算出部24はカメラパラメータを算出することができる。
目的関数の非線形最適化には、例えば、レーベンバーグ・マルカート法が用いられる。なお、パラメータの初期値の例は下記である。カメラ4のチルト角は-20°であり、パン角は0°であり、ロール角は0°である。カメラ4の並進ベクトルのTXは、図6に示す奥行の2.4mであり、TYは、図6に示す幅の0mであり、TZは、図6に示す高さの1.8mである。歩行速度wは時速3kmである。歩行開始位置P0は、(0,0.5,0.9)[m]である。歩行方向ベクトルmは、(1,0,0)[m]である。なお、カメラ位置Pcam(並進ベクトルT)のTX、TY及びTZは、予め計測した値を使用してもよく、カメラパラメータ算出の変数から除外してもよい。
このように、ユーザの胴体の基準位置を表す時系列の特徴点と、画像座標系と世界座標系とを相互に変換するためのカメラパラメータとを用いて時系列の特徴点の画像座標それぞれに対応するカメラの複数の視線ベクトルが表される。そして、ユーザの歩行方向を表す歩行直線と複数の視線ベクトルを通る複数のカメラ視線直線それぞれとの距離誤差に基づく目的関数を最小化することによってカメラパラメータが算出される。カメラパラメータに誤差がある場合、歩行直線とカメラ視線直線とが交差せず、歩行直線とカメラ視線直線との距離誤差が生じる。この距離誤差が最小になるようにカメラパラメータが最適化されることにより、カメラパラメータが算出される。このとき、算出するカメラパラメータと同じ数の時系列の画像があれば、カメラパラメータを算出することが可能である。したがって、校正指標が不要であり、歩行距離が短い場合であってもカメラパラメータを算出することができる。
上記の非特許文献2は、人の頭及び足の軌跡から消失点が推定されるので、歩行距離が長くなければ安定してカメラパラメータを算出することができない。一方、本実施の形態1では、消失点を利用せずに胴体の重心位置の画像座標が目的関数に反映されるので、レンズ歪が存在するカメラでも安定してカメラパラメータを算出することができる。
(実施の形態2)
実施の形態1では、撮影されているユーザが直進歩行しているか否かについては考慮されていない。撮影されているユーザが歩行中に向きを変えた場合、カメラパラメータの算出精度が低下するおそれがある。そこで、実施の形態2では、撮影されているユーザが直進歩行しているか否かが判定される。
実施の形態1では、撮影されているユーザが直進歩行しているか否かについては考慮されていない。撮影されているユーザが歩行中に向きを変えた場合、カメラパラメータの算出精度が低下するおそれがある。そこで、実施の形態2では、撮影されているユーザが直進歩行しているか否かが判定される。
以下の説明では、実施の形態1との差異のみを記載する。
図7は、本開示の実施の形態2におけるカメラパラメータ算出システムの構成の一例を示すブロック図である。
実施の形態2におけるカメラパラメータ算出システムは、カメラパラメータ算出装置1A及びカメラ4を備える。なお、本実施の形態2において、実施の形態1と同じ構成については同じ参照符号を付し、説明を省略する。
カメラパラメータ算出装置1Aは、プロセッサ2A、メモリ3、及びインターフェイス回路(図略)を含むコンピュータで構成されている。プロセッサ2Aは、取得部21、推定部22、特徴点算出部23、カメラパラメータ算出部24、出力部25、及び判定部26を含む。
判定部26は、特徴点算出部23によって算出された時系列の特徴点に基づいてユーザが直進歩行しているか否かを判定する。そして、カメラパラメータ算出部24は、判定部26によってユーザが直進歩行していると判定された場合、カメラパラメータを算出する。
図8は、本開示の実施の形態2のカメラパラメータ算出装置1Aのカメラパラメータ算出処理の一例を示すフローチャートである。
ステップS11~ステップS15の処理は、図3に示すステップS1~ステップS5の処理と同じであるので、説明を省略する。
次に、ステップS16において、判定部26は、ユーザがカメラ4に向かって直進歩行しているか否かを判定する。判定部26は、下記の数式(7)に基づいて、ユーザの正面がカメラ4の方向を向いているか否かを判定するための胴体指標をフレーム毎に算出する。
胴体指標=(左肩のx座標+左腰のx座標)-(右肩のx座標+右腰のx座標)・・・(7)
ユーザがカメラ4に向かって直進歩行しておりユーザの正面が撮影される場合、胴体指標は常に正の値になる。一方、ユーザが歩行中に曲がったり引き返したりしてユーザの背中が撮影された場合、胴体指標は負の値になる。そのため、胴体指標の符号が正又は負のいずれであるかを判定することにより、ユーザの正面がカメラ4の方向を向いているか否かを判定することが可能となる。
ユーザがカメラ4に向かって直進歩行しておりユーザの正面が撮影される場合、胴体指標は常に正の値になる。一方、ユーザが歩行中に曲がったり引き返したりしてユーザの背中が撮影された場合、胴体指標は負の値になる。そのため、胴体指標の符号が正又は負のいずれであるかを判定することにより、ユーザの正面がカメラ4の方向を向いているか否かを判定することが可能となる。
判定部26は、歩行区間の全てのフレーム数に対する胴体指標が正であるフレーム数の割合が閾値以上であるか否かを判定する。閾値は、例えば、0.7である。判定部26は、歩行区間の全てのフレーム数に対する胴体指標が正であるフレーム数の割合が閾値以上である場合に、ユーザがカメラ4に向かって直進歩行していると判定する。一方、判定部26は、歩行区間の全てのフレーム数に対する胴体指標が正であるフレーム数の割合が閾値より小さい場合に、ユーザがカメラ4に向かって直進歩行していないと判定する。
ユーザがカメラ4に向かって直進歩行していないと判定された場合(ステップS16でNO)、ステップS11に処理が戻る。
一方、ユーザがカメラ4に向かって直進歩行していると判定された場合(ステップS16でYES)、ステップS17に処理が移行する。
ステップS17~ステップS19の処理は、図3に示すステップS6~ステップS8の処理と同じであるので、説明を省略する。
本実施の形態2において、カメラパラメータの算出に悪影響を与える、直進以外の方向への歩行により算出された特徴点を除くことで、高精度にカメラパラメータを算出することができる。
(変形例)
以上、本開示の一つまたは複数の態様に係るカメラパラメータ算出装置について、実施の形態に基づいて説明したが、本開示は、この実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本開示の一つまたは複数の態様の範囲内に含まれてもよい。
以上、本開示の一つまたは複数の態様に係るカメラパラメータ算出装置について、実施の形態に基づいて説明したが、本開示は、この実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本開示の一つまたは複数の態様の範囲内に含まれてもよい。
なお、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。また、プログラムを記録媒体に記録して移送することにより、又はプログラムをネットワークを経由して移送することにより、独立した他のコンピュータシステムによりプログラムが実施されてもよい。
本開示の実施の形態に係る装置の機能の一部又は全ては典型的には集積回路であるLSI(Large Scale Integration)として実現される。これらは個別に1チップ化されてもよいし、一部又は全てを含むように1チップ化されてもよい。また、集積回路化はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、又はLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
また、本開示の実施の形態に係る装置の機能の一部又は全てを、CPU等のプロセッサがプログラムを実行することにより実現してもよい。
また、上記で用いた数字は、全て本開示を具体的に説明するために例示するものであり、本開示は例示された数字に制限されない。
本開示に係る技術は、校正指標が不要であり、歩行距離が短い場合であってもカメラパラメータを算出することができるので、カメラパラメータを算出する技術として有用である。
Claims (10)
- カメラによって撮影された画像を取得する取得部と、
前記取得部によって取得された時系列の画像からユーザの骨格点の画像座標である時系列の骨格座標を推定する推定部と、
前記推定部によって推定された前記時系列の骨格座標に基づき前記ユーザの胴体の基準位置を表す時系列の特徴点を算出する特徴点算出部と、
前記ユーザの歩行方向を表す歩行直線と、前記時系列の特徴点の画像座標それぞれに対応する前記カメラの複数の視線ベクトルを通る複数のカメラ視線直線それぞれとの距離誤差に基づく目的関数を最小化することによって、画像座標系と世界座標系とを相互に変換するためのカメラパラメータを算出するカメラパラメータ算出部と、
を備えるカメラパラメータ算出装置。 - 前記複数の視線ベクトルは、前記特徴点算出部によって算出された前記時系列の特徴点と、前記カメラパラメータとを用いて前記時系列の特徴点の画像座標それぞれに対応するように算出される、
請求項1に記載のカメラパラメータ算出装置。 - 前記カメラパラメータ算出部によって算出された前記カメラパラメータを出力する出力部をさらに備える、
請求項1又は2に記載のカメラパラメータ算出装置。 - 前記カメラパラメータ算出部は、前記歩行直線と前記複数のカメラ視線直線それぞれとの距離誤差の総和を前記目的関数として用いる、
請求項1又は2に記載のカメラパラメータ算出装置。 - 前記カメラパラメータ算出部は、前記歩行直線と前記複数のカメラ視線直線それぞれとの距離誤差の2乗の総和を前記目的関数として用いる、
請求項1又は2に記載のカメラパラメータ算出装置。 - 前記特徴点算出部によって算出された前記時系列の特徴点に基づいて前記ユーザが直進歩行しているか否かを判定する判定部をさらに備え、
前記カメラパラメータ算出部は、前記ユーザが直進歩行していると判定された場合、前記カメラパラメータを算出する、
請求項1又は2に記載のカメラパラメータ算出装置。 - 前記特徴点算出部は、算出した前記時系列の特徴点の画像座標に基づいて、前記時系列の特徴点のx座標及びy座標それぞれの多項式近似曲線を算出し、算出したx座標及びy座標それぞれの前記多項式近似曲線を用いて、前記時系列の特徴点のx座標及びy座標それぞれの値を補正する、
請求項1又は2に記載のカメラパラメータ算出装置。 - 前記カメラのレンズ歪を表す歪パラメータを予め記憶する設定記憶部をさらに備え、
前記カメラパラメータ算出部は、前記設定記憶部に記憶された前記歪パラメータを前記カメラパラメータの一部に用いて前記複数の視線ベクトルを表す、
請求項1又は2に記載のカメラパラメータ算出装置。 - コンピュータにおけるカメラパラメータ算出方法であって、
カメラによって撮影された画像を取得し、
取得した時系列の画像からユーザの骨格点の画像座標である時系列の骨格座標を推定し、
推定した前記時系列の骨格座標に基づき前記ユーザの胴体の基準位置を表す時系列の特徴点を算出し、
前記ユーザの歩行方向を表す歩行直線と、前記時系列の特徴点の画像座標それぞれに対応する前記カメラの複数の視線ベクトルを通る複数のカメラ視線直線それぞれとの距離誤差に基づく目的関数を最小化することによって、画像座標系と世界座標系とを相互に変換するためのカメラパラメータを算出する、
カメラパラメータ算出方法。 - カメラによって撮影された画像を取得する取得部と、
前記取得部によって取得された時系列の画像からユーザの骨格点の画像座標である時系列の骨格座標を推定する推定部と、
前記推定部によって推定された前記時系列の骨格座標に基づき前記ユーザの胴体の基準位置を表す時系列の特徴点を算出する特徴点算出部と、
前記ユーザの歩行方向を表す歩行直線と、前記時系列の特徴点の画像座標それぞれに対応する前記カメラの複数の視線ベクトルを通る複数のカメラ視線直線それぞれとの距離誤差に基づく目的関数を最小化することによって、画像座標系と世界座標系とを相互に変換するためのカメラパラメータを算出するカメラパラメータ算出部としてコンピュータを機能させる、
カメラパラメータ算出プログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022108421 | 2022-07-05 | ||
JP2022-108421 | 2022-07-05 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024009528A1 true WO2024009528A1 (ja) | 2024-01-11 |
Family
ID=89453171
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2022/044040 WO2024009528A1 (ja) | 2022-07-05 | 2022-11-29 | カメラパラメータ算出装置、カメラパラメータ算出方法及びカメラパラメータ算出プログラム |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2024009528A1 (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011055349A (ja) * | 2009-09-03 | 2011-03-17 | Toshiba Corp | 画像処理装置及び画像調整方法 |
JP2013134186A (ja) * | 2011-12-27 | 2013-07-08 | Sumitomo Electric Ind Ltd | カメラパラメータ測定装置、カメラパラメータ測定方法、及びプログラム |
JP2021189946A (ja) * | 2020-06-03 | 2021-12-13 | 日本電気株式会社 | 検出装置、検出方法及び検出プログラム |
-
2022
- 2022-11-29 WO PCT/JP2022/044040 patent/WO2024009528A1/ja unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011055349A (ja) * | 2009-09-03 | 2011-03-17 | Toshiba Corp | 画像処理装置及び画像調整方法 |
JP2013134186A (ja) * | 2011-12-27 | 2013-07-08 | Sumitomo Electric Ind Ltd | カメラパラメータ測定装置、カメラパラメータ測定方法、及びプログラム |
JP2021189946A (ja) * | 2020-06-03 | 2021-12-13 | 日本電気株式会社 | 検出装置、検出方法及び検出プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105654464B (zh) | 图像处理装置及图像处理方法 | |
CN108648240B (zh) | 基于点云特征地图配准的无重叠视场相机姿态标定方法 | |
JP4095491B2 (ja) | 距離測定装置、距離測定方法、及び距離測定プログラム | |
US11210804B2 (en) | Methods, devices and computer program products for global bundle adjustment of 3D images | |
CN111354042A (zh) | 机器人视觉图像的特征提取方法、装置、机器人及介质 | |
JP4951498B2 (ja) | 顔画像認識装置、顔画像認識方法、顔画像認識プログラムおよびそのプログラムを記録した記録媒体 | |
JP2008506953A5 (ja) | ||
CN111862299A (zh) | 人体三维模型构建方法、装置、机器人和存储介质 | |
CN113409391B (zh) | 视觉定位方法及相关装置、设备和存储介质 | |
JP2019079487A (ja) | パラメータ最適化装置、パラメータ最適化方法、プログラム | |
KR20080029080A (ko) | 단안 줌 카메라를 이용한 이동로봇의 자기위치 추정 시스템및 방법 | |
WO2019136613A1 (zh) | 机器人室内定位的方法及装置 | |
Micušık et al. | Para-catadioptric camera auto-calibration from epipolar geometry | |
CN113393524B (zh) | 一种结合深度学习和轮廓点云重建的目标位姿估计方法 | |
JP2017117386A (ja) | 自己運動推定システム、自己運動推定システムの制御方法及びプログラム | |
CN114022560A (zh) | 标定方法及相关装置、设备 | |
CN113899364B (zh) | 定位方法及装置、设备、存储介质 | |
CN116188558B (zh) | 基于双目视觉的立体摄影测量方法 | |
CN115457176A (zh) | 一种图像生成方法、装置、电子设备及存储介质 | |
JP2022039719A (ja) | 位置姿勢推定装置、位置姿勢推定方法及びプログラム | |
JP6410231B2 (ja) | 位置合わせ装置、位置合わせ方法及び位置合わせ用コンピュータプログラム | |
JP6922348B2 (ja) | 情報処理装置、方法、及びプログラム | |
JP5987584B2 (ja) | 画像処理装置、映像投影システムおよびプログラム | |
JP7498404B2 (ja) | 被写体の3次元姿勢推定装置、3次元姿勢推定方法、及びプログラム | |
WO2024009528A1 (ja) | カメラパラメータ算出装置、カメラパラメータ算出方法及びカメラパラメータ算出プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22950320 Country of ref document: EP Kind code of ref document: A1 |