WO2021064925A1 - 生成方法、生成プログラムおよび情報処理装置 - Google Patents

生成方法、生成プログラムおよび情報処理装置 Download PDF

Info

Publication number
WO2021064925A1
WO2021064925A1 PCT/JP2019/039019 JP2019039019W WO2021064925A1 WO 2021064925 A1 WO2021064925 A1 WO 2021064925A1 JP 2019039019 W JP2019039019 W JP 2019039019W WO 2021064925 A1 WO2021064925 A1 WO 2021064925A1
Authority
WO
WIPO (PCT)
Prior art keywords
target
sensor
sensors
information indicating
unit
Prior art date
Application number
PCT/JP2019/039019
Other languages
English (en)
French (fr)
Inventor
創輔 山尾
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to PCT/JP2019/039019 priority Critical patent/WO2021064925A1/ja
Priority to CN201980100162.3A priority patent/CN114430800B/zh
Priority to EP19947861.1A priority patent/EP4040104A4/en
Priority to JP2021550867A priority patent/JP7188612B2/ja
Publication of WO2021064925A1 publication Critical patent/WO2021064925A1/ja
Priority to US17/676,273 priority patent/US20220179085A1/en

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S7/00Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
    • G01S7/48Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S17/00
    • G01S7/4808Evaluating distance, position or velocity data
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/87Combinations of systems using electromagnetic waves other than radio waves
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/89Lidar systems specially adapted for specific applications for mapping or imaging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20072Graph-based image processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30221Sports video; Sports image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose

