System and method for generating pose graph
By identifying and eliminating redundant nodes in the navigation map system and generating target pose maps, the problem of excessive number of nodes and increased redundant nodes in the construction of navigation maps in the prior art is solved, and the accuracy and efficiency of navigation maps are improved.
Patent Information
- Application Number
- CN201980093911.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2019-09-19
- Publication Date
- 2025-04-04
- Estimated Expiration
- 2039-09-19
Smart Images

Figure CN113557548B_ABST
Abstract
Description
Technical Field
[0001] The present application generally relates to a system and method for generating a pose graph, and more particularly to a system and method for generating a pose graph based on point cloud data acquired from a moving object. Background Art
[0002] With the rapid development of urbanization and the increase of traffic congestion, navigation map services play an increasingly important role in modern society. Traditional systems for navigation map construction (e.g., for high-definition maps) may rely on sensor data (e.g., point cloud data) collected by mobile vehicles traveling along the route and integrate the sensor data to generate a navigation map. In this process, a pose graph for generating a navigation map can be constructed from the sensor data, and each node in the pose graph can include point cloud data acquired in a geographic area. In order to improve the accuracy of the navigation map, multiple point cloud data sets may be required. However, due to the fact that the number of nodes in the pose graph is usually quite large due to the multiple point cloud data sets, it is usually difficult to effectively construct a navigation map using a traditional system. Therefore, it is desirable to provide a system and method for reducing redundant nodes so as to more efficiently generate a pose graph. Summary of the invention
[0003] According to one aspect of the present application, a system for generating a pose graph is provided. The system may include at least one storage medium including a set of instructions, and at least one processor communicating with the at least one storage device. When executing the instructions, the at least one processor may perform a method including one or more steps in the following operations. At least one processor may obtain a plurality of nodes, wherein each node includes point cloud data acquired by one or more sensors within a time period. The at least one processor may determine a group or more candidate nodes from the plurality of nodes based on the pose associated with each node. The pose may include the position and orientation of the object. The at least one processor may determine one or more redundant nodes based on feature information associated with each of the candidate nodes. The at least one processor may determine a plurality of target nodes by eliminating the one or more redundant nodes from the plurality of nodes. The at least one processor may generate a target pose graph based on the plurality of target nodes.
[0004] In some embodiments, the distance between every two candidate nodes in the same group of candidate nodes may be less than a distance threshold, and the orientations of all candidate nodes in the same group may be substantially similar, and the direction of the candidate node is the moving direction of the object.
[0005] In some embodiments, for each candidate node in each group of candidate nodes, the at least one processor can determine whether the feature information included in the candidate node is sufficient, and in response to the feature information included in the candidate node being insufficient, treat the candidate node including the insufficient feature information as a redundant node.
[0006] In some embodiments, the feature information is compared based on features based on feature values.
[0007] In some embodiments, for each of the candidate nodes, the at least one processor may determine at least one of the feature values of the candidate node based on at least one of the feature value-based features of the candidate node. The at least one processor may compare each of the at least one feature value with a corresponding feature threshold, each of the feature thresholds corresponding to one of the feature value-based features. The at least one processor may determine the candidate node as a candidate node with insufficient feature information in response to each of the at least one feature value being less than the corresponding feature threshold.
[0008] In some embodiments, the eigenvalue-based features may include at least one of linear, planar, or divergent.
[0009] In some embodiments, for each of the one or more redundant nodes, the at least one processor may add the point cloud data of the redundant node to a target node in the same group as the redundant node.
[0010] In some embodiments, the at least one processor may obtain an initial pose graph, wherein the initial pose graph includes a plurality of initial nodes and a plurality of initial edges. The at least one processor may determine the plurality of nodes based on the plurality of initial nodes.
[0011] In some embodiments, the at least one processor may generate an intermediate pose graph by eliminating one or more of the redundant nodes and the initial edges associated with the one or more of the redundant nodes from the initial pose graph.
[0012] In some embodiments, for each of the target nodes with the initial edges eliminated, the at least one processor may determine a constraint between the target node with the initial edges eliminated and the nearby target nodes. The at least one processor may generate a target edge based on the constraint, the target edge being associated with the target node with its initial edges eliminated and the nearby target nodes. The at least one processor may generate a target pose graph based on the intermediate pose graph and the target edge of each target node with the initial edges eliminated.
[0013] In some embodiments, the distance threshold may be determined based on the width of a road associated with the candidate node group.
[0014] According to another aspect of the present application, a method is provided. The method may include one or more of the following operations. At least one processor may perform one or more methods including the following operations. The at least one processor may obtain a plurality of nodes, wherein each node includes point cloud data acquired by one or more sensors within a time period. The at least one processor may determine a group or more candidate nodes from the plurality of nodes based on the pose associated with each node. The pose may include the position and orientation of the object. The at least one processor may determine one or more redundant nodes based on feature information associated with each of the candidate nodes. The at least one processor may determine a plurality of target nodes by eliminating the one or more redundant nodes from the plurality of nodes. The at least one processor may generate a target pose graph based on the plurality of target nodes.
[0015] According to another aspect of the present application, a non-transitory computer microscopic medium is provided. The non-transitory computer reconstruction medium may include executable instructions for causing at least one processor to implement a method. The method may include one or more of the following operations. The at least one processor may execute one or more methods including the following operations. The at least one processor may obtain a plurality of nodes, wherein each node includes point cloud data acquired by one or more sensors associated with an object within a time period. The at least one processor may determine a group or more candidate nodes from the plurality of nodes based on the pose associated with each node. The pose may include the position and orientation of the object. The at least one processor may determine one or more redundant nodes based on feature information associated with each of the candidate nodes. The at least one processor may determine a plurality of target nodes by eliminating one or more redundant nodes from at least the plurality of nodes. The at least one processor may generate a target pose graph based on the plurality of target nodes.
[0016] Some additional features of the present application may be explained in the following description. Some additional features of the present application will be apparent to those skilled in the art through study of the following description and corresponding drawings or understanding of the production or operation of the embodiments. The features of the present application may be realized and achieved through practice or use of the methods, means and combinations of various aspects of the specific embodiments described below. BRIEF DESCRIPTION OF THE DRAWINGS
[0017] The present application will be further described by exemplary embodiments. These exemplary embodiments will be described in detail by the accompanying drawings. These embodiments are non-limiting exemplary embodiments, in which the same numbers in each figure represent similar structures, wherein:
[0018] Figure 1 is a schematic diagram of an exemplary navigation map system according to some embodiments of the present application;
[0019] Figure 2 is a schematic diagram of exemplary hardware and / or software components of an exemplary computing device according to some embodiments of the present application;
[0020] Figure 3 is a schematic diagram of exemplary hardware and / or software components of an exemplary mobile device on which a terminal device can be implemented according to some embodiments of the present application;
[0021] Figure 4 is a block diagram of an exemplary processing engine according to some embodiments of the present application;
[0022] Figure 5 is a flowchart of an exemplary process for generating a target pose graph according to some embodiments of the present application;
[0023] Figure 6 is a flowchart of an exemplary process for generating a target pose graph according to some embodiments of the present application; and
[0024] Figure 7 is a flowchart of an exemplary process for determining one or more redundant nodes according to some embodiments of the present application. DETAILED DESCRIPTION
[0025] The following description is intended to enable a person of ordinary skill in the art to implement and utilize the present application, and the description is provided in the context of a specific application scenario and its requirements. It will be apparent to a person of ordinary skill in the art that various changes may be made to the disclosed embodiments, and that the general principles defined in the present application may be applied to other embodiments and application scenarios without departing from the principles and scope of the present application. Therefore, the present application is not limited to the described embodiments, but should be given the broadest scope consistent with the claims.
[0026] The terms used in this application are only used to describe specific exemplary embodiments and do not limit the scope of this application. The singular forms "one", "an" and "the" used in this application may also include plural forms unless the context clearly indicates an exception. It should also be understood that, as in this application, the terms "include" and "comprise" only indicate the presence of the features, wholes, steps, operations, components and / or parts, but do not exclude the presence or addition of one or more other features, wholes, steps, operations, components, parts and / or combinations thereof.
[0027] These and other features, characteristics and functions and methods of operation of the related structural elements of the present application, as well as the combination of components and manufacturing economy, may become more apparent from the following description of the accompanying drawings, which form a part of the specification of this application. However, it should be understood that the drawings are for illustration and description purposes only and are not intended to limit the scope of the present application. It should be understood that the drawings are not drawn to scale.
[0028] Flowcharts are used in this application to illustrate the operations performed by the system according to some embodiments of the application. It should be understood that the operations in the flow charts may not be performed in order. Instead, various steps may be processed in reverse order or simultaneously. At the same time, one or more other operations may also be added to these flow charts. One or more operations may also be deleted from the flow charts.
[0029] Moreover, although the systems and methods disclosed in this application are mainly described with respect to placing an object (e.g., an autonomous driving vehicle) in an autonomous driving system, it should be understood that this is merely an exemplary embodiment. The systems and methods of the present application may be any other kind of transportation system. For example, the systems and methods of the present application may be transportation systems for different environments, including land, sea, aerospace, etc., or any combination thereof. The autonomous driving vehicles of the transportation system may include taxis, private cars, ride-sharing, buses, trains, motor vehicles, high-speed railways, subways, ships, airplanes, spacecraft, hot air balloons, etc., or any combination thereof.
[0030] One aspect of the present application relates to systems and methods for determining a pose graph. To this end, the system and method can obtain a plurality of nodes, each of which includes point cloud data acquired by one or more sensors associated with an object (e.g., a vehicle) within a time period. The system and method can determine a group of one or more candidate nodes from a plurality of nodes based on a pose associated with each node, wherein the pose includes the position and orientation of the object. The system and method can determine one or more redundant nodes based on feature information associated with each candidate node. The system and method can determine a plurality of target nodes by eliminating one or more redundant nodes from a plurality of nodes. The system and method can generate a target pose graph based on a plurality of target nodes.
[0031] Figure 1 1 is a schematic diagram of an exemplary navigation map system according to some embodiments of the present application. In some embodiments, the navigation map system 100 may include a vehicle 110 , a server 120 , a terminal device 130 , a storage device 140 , a network 150 , and a positioning navigation system 160 .
[0032] The vehicle 110 can travel to the destination. The vehicle 110 may include a plurality of vehicles 110-1, 110-2 ... 110-n. In some embodiments, the vehicle 110 may be any type of autonomous vehicle. The autonomous vehicle may sense the surrounding environment and navigate without human manipulation. In some embodiments, the vehicle 110 includes the structure of a conventional vehicle, such as a chassis, a suspension, a steering device (e.g., a steering wheel), a braking device (e.g., a brake pedal), an accelerator, etc. In some embodiments, (one or more) vehicles 110 may be survey vehicles configured to obtain data for constructing high-definition maps (e.g., gesture graphs described elsewhere in the present invention) or 3-D city modeling. It is contemplated that the vehicle 110 may be an electric vehicle, a fuel cell vehicle, a hybrid vehicle, a conventional internal combustion engine vehicle, etc. The vehicle 110 may have a body and at least one wheel. The body may be of any style, such as a sports car, a coupe, a sedan, a pickup truck, a station wagon, an off-road vehicle (SUV), a minivan, or a modified station wagon. In some embodiments, the vehicle 110 may include a pair of front wheels and a pair of rear wheels. However, it is contemplated that the vehicle 110 may have more or fewer wheels or equivalent structures that enable the vehicle 110 to move around. The vehicle 110 may be configured as all-wheel drive (AWD), front-wheel drive (FWR), or rear-wheel drive (RWD). In some embodiments, the vehicle 110 may be configured to be remotely controlled and / or autonomously operated by an operator occupying the vehicle.
[0033] like Figure 1 As shown, the vehicle 110 may be equipped with one or more sensors 112 mounted to the body of the vehicle 110 via a mounting structure. The mounting structure may be an electromechanical device mounted or otherwise attached to the body of the vehicle 110. In some embodiments, the mounting structure may use screws, adhesives, or other mounting mechanisms. The vehicle 110 may be additionally equipped with one or more sensors 112 inside or outside the vehicle body using any suitable mounting mechanism.
[0034] Sensor 112 may include a GPS device, a light detection and ranging (LiDAR), a camera, an inertial measurement unit (IMU) sensor, etc., or any combination thereof. LiDAR may be configured to scan the surrounding environment and generate point cloud data. LiDAR can measure the distance to an object by illuminating the object with a pulsed laser and measuring the reflected pulse with a sensor. The difference in the laser return time and wavelength can then be used to make a digital 3-D representation of the object. The light used for LiDAR scanning can be ultraviolet light, visible light, near-infrared light, etc. Since a narrow laser beam can map physical features at a very high resolution, LiDAR may be particularly suitable for high-definition map measurement. The camera may be configured to acquire one or more images related to an object (e.g., a person, an animal, a tree, a roadblock, a building, or a vehicle) within the camera range. A GPS device may refer to a device capable of receiving geographic location and time information from a GPS satellite and then calculating the geographic location of the device. An IMU sensor may refer to an electronic device that uses various inertial sensors (e.g., accelerometers and gyroscopes, and sometimes magnetometers) to measure and provide a vehicle's specific force, angular velocity, and sometimes a magnetic field surrounding the vehicle. By combining a GPS device and an IMU sensor, the sensor 112 can provide real-time posture information of the vehicle 110 while it is traveling, including the position and direction (e.g., Euler angles) of the vehicle 110 at each time point. Consistent with the present application, the sensor 112 can measure the posture information at the same time point at which the sensor 112 captures the point cloud data. Therefore, the posture information can be associated with the corresponding point cloud data. In some embodiments, the combination of the point cloud data and its associated posture information can be used to locate the vehicle 110.
[0035] In some embodiments, the server 120 may be a single server or a server group. The server group may be centralized or distributed (for example, the server 120 may be a distributed system). In some embodiments, the server 120 may be local or remote. For example, the server 120 may access information and / or data stored in the terminal device 130, the sensor 112, the vehicle 110, the storage device 140, and / or the positioning navigation system 160 via the network 150. For another example, the server 120 may be directly connected to the terminal device 130, the sensor 112, the vehicle 110, and / or the storage device 140 to access the stored information and / or data. In some embodiments, the server 120 may be implemented on a cloud platform or on a vehicle-mounted computer. By way of example only, the cloud platform may include a private cloud, a public cloud, a hybrid cloud, a community cloud, a distributed cloud, an internal cloud, a multi-layer cloud, or the like, or any combination thereof. In some embodiments, the server 120 may be in the present application. Figure 2 The described computing device 200 includes one or more components.
[0036] In some embodiments, the server 120 may include a processing engine 122. The processing engine 122 may process information and / or data associated with the vehicle 110 to perform one or more functions described in the present application. For example, the processing engine 122 may obtain a plurality of nodes, each of which includes point cloud data acquired by one or more sensors associated with the vehicle 110 over a period of time. For another example, the processing engine 122 may determine a group of one or more candidate nodes from a plurality of nodes based on the pose associated with each node. As another example, the processing engine 122 may determine one or more redundant nodes based on feature information associated with each candidate node. As another example, the processing engine 122 may determine a plurality of target nodes by eliminating one or more redundant nodes from a plurality of nodes. As another example, the processing engine 122 may generate a target pose graph based on a plurality of target nodes. In some embodiments, the processing engine 122 may include one or more processing engines (e.g., a single-chip processing engine or a multi-chip processing engine). By way of example only, the processing engine 122 may include a central processing unit (CPU), an application specific integrated circuit (ASIC), an application specific instruction set processor (ASIP), a graphics processing unit (GPU), a physical processing unit (PPU), a digital signal processor (DSP), a field programmable gate array (FPGA), a programmable logic device (PLD), a controller, a microcontroller unit, a reduced instruction set computer (RISC), a microprocessor, the like, or any combination thereof.
[0037] In some embodiments, the server 120 may be connected to the network 150 to communicate with one or more components of the navigation map system 100 (e.g., the terminal device 130, the sensor 112, the vehicle 110, the storage device 140, and / or the positioning navigation system 160). In some embodiments, the server 120 may be directly connected to or communicate with one or more components of the navigation map system 100 (e.g., the terminal device 130, the sensor 112, the vehicle 110, the storage device 140, and / or the positioning navigation system 160). In some embodiments, the server 120 may be integrated into the vehicle 110. For example, the server 120 may be a computing device (e.g., a computer) installed in the vehicle 110.
[0038] In some embodiments, the terminal device 130 may include a mobile device 130-1, a tablet computer 130-2, a laptop computer 130-3, a built-in device in a vehicle 130-4, a smart watch 130-5, etc., or any combination thereof. In some embodiments, the mobile device 130-1 may include a smart home device, a wearable device, a smart mobile device, a virtual reality device, an augmented reality device, etc., or any combination thereof. In some embodiments, the smart home device may include a smart lighting device, a smart appliance control device, a smart monitoring device, a smart TV, a smart camera, an intercom, etc., or any combination thereof. In some embodiments, the wearable device may include a smart bracelet, smart footwear, smart glasses, a smart helmet, a smart watch, smart clothing, a smart backpack, a smart accessory, etc., or any combination thereof. In some embodiments, the smart mobile device may include a smart phone, a personal digital assistant (PDA), a gaming device, a navigation device, a point of sale (POS), etc., or any combination thereof. In some embodiments, the virtual reality device and / or the augmented virtual reality device may include a virtual reality helmet, virtual reality glasses, virtual reality goggles, augmented reality helmets, augmented reality glasses, augmented reality goggles, etc., or any combination thereof. For example, the virtual reality device and / or augmented reality device may include Google™ Glass, Oculus Rift, HoloLens, Gear VR, etc. In some embodiments, the vehicle-mounted device 130 - 4 may include a vehicle-mounted computer, a vehicle-mounted television, etc. In some embodiments, the server 120 may be integrated into the terminal device 130 .
[0039] The storage device 140 may store data and / or instructions. In some embodiments, the storage device 140 may store data obtained from the terminal device 130, the sensor 112, the vehicle 110, the positioning navigation system 160, the processing engine 122, and / or an external storage device. For example, the storage device 140 may store point cloud data received from the sensor 112 (e.g., GPS device, IMU sensor). For another example, the storage device 140 may store point cloud data received from the sensor 112 (e.g., LiDAR). As another example, the storage device 140 may store a target pose graph generated by the processing engine 122. As another example, the storage device 140 may store an initial pose graph obtained from an external storage device. In some embodiments, the storage device 140 may store data and / or instructions that the server 120 uses to execute or use to complete the exemplary method described in this application. For example, the storage device 140 may store instructions that the processing engine 122 may execute or use to determine multiple target nodes by eliminating one or more redundant nodes from multiple nodes including point cloud data received from the sensor 112. For another example, storage device 140 may store instructions that processing engine 122 may execute or generate based on multiple target nodes and a target pose graph.
[0040] In some embodiments, the storage device 140 may include a mass storage, a removable storage, a volatile read-write memory, a read-only memory (ROM), etc. or any combination thereof. Exemplary mass storage may include a magnetic disk, an optical disk, a solid-state disk, etc. Exemplary removable storage may include a flash drive, a floppy disk, an optical disk, a memory card, a compressed disk, a tape, etc. Exemplary volatile read-write memory may include a random access memory (RAM). Exemplary RAM may include a dynamic random access memory (DRAM), a double data rate synchronous dynamic random access memory (DDR SDRAM), a static random access memory (SRAM), a thyristor random access memory (T-RAM), and a zero capacitance random access memory (Z-RAM), etc. Exemplary ROM may include a mask read-only memory (MROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), a compact disk read-only memory (CD-ROM), and a digital versatile disk read-only memory, etc. In some embodiments, the storage device 140 may be executed on a cloud platform. By way of example only, the cloud platform may include a private cloud, a public cloud, a hybrid cloud, a community cloud, a distributed cloud, an internal cloud, a multi-layer cloud, the like, or any combination thereof.
[0041] In some embodiments, the storage device 140 can be connected to the network 150 to communicate with one or more components of the navigation map system 100 (e.g., the server 120, the terminal device 130, the sensor 112, the vehicle 110, and / or the positioning navigation system 160). One or more components of the navigation map system 100 can access the data or instructions stored in the storage device 140 through the network 150. In some embodiments, the storage device 140 can be directly connected to or communicate with one or more components of the navigation map system 100 (e.g., the server 120, the terminal device 130, the sensor 112, the vehicle 110, and / or the positioning navigation system 160). In some embodiments, the storage device 140 can be part of the server 120. In some embodiments, the storage device 140 can be integrated into the vehicle 110.
[0042] The network 150 can facilitate the exchange of information and / or data. In some embodiments, one or more components of the navigation map system 100 (e.g., server 120, terminal device 130, sensor 112, vehicle 110, storage device 140, or positioning navigation system 160) can send information and / or data to other components of the navigation map system 100 via the network 150. For example, the server 120 can obtain / acquire point cloud data from the sensor 112 and / or the positioning navigation system 160 via the network 150. For another example, the server 120 can obtain / acquire point cloud data from the sensor 112 via the network 150. As another example, the server 120 can obtain / acquire an initial pose graph from the storage device 140 via the network 150. In some embodiments, the network 150 can be a wired network or a wireless network, etc., or any combination thereof. As examples only, the network 150 may include a cable network, a wired network, a fiber optic network, a telecommunications network, an intranet, the Internet, a local area network (LAN), a wide area network (WAN), a wireless local area network (WLAN), a metropolitan area network (MAN), a public switched telephone network (PSTN), a Bluetooth network, a ZigBee network, a near field communication (NFC) network, etc. or any combination thereof. In some embodiments, the network 150 may include one or more network access points. For example, the network 150 may include a wired or wireless network access point (e.g., 150-1, 150-2), through which one or more components of the navigation map system 100 may be connected to the network 150 to exchange data and / or information.
[0043] The positioning navigation system 160 can determine information related to an object, for example, one or more of the terminal device 130, the vehicle 110, etc. In some embodiments, the positioning navigation system 160 can be a global positioning system (GPS), a global navigation satellite system (GLONASS), a compass navigation system (COMPASS), a Beidou navigation satellite system, a Galileo positioning system, a quasi-zenith satellite system (QZSS), etc. The information may include the position, altitude, speed or acceleration of the object or the current time. The positioning navigation system 160 may include one or more satellites, for example, satellite 160-1, satellite 160-2, and satellite 160-3. The satellites 160-1 to 160-3 may determine the above-mentioned information independently or jointly. The satellite positioning navigation system 160 may send the above-mentioned information to the network 150, the terminal device 130, or the vehicle 110 via a wireless connection.
[0044] It is noteworthy that the navigation map system 100 is provided for illustrative purposes only and is not intended to limit the scope of the present application. For those of ordinary skill in the art, various changes and modifications can be made according to the description of the present application. For example, the navigation map system 100 can also include a database, an information source, etc. For another example, the navigation map system 100 can be implemented on other devices to achieve similar or different functions. In some embodiments, the GPS device can also be replaced by other positioning devices such as Beidou. However, these changes and modifications will not deviate from the scope of the present application.
[0045] Figure 2 2 is a schematic diagram of exemplary hardware and / or software components of an exemplary computing device according to some embodiments of the present application. In some embodiments, the server 120 can be implemented on the computing device 200. For example, the processing engine 122 can be implemented on the computing device 200 and perform the functions of the processing engine 122 shown in the present application.
[0046] The computing device 200 may be used to implement any component of the navigation map system 100 of the present application. For example, the processing engine 122 of the navigation map system 100 may be implemented on the computing device 200 through its hardware, software program, firmware, or a combination thereof. Although only one such computer is shown for convenience, the computer functions related to the navigation map system 100 described herein may be implemented in a distributed manner on multiple similar platforms to distribute the processing load.
[0047] For example, computing device 200 may include a communication (COMM) port 250 connected to a network (e.g., network 150) or a network (e.g., network 150) connected thereto to facilitate data communication. Computing device 200 may also include a processor (e.g., processor 220) in the form of one or more processors (e.g., logic circuits) for executing program instructions. For example, the processor includes an interface circuit and a processing circuit therein. The interface circuit may be configured to receive an electrical signal from bus 210, wherein the electrical signal encodes structured data and / or instructions for the processing circuit. The processing circuit may perform a logical calculation and then determine the conclusion, result, and / or instruction encoding as an electrical signal. The interface circuit may then send an electrical signal from the processing circuit via bus 210.
[0048] The exemplary computing device 200 may also include different forms of program storage and data storage, such as a disk 270, a read-only memory (ROM) 230, or a random access memory (RAM) 240, for storing various data files processed and / or transmitted by the computing device 200. The exemplary computing device 200 may also include program instructions stored in the ROM 230, the RAM 240, and / or other types of non-transitory storage media for execution by the processor 220. The methods and / or processes of the present application may be implemented in the form of program instructions. The computing device 200 also includes an I / O component 260, which supports input / output between the computing device 200 and other components therein. The computing device 200 may also receive programming and data via network communications.
[0049] For illustration only, only one processor is described in the computing device 200. However, it should be noted that the computing device 200 in the present application may also include multiple processors, and therefore, the operations performed by one processor as described in the present application may also be performed jointly or separately by multiple processors. For example, the processor of the computing device 200 performs operation A and operation B at the same time. As another example, operation A and operation B may also be performed jointly or separately by two different processors in the computing device 200 (for example, the first processor performs operation A, the second processor performs operation B, or the first processor and the second processor perform operations A and B together).
[0050] Figure 3 Schematic diagram of exemplary hardware and / or software components of an exemplary mobile device on which a terminal device can be implemented according to some embodiments of the present application. Figure 3 As shown, mobile device 300 may include communication platform 310, display 320, graphics processing unit (GPU) 330, central processing unit (CPU) 340, I / O 350, memory 360 and storage 390. In some embodiments, any other suitable components, including but not limited to a system bus or controller (not shown), may also be included in mobile device 300. In some embodiments, mobile operating system 370 (e.g., iOS 11) may be used to control the operation of the mobile device 300. TM 、Android TM 、Windows Phone TM ) and one or more applications 380 may be loaded from storage 390 into memory 360 for execution by CPU 340. Applications 380 may include a browser or any other suitable mobile application for receiving and presenting location-related information or other information from processing engine 122. User interaction with the information stream may be accomplished through I / O 350 and provided to processing engine 122 and / or other components of navigation map system 100 through network 150.
[0051] In order to implement the various modules, units and their functions described in this application, a computer hardware platform can be used as a hardware platform for one or more components described herein. A computer with a user interface component can be used to implement a personal computer (PC) or any other type of workstation or terminal device. If properly programmed, the computer can also be used as a server.
[0052] Figure 4 1 is a block diagram of an exemplary processing engine according to some embodiments of the present application. The processing engine 122 may include an acquisition module 410, a candidate node determination module 420, a redundant node determination module 430, a redundant node elimination module 440, a pose graph determination module 450, and a storage module 460.
[0053] The acquisition module 410 can be configured to acquire data and / or information associated with the navigation map system 100. For example, the acquisition module 410 can acquire multiple nodes, each of which includes point cloud data acquired by one or more sensors associated with an object (e.g., an autonomous driving vehicle) over a period of time. For another example, the acquisition module 410 can acquire pose data associated with an object (e.g., vehicle 110) at different locations. As another example, the acquisition module 410 can acquire an initial pose graph.
[0054] The candidate node determination module 420 may be configured to determine a set of one or more candidate nodes from the plurality of nodes based on the pose associated with each node. For example, the candidate node determination module 420 may determine a set of one or more candidate nodes based on the geographic location and orientation of the subject corresponding to each of the plurality of nodes. More descriptions of the generation of the local navigation map may be found elsewhere in this application (e.g., Figure 5 and its description).
[0055] The redundant node determination module 430 can be configured to determine one or more redundant nodes based on the feature information associated with each candidate node. In some embodiments, for each candidate node in each group of candidate nodes, the redundant node determination module 430 can determine whether the feature information included in the candidate node is sufficient. For example, the redundant node determination module 430 can determine whether the feature information included in the candidate node is sufficient based on the feature based on the feature value. In response to the insufficient feature information included in the candidate node, the redundant node determination module 430 can determine that the candidate node includes insufficient feature information as a redundant node. More descriptions on determining one or more redundant nodes can be found elsewhere in this application (e.g., Figure 7 and its description).
[0056] The redundant node elimination module 440 may be configured to determine a plurality of target nodes by eliminating one or more redundant nodes from a plurality of nodes. In some embodiments, before deleting one or more redundant nodes from a plurality of nodes, the redundant node elimination module 440 may add point cloud data of each of the one or more redundant nodes to a non-redundant node in the same candidate node group as the redundant node.
[0057] The pose graph determination module 450 can be configured to generate a target pose graph based on multiple target nodes. The target pose graph can be a representation of an object trajectory in graphical form. The target pose graph may include multiple target nodes and multiple target edges, each edge connecting two target nodes. For each of the multiple target nodes, the pose graph determination module 450 can determine at least one target edge connecting the target node and another target node. The pose graph determination module 450 can determine whether there is a constraint between the target node and another target node. In response to the existence of a constraint between the target node and another target node, the pose graph determination module 450 can determine that there is a target edge between the two target nodes.
[0058] The storage module 460 may be configured to store data and / or information associated with the navigation map system 100. For example, the storage module 460 may store a plurality of nodes. For another example, the storage module 460 may store point cloud data associated with a plurality of nodes. As another example, the storage module 460 may store an initial pose graph associated with a plurality of nodes. As another example, the storage module 460 may store a plurality of target nodes associated with a plurality of nodes. As another example, the storage module 460 may store a target pose graph determined based on a plurality of target nodes.
[0059] The modules in the processing engine 122 can be connected or communicated with each other via a wired connection or a wireless connection. The wired connection can include a metal cable, an optical cable, a hybrid cable, etc. or any combination thereof. The wireless connection can include a local area network (LAN), a wide area network (WAN), Bluetooth, a purple bee network, a near field communication (NFC), etc. or any combination thereof. Two or more modules can be merged into one module, and any module can be divided into two or more units. In some embodiments, one or more modules can be omitted. For example, the storage module 460 can be omitted. In some embodiments, one or more modules can be combined into one module. For example, the redundant node determination module 430 and the redundant node elimination module 440 can be combined into a single module.
[0060] Figure 5500 is a flowchart of an exemplary process for generating a target pose graph according to some embodiments of the present application. Process 500 may be performed by navigation map system 100. For example, process 500 may be implemented as a set of instructions stored in storage ROM 230 or RAM 240. Processor 220 and / or Figure 4 The module in the can execute the instruction, and when executing the instruction, the processor 220 and / or the module can be configured to perform the process 500. The operations of the process shown below are for illustration purposes only. In some embodiments, the process 500 can be completed with one or more additional operations not described and / or without one or more operations discussed. In addition, Figure 5 The order in which the operations of process 500 are illustrated and described below is not intended to be limiting.
[0061] In 510, the processing engine 122 (e.g., the acquisition module 410) can obtain a plurality of nodes, each node including point cloud data associated with an object (e.g., the vehicle 110) by one or more sensors (e.g., the sensor 112) over a period of time. In some embodiments, the node is a body of data (e.g., point cloud data) associated with a defined geological region (e.g., a road segment). The one or more sensors may include LiDAR, a camera, a radar, etc., as described elsewhere in this application (e.g., Figure 1 In some embodiments, the time period may be a duration for one or more sensors (e.g., LiDAR) to complete multiple scans, such as 20 times, 30 times, etc. For example, the time period may be 1 second, 2 seconds, 3 seconds, etc.
[0062] In some embodiments, each node may include several consecutive point cloud frames collected by the object (e.g., 10 consecutive frames, 20 consecutive frames, etc.). A point cloud frame (also referred to as a group of point cloud data) may include part or all of the point cloud data generated by one or more sensors (e.g., LiDAR) at a certain angle step. Each point cloud frame may be marked with a specific timestamp (also referred to as a "first timestamp"), which indicates that the point cloud frame was captured at a specific time point or time period corresponding to the specific timestamp. In some embodiments, the time period may be the duration for one or more sensors (e.g., LiDAR) to complete a scan. For example, the time period may be 0.1 seconds, 0.05 seconds, etc. Taking 0.1 seconds as an example, one or more sensors (e.g., LiDAR) may scan the environment around the object (e.g., vehicle 110) 10 times per second (i.e., once every 100 milliseconds). Each single scan may correspond to a total scan degree of 360 degrees. The angular resolution may be 0.9 degrees. The point cloud data acquired by one or more sensors (e.g., LiDAR) through one scan may correspond to 400 point cloud frames.
[0063] Point cloud data may be generated by one or more sensors (e.g., LiDAR) scanning the space around the initial position of the object in the following manner: for example, emitting laser pulses according to one or more scanning parameters and measuring the reflected light using one or more sensors. Exemplary scanning parameters may include measurement range, scanning frequency, angular resolution, etc. The scanning frequency of a sensor (e.g., LiDAR) may represent the number of scans (or times) of the sensor per second. In some embodiments, the scanning frequency of the sensor may be 10 Hz, 15 Hz, etc., which means that the sensor may scan 10 times, 15 times, etc. per second. For example, if the time period is 2 seconds, one or more sensors may scan 20 times to generate point cloud data. The angular resolution of the sensor may refer to the angular step size during the sensor scan. For example, the angular resolution of the sensor may be 0.9 degrees, 0.45 degrees, etc. The measurement range of the sensor may be defined by the maximum scanning distance and / or the total scanning degree of the sensor to complete a scan. For example, the maximum scanning distance of the sensor may be 5 meters, 10 meters, 15 meters, 20 meters, etc. The total scanning degree of the sensor to complete a scan may be 360 degrees, 180 degrees, 120 degrees, etc.
[0064] Point cloud data may refer to a set of data points associated with one or more objects in space around the current location of an object (e.g., vehicle 110). The data points may correspond to points or regions of an object. Objects around one or more objects may include lane markings, buildings, pedestrians, animals, plants, vehicles, etc. In some embodiments, the point cloud data may have multiple attributes (also referred to as feature data). The multiple attributes of the point cloud data may include point cloud coordinates (e.g., X, Y, and Z coordinates) of each data point, altitude information associated with each data point, intensity information associated with each data point, number of returns, total number of returns, classification of each data point, scanning direction, etc., or any combination thereof.
[0065] Each node may include a pose. The pose of the node may include pose data of an object (e.g., vehicle 110) corresponding to each point cloud data group. As used herein, the pose data of the subject corresponding to a particular group of point cloud data may refer to the pose data of the subject being generated at the same or similar time point or time period as the corresponding particular group of point cloud data.
[0066] The pose data of the subject (e.g., vehicle 110) may include geographic location information and / or IMU information of the subject (e.g., vehicle 110) corresponding to each point cloud data group. The geographic location information may include the geographic location of the object (e.g., vehicle 110) corresponding to each point cloud data group. In some embodiments, the geographic location of the object (e.g., vehicle 110) may be represented by 2D or 3D coordinates in a coordinate system (e.g., a geographic coordinate system). The IMU information may include the pose of the object (e.g., vehicle 110) defined by an orientation (also referred to as a moving direction), a pitch angle, a roll angle, etc. obtained when the object is located at the geographic location. The geographic location information and IMU information of the object corresponding to a particular group of point cloud data may correspond to a timestamp that is the same as or similar to the first timestamp of the particular group of point cloud data.
[0067] In some embodiments, the processing engine 122 can determine the node by matching a portion of the pose data with a corresponding portion of the point cloud data based on a timestamp. The processing engine 122 can determine the pose data corresponding to a specific group of point cloud data based on a first timestamp corresponding to a specific group of point cloud data. For example, the processing engine 122 can obtain multiple pose data groups acquired by one or more sensors (e.g., a GPS device and / or an IMU unit) within a time period. Each of the multiple groups of pose data can include a geographic location and a pose corresponding to a second timestamp. By comparing the first timestamp and the second timestamp, the processing engine 122 can match a specific group of point cloud data with one of the multiple groups of pose data. If the difference between the first timestamp and the second timestamp is less than a threshold, the processing engine 122 can determine that a specific group of point cloud data matches one of the multiple pose data groups, and determine the node based on the specific group of point cloud data and the matched pose data group. The threshold can be set by the user or according to the default setting of the automotive drive system 100. For example, the threshold can be 0, 0.1 milliseconds, etc.
[0068] In some embodiments, the processing engine 122 may obtain multiple nodes from one or more sensors (e.g., sensor 112), memory (e.g., storage device 140), etc. associated with the object in real time or periodically. For example, once one or more sensors complete a scan, the one or more sensors may send the point cloud data and / or pose data generated by the one or more sensors to the processing engine 122. For another example, the one or more sensors may send the point cloud data and / or pose data generated in each scan to the memory (e.g., storage device 140). The processing engine 122 may obtain multiple nodes from the memory periodically, for example, after the time period. In some embodiments, when the subject is stationary, multiple nodes may be generated by one or more sensors (e.g., LiDAR). In some embodiments, multiple nodes may be generated when the object moves.
[0069] In some embodiments, the processing engine 122 can obtain multiple nodes from the initial pose graph. The initial pose graph can include multiple initial nodes and multiple initial edges, each initial node in the initial pose graph corresponds to the pose of the object during the navigation map, and each initial edge between two initial nodes corresponds to the constraint between the two initial nodes. The processing engine 122 can determine the multiple initial nodes as multiple nodes. More description of the initial pose graph can be found elsewhere in this application. See, for example Figure 6 and its description.
[0070] In 520, the processing engine 122 (e.g., the candidate node determination module 420) can determine a set of one or more candidate nodes from the plurality of nodes based on the pose associated with each node. The processing engine 122 can determine a set of one or more candidate nodes based on the geographic location and orientation of the subject corresponding to each of the plurality of nodes.
[0071] In some embodiments, in the same group of candidate nodes, the distance between every two candidate nodes is less than a distance threshold, and the directions of all candidate nodes in the same group are substantially similar, and the direction of the candidate node is the direction of motion of the subject. As used herein, "substantially similar" may indicate that the angle between the direction of motion of the object corresponding to the candidate node and the direction of motion of the object corresponding to another candidate node in the same group is close to zero, for example, less than 30 degrees, less than 20 degrees, less than 10 degrees, less than 5 degrees, less than 2 degrees, or less than 1 degree.
[0072] The distance threshold corresponding to the candidate node group can be determined based on the geographic location of the candidate node group. For example, the distance threshold can be determined based on the width of the road related to the corresponding candidate node group. The processing engine 122 can determine the road based on the geographic location of the candidate node group and obtain the width of the road from, for example, a navigation map. The distance threshold can be inversely proportional to the width of the road. Exemplary distance thresholds can include 3 meters, 5 meters, 7 meters, etc.
[0073] In some embodiments, processing engine 122 may determine a set of candidate nodes for at least one of the plurality of nodes. Processing engine 122 may determine a distance threshold corresponding to the selected node based on a width of a road associated with the node. Processing engine 122 may determine whether a distance between the selected node and at least one of the plurality of other nodes is less than a distance threshold corresponding to the selected node, and whether an orientation associated with the at least one node is substantially similar to an orientation associated with the selected node. In response to a distance between the selected node and at least one other node being less than a distance threshold corresponding to the selected node, and a direction associated with at least one node being substantially similar to a direction associated with the selected node, processing engine 122 may determine the selected node and the at least one node as a set of candidate nodes.
[0074] In 530 , the processing engine 122 (eg, the redundant node determination module 430 ) may determine one or more redundant nodes based on the feature information associated with each candidate node.
[0075] In some embodiments, for each candidate node in each group of candidate nodes, the processing engine 122 may determine whether the feature information included in the candidate node is sufficient. For example, the processing engine 122 may determine whether the feature information included in the candidate node is sufficient based on the feature value. In response to the feature information included in the candidate node being insufficient, the processing engine 122 may determine that the candidate node includes insufficient feature information as a redundant node. Detailed descriptions of determining one or more redundant nodes may be found elsewhere in this application (e.g., Figure 7 and its description).
[0076] At 540 , the processing engine 122 (eg, the redundant node elimination module 440 ) may determine a plurality of target nodes by eliminating one or more redundant nodes from the plurality of nodes.
[0077] In some embodiments, the processing engine 122 may eliminate one or more redundant nodes from the plurality of nodes and determine the remaining nodes in the plurality of nodes as a plurality of target nodes. In some embodiments, before deleting one or more redundant nodes from the plurality of nodes, the processing engine 122 may add the point cloud data of each of the one or more redundant nodes to a non-redundant node in the same candidate node group as the redundant node. As used herein, a non-redundant node may refer to a candidate node that is not determined to be a redundant node. Then, the processing engine 122 may eliminate one or more redundant nodes from the plurality of nodes and determine the remaining nodes in the plurality of nodes, some of which have newly added point cloud data from the one or more redundant nodes, as a plurality of target nodes.
[0078] In 550, the processing engine 122 (e.g., the pose graph determination module 450) can generate a target pose graph based on multiple target nodes. The target pose graph can be a representation of the object trajectory in graphical form. The target pose graph may include multiple target nodes and multiple target edges, each edge connecting two target nodes. The target edge can represent a transformation (e.g., translation, rotation) that aligns the two associated target nodes with the current unfinished target pose graph. As used herein, an unfinished target pose graph may refer to a pose graph having at least one target node that is not connected to other target nodes via a target edge. The target edge can be a directed edge, representing a transition from one target node to another. The target edge can be further weighted based on the relative uncertainty of the object pose.
[0079] For each of the plurality of target nodes, the processing engine 122 may determine at least one target edge connecting the target node and another target node. The processing engine 122 may determine whether there is a constraint between the target node and another target node. In response to the existence of a constraint between the target node and another target node, the processing engine 122 may determine that there is a target edge between the two target nodes. The constraint between the two target nodes may include a range constraint, a virtual constraint, etc., or any combination thereof. When the trajectory of the subject corresponding to the two target nodes is transferred from one target node to another target node, the range constraint may exist between the two target nodes. For example, for two target nodes xi and xi+1, a target edge may be established between the two target nodes xi and xi+1, and if the object moves from the target node xi to the target node xi+1 when acquiring the point cloud data contained in the two target nodes xi and xi+1, the target edge represents a range measurement. Virtual constraints, etc., or any combination thereof. When one or more sensors associated with the subject observe the same part of the environment from both target nodes, a virtual constraint may exist between the two target nodes. For example, for two target nodes xi and xj, a target edge can be established between the two target nodes xi and xj. If the point cloud data contained in the two target nodes xi and xj are the same part of the environment, the target edge represents a virtual measurement of the position of the target node xi as seen from the target node xj, and vice versa, depending on the direction of the target edge. If the target edge points from the target node xi to the target node xj, the target edge represents the position of the target node xj as seen from the target node xi based on the observation result. If the target edge points from the target node xj to the target node xi, the target edge represents the position of the target node xi as seen from the target node xj based on the observation value.
[0080] The processing engine 122 may use an edge matching algorithm to determine the target edge. Exemplary edge matching algorithms may include iterative closest point registration algorithm (ICP), point-to-line iterative closest point registration algorithm (PLICP), iterative dual correspondence algorithm (IDC), metric-based iterative closest point registration algorithm (MBICP), generalized iterative closest point registration algorithm (GICP), etc. or any combination thereof.
[0081] It should be noted that the above description is only for convenience of description and the present application cannot be limited within the scope of the embodiments. For those of ordinary skill in the art, various changes and modifications can be made according to the description of the present application. However, these changes and modifications will not deviate from the scope of the present application. In some embodiments, one or more other optional operations (such as storage operations) can be added at other locations in the exemplary process 500. In the storage operation, the processing engine 122 can store multiple nodes, a group of one or more candidate nodes, one or more redundant nodes and / or target pose graphs in a memory (e.g., storage device 140) disclosed elsewhere in the present application.
[0082] Figure 6 600 is a flowchart of an exemplary process for generating a target pose graph according to some embodiments of the present application. Process 600 may be performed by navigation map system 100. For example, process 600 may be implemented as a set of instructions stored in storage ROM 230 or RAM 240. Processor 220 and / or Figure 4 The module in the processor 220 may execute the instruction, and when executing the instruction, the processor 220 and / or the module may be configured to perform the process 600. The operations of the process shown below are for illustration purposes only. In some embodiments, the process 600 may be completed with one or more additional operations not described and / or without one or more operations discussed. In addition, as Figure 6 The order in which the operations of process 600 are illustrated and described below is not intended to be limiting.
[0083] At 610, the processing engine 122 (e.g., the acquisition module 410) can obtain an initial pose graph, wherein the initial pose graph includes a plurality of initial nodes and a plurality of initial edges. Similar to the target pose graph, the initial pose graph can represent the subject trajectory in the form of a graph. Each of the plurality of initial nodes can include several consecutive point cloud frames collected by the subject, as described elsewhere in this application (e.g., Figure 5 and its description). Each initial edge can connect two initial nodes, representing a transformation that aligns the associated two initial nodes with the initial pose graph. The processing engine 122 can obtain the initial pose graph from a storage medium (e.g., a storage device 140 or a ROM 230 or RAM 240 of the processing engine 122) and / or a terminal device 130.
[0084] Unlike the target pose graph, the multiple initial nodes in the initial pose graph may include one or more redundant nodes. As used herein, a redundant node may refer to an initial node whose feature information is relatively insufficient relative to at least one second initial node, the distance between the initial node and each of the at least one second initial node is less than a distance threshold, the direction of the initial node is substantially similar to the orientation of the at least one second initial node, and the orientation of the initial node is the direction of movement of the object.
[0085] In 620, the processing engine 122 (e.g., the candidate node determination module 420) may determine a group of one or more candidate nodes from the plurality of initial nodes based on a pose associated with each initial node, wherein the pose includes a position and an orientation of the object. In the same group of candidate nodes, the distance between each two candidate nodes is less than a distance threshold, and the orientations of all candidate nodes in the same group are substantially similar. The determination of the group of one or more candidate nodes may be similar to Figure 5 The determination of a group or more candidate nodes is not described here.
[0086] In 630 , the processing engine 122 (eg, the redundant node determination module 430 ) may determine one or more redundant nodes based on the feature information associated with each candidate node.
[0087] In some embodiments, for each candidate node in each set of candidate nodes, the processing engine 122 may determine whether the feature information included in the candidate node is sufficient. For example, the processing engine 122 may determine whether the feature information included in the candidate node is sufficient based on the feature value. In response to the feature information included in the candidate node being insufficient, the processing engine 122 may determine that the candidate node includes insufficient feature information as a redundant node. Detailed descriptions of determining one or more redundant nodes may be found elsewhere in this application (e.g., Figure 7 and its description).
[0088] In 640, the processing engine 122 (e.g., the redundant node elimination module 440) may generate an intermediate pose graph by eliminating one or more redundant nodes and initial edges associated with one or more redundant nodes from the initial pose graph. For each of the one or more redundant nodes, the processing engine 122 may eliminate the redundant node and the initial edges connecting the redundant node and other initial nodes from the initial pose graph.
[0089] In some embodiments, before deleting one or more redundant nodes from the initial pose graph, the processing engine 122 may add the point cloud data of each of the one or more redundant nodes to a non-redundant node in the initial pose graph, the non-redundant node being from the same candidate node group as the redundant node. In addition, instead of eliminating the initial edge connecting the redundant node and the other initial node, the processing engine 122 may generate a corresponding new initial edge by changing the node to which the initial edge is connected. For each initial edge connecting the redundant node and another initial node, the processing engine 112 may determine a new initial edge connecting the redundant node and the corresponding non-redundant node of the other initial node.
[0090] In 650, the processing engine 122 (e.g., the pose graph determination module 450) can generate a target pose graph based on the intermediate pose graph and the plurality of target edges, wherein each of the plurality of target edges eliminates an initial node of the initial edge and nearby initial node connections in the intermediate pose graph.
[0091] For each initial node from which the initial edge is eliminated in the intermediate pose graph, the processing engine 122 may determine at least one target edge connecting the initial node and another initial node. The processing engine 122 may determine whether there is a constraint between the initial node and another initial node. In response to the existence of a constraint between the initial node and another initial node, the processing engine 122 may determine that there is a target edge between the two initial nodes. The constraint between the two initial nodes may include a range constraint, a virtual constraint, etc. or any combination thereof.
[0092] The processing engine 122 may use an edge matching algorithm to determine the target edge. Exemplary edge matching algorithms may include iterative closest point registration algorithm (ICP), point-to-line iterative closest point registration algorithm (PLICP), iterative dual correspondence algorithm (IDC), metric-based iterative closest point registration algorithm (MBICP), generalized iterative closest point registration algorithm (GICP), etc. or any combination thereof.
[0093] It should be noted that the above description is only for convenience of description and the present application cannot be limited to the scope of the embodiments. For those of ordinary skill in the art, various changes and modifications can be made according to the description of the present application. However, these changes and modifications will not deviate from the scope of the present application. In some embodiments, one or more other optional operations (e.g., storage operations) can be added at other locations in the exemplary process 600. In the storage operation, the processing engine 122 can store the initial pose graph, a group or more candidate nodes, feature information and / or one or more redundant nodes in a memory (e.g., storage device 140) disclosed elsewhere in the present application. In some embodiments, the operations in one or more processes 600 can be changed. For example, if a new initial edge is determined in operation 640, operation 650 can be omitted.
[0094] Figure 7 700 is a flowchart of an exemplary process for determining one or more redundant nodes according to some embodiments of the present application. Process 700 may be performed by navigation map system 100. For example, process 700 may be implemented as a set of instructions stored in storage ROM 230 or RAM 240. Processor 220 and / or Figure 4 The module in the processor 220 may execute the instruction, and when executing the instruction, the processor 220 and / or the module may be configured to perform the process 700. The operations of the process shown below are for illustration purposes only. In some embodiments, the process 700 may be completed using one or more additional operations not described and / or one or more operations not discussed. In addition, as Figure 7 The order in which the operations of process 700 are shown and described below is not intended to be limiting. In some embodiments, process 600 may correspond to operation 530 of process 500 .
[0095] At 710 , the processing engine 122 (eg, the acquisition module 410 ) may acquire candidate nodes from a group of candidate nodes, wherein a distance between every two candidate nodes in the same group of candidate nodes is less than a distance threshold, and directions of all candidate nodes in the same group are substantially similar.
[0096] The processing engine 122 may obtain a node from a plurality of nodes, and determine whether there is at least one other node from the plurality of nodes, the distance between the node and each of the at least another node is less than a distance threshold, and the direction of the node and the at least another node is substantially similar. In response to at least one other node among the plurality of nodes, the distance between the node and each of the at least another node is less than a distance threshold, and the directions of the node and the at least another node are substantially similar, the processing engine 122 may determine the node as a candidate node, and determine the node and the at least another node as a candidate node group. More description on determining a candidate node group may be found elsewhere in this application. See, e.g. Figure 5 and its description.
[0097] In 720 , the processing engine 122 (eg, the redundant node determination module 430 ) may determine at least one feature value of the candidate node based on at least one feature value-based feature of the candidate node.
[0098] At least one eigenvalue-based feature may be a measurable feature or characteristic of the candidate node. For example, at least one eigenvalue-based feature may be a local feature, i.e., a geometric representation of a local neighborhood associated with the candidate node. Exemplary local features may include dimensionality (e.g., linear, planar, spherical) and other metrics, such as invariance, divergence, anisotropy, and intrinsic entropy. A plane may be represented as Equation (1):
[0099]
[0100] Among them, P λ refers to the plane of the candidate node x0. λ1, λ2, and λ3 refer to the normalized eigenvalues of the 3D covariance matrix derived from the 3D coordinates of all points near the candidate node x0, where λ1≥λ2≥λ3≥0 and λ1+λ2+λ3=1.
[0101] The linearity can be expressed as equation (2):
[0102]
[0103] Among them, L λ refers to the linearity of the candidate node x0.
[0104] The divergence can be expressed as equation (3):
[0105]
[0106] Among them, S λ It refers to the divergence of candidate node x0.
[0107] The processing engine 122 may extract at least one eigenvalue-based feature of the candidate node by considering the spatial arrangement of neighboring points associated with the candidate node. The processing engine 122 may use a feature extraction algorithm to extract at least one eigenvalue-based feature of the candidate node. Exemplary feature extraction algorithms may include a local binary pattern (LBP) algorithm, a histogram of oriented gradients (HOG) algorithm, a scale-invariant feature transform (SIFT) algorithm, a speeded-up robust features (SURF) algorithm, a difference of Gaussian (DG) algorithm, etc., or a combination thereof.
[0108] In some embodiments, the feature vector may be used to describe at least one eigenvalue-based feature in a digital manner. The processing engine 122 may determine at least one eigenvalue of a candidate node based on the value of the feature vector describing at least one eigenvalue-based feature. In some embodiments, the feature vector may be represented as a vector having one row or one column. For example, the feature vector may be a row vector represented as a 1×N determinant (e.g., a 1×108 determinant). In some embodiments, the feature vector may correspond to an N-dimensional coordinate system. The N-dimensional coordinate system may be associated with N items of a candidate node or features based on eigenvalues.
[0109] In some embodiments, the feature vector may be determined according to various methods or algorithms. For example, the processing engine 122 may determine the feature vector based on a bag of words (BoW) model, a scale-invariant feature transform (SIFT) method, a speeded-up robust feature (SURF) method, etc. or any combination thereof.
[0110] In 730, the processing engine 122 (e.g., the redundant node determination module 430) may compare each of the at least one feature value with a corresponding feature threshold, each feature threshold corresponding to a feature based on the feature value. By comparing each of the at least one feature value with the corresponding feature threshold, the processing engine 122 may determine whether the feature information included in the candidate node is sufficient.
[0111] In some embodiments, linear, planar and divergent comparisons can be made. The processing engine 122 can compare the eigenvalues of linearity (also referred to as linear values) / planar eigenvalues (also referred to as a plane value) and eigenvalues of divergence (also referred to as divergent values) with corresponding eigenvalues. The processing engine 122 can compare the linear value with the linear feature threshold. The processing engine 122 can compare the planar value with the planar feature threshold. The processing engine 122 can compare the divergent value with the divergent feature threshold. Each feature threshold (e.g., linear feature threshold, planar feature threshold, divergent feature threshold) can be the default setting of the navigation map system 100, or can be adjusted in different situations.
[0112] For illustrative purposes, this application uses a combination of linearity, planarity, and divergence as an example, and it should be noted that other eigenvalue-based functions may be used for comparison, such as a combination of sphericity, linearity, planarity, and divergence.
[0113] In 740 , in response to each of the at least one feature value being less than the corresponding feature threshold, the processing engine 122 (eg, the redundant node determination module 430 ) may determine the candidate nodes to include candidate nodes with insufficient feature information.
[0114] In some embodiments, the comparison of linearity, planarity, and divergence can be configured to determine the structure of neighboring points associated with the candidate node. For example, a linearity value not less than a linearity feature threshold can represent a linear structure (e.g., a lamp post of a street lamp). For another example, a planarity value not less than a planarity feature threshold can indicate a planar structure (e.g., a wall). As another example, a divergence value not less than a divergence feature threshold can indicate a scattered structure (e.g., a tree canopy).
[0115] In response to the linear value being less than the linear feature threshold, the planar value being less than the planar feature threshold, and the divergent value being less than the divergent feature threshold, the processing engine 112 may determine based on the candidate node that no linear structure, planar structure, or scattered structure is detected, indicating that the feature information included in the candidate node is insufficient.
[0116] In 750 , the processing engine 122 (eg, the redundant node determination module 430 ) may determine the candidate nodes including insufficient feature information as redundant nodes.
[0117] In some embodiments, the processing engine 112 may first classify the candidate node group based on the comparison, and determine at least one non-redundant node from the candidate node group based on the classification. For example, in response to the linear value being not less than the linear feature threshold, the processing engine 112 may determine that each candidate node in the same candidate node group is related to the linear structure. In response to each candidate node in the same group of candidate nodes being related to the linear structure, the processing engine 112 may determine the candidate node with a higher feature value in the same candidate node group as the non-redundant node as one or more candidate nodes, and determine the other nodes in the candidate node group with lower feature values as redundant nodes. The processing device 112 may sort the linear value of each candidate node in the candidate node group (e.g., in ascending or descending order). The processing device 112 may determine the redundant nodes based on the ranking. For example, the processing device 112 may determine the candidate node with the highest feature value in the candidate node group as a non-redundant node, and the other nodes in the candidate node group as redundant nodes.
[0118] It should be noted that the above description is only for convenience of description, and the application can not be limited within the scope of the embodiments. For those of ordinary skill in the art, various changes and modifications can be made according to the description of the application. However, these changes and modifications will not deviate from the scope of the application. In certain embodiments, one or more other optional operations (for example, storage operations) can be added in other locations in the exemplary process 700. In storage operations, processing engine 122 can store at least one linear value based on characteristic value, linear feature threshold value, plane value, plane feature threshold value, divergence value, feature and / or divergence feature threshold value in the memory (for example, storage device 140) disclosed elsewhere in the application.
[0119] The basic concepts have been described above. Obviously, for those of ordinary skill in the art who have read this application, the above invention disclosure is only for example and does not constitute a limitation of this application. Although not explicitly stated here, those of ordinary skill in the art may make various modifications, improvements and amendments to this application. Such modifications, improvements and amendments are suggested in this application, so such modifications, improvements and amendments still belong to the spirit and scope of the exemplary embodiments of this application.
[0120] At the same time, the present application uses specific words to describe the embodiments of the present application. For example, "one embodiment", "an embodiment", and / or "some embodiments" refer to a certain feature, structure or characteristic related to at least one embodiment of the present application. Therefore, it should be emphasized and noted that "one embodiment" or "an embodiment" or "an alternative embodiment" mentioned twice or more in different positions in this specification does not necessarily refer to the same embodiment. In addition, some features, structures or characteristics in one or more embodiments of the present application can be appropriately combined.
[0121] In addition, it will be appreciated by those skilled in the art that various aspects of the present application may be illustrated and described by a number of patentable categories or situations, including any new and useful combination of processes, machines, products or substances, or any new and useful improvements thereto. Accordingly, various aspects of the present application may be performed entirely by hardware, entirely by software (including firmware, resident software, microcode, etc.), or by a combination of hardware and software. The above hardware or software may all be referred to as "units", "modules" or "systems". In addition, various aspects of the present application may take the form of a computer program product embodied in one or more computer-readable media, wherein computer-readable program code is contained therein.
[0122] A computer readable signal medium may include a propagated data signal containing computer program code, such as in baseband or as part of a carrier wave. Such propagated signals may be in a variety of forms, including electromagnetic, optical, etc., or any suitable combination. A computer readable signal medium may be any computer readable medium other than a computer readable storage medium, which may be connected to a set of instruction execution systems, devices or equipment to communicate, propagate or transmit the program for use. The program code on the computer readable signal medium may be propagated via any suitable medium, including radio, cable, fiber optic cable, RF, etc., or any combination of the above.
[0123] The computer program code required for the operation of each part of the present application can be written in any one or more programming languages, including object-oriented programming languages such as Java, Scala, Smalltalk, Eiffel, JADE, Emerald, C++, C#, VB.NET, Python, etc., conventional procedural programming languages such as C programming language, Visual Basic, Fortran2103, Perl, COBOL 2102, PHP, ABAP, dynamic programming languages such as Python, Ruby and Groovy, or other programming languages, etc. The program code can be run entirely on the user's computer, or run on the user's computer as an independent software package, or run partially on the user's computer and partially on the remote computer, or run entirely on the remote computer or server. In the latter case, the remote computer can be connected to the user's computer through any network form, such as a local area network (LAN) or a wide area network (WAN), or connected to an external computer (e.g., via the Internet), or in a cloud computing environment, or used as a service such as software as a service (SaaS).
[0124] In addition, unless explicitly stated in the claims, the order of the processing elements and sequences described in this application, the use of alphanumeric characters, or the use of other names are not intended to limit the order of the processes and methods of this application. Although the above disclosure discusses some invention embodiments that are currently considered useful through various examples, it should be understood that such details are only for illustrative purposes, and the attached claims are not limited to the disclosed embodiments. On the contrary, the claims are intended to cover all modifications and equivalent combinations that are consistent with the essence and scope of the embodiments of this application. For example, although the implementation of the various components described above can be embodied in a hardware device, it can also be implemented as a pure software solution, for example, installation on an existing server or mobile device.
[0125] Similarly, it should be noted that in order to simplify the description disclosed in this application and thus facilitate the understanding of one or more embodiments of the invention, in the foregoing description of the embodiments of the present application, multiple features are sometimes grouped into one embodiment, figure, or description thereof. However, this method of the present application should not be interpreted as reflecting the intention that the claimed object material to be scanned requires more features than those expressly stated in each claim. On the contrary, the subject matter of the invention should have fewer features than the single embodiment described above.
[0126] In some embodiments, numbers describing the number of components and attributes are used. It should be understood that such numbers used in the description of the embodiments are modified by the modifiers "about", "approximately" or "substantially" in some examples. Unless otherwise specified, "about", "approximately" or "substantially" indicate that the numbers are allowed to vary by ±20%. Accordingly, in some embodiments, the numerical parameters used in the specification and claims are approximate values, which may change according to the required features of individual embodiments. In some embodiments, the numerical parameters should take into account the specified significant digits and adopt the general method of retaining digits. Although the numerical domains and parameters used to confirm the breadth of their range in some embodiments of the present application are approximate values, in specific embodiments, the setting of such numerical values is as accurate as possible within the feasible range.
[0127] All patents, patent applications, patent application publications, and other materials (such as papers, books, specifications, publications, records, things, and / or the like) referred to herein are hereby incorporated by reference in their entirety for all purposes, except any prosecution record related to such documents, any such documents that are inconsistent or conflicting with this document, or any such documents that have the effect of limiting the broad scope of the claims that may or may not be related to this document. For example, if there is any inconsistency or conflict between the description, definition, and / or use of terms associated with any incorporated material and the terminology associated with this document, the description, definition, and / or terminology used in this document shall control.
[0128] Finally, it should be understood that the embodiments described in this application are only used to illustrate the principles of the embodiments of the present application. Other variations may also fall within the scope of the present application. Therefore, as an example and not a limitation, the alternative configurations of the embodiments of the present application may be considered to be consistent with the teachings of the present application. Accordingly, the embodiments of the present application are not limited to the embodiments explicitly introduced and described in the present application.
Claims
1. A system for generating a pose graph, the system comprising: at least one storage medium including a set of instructions; as well as at least one processor in communication with the at least one storage medium, wherein when executing the instructions, the at least one processor is configured to cause the system to perform the following operations: Obtain a plurality of nodes, each of the plurality of nodes comprising point cloud data and a pose acquired by one or more sensors associated with an object over a period of time, wherein the point cloud data is a set of data points associated with one or more objects in a space around a current position of the object, and the pose comprises a position and an orientation of the object; determining a set of one or more candidate nodes from the plurality of nodes based on a pose associated with each of the plurality of nodes; Determining one or more redundant nodes based on feature information associated with each of the candidate nodes, the feature information being compared based on feature values; wherein at least one feature value-based feature of the candidate node is extracted based on a spatial arrangement of neighboring points associated with the candidate node; The determining one or more redundant nodes comprises for each candidate node in each group of candidate nodes: Determining whether the candidate node includes insufficient feature information includes: determining at least one feature value of the candidate node based on at least one feature value-based feature of the candidate node; The eigenvalue-based features include at least one of linear, planar, or divergent; The eigenvalue comprises at least one of a linear eigenvalue, a planar eigenvalue, and a divergent eigenvalue; comparing each of the at least one feature value with a corresponding feature threshold, each of the feature thresholds corresponding to one of the feature value-based features; and In response to each of the at least one feature value being less than the corresponding feature threshold, determining the candidate node to be the candidate node including the insufficient feature information; and In response to the candidate node including the insufficient feature information, Determining the candidate node including the insufficient feature information as a redundant node; Determine a plurality of target nodes by eliminating the one or more redundant nodes from the plurality of nodes; and generate a target pose graph based on the plurality of target nodes.
2. The system according to claim 1, characterized in that The distance between every two candidate nodes in the same group of candidate nodes is less than a distance threshold, and the angle between the directions of all the candidate nodes in the same group is less than 30 degrees, and the direction of the candidate node is the moving direction of the object.
3. The system according to claim 1, characterized in that In order to generate a plurality of the target nodes by eliminating the one or more redundant nodes from the plurality of nodes, the at least one processor is further configured to cause the system to perform the following operations: For each of the one or more redundant nodes, point cloud data of the redundant node is added to the target node of the same group as the redundant node.
4. The system according to claim 1, characterized in that To obtain the plurality of nodes, the at least one processor is further configured to cause the system to perform the following operations: Obtaining an initial pose graph, wherein the initial pose graph includes a plurality of initial nodes and a plurality of initial edges; and The plurality of nodes are determined based on the plurality of initial nodes.
5. The system according to claim 4, characterized in that In order to generate the plurality of target nodes by eliminating the one or more redundant nodes from the plurality of nodes, the at least one processor is further configured to cause the system to perform the following operations: An intermediate pose graph is generated by eliminating the one or more redundant nodes and initial edges associated with the one or more redundant nodes from the initial pose graph.
6. The system according to claim 5, characterized in that To generate the target pose graph based on the plurality of target nodes, the at least one processor is further configured to cause the system to perform the following operations: For each target node that eliminates the initial edge, Determine a constraint between the target node and the nearby target nodes that eliminates the initial edge; as well as Generate a target edge based on the constraint, wherein the target edge connects the target node that eliminates the initial edge and the nearby target nodes; as well as The target pose graph is generated based on the intermediate pose graph and the target edge of each of the target nodes with the initial edge eliminated.
7. The system according to claim 2, characterized in that The distance threshold is determined based on a width of a road associated with the candidate node group.
8. A method for generating a pose graph, the method comprising: Obtain a plurality of nodes, each of the plurality of nodes comprising point cloud data and a pose acquired by one or more sensors associated with an object over a period of time, wherein the point cloud data is a set of data points associated with one or more objects in a space around a current position of the object, and the pose comprises a position and an orientation of the object; determining a set of one or more candidate nodes from the plurality of nodes based on a pose associated with each of the plurality of nodes; Determining one or more redundant nodes based on feature information associated with each of the candidate nodes, the feature information being compared based on feature values; wherein at least one feature value-based feature of the candidate node is extracted based on a spatial arrangement of neighboring points associated with the candidate node; The determining one or more redundant nodes comprises for each candidate node in each group of candidate nodes: Determining whether the candidate node includes insufficient feature information includes: determining at least one feature value of the candidate node based on at least one feature value-based feature of the candidate node; The eigenvalue-based features include at least one of linear, planar, or divergent; The eigenvalue comprises at least one of a linear eigenvalue, a planar eigenvalue, and a divergent eigenvalue; comparing each of the at least one feature value with a corresponding feature threshold, each of the feature thresholds corresponding to one of the feature value-based features; and In response to each of the at least one feature value being less than the corresponding feature threshold, determining the candidate node to be the candidate node including the insufficient feature information; and In response to the candidate node including the insufficient feature information, Determining the candidate node including the insufficient feature information as a redundant node; Determine a plurality of target points by eliminating the one or more redundant nodes from the plurality of nodes; and generate a target pose graph based on the plurality of target nodes.
9. The method according to claim 8, characterized in that The distance between every two candidate nodes in the same group of candidate nodes is less than a distance threshold, and the angle between the directions of all the candidate nodes in the same group is less than 30 degrees, and the direction of the candidate node is the moving direction of the object.
10. The method according to claim 8, characterized in that The generating a plurality of target nodes by eliminating the one or more redundant nodes from the plurality of nodes comprises: For each of the one or more redundant nodes, point cloud data of the redundant node is added to the target node of the same group as the redundant node.
11. The method according to claim 8, characterized in that The obtaining of multiple nodes comprises: An initial pose graph is obtained, wherein the initial pose graph includes a plurality of initial nodes and a plurality of initial edges; and the plurality of nodes are determined based on the plurality of initial nodes.
12. The method according to claim 11, characterized in that The generating a plurality of target nodes by eliminating the one or more redundant nodes from the plurality of nodes comprises: An intermediate pose graph is generated by eliminating the one or more redundant nodes and initial edges associated with the one or more redundant nodes from the initial pose graph.
13. The method according to claim 12, characterized in that Generating a target pose graph based on the multiple target nodes comprises: For each target node that eliminates the initial edge, determining a constraint between the target node and the nearby target nodes from which the initial edge is eliminated; and generating a target edge based on the constraint, the target edge connecting the target node from which the initial edge is eliminated and the nearby target nodes; and The target pose graph is generated based on the intermediate pose graph and the target edge of each of the target nodes with the initial edge eliminated.
14. The method according to claim 9, characterized in that The distance threshold is determined based on a width of a road associated with the candidate node group.
15. A non-transitory computer-readable storage medium comprising a computer program product, the computer program product comprising instructions for generating a pose graph, characterized in that: The instructions are configured to cause the computing device to perform the following operations: Obtain a plurality of nodes, each of the plurality of nodes comprising point cloud data and a pose acquired by one or more sensors associated with an object over a period of time, wherein the point cloud data is a set of data points associated with one or more objects in a space around a current position of the object, and the pose comprises a position and an orientation of the object; determining a set of one or more candidate nodes from the plurality of nodes based on a pose associated with each of the plurality of nodes; Determining one or more redundant nodes based on feature information associated with each of the candidate nodes, the feature information being compared based on feature values; wherein at least one feature value-based feature of the candidate node is extracted based on a spatial arrangement of neighboring points associated with the candidate node; The determining one or more redundant nodes comprises for each candidate node in each group of candidate nodes: Determining whether the candidate node includes insufficient feature information includes: determining at least one feature value of the candidate node based on at least one feature value-based feature of the candidate node; The eigenvalue-based features include at least one of linear, planar, or divergent; The eigenvalue comprises at least one of a linear eigenvalue, a planar eigenvalue, and a divergent eigenvalue; comparing each of the at least one feature value with a corresponding feature threshold, each of the feature thresholds corresponding to one of the feature value-based features; and In response to each of the at least one feature value being less than the corresponding feature threshold, determining the candidate node to be the candidate node including the insufficient feature information; and In response to the candidate node including the insufficient feature information, Determining the candidate node including the insufficient feature information as a redundant node; determining a plurality of target nodes by eliminating the one or more redundant nodes from the plurality of nodes; and A target pose graph is generated based on the multiple target nodes.
Citation Information
Patent Citations
UAV (Unmanned Aerial Vehicle) image batching and three-dimensional reconstruction method
CN108876828A