WO2019098318A1 - 三次元点群データ生成方法、位置推定方法、三次元点群データ生成装置、および、位置推定装置 - Google Patents
三次元点群データ生成方法、位置推定方法、三次元点群データ生成装置、および、位置推定装置 Download PDFInfo
- Publication number
- WO2019098318A1 WO2019098318A1 PCT/JP2018/042423 JP2018042423W WO2019098318A1 WO 2019098318 A1 WO2019098318 A1 WO 2019098318A1 JP 2018042423 W JP2018042423 W JP 2018042423W WO 2019098318 A1 WO2019098318 A1 WO 2019098318A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- dimensional
- points
- dimensional point
- point group
- dimensional image
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO 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/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/88—Lidar systems specially adapted for specific applications
- G01S17/89—Lidar systems specially adapted for specific applications for mapping or imaging
- G01S17/894—3D imaging with simultaneous measurement of time-of-flight at a 2D array of receiver pixels, e.g. time-of-flight cameras or flash lidar
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/521—Depth or shape recovery from laser ranging, e.g. using interferometry; from the projection of structured light
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10024—Color image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30248—Vehicle exterior or interior
- G06T2207/30252—Vehicle exterior; Vicinity of vehicle
Definitions
- Patent Document 1 discloses a method of transferring three-dimensional shape data.
- three-dimensional data are sent out to a network, for example, for each element such as a polygon or a voxel. Then, on the receiving side, the data of the three-dimensional shape is taken, and the image is expanded and displayed for each received element.
- a three-dimensional point group data generation method is a three-dimensional point group generation method that generates a three-dimensional point group including a plurality of three-dimensional points using a processor.
- At least one attribute value of the two-dimensional image corresponding to a position on the two-dimensional image is detected from the acquired two-dimensional image, and for each of the one or more detected attribute values, (i) Among the plurality of three-dimensional points constituting one three-dimensional point group, one or more first three-dimensional points corresponding to the position of the attribute value on the two-dimensional image are specified, and (ii) the specified one
- the above attributes to the first three-dimensional point By adding, to generate a second three-dimensional point group, each comprising one or more second three-dimensional point with the attribute value.
- a position estimation method is a position estimation method for estimating a current position of a mobile using a processor, which is an attribute value of a first two-dimensional image obtained by imaging a three-dimensional object.
- a three-dimensional point group including a plurality of three-dimensional points to which one attribute value is previously added is acquired, and a second two-dimensional image of the periphery of the moving object captured by a camera included in the moving object is obtained.
- One or more second attribute values which are attribute values of the second two-dimensional image corresponding to a position on the second two-dimensional image, are detected from the acquired second two-dimensional image, and one or more detected
- the second attribute value and the one or more second attribute values are identified by specifying one or more fifth three-dimensional points corresponding to the second attribute value among the plurality of three-dimensional points.
- One or more combinations consisting of the fifth three-dimensional point Position and orientation of the camera with respect to the mobile object from the storage device, the position and orientation of the mobile object using the generated one or more combinations and the acquired position and orientation of the camera Calculate
- the present disclosure can be further improved.
- FIG. 1 is a diagram showing an outline of a position estimation system.
- FIG. 2 is a block diagram showing an example of a functional configuration of the position estimation system.
- FIG. 3 is a block diagram showing an example of a functional configuration of a vehicle as a client device.
- FIG. 4 is a sequence diagram showing an example of the operation of the position estimation system.
- FIG. 5 is a diagram for explaining the operation of the position estimation system.
- FIG. 6 is a block diagram showing an example of a functional configuration of the mapping unit.
- FIG. 7 is a flowchart illustrating an example of detailed processing of the mapping process.
- FIG. 8 is a flow chart showing an example of the operation of the three-dimensional point group data generation apparatus in the first modification.
- FIG. 1 is a diagram showing an outline of a position estimation system.
- FIG. 2 is a block diagram showing an example of a functional configuration of the position estimation system.
- FIG. 3 is a block diagram showing an example of a functional configuration of a vehicle as
- FIG. 9 is a flowchart illustrating an example of a detailed process of calculating the degree of importance.
- FIG. 10 is a view showing an example of the data configuration of the third three-dimensional point.
- FIG. 11 is a block diagram showing an example of a functional configuration of the encoding unit.
- FIG. 12 is a flowchart illustrating an example of the detailed process of the encoding process.
- Three-dimensional point cloud data is widespread in manufacturing and architecture, and has recently become important in information technology applications such as autonomous traveling.
- Three-dimensional point cloud data is usually highly inefficient in data storage and data processing. Therefore, in order to use three-dimensional point group data in an actual application, it is required to generate three-dimensional point group data compressed to a compact size. Thus, it has been necessary to be able to reduce the data volume of three-dimensional point cloud data. In addition, it is also necessary to estimate the self position using three-dimensional point cloud data with a reduced amount of data.
- the present disclosure provides a three-dimensional point group data generation method and a three-dimensional point group data generation device capable of effectively reducing the data amount of three-dimensional point group data, and three-dimensional point group data with reduced data amount. It is an object of the present invention to provide a position estimation method and a position estimation apparatus capable of estimating a self position using
- a three-dimensional point group data generation method is a three-dimensional point group generation method for generating a three-dimensional point group including a plurality of three-dimensional points using a processor, A two-dimensional image obtained by imaging an object and a first three-dimensional point group obtained by sensing the three-dimensional object using a distance sensor are acquired, and from the acquired two-dimensional image Detecting at least one attribute value of the two-dimensional image corresponding to a position on the two-dimensional image, and (i) constructing the first three-dimensional point group for each of the detected one or more attribute values; Among the plurality of three-dimensional points, one or more first three-dimensional points corresponding to the position of the attribute value on the two-dimensional image are identified, and (ii) the identified one or more first three-dimensional points By adding the attribute value, There generating a second three-dimensional point group including one or more second three-dimensional point with the attribute value.
- a two-dimensional image corresponding to the position on the two-dimensional image obtained using the camera A second three-dimensional point group including a second three-dimensional point obtained by adding the attribute value of the three-dimensional point to the three-dimensional point corresponding to the position on the two-dimensional image is generated.
- the position estimation device that estimates the self position, a two-dimensional image obtained by imaging if a two-dimensional image around the own device is newly imaged without newly sensing a three-dimensional point group.
- the self-position can be efficiently estimated by comparing the attribute value corresponding to the position of and the attribute value added to each second three-dimensional point of the second three-dimensional point group.
- the acquisition a plurality of two-dimensional images obtained by being captured by the camera at different positions and / or postures from one another are acquired, and in the detection, the plurality of two-dimensional images acquired
- the one or more attribute values are detected for each of the images, and the three-dimensional point group data generation method further includes using the one or more attribute values detected for each of the plurality of two-dimensional images.
- One or more pairs of matched attribute values are output by matching corresponding attribute values with two two-dimensional images of a plurality of two-dimensional images, and in the identification, for each of the one or more pairs A position on the two-dimensional image of each of two attribute values constituting the pair, and a position of the camera when each of the two two-dimensional images is captured And one or more first three-dimensional points corresponding to positions of the two attribute values constituting the pair on the two-dimensional image among the plurality of three-dimensional points using In the generation, for each of the one or more pairs, an attribute value based on the two attribute values constituting the pair is added to the identified one or more first three-dimensional points, thereby the second cubic A source point cloud may be generated.
- the attribute value pair specified by matching the attribute values of the two two-dimensional images is specified, and the position corresponding to the two-dimensional image of each of the pair attribute values is used.
- a three-dimensional point corresponding to is identified, and two attribute values forming a pair are added to the identified three-dimensional point. Therefore, the three-dimensional point corresponding to the attribute value can be identified with high accuracy.
- the second three-dimensional point may be generated by adding a plurality of the attribute values to the one specified first three-dimensional point.
- the plurality of attribute values added to the one first three-dimensional point in the generation may be attribute values detected from a plurality of the two-dimensional images.
- One first three-dimensional point can be imaged from multiple viewpoints. Further, in position estimation, since two-dimensional images are captured at different positions, the obtained two-dimensional images are captured from a plurality of different viewpoints. Therefore, by adding a plurality of attribute values detected from a plurality of two-dimensional images, it is possible to obtain a two-dimensional image captured by each of a plurality of different viewpoints in position estimation, from each two-dimensional image. Can be easily associated with the first three-dimensional point. Therefore, position estimation can be easily performed.
- the plurality of attribute values added to the one first three-dimensional point in the generation may be attribute values different from each other in type of attribute.
- attribute values to be added to one first three-dimensional point are different types of attribute values
- position estimation corresponding to a position on a two-dimensional image acquired for performing position estimation
- the association between the attribute value of the two-dimensional image and the first three-dimensional point can be accurately performed.
- the feature value calculated for each of a plurality of regions constituting the acquired two-dimensional image is used as the one or more attribute values of the two-dimensional image corresponding to the position on the two-dimensional image. It may be detected.
- the feature quantity at the position of the two-dimensional image can be easily calculated by a predetermined method.
- a third third order including one or more third three-dimensional points each having the attribute value and the degree of importance calculated and (ii) by adding the calculated degree of importance to the second three-dimensional point A source point cloud may be generated.
- the client device can use the third three-dimensional point having a high degree of importance with higher priority, so that the three-dimensional point cloud data used for the process is processed so as not to adversely affect the processing accuracy.
- the amount of data can be adjusted.
- a threshold is received from the client device, and one or more fourth three-dimensional points to which an importance exceeding the received threshold is added are extracted from the one or more third three-dimensional points, A fourth three-dimensional point group including the one or more extracted fourth three-dimensional points may be transmitted to the client device.
- a position estimation method is a position estimation method for estimating a current position of a mobile using a processor, which is an attribute value of a first two-dimensional image obtained by imaging a three-dimensional object.
- a three-dimensional point group including a plurality of three-dimensional points to which one attribute value is previously added is acquired, and a second two-dimensional image of the periphery of the moving object captured by a camera included in the moving object is obtained.
- One or more second attribute values which are attribute values of the second two-dimensional image corresponding to a position on the second two-dimensional image, are detected from the acquired second two-dimensional image, and one or more detected
- the second attribute value and the one or more second attribute values are identified by specifying one or more fifth three-dimensional points corresponding to the second attribute value among the plurality of three-dimensional points.
- One or more combinations consisting of the fifth three-dimensional point Position and orientation of the camera with respect to the mobile object from the storage device, the position and orientation of the mobile object using the generated one or more combinations and the acquired position and orientation of the camera Calculate
- the new three-dimensional point group is not newly sensed, If the second two-dimensional image is captured, a second attribute value corresponding to the position of the second two-dimensional image obtained by capturing, and one or more fifth three-dimensional points corresponding to the second attribute value
- the self position can be efficiently estimated by comparing the combination with the first attribute value added to each three-dimensional point of the three-dimensional point group.
- Embodiment 1 First, an outline of the present embodiment will be described.
- a position estimation system for estimating the self position of a moving object such as a vehicle using three-dimensional point cloud data will be described.
- FIG. 1 is a diagram showing an outline of a position estimation system.
- the position estimation system 1 includes the three-dimensional point cloud data generation device 100 and the vehicles 200 and 300 among these components.
- the vehicle 200 and the vehicle 300 are different types of vehicles.
- two or more vehicles 200 may be provided without being limited to the one vehicle 200.
- three or more may be provided without limitation to the one vehicle 300.
- the vehicle 300 may be provided.
- the three-dimensional point cloud data generation device 100 includes a plurality of two-dimensional images captured by a camera 210 included in the vehicle 200 and a third order obtained by a LiDAR (Light Detection and Ranging, Laser Imaging Detection and Ranging) 230 included in the vehicle 200. It is an apparatus for acquiring three-dimensional point cloud data which is used to acquire the original point group and to estimate the self position of the vehicle 300 by the vehicle 300.
- the three-dimensional point group data is data indicating a three-dimensional point group including a plurality of three-dimensional points to which feature amounts of feature points are added. A plurality of three-dimensional points to which feature amounts of feature points are added will be described later.
- the three-dimensional point cloud data generation device 100 is, for example, a server.
- the vehicle 200 is a vehicle that includes a camera 210 and a LiDAR 230, captures a two-dimensional image of a three-dimensional object around the vehicle 200, and detects a three-dimensional point group of the three-dimensional object.
- the three-dimensional point group is configured by, for example, a plurality of three-dimensional coordinates (X, Y, Z) indicating each of a plurality of positions on the surface of the three-dimensional object around the vehicle 200.
- the vehicle 200 generates a two-dimensional image captured by the camera 210 of the vehicle 200 from the position of the vehicle 200 at each timing by performing imaging with the camera 210 at different timings while traveling on a road, for example.
- the vehicle 200 performs imaging by the camera 210 at a plurality of different timings while moving on the moving route. Therefore, a plurality of two-dimensional images are obtained by being captured by the camera 210 at different positions and / or postures. Further, the vehicle 200 performs, for example, sensing by the LiDAR 230 at a plurality of different timings while traveling on a road, thereby generating a three-dimensional point cloud sensed by the LiDAR 230 of the vehicle 200 from the position of the vehicle 200 at each timing.
- the sensor data by the LiDAR 230 may be used to specify a two-dimensional image captured by the camera 210 of the vehicle 200 and the position and orientation of the camera 210 when the two-dimensional image is captured.
- an accurate three-dimensional map (Accurate 3D map) that a general vehicle uses to estimate its position is generated using a three-dimensional point cloud obtained by another device different from the vehicle 200 It is also good.
- the accurate three-dimensional map is an example of the first three-dimensional point group, and is composed of a plurality of three-dimensional points.
- the plurality of three-dimensional points may be indicated by, for example, coordinates of three different directions in the X-axis direction, the Y-axis direction, and the Z-axis direction.
- Sensor data from LiDAR 230 may be used to generate an accurate three-dimensional map that typical vehicles use to estimate their position.
- the LiDAR 230 is, for example, a distance sensor capable of measuring more three-dimensional points with higher accuracy than the LiDAR that a general vehicle uses for automatic driving or driving assistance. That is, the vehicle 200 is a sensing device that acquires a three-dimensional point group and a two-dimensional image for generating an accurate three-dimensional map used for self-position estimation.
- timing of imaging by the camera 210 and the timing of sensing by the LiDAR 230 may or may not be synchronized.
- the imaging timing by the camera 210 and the sensing timing by the LiDAR 230 may be the same timing or may be different timings.
- the vehicle 300 is a vehicle that includes a camera 310 and captures a two-dimensional image of a three-dimensional object around the vehicle 300.
- the vehicle 300 estimates the self position of the vehicle 300 using the two-dimensional image obtained by the imaging of the camera 310 and the three-dimensional point group acquired from the three-dimensional point group data generation device 100.
- the vehicle 300 performs automatic driving or driving assistance using the estimation result of the self position. That is, the vehicle 300 functions as a client device.
- Communication network 400 may be a general-purpose network such as the Internet, or may be a dedicated network.
- the base station 410 is, for example, a mobile communication system such as a third generation mobile communication system (3G), a fourth generation mobile communication system (4G), LTE (registered trademark), a fifth generation mobile communication system (5G), etc. It is a base station to be used.
- 3G third generation mobile communication system
- 4G fourth generation mobile communication system
- LTE registered trademark
- 5G fifth generation mobile communication system
- FIG. 2 is a block diagram showing an example of a functional configuration of the position estimation system.
- the three-dimensional point cloud data generation device 100 includes a communication unit 110, a mapping unit 120, an encoding unit 130, and an external memory 140.
- Communication unit 110 communicates with vehicles 200 and 300 via communication network 400.
- the communication unit 110 acquires the two-dimensional image and the three-dimensional point group from the vehicle 200 by communication via the communication network 400.
- the communication unit 110 may also acquire the relative position and orientation of the camera 210 with respect to the LiDAR 230 by receiving from the vehicle 200 by communication via the communication network 400.
- the communication unit 110 transmits the three-dimensional point group to which the feature amount of the feature point is added to the vehicle 300 by communication via the communication network 400.
- the communication unit 110 may transmit the three-dimensional point group to which the feature amount of the feature point is added to the upper server (not shown) through communication via the communication network 400.
- the three-dimensional point cloud data generation device 100 prestores the relative position and orientation of the camera 210 with respect to the LiDAR 230 in advance as a table for each vehicle type of the vehicle 200 or for each vehicle. It may be stored in In this case, the three-dimensional point cloud data generation device 100 obtains the information for identifying the vehicle type or the vehicle from the vehicle 200, thereby making the relative position and posture of the camera 210 with respect to the LiDAR 230 in the vehicle 200 nonvolatile. You may acquire by specifying from the table memorize
- the communication unit 110 is realized by a communication interface that can be communicably connected to the communication network 400. Specifically, the communication unit 110 performs communication connection with the communication network 400 by communication connection with the base station 410 of the mobile communication system.
- the communication unit 110 is, for example, a mobile communication system such as a third generation mobile communication system (3G), a fourth generation mobile communication system (4G), LTE (registered trademark), a fifth generation mobile communication system (5G), etc. It may be realized by a wireless communication interface conforming to the used communication standard.
- the communication unit 110 may be realized by, for example, a wireless local area network (LAN) interface conforming to the IEEE 802.11a, b, g, n, and ac standards, and a router (not shown) (for example, a mobile wireless LAN router). , And may be realized by a communication interface that performs communication connection with the communication network 400.
- LAN wireless local area network
- the mapping unit 120 adds attribute values detected from the two-dimensional image to a plurality of three-dimensional points forming the three-dimensional point group using the two-dimensional image and the three-dimensional point group acquired by the communication unit 110. Perform mapping processing. Details of the mapping unit will be described later with reference to FIGS. 6 and 7.
- the coding unit 130 generates a coded stream by coding the three-dimensional point group obtained by the mapping process.
- the encoding unit 130 may store the generated encoded stream in the external memory 140. Also, the encoding unit 130 may cause the communication unit 110 to transmit the generated encoded stream to the vehicle 300 via the communication network 400. Details of the encoding process by the encoding unit 130 will be described later with reference to FIGS. 8 and 9.
- Each of the mapping unit 120 and the encoding unit 130 may be realized by a processor and a memory, or may be realized by a dedicated circuit. That is, the mapping unit 120 and the encoding unit 130 may be realized by software or hardware.
- the external memory 140 may store, for example, information required by the processor, such as a program.
- the external memory 140 may store data generated by processing of the processor, such as a three-dimensional point group to which attribute values are added, a coded stream, and the like.
- the external memory 140 is realized by, for example, a non-volatile storage device such as a flash memory or a hard disk drive (HDD).
- the vehicle 200 includes a camera 210, an acquisition unit 220, a LiDAR 230, an acquisition unit 240, a memory 250, and a communication unit 260.
- the camera 210 captures a three-dimensional object in a three-dimensional space around the vehicle 200 to obtain a two-dimensional image.
- the camera 210 is disposed at a predetermined position and a predetermined attitude with respect to the vehicle 200.
- the camera 210 may be disposed in the cabin of the vehicle 200 or may be disposed outside the cabin.
- the camera 210 may image the front of the vehicle 200, may image the right side or the left side of the vehicle 200, may image the rear of the vehicle 200, or 360 of the vehicle 200. All directions may be imaged.
- the camera 210 may be configured by one camera or may be configured by two or more cameras.
- the camera 210 may obtain a plurality of two-dimensional images by imaging at a plurality of different timings.
- the camera 210 may capture a moving image including a plurality of frames as a plurality of two-dimensional images at a predetermined frame rate.
- the acquisition unit 220 is provided corresponding to the camera 210, stores a two-dimensional image obtained by imaging at a plurality of different timings by the camera 210, and outputs the stored two-dimensional image to the communication unit 260.
- the timing at which the two-dimensional image was captured is associated with the two-dimensional image.
- the acquisition unit 220 may be a processing unit built in the camera 210. That is, the camera 210 may have the function of the acquisition unit 220.
- the LiDAR 230 obtains a three-dimensional point cloud by sensing a three-dimensional object on a three-dimensional space around the vehicle 200.
- the LiDAR 230 is held by the vehicle 200 and detects a distance to a 360-degree omnidirectional in the horizontal direction of the vehicle 200 and a three-dimensional object in a detection range of an angular range of a predetermined angle (for example, 30 degrees) in the vertical direction.
- It is a laser sensor.
- the LiDAR 230 is an example of a distance sensor.
- the LiDAR 230 measures the distance from the LiDAR 230 to the three-dimensional object by emitting a laser to the periphery and detecting the laser reflected by the surrounding object.
- the LiDAR 230 measures the distance, for example, on the order of centimeters.
- the LiDAR 230 detects three-dimensional coordinates of each of a plurality of points on the terrain surface around the vehicle 200. That is, the LiDAR 230 detects the three-dimensional shape of the terrain including the objects around the vehicle 200 by detecting the plurality of three-dimensional coordinates of the surrounding terrain surface.
- a three-dimensional point group constituted by three-dimensional coordinates of a plurality of points is obtained, which indicates a three-dimensional shape of the terrain including an object around the vehicle 200.
- the distance sensor is not limited to the LiDAR 230, and may be another distance sensor such as a millimeter wave radar, an ultrasonic sensor, a time of flight (ToF) camera, or a stereo camera.
- the acquisition unit 240 is provided corresponding to the LiDAR 230, stores a three-dimensional point group obtained by sensing in the LiDAR 230 at a plurality of different timings, and outputs the stored three-dimensional point group to the communication unit 260.
- the timing at which the three-dimensional point group is sensed is associated with the three-dimensional point group.
- the acquisition unit 240 may be a processing unit built in the LiDAR 230. That is, the LiDAR 230 may have the function of the acquisition unit 240.
- the memory 250 stores the position and attitude of the camera 210 with respect to the vehicle 200 and the position and attitude of the LiDAR 230 with respect to the vehicle 200.
- the memory 250 may also store the relative position and orientation of the camera 210 relative to the LiDAR 230.
- the relative position and posture of the camera 210 with respect to the LiDAR 230 are mutual information of the intensity of the laser beam output by the LiDAR 230 and the two-dimensional image including the reflected light in the three-dimensional object of the laser beam by the LiDAR 230 captured by the camera 210 It may be detected by matching using methods such as quantity, or may be detected using equipment other than the camera 210 and the LiDAR 230.
- the memory 250 is implemented by, for example, a non-volatile storage device.
- the communication unit 260 communicates with the three-dimensional point cloud data generation apparatus 100 via the communication network 400.
- the communication unit 260 transmits the two-dimensional image and the three-dimensional point group to the three-dimensional point group data generation apparatus 100 by communication via the communication network 400.
- the communication unit 260 may transmit the relative position and posture of the camera 210 with respect to the LiDAR 230 to the three-dimensional point cloud data generation apparatus 100 by communication via the communication network 400.
- the communication unit 260 is realized by a communication interface that can be communicably connected to the communication network 400. Specifically, the communication unit 260 performs communication connection with the communication network 400 by communication connection with the base station 410 of the mobile communication system.
- the communication unit 260 is, for example, a mobile communication system such as a third generation mobile communication system (3G), a fourth generation mobile communication system (4G), LTE (registered trademark), a fifth generation mobile communication system (5G), etc. It may be realized by a wireless communication interface conforming to the used communication standard.
- FIG. 3 is a block diagram showing an example of a functional configuration of a vehicle as a client device.
- the vehicle 300 includes a camera 310, an acquisition unit 320, a communication unit 330, a decoding unit 340, a position estimation unit 350, a control unit 360, and an external memory 370.
- the camera 310 is disposed at a predetermined position and a predetermined posture with respect to the vehicle 300, and images a three-dimensional object in a three-dimensional space around the vehicle 300.
- the camera 310 is different from the camera 210 in that the camera 310 is disposed in the vehicle 300, but otherwise has the same configuration as the camera 210. Therefore, in the description of the camera 210, the camera 210 is replaced with the camera 310, and the vehicle 200 is This can be explained by replacing it with 300. Therefore, the detailed description of the camera 310 is omitted.
- the acquisition unit 320 is provided corresponding to the camera 310, stores a two-dimensional image obtained by being imaged by the camera 310, and outputs the stored two-dimensional image to the position estimation unit 350.
- the acquisition unit 320 may be a processing unit incorporated in the camera 310. That is, the camera 310 may have the function of the acquisition unit 320.
- the communication unit 330 communicates with the three-dimensional point cloud data generation apparatus 100 via the communication network 400.
- the communication unit 330 acquires the encoded stream from the three-dimensional point cloud data generation apparatus 100 by communication via the communication network 400.
- the communication unit 330 may transmit a threshold related to the importance, which will be described later, to the three-dimensional point cloud data generation apparatus 100 via the communication network 400 in order to reduce the communication load.
- the communication unit 330 may acquire all of the plurality of three-dimensional points included in the three-dimensional point group possessed by the three-dimensional point group data generation device 100.
- the communication unit 330 detects the vehicle 300 detected by a coarse accuracy position detection device such as GPS (Global Positioning System) not shown.
- GPS Global Positioning System
- the three-dimensional point group of the predetermined area based on the position may be acquired as all the three-dimensional points described above. As a result, it is not necessary to acquire the three-dimensional point group around the moving path of the moving object, such as all roads in the world, and the amount of data of the acquired three-dimensional point group can be reduced.
- the communication unit 330 may not acquire all three-dimensional points, and by transmitting the above-mentioned threshold to the three-dimensional point group data generation device 100, among the plurality of three-dimensional points, more important than the threshold. It is not necessary to acquire a plurality of three-dimensional points having a large degree, and do not acquire a plurality of three-dimensional points having importance less than a threshold.
- the communication unit 330 is realized by a communication interface that can be communicably connected to the communication network 400. Specifically, the communication unit 330 performs communication connection with the communication network 400 by communication connection with the base station 410 of the mobile communication system.
- the communication unit 330 is, for example, a mobile communication system such as a third generation mobile communication system (3G), a fourth generation mobile communication system (4G), LTE (registered trademark), a fifth generation mobile communication system (5G), etc. It may be realized by a wireless communication interface conforming to the used communication standard.
- the decoding unit 340 decodes the encoded stream acquired by the communication unit 330 to generate a three-dimensional point group to which the attribute value is added.
- the position estimation unit 350 uses the two-dimensional image obtained by the camera 310 and the three-dimensional point group to which the attribute value is added obtained by being decoded by the decoding unit 340 to obtain the three-dimensional point group
- the position and orientation of the vehicle 300 are estimated by estimating the position and orientation of the camera 310 at
- Control unit 360 controls the operation of vehicle 300. Specifically, the control unit 360 controls the steering for steering the wheels, the engine for rotationally driving the wheels, a power source such as a motor, the brake for braking the wheels, and the like, thereby providing automatic driving or driving assistance for the vehicle 300. I do. For example, using the current position of the vehicle 300, the destination of the vehicle 300, and surrounding road information, the control unit 360 determines a road on which the vehicle 300 travels. Further, the control unit 360 controls the steering, the power source, and the brake so as to travel on the determined route.
- the decoding unit 340, the position estimation unit 350, and the control unit 360 may be realized by a processor or may be realized by a dedicated circuit. That is, the decoding unit 340, the position estimation unit 350, and the control unit 360 may be realized by software or hardware.
- the external memory 370 may store, for example, information required by the processor, such as a program.
- the external memory 370 may store data generated by processing of a processor, such as a three-dimensional point group to which attribute values are added, a coded stream, and the like.
- the external memory 370 is realized by, for example, a non-volatile storage device such as a flash memory or a hard disk drive (HDD).
- FIG. 4 is a sequence diagram showing an example of the operation of the position estimation system.
- FIG. 5 is a diagram for explaining the operation of the position estimation system.
- the vehicle 200 is a two-dimensional image obtained by the camera 210 imaging a three-dimensional object in the three-dimensional space around the vehicle 200, and the LiDAR 230 is three-dimensional in the three-dimensional space around the vehicle 200.
- the three-dimensional point group obtained by sensing the object is transmitted to the three-dimensional point group data generation apparatus 100 via the communication network 400 (S1).
- the detailed process in the vehicle 200 was already demonstrated using FIG. 2, it is abbreviate
- the communication unit 110 acquires a two-dimensional image and a three-dimensional point group from the vehicle 200 via the communication network 400 (S3).
- the mapping unit 120 converts the attribute values detected from the two-dimensional image into a plurality of three-dimensional points constituting the three-dimensional point group.
- a mapping process to be added is performed (S4).
- mapping unit 120
- FIG. 6 is a block diagram showing an example of a functional configuration of the mapping unit.
- FIG. 7 is a flowchart illustrating an example of detailed processing of the mapping process.
- the mapping unit 120 includes a feature detection module 121, a feature matching module 122, a point cloud registration module 123, a triangulation module 124, a position and orientation calculation module 125, and a memory 126.
- mapping unit 120 receives a two-dimensional image and a three-dimensional point group sensed at a timing corresponding to the timing at which the two-dimensional image is captured. That is, the mapping unit 120 performs mapping processing in association with each other at the timings corresponding to each other, with the captured two-dimensional image and the sensed three-dimensional point group.
- the three-dimensional point group obtained at the timing when the two-dimensional image is captured may be a three-dimensional point group sensed at the timing closest to the timing when the two-dimensional image is captured, or the two-dimensional image It may be the latest three-dimensional point group sensed prior to the timing at which is captured.
- two-dimensional images and three-dimensional point groups obtained at mutually corresponding timings are obtained at the same timing when the timing of imaging by the camera 210 and the timing of sensing by the LiDAR 230 are synchronized. It may be a two-dimensional image and a three-dimensional image.
- the feature detection module 121 detects feature points of each of the plurality of two-dimensional images acquired by the communication unit 110 (S11).
- the feature detection module 121 detects feature amounts at feature points.
- the feature amount is, for example, ORB (Oriented FAST and Rotated Brief), SIFT, DAISY, or the like.
- the feature value may be represented by a 256-bit data string.
- the luminance value of each pixel in the two-dimensional image may be used, or a color represented by an RGB value or the like may be used.
- the feature amount of the feature point is an example of the attribute value of the two-dimensional image corresponding to the position on the two-dimensional image.
- the feature amount is not limited to the feature amount of the feature point as long as it corresponds to the position on the two-dimensional image, and may be a feature amount calculated for each of a plurality of regions.
- the plurality of regions are regions constituting a two-dimensional image, and each region may be one pixel of the two-dimensional image or may be a block configured by a set of a plurality of pixels.
- the position and orientation calculation module 125 acquires an accurate three-dimensional map from the memory 126 or the external memory 140, and the acquired accurate three-dimensional map and the three-dimensional point group acquired by the communication unit 110, that is, the detection result of LiDAR 230
- the position and orientation of the LiDAR 230 in the accurate three-dimensional map are specified (S12) using
- the position and orientation calculation module 125 uses, for example, an algorithm of pattern matching such as ICP (Iterative Closest Point) to generate a three-dimensional point group as a detection result of the LiDAR 230 and a three-dimensional map forming an accurate three-dimensional map. Perform matching with the original point cloud.
- ICP Intelligent Closest Point
- the position and orientation calculation module 125 specifies the position and orientation of the LiDAR 230 in the accurate three-dimensional map.
- the position and orientation calculation module 125 may acquire an accurate three-dimensional map from a host server outside the three-dimensional point cloud data generation apparatus 100.
- the position and orientation calculation module 125 obtains the position and orientation of the LiDAR 230 in the accurate three-dimensional map and the relative position and orientation of the camera 210 with respect to the LiDAR 230 stored in the memory 250. Then, the position and orientation calculation module 125 uses the position and orientation of the LiDAR 230 in the acquired accurate three-dimensional map and the relative position and orientation of the camera 210 with respect to the LiDAR 230 stored in the memory 250 The position and orientation of the camera 210 at the timing when each of the two-dimensional images is captured are calculated (S13).
- the feature matching module 122 detects a feature point of each of the plurality of two-dimensional images detected in the feature detection module 121 and a camera at a timing when each of the plurality of two-dimensional images calculated in the position and orientation calculation module 125 is captured.
- a position and orientation of 210 feature points in each of a pair of two-dimensional images, that is, two two-dimensional images are matched (S14). For example, as shown in “matching / triangulation” of FIG. 5, the feature matching module 122 detects a plurality of feature points detected by the feature detection module 121 in the two-dimensional image I1 captured by the camera 210 at timing T.
- the feature point P1 is matched with the feature point P2 among a plurality of feature points detected by the two-dimensional image I2 captured by the camera 210 at timing T + 1 after the timing T.
- timing T + 1 may be timing of imaging next to timing T.
- the feature matching module 122 associates a plurality of feature points detected for each of a plurality of two-dimensional images among different two-dimensional images.
- the feature matching module 122 matches corresponding feature points with two two-dimensional images of a plurality of two-dimensional images using a plurality of feature points detected for each of a plurality of two-dimensional images. By doing this, a plurality of matched feature point pairs are output.
- the triangulation module 124 for each of the pairs of feature points matched in the feature matching module 122, the position on the two-dimensional image of each of the two feature points that make up the pair, and the features of the pair.
- the position and orientation of the camera 210 when each of the two two-dimensional images from which the points are obtained are captured, for example, on the two-dimensional image of the matched feature point pair
- a three-dimensional position corresponding to the position is calculated (S15).
- the triangulation module 124 triangulates a feature point P1 detected in the two-dimensional image I1 and a feature point P2 detected in the two-dimensional image I2, as shown in, for example, “matching / triangulation” in FIG.
- the three-dimensional position P10 is calculated.
- the position and orientation of the camera 210 used here are the position and orientation of the camera 210 at the timing when each of the two two-dimensional images from which the pair of feature points was obtained is captured.
- the point group registration module 123 selects a three-dimensional position corresponding to the three-dimensional position calculated by the triangulation module 124 among the plurality of three-dimensional points constituting the first three-dimensional point group as an accurate three-dimensional map.
- a plurality of first three-dimensional points which are points are specified (S16).
- the point group registration module 123 may specify, as the first three-dimensional point, a three-dimensional point at a position closest to one three-dimensional position among a plurality of three-dimensional points constituting the first three-dimensional point group. Good.
- the point group registration module 123 sets one or more three-dimensional points included in a predetermined range based on one three-dimensional position among a plurality of three-dimensional points constituting the first three-dimensional point group It may be specified as a three-dimensional point. That is, the point cloud registration module 123 may specify, as the first three-dimensional points corresponding to one three-dimensional position, a plurality of three-dimensional points satisfying a predetermined condition based on the one three-dimensional position. .
- the point cloud registration module 123 adds, for each of the plurality of pairs, the feature amount of each of the two feature points constituting the pair to the plurality of identified first three-dimensional points, to obtain the plurality of second A second three-dimensional point group composed of three-dimensional point groups is generated (S17).
- the point cloud registration module 123 adds, for each of the plurality of pairs, the feature amount of one of the two feature points constituting the pair to the plurality of first three-dimensional points specified.
- the second three-dimensional point group may be generated, or (ii) by adding one feature amount calculated from two feature amounts of two feature points constituting the pair, Three-dimensional point groups may be generated.
- the point cloud registration module 123 specifies the three-dimensional point corresponding to the three-dimensional position P10 obtained by the triangulation module 124 in steps S16 and S17, for example, as shown in “association” in FIG.
- the feature amounts of the feature points P1 and P2 corresponding to the three-dimensional position P10 are added to the three-dimensional points in the accurate three-dimensional map corresponding to the three-dimensional position P10.
- a three-dimensional point group C1 including a plurality of three-dimensional points to which the feature amounts of the feature points P1 and P2 are added as shown in FIG. 5 is generated.
- the three-dimensional point to which the attribute value included in the three-dimensional point group C1 is added has three-dimensional coordinates and illuminance (brightness) in each two-dimensional image of the feature points P1 and P2 as the attribute value It consists of That is, not only the feature amount of the feature point is added to the three-dimensional point, but also an attribute value such as illuminance (brightness) or color such as RGB value in the two-dimensional image of the feature point may be added.
- the point cloud registration module 123 may generate a second three-dimensional point by adding a plurality of attribute values to one first three-dimensional point. For example, as described above, the point cloud registration module 123 adds the feature amounts of each of the plurality of feature points detected from each of the plurality of two-dimensional images to one first three-dimensional point as a plurality of attribute values. Good. The point cloud registration module 123 may add attribute values different in type to one first three-dimensional point as a plurality of attribute values.
- the memory 126 may store an accurate three-dimensional map.
- the memory 126 may store in advance an accurate three-dimensional map, or may store an accurate three-dimensional map received from the upper server by the communication unit 110.
- the memory 126 is realized by, for example, a non-volatile storage device such as a flash memory or a hard disk drive (HDD).
- the point cloud registration module 123 performs the mapping process of step S4 to generate the second cubic including the plurality of second three-dimensional points that are the plurality of three-dimensional points to which the feature amounts of the feature points are added. Generate a source point cloud.
- step S4 the encoding unit 130 encodes the second three-dimensional point group generated by the mapping unit 120 to generate an encoded stream (S5).
- the communication unit 110 transmits the encoded stream generated by the encoding unit 130 to the vehicle 300 (S6).
- the communication unit 330 acquires the encoded stream from the three-dimensional point cloud data generation device 100 (S7).
- the decoding unit 340 acquires a second three-dimensional point group by decoding the encoded stream acquired by the communication unit 330 (S8). That is, the vehicle 300 acquires a three-dimensional point group including a plurality of three-dimensional points to which attribute values of a two-dimensional image obtained by imaging a three-dimensional object are respectively added in advance.
- the position estimation unit 350 uses the two-dimensional image obtained by the camera 310 and the three-dimensional point group obtained by being decoded by the decoding unit 340 and to which the attribute value is added.
- the position and orientation of the vehicle 300 are estimated by estimating the position and orientation of the camera 310 in the original point group (S9).
- the position estimation unit 350 has a feature detection module 351, a feature matching module 352, and a memory 353, as shown in FIG.
- the feature detection module 351 acquires a second two-dimensional image of the surroundings of the vehicle 300, which is captured by the camera 310 included in the vehicle 300. Then, the feature detection module 351 detects a plurality of second attribute values, which are attribute values of the second two-dimensional image corresponding to the position on the second two-dimensional image, from the acquired second two-dimensional image.
- the process in the feature detection module 351 is the same as the process in the feature detection module 121 of the mapping unit 120 in the vehicle 200. In the processing in the feature detection module 351, all the processing in the feature detection module 121 of the mapping unit 120 may not be the same. For example, when a plurality of types of first attribute values are detected as attribute values in the feature detection module 121, the feature detection module 351 detects one or more types of attribute values included in the plurality of types as a second attribute value. Just do it.
- the feature matching module 352 selects one or more of the plurality of second three-dimensional points corresponding to the second attribute value. By specifying five three-dimensional points, one or more combinations including the second attribute value and one or more fifth three-dimensional points are generated. Specifically, the feature matching module 352 generates a plurality of second three-dimensional patterns for each of the plurality of two-dimensional positions on the two-dimensional image respectively associated with the plurality of attribute values detected by the feature detection module 351. Among the points, one or more second three-dimensional points to which the attribute value closest to the attribute value associated with the two-dimensional position is added are specified as the fifth three-dimensional point.
- the feature matching module 352 generates one or more combinations including the two-dimensional position on the two-dimensional image and one or more fifth three-dimensional points.
- the feature matching module 352 obtains the position and orientation of the camera 310 with respect to the vehicle 300 from the memory 353.
- the feature matching module 352 calculates the position and orientation of the vehicle 300 using the identified one or more combinations and the position and orientation of the camera 310 with respect to the acquired vehicle 300.
- the feature matching module 352 can calculate the position and orientation of the vehicle 300 more accurately as more combinations are generated.
- the memory 353 may store the position and attitude of the camera 310 with respect to the vehicle 300.
- the memory 353 may store the second three-dimensional point group obtained by the decoding by the decoding unit 340.
- the memory 353 is realized by, for example, a non-volatile storage device such as a flash memory or a hard disk drive (HDD).
- the three-dimensional point group data generation device 100 generates a plurality of third-order points constituting a first three-dimensional point group obtained using a distance sensor such as LiDAR 230.
- the feature amount of the feature point as the attribute value of the two-dimensional image corresponding to the position on the two-dimensional image obtained using the camera 210 is three-dimensional corresponding to the position on the two-dimensional image Generate a second three-dimensional point group including the second three-dimensional point attached to the point.
- the vehicle 300 as a position estimation device for estimating the self position takes a two-dimensional image of a three-dimensional object around the vehicle 300 without sensing the three-dimensional object around the vehicle 300, imaging is performed.
- the feature points corresponding to the position of the two-dimensional image obtained by the process and the feature points added to the respective second three-dimensional points of the second three-dimensional point group obtained from the three-dimensional point group data generation apparatus 100
- the self position can be efficiently estimated by comparing it with the feature quantity of.
- a pair of feature points identified by matching respective feature points of two two-dimensional images is specified, and each of the feature points of the pair is A three-dimensional point corresponding to the position is identified using the position corresponding to the two-dimensional image, and feature amounts of two feature points constituting a pair are added to the identified three-dimensional point. Therefore, a three-dimensional point corresponding to the feature point can be identified with high accuracy.
- the plurality of attribute values added to one first three-dimensional point in the generation of the second three-dimensional point group are respectively a plurality of two-dimensional images Is the attribute value detected from.
- one first three-dimensional point is a point that can be imaged from a plurality of viewpoints.
- the camera 310 captures a two-dimensional image at different positions. Therefore, the two-dimensional image obtained by the camera 310 is captured from a plurality of different viewpoints.
- the plurality of attribute values added to one first three-dimensional point in the generation of the second three-dimensional point group respectively have different attribute types. It is a different attribute value.
- the attribute value to be added to one first three-dimensional point to a plurality of different attribute values, the position on the two-dimensional image acquired for performing the position estimation in the position estimation in the vehicle 300 The correspondence between the attribute value of the corresponding two-dimensional image and the first three-dimensional point can be accurately performed.
- the position estimation method since the attribute value of the two-dimensional image obtained by imaging the three-dimensional object is added to the three-dimensional point group in advance, it is not necessary to newly sense the three-dimensional point group. Even if the second two-dimensional image around the vehicle 300 is newly imaged, the second attribute value corresponding to the position of the second two-dimensional image obtained by imaging and the second attribute value are supported.
- the self-position of the vehicle 300 can be efficiently estimated by comparing the combination of one or more fifth three-dimensional points with the first attribute value added to each three-dimensional point of the three-dimensional point group. .
- the three-dimensional point group data generation device 100 according to the above-described embodiment further calculates the degree of importance for each of the plurality of second three-dimensional points included in the second three-dimensional point group, and the calculated degree of importance May be added to the corresponding second three-dimensional points, and a third three-dimensional point group including a plurality of third three-dimensional points obtained by the addition may be generated.
- the 3D point cloud data generation device 100 transmits the third 3D point to the vehicle 300 among the plurality of third 3D points included in the third 3D point group according to the added importance. The number of third three-dimensional points may be transmitted to the vehicle 300.
- FIG. 8 is a flow chart showing an example of the operation of the three-dimensional point group data generation apparatus in the first modification. This operation is performed instead of step S5 in the sequence diagram of FIG.
- the point group registration module 123 of the mapping unit 120 further determines, for each of one or more second three-dimensional points, the attribute value added to the second three-dimensional point.
- the importance of the second three-dimensional point is calculated (S21).
- the point cloud registration module 123 adds the calculated degree of importance to each of the one or more second three-dimensional points to the second three-dimensional point, so that each has the attribute value and the degree of importance 1
- a third three-dimensional point group including the above three-dimensional points is generated. Details of the importance degree calculation process will be described later with reference to FIG.
- the encoding unit 130 of the three-dimensional point group data generation apparatus 100 generates an encoded stream using the third three-dimensional point group (S22). The details of the generation process of the coded stream will be described later with reference to FIGS. 10 and 11.
- FIG. 9 is a flowchart illustrating an example of a detailed process of calculating the degree of importance.
- the point cloud registration module 123 performs importance degree calculation processing on each of the plurality of second three-dimensional points included in the generated second three-dimensional point group. Below, the process performed about one 2nd three-dimensional point is demonstrated. In the process of calculating the degree of importance, the same process is performed for each of all the second three-dimensional points.
- the point cloud registration module 123 calculates the number of two-dimensional images in which the second three-dimensional point to be processed can be viewed (S31).
- the point cloud registration module 123 may calculate the above number by counting the number of two-dimensional images in which the second three-dimensional point to be processed is reflected in a plurality of two-dimensional images.
- the point cloud registration module 123 calculates a matching error in the matching of the plurality of feature points associated with the second three-dimensional point to be processed (S32).
- the point cloud registration module 123 may obtain the matching error from the feature matching module 122.
- the point cloud registration module 123 matches the second three-dimensional point to be processed (that is, the three-dimensional point in the accurate three-dimensional map) with the feature point associated with the second three-dimensional point.
- the matching error at is calculated (S33).
- the point cloud registration module 123 calculates the number of two-dimensional images from which the second three-dimensional point to be processed can be viewed, matching errors among a plurality of feature points of the two-dimensional image, calculated at steps S31 to S33;
- the degree of importance of the second three-dimensional point to be processed is calculated using the matching error between the three-dimensional map and the feature points (S34). For example, the point cloud registration module 123 calculates the degree of importance to a larger value as the number of two-dimensional images capable of viewing the second three-dimensional point to be processed is larger. Further, the point cloud registration module 123 calculates the importance to a smaller value, for example, as the matching error between the plurality of feature points of the two-dimensional image is larger. Further, the point cloud registration module 123 calculates the importance to a smaller value, for example, as the matching error between the three-dimensional map and the feature point is larger. Thus, importance is an index indicating that the larger the value, the more important.
- the point cloud registration module 123 acquires the three-dimensional coordinates of the second three-dimensional point to be processed (S35), and acquires the feature points of the two-dimensional image added to the second three-dimensional point to be processed (S36) .
- the point cloud registration module 123 generates the third three-dimensional point by adding the calculated degree of importance and the feature point to the acquired three-dimensional coordinates (S37).
- the three-dimensional coordinates and the feature points are acquired from the second three-dimensional point to be processed in steps S35 and S36, respectively, the second three-dimensional point to be processed is calculated in step S37.
- the third three-dimensional point may be generated by adding the degree of importance.
- the point cloud registration module 123 generates the third three-dimensional point cloud which is the three-dimensional point cloud to which the importance is further added by executing the processing of steps S31 to S37 for each of all the second three-dimensional points. Do. As shown in FIG. 10, the third three-dimensional point includes three-dimensional coordinates, feature points of each of N two-dimensional images in which the second three-dimensional point can be viewed, and importance.
- the values may be integrated. For example, if the difference between the values of the two feature amounts F0 and F1 is equal to or less than the threshold, it may be integrated into one feature amount in which the value is an average value of F0 and F1. This can reduce the amount of data of the second three-dimensional point group.
- an upper limit may be set to the value N of the number of feature amounts that can be allocated to the second three-dimensional point. For example, when the number of feature amounts is larger than N, the top N pieces may be selected using the values of the feature amounts, and the selected N feature amounts may be allocated to three-dimensional points.
- FIG. 11 is a block diagram showing an example of a functional configuration of the encoding unit.
- FIG. 12 is a flowchart illustrating an example of the detailed process of the encoding process.
- the encoding unit 130 includes a feature sorting module 131, a feature combination module 132, a memory 133, and an entropy encoding module 134.
- the process is performed on a plurality of third three-dimensional points included in the third three-dimensional point group.
- the feature sorting module 131 sorts the plurality of third three-dimensional points included in the third three-dimensional point group in descending order of importance added to each of the plurality of third three-dimensional points (S41).
- the feature combination module 132 starts loop 1 which executes the processing of the following steps S43 and S44 for each of the plurality of third three-dimensional points (S42).
- the feature combination module 132 executes loop 1 in descending order of importance.
- the feature combination module 132 determines whether the degree of importance added to the third three-dimensional point to be processed exceeds a threshold (S43).
- the threshold is a value received from the vehicle 300.
- the threshold may be set to a different value according to the specifications of the vehicle 300. That is, the threshold may be set to a larger value as the information processing capability and / or the detection capability of the vehicle 300 is larger.
- the feature combination module 132 determines that the degree of importance added to the third three-dimensional point to be processed exceeds the threshold (Yes in S43), the feature combination module 132 executes the process of step S44.
- the feature combination module 132 determines that the degree of importance added to the third three-dimensional point to be processed is less than the threshold (No in S43), the feature combination module 132 executes the process of step S45. Thus, loop 1 ends.
- step S44 the feature combination module 132 adds the third three-dimensional point to be processed as data to be encoded (S44). After step S44, the feature combination module 132 executes loop 1 with the next third three-dimensional point as a processing target.
- the feature combination module 132 executes steps S43 and S44 to extract a plurality of fourth three-dimensional points to which importance beyond the threshold is added among the plurality of third three-dimensional points.
- step S41 may not necessarily be performed.
- loop 1 is executed for all the plurality of third three-dimensional points, and loop 1 is repeated for the next third three-dimensional point even when it is determined No in step S43. It becomes.
- the entropy coding module 134 performs entropy coding on the plurality of third three-dimensional points set as data to be coded, and generates a coded stream (S45).
- the entropy encoding module 134 may generate the encoded stream by, for example, representing the encoding target data as an octree tree structure, converting it into binary data, and performing arithmetic encoding.
- the generated encoded stream is transmitted to the vehicle 300 which has transmitted the threshold in step S6 of FIG.
- each of the plurality of second three-dimensional points is added to the second three-dimensional point.
- Calculating the degree of importance of the second three-dimensional point based on the selected attribute value, and (ii) adding the calculated degree of importance to the second three-dimensional point, each having an attribute value and degree of importance Generate a third three-dimensional point cloud that includes one or more third three-dimensional points. Therefore, for example, since the third three-dimensional point having a high degree of importance can be preferentially used, the data amount of the three-dimensional point group data used for the process is adjusted so as not to adversely affect the processing accuracy. can do.
- the threshold is further received from the vehicle 300 which is the client device, and the importance exceeding the received threshold is one of the one or more third three-dimensional points.
- the plurality of added fourth three-dimensional points are extracted, and a fourth three-dimensional point group including the extracted plurality of fourth three-dimensional points is transmitted to the client device. Therefore, according to the request of the vehicle 300, it is possible to adjust the amount of data of the three-dimensional point cloud data to be transmitted.
- the encoding part 130 of the three-dimensional point-group data generation apparatus 100 in the said modification 1 presupposed that a threshold value is acquired from the vehicle 300, you may acquire the number of three-dimensional points from the vehicle 300.
- the encoding unit 130 may encode, as the to-be-encoded data, the third three-dimensional points of the acquired number of three-dimensional points in descending order of importance.
- the three-dimensional point cloud data generation device 100 excludes the third three-dimensional point whose importance is equal to or less than the threshold from the data to be encoded by receiving the threshold from the vehicle 300 which is the client device.
- the encoding stream may be generated by encoding all the plurality of third three-dimensional points as encoding target data without being limited thereto. That is, the three-dimensional point group data generation device 100 may transmit, to the vehicle 300, data obtained by encoding all the plurality of third three-dimensional points.
- the vehicle 300 acquires a plurality of third three-dimensional points by decoding the received encoded stream. Then, the vehicle 300 may use a third three-dimensional point of importance that exceeds the threshold among the plurality of third three-dimensional points in the process of estimating the self position of the vehicle 300.
- the decoding unit 340 of the vehicle 300 may preferentially decode those having the highest degree of importance among all the three-dimensional points. As a result, the decoding unit 340 only has to decode the necessary number of three-dimensional points, so the processing load for the decoding process can be reduced. Also, in this case, if the encoded stream is encoded in descending order of importance, the decoding unit 340 decodes the encoded stream and performs decoding processing at the time of decoding a three-dimensional point of importance less than the threshold value. The decoding process may be stopped when the necessary number of three-dimensional points are obtained.
- the three-dimensional point cloud data generation device 100 can reduce the processing load for the decoding process without generating the encoded stream for each vehicle 300. Therefore, the processing load concerning the process which produces
- Vehicle 300 does not have to use the plurality of third three-dimensional points in the process of estimating its own position, and may use it in the process of reconstructing a three-dimensional image of the three-dimensional map. That is, the vehicle 300 as the client device may switch the threshold according to the application that the vehicle 300 implements. For example, when the vehicle 300 performs self-position estimation, it is determined that only the three-dimensional point with high importance is necessary, the threshold is set to the first threshold, and the client draws a map. It is considered that it is determined that the original point is necessary, and the threshold is set to a second threshold smaller than the first threshold.
- the mapping unit 120 may add a three-dimensional position calculated by matching feature points in two two-dimensional images to an accurate three-dimensional map as a three-dimensional point having feature amounts of the feature points.
- the mapping unit 120 matches feature points in one two-dimensional image with three-dimensional points of an accurate three-dimensional map, and adds feature amounts of the feature points to the three-dimensional points matched with the feature points. Also good.
- the feature point and the three-dimensional point of the accurate three-dimensional map can be obtained by back-projecting the feature point into the three-dimensional space or projecting the three-dimensional point onto the two-dimensional image using the posture of the camera 210. You may match it. That is, the mapping unit 120 specifies the three-dimensional point close to the three-dimensional position specified by the pair matching the feature points of the two two-dimensional images of the plurality of two-dimensional images, thereby obtaining the feature point and the third order.
- the feature point of one two-dimensional image and the three-dimensional point may be matched without being limited thereto.
- the mapping unit 120 (i) positions on the two-dimensional image of the attribute values among the plurality of three-dimensional points constituting the first three-dimensional point group Identifies one or more corresponding first three-dimensional points, and (ii) adds the attribute value to the one or more identified first three-dimensional points to obtain one or more first ones each having the attribute value.
- a second three-dimensional point group including two three-dimensional points may be generated.
- the three-dimensional point group set as data to be encoded may be octree-coded in an octree structure.
- the three-dimensional point cloud data generation device 100 is a server different from the vehicle 200
- the three-dimensional point cloud data generation device 100 may be included in the vehicle 200. That is, the processing by the three-dimensional point cloud data generation device 100 may be executed by the vehicle 200.
- the second three-dimensional point group or the third three-dimensional point group obtained by the vehicle 200 is transmitted to the upper server, and the upper server receives the second three-dimensional point group or the third cubic Source point clouds may be collected.
- each component may be configured by dedicated hardware or may be realized by executing a software program suitable for each component.
- Each component may be realized by a program execution unit such as a CPU or a processor reading and executing a software program recorded in a recording medium such as a hard disk or a semiconductor memory.
- software for realizing the three-dimensional point cloud data generation method or the position estimation method of each of the above embodiments is a program as follows.
- this program is a three-dimensional point group generation method for generating a three-dimensional point group including a plurality of three-dimensional points using a processor in a computer, and is obtained by imaging a three-dimensional object using a camera.
- the acquired two-dimensional image and the first three-dimensional point group obtained by sensing the three-dimensional object using a distance sensor, and from the acquired At least one attribute value of the two-dimensional image corresponding to the position is detected, and for each of the detected one or more attribute values, (i) a plurality of three-dimensional points constituting the first three-dimensional point group Identifying at least one first three-dimensional point corresponding to the position of the attribute value on the two-dimensional image, and (ii) adding the attribute value to the at least one first three-dimensional point identified. And each one To perform one or more three-dimensional point group data generation method for generating a second three-dimensional point group including the second three-dimensional point having a serial attribute value.
- this program is a position estimation method for estimating the current position of a moving object using a processor in a computer, wherein first attribute values, which are attribute values of a first two-dimensional image obtained by imaging a three-dimensional object, Acquiring a three-dimensional point group including a plurality of three-dimensional points added in advance, acquiring a second two-dimensional image of the periphery of the moving object, which is imaged by a camera included in the moving object, One or more second attribute values which are attribute values of the second two-dimensional image corresponding to a position on the second two-dimensional image are detected from the two-dimensional image, and the one or more second attribute values detected For each of the plurality of three-dimensional points, by specifying one or more fifth three-dimensional points corresponding to the second attribute value, the second attribute value and the one or more fifth three-dimensional points One or more combinations consisting of Obtaining the position and orientation of the camera with respect to the moving object from a storage device, and using the generated one or more combinations and the acquired position and orientation of the
- the present disclosure is useful as a three-dimensional point cloud data generation method, a position estimation method, a three-dimensional point cloud data generation device, and a position estimation device that can be further improved.
- Position estimation system 100 Three-dimensional point cloud data generation apparatus 110 Communication part 120 Mapping part 121, 351 Feature detection module 122, 352 Feature matching module 123 Point cloud registration module 124 Triangulation module 125 Position / attitude calculation module 126, 133, 250, 353 memory 130 encoding unit 131 feature sorting module 132 feature combination module 134 entropy encoding module 140, 370 external memory 200, 300 vehicle 210, 310 camera 220, 240, 320 acquisition unit 230 LiDAR 260, 330 Communication unit 340 Decoding unit 350 Position estimation unit 360 Control unit 400 Communication network 410 Base station
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Optics & Photonics (AREA)
- Electromagnetism (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Length Measuring Devices By Optical Means (AREA)
- Traffic Control Systems (AREA)
- Image Analysis (AREA)
Abstract
三次元点群データ生成方法は、プロセッサを用いて1以上の三次元点を備える三次元点群を生成する三次元点群データ生成方法であって、距離センサを用いて三次元オブジェクトをセンシングすることにより得られた第1三次元点群と、カメラを用いて三次元オブジェクトを撮像することにより得られた二次元画像とを取得し(S11、S12)、取得された二次元画像から、二次元画像上の位置に対応する二次元画像の属性値を1以上検出し、検出された1以上の属性値のそれぞれについて、(i)第1三次元点群を構成する複数の三次元点のうちで当該属性値の二次元画像上の位置が対応する1以上の第1三次元点を特定し(S16)、(ii)特定された1以上の第1三次元点に当該属性値を付加することで、それぞれが属性値を有する1以上の第2三次元点を含む第2三次元点群を生成する(S17)。
Description
本開示は、三次元点群データ生成方法、位置推定方法、三次元点群データ生成装置、および、位置推定装置に関する。
特許文献1には、三次元形状データを転送する方法について開示されている。特許文献1では、三次元形状のデータが、例えば、ポリゴンやボクセルなどの要素毎に、ネットワークに送り出される。そして、受信側では、その三次元形状のデータが取り込まれ、受け取った要素毎に画像展開して表示される。
しかしながら、上記特許文献に係る技術には、更なる改善が必要とされていた。
上記目的を達成するために、本開示の一態様に係る三次元点群データ生成方法は、プロセッサを用いて複数の三次元点を含む三次元点群を生成する三次元点群生成方法であって、カメラを用いて三次元オブジェクトを撮像することにより得られた二次元画像と、距離センサを用いて前記三次元オブジェクトをセンシングすることにより得られた第1三次元点群とを取得し、取得された前記二次元画像から、前記二次元画像上の位置に対応する前記二次元画像の属性値を1以上検出し、検出された前記1以上の属性値のそれぞれについて、(i)前記第1三次元点群を構成する複数の三次元点のうちで当該属性値の前記二次元画像上の位置が対応する1以上の第1三次元点を特定し、(ii)特定された前記1以上の第1三次元点に当該属性値を付加することで、それぞれが前記属性値を有する1以上の第2三次元点を含む第2三次元点群を生成する。
また、本開示の一態様に係る位置推定方法は、プロセッサを用いて移動体の現在位置を推定する位置推定方法であって、三次元オブジェクトを撮像した第1二次元画像の属性値である第1属性値がそれぞれ予め付加された複数の三次元点を含む三次元点群を取得し、前記移動体が備えるカメラにより撮像された、前記移動体の周囲の第2二次元画像を取得し、取得された前記第2二次元画像から、前記第2二次元画像上の位置に対応する前記第2二次元画像の属性値である第2属性値を1以上検出し、検出された前記1以上の第2属性値のそれぞれについて、前記複数の三次元点のうちで、当該第2属性値に対応する1以上の第5三次元点を特定することで当該第2属性値および前記1以上の第5三次元点により構成される組合せを1以上生成し、記憶装置から前記移動体に対する前記カメラの位置および姿勢を取得し、生成された前記1以上の組合せと、取得された前記カメラの位置および姿勢とを用いて前記移動体の位置および姿勢を算出する。
なお、これらの全般的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
本開示は、更なる改善を図ることができる。
(本開示の基礎となった知見)
三次元点群データは、製造、建築において普及しており、近年、自律走行などの情報技術アプリケーションにおいて重要になってきている。三次元点群データは、通常、データの格納、および、データの処理において大きく非効率的である。このため、実際のアプリケーションで三次元点群データを利用するために、コンパクトなサイズに圧縮した三次元点群データを生成することが求められている。このように、三次元点群データのデータ量を削減できることが必要とされていた。また、データ量を削減した三次元点群データを用いて、自己位置を推定することも必要とされていた。
三次元点群データは、製造、建築において普及しており、近年、自律走行などの情報技術アプリケーションにおいて重要になってきている。三次元点群データは、通常、データの格納、および、データの処理において大きく非効率的である。このため、実際のアプリケーションで三次元点群データを利用するために、コンパクトなサイズに圧縮した三次元点群データを生成することが求められている。このように、三次元点群データのデータ量を削減できることが必要とされていた。また、データ量を削減した三次元点群データを用いて、自己位置を推定することも必要とされていた。
本開示は、三次元点群データのデータ量を効果的に削減することができる、三次元点群データ生成方法および三次元点群データ生成装置、並びに、データ量を削減した三次元点群データを用いて、自己位置を推定することができる位置推定方法および位置推定装置を提供することを目的とする。
本開示の一態様に係る三次元点群データ生成方法は、プロセッサを用いて複数の三次元点を含む三次元点群を生成する三次元点群生成方法であって、カメラを用いて三次元オブジェクトを撮像することにより得られた二次元画像と、距離センサを用いて前記三次元オブジェクトをセンシングすることにより得られた第1三次元点群とを取得し、取得された前記二次元画像から、前記二次元画像上の位置に対応する前記二次元画像の属性値を1以上検出し、検出された前記1以上の属性値のそれぞれについて、(i)前記第1三次元点群を構成する複数の三次元点のうちで当該属性値の前記二次元画像上の位置が対応する1以上の第1三次元点を特定し、(ii)特定された前記1以上の第1三次元点に当該属性値を付加することで、それぞれが前記属性値を有する1以上の第2三次元点を含む第2三次元点群を生成する。
これによれば、距離センサを用いて得られた第1三次元点群を構成する複数の三次元点のうちで、カメラを用いて得られた二次元画像上における位置に対応する二次元画像の属性値を、当該二次元画像上における位置に対応する三次元点に付加した第2三次元点を含む第2三次元点群を生成する。このため、自己位置を推定する位置推定装置では、新たに三次元点群をセンシングしなくても、新たに自装置の周囲の二次元画像を撮像すれば、撮像して得られた二次元画像の位置に対応する属性値と、第2三次元点群の各第2三次元点に付加された属性値とを比較することで、自己位置を効率よく推定することができる。
また、前記取得では、それぞれが、互いに異なる位置および/または姿勢における前記カメラにより撮像されることにより得られた複数の前記二次元画像を取得し、前記検出では、取得された前記複数の二次元画像のそれぞれについて、前記1以上の属性値を検出し、前記三次元点群データ生成方法は、さらに、前記複数の二次元画像のそれぞれについて検出された前記1以上の属性値を用いて、前記複数の二次元画像のうちの2枚の二次元画像で対応する属性値をマッチングすることで、マッチングされた属性値のペアを1以上出力し、前記特定では、前記1以上のペアのそれぞれについて、当該ペアを構成する2つの属性値のそれぞれの前記二次元画像上の位置と、前記2枚の二次元画像のそれぞれが撮像されたときの前記カメラの位置および姿勢とを用いて、前記複数の三次元点のうちで当該ペアを構成する前記2つの属性値の前記二次元画像上の位置が対応する前記1以上の第1三次元点を特定し、前記生成では、前記1以上のペアのそれぞれについて、特定された前記1以上の第1三次元点に当該ペアを構成する前記2つの属性値に基づく属性値を付加することで、前記第2三次元点群を生成してもよい。
これによれば、2枚の二次元画像のそれぞれの属性値をマッチングすることで特定された属性値のペアを特定し、ペアの属性値それぞれの二次元画像に対応する位置を用いて当該位置に対応する三次元点を特定し、特定した三次元点にペアを構成する2つの属性値を付加する。このため、属性値に対応する三次元点を精度よく特定することができる。
また、前記生成では、特定された1つの前記第1三次元点に複数の前記属性値を付加することで、前記第2三次元点を生成してもよい。
これによれば、1つの第1三次元点に付加する属性値の数を複数とするため、位置推定において、位置推定を行うために取得する、二次元画像上の位置に対応する二次元画像の属性値と、第1三次元点との対応付けを精度よく行うことができる。
また、前記生成において前記1つの第1三次元点に付加される前記複数の属性値は、それぞれ、複数の前記二次元画像から検出された属性値であってもよい。
1つの第1三次元点は、複数の視点から撮像されうる。また、位置推定では、異なる位置で二次元画像を撮像するため、得られる二次元画像は、異なる複数の視点から撮像される。このため、複数の二次元画像から検出された複数の属性値を付加することで、位置推定において、異なる複数の視点それぞれで撮像された二次元画像を用いても、それぞれの二次元画像から得られる属性値と第1三次元点との対応付けを容易に行うことができる。よって、位置推定を容易に行うことができる。
また、前記生成において前記1つの第1三次元点に付加される前記複数の属性値は、それぞれ、属性の種類が互いに異なる属性値であってもよい。
これによれば、1つの第1三次元点に付加する属性値を異なる複数種類の属性値とするため、位置推定において、位置推定を行うために取得する、二次元画像上の位置に対応する二次元画像の属性値と、第1三次元点との対応付けを精度よく行うことができる。
また、前記検出では、取得された前記二次元画像を構成する複数の領域毎に算出された特徴量を、前記二次元画像上の位置に対応する前記二次元画像の前記1以上の属性値として検出してもよい。
このため、二次元画像の位置における特徴量を所定の方法で容易に算出することができる。
また、前記生成では、さらに、前記1以上の第2三次元点のそれぞれについて、(i)当該第2三次元点に付加された前記属性値に基づいて当該第2三次元点の重要度を算出し、(ii)算出された前記重要度を、当該第2三次元点に付加することで、それぞれが前記属性値および前記重要度を有する1以上の第3三次元点を含む第3三次元点群を生成してもよい。
このため、例えば、クライアント機器は、重要度が大きい第3三次元点ほど優先的に利用することができるため、処理の精度に悪影響を与えないように、処理に利用する三次元点群データのデータ量を調整することができる。
また、さらに、クライアント機器から閾値を受信し、前記1以上の第3三次元点のうち、受信された前記閾値を超える重要度が付加されている1以上の第4三次元点を抽出し、抽出された前記1以上の第4三次元点を含む第4三次元点群を前記クライアント機器に送信してもよい。
このため、クライアント機器の要求に応じて、送信する三次元点群データのデータ量を調製することができる。
また、本開示の一態様に係る位置推定方法は、プロセッサを用いて移動体の現在位置を推定する位置推定方法であって、三次元オブジェクトを撮像した第1二次元画像の属性値である第1属性値がそれぞれ予め付加された複数の三次元点を含む三次元点群を取得し、前記移動体が備えるカメラにより撮像された、前記移動体の周囲の第2二次元画像を取得し、取得された前記第2二次元画像から、前記第2二次元画像上の位置に対応する前記第2二次元画像の属性値である第2属性値を1以上検出し、検出された前記1以上の第2属性値のそれぞれについて、前記複数の三次元点のうちで、当該第2属性値に対応する1以上の第5三次元点を特定することで当該第2属性値および前記1以上の第5三次元点により構成される組合せを1以上生成し、記憶装置から前記移動体に対する前記カメラの位置および姿勢を取得し、生成された前記1以上の組合せと、取得された前記カメラの位置および姿勢とを用いて前記移動体の位置および姿勢を算出する。
これによれば、三次元オブジェクトを撮像した二次元画像の属性値が予め三次元点群に付加されているため、新たに三次元点群をセンシングしなくても、新たに自装置の周囲の第2二次元画像を撮像すれば、撮像して得られた第2二次元画像の位置に対応する第2属性値、および、当該第2属性値に対応する1以上の第5三次元点の組合せと、三次元点群の各三次元点に付加された第1属性値とを比較することで、自己位置を効率よく推定することができる。
なお、これらの全般的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムまたは記録媒体の任意な組み合わせで実現されてもよい。
以下、本開示の一態様に係る三次元点群データ生成方法、位置推定方法、三次元点群データ生成装置、および、位置推定装置について、図面を参照しながら具体的に説明する。
なお、以下で説明する実施の形態は、いずれも本開示の一具体例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置および接続形態、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
(実施の形態1)
まず、本実施の形態の概要を説明する。本実施の形態では、三次元点群データを用いて車両などの移動体の自己位置を推定する位置推定システムについて説明する。
まず、本実施の形態の概要を説明する。本実施の形態では、三次元点群データを用いて車両などの移動体の自己位置を推定する位置推定システムについて説明する。
図1は、位置推定システムの概要を示す図である。
図1には、三次元点群データ生成装置100と、車両200、300と、通信ネットワーク400と、移動通信システムの基地局410とが示されている。例えば、位置推定システム1は、これらの構成要素のうち、三次元点群データ生成装置100および車両200、300を備える。車両200および車両300は、互いに異なる種類の車両である。位置推定システム1では、1台の車両200を備えることに限らずに2台以上の車両200を備えていてもよいし、同様に、1台の車両300を備えることに限らずに3台以上の車両300を備えていてもよい。
三次元点群データ生成装置100は、車両200が備えるカメラ210により撮像された複数の二次元画像と、車両200が備えるLiDAR(Light Detection and Ranging、Laser Imaging Detection and Ranging)230により得られた三次元点群とを取得し、車両300による車両300の自己位置を推定するために用いる三次元点群データを生成する装置である。ここで、三次元点群データは、特徴点の特徴量が付加された複数の三次元点を含む三次元点群を示すデータである。特徴点の特徴量が付加された複数の三次元点については、後述する。三次元点群データ生成装置100は、例えば、サーバである。
車両200は、カメラ210およびLiDAR230を備え、車両200の周囲の三次元オブジェクトの二次元画像を撮像し、かつ、当該三次元オブジェクトの三次元点群を検出する車両である。三次元点群は、例えば、車両200の周囲の三次元オブジェクトの表面の複数の位置それぞれを示す複数の三次元座標(X、Y、Z)により構成される。車両200は、例えば、道路を走行しながらカメラ210による撮像を、異なる複数のタイミングで行うことで、それぞれのタイミングにおける車両200の位置から車両200のカメラ210が撮像した二次元画像を生成する。つまり、車両200は、移動経路を移動しながらカメラ210による撮像を異なる複数のタイミングで行う。このため、複数の二次元画像は、それぞれが、互いに異なる位置および/または姿勢におけるカメラ210により撮像されることにより得られることとなる。また、車両200は、例えば、道路を走行しながらLiDAR230によるセンシングを複数の異なるタイミングで行うことで、それぞれのタイミングにおける車両200の位置から車両200のLiDAR230がセンシングした三次元点群を生成する。
LiDAR230によるセンサデータは、車両200のカメラ210により撮像された二次元画像と、当該二次元画像を撮像したときのカメラ210の位置および姿勢を特定するために用いられてもよい。この場合、一般的な車両が自己位置を推定するために用いる正確な三次元マップ(Accurate 3D map)は、車両200とは異なる別の機器により得られた三次元点群を用いて生成されてもよい。正確な三次元マップは、第1三次元点群の一例であり、複数の三次元点により構成される。複数の三次元点は、例えば、X軸方向、Y軸方向およびZ軸方向の異なる三方向の座標で示されてもよい。
LiDAR230によるセンサデータは、一般的な車両が自己位置を推定するために用いる正確な三次元マップを生成するために用いられてもよい。この場合、LiDAR230は、一般の車両が自動運転または運転支援に用いるLiDARよりも、例えば、精度よく、多くの三次元点を計測することが可能な距離センサである。つまり、車両200は、自己位置推定に用いられる正確な三次元マップを生成するための三次元点群および二次元画像を取得するセンシング装置である。
なお、カメラ210による撮像のタイミングと、LiDAR230によるセンシングのタイミングとは、同期されていてもよいし、同期されていなくてもよい。カメラ210による撮像のタイミングと、LiDAR230によるセンシングのタイミングとは、互いに同じタイミングであってもよいし、互いに異なるタイミングであってもよい。
車両300は、カメラ310を備え、車両300の周囲の三次元オブジェクトの二次元画像を撮像する車両である。車両300は、カメラ310の撮像により得られた二次元画像と、三次元点群データ生成装置100から取得した三次元点群とを用いて、車両300の自己位置を推定する。車両300は、自己位置の推定結果を用いて、自動運転または運転支援を行う。つまり、車両300は、クライアント機器として機能する。
通信ネットワーク400は、インターネットなどの汎用のネットワークであってもよいし、専用のネットワークであってもよい。基地局410は、例えば、第3世代移動通信システム(3G)、第4世代移動通信システム(4G)、LTE(登録商標)、第5世代移動通信システム(5G)などのような移動通信システムで利用される基地局である。
次に、位置推定システムの機能構成の具体例について図2を用いて説明する。
図2は、位置推定システムの機能構成の一例を示すブロック図である。
まず、三次元点群データ生成装置100の機能構成について説明する。
三次元点群データ生成装置100は、通信部110と、マッピング部120と、符号化部130と、外部メモリ140とを備える。
通信部110は、通信ネットワーク400を介して車両200、300と通信する。通信部110は、二次元画像および三次元点群を、通信ネットワーク400を介した通信により車両200から受信することで取得する。また、通信部110は、LiDAR230に対するカメラ210の相対的な位置および姿勢を、通信ネットワーク400を介した通信により車両200から受信することで取得してもよい。また、通信部110は、車両300へ、特徴点の特徴量が付加された三次元点群を、通信ネットワーク400を介した通信により送信する。また、通信部110は、図示しない上位サーバへ、特徴点の特徴量が付加された三次元点群を、通信ネットワーク400を介した通信により送信してもよい。
なお、三次元点群データ生成装置100は、LiDAR230に対するカメラ210の相対的な位置および姿勢を、車両200の車種毎、または、車両毎のテーブルとして、予め外部メモリ140などの不揮発性の記憶装置に記憶していてもよい。この場合、三次元点群データ生成装置100は、車両200から車種または車両を特定するための情報を取得することで、車両200におけるLiDAR230に対するカメラ210の相対的な位置および姿勢を、不揮発性の記憶装置に記憶されているテーブルから特定することで取得してもよい。
なお、通信部110は、通信ネットワーク400に通信接続できる通信インタフェースにより実現される。具体的には、通信部110は、移動通信システムの基地局410との通信接続により、通信ネットワーク400と通信接続する。通信部110は、例えば、第3世代移動通信システム(3G)、第4世代移動通信システム(4G)、LTE(登録商標)、第5世代移動通信システム(5G)などのような移動通信システムで利用される通信規格に適合した無線通信インタフェースにより実現されてもよい。また、通信部110は、例えば、IEEE802.11a、b、g、n、ac規格に適合した無線LAN(Local Area Network)インタフェースにより実現されてもよく、図示しないルータ(例えば、モバイル無線LANルータ)との通信接続により、通信ネットワーク400と通信接続する通信インタフェースにより実現されてもよい。
マッピング部120は、通信部110により取得された二次元画像および三次元点群を用いて、二次元画像から検出された属性値を、三次元点群を構成する複数の三次元点に付加するマッピング処理を行う。マッピング部の詳細は、図6および図7を用いて後述する。
符号化部130は、マッピング処理により得られた三次元点群を符号化することで符号化ストリームを生成する。符号化部130は、生成した符号化ストリームを外部メモリ140に格納してもよい。また、符号化部130は、生成した符号化ストリームを通信部110に、通信ネットワーク400を介して車両300へ送信させてもよい。符号化部130による符号化処理の詳細は、図8および図9を用いて後述する。
マッピング部120および符号化部130のそれぞれは、プロセッサおよびメモリにより実現されてもよいし、専用回路により実現されてもよい。つまり、マッピング部120および符号化部130は、ソフトウェアにより実現されてもよいし、ハードウェアにより実現されてもよい。
外部メモリ140は、例えば、プログラムなどのような、プロセッサが必要とする情報を格納してもよい。外部メモリ140は、属性値が付加された三次元点群、符号化ストリームなどのような、プロセッサの処理で生じたデータを格納してもよい。外部メモリ140は、例えば、フラッシュメモリ、HDD(Hard Disk Drive)などの不揮発性記憶装置により実現される。
車両200は、カメラ210と、取得部220と、LiDAR230と、取得部240と、メモリ250と、通信部260とを備える。
カメラ210は、車両200の周囲の三次元空間上における三次元オブジェクトを撮像することで二次元画像を得る。カメラ210は、車両200に対して所定の位置および所定の姿勢で配置されている。例えば、カメラ210は、車両200の車室内に配置されていてもよいし、車室外に配置されていてもよい。また、カメラ210は、車両200の前方を撮像してもよいし、車両200の右側方または左側方を撮像してもよいし、車両200の後方を撮像してもよいし、車両200の360度全方位を撮像してもよい。カメラ210は、1つのカメラで構成されていてもよいし、2つ以上のカメラで構成されていてもよい。カメラ210は、異なる複数のタイミングにおいて撮像することにより、複数の二次元画像を得てもよい。カメラ210は、予め定められたフレームレートで複数の二次元画像としての複数のフレームを含む動画像を撮像してもよい。
取得部220は、カメラ210に対応して設けられ、カメラ210において異なる複数のタイミングで撮像されることにより得られた二次元画像を記憶し、記憶した二次元画像を通信部260に出力する。二次元画像には、当該二次元画像が撮像されたタイミングが対応付けられている。取得部220は、カメラ210に内蔵される処理部であってもよい。つまり、カメラ210は、取得部220の機能を有していてもよい。
LiDAR230は、車両200の周囲の三次元空間上における三次元オブジェクトをセンシングすることにより三次元点群を得る。LiDAR230は、車両200に保持され、車両200の水平方向において360度全方位、および、垂直方向において所定の角度(例えば30度)の角度範囲の検出範囲にある三次元オブジェクトとの距離を検出するレーザセンサである。LiDAR230は、距離センサの一例である。LiDAR230は、周囲にレーザを発し、周囲の物体に反射されたレーザを検知することで、LiDAR230から三次元オブジェクトまでの距離を計測する。LiDAR230は、例えば、センチメートルオーダーで当該距離を計測する。このように、LiDAR230は、車両200の周囲の地形表面の複数の点それぞれの三次元座標を検出する。つまり、LiDAR230は、周囲の地形表面の複数の三次元座標を検出することで、車両200の周囲の物体を含む地形の三次元形状を検出する。このように、LiDAR230では、複数の点の三次元座標で構成される三次元点群であって、車両200の周囲の物体を含む地形の三次元形状を示す三次元点群が得られる。なお、距離センサは、LiDAR230に限らずに、ミリ波レーダ、超音波センサ、ToF(Time of Flight)カメラ、ステレオカメラなどのような他の距離センサであってもよい。
取得部240は、LiDAR230に対応して設けられ、異なる複数のタイミングでLiDAR230においてセンシングされることにより得られた三次元点群を記憶し、記憶した三次元点群を通信部260に出力する。三次元点群には、当該三次元点群がセンシングされたタイミングが対応付けられている。取得部240は、LiDAR230に内蔵される処理部であってもよい。つまり、LiDAR230は、取得部240の機能を有していてもよい。
メモリ250は、車両200に対するカメラ210の位置および姿勢と、車両200に対するLiDAR230の位置および姿勢とを記憶している。また、メモリ250は、LiDAR230に対するカメラ210の相対的な位置および姿勢を記憶していてもよい。LiDAR230に対するカメラ210の相対的な位置および姿勢は、LiDAR230が出力するレーザ光の強度と、カメラ210により撮像されたLiDAR230によるレーザ光の三次元オブジェクトにおける反射光を含む二次元画像とを、相互情報量のような方法を用いてマッチングさせることで、検出してもよいし、カメラ210およびLiDAR230以外の機器を用いて検出してもよい。メモリ250は、例えば、不揮発性記憶装置により実現される。
通信部260は、通信ネットワーク400を介して三次元点群データ生成装置100と通信する。通信部260は、二次元画像および三次元点群を、通信ネットワーク400を介した通信により三次元点群データ生成装置100へ送信する。また、通信部260は、LiDAR230に対するカメラ210の相対的な位置および姿勢を、通信ネットワーク400を介した通信により三次元点群データ生成装置100へ送信してもよい。
なお、通信部260は、通信ネットワーク400に通信接続できる通信インタフェースにより実現される。具体的には、通信部260は、移動通信システムの基地局410との通信接続により、通信ネットワーク400と通信接続する。通信部260は、例えば、第3世代移動通信システム(3G)、第4世代移動通信システム(4G)、LTE(登録商標)、第5世代移動通信システム(5G)などのような移動通信システムで利用される通信規格に適合した無線通信インタフェースにより実現されてもよい。
次に、車両300の機能構成について説明する。
図3は、クライアント機器としての車両の機能構成の一例を示すブロック図である。
車両300は、カメラ310と、取得部320と、通信部330と、復号部340と、位置推定部350と、制御部360と、外部メモリ370とを備える。
カメラ310は、車両300に対して所定の位置および所定の姿勢で配置されており、車両300の周囲の三次元空間上における三次元オブジェクトを撮像する。カメラ310は、車両300に配置される点でカメラ210とは異なるが、それ以外においてカメラ210と同様の構成であるため、カメラ210の説明において、カメラ210をカメラ310に読み替え、車両200を車両300に読み替えることで説明できる。このため、カメラ310の詳細な説明を省略する。
取得部320は、カメラ310に対応して設けられ、カメラ310において撮像されることにより得られた二次元画像を記憶し、記憶した二次元画像を位置推定部350に出力する。取得部320は、カメラ310に内蔵される処理部であってもよい。つまり、カメラ310は、取得部320の機能を有していてもよい。
通信部330は、通信ネットワーク400を介して三次元点群データ生成装置100と通信する。通信部330は、三次元点群データ生成装置100から符号化ストリームを、通信ネットワーク400を介した通信により受信することで取得する。また、通信部330は、通信負荷を軽減するために、後述する重要度に関する閾値を、通信ネットワーク400を介して三次元点群データ生成装置100に送信してもよい。
通信部330は、三次元点群データ生成装置100が有する三次元点群に含まれる複数の三次元点の全てを取得してもよい。なお、通信部330は、三次元点群データ生成装置100から三次元点群を取得する場合、図示しないGPS(Global Positioning System)などのような粗い精度の位置検出デバイスにより検出される車両300の位置を基準とする所定の領域の三次元点群を、上記の全ての三次元点として取得してもよい。これにより、世界中の全ての道路などのような、移動体の移動経路の周辺の三次元点群を取得しなくてもよく、取得する三次元点群のデータ量を低減することができる。また、通信部330は、全ての三次元点を取得しなくてもよく、三次元点群データ生成装置100に上記閾値を送信することで上記複数の三次元点のうちで、閾値よりも重要度の大きい複数の三次元点を取得し、閾値以下の重要度の複数の三次元点を取得しなくてもよい。
なお、通信部330は、通信ネットワーク400に通信接続できる通信インタフェースにより実現される。具体的には、通信部330は、移動通信システムの基地局410との通信接続により、通信ネットワーク400と通信接続する。通信部330は、例えば、第3世代移動通信システム(3G)、第4世代移動通信システム(4G)、LTE(登録商標)、第5世代移動通信システム(5G)などのような移動通信システムで利用される通信規格に適合した無線通信インタフェースにより実現されてもよい。
復号部340は、通信部330により取得された符号化ストリームを復号することで、属性値が付加された三次元点群を生成する。
位置推定部350は、カメラ310により得られた二次元画像と、復号部340において復号されることで得られた、属性値が付加された三次元点群とを用いて、当該三次元点群におけるカメラ310の位置および姿勢を推定することで、車両300の位置および姿勢を推定する。
制御部360は、車両300の運転を制御する。具体的には、制御部360は、車輪の操舵を行うステアリング、車輪を回転駆動させるエンジン、モータなどの動力源、車輪の制動するブレーキなどを制御することで、車両300の自動運転または運転支援を行う。例えば、制御部360は、車両300の現在位置、車両300の目的地、および周囲の道路情報を用いて、車両300がどの道路を走行するかを示す経路を決定する。また、制御部360は、決定した経路上を走行するようにステアリング、動力源およびブレーキを制御する。
復号部340、位置推定部350および制御部360は、プロセッサにより実現されてもよいし、専用回路により実現されてもよい。つまり、復号部340、位置推定部350および制御部360は、ソフトウェアにより実現されてもよいし、ハードウェアにより実現されてもよい。
外部メモリ370は、例えば、プログラムなどのような、プロセッサが必要とする情報を格納してもよい。外部メモリ370は、属性値が付加された三次元点群、符号化ストリームなどのような、プロセッサの処理で生じたデータを格納してもよい。外部メモリ370は、例えば、フラッシュメモリ、HDD(Hard Disk Drive)などの不揮発性記憶装置により実現される。
次に、位置推定システム1の動作について説明する。
図4は、位置推定システムの動作の一例を示すシーケンス図である。図5は、位置推定システムの動作を説明するための図である。
まず、車両200は、カメラ210が車両200の周囲の三次元空間上における三次元オブジェクトを撮像することにより得られた二次元画像、および、LiDAR230が車両200の周囲の三次元空間上における三次元オブジェクトをセンシングすることにより得られた三次元点群を、通信ネットワーク400を介して三次元点群データ生成装置100に送信する(S1)。なお、車両200における詳細な処理は、図2を用いて既に説明したため省略する。
次に、三次元点群データ生成装置100では、通信部110は、車両200から通信ネットワーク400を介して、二次元画像および三次元点群を取得する(S3)。
そして、マッピング部120は、通信部110により取得された二次元画像および三次元点群を用いて、二次元画像から検出された属性値を、三次元点群を構成する複数の三次元点に付加するマッピング処理を行う(S4)。
次に、マッピング処理の詳細について、マッピング部120の詳細な構成と共に、図6および図7を用いて後述する。
図6は、マッピング部の機能構成の一例を示すブロック図である。図7は、マッピング処理の詳細な処理の一例を示すフローチャートである。
図6に示すように、マッピング部120は、特徴検出モジュール121と、特徴マッチングモジュール122と、点群登録モジュール123と、三角測量モジュール124と、位置姿勢算出モジュール125と、メモリ126とを有する。
マッピング部120には、二次元画像と、二次元画像が撮像されたタイミングに対応するタイミングでセンシングされた三次元点群が入力されることを前提として説明する。つまり、マッピング部120は、互いに対応するタイミングで、撮像された二次元画像と、センシングされた三次元点群とを対応付けてマッピング処理を行う。なお、二次元画像が撮像されたタイミングで得られた三次元点群は、当該二次元画像が撮像されたタイミングに最も近いタイミングでセンシングされた三次元点群としてもよいし、当該二次元画像が撮像されるタイミングより前にセンシングされた最新の三次元点群としてもよい。また、互いに対応するタイミングで得られた二次元画像および三次元点群は、カメラ210による撮像のタイミングと、LiDAR230によるセンシングのタイミングとが同期されている場合には、同一のタイミングにより得られた二次元画像および三次元画像としてもよい。
特徴検出モジュール121は、通信部110により取得された複数の二次元画像それぞれの特徴点を検出する(S11)。特徴検出モジュール121は、特徴点における特徴量を検出する。特徴量は、例えば、ORB(Oriented FAST and Rotated BRIEF)、SIFT、DAISYなどである。また、特徴量は、256ビットのデータ列で表されてもよい。また、特徴量には、二次元画像における各画素の輝度値が用いられてもよし、RGB値などで表される色が用いられてもよい。特徴点の特徴量は、二次元画像上の位置に対応する二次元画像の属性値の一例である。特徴量は、二次元画像上の位置に対応していれば特徴点の特徴量であることに限らずに、複数の領域毎に算出された特徴量であればよい。複数の領域は、二次元画像を構成する領域であり、各領域は、二次元画像の1画素であってもよいし、複数の画素の集合により構成されるブロックであってもよい。
位置姿勢算出モジュール125は、正確な三次元マップをメモリ126または外部メモリ140から取得し、取得した正確な三次元マップと、通信部110により取得された三次元点群、つまり、LiDAR230の検出結果である三次元点群とを用いて、正確な三次元マップにおけるLiDAR230の位置および姿勢を特定する(S12)。位置姿勢算出モジュール125は、例えば、ICP(Iterative Closest Point)などのようなパターンマッチングのアルゴリズムを用いて、LiDAR230の検出結果である三次元点群と、正確な三次元マップを構成している三次元点群とのマッチングを行う。これにより、位置姿勢算出モジュール125は、正確な三次元マップにおけるLiDAR230の位置および姿勢を特定する。なお、位置姿勢算出モジュール125は、正確な三次元マップを、三次元点群データ生成装置100の外部の上位サーバから取得してもよい。
次に、位置姿勢算出モジュール125は、正確な三次元マップにおけるLiDAR230の位置および姿勢と、メモリ250に記憶されているLiDAR230に対するカメラ210の相対的な位置および姿勢と取得する。そして、位置姿勢算出モジュール125は、取得した正確な三次元マップにおけるLiDAR230の位置および姿勢と、メモリ250に記憶されているLiDAR230に対するカメラ210の相対的な位置および姿勢とを用いて、複数の二次元画像それぞれが撮像されたタイミングにおけるカメラ210の位置および姿勢を算出する(S13)。
次に、特徴マッチングモジュール122は、特徴検出モジュール121において検出された複数の二次元画像それぞれの特徴点と、位置姿勢算出モジュール125において算出された複数の二次元画像それぞれが撮像されたタイミングにおけるカメラ210の位置および姿勢とを用いて、複数の二次元画像のうちのペア、つまり、2枚の二次元画像それぞれにおける特徴点をマッチングする(S14)。例えば、図5の「マッチング/三角測量」に示すように、特徴マッチングモジュール122は、タイミングTでカメラ210により撮像された二次元画像I1で特徴検出モジュール121により検出された複数の特徴点のうちの特徴点P1と、タイミングTの後のタイミングT+1でカメラ210により撮像された二次元画像I2により検出された複数の特徴点のうちの特徴点P2とをマッチングする。例えば、タイミングT+1は、タイミングTの次の撮像のタイミングであってもよい。これにより、特徴マッチングモジュール122は、複数の二次元画像のそれぞれについて検出された複数の特徴点を、異なる二次元画像間において対応付けする。このように、特徴マッチングモジュール122は、複数の二次元画像のそれぞれについて検出された複数の特徴点を用いて、複数の二次元画像のうちの2枚の二次元画像で対応する特徴点をマッチングすることで、マッチングされた特徴点のペアを複数出力する。
次に、三角測量モジュール124は、特徴マッチングモジュール122においてマッチングされた複数の特徴点のペアのそれぞれについて、当該ペアを構成する2つの特徴点それぞれの二次元画像上の位置と、当該ペアの特徴点が得られた2枚の二次元画像のそれぞれが撮像されたときのカメラ210の位置および姿勢とを用いて、例えば三角測量することで、マッチングされた特徴点のペアの二次元画像上の位置が対応する三次元位置を算出する(S15)。三角測量モジュール124は、例えば、図5の「マッチング/三角測量」に示すように、二次元画像I1において検出された特徴点P1と、二次元画像I2において検出された特徴点P2とを三角測量することで三次元位置P10を算出する。ここで用いられるカメラ210の位置および姿勢は、特徴点のペアが得られた2枚の二次元画像それぞれが撮像されたタイミングにおけるカメラ210の位置および姿勢である。
次に、点群登録モジュール123は、正確な三次元マップとしての第1三次元点群を構成する複数の三次元点のうち、三角測量モジュール124において算出された三次元位置に対応する三次元点である第1三次元点を複数特定する(S16)。点群登録モジュール123は、例えば、第1三次元点群を構成する複数の三次元点のうち、1つの三次元位置に最も近い位置の三次元点を第1三次元点として特定してもよい。点群登録モジュール123は、例えば、第1三次元点群を構成する複数の三次元点のうち、1つの三次元位置を基準とする所定範囲内に含まれる1以上の三次元点を第1三次元点として特定してもよい。つまり、点群登録モジュール123は、1つの三次元位置に対応する第1三次元点として、当該1つの三次元位置を基準とした所定の条件を満たす複数の三次元点を特定してもよい。
そして、点群登録モジュール123は、複数のペアのそれぞれについて、特定された複数の第1三次元点に当該ペアを構成する2つの特徴点それぞれの特徴量を付加することで、複数の第2三次元点群により構成される第2三次元点群を生成する(S17)。なお、点群登録モジュール123は、複数のペアのそれぞれについて、特定された複数の第1三次元点に、(i)当該ペアを構成する2つの特徴点のうちの一方の特徴量を付加することで、第2三次元点群を生成してもよいし、(ii)当該ペアを構成する2つの特徴点の2つの特徴量から算出される1つの特徴量を付加することで、第2三次元点群を生成してもよい。つまり、点群登録モジュール123は、特定された複数の第1三次元点に、複数のペアの2つの特徴量に基づく特徴量を付加することで、第2三次元点群を生成すればよい。なお、2つの特徴量から算出される1つの特徴量は、例えば、平均値である。なお、ここでいう「特徴量」は、属性値の一例であるため、点群登録モジュール123における処理では、他の属性値にも適用できる。
点群登録モジュール123は、ステップS16およびS17において、例えば、図5の「対応付け」に示すように、三角測量モジュール124により得られた三次元位置P10に対応する三次元点を特定することで、三次元位置P10に対応する特徴点P1、P2それぞれの特徴量を、三次元位置P10に対応する、正確な三次元マップにおける三次元点に付加する対応付けを行う。これにより、図5に示すような、それぞれに特徴点P1、P2の特徴量が付加された複数の三次元点を含む三次元点群C1が生成される。つまり、三次元点群C1に含まれる属性値が付加された三次元点は、三次元座標と、属性値としての、特徴点P1、P2の各二次元画像における照度(輝度)、特徴量とにより構成される。つまり、三次元点には、特徴点の特徴量が付加されるだけでなく、特徴点の二次元画像における照度(輝度)またはRGB値などの色のような属性値が付加されてもよい。
なお、点群登録モジュール123は、1つの第1三次元点に複数の属性値を付加することで第2三次元点を生成してもよい。点群登録モジュール123は、例えば上述したように、複数の属性値として、複数の二次元画像それぞれから検出された複数の特徴点それぞれの特徴量を1つの第1三次元点に付加してもよい。また、点群登録モジュール123は、複数の属性値として、種類が互いに異なる属性値を1つの第1三次元点に付加してもよい。
なお、メモリ126は、正確な三次元マップを格納していてもよい。メモリ126には、予め正確な三次元マップを格納していてもよいし、通信部110により上位サーバから受信された正確な三次元マップを格納していてもよい。メモリ126は、例えば、フラッシュメモリ、HDD(Hard Disk Drive)などの不揮発性記憶装置により実現される。
このように、点群登録モジュール123は、ステップS4のマッピング処理が行われることで、特徴点の特徴量が付加された複数の三次元点である複数の第2三次元点を含む第2三次元点群を生成する。
図4に戻り、ステップS4の後において、符号化部130は、マッピング部120において生成された第2三次元点群を符号化することで、符号化ストリームを生成する(S5)。
そして、通信部110は、符号化部130において生成された符号化ストリームを車両300に送信する(S6)。
車両300では、通信部330が三次元点群データ生成装置100から符号化ストリームを取得する(S7)。
次に、復号部340は、通信部330において取得された符号化ストリームを復号することで、第2三次元点群を取得する(S8)。つまり、車両300は、三次元オブジェクトを撮像した二次元画像の属性値がそれぞれ予め付加された複数の三次元点を含む三次元点群を取得する。
次に、位置推定部350は、カメラ310により得られた二次元画像と、復号部340において復号されることで得られた、属性値が付加された三次元点群とを用いて、当該三次元点群におけるカメラ310の位置および姿勢を推定することで、車両300の位置および姿勢を推定する(S9)。
位置推定部350による位置推定処理の詳細について説明する。
位置推定部350は、図3に示すように、特徴検出モジュール351と、特徴マッチングモジュール352と、メモリ353とを有する。
特徴検出モジュール351は、車両300が備えるカメラ310により撮像された、車両300の周囲の第2二次元画像を取得する。そして、特徴検出モジュール351は、取得された第2二次元画像から、第2二次元画像上の位置に対応する第2二次元画像の属性値である第2属性値を複数検出する。特徴検出モジュール351における処理は、車両200におけるマッピング部120の特徴検出モジュール121における処理と同様である。なお、特徴検出モジュール351における処理は、マッピング部120の特徴検出モジュール121における全ての処理が同じでなくてもよい。例えば、特徴検出モジュール121において属性値として複数の種類の第1属性値が検出される場合、特徴検出モジュール351は、複数の種類に含まれる1種類以上の属性値を第2属性値として検出すればよい。
次に、特徴マッチングモジュール352は、特徴検出モジュール351により検出された複数の第2属性値のそれぞれについて、複数の第2三次元点のうちで、当該第2属性値に対応する1以上の第5三次元点を特定することで当該第2属性値および1以上の第5三次元点からなる組合せを1以上生成する。具体的には、特徴マッチングモジュール352は、特徴検出モジュール351により検出された複数の属性値にそれぞれ対応付けられている二次元画像上の複数の二次元位置のそれぞれについて、複数の第2三次元点のうちで当該二次元位置に対応付けられている属性値に最も近い属性値が付加されている1以上の第2三次元点を第5三次元点として特定する。これにより、特徴マッチングモジュール352は、二次元画像上の二次元位置と、1以上の第5三次元点とにより構成される組合せを、1以上生成する。特徴マッチングモジュール352は、メモリ353から車両300に対するカメラ310の位置および姿勢を取得する。特徴マッチングモジュール352は、特定された1以上の組合せと、取得された車両300に対するカメラ310の位置および姿勢とを用いて車両300の位置および姿勢を算出する。なお、特徴マッチングモジュール352は、組合せをより多く生成するほど、車両300の位置および姿勢を精度よく算出することができる。
メモリ353は、車両300に対するカメラ310の位置および姿勢を格納していてもよい。メモリ353は、復号部340による復号により得られた第2三次元点群を格納していてもよい。メモリ353は、例えば、フラッシュメモリ、HDD(Hard Disk Drive)などの不揮発性記憶装置により実現される。
本実施の形態に係る三次元点群データ生成方法によれば、三次元点群データ生成装置100は、LiDAR230などの距離センサを用いて得られた第1三次元点群を構成する複数の三次元点のうちで、カメラ210を用いて得られた二次元画像上における位置に対応する二次元画像の属性値としての特徴点の特徴量を、当該二次元画像上における位置に対応する三次元点に付加した第2三次元点を含む第2三次元点群を生成する。このため、自己位置を推定する位置推定装置としての車両300は、車両300の周囲の三次元オブジェクトをセンシングしなくても、車両300の周囲の三次元オブジェクトの二次元画像を撮像すれば、撮像して得られた二次元画像の位置に対応する特徴点の特徴量と、三次元点群データ生成装置100から取得した第2三次元点群の各第2三次元点に付加された特徴点の特徴量とを比較することで、自己位置を効率よく推定することができる。
また、本実施の形態に係る三次元点群データ生成方法において、2枚の二次元画像のそれぞれの特徴点をマッチングすることで特定された特徴点のペアを特定し、ペアの特徴点それぞれの二次元画像に対応する位置を用いて当該位置に対応する三次元点を特定し、特定した三次元点にペアを構成する2つの特徴点の特徴量を付加する。このため、特徴点に対応する三次元点を精度よく特定することができる。
また、本実施の形態に係る三次元点群データ生成方法において、第2三次元点群の生成では、特定された1つの第1三次元点に複数の特徴点それぞれの特徴量を付加することで、第2三次元点を生成する。このように、1つの第1三次元点に付加する特徴点の数を複数とするため、車両300における位置推定において、位置推定を行うために取得する、二次元画像上の位置に対応する二次元画像の特徴点と、第1三次元点との対応付けを精度よく行うことができる。
また、本実施の形態に係る三次元点群データ生成方法において、第2三次元点群の生成において1つの第1三次元点に付加される複数の属性値は、それぞれ、複数の二次元画像から検出された属性値である。ここで、1つの第1三次元点は、複数の視点から撮像されうる点である。また、車両300における位置推定では、カメラ310が異なる位置で二次元画像を撮像する。このため、カメラ310により得られる二次元画像は、異なる複数の視点から撮像される。これにより、複数の二次元画像から検出された複数の属性値を付加することで、位置推定において、異なる複数の視点それぞれで撮像された二次元画像を用いても、それぞれの二次元画像から得られる属性値と第1三次元点との対応付けを容易に行うことができる。よって、位置推定を容易に行うことができる。
また、本実施の形態に係る三次元点群データ生成方法において、第2三次元点群の生成において1つの第1三次元点に付加される複数の属性値は、それぞれ、属性の種類が互いに異なる属性値である。このように、1つの第1三次元点に付加する属性値を異なる複数種類の属性値とするため、車両300における位置推定において、位置推定を行うために取得する、二次元画像上の位置に対応する二次元画像の属性値と、第1三次元点との対応付けを精度よく行うことができる。
また、本実施の形態に係る位置推定方法によれば、三次元オブジェクトを撮像した二次元画像の属性値が予め三次元点群に付加されているため、新たに三次元点群をセンシングしなくても、新たに車両300の周囲の第2二次元画像を撮像すれば、撮像して得られた第2二次元画像の位置に対応する第2属性値、および、当該第2属性値に対応する1以上の第5三次元点の組合せと、三次元点群の各三次元点に付加された第1属性値とを比較することで、車両300の自己位置を効率よく推定することができる。
(変形例)
(変形例1)
上記実施の形態に係る三次元点群データ生成装置100では、さらに、第2三次元点群に含まれる複数の第2三次元点のそれぞれに対して、重要度を算出し、算出した重要度を対応する第2三次元点に付加し、付加することにより得られた複数の第3三次元点を含む第3三次元点群を生成してもよい。また、三次元点群データ生成装置100は、付加された重要度に応じて、第3三次元点群に含まれる複数の第3三次元点のうち、車両300に送信する第3三次元点の数を絞り込み、絞り込んだ数の第3三次元点を車両300に送信するようにしてもよい。
(変形例1)
上記実施の形態に係る三次元点群データ生成装置100では、さらに、第2三次元点群に含まれる複数の第2三次元点のそれぞれに対して、重要度を算出し、算出した重要度を対応する第2三次元点に付加し、付加することにより得られた複数の第3三次元点を含む第3三次元点群を生成してもよい。また、三次元点群データ生成装置100は、付加された重要度に応じて、第3三次元点群に含まれる複数の第3三次元点のうち、車両300に送信する第3三次元点の数を絞り込み、絞り込んだ数の第3三次元点を車両300に送信するようにしてもよい。
動作について図8を用いて説明する。図8は、変形例1における三次元点群データ生成装置の動作の一例を示すフローチャートである。この動作は、図4のシーケンス図におけるステップS5の代わりに行われる。
三次元点群データ生成装置100では、マッピング部120の点群登録モジュール123は、さらに、1以上の第2三次元点のそれぞれについて、当該第2三次元点に付加された属性値に基づいて第2三次元点の重要度を算出する(S21)。そして、点群登録モジュール123は、1以上の第2三次元点のそれぞれについて、算出された重要度を、当該第2三次元点に付加することで、それぞれが属性値および重要度を有する1以上の三次元点を含む第3三次元点群を生成する。重要度の算出処理の詳細は、図9を用いて後述する。
次に、三次元点群データ生成装置100の符号化部130は、第3三次元点群を用いて符号化ストリームを生成する(S22)。符号化ストリームの生成処理の詳細は、図10および図11を用いて後述する。
図9は、重要度の算出処理の詳細な処理の一例を示すフローチャートである。
点群登録モジュール123は、生成した第2三次元点群に含まれる複数の第2三次元点のそれぞれについて、重要度の算出処理を行う。以下では、1つの第2三次元点について行われる処理について説明する。重要度の算出処理では、全ての第2三次元点の1つ1つについて同様の処理が行われる。
まず、点群登録モジュール123は、処理対象の第2三次元点を見ることができる二次元画像の数を算出する(S31)。点群登録モジュール123は、複数の二次元画像において、処理対象の第2三次元点が映り込んでいる二次元画像の数をカウントすることで、上記数を算出してもよい。
また、点群登録モジュール123は、処理対象の第2三次元点に対応付けられた複数の特徴点のマッチングにおけるマッチング誤差を算出する(S32)。点群登録モジュール123は、当該マッチング誤差を特徴マッチングモジュール122から取得してもよい。
また、点群登録モジュール123は、処理対象の第2三次元点(つまり、正確な三次元マップにおける三次元点)と、当該第2三次元点に対応付けられた特徴点との間のマッチングにおけるマッチング誤差を算出する(S33)。
点群登録モジュール123は、ステップS31~S33において算出された、処理対象の第2三次元点を見ることができる二次元画像の数と、二次元画像の複数の特徴点間のマッチング誤差と、三次元マップと特徴点との間のマッチング誤差とを用いて、処理対象の第2三次元点の重要度を算出する(S34)。点群登録モジュール123は、例えば、処理対象の第2三次元点を見ることができる二次元画像の数が大きいほど、重要度を大きい値に算出する。また、点群登録モジュール123は、例えば、二次元画像の複数の特徴点間のマッチング誤差が大きいほど、重要度を小さい値に算出する。また、点群登録モジュール123は、例えば、三次元マップと特徴点との間のマッチング誤差が大きいほど、重要度を小さい値に算出する。このように、重要度は、大きい値であるほど、より重要であることを示す指標である。
点群登録モジュール123は、処理対象の第2三次元点の三次元座標を取得し(S35)、処理対象の第2三次元点に付加された二次元画像の特徴点を取得する(S36)。
そして、点群登録モジュール123は、算出した重要度および特徴点を、取得した三次元座標に付加することで、第3三次元点を生成する(S37)。なお、ステップS35およびS36で、処理対象の第2三次元点から三次元座標および特徴点をそれぞれ取得するとしたが、これに限らずに、ステップS37において、処理対象の第2三次元点に算出した重要度を付加することで第3三次元点を生成してもよい。
点群登録モジュール123は、ステップS31~S37の処理を全ての第2三次元点のそれぞれについて実行することで、重要度がさらに付加された三次元点群である第3三次元点群を生成する。第3三次元点は、図10に示されるように、三次元座標と、第2三次元点を見ることができるN枚の二次元画像それぞれの特徴点と、重要度とを含む。
ここで、N個の特徴量のうち、値が近いものがあれば統合してもよい。例えば、2個の特徴量の値F0,F1の差が閾値以下であれば、値をF0とF1の平均値にした1個の特徴量に統合してもよい。これにより第2三次元点群のデータ量を削減できる。また、第2三次元点に割り当て可能な特徴量の個数Nの値に上限を設けてもよい。例えば、特徴量の個数がNより大きい場合は、特徴量の値を用いて上位N個を選択して、選択したN個の特徴量を三次元点に割り当てるようにしてもよい。
次に、符号化処理の詳細について、符号化部130の詳細な構成と共に、図11および図12を用いて後述する。
図11は、符号化部の機能構成の一例を示すブロック図である。図12は、符号化処理の詳細な処理の一例を示すフローチャートである。
図11に示すように、符号化部130は、特徴ソートモジュール131と、特徴組合せモジュール132と、メモリ133と、エントロピ符号化モジュール134とを有する。
符号化部130による符号化処理では、第3三次元点群に含まれる複数の第3三次元点に対して処理が行われる。
特徴ソートモジュール131は、第3三次元点群に含まれる複数の第3三次元点を、複数の第3三次元点のそれぞれに付加されている重要度が大きい順に並べ替える(S41)。
次に、特徴組合せモジュール132は、複数の第3三次元点のそれぞれについて以下のステップS43およびS44の処理を実行するループ1を開始する(S42)。特徴組合せモジュール132は、重要度が大きい順にループ1を実行する。
特徴組合せモジュール132は、処理対象の第3三次元点に付加されている重要度が閾値を超えるか否かを判定する(S43)。なお、閾値は、車両300から受信した値である。閾値は、車両300のスペックに応じて、異なる値に設定されていてもよい。つまり、閾値は、車両300の情報処理能力および/または検出能力が大きいほど大きい値に設定されていてもよい。
特徴組合せモジュール132は、処理対象の第3三次元点に付加されている重要度が閾値を超えると判定した場合(S43でYes)、ステップS44の処理を実行する。
一方で、特徴組合せモジュール132は、処理対象の第3三次元点に付加されている重要度が閾値未満であると判定した場合(S43でNo)、ステップS45の処理を実行する。これにより、ループ1は終了する。
ステップS44において、特徴組合せモジュール132は、処理対象の第3三次元点を符号化対象データとして追加する(S44)。特徴組合せモジュール132は、ステップS44の後で、次の第3三次元点を処理対象として、ループ1を実行する。
このように、特徴組合せモジュール132は、ステップS43およびS44を実行することで、複数の第3三次元点のうち閾値を超える重要度が付加されている複数の第4三次元点を抽出する。
なお、ステップS41の処理は必ずしも実行されなくてもよい。この場合、ループ1は、全ての複数の第3三次元点に対して実行され、ステップS43においてNoと判定された場合にも、次の第3三次元点に対してループ1が繰り返されることとなる。
ステップS45において、エントロピ符号化モジュール134は、符号化対象データとされた複数の第3三次元点に対してエントロピ符号化を実行し、符号化ストリームを生成する(S45)。エントロピ符号化モジュール134は、例えば、符号化対象データを8分木構造で表現してバイナリ化し、算術符号化することで符号化ストリームを生成してもよい。
生成された符号化ストリームは、図4のステップS6において、閾値を送信した車両300に送信される。
変形例1に係る三次元点群データ生成方法によれば、第2三次元点の生成では、さらに、(i)複数の第2三次元点のそれぞれについて、当該第2三次元点に付加された属性値に基づいて当該第2三次元点の重要度を算出し、(ii)算出された重要度を、当該第2三次元点に付加することで、それぞれが属性値および重要度を有する1以上の第3三次元点を含む第3三次元点群を生成する。このため、例えば、重要度が大きい第3三次元点ほど優先的に利用することができるため、処理の精度に悪影響を与えないように、処理に利用する三次元点群データのデータ量を調整することができる。
また、変形例1に係る三次元点群データ生成方法において、さらに、クライアント機器である車両300から閾値を受信し、1以上の第3三次元点のうち、受信された閾値を超える重要度が付加されている複数の第4三次元点を抽出し、抽出された複数の第4三次元点を含む第4三次元点群をクライアント機器に送信する。このため、車両300の要求に応じて、送信する三次元点群データのデータ量を調製することができる。
なお、上記変形例1における三次元点群データ生成装置100の符号化部130は、閾値を車両300から取得するとしたが、三次元点の数を車両300から取得してもよい。この場合、符号化部130は、重要度が大きい順に、取得した三次元点の数の第3三次元点を符号化対象データとして符号化してもよい。
(変形例2)
上記変形例1では、三次元点群データ生成装置100は、クライアント機器である車両300から閾値を受信することで、重要度が閾値以下の第3三次元点を符号化対象データから除外するとしたが、これに限らずに、全ての複数の第3三次元点を符号化対象データとして符号化することで、符号化ストリームを生成してもよい。つまり、三次元点群データ生成装置100は、全ての複数の第3三次元点を符号化したデータを車両300に送信してもよい。
上記変形例1では、三次元点群データ生成装置100は、クライアント機器である車両300から閾値を受信することで、重要度が閾値以下の第3三次元点を符号化対象データから除外するとしたが、これに限らずに、全ての複数の第3三次元点を符号化対象データとして符号化することで、符号化ストリームを生成してもよい。つまり、三次元点群データ生成装置100は、全ての複数の第3三次元点を符号化したデータを車両300に送信してもよい。
この場合、車両300は、受信した符号化ストリームを復号することで、複数の第3三次元点を取得する。そして、車両300は、複数の第3三次元点のうち、閾値を超える重要度の第3三次元点を車両300の自己位置を推定する処理に利用してもよい。
なお、車両300の復号部340は、通信部330が全ての三次元点を取得した場合には、全ての三次元点のうち重要度の大きいものから優先的に復号してもよい。これにより、復号部340は、必要な数の三次元点を復号すればよいため、復号処理にかかる処理負荷を軽減することができる。また、この場合、符号化ストリームが重要度の大きい順に符号化されていれば、復号部340は、符号化ストリームを復号し、閾値以下の重要度の三次元点を復号した時点で復号処理を止めてもよいし、必要な数の三次元点が得られた時点で復号処理を止めてもよい。これにより、三次元点群データ生成装置100は、車両300毎に符号化ストリームを生成しなくても復号処理にかかる処理負荷を軽減できる。よって、三次元点群データ生成装置100の符号化ストリームを生成する処理にかかる処理負荷を軽減できる。
なお、車両300は、複数の第3三次元点を、自己位置を推定する処理に用いなくてもよく、三次元マップの三次元映像の再構成する処理に用いてもよい。つまり、クライアント機器としての車両300は、閾値を車両300が実施する用途に応じて切替えてもよい。例えば、車両300が自己位置推定を行う場合は、重要度が大きい三次元点のみが必要と判断し、閾値を第1の閾値に設定し、クライアントが地図を描画する場合は重要度が小さい三次元点まで必要と判断し、閾値を第1の閾値よりも小さい第2の閾値に設定することが考えられる。
(その他)
マッピング部120は、2枚の二次元画像内の特徴点のマッチングによって算出された三次元位置を、当該特徴点の特徴量を持つ三次元点として正確な三次元マップに追加してもよい。
マッピング部120は、2枚の二次元画像内の特徴点のマッチングによって算出された三次元位置を、当該特徴点の特徴量を持つ三次元点として正確な三次元マップに追加してもよい。
マッピング部120は、1枚の二次元画像内の特徴点と正確な三次元マップの三次元点とをマッチングし、当該特徴点とマッチングされた三次元点に特徴点の特徴量を付加しても良い。この場合、カメラ210の姿勢を用いて、特徴点を三次元空間に逆投影する、または、三次元点を二次元画像に投影することにより、特徴点と正確な三次元マップの三次元点とのマッチングをしてもよい。つまり、マッピング部120は、複数の二次元画像のうちの2枚の二次元画像の特徴点をマッチングしたペアにより特定された三次元位置に近い三次元点を特定することで、特徴点と三次元点とをマッチングしていたがこれに限らずに、1枚の二次元画像の特徴点と、三次元点とをマッチングしてもよい。言い換えると、マッピング部120は、検出された1以上の属性値のそれぞれについて、(i)第1三次元点群を構成する複数の三次元点のうちで当該属性値の二次元画像上の位置が対応する1以上の第1三次元点を特定し、(ii)特定された1以上の第1三次元点に当該属性値を付加することで、それぞれが前記属性値を有する1以上の第2三次元点を含む第2三次元点群を生成してもよい。
また、三次元点の符号化には、エントロピ符号化に限らず、どのような符号化を適用しても構わない。例えば符号化対象データとされた三次元点群を8分木構造で符号化(octree coding)してもよい。
三次元点群データ生成装置100は、車両200とは異なるサーバであるとしたが、車両200に備えられていてもよい。つまり、三次元点群データ生成装置100による処理は、車両200により実行されてもよい。この場合、車両200により得られた第2三次元点群または第3三次元点群は、上位サーバに送信され、上位サーバが複数の車両200から各地の第2三次元点群または第3三次元点群を収集してもよい。
なお、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。ここで、上記各実施の形態の三次元点群データ生成方法または位置推定方法などを実現するソフトウェアは、次のようなプログラムである。
すなわち、このプログラムは、コンピュータに、プロセッサを用いて複数の三次元点を含む三次元点群を生成する三次元点群生成方法であって、カメラを用いて三次元オブジェクトを撮像することにより得られた二次元画像と、距離センサを用いて前記三次元オブジェクトをセンシングすることにより得られた第1三次元点群とを取得し、取得された前記二次元画像から、前記二次元画像上の位置に対応する前記二次元画像の属性値を1以上検出し、検出された前記1以上の属性値のそれぞれについて、(i)前記第1三次元点群を構成する複数の三次元点のうちで当該属性値の前記二次元画像上の位置が対応する1以上の第1三次元点を特定し、(ii)特定された前記1以上の第1三次元点に当該属性値を付加することで、それぞれが前記属性値を有する1以上の第2三次元点を含む第2三次元点群を生成する三次元点群データ生成方法を実行させる。
また、このプログラムは、コンピュータに、プロセッサを用いて移動体の現在位置を推定する位置推定方法であって、三次元オブジェクトを撮像した第1二次元画像の属性値である第1属性値がそれぞれ予め付加された複数の三次元点を含む三次元点群を取得し、前記移動体が備えるカメラにより撮像された、前記移動体の周囲の第2二次元画像を取得し、取得された前記第2二次元画像から、前記第2二次元画像上の位置に対応する前記第2二次元画像の属性値である第2属性値を1以上検出し、検出された前記1以上の第2属性値のそれぞれについて、前記複数の三次元点のうちで、当該第2属性値に対応する1以上の第5三次元点を特定することで当該第2属性値および前記1以上の第5三次元点により構成される組合せを1以上生成し、記憶装置から前記移動体に対する前記カメラの位置および姿勢を取得し、生成された前記1以上の組合せと、取得された前記カメラの位置および姿勢とを用いて前記移動体の位置および姿勢を算出する位置推定方法を実行させる。
以上、本開示の一つまたは複数の態様に係る三次元点群データ生成方法、位置推定方法、三次元点群データ生成装置、および、位置推定装置について、実施の形態に基づいて説明したが、本開示は、この実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本開示の範囲内に含まれてもよい。
本開示は、更なる改善を図ることができる三次元点群データ生成方法、位置推定方法、三次元点群データ生成装置、および、位置推定装置として有用である。
1 位置推定システム
100 三次元点群データ生成装置
110 通信部
120 マッピング部
121、351 特徴検出モジュール
122、352 特徴マッチングモジュール
123 点群登録モジュール
124 三角測量モジュール
125 位置姿勢算出モジュール
126、133、250、353 メモリ
130 符号化部
131 特徴ソートモジュール
132 特徴組合せモジュール
134 エントロピ符号化モジュール
140、370 外部メモリ
200、300 車両
210、310 カメラ
220、240、320 取得部
230 LiDAR
260、330 通信部
340 復号部
350 位置推定部
360 制御部
400 通信ネットワーク
410 基地局
100 三次元点群データ生成装置
110 通信部
120 マッピング部
121、351 特徴検出モジュール
122、352 特徴マッチングモジュール
123 点群登録モジュール
124 三角測量モジュール
125 位置姿勢算出モジュール
126、133、250、353 メモリ
130 符号化部
131 特徴ソートモジュール
132 特徴組合せモジュール
134 エントロピ符号化モジュール
140、370 外部メモリ
200、300 車両
210、310 カメラ
220、240、320 取得部
230 LiDAR
260、330 通信部
340 復号部
350 位置推定部
360 制御部
400 通信ネットワーク
410 基地局
Claims (11)
- プロセッサを用いて複数の三次元点を含む三次元点群を生成する三次元点群生成方法であって、
カメラを用いて三次元オブジェクトを撮像することにより得られた二次元画像と、距離センサを用いて前記三次元オブジェクトをセンシングすることにより得られた第1三次元点群とを取得し、
取得された前記二次元画像から、前記二次元画像上の位置に対応する前記二次元画像の属性値を1以上検出し、
検出された前記1以上の属性値のそれぞれについて、
(i)前記第1三次元点群を構成する複数の三次元点のうちで当該属性値の前記二次元画像上の位置が対応する1以上の第1三次元点を特定し、
(ii)特定された前記1以上の第1三次元点に当該属性値を付加することで、それぞれが前記属性値を有する1以上の第2三次元点を含む第2三次元点群を生成する
三次元点群データ生成方法。 - 前記取得では、それぞれが、互いに異なる位置および/または姿勢における前記カメラにより撮像されることにより得られた複数の前記二次元画像を取得し、
前記検出では、取得された前記複数の二次元画像のそれぞれについて、前記1以上の属性値を検出し、
前記三次元点群データ生成方法は、さらに、
前記複数の二次元画像のそれぞれについて検出された前記1以上の属性値を用いて、前記複数の二次元画像のうちの2枚の二次元画像で対応する属性値をマッチングすることで、マッチングされた属性値のペアを1以上出力し、
前記特定では、前記1以上のペアのそれぞれについて、当該ペアを構成する2つの属性値のそれぞれの前記二次元画像上の位置と、前記2枚の二次元画像のそれぞれが撮像されたときの前記カメラの位置および姿勢とを用いて、前記複数の三次元点のうちで当該ペアを構成する前記2つの属性値の前記二次元画像上の位置が対応する前記1以上の第1三次元点を特定し、
前記生成では、前記1以上のペアのそれぞれについて、特定された前記1以上の第1三次元点に当該ペアを構成する前記2つの属性値に基づく属性値を付加することで、前記第2三次元点群を生成する
請求項1に記載の三次元点群データ生成方法。 - 前記生成では、特定された1つの前記第1三次元点に複数の前記属性値を付加することで、前記第2三次元点を生成する
請求項1または2に記載の三次元点群データ生成方法。 - 前記生成において前記1つの第1三次元点に付加される前記複数の属性値は、それぞれ、複数の前記二次元画像から検出された属性値である
請求項3に記載の三次元点群データ生成方法。 - 前記生成において前記1つの第1三次元点に付加される前記複数の属性値は、それぞれ、属性の種類が互いに異なる属性値である
請求項3に記載の三次元点群データ生成方法。 - 前記検出では、取得された前記二次元画像を構成する複数の領域毎に算出された特徴量を、前記二次元画像上の位置に対応する前記二次元画像の前記1以上の属性値として検出する
請求項1から5のいずれか1項に記載の三次元点群データ生成方法。 - 前記生成では、さらに、前記1以上の第2三次元点のそれぞれについて、
(i)当該第2三次元点に付加された前記属性値に基づいて当該第2三次元点の重要度を算出し、
(ii)算出された前記重要度を、当該第2三次元点に付加することで、それぞれが前記属性値および前記重要度を有する1以上の第3三次元点を含む第3三次元点群を生成する
請求項1から6のいずれか1項に記載の三次元点群データ生成方法。 - さらに、
クライアント機器から閾値を受信し、
前記1以上の第3三次元点のうち、受信された前記閾値を超える重要度が付加されている1以上の第4三次元点を抽出し、
抽出された前記1以上の第4三次元点を含む第4三次元点群を前記クライアント機器に送信する
請求項7に記載の三次元点群データ生成方法。 - プロセッサを用いて移動体の現在位置を推定する位置推定方法であって、
三次元オブジェクトを撮像した第1二次元画像の属性値である第1属性値がそれぞれ予め付加された複数の三次元点を含む三次元点群を取得し、
前記移動体が備えるカメラにより撮像された、前記移動体の周囲の第2二次元画像を取得し、
取得された前記第2二次元画像から、前記第2二次元画像上の位置に対応する前記第2二次元画像の属性値である第2属性値を1以上検出し、
検出された前記1以上の第2属性値のそれぞれについて、前記複数の三次元点のうちで、当該第2属性値に対応する1以上の第5三次元点を特定することで当該第2属性値および前記1以上の第5三次元点により構成される組合せを1以上生成し、
記憶装置から前記移動体に対する前記カメラの位置および姿勢を取得し、
生成された前記1以上の組合せと、取得された前記カメラの位置および姿勢とを用いて前記移動体の位置および姿勢を算出する
位置推定方法。 - プロセッサを備える三次元点群データ生成装置であって、
前記プロセッサは、
カメラを用いて三次元オブジェクトを撮像することにより得られた二次元画像と、距離センサを用いて前記三次元オブジェクトをセンシングすることにより得られた第1三次元点群とを取得し、
取得された前記二次元画像から、前記二次元画像上の位置に対応する前記二次元画像の属性値を1以上検出し、
検出された前記1以上の属性値のそれぞれについて、
(i)前記第1三次元点群を構成する複数の三次元点のうちで当該属性値の前記二次元画像上の位置が対応する1以上の第1三次元点を特定し、
(ii)特定された前記1以上の第1三次元点に当該属性値を付加することで、それぞれが前記属性値を有する1以上の第2三次元点を含む第2三次元点群を生成する
三次元点群データ生成装置。 - プロセッサを備え、前記プロセッサを用いて移動体の現在位置を推定する位置推定装置であって、
前記プロセッサは、
三次元オブジェクトを撮像した第1二次元画像の属性値である第1属性値がそれぞれ予め付加された複数の三次元点を含む三次元点群を取得し、
前記移動体が備えるカメラにより撮像された、前記移動体の周囲の第2二次元画像を取得し、
取得された前記第2二次元画像から、前記第2二次元画像上の位置に対応する前記第2二次元画像の属性値である第2属性値を1以上検出し、
検出された前記1以上の第2属性値のそれぞれについて、前記複数の三次元点のうちで、当該第2属性値に対応する1以上の第5三次元点を特定することで当該第2属性値および前記1以上の第5三次元点により構成される組合せを1以上生成し、
記憶装置から前記移動体に対する前記カメラの位置および姿勢を取得し、
生成された前記1以上の組合せと、取得された前記カメラの位置および姿勢とを用いて前記移動体の位置および姿勢を算出する
位置推定装置。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201880074466.2A CN111373442A (zh) | 2017-11-20 | 2018-11-16 | 三维点群数据生成方法、位置推断方法、三维点群数据生成装置以及位置推断装置 |
EP18879366.5A EP3716210B1 (en) | 2017-11-20 | 2018-11-16 | Three-dimensional point group data generation method, position estimation method, three-dimensional point group data generation device, and position estimation device |
JP2019554304A JP7325332B2 (ja) | 2017-11-20 | 2018-11-16 | 三次元点群データ生成方法、および、三次元点群データ生成装置 |
EP23187013.0A EP4250232A3 (en) | 2017-11-20 | 2018-11-16 | Three-dimensional point group data generation method, position estimation method, three-dimensional point group data generation device, and position estimation device |
US16/877,835 US20200278450A1 (en) | 2017-11-20 | 2020-05-19 | Three-dimensional point cloud generation method, position estimation method, three-dimensional point cloud generation device, and position estimation device |
JP2023125733A JP2023164425A (ja) | 2017-11-20 | 2023-08-01 | 三次元点群データ生成方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762588596P | 2017-11-20 | 2017-11-20 | |
US62/588,596 | 2017-11-20 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/877,835 Continuation US20200278450A1 (en) | 2017-11-20 | 2020-05-19 | Three-dimensional point cloud generation method, position estimation method, three-dimensional point cloud generation device, and position estimation device |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2019098318A1 true WO2019098318A1 (ja) | 2019-05-23 |
Family
ID=66537804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2018/042423 WO2019098318A1 (ja) | 2017-11-20 | 2018-11-16 | 三次元点群データ生成方法、位置推定方法、三次元点群データ生成装置、および、位置推定装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20200278450A1 (ja) |
EP (2) | EP3716210B1 (ja) |
JP (2) | JP7325332B2 (ja) |
CN (1) | CN111373442A (ja) |
WO (1) | WO2019098318A1 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110689576A (zh) * | 2019-09-29 | 2020-01-14 | 桂林电子科技大学 | 一种基于Autoware的动态3D点云正态分布AGV定位方法 |
US20210398320A1 (en) * | 2019-12-06 | 2021-12-23 | Intel Corporation | Adaptive virtual camera for indirect-sparse simultaneous localization and mapping systems |
CN115088020A (zh) * | 2020-02-18 | 2022-09-20 | 富士胶片株式会社 | 点云数据处理装置、点云数据处理方法及程序 |
WO2024034469A1 (ja) * | 2022-08-12 | 2024-02-15 | 京セラ株式会社 | 情報処理装置、情報処理方法及びプログラム |
CN117974747A (zh) * | 2024-04-01 | 2024-05-03 | 北京理工大学长三角研究院(嘉兴) | 360度点云2d深度盘三角剖分构图方法、装置及系统 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113139996B (zh) * | 2021-05-06 | 2024-02-06 | 南京大学 | 一种基于三维点云几何特征学习的点云配准方法及系统 |
US11764806B2 (en) | 2021-09-06 | 2023-09-19 | Nec Corporation | Data compression system and method of using |
US12062202B2 (en) * | 2021-09-24 | 2024-08-13 | Argo AI, LLC | Visual localization against a prior map |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09237354A (ja) | 1996-02-29 | 1997-09-09 | Chokosoku Network Computer Gijutsu Kenkyusho:Kk | 3次元形状データ転送表示方法 |
JP2013101592A (ja) * | 2011-10-12 | 2013-05-23 | Nippon Telegr & Teleph Corp <Ntt> | 3次元座標算出装置、3次元座標算出方法、及びプログラム |
JP2016110210A (ja) * | 2014-12-02 | 2016-06-20 | 株式会社日立製作所 | 変化検出装置、変化検出方法、および、変化検出プログラム |
JP2017053795A (ja) * | 2015-09-11 | 2017-03-16 | 株式会社リコー | 情報処理装置、位置姿勢計測方法、及び位置姿勢計測プログラム |
JP2017058274A (ja) * | 2015-09-17 | 2017-03-23 | 株式会社東芝 | 計測装置、方法及びプログラム |
JP2017167974A (ja) * | 2016-03-17 | 2017-09-21 | 株式会社東芝 | 推定装置、方法及びプログラム |
WO2017163384A1 (ja) * | 2016-03-24 | 2017-09-28 | 三菱電機株式会社 | データ処理装置、データ処理方法及びデータ処理プログラム |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101448338B (zh) * | 2008-11-27 | 2010-08-11 | 北京理工大学 | 一种移动式三维空间无线测试网络系统 |
WO2010095107A1 (en) * | 2009-02-19 | 2010-08-26 | Dimensional Perception Technologies Ltd. | System and method for geometric modeling using multiple data acquisition means |
JP5147980B1 (ja) * | 2011-09-26 | 2013-02-20 | アジア航測株式会社 | 対象物複数画像対応付け装置、そのデータ再生装置、画像処理システム |
JP5294177B2 (ja) * | 2011-09-30 | 2013-09-18 | 学校法人加計学園 | 3次元形状データ処理方法、3次元形状データ処理装置 |
US8798357B2 (en) * | 2012-07-09 | 2014-08-05 | Microsoft Corporation | Image-based localization |
US9129435B2 (en) * | 2012-12-04 | 2015-09-08 | Fuji Xerox Co., Ltd. | Method for creating 3-D models by stitching multiple partial 3-D models |
RU2013109063A (ru) * | 2013-02-28 | 2014-09-10 | ЭлЭсАй Корпорейшн | Процессор изображения с многоканальным интерфейсом между уровнем предварительной обработки и одним или несколькими более высокими уровнями |
US9183459B1 (en) * | 2014-05-06 | 2015-11-10 | The Boeing Company | Sensor fusion using detector confidence boosting |
CN103997747B (zh) * | 2014-05-14 | 2018-04-17 | 浪潮电子信息产业股份有限公司 | 一种基于虚拟力的空间网络节点均匀部署方法 |
US9646410B2 (en) * | 2015-06-30 | 2017-05-09 | Microsoft Technology Licensing, Llc | Mixed three dimensional scene reconstruction from plural surface models |
WO2017022033A1 (ja) * | 2015-07-31 | 2017-02-09 | 富士通株式会社 | 画像処理装置、画像処理方法および画像処理プログラム |
US9904867B2 (en) * | 2016-01-29 | 2018-02-27 | Pointivo, Inc. | Systems and methods for extracting information about objects from scene information |
JP6632413B2 (ja) * | 2016-02-12 | 2020-01-22 | 三菱電機株式会社 | 点群位置合わせ装置および点群位置合わせプログラム |
US9972067B2 (en) * | 2016-10-11 | 2018-05-15 | The Boeing Company | System and method for upsampling of sparse point cloud for 3D registration |
-
2018
- 2018-11-16 WO PCT/JP2018/042423 patent/WO2019098318A1/ja unknown
- 2018-11-16 JP JP2019554304A patent/JP7325332B2/ja active Active
- 2018-11-16 EP EP18879366.5A patent/EP3716210B1/en active Active
- 2018-11-16 EP EP23187013.0A patent/EP4250232A3/en active Pending
- 2018-11-16 CN CN201880074466.2A patent/CN111373442A/zh active Pending
-
2020
- 2020-05-19 US US16/877,835 patent/US20200278450A1/en active Pending
-
2023
- 2023-08-01 JP JP2023125733A patent/JP2023164425A/ja active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09237354A (ja) | 1996-02-29 | 1997-09-09 | Chokosoku Network Computer Gijutsu Kenkyusho:Kk | 3次元形状データ転送表示方法 |
JP2013101592A (ja) * | 2011-10-12 | 2013-05-23 | Nippon Telegr & Teleph Corp <Ntt> | 3次元座標算出装置、3次元座標算出方法、及びプログラム |
JP2016110210A (ja) * | 2014-12-02 | 2016-06-20 | 株式会社日立製作所 | 変化検出装置、変化検出方法、および、変化検出プログラム |
JP2017053795A (ja) * | 2015-09-11 | 2017-03-16 | 株式会社リコー | 情報処理装置、位置姿勢計測方法、及び位置姿勢計測プログラム |
JP2017058274A (ja) * | 2015-09-17 | 2017-03-23 | 株式会社東芝 | 計測装置、方法及びプログラム |
JP2017167974A (ja) * | 2016-03-17 | 2017-09-21 | 株式会社東芝 | 推定装置、方法及びプログラム |
WO2017163384A1 (ja) * | 2016-03-24 | 2017-09-28 | 三菱電機株式会社 | データ処理装置、データ処理方法及びデータ処理プログラム |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110689576A (zh) * | 2019-09-29 | 2020-01-14 | 桂林电子科技大学 | 一种基于Autoware的动态3D点云正态分布AGV定位方法 |
CN110689576B (zh) * | 2019-09-29 | 2023-04-07 | 桂林电子科技大学 | 一种基于Autoware的动态3D点云正态分布AGV定位方法 |
US20210398320A1 (en) * | 2019-12-06 | 2021-12-23 | Intel Corporation | Adaptive virtual camera for indirect-sparse simultaneous localization and mapping systems |
US11734856B2 (en) * | 2019-12-06 | 2023-08-22 | Intel Corporation | Adaptive virtual camera for indirect-sparse simultaneous localization and mapping systems |
CN115088020A (zh) * | 2020-02-18 | 2022-09-20 | 富士胶片株式会社 | 点云数据处理装置、点云数据处理方法及程序 |
WO2024034469A1 (ja) * | 2022-08-12 | 2024-02-15 | 京セラ株式会社 | 情報処理装置、情報処理方法及びプログラム |
CN117974747A (zh) * | 2024-04-01 | 2024-05-03 | 北京理工大学长三角研究院(嘉兴) | 360度点云2d深度盘三角剖分构图方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
JP2023164425A (ja) | 2023-11-10 |
EP3716210A4 (en) | 2021-05-26 |
EP4250232A2 (en) | 2023-09-27 |
EP3716210A1 (en) | 2020-09-30 |
US20200278450A1 (en) | 2020-09-03 |
JP7325332B2 (ja) | 2023-08-14 |
CN111373442A (zh) | 2020-07-03 |
EP4250232A3 (en) | 2023-12-06 |
JPWO2019098318A1 (ja) | 2020-11-19 |
EP3716210B1 (en) | 2023-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019098318A1 (ja) | 三次元点群データ生成方法、位置推定方法、三次元点群データ生成装置、および、位置推定装置 | |
CN112785702B (zh) | 一种基于2d激光雷达和双目相机紧耦合的slam方法 | |
CN110568447B (zh) | 视觉定位的方法、装置及计算机可读介质 | |
KR101947619B1 (ko) | 모바일 디바이스에서의 slam | |
US9269003B2 (en) | Diminished and mediated reality effects from reconstruction | |
US11295516B2 (en) | Reconstruction method, reconstruction device, and generation method for generating a three-dimensional (3D) model | |
CN110268450B (zh) | 图像处理装置和图像处理方法 | |
US20200250885A1 (en) | Reconstruction method, reconstruction device, and generation device | |
US10477178B2 (en) | High-speed and tunable scene reconstruction systems and methods using stereo imagery | |
US20190051036A1 (en) | Three-dimensional reconstruction method | |
KR101551026B1 (ko) | 차량 검출 방법 | |
CN109643467B (zh) | 图像处理设备和图像处理方法 | |
Hildebrandt et al. | Imu-aided stereo visual odometry for ground-tracking auv applications | |
CN115035235A (zh) | 三维重建方法及装置 | |
WO2018216341A1 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JPWO2018021066A1 (ja) | 画像処理装置および画像処理方法 | |
US11417063B2 (en) | Determining a three-dimensional representation of a scene | |
He et al. | Planar constraints for an improved uav-image-based dense point cloud generation | |
CN117115242B (zh) | 标志点的识别方法、计算机存储介质和终端设备 | |
US20240233157A9 (en) | Electronic device for generating depth map and operating method thereof | |
Han et al. | Weakly Supervised Monocular 3D Object Detection by Spatial-Temporal View Consistency | |
CN118864778A (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: 18879366 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2019554304 Country of ref document: JP Kind code of ref document: A |
|
ENP | Entry into the national phase |
Ref document number: 2018879366 Country of ref document: EP Effective date: 20200622 |