Definitions

  • the present invention relates to a generation method and the like.
  • a distance measuring device such as a laser sensor
  • a distance measuring device such as a laser sensor
  • the subject can be reproduced three-dimensionally by sensing the subject from each direction using multiple sensors placed around the subject and integrating the three-dimensional point cloud that is the measurement result of each sensor. it can.
  • FIG. 25 is a diagram showing the result of integrating the three-dimensional point cloud measured by a plurality of sensors.
  • the sensors 10A, 10B, 10C, and 10D are arranged around (front and back) the subject 1, and the sensors 10A to 10D measure the subject 1 and obtain a three-dimensional point cloud.
  • the three-dimensional point cloud 11A is data based on the measurement result of the sensor 10A.
  • the three-dimensional point cloud 11B is data based on the measurement result of the sensor 10B.
  • the three-dimensional point cloud 11C is data based on the measurement result of the sensor 10C.
  • the three-dimensional point cloud 11D is data based on the measurement result of the sensor 10D.
  • external parameters are used.
  • the external parameter is information indicating the positional relationship between the plurality of sensors.
  • Conventional techniques for calculating external parameters include, for example, prior art techniques 1 and 2.
  • the prior art 1 will be described.
  • the prior art 1 is an external calibration technique for calculating an external parameter of a sensor using a spherical target.
  • the sphere target is observed a plurality of times by the first sensor and the second sensor while moving one sphere target.
  • FIG. 26 is a diagram for explaining the prior art 1.
  • the spherical targets 23a, 24a, 25a are associated with the spherical targets 23b, 24b, 25b, and the external parameters are based on the positional relationship of the three-dimensional point cloud of the associated spherical targets.
  • Estimate the initial value of. Singular value decomposition is aligned to estimate the initial value.
  • the external parameter between the first sensor and the second sensor is optimized by using the bundle estimation or the maximum likelihood estimation, and the external parameter is calculated. ..
  • Image 16 shows the result of external calibration.
  • the positions of the spherical targets 23a, 24a, 25a and the spherical targets 23b, 24b, 25b are matched.
  • the conventional technique 2 is a technique of detecting a target by image processing, using two cameras as starting points, and using a DLT (Direct Linear Transform) algorithm to sequentially estimate external parameters of each camera.
  • DLT Direct Linear Transform
  • FIG. 27 and 28 are diagrams for explaining the prior art 2.
  • FIG. 27 will be described.
  • target 2 is observed by sensors 10A to 10D.
  • target 2 is observed by sensors 10A-10D.
  • target 2 is observed by sensors 10A-10D.
  • target 2 is observed by sensors 10A, 10B, 10D.
  • target 2 is observed by sensors 10A, 10B, 10D.
  • target 2 is observed by sensors 10C, 10D.
  • target 2 is observed by sensors 10C, 10D.
  • the order in which the external parameters are estimated is predetermined.
  • the sensors are selected in the order of the sensors 10B, 10C, and 10D with the sensor 10A as a reference, and the external parameters are estimated.
  • the target 2 that can be used for estimation is the reference sensor or the target 2 at the time when it has already been observed by the selected sensor.
  • the order in which the external parameters are estimated is predetermined. For example, as described in FIG. 28, when the sensors are selected in the order of the sensors 10B, 10C, and 10D with reference to the sensor 10A and the external parameters are estimated, the target that can be used for estimating the external parameters in the observation result 20C. Decreases and the distribution becomes biased. If the targets that can be used to estimate the external parameters are unevenly distributed, the estimation accuracy of the external parameters will be low. The decrease in the estimation accuracy also affects the estimation accuracy when the observation result 20D in the latter stage is selected and the external parameters are estimated.
  • the present invention provides a generation method, a generation program, and an information processing apparatus capable of accurately generating information indicating a relative positional relationship, such as an arrangement position relationship and an angle of view relationship, for three or more sensors.
  • the purpose is to provide.
  • the computer executes the following processing.
  • the computer acquires the detection result of the target at a plurality of time points by three or more sensors. Based on whether or not each of the three or more sensors detected the target at each time point, the computer sets the target at the same time point among multiple time points in each of the two sensor sets of the three or more sensor points. Specify the number of times when it was detected.
  • the computer generates information indicating the connectivity regarding the estimation accuracy of the relative positional relationship between the sensors based on the number of times specified for each set of sensors and the variance of the target placement position at a plurality of time points.
  • the computer generates information indicating the first relative positional relationship between the two connected sensors based on the information indicating the connectivity.
  • the computer generates information indicating a second relative positional relationship between two sensors having no connectivity based on the information indicating the connectivity and the information indicating the first relative positional relationship.
  • the computer outputs information indicating the first relative positional relationship and information indicating the second relative positional relationship as information indicating the positional relationship between the three or more sensors.
  • FIG. 1 is a diagram showing an example of an information processing system according to the first embodiment.
  • FIG. 2 is a diagram (1) for explaining a process of generating a sensor connectivity graph.
  • FIG. 3 is a diagram (2) for explaining a process of generating a sensor connectivity graph.
  • FIG. 4 is a diagram for explaining a process of reflecting the variance of the target in the sensor connectivity graph.
  • FIG. 5 is a diagram for explaining the calculation of external parameters of sensors that are not directly connected.
  • FIG. 6 is a diagram for explaining the effect of the information processing apparatus according to the first embodiment.
  • FIG. 7 is a functional block diagram showing the configuration of the information processing apparatus according to the first embodiment.
  • FIG. 8 is a diagram showing an example of the data structure of the detection result table.
  • FIG. 9 is a diagram showing an example of the data structure of the external parameter table.
  • FIG. 10 is a functional block diagram showing the configuration of the external parameter generation processing unit.
  • FIG. 11 is a diagram (1) for explaining the processing of the robust estimation unit.
  • FIG. 12 is a diagram (2) for explaining the processing of the robust estimation unit.
  • FIG. 13 is a diagram (3) for explaining the processing of the robust estimation unit.
  • FIG. 14 is a diagram (4) for explaining the processing of the robust estimation unit.
  • FIG. 15 is a diagram (5) for explaining the processing of the robust estimation unit.
  • FIG. 16 is a flowchart showing a processing procedure of the information processing apparatus according to the first embodiment.
  • FIG. 17 is a flowchart showing a processing procedure of the sensor connectivity graph generation process.
  • FIG. 16 is a flowchart showing a processing procedure of the information processing apparatus according to the first embodiment.
  • FIG. 17 is a flowchart showing a processing procedure of the sensor connectivity graph generation process.
  • FIG. 18 is a diagram (1) showing an example of external calibration using a spherical marker.
  • FIG. 19 is a diagram (2) showing an example of external calibration using a spherical marker.
  • FIG. 20 is a diagram (3) showing an example of external calibration using a spherical marker.
  • FIG. 21 is a diagram for explaining the arrangement position of the target.
  • FIG. 22 is a functional block diagram showing the configuration of the information processing apparatus according to the second embodiment.
  • FIG. 23 is a flowchart showing a processing procedure of the information processing apparatus according to the second embodiment.
  • FIG. 24 is a diagram showing an example of a hardware configuration of a computer that realizes a function similar to that of an information processing device.
  • FIG. 24 is a diagram showing an example of a hardware configuration of a computer that realizes a function similar to that of an information processing device.
  • FIG. 25 is a diagram showing the result of integrating the three-dimensional point cloud measured by a plurality of sensors.
  • FIG. 26 is a diagram for explaining the prior art 1.
  • FIG. 27 is a diagram (1) for explaining the prior art 2.
  • FIG. 28 is a diagram (2) for explaining the prior art 2.
  • FIG. 1 is a diagram showing an example of an information processing system according to the first embodiment.
  • the information processing system according to the first embodiment includes sensors 10A, 10B, 10C, 10D and an information processing device 100.
  • the sensors 10A to 10D and the information processing device 100 are connected by wire or wirelessly, respectively.
  • the sensors 10A to 10D are shown in FIG. 1, the information processing system may have other sensors.
  • the sensor 10A is a measuring device (laser sensor) that measures the distance between the point cloud constituting the subject (or the target 2) and the sensor 10A.
  • the sensor 10A outputs the distance image data as the measurement result to the information processing device 100.
  • the distance image data includes information in which each pixel and a distance value are associated with each other.
  • the distance image data is converted into three-dimensional point cloud data by the information processing device 100.
  • the three-dimensional point cloud data is information in which a point and the coordinates of a three-dimensional Cartesian coordinate system are associated with each other for the point cloud.
  • the description of the sensor 10B is the same as the description of the sensor 10A.
  • the sensors 10A to 10B are collectively referred to as "sensor 10" as appropriate.
  • the three-dimensional point group data is data obtained by converting the data of the distance image measured by the sensor 10, but is appropriately expressed as the three-dimensional point group data measured by the sensor 10, and the data of the distance image is referred to as the three-dimensional point.
  • the description of conversion to group data is omitted.
  • the information processing system is a system that measures a subject (not shown) using a sensor 10 and evaluates the performance performed by the subject. As a preprocessing, an external calibration is performed using a target 2. To generate external parameters.
  • the information processing system integrates the three-dimensional point cloud data measured by the sensor 10 based on the generated external parameters, generates the three-dimensional point cloud data of the entire subject, and evaluates the performance performed by the subject.
  • the information processing device 100 of the information processing system executes a process of generating a sensor connectivity graph, a process of reflecting the distribution of targets in the sensor connectivity graph, and a process of specifying the order in which sensors are selected.
  • target 2 is observed by sensor 10A.
  • target 2 is observed by sensor 10A.
  • target 2 is observed by sensors 10A, 10B.
  • target 2 is observed by sensors 10A, 10B.
  • target 2 is observed by sensors 10A and 10B.
  • target 2 is observed by sensors 10A, 10B, 10C.
  • target 2 is observed by sensors 10B, 10C.
  • target 2 is observed by sensors 10B, 10D.
  • target 2 is observed by sensors 10B, 10C, 10D.
  • target 2 is observed by sensors 10C, 10D.
  • target 2 is observed by sensors 10C, 10D.
  • target 2 is observed by sensors 10B, 10C, 10D.
  • target 2 is observed by sensors 10B, 10C, 10D.
  • target 2 is observed by sensor 10C.
  • the information processing device 100 specifies the number of times (hereinafter, the number of shares) when the target 2 is detected at the same time point among a plurality of time points in a set of two sensors among the sensors 10A to 10D.
  • the number of shared sensors 10A and 10D is "0".
  • the information processing device 100 generates a target shared number graph 50 based on the shared number specified for each of the two sensor sets.
  • the target shared number graph 50 includes nodes 50A, 50B, 50C, and 50D.
  • the node 50A is a node corresponding to the sensor 10A.
  • the node 50B is a node corresponding to the sensor 10B.
  • the node 50C is a node corresponding to the sensor 10C.
  • the node 50D is a node corresponding to the sensor 10D.
  • the nodes 50A to 50D are connected by the edge E, and each edge E is set with a weight according to the number of sharing.
  • the information processing apparatus 100 since the sensor 10A, the shared number of pairs 10B is "4", the edge E BA for connecting the node 50A and node 50B, sets the weight "4".
  • the information processing apparatus 100 since the sensor 10A, the shared number of sets of 10C is "1", the edge E CA connecting the node 50A and node 50D, sets the weight "1". Since the number of shared sensors 10A and 10D is "0", the node 50A and the node 50D are not connected by an edge.
  • the information processing apparatus 100 since the sensor 10B, the shared number of sets of 10C is "4", the edge E BC which connects the node 50B and node 50C, sets the weight "4".
  • the information processing apparatus 100 since the sensor 10B, the shared number of pairs 10D is "3", the edge E DB connecting the node 50B and node 50D, sets the weight "3".
  • the information processing apparatus 100 generates the sensor connectivity graph 51 by leaving an edge having a weight of "3" or more among the edges E.
  • the information processing apparatus 100 generates the sensor connectivity graph 51 by deleting the edge E CA from the target shared number graph 50 and leaving the edge E BA , E CB , E DB , and E CD. To do.
  • FIG. 4 is a diagram for explaining a process of reflecting the variance of the target in the sensor connectivity graph.
  • the information processing apparatus 100 calculates the variance ⁇ 2 of the position of the target group observed by the set of two sensors at each time point.
  • the information processing apparatus 100 sets "-2log ⁇ " as the weight of each edge E, and reflects the variance of the target in the sensor connectivity graph. The smaller the edge weight, the larger the spatial variance (even distribution) of the positions of the target groups observed by the pair of two sensors.
  • - the "2Logshiguma BA” is referred to as "-2.7”
  • the information processing apparatus 100, the edge E BA sets the weight "-2.7".
  • - the "2Logshiguma DB" is referred to as "-3.2”
  • the information processing apparatus 100, the edge E DB sets the weight "-3.2”.
  • the information processing device 100 executes a process of specifying the order of selecting sensors to be calculated for external parameters based on the result of reflecting the variance of the target 2 on the sensor connectivity graph 51.
  • the information processing device 100 determines a route that minimizes the sum of the edges E by the shortest path search.
  • the information processing apparatus 100 uses the Bellman-Ford method or the like to determine a route that minimizes the sum of the edges E.
  • the path that minimizes the sum of each edge E is the order of the sensors so that the spatial dispersion of the positions of the target group is as large as possible.
  • the route that minimizes the sum of each edge E is in the order of node 50A, node 50B, node 50D, and node 50C. It becomes. That is, the order of the sensors is sensor 10A, sensor 10B, sensor 10D, and sensor 10C so that the spatial dispersion of the positions of the target group becomes as large as possible.
  • the information processing device 100 selects the sensor 10B, the sensor 10D, and the sensor C in this order with the sensor 10A as a reference, and estimates the external parameters.
  • the external parameters of the sensor that is not directly connected to the reference sensor.
  • FIG. 5 is a diagram for explaining the calculation of external parameters of sensors that are not directly connected.
  • the node 50A, the node 50B, the node 50D, and the node 50C correspond to the sensor 10A, the sensor 10B, the sensor 10C, and the sensor 10D, respectively.
  • the node 50A and the node 50C are not directly connected, but by executing the following processing, the reference sensor 10A and the sensor 10C are relative to each other. It is possible to calculate various positions and postures.
  • the information processing device 100 calculates the relative position and orientation of the reference sensor 10A and the sensor 10C based on the equation (1).
  • each T is a matrix containing a rotation matrix and a translation vector.
  • T CA T CD T DB T BA ... (1)
  • the information processing apparatus 100 executes observations by the sensors 10A to 10D while moving the target 2 at each time point, and indicates the number of times when the target 2 is detected at the same time. Identify the number of shares.
  • the information processing apparatus 100 generates a target shared number graph 50 in which the shared number is an edge weight, and from the target shared number graph 50, a sensor connectivity graph 51 that leaves edges having an edge E weight of a predetermined number or more. To generate.
  • the set of nodes connected in the sensor connectivity graph 51 shows a set of sensors in which the number of times the target 2 is observed at the same time is a predetermined number or more.
  • the information processing apparatus 100 calculates the variance ⁇ 2 of the position of the target group observed by the set of two sensors at each time point, sets “-2log ⁇ ” as the weight of each edge E, and sets the variance of the target. Reflect in the sensor connectivity graph. In the sensor connectivity graph in which the weight of each edge E is defined as "-2log ⁇ ", the smaller the edge weight, the larger the spatial variance of the position of the target group observed by the pair of two sensors. ..
  • the information processing device 100 specifies a route that minimizes the sum of the edges E, and specifies the order of the sensors 10 to be selected when calculating the external parameter based on the specified route.
  • the order of the sensors can be specified so that the spatial dispersion of the positions of the target group becomes as large as possible so that the calculation of the external parameters of the sensor 10 is stable. Therefore, for three or more sensors, it is possible to accurately generate information indicating the relative positional relationship such as the arrangement positional relationship and the angle of view relationship.
  • FIG. 6 is a diagram for explaining the effect of the information processing apparatus according to the first embodiment.
  • the upper part of FIG. 6 shows the order of selection of the sensor 10 when the prior art 2 is used.
  • the lower row shows the order of selection of the sensor 10 specified by the information processing apparatus 100.
  • the sensors 10 are selected in a predetermined order, such as sensors 10A, 10B, 10C, and 10D.
  • a predetermined order such as sensors 10A, 10B, 10C, and 10D.
  • the targets that can be used for estimating the external parameters are reduced in the observation result 20C, and the distribution is biased. If the targets that can be used to estimate the external parameters are unevenly distributed, the estimation accuracy of the external parameters will be low.
  • the sensors 10 are selected in the order of the sensors 10A, 10B, 10C, and 10D by using the sensor connectivity graph.
  • FIG. 7 is a functional block diagram showing the configuration of the information processing apparatus according to the first embodiment.
  • the information processing device 100 includes a communication unit 110, an input unit 120, a display unit 130, a storage unit 140, and a control unit 150.
  • the communication unit 110 is a processing unit that receives distance image data from the sensor 10 shown in FIG.
  • the communication unit 110 outputs the received distance image data to the control unit 150.
  • the communication unit 110 is an example of a communication device.
  • the input unit 120 is an input device that inputs various information to the information processing device 100.
  • the input unit 120 corresponds to a keyboard, a mouse, a touch panel, and the like. For example, at each time point, the user operates the input unit 120 every time the installation of the target 2 is completed, and inputs information to the effect that the installation of the target 2 is completed to the information processing device 100.
  • the display unit 130 is a display device that displays information output from the control unit 150. For example, the display unit 130 displays skill certification, scoring results, etc. of various competitions.
  • the display unit 130 corresponds to a liquid crystal display, an organic EL (Electro-Luminescence) display, a touch panel, and the like.
  • the storage unit 140 has a background image table 141, a detection result table 142, and an external parameter table 143.
  • the storage unit 140 corresponds to semiconductor memory elements such as RAM (Random Access Memory) and flash memory (Flash Memory), and storage devices such as HDD (Hard Disk Drive).
  • the background image table 141 is a table that stores background image data (distance image data) measured by each of the sensors 10A to 10D in the absence of the target 2.
  • the detection result table 142 is a table that stores the point cloud and the position of the target 2 detected at each time point based on the observation result of the sensor 10.
  • FIG. 8 is a diagram showing an example of the data structure of the detection result table.
  • the detection result table 142 stores the sensor identification information and the point cloud information of the target 2 at each time point.
  • the sensor identification information is information that identifies the sensor 10.
  • the sensor identification information SE10A, SE10B, SE10C, SE10D correspond to the sensor 10A, the sensor 10B, the sensor 10C, and the sensor 10D, respectively.
  • the point cloud information of the target is data showing the relationship between the three-dimensional point cloud of the target 2 and the three-dimensional coordinates of the points included in the point cloud. If the target is not detected at the time of the corresponding sensor identification information, "no target" is stored.
  • the external parameter table 143 is a table that stores external parameters generated by the external parameter generation processing unit 152, which will be described later.
  • FIG. 9 is a diagram showing an example of the data structure of the external parameter table. As shown in FIG. 9, the external parameter table 143 associates the sensor identification information with the external parameters.
  • the sensor identification information is information that identifies the sensor 10.
  • the external parameters are data indicating the position and orientation relative to the reference sensor 10. In the first embodiment, the reference sensor is the sensor 10A.
  • the external parameter TBA is data indicating the relative position and orientation of the sensor 10B with respect to the sensor 10A.
  • the external parameter T CA is data indicating the relative position and orientation of the sensor 10C with respect to the sensor 10A.
  • the external parameter TDA is data indicating the relative position and orientation of the sensor 10D with respect to the sensor 10A.
  • the control unit 150 includes an acquisition unit 151, an external parameter generation processing unit 152, an integration unit 153, a fitting processing unit 154, and an evaluation unit 155.
  • the control unit 150 is realized by hard-wired logic such as CPU (Central Processing Unit), MPU (Micro Processing Unit), ASIC (Application Specific Integrated Circuit), FPGA (Field Programmable Gate Array), and the like.
  • the acquisition unit 151 is a processing unit that acquires distance image data from the sensor 10 via the communication unit 110. For example, the timing at which the acquisition unit 151 acquires the data of the distance image is instructed by the user who operates the input unit 120.
  • the acquisition unit 151 takes the difference between the distance image data and the background image data stored in the background image table 141, and generates background subtraction image data.
  • the acquisition unit 151 outputs the background subtraction image data to the external parameter generation processing unit 152.
  • the acquisition unit 151 generates background subtraction data corresponding to the sensor 10A by the difference between the distance image data measured by the sensor 10A and the background image data corresponding to the sensor 10A.
  • the acquisition unit 151 generates background subtraction data corresponding to the sensor 10B by the difference between the distance image data measured by the sensor 10B and the background image data corresponding to the sensor 10B.
  • the acquisition unit 151 generates background subtraction data corresponding to the sensor 10C by the difference between the distance image data measured by the sensor 10C and the background image data corresponding to the sensor 10C.
  • the acquisition unit 151 generates background subtraction data corresponding to the sensor 10D by the difference between the distance image data measured by the sensor 10D and the background image data corresponding to the sensor 10D.
  • the acquisition unit 151 repeatedly executes the above process each time the distance image data is acquired from the sensor 10 at each time point.
  • the acquisition unit 151 may add the information at the time point t and the sensor identification information of the corresponding sensor 10 to the background subtraction data.
  • the acquisition unit 151 When executing external calibration, the acquisition unit 151 outputs background subtraction data to the external parameter generation processing unit 152. The acquisition unit 151 outputs background subtraction data to the integration unit 153 when evaluating the performance performed by the subject (not shown). The acquisition unit 151 receives the timing of performing the external calibration and the timing of evaluating the performance from the input unit 120 operated by the user.
  • the external parameter generation processing unit 152 is a processing unit that generates external parameters by executing the processes described in FIGS. 2 to 5.
  • the external parameter generation processing unit 152 stores the generated external parameters in the external parameter table 143.
  • FIG. 10 is a functional block diagram showing the configuration of the external parameter generation processing unit.
  • the external parameter generation processing unit 152 includes a detection unit 160, a specific unit 161, a graph generation unit 162, a parameter generation unit 163, and a robust estimation unit 164.
  • the detection unit 160 is a processing unit that detects the target 2 at a plurality of time points.
  • the detection unit 160 clusters each pixel (pixels excluding the background portion) left in the background subtraction data, and classifies each pixel into a plurality of clusters.
  • the detection unit 160 removes clusters in which the number of pixels belonging to the cluster is less than a predetermined number (the area of the cluster is less than the threshold value) among the clusters as noise.
  • the detection unit 160 holds a conversion table that defines the relationship between the pixel position and distance values and the coordinates of the points and the Cartesian coordinate system.
  • the detection unit 160 converts each pixel included in the cluster into a three-dimensional point cloud based on the conversion table.
  • the detection unit 160 evaluates the error when the three-dimensional point cloud of each cluster is fitted to the preset three-dimensional model surface of the target 2.
  • the detection unit 160 identifies the cluster with the smallest error when fitted as the target 2.
  • the detection unit 160 may execute fitting based on ICP (Iterative Closest Point) or the like.
  • ICP Intelligent Closest Point
  • the three-dimensional point cloud of the cluster corresponding to the target 2 has a relationship between the point cloud and the coordinates of the Cartesian coordinate system of each point, and corresponds to the point cloud information.
  • the detection unit 160 stores the above point cloud information in the detection result table 142 based on the sensor identification information and the time point information given to the background subtraction data.
  • the detection unit 160 executes the above processing based on the background subtraction data, and when the target 2 is not observed by the sensor 10, the information without the target is stored in the detection result table 142.
  • the detection unit 160 repeatedly executes the above process every time it acquires background subtraction data.
  • the identification unit 161 is a processing unit that specifies the number of shares for each set of two sensors 10.
  • the identification unit 161 acquires the data of the detection result table 142 and specifies whether or not the sensors 10A to 10D have detected the target at each time point.
  • the identification unit 161 is a set of two sensors 10 among the sensors 10A to 10D, and specifies the number of times (number of shares) when the target 2 is detected at the same time point among a plurality of time points.
  • the specific process for the specifying unit 161 to specify the number of shares corresponds to the process of the information processing device 100 described with reference to FIG.
  • the identification unit 161 outputs the data of the number of shares specified for each set of the two sensors 10 to the graph generation unit 162. For example, when the observation result of the target 2 at each time point is the one described in FIG. 2, the shared number of the pair of sensors 10A and 10B is “4”. The number of shared sensors 10A and 10C is "1". The number of shared sensors 10A and 10D is "0". The number of shared sensors 10B and 10C is "4". The number of shared sensors 10B and 10D is "3". The number of shared sensors 10C and 10D is "4".
  • the graph generation unit 162 is a processing unit that generates the sensor connectivity graph 51.
  • the graph generation unit 162 generates the target shared number graph 50 based on the shared number data specified for each set of the two sensors 10.
  • the number of shared sensors 10A and 10B is "4"
  • the number of shared sensors 10A and 10C is "1”
  • the number of shared sensors 10A and 10D is "0”
  • the number of shared sensors 10B and 10C is "0”.
  • the number is "4"
  • the number of shared sensors 10B and 10D is "3".
  • the graph generation unit 162 generates the sensor connectivity graph 51 by leaving an edge having a weight of “3” or more among the edges E.
  • the graph generation unit 162 generates the sensor connectivity graph 51 by deleting the edge E CA from the target shared number graph 50 and leaving the edges E BA , E CB , E DB , and E CD. To do.
  • the graph generation unit 162 executes a process of reflecting the variance of the target on the sensor connectivity graph 51. As described with reference to FIG. 4, the graph generation unit 162 calculates the variance ⁇ 2 of the position of the target group observed by the set of two sensors at each time point. The graph generation unit 162 sets "-2log ⁇ " as the weight of each edge E, and reflects the variance of the target in the sensor connectivity graph.
  • the coordinates of the center of gravity of the coordinates of each point included in the point cloud information of the target 2 may be used as the position of the target 2.
  • Graph generating unit 162 the set of sensor 10B and the sensor 10C, the set of the sensor 10B and the sensor 10D, and the same applies to the combination of the sensor 10C and the sensor 10D, variance sigma 2 CB, variance sigma 2 DB, variance sigma 2 Calculate the CD.
  • the graph generation unit 162 outputs the data of the sensor connectivity graph 51 in which the edge weights are set to the parameter generation unit 163.
  • the parameter generation unit 163 generates an external parameter between two connected sensors based on the sensor connectivity graph 51.
  • the parameter generation unit 163 stores the external parameters in the external parameter table 143. Further, the parameter generation unit 163 may transmit the external parameter to a preset external device.
  • the parameter generation unit 163 generates an external parameter between two sensors having no connectivity based on the sensor connectivity graph 51 and the generated external parameter.
  • an example of the processing of the parameter generation unit 163 will be described.
  • the parameter generation unit 163 executes a path that minimizes the sum of each edge E on the sensor connectivity graph 51 by searching for the shortest path. For example, the parameter generation unit 163 selects the path P such that the sum of the edges E is minimized by using the Bellman-Ford method or the like.
  • the path P that minimizes the sum of the edges E is the node 50A, the node 50B, the node 50D, and the node 50C. In that order.
  • the parameter generation unit 163 identifies the set of sensors 10A and 10B, the set of sensors 10B and 10D, and the set of sensors 10D and 10C as two connected sensors.
  • the parameter generation unit 163 identifies the set of sensors 10A and 10C as two sensors having no connection.
  • Parameter generation unit 163 performs the position of the target 2 at the time of sensor 10D, the relationship between the position of the target 2 at the time of sensor 10C, aligned with singular value decomposition to calculate the initial value of the external parameter T CD ..
  • the parameter generation unit 163 executes optimization of the external parameters T BA , T DB , and T CD (fitting of the target 2 shape) by using bundle adjustment and maximum likelihood estimation , and finally the external parameters T BA , T DB. , T CD is calculated. Between the two sensors with connectivity, each external parameter T BA, T DB, T CD corresponds to "information indicating a first correlation positional relationship".
  • the parameter generation unit 163 calculates the external parameter T CA based on the equation (1) and the external parameters T BA , T DB , and T CD.
  • the external parameter T CA is an external parameter between two sensors that are not connected, and corresponds to "information indicating a second correlation positional relationship".
  • the parameter generation unit 163 stores the external parameters T BA , T CA , and T DA based on the sensor 10A in the external parameter table 143.
  • the parameter generation unit 163 calculates an external parameter TDA indicating the relative position and orientation of the sensor 10D with reference to the sensor 10A by the equation (2).
  • the robust estimation unit 164 is a processing unit that detects erroneous detection of the target 2.
  • 11 to 15 are diagrams for explaining the processing of the robust estimation unit.
  • the description will be given based on the sensor 10A and the sensor 10B.
  • the observation results of the sensor 10A and the sensor 10B are shown in FIG.
  • the foreground object 3 is erroneously detected as the target 2 instead of the target 2 and stored in the detection result table 142.
  • the robust estimation unit 164 associates the target 2 (foreground object 3) observed at the same point. That is, the robust estimation unit 164 associates the target 2A-1 with the target 2B-1. The robust estimation unit 164 associates the target 2A-2 with the foreground object 3. The robust estimation unit 164 associates the target 2A-3 with the target 2B-3. The robust estimation unit 164 associates the target 2A-4 with the target 2B-4.
  • the robust estimation unit 164 calculates the external parameter TBA so that the total sum of the distances between the corresponding target pairs is minimized based on the above correspondence. For example, the robust estimation unit 164 optimizes the external parameter TBA between the sensor 10A and the sensor 10B by using the bundle estimation or the maximum likelihood estimation after estimating the initial value, and finally the external. Calculate the parameter TBA.
  • Robust estimation unit 164 using the external parameters T BA, observations 30B position of each target 2, when correcting the sensor 10A in position relative, is as shown in FIG. 14. Due to the influence of erroneous correspondence (target 2A-2 and foreground object 3), the position of the associated target 2A-1,2B-1 pair, the position of the target 2A-3, 2B-3 pair, and the target 2A- The positions of the 4, 2B-4 pairs do not match.
  • the robust estimation unit 164 determines that noise (foreground object 3) is observed when the average of the distances of the associated targets is equal to or greater than the threshold value, and executes the following processing. Robust estimation unit 164 of the set for each target associated at each time point, to the exclusion of one of the set, to calculate the extrinsic parameters T BA.
  • the robust estimation unit 164 corrects the position of each target 2 (excluding the set of targets 2A-1 and 2B-1) of the observation result 30B to a position based on the sensor 10A by using the external parameter T BA1.
  • the average (first average value) of the distances of the associated targets is calculated.
  • the robust estimation unit 164 corrects the position of each target 2 (excluding the set of the target 2A-2 and the foreground object 3) of the observation result 30B to the position based on the sensor 10A by using the external parameter T BA2.
  • the average (second average value) of the distances of the associated targets is calculated. For example, the result of correcting the position of each target 2 (excluding the set of the target 2A-2 and the foreground object 3) to the position based on the sensor 10A by using the external parameter T BA2 is shown in FIG. Become.
  • each target 2 (excluding the set of targets 2A-3 and 2B-3) of the observation result 30B is corrected to the position based on the sensor 10A, and each associated target is corrected. Calculate the average of the distances (third average value).
  • each target 2 (excluding the set of targets 2A-4 and 2B-4) of the observation result 30B is corrected to the position based on the sensor 10A, and each associated target is corrected. Calculate the average of the distances (fourth average value).
  • the robust estimation unit 165 executes the above processing after the detection result table 142 is generated by the detection unit 160 and before the processing by the specific unit 161, the graph generation unit 162, and the parameter generation unit 163 is started. .. This makes it possible to remove noise (foreground object 3) that is erroneously detected other than the target.
  • the integration unit 153, the fitting processing unit 154, and the evaluation unit 155 execute processing when the external calibration is completed and the subject starts acting by the external parameter generation processing unit 152.
  • the integration unit 153 acquires background subtraction data of each sensor 10A to 10D from the acquisition unit 151. Using the conversion table, the integration unit 153 converts the relationship between each pixel included in the background subtraction data and the distance value into the relationship between the point cloud and the coordinates of the Cartesian coordinate system of each point.
  • the converted background subtraction data is referred to as "three-dimensional point cloud data".
  • the conversion table is a table that defines the relationship between the position and distance values of pixels and the coordinates of points and Cartesian coordinate systems.
  • the integration unit 153 uses the sensor 10A as a reference sensor 10 and adjusts the three-dimensional point cloud data of the sensors 10B to 10D to the position and orientation of the sensor 10A. For example, integrating unit 153, using the external parameters T BA, the three-dimensional point group data of the sensor 10B, adjusted to the position and orientation of the sensor 10A. Integrating unit 153, using the external parameters T CA, 3D point cloud data of the sensor 10C, adjusted to the position and orientation of the sensor 10A. Integrating unit 153, using the external parameters T DA, the 3D point group data of the sensor 10D, adjusted to the position and orientation of the sensor 10A. The integration unit 153 acquires each external parameter from the external parameter table 143.
  • the integration unit 153 integrates the three-dimensional point group data of the sensor 10A and the three-dimensional point group data of the sensors 10B to 10D according to the position and orientation of the sensor 10A to generate one three-dimensional point group data. ..
  • the integration unit 153 outputs the generated three-dimensional point cloud data to the fitting processing unit 154.
  • the integration unit 153 repeatedly executes the above process every time it acquires background subtraction data of the sensors 10A to 10D from the acquisition unit 151.
  • the fitting processing unit 154 is a processing unit that executes fitting that applies the 3D model data of the subject to the 3D point cloud data.
  • the fitting processing unit 154 identifies the skeleton model data of the subject based on the fitting result.
  • the skeletal model data includes position information of each joint.
  • the fitting processing unit outputs the skeleton model data to the evaluation unit 155.
  • the fitting processing unit repeatedly executes the above processing each time it acquires three-dimensional point cloud data from the integration unit 153.
  • the evaluation unit 155 is a processing unit that acquires skeletal model data in time series and evaluates the performance of the subject based on the transition of each joint coordinate of the skeletal model data. For example, the evaluation unit 155 evaluates the performance of the subject using a table (not shown) that defines the transition of each joint coordinate, the type of the technique, and the establishment or failure of the technique, and outputs the evaluation result to the display unit 130. To display.
  • scoring competitions include trampoline, swimming dive, figure skating, karate kata, social dance, snowboarding, skateboarding, ski aerial, and surfing. It may also be applied to classical ballet, ski jumping, mogul air, turns, baseball, basketball form checks, and the like. It may also be applied to competitions such as kendo, judo, wrestling, and sumo. Furthermore, it can be used to evaluate whether or not the weightlifting barbell has been raised.
  • FIG. 16 is a flowchart showing a processing procedure of the information processing apparatus according to the first embodiment.
  • the acquisition unit 151 of the information processing device 100 acquires the distance image data from the sensor 10 (step S10).
  • the acquisition unit 151 takes the difference between the distance image data and the background image data, and generates background subtraction data (step S11).
  • the detection unit 160 of the information processing device 100 detects the target from the background subtraction data and registers the point cloud information of the target in the detection result table 142 (step S12). If the information processing apparatus 100 does not end the detection of the target (steps S13, No), the information processing apparatus 100 proceeds to step S10 again. On the other hand, when the information processing apparatus 100 ends the detection of the target (steps S13, Yes), the information processing apparatus 100 proceeds to step S14.
  • the external parameter generation processing unit 152 (specific unit 161 and graph generation unit 162) of the information processing device 100 executes the sensor connectivity graph generation processing (step S14).
  • the parameter generation unit 163 of the information processing apparatus 100 applies the Bellman-Ford method on the sensor connectivity graph 31 for the reference sensor i ref and other sensor i tar pairs (i ref , itar). , Search for the shortest route (step S15).
  • the reference sensor iref corresponds to the sensor 10A.
  • the parameter generation unit 163 selects the path P of the sensor group based on the search result of the shortest path (step S16).
  • the parameter generation unit 163 calculates the initial value of the external parameter of the sensor itar using the singular value decomposition based on the order of the path P (step S17).
  • Parameter generation unit 163, the bundle adjustment and maximum likelihood estimation, to optimize the external parameters of the sensor i tar (step S18).
  • the parameter generation unit 163 stores the external parameters in the external parameter table 143 (step S19).
  • the process of step S19 also corresponds to a process of transmitting an external parameter to an external device.
  • FIG. 17 is a flowchart showing a processing procedure of the sensor connectivity graph generation process.
  • the identification unit 161 of the information processing apparatus 100 totals the shared numbers Ni and j of the targets to be shared and observed for all the sensor sets (i and j) (step S101).
  • the graph generation unit 162 of the information processing apparatus 100 generates a target shared number graph 50 in which the shared numbers Ni and j are edge weights and the sensor 10 is a node (step S102).
  • the graph generation unit 162 generates a sensor connectivity graph that retains the edges of the target shared number graph such that the shared number Ni, j ⁇ 3 (step S103).
  • the graph generation unit 162 generates a sensor connectivity graph having -2log ⁇ as an edge weight for each edge of the sensor connectivity graph (step S104).
  • the information processing apparatus 100 executes observations by the sensors 10A to 10D while moving the target 2 at each time point, and specifies a shared number indicating the number of times when the target 2 is detected at the same time.
  • the information processing apparatus 100 generates a target shared number graph 50 in which the shared number is an edge weight, and from the target shared number graph 50, a sensor connectivity graph 51 that leaves edges having an edge E weight of a predetermined number or more. To generate. This makes it possible to identify a set of sensors in which the number of times the target 2 is observed at the same time is equal to or greater than a predetermined number.
  • the information processing apparatus 100 calculates the variance ⁇ 2 of the position of the target group observed by the set of two sensors at each time point, sets “-2log ⁇ ” as the weight of each edge E, and connects the variance of the target to the sensor. It is reflected in the sex graph 51.
  • the weight of each edge E is defined as "-2log ⁇ ”
  • the smaller the edge weight the larger the spatial variance of the position of the target group observed by the pair of two sensors. ..
  • the information processing device 100 specifies a route that minimizes the sum of the edges E, and specifies the order of the sensors 10 to be selected when calculating the external parameter based on the specified route.
  • the order of the sensors can be specified so that the spatial dispersion of the positions of the target group becomes as large as possible so that the calculation of the external parameters of the sensor 10 is stable. Therefore, according to the information processing apparatus 100, it is possible to accurately generate information indicating a relative positional relationship such as an arrangement positional relationship and an angle of view relationship for three or more sensors.
  • the information processing apparatus 100 uses a cylindrical target 2 as a target, executes an external calibration, and generates an external parameter, but the present invention is not limited to this.
  • the information processing apparatus 100 may use a spherical marker as a target.
  • FIG. 18 to 20 are diagrams showing an example of external calibration using a spherical marker.
  • the user observes the sphere marker 60 by the sensors 10A to 10D while moving the sphere marker 60 at each time point.
  • the spherical marker 60 is moved by a user (not shown).
  • the sensor 10A observes the observation result 61A at each time point.
  • the sensor 10B observes the observation result 61B at each time point.
  • the sensor 10C observes the observation result 61C at each time point.
  • the sensor 10D observes the observation result 61D at each time point.
  • the information processing device 100 generates background subtraction data 63 by taking the difference between the distance image data 62 and the background image data.
  • the information processing device 100 generates background subtraction data 64 by removing noise from background subtraction data 63.
  • the information processing device 100 detects the spherical marker 64a from the background subtraction data 64.
  • the information processing apparatus 100 can robustly detect the spherical marker 64a with respect to the measurement noise by fitting the spherical marker 64a.
  • the information processing device 100 generates a sensor connectivity graph based on the number of shared sphere markers 60 and the variance of the sphere markers 60, and generates external parameters.
  • the information processing apparatus 100 accurately generates information (external parameters) indicating the relative positional relationship, such as the arrangement positional relationship and the angle of view relationship, even if the spherical marker 60 is used instead of the target 2. be able to.
  • the information processing system according to the second embodiment by arranging the target at a predetermined position and measuring it, it is possible to calculate the position and orientation of an object other than the sensor in addition to generating external parameters.
  • a gymnastic instrument will be used as an object other than the sensor, but the present invention is not limited to this.
  • FIG. 21 is a diagram for explaining the placement position of the target.
  • the gymnastics device 70 is arranged.
  • the sensors 10A to 10D are arranged around the gymnastics device 70.
  • the sensors 10A to 10D are connected to the information processing device 200, respectively.
  • the target P1 is arranged directly above the center of the gymnastics device 70.
  • the target P2 is on the y-axis of the gymnastics device 70 and is arranged at a height H of the upper surface of the gymnastics device 70.
  • the targets P3 to Pn are arranged at positions higher than P2 on the mat 72 having the same height from the floor surface 71. The heights from the floor surface 71 to the targets P3 to Pn are the same. It is a condition that the targets P3 to Pn are 3 or more.
  • the information processing device 200 uses the positions of the targets P1 to Pn observed during the execution of the external calibration after the external calibration is executed, and the coordinate system of the gymnasium 70 is used. Xa axis, Ya axis, Za axis and origin Oa are calculated.
  • the information processing device 200 fits a plane to the targets P3 to Pn, and specifies the normal of the plane as the Za axis.
  • the information processing device 200 calculates the Xa axis based on the equations (3) and (4).
  • P1 and P2 included in the formula (3) indicate the positions of the targets P1 and P2.
  • the information processing device 200 calculates the Ya axis based on the equation (5).
  • the information processing device 200 calculates the origin Oa based on the equation (6).
  • H included in the formula (6) corresponds to the height of the upper surface of the gymnastics device 70.
  • the volt (v, Za) included in the equation (6) is a function for calculating the inner product of v and Za.
  • the reference sensor is the sensor 10A, and the coordinate conversion parameter TaA for converting the Xa axis, the Ya axis, the Za axis, and the origin Oa into the coordinates based on the sensor 10A is calculated.
  • the coordinate transformation parameter TaA includes a rotation component R and a translational component t.
  • the rotation component R is defined by the equation (7).
  • the translational component t is defined by the equation (8). For example, by multiplying the three-dimensional coordinates obtained from the observation result of the sensor 10A by the coordinate conversion parameter TaA , the coordinate system based on the sensor 10A can be converted into the coordinate system of the gymnastics equipment 70.
  • the coordinate system of the gym equipment 70 other than the sensor Xa, Ya, Za and the origin Oa can be calculated.
  • the three-dimensional model of a subject is generated and displayed as an animation
  • the three-dimensional model can be displayed as an animation by the coordinate system of the gymnastics device 70.
  • FIG. 22 is a functional block diagram showing the configuration of the information processing apparatus according to the second embodiment.
  • the information processing device 200 includes a communication unit 210, an input unit 220, a display unit 230, a storage unit 240, and a control unit 250.
  • the communication unit 210 is a processing unit that receives distance image data from the sensor 10 shown in FIG.
  • the communication unit 210 outputs the received distance image data to the control unit 250.
  • the communication unit 210 is an example of a communication device.
  • the input unit 220 is an input device that inputs various information to the information processing device 200.
  • the input unit 220 corresponds to a keyboard, a mouse, a touch panel, and the like. For example, at each time point, the user operates the input unit 220 every time the installation of the target Pn is completed, and inputs information to the effect that the installation of the target Pn is completed to the information processing device 100.
  • the display unit 230 is a display device that displays information output from the control unit 250. For example, the display unit 230 displays skill certification, scoring results, etc. of various competitions.
  • the display unit 230 corresponds to a liquid crystal display, an organic EL (Electro-Luminescence) display, a touch panel, and the like.
  • the storage unit 240 has a background image table 241, a detection result table 242, an external parameter table 243, and coordinate conversion parameter data 244.
  • the storage unit 240 corresponds to a semiconductor memory element such as a RAM or a flash memory, or a storage device such as an HDD.
  • the background image table 241 is a table that stores background image data (distance image data) measured by each of the sensors 10A to 10D in a state where the target Pn does not exist.
  • the detection result table 242 is a table that stores the point cloud and the position of the target Pn detected at each time point based on the observation result of the sensor 10.
  • the data structure of the detection result table 242 corresponds to the data structure of the detection result table 142 described with reference to FIG.
  • the target is the target Pn instead of the target 2.
  • the external parameter table 243 is a table that stores external parameters generated by the external parameter generation processing unit 252, which will be described later.
  • the data structure of the external parameter table 243 corresponds to the external parameter table 143 described with reference to FIG.
  • the coordinate transformation parameter data 244 has data of the coordinate transformation parameter TaA .
  • the coordinate conversion parameter TaA is a parameter that converts the Xa axis, the Ya axis, the Za axis, and the origin Oa into coordinates based on the sensor 10A.
  • the control unit 250 includes an acquisition unit 251, an external parameter generation processing unit 252, a calculation unit 253, an integration unit 254, a fitting processing unit 255, and an evaluation unit 256.
  • the control unit 250 is realized by a CPU, an MPU, a hard-wired logic such as an ASIC or an FPGA, or the like.
  • the acquisition unit 251 is a processing unit that acquires distance image data from the sensor 10 via the communication unit 210. For example, the timing at which the acquisition unit 251 acquires the data of the distance image is instructed by the user who operates the input unit 220.
  • the acquisition unit 251 takes a difference between the distance image data and the background image data stored in the background image table 241 to generate background difference image data.
  • the acquisition unit 251 outputs the background subtraction image data to the external parameter generation processing unit 252.
  • the other description of the acquisition unit 251 is the same as the description of the acquisition unit 151 described in the first embodiment.
  • the external parameter generation processing unit 252 is a processing unit that generates external parameters based on the data stored in the detection result table 242.
  • the external parameter generation processing unit 252 stores the generated external parameters in the external parameter table 243.
  • the description of the external parameter generation processing unit 252 is the same as the description of the external parameter generation processing unit 252 described in the first embodiment.
  • the calculation unit 253 is a processing unit that calculates the Xa axis, Ya axis, and Za axis of the coordinate system of the coordinate system of the gymnastics equipment 70, and the origin Oa.
  • the calculation unit 253 uses the sensor 10A as a reference sensor 10 and adjusts the three-dimensional point cloud data of the targets P1 to Pn observed by the sensors 10B to 10D to the position and orientation of the sensor 10A.
  • the three-dimensional point cloud data of the targets P1 to Pn observed by the sensors 10B to 10D are stored in the detection result table 242.
  • calculator 253 uses the external parameter T BA, the three-dimensional point group data sensor 10B has observed, adjusted to the position and orientation of the sensor 10A.
  • the calculation unit 253 adjusts the three-dimensional point cloud data observed by the sensor 10C to the position and orientation of the sensor 10A by using the external parameter T CA.
  • the calculation unit 253 acquires each external parameter from the external parameter table 243.
  • the calculation unit 253 adjusts the three-dimensional point group data of the targets P1 to Pn observed by the sensors 10B to 10D to the position and orientation of the sensor 10A, and then adjusts the three-dimensional points of the targets P1 to Pn observed by the sensors 10A to 10D. Integrate group data.
  • the calculation unit 253 fits a plane to the targets P3 to Pn, and specifies the normal of the plane as the Za axis.
  • the calculation unit 253 calculates the Xa axis based on the equations (3) and (4).
  • the calculation unit 253 calculates the Ya axis based on the equation (5).
  • the calculation unit 253 calculates the origin Oa based on the equation (6).
  • the calculation unit 253 calculates the coordinate conversion parameter TaA that converts the Xa axis, the Ya axis, the Za axis, and the origin Oa into the coordinates based on the sensor 10A. ..
  • the calculation unit 253 stores the coordinate conversion parameter TaA in the storage unit 240.
  • the integration unit 254, the fitting processing unit 255, and the evaluation unit 256 execute processing when the external calibration is completed and the subject starts acting by the external parameter generation processing unit 252.
  • the integration unit 254 integrates the 3D point cloud data of the sensor 10A and the 3D point cloud data of the sensors 10B to 10D according to the position and orientation of the sensor 10A to generate one 3D point cloud data. It is a processing unit.
  • the description of the integrated unit 254 is the same as the description of the integrated unit 153 described in the first embodiment.
  • the integration unit 254 When the integration unit 254 receives an instruction from the evaluation unit 256 to convert to the coordinate system of the gymnastics equipment 70, the integration unit 254 multiplies the coordinates of the integrated three-dimensional point cloud data by the coordinate conversion parameter TaA. As a result, the three-dimensional point cloud data of the coordinate system based on the sensor 10A can be converted into the three-dimensional point cloud data of the coordinate system of the gymnastics equipment 70.
  • the fitting processing unit 255 is a processing unit that executes fitting that applies the 3D model data of the subject to the 3D point cloud data.
  • the fitting processing unit 255 identifies the skeleton model data of the subject based on the fitting result.
  • the skeletal model data includes position information of each joint.
  • the fitting processing unit outputs the skeleton model data to the evaluation unit 256.
  • the fitting processing unit 255 repeatedly executes the above processing every time the three-dimensional point cloud data is acquired from the integration unit 254.
  • the evaluation unit 256 is a processing unit that acquires skeletal model data in time series and evaluates the performance of the subject based on the transition of each joint coordinate of the skeletal model data. For example, the evaluation unit 256 evaluates the performance of the subject using a table (not shown) that defines the transition of each joint coordinate, the type of technique, and the establishment or failure of the technique, and outputs the evaluation result to the display unit 230. To display.
  • the evaluation unit 256 may display the three-dimensional model in animation by the coordinate system of the gymnastics equipment 70. .. Further, the evaluation unit 256 may output an instruction to convert to the coordinate system of the gymnastics equipment 70 to the integration unit 254, and may convert the coordinates of the subject into the coordinate system of the gymnastics equipment 70 and display it.
  • FIG. 23 is a flowchart showing a processing procedure of the information processing apparatus according to the second embodiment.
  • the acquisition unit 251 of the information processing device 200 acquires the distance image data from the sensor 10 (step S201).
  • the acquisition unit 251 takes the difference between the distance image data and the background image data, and generates background subtraction data (step S202).
  • the external parameter generation processing unit 252 of the information processing device 200 detects the target from the background subtraction data and registers the point cloud information of the target in the detection result table 242 (step S203). If the information processing apparatus 200 does not end the detection of the target (steps S204, No), the information processing apparatus 200 proceeds to step S201 again. On the other hand, when the information processing apparatus 200 ends the detection of the target (step S204, Yes), the information processing apparatus 200 proceeds to step S205.
  • the external parameter generation processing unit 252 of the information processing device 200 executes the sensor connectivity graph generation processing (step S205).
  • the sensor connectivity graph generation process in step S205 corresponds to the processing procedure of the sensor connectivity graph generation process described with reference to FIG. 17 of the first embodiment.
  • the external parameter generation processing unit 252 of the information processing apparatus 200 applies the Bellman-Ford method on the sensor connectivity graph 31 for the reference sensor i ref and other sensor i tar pairs (i ref , itar). By doing so, the shortest route is searched (step S206).
  • the reference sensor iref corresponds to the sensor 10A.
  • the external parameter generation processing unit 252 selects the path P of the sensor group based on the search result of the shortest path (step S207).
  • the external parameter generation processing unit 252 calculates the initial value of the external parameter of the sensor itar using the singular value decomposition based on the order of the path P (step S208).
  • External parameter generation processing unit 252 a bundle adjustment and maximum likelihood estimation, to optimize the external parameters of the sensor i tar (step S209).
  • the external parameter generation processing unit 252 stores the external parameters in the external parameter table 243 (step S210).
  • the calculation unit 253 of the information processing device 200 calculates the Xa axis, Ya axis, and Za axis of the gymnastics device 70 (step S211).
  • the calculation unit 253 calculates the origin Oa of the gymnastics device 70 (step S212).
  • the calculation unit 253 calculates the coordinate conversion parameter TaA (step S213).
  • the calculation unit 253 stores the coordinate conversion parameter TaA in the coordinate conversion parameter data 244 (step S214).
  • the information processing apparatus 200 uses the positions of the targets P1 to Pn observed at the time of executing the external calibration to use the Xa axis, Ya axis, Za axis and the origin Oa of the coordinate system of the gymnastics device 70. Can be calculated.
  • the coordinate conversion parameter TaA when a three-dimensional model of a subject is generated and displayed as an animation, the three-dimensional model can be displayed as an animation by the coordinate system of the gymnastics equipment 70.
  • FIG. 24 is a diagram showing an example of a hardware configuration of a computer that realizes a function similar to that of an information processing device.
  • the computer 300 has a CPU 301 that executes various arithmetic processes, an input device 302 that receives data input from a user, and a display 303. Further, the computer 300 has a communication device 304 that receives distance image data from the sensor 10 and an interface device 305 that connects to various devices. The computer 300 has a RAM 306 that temporarily stores various information and a hard disk device 307. Then, each of the devices 301 to 307 is connected to the bus 308.
  • the hard disk device 307 includes an acquisition program 307a, an external parameter generation processing program 307b, a calculation program 307c, an integration program 307d, a fitting processing program 307e, and an evaluation program 307f.
  • the CPU 201 reads the acquisition program 307a, the external parameter generation processing program 307b, the calculation program 307c, the integration program 307d, the fitting processing program 307e, and the evaluation program 307f and deploys them in the RAM 306.
  • the acquisition program 307a functions as the acquisition process 306a.
  • the external parameter generation processing program 307b functions as the external parameter generation processing process 306b.
  • the calculation program 307c functions as the calculation process 306c.
  • the integration program 307d functions as the integration process 306d.
  • the fitting processing program 307e functions as the fitting processing process 306e.
  • the evaluation program 307f functions as the evaluation process 306f.
  • the processing of the acquisition process 206a corresponds to the processing of the acquisition units 151 and 251.
  • the processing of the external parameter generation processing process 306b corresponds to the processing of the external parameter generation processing units 152 and 252.
  • the processing of the calculation process 306c corresponds to the processing of the calculation unit 253.
  • the processing of the integration process 306d corresponds to the processing of the integration units 153 and 254.
  • the processing of the fitting processing process 306e corresponds to the processing of the fitting processing units 154 and 255.
  • the processing of the evaluation process 306f corresponds to the processing of the evaluation units 155 and 256.
  • each program 307a to 307f does not necessarily have to be stored in the hard disk device 307 from the beginning.
  • each program is stored in a "portable physical medium" such as a flexible disk (FD), a CD-ROM, a DVD disk, a magneto-optical disk, or an IC card inserted into the computer 300. Then, the computer 300 may read and execute each of the programs 307a to 307f.
  • 10A, 10B, 10C, 10D Sensor 100 Information processing device 110 Communication unit 120 Input unit 130 Display unit 140, 240 Storage unit 141,241 Background image table 142,242 Detection result table 143,243 External parameter table 150,250 Control unit 151 , 251 Acquisition unit 152,252 External parameter generation processing unit 153,254 Integration unit 154,255 Fitting processing unit 155,256 Evaluation unit 160 Detection unit 161 Specific unit 162 Graph generation unit 163 Parameter generation unit 164 Robust estimation unit 244 Coordinate conversion parameter Data 253 calculation unit

