Systems and methods for autonomous driving
Patent Information
- Application Number
- CN202311304821.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2019-10-23
- Publication Date
- 2026-10-30
- Estimated Expiration
- 2039-10-23
AI Technical Summary
对于当前时刻捕获的点云数据的一部分,该部分与先前时刻捕获的点云数据的一部分相同,如果仍然进行计算和/或处理,则可能导致处理资源的浪费和处理速度的降低
[0041]本申请的一部分附加特性可以在下面的描述中进行说明。通过对以下描述和相应附图的研究或者对实施例的生产或操作的了解,本申请的一部分附加特性对于本领域技术人员是明显的。本申请的特征可以通过对以下描述的具体实施例的各种方面的方法、手段和组合的实践或使用得以实现和达到。
Smart Images

Figure CN117163049B_ABST
Abstract
Description
[0001] Case Analysis
[0002] This application is a divisional application of Chinese application filed on October 23, 2019, with application number 201980002063.1 and entitled "System and Method for Automated Driving". Technical Field
[0003] This application generally relates to systems and methods for autonomous driving, and more particularly to systems and methods for processing point cloud data related to autonomous driving. Background Technology
[0004] With the development of microelectronics and robotics, the exploration of autonomous driving has progressed rapidly. Typically, autonomous driving systems sense environmental information by capturing and processing point cloud data using sensor devices (e.g., LiDAR). Due to the relatively short capture intervals of point cloud data, in some cases, the point cloud data captured at a current moment may be partially identical to that captured at a previous moment. If computation and / or processing are still performed on a portion of the point cloud data captured at the current moment that is identical to a portion captured at a previous moment, it may lead to a waste of processing resources and a reduction in processing speed. Therefore, it is desirable to provide systems and methods for identifying a portion of the point cloud data captured at the current moment that is identical to a portion captured at a previous moment, preventing further processing of that portion of the point cloud data, and retrieving previously processed results, thereby improving processing efficiency. Summary of the Invention
[0005] One aspect of this application relates to a system for autonomous driving. The system may include a storage medium for storing a set of instructions and a processor communicatively coupled to the storage medium. The system may specify at least two grids on a two-dimensional plane; for each of the at least two grids, acquire first point cloud data corresponding to that grid at a first time; determine a first hash value of the first point cloud data; acquire second point cloud data corresponding to the grid at a second time; determine a second hash value of the second point cloud data; and, in response to determining that one of the at least two first hash values corresponding to the first point cloud data of the at least two grids matches the second hash value, prevent further processing of the second point cloud data.
[0006] In some embodiments, the first moment may be a moment preceding the second moment.
[0007] In some embodiments, the system may further retrieve previously processed results related to the second point cloud data from a cache.
[0008] In some embodiments, the prior processing result associated with the second point cloud data may include the processing result of the first point cloud data whose first hash value matches the second hash value.
[0009] In some embodiments, in response to determining that no first hash value matches the second hash value, the system may further process the second point cloud data.
[0010] In some embodiments, the system may further store the processing result of the second point cloud data in the cache.
[0011] In some embodiments, the cache can be dynamically released according to a preset time interval.
[0012] In some embodiments, the first point cloud data and / or the second point cloud data may include point cloud data related to environmental information within a preset range of the vehicle.
[0013] In some embodiments, the environmental information within a preset range of the vehicle may include road information, altitude information, and / or static target information.
[0014] In some embodiments, the first point cloud data and / or the second point cloud data may be obtained by a sensor device. The sensor device may include a lidar device.
[0015] In some embodiments, the shape of the at least two grids may include at least one of quadrilaterals, hexagons, and / or irregular polygons.
[0016] Another aspect of this application relates to a method implemented on a computing device, the computing device including at least one processor, at least one storage medium, and a communication platform connected to a network. The method may include specifying at least two grids on a two-dimensional plane; for each of the at least two grids, acquiring first point cloud data corresponding to the grid at a first time; determining a first hash value of the first point cloud data; acquiring second point cloud data corresponding to the grid at a second time; determining a second hash value of the second point cloud data; and, in response to determining that one of the at least two first hash values corresponding to the first point cloud data of the at least two grids matches the second hash value, preventing further processing of the second point cloud data.
[0017] In some embodiments, the first moment may be a moment preceding the second moment.
[0018] In some embodiments, the method may further include retrieving previously processed results related to the second point cloud data from a cache.
[0019] In some embodiments, the prior processing result associated with the second point cloud data may include the processing result of the first point cloud data whose first hash value matches the second hash value.
[0020] In some embodiments, the method may further include processing the second point cloud data in response to determining that no first hash value matches the second hash value.
[0021] In some embodiments, the method may further include storing the processing result of the second point cloud data into the cache.
[0022] In some embodiments, the cache can be dynamically released according to a preset time interval.
[0023] In some embodiments, the first point cloud data and / or the second point cloud data may include point cloud data related to environmental information within a preset range of the vehicle.
[0024] In some embodiments, the environmental information within a preset range of the vehicle may include road information, altitude information, and / or static target information.
[0025] In some embodiments, the first point cloud data and / or the second point cloud data may be obtained by a sensor device. The sensor device may include a lidar device.
[0026] In some embodiments, the shape of the at least two grids may include at least one of quadrilaterals, hexagons, and / or irregular polygons.
[0027] Another aspect of this application relates to a vehicle configured for autonomous driving. The vehicle may include a detection component, a planning component, and a control component. The planning component may be configured to specify at least two grids on a two-dimensional plane; for each of the at least two grids, acquire first point cloud data corresponding to the grid at a first time; determine a first hash value of the first point cloud data; acquire second point cloud data corresponding to the grid at a second time; determine a second hash value of the second point cloud data; and, in response to determining that one of the at least two first hash values of the first point cloud data corresponding to the at least two grids matches the second hash value, prevent further processing of the second point cloud data.
[0028] In some embodiments, the first moment may be a moment preceding the second moment.
[0029] In some embodiments, the planning component may also be configured to retrieve previously processed results related to the second point cloud data from a cache.
[0030] In some embodiments, the prior processing result associated with the second point cloud data may include the processing result of the first point cloud data whose first hash value matches the second hash value.
[0031] In some embodiments, the planning component may also be configured to process the second point cloud data in response to determining that no first hash value matches the second hash value.
[0032] In some embodiments, the planning component may also be configured to store the processing result of the second point cloud data into the cache.
[0033] In some embodiments, the cache can be dynamically released according to a preset time interval.
[0034] In some embodiments, the first point cloud data and / or the second point cloud data may include point cloud data related to environmental information within a preset range of the vehicle.
[0035] In some embodiments, the environmental information within a preset range of the vehicle may include road information, altitude information, and / or static target information.
[0036] In some embodiments, the first point cloud data and / or the second point cloud data may be obtained by the detection component. The detection component includes a lidar device.
[0037] In some embodiments, the shape of the at least two grids may include at least one of quadrilaterals, hexagons, and / or irregular polygons.
[0038] Another aspect of this application relates to an autonomous driving system. The system may include a designation module, a first acquisition module, a first determination module, a second acquisition module, a second determination module, and a processing module. The designation module may be configured to designate at least two grids on a two-dimensional ground plane.
[0039] The first acquisition module can be configured to acquire first point cloud data corresponding to each of the at least two grids at a first time step. The first determination module can be configured to determine a first hash value of the first point cloud data. The second acquisition module can be configured to acquire second point cloud data corresponding to each of the at least two grids at a second time step. The second determination module can be configured to determine a second hash value of the second point cloud data. The processing module can be configured to prevent further processing of the second point cloud data in response to determining that one of the at least two first hash values in the first point cloud data corresponding to the at least two grids matches the second hash value.
[0040] Another aspect of this application relates to a non-transitory computer-readable medium comprising executable instructions. When executed by at least one processor, the executable instructions may instruct the at least one processor to perform a method. The method may include specifying at least two grids on a two-dimensional ground plane; for each of the at least two grids, acquiring first point cloud data corresponding to the grid at a first time; determining a first hash value of the first point cloud data; acquiring second point cloud data corresponding to the grid at a second time; determining a second hash value of the second point cloud data; and, in response to determining that one of the at least two first hash values of the first point cloud data corresponding to the at least two grids matches the second hash value, preventing further processing of the second point cloud data.
[0041] Some of the additional features of this application will be described in the following description. Some of these additional features will be apparent to those skilled in the art from the study of the following description and the accompanying drawings, or from an understanding of the production or operation of the embodiments. The features of this application can be implemented and achieved through the practice or use of various methods, means, and combinations of the specific embodiments described below. Attached Figure Description
[0042] This application will be further described through exemplary embodiments. These exemplary embodiments will be described in detail with reference to the accompanying drawings. The drawings are not drawn to scale. These embodiments are non-limiting exemplary embodiments, in which the same numbers in the figures denote similar structures, wherein:
[0043] Figure 1 These are schematic diagrams of exemplary autonomous driving systems according to some embodiments of this application;
[0044] Figure 2 These are schematic diagrams of exemplary hardware and / or software components of an exemplary computing device according to some embodiments of this application;
[0045] Figure 3 These are schematic diagrams of exemplary hardware and / or software components of an exemplary mobile device according to some embodiments of this application;
[0046] Figure 4 This is a block diagram of an exemplary processing apparatus according to some embodiments of this application;
[0047] Figure 5 This is a flowchart illustrating an exemplary process for processing point cloud data according to some embodiments of this application;
[0048] Figure 6-A and Figure 6-BThis is a schematic diagram of an exemplary grid on a two-dimensional plane according to some embodiments of this application;
[0049] Figure 7 This is a schematic diagram illustrating an exemplary process for matching point cloud data captured at different times, according to some embodiments of this application; and
[0050] Figure 8 This is a schematic diagram illustrating an exemplary dynamic release of a cache according to some embodiments of this application. Detailed Implementation
[0051] The following description is provided to enable those skilled in the art to implement and utilize this application, and is given in a specific application scenario and its requirements. It will be apparent to those skilled in the art that various modifications can be made to the disclosed embodiments, and the general principles defined herein can be applied to other embodiments and application scenarios without departing from the principles and scope of this application. Therefore, this application is not limited to the described embodiments, but should be given the broadest scope consistent with the claims.
[0052] The terminology used in this application is for describing specific exemplary embodiments only and does not limit the scope of this application. The singular forms “a,” “an,” and “the” used in this application may also include the plural forms, unless the context clearly indicates otherwise. It should also be understood that, as in this application, the terms “comprising” and “including” indicate only the presence of the stated features, integrals, steps, operations, components, and / or parts, but do not exclude the presence or addition of one or more other features, integrals, steps, operations, components, parts, and / or combinations thereof.
[0053] These and other features, characteristics, functions and operating methods of related structural elements, as well as component assembly and manufacturing economics, will become more apparent from the following description of the accompanying drawings, which form part of this specification. However, it should be understood that the drawings are for illustrative purposes only and are not intended to limit the scope of this application. It should also be understood that the drawings are not drawn to scale.
[0054] Flowcharts are used in this application to illustrate operations performed by a system according to some embodiments of this application. It should be understood that the operations in the flowcharts may not be performed sequentially. Instead, the steps may be processed in reverse order or simultaneously. Furthermore, one or more other operations may be added to these flowcharts. One or more operations may also be deleted from the flowcharts.
[0055] Furthermore, although the systems and methods disclosed in this application primarily relate to land-based transportation systems, it should be understood that this is merely an exemplary embodiment. The systems and methods of this application can be applied to any other type of transportation system. For example, the systems and methods of this application can be applied to transportation systems in different environments, including land, sea, aerospace, etc., or any combination thereof. Autonomous vehicles in transportation systems can include taxis, private cars, ride-sharing services, buses, trains, bullet trains, high-speed trains, subways, ships, airplanes, spacecraft, hot air balloons, etc., or any combination thereof.
[0056] One aspect of this application relates to a system and method for processing point cloud data related to autonomous driving. The system can specify at least two grids on a two-dimensional plane (e.g., a two-dimensional plane corresponding to a preset range of the vehicle). For each of the at least two grids, the system can acquire first point cloud data corresponding to the grid at a first time and determine a first hash value of the first point cloud data. The system can also acquire second point cloud data corresponding to the grid at a second time and determine a second hash value of the second point cloud data. The first time can be a time preceding the second time. Further, in response to determining that one of the at least two first hash values in the first point cloud data corresponding to the at least two grids matches the second hash value, the system can prevent further processing of the second point cloud data. That is, a portion of the point cloud data captured (or acquired) at the second time may be identical to a portion of the point cloud data captured at the first time. For the identical portion captured at the second time, the system can prevent further processing and retrieve the results of previous processing (e.g., the processing result of the first point cloud data whose first hash value matches the second hash value), thereby saving processing resources and improving the processing efficiency of the point cloud data.
[0057] Figure 1 This is a schematic diagram of an exemplary autonomous driving system according to some embodiments of this application. In some embodiments, the autonomous driving system 100 may include a vehicle 110 (e.g., 110-1, 110-2...110-n), a server 120, a terminal device 130, a storage device 140, a network 150, and a positioning and navigation system 160.
[0058] Vehicle 110 can be any type of autonomous vehicle, unmanned aerial vehicle, etc. As used herein, an autonomous vehicle or unmanned aerial vehicle can refer to a vehicle capable of achieving a certain level of driving automation. Exemplary levels of driving automation may include: Level 1, where the vehicle is primarily supervised by a human and has specific autonomous functions (e.g., autonomous steering or acceleration); Level 2, where the vehicle has one or more advanced driver assistance systems (ADAS, e.g., adaptive cruise control, lane keeping system) that can control braking, steering, and / or acceleration of the vehicle; Level 3, where the vehicle can drive autonomously when one or more of these conditions are met; Level 4, where the vehicle can operate without human input or negligence, but is still subject to certain limitations (e.g., limited to a certain area); Level 5, where the vehicle can operate autonomously in all situations, etc., or any combination thereof.
[0059] In some embodiments, vehicle 110 may have an equivalent structure that enables vehicle 110 to move or fly. For example, vehicle 110 may include the structure of a conventional vehicle, such as a chassis, suspension, steering equipment (e.g., a steering wheel), braking equipment (e.g., a brake pedal), accelerator, etc. As another example, vehicle 110 may have a body and at least one wheel. The body can be any type of body, such as a sports car, coupe, sedan, light truck, station wagon, SUV, minivan, or convertible. At least one wheel may be configured as all-wheel drive (AWD), front-wheel drive (FWR), rear-wheel drive (RWD), etc. In some embodiments, vehicle 110 may be an electric vehicle, a fuel cell vehicle, a hybrid vehicle, a conventional internal combustion engine vehicle, etc.
[0060] In some embodiments, vehicle 110 is able to sense its environment and navigate by using one or more detection units 112. At least two detection units 112 may include sensor devices (e.g., radar (e.g., lidar devices)), a Global Positioning System (GPS) module, an Inertial Measurement Unit (IMU), a camera, or any combination thereof. The radar (e.g., lidar device) may be configured to scan the area around vehicle 110 and generate point cloud data. The point cloud data can be used to generate a digital three-dimensional (3D) representation of one or more targets surrounding vehicle 110. A GPS module may refer to a device capable of receiving geolocation and time information from GPS satellites and determining the geographical location of the device. An IMU may refer to an electronic device that uses various inertial sensors to measure and provide specific forces, angular rates, and sometimes the magnetic field around the vehicle. In some embodiments, the various inertial sensors may include acceleration sensors (e.g., piezoelectric sensors), velocity sensors (e.g., Hall effect sensors), distance sensors (e.g., radar, infrared sensors), steering angle sensors (e.g., tilt sensors), traction-related sensors (e.g., force sensors), etc. The camera can be configured to acquire one or more images related to a target (e.g., a person, animal, tree, roadblock, building, or vehicle) within the camera's field of view.
[0061] In some embodiments, server 120 may be a single server or a group of servers. The server group may be centralized or distributed (e.g., server 120 may be a distributed system). In some embodiments, server 120 may be local or remote. For example, server 120 may access information and / or data stored in terminal device 130, detection unit 112, vehicle 110, storage device 140, and / or positioning and navigation system 160 via network 150. As another example, server 120 may directly connect to terminal device 130, detection unit 112, vehicle 110, and / or storage device 140 to access stored information and / or data. In some embodiments, server 120 may be implemented on a cloud platform or in-vehicle computer. As an example only, a cloud platform may include private cloud, public cloud, hybrid cloud, community cloud, distributed cloud, internal cloud, multi-tiered cloud, etc., or any combination thereof. In some embodiments, server 120 may be implemented in this application. Figure 2 The description is executed on a computing device 200 containing one or more components.
[0062] In some embodiments, server 120 may include processing device 122. Processing device 122 may process information and / or data related to driving information associated with vehicle 110 to perform one or more functions described in this application. For example, processing device 122 may specify at least two grids on a two-dimensional plane. For each of the at least two grids, processing device 122 may determine a first hash value of first point cloud data captured at a first time (which may be a previous time of the second time) and determine second point cloud data captured at the second time. Further, in response to determining that one of at least two first hash values in the first point cloud data corresponding to the at least two grids matches a second hash value, processing device 122 may prevent further processing of the second point cloud data and retrieve previously processed results associated with the second point cloud data; in response to determining that no first hash value matches a second hash value, processing device 122 may process the second point cloud data. Processing device 122 may also determine the driving path of vehicle 110 based on the processing results of the second point cloud data corresponding to the at least two grids. That is, processing device 122 may be configured as a planning component of vehicle 110.
[0063] In some embodiments, the processing device 122 may include one or more processing devices (e.g., a single-core processing device or a multi-core processor). By way of example only, the processing device 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, or any combination thereof. In some embodiments, the processing device 122 may be integrated into the vehicle 110 and / or the terminal device 130.
[0064] In some embodiments, terminal device 130 may include mobile device 130-1, tablet computer 130-2, laptop computer 130-3, in-vehicle device 130-4, wearable device 130-5, etc., or any combination thereof. In some embodiments, mobile device 130-1 may include smart home device, smart mobile device, virtual reality device, augmented reality device, etc., or any combination thereof. Smart home device may include smart lighting device, smart appliance control device, smart monitoring device, smart TV, smart camera, walkie-talkie, etc., or any combination thereof. Smart mobile device may include smartphone, personal digital assistant (PDA), gaming device, navigation device, point-of-sale (POS) device, etc., or any combination thereof. Virtual reality device or augmented reality device may include virtual reality helmet, virtual reality glasses, virtual reality headset, augmented reality helmet, augmented reality glasses, augmented reality headset, etc., or any combination thereof. For example, virtual reality device and / or augmented reality device may include Google... TM Glass, Oculus Rift, HoloLens, Gear VR, etc. In some embodiments, the vehicle-mounted device 130-4 may include an in-vehicle computer, in-vehicle TV, etc. In some embodiments, the wearable device 130-5 may include smart bracelets, smart shoes and socks, smart glasses, smart helmets, smartwatches, smart clothing, smart backpacks, smart accessories, etc., or any combination thereof. In some embodiments, the terminal device 130 may be a device with positioning technology for locating the position of the terminal device 130. In some embodiments, the server 120 may be integrated into the vehicle 110 and / or the terminal device 130.
[0065] Storage device 140 may store data and / or instructions. In some embodiments, storage device 140 may store data acquired from vehicle 110, detection unit 112, processing device 122, terminal device 130, positioning and navigation system 160, and / or external storage devices. For example, storage device 140 may store point cloud data captured by detection unit 112. In some embodiments, storage device 140 may store data and / or instructions used by server 120 to perform or use in order to complete the exemplary methods described herein. For example, storage device 140 may store instructions that processing device 122 may perform or use to acquire point cloud data captured at different times and determine the hash value of the point cloud data. In some embodiments, storage device 140 may include mass storage, removable storage, volatile read-write memory, read-only memory (ROM), etc., or any combination thereof. Exemplary mass storage may include disks, optical disks, solid-state drives, etc. Exemplary removable storage may include flash drives, floppy disks, optical disks, memory cards, compact disks, magnetic tapes, etc. Exemplary volatile read-write memory may include random access memory (RAM). Exemplary RAMs may include Dynamic Random Access Memory (DRAM), Double Data Rate Synchronous Dynamic Random Access Memory (DDR SDRAM), Static Random Access Memory (SRAM), Thyristor Random Access Memory (T-RAM), and Zero Capacitor Random Access Memory (Z-RAM), etc. Exemplary ROMs may include Mask Read-Only Memory (MROM), Programmable Read-Only Memory (PROM), Erasable Programmable Read-Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), Optical Disc Read-Only Memory (CD-ROM), and Digital Multifunction Disk Read-Only Memory, etc. In some embodiments, the storage device 140 may operate on a cloud platform. By way of example only, a cloud platform may include a private cloud, public cloud, hybrid cloud, community cloud, distributed cloud, internal cloud, multi-tiered cloud, etc., or any combination thereof.
[0066] In some embodiments, storage device 140 may be connected to network 150 to communicate with one or more components of autonomous driving system 100 (e.g., server 120, terminal device 130, detection unit 112, vehicle 110, and / or positioning and navigation system 160). One or more components of autonomous driving system 100 may access data or instructions stored in storage device 140 via network 150. In some embodiments, storage device 140 may be directly connected to or communicate with one or more components of autonomous driving system 100 (e.g., server 120, terminal device 130, detection unit 112, vehicle 110, and / or positioning and navigation system 160). In some embodiments, storage device 140 may be part of server 120. In some embodiments, storage device 140 may be integrated into vehicle 110.
[0067] Network 150 can facilitate the exchange of information and / or data. In some embodiments, one or more components of the autonomous driving system 100 (e.g., server 120, terminal device 130, detection unit 112, vehicle 110, storage device 140, or positioning and navigation system 160) can transmit information and / or data to other components of the autonomous driving system 100 via network 150. For example, server 120 can retrieve point cloud data from storage device 140 via network 150. In some embodiments, network 150 can be a wired network or a wireless network, or any combination thereof. By way of example only, network 150 can include cable networks, wired networks, fiber optic networks, communication networks, internal networks, the Internet, local area networks (LANs), wide area networks (WANs), wireless local area networks (WLANs), metropolitan area networks (MANs), public switched telephone networks (PSTNs), Bluetooth networks, cellular networks, near field communication (NFC) networks, or any combination thereof. In some embodiments, network 150 can include one or more network access points. For example, network 150 may include wired or wireless network access points (e.g., 150-1, 150-2) through which one or more components of autonomous driving system 100 can connect to network 150 to exchange data and / or information.
[0068] The positioning and navigation system 160 can determine information related to a target, such as terminal device 130, vehicle 110, etc. In some embodiments, the positioning and navigation system 160 can be a Global Positioning System (GPS), Global Navigation Satellite System (GLONASS), Compass Navigation System (COMPASS), BeiDou Navigation Satellite System, Galileo Positioning System, Quasi-Zenith Satellite System (QZSS), etc. The information may include the target's position, altitude, velocity, acceleration, current time, etc. The positioning and navigation system 160 may include one or more satellites, such as satellite 160-1, satellite 160-2, and satellite 160-3. Satellites 160-1 to 160-3 can independently or jointly determine the above information. The positioning and navigation system 160 can transmit the above information to server 120, vehicle 110, and / or terminal device 130 via a wireless connection.
[0069] Those skilled in the art will understand that when an element (or component) of the autonomous driving system 100 performs, it can do so via electrical signals and / or electromagnetic signals. For example, when terminal device 130 sends a request to server 120, the processor of terminal device 130 can generate an electrical signal encoding the request. The processor of terminal device 130 can then send the electrical signal to an output port. If terminal device 130 communicates with server 120 via a wired network, the output port can be physically connected to a cable, which can also send electrical signals to the input port of server 120. If terminal device 130 communicates with server 120 via a wireless network, the output port of terminal device 130 can be one or more antennas that convert electrical signals into electromagnetic signals. In electronic devices such as terminal device 130 and / or server 120, instructions and / or actions are performed via electrical signals when their processors process instructions, issue instructions, and / or perform actions. For example, when a processor retrieves or saves data from a storage medium (e.g., storage device 140), it can send electrical signals to a read / write device of the storage medium, which can read or write structured data in the storage medium. This structured data can be transmitted to the processor in the form of electrical signals via the bus of an electronic device. Here, an electrical signal can refer to a single electrical signal, a series of electrical signals, and / or at least two discontinuous electrical signals.
[0070] Figure 2 This is a schematic diagram of exemplary hardware and / or software components of an exemplary computing device according to some embodiments of this application. In some embodiments, server 120 and / or terminal device 130 may be implemented on computing device 200. For example, processing device 122 may be implemented on computing device 200 and configured to perform the functions of processing device 122 disclosed in this application.
[0071] The computing device 200 can be used to implement any component of the autonomous driving system 100 of this application. For example, the processing device 122 of the autonomous driving system 100 can be implemented on the computing device 200 by its hardware, software program, firmware, or a combination thereof. Although only one such computer is shown for convenience, the computer functions associated with the autonomous driving system 100 described herein can be implemented in a distributed manner on multiple similar platforms to distribute the processing load.
[0072] The computing device 200 may include a communication (COM) port 250 connected to a network (e.g., network 150) to facilitate data communication. The computing device 200 may also include a processor (e.g., processor 220), in the form of one or more processors (e.g., logic circuitry), for executing program instructions. For example, the processor may include interface circuitry and processing circuitry therein. The interface circuitry may be configured to receive electrical signals from bus 210, wherein the electrical signals are encoded for structured data and / or instructions for the processing circuitry. The processing circuitry may perform logical calculations and then encode the conclusions, results, and / or instructions into electrical signals. The interface circuitry may then output electrical signals from the processing circuitry via bus 210.
[0073] The computing device 200 may also include different forms of program and data storage, such as a disk 270, read-only memory (ROM) 230, or random access memory (RAM) 240, for storing various data files processed and / or transmitted by the computing device 200. The computing device 200 may also include program instructions executed by the processor 220 stored in ROM 230, RAM 240, and / or other types of non-transitory storage media. The methods and / or processes of this application can be implemented as program instructions. The computing device 200 also includes an I / O component 260 that supports input / output between the computing device 200 and other components therein. The computing device 200 may also receive programming and data via network communication.
[0074] For illustrative purposes only, only one processor is described in computing device 200. However, it should be noted that computing device 200 in this application may also include multiple processors, and therefore the operations performed by one processor as described in this application may also be performed jointly or individually by multiple processors. For example, the processor of computing device 200 may perform operations A and B. As another example, operations A and B may also be performed jointly or separately by two different processors in computing device 200 (e.g., the first processor performs operation A, the second processor performs operation B, or the first and second processors jointly perform operations A and B).
[0075] Figure 3 These are schematic diagrams of exemplary hardware and / or software components of an exemplary mobile device according to some embodiments of this application. In some embodiments, terminal device 130 may be implemented on mobile device 300. Figure 3As shown, the mobile device 300 may include a communication platform 310, a display 320, a graphics processing unit (GPU) 330, a central processing unit (CPU) 340, I / O 350, memory 360, a mobile operating system (OS) 370, and a 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 within the mobile device 300.
[0076] In some embodiments, the mobile operating system 370 (e.g., iOS) TM Android TM Windows Phone TM One or more applications 380 can be loaded from storage 390 into memory 360 for execution by CPU 340. Application 380 may include a browser or any other suitable mobile application for receiving and presenting information related to location or other information from processing device 122. User interaction with the information flow can be achieved through I / O 350 and provided to processing device 122 and / or other components of autonomous driving system 100 via network 150.
[0077] To implement the various modules, units, and functions described in this application, a computer hardware platform may be used as the hardware platform for one or more of the elements described herein. A computer with a user interface component may be used to implement a personal computer (PC) or any other type of workstation or terminal device. If properly programmed, the computer may also be used as a server.
[0078] Figure 4 This is a block diagram of an exemplary processing device according to some embodiments of this application. The processing device 122 may include a designation module 410, a first acquisition module 420, a first determination module 430, a second acquisition module 440, a second determination module 450, and a processing module 460.
[0079] The designation module 410 can be configured to designate at least two grids on a two-dimensional plane. In some embodiments, the at least two grids on the two-dimensional plane can be considered as a coordinate system or reference system that moves with an object (e.g., vehicle 110). In some embodiments, each of the at least two grids can correspond to a sequence number. For example, the at least two grids can be 256×256 grids with at least two sequence numbers 1, 2, 3, etc. In some embodiments, the shape of each of the at least two grids can include quadrilaterals, hexagons, irregular polygons, etc., or any combination thereof. In some embodiments, the size of the grids can be a default setting of the autonomous driving system 100 (e.g., an empirical value (e.g., 20 cm × 20 cm)) or can be adjustable under different conditions. In some embodiments, the designation module 410 can designate at least two grids based on longitude and latitude information according to the geohash algorithm. According to the geohash algorithm, each of the at least two grids corresponds to a string (also referred to as a "geohash value"). Further description of the at least two grids can be found elsewhere in this application (e.g., Figure 6 and its description).
[0080] The first acquisition module 420 can be configured to acquire first point cloud data corresponding to each of at least two grids at a first moment. In some embodiments, the first point cloud data may include point cloud data related to environmental information within a preset range of an object (e.g., vehicle 110). The environmental information within the preset range of the object may include road information (e.g., road boundaries, lane lines, sidewalks), height information (e.g., road height), static target information (e.g., information related to static buildings, information related to static obstacles), etc., or any combination thereof.
[0081] The first determining module 430 can be configured to determine a first hash value of the first point cloud data. The first determining module 430 can determine the first hash value of the first point cloud data based on a hash algorithm (also called a "hash function"). In some embodiments, the first determining module 430 can determine the first hash value of the first point cloud data based on at least one feature value of at least one feature of the physical point corresponding to the first point cloud data, according to the hash algorithm.
[0082] The second acquisition module 440 can be configured to acquire second point cloud data corresponding to each of at least two grids at a second time. In some embodiments, the first time may be a time preceding the second time. In some embodiments, similar to the first point cloud data, the second point cloud data may include point cloud data related to environmental information within a preset range of the object (e.g., vehicle 110).
[0083] The second determining module 450 can be configured to determine a second hash value of the second point cloud data. As described above, the second determining module 450 can determine the second hash value of the second point cloud data based on a hash algorithm.
[0084] The processing module 460 can be configured to match a second hash value of second point cloud data corresponding to each of at least two grids with at least two first hash values of first point cloud data corresponding to at least two grids at a first time step to determine whether there is first point cloud data captured at the first time step that is identical or substantially identical to second point cloud data corresponding to that grid. For example, the processing module 460 can determine at least two similarities between the second hash value and at least two first hash values and compare the at least two similarities with a similarity threshold.
[0085] In response to determining that one of at least two first hash values in the first point cloud data corresponding to at least two grids matches a second hash value, the processing module 460 may prevent further processing of the second point cloud data and retrieve previously processed results related to the second point cloud data from the cache (e.g., processing results of the first point cloud data whose first hash value matches the second hash value), which can improve the processing efficiency of the point cloud data.
[0086] In response to determining that no first hash value matches the second hash value, the processing module 460 can process the second point cloud data and store the processing result of the second point cloud data in a cache, which can be regarded as the "previous processing result" for the next moment.
[0087] The modules in processing device 122 can be connected or communicate with each other via wired or wireless connections. Wired connections can include metal cables, optical fibers, hybrid cables, or any combination thereof. Wireless connections can include local area networks (LANs), wide area networks (WANs), Bluetooth, Wi-Fi, near field communication (NFC), or any combination thereof. Two or more modules can be combined into one module, and any module can be split into two or more units. For example, the first acquisition module 420 and the second acquisition module 440 can be combined into a single module, which can acquire both first point cloud data at a first moment and second point cloud data at a second moment. As another example, the first determination module 430 and the second determination module 450 can be combined into a single module, which can determine both the first hash value of the first point cloud data and the second hash value of the second point cloud data. As yet another example, processing device 122 may include a storage module (not shown) for storing information and / or data related to autonomous driving (e.g., at least two grids, first point cloud data, first hash values corresponding to at least two grids, second point cloud data, second hash values corresponding to at least two grids, and processing results of the second point cloud data).
[0088] Figure 5 This is a flowchart illustrating an exemplary process for processing point cloud data according to some embodiments of this application. In some embodiments, process 500 can be implemented by a set of instructions (e.g., an application program) stored in ROM 230 or RAM 240. Processor 220 and / or Figure 4 The modules in the processor 220 can execute this set of instructions, and when the instructions are executed, the processor 220 and / or modules can be configured to execute process 500. The operation of the process shown below is for illustrative purposes only. In some embodiments, process 500 may be accomplished using one or more additional operations not described herein and / or not by one or more operations discussed herein. Additionally, as... Figure 5 The order of operations shown and described below is not restrictive.
[0089] In 510, the processing device 122 (e.g., designated module 410) (e.g., the processing circuitry of processor 220) can designate at least two grids on a two-dimensional plane.
[0090] The two-dimensional plane can correspond to a preset range (also called a preset geographic area) of an object (e.g., vehicle 110) within which point cloud data can be captured. As used herein, the preset range can be a default setting of the autonomous driving system 100, or it can be adjustable under different conditions. For example, the preset range can depend (or in part) on the scanning range of a sensor device (e.g., a lidar device).
[0091] In some embodiments, the two-dimensional plane may correspond to a map associated with a preset range. In some embodiments, the map may be a map presenting driving assistance information related to a geographic area, such as a representation of a road network, including roads, intersections, traffic signals, lane rules, etc. As mentioned above, the range of the geographic area may be the same as or larger than the preset range for capturing point cloud data. The shape of the geographic area may be a triangle, rectangle, square, hexagon, circle, etc. For example, the shape of the geographic area may be a rectangle with dimensions of M meters × N meters, where M and N can be positive numbers (e.g., 5, 10, 20, 50, 100, 500). In some embodiments, the map may be a three-dimensional (3D) map, a two-dimensional (2D) map, a four-dimensional (4D) map, etc.
[0092] In some embodiments, the map may be a high-precision map containing information with centimeter-level or millimeter-level accuracy. In some embodiments, the high-precision map may be generated online or offline. For example, it may be based on at least two detection units (e.g., mounted on a test vehicle for performing measurement journeys). Figure 1The detection units described herein capture data (e.g., point cloud data) and generate high-precision maps offline. As the test vehicle moves along the road, at least two detection units can generate point cloud data related to the surrounding environment of the test vehicle. Further, a processing device (e.g., processing device 122) can generate at least two high-precision maps corresponding to different geographical regions based on the point cloud data, and store the at least two high-precision maps in the storage device (e.g., storage device 140) of the autonomous driving system 100. Accordingly, processing device 122 can access the storage device and retrieve the corresponding high-precision map based on the estimated location of objects.
[0093] In some embodiments, the map may be a three-dimensional map, which can be represented in a three-dimensional Cartesian coordinate system including the X-axis, Y-axis, and Z-axis. In this case, the two-dimensional plane may be the XY plane corresponding to the geographic region of the three-dimensional map.
[0094] In some embodiments, at least two grids on a two-dimensional plane can be considered as coordinate systems or reference systems that move with an object (e.g., vehicle 110). In some embodiments, each of the at least two grids can correspond to a serial number. For example, the at least two grids can be 256×256 grids with at least two serial numbers 1, 2, 3, etc. In some embodiments, the shape of each of the at least two grids can include quadrilaterals, hexagons, irregular polygons, etc., or any combination thereof. In some embodiments, the size of the grids can be a default setting of the autonomous driving system 100 (e.g., an empirical value (e.g., 20 cm × 20 cm)) or can be adjustable under different conditions. In some embodiments, the processing device 122 can specify at least two grids based on longitude and latitude information according to the geohash algorithm. According to the geohash algorithm, each of the at least two grids corresponds to a string (also referred to as a "geohash value"). Further description of the at least two grids can be found elsewhere in this application (e.g., Figure 6 and its description).
[0095] In 520, for each of at least two grids, processing device 122 (e.g., first acquisition module 420) (e.g., interface circuitry of processor 220) can acquire first point cloud data corresponding to that grid at a first moment.
[0096] As used herein, point cloud data may include a set of data points associated with one or more targets within a predetermined range of an object (e.g., vehicle 110). One or more targets may include vehicles, pedestrians, buildings, obstacles, etc., or any combination thereof. The data points of the point cloud data may correspond to physical points or regions of targets in the space surrounding the estimated location of the object.
[0097] In some embodiments, such as in combination Figure 1 The sensor device (e.g., a lidar device) can emit laser pulses to scan the environment surrounding an object. The laser pulses can be reflected by physical points in the surrounding environment and returned to the sensor device. The sensor device can generate point cloud data representing the surrounding environment based on one or more features of the returned laser pulses. During point cloud data acquisition, the sensor device can rotate within a scanning angle range (e.g., 360 degrees, 180 degrees, 120 degrees) and scan the surrounding environment at a specific scanning frequency (e.g., 10 Hz, 15 Hz, 20 Hz).
[0098] In some embodiments, point cloud data may include at least one feature value of at least one feature of a physical point. Exemplary features of a physical point may include the location of the physical point (e.g., geographic location, relative location to a sensor device), the intensity of the physical point (e.g., the return intensity of a laser pulse emitted from the sensor device and reflected by the physical point), the classification of the physical point (e.g., type), the scanning direction associated with the physical point (e.g., the direction in which the scanning mirror of the sensor device is pointed when the corresponding data point is detected), and any combination thereof.
[0099] In some embodiments, point cloud data can be captured based on time periods (also referred to as “capture time intervals”) (e.g., 10 milliseconds, 100 milliseconds, 1 second, 2 seconds) when the object (e.g., vehicle 110) stops or moves along the road. As described above, at least two grids move with the object (e.g., vehicle 110), so, taking a specific grid as an example, the first point cloud data corresponding to that specific grid can be the point cloud data captured and projected into that specific grid at the first moment.
[0100] In some embodiments, the first point cloud data may include point cloud data related to environmental information within a preset range of an object (e.g., vehicle 110). The environmental information within the preset range of the object may include road information (e.g., road boundaries, lane lines, sidewalks), height information (e.g., road height), static target information (e.g., information related to static buildings, information related to static obstacles), and any combination thereof. For example, the first point cloud data may include point cloud data related to the road along which the object is moving at a first moment. As another example, the first point cloud data may include point cloud data related to static buildings or static obstacles located within the preset range of the object at a first moment.
[0101] In step 530, processing device 122 (e.g., first determining module 430) (e.g., processing circuitry of processor 220) can determine a first hash value of the first point cloud data. Processing device 122 can determine the first hash value of the first point cloud data based on a hash algorithm (also known as a "hash function").
[0102] As used herein, a hash algorithm can refer to a mathematical algorithm that can be used to map data of arbitrary size (e.g., point cloud data) to data of a fixed size. The value returned by a hash algorithm is called a hash value (also known as a "hash code," "digest," or "simple hash"), which can be a string of numbers and letters. In some embodiments, hash algorithms may include message digest (MD) algorithms (e.g., MD4, MD5), secure hash algorithms (SHA) (e.g., SHA-1, SHA-224, SHA-256, SHA-384, SHA-512), etc.
[0103] In some embodiments, the processing device 122 may determine a first hash value of the first point cloud data based on at least one feature value of at least one feature corresponding to a physical point of the first point cloud data, according to a hash algorithm.
[0104] In 540, for each of at least two grids, processing device 122 (e.g., second acquisition module 440) (e.g., interface circuitry of processor 220) can acquire second point cloud data corresponding to that grid at a second moment.
[0105] As described in conjunction with operation 520, point cloud data can be captured based on a time period when an object (e.g., vehicle 110) stops or moves along the road. Accordingly, the second point cloud data can be the point cloud data captured at a second time and projected onto the grid.
[0106] In some embodiments, similar to the first point cloud data, the second point cloud data may include point cloud data related to environmental information (e.g., vehicle 110) within a predetermined range of the object. For example, the second point cloud data may include point cloud data related to a road along which the object is moving at a second time. As another example, the second point cloud data may include point cloud data related to static buildings or static obstacles located within the predetermined range of the object at a second time.
[0107] In some embodiments, the first moment can be a moment preceding the second moment. For example, the first moment can be a moment preceding the second moment. Or, for another example, the first moment can be a moment preceding the second moment within a preset time range.
[0108] In step 550, processing device 122 (e.g., second determining module 450) (e.g., processing circuitry of processor 220) can determine a second hash value for the second point cloud data. As described in conjunction with operation 530, processing device 122 can determine the second hash value for the second point cloud data based on a hash algorithm.
[0109] In some cases, as described above, since the environmental information within the object's preset range is static and remains unchanged over time, the point cloud data captured at the second moment may be partially the same as the point cloud data captured at the first moment (which is a previous moment of the second moment). Taking a specific grid as an example, the second point cloud data captured at the second moment corresponding to that specific grid may be the same as or substantially the same as the first point cloud data captured at the first moment corresponding to that specific grid (if the object did not move from the first moment to the second moment), or the same as or substantially the same as the first point cloud data captured at the first moment corresponding to another grid (if the object moved forward from the first moment to the second moment). Therefore, for a specific grid at the second moment, if there exists first point cloud data captured at the first moment that is the same as or substantially the same as second point cloud data captured at the second moment corresponding to that specific grid, then the second point cloud data does not need to be processed, and the previously processed results related to the second point cloud data (e.g., the processing results of the first point cloud data) can be retrieved, thereby improving processing efficiency.
[0110] In some embodiments, to determine whether there is first point cloud data captured at a first moment that is identical or substantially identical to second point cloud data captured at a second moment corresponding to a specific grid, the processing device 122 may match a second hash value of the second point cloud data with at least two first hash values of the first point cloud data corresponding to at least two grids at the first moment. For example, the processing device 122 may determine at least two similarities between the second hash value and at least two first hash values, and compare the at least two similarities with a similarity threshold. The similarity threshold may be a default setting of the autonomous driving system 100, or it may be adjustable under different conditions.
[0111] In 560, in response to determining that one of the at least two first hash values corresponding to the first point cloud data of at least two grids matches the second hash value, the processing device 122 (e.g., processing module 460) (e.g., processing circuitry of processor 220) may prevent further processing of the second point cloud data.
[0112] For example, in response to determining that one of at least two similarities is above a similarity threshold, processing device 122 may determine that the corresponding first hash value matches the second hash value. Further, processing device 122 may prevent further processing of the second point cloud data and retrieve previously processed results related to the second point cloud data from a cache (e.g., processing results of the first point cloud data whose first hash value matches the second hash value), which can improve the processing efficiency of the point cloud data. As used herein, the cache may be a component in processing device 122 or storage device 140. In some embodiments, the cache may include hardware caches (e.g., central processing unit (CPU) caches, graphics processing unit (GPU) caches), software caches (e.g., disk caches, web caches), database caches, distributed caches, etc.
[0113] In some embodiments, at least two previously processed results associated with at least two previous time points can be stored in a cache, and each of the at least two previously processed results corresponds to a specific grid at a specific time point. In some cases, some processed results in the cache may no longer be needed over time. Therefore, the cache can be dynamically released according to a preset time interval (e.g., the point cloud data capture time interval, a user-defined time interval). Further description of the dynamic release of the cache can be found elsewhere in this application (e.g., Figure 8 (and its description). In some embodiments, at least two previously processed results may be stored in storage device 140, and accordingly, processing device 122 may retrieve the previously processed results from storage device 140.
[0114] In some embodiments, in response to determining that no first hash value matches a second hash value (e.g., at least two similarities are less than or equal to a similarity threshold), processing device 122 (e.g., processing module 460) (e.g., processing circuitry of processor 220) can process the second point cloud data. For example, processing device 122 can extract at least one feature from the second point cloud data (e.g., density of data points) and determine environmental parameters (e.g., road height) based on the at least one feature. Further, processing device 122 can store the processing result of the second point cloud data in a cache, which can be regarded as the "previous processing result" for the next time step.
[0115] It should be noted that the above is provided for illustrative purposes only and is not intended to limit the scope of this application. Various changes and modifications can be made by those skilled in the art based on the description in this application. However, such changes and modifications will not depart from the scope of this application.
[0116] For example, one or more other optional operations (e.g., storage operations) can be added elsewhere in process 500. In a storage operation, processing device 122 can store information and / or data related to autonomous driving (e.g., at least two grids, first point cloud data, a first hash value corresponding to at least two grids, second point cloud data, a second hash value corresponding to at least two grids, and the processing result of the second point cloud data) in a storage device (e.g., storage device 140) disclosed elsewhere in this application. As another example, operations 520 and 530 can be combined into a single operation, wherein processing device 122 can acquire the first point cloud data corresponding to a grid at a first moment and determine the first hash value of the first point cloud data. As yet another example, operations 540 and 550 can be combined into a single operation, wherein processing device 122 can acquire the second point cloud data corresponding to a grid at a second moment and determine the second hash value of the second point cloud data. As yet another example, processing device 122 can receive the first and second point cloud data from storage device 140 or terminal device 130 via network 150. As yet another example, processing device 122 can obtain at least two grids from storage device 140 via network 150.
[0117] Figure 6-A and Figure 6-B This is a schematic diagram of an exemplary grid on a two-dimensional plane according to some embodiments of this application. As described in conjunction with operation 510, the processing device 122 may specify at least two grids on a two-dimensional plane (e.g., 600) corresponding to a preset range of an object (e.g., vehicle 110).
[0118] like Figure 6-A As shown, at least two grids are square in shape. Figure 6-B As shown, at least two of the grids are hexagonal in shape. As described elsewhere in this application, the at least two grids can be considered as a coordinate system that moves with the vehicle 110, with its origin at the center of the vehicle 110. It should be noted that... Figure 6-A or Figure 6-B The at least two grids shown are provided for illustrative purposes and are not restrictive. The shapes of the at least two grids can be any other shapes, such as rectangles, rhombuses, stars, triangles, irregular polygons, etc. The shapes of the at least two grids can be the same as or different from each other. The size of the at least two grids and / or the number of at least two grids can be the default setting of the autonomous driving system 100, or can be adjustable under different conditions.
[0119] Figure 7 This is a schematic diagram illustrating an exemplary process for matching point cloud data corresponding to a grid captured at different times, according to some embodiments of this application. (As in conjunction with...) Figure 5The processing device 122 can specify at least two grids on a two-dimensional plane, and at least two grids can move together with the vehicle 110.
[0120] like Figure 7 As shown, vehicle 110 travels to position P0 at time T0, to position P1 at time T1, and to position P2 at time T2, where time T0 is the previous adjacent time of time T1, and time T1 is the previous adjacent time of time T2 (for simplicity, at least two grids of the three times are shown in different page areas; in reality, vehicle 110 travels almost in a straight line, and at least two grids of the three times partially overlap each other).
[0121] As described elsewhere in this application, when vehicle 110 travels to a specific location (e.g., P2) at a specific time (e.g., T2), for each of at least two grids, processing device 122 can acquire point cloud data corresponding to the grid (which may be referred to as "target point cloud data" (e.g., second point cloud data)) and determine the hash value of the point cloud data (which may be referred to as "target hash value" (e.g., second hash value)). Further, processing device 122 can match the target hash value with previous hash values of previous point cloud data captured at previous times (e.g., the first hash value of the first point cloud data captured at time T1, the hash value of the point cloud data captured at time T0). In response to determining that a previous hash value matches the target hash value, processing device 122 can prevent further processing of the target point cloud data corresponding to that grid and retrieve the previous processing result from a cache. In response to determining that no previous hash value matches the target hash value, processing device 122 can process the target point cloud data corresponding to that grid and store the corresponding processing result in a cache.
[0122] For example, for a grid in box 710, processing device 122 can determine that the hash value of the point cloud data corresponding to the grid in box 710' captured at time T1 and the hash value of the point cloud data corresponding to the grid in box 710" captured at time T0 match the target hash value of the target point cloud data captured at time T2. Further, processing device 122 can prevent further processing of the target point cloud data corresponding to the grid in box 710 captured at time T2 and retrieve the previous processing result from the cache (e.g., the processing result of the point cloud data corresponding to the grid in box 710" captured at time T0; that is, for a specific area within a preset range of vehicle 110, the corresponding point cloud data is processed only once, and the processing result can be retrieved in subsequent processing). For the grid in box 720, processing device 122 can determine that the hash value of the point cloud data corresponding to the grid in box 720' captured at time T1 matches the target hash value of the target point cloud data captured at time T2. Further, processing device 122 can prevent further processing of the target point cloud data corresponding to the grid in box 720 captured at time T2 and retrieve the previously processed result (e.g., the processing result of the point cloud data corresponding to the grid in box 720' captured at time T1) from the cache. Further, for the grid in box 730, processing device 122 can determine that no previously processed hash value matches the target hash value of the target point cloud data captured at time T2. Therefore, processing device 122 can process the target point cloud data corresponding to the grid in box 730 and store the corresponding processing result in the cache for further use.
[0123] Figure 8 This is a schematic diagram illustrating an exemplary dynamic release of a cache according to some embodiments of this application.
[0124] Such as combination Figure 7 The vehicle 110 travels to position P0 at time T0, to position P1 at time T1, and to position P2 at time T2, where time T0 is the previous adjacent time of time T1, and time T1 is the previous adjacent time of time T2. The processing results of the point cloud data captured at different times can be stored in a cache. As time progresses, some processing results in the cache may no longer be needed in subsequent processes. Therefore, to improve processing efficiency and save processing resources, the cache can be dynamically released according to a preset time interval.
[0125] like Figure 8As shown, at time T1, the processing results of the point cloud data corresponding to the grid in box 810 captured at time T0 may no longer be needed in subsequent processing, and these processing results can be released. At time T2, the processing results of the point cloud data corresponding to the grid in box 820 captured at time T0 (which corresponds to the point cloud data corresponding to the grid in box 820' captured at time T1) may no longer be needed in subsequent processing, and these processing results can be released. It can be seen that the cache can be dynamically released according to the point cloud data capture time interval. In some embodiments, the cache can be released according to a preset time interval (e.g., time T). x and time T y The time interval between them, where T x It is T y The buffer is released at a previous time (within the time interval T). y All related to T x The relevant processing results and their relationship with T x The processing results from previous moments are no longer needed.
[0126] The basic concepts have been described above. Obviously, for those skilled in the art who have read this application, the above disclosure is merely illustrative and does not constitute a limitation of this application. Although not explicitly stated herein, those skilled in the art may make various modifications, improvements, and corrections to this application. Such modifications, improvements, and corrections are suggested in this application, and therefore, such modifications, improvements, and corrections still fall within the spirit and scope of the exemplary embodiments of this application.
[0127] Furthermore, this application uses specific terms to describe its embodiments. For example, "an embodiment," "one embodiment," and / or "some embodiments" refer to a particular feature, structure, or characteristic related to at least one embodiment of this application. Therefore, it should be emphasized and noted that "an embodiment," "one embodiment," or "an alternative embodiment" mentioned twice or more in different locations in this specification do not necessarily refer to the same embodiment. In addition, certain features, structures, or characteristics in one or more embodiments of this application can be appropriately combined.
[0128] Furthermore, those skilled in the art will understand that aspects of this application can be described and illustrated through several patentable types or situations, including any new and useful combination of processes, machines, products, or substances, or any new and useful improvements thereof. Accordingly, aspects of this application can be executed entirely by hardware, entirely by software (including firmware, resident software, microcode, etc.), or by a combination of hardware and software. All of the above hardware or software can be referred to as a “unit,” “module,” or “system.” Furthermore, aspects of this application can take the form of a computer program product embodied in one or more computer-readable media, wherein computer-readable program code is contained therein.
[0129] Computer-readable signal media may contain a propagated data signal containing computer program code, for example, on baseband or as part of a carrier wave. Such propagated signals can take many forms, including electromagnetic, optical, and any suitable combination thereof. A computer-readable signal medium can be any computer-readable medium other than a computer-readable storage medium, which can be connected to an instruction execution system, apparatus, or device to enable communication, propagation, or transmission of a program for use. The program code located on the computer-readable signal medium can be propagated through any suitable medium, including radio, cable, fiber optic cable, RF, and any combination of the above.
[0130] The computer program code required for the operation of each part of this 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, Visual Basic, Fortran 2003, Perl, COBOL 2002, PHP, ABAP, dynamic programming languages such as Python, Ruby, and Groovy, or other programming languages. This program code can run entirely on the user's computer, or as a standalone software package on the user's computer, or partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter case, the remote computer can be connected to the user's computer through any network, such as a local area network (LAN) or 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).
[0131] Furthermore, unless expressly stated in the claims, the order of processing elements and sequences, the use of numbers and letters, or other names described in this application are not intended to limit the order of the processes and methods of this application. Although the foregoing disclosure has discussed some currently considered useful embodiments of the invention through various examples, it should be understood that such details are for illustrative purposes only, and the appended claims are not limited to the disclosed embodiments; rather, the claims are intended to cover all modifications and equivalent combinations that conform to the substance and scope of the embodiments of this application. For example, while the system components described above can be implemented using hardware devices, they can also be implemented solely through software solutions, such as installing the described system on existing servers or mobile devices.
[0132] Similarly, it should be noted that, in order to simplify the description of the present application and thus aid in the understanding of one or more embodiments of the invention, the foregoing description of the embodiments of the present application sometimes combines multiple features into a single embodiment, drawing, or description thereof. However, the method of the present application should not be construed as reflecting an intention that the claimed target substance to be scanned requires more features than expressly recited in each claim. In fact, the embodiments have fewer features than all the features of the single embodiments disclosed above.
Claims
1. A system for autonomous driving, characterized in that, include: Storage medium, storing a set of instructions; as well as A processor, communicatively coupled to the storage medium, executes the group instructions to: Specify at least two grids on a two-dimensional plane, which corresponds to a preset range of the vehicle; For each of the at least two grids, acquire first point cloud data corresponding to the grid at a first time, the point cloud data including a set of data points related to one or more targets within the preset range of the vehicle; acquire second point cloud data corresponding to the grid at a second time. For each of the at least two grids, determine a first hash value of the first point cloud data of that grid; Determine the second hash value of the second point cloud data of the grid; By determining whether there is a first hash value in the first point cloud data of the at least two grids that matches the second hash value of the second point cloud data, it is determined whether there is first point cloud data that is the same as or substantially the same as the second point cloud data in the first point cloud data of the at least two grids. In response to determining that there is no first point cloud data in the first point cloud data of the at least two grids that is the same as or substantially the same as the second point cloud data, the second point cloud data is processed; as well as In response to determining that there is first point cloud data in the first point cloud data of the at least two grids that is the same as or substantially the same as the second point cloud data, further processing of the second point cloud data is prevented and previous processing results related to the second point cloud data are retrieved from the cache, the previous processing results including the processing results of the first point cloud data whose first hash value matches the second hash value.
2. The system according to claim 1, characterized in that, To determine whether there exists a first hash value among the at least two first hash values of the first point cloud data of the at least two grids that matches the second hash value of the second point cloud data, the processor: Determine at least two similarities between the second hash value and the at least two first hash values; Based on the at least two similarities, determine whether the second hash value matches one of the at least two first hash values.
3. The system according to claim 2, characterized in that, In order to determine whether the second hash value matches one of the at least two first hash values based on the at least two similarities, the processor: In response to determining that one of the at least two similarities is higher than a similarity threshold; Determine that the second hash value matches one of the at least two first hash values; In response to determining that the at least two similarities are less than or equal to a similarity threshold; Determine that none of the at least two first hash values matches the second hash value.
4. The system according to any one of claims 1-3, characterized in that, The first moment is the moment preceding the second moment.
5. The system according to any one of claims 1-3, characterized in that, The processor further includes: The processing result of the second point cloud data is stored in the cache.
6. The system according to any one of claims 1-3, characterized in that, The cache is dynamically released according to a preset time interval.
7. The system according to any one of claims 1-3, characterized in that, The first point cloud data or the second point cloud data includes point cloud data related to environmental information within a preset range of the vehicle. The first point cloud data or the second point cloud data is obtained by a sensor device, including a lidar device.
8. A method implemented on a computing device, characterized in that, The method includes at least one processor, at least one storage medium, and a communication platform connected to a network. Specify at least two grids on a two-dimensional plane, which corresponds to a preset range of the vehicle; For each of the at least two grids, acquire first point cloud data corresponding to the grid at a first time, the point cloud data including a set of data points related to one or more targets within the preset range of the vehicle; acquire second point cloud data corresponding to the grid at a second time. For each of the at least two grids, determine a first hash value of the first point cloud data of that grid; Determine the second hash value of the second point cloud data of the grid; By determining whether there is a first hash value in the first point cloud data of the at least two grids that matches the second hash value of the second point cloud data, it is determined whether there is first point cloud data that is the same as or substantially the same as the second point cloud data in the first point cloud data of the at least two grids. In response to determining that no first point cloud data identical or substantially identical to the second point cloud data exists in the first point cloud data of the at least two grids, the second point cloud data is processed; and In response to determining that there is first point cloud data in the first point cloud data of the at least two grids that is the same as or substantially the same as the second point cloud data, further processing of the second point cloud data is prevented and previous processing results related to the second point cloud data are retrieved from the cache, the previous processing results including the processing results of the first point cloud data whose first hash value matches the second hash value.
9. A vehicle configured for autonomous driving, characterized in that, Includes planning components, configured as follows: Specify at least two grids on a two-dimensional plane, which corresponds to a preset range of the vehicle; For each of the at least two grids, acquire first point cloud data corresponding to the grid at a first time, the point cloud data including a set of data points related to one or more targets within the preset range of the vehicle; acquire second point cloud data corresponding to the grid at a second time. For each of the at least two grids, determine a first hash value of the first point cloud data of that grid; Determine the second hash value of the second point cloud data of the grid; By determining whether there is a first hash value in the first point cloud data of the at least two grids that matches the second hash value of the second point cloud data, it is determined whether there is first point cloud data that is the same as or substantially the same as the second point cloud data in the first point cloud data of the at least two grids. In response to determining that there is no first point cloud data in the first point cloud data of the at least two grids that is the same as or substantially the same as the second point cloud data, the second point cloud data is processed; as well as In response to determining that there is first point cloud data in the first point cloud data of the at least two grids that is the same as or substantially the same as the second point cloud data, further processing of the second point cloud data is prevented and previous processing results related to the second point cloud data are retrieved from the cache, the previous processing results including the processing results of the first point cloud data whose first hash value matches the second hash value.
Citation Information
Patent Citations
Systems and methods for automated driving
CN112041210A
