Point cloud data segmentation system
By designing a point cloud data segmentation system, using the coordinated work of switching devices and multiple processing devices, the problem of low point cloud data segmentation efficiency in autonomous driving vehicles is solved, and more efficient point cloud data segmentation and real-time operation capabilities are achieved.
Patent Information
- Application Number
- CN202411717518.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-11-27
- Publication Date
- 2025-06-27
- Estimated Expiration
- 2044-11-27
AI Technical Summary
The segmentation efficiency of large amounts of point cloud data collected by multiple lidars in existing autonomous vehicles is low, affecting real-time operation capabilities.
A point cloud data segmentation system is designed to achieve efficient segmentation of point cloud data through the collaborative work of switching devices, multiple processing devices and target storage space. Specific measures include connecting multiple processing devices to the switching device, deploying multiple service functions on each processing device, and interacting between processing devices through the switching device to realize the segmentation service of point cloud data.
The segmentation efficiency of point cloud data is improved, the real-time operation capability of autonomous driving vehicles is enhanced, and the problem of low point cloud data segmentation efficiency in the existing technology is solved.
Smart Images

Figure CN119228626B_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present application relate to the field of computers, and more particularly, to a point cloud data segmentation system. Background Art
[0002] Autonomous driving technology, as a widely concerned technology, can be divided into six levels from L0 to L5. From low to high, they are L0 (no automation), L1 (driver assistance), L2 (partial autonomous driving), L3 (conditional autonomous driving), L4 (highly autonomous driving), and L5 (fully autonomous driving). Currently, vehicles that can be mass-produced to meet the L1 / L2 level autonomous driving standards have been realized. The development in the field of autonomous driving has begun to involve the implementation of L4-level autonomous driving technology, and the implementation of L4-level autonomous driving technology poses relatively high requirements for the real-time operation ability of vehicles. However, currently, multiple lidar sensors are deployed on autonomous vehicles to achieve environmental perception and cooperative positioning of autonomous vehicles. Multiple lidar sensors will collect a very large amount of point cloud data in a short period of time. The ground segmentation system responsible for separating the "ground" part and the "non-ground" part from the original point cloud depends on the serial execution of its single processing device for the segmentation of point cloud data, and the segmentation efficiency of point cloud data is very low, which seriously affects the real-time operation ability of autonomous vehicles. Summary of the Invention
[0003] The embodiments of the present application provide a point cloud data segmentation system to at least solve the problem of relatively low segmentation efficiency of point cloud data in related technologies.
[0004] According to an embodiment of the present application, a point cloud data segmentation system is provided, including: a switching device, multiple processing devices, and a target storage space. The multiple processing devices are all connected to the switching device, and the multiple processing devices are all allowed to access the target storage space. The segmentation service of point cloud data includes multiple service functions, and one or more target service functions among the multiple service functions are deployed on each processing device; the multiple processing devices are configured to execute one or more target service functions deployed on each processing device according to the operation logic between the multiple service functions, and the switching device is used for the interaction between the processing devices to implement the segmentation service of point cloud data; a target processing device among the multiple processing devices is configured to store the target point cloud data to be transmitted to a reference processing device among the multiple processing devices in the target storage space; notify the reference processing device to obtain the point cloud data from the target storage space through the switching device; the reference processing device is configured to respond to the notification of the target processing device and obtain the target point cloud data from the target storage space through the switching device.
[0005] As an alternative implementation, the storage space on the target processing device includes a first storage area. The target storage space includes the first storage area. The reference processing device stores a first mapping relationship between the first physical address space of the first storage area and the second physical address space in the reference processing device, and the switching device also stores the first mapping relationship. The target processing device is configured to store the target point cloud data into the first physical address space; notify the reference processing device through the switching device to obtain the point cloud data from the first physical address space. The reference processing device is configured to use the first mapping relationship to convert the first physical address space into the second physical address space, and obtain the target point cloud data from the second physical address space through the switching device.
[0006] As an alternative implementation, the reference processing device is further configured to store the reference point cloud data to be transmitted to the target processing device into the second physical address space through the switching device; use the first mapping relationship to convert the second physical address space into the first physical address space; notify the target processing device through the switching device to obtain the point cloud data from the first physical address space. The target processing device is configured to, in response to the notification of the reference processing device, obtain the reference point cloud data from the first physical address space.
[0007] As an alternative implementation, a first register is deployed in the switching device. The target processing device is configured to divide a first storage area from the storage space; write the first physical address space of the first storage area into the first register. The reference processing device is configured to read the first physical address space from the first register; establish the first mapping relationship; transmit the first mapping relationship to the switching device.
[0008] As an alternative implementation, the storage space provided by the switching device includes a second storage area. The target storage space includes the second storage area. The target processing device stores a second mapping relationship between the third physical address space of the second storage area and the fourth physical address space in the target processing device, and the reference processing device stores a third mapping relationship between the third physical address space and the fifth physical address space in the reference processing device. The switching device also stores the second mapping relationship and the third mapping relationship. The target processing device is configured to store the target point cloud data into the fourth physical address space through the switching device; use the second mapping relationship to convert the fourth physical address space into the third physical address space; notify the reference processing device through the switching device to obtain the point cloud data from the third physical address space. The reference processing device is configured to use the third mapping relationship to convert the third physical address space into the fifth physical address space, and obtain the target point cloud data from the fifth physical address space through the switching device.
[0009] As an alternative implementation, a second register is deployed in the switching device; the switching device is configured to divide a second storage area from the storage space; write the third physical address space of the second storage area into the second register; the target processing device is configured to read the third physical address space from the second register; establish a second mapping relationship; and transmit the second mapping relationship to the switching device; the reference processing device is configured to read the third physical address space from the second register; establish a third mapping relationship; and transmit the third mapping relationship to the switching device.
[0010] As an alternative implementation, the switching device includes a message switch and a data switch, and multiple processing devices are all connected to the message switch and the data switch; the target processing device is configured to send a notification message to the reference processing device through the message switch, where the notification message is used to notify the reference processing device to obtain point cloud data from the target storage space; the reference processing device is configured to respond to the notification message received from the message switch and obtain target point cloud data from the target storage space through the data switch.
[0011] As an alternative implementation, a first middleware is deployed in the target processing device, and a second middleware is deployed in the reference processing device; the first middleware is configured to, after the target point cloud data is stored in the target storage space, publish the notification message as a target topic to the second middleware through the message switch; the second middleware is configured to receive the target topic through the message switch; and in the case where the target topic is a topic subscribed by the second middleware, read the notification message from the target topic.
[0012] As an alternative implementation, a first converter is deployed in the target processing device, and a second converter is deployed in the reference processing device; the first converter is configured to serialize the target point cloud data to obtain a data sequence, and store the data sequence in the target storage space; the second converter is configured to obtain the data sequence from the target storage space through the data switch, and deserialize the data sequence to obtain the target point cloud data.
[0013] As an alternative implementation, the multiple processing devices include a first device, a second device, and a third device, and the first device is connected to the acquisition device of the point cloud data; the first device is configured to receive the first point cloud data acquired by the acquisition device; the second device is configured to add segmentation information to the first point cloud data according to the data information of the first point cloud data to obtain second point cloud data, where the data information is used to indicate the coordinates of the first point cloud data in the segmentation system, and the coordinates include a first coordinate value, a second coordinate value, and a third coordinate value; the third device is configured to divide the second point cloud data into multiple target sets according to the segmentation information and output the multiple target sets.
[0014] As an alternative implementation, the second device includes a plurality of processors, all of the plurality of processors being connected to the switching device; the first device is further configured to divide the first point cloud data into a plurality of data sets, wherein each of the plurality of data sets corresponds to one of the plurality of processors; each of the plurality of processors is configured to add segmentation information to the first point cloud data in the data set corresponding to the processor to obtain second point cloud data.
[0015] As an alternative implementation, the plurality of processors include a first processor and a second processor, and the first device includes a fusion module and a grouping module; the fusion module is configured to fuse a plurality of received reference data sets into a target data set, wherein the plurality of reference data sets are used to store the first point cloud data from different data acquisition devices; the grouping module is configured to split the target data set into a forward data set and a backward data set according to data information, wherein the first coordinate value of each first point cloud data in the forward data set is greater than or equal to a coordinate threshold, and the first coordinate value of each first point cloud data in the backward data set is less than the coordinate threshold, and the plurality of data sets include the forward data set and the backward data set; the forward data set is transmitted to the first processor, and the backward data set is transmitted to the second processor.
[0016] As an alternative implementation, both the first processor and the second processor include a splitting module, a sorting module, and a classification module; the splitting module is configured to calculate the axial angle of the first point cloud data according to the first coordinate value and the second coordinate value of the first point cloud data in the forward data set or the backward data set, and split the forward data set or the backward data set into a target number of first subsets according to the axial angle, wherein the target number is determined according to the data processing capability of the processor where the splitting module is located; the sorting module is configured to calculate the radial distance of the first point cloud data in the first subset according to the first coordinate value and the second coordinate value through a target number of first threads; the classification module is configured to calculate the slope value of the first point cloud data in the first subset according to the radial distance and the third coordinate value of the first point cloud data through a target number of second threads, and determine the segmentation information according to the magnitude relationship between the slope value and the slope threshold to obtain a second subset of the second point cloud data with a target number; and fuse the second subsets with the target number into a forward result set or a backward result set.
[0017] As an alternative implementation, the segmentation module includes a segmentation unit and a merging unit; the segmentation unit is configured to segment the forward data set or the backward data set into a target number of third subsets according to the storage order of the first point cloud data in the forward data set or the backward data set, and calculate the axial angles of the first point cloud data in the third subsets through a target number of third threads; the merging unit is configured to segment the forward data set or the backward data set into a target number of first subsets according to the axial angles and a target number of axial angle ranges.
[0018] As an alternative implementation, the third device includes a merging module and an output module; the merging module is configured to merge the received forward result set and backward result set to obtain a result data set, and split the result data set into a plurality of target sets according to the segmentation information; the output module is configured to output the plurality of target sets.
[0019] Through this application, since a switching device, a plurality of processing devices, and a target storage space are deployed in the point cloud data segmentation system, the plurality of processing devices are all connected to the switching device, and the plurality of processing devices are all allowed to access the target storage space. The multiple service functions included in the point cloud data segmentation service are deployed to each processing device. The multiple processing devices will execute one or more target service functions deployed on each processing device according to the operation logic between the service functions, and the switching device will perform the interaction between the processing devices to implement the point cloud data segmentation service; specifically, the target processing service among the multiple processing devices will store the target point cloud data to be transmitted to the reference processing device among the multiple processing devices in the target storage space, and will also notify the reference processing device to obtain the point cloud data from the target storage space through the switching device; the reference processing device will respond to the notification of the target processing device and obtain the target point cloud data from the target storage space through the switching device. That is, on the one hand, the system given by this application will enable multiple processing devices to respectively undertake different service functions in the segmentation service, increasing the computing power and improving the segmentation efficiency of the point cloud data. On the other hand, the multiple processing devices still perform data interaction and transmission through the switching device and the target storage space, ensuring the data transmission efficiency between the multiple processing devices and avoiding the adverse impact on the segmentation efficiency of the point cloud data caused by data transmission between devices. Therefore, the problem of low segmentation efficiency of point cloud data in the related art can be solved, and the effect of improving the segmentation efficiency of point cloud data can be achieved. BRIEF DESCRIPTION OF THE DRAWINGS
[0020] Figure 1 is the structure of the point cloud data segmentation system according to an embodiment of the present application Figure 1 ;
[0021] Figure 2 is a schematic diagram of the data transmission method of the point cloud data segmentation system according to an embodiment of the present applicationFigure 1 ;
[0022] Figure 3 It is a schematic diagram of a method for connecting links between processing devices according to an embodiment of the present application;
[0023] Figure 4 It is a schematic diagram of the data transmission method of the point cloud data segmentation system according to an embodiment of the present application Figure 2 ;
[0024] Figure 5 It is the structure of the point cloud data segmentation system according to an embodiment of the present application Figure 2 ;
[0025] Figure 6 It is a schematic diagram of the implementation of the transmission and scheduling of point cloud data according to an embodiment of the present application;
[0026] Figure 7 It is a schematic diagram of a coordinate system of a point cloud data according to an embodiment of the present application;
[0027] Figure 8 It is the structure of the point cloud data segmentation system according to an embodiment of the present application Figure 3 。 Detailed implementation manners
[0028] In the following, embodiments of the present application will be described in detail with reference to the drawings and in conjunction with the embodiments.
[0029] It should be noted that the terms "first", "second", etc. in the description and claims of the present application and the above-mentioned drawings are used to distinguish similar objects, and do not necessarily need to describe a specific order or sequence.
[0030] According to an embodiment of the present application, a point cloud data segmentation system is provided, Figure 1 It is the structure of the point cloud data segmentation system according to an embodiment of the present application Figure 1 ,as Figure 1 shown, the point cloud data segmentation system includes: a switching device, a plurality of processing devices, and a target storage space. The plurality of processing devices are all connected to the switching device, and the plurality of processing devices are all allowed to access the target storage space. The point cloud data segmentation service includes a plurality of service functions, and one or more target service functions among the plurality of service functions are deployed on each processing device;
[0031] The plurality of processing devices are configured to execute one or more target service functions deployed on each processing device according to the operation logic between the plurality of service functions, and the switching device performs the interaction between the processing devices to implement the point cloud data segmentation service;
[0032] A target processing device among multiple processing devices, configured to store target point cloud data to be transmitted to a reference processing device among the multiple processing devices into a target storage space; and notify the reference processing device through a switching device to obtain the point cloud data from the target storage space.
[0033] The reference processing device is configured to, in response to the notification of the target processing device, obtain the target point cloud data from the target storage space through the switching device.
[0034] Through the present application, since a switching device, multiple processing devices, and a target storage space are deployed in the point cloud data segmentation system, the multiple processing devices are all connected to the switching device, and the multiple processing devices are all allowed to access the target storage space. Multiple service functions included in the point cloud data segmentation service are deployed to each processing device. The multiple processing devices will execute one or more target service functions deployed on each processing device according to the operation logic between the service functions, and the switching device is used for the interaction between the processing devices to implement the point cloud data segmentation service. Specifically, the target processing service among the multiple processing devices will store the target point cloud data to be transmitted to the reference processing device among the multiple processing devices into the target storage space, and will also notify the reference processing device through the switching device to obtain the point cloud data from the target storage space. The reference processing device will, in response to the notification of the target processing device, obtain the target point cloud data from the target storage space through the switching device. That is, on the one hand, the system provided by the present application will assign different service functions in the segmentation service to the multiple processing devices respectively, increasing the computing power and improving the segmentation efficiency of the point cloud data. On the other hand, the multiple processing devices still perform data interaction and transmission through the switching device and the target storage space, ensuring the data transmission efficiency between the multiple processing devices and avoiding the adverse impact on the segmentation efficiency of the point cloud data caused by data transmission between devices. Therefore, the problem of low point cloud data segmentation efficiency in the related art can be solved, and the effect of improving the point cloud data segmentation efficiency can be achieved.
[0035] Optionally, in the embodiments of the present application, the switching device may be, but is not limited to, a switching device corresponding to a protocol that supports both data transmission and communication. Protocols that support both data transmission and communication include, but are not limited to, the HTTP protocol (Hypertext Transfer Protocol), the TCP / IP protocol (Transmission Control Protocol / Internet Protocol), and so on. The switching device may also be, but is not limited to, a combination of a switching device that supports a data transmission protocol and a switching device that supports communication. For example, it may be a combination of a PCIe (Peripheral Component Interconnect Express) switch and an Ethernet switch. Data interaction between multiple processing devices is achieved through the PCIe switch, and communication between multiple processing devices, that is, scheduling between multiple processing devices, is achieved through the Ethernet switch.
[0036] Optionally, in the embodiments of the present application, the processing device may be, but is not limited to, a device or equipment with data processing capabilities. For example, it may be an autonomous driving processor and so on.
[0037] Optionally, in the embodiments of the present application, the target storage space may be, but is not limited to, the storage space on the processing device, or the storage space on the switching device, or the storage space of an external storage device connected to the switching device, and so on.
[0038] Optionally, in the embodiments of the present application, the target storage space may include, but is not limited to, multiple parts. Different parts are allowed to be accessed by different at least two processing devices, or the target storage space only includes one part, and multiple processing devices access the target storage space in a certain logical order.
[0039] Optionally, in the embodiments of the present application, the multiple service functions included in the point cloud data segmentation service may be divided into multiple service functions according to the processing capabilities of multiple processing devices, and the service functions corresponding to the processing capabilities of the processing devices are assigned to the corresponding processing devices for processing, so as to make full use of the processing capabilities of each processing device in the system.
[0040] Optionally, in the embodiments of the present application, it includes, but is not limited to, connecting a collection device of point cloud data to a group of processing devices among multiple processing devices respectively to obtain the point cloud data to be segmented, and then connecting another processing device to the device that requires the point cloud data after segmentation. The processing device realizes the output of the segmented point cloud data, and the remaining processing devices in the point cloud data segmentation system perform the specific segmentation of the point cloud data; after obtaining the point cloud data, the processing device stores the point cloud data in the target storage space for subsequent processing devices to access. The result data generated after performing the segmentation operation of the point cloud data is also stored in the target storage space. The processing device responsible for outputting the final data obtains the final result data from the target storage space for output, and finally realizes the segmentation service of the point cloud data.
[0041] Optionally, in the embodiments of the present application, it can, but is not limited to, schedule different processing devices to execute their corresponding service functions at different stages according to the operation logic between multiple service functions. The above scheduling operation can be, but is not limited to, implemented by the execution device in the previous stage notifying the execution device in the next stage. It can also be that there is a main processing device among multiple processing devices, and the main processing device completes the scheduling operation. That is, after other processing devices execute their corresponding service functions, they notify the main processing device. After receiving the notification, the main processing device refers to the operation logic between multiple service functions and the deployment situation of multiple service functions on multiple processing devices, and notifies the next processing device to obtain the point cloud data and execute the corresponding service function.
[0042] As an optional implementation manner, the storage space on the target processing device includes a first storage area. The target storage space includes a first storage area. The reference processing device stores the first mapping relationship between the first physical address space of the first storage area and the second physical address space in the reference processing device, and the first mapping relationship is also stored on the switching device; the target processing device is used to store the target point cloud data in the first physical address space; notify the reference processing device to obtain the point cloud data from the first physical address space through the switching device; the reference processing device is used to convert the first physical address space into the second physical address space using the first mapping relationship, and obtain the target point cloud data from the second physical address space through the switching device.
[0043] Optionally, in the embodiments of the present application, Figure 2 is a schematic diagram of the data transmission method of the point cloud data segmentation system according to the embodiments of the present application Figure 1 , such as Figure 2As shown, the first storage area in the target storage space may but is not limited to being located on the target processing device. Then, the target processing device can directly learn the first physical address space of the first storage area and directly store the target point cloud data into the first physical address space. After that, it notifies the reference device through the switching device to obtain the point cloud data from the first physical address space. After receiving the notification, the reference device uses the first mapping relationship between the first physical address space stored in itself and the second physical address space in the reference processing device to convert the unusable first physical address into the second physical address space that the reference processing device can use, and obtains the point cloud data using the second physical address space. After learning the second physical address space, the switching device uses the first mapping relationship stored in itself to help the reference physical device obtain the target point cloud data from the first physical address space of the target processing device.
[0044] Optionally, in the embodiments of the present application, the target processing device includes but is not limited to sending the first data volume of the target point cloud data and the first offset of the physical address in the first physical address space used by the target processing device from the start address of the first physical address space to the reference device. The reference device can obtain the target point cloud data using the second physical address space according to the first offset and the first data volume.
[0045] Through the above content, the first storage area in the target storage space is in the storage space of the target processing device. The target processing device can directly use the first physical address space of the first storage area to store the target point cloud data. The reference processing device can indirectly obtain the data in the first physical address space of the target processing device by directly accessing the second physical address space on the reference device according to the first mapping relationship without the intervention of the target processing device. Both devices achieve data transmission through physical address access, ensuring the transmission efficiency of point cloud data between multiple processing devices.
[0046] As an optional implementation manner, the reference processing device is further configured to store the reference point cloud data to be transmitted to the target processing device into the second physical address space through the switching device; convert the second physical address space into the first physical address space using the first mapping relationship; notify the target processing device through the switching device to obtain the point cloud data from the first physical address space; and the target processing device is configured to respond to the notification of the reference processing device and obtain the reference point cloud data from the first physical address space.
[0047] Optionally, in the embodiments of the present application, when the target storage space is in the storage space of the target processing device, the reference processing device can store the reference point cloud data with the help of its own second physical address space and the switching device. After learning the second physical address space, the switching device uses the first mapping relationship stored in itself to help the reference processing device store the reference point cloud data onto the first physical address space of the target processing device. Then, the reference processing device will convert the second physical address space into the first physical address space through the first mapping relationship stored on the reference processing device, and then can notify the target processing device to obtain the reference point cloud data from its own first physical address space through the switching device, and the target processing device can directly obtain the reference point cloud data according to its own first physical address space.
[0048] Optionally, in the embodiments of the present application, the reference processing device includes but is not limited to sending the second data volume of the reference point cloud data and the second offset of the physical address in the second physical address space used by the reference processing device from the start address of the second physical address space to the target device. The target device can find the reference point cloud data from the first physical address space according to the second offset and the second data volume.
[0049] Optionally, in the embodiments of the present application, the way for the target processing device to obtain the reference point cloud data or the way for the reference processing device to obtain the target point cloud data can be but is not limited to deleting all data in the first physical address space after reading. In this case, after a point cloud data is transferred from one processing device to another processing device, no data will be stored in the first storage area. When the point cloud data is transferred next time, it can be directly written starting from the start address of the first physical address space or the start address of the second physical address space. After the point cloud data is written, it is only necessary to notify the processing device waiting to receive the point cloud data that the point cloud data is successfully written. The processing device responsible for receiving can directly obtain the point cloud data to be received according to the start address and the space range of the second physical address space or the start address and the space range of the first physical address space.
[0050] Through the above content, the first storage area in the target storage space is in the storage space of the target processing device. The reference processing device can indirectly store the reference point cloud data to be transmitted to the target processing device on the reference device into the first physical address space of the target processing device by directly accessing the second physical address space on the reference device according to the first mapping relationship without the intervention of the target processing device. The target processing device can directly obtain the reference point cloud data using its own first physical address space. Both the reference processing device and the target processing device can achieve data transmission through physical address access, improving the transmission efficiency of point cloud data between multiple processing devices, and thus improving the segmentation efficiency of point cloud data.
[0051] As an optional implementation manner, a first register is deployed in the switching device; the target processing device is configured to divide a first storage area from the storage space; write the first physical address space of the first storage area into the first register; the reference processing device is configured to read the first physical address space from the first register; establish a first mapping relationship; and transmit the first mapping relationship to the switching device.
[0052] Optionally, in the embodiments of the present application, including but not limited to, after receiving the first physical address space, the switching device converts the first physical address space into a virtual address space (that is, the switching device stores a fourth mapping relationship between the first physical address space and the virtual address space). The reference processing device obtains the virtual address space from the switching device and establishes a fifth mapping relationship between the virtual address space and the second physical address space on the reference processing device. Then, the reference processing device and the target processing device can complete the transmission of point cloud data between multiple processing devices through the switching device in a similar manner using the fourth mapping relationship and the fifth mapping relationship.
[0053] Optionally, in the embodiments of the present application, the first register includes but is not limited to a register on the switching device for defining the base address of the device in the system space, such as a PCIE BAR (Peripheral Component Interconnect Express Base Address Register), etc.
[0054] Optionally, in the embodiments of the present application, the target processing device includes, but is not limited to, restarting the target processing device and partitioning a first storage area from the storage space when receiving a shared memory request sent by the reference processing device, and providing the first physical address space of the first storage area to the reference processing device through the first register of the switching device, or the target processing device is set to partition a first storage area from the storage space at startup and write the first physical address space of the first storage area into the first register of the switching device, so that the reference processing device can obtain the first physical address space from the first register.
[0055] Optionally, in the embodiments of the present application, the reference processing device includes, but is not limited to, creating a second physical address space on the reference processing device after reading the first physical address space from the first register, establishing a first mapping relationship between the first physical address space and the second physical address space, and transmitting the first mapping relationship to the switching device.
[0056] Optionally, in the embodiments of the present application, Figure 3 is a schematic diagram of a link connection method between processing devices according to an embodiment of the present application. As Figure 3 shown, it includes, but is not limited to, setting the target processing device to RP (Rootpoint mode, root node mode) and setting the reference processing device to EP (Endpoint mode, endpoint mode). Secure Shell (SSH) remote connection tools are arranged on both the target processing device and the reference processing device to establish passwordless access between the devices. For the target processing device and the reference processing device that need to communicate, the physical address mapping of the EP end (i.e., the reference processing device) and the RP end (i.e., the target processing device) is configured through the driver. It maps the physical address to the user space address, that is, directly uses the physical address of the target storage space in the RP at the RP end. After obtaining the address of the RP end through the PCIE BAR at the EP end, the address of the RP end cannot be directly utilized. It is necessary to establish a mapping between the address of the RP end and the physical address of the EP (i.e., the above-mentioned first mapping relationship) so that the EP can also directly use the physical address of the EP to store or read data, that is, both the RP end and the EP end can perform data reading and writing according to the physical address.
[0057] Through the above content, with the cooperation of the first register on the switching device, the reference processing device establishes a first mapping relationship between the first physical address space on the target processing device and the second physical address space on the reference processing device, providing a basis for the reference device to store or read point cloud data using the physical address, improving the transmission efficiency of the point cloud data to a certain extent, and further improving the segmentation efficiency of the point cloud data by the point cloud data segmentation system.
[0058] As an alternative implementation, the storage space provided by the switching device includes a second storage area. The target storage space includes the second storage area. The target processing device stores a second mapping relationship between the third physical address space of the second storage area and the fourth physical address space in the target processing device. The reference processing device stores a third mapping relationship between the third physical address space and the fifth physical address space in the reference processing device. The second mapping relationship and the third mapping relationship are also stored on the switching device. The target processing device is configured to store the target point cloud data in the fourth physical address space through the switching device; convert the fourth physical address space into the third physical address space using the second mapping relationship; and notify the reference processing device through the switching device to obtain the point cloud data from the third physical address space. The reference processing device is configured to convert the third physical address space into the fifth physical address space using the third mapping relationship and obtain the target point cloud data from the fifth physical address space through the switching device.
[0059] Optionally, in the embodiments of the present application, the storage space provided by the switching device includes, but is not limited to, the storage space inside the switching device or the storage space in a storage device connected to the switching device, etc.
[0060] Optionally, in the embodiments of the present application, Figure 4 is a schematic diagram of the data transmission method of the point cloud data segmentation system according to the embodiments of the present application Figure 2 , such as Figure 4 shown, the second storage area in the target storage space may, but is not limited to, be provided by the switching device. The target processing device uses its own fourth physical address space and the second mapping relationship to store or obtain point cloud data using the second storage area. The reference processing device uses its own fifth physical address space and the third mapping relationship to store or obtain point cloud data using the second storage area.
[0061] Optionally, including but not limited to, in the case where the storage spaces of the target processing device and the reference processing device are both insufficient, a method of creating a second storage area in the storage space of the switching device is adopted to realize the transmission of point cloud data between the target processing device and the reference processing device.
[0062] Through the above content, the target processing device can directly store data in the target storage space using its own fourth physical address space, and the reference processing device can directly obtain data from the target storage space using its own fifth physical address space, ensuring the efficiency of data transmission between processing devices and, to a certain extent, ensuring the segmentation efficiency of the system for point cloud data.
[0063] As an alternative implementation, a second register is deployed in the switching device; the switching device is configured to divide a second storage area from the storage space; write the third physical address space of the second storage area into the second register; the target processing device is configured to read the third physical address space from the second register; establish a second mapping relationship; transmit the second mapping relationship to the switching device; the reference processing device is configured to read the third physical address space from the second register; establish a third mapping relationship; transmit the third mapping relationship to the switching device.
[0064] Optionally, in the embodiments of the present application, the target storage space division request may be sent to the switching device by, but not limited to, the target processing device or the reference processing device, and the switching device divides a second storage area from the storage space after receiving the request.
[0065] Optionally, in the embodiments of the present application, it includes, but is not limited to, sending a partitioning request from a reference processing device to a target processing device, where the partitioning request is used to request the target processing device to partition a target storage space with a target capacity size from the storage space of the target processing device; when the target processing device receives the partitioning request, the target processing device calculates the remaining capacity of the free storage space in the target processing device according to the occupancy of the storage space in the target processing device; when the remaining capacity is greater than the target capacity size, the target processing device restarts itself, partitions a target storage space with a target capacity size from the storage space of the target processing device during the restart process, and returns the space information of the target storage space to the reference processing device through a switching device, where the space information is used to indicate the physical address space of the partitioned target storage space; when the remaining capacity is less than or equal to the target capacity size, the target processing device forwards the received partitioning request to the switching device, and after receiving the partitioning request, the switching device calculates the remaining capacity of the free storage space in the switching device according to the occupancy of the storage space in the switching device; when the remaining capacity is greater than the target capacity size, the switching device creates a target storage space in its own storage space and returns the space information of the target storage space to the target processing device and the reference processing device; when the remaining capacity is less than or equal to the target capacity size, the switching device returns a partitioning failure message to the reference processing device, where the partitioning failure message is used to indicate that the partitioning request of the reference device cannot be realized, and after receiving the partitioning failure message, the reference device updates the partitioning request to obtain a new partitioning request and sends the new partitioning request to the target processing device, and the capacity size of the target storage space required to be partitioned by the new partitioning request is less than the target capacity size. Through the above content, it is possible to preferentially partition the shared target storage space on the processing device, and it is also possible to partition the target storage space from the switching device when the space on the processing device is insufficient, making full use of the storage space in the segmentation system for the transmission of point cloud data, ensuring the transmission efficiency of the point cloud data, and to a certain extent improving the segmentation efficiency of the point cloud data.
[0066] Through the above content, the switching device provides the target storage space, and also stores the second mapping relationship and the third mapping relationship. The target processing device establishes the second mapping relationship, and the reference processing device establishes the third mapping relationship. These provide a basis for the target processing device to store or read point cloud data using its own fourth physical address space and for the reference processing device to store or read point cloud data using its own fifth physical address space, and to a certain extent improve the transmission efficiency of point cloud data among multiple processing devices.
[0067] As an alternative implementation, the switching device includes a message switch and a data switch, and multiple processing devices are connected to both the message switch and the data switch; a target processing device for sending a notification message to a reference processing device through the message switch, where the notification message is used to notify the reference processing device to obtain point cloud data from a target storage space; and a reference processing device for responding to the notification message received from the message switch and obtaining target point cloud data from the target storage space through the data switch.
[0068] Optionally, in the embodiments of the present application, Figure 5 is the structure of the point cloud data segmentation system according to the embodiments of the present application Figure 2 , as Figure 5 shown, the switching device includes a message switch and a data switch. Multiple processing devices are connected to both the message switch and the data switch. The message switch is used for scheduling the segmentation stage among multiple processing devices, i.e., message passing, and the data switch is used for transmitting point cloud data among multiple processing devices. The message switch includes, but is not limited to, a switch that supports a communication protocol, such as an Ethernet switch, etc. The data switch includes, but is not limited to, a switch that supports a data transmission protocol, such as a PCIE switch, etc.
[0069] As an alternative implementation, a first middleware is deployed in the target processing device, and a second middleware is deployed in the reference processing device; the first middleware is used for, after the target point cloud data is stored in the target storage space, publishing the notification message as a target topic to the second middleware through the message switch; the second middleware is used for receiving the target topic through the message switch; and in the case where the target topic is a topic subscribed by the second middleware, reading the notification message from the target topic.
[0070] Optionally, in the embodiments of the present application, the first middleware and the second middleware can be used for, but are not limited to, both communication scheduling between processing devices and communication scheduling within a processing device. For example, in the target processing device, there are processing node 1, processing node 2, and processing node 3. A processing node, as a publishing node, can encapsulate a notification message that needs to be transmitted to processing node 2 into a topic, send the topic to the first middleware, and the first middleware publishes the topic to processing node 2 and processing node 3. Processing node 2, as a subscribing node that has subscribed to the topic, obtains the content of the topic, and processing node 3 does not obtain the content of the topic because it has not subscribed to the topic, thereby realizing communication scheduling with the help of the middleware.
[0071] Through the above content, with the help of middleware and message exchangers, communication scheduling between multiple processors is achieved, enabling the target processing device to promptly notify the reference processing device to obtain point cloud data after the target point cloud data is stored, realizing the timely transmission of point cloud data, and ensuring to a certain extent the segmentation efficiency of the point cloud segmentation system for point cloud data.
[0072] As an alternative implementation, a first converter is deployed in the target processing device, and a second converter is deployed in the reference processing device; the first converter is used to serialize the target point cloud data to obtain a data sequence and store the data sequence in the target storage space; the second converter is used to obtain the data sequence from the target storage space through a data exchanger and deserialize the data sequence to obtain the target point cloud data.
[0073] Optionally, in the embodiments of the present application, serializing the target point cloud data includes, but is not limited to, calling the serialize_message() serialization method to convert the target point cloud data into the vector<unit_8> type; after obtaining the data sequence, deserializing the data sequence includes, but is not limited to, calling the deserialize_message() deserialization method to restore the binary format to obtain the target point cloud data.
[0074] Through the above content, serializing and converting the target point cloud data before storage can ensure that the access method of directly accessing the target storage space through the physical address can normally obtain the data, and the data cannot be obtained due to overly complex data formats.
[0075] As an alternative implementation Figure 6 is a schematic diagram of the implementation of the transmission and scheduling of point cloud data according to the embodiments of the present application. As Figure 6 shown, for two processing devices that need to communicate with each other, first, the physical address mapping of the EP end and the RP end in multiple processing devices is configured through the driver, enabling both the RP end and the EP end to read and write data according to the physical address, realizing direct memory access transmission of data. The ROS2 (Robot Operating System 2, the second-generation robot operating system) communication method based on direct memory access communication between processing devices is as Figure 6As shown: Assume that the RP end is the publishing device and the EP end is the subscribing device. First, the publishing device writes the point cloud data into the target storage space; after the data writing is completed, the publishing device sends a write success signal, which is sent to the subscribing device in the form of a topic through the DDS (Data Distribution Service) middleware; finally, after receiving the signal, the subscribing device reads the data in the target storage space for use by the upper-layer ROS2 application. The operation of writing data into the target storage space is divided into two steps: serialization and direct memory access writing. The serialization operation can convert the ROS2-formatted data into a vector<unit_8> type by calling the serialize_message() serialization method of ROS2, and then write the serialized data into the physical address of the RP-end device through memory copying to achieve direct memory access transmission; the operation of reading memory data can also be divided into direct memory access reading and deserialization parts. First, obtain the binary message from the physical address of the EP-end device through memory copying, and then call the deserialize_message() deserialization method of ROS2 to convert the binary format into the ROS2 point cloud format (sensor_msgs::msg::PointCloud2).
[0076] As an alternative embodiment, the multiple processing devices include a first device, a second device, and a third device. The first device is connected to the acquisition device of the point cloud data; the first device is configured to receive the first point cloud data acquired by the acquisition device; the second device is configured to add segmentation information to the first point cloud data according to the data information of the first point cloud data to obtain the second point cloud data, where the data information is used to indicate the coordinates of the first point cloud data in the segmentation system, and the coordinates include a first coordinate value, a second coordinate value, and a third coordinate value; the third device is configured to divide the second point cloud data into multiple target sets according to the segmentation information and output the multiple target sets.
[0077] Optionally, in the embodiments of the present application, the first device includes, but is not limited to, connecting multiple acquisition devices of point cloud data, and the acquisition devices of point cloud data include, but are not limited to, lidar, etc.
[0078] Optionally, in the embodiments of the present application, the segmentation information includes, but is not limited to, indicating that the point cloud data is ground data or obstacle data, etc., or indicating the possibility that the point cloud data is obstacle data. Dividing the second point cloud data into multiple target sets according to the segmentation information and outputting the target sets can enable the devices after the segmentation system of the point cloud data to perform different operation processes on the point cloud data in different sets.
[0079] Optionally, in the embodiments of the present application,Figure 7 is a schematic diagram of a coordinate system for point cloud data according to an embodiment of the present application. As Figure 7 shown, the point cloud data includes, but is not limited to, the point cloud data collected by a lidar on a vehicle. Taking the traveling direction of the vehicle (default front direction) as the positive direction of the coordinate axis (X) corresponding to the first coordinate value, a three-dimensional rectangular coordinate system including the coordinate axis corresponding to the first coordinate value, the coordinate axis (Y) corresponding to the second coordinate value, and the coordinate axis (Z) corresponding to the third coordinate value, and the X-axis, Y-axis, and Z-axis are perpendicular to each other pairwise, is established based on the first coordinate value. The data information of the point cloud data is used to indicate the coordinates of the point cloud data in the above three-dimensional rectangular coordinate system.
[0080] Optionally, including but not limited to establishing multiple threads in the first device, the second device, and the third device according to the processing capabilities of the devices. The multiple established threads can simultaneously perform operations on different point cloud data, which can further accelerate the segmentation efficiency of the point cloud data.
[0081] Through the above method, the segmentation service of the point cloud data is at least divided into three parts for execution, increasing the computing power for the segmentation service, accelerating the segmentation speed of the point cloud data, and improving the segmentation efficiency of the point cloud data.
[0082] As an optional implementation manner, the second device includes multiple processors, and the multiple processors are all connected to the switching device; the first device is further configured to divide the first point cloud data into multiple data sets, where each data set in the multiple data sets corresponds to each processor in the multiple processors one by one; each processor in the multiple processors is configured to add segmentation information to the first point cloud data in the data set corresponding to the processor obtained, to obtain the second point cloud data.
[0083] Through the above content, since the second device includes multiple processors, these multiple processors can be used to simultaneously analyze and process different point cloud data, further saving the time for performing the segmentation service on the point cloud data while introducing more computing power to accelerate the segmentation speed of the point cloud data, and further improving the segmentation efficiency of the point cloud data.
[0084] As an alternative implementation, the multiple processors include a first processor and a second processor, and the first device includes a fusion module and a grouping module; the fusion module is configured to fuse the received multiple reference data sets into a target data set, where the multiple reference data sets are used to store first point cloud data from different data acquisition devices; the grouping module is configured to split the target data set into a forward data set and a backward data set according to data information, where the first coordinate value of each first point cloud data in the forward data set is greater than or equal to a coordinate threshold, and the first coordinate value of each first point cloud data in the backward data set is less than the coordinate threshold, and the multiple data sets include the forward data set and the backward data set; the forward data set is transmitted to the first processor, and the backward data set is transmitted to the second processor.
[0085] Optionally, in the embodiments of the present application, including but not limited to creating a reference number of fourth threads in the grouping module that matches the processing capacity of the first device, dividing the fused first point cloud data into a reference number of sub-parts and distributing them to the reference number of fourth threads to perform the grouping operations of the forward data set and the backward data set, and then merging the obtained reference number of forward data subsets into the forward data set and merging the obtained reference number of backward data subsets into the backward data set, so as to make full use of the processing capacity of the first device and save the splitting time of the point cloud data.
[0086] As an alternative implementation, both the first processor and the second processor include a splitting module, a sorting module, and a classification module; the splitting module is configured to calculate the axial angle of the first point cloud data according to the first coordinate value and the second coordinate value of the first point cloud data in the forward data set or the backward data set, and split the forward data set or the backward data set into a target number of first subsets according to the axial angle, where the target number is determined according to the data processing capacity of the processor where the splitting module is located; the sorting module is configured to calculate the radial distance of the first point cloud data in the first subsets respectively according to the first coordinate value and the second coordinate value by a target number of first threads; the classification module is configured to calculate the slope value of the first point cloud data in the first subsets respectively according to the radial distance and the third coordinate value of the first point cloud data by a target number of second threads, and determine the segmentation information according to the magnitude relationship between the slope value and the slope threshold, to obtain a second subset of the second point cloud data with a target number; and fuse the second subsets with the target number into a forward result set or a backward result set.
[0087] Optionally, in the embodiments of the present application, including but not limited to calculating the axial angle θ of the first point cloud data by the following formula: θ = arctan(y / x), or θ = , where y is the second coordinate value and x is the first coordinate value.
[0088] Optionally, in the embodiments of the present application, the radial distance d of the first point cloud data is calculated by, but not limited to, the following formula: d = , where y is the second coordinate value and x is the first coordinate value.
[0089] Optionally, in the present application, the slope value α of the first point cloud data is calculated by, but not limited to, the following formula: α = arctan(z / d), where z is the third coordinate value, y is the second coordinate value, and x is the first coordinate value.
[0090] As an optional implementation manner, the splitting module includes a splitting unit and a merging unit; the splitting unit is configured to split the forward data set or the backward data set into a target number of third subsets according to the storage order of the first point cloud data in the forward data set or the backward data set, and calculate the axial angles of the first point cloud data in the third subsets through a target number of third threads; the merging unit is configured to split the forward data set or the backward data set into a target number of first subsets according to the axial angles and the target number of axial angle ranges.
[0091] Through the above content, the part of the point cloud data splitting service executed by the second device is further divided into multiple operations, the multiple operations are distributed to multiple modules, and multiple threads are used in each of the multiple modules to simultaneously execute operations on different data, saving the time spent on the point cloud data splitting service and improving the splitting efficiency of the point cloud data.
[0092] As an optional implementation manner, the third device includes a merging module and an output module; the merging module is configured to merge the received forward result set and backward result set to obtain a result data set, and split the result data set into multiple target sets according to the splitting information; the output module is configured to output the multiple target sets.
[0093] Optionally, in the embodiments of the present application, the third device includes, but is not limited to, being connected to different subsequent devices, and the third device includes, but is not limited to, being able to output different target sets to different subsequent devices.
[0094] As an optional implementation manner, Figure 8 is the structure of the point cloud data splitting system according to the embodiments of the present application Figure 3 , such as Figure 8As shown in the figure, the segmentation service of point cloud data, or the ground segmentation algorithm, in the embodiments of the present application is split into 7 service functions and assigned to 7 independent functional modules for execution. These 7 independent functional modules are each encapsulated as independent nodes, and data is transmitted between the nodes through DDS subscription / publishing of Topics. The data of multiple lidars is accessed from the processing device 1, and two nodes, namely point cloud fusion (i.e., the fusion module) and point cloud grouping (i.e., the grouping module), are arranged on the processing device 1 (i.e., the above-mentioned first device); four nodes, namely point cloud splitting (i.e., the splitting unit), point cloud merging (i.e., the merging unit), point cloud sorting (i.e., the sorting module), and point cloud classification (i.e., the classification module), are arranged on the processing device 2 and the processing device 3 (i.e., the first processor and the second processor in the above-mentioned second device); a front and rear point cloud merging node (i.e., the merging module) is arranged on the processing device 4 (i.e., the above-mentioned third device). The processing device 1 is set as the master device, and the 7 split nodes are allocated to the devices by parsing the config_node.yaml (a configuration file for configuring the parameters and settings of ROS nodes), and scheduling is performed through SSH passwordless access.
[0095] Specifically, the processing devices 1-4 are interconnected through PCIE, and a DMA (Direct Memory Access) and ROS2 communication environment is arranged thereon. Since the throughput of point cloud data is huge, the ROS2 communication based on the DDS middleware is bandwidth-limited, resulting in unstable frame rates and extremely high delays during the transmission of large amounts of data, and the transmission efficiency between devices is very low; while the DMA transmission efficiency is very high and suitable for high-speed interaction of large amounts of data, but it is difficult to implement and is not suitable for data transmission in complex formats due to the influence of the memory writing method. Therefore, the present application uses the ROS2 communication mode for data synchronization functions, and hands over the large data transmission to the DMA communication for processing:
[0096] On the processing device 1, the point cloud data obtained by multiple lidars is stitched in the point cloud fusion node, and the point cloud data type is std::vector <pointcloudrefvector>, where PointCloudRefVector is a standard point cloud array object, including a Header of string type and a dynamic array std::vector<pcl::PCLPointCloud2()>, and PCLPointCloud2() is a standard point cloud object. The splicing method is to create a new point cloud array object, assign its Header variable the same Header as the point cloud array object of the main lidar. Its data part (i.e., the dynamic array) uses the insert instruction to sequentially insert the point cloud data parts of multiple lidars one by one. Then, the point cloud fusion node transmits the data to the point cloud grouping node through shared memory. After receiving the data, the point cloud grouping node evenly splits the point cloud data into N data slices according to the point cloud data number, and N is equal to the number of CPU cores of processing device 1. The N data slices are bound to N threads. Each thread classifies it into the forward point cloud part and the backward point cloud part by judging whether x is greater than 0 from the three-dimensional coordinates (x, y, z) of the point cloud slice data or according to the horizontal angle. Then, the N forward point cloud parts and the N backward point cloud parts are respectively spliced, and the splicing of the forward point cloud part slices and the splicing of the backward point cloud part slices are assigned to two independent threads for acceleration. Finally, the point cloud grouping node publishes the forward point cloud data and the backward point cloud data through the aforementioned data transmission and communication scheduling methods, and adds the same timestamp to the forward point cloud data and the backward point cloud data grouped from the same batch of data. Specifically, the forward point cloud data and the backward point cloud data are serialized respectively, converted into binary format and written into memory. Then, processing device 1 sends a signal to processing device 2 and processing device 3 through DDS. After subscribing to the message of writing the serialized point cloud data into memory, the latter two directly access the memory through DMA to extract information, and then deserialize to obtain the forward point cloud and the backward point cloud respectively.
[0097] Processing device 2 subscribes to the forward point cloud data from processing device 1, and processing device 3 subscribes to the backward point cloud data from processing device 1. The two processing devices perform the same processing on the point cloud data, and deploy point cloud splitting, point cloud merging, point cloud sorting, and point cloud classification nodes on them. Obtain the number of CPU cores K of processing device 2 / processing device 3, configure the thread pool, and generate K threads according to the number of processing device cores K. The point cloud splitting node first evenly splits the forward / backward point cloud data into K sub-point clouds according to the point cloud label, and then evenly splits the K sub-point clouds into multiple fan-shaped regions according to the lidar angular resolution. The splitting method of the sub-point cloud is based on the axial angle θ = rounding down for classification, corresponding to the lidar horizontal angular resolution of , the number of sector regions is 360. It is selected to bind the splitting operation of K sub-point clouds to K threads for parallel acceleration. When the splitting thread is running, the main thread is blocked. After the splitting task is completed, the tasks are synchronized and the main thread is released; the point cloud merging module is used to splice the K sub-point clouds within each sector region to obtain the sliced grouping situation of the overall forward / backward point cloud data, and the splicing method is the same as before. It is selected to bind the splicing of the ceil(360 / K)*i to ceil(360 / K)*(i + 1) sector dimensions to independent threads, where i = 0,.. ., K - 1 represents the thread number, and ceil(x) is the ceiling operation, representing the largest integer not less than x. When the merging thread is running, the main thread is blocked. After the merging task is completed, the tasks are synchronized and the main thread is released; the point cloud sorting module is used to sort the point cloud data in each group of point cloud slices (i.e., the first subset) according to the radial distance of the point cloud data. The radial distance is defined as , it is selected to bind the sorting tasks of the ceil(360 / K)*i to ceil(360 / K)*(i + 1) sector dimensions to different independent threads, where i = 0,…, K - 1 represents the thread number. When the sorting thread is running, the main thread is blocked. After the sorting task is completed, the tasks are synchronized and the main thread is released; in the point cloud classification module, a global slope threshold and a local slope threshold are preset according to the road conditions. Each group of sorted point cloud slices is traversed, and classification labels are assigned to the point cloud data by comparing the slope value of the point cloud data with the global slope threshold and the local slope threshold to obtain K second subsets. It is selected to bind the classification tasks of the ceil(360 / K)*i to ceil(360 / K)*(i + 1) sector dimensions to different independent threads, where i = 0,…, K - 1 represents the thread number. When the classification thread is running, the main thread is blocked. After the classification task is completed, the tasks are synchronized and the main thread is released. After all modules are completed, the forward / backward point cloud data and their classification labels are encapsulated into the same topic_Forward (i.e., the above-mentioned forward result set) / topic_Back (i.e., the above-mentioned backward result set), and sent to the processing device 4 through the aforementioned data transmission and communication scheduling methods. Specifically, the processing device 2 and the processing device 3 serialize topic_Forward and topic_Back into binary format and write them into the memory, and then send a signal to the processing device 4 through DDS. After the processing device 4 obtains the message and writes it into the memory, it accesses the memory through DMA and deserializes and restores the point cloud data.
[0098] In the processing device 4, topic_Forward and topic_Back are received and decoded. The timestamps of the two are compared, and if they match, they are merged, including the merging of the point cloud data and the classification labels, and finally published to the subsequent devices for further analysis and processing of the point cloud data.
[0099] Through the above solution, with the help of high-speed data transmission and communication scheduling communication methods between modules, by means of function decomposition and thread acceleration, the ground segmentation algorithm with a serial structure is split into several service functions and deployed on multi-processing devices. The ROS2 function based on direct memory access communication between processing devices is used for message communication to achieve function coordination, and the maximum cores of each processing device are fully allocated for parallel computing. The optimization of the algorithm logic of the traditional ground segmentation method is realized, the latency bottleneck of the autonomous driving framework is broken through, which promotes L4 vehicle-grade autonomous driving.
[0100] From another perspective, the present application provides a vehicle-mounted computing architecture with multi-processing device interconnection. High computing power is obtained through multi-core parallel acceleration to support the lidar point cloud processing task with large data volume throughput. This design can meet the computing requirements lacking in multi-lidar systems; the PCIE+DMA communication is used to implement the point cloud subscription and publishing function between multiple devices, breaking through the platform bandwidth limitation in the way of physical address access, and integrating the front / back point cloud data by comparing timestamps, realizing the point cloud distribution and coordination functions in the multi-processing device architecture; the ground segmentation algorithm is innovatively optimized and improved, enabling the algorithm to adapt to the distributed computing environment, making full use of its surplus computing power for acceleration, reducing resource waste, and reducing the overall latency of the framework, which is helpful for the development of L4 vehicle-grade autonomous driving.
[0101] The above are only the preferred embodiments of the present application and are not used to limit the present application. For those skilled in the art, various changes and modifications can be made to the present application. Any modification, equivalent replacement, improvement, etc. made within the principle of the present application shall be included in the protection scope of the present application.< / pointcloudrefvector>
Claims
1. A point cloud data segmentation system, characterized in that: include: A switching device, a plurality of processing devices and a target storage space, wherein the plurality of processing devices are connected to the switching device, the plurality of processing devices are allowed to access the target storage space, the point cloud data segmentation service includes a plurality of service functions, and one or more target service functions of the plurality of service functions are deployed on each processing device; The multiple processing devices are used to execute the one or more target business functions deployed on each processing device according to the operation logic between the multiple business functions, and the switching device performs interaction between the processing devices to implement the point cloud data segmentation business; A target processing device among the plurality of processing devices, used for storing target point cloud data to be transmitted to a reference processing device among the plurality of processing devices into the target storage space; Notifying the reference processing device to acquire point cloud data from the target storage space through the exchange device; The reference processing device is used to respond to the notification of the target processing device and obtain the target point cloud data from the target storage space through the exchange device.
2. The system according to claim 1, characterized in that The target storage space is a first storage area in the storage space on the target processing device, the reference processing device stores a first mapping relationship between a first physical address space of the first storage area and a second physical address space in the reference processing device, and the switching device also stores the first mapping relationship; The target processing device is used to store the target point cloud data in the first physical address space; Notifying the reference processing device to acquire point cloud data from the first physical address space through the switching device; The reference processing device is used to convert the first physical address space into the second physical address space by using the first mapping relationship, and obtain the target point cloud data from the second physical address space through the switching device.
3. The system according to claim 2, characterized in that The reference processing device is further configured to store the reference point cloud data to be transmitted to the target processing device in the second physical address space through the switching device; convert the second physical address space into the first physical address space using the first mapping relationship; and notify the target processing device through the switching device to obtain the point cloud data from the first physical address space; The target processing device is used to respond to the notification of the reference processing device and obtain the reference point cloud data from the first physical address space.
4. The system according to claim 2, characterized in that A first register is deployed in the switching device; The target processing device is configured to divide the first storage area from a storage space; and write the first physical address space of the first storage area into the first register; The reference processing device is used to read the first physical address space from the first register; Establishing the first mapping relationship; transmitting the first mapping relationship to the switching device.
5. The system according to claim 1, characterized in that The target storage space is a second storage area in the storage space provided by the switching device, the target processing device stores a second mapping relationship between a third physical address space of the second storage area and a fourth physical address space in the target processing device, the reference processing device stores a third mapping relationship between the third physical address space and a fifth physical address space in the reference processing device, and the switching device also stores the second mapping relationship and the third mapping relationship; The target processing device is used to store the target point cloud data into the fourth physical address space through the switching device; Convert the fourth physical address space into the third physical address space using the second mapping relationship; notify the reference processing device through the switching device to obtain point cloud data from the third physical address space; The reference processing device is used to convert the third physical address space into the fifth physical address space by using the third mapping relationship, and obtain the target point cloud data from the fifth physical address space through the switching device.
6. The system according to claim 5, characterized in that A second register is deployed in the switching device; The switching device is used to divide the second storage area from the storage space; Writing the third physical address space of the second storage area into the second register; The target processing device is used to read the third physical address space from the second register; Establishing the second mapping relationship; transmitting the second mapping relationship to the switching device; The reference processing device is used to read the third physical address space from the second register; Establishing the third mapping relationship; transmitting the third mapping relationship to the switching device.
7. The system according to claim 1, characterized in that The switching device includes a message switch and a data switch, and the plurality of processing devices are connected to the message switch and the data switch; The target processing device is used to send a notification message to the reference processing device through the message exchanger, wherein the notification message is used to notify the reference processing device to obtain point cloud data from the target storage space; The reference processing device is used to respond to the notification message received from the message exchanger and obtain the target point cloud data from the target storage space through the data exchanger.
8. The system according to claim 7, characterized in that The target processing device has a first middleware deployed therein, and the reference processing device has a second middleware deployed therein; The first middleware is configured to publish the notification message as a target topic to the second middleware through the message exchanger after the target point cloud data is stored in the target storage space; The second middleware is used to receive the target topic through the message exchanger; When the target topic is a topic subscribed by the second middleware, the notification message is read from the target topic.
9. The system according to claim 7, characterized in that A first converter is deployed in the target processing device, and a second converter is deployed in the reference processing device; The first converter is used to serialize the target point cloud data to obtain a data sequence, and store the data sequence in the target storage space; The second converter is used to obtain the data sequence from the target storage space through the data exchanger, and deserialize the data sequence to obtain the target point cloud data.
10. The system according to claim 1, characterized in that The multiple processing devices include a first device, a second device and a third device, and the first device is connected to a point cloud data acquisition device; The first device is used to receive the first point cloud data collected by the collection device; The second device is used to add segmentation information to the first point cloud data according to data information of the first point cloud data to obtain second point cloud data, wherein the data information is used to indicate the coordinates of the first point cloud data in the segmentation system, and the coordinates include a first coordinate value, a second coordinate value, and a third coordinate value; The third device is used to divide the second point cloud data into multiple target sets according to the segmentation information and output the multiple target sets.
11. The system according to claim 10, characterized in that The second device includes a plurality of processors, and the plurality of processors are all connected to the switching device; The first device is further configured to divide the first point cloud data into a plurality of data sets, wherein each data set in the plurality of data sets corresponds one-to-one to each processor in the plurality of processors; Each processor among the multiple processors is used to add the segmentation information to the first point cloud data in the acquired data set corresponding to the processor to obtain the second point cloud data.
12. The system according to claim 11, characterized in that The plurality of processors include a first processor and a second processor, and the first device includes a fusion module and a grouping module; The fusion module is used to fuse the received multiple reference data sets into a target data set, wherein the multiple reference data sets are used to store the first point cloud data from different data acquisition devices; The grouping module is used to split the target data set into a forward data set and a backward data set according to the data information, wherein the first coordinate value of each of the first point cloud data in the forward data set is greater than or equal to a coordinate threshold, and the first coordinate value of each of the first point cloud data in the backward data set is less than the coordinate threshold, and the multiple data sets include the forward data set and the backward data set; the forward data set is transmitted to the first processor, and the backward data set is transmitted to the second processor.
13. The system according to claim 12, characterized in that The first processor and the second processor both include a segmentation module, a sorting module and a classification module; The segmentation module is used to calculate the axial angle of the first point cloud data according to the first coordinate value and the second coordinate value of the first point cloud data in the forward data set or the backward data set, and to segment the forward data set or the backward data set into a target number of first subsets according to the axial angle, wherein the target number is determined according to the data processing capability of the processor where the segmentation module is located; The sorting module is used to calculate radial distances of first point cloud data in the first subset according to the first coordinate value and the second coordinate value respectively through the target number of first threads; The classification module is used to calculate the slope values of the first point cloud data in the first subset according to the radial distance and the third coordinate value of the first point cloud data through the second threads of the target number, and determine the segmentation information according to the size relationship between the slope value and the slope threshold to obtain the second subset of the target number of the second point cloud data; and merge the second subsets of the target number into a forward result set or a backward result set.
14. The system according to claim 13, characterized in that The segmentation module includes a segmentation unit and a merging unit; The segmentation unit is used to segment the forward data set or the backward data set into the target number of third subsets according to the storage order of the first point cloud data in the forward data set or the backward data set, and respectively calculate the axial angles of the first point cloud data in the third subsets through the target number of third threads; The merging unit is used to divide the forward data set or the backward data set into the first subsets of the target number according to the axial angle and the axial angle range of the target number.
15. The system according to claim 13, characterized in that The third device includes a merging module and an output module; The merging module is used to merge the received forward result set and the backward result set to obtain a result data set, and split the result data set into the multiple target sets according to the segmentation information; The output module is used to output the multiple target sets.
Citation Information
Patent Citations
Register access method, device and system, server and storage medium
CN116679986A
Data processing method and device, storage medium and electronic equipment
CN118283116A