Abstract

情報処理装置は、各時点において3つ以上のセンサそれぞれがターゲットを検出したか否かを基にして、3つ以上のセンサのうちの2つのセンサの組それぞれで、複数時点のうち同じ時点においてターゲットを検出した時点の回数を特定する。情報処理装置は、センサの組それぞれについて特定した回数と、複数時点におけるターゲットの配置位置の分散とを基にして、センサ間の相対位置関係の推定精度に関する連結性を示す情報を生成する。情報処理装置は、連結性を示す情報を基にして、連結性のある2つのセンサ間で、第1の相対位置関係を示す情報を生成する。情報処理装置は、連結性を示す情報と、第1の相対位置関係を示す情報とを基にして、連結性のない2つのセンサ間の第2の相対位置関係を示す情報を生成し、生成した情報を出力する。

Description

生成方法、生成プログラムおよび情報処理装置
 本発明は、生成方法等に関する。
 レーザセンサ等の距離測定装置を用いて、被写体の3次元点群を測定する従来技術がある。以下の説明では、レーザセンサ等の距離測定装置を「センサ」と表記する。たとえば、被写体の周囲に配置した、複数のセンサを使って、各方向から被写体をセンシングし、各センサの測定結果となる3次元点群を統合することで、被写体を立体的に再現することができる。
 図25は、複数のセンサに測定された3次元点群を統合した結果を示す図である。図25に示す例では、センサ10A,10B,10C,10Dが被写体1の周囲(前後)に配置されて、センサ10A~10Dは、被写体1を測定し、3次元点群を得る。
 3次元点群11Aは、センサ10Aの測定結果を基にしたデータである。3次元点群11Bは、センサ10Bの測定結果を基にしたデータである。3次元点群11Cは、センサ10Cの測定結果を基にしたデータである。3次元点群11Dは、センサ10Dの測定結果を基にしたデータである。3次元点群11A~11Dを統合することで、3次元点群12が生成される。3次元点群12は、被写体1を立体的に再現している。
 ここで、複数の3次元点群を統合する場合には、外部パラメータが用いられる。外部パラメータは、複数のセンサの互いの位置関係を示す情報である。外部パラメータを算出する従来技術として、たとえば、従来技術1、2がある。
 従来技術1について説明する。従来技術1は、球体ターゲットを利用して、センサの外部パラメータを算出する外部キャリブレーションの技術である。従来技術1では、一つの球体ターゲットを移動させつつ、第1のセンサおよび第2のセンサで、球体ターゲットを複数回、観測する。
 図26は、従来技術1を説明するための図である。図26において、測定結果13a,14a,15aは、時点t=1,2,3において、第1のセンサにそれぞれ測定されたものである。測定結果13a,14a,15aからは、球体ターゲット23a,24a,25aがそれぞれ検出される。時点t=4以降の測定結果の説明は省略する。
 測定結果13b,14b,15bは、時点t=1,2,3において、第2のセンサにそれぞれ測定されたものである。測定結果13b,14b,15bからは、球体ターゲット23b,24b,25bがそれぞれ検出される。時点t=4以降の測定結果の説明は省略する。
 従来技術1では、球体ターゲット23a,24a,25aと、球体ターゲット23b,24b,25bとの対応付けを行い、対応付けを行った球体ターゲットの3次元点群の位置関係を基にして、外部パラメータの初期値を推定する。初期値の推定には、特異値分解の位置合わせが行われる。従来技術1では、初期値の推定を行った後に、バンドル推定や最尤推定を用いて、第1のセンサと第2のセンサとの間の外部パラメータの最適化を行い、外部パラメータを算出する。
 画像16は、外部キャリブレーション結果を示すものである。外部キャリブレーションを実行することで、球体ターゲット23a,24a,25aと、球体ターゲット23b,24b,25bとの位置が一致する。
 なお、従来技術1では、球体ターゲットの位置を変更しながら、最低3時点で、第1のセンサと第2のセンサで、球体ターゲットを同時に検出できていることが、外部パラメータを算出するための条件となる。
 次に、従来技術2について説明する。従来技術2は、画像処理によってターゲットを検出し、2つのカメラを起点とし、DLT(Direct Linear Transform)アルゴリズムを用いて、各カメラの外部パラメータを順々に推定する技術である。
 図27および図28は、従来技術2を説明するための図である。図27の説明を行う。従来技術2では、時点t=1~7において、ターゲット2を移動させながら、センサ10A~10Dによって、ターゲット2を観測する。
 たとえば、時点t=1において、ターゲット2は、センサ10A~10Dによって観測される。時点t=2において、ターゲット2は、センサ10A~10Dによって観測される。時点t=3において、ターゲット2は、センサ10A~10Dによって観測される。
 時点t=4において、ターゲット2は、センサ10A,10B,10Dによって観測される。時点t=5において、ターゲット2は、センサ10A,10B,10Dによって観測される。時点t=6において、ターゲット2は、センサ10C,10Dによって観測される。時点t=7において、ターゲット2は、センサ10C,10Dによって観測される。
 これによって、センサ10Aは、時点t=1,2,3,4,5において、ターゲット2を観測し、観測結果20Aが得られる。センサ10Bは、時点t=1,2,3,4,5において、ターゲット2を観測し、観測結果20Bが得られる。センサ10Cは、時点t=1,2,3,6,7において、ターゲットを観測し、観測結果20Cが得られる。センサ10Dは、時点t=1,2,3,4,5,6,7において、ターゲットを観測し、観測結果20Dが得られる。
 図28の説明に移行する。従来技術2では、外部パラメータを推定する順番が予め定められている。たとえば、従来技術2は、センサ10Aを基準として、センサ10B,10C,10Dの順番でセンサを選択し、外部パラメータを推定する。外部パラメータを推定する場合、推定に利用できるターゲット2は、基準となるセンサまたは、選択済みのセンサで既に観測されている時点のターゲット2となる。
 このため、センサ10B,10C,10Dの順番でセンサを選択すると、センサ10Bの観測結果20Bでは、時点t=1,2,3,4,5に観測したターゲットを、外部パラメータの推定に使用できる。センサ10Cの観測結果20Cでは、時点t=1,2,3で観測したターゲットを、外部パラメータの推定に使用できる。センサ10Dの観測結果20Dでは、時点t=1~7で観測したターゲットを、外部パラメータの推定に使用できる。
