Point cloud data segmentation system

By designing a point cloud data segmentation system in autonomous driving vehicles, using the interaction between switching devices and multi-processing devices, the problem of low point cloud data segmentation efficiency is solved, more efficient data processing and transmission is achieved, and the autonomous driving vehicle is improved Real-time.

CN119228626AActive Publication Date: 2024-12-31INSPUR SUZHOU INTELLIGENT TECH CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202411717518.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-11-27
Publication Date
2024-12-31
Estimated Expiration
2044-11-27

AI Technical Summary

Technical Problem

Currently, the segmentation efficiency of large amounts of point cloud data collected by multiple lidars in autonomous vehicles is low, affecting real-time operation capabilities.

Method used

A point cloud data segmentation system is designed to use the target storage space to transmit and process data through the interaction between the switching device and multiple processing devices. Each processing device undertakes different business functions, increases computing power and improves segmentation efficiency.

Benefits of technology

The segmentation efficiency of point cloud data is improved, the data transmission efficiency between multi-processing devices is ensured, the negative impact of data transmission between devices on segmentation efficiency is avoided, and the real-time operation capability of autonomous driving vehicles is improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119228626A_ABST
    Figure CN119228626A_ABST
Patent Text Reader

Abstract

The invention provides a point cloud data segmentation system, which comprises a switching device, a plurality of processing devices and a target storage space, and is characterized in that the plurality of processing devices are connected to the switching device and are allowed to access the target storage space; one or more target service functions in a plurality of service functions of the point cloud data segmentation service are deployed on each processing device; the plurality of processing devices are used for executing the target service functions deployed on the processing devices, and interaction among the processing devices is carried out by the switching device; a target processing device in the plurality of processing devices is used for storing the target point cloud data into a target storage space; notifying the reference processing device to obtain the point cloud data through the switching device; and the reference processing equipment is used for responding to the notification of the target processing equipment and acquiring the target point cloud data from the target storage space through the switching equipment. Through the method and the device, the problem of relatively low point cloud data segmentation efficiency is solved, and the effect of improving the point cloud data segmentation efficiency is achieved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments of the present application relate to the field of computers, and in particular, to a point cloud data segmentation system. Background Art

[0002] As a widely concerned technology, autonomous driving technology can be divided into six levels from L0 to L5, from low to high, namely L0 (no automation), L1 (driving assistance), L2 (partial autonomous driving), L3 (conditional autonomous driving), L4 (highly autonomous driving) and L5 (fully autonomous driving). At present, it is possible to mass-produce vehicles that meet the L1 / L2 level autonomous driving standards. The development of the autonomous driving field has begun to involve the realization of L4 level autonomous driving technology. The realization of L4 level autonomous driving technology has put forward higher requirements for the real-time operation ability of the vehicle. However, multiple laser radars are currently deployed on autonomous driving vehicles to realize the environmental perception and collaborative positioning of autonomous driving vehicles. Multiple laser radars will collect a very large amount of point cloud data in a short time. The ground segmentation system responsible for separating the "ground" part and the "non-ground" part from the original point cloud relies on the serial execution of its single processing device for the segmentation of point cloud data. The efficiency of point cloud data segmentation is very low, which seriously affects the real-time operation ability of autonomous driving vehicles. Summary of the invention

[0003] The embodiment of the present application provides a point cloud data segmentation system to at least solve the problem of low efficiency of point cloud data segmentation in the related art.

