WO2021106388A1 - 情報処理装置、情報処理方法および情報処理プログラム - Google Patents
情報処理装置、情報処理方法および情報処理プログラム Download PDFInfo
- Publication number
- WO2021106388A1 WO2021106388A1 PCT/JP2020/038327 JP2020038327W WO2021106388A1 WO 2021106388 A1 WO2021106388 A1 WO 2021106388A1 JP 2020038327 W JP2020038327 W JP 2020038327W WO 2021106388 A1 WO2021106388 A1 WO 2021106388A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- map data
- information processing
- information
- processing device
- query image
- Prior art date
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 154
- 238000003672 processing method Methods 0.000 title claims description 9
- 230000002194 synthesizing effect Effects 0.000 claims description 17
- 238000006073 displacement reaction Methods 0.000 claims description 12
- 238000000034 method Methods 0.000 description 51
- 230000008569 process Effects 0.000 description 39
- 238000004891 communication Methods 0.000 description 25
- 238000012545 processing Methods 0.000 description 22
- 230000004807 localization Effects 0.000 description 16
- 238000005516 engineering process Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 13
- 230000015572 biosynthetic process Effects 0.000 description 12
- 238000003786 synthesis reaction Methods 0.000 description 12
- 239000000203 mixture Substances 0.000 description 8
- 238000001514 detection method Methods 0.000 description 5
- 239000002131 composite material Substances 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000007599 discharging Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0268—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
- G05D1/0274—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/005—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 with correlation of navigation data from several sources, e.g. map or contour matching
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/38—Electronic maps specially adapted for navigation; Updating thereof
- G01C21/3804—Creation or updating of map data
- G01C21/3807—Creation or updating of map data characterised by the type of data
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/38—Electronic maps specially adapted for navigation; Updating thereof
- G01C21/3804—Creation or updating of map data
- G01C21/3833—Creation or updating of map data characterised by the source of data
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/38—Electronic maps specially adapted for navigation; Updating thereof
- G01C21/3863—Structures of map data
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0246—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/53—Querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/46—Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/10—Terrestrial scenes
- G06V20/17—Terrestrial scenes taken from planes or by drones
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
Definitions
- This technology relates to information processing devices, information processing methods, and information processing programs.
- Patent Document 1 a technique for synthesizing information acquired by individual mobile bodies has also been proposed.
- each moving body When using a plurality of moving bodies, each moving body independently acquires peripheral information and map information, and the position and posture of each moving body are estimated based on different origins for each information. Since it is difficult to grasp the distance and direction from a moving body to another moving body, there is a problem that it is difficult to accurately synthesize a plurality of pieces of information.
- This technology was made in view of these points, and an object of the present technology is to provide an information processing device, an information processing method, and an information processing program capable of synthesizing a plurality of map data.
- the first technique is information processing that acquires correspondence information between keyframes and query images arranged in advance in map data and synthesizes a plurality of the map data based on the correspondence information. It is a device.
- the second technique is an information processing method that acquires correspondence information between keyframes and query images arranged in advance in map data and synthesizes a plurality of the map data based on the correspondence information.
- the third technique is information processing in which a computer executes an information processing method of acquiring correspondence information between keyframes arranged in advance in map data and a query image and synthesizing a plurality of map data based on the correspondence information. It is a program.
- Embodiment> [1-1. Configuration of information processing system 10] [1-2. Configuration of mobile 100] [1-3. Configuration of information processing device 200] [1-4. Processing in mobile 100] [1-5. Processing in the information processing device 200] ⁇ 2. Modification example>
- the information processing system 10 is composed of a plurality of mobile bodies 100 and a plurality of information processing devices 200.
- the mobile body 100 includes a first mobile body 100A and a second mobile body 100B
- the information processing device 200 includes a first information processing device 200A and a second information processing device 200B.
- first information processing device 200A operates in the first server device 300A
- second information processing device 200B operates in the second server device 300B
- the mobile body 100 and the server device 300 including the information processing device 200 are connected to each other via a network such as the Internet.
- the moving body 100 may be any device as long as it moves independently, and includes, for example, a drone, a robot vacuum cleaner, a pet-type robot, a humanoid robot, an automatic driving vehicle, and an autonomous delivery robot. Further, the moving body 100 can create map data around the moving body 100 and estimate its own position by the SLAM (Simultaneous Localization and Mapping) function. There is no limit to the number of mobile bodies 100 that make up the information processing system 10.
- SLAM Simultaneous Localization and Mapping
- the information processing device 200 holds the map data created by the moving body 100 and performs the map data synthesis process. In the present embodiment, it is assumed that the information processing device 200 stores a plurality of map data individually created by SLAM by the plurality of mobile bodies 100.
- the first mobile body 100A is associated with the first information processing device 200A, and the first information processing device 200A stores the first map data created by the first mobile body 100A.
- the second mobile body 100B is associated with the second information processing device 200B, and the second information processing device 200B stores the second map data created by the second mobile body 100B.
- the server device 300 includes at least a control unit 301, a communication unit 302, and a storage unit 303.
- the information processing device 200 communicates with the mobile body 100 by using the communication unit 302 included in the server device 300.
- the control unit 301 is composed of a CPU (Central Processing Unit), a RAM (Random Access Memory), a ROM (Read Only Memory), and the like.
- the ROM stores a program or the like that is read and operated by the CPU.
- the RAM is used as the work memory of the CPU.
- the CPU controls the entire server device and each part by executing various processes according to the program stored in the ROM and issuing commands.
- the communication unit 302 is a communication module for communicating with a mobile body or another server device.
- Communication methods include wireless LAN (Local Area Network), WAN (Wide Area Network), WiFi (Wireless Fidelity), 4G (4th generation mobile communication system), 5G (5th generation mobile communication system), and Bluetooth (registered trademark). ), ZigBee®, etc.
- the storage unit 303 is a large-capacity storage medium such as a hard disk or a flash memory.
- first information processing device 200A operates in the first server device 300A
- second information processing device 200B operates in the second server device 300B.
- the mobile body 100 includes a control unit 101, a storage unit 102, a communication unit 103, a camera unit 104, a sensor unit 105, a SLAM processing unit 106, a drive unit 107, a power supply unit 108, and a mobile unit search unit 110.
- the mobile search unit 110 includes an information acquisition unit 111, a hash generation unit 112, and a search processing unit 113.
- the control unit 101 is composed of a CPU, RAM, ROM, and the like.
- the CPU controls the entire mobile body 100 and each part by executing various processes according to the program stored in the ROM and issuing commands. Further, the control unit 101 controls the moving speed, moving direction, and the like of the moving body 100 by supplying a control signal for controlling the output of the driving unit 107 to the driving unit 107.
- the storage unit 102 is a large-capacity storage medium such as a hard disk or a flash memory.
- the storage unit 102 stores map data created by the SLAM processing unit 106, images taken by the camera unit 104, and other data and applications necessary for using the moving body 100.
- the communication unit 103 is a communication module for communicating with the server device 300.
- Communication methods include wireless LAN, WAN, WiFi, 4G, 5G, Bluetooth (registered trademark), ZigBee (registered trademark), and the like.
- the camera unit 104 is composed of an image sensor, an image processing engine, and the like, and has a function as a camera capable of capturing RGB or monochrome two-dimensional still images and moving images.
- the camera unit 104 may be provided by the moving body 100 itself, or may be configured as a device separate from the moving body 100 and can be mounted by being connected to the moving body 100.
- the sensor unit 105 is a sensor capable of detecting the position of a moving body 100 such as a GPS (Global Positioning System) module.
- GPS Global Positioning System
- GPS is a system that knows the current position by receiving signals from a plurality of artificial satellites located around the earth with a receiver.
- the sensor unit 105 may include a sensor for detecting the angular velocity such as an IMU (Inertial Measurement Unit) module.
- the IMU module is an inertial measurement unit, and detects the posture and orientation of the moving body 100 by obtaining three-dimensional angular velocity and acceleration by an acceleration sensor, an angular velocity sensor, a gyro sensor, or the like in two or three axial directions.
- the SLAM processing unit 106 creates map data around the moving body 100 and estimates its own position by using the SLAM function. By using SLAM in combination with feature points detected from the image captured by the camera unit 104, IMU detection results, and other sensor information from various sensors, map data can be created and the self-position in the map data can be estimated. It can be carried out.
- the map data created by the SLAM processing unit 106 is transmitted to the information processing device 200 by the communication unit 103.
- the drive unit 107 is a functional block that realizes the operation of the moving body according to a predetermined operation commanded by the control unit 101.
- the drive unit 107 realizes the movement of the moving body 100 by operating the motors and actuators that are the operating parts of the moving body 100.
- the method of moving the moving body 100 differs depending on the type of the moving body, and in the present embodiment, the moving method of the moving body may be any moving method.
- the moving method is, for example, the operation of a rotary wing when the moving body 100 is a drone, and the rotation of a wheel when the moving body 100 is a robot vacuum cleaner, an autonomous driving vehicle, or an autonomous delivery robot. In that case, there is a movement of the foot.
- the power supply unit 108 supplies power to each electric circuit of the mobile body 100 and the like.
- the mobile body 100 is an autonomous drive type using a battery, and the power supply unit 108 includes, for example, a charging battery and a charging / discharging control unit that manages the charging / discharging state of the charged battery.
- the mobile search unit 110 is for searching for other mobiles.
- the information acquisition unit 111 acquires information used for hash value generation by the hash generation unit 112.
- time information and network ID are used for hash value generation.
- the time information can be obtained from the clock function normally provided in the moving body 100.
- the network ID can be obtained from the communication function of the communication unit 103 included in the mobile body 100.
- the network ID includes an SSID (Service Set Identifier), which is an identification name of a Wi-Fi access point, and an ID of a cellular base station.
- the information acquisition unit 111 acquires the radio wave strength of the network for which the network ID has been acquired, if necessary.
- the radio wave strength may be acquired from the communication function of the communication unit 103, or a known application dedicated to radio wave strength acquisition may be used.
- the hash generation unit 112 generates a hash value from the time information and the network ID.
- the hash value is used in the mobile search process by the search processing unit 113.
- the search processing unit 113 searches for other moving objects existing in the vicinity of the moving object 100 by using the hash value generated by the hash generation unit 112.
- the map data generated by the moving body 100 and the map data generated by another moving body existing in the vicinity range are combined by the information processing device 200.
- the neighborhood range is not limited to a specific range, but is determined by the range indicated by the map data and the extent to which other moving objects are searched.
- the moving body 100 When the moving body 100 discovers another moving body, it transmits the image taken by the camera unit 104 to the information processing apparatus 200 as a query image, inquires about the shooting position and shooting posture on the map data of the query image, and also receives itself. Instructs the composition of the map data created by the camera and the map data created by other moving objects.
- the mobile search unit 110 is realized by executing a program, and the program may be installed in the mobile in advance, or may be distributed by download, storage medium, or the like so that the user can install it by himself / herself. Further, the mobile search unit 110 is not only realized by a program, but may be realized by combining a dedicated device, a circuit, or the like by hardware having the function.
- the information processing device 200 includes a map storage unit 201, a keyframe search unit 202, a feature point matching unit 203, a corresponding information estimation unit 204, and a map synthesis unit 205.
- the key frame search unit 202, the feature point matching unit 203, and the correspondence information estimation unit 204 perform localization processing.
- the map storage unit 201 is a storage unit that stores and stores map data.
- the map data may be created by the moving body 100 by SLAM, or may be an existing map database, map data provided by a map service, or the like.
- the map composition process is performed by the information processing device 200, the map data is read from the map storage unit 201.
- the origin O and the xyz axis at arbitrary positions are set in advance in the map data.
- the positions of the query image and the key frame on the map data are specified based on the displacement from the origin O, and the displacement and rotation between the query image and the key frame are calculated based on the positions. Further, when synthesizing a plurality of map data, it is necessary to match the xyz axes and synthesize them.
- the origin O is an arbitrary point on the map data, and the xyz axis is, for example, the east-west direction is the x direction, the north-south direction is the x-axis direction, and the height is the z-axis direction based on the orientation.
- Keyframes are arranged in advance in the map data.
- the key frame is a representative image showing the environment in the map data, and also includes position and posture information in the map data.
- One key frame may be arranged in one map data, or a plurality of key frames may be arranged.
- the key frame is photographed in advance by a user who uses the mobile body 100 and the information processing device 200 and is associated with the map data.
- the moving body 100 may add keyframes while executing the SLAM process.
- the key frame contains information on the feature points.
- a feature point represents a feature of a keyframe such as an object in a keyframe whose change is small even if environmental conditions such as time and weather change.
- the detection of feature points from keyframes can be performed using a conventional algorithm. For example, there are a corner detection method (Harris algorithm, FAST (Features from Accelerated Segment Test)), a feature point detection method by a neural network, a feature point detection by deep learning, a brightness gradient, and the like. It is assumed that one or a plurality of keyframes are arranged in advance in the map data, and feature points are detected in each keyframe. In addition to the known algorithm, the user may directly set keyframes and feature points.
- the keyframe search unit 202 searches for a keyframe that performs a feature point matching process with a query image from a plurality of keyframes arranged in the map data based on the feature amount in the keyframe.
- the keyframe feature amount is supplied to the keyframe search unit 202 from the map storage unit 201. All keyframes may be compared with the query image in order, or keyframes to be compared based on the features within the keyframes may be selected and only the selected keyframes may be compared with the query image. ..
- the information of the key frame for performing the feature point matching process is supplied to the feature point matching unit 203.
- a key frame that is a reference for specifying the position of the query image on the map data by performing the feature point matching process with the query image is referred to as a specific key frame.
- the feature point matching unit 203 performs a feature point matching process with the specific keyframe searched by the keyframe search unit 202 and the query image. By comparing the feature points of the specific key frame with the feature points of the query image, matching feature points are extracted, and the correspondence information between the specific key frame and the query image can be estimated by the correspondence information estimation unit.
- the feature points of the specific key frame are supplied to the feature point matching unit 203 from the map storage unit 201.
- the feature point matching process can be performed by, for example, a method such as SIFT (Scale Invariant Feature Transform) or SURF (Speed Upped Robust Feature).
- SIFT Scale Invariant Feature Transform
- SURF Speed Upped Robust Feature
- Correspondence information estimation unit 204 estimates the correspondence information between the specific keyframe and the query image and the position and orientation of the query image on the map data based on the result of the feature point matching process and the position / orientation information of the specific keyframe.
- the position / orientation information of the specific key frame is supplied to the correspondence information estimation unit 204 from the map storage unit 201.
- the correspondence information is the displacement (movement amount) from the position in the map data of the specific key frame to the position in the map data of the query image, and the rotation from the posture in the map data of the specific key frame to the posture in the map data of the query image. ..
- Correspondence information is acquired by grasping the position, displacement, rotation, etc. of the object in the keyframe and the query image from the match between the feature point in the specific keyframe and the feature point in the query image.
- the correspondence information can be obtained as the displacement and rotation from the position and orientation indicated by the key frame to the position and orientation indicated by the query image with reference to the origin O and the xyz axis set in the map data.
- the moving body 100 can estimate its own position in the map data by SLAM. Therefore, the moving body 100 transmits the information of the self-position in the map data matching the shooting position of the query image together with the query image to the information processing device 200, and the information processing device 200 uses the information of the self-position to query the map data. You may locate the image or create a map.
- Correspondence information estimation unit 204 outputs the position and orientation of the estimated query image on the map data as position / orientation information.
- the position / orientation information of the query image is transmitted to the moving body 100 that has transmitted the query image.
- the map synthesizing unit 205 performs a process of synthesizing a plurality of map data based on the correspondence information between the plurality of map data and the query image in each of the plurality of map data.
- the information processing device 200 is configured as described above.
- the information processing device 200 is realized by executing a program, and the program may be installed in a server device or the like in advance, or may be distributed by download, storage medium, or the like so that the user can install the information processing device 200 by himself / herself. .. Further, the information processing device 200 is not only realized by a program, but may also be realized by combining a dedicated device, a circuit, or the like by hardware having the function.
- the information acquisition unit 111 first acquires the current time information and the network ID in step S101.
- step S102 the hash generation unit 112 generates a hash value based on the time information and the network ID.
- the first mobile body 100A acquires the network IDs of network A, network B, and network C, and further acquires the radio field strength of each network.
- the network ID of network A is referred to as "AAA”
- the network ID of network B is referred to as "BBB”
- the network ID of network C is referred to as "CCC”.
- the first mobile body 100A sorts each network in the order of radio field strength.
- the radio wave strength of the network A is the highest, followed by the network B and the network C in that order.
- the acquired time information is rounded, and a hash value is generated from the time information and the sorted network ID using a predetermined hash function.
- the rounding is performed in units of 10 minutes, for example, and in that case, when the time is 9:04 and 9:08, the result of the rounding is 9:00. Since it is a condition for synthesizing map data that the hash value calculated for each moving object 100 is the same, if the time information is slightly different, the hash value will be different, and the map data will be combined. Can't be done. Therefore, the conditions for synthesizing map data can be broadened by rounding, and the timing of hash value generation in each mobile 100 does not have to be exactly the same.
- the moving body 100 Since the moving body 100 is often in a moving state, if a hash value is generated from old time information and a network ID, the hash value may deviate from the position of the moving body 100 in real time. Therefore, it is preferable to generate the hash value and search for the moving body 100 at a short time interval (for example, 10 minutes).
- the hash value in the first mobile 100A is calculated from the time information and the sorted network ID as shown in FIG.
- the second mobile body 100B also generates a hash value in the same manner.
- the sort order based on the radio field strength of the network ID is the same as shown in FIG. It has become.
- the sort order of the network IDs in the third mobile body 100C is different from the sort order of the network IDs in the first mobile body 100A and the second mobile body 100B.
- the sort is not limited to the order of radio wave strength, and may be in another order, for example, a dictionary order.
- the hash value in the second mobile body 100B and the hash value in the third mobile body 100C are also calculated from the time and the sorted network ID as shown in FIG.
- the hash value shown in FIG. 6 is assumed as an example for convenience of explanation, and is not an actual hash value.
- the hash values are the same. However, since the sort order of the network IDs in the third mobile body 100C is different from that of the first mobile body 100A and the second mobile body 100B, the hash value of the third mobile body 100C is the first mobile body 100A and the second mobile body 100A. It will not be the same as the hash value of the body 100B.
- step S103 the mobile search unit 110 searches for other mobiles existing in the vicinity of the first mobile 100A based on the hash value.
- the mobile search unit 110 broadcasts the hash value generated by the hash generation unit 112 to other mobiles existing around the first mobile 100A and inquires whether it has the same hash value as itself. Search for mobiles.
- the other mobile unit that has received the inquiry transmits a response as to whether or not the received hash value and the hash value generated by itself are the same to the first mobile unit 100A that has made the inquiry. Therefore, other mobiles need to generate hash values in the same way.
- the search for the mobile 100 can be performed by other methods. It can be carried out.
- the first mobile 100A may search for other mobiles by transmitting the hash value generated by itself to the management server and inquiring whether there is a mobile that has transmitted the same hash value to the management server. it can.
- the management server stores all the hash values sent together with the inquiry, and uses it to confirm the existence of the hash value for subsequent inquiries from other mobiles.
- step S104 if the search for another mobile body is successful in step S104, that is, if there are mobile bodies having the same hash value, the process proceeds to step S105 (Yes in step S104).
- the search is not successful, that is, if there is no moving body having the same hash value, the process proceeds to step S101, and steps S101 to S104 are repeated (No in step S104).
- the second mobile body 100B is discovered as another mobile body.
- step S105 the first mobile body 100A establishes communication with the second mobile body 100B, which is another mobile body, and the second server device 300B stores the second map data created by the second mobile body 100B. Acquires identification information of (second information processing apparatus 200B). As a result, the first mobile body 100A can transmit a query image to the second information processing device 200B.
- the first mobile body 100A transmits a query image to the first information processing device 200A, and inquires about the position / orientation information of the query image in the first map data.
- the query image is also transmitted to the second information processing device 200B corresponding to the second mobile body 100B, and the position and orientation of the query image in the second map data are inquired.
- the first moving body 100A transmits an instruction to synthesize the first map data stored in the first information processing device 200A and the second map data stored in the second information processing device 200B to the first information processing device 200A.
- the first mobile body 100A transmits information indicating that it is the second information processing device 200B associated with the second mobile body 100B that has the second map data to the first information processing device 200A.
- the first information processing device 200A can establish communication with the second information processing device 200B and send and receive information necessary for synthesizing map data.
- the processing in the moving body 100 is performed as described above.
- the network ID is used to search for another mobile body, only the hash value is disclosed, so that there is no possibility that the position information of the mobile body 100 is leaked from the network ID to the outside. Further, even if the hash value is eavesdropped, a huge amount of calculation is required to obtain the network ID from the hash value, so that the network ID is unlikely to be leaked. You can also send the hash value to a key-value store service on the network to search for other mobiles.
- the above-mentioned processing in the moving body 100 is a process for confirming that the second moving body 100B exists in the vicinity range of the first moving body 100A and instructing the transmission of the query image and the map data synthesis. At that stage, it is unclear whether the first map data created by the first mobile body 100A and the second map data created by the second mobile body 100B can be combined.
- the information processing apparatus 200 determines whether or not the first map data and the second map data can be combined, and if they can be combined, they are combined into one map data.
- the first information processing device 200A receives the query image transmitted from the first moving body 100A, and receives an inquiry about the position / orientation information of the query image in the first map data and a map data synthesis instruction.
- step S202 the first information processing device 200A performs localization processing on the query image and the first map data transmitted from the first mobile body 100A.
- the position and orientation of the query image in the first map data and the correspondence information of the query image with respect to the specific key frame are acquired.
- the second information processing apparatus 200B the localization process is performed on the query image and the second map data transmitted from the first mobile body 100A. If the localization process is successful, the process proceeds to step S204 (Yes in step S203), and if the localization process is not successful, the process returns to step S201 (No in step S203).
- step S204 the first information processing apparatus 200A transmits the estimated position / orientation information of the query image to the first moving body 100A that has made an inquiry by transmitting the query image.
- the first moving body 100A can recognize which map data, which position, and in what posture the query image was taken.
- step S205 the first information processing device 200A transmits a communication request to the second information processing device 200B and establishes communication with the second information processing device 200B.
- step S206 the first information processing device 200A confirms whether communication with the second information processing device 200B having the second map data is established. Steps S205 and S206 are continued until communication with the second information processing apparatus 200B is established.
- step S207 the first information processing device 200A confirms whether or not the localization process was successful based on the same query image in itself and the second information processing device 200B. Therefore, the first information processing device 200A needs to receive a notification from the second information processing device 200B whether or not the localization process is successful. Since the first information processing device 200A synthesizes a plurality of map data based on the query image, in order to synthesize the map data, the first map data and the second map data are based on the same query image. Successful localization is required. When the localization process is successful in the first map data and the second map data based on the same query image, the first information processing apparatus 200A assumes that the first map data and the second map data can be combined, and the process is step S207. Proceed to (Yes in step S207)
- the first information processing device 200A receives the correspondence information of the query image in the second map data from the second information processing device 200B.
- the correspondence information of the query image in the second map data may be transmitted and received by communication via the first mobile body 100A instead of direct communication between the server devices.
- direct communication between server devices is better.
- step S209 the first information processing apparatus 200A performs a synthesis process of the first map data and the second map data for which the localization process has been successful.
- the map data composition process will be described with reference to FIGS. 8 to 12.
- the first map data will be described as shown in FIG. 8A, and the second map data will be described as shown in FIG. 8B.
- the first map data and the second map data are associated with different origins O and xyz axes, respectively.
- FIG. 8A it is necessary to arrange a plurality of keyframes in advance in the first map data. Further, as shown in FIG. 8B, it is necessary to arrange a plurality of keyframes in advance in the second map data.
- the correspondence information between the specific keyframe and the query image in the first map data can be acquired.
- the specific key frame in the first map data is referred to as the first specific key frame.
- the correspondence information between the specific keyframe and the query image in the second map data can be acquired.
- the specific key frame in the second map data is referred to as a second specific key frame.
- the corresponding information in the first map data is shown by the displacement L1 from the position in the map data indicated by the first specific key frame to the position in the map data indicated by the query image and the first specific key frame. It is a rotation (angle R1) from the posture in the map data to the posture in the map data shown by the query image.
- the angle R1 is obtained, for example, with reference to any of the xyz axes preset in the first map data.
- the corresponding information includes the displacement L2 from the position in the map data indicated by the second specific key frame to the position in the map data indicated by the query image, and the second specific key. It is the rotation (angle R2) from the posture in the map data shown by the frame to the posture in the map data shown by the query image. Like the angle R1, the angle R2 is obtained with reference to any of the xyz axes preset in the second map data.
- the displacement L and the angle R are calculated with reference to the first specific key frame, the second specific key frame, and the substantially center of the query image, respectively, but they are set for convenience of illustration and explanation. It is a thing. Actually, the displacement L and the angle R are calculated with reference to the positions on the map data indicated by the first specific key frame, the second specific key frame, and the query image, respectively.
- the query image placed in the first map data and the query image placed in the second map data are the same, and represent the same position and orientation in the real space. Therefore, when the correspondence information between the first map data and the query image and the correspondence information between the second map data and the query image can be obtained by the localization process, the position of the query image on the first map data and the second map data. It is possible to acquire the correspondence (relative relationship) between the first map data and the second map data based on the above.
- the correspondence (relative relationship) between the first map data and the second map data is the displacement L3 from the first specific key frame of the first map data to the second specific key frame of the second map data.
- one composite map data can be created by synthesizing the first map data and the second map data.
- the correspondence information between the query image and the key frame can also be represented by three-dimensional coordinates based on the position of the key frame.
- the attitude (orientation) from the keyframe to the query image can also be represented by a matrix.
- map data can be created by synthesizing a plurality of map data. Further, since a plurality of map data are combined based on one query image, the map data can be easily combined. By synthesizing the map data, the moving body 100 can use the map data created by the other moving body, and the moving body 100 can also make the other moving body use the map data created by itself. Map data for an unexplored area of the moving body 100 itself can also be acquired. Further, since the positions of the plurality of moving bodies can be estimated on one map data after synthesis, the plurality of moving bodies can exchange position information with each other and operate in cooperation with each other.
- the description has been given by taking the composition of two map data stored in the two information processing devices 200 as an example, but the number and composition of the map data are not limited to that.
- the moving body 100 transmits a query image to all three information processing devices 200 to instruct the synthesis of map data.
- the third information processing device 300C synthesizes the third map data and the fourth map data.
- one of the information processing devices 200 synthesizes the first map data, the second map data, and the third and fourth composite map data to create one composite map data consisting of a total of four map data. It is also possible to do.
- the first information processing device 200A stores the first map data and the second information processing device 200B stores the second map data, but one information processing device 200 stores a plurality of maps. Data may be stored.
- the plurality of map data are sequentially localized and the map data to be combined is selected.
- the first moving body 100A transmits a query image to the first information processing device 200A and the second information processing device 200B to instruct the synthesis of map data.
- the two moving objects 100B may also transmit the query image to the first information processing device 200A and the second information processing device 200B.
- the accuracy of map data synthesis can be improved by performing localization processing using the query image from the first mobile body 100A and the query image from the second mobile body 100B, respectively.
- the first mobile body 100A itself has a function as the first information processing device 200A and stores the first map data
- the second mobile body 100B itself is the second information processing device. It may be configured to have a function as 200B and store the second map data.
- the moving body 100 on the side of transmitting the query image needs to perform the localization process of the map data stored by itself and the query image.
- map data can be synthesized for a plurality of map data stored in one information processing device 200 associated with one mobile body 100 in the same manner as in the embodiment. Further, the map data can be synthesized for a plurality of map data stored in one mobile body 100 having a function as the information processing device 200 in the same manner as in the embodiment. That is, as long as there are a plurality of map data, the number of moving objects and the number of information processing devices do not matter.
- the information processing device 200 may incorporate the query image into the map data to expand the map data.
- the information processing device 200 may operate in the mobile body 100, may operate in a terminal device such as a personal computer, a smartphone, or a tablet terminal, or may operate in the cloud. You may.
- the information processing device 200 itself may have a communication function and communicate with the mobile body 100 without going through another device such as the server device 300.
- the query image does not necessarily have to be taken by the camera included in the moving body 100 that created the map data.
- an image taken by the user with a terminal device or the like may be transmitted to the information processing device 200 as a query image. ..
- the existence of the moving body 100 is not essential in the synthesis of the map data. Absent.
- the description of synthesizing the first map data and the second map data, which are two map data, has been described, but the combined map data is not limited to two, and may be three or more. Therefore, the number of mobiles, information processing devices, and server devices may be three or more.
- the present technology can also have the following configurations.
- (1) Acquire the correspondence information between the keyframes placed in advance in the map data and the query image, An information processing device that synthesizes a plurality of the map data based on the corresponding information.
- (2) The information processing device according to (1), wherein the key frame is an image obtained by photographing a real space represented by the map data.
- (3) The information processing apparatus according to (1) or (2), wherein the corresponding information is a displacement from a position in the map data indicated by the key frame to a position in the map data indicated by the query image.
- (4) The information processing apparatus according to any one of (1) to (3), wherein the corresponding information is a rotation from the posture in the map data indicated by the key frame to the posture in the map data indicated by the query image.
- one of the keyframes (1) to (4) for which the corresponding information is acquired is specified by feature point matching between the keyframes and the query image.
- the information processing apparatus (9) The information processing apparatus according to (8), wherein it is determined based on a hash value whether or not a plurality of the moving bodies exist in the neighborhood range. (10) When the hash value generated by the one mobile body and the hash value generated by the other mobile body are the same, it is determined that the one mobile body and the other mobile body exist in the vicinity range (9).
- the information processing device described in. (11) The information processing apparatus according to (9), wherein the hash value is generated based on time information and a network ID. (12) The information processing device according to (7), wherein the query image is transmitted from the moving body. (13) The information processing device according to (12), wherein the query image is transmitted from the moving body together with an inquiry for position information in the map data of the query image.
- the information processing device which transmits the position information of the query image on the map to the moving body that has transmitted the query image.
- (15) Acquire the correspondence information between the keyframes placed in advance in the map data and the query image, An information processing method for synthesizing a plurality of the map data based on the corresponding information.
- (16) Acquire the correspondence information between the keyframes placed in advance in the map data and the query image, An information processing program that causes a computer to execute an information processing method that synthesizes a plurality of the map data based on the corresponding information.
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Automation & Control Theory (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Aviation & Aerospace Engineering (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Electromagnetism (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Traffic Control Systems (AREA)
- Processing Or Creating Images (AREA)
Abstract
地図データに予め配置されたキーフレームとクエリ画像との対応情報を取得し、対応情報に基づいて複数の地図データを合成する情報処理装置である。
Description
本技術は、情報処理装置、情報処理方法および情報処理プログラムに関する。
近年、車両、ドローン、ロボットなどの移動体を移動させて周辺の情報や地図情報を取得する技術が提案されている。また、個々の移動体により取得した情報を合成する技術も提案されている(特許文献1)
複数の移動体を用いる場合、移動体はそれぞれが独立して周辺情報や地図情報を取得するため、各移動体の位置、姿勢は情報ごとに別の原点に基づいて推定されるため、一の移動体から他の移動体までの距離や方向を把握するのが難しいため、正確に複数の情報を合成するのが難しいという問題がある。
本技術はこのような点に鑑みなされたものであり、複数の地図データを合成することができる情報処理装置、情報処理方法および情報処理プログラムを提供することを目的とする。
上述した課題を解決するために、第1の技術は、地図データに予め配置されたキーフレームとクエリ画像との対応情報を取得し、対応情報に基づいて複数の前記地図データを合成する情報処理装置である。
また、第2の技術は、地図データに予め配置されたキーフレームとクエリ画像との対応情報を取得し、対応情報に基づいて複数の前記地図データを合成する情報処理方法である。
さらに、第3の技術は、地図データに予め配置されたキーフレームとクエリ画像との対応情報を取得し、対応情報に基づいて複数の地図データを合成する情報処理方法をコンピュータに実行させる情報処理プログラムである。
以下、本技術の実施の形態について図面を参照しながら説明する。なお、説明は以下の順序で行う。
<1.実施の形態>
[1-1.情報処理システム10の構成]
[1-2.移動体100の構成]
[1-3.情報処理装置200の構成]
[1-4.移動体100における処理]
[1-5.情報処理装置200における処理]
<2.変形例>
[1-1.情報処理システム10の構成]
[1-2.移動体100の構成]
[1-3.情報処理装置200の構成]
[1-4.移動体100における処理]
[1-5.情報処理装置200における処理]
<2.変形例>
<1.実施の形態>
[1-1.情報処理システム10の構成]
まず図1を参照して、本技術の実施の形態における情報処理システム10の構成について説明する。情報処理システム10は複数の移動体100と、複数の情報処理装置200とから構成されている。本実施の形態では移動体100として第1移動体100Aと第2移動体100Bがあり、情報処理装置200として第1情報処理装置200Aと第2情報処理装置200Bがあるとする。
[1-1.情報処理システム10の構成]
まず図1を参照して、本技術の実施の形態における情報処理システム10の構成について説明する。情報処理システム10は複数の移動体100と、複数の情報処理装置200とから構成されている。本実施の形態では移動体100として第1移動体100Aと第2移動体100Bがあり、情報処理装置200として第1情報処理装置200Aと第2情報処理装置200Bがあるとする。
第1情報処理装置200Aは第1サーバ装置300Aにおいて動作し、第2情報処理装置200Bは第2サーバ装置300Bにおいて動作するものとする。移動体100と、情報処理装置200を備えるサーバ装置300はインターネットなどのネットワークを介して接続されている。
移動体100は、自立して移動する装置であればどのようなものでもよく、例えば、ドローン、ロボット掃除機、ペット型ロボット、人型ロボット、自動運転車、自律配送ロボットなどがある。また、移動体100はSLAM(Simultaneous Localization and Mapping)機能により移動体100の周囲の地図データの作成および自己位置推定を行うことができるものである。なお情報処理システム10を構成する移動体100の数に制限はない。
情報処理装置200は移動体100が作成した地図データを保持し、地図データの合成処理を行うものである。本実施の形態において情報処理装置200は複数の移動体100がそれぞれ個別にSLAMにより作成した複数の地図データを格納しているものとする。
第1移動体100Aは第1情報処理装置200Aと関連付けられ、第1情報処理装置200Aは第1移動体100Aが作成した第1地図データを格納する。また、第2移動体100Bは第2情報処理装置200Bと関連付けられ、第2情報処理装置200Bは第2移動体100Bが作成した第2地図データを格納する。
サーバ装置300は、少なくとも制御部301、通信部302、記憶部303を備える。情報処理装置200はサーバ装置300が備える通信部302を用いて移動体100との通信を行う。
制御部301はCPU(Central Processing Unit)、RAM(Random Access Memory)およびROM(Read Only Memory)などから構成されている。ROMには、CPUにより読み込まれ動作されるプログラムなどが記憶されている。RAMは、CPUのワークメモリとして用いられる。CPUは、ROMに記憶されたプログラムに従い様々な処理を実行してコマンドの発行を行うことによって、サーバ装置全体および各部を制御する。
通信部302は、移動体や他のサーバ装置と通信を行なうための通信モジュールである。通信方式としては、無線LAN(Local Area Network)やWAN(Wide Area Network)、WiFi(Wireless Fidelity)、4G(第4世代移動通信システム)、5G(第5世代移動通信システム)、Bluetooth(登録商標)、ZigBee(登録商標)などがある。
記憶部303は、例えば、ハードディスク、フラッシュメモリなどの大容量記憶媒体である。
第1情報処理装置200Aは第1サーバ装置300Aにおいて動作し、第2情報処理装置200Bは第2サーバ装置300Bにおいて動作するものとする。
[1-2.移動体100の構成]
次に図2を参照して移動体100の構成について説明する。移動体100は、制御部101、記憶部102、通信部103、カメラ部104、センサ部105、SLAM処理部106、駆動部107、電源部108、移動体検索部110を備えて構成されている。移動体検索部110は情報取得部111、ハッシュ生成部112、検索処理部113とから構成されている。
次に図2を参照して移動体100の構成について説明する。移動体100は、制御部101、記憶部102、通信部103、カメラ部104、センサ部105、SLAM処理部106、駆動部107、電源部108、移動体検索部110を備えて構成されている。移動体検索部110は情報取得部111、ハッシュ生成部112、検索処理部113とから構成されている。
制御部101はCPU、RAMおよびROMなどから構成されている。CPUは、ROMに記憶されたプログラムに従い様々な処理を実行してコマンドの発行を行うことによって、移動体100全体および各部を制御する。また、制御部101は駆動部107の出力を制御する制御信号を駆動部107に供給することにより移動体100の移動速度、移動方向などを制御する。
記憶部102は、例えば、ハードディスク、フラッシュメモリなどの大容量記憶媒体である。記憶部102にはSLAM処理部106が作成した地図データやカメラ部104で撮影した画像、その他、移動体100の使用に必要なデータやアプリケーションなどが保存される。
通信部103は、サーバ装置300と通信を行なうための通信モジュールである。通信方式としては、無線LANやWAN、WiFi、4G、5G、Bluetooth(登録商標)、ZigBee(登録商標)などがある。
カメラ部104は、撮像素子や画像処理エンジンなどからなり、RGBやモノクロの2次元の静止画像および動画を撮影することができるカメラとしての機能を備えるものである。カメラ部104は移動体100自体が備えるものの他、移動体100とは別の装置として構成され、移動体100に接続して搭載可能なものでもよい。
センサ部105は、GPS(Global Positioning System)モジュールなどの移動体100の位置を検出することができるセンサである。GPSは地球の周囲に位置する複数の人工衛星からの信号を受信機で受け取ることにより現在位置を知るシステムである。
さらに、センサ部105はIMU(Inertial Measurement Unit)モジュールなどの角速度を検出するセンサを含んでいてもよい。IMUモジュールは慣性計測装置であり、2軸または3軸方向に対する加速度センサ、角速度センサ、ジャイロセンサなどによって、3次元の角速度と加速度を求めることにより、移動体100の姿勢、向きなど検出する。
SLAM処理部106は、SLAM機能により移動体100の周囲の地図データの作成および自己位置推定を行うものである。SLAMにより、カメラ部104で撮影した画像から検出された特徴点、IMUの検出結果、その他各種センサからのセンサ情報などを複合的に用いることにより地図データの作成、地図データにおける自己位置の推定を行うことができる。SLAM処理部106が作成した地図データは通信部103により情報処理装置200に送信される。
駆動部107は、制御部101が指令する所定の動作に従って移動体の動作を実現する機能ブロックである。駆動部107は、移動体100の各動作部位であるモータやアクチュエータを動作させることで移動体100の移動を実現する。なお、移動体100の移動方法は移動体の種類によって異なるものであり、本実施の形態においては移動体の移動方法はどのような移動方法であってもよい。移動方法は、例えば、移動体100がドローンの場合には回転翼の動作であり、ロボット掃除機や自動運転車や自律配送ロボットの場合は車輪の回転であり、ペット型ロボットや人型ロボットの場合は足の動作などがある。
電源部108は、移動体100の各電気回路などに対して給電を行なう。移動体100は、バッテリを用いた自律駆動式であり、電源部108は例えば充電バッテリと、充電バッテリの充放電状態を管理する充放電制御部とで構成される。
移動体検索部110は他の移動体の検索を行うためのものである。
情報取得部111は、ハッシュ生成部112によるハッシュ値生成に用いる情報を取得するものである。本実施の形態においてはハッシュ値生成に時刻情報とネットワークIDを用いる。時刻情報は移動体100が通常備える時計機能から取得することができる。ネットワークIDは移動体100が備える通信部103による通信機能から取得することができる。ネットワークIDとしてはWi-Fiのアクセスポイントの識別名であるSSID(Service Set Identifier)、セルラー基地局のIDなどがある。また、情報取得部111は必要に応じてネットワークIDを取得したネットワークの電波強度を取得する。電波強度の取得は通信部103による通信機能から取得してもよいし、公知の電波強度取得専用のアプリケーションなどを用いてもよい。
ハッシュ生成部112は、時刻情報とネットワークIDとからハッシュ値を生成するものである。ハッシュ値は検索処理部113による移動体検索処理に用いられる。
検索処理部113は、ハッシュ生成部112が生成したハッシュ値を用いて移動体100の近傍範囲に存在する他の移動体を検索するものである。本実施の形態は、移動体100が生成した地図データと近傍範囲に存在する他の移動体が生成した地図データを情報処理装置200により合成する。なお、近傍範囲とは具体的な範囲として限定されるものではなく、地図データで示される範囲や、どの程度の範囲まで他の移動体を検索するかによって決定されるものである。
移動体100は、他の移動体を発見すると情報処理装置200に対してカメラ部104で撮影した画像をクエリ画像として送信し、クエリ画像の地図データ上における撮影位置と撮影姿勢を問い合わせるとともに、自身が作成した地図データと他の移動体が作成した地図データとの合成を指示する。
移動体検索部110はプログラムの実行により実現され、そのプログラムは予め移動体にインストールされていてもよいし、ダウンロード、記憶媒体などで配布されて、ユーザが自らインストールするようにしてもよい。さらに、移動体検索部110はプログラムによって実現されるのみでなく、その機能を有するハードウェアによる専用の装置、回路などを組み合わせて実現されてもよい。
[1-3.情報処理装置200の構成]
次に図3を参照して情報処理装置200の構成について説明する。情報処理装置200は地図格納部201、キーフレーム検索部202、特徴点マッチング部203、対応情報推定部204、地図合成部205を備えて構成されている。キーフレーム検索部202、特徴点マッチング部203、対応情報推定部204はローカライズ処理を行うものである。
次に図3を参照して情報処理装置200の構成について説明する。情報処理装置200は地図格納部201、キーフレーム検索部202、特徴点マッチング部203、対応情報推定部204、地図合成部205を備えて構成されている。キーフレーム検索部202、特徴点マッチング部203、対応情報推定部204はローカライズ処理を行うものである。
地図格納部201は地図データを格納して保存する記憶部である。地図データは移動体100がSLAMにより作成したものでもよいし、既存の地図データベースや、地図サービスで提供される地図データなどでもよい。情報処理装置200で地図合成処理を行う場合、地図格納部201から地図データが読み出される。
地図データには予め任意の位置の原点Oとxyz軸が設定されているものとする。原点Oからの変位に基づいて地図データ上におけるクエリ画像とキーフレームの位置が特定され、その位置に基づいてクエリ画像とキーフレーム間の変位および回転が算出される。また、複数の地図データを合成する際にxyz軸を一致させて合成する必要がある。原点Oは地図データ上の任意の点であり、xyz軸は例えば方位に基づいて東西方向をx方向とし、北南方向をx軸方向とし、高さをz軸方向とする。
地図データには予めキーフレームが配置されている。キーフレームとは、地図データ内の環境を表す代表画像であり、地図データにおける位置と姿勢の情報も含まれている。キーフレームは1つの地図データに1つ配置されていてもよいし、複数配置されていてもよい。キーフレームの数に限定はない。地図データの大きさや地図データに対応する実空間におけるオブジェクトに応じてキーフレーム内の被写体やキーフレームの数を決定するとよい。キーフレームの数が多いほうが地図データに対応する実空間における特徴をより把握することができるため、地図データ合成の精度を高めることができる。キーフレームは例えば、予め移動体100および情報処理装置200を使用するユーザが撮影して地図データと対応させておく。移動体100がSLAM処理を実行しながらキーフレームを追加していってもよい。
キーフレームには特徴点の情報が含まれている。特徴点とは、キーフレーム内におけるオブジェクトなど、時刻や天気などの環境条件が変化しても変化が小さいキーフレームの特徴を表すものである。キーフレームからの特徴点の検出は、従来からあるアルゴリズムを使用しておこなうことができる。例えば、コーナー検出法(Harrisアルゴリズム、FAST(Features from Accelerated Segment Test))、ニューラルネットワークによる特徴点検出法、ディープラーニングによる特徴点検出、輝度勾配などの方法がある。地図データには予め1または複数のキーフレームが配置されており、各キーフレームには特徴点が検出されているものとする。なお、公知にアルゴリズムの他、ユーザが直接キーフレームおよび特徴点は設定してもよい。
キーフレーム検索部202は、キーフレームにおける特徴量に基づいて地図データに配置されている複数のキーフレームの中からクエリ画像と特徴点マッチング処理を行うキーフレームを検索するものである。キーフレーム検索部202には地図格納部201からキーフレーム特徴量が供給される。全てのキーフレームを順にクエリ画像と比較してもよいし、キーフレーム内の特徴に基づいて比較処理を行うキーフレームを選択して選択したキーフレームのみをクエリ画像と比較するようにしてもよい。特徴点マッチング処理を行うキーフレームの情報は特徴点マッチング部203に供給される。以下の説明ではクエリ画像と特徴点マッチング処理を行い、クエリ画像の地図データ上における位置を特定する基準となるキーフレームを特定キーフレームと称する。
特徴点マッチング部203は、キーフレーム検索部202により検索された特定キーフレームとクエリ画像とで特徴点マッチング処理を行うものである。特定キーフレームの特徴点とクエリ画像の特徴点を比較することにより一致する特徴点を抽出し、対応情報推定部による特定キーフレームとクエリ画像との対応情報の推定を可能にする。特徴点マッチング部203には地図格納部201から特定キーフレームの特徴点が供給される。特徴点マッチング処理は例えば、SIFT(Scale Invariant Feature Transform)、SURF(Speed Upped Robust Feature)などの手法により行うことができる。特徴点マッチング処理の結果は対応情報推定部204に供給される。
対応情報推定部204は、特徴点マッチング処理の結果と特定キーフレームの位置姿勢情報に基づいて、特定キーフレームとクエリ画像の対応情報およびクエリ画像の地図データ上における位置と姿勢を推定する。対応情報推定部204には地図格納部201から特定キーフレームの位置姿勢情報が供給される。
対応情報は、特定キーフレームの地図データにおける位置からクエリ画像の地図データにおける位置までの変位(移動量)と、特定キーフレームの地図データにおける姿勢からクエリ画像の地図データにおける姿勢までの回転である。特定キーフレームにおける特徴点とクエリ画像における特徴点の一致からキーフレームとクエリ画像におけるオブジェクトの位置、変位、回転などを把握することにより対応情報を取得する。対応情報はキーフレームが示す位置および姿勢からクエリ画像が示す位置および姿勢までの変位および回転は地図データに設定されている原点Oとxyz軸を基準として取得することができる。
なお、移動体100はSLAMにより地図データにおける自己位置を推定することが可能である。よって、移動体100はクエリ画像とともにクエリ画像の撮影位置と一致する地図データにおける自己位置の情報を情報処理装置200に送信し、情報処理装置200はその自己位置の情報を用いて地図データにおけるクエリ画像の位置を特定したり、地図を作成したりしてもよい。
対応情報推定部204は、推定したクエリ画像の地図データ上における位置と姿勢を位置姿勢情報として出力する。このクエリ画像の位置姿勢情報はクエリ画像を送信した移動体100に送信される。
地図合成部205は、複数の地図データと、その複数の地図データそれぞれにおけるクエリ画像との対応情報に基づいて複数の地図データを合成する処理を行うものである。
情報処理装置200は以上のようにして構成されている。なお、情報処理装置200はプログラムの実行により実現され、そのプログラムは予めサーバ装置などにインストールされていてもよいし、ダウンロード、記憶媒体などで配布されて、ユーザが自らインストールするようにしてもよい。さらに、情報処理装置200はプログラムによって実現されるのみでなく、その機能を有するハードウェアによる専用の装置、回路などを組み合わせて実現されてもよい。
[1-4.移動体100における処理]
次に図4のフローチャートを参照して移動体100における処理について説明する。ここでは第1移動体100Aが検索により第2移動体100Bを発見し、第1移動体100Aと関連付けられた第1情報処理装置200Aが第1地図データと第2地図データを合成するものとして説明を行う。したがって下記の説明は第1移動体100Aにおける処理である。
次に図4のフローチャートを参照して移動体100における処理について説明する。ここでは第1移動体100Aが検索により第2移動体100Bを発見し、第1移動体100Aと関連付けられた第1情報処理装置200Aが第1地図データと第2地図データを合成するものとして説明を行う。したがって下記の説明は第1移動体100Aにおける処理である。
第1移動体100Aにおける処理では、まずステップS101で情報取得部111が現在の時刻情報およびネットワークIDを取得する。
次にステップS102でハッシュ生成部112が時刻情報およびネットワークIDに基づいてハッシュ値を生成する。
ここでハッシュ値の作成について図5および図6を参照して説明する。例として図5に示すようにネットワークA、ネットワークBおよびネットワークCのそれぞれのアクセスポイントが存在するものとする。
第1移動体100AはネットワークA、ネットワークBおよびネットワークCのネットワークIDを取得し、さらに各ネットワークの電波強度を取得する。ここでは説明の便宜上、ネットワークAのネットワークIDを「AAA」、ネットワークBのネットワークIDを「BBB」、ネットワークCのネットワークIDを「CCC」とする。
次に第1移動体100Aは各ネットワークを電波強度の順にソートする。第1移動体100AにおいてはネットワークAのアクセスポイントが最も近いため、ネットワークAの電波強度が最も高く、次いでネットワークB、ネットワークCの順になっている。
さらに取得済みの時刻情報に端数処理(丸め処理)を施し、時刻情報とソートしたネットワークIDとから所定のハッシュ関数を用いてハッシュ値を生成する。端数処理は例えば10分単位で行い、その場合、時刻が9:04の場合、9:08の場合いずれも端数処理の結果は9:00となる。移動体100ごとに算出するハッシュ値が同一であることが地図データの合成を行うことの条件であるため、わずかでも時刻情報が異なるとハッシュ値が異なる値になり、地図データの合成を行うことができなくなる。よって端数処理により地図データ合成の条件に幅を持たせることができ、各移動体100におけるハッシュ値生成のタイミングは正確に一致している必要はない。
移動体100は移動状態であることが多いため、古い時刻情報およびネットワークIDからハッシュ値を生成すると、そのハッシュ値がリアルタイムの移動体100の位置とずれてしまう可能性がある。よって、ハッシュ値の生成と移動体100の検索はある程度の短い時間間隔(例えば10分など)で行うようにするとよい。
第1移動体100Aにおけるハッシュ値は時刻情報とソートされたネットワークIDから図6に示すように算出される。第2移動体100Bも同様にしてハッシュ値を生成する。さらに説明の必要上、第3移動体100Cが存在するものとし、第3移動体100Cも同様にしてハッシュ値を生成する。
第1移動体100Aと第2移動体100Bは共に、ネットワークA、ネットワークB、ネットワークCの順にアクセスポイントが最も近いため、図5に示すようにネットワークIDの電波強度に基づくソート順は同一の順序になっている。しかし、第3移動体100CにおいてはネットワークCのアクセスポイントが最も近いため、ネットワークCの電波強度が最も高く、次いでネットワークB、ネットワークAの順になっている。よって、第3移動体100CにおけるネットワークIDのソート順は第1移動体100Aおよび第2移動体100BにおけるネットワークIDのソート順とは異なっている。なおソートは電波強度の順に限られず、他の順、例えば辞書順などでもよい。
同様に第2移動体100Bにおけるハッシュ値、第3移動体100Cにおけるハッシュ値も時刻とソートされたネットワークIDから図6に示すように算出される。なお、図6に示すハッシュ値は説明の便宜上例示として仮定したものであり、実際のハッシュ値ではない。
第1移動体100Aと第2移動体100Bにおいては時刻情報とネットワークIDの電波強度のソート順が同一であるため、ハッシュ値は同一のものとなる。しかし、第3移動体100CにおけるネットワークIDのソート順は第1移動体100Aおよび第2移動体100Bのものとは異なるため、第3移動体100Cのハッシュ値は第1移動体100Aおよび第2移動体100Bのハッシュ値とは同一にはならない。
フローチャートの説明に戻る。次にステップS103で、移動体検索部110がハッシュ値に基づいて第1移動体100Aの近傍範囲に存在する他の移動体の検索を行う。
移動体検索部110はハッシュ生成部112が生成したハッシュ値を第1移動体100Aの周囲に存在する他の移動体にブロードキャストして自身と同一のハッシュ値を有しているかを問い合わせることで他の移動体の検索を行う。問い合わせを受けた他の移動体は受信したハッシュ値と自身が生成したハッシュ値が同一であるか否かの応答を問い合わせ行った第1移動体100Aに送信する。よって、他の移動体も同じ方法でハッシュ値を生成している必要がある。
なお、管理下にある全ての移動体100から送信されたハッシュ値を送信元の移動体100の識別情報と共に一元管理している管理サーバが存在する場合、移動体100の検索は他の方法でも行うことができる。第1移動体100Aは自身が生成したハッシュ値を管理サーバに送信して、同一のハッシュ値を管理サーバに送信した移動体が存在するか問い合わせすることにより他の移動体の検索を行うこともできる。なお、管理サーバは、問い合わせと共に送信されたハッシュ値を全て格納し、それ以降の他の移動体からの問い合わせに対するハッシュ値の有無の確認に使用する。
次にステップS104で他の移動体の検索が成功した場合、すなわち、同一のハッシュ値を有する移動体が存在する場合、処理はステップS105に進む(ステップS104のYes)。一方、検索が成功してない、すなわち、同一のハッシュ値を有する移動体が存在しない場合、処理はステップS101に進み、ステップS101乃至ステップS104が繰り返される(ステップS104のNo)。ここでは他の移動体として第2移動体100Bが発見されたものとする。
次にステップS105で、第1移動体100Aは他の移動体である第2移動体100Bとの通信を確立し、第2移動体100Bが作成した第2地図データを格納する第2サーバ装置300B(第2情報処理装置200B)の識別情報を取得する。これにより、第1移動体100Aは第2情報処理装置200Bに対してクエリ画像を送信することが可能になる。
次にステップS106で、第1移動体100Aは第1情報処理装置200Aに対してクエリ画像を送信し、第1地図データにおけるクエリ画像の位置姿勢情報の問い合わせを行う。また、第2移動体100Bに対応する第2情報処理装置200Bに対してもクエリ画像を送信し、第2地図データにおけるクエリ画像の位置姿勢の問い合わせを行う。
さらに第1移動体100Aは、第1情報処理装置200Aに第1情報処理装置200Aが格納する第1地図データと第2情報処理装置200Bが格納する第2地図データの合成指示を送信する。この際、第1移動体100Aは、第2地図データを有するのが第2移動体100Bと関連付けられた第2情報処理装置200Bであることを示す情報を第1情報処理装置200Aに送信する。これにより第1情報処理装置200Aは第2情報処理装置200Bと通信を確立して地図データの合成に必要な情報の送受信を行うことが可能になる。
以上のようにして移動体100における処理が行われる。本技術によれば、他の移動体の検索のためにネットワークIDを用いるがハッシュ値しか公開しないため、ネットワークIDから移動体100の位置情報が外部に漏洩するおそれがない。また、万が一、ハッシュ値が盗聴されたとしてもハッシュ値からネットワークIDを求めるには膨大な量の計算が必要になるため、ネットワークIDが漏洩される可能性は低い。また、ハッシュ値をネットワーク上のキーバリューストアサービスに送信して他の移動体を検索することもできる。
[1-5.情報処理装置における処理]
次に図7のフローチャートを参照して情報処理装置200における処理について説明する。上述の移動体100における処理は、第1移動体100Aの近傍範囲に第2移動体100Bが存在することを確認してクエリ画像の送信と地図データ合成を指示するまでの処理である。その段階では第1移動体100Aが作成した第1地図データと第2移動体100Bが作成した第2地図データが合成可能かは不明である。情報処理装置200では、第1地図データと第2地図データが合成可能か否かを判断し、合成可能である場合にそれらを合成して1つの地図データとする。
次に図7のフローチャートを参照して情報処理装置200における処理について説明する。上述の移動体100における処理は、第1移動体100Aの近傍範囲に第2移動体100Bが存在することを確認してクエリ画像の送信と地図データ合成を指示するまでの処理である。その段階では第1移動体100Aが作成した第1地図データと第2移動体100Bが作成した第2地図データが合成可能かは不明である。情報処理装置200では、第1地図データと第2地図データが合成可能か否かを判断し、合成可能である場合にそれらを合成して1つの地図データとする。
まずステップS201で、第1情報処理装置200Aは第1移動体100Aから送信されたクエリ画像を受信し、第1地図データにおけるクエリ画像の位置姿勢情報の問い合わせおよび地図データ合成指示を受け付ける。
次にステップS202で、第1情報処理装置200Aは第1移動体100Aから送信されたクエリ画像と第1地図データにおいてローカライズ処理を行う。これにより、第1地図データにおけるクエリ画像の位置姿勢と、特定キーフレームに対するクエリ画像の対応情報が取得される。なお、第2情報処理装置200Bにおいても同様に、第1移動体100Aから送信されたクエリ画像と第2地図データにおいてローカライズ処理が行われる。
ローカライズ処理が成功した場合、処理はステップS204に進み(ステップS203のYes)、ローカライズ処理が成功していない場合、処理はステップS201に戻る(ステップS203のNo)。
ローカライズ処理が成功した場合、処理はステップS204に進み(ステップS203のYes)、ローカライズ処理が成功していない場合、処理はステップS201に戻る(ステップS203のNo)。
次にステップS204で、第1情報処理装置200Aは推定したクエリ画像の位置姿勢情報を、クエリ画像を送信して問い合わせを行った第1移動体100Aに送信する。これにより第1移動体100Aは自身がどの地図データのどの位置でどのような姿勢でクエリ画像を撮影したかを認識することができる。
次にステップS205で、第1情報処理装置200Aは第2情報処理装置200Bに通信要求を送信し、第2情報処理装置200Bとの通信を確立する。
次にステップS206で、第1情報処理装置200Aは第2地図データを有する第2情報処理装置200Bとの通信が確立しているかを確認する。第2情報処理装置200Bとの通信が確立するまでステップS205およびステップS206が継続される。
次にステップS207で、第1情報処理装置200Aは自身および第2情報処理装置200Bにおいて、同一のクエリ画像に基づいてローカライズ処理が成功したか否かを確認する。そのために第1情報処理装置200Aは第2情報処理装置200Bからローカライズ処理が成功したか否かの通知を受信する必要がある。第1情報処理装置200Aは複数の地図データをクエリ画像に基づいて合成するものであるため、地図データの合成を行うためには同一のクエリ画像に基づいて第1地図データおよび第2地図データにおいてローカライズ処理が成功することが必要となる。同一のクエリ画像に基づいて第1地図データおよび第2地図データにおいてローカライズ処理が成功した場合、第1情報処理装置200Aは第1地図データと第2地図データは合成可能であるとして処理はステップS207に進む(ステップS207のYes)
次にステップS208で、第1情報処理装置200Aは第2情報処理装置200Bから第2地図データにおけるクエリ画像の対応情報を受信する。なお、第2地図データにおけるクエリ画像の対応情報はサーバ装置間の直接通信ではなく、第1移動体100Aを介した通信で送受信してもよい。ただし、通信効率やセキュリティの観点からはサーバ装置間の直接通信のほうがよいと考えられる。
そしてステップS209で、第1情報処理装置200Aは、ローカライズ処理が成功した第1地図データと第2地図データの合成処理を行う。
ここで図8乃至図12を参照して地図データの合成処理について説明する。第1地図データは図8Aに示すものであり、第2地図データは図8Bに示すものであるとして説明を行う。第1地図データと第2地図データはそれぞれ別々の原点Oとxyz軸が対応付けられている。
図8Aに示すように第1地図データには予め複数のキーフレームを配置しておく必要がある。また、図8Bに示すように第2地図データにも予め複数のキーフレームを配置しておく必要がある。
そして図9Aに示すように、ローカライズ処理により第1地図データにおけるクエリ画像の位置が特定されると、第1地図データにおける特定キーフレームとクエリ画像との対応情報を取得することができる。第1地図データにおける特定キーフレームを第1特定キーフレームと称する。
同様に、図9Bに示すように、ローカライズ処理により第2地図データにおけるクエリ画像の位置が特定されると、第2地図データにおける特定キーフレームとクエリ画像との対応情報を取得することができる。第2地図データにおける特定キーフレームを第2特定キーフレームと称する。
図10に示すように第1地図データにおいて対応情報は、第1特定キーフレームで示される地図データにおける位置からクエリ画像で示される地図データにおける位置までの変位L1と、第1特定キーフレームで示される地図データにおける姿勢からクエリ画像で示される地図データにおける姿勢まで回転(角度R1)である。角度R1は例えば第1地図データに予め設定されているxyz軸のいずれかを基準にして求められる。
また、図10に示すように、第2地図データにおいて対応情報は、第2特定キーフレームで示される地図データにおける位置からクエリ画像で示される地図データにおける位置までの変位L2と、第2特定キーフレームで示される地図データにおける姿勢からクエリ画像で示される地図データにおける姿勢までの回転(角度R2)である。角度R2は角度R1と同様に第2地図データに予め設定されているxyz軸のいずれかを基準にして求められる。
なお、図10および図11においてはそれぞれ第1特定キーフレーム、第2特定キーフレーム、クエリ画像の略中心を基準として変位Lと角度Rを算出しているが、それは図示と説明の便宜上設定したものである。実際にはそれぞれ第1特定キーフレーム、第2特定キーフレーム、クエリ画像が示す地図データ上の位置を基準として変位Lと角度Rを算出する。
第1地図データに配置したクエリ画像と第2地図データに配置したクエリ画像は同一のものであり、実空間における同一の位置姿勢を表している。したがって、ローカライズ処理により第1地図データとクエリ画像との対応情報と、第2地図データとクエリ画像との対応情報が取得できた場合、クエリ画像の第1地図データおよび第2地図データ上における位置に基づいて第1地図データと第2地図データの対応関係(相対関係)を取得することができる。
第1地図データと第2地図データの対応関係(相対関係)は、図11に示すように第1地図データの第1特定キーフレームから第2地図データの第2特定キーフレームまでの変位L3と、第1地図データの第1特定キーフレームから第2地図データの第2特定キーフレームまでの回転(角度R3)である。これにより図12に示すように第1地図データと第2地図データを合成して1つの合成地図データを作成することができる。
なお、クエリ画像とキーフレームの対応情報はキーフレームの位置を基準にした3次元座標により表すこともできる。また、キーフレームからクエリ画像への姿勢(向き)は行列により表すこともできる。
本実施の形態では2次元の地図データの合成で説明を行ったが、本技術は3次元の地図データの合成にも適用することができる。
情報処理装置200における処理は以上のようにして行われる。本技術によれば、複数の地図データを合成することでより大きな地図データを作成することができる。また、1つのクエリ画像に基づいて複数の地図データを合成するので容易に地図データの合成を行うことができる。地図データの合成により、移動体100は他の移動体が作成した地図データを利用できるようになり、移動体100は他の移動体に自身が作成した地図データを利用させることも可能となる。移動体100自身が未踏の領域についての地図データも取得することができる。さらに、複数の移動体の位置が合成後の1つの地図データ上において推定できるため、複数の移動体が相互に位置情報を交換して協調して動作することが可能となる。
<2.変形例>
以上、本技術の実施の形態について具体的に説明したが、本技術は上述の実施の形態に限定されるものではなく、本技術の技術的思想に基づく各種の変形が可能である。
以上、本技術の実施の形態について具体的に説明したが、本技術は上述の実施の形態に限定されるものではなく、本技術の技術的思想に基づく各種の変形が可能である。
実施の形態では2つの情報処理装置200に格納された2つの地図データの合成を例にして説明を行ったが、地図データの数と合成はそれに限られるものではない。例えば図13に示すように、第1情報処理装置200A、第2情報処理装置200B、第3情報処理装置200Cという3つの情報処理装置があり、さらに第3情報処理装置200Cは2つの地図データを格納している場合を想定する。この場合、移動体100は3つ全ての情報処理装置200にクエリ画像を送信して地図データの合成を指示し、例えば、第3情報処理装置300Cが第3地図データと第4地図データを合成し、さらに、いずれかの情報処理装置200が第1地図データと第2地図データと、第3および第4の合成地図データを合成して合計4つの地図データからなる1つの合成地図データを作成する、ということも可能である。
実施の形態では、第1情報処理装置200Aが第1地図データを格納し、第2情報処理装置200Bが第2地図データを格納しているとしたが、1つの情報処理装置200は複数の地図データを格納していてもよい。1つの情報処理装置200が複数の地図データを格納している場合、複数の地図データに対して順々にローカライズ処理を行い、合成する地図データを選択する。
また、実施の形態では第1移動体100Aが第1情報処理装置200Aおよび第2情報処理装置200Bにクエリ画像を送信して地図データの合成を指示したが、第1移動体100Aに加え、第2移動体100Bもクエリ画像を第1情報処理装置200Aおよび第2情報処理装置200Bに送信してもよい。第1移動体100Aからのクエリ画像と第2移動体100Bからのクエリ画像を用いてそれぞれローカライズ処理を行うことにより地図データ合成の精度を高めることができる。
また、サーバ装置300を設けずに、第1移動体100A自身が第1情報処理装置200Aとしての機能を有して第1地図データを格納し、第2移動体100B自身が第2情報処理装置200Bとしての機能を有して第2地図データを格納するという構成でもよい。この場合、クエリ画像を送信する側の移動体100は自身が格納している地図データとクエリ画像とのローカライズ処理を行う必要がある。
また、1つの移動体100と関連付けられた1つの情報処理装置200が格納する複数の地図データに対しても実施の形態と同様に地図データの合成を行うことができる。さらに、情報処理装置200としての機能を備える1つの移動体100が格納する複数の地図データに対しても実施の形態と同様に地図データの合成を行うことができる。すなわち、地図データが複数存在していれば、移動体の数および情報処理装置の数は問わない。
情報処理装置200はクエリ画像を地図データに取り込んで地図データを拡張していってもよい。
情報処理装置200は実施の形態で示したサーバ装置300の他、移動体100において動作してもよいし、パーソナルコンピュータ、スマートフォン、タブレット端末などの端末装置において動作してもよいし、クラウドで動作してもよい。
移動体100が複数存在し、それら複数の移動体100がそれぞれ作成した複数の地図データを1つの共通の情報処理装置200に格納するようにしてもよい。
また、サーバ装置300などの他の装置を介さず、情報処理装置200自身が通信機能を有し、移動体100との通信を行うようにしてもよい。
クエリ画像は必ずしも地図データを作成した移動体100が備えるカメラで撮影したものである必要はなく、例えば、ユーザが端末装置などで撮影した画像をクエリ画像として情報処理装置200に送信してもよい。
ユーザが少なくとも2つの地図データを指定し、かつ、クエリ画像を用意して情報処理装置200に地図データを合成させることもできるので、地図データの合成においては移動体100の存在は必須のものではない。
実施の形態では2つの地図データである第1地図データと第2地図データを合成する説明を行ったが、合成する地図データは2つに限られず3つ以上でもよい。したがって、移動体、情報処理装置、サーバ装置の数も3つ以上でもよい。
本技術は以下のような構成も取ることができる。
(1)
地図データに予め配置されたキーフレームとクエリ画像との対応情報を取得し、
前記対応情報に基づいて複数の前記地図データを合成する
情報処理装置。
(2)
前記キーフレームは、前記地図データで表す実空間を撮影した画像である(1)に記載の情報処理装置。
(3)
前記対応情報は、前記キーフレームで示される前記地図データにおける位置から前記クエリ画像で示される前記地図データにおける位置までの変位である(1)または(2)に記載の情報処理装置。
(4)
前記対応情報は、前記キーフレームで示される前記地図データにおける姿勢から前記クエリ画像で示される前記地図データにおける姿勢への回転である(1)から(3)のいずれかに記載の情報処理装置。
(5)
前記地図データに前記キーフレームが複数ある場合、前記キーフレームと前記クエリ画像との特徴点マッチングにより前記対応情報を取得する一つの前記キーフレームを特定する(1)から(4)のいずれかに記載の情報処理装置。
(6)
複数の前記地図データのそれぞれにおける前記特徴情報の相対関係に基づいて複数の前記地図データを合成する(1)から(5)のいずれかに記載の情報処理装置。
(7)
前記地図データは、移動体の移動に基づいてSLAMにより取得される(1)から(6)のいずれかに記載の情報処理装置。
(8)
複数の前記地図データが近傍範囲内に存在する複数の前記移動体によりそれぞれ取得されたものである場合に前記複数の地図データを合成する(7)に記載の情報処理装置。
(9)
複数の前記移動体が前記近傍範囲内に存在するか否かはハッシュ値に基づいて判定される(8)に記載の情報処理装置。
(10)
一の前記移動体が生成したハッシュ値と他の前記移動体が生成したハッシュ値が同一である場合、一の前記移動体と他の前記移動体は近傍範囲に存在すると判定される(9)に記載の情報処理装置。
(11)
前記ハッシュ値は、時刻情報とネットワークIDに基づいて生成される(9)に記載の情報処理装置。
(12)
前記クエリ画像は前記移動体から送信される(7)に記載の情報処理装置。
(13)
前記クエリ画像は、該クエリ画像の前記地図データにおける位置情報の問い合わせと共に前記移動体から送信される(12)に記載の情報処理装置。
(14)
前記クエリ画像を送信した前記移動体に前記地図における前記クエリ画像の位置情報を送信する(13)に記載の情報処理装置。
(15)
地図データに予め配置されたキーフレームとクエリ画像との対応情報を取得し、
前記対応情報に基づいて複数の前記地図データを合成する情報処理方法。
(16)
地図データに予め配置されたキーフレームとクエリ画像との対応情報を取得し、
前記対応情報に基づいて複数の前記地図データを合成する情報処理方法をコンピュータに実行させる情報処理プログラム。
(1)
地図データに予め配置されたキーフレームとクエリ画像との対応情報を取得し、
前記対応情報に基づいて複数の前記地図データを合成する
情報処理装置。
(2)
前記キーフレームは、前記地図データで表す実空間を撮影した画像である(1)に記載の情報処理装置。
(3)
前記対応情報は、前記キーフレームで示される前記地図データにおける位置から前記クエリ画像で示される前記地図データにおける位置までの変位である(1)または(2)に記載の情報処理装置。
(4)
前記対応情報は、前記キーフレームで示される前記地図データにおける姿勢から前記クエリ画像で示される前記地図データにおける姿勢への回転である(1)から(3)のいずれかに記載の情報処理装置。
(5)
前記地図データに前記キーフレームが複数ある場合、前記キーフレームと前記クエリ画像との特徴点マッチングにより前記対応情報を取得する一つの前記キーフレームを特定する(1)から(4)のいずれかに記載の情報処理装置。
(6)
複数の前記地図データのそれぞれにおける前記特徴情報の相対関係に基づいて複数の前記地図データを合成する(1)から(5)のいずれかに記載の情報処理装置。
(7)
前記地図データは、移動体の移動に基づいてSLAMにより取得される(1)から(6)のいずれかに記載の情報処理装置。
(8)
複数の前記地図データが近傍範囲内に存在する複数の前記移動体によりそれぞれ取得されたものである場合に前記複数の地図データを合成する(7)に記載の情報処理装置。
(9)
複数の前記移動体が前記近傍範囲内に存在するか否かはハッシュ値に基づいて判定される(8)に記載の情報処理装置。
(10)
一の前記移動体が生成したハッシュ値と他の前記移動体が生成したハッシュ値が同一である場合、一の前記移動体と他の前記移動体は近傍範囲に存在すると判定される(9)に記載の情報処理装置。
(11)
前記ハッシュ値は、時刻情報とネットワークIDに基づいて生成される(9)に記載の情報処理装置。
(12)
前記クエリ画像は前記移動体から送信される(7)に記載の情報処理装置。
(13)
前記クエリ画像は、該クエリ画像の前記地図データにおける位置情報の問い合わせと共に前記移動体から送信される(12)に記載の情報処理装置。
(14)
前記クエリ画像を送信した前記移動体に前記地図における前記クエリ画像の位置情報を送信する(13)に記載の情報処理装置。
(15)
地図データに予め配置されたキーフレームとクエリ画像との対応情報を取得し、
前記対応情報に基づいて複数の前記地図データを合成する情報処理方法。
(16)
地図データに予め配置されたキーフレームとクエリ画像との対応情報を取得し、
前記対応情報に基づいて複数の前記地図データを合成する情報処理方法をコンピュータに実行させる情報処理プログラム。
100・・・移動体
200・・・情報処理装置。
200・・・情報処理装置。
Claims (16)
- 地図データに予め配置されたキーフレームとクエリ画像との対応情報を取得し、
前記対応情報に基づいて複数の前記地図データを合成する
情報処理装置。 - 前記キーフレームは、前記地図データで表す実空間を撮影した画像である
請求項1に記載の情報処理装置。 - 前記対応情報は、前記キーフレームで示される前記地図データにおける位置から前記クエリ画像で示される前記地図データにおける位置までの変位である
請求項1に記載の情報処理装置。 - 前記対応情報は、前記キーフレームで示される前記地図データにおける姿勢から前記クエリ画像で示される前記地図データにおける姿勢への回転である
請求項1に記載の情報処理装置。 - 前記地図データに前記キーフレームが複数ある場合、前記キーフレームと前記クエリ画像との特徴点マッチングにより前記対応情報を取得する一つの前記キーフレームを特定する
請求項1に記載の情報処理装置。 - 複数の前記地図データのそれぞれにおける前記特徴情報の相対関係に基づいて複数の前記地図データを合成する
請求項1に記載の情報処理装置。 - 前記地図データは、移動体の移動に基づいてSLAMにより取得される
請求項1に記載の情報処理装置。 - 複数の前記地図データが近傍範囲内に存在する複数の前記移動体によりそれぞれ取得されたものである場合に前記複数の地図データを合成する
請求項7に記載の情報処理装置。 - 複数の前記移動体が前記近傍範囲内に存在するか否かはハッシュ値に基づいて判定される
請求項8に記載の情報処理装置。 - 一の前記移動体が生成したハッシュ値と他の前記移動体が生成したハッシュ値が同一である場合、一の前記移動体と他の前記移動体は近傍範囲に存在すると判定される
請求項9に記載の情報処理装置。 - 前記ハッシュ値は、時刻情報とネットワークIDに基づいて生成される
請求項9に記載の情報処理装置。 - 前記クエリ画像は前記移動体から送信される
請求項7に記載の情報処理装置。 - 前記クエリ画像は、該クエリ画像の前記地図データにおける位置情報の問い合わせと共に前記移動体から送信される
請求項12に記載の情報処理装置。 - 前記クエリ画像を送信した前記移動体に前記地図における前記クエリ画像の位置情報を送信する
請求項13に記載の情報処理装置。 - 地図データに予め配置されたキーフレームとクエリ画像との対応情報を取得し、
前記対応情報に基づいて複数の前記地図データを合成する
情報処理方法。 - 地図データに予め配置されたキーフレームとクエリ画像との対応情報を取得し、
前記対応情報に基づいて複数の前記地図データを合成する
情報処理方法をコンピュータに実行させる情報処理プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021561204A JPWO2021106388A1 (ja) | 2019-11-29 | 2020-10-09 | |
US17/756,195 US20220413512A1 (en) | 2019-11-29 | 2020-10-09 | Information processing device, information processing method, and information processing program |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019-215976 | 2019-11-29 | ||
JP2019215976 | 2019-11-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021106388A1 true WO2021106388A1 (ja) | 2021-06-03 |
Family
ID=76129574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2020/038327 WO2021106388A1 (ja) | 2019-11-29 | 2020-10-09 | 情報処理装置、情報処理方法および情報処理プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220413512A1 (ja) |
JP (1) | JPWO2021106388A1 (ja) |
WO (1) | WO2021106388A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023119862A1 (ja) | 2021-12-21 | 2023-06-29 | ソニーグループ株式会社 | 情報処理装置、情報処理プログラム及び情報処理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016180980A (ja) * | 2015-03-23 | 2016-10-13 | 株式会社豊田中央研究所 | 情報処理装置、プログラム、及び地図データ更新システム |
JP2017090239A (ja) * | 2015-11-10 | 2017-05-25 | パイオニア株式会社 | 情報処理装置、制御方法、プログラム及び記憶媒体 |
WO2018104563A2 (en) * | 2016-12-09 | 2018-06-14 | Tomtom Global Content B.V. | Method and system for video-based positioning and mapping |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011511281A (ja) * | 2008-02-04 | 2011-04-07 | テレ アトラス ノース アメリカ インコーポレイテッド | センサにより検出されたオブジェクトとマップマッチングする方法 |
EP3035209A1 (en) * | 2014-12-18 | 2016-06-22 | Thomson Licensing | Method and apparatus for deriving a perceptual hash value from an image |
JP6760114B2 (ja) * | 2017-01-31 | 2020-09-23 | 富士通株式会社 | 情報処理装置、データ管理装置、データ管理システム、方法、及びプログラム |
WO2019073795A1 (ja) * | 2017-10-10 | 2019-04-18 | ソニー株式会社 | 情報処理装置、自己位置推定方法、プログラム、及び、移動体 |
JPWO2019082670A1 (ja) * | 2017-10-25 | 2020-11-12 | ソニー株式会社 | 情報処理装置、情報処理方法、プログラム、及び、移動体 |
CN108647245B (zh) * | 2018-04-13 | 2023-04-18 | 腾讯科技(深圳)有限公司 | 多媒体资源的匹配方法、装置、存储介质及电子装置 |
JP2021508393A (ja) * | 2018-09-07 | 2021-03-04 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | 同時に位置特定およびマッピングを実行するためのデバイスおよび方法 |
US10902634B2 (en) * | 2018-12-04 | 2021-01-26 | Here Global B.V. | Method and apparatus for providing feature triangulation |
US20200379966A1 (en) * | 2019-05-29 | 2020-12-03 | EMC IP Holding Company LLC | Method and system for implementing a decentralized storage pool for autonomous vehicle navigation guidance information |
US20210042958A1 (en) * | 2019-08-09 | 2021-02-11 | Facebook Technologies, Llc | Localization and mapping utilizing visual odometry |
-
2020
- 2020-10-09 JP JP2021561204A patent/JPWO2021106388A1/ja active Pending
- 2020-10-09 US US17/756,195 patent/US20220413512A1/en active Pending
- 2020-10-09 WO PCT/JP2020/038327 patent/WO2021106388A1/ja active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016180980A (ja) * | 2015-03-23 | 2016-10-13 | 株式会社豊田中央研究所 | 情報処理装置、プログラム、及び地図データ更新システム |
JP2017090239A (ja) * | 2015-11-10 | 2017-05-25 | パイオニア株式会社 | 情報処理装置、制御方法、プログラム及び記憶媒体 |
WO2018104563A2 (en) * | 2016-12-09 | 2018-06-14 | Tomtom Global Content B.V. | Method and system for video-based positioning and mapping |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023119862A1 (ja) | 2021-12-21 | 2023-06-29 | ソニーグループ株式会社 | 情報処理装置、情報処理プログラム及び情報処理方法 |
Also Published As
Publication number | Publication date |
---|---|
US20220413512A1 (en) | 2022-12-29 |
JPWO2021106388A1 (ja) | 2021-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107339990B (zh) | 多模式融合定位系统及方法 | |
CN103197684B (zh) | 无人机群协同跟踪目标的方法及系统 | |
CN103699126B (zh) | 智能导游机器人的导游方法 | |
CN107218926B (zh) | 一种基于无人机平台的远程扫描的数据处理方法 | |
CN111247390A (zh) | Vslam的并发的重新定位和重新初始化 | |
CN110208783B (zh) | 基于环境轮廓的智能车辆定位方法 | |
JP7145971B2 (ja) | 自律車両による乗客認識のための方法および車両システム | |
CN116830057A (zh) | 无人机(uav)集群控制 | |
CN111093907A (zh) | 机器人式运载工具的稳健导航 | |
CN115096293B (zh) | 多机器人协作的探测地图构建方法、装置及扫雷机器人 | |
WO2021106388A1 (ja) | 情報処理装置、情報処理方法および情報処理プログラム | |
CN112991440B (zh) | 车辆的定位方法和装置、存储介质和电子装置 | |
CN112689234B (zh) | 室内车辆定位方法、装置、计算机设备和存储介质 | |
CN113961013A (zh) | 一种基于rgb-d slam的无人机路径规划方法 | |
US11614063B2 (en) | Multi-drone ground vehicle jump start | |
CN103776438B (zh) | 定位设备和系统、用于即时定位与地图构建的设备及方法 | |
SE2050258A1 (en) | Machine learning based system, methods, and control arrangement for positioning of an agent | |
CN116563491A (zh) | 一种数字孪生场景建模及标定方法 | |
CN116429112A (zh) | 多机器人协同定位方法和装置、设备及存储介质 | |
CN114859942A (zh) | 一种机器人运动控制方法、装置、电子设备及存储介质 | |
Kurdi et al. | Design and development of efficient guidance system using multifunctional robot with quadcopter | |
CN109974700B (zh) | 中央控制器、移动导航系统及方法 | |
CN113515112A (zh) | 机器人移动方法、装置、计算机设备和存储介质 | |
CN116423515B (zh) | 一种多机器人的数字孪生控制系统及其定位与建图的方法 | |
JPWO2021064982A1 (ja) | 情報処理装置および情報処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20893059 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2021561204 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20893059 Country of ref document: EP Kind code of ref document: A1 |