特開2019-086476号公報
 上述した従来技術1では、2つのセンサの外部パラメータを把握することを前提としており、更に、第1のセンサ、第2のセンサが一つの球体ターゲットを同時に観測することが求められる。このため、第1のセンサと第2のセンサとのセンシング範囲が共有されていない場合、球体ターゲットを2つのセンサで同時に観測することはできない。また、共有するセンシング範囲が狭い場合にも、球体ターゲットの場所を移動させながら複数回の撮影を行うことが前提であるため、2つのセンサが球体ターゲットを十分な回数観測することは難しい。このような場合、第1のセンサと第2のセンサとの外部パラメータを推定するための条件が不足する。
 また、3つ以上のセンサを使って、より広範囲に、よりいろいろな方向から、被写体をセンシングしたい場合がある。しかし、従来技術1では、各時点において全センサがターゲットを同時に観測することが前提となっているため、3つ以上のセンサの中に、センシング範囲が共有されていないペアが存在する場合、外部パラメータを推定できない。
 また、上述した従来技術2では、外部パラメータを推定する順番が予め定められている。たとえば、図28で説明したように、センサ10Aを基準として、センサ10B,10C,10Dの順番でセンサを選択して、外部パラメータを推定すると、観測結果20Cにおいて、外部パラメータの推定に利用できるターゲットが減少し、分布に偏りが生じる。外部パラメータの推定に利用できるターゲットが偏って分布すると、外部パラメータの推定精度が低くなる。推定精度の低下は、後段の観測結果20Dを選択して外部パラメータを推定する場合の推定精度にも影響を与える。
 1つの側面では、本発明は、3つ以上のセンサについて、配置位置関係や画角の関係など、相対位置関係を示す情報を精度よく生成することができる生成方法、生成プログラムおよび情報処理装置を提供することを目的とする。
 第1の案では、コンピュータは次の処理を実行する。コンピュータは、3つ以上のセンサによる、複数時点でのターゲットの検出結果を取得する。コンピュータは、各時点において3つ以上のセンサそれぞれがターゲットを検出したか否かを基にして、3つ以上のセンサのうちの2つのセンサの組それぞれで、複数時点のうち同じ時点においてターゲットを検出した時点の回数を特定する。コンピュータは、センサの組それぞれについて特定した回数と、複数時点におけるターゲットの配置位置の分散とを基にして、センサ間の相対位置関係の推定精度に関する連結性を示す情報を生成する。コンピュータは、連結性を示す情報を基にして、連結性のある2つのセンサ間で、第1の相対位置関係を示す情報を生成する。コンピュータは、連結性を示す情報と、第1の相対位置関係を示す情報とを基にして、連結性のない2つのセンサ間の第2の相対位置関係を示す情報を生成する。コンピュータは、第1の相対位置関係を示す情報および第2の相対位置関係を示す情報を、3つ以上のセンサ間の位置関係を示す情報として出力する。
 3つ以上のセンサについて、配置位置関係や画角の関係など、相対位置関係を示す情報を精度よく生成することができる。