[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, the multiple processing devices are all allowed to access the target storage space, the point cloud data segmentation business includes multiple business functions, and one or more target business functions among the multiple business functions are deployed on each processing device; multiple processing devices are used to execute 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 is used to interact between the processing devices to realize the point cloud data segmentation business; the target processing device among the multiple processing devices is used to store the target point cloud data to be transmitted to the reference processing device among the multiple processing devices in the target storage space; the reference processing device is notified through the switching device to obtain the point cloud data from the target storage space; 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 switching device.

[0005] As an optional 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 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; the reference processing device is notified through the switching device to obtain the point cloud data from the first physical address space; the reference processing device is used 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 optional implementation, the reference processing device is also used 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; use the first mapping relationship to convert the second physical address space into the first physical address space; notify the target processing device to obtain the point cloud data from the first physical address space through the switching device; 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.

[0007] As an optional implementation, a first register is deployed in a switching device; a target processing device is used to divide a first storage area from a storage space; a first physical address space of the first storage area is written into the first register; a reference processing device is used to read the first physical address space from the first register; a first mapping relationship is established; and the first mapping relationship is transmitted to the switching device.

[0008] As an optional 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, 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 in the fourth physical address space through the switching device; the fourth physical address space is converted into the third physical address space using the second mapping relationship; the reference processing device is notified 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 using the third mapping relationship, and obtain the target point cloud data from the fifth physical address space through the switching device.

[0009] As an optional implementation, a second register is deployed in the switching device; the switching device is used 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 used 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 used 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 optional implementation, the exchange device includes a message exchanger and a data exchanger, and multiple processing devices are connected to the message exchanger and the data exchanger; 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.

[0011] As an optional 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 to publish the notification message as the target topic to the second middleware through a 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 the topic subscribed by the second middleware, the notification message is read from the target topic.

[0012] As an optional 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 a 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.

[0013] As an optional implementation, 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 acquired by the acquisition device; the second device is used to add segmentation information to the first point cloud data based on 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.

[0014] As an optional implementation, the second device includes multiple processors, and the multiple processors are all connected to the switching device; the first device is also used to divide the first point cloud data into multiple data sets, wherein each data set in the multiple data sets corresponds one-to-one to each processor in the multiple processors; each processor in the multiple processors is used 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 optional embodiment, 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 used to fuse the received multiple reference data sets into a target data set, wherein the multiple reference data sets are used to store 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 first point cloud data in the forward data set is greater than or equal to the 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 a forward data set and a 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 optional implementation, 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 divide 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 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 the target number of first threads; the classification module is used 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 the target number of second threads, and determine the segmentation information according to the size relationship between the slope value and the slope threshold, to obtain the target number of second point cloud data of the second subset; and merge the target number of second subsets into a forward result set or a backward result set.

[0017] As an optional implementation, 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 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 subset through the target number of third threads; the merging unit is used to segment the forward data set or the backward data set into a target number of first subsets according to the axial angle and the axial angle range of the target number.

[0018] As an optional implementation, the third device includes a merging module and an output module; the merging module is used 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 segmentation information; the output module is used to output multiple target sets.

[0019] 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, multiple processing devices are connected to the switching device, and multiple processing devices are allowed to access the target storage space, multiple business functions included in the point cloud data segmentation business are deployed on each processing device, and multiple processing devices will execute one or more target business functions deployed on each processing device according to the operation logic between the business functions, and the switching device will interact between the processing devices to realize the point cloud data segmentation business; specifically, the target processing business in the multiple processing devices will transmit the target point cloud data to the reference processing device in the multiple processing devices. The reference processing device will be notified through the exchange device to obtain the point cloud data from the target storage space. 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 exchange device. That is, on the one hand, the system provided by this application will provide multiple processing devices to respectively undertake different business functions in the segmentation business, increase computing power and improve the efficiency of point cloud data segmentation. On the other hand, multiple processing devices still perform data exchange transmission between multiple processing devices through the exchange device and the target storage space, ensuring the data transmission efficiency between multiple processing devices and avoiding the adverse effects of data transmission between devices on the segmentation efficiency of point cloud data. Therefore, the problem of low efficiency of point cloud data segmentation in related technologies can be solved, and the effect of improving the efficiency of point cloud data segmentation can be achieved. BRIEF DESCRIPTION OF THE DRAWINGS

[0020] Figure 1 The structure of the point cloud data segmentation system according to the embodiment of the present application is Figure 1 ;

[0021] Figure 2 This is a schematic diagram of the data transmission method of the point cloud data segmentation system according to the embodiment of the present application. Figure 1 ;

[0022] Figure 3 is a schematic diagram of a link connection mode between processing devices according to an embodiment of the present application;

[0023] Figure 4 This is a schematic diagram of the data transmission method of the point cloud data segmentation system according to the embodiment of the present application. Figure 2 ;

[0024] Figure 5 The structure of the point cloud data segmentation system according to the embodiment of the present application is Figure 2 ;

[0025] Figure 6 is a schematic diagram of the transmission and scheduling of point cloud data according to an embodiment of the present application;

[0026] Figure 7 is a schematic diagram of a coordinate system of point cloud data according to an embodiment of the present application;

[0027] Figure 8 The structure of the point cloud data segmentation system according to the embodiment of the present application is Figure 3 . DETAILED DESCRIPTION

[0028] The embodiments of the present application will be described in detail below with reference to the accompanying drawings and in combination with the embodiments.

[0029] It should be noted that the terms "first", "second", etc. in the specification and claims of this application and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence.

[0030] According to one embodiment of the present application, a point cloud data segmentation system is provided. Figure 1 The structure of the point cloud data segmentation system according to the embodiment of the present application is Figure 1 ,like Figure 1 As shown, the point cloud data segmentation system includes: a switching device, multiple processing devices and a target storage space, the multiple processing devices are connected to the switching device, the multiple processing devices are allowed to access the target storage space, the point cloud data segmentation business includes multiple business functions, and each processing device is deployed with one or more target business functions in the multiple business functions;

[0031] Multiple processing devices are used to execute 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 realize the segmentation business of point cloud data;

[0032] A target processing device among the multiple processing devices is used to store target point cloud data to be transmitted to a reference processing device among the multiple processing devices in a target storage space; and to notify the reference processing device to obtain point cloud data from the target storage space through the exchange device;

[0033] 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.

[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, multiple processing devices are connected to the switching device, and multiple processing devices are allowed to access the target storage space, multiple business functions included in the point cloud data segmentation business are deployed on each processing device, and multiple processing devices will execute one or more target business functions deployed on each processing device according to the operation logic between the business functions, and the switching device will interact between the processing devices to realize the point cloud data segmentation business; specifically, the target processing business in the multiple processing devices will transmit the target point cloud data to the reference processing device in the multiple processing devices. The reference processing device will be notified through the exchange device to obtain the point cloud data from the target storage space. 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 exchange device. That is, on the one hand, the system provided by this application will provide multiple processing devices to respectively undertake different business functions in the segmentation business, increase computing power and improve the efficiency of point cloud data segmentation. On the other hand, multiple processing devices still perform data exchange transmission between multiple processing devices through the exchange device and the target storage space, ensuring the data transmission efficiency between multiple processing devices and avoiding the adverse effects of data transmission between devices on the segmentation efficiency of point cloud data. Therefore, the problem of low efficiency of point cloud data segmentation in related technologies can be solved, and the effect of improving the efficiency of point cloud data segmentation can be achieved.

[0035] Optionally, in the embodiment 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. The protocols that support both data transmission and communication include, but are not limited to, HTTP (Hypertext Transfer Protocol), TCP / IP (Transmission Control Protocol / Internet Protocol), etc. The switching device may also be, but is not limited to, a combination of a switching device that supports a protocol for data transmission and a switching device that supports communication, for example, a combination of a PCIe (Peripheral Component Interconnect Express) switch and an Ethernet switch, wherein data interaction between multiple processing devices is realized through a PCIe switch, and communication between multiple processing devices, i.e., scheduling between multiple processing devices, is realized through an Ethernet switch.

[0036] Optionally, in an embodiment of the present application, the processing device may be, but is not limited to, a device or equipment with data processing capabilities, such as an autonomous driving processor, etc.

[0037] Optionally, in an embodiment of the present application, the target storage space may be, but is not limited to, storage space on a processing device, or storage space on a switching device, or storage space on a storage device external to the switching device, and the like.

[0038] Optionally, in an embodiment of the present application, the target storage space may, but is not limited to, include multiple parts, and different parts are allowed to be accessed by at least two different processing devices, or the target storage space includes only one part, and multiple processing devices access the target storage space in a certain logical order.

[0039] Optionally, in an embodiment of the present application, the multiple business functions included in the point cloud data segmentation business can be, but are not limited to, divided into multiple business functions according to the processing capabilities of multiple processing devices, and the business 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 an embodiment of the present application, it includes but is not limited to a group of processing devices among multiple processing devices being connected to a point cloud data acquisition device respectively to acquire the point cloud data to be segmented, and then another processing device being connected to a device that needs to receive segmented point cloud data, and the processing device outputs the segmented point cloud data, and the remaining processing devices in the point cloud data segmentation system perform specific point cloud data segmentation; after acquiring the point cloud data, the processing device stores the point cloud data into a target storage space for subsequent processing devices to use, and the result data generated after executing the point cloud data segmentation operation is also stored in the target storage space, and the processing device responsible for outputting the final data obtains the final result data from the target storage space for output, thereby finally realizing the point cloud data segmentation business.

[0041] Optionally, in an embodiment of the present application, different processing devices can be scheduled to execute their corresponding business functions at different stages according to, but not limited to, the operating logic between multiple business functions. The above-mentioned scheduling operation can be, but not limited to, being implemented by the execution device of the previous stage notifying the execution device of the next stage. It can also be that the multiple processing devices include a main processing device, and the main processing device completes the scheduling operation, that is, other processing devices notify the main processing device after executing the corresponding business functions. After receiving the notification, the main processing device refers to the operating logic between the multiple business functions and the deployment of the multiple business functions on the multiple processing devices, and notifies the next processing device to obtain point cloud data and execute the corresponding business function.

[0042] As an optional 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 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; the reference processing device is notified through the switching device to obtain the point cloud data from the first physical address space; the reference processing device is used 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.

[0043] Optionally, in the embodiments of the present application, Figure 2 This is a schematic diagram of the data transmission method of the point cloud data segmentation system according to the embodiment of the present application. Figure 1 ,like Figure 2As shown, the first storage area in the target storage space can be but is not limited to being located on the target processing device, then the target processing device can directly obtain the first physical address space of the first storage area, and directly store the target point cloud data in the first physical address space; then notify 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 can be used by the reference processing device, and obtains the point cloud data using the second physical address space, and after obtaining 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 an embodiment of the present application, the target processing device includes but is not limited to sending a first data volume of the target point cloud data and a first offset of a physical address in a first physical address space used by the target processing device from the first address of the first physical address space to a reference device, and the reference device can obtain the target point cloud data using the second physical address space based on 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 realize data transmission through physical address access, which ensures the transmission efficiency of point cloud data between multiple processing devices.

[0046] As an optional implementation, the reference processing device is also used 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; use the first mapping relationship to convert the second physical address space into the first physical address space; notify the target processing device to obtain the point cloud data from the first physical address space through the switching device; 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.

[0047] Optionally, in an embodiment of the present application, when the target storage space is in the storage space on 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 in the first physical address space of the target processing device. Thereafter, the reference processing device converts 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 through the switching device to obtain the reference point cloud data from its own first physical address space, and the target processing device can directly obtain the reference point cloud data according to its own first physical address space.

[0048] Optionally, in an embodiment of the present application, the reference processing device includes but is not limited to sending a second data volume of the reference point cloud data and a second offset of a physical address in a second physical address space used by the reference processing device from the first address of the second physical address space to a target device, and the target device may find the reference point cloud data from the first physical address space based on the second offset and the second data volume.

[0049] Optionally, in an embodiment of the present application, the method for the target processing device to acquire the reference point cloud data or the method for the reference processing device to acquire the target point cloud data may be, but is not limited to, deleting all data in the first physical address space after the reading is completed. In this case, after completing the transmission of point cloud data from one processing device to another processing device, no data will be stored in the first storage area. The next time the point cloud data is transmitted, writing can be started directly from the first address of the first physical address space or the first address of the second physical address space. When the writing of the point cloud data is completed, it is only necessary to notify the processing device to be received of the point cloud data that the writing of the point cloud data is successful. The processing device responsible for receiving the point cloud data can directly obtain the point cloud data to be received based on the first address of the second physical address space and the spatial range of the second physical address space or the first address of the first physical address space and the spatial 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 on the reference processing device to be transmitted to the target processing device 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. The target processing device can directly use its own first physical address space to obtain the reference point cloud data. Both the reference processing device and the target processing device can realize data transmission through physical address access, which improves the transmission efficiency of point cloud data between multiple processing devices, and thereby improves the efficiency of point cloud data segmentation.

[0051] As an optional implementation, a first register is deployed in a switching device; a target processing device is used to divide a first storage area from a storage space; a first physical address space of the first storage area is written into the first register; a reference processing device is used to read the first physical address space from the first register; a first mapping relationship is established; and the first mapping relationship is transmitted 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 (i.e., the fourth mapping relationship between the first physical address space and the virtual address space is stored on the switching device), and 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 use the fourth mapping relationship and the fifth mapping relationship to complete the transmission of point cloud data between multiple processing devices through the switching device in a similar manner to the above.

[0053] Optionally, in an embodiment 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, for example, it may be a PCIE BAR (Peripheral Component Interconnect Express Base Address Register) and the like.

[0054] Optionally, in an embodiment of the present application, the target processing device includes but is not limited to restarting the target processing device and dividing a first storage area from the storage space upon 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 configured to divide a first storage area in the storage space when booting up, 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 an embodiment of the present application, the reference processing device includes but is not limited to opening up 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, such as Figure 3 As shown, it includes but is not limited to setting the target processing device to RP (Rootpoint mode) and setting the reference processing device to EP (Endpoint mode), and deploying SSH (Secure Shell) remote connection tools on both the target processing device and the reference processing device to establish secret-free 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 by the driver, and the physical address is mapped to the user space address, that is, the physical address of the target storage space in the RP is directly used on the RP end. After the EP end obtains the address of the RP end through the PCIE BAR, the address of the RP end cannot be directly used. It is necessary to establish a mapping between the address of the RP end and the physical address of the EP (i.e., the first mapping relationship mentioned above), so that the EP can also directly use the physical address of the EP to store or read data, that is, the RP end and the EP end can both read and write data according to the physical address.

[0057] Through the above content, through the cooperation of the first register on the exchange 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, which provides a basis for the reference device to use physical addresses to store or read point cloud data, improves the transmission efficiency of point cloud data to a certain extent, and thereby improves the segmentation efficiency of point cloud data by the point cloud data segmentation system.

[0058] As an optional 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, 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 in the fourth physical address space through the switching device; the fourth physical address space is converted into the third physical address space using the second mapping relationship; the reference processing device is notified 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 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 an embodiment 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 This is a schematic diagram of the data transmission method of the point cloud data segmentation system according to the embodiment of the present application. Figure 2 ,like Figure 4 As shown, the second storage area in the target storage space can be but is not limited to being 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, and 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, when the storage space of the target processing device and the reference processing device is insufficient, a second storage area is opened on the storage space of the exchange device to achieve 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 use its own fourth physical address space to store data in the target storage space, and the reference processing device can directly use its own fifth physical address space to obtain data from the target storage space, thereby ensuring the efficiency of data transmission between processing devices and, to a certain extent, ensuring the efficiency of the system's segmentation of point cloud data.

[0063] As an optional implementation, a second register is deployed in the switching device; the switching device is used 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 used 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 used 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.

[0064] Optionally, in an embodiment of the present application, the target processing device or the reference processing device may, but is not limited to, send a target storage space partition request to the switching device, and the switching device may partition the second storage area from the storage space after receiving the request.

[0065] Optionally, in an embodiment of the present application, it includes but is not limited to sending a partition request by the reference processing device to the target processing device, wherein the partition request is used to request the target processing device to partition a target storage space of a target capacity size from the storage space of the target processing device; when the target processing device receives the partition request, the target processing device will calculate the remainder 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 remainder is greater than the target capacity size, the target processing device will restart itself, and during the restart process, the target storage space of the target capacity size is partitioned from the storage space of the target processing device, and the space information of the target storage space is returned to the reference processing device through the switching device, wherein the space information is used to indicate the physical address space of the partitioned target storage space; when the remainder is less than or equal to the target capacity size When the target capacity is small, the target processing device will forward the received partition request to the switching device. After receiving the partition request, the switching device will calculate the remaining free storage space of the switching device according to the occupancy of the storage space in the switching device; when the remaining amount is greater than the target capacity, the switching device will open up the target storage space in its own storage space, and return the spatial information of the target storage space to the target processing device and the reference processing device; when the remaining amount is less than or equal to the target capacity, the switching device will return the partition failure information to the reference processing device, wherein the partition failure information is used to indicate that the partition request of the reference device cannot be realized. After receiving the partition failure information, the reference device will update the partition request to obtain a new partition request and send the new partition request to the target processing device, and the capacity of the target storage space required to be partitioned by the new partition request is less than the target capacity. Through the above content, the shared target storage space is preferentially partitioned on the processing device, and the target storage space can also be partitioned from the switching device when there is insufficient space on the processing device, so that the storage space in the partition system is fully utilized for the transmission of point cloud data, which ensures the transmission efficiency of point cloud data and improves the partition efficiency of point cloud data to a certain extent.

[0066] Through the above content, the switching device provides a 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 use its own fourth physical address space to store or read point cloud data and for the reference processing device to use its own fifth physical address space to store or read point cloud data, thereby improving the transmission efficiency of point cloud data in multiple processing devices to a certain extent.

[0067] As an optional implementation, the exchange device includes a message exchanger and a data exchanger, and multiple processing devices are connected to the message exchanger and the data exchanger; 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.

[0068] Optionally, in the embodiments of the present application, Figure 5 The structure of the point cloud data segmentation system according to the embodiment of the present application is Figure 2 ,like Figure 5 As shown, the switching device includes a message switch and a data switch. Multiple processing devices are connected to the message switch and are also connected to the data switch. The message switch is used for segmentation phase scheduling, i.e., message transmission, between multiple processing devices, and the data switch is used for point cloud data transmission between 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 optional 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 to publish the notification message as the target topic to the second middleware through a 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 the topic subscribed by the second middleware, the notification message is read from the target topic.

[0070] Optionally, in an embodiment of the present application, the first middleware and the second middleware can be used for communication scheduling across processing devices, but is not limited to, and can also be used for communication scheduling within a processing device. For example, there are processing nodes 1, 2, and 3 in the target processing device. The processing node, as a publishing node, can encapsulate the notification message that needs to be transmitted to processing node 2 into a topic, and send the topic to the first middleware. The first middleware publishes the topic to processing node 2 and processing node 3. Processing node 2, as a subscription node that has subscribed to the topic, obtains the content of the topic. Processing node 3, which has not subscribed to the topic, does not obtain the content of the topic, thereby realizing communication scheduling with the help of the middleware.

[0071] Through the above content, with the help of middleware and message exchanger, communication scheduling between multiple processors is realized, so that after the target point cloud data storage is completed, the target processing device can promptly notify the reference processing device to obtain the point cloud data, realize the timely transmission of the point cloud data, and to a certain extent ensure the efficiency of the point cloud segmentation system in segmenting the point cloud data.

[0072] As an optional 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 a 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 embodiment 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 a vector<unit_8> Type; after obtaining the data sequence, deserialize the data sequence, including but not limited to calling the deserialization method of deserialize_message() to restore the binary format to obtain the target point cloud data.

[0074] Through the above content, the target point cloud data is serialized and converted before storage, which can ensure that the access method of directly accessing the target storage space through the physical address can obtain the data normally, and will not be unable to obtain the data due to the overly complex data format.

[0075] As an optional implementation, Figure 6 is a schematic diagram of the transmission and scheduling of point cloud data according to an embodiment of the present application, such as Figure 6 As shown in the figure, for two processing devices that need to communicate with each other, firstly, the physical address mapping between the EP end and the RP end of multiple processing devices is configured by the driver, so that both the RP end and the EP end can read and write data according to the physical address, realizing the 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 follows Figure 6As shown: Assume that the RP end is the publishing device and the EP end is the subscribing device. The publishing device first writes the point cloud data into the target storage space; then when 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-level ROS2 application. The operation of writing data to the target storage space is divided into two steps: serialization and direct memory access writing. The serialization operation can convert ROS2 format data into vector by calling ROS2's serialize_message() serialization method.<unit_8> Type, and then write the serialized data to the physical address of the RP device through memory copy to realize direct memory access transmission; the operation of reading memory data can also be divided into direct memory access reading and deserialization. First, get the binary message from the physical address of the EP device through memory copy, and then call ROS2's deserialize_message() deserialization method to convert the binary format into ROS2 point cloud format (sensor_msgs::msg::PointCloud2).

[0076] As an optional implementation, 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 acquired by the acquisition device; the second device is used to add segmentation information to the first point cloud data based on 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.

[0077] Optionally, in an embodiment of the present application, the first device includes but is not limited to a device for collecting point cloud data connected to multiple points, and the device for collecting point cloud data includes but is not limited to a laser radar and the like.

[0078] Optionally, in the embodiment of the present application, the segmentation information includes but is not limited to indicating whether the point cloud data is ground data or obstacle data, etc., or indicating the possibility that the point cloud data is obstacle data. By dividing the second point cloud data into multiple target sets and outputting the target sets through the segmentation information, the device after the point cloud data segmentation system can perform different operations 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 of point cloud data according to an embodiment of the present application, such as Figure 7 As shown, the point cloud data includes but is not limited to the point cloud data collected by the laser radar on the car, with the direction of travel of the car (default direction of the front of the car) as the positive direction of the coordinate axis (X) corresponding to the first coordinate value, and the first coordinate value as the basis to establish a spatial rectangular coordinate system including the coordinate axis corresponding to the first coordinate value, the coordinate axis corresponding to the second coordinate value (Y) and the coordinate axis corresponding to the third coordinate value (Z), and the X axis, Y axis and Z axis are mutually perpendicular. The data information of the point cloud data is used to indicate the coordinates of the point cloud data in the above spatial 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 established multiple threads can perform operations on different point cloud data at the same time, which can further accelerate the efficiency of point cloud data segmentation.

[0081] Through the above method, the point cloud data segmentation business is divided into at least three parts for execution, which increases the computing power used for the segmentation business, speeds up the segmentation speed of the point cloud data, and improves the segmentation efficiency of the point cloud data.

[0082] As an optional implementation, the second device includes multiple processors, and the multiple processors are all connected to the switching device; the first device is also used to divide the first point cloud data into multiple data sets, wherein each data set in the multiple data sets corresponds one-to-one to each processor in the multiple processors; each processor in the multiple processors is used to add segmentation information to the first point cloud data in the data set corresponding to the processor to obtain second point cloud data.

[0083] Through the above content, the second device includes multiple processors, and these multiple processors can be used to analyze and process different point cloud data at the same time. While introducing more computing power to speed up the segmentation of point cloud data, it further saves the time of performing segmentation business on point cloud data, and further improves the segmentation efficiency of point cloud data.

[0084] As an optional embodiment, 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 used to fuse the received multiple reference data sets into a target data set, wherein the multiple reference data sets are used to store 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 first point cloud data in the forward data set is greater than or equal to the 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 a forward data set and a 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 an embodiment of the present application, including but not limited to creating a reference number of fourth threads in the grouping module that matches the processing capability of the first device, dividing the fused first point cloud data into a reference number of sub-parts and assigning the reference number of sub-parts to a reference number of fourth threads to perform grouping operations on forward data sets and backward data sets, and then merging the obtained reference number of forward data subsets into a forward data set and merging the obtained reference number of backward data subsets into a backward data set, so as to fully utilize the processing capability of the first device and save the time of point cloud data segmentation.

[0086] As an optional implementation, 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 divide 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 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 the target number of first threads; the classification module is used 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 the target number of second threads, and determine the segmentation information according to the size relationship between the slope value and the slope threshold, to obtain the target number of second point cloud data of the second subset; and merge the target number of second subsets into a forward result set or a backward result set.

[0087] Optionally, in the embodiment of the present application, the axial angle θ of the first point cloud data is calculated, including but not limited to, 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 embodiment of the present application, the radial distance d of the first point cloud data is calculated, including but not limited to, by 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, including but not limited to, by the following formula: α=arctan(z / d), wherein z is the third coordinate value, y is the second coordinate value, and x is the first coordinate value.

[0090] As an optional implementation, 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 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 subset through the target number of third threads; the merging unit is used to segment the forward data set or the backward data set into a target number of first subsets according to the axial angle and the axial angle range of the target number.

[0091] Through the above content, the part of the point cloud data segmentation business executed by the second device is further subdivided into multiple operations and the multiple operations are divided into multiple modules, and multiple threads are used in each of the multiple modules to simultaneously execute operations on different data, thereby saving the time spent on the point cloud data segmentation business and improving the efficiency of point cloud data segmentation.

[0092] As an optional implementation, the third device includes a merging module and an output module; the merging module is used 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 segmentation information; the output module is used to output multiple target sets.

[0093] Optionally, in an embodiment 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, Figure 8 The structure of the point cloud data segmentation system according to the embodiment of the present application is Figure 3 ,like Figure 8As shown, the embodiment of the present application splits the segmentation business of point cloud data or the ground segmentation algorithm into 7 business functions, and assigns them to 7 independent functional modules for execution. These 7 independent functional modules are each encapsulated as an independent node, and the nodes transmit data through DDS subscription / publishing Topic. Data from multiple laser radars are accessed from processing device 1, and two nodes, point cloud fusion (i.e. fusion module) and point cloud grouping (i.e. grouping module) are arranged on processing device 1 (i.e. the first device mentioned above); four nodes, point cloud segmentation (i.e. segmentation unit), point cloud merging (i.e. merging unit), point cloud sorting (i.e. sorting module) and point cloud classification (i.e. classification module) are arranged on processing device 2 and processing device 3 (i.e. the first processor and the second processor in the second device mentioned above); and the front and rear point cloud merging nodes (i.e. merging modules) are arranged on processing device 4 (i.e. the third device mentioned above). Set processing device 1 as the master (master node) device, and assign the 7 nodes split out to the device by parsing config_node.yaml (a configuration file for configuring the parameters and settings of ROS nodes), and schedule them through SSH password-free access.

[0095] Specifically, processing devices 1-4 are interconnected through PCIE, on which DMA (Direct Memory Access) and ROS2 communication environment are arranged. Due to the huge throughput of point cloud data, ROS2 communication based on DDS middleware is limited by bandwidth, which makes the frame rate of large data transmission process unstable and the delay extremely high, and the transmission efficiency between devices is very low; while DMA transmission efficiency is very high and suitable for high-speed interaction of large data, but it is difficult to implement and is not suitable for complex format data transmission due to the influence of memory writing method. Therefore, this application uses ROS2 communication mode for data synchronization function, and entrusts large data transmission to DMA communication processing:

[0096] On processing device 1, the point cloud data obtained by multiple laser radars are spliced ​​in the point cloud fusion node. The point cloud data type is std::vector <pointcloudrefvector>, where PointCloudRefVector is a standard point cloud array object, including a string type Header and a dynamic array std::vector<pcl::PCLPointCloud2 ()> , 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 laser radar, and use the insert command to insert the point cloud data parts of multiple laser radars one by one in sequence. Then the point cloud fusion node transmits the data to the point cloud grouping node through shared memory. After the point cloud grouping node receives the data, it evenly divides the point cloud data into N data slices according to the point cloud data number, where N is equal to the number of CPU cores of the processing device 1. N data slices are bound to N threads. Each thread classifies the point cloud slice data into forward point cloud part and 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 by the horizontal angle. Then, the N forward point cloud parts and the N backward point cloud parts are spliced ​​separately, and the slice splicing of the forward point cloud part and the slice splicing of the backward point cloud part 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 method, and adds the same timestamp to the forward point cloud data and the backward point cloud data grouped in the same batch of data. Specifically, the forward point cloud data and the backward point cloud data are serialized, converted into binary format and written into the memory respectively. Then, the processing device 1 sends a signal to the processing device 2 and the processing device 3 through DDS. After subscribing to the message that the serialized point cloud data is written into the 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 forward point cloud data from processing device 1, and processing device 3 subscribes to 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 segmentation, point cloud merging, point cloud sorting, and point cloud classification nodes on them. Get 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 CPU cores K. The point cloud segmentation node first evenly splits the forward / backward point cloud data into K sub-point clouds according to the point cloud labels, and then evenly divides the K sub-point clouds into multiple sector-shaped areas according to the angular resolution of the laser radar. The sub-point clouds are segmented according to the axial angle θ = Round down for classification, corresponding to the horizontal angular resolution of the lidar , the number of sector areas is 360. Choose to bind the segmentation operation of K sub-point clouds to K threads for parallel acceleration. When the segmentation thread is in progress, the main thread is blocked. After the segmentation task is completed, synchronize the task and release the main thread; the point cloud merging module is used to splice the K sub-point clouds in each sector area to obtain the overall slicing grouping of the forward / backward point cloud data, and the splicing method is the same as before. Choose to bind the splicing of ceil(360 / K)*i to ceil(360 / K)*(i+1) sector dimensions to an independent thread, where i=0,.. .,K-1, represents the thread number, and ceil(x) is a round-up operation, representing the maximum integer not less than x. When the merging thread is in progress, the main thread is blocked. After the merging task is completed, synchronize the task and release the main thread; the point cloud sorting module is used to sort the point cloud data according to the radial distance in each group of point cloud slices (i.e. the first subset). The radial distance is defined as , select to bind the sorting tasks of 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 in progress, the main thread is blocked. After the sorting task is completed, synchronize the task and release the main thread; the global slope threshold will be preset according to the road conditions in the point cloud classification module and local slope threshold , traverse each group of sorted point cloud slices, label the point cloud data with classification labels by comparing the slope value of the point cloud data with the size of the global slope threshold and the local slope threshold, and obtain K second subsets. Select to bind the classification tasks of ceil(360 / K)*i to ceil(360 / K)*(i+1) fan-shaped dimensions to different independent threads, where i=0,…,K-1 represents the thread number. While the classification thread is in progress, the main thread is blocked. After the classification task is completed, synchronize the tasks and release the main thread. After all modules are completed, the forward / backward point cloud data and its classification labels are encapsulated into the same topic_Forward (that is, the forward result set mentioned above) / topic_Back (that is, the backward result set mentioned above), and sent to the processing device 4 through the aforementioned data transmission and communication scheduling method. Specifically, processing device 2 and processing device 3 serialize topic_Forward and topic_Back into binary format and write them into memory, and then send a signal to processing device 4 through DDS. After processing device 4 obtains the message and writes it into memory, it accesses the memory through DMA and serializes and restores the point cloud data.

[0098] The topic_Forward and topic_Back are received and decoded in the processing device 4. The timestamps of the two are compared, and if they match, they are merged, including the merging of point cloud data and the merging of classification labels, and finally released to the subsequent device for further analysis and processing of the point cloud data.

[0099] Through the above scheme, with the help of high-speed data transmission and communication scheduling between modules, through functional decomposition and thread acceleration, the serial structure ground segmentation algorithm is split into several business functions and deployed on multiple processing devices. The ROS2 function based on direct memory access communication between processing devices is used for message communication to achieve functional coordination, and the largest core of each processing device is fully deployed for parallel computing. The algorithm logic of the traditional ground segmentation method is optimized, the delay bottleneck of the autonomous driving framework is broken, and the L4 automotive grade autonomous driving is promoted.

[0100] From another perspective, this application provides an on-board computing architecture that interconnects multiple processing devices. It obtains high computing power through multi-core parallel acceleration to support laser radar point cloud processing tasks with large data throughput. This design can meet the computing requirements that are lacking in multi-lidar systems; it uses PCIE+DMA communication to implement point cloud subscription and publishing functions between multiple devices, breaks through the platform bandwidth limitation by physical address access, and integrates forward / backward point cloud data by comparing timestamps, realizing point cloud distribution and collaboration functions in a multi-processing device architecture; it innovatively optimizes and improves the ground segmentation algorithm, so that the algorithm can adapt to distributed computing environments, make full use of its abundant computing power for acceleration, reduce resource waste, and reduce the overall framework delay, which is conducive to the development of L4 automotive-grade autonomous driving.

[0101] The above description is only the preferred embodiment of the present application and is not intended to limit the present application. For those skilled in the art, the present application may have various modifications and variations. Any modification, equivalent replacement, improvement, etc. made within the principles 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 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 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 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 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

  • Method and apparatus for processing and aligning data point clouds

    US20150123995A1