図1は、本実施例1に係る情報処理システムの一例を示す図である。 図2は、センサ連結性グラフを生成する処理を説明するための図(1)である。 図3は、センサ連結性グラフを生成する処理を説明するための図(2)である。 図4は、ターゲットの分散をセンサ連結性グラフに反映する処理を説明するための図である。 図5は、直接連結しないセンサの外部パラメータの計算を説明するための図である。 図6は、本実施例1に係る情報処理装置の効果を説明するための図である。 図7は、本実施例1に係る情報処理装置の構成を示す機能ブロック図である。 図8は、検出結果テーブルのデータ構造の一例を示す図である。 図9は、外部パラメータテーブルのデータ構造の一例を示す図である。 図10は、外部パラメータ生成処理部の構成を示す機能ブロック図である。 図11は、ロバスト推定部の処理を説明するための図(1)である。 図12は、ロバスト推定部の処理を説明するための図(2)である。 図13は、ロバスト推定部の処理を説明するための図(3)である。 図14は、ロバスト推定部の処理を説明するための図(4)である。 図15は、ロバスト推定部の処理を説明するための図(5)である。 図16は、本実施例1に係る情報処理装置の処理手順を示すフローチャートである。 図17は、センサ連結性グラフ生成処理の処理手順を示すフローチャートである。 図18は、球体マーカを用いた外部キャリブレーションの一例を示す図(1)である。 図19は、球体マーカを用いた外部キャリブレーションの一例を示す図(2)である。 図20は、球体マーカを用いた外部キャリブレーションの一例を示す図(3)である。 図21は、ターゲットの配置位置を説明するための図である。 図22は、本実施例2に係る情報処理装置の構成を示す機能ブロック図である。 図23は、本実施例2に係る情報処理装置の処理手順を示すフローチャートである。 図24は、情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。 図25は、複数のセンサに測定された3次元点群を統合した結果を示す図である。 図26は、従来技術1を説明するための図である。 図27は、従来技術2を説明するための図(1)である。 図28は、従来技術2を説明するための図(2)である。
 以下に、本願の開示する生成方法、生成プログラムおよび情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
 図1は、本実施例1に係る情報処理システムの一例を示す図である。図1に示すように、本実施例1に係る情報処理システムは、センサ10A,10B,10C,10Dと、情報処理装置100とを有する。センサ10A~10Dと、情報処理装置100とは、有線または無線によってそれぞれ接続されている。図1では、センサ10A~10Dを示すが、情報処理システムは、他のセンサを有していてもよい。
 センサ10Aは、被写体(あるいはターゲット2)を構成する点群とセンサ10Aとの距離を測定する測定装置(レーザーセンサ)である。センサ10Aは、測定結果となる距離画像のデータを、情報処理装置100に出力する。距離画像のデータには、各画素と距離値とをそれぞれ対応付けた情報が含まれる。距離画像のデータは、情報処理装置100によって、3次元点群データに変換される。3次元点群データは、点群について、点と、3次元直交座標系の座標とをそれぞれ対応付けた情報である。
 センサ10Bに関する説明は、センサ10Aに関する説明と同様である。以下の説明では、適宜、センサ10A~10Bをまとめて「センサ10」と表記する。また、3次元点群データは、センサ10が測定した距離画像のデータを変換したデータであるが、適宜、センサ10が測定した3次元点群データと表記し、距離画像のデータを3次元点群データに変換する旨の記載を省略する。
 本実施例1に係る情報処理システムは、センサ10を用いて被写体(図示略)を測定し、被写体が行う演技を評価するシステムであるが、前処理として、ターゲット2を用いて、外部キャリブレーションを実行し、外部パラメータを生成する。情報処理システムは、生成した外部パラメータに基づいて、センサ10に測定された3次元点群データを統合し、被写体全体の3次元点群データを生成し、被写体が行う演技を評価する。
 情報処理システムの情報処理装置100が、外部パラメータを生成する場合の処理について説明する。情報処理装置100は、外部パラメータを生成する場合において、センサ連結性グラフを生成する処理、ターゲットの分散をセンサ連結性グラフに反映する処理、センサを選択する順番を特定する処理を実行する。
 図2及び図3は、センサ連結性グラフを生成する処理を説明するための図である。図2に示すように、時点t=1~13において、ターゲット2を移動させながら、センサ10A~10Dによって、ターゲット2を観測する。ターゲット2は、ユーザによって移動される。
 たとえば、時点t=1において、ターゲット2は、センサ10Aによって観測される。時点t=2において、ターゲット2は、センサ10Aによって観測される。時点t=3において、ターゲット2は、センサ10A,10Bによって観測される。時点t=4において、ターゲット2は、センサ10A,10Bによって観測される。
 時点t=5において、ターゲット2は、センサ10A,10Bによって観測される。時点t=6において、ターゲット2は、センサ10A,10B,10Cによって観測される。時点t=7において、ターゲット2は、センサ10B,10Cによって観測される。時点t=8において、ターゲット2は、センサ10B,10Dによって観測される。
 時点t=9において、ターゲット2は、センサ10B,10C,10Dによって観測される。時点t=10において、ターゲット2は、センサ10C,10Dによって観測される。時点t=11において、ターゲット2は、センサ10C,10Dによって観測される。時点t=12において、ターゲット2は、センサ10B,10C,10Dによって観測される。時点t=13において、ターゲット2は、センサ10Cによって観測される。
 ここで、情報処理装置100は、センサ10A~10Dのうち、2つのセンサの組で、複数時点のうち同じ時点において、ターゲット2を検出した時点の回数(以下、共有数)を特定する。
 センサ10Aとセンサ10Bとの組については、時点t=1~13のうち、時点t=3,4,5,6において、ターゲット2を観測している。このため、センサ10A,10Bの組の共有数は「4」となる。
 センサ10Aとセンサ10Cとの組については、時点t=1~13のうち、時点t=6において、ターゲット2を観測している。このため、センサ10A,10Cの組の共有数は「1」となる。
 センサ10Aとセンサ10Dとの組については、時点t=1~13のうち、ターゲット2を観測している時点はない。このため、センサ10A,10Dの組の共有数は「0」となる。
 センサ10Bとセンサ10Cとの組については、時点t=1~13のうち、時点t=6,7,12において、ターゲット2を観測している。このため、センサ10B,10Cの組の共有数は「3」となる。
 センサ10Bとセンサ10Dとの組については、時点t=1~13のうち、時点t=8,9,12において、ターゲット2を観測している。このため、センサ10B,10Dの組の共有数は「3」となる。
 センサ10Cとセンサ10Dとの組については、時点t=1~13のうち、時点t=9,10,11,12において、ターゲット2を観測している。このため、センサ10C,10Dの組の共有数は「4」となる。
 図3の説明に移行する。情報処理装置100は、2つのセンサの組それぞれについて特定した共有数を基にして、ターゲット共有数グラフ50を生成する。ターゲット共有数グラフ50は、ノード50A,50B,50C,50Dを含む。ノード50Aは、センサ10Aに対応するノードである。ノード50Bは、センサ10Bに対応するノードである。ノード50Cは、センサ10Cに対応するノードである。ノード50Dは、センサ10Dに対応するノードである。
 ターゲット共有数グラフ50において、ノード50A~50Dは、それぞれエッジEによって接続され、各エッジEには、共有数に応じた重みが設定される。情報処理装置100は、センサ10A,10Bの組の共有数は「4」であるため、ノード50Aとノード50Bとを接続するエッジEBAに、重み「4」を設定する。情報処理装置100は、センサ10A,10Cの組の共有数は「1」であるため、ノード50Aとノード50Dとを接続するエッジECAに、重み「1」を設定する。なお、センサ10A,10Dの組の共有数は「0」であるため、ノード50Aとノード50Dとは、エッジで接続されない。
 情報処理装置100は、センサ10B,10Cの組の共有数は「4」であるため、ノード50Bとノード50Cとを接続するエッジEBCに、重み「4」を設定する。情報処理装置100は、センサ10B,10Dの組の共有数は「3」であるため、ノード50Bとノード50Dとを接続するエッジEDBに、重み「3」を設定する。
 情報処理装置100は、各エッジEのうち、重みが「3」以上となるエッジを残すことで、センサ連結性グラフ51を生成する。図3に示す例では、情報処理装置100は、ターゲット共有数グラフ50からエッジECAを削除し、エッジEBA、ECB、EDB、ECDを残すことで、センサ連結性グラフ51を生成する。
 図4は、ターゲットの分散をセンサ連結性グラフに反映する処理を説明するための図である。情報処理装置100は、各時点において、2つのセンサの組で観測されるターゲット群の位置の分散σを算出する。情報処理装置100は、「-2logσ」を、各エッジEの重みとし、ターゲットの分散をセンサ連結性グラフに反映する。エッジの重みが小さいほど、2つのセンサの組で観測したターゲット群の位置の空間的な分散が大きいこと(まんべんなく分布していること)を意味する。
 たとえば、図2で説明したように、センサ10Aとセンサ10Bとの組については、時点t=1~13のうち、時点t=3,4,5,6において、ターゲット2を観測している。情報処理装置100は、センサ10A(あるいはセンサ10B)が観測した時点t=3,4,5,6におけるターゲット2の位置の分散σ BAを算出する。たとえば、「-2logσBA」を「-2.7」とすると、情報処理装置100は、エッジEBAに、重み「-2.7」を設定する。
 センサ10Bとセンサ10Cとの組については、時点t=1~13のうち、時点t=6,7,12において、ターゲット2を観測している。情報処理装置100は、センサ10B(あるいはセンサ10C)が観測した、時点t=6,7,12におけるターゲット2の位置の分散σ CBを算出する。たとえば、「-2logσCB」を「-1.2」とすると、情報処理装置100は、エッジECBに、重み「-1.2」を設定する。
 センサ10Bとセンサ10Dとの組については、時点t=1~13のうち、時点t=8,9,12において、ターゲット2を観測している。情報処理装置100は、センサ10B(あるいはセンサ10D)が観測した、時点t=8,9,12におけるターゲット2の位置の分散σ DBを算出する。たとえば、「-2logσDB」を「-3.2」とすると、情報処理装置100は、エッジEDBに、重み「-3.2」を設定する。
 センサ10Cとセンサ10Dとの組については、時点t=1~13のうち、時点t=9,10,11,12において、ターゲット2を観測している。情報処理装置100は、センサ10C(あるいはセンサ10D)が観測した、時点t=9,10,11,12におけるターゲット2の位置の分散σ CDを算出する。たとえば、「-2logσCD」を「-3.4」とすると、情報処理装置100は、エッジECDに、重み「-3.4」を設定する。
 情報処理装置100は、ターゲット2の分散をセンサ連結性グラフ51に反映した結果を基にして、外部パラメータ計算対象となるセンサを選択する順番を特定する処理を実行する。情報処理装置100は、各エッジEの和が最小となるような経路を、最短経路探索により決定する。たとえば、情報処理装置100は、Bellman-Ford法等を用いて、各エッジEの和が最小となるような経路を決定する。
 各エッジEの和が最小となるような経路は、ターゲット群の位置の空間的な分散がなるべく大きくなるような、センサの順番である。図4に示す例では、基準となるノードを、センサ10Aに対応するノード50Aとすると、各エッジEの和が最小となるような経路は、ノード50A、ノード50B、ノード50D、ノード50Cの順となる。すなわち、ターゲット群の位置の空間的な分散がなるべく大きくなるような、センサの順番は、センサ10A、センサ10B、センサ10D、センサ10Cとなる。
 情報処理装置100は、センサ10Aを基準として、センサ10B、センサ10D、センサCの順に選択し、外部パラメータを推定する。ここで、連結する2つのセンサの組の相対的な位置および姿勢を合成して行くことで、基準のセンサと直接連結しないセンサの外部パラメータを計算することが可能である。
 図5は、直接連結しないセンサの外部パラメータの計算を説明するための図である。ノード50A、ノード50B、ノード50D、ノード50Cは、センサ10A、センサ10B、センサ10C、センサ10Dにそれぞれ対応する。図4で説明した、センサ連結性グラフ51は、ノード50Aと、ノード50Cとが直接連結していないが、下記の処理を実行することで、基準となるセンサ10Aと、センサ10Cとの相対的な位置および姿勢を計算することが可能である。
 情報処理装置100は、センサ10Aとセンサ10Bとの組を選択し、センサ10Aの各時点t=1~13の観測結果と、センサ10Bの観測結果とを基にして、センサ10Aに対するセンサ10Bの外部パラメータTBAを算出する。
 情報処理装置100は、センサ10Bとセンサ10Dとの組を選択し、センサ10Bの各時点t=1~13の観測結果と、センサ10Dの観測結果とを基にして、センサ10Bに対するセンサ10Dの外部パラメータTDBを算出する。
 情報処理装置100は、センサ10Dとセンサ10Cとの組を選択し、センサ10Dの各時点t=1~13の観測結果と、センサ10Cの観測結果とを基にして、センサ10Dに対するセンサ10Cの外部パラメータTCDを算出する。
 情報処理装置100は、式(1)を基にして、基準となるセンサ10Aと、センサ10Cとの相対的な位置および姿勢を計算する。たとえば、各Tは、回転行列と、並進ベクトルとを含む行列である。
 TCA=TCDDBBA・・・(1)
 上記のように、本実施例1に係る情報処理装置100は、各時点においてターゲット2を移動させながら、センサ10A~10Dによる観測を実行し、同時点でターゲット2を検出した時点の回数を示す共有数を特定する。情報処理装置100は、共有数をエッジの重みとするターゲット共有数グラフ50を生成し、ターゲット共有数グラフ50から、エッジEの重みが所定の数以上となるエッジを残したセンサ連結性グラフ51を生成する。センサ連結性グラフ51で連結されるノードの組は、同時点で、ターゲット2を観測した回数が所定の数以上となるセンサの組を示すものである。
 また、情報処理装置100は、各時点において、2つのセンサの組で観測されるターゲット群の位置の分散σを算出し、「-2logσ」を、各エッジEの重みとし、ターゲットの分散をセンサ連結性グラフに反映する。係る「-2logσ」を、各エッジEの重みとしたセンサ連結性グラフにおいて、エッジの重みが小さいほど、2つのセンサの組で観測したターゲット群の位置の空間的な分散が大きいことを意味する。情報処理装置100は、各エッジEの和が最小となるような経路を特定し、特定した経路を基にして、外部パラメータを算出する場合に選択するセンサ10の順番を特定する。これによって、センサ10の外部パラメータの計算が安定するように、ターゲット群の位置の空間的な分散がなるべく大きくなるようなセンサの順番を特定することができる。したがって、3つ以上のセンサについて、配置位置関係や画角の関係など、相対位置関係を示す情報を精度よく生成することができる。
 図6は、本実施例1に係る情報処理装置の効果を説明するための図である。図6の上段は、従来技術2を用いた場合のセンサ10の選択の順番を示す。下段は、情報処理装置100が特定した、センサ10の選択の順番を示す。ただし、情報処理装置100は、図27で説明した条件と同様にして、時点t=1~7において、ターゲット2を移動させながら、センサ10によって観測を行い、順番を特定するものとする。センサ10A~10Dの観測結果を、観測結果20A~20Dとする。
 図28で説明したように、従来技術2では、センサ10A,10B,10C,10Dのように、予め定められた順番で、センサ10が選択される。係る順番でセンサ10が選択されると、観測結果20Cにおいて、外部パラメータの推定に利用できるターゲットが減少し、分布に偏りが生じる。外部パラメータの推定に利用できるターゲットが偏って分布すると、外部パラメータの推定精度が低くなる。
 これに対して、情報処理装置100では、センサ連結性グラフを用いることで、センサ10A,10B,10C,10Dの順番で、センサ10が選択される。係る順番でセンサ10が選択されると、観測結果20Dにおいて、時点t=6,7において、ターゲット2を外部パラメータの計算に利用できないものの、時点t=1,2,3,4,5のターゲット2が視野上でまんべんなく分布しており、外部パラメータの推定精度が高くなる。また、後段の観測結果20Cを選択して外部パラメータを推定する場合の推定精度が低下することを抑止することもできる。
 次に、図1に示した情報処理装置100の構成について説明する。図7は、本実施例1に係る情報処理装置の構成を示す機能ブロック図である。図7に示すように、この情報処理装置100は、通信部110、入力部120、表示部130、記憶部140、制御部150を有する。
 通信部110は、図1に示したセンサ10から距離画像のデータを受信する処理部である。通信部110は、受信した距離画像のデータを、制御部150に出力する。通信部110は、通信装置の一例である。
 入力部120は、各種の情報を情報処理装置100に入力する入力装置である。入力部120は、キーボードやマウス、タッチパネル等に対応する。たとえば、ユーザは、各時点において、ターゲット2の設置が完了する度に、入力部120を操作して、ターゲット2の設置が完了した旨の情報を、情報処理装置100に入力する。
 表示部130は、制御部150から出力される情報を表示する表示装置である。たとえば、表示部130は、各種競技の技認定、採点結果等を表示する。表示部130は、液晶ディスプレイ、有機EL(Electro-Luminescence)ディスプレイ、タッチパネル等に対応する。
 記憶部140は、背景画像テーブル141と、検出結果テーブル142と、外部パラメータテーブル143とを有する。記憶部140は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子や、HDD(Hard Disk Drive)などの記憶装置に対応する。
 背景画像テーブル141は、ターゲット2が存在しない状態で、各センサ10A~10Dによってそれぞれ測定された背景画像のデータ(距離画像のデータ)を格納するテーブルである。
 検出結果テーブル142は、センサ10の観測結果に基づき、各時点で検出されたターゲット2の点群および位置を格納するテーブルである。図8は、検出結果テーブルのデータ構造の一例を示す図である。図8に示すように、この検出結果テーブル142は、センサ識別情報と、各時点における、ターゲット2の点群情報を格納する。センサ識別情報は、センサ10を識別する情報である。たとえば、センサ識別情報SE10A,SE10B,SE10C,SE10Dは、センサ10A、センサ10B、センサ10C、センサ10Dにそれぞれ対応する。また、ターゲットの点群情報には、ターゲット2の3次元の点群と、点群に含まれる点の3次元の座標との関係を示すデータである。なお、該当するセンサ識別情報、時点において、ターゲットが検出されていない場合には、「ターゲット無し」が格納される。
 外部パラメータテーブル143は、後述する外部パラメータ生成処理部152によって生成される外部パラメータを格納するテーブルである。図9は、外部パラメータテーブルのデータ構造の一例を示す図である。図9に示すように、この外部パラメータテーブル143は、センサ識別情報と、外部パラメータとを対応付ける。センサ識別情報は、センサ10を識別する情報である。外部パラメータは、基準となるセンサ10との相対的な位置および姿勢を示すデータである。本実施例1では、基準となるセンサをセンサ10Aとする。
 外部パラメータTBAは、センサ10Aを基準とするセンサ10Bの相対的な位置および姿勢を示すデータである。外部パラメータTCAは、センサ10Aを基準とするセンサ10Cの相対的な位置および姿勢を示すデータである。外部パラメータTDAは、センサ10Aを基準とするセンサ10Dの相対的な位置および姿勢を示すデータである。
 制御部150は、取得部151と、外部パラメータ生成処理部152と、統合部153と、フィッティング処理部154と、評価部155とを有する。制御部150は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジック等によって実現される。
 取得部151は、通信部110を介して、センサ10から、距離画像のデータを取得する処理部である。たとえば、取得部151が、距離画像のデータを取得するタイミングは、入力部120を操作するユーザによって指示される。取得部151は、距離画像のデータと、背景画像テーブル141に格納された背景画像のデータとの差分をとり、背景差分画像データを生成する。取得部151は、背景差分画像データを、外部パラメータ生成処理部152に出力する。
 なお、取得部151は、センサ10Aに測定された距離画像のデータと、センサ10Aに対応する背景画像のデータとの差分により、センサ10Aに対応する背景差分データを生成する。取得部151は、センサ10Bに測定された距離画像のデータと、センサ10Bに対応する背景画像のデータとの差分により、センサ10Bに対応する背景差分データを生成する。
 取得部151は、センサ10Cに測定された距離画像のデータと、センサ10Cに対応する背景画像のデータとの差分により、センサ10Cに対応する背景差分データを生成する。取得部151は、センサ10Dに測定された距離画像のデータと、センサ10Dに対応する背景画像のデータとの差分により、センサ10Dに対応する背景差分データを生成する。
 取得部151は、各時点において、センサ10から、距離画像のデータを取得する度に、上記処理を繰り返し実行する。取得部151は、背景差分データを、外部パラメータ生成処理部152に出力する場合、時点tの情報と、該当センサ10のセンサ識別情報を、背景差分データに付与してもよい。
 取得部151は、外部キャリブレーションを実行する場合には、背景差分データを、外部パラメータ生成処理部152に出力する。取得部151は、被写体(図示略)が行う演技を評価する場合には、背景差分データを、統合部153に出力する。取得部151は、外部キャリブレーションを行うタイミング、演技の評価を行うタイミングは、ユーザの操作する入力部120から受け付ける。
 外部パラメータ生成処理部152は、図2~図5で説明した処理を実行することで、外部パラメータを生成する処理部である。外部パラメータ生成処理部152は、生成した外部パラメータを、外部パラメータテーブル143に格納する。
 図10は、外部パラメータ生成処理部の構成を示す機能ブロック図である。図10に示すように、外部パラメータ生成処理部152は、検出部160と、特定部161と、グラフ生成部162と、パラメータ生成部163と、ロバスト推定部164とを有する。
 検出部160は、複数時点においてターゲット2を検出する処理部である。検出部160は、背景差分データに残された各画素(背景部分を除いた画素)をクラスタリングし、各画素を複数のクラスタに分類する。検出部160は、各クラスタのうち、クラスタに属する画素の数が所定数未満(クラスタの面積が閾値未満)のクラスタを、ノイズとして除去する。
 検出部160は、画素の位置および距離値と、点および直交座標系の座標との関係を定義した変換テーブルを保持しているものとする。検出部160は、変換テーブルを基にして、クラスタに含まれる各画素を、3次元点群に変換する。検出部160は、各クラスタの3次元点群について、予め設定しておいたターゲット2の3次元モデル表面にフィッティングさせたときの誤差をそれぞれ評価する。
 検出部160は、フィッティングさせたときの誤差が最も小さいクラスタを、ターゲット2として特定する。検出部160は、ICP(Iterative Closest Point)等に基づいて、フィッティングを実行してもよい。ターゲット2に対応するクラスタの3次元点群は、点群と各点の直交座標系の座標との関係を有し、点群情報に対応する。
 検出部160は、背景差分データに付与されたセンサ識別情報および時点の情報を基にして、上記の点群情報を、検出結果テーブル142に格納する。なお、検出部160は、背景差分データを基にして上記処理を実行し、ターゲット2がセンサ10に観測されなかった場合、ターゲット無しの情報を、検出結果テーブル142に格納する。検出部160は、背景差分データを取得する度に、上記処理を繰り返し実行する。
 特定部161は、2つのセンサ10の組毎に共有数を特定する処理部である。
 たとえば、特定部161は、検出結果テーブル142のデータを取得し、各時点においてセンサ10A~10Dがそれぞれターゲットを検出したか否かを特定する。特定部161は、センサ10A~10Dのうちの2つのセンサ10の組で、複数時点のうち同じ時点においてターゲット2を検出した時点の回数(共有数)を特定する。特定部161が、共有数を特定する具体的な処理は、図2を用いて説明した情報処理装置100の処理に対応する。
 特定部161は、2つのセンサ10の組毎に特定した共有数のデータを、グラフ生成部162に出力する。たとえば、各時点におけるターゲット2の観測結果が、図2で説明したものである場合には、センサ10A,10Bの組の共有数は「4」となる。センサ10A,10Cの組の共有数は「1」となる。センサ10A,10Dの組の共有数は「0」となる。センサ10B,10Cの組の共有数は「4」となる。センサ10B,10Dの組の共有数は「3」となる。センサ10C,10Dの組の共有数は「4」となる。
 グラフ生成部162は、センサ連結性グラフ51を生成する処理部である。
 たとえば、グラフ生成部162は、2つのセンサ10の組毎に特定された共有数のデータを基にして、ターゲット共有数グラフ50を生成する。センサ10A,10Bの組の共有数が「4」、センサ10A,10Cの組の共有数が「1」、センサ10A,10Dの組の共有数が「0」、センサ10B,10Cの組の共有数が「4」、センサ10B,10Dの組の共有数が「3」とする。そうすると、グラフ生成部162が生成するターゲット共有数グラフ50は、図3で説明したものとなる。
 グラフ生成部162は、各エッジEのうち、重みが「3」以上となるエッジを残すことで、センサ連結性グラフ51を生成する。図3に示す例では、グラフ生成部162は、ターゲット共有数グラフ50からエッジECAを削除し、エッジEBA、ECB、EDB、ECDを残すことで、センサ連結性グラフ51を生成する。
 また、グラフ生成部162は、ターゲットの分散をセンサ連結性グラフ51に反映する処理を実行する。図4で説明したように、グラフ生成部162は、各時点において、2つのセンサの組で観測されるターゲット群の位置の分散σを算出する。グラフ生成部162は、「-2logσ」を、各エッジEの重みとし、ターゲットの分散をセンサ連結性グラフに反映する。
 図2で説明したように、センサ10Aとセンサ10Bとの組については、時点t=1~13のうち、時点t=3,4,5,6において、ターゲット2を観測している。グラフ生成部162は、センサ10A(あるいはセンサ10B)が観測した、時点t=3,4,5,6におけるターゲット2の位置の分散σ BAを算出する。たとえば、「-2logσBA」を「-2.7」とすると、グラフ生成部162は、エッジEBAに、重み「-2.7」を設定する。
 グラフ生成部162は、センサ10Aが観測した、時点t=3,4,5,6におけるターゲット2の位置を、検出結果テーブル142から特定する。たとえば、ターゲット2の点群情報に含まれる各点の座標の重心座標を、ターゲット2の位置としてもよい。
 グラフ生成部162は、センサ10Bとセンサ10Cとの組、センサ10Bとセンサ10Dとの組、センサ10Cとセンサ10Dとの組についても同様にして、分散σ CB、分散σ DB、分散σ CDを算出する。グラフ生成部162は、エッジECBに、重み「-1.2」、エッジEDBに、重み「-3.2」、エッジECDに、重み「-3.4」をそれぞれ設定する。グラフ生成部162は、エッジの重みを設定したセンサ連結性グラフ51のデータを、パラメータ生成部163に出力する。
 パラメータ生成部163は、センサ連結性グラフ51を基にして、連結性のある2つのセンサ間で、外部パラメータを生成する。パラメータ生成部163は、外部パラメータを、外部パラメータテーブル143に記憶する。また、パラメータ生成部163は、外部パラメータを、予め設定された外部装置に送信してもよい。パラメータ生成部163は、センサ連結性グラフ51と、生成した外部パラメータを基にして、連結性のない2つのセンサ間の外部パラメータを生成する。以下において、パラメータ生成部163の処理の一例について説明する。
 パラメータ生成部163は、センサ連結性グラフ51について、各エッジEの和が最小になるような経路を、最短経路探索により実行する。たとえば、パラメータ生成部163は、Bellman-Ford法等を用いて、各エッジEの和が最小となるような経路Pを選択する。
 図4で説明したように、基準となるノードを、センサ10Aに対応するノード50Aとすると、各エッジEの和が最小となるような経路Pは、ノード50A、ノード50B、ノード50D、ノード50Cの順となる。
 パラメータ生成部163は、センサ10A,10Bの組、センサ10B,10Dの組、センサ10D,10Cの組を、連結性のある2つのセンサとして特定する。パラメータ生成部163は、センサ10A,10Cの組を、連結性のない2つのセンサとして特定する。
 パラメータ生成部163は、センサ10Aの時点t=3,4,5,6のターゲット2の位置と、センサ10Bの時点t=3,4,5,6のターゲット2の位置との関係から、特異値分解で位置合わせを行い、外部パラメータTBAの初期値を算出する。
 パラメータ生成部163は、センサ10Bの時点t=8,9,12のターゲット2の位置と、センサ10Dの時点t=8,9,12のターゲット2の位置との関係から、特異値分解で位置合わせを行い、外部パラメータTDBの初期値を算出する。
 パラメータ生成部163は、センサ10Dの時点のターゲット2の位置と、センサ10Cの時点のターゲット2の位置との関係から、特異値分解で位置合わせを行い、外部パラメータTCDの初期値を算出する。
 パラメータ生成部163は、バンドル調整や最尤推定を用いて、外部パラメータTBA、TDB、TCDの最適化(ターゲット2形状のフィッティング)を実行し、最終的な外部パラメータTBA、TDB、TCDを算出する。連結性のある2つのセンサ間の、各外部パラメータTBA、TDB、TCDは「第1の相関位置関係を示す情報」に対応する。
 パラメータ生成部163は、式(1)と、外部パラメータTBA、TDB、TCDとを基にして、外部パラメータTCAを算出する。外部パラメータTCAは、連結性のない2つのセンサ間の外部パラメータであり、「第2の相関位置関係を示す情報」に対応する。
 パラメータ生成部163は、センサ10Aを基準とする外部パラメータTBA、TCA、TDAを、外部パラメータテーブル143に格納する。なお、パラメータ生成部163は、センサ10Aを基準とするセンサ10Dの相対的な位置および姿勢を示す外部パラメータTDAを、式(2)により算出する。
 TDA=TDBBA・・・(2)
 ロバスト推定部164は、ターゲット2の誤検出を検出する処理部である。図11~図15は、ロバスト推定部の処理を説明するための図である。ここでは一例として、センサ10Aとセンサ10Bとを基にして説明を行う。図11に示すように、時点t=1~4において、ターゲット2を移動させながら、センサ10A、センサ10Bによって、ターゲット2を観測するものとする。なお、時刻t=2において、ターゲット2に似た特徴を持つ前景物体3が、センサ10Bの観測結果に含まれるものとする。
 センサ10Aおよびセンサ10Bの観測結果は、図12に示すものとなる。観測結果30Aは、センサ10Aの時点t=1~4の観測結果を示す。観測結果30Bは、センサ10Bの時点t=1~4の観測結果を示す。たとえば、観測結果30Bの時点t=2において、ターゲット2の代わりに、誤って、前景物体3をターゲット2として誤検出され、検出結果テーブル142に格納されているものとする。
 図13の説明に移行する。センサ10Aが時点t=1~4に観測したターゲット2の符号を、2A-1、2A-2、2A-3、2A-4とする。センサ10Bが時点t=1,3,4に観測したターゲット2の符号を、2B-1、2B-3、2B-4とする。センサ10Bは、時点t=2で前景物体3を観測する。
 ロバスト推定部164は、同時点で観測したターゲット2(前景物体3)を対応付ける。すなわち、ロバスト推定部164は、ターゲット2A-1と、ターゲット2B-1とを対応付ける。ロバスト推定部164は、ターゲット2A-2と、前景物体3とを対応付ける。ロバスト推定部164は、ターゲット2A-3と、ターゲット2B-3とを対応付ける。ロバスト推定部164は、ターゲット2A-4と、ターゲット2B-4とを対応付ける。
 ロバスト推定部164は、上記の対応関係によって、対応するターゲットのペア間における位置の距離の総和が最小となるような外部パラメータTBAを算出する。たとえば、ロバスト推定部164は、初期値の推定を行った後に、バンドル推定や最尤推定を用いて、センサ10Aとセンサ10Bとの間の外部パラメータTBAの最適化を行い、最終的な外部パラメータTBAを算出する。
 ロバスト推定部164は、外部パラメータTBAを用いて、観測結果30Bの各ターゲット2の位置を、センサ10Aを基準とする位置に補正すると、図14に示すものとなる。誤対応(ターゲット2A-2と、前景物体3)の影響により、対応付けられたターゲット2A-1,2B-1の組の位置、ターゲット2A-3,2B-3の組の位置、ターゲット2A-4,2B-4の組の位置が一致しない。
 ロバスト推定部164は、対応付けた各ターゲットの距離の平均が閾値以上である場合に、ノイズ(前景物体3)が観測されていると判定し、次の処理を実行する。ロバスト推定部164は、各時点において対応付けられた各ターゲットの組のうち、いずれかの組を除外して、外部パラメータTBAの算出を行う。
 たとえば、ロバスト推定部164は、時刻t=1のターゲット2A-1と、ターゲット2B-1との組を除外して、外部パラメータTBA1を生成する。ロバスト推定部164は、時刻t=2のターゲット2A-2と、前景物体3との組を除外して、外部パラメータTBA2を生成する。ロバスト推定部164は、時刻t=3のターゲット2A-3と、2B-3との組を除外して、外部パラメータTBA3を生成する。ロバスト推定部164は、時刻t=4のターゲット2A-4と、ターゲット2B-4との組を除外して、外部パラメータTBA4を生成する。
 ロバスト推定部164は、外部パラメータTBA1を用いて、観測結果30Bの各ターゲット2(ターゲット2A-1、2B-1の組を除く)の位置を、センサ10Aを基準とする位置に補正し、対応付けられた各ターゲットの距離の平均(第1平均値)を算出する。
 ロバスト推定部164は、外部パラメータTBA2を用いて、観測結果30Bの各ターゲット2(ターゲット2A-2、前景物体3の組を除く)の位置を、センサ10Aを基準とする位置に補正し、対応付けられた各ターゲットの距離の平均(第2平均値)を算出する。たとえば、外部パラメータTBA2を用いて、各ターゲット2(ターゲット2A-2、前景物体3の組を除く)の位置を、センサ10Aを基準とする位置に補正した結果は、図15に示すものとなる。誤対応(ターゲット2A-2と、前景物体3)の影響がなくなり、対応付けられたターゲット2A-1,2B-1の組の位置、ターゲット2A-3,2B-3の組の位置、ターゲット2A-4,2B-4の組の位置が一致する(第2平均値が小さくなる)。
 外部パラメータTBA3を用いて、観測結果30Bの各ターゲット2(ターゲット2A-3、2B-3の組を除く)の位置を、センサ10Aを基準とする位置に補正し、対応付けられた各ターゲットの距離の平均(第3平均値)を算出する。
 外部パラメータTBA4を用いて、観測結果30Bの各ターゲット2(ターゲット2A-4、2B-4の組を除く)の位置を、センサ10Aを基準とする位置に補正し、対応付けられた各ターゲットの距離の平均(第4平均値)を算出する。
 ロバスト推定部165は、第1平均値、第2平均値、第3平均値、第4平均値を比較し、他の平均値と比較して、十分小さい平均値が存在するか否かを判定する。たとえば、第2平均値が、第1,3,4平均値と比較して、十分小さい場合には、ターゲット2A-2と、前景物体3を、ターゲット2から除外する。すなわち、時点t=2に観測されたターゲット2の情報を、検出結果テーブル142から削除する。たとえば、ロバスト推定部165は、第2平均値が、第1,3,4平均値より大きく、かつ、差分が閾値以上である場合に、十分小さいと判定する。
 たとえば、ロバスト推定部165は、検出部160によって、検出結果テーブル142が生成された後、特定部161、グラフ生成部162、パラメータ生成部163による処理が開始される前に、上記処理を実行する。これによって、ターゲット以外を誤検出したノイズ(前景物体3)を除去することが可能になる。
 図7の説明に戻る。統合部153、フィッティング処理部154、評価部155は、外部パラメータ生成処理部152によって、外部キャリブレーションが終了し、被写体が演技を開始した場合に処理を実行する。
 統合部153は、取得部151から、各センサ10A~10Dの背景差分データを取得する。統合部153は、変換テーブルを用いて、背景差分データに含まれる各画素と距離値との関係を、点群と各点の直交座標系の座標との関係に変換する。変換した背景差分データを「3次元点群データ」と表記する。変換テーブルは、画素の位置および距離値と、点および直交座標系の座標との関係を定義したテーブルである。
 統合部153は、センサ10Aを基準のセンサ10とし、センサ10B~10Dの3次元点群データを、センサ10Aの位置および姿勢に合わせる。たとえば、統合部153は、外部パラメータTBAを用いて、センサ10Bの3次元点群データを、センサ10Aの位置および姿勢に合わせる。統合部153は、外部パラメータTCAを用いて、センサ10Cの3次元点群データを、センサ10Aの位置および姿勢に合わせる。統合部153は、外部パラメータTDAを用いて、センサ10Dの3次元点群データを、センサ10Aの位置および姿勢に合わせる。統合部153は、各外部パラメータを、外部パラメータテーブル143から取得する。
 統合部153は、センサ10Aの3次元点群データと、センサ10Aの位置および姿勢に合わせたセンサ10B~10Dの3次元点群データとを統合して、一つの3次元点群データを生成する。統合部153は、生成した3次元点群データを、フィッティング処理部154に出力する。
 統合部153は、取得部151から、センサ10A~10Dの背景差分データを取得する度に、上記処理を繰り返し実行する。
 フィッティング処理部154は、3次元点群データに対して、被写体の3次元モデルデータを当てはめるフィッティングを実行する処理部である。フィッティング処理部154は、フィッティング結果を基にして、被写体の骨格モデルデータを特定する。骨格モデルデータには、各関節の位置情報が含まれる。フィッティング処理部は、骨格モデルデータを、評価部155に出力する。フィッティング処理部は、統合部153から、3次元点群データを取得する度に、上記処理を繰り返し実行する。
 評価部155は、時系列に骨格モデルデータを取得し、骨格モデルデータの各関節座標の遷移を基にして、被写体の演技を評価する処理部である。たとえば、評価部155は、各関節座標の遷移と、技の種別、技の成立不成立を定義したテーブル(図示略)を用いて、被写体の演技を評価し、評価結果を表示部130に出力して表示させる。
 なお、評価部155が実行する技の評価は、各種の採点競技に適用可能である。採点競技には、体操演技の他に、トランポリン、水泳の飛び込み、フィギュアスケート、空手の型、社交ダンス、スノーボード、スケートボード、スキーエアリアル、サーフィンを含む。また、クラシックバレエ、スキージャンプ、モーグルのエアー、ターン、野球、バスケットボールのフォームチェック等にも適用してもよい。また、剣道、柔道、レスリング、相撲などの競技にも適用してもよい。更に、ウェイトリフティングのバーベルが上がったか否かの評価にも用いることができる。
 次に、本実施例1に係る情報処理装置100が、外部キャリブレーションを実行する処理手順の一例について説明する。図16は、本実施例1に係る情報処理装置の処理手順を示すフローチャートである。図16に示すように、情報処理装置100の取得部151は、センサ10から距離画像のデータを取得する(ステップS10)。取得部151は、距離画像のデータと、背景画像データとの差分をとり、背景差分データを生成する(ステップS11)。
 情報処理装置100の検出部160は、背景差分データからターゲットを検出し、ターゲットの点群情報を、検出結果テーブル142に登録する(ステップS12)。情報処理装置100は、ターゲットの検出を終了しない場合には(ステップS13,No)、再度、ステップS10に移行する。一方、情報処理装置100は、ターゲットの検出を終了する場合には(ステップS13,Yes)、ステップS14に移行する。
 情報処理装置100の外部パラメータ生成処理部152(特定部161およびグラフ生成部162)は、センサ連結性グラフ生成処理を実行する(ステップS14)。情報処理装置100のパラメータ生成部163は、基準センサirefと、その他のセンサitarの組(iref,itar)について、センサ連結性グラフ31上で、Bellman-Ford法を適用することで、最短経路を検索する(ステップS15)。たとえば、基準センサirefは、センサ10Aに対応する。その他のセンサitarは、センサ10B,10C,10Dに対応する。
 パラメータ生成部163は、最短経路の検索結果を基にして、センサ群の経路Pを選択する(ステップS16)。パラメータ生成部163は、経路Pの順番に基づき、特異値分解を用いて、センサitarの外部パラメータの初期値を算出する(ステップS17)。
 パラメータ生成部163は、バンドル調整および最尤推定により、センサitarの外部パラメータを最適化する(ステップS18)。パラメータ生成部163は、外部パラメータを、外部パラメータテーブル143に格納する(ステップS19)。ステップS19の処理は、外部パラメータを外部装置へ送信する処理にも対応する。
 次に、図16のステップS14に示したセンサ連結性グラフ生成処理の処理手順の一例について説明する。図17は、センサ連結性グラフ生成処理の処理手順を示すフローチャートである。図17に示すように、情報処理装置100の特定部161は、全てのセンサの組(i,j)について、共有観測するターゲットの共有数Ni,jを集計する(ステップS101)。
 情報処理装置100のグラフ生成部162は、共有数Ni,jをエッジ重み、センサ10をノードとするターゲット共有数グラフ50を生成する(ステップS102)。グラフ生成部162は、ターゲット共有数グラフのエッジのうち、共有数Ni,j≧3であるようなエッジを残したセンサ連結性グラフを生成する(ステップS103)。
 グラフ生成部162は、センサ連結性グラフの各エッジについて、-2logσをエッジ重みとするようなセンサ連結性グラフを生成する(ステップS104)。
 次に、本実施例1に係る情報処理装置100の効果について説明する。情報処理装置100は、各時点においてターゲット2を移動させながら、センサ10A~10Dによる観測を実行し、同時点でターゲット2を検出した時点の回数を示す共有数を特定する。情報処理装置100は、共有数をエッジの重みとするターゲット共有数グラフ50を生成し、ターゲット共有数グラフ50から、エッジEの重みが所定の数以上となるエッジを残したセンサ連結性グラフ51を生成する。これによって、同時点で、ターゲット2を観測した回数が所定の数以上となるセンサの組を特定することができる。
 情報処理装置100は、各時点において、2つのセンサの組で観測されるターゲット群の位置の分散σを算出し、「-2logσ」を、各エッジEの重みとし、ターゲットの分散をセンサ連結性グラフ51に反映する。係る「-2logσ」を、各エッジEの重みとしたセンサ連結性グラフにおいて、エッジの重みが小さいほど、2つのセンサの組で観測したターゲット群の位置の空間的な分散が大きいことを意味する。情報処理装置100は、各エッジEの和が最小となるような経路を特定し、特定した経路を基にして、外部パラメータを算出する場合に選択するセンサ10の順番を特定する。これによって、センサ10の外部パラメータの計算が安定するように、ターゲット群の位置の空間的な分散がなるべく大きくなるようなセンサの順番を特定することができる。したがって、情報処理装置100によれば、3つ以上のセンサについて、配置位置関係や画角の関係など、相対位置関係を示す情報を精度よく生成することができる。
 ところで、本実施例1に係る情報処理装置100は、ターゲットとして、円筒状のターゲット2を用いて、外部キャリブレーションを実行し、外部パラメータを生成したが、これに限定されるものではない。たとえば、情報処理装置100は、球体マーカを、ターゲットとして用いてもよい。
 図18~図20は、球体マーカを用いた外部キャリブレーションの一例を示す図である。図18に示すように、ユーザ(図示略)は、各時点において、球体マーカ60を移動させながら、センサ10A~10Dによって、球体マーカ60を観測する。球体マーカ60は、ユーザ(図示略)によって移動される。
 センサ10Aによって、各時点の観測結果61Aが観測される。センサ10Bによって、各時点の観測結果61Bが観測される。センサ10Cによって、各時点の観測結果61Cが観測される。センサ10Dによって、各時点の観測結果61Dが観測される。
 図19の説明に移行する。ここでは、観測結果に含まれる距離画像のデータを用いて説明する。情報処理装置100は、距離画像のデータ62と、背景画像データとの差分を取ることで、背景差分データ63を生成する。情報処理装置100は、背景差分データ63からノイズを除去することで、背景差分データ64を生成する。情報処理装置100は、背景差分データ64から、球体マーカ64aを検出する。たとえば、情報処理装置100は、球体マーカ64aをフィッティングすることで、計測ノイズに対してロバストに球体マーカ64aを検出することが可能となる。
 図20の説明に移行する。情報処理装置100は、各時点t=1~4において、上記処理を繰り返し実行することで、各センサ10が観測した、各時点t=1~4の球体マーカ60をそれぞれ特定する。たとえば、センサ10Aは、各時点t=1~4において、球体マーカ60を観測する。センサ10Bは、各時点t=1~4において、球体マーカ60を観測する。センサ10Cは、各時点t=1~4において、球体マーカ60を観測する。センサ10Dは、各時点t=1~3において、球体マーカ60を観測し、時刻t=4において、ノイズ65を誤検出する。
 ここで、時刻t=4において、ノイズ65は、ロバスト推定部164により、除去され、センサ10Dにより、時刻t=4において、球体マーカ60が検出されるものとする。情報処理装置100は、球体マーカ60の共有数、球体マーカ60の分散を基にして、センサ連結性グラフを生成し、外部パラメータを生成する。
 上記のように、情報処理装置100は、ターゲット2の代わりに、球体マーカ60を用いても、配置位置関係や画角の関係など、相対位置関係を示す情報(外部パラメータ)を精度よく生成することができる。
 次に、本実施例2に係る情報処理システムについて説明する。本実施例2に係る情報処理システムでは、ターゲットを所定の位置に配置して計測することで、外部パラメータの生成に加えて、センサ以外の物体の位置と姿勢を計算することができる。本実施例2では一例として、センサ以外の物体として、体操器具を用いて説明を行うが、これに限定されるものではない。
 図21は、ターゲットの配置位置を説明するための図である。図21に示すように、体操器具70が配置される。また、センサ10A~10Dは、体操器具70の周囲に配置される。センサ10A~10Dは、情報処理装置200にそれぞれ接続される。
 図21において、ターゲットPnは、時点t=nにおいて、配置されたターゲットを意味する。ターゲットP1は、体操器具70の中央の真上に配置される。ターゲットP2は、体操器具70のy軸上であって、体操器具70の上面の高さHで配置される。ターゲットP3~Pnは、床面71からの高さが同一となるマット72上において、P2よりも高い位置に配置される。床面71から、ターゲットP3~Pnまでの高さはそれぞれ同一である。ターゲットP3~Pnは、3以上であることを条件とする。
 情報処理装置200は、実施例1の情報処理装置100と同様にして、外部キャリブレーションを実行した後に、外部キャリブレーション実行時に観測したターゲットP1~Pnの位置を用いて、体操器具70の座標系のXa軸、Ya軸、Za軸と、原点Oaを算出する。
 情報処理装置200は、ターゲットP3~Pnに対して平面をフィッティングし、平面の法線をZa軸として特定する。
 情報処理装置200は、式(3)及び式(4)を基にして、Xa軸を算出する。式(3)に含まれるP1、P2は、ターゲットP1,P2の位置を示す。
 v=(P2-P1)/|P2-P1|・・・(3)
 Xa=(v/|v|)×Za・・・(4)
 情報処理装置200は、式(5)を基にして、Ya軸を算出する。
 Ya=Za×Xa・・・(5)
 情報処理装置200は、式(6)を基にして、原点Oaを算出する。式(6)に含まれるHは、体操器具70の上面の高さに対応する。式(6)に含まれるdot(v,Za)は、vと、Zaとの内積を計算する関数である。
 Oa=P1-(H-dot(v,Za))Za・・・(6)
 基準となるセンサをセンサ10Aとし、Xa軸、Ya軸、Za軸、原点Oaを、センサ10Aを基準とする座標に変換する座標変換パラメータTaAを算出する。座標変換パラメータTaAは、回転成分Rと、並進成分tとを含む。回転成分Rは、式(7)により定義される。並進成分tは、式(8)により定義される。たとえば、センサ10Aの観測結果から得られる3次元座標に、座標変換パラメータTaAを乗算することで、センサ10A基準の座標系を、体操器具70の座標系に変換することができる。
Figure JPOXMLDOC01-appb-M000001
 t=R×Oa・・・(8)
 上記のように、本実施例2に係る情報処理装置200は、ターゲットPnを所定の位置に配置して計測することで、外部パラメータの生成に加えて、センサ以外の体操器具70の座標系のXa、Ya、Zaと、原点Oaを算出することができる。たとえば、被写体の3次元モデルを生成し、アニメーション表示する場合に、体操器具70の座標系によって、3次元モデルをアニメーション表示することができる。
 次に、本実施例2に係る情報処理装置200の構成の一例について説明する。図22は、本実施例2に係る情報処理装置の構成を示す機能ブロック図である。図22に示すように、この情報処理装置200は、通信部210、入力部220、表示部230、記憶部240、制御部250を有する。
 通信部210は、図21に示したセンサ10から距離画像のデータを受信する処理部である。通信部210は、受信した距離画像のデータを、制御部250に出力する。通信部210は、通信装置の一例である。
 入力部220は、各種の情報を情報処理装置200に入力する入力装置である。入力部220は、キーボードやマウス、タッチパネル等に対応する。たとえば、ユーザは、各時点において、ターゲットPnの設置が完了する度に、入力部220を操作して、ターゲットPnの設置が完了した旨の情報を、情報処理装置100に入力する。
 表示部230は、制御部250から出力される情報を表示する表示装置である。たとえば、表示部230は、各種競技の技認定、採点結果等を表示する。表示部230は、液晶ディスプレイ、有機EL(Electro-Luminescence)ディスプレイ、タッチパネル等に対応する。
 記憶部240は、背景画像テーブル241と、検出結果テーブル242と、外部パラメータテーブル243と、座標変換パラメータデータ244とを有する。記憶部240は、RAM、フラッシュメモリなどの半導体メモリ素子や、HDDなどの記憶装置に対応する。
 背景画像テーブル241は、ターゲットPnが存在しない状態で、各センサ10A~10Dによってそれぞれ測定された背景画像のデータ(距離画像のデータ)を格納するテーブルである。
 検出結果テーブル242は、センサ10の観測結果に基づき、各時点で検出されたターゲットPnの点群および位置を格納するテーブルである。検出結果テーブル242のデータ構造は、図8で説明した検出結果テーブル142のデータ構造に対応する。ただし、ターゲットは、ターゲット2の代わりに、ターゲットPnとなる。
 外部パラメータテーブル243は、後述する外部パラメータ生成処理部252によって生成される外部パラメータを格納するテーブルである。外部パラメータテーブル243のデータ構造は、図9で説明した外部パラメータテーブル143に対応する。
 座標変換パラメータデータ244は、座標変換パラメータTaAのデータを有する。座標変換パラメータTaAは、Xa軸、Ya軸、Za軸、原点Oaを、センサ10Aを基準とする座標に変換するパラメータである。
 制御部250は、取得部251と、外部パラメータ生成処理部252と、算出部253と、統合部254と、フィッティング処理部255と、評価部256とを有する。制御部250は、CPUやMPU、ASICやFPGAなどのハードワイヤードロジック等によって実現される。
 取得部251は、通信部210を介して、センサ10から、距離画像のデータを取得する処理部である。たとえば、取得部251が、距離画像のデータを取得するタイミングは、入力部220を操作するユーザによって指示される。取得部251は、距離画像のデータと、背景画像テーブル241に格納された背景画像のデータとの差分をとり、背景差分画像データを生成する。取得部251は、背景差分画像データを、外部パラメータ生成処理部252に出力する。取得部251に関するその他の説明は、実施例1で説明した取得部151に関する説明と同様である。
 外部パラメータ生成処理部252は、検出結果テーブル242に格納されたデータを基にして、外部パラメータを生成する処理部である。外部パラメータ生成処理部252は、生成した外部パラメータを、外部パラメータテーブル243に格納する。外部パラメータ生成処理部252に関する説明は、実施例1で説明した外部パラメータ生成処理部252に関する説明と同様である。
 算出部253は、体操器具70の座標系の座標系のXa軸、Ya軸、Za軸と、原点Oaを算出する処理部である。たとえば、算出部253は、センサ10Aを基準のセンサ10とし、センサ10B~10Dが観測したターゲットP1~Pnの3次元点群データを、センサ10Aの位置および姿勢に合わせる。センサ10B~10Dが観測したターゲットP1~Pnの3次元点群データは、検出結果テーブル242に格納されている。
 たとえば、算出部253は、外部パラメータTBAを用いて、センサ10Bが観測した3次元点群データを、センサ10Aの位置および姿勢に合わせる。算出部253は、外部パラメータTCAを用いて、センサ10Cが観測した3次元点群データを、センサ10Aの位置および姿勢に合わせる。算出部253は、外部パラメータTDAを用いて、センサ10Dが観測した3次元点群データを、センサ10Aの位置および姿勢に合わせる。算出部253は、各外部パラメータを、外部パラメータテーブル243から取得する。
 算出部253は、センサ10B~10Dが観測したターゲットP1~Pnの3次元点群データを、センサ10Aの位置および姿勢に合わせた後、センサ10A~10Dが観測したターゲットP1~Pnの3次元点群データを統合する。算出部253は、係る処理を実行することで、図21に示した各時点t=1~nのターゲットP1~Pnの位置および形状を特定する。たとえば、算出部253は、ターゲットP1~Pnの重心位置を、ターゲットP1~Pnの位置とする。
 算出部253は、ターゲットP3~Pnに対して平面をフィッティングし、平面の法線をZa軸として特定する。算出部253は、式(3)及び式(4)を基にして、Xa軸を算出する。算出部253は、式(5)を基にして、Ya軸を算出する。算出部253は、式(6)を基にして、原点Oaを算出する。算出部253は、式(7)、式(8)を基にして、Xa軸、Ya軸、Za軸、原点Oaを、センサ10Aを基準とする座標に変換する座標変換パラメータTaAを算出する。算出部253は、座標変換パラメータTaAを、記憶部240に格納する。
 続いて、統合部254、フィッティング処理部255、評価部256の説明に移行する。統合部254、フィッティング処理部255、評価部256は、外部パラメータ生成処理部252によって、外部キャリブレーションが終了し、被写体が演技を開始した場合に処理を実行する。
 統合部254は、センサ10Aの3次元点群データと、センサ10Aの位置および姿勢に合わせたセンサ10B~10Dの3次元点群データとを統合して、一つの3次元点群データを生成する処理部である。統合部254に関する説明は、実施例1で説明した統合部153に関する説明と同様である。
 なお、統合部254は、評価部256から、体操器具70の座標系に変換する旨の指示を受け付けた場合、統合した3次元点群データの座標に、座標変換パラメータTaAを乗算する。これにより、センサ10Aを基準とする座標系の3次元点群データを、体操器具70の座標系の3次元点群データに変換することができる。
 フィッティング処理部255は、3次元点群データに対して、被写体の3次元モデルデータを当てはめるフィッティングを実行する処理部である。フィッティング処理部255は、フィッティング結果を基にして、被写体の骨格モデルデータを特定する。骨格モデルデータには、各関節の位置情報が含まれる。フィッティング処理部は、骨格モデルデータを、評価部256に出力する。フィッティング処理部255は、統合部254から、3次元点群データを取得する度に、上記処理を繰り返し実行する。
 評価部256は、時系列に骨格モデルデータを取得し、骨格モデルデータの各関節座標の遷移を基にして、被写体の演技を評価する処理部である。たとえば、評価部256は、各関節座標の遷移と、技の種別、技の成立不成立を定義したテーブル(図示略)を用いて、被写体の演技を評価し、評価結果を表示部230に出力して表示させる。
 また、評価部256は、時系列の骨格モデルデータを用いて、被写体の3次元モデルを生成し、アニメーション表示する場合に、体操器具70の座標系によって、3次元モデルをアニメーション表示してもよい。また、評価部256は、体操器具70の座標系に変換する旨の指示を、統合部254に出力し、被写体の座標を、体操器具70の座標系に変換して表示させてもよい。
 次に、本実施例2に係る情報処理装置200の処理手順の一例について説明する。図23は、本実施例2に係る情報処理装置の処理手順を示すフローチャートである。図23に示すように、情報処理装置200の取得部251は、センサ10から距離画像のデータを取得する(ステップS201)。取得部251は、距離画像のデータと、背景画像データとの差分をとり、背景差分データを生成する(ステップS202)。
 情報処理装置200の外部パラメータ生成処理部252は、背景差分データからターゲットを検出し、ターゲットの点群情報を、検出結果テーブル242に登録する(ステップS203)。情報処理装置200は、ターゲットの検出を終了しない場合には(ステップS204,No)、再度、ステップS201に移行する。一方、情報処理装置200は、ターゲットの検出を終了する場合には(ステップS204,Yes)、ステップS205に移行する。
 情報処理装置200の外部パラメータ生成処理部252は、センサ連結性グラフ生成処理を実行する(ステップS205)。ステップS205のセンサ連結性グラフ生成処理は、実施例1の図17で説明したセンサ連結性グラフ生成処理の処理手順に対応する。
 情報処理装置200の外部パラメータ生成処理部252は、基準センサirefと、その他のセンサitarの組(iref,itar)について、センサ連結性グラフ31上で、Bellman-Ford法を適用することで、最短経路を検索する(ステップS206)。たとえば、基準センサirefは、センサ10Aに対応する。その他のセンサitarは、センサ10B,10C,10Dに対応する。
 外部パラメータ生成処理部252は、最短経路の検索結果を基にして、センサ群の経路Pを選択する(ステップS207)。外部パラメータ生成処理部252は、経路Pの順番に基づき、特異値分解を用いて、センサitarの外部パラメータの初期値を算出する(ステップS208)。
 外部パラメータ生成処理部252は、バンドル調整および最尤推定により、センサitarの外部パラメータを最適化する(ステップS209)。外部パラメータ生成処理部252は、外部パラメータを、外部パラメータテーブル243に格納する(ステップS210)。
 情報処理装置200の算出部253は、体操器具70のXa軸、Ya軸、Za軸を算出する(ステップS211)。算出部253は、体操器具70の原点Oaを算出する(ステップS212)。算出部253は、座標変換パラメータTaAを算出する(ステップS213)。算出部253は、座標変換パラメータTaAを座標変換パラメータデータ244に格納する(ステップS214)。
 次に、本実施例2に係る情報処理装置200の効果について説明する。情報処理装置200は、外部キャリブレーションを実行した後に、外部キャリブレーション実行時に観測したターゲットP1~Pnの位置を用いて、体操器具70の座標系のXa軸、Ya軸、Za軸と、原点Oaを算出することができる。たとえば、座標変換パラメータTaAを用いることで、被写体の3次元モデルを生成し、アニメーション表示する場合に、体操器具70の座標系によって、3次元モデルをアニメーション表示することができる。
 次に、上記実施例に示した情報処理装置100(200)と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。図24は、情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
 図24に示すように、コンピュータ300は、各種演算処理を実行するCPU301と、ユーザからのデータの入力を受け付ける入力装置302と、ディスプレイ303とを有する。また、コンピュータ300は、センサ10から距離画像のデータを受信する通信装置304と、各種の装置と接続するインタフェース装置305とを有する。コンピュータ300は、各種情報を一時記憶するRAM306と、ハードディスク装置307とを有する。そして、各装置301~307は、バス308に接続される。
 ハードディスク装置307は、取得プログラム307a、外部パラメータ生成処理プログラム307b、算出プログラム307c、統合プログラム307d、フィッティング処理プログラム307e、評価プログラム307fを有する。CPU201は、取得プログラム307a、外部パラメータ生成処理プログラム307b、算出プログラム307c、統合プログラム307d、フィッティング処理プログラム307e、評価プログラム307fを読み出してRAM306に展開する。
 取得プログラム307aは、取得プロセス306aとして機能する。外部パラメータ生成処理プログラム307bは、外部パラメータ生成処理プロセス306bとして機能する。算出プログラム307cは、算出プロセス306cとして機能する。統合プログラム307dは、統合プロセス306dとして機能する。フィッティング処理プログラム307eは、フィッティング処理プロセス306eとして機能する。評価プログラム307fは、評価プロセス306fとして機能する。
 取得プロセス206aの処理は、取得部151,251の処理に対応する。外部パラメータ生成処理プロセス306bの処理は、外部パラメータ生成処理部152,252の処理に対応する。算出プロセス306cの処理は、算出部253の処理に対応する。統合プロセス306dの処理は、統合部153,254の処理に対応する。フィッティング処理プロセス306eの処理は、フィッティング処理部154,255の処理に対応する。評価プロセス306fの処理は、評価部155,256の処理に対応する。
 なお、各プログラム307a~307fについては、必ずしも最初からハードディスク装置307に記憶させておかなくてもよい。例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ300が各プログラム307a~307fを読み出して実行するようにしてもよい。
 10A,10B,10C,10D センサ
 100  情報処理装置
 110  通信部
 120  入力部
 130  表示部
 140,240  記憶部
 141,241  背景画像テーブル
 142,242  検出結果テーブル
 143,243  外部パラメータテーブル
 150,250  制御部
 151,251  取得部
 152,252  外部パラメータ生成処理部
 153,254  統合部
 154,255  フィッティング処理部
 155,256  評価部
 160  検出部
 161  特定部
 162  グラフ生成部
 163  パラメータ生成部
 164  ロバスト推定部
 244  座標変換パラメータデータ
 253  算出部

Claims (12)

  1.  3つ以上のセンサによる、複数時点でのターゲットの検出結果を取得し、
     各時点において3つ以上のセンサそれぞれが前記ターゲットを検出したか否かを基にして、3つ以上のセンサのうちの2つのセンサの組それぞれで、複数時点のうち同じ時点において前記ターゲットを検出した時点の回数を特定し、
     前記センサの組それぞれについて特定した回数と、複数時点におけるターゲットの配置位置の分散とを基にして、センサ間の相対位置関係の推定精度に関する連結性を示す情報を生成し、
     前記連結性を示す情報を基にして、連結性のある2つのセンサ間で、第1の相対位置関係を示す情報を生成し、
     連結性を示す情報と、前記第1の相対位置関係を示す情報とを基にして、連結性のない2つのセンサ間の第2の相対位置関係を示す情報を生成し、
     前記第1の相対位置関係を示す情報および前記第2の相対位置関係を示す情報を、前記3つ以上のセンサ間の位置関係を示す情報として出力する
     処理をコンピュータが実行することを特徴とする生成方法。
  2.  前記ターゲットの形状は球体であり、前記検出結果に含まれる球体をターゲットとして検出する処理を更に実行することを特徴とする請求項1に記載の生成方法。
  3.  前記2つのセンサの組それぞれで、複数時点のうち同じ時点において検出したターゲットをそれぞれ対応付けた複数のターゲットの組を設定し、複数のターゲットの組から一部のターゲットの組を選択し、選択した一部のターゲットの組において、各ターゲットの位置の距離が最小となるセンサの位置および姿勢を算出する処理を、選択するターゲットの組を変更しながら繰り返し実行し、各ターゲットの位置の距離の最小値を基にして、複数時点での検出された各ターゲットのうち、いずれかのターゲットを除外する処理を更に実行することを特徴とする請求項1に記載の生成方法。
  4.  前記ターゲットは、複数時点において、前記3つ以上のセンサ以外の物体を基準とした所定の位置に配置され、前記3つ以上のセンサのうちいずれかのセンサによって複数時点で検出されたターゲットの位置を基にして、前記物体を基準とする座標系の原点座標を算出する処理を更に実行することを特徴とする請求項1、2または3に記載の生成方法。
  5.  3つ以上のセンサによる、複数時点でのターゲットの検出結果を取得し、
     各時点において3つ以上のセンサそれぞれが前記ターゲットを検出したか否かを基にして、3つ以上のセンサのうちの2つのセンサの組それぞれで、複数時点のうち同じ時点において前記ターゲットを検出した時点の回数を特定し、
     前記センサの組それぞれについて特定した回数と、複数時点におけるターゲットの配置位置の分散とを基にして、センサ間の相対位置関係の推定精度に関する連結性を示す情報を生成し、
     前記連結性を示す情報を基にして、連結性のある2つのセンサ間で、第1の相対位置関係を示す情報を生成し、
     連結性を示す情報と、前記第1の相対位置関係を示す情報とを基にして、連結性のない2つのセンサ間の第2の相対位置関係を示す情報を生成し、
     前記第1の相対位置関係を示す情報および前記第2の相対位置関係を示す情報を、前記3つ以上のセンサ間の位置関係を示す情報として出力する
     処理をコンピュータに実行させることを特徴とする生成プログラム。
  6.  前記ターゲットの形状は球体であり、前記検出結果に含まれる球体をターゲットとして検出する処理を更に実行することを特徴とする請求項5に記載の生成プログラム。
  7.  前記2つのセンサの組それぞれで、複数時点のうち同じ時点において検出したターゲットをそれぞれ対応付けた複数のターゲットの組を設定し、複数のターゲットの組から一部のターゲットの組を選択し、選択した一部のターゲットの組において、各ターゲットの位置の距離が最小となるセンサの位置および姿勢を算出する処理を、選択するターゲットの組を変更しながら繰り返し実行し、各ターゲットの位置の距離の最小値を基にして、複数時点での検出された各ターゲットのうち、いずれかのターゲットを除外する処理を更に実行することを特徴とする請求項5に記載の生成プログラム。
  8.  前記ターゲットは、複数時点において、前記3つ以上のセンサ以外の物体を基準とした所定の位置に配置され、前記3つ以上のセンサのうちいずれかのセンサによって複数時点で検出されたターゲットの位置を基にして、前記物体を基準とする座標系の原点座標を算出する処理を更に実行することを特徴とする請求項5、6または7に記載の生成プログラム。
  9.  3つ以上のセンサによる、複数時点でのターゲットの検出結果を取得し、各時点において3つ以上のセンサそれぞれが前記ターゲットを検出したか否かを基にして、3つ以上のセンサのうちの2つのセンサの組それぞれで、複数時点のうち同じ時点において前記ターゲットを検出した時点の回数を特定する特定部と、
     前記センサの組それぞれについて特定した回数と、複数時点におけるターゲットの配置位置の分散とを基にして、センサ間の相対位置関係の推定精度に関する連結性を示す情報を生成するグラフ生成部と、
     前記連結性を示す情報を基にして、連結性のある2つのセンサ間で、第1の相対位置関係を示す情報を生成し、連結性を示す情報と、前記第1の相対位置関係を示す情報とを基にして、連結性のない2つのセンサ間の第2の相対位置関係を示す情報を生成し、前記第1の相対位置関係を示す情報および前記第2の相対位置関係を示す情報を、前記3つ以上のセンサ間の位置関係を示す情報として出力するパラメータ生成部と
     を有することを特徴とする情報処理装置。
  10.  前記ターゲットの形状は球体であり、前記検出結果に含まれる球体をターゲットとして検出する検出部を更に有することを特徴とする請求項9に記載の情報処理装置。
  11.  前記2つのセンサの組それぞれで、複数時点のうち同じ時点において検出したターゲットをそれぞれ対応付けた複数のターゲットの組を設定し、複数のターゲットの組から一部のターゲットの組を選択し、選択した一部のターゲットの組において、各ターゲットの位置の距離が最小となるセンサの位置および姿勢を算出する処理を、選択するターゲットの組を変更しながら繰り返し実行し、各ターゲットの位置の距離の最小値を基にして、複数時点での検出された各ターゲットのうち、いずれかのターゲットを除外するロバスト推定部を更に有することを特徴とする請求項9に記載の情報処理装置。
  12.  前記ターゲットは、複数時点において、前記3つ以上のセンサ以外の物体を基準とした所定の位置に配置され、前記3つ以上のセンサのうちいずれかのセンサによって複数時点で検出されたターゲットの位置を基にして、前記物体を基準とする座標系の原点座標を算出する算出部を更に有することを特徴とする請求項9、10または11に記載の情報処理装置。
PCT/JP2019/039019 2019-10-02 2019-10-02 生成方法、生成プログラムおよび情報処理装置 WO2021064925A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
PCT/JP2019/039019 WO2021064925A1 (ja) 2019-10-02 2019-10-02 生成方法、生成プログラムおよび情報処理装置
CN201980100162.3A CN114430800B (zh) 2019-10-02 2019-10-02 生成方法、记录介质和信息处理装置
EP19947861.1A EP4040104A4 (en) 2019-10-02 2019-10-02 GENERATION METHOD, GENERATION PROGRAM, AND INFORMATION PROCESSING DEVICE
JP2021550867A JP7188612B2 (ja) 2019-10-02 2019-10-02 生成方法、生成プログラムおよび情報処理装置
US17/676,273 US20220179085A1 (en) 2019-10-02 2022-02-21 Generation method, non-transitory computer-readable storage medium for storing generation program, and information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/039019 WO2021064925A1 (ja) 2019-10-02 2019-10-02 生成方法、生成プログラムおよび情報処理装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/676,273 Continuation US20220179085A1 (en) 2019-10-02 2022-02-21 Generation method, non-transitory computer-readable storage medium for storing generation program, and information processing apparatus

Publications (1)

Publication Number Publication Date
WO2021064925A1 true WO2021064925A1 (ja) 2021-04-08

Family

ID=75336826

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/039019 WO2021064925A1 (ja) 2019-10-02 2019-10-02 生成方法、生成プログラムおよび情報処理装置

Country Status (5)

Country Link
US (1) US20220179085A1 (ja)
EP (1) EP4040104A4 (ja)
JP (1) JP7188612B2 (ja)
CN (1) CN114430800B (ja)
WO (1) WO2021064925A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014515530A (ja) * 2011-05-27 2014-06-30 クゥアルコム・インコーポレイテッド モバイルデバイスのための平面マッピングおよびトラッキング
JP2016213808A (ja) * 2015-04-29 2016-12-15 パナソニックIpマネジメント株式会社 カメラ選択方法及び映像配信システム
JP2019086476A (ja) 2017-11-09 2019-06-06 キヤノン株式会社 画像処理装置、画像処理方法、プログラムおよびキャリブレーション用具
JP2019153863A (ja) * 2018-03-01 2019-09-12 ソニー株式会社 画像処理装置、符号化装置、復号化装置、画像処理方法、プログラム、符号化方法及び復号化方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3647584B2 (ja) * 1996-12-26 2005-05-11 富士通株式会社 学習型自己定位装置
EP1349114A3 (en) * 2002-03-19 2011-06-15 Canon Kabushiki Kaisha Sensor calibration apparatus, sensor calibration method, program, storage medium, information processing method, and information processing apparatus
JP6370038B2 (ja) * 2013-02-07 2018-08-08 キヤノン株式会社 位置姿勢計測装置及び方法
JP6415291B2 (ja) * 2014-12-09 2018-10-31 キヤノン株式会社 情報処理装置、情報処理方法、プログラム
US20190004178A1 (en) * 2016-03-16 2019-01-03 Sony Corporation Signal processing apparatus and signal processing method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014515530A (ja) * 2011-05-27 2014-06-30 クゥアルコム・インコーポレイテッド モバイルデバイスのための平面マッピングおよびトラッキング
JP2016213808A (ja) * 2015-04-29 2016-12-15 パナソニックIpマネジメント株式会社 カメラ選択方法及び映像配信システム
JP2019086476A (ja) 2017-11-09 2019-06-06 キヤノン株式会社 画像処理装置、画像処理方法、プログラムおよびキャリブレーション用具
JP2019153863A (ja) * 2018-03-01 2019-09-12 ソニー株式会社 画像処理装置、符号化装置、復号化装置、画像処理方法、プログラム、符号化方法及び復号化方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
M. RUAN: "Extrinsic Calibration of 3D Sensors Using a Spherical Target", 3DV, 2014
See also references of EP4040104A4

Also Published As

Publication number Publication date
US20220179085A1 (en) 2022-06-09
EP4040104A1 (en) 2022-08-10
JPWO2021064925A1 (ja) 2021-04-08
CN114430800B (zh) 2024-04-02
CN114430800A (zh) 2022-05-03
JP7188612B2 (ja) 2022-12-13
EP4040104A4 (en) 2022-11-02

Similar Documents

Publication Publication Date Title
AU2022256192B2 (en) Multi-sync ensemble model for device localization
CN103765870B (zh) 图像处理装置、包括图像处理装置的投影仪和投影仪系统、图像处理方法
JP5912191B2 (ja) 追跡システムを最適化するためのシステムおよび方法
CN110197190B (zh) 模型训练和物体的定位方法及装置
EP2808645A1 (en) Camera calibration device, camera calibration method, and camera calibration program
WO2012081687A1 (en) Information processing apparatus, information processing method, and program
US20210170229A1 (en) Systems and methods for providing strategic game recommendations in a sports contest using artificial intelligence
JP5494427B2 (ja) 画像処理プログラムおよび画像処理装置
JP2013239074A (ja) 情報処理装置および情報処理方法、並びにプログラム
US20220284652A1 (en) System and method for matching a test frame sequence with a reference frame sequence
JP5811923B2 (ja) 情報処理装置、画像処理方法およびプログラム
KR102369945B1 (ko) 압력을 이용한 운동 자세 구분 방법 및 장치
WO2021064925A1 (ja) 生成方法、生成プログラムおよび情報処理装置
CN108292437B (zh) 图像处理装置和方法
CN116433722A (zh) 目标跟踪方法、电子设备、存储介质及程序产品
JP2018504252A (ja) 画像レジストレーションの品質制御
US10042070B2 (en) Method for locating mobile utensils presented before a network of magnetometers
CN114638921A (zh) 动作捕捉方法、终端设备及存储介质
CN111223139B (zh) 目标定位方法及终端设备
WO2018134866A1 (ja) カメラ校正装置
JP2010038753A (ja) 運動推定装置及びプログラム
CN116503387B (zh) 图像检测方法、装置、设备、系统及可读存储介质
Cerfontaine et al. Automatic multi-camera setup optimization for optical tracking
JP2021196691A (ja) 算出方法、算出プログラムおよび情報処理装置
CN113038596B (zh) 室内定位方法、装置、设备及计算机可读存储介质

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: 19947861

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021550867

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2019947861

Country of ref document: EP

Effective date: 20220502