Ground point cloud filtering method, device and equipment based on FPGA (Field Programmable Gate Array) and medium

By combining corrosion algorithm and fabric simulation filtering algorithm on the FPGA platform, data interaction and processing in the form of pipelines is used to solve the problems of slow data processing speed and poor real-time performance during ground point cloud filtering, and efficient and real-time ground point cloud filtering is achieved.

CN119991488APending Publication Date: 2025-05-13HUNAN INST OF ADVANCED TECH +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510087776.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-01-20
Publication Date
2025-05-13

AI Technical Summary

Technical Problem

In the prior art, the data processing speed is slow and the real-time performance is poor during the ground point cloud filtering process, especially in the fabric simulation filtering algorithm, the number of iteration controls is often increased, resulting in high computing power demand and reducing the speed and real-time performance of point cloud data processing.

Method used

The FPGA-based method is used to reduce the point cloud noise through the corrosion algorithm, and the cloth simulation filtering algorithm is used to filter and filter ground point cloud data. The data interaction and processing are carried out in the form of pipelines to reduce the iterative control time consumption of the cloth simulation filtering algorithm.

Benefits of technology

It realizes the fast processing speed and strong real-time performance of ground point cloud filtering, and reduces hardware resource consumption, and improves the efficiency and real-time performance of data processing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119991488A_ABST
    Figure CN119991488A_ABST
Patent Text Reader

Abstract

In order to solve the problems of slow data processing speed and poor real-time performance in a ground point cloud filtering method in the prior art, the invention provides a ground point cloud filtering method, device and equipment based on an FPGA (Field Programmable Gate Array) and a medium. The method comprises the following steps: preprocessing original point cloud data of image acquisition; performing point cloud noise reduction on the preprocessed point cloud data by adopting a corrosion algorithm; and inputting the denoised point cloud data into a plurality of cloth filtering iteration modules connected in series to execute a cloth simulation filtering algorithm, screening and filtering ground point cloud data, and obtaining and outputting point cloud filtering data. When the steps of the method are realized on a platform similar to an FPGA (Field Programmable Gate Array), data interaction and transmission in an assembly line form are adopted between a corrosion algorithm and a cloth simulation filtering algorithm and between a plurality of cloth filtering iteration modules, so that the real-time performance of data processing is improved, and the method has the characteristics of high data processing speed, high real-time performance and low hardware resource consumption.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of laser radar mapping data processing, in particular to the field of point cloud data filtering processing of radar mapping images, and specifically to a ground point cloud filtering method, device, equipment and medium based on FPGA. Background Art

[0002] With the rapid development of autonomous driving, smart cities and environmental detection technologies, the use of point cloud data to describe urban spatial structures has become a widely used method. In the process of urban building mapping, the point cloud data of urban spatial images obtained by sensors such as lidar usually contains a large amount of ground point cloud information, which will affect the accuracy of subsequent analysis and processing of building mapping data and modeling. By designing a reasonable ground point cloud filtering method, these ground point cloud information can be effectively removed, retaining the three-dimensional point cloud data of non-ground objects such as buildings, roads, and trees (hereinafter referred to as point cloud filtering data).

[0003] At present, the prior art generally adopts the method of first using a progressive triangulation encryption filtering algorithm or a cloth simulation filtering algorithm to perform preliminary processing on the point cloud data, and then designing and improving the algorithm for the preliminary processing results to improve the data processing accuracy of the filter. However, the above methods all face a problem, that is, while achieving accuracy improvement, the algorithm's demand for the computing power of the hardware equipment is also increasing. Therefore, under the condition of limited computing power conditions, the speed and real-time performance of point cloud data processing cannot be guaranteed. Especially in the cloth simulation filtering algorithm, in order to meet the higher accuracy requirements, the number of iterative control is required to be large, which greatly increases the algorithm's computing power requirements, reduces the processing speed of point cloud data, and loses the real-time performance of data processing.

[0004] FPGA (Programmable Gate Array) platform is a semi-custom circuit, which consists of programmable logic resources, programmable interconnection resources and programmable input and output resources. It has the characteristics of rich wiring resources, repeatable programming, high integration, high development efficiency and low investment. Using the above characteristics of FPGA platform, it is feasible to realize ground point cloud filtering based on FPGA platform. Summary of the invention

[0005] In view of this, in order to solve the technical problems of slow data processing speed and poor real-time performance in the process of ground point cloud filtering in the prior art, the present invention provides a ground point cloud filtering method, device, equipment and medium based on FPGA. The ground point cloud filtering method based on FPGA has the characteristics of fast processing speed, strong real-time performance and low hardware resource consumption.

[0006] A ground point cloud filtering method based on FPGA includes the following steps: Step S110: preprocessing the original point cloud data obtained by image acquisition; Step S120: using a corrosion algorithm to perform noise reduction processing on the pre-processed point cloud data to obtain denoised point cloud data; Step S130: screening and filtering the ground point cloud data with the denoised point cloud data using a cloth simulation filtering algorithm to obtain point cloud filtering data; the cloth simulation filtering algorithm and the corrosion algorithm interact and process data in a pipeline form; Step S140: outputting the point cloud filtering data.

[0007] Specifically, the step S120 includes: Set a size of The data window is an odd number; In the preprocessed point cloud data, any point cloud data is selected as the center point of the current data window, and the surrounding points including the center point are The pre-processed point cloud data is input into the current data window column by column. If there is empty data, it is recorded as 0. Count the number of valid values ​​in each column of the current data window respectively, and get The statistical numbers represent the corresponding The number of valid values ​​of the column data, Sum all the statistical numbers to obtain the total number of valid values ​​in the current data window; Using the total number of valid values, the current data window is surrounded by the center point In the data, the number of effective values ​​around the center point is counted, and the number of effective values ​​around the center point is compared with a set threshold value. If the number of effective values ​​around the center point is less than the threshold value, the data of the center point is removed from the point cloud data after preprocessing; The next point cloud data is selected from the preprocessed point cloud data, and the center point of the current data window is updated, until the above operations are performed on all the preprocessed point cloud data one by one, and the denoised point cloud data is obtained.

[0008] Further, in step S130, the denoised point cloud data is screened and filtered using a cloth simulation filtering algorithm to obtain point cloud filtering data, including: Step S131: cloth initialization, including: caching the input denoised point cloud data; obtaining the maximum value from the input denoised point cloud data, using the maximum value as the initial value of the simulated cloth, and obtaining the initial cloth point cloud data; and outputting the denoised point cloud data and the initial cloth point cloud data simultaneously; Step S132: Design A cloth filter iteration module, used to pass The cloth filter iteration realizes the iterative control of the algorithm; The cloth filter iteration modules are arranged in series, and data processing and transmission in the form of pipeline are performed between each of the cloth filter iteration modules, so as to reduce the time consumption of iterative control of the cloth simulation filter algorithm; the input data of the first cloth filter iteration module is the denoised point cloud data and the initial cloth point cloud data output in the previous step S131, and each cloth filter iteration module will output the denoised point cloud data and the cloth point cloud data after the cloth is moved as the input data of the next cloth filter iteration module; Step S133: The denoised point cloud data finally output by the cloth filtering iteration module is compared with the cloth point cloud data after the corresponding cloth is moved. If the difference between the two is less than a predetermined threshold, the denoised point cloud data is determined to be ground point cloud data, and the corresponding ground point cloud point is set as a filtering point, and the point cloud filtered data obtained after traversing and filtering the ground point cloud points is output.

[0009] Preferably, the cloth simulation filtering algorithm in step S130 and the point corrosion algorithm in step S120 perform data interaction and processing in a pipeline form, including transmitting the single denoised point cloud data obtained by the corrosion algorithm after consuming several system clock cycles one by one and performing cloth initialization, and starting to execute the cloth simulation filtering algorithm.

[0010] Specifically, the cloth filtering iteration module is used to realize cloth movement, including: Input denoised point cloud data and corresponding fabric point cloud data, each of the fabric point cloud data consists of a 1-bit flag bit f1 and an 8-bit unsigned number, and each of the denoised point cloud data is an 8-bit unsigned number; when the flag bit f1 is 1, it indicates that the fabric point cloud data is movable data; Perform a descending operation on the cloth. If f1 is 1 and the corresponding point cloud data is not 0, the cloth point cloud data is subtracted from the preset descending step length, and the cloth point cloud data after the descending operation is output; if the cloth point cloud data value after the descending operation is less than or equal to the corresponding denoised point cloud data value, or the corresponding denoised point cloud data value is 0, then f1 is revised to 0, and the cloth point cloud data value after the descending operation is revised to the corresponding denoised point cloud data value; Performing cloth movement between point clouds on the cloth point cloud data after the descending operation, including: using a The data window is used to count the number of points in each cloth point cloud data as the center point. The number of valid points in the current data window, and the average value of the valid points in the current data window are calculated, and the average value of the valid points is used as the cloth point cloud data value after the cloth moves between the point clouds; Using the value of the f1 flag in the data of the center point, the cloth point cloud data of the cloth filter iteration module is output. Specifically, when f1 is 1, the cloth point cloud data value after the cloth moves between the point clouds is selected as the cloth point cloud data output of the cloth filter iteration module, otherwise the cloth point cloud data output by the descending operation is selected as the cloth point cloud data output of the cloth filter iteration module; The denoised point cloud data and the cloth point cloud data are output as the denoised point cloud data and cloth point cloud data input for the next cloth filtering iteration module to perform the same operation as above.

[0011] The present invention also protects a ground point cloud filtering device based on FPGA, the device uses an FPGA platform to implement the steps of the above method, and the device includes the following modules: A data preprocessing module, used to preprocess the point cloud data acquired by the image using an external device, and input and store the preprocessed point cloud data into a data interaction module on the FPGA platform; A point cloud denoising module, used to perform denoising on the point cloud data preprocessed and stored in the data interaction module using a corrosion algorithm to obtain denoised point cloud data; A cloth simulation filtering module is used to screen and filter the ground point cloud data using the cloth simulation filtering algorithm to obtain point cloud filtering data, and store it in the data interaction module; the cloth simulation filtering algorithm and the corrosion algorithm interact and process data in a pipeline form; A data output module is used to output the point cloud filtering data in the data interaction module through an external device.

[0012] Specifically, the process of implementing noise reduction processing on the pre-processed point cloud data by the point cloud noise reduction module includes: Use registers to set a size The data window; Take any pre-processed point cloud data selected as the center point of the current data window, and input the surrounding 9 pre-processed point cloud data including the center point into the register and two first-in-first-out memories Fifo1 and Fifo2 one by one. The current data window, if there is empty data, it is recorded as 0; The number of valid values ​​of three columns of data in the current data window is counted respectively by three counters, and the three counters are Cnt_1, Cnt_2 and Cnt_3; the statistical process includes counting execution of three system clock cycles, and the initial values ​​of Cnt_1, Cnt_2 and Cnt_3 are all 0. When data is input in the first system clock cycle, Cnt_1, Cnt_2 and Cnt_3 respectively count the number of valid values ​​contained in each column in the current data window, and in the next system clock cycle, the counters Cnt_1, Cnt_2 and Cnt_3 perform the same counting operation, wherein Cnt_3 is the counting result of Cnt_2 in the previous system clock cycle, and Cnt_2 is the counting result of Cnt_1 in the previous system clock cycle; the data corresponding to Cnt_1, Cnt_2 and Cnt_3 in the current data window after three system clock cycles are all summed to obtain the total number of valid values ​​in the current data window; Using the total number of valid values, the number of valid values ​​around the center point is counted from the 8 data around the center point of the current data window, and the number of valid values ​​around is compared with a set threshold. If the number of valid values ​​around is less than the threshold, the data of the center point is removed from the point cloud data after preprocessing; The next point cloud data is selected from the preprocessed point cloud data, and the center point of the current data window is updated, until the above operations are performed on all the preprocessed point cloud data one by one, and the denoised point cloud data is obtained.

[0013] The process of screening and filtering the ground point cloud number by the cloth simulation filtering module includes: A cloth initialization module is built on the FPGA platform to realize cloth initialization in the cloth simulation filtering algorithm; the cloth initialization module mainly includes a Ram and a comparator, the comparator is used to obtain the maximum value from the input denoised point cloud data, and the maximum value is used as the initial value of the simulated cloth to obtain the initial cloth point cloud data, the Ram is used to cache the input denoised point cloud data, and output the denoised point cloud data and the initial cloth point cloud data simultaneously; Designed on the FPGA platform A cloth filter iteration module, used to pass The cloth filter iteration realizes the iterative control of the algorithm; The cloth filter iteration modules are arranged in series on the FPGA platform, and pipeline data processing and transmission are performed between each of the cloth filter iteration modules to reduce the time consumption of iterative control of the cloth simulation filter algorithm; the input data of the first cloth filter iteration module is the denoised point cloud data and the initial cloth point cloud data output by the cloth initialization module, and each cloth filter iteration module will output the denoised point cloud data and the cloth point cloud data after the cloth is moved as the input data of the next cloth filter iteration module; The first The denoised point cloud data finally output by the cloth filtering iteration module is compared with the cloth point cloud data after the corresponding cloth is moved. If the difference between the two is less than a predetermined threshold, the denoised point cloud data is determined to be ground point cloud data, and the corresponding ground point cloud point is set as a filtering point, and the point cloud filtered data obtained after traversing and filtering the ground point cloud points is output.

[0014] Preferably, the data interaction module is composed of two memories, which are arranged on the FPGA platform and connected to external devices through the Emif bus to control the data input and output of the FPGA; the number of cloth filter iteration modules connected in series on the FPGA platform is ; The external device that implements the data input function on the FPGA platform may be different from the external device that implements the data output function.

[0015] In addition, the present invention also protects a computer device, including a memory and a processor, wherein the memory stores a computer program, and when the processor executes the computer program, it implements any step of the aforementioned FPGA-based ground point cloud filtering method.

[0016] The present invention also protects a storage medium for storing a computer program, which, when executed by a processor, implements any step of the aforementioned FPGA-based ground point cloud filtering method.

[0017] In summary, the present invention provides a ground point cloud filtering method, device, equipment and medium based on FPGA. The ground point cloud filtering method completes the point cloud denoising process based on the corrosion algorithm and the ground point cloud filtering process based on the cloth simulation filtering algorithm, and constructs a pipeline data interaction and processing method between the corrosion algorithm and the cloth simulation filtering algorithm and within the cloth simulation filtering algorithm, thereby effectively improving the processing speed of the ground point cloud filtering and the real-time performance of the data processing. Specifically, when the method steps are implemented on a platform similar to FPGA, the pipelined data interaction and transmission constructed between the corrosion algorithm and the cloth simulation filtering algorithm enables the execution time of the two algorithms on the platform to overlap to a large extent, thereby improving the real-time performance of data processing and reducing the time consumption of the overall algorithm processing of the ground point cloud filtering; and when the cloth simulation filtering algorithm is executed on the platform, a plurality of cloth filtering iteration modules connected in series are designed for the cloth simulation filtering algorithm steps, and the plurality of cloth filtering iteration modules also use pipelined data interaction and transmission, which also improves the real-time performance of data processing and reduces the time consumption of the overall algorithm processing of the ground point cloud filtering. Moreover, since a single cloth filtering iteration module consumes less hardware resources, the hardware resource consumption of the ground point cloud filtering method of the present invention is also reduced. BRIEF DESCRIPTION OF THE DRAWINGS

[0018] Figure 1 This is a flowchart of the steps of the ground point cloud filtering method based on FPGA in the first embodiment of the present invention; Figure 2 It is a block diagram of the overall hardware implementation of the ground point cloud filtering device based on FPGA in the second embodiment of the present invention; Figure 3 The figure is a hardware implementation block diagram of the point cloud denoising module on the FPGA platform in the second embodiment of the present invention using the corrosion algorithm to perform point cloud denoising, wherein Data[7:0] is 8-bit data input or output, Reg[7:0] is an 8-bit register, Fifo1 and Fifo2 are first-in-first-out memories, Cnt_1, Cnt_2 and Cnt_3 are counters, Cache is a cache, and Sum is a summation module that implements the summation function on the hardware platform; Figure 4 : This is a hardware implementation block diagram of the ground point cloud filtering using the cloth simulation filtering module on the FPGA platform according to the second embodiment of the present invention, wherein Imag is the denoised point cloud data, Imag_valid is the denoised point cloud data with a valid value, Cloth_init is the cloth initial value or the input cloth point cloud data, Init_Valid is the cloth initial value or the input cloth point cloud data with a valid value, and xN represents the first A cloth filter processing module, Csfo_cloth is the cloth point cloud data output by the cloth simulation filter module, Csfo_valid is the cloth point cloud data with valid values ​​output by the cloth simulation filter module, and Data_out is the threshold processing result obtained after comparison with the threshold and data processing; Figure 5 The figure is a hardware implementation block diagram of the cloth filter iteration module on the FPGA platform in the second embodiment of the present invention to realize cloth movement, wherein imag[7:0] is 8-bit denoised point cloud data, f1 is a 1-bit flag, cloth_i is the input cloth point cloud data, cloth_d is the cloth point cloud data output during the cloth descent process, Reg[8:0] is a 9-bit register, Fifo1 and Fifo2 are first-in-first-out memories, is the data in the current data window, and cloth_o is the cloth point cloud data output by the cloth simulation filter module. DETAILED DESCRIPTION

[0019] In order to make the purpose, technical solution and advantages of the present invention more clearly understood, the present invention is further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present invention and are not used to limit the present invention.

[0020] In the first embodiment of the present invention, a ground point cloud filtering method based on FPGA is proposed to process ground point cloud filtering in the process of urban building surveying and mapping. Figure 1 As shown, the specific steps of the method include: Step S110: preprocessing the original point cloud data obtained by image acquisition; Step S120: using a corrosion algorithm to perform noise reduction processing on the pre-processed point cloud data to obtain denoised point cloud data; Step S130: screening and filtering the ground point cloud data with the denoised point cloud data using a cloth simulation filtering algorithm to obtain point cloud filtering data; the cloth simulation filtering algorithm and the corrosion algorithm interact and process data in a pipeline form; Step S140: outputting the point cloud filtering data.

[0021] Specifically, the original point cloud data obtained by image acquisition in step S110 may be image data acquired by a laser radar or other image acquisition equipment.

[0022] Specifically, the step S120 includes: Set a size of The data window is an odd number; In the preprocessed point cloud data, any point cloud data is selected as the center point of the current data window, and the surrounding points including the center point are The pre-processed point cloud data is input into the current data window column by column. If there is empty data, it is recorded as 0. Count the number of valid values ​​in each column of the current data window respectively, and get The statistical numbers represent the corresponding The number of valid values ​​of the column data, Sum all the statistical numbers to obtain the total number of valid values ​​in the current data window; Using the total number of valid values, the current data window is surrounded by the center point In the data, the number of effective values ​​around the center point is counted, and the number of effective values ​​around the center point is compared with a set threshold value. If the number of effective values ​​around the center point is less than the threshold value, the data of the center point is removed from the point cloud data after preprocessing; The next point cloud data is selected from the preprocessed point cloud data, and the center point of the current data window is updated, until the above operations are performed on all the preprocessed point cloud data one by one, and the denoised point cloud data is obtained.

[0023] Furthermore, in step S130, the denoised point cloud data is screened and filtered using a cloth simulation filtering algorithm to obtain point cloud filtering data, including: Step S131: cloth initialization, including: caching the input denoised point cloud data; obtaining the maximum value from the input denoised point cloud data, using the maximum value as the initial value of the simulated cloth, and obtaining the initial cloth point cloud data; and outputting the denoised point cloud data and the initial cloth point cloud data simultaneously; Step S132: Design A cloth filter iteration module, used to pass The cloth filter iteration realizes the iterative control of the algorithm; The cloth filter iteration modules are arranged in series, and data processing and transmission in the form of pipeline are performed between each of the cloth filter iteration modules, so as to reduce the time consumption of iterative control of the cloth simulation filter algorithm; the input data of the first cloth filter iteration module is the denoised point cloud data and the initial cloth point cloud data output in the previous step S131, and each cloth filter iteration module will output the denoised point cloud data and the cloth point cloud data after the cloth is moved as the input data of the next cloth filter iteration module; Step S133: The denoised point cloud data finally output by the cloth filtering iteration module is compared with the cloth point cloud data after the corresponding cloth is moved. If the difference between the two is less than a predetermined threshold, the denoised point cloud data is determined to be ground point cloud data, and the corresponding ground point cloud point is set as a filtering point, and the point cloud filtered data obtained after traversing and filtering the ground point cloud points is output.

[0024] Preferably, the cloth simulation filtering algorithm in step S130 and the point erosion algorithm in step S120 perform data interaction and processing in a pipeline form, including transmitting the single denoised point cloud data obtained by the erosion algorithm after consuming several system clock cycles one by one and performing cloth initialization, and starting to execute the cloth simulation filtering algorithm. The process of directly transmitting the calculation results of the single denoised point cloud data one by one reduces the overall delay of algorithm execution.

[0025] Furthermore, the cloth filtering iteration module is used to realize cloth movement under the action of "gravity" factor and "intermolecular force" factor, including: Input denoised point cloud data and corresponding fabric point cloud data, each of the fabric point cloud data consists of a 1-bit flag bit f1 and an 8-bit unsigned number, and each of the denoised point cloud data is an 8-bit unsigned number; when the flag bit f1 is 1, it indicates that the fabric point cloud data is movable data; Perform a lowering operation on the cloth, the lowering operation is the movement of the cloth under the action of the "gravity" factor, specifically including: if f1 is 1 and the corresponding point cloud data is not 0, the cloth point cloud data is subtracted from the preset lowering step length, and the cloth point cloud data after the lowering operation is output; if the cloth point cloud data value after the lowering operation is less than or equal to the corresponding denoised point cloud data value, or the corresponding denoised point cloud data value is 0, then f1 is revised to 0, and the cloth point cloud data value after the lowering operation is revised to the corresponding denoised point cloud data value; The cloth point cloud data after the descending operation is subjected to cloth movement between point clouds, wherein the cloth movement between point clouds is cloth movement under the action of the "intermolecular force" factor, specifically comprising: The data window is used to count the number of points in each cloth point cloud data as the center point. The number of valid points in the current data window, and the average value of the valid points in the current data window are calculated, and the average value of the valid points is used as the cloth point cloud data value after the cloth moves between the point clouds; Outputting cloth point cloud data of the cloth filter iteration module by using the value of the f1 flag in the data of the center point, specifically including: when f1 is 1, selecting the cloth point cloud data value after the cloth moves between the point clouds as the cloth point cloud data output of the cloth filter iteration module, otherwise selecting the cloth point cloud data output by the descending operation as the cloth point cloud data output of the cloth filter iteration module; The denoised point cloud data and the cloth point cloud data are output as the denoised point cloud data and cloth point cloud data input for the next cloth filtering iteration module to perform the same operation as above.

[0026] In the second embodiment, the present invention provides a ground point cloud filtering device based on FPGA, which uses the FPGA platform to implement the steps of the method described in the first embodiment, and the main purpose is to use the parallel processing capabilities of FPGA or similar platforms to achieve real-time data processing of point cloud data. The device specifically includes the following modules: A data preprocessing module, used to preprocess the point cloud data acquired by the image using an external device, and input and store the preprocessed point cloud data into a data interaction module on the FPGA platform; A point cloud denoising module, used to perform denoising on the point cloud data preprocessed and stored in the data interaction module using a corrosion algorithm to obtain denoised point cloud data; A cloth simulation filtering module is used to screen and filter the ground point cloud data using the cloth simulation filtering algorithm to obtain point cloud filtering data, and store it in the data interaction module; the cloth simulation filtering algorithm and the corrosion algorithm interact and process data in a pipeline form; A data output module is used to output the point cloud filtering data in the data interaction module through an external device.

[0027] Furthermore, the overall hardware implementation block diagram of the device is as follows: Figure 2 As shown, the data processing part of the ground point cloud filtering method based on FPGA specifically implements the corrosion algorithm for point cloud denoising through the point cloud denoising module built on the FPGA platform, and implements the cloth simulation filtering algorithm for ground point cloud filtering through the cloth simulation filtering module built on the FPGA platform. Figure 2 As shown, the data interaction module on the FPGA platform is connected to the external device through the Emif bus and performs data transmission.

[0028] Preferably, the process of implementing denoising on the pre-processed point cloud data by the point cloud denoising module on the FPGA platform includes: Use registers to set a size The data window; Take any pre-processed point cloud data selected as the center point of the current data window, and input the surrounding 9 pre-processed point cloud data including the center point into the register and two first-in-first-out memories Fifo1 and Fifo2 one by one. The current data window, if there is empty data, it is recorded as 0; The number of valid values ​​of three columns of data in the current data window is counted respectively by three counters, and the three counters are Cnt_1, Cnt_2 and Cnt_3 respectively; the statistical process includes counting execution of three system clock cycles, and the initial values ​​of Cnt_1, Cnt_2 and Cnt_3 are all 0. When data is input in the first system clock cycle, Cnt_1, Cnt_2 and Cnt_3 respectively count the number of valid values ​​contained in each column in the current data window, and in the next system clock cycle, the counters Cnt_1, Cnt_2 and Cnt_3 perform the same counting operation, wherein Cnt_3 is the counting result of Cnt_2 in the previous system clock cycle, and Cnt_2 is the counting result of Cnt_1 in the previous system clock cycle; the data corresponding to Cnt_1, Cnt_2 and Cnt_3 in the current data window after three system clock cycles are all summed up by a summing module (Sum) to obtain the total number of valid values ​​in the current data window; Using the total number of valid values, the number of valid values ​​around the center point is counted from the 8 data around the center point of the current data window, and the number of valid values ​​around is compared with a set threshold. If the number of valid values ​​around is less than the threshold, the data of the center point is removed from the point cloud data after preprocessing; The next point cloud data is selected from the preprocessed point cloud data, and the center point of the current data window is updated, until the above operations are performed on all the preprocessed point cloud data one by one, and the denoised point cloud data is obtained.

[0029] Specifically, the valid value refers to a non-zero point cloud data value. The above-mentioned registers, counters, caches and volatile random access memory Ram are all necessary components required to build an FPGA data processing hardware platform, among which the Ram memory has a significant advantage in reading and writing speed compared with the hard disk. The register caches the first row of data in the current data window, the first-in-first-out memory Fifo1 is used to cache the second row of data in the current data window, and the first-in-first-out memory Fifo2 is used to cache the third row of data in the current data window. In the scenario of the present invention, after the three rows of data are cached, they are input column by column into the The current data window is used to extract these data for output and subsequent data processing.

[0030] The three counters Cnt_1, Cnt_2 and Cnt_3 above constitute a set of counters with delay function, which are used to count data in different system clock cycles at different time points, and add these statistical results to get the total number of valid values ​​in the entire data window. This method is mainly used for real-time data processing, where data flows in continuously and needs to be counted and analyzed at a specific time point.

[0031] Furthermore, when the point cloud denoising module on the FPGA platform performs the corrosion algorithm operation, the single denoised point cloud data obtained after consuming several system clock cycles is directly transmitted one by one to the fabric simulation filtering module to start executing the fabric simulation filtering algorithm, thereby reducing the overall delay of the algorithm execution. There is no need to execute the corrosion algorithm on all the data and then uniformly transmit them to the fabric simulation filtering module to execute the algorithm operation, which greatly improves the data processing speed and real-time performance.

[0032] Specifically, Figure 4 As shown, the process of implementing the screening and filtering of the ground point cloud number by the cloth simulation filtering module on the FPGA platform includes: A cloth initialization module is built on the FPGA platform to realize cloth initialization in the cloth simulation filtering algorithm; the cloth initialization module mainly includes a Ram and a comparator, the comparator is used to obtain the maximum value from the input denoised point cloud data, and the maximum value is used as the initial value of the simulated cloth to obtain the initial cloth point cloud data, the Ram is used to cache the input denoised point cloud data, and output the denoised point cloud data and the initial cloth point cloud data simultaneously; Designed on the FPGA platform A cloth filter iteration module, used to pass The cloth filter iteration realizes the iterative control of the algorithm; The cloth filter iteration modules are arranged in series on the FPGA platform, and pipeline data processing and transmission are performed between each of the cloth filter iteration modules to reduce the time consumption of iterative control of the cloth simulation filter algorithm; the input data of the first cloth filter iteration module is the denoised point cloud data and the initial cloth point cloud data output by the cloth initialization module, and each cloth filter iteration module will output the denoised point cloud data and the cloth point cloud data after the cloth is moved as the input data of the next cloth filter iteration module; The first The denoised point cloud data finally output by the cloth filtering iteration module is compared with the cloth point cloud data after the corresponding cloth is moved. If the difference between the two is less than a predetermined threshold, the denoised point cloud data is determined to be ground point cloud data, and the corresponding ground point cloud point is set as a filtering point, and the point cloud filtered data obtained after traversing and filtering the ground point cloud points is output.

[0033] Furthermore, the hardware implementation block diagram of each cloth filter iteration module on the FPGA platform performing cloth movement in the method of the first embodiment is as follows: Figure 5 As shown, imag[7:0] is 8-bit denoised point cloud data, f1 is a 1-bit flag, cloth_i is the input cloth point cloud data, cloth_d is the cloth point cloud data output during the cloth descent process, Reg[8:0] is a 9-bit register, Fifo1 and Fifo2 are first-in-first-out memories, It is the data in the current data window, and cloth_o[7:0] is the 8-bit cloth point cloud data output by the cloth simulation filter module.

[0034] Preferably, data processing and transmission in the form of pipeline are implemented between multiple cloth filter iteration modules on the FPGA platform, which further speeds up the data processing speed of the algorithm. In addition, the number of cloth filter iteration modules required for this pipeline iterative control process is limited. Since a single cloth filter iteration module consumes less hardware resources, the hardware resources consumed by the FPGA-based ground point cloud filtering device in this embodiment to execute the algorithm steps are comprehensively reduced.

[0035] In the third embodiment of the present invention, the number of fabric filter iteration modules used to implement the fabric simulation filter algorithm for iterative control is set The data interaction module on the FPGA platform is composed of two memories. After testing, the time consumed for performing ground point cloud filtering processing on a 512×512 point cloud image under a 100Mhz clock frequency using the method of the present invention is about 5.3ms.

[0036] Furthermore, the external device that implements the data input function and the external device that implements the data output function on the FPGA platform may be different.

[0037] Furthermore, in addition to FPGA, the hardware platform used to implement the data processing of the ground point cloud filtering method steps in the second embodiment can also be other hardware structure platforms with the same or similar data parallel processing capabilities.

[0038] In one embodiment, the present invention also provides a computer device, including a memory and a processor, wherein the memory stores a computer program, and when the processor executes the computer program, the steps of the FPGA-based ground point cloud filtering method described in the aforementioned embodiment are implemented.

[0039] Those skilled in the art will appreciate that the description of the technical features of the devices in the above embodiments does not constitute a limitation on all devices to which the present invention is applied, and a specific device may include more or fewer components, or combine certain components, or have a different arrangement of components.

[0040] In another embodiment of the present invention, a storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the steps of the FPGA-based ground point cloud filtering method described in the above-mentioned embodiment are implemented.

[0041] A person of ordinary skill in the art can understand that all or part of the processes of implementing the aforementioned embodiment method can be completed by instructing related hardware through a computer program. The computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the embodiment process of the FPGA-based ground point cloud filtering method.

[0042] The technical features of the above embodiments may be combined arbitrarily. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.

[0043] The above-mentioned embodiments only express several implementation methods of the present invention, and the descriptions thereof are relatively specific and detailed, but they cannot be understood as limiting the scope of the invention patent. It should be pointed out that, for ordinary technicians in this field, several variations and improvements can be made without departing from the concept of the present invention, and these all belong to the protection scope of the present invention. Therefore, the protection scope of the patent of the present invention shall be subject to the attached claims.

Claims

1. A ground point cloud filtering method based on FPGA, characterized in that: The method comprises the following steps: Step S110: preprocessing the original point cloud data obtained by image acquisition; Step S120: using a corrosion algorithm to perform noise reduction processing on the pre-processed point cloud data to obtain denoised point cloud data; Step S130: screening and filtering the ground point cloud data with the denoised point cloud data using a cloth simulation filtering algorithm to obtain point cloud filtering data; the cloth simulation filtering algorithm and the corrosion algorithm interact and process data in a pipeline form; Step S140: outputting the point cloud filtering data.

2. The FPGA-based ground point cloud filtering method according to claim 1, characterized in that: The step S120 includes: Set a size of The data window is an odd number; In the preprocessed point cloud data, any point cloud data is selected as the center point of the current data window, and the surrounding points including the center point are The pre-processed point cloud data is input into the current data window column by column. If there is empty data, it is recorded as 0. Count the number of valid values ​​in each column of the current data window respectively, and get The statistical numbers represent the corresponding The number of valid values ​​of the column data, Sum all the statistical numbers to obtain the total number of valid values ​​in the current data window; Using the total number of valid values, the current data window is surrounded by the center point In the data, the number of effective values ​​around the center point is counted, and the number of effective values ​​around the center point is compared with a set threshold value. If the number of effective values ​​around the center point is less than the threshold value, the data of the center point is removed from the point cloud data after preprocessing; The next point cloud data is selected from the preprocessed point cloud data, and the center point of the current data window is updated, until the above operations are performed on all the preprocessed point cloud data one by one, and the denoised point cloud data is obtained.

3. The FPGA-based ground point cloud filtering method according to claim 2, characterized in that: In the step S130, the denoised point cloud data is screened and filtered using a cloth simulation filtering algorithm to obtain point cloud filtering data, including: Step S131: cloth initialization, including: caching the input denoised point cloud data; obtaining the maximum value from the input denoised point cloud data, using the maximum value as the initial value of the simulated cloth, and obtaining the initial cloth point cloud data; and outputting the denoised point cloud data and the initial cloth point cloud data simultaneously; Step S132: Design A cloth filter iteration module is used to pass The cloth filter iteration realizes the iterative control of the algorithm; The cloth filter iteration modules are arranged in series, and data processing and transmission in the form of pipeline are performed between each of the cloth filter iteration modules, so as to reduce the time consumption of iterative control of the cloth simulation filter algorithm; the input data of the first cloth filter iteration module is the denoised point cloud data and the initial cloth point cloud data output in the previous step S131, and each cloth filter iteration module will output the denoised point cloud data and the cloth point cloud data after the cloth is moved as the input data of the next cloth filter iteration module; Step S133: The denoised point cloud data finally output by the cloth filtering iteration module is compared with the cloth point cloud data after the corresponding cloth is moved. If the difference between the two is less than a predetermined threshold, the denoised point cloud data is determined to be ground point cloud data, and the corresponding ground point cloud point is set as a filtering point, and the point cloud filtered data obtained after traversing and filtering the ground point cloud points is output.

4. The FPGA-based ground point cloud filtering method according to claim 3, characterized in that: The cloth simulation filtering algorithm in step S130 and the point corrosion algorithm in step S120 perform data interaction and processing in a pipeline form, including transmitting the single denoised point cloud data obtained by the corrosion algorithm after consuming several system clock cycles one by one and performing cloth initialization, and starting to execute the cloth simulation filtering algorithm.

5. The FPGA-based ground point cloud filtering method according to claim 4, characterized in that: The cloth filtering iteration module is used to realize cloth movement, including: Input denoised point cloud data and corresponding fabric point cloud data, each of the fabric point cloud data consists of a 1-bit flag bit f1 and an 8-bit unsigned number, and each of the denoised point cloud data is an 8-bit unsigned number; when the flag bit f1 is 1, it indicates that the fabric point cloud data is movable data; Perform a descending operation on the cloth. If f1 is 1 and the corresponding point cloud data is not 0, the cloth point cloud data is subtracted from the preset descending step length, and the cloth point cloud data after the descending operation is output; if the cloth point cloud data value after the descending operation is less than or equal to the corresponding denoised point cloud data value, or the corresponding denoised point cloud data value is 0, then f1 is revised to 0, and the cloth point cloud data value after the descending operation is revised to the corresponding denoised point cloud data value; Performing cloth movement between point clouds on the cloth point cloud data after the descending operation, including: using a The data window is used to count the number of points in each cloth point cloud data as the center point. The number of valid points in the current data window, and the average value of the valid points in the current data window are calculated, and the average value of the valid points is used as the cloth point cloud data value after the cloth moves between the point clouds; Using the value of the f1 flag in the data of the center point, the cloth point cloud data of the cloth filter iteration module is output. Specifically, when f1 is 1, the cloth point cloud data value after the cloth moves between the point clouds is selected as the cloth point cloud data output of the cloth filter iteration module, otherwise the cloth point cloud data output by the descending operation is selected as the cloth point cloud data output of the cloth filter iteration module; The denoised point cloud data and the cloth point cloud data are output as the denoised point cloud data and cloth point cloud data input for the next cloth filtering iteration module to perform the same operation as above.

6. A ground point cloud filtering device based on FPGA, characterized in that: The device uses an FPGA platform to implement the method steps as claimed in claim 1, and the device includes the following modules: A data preprocessing module, used to preprocess the point cloud data acquired by the image using an external device, and input and store the preprocessed point cloud data into a data interaction module on the FPGA platform; A point cloud denoising module, used to perform denoising on the point cloud data preprocessed and stored in the data interaction module using a corrosion algorithm to obtain denoised point cloud data; A cloth simulation filtering module is used to screen and filter the ground point cloud data using the cloth simulation filtering algorithm to obtain point cloud filtering data, and store it in the data interaction module; the cloth simulation filtering algorithm and the corrosion algorithm interact and process data in a pipeline form; A data output module is used to output the point cloud filtering data in the data interaction module through an external device.

7. The FPGA-based ground point cloud filtering device according to claim 6, characterized in that: The process of implementing noise reduction processing on the pre-processed point cloud data by the point cloud noise reduction module includes: Set a size of The data window; Take any pre-processed point cloud data selected as the center point of the current data window, and input the surrounding 9 pre-processed point cloud data including the center point into the register and two first-in-first-out memories Fifo1 and Fifo2 one by one. The current data window, if there is empty data, it is recorded as 0; The number of valid values ​​of three columns of data in the current data window is counted respectively by three counters, and the three counters are Cnt_1, Cnt_2 and Cnt_3; the statistical process includes counting execution of three system clock cycles, and the initial values ​​of Cnt_1, Cnt_2 and Cnt_3 are all 0. When data is input in the first system clock cycle, Cnt_1, Cnt_2 and Cnt_3 respectively count the number of valid values ​​contained in each column in the current data window, and in the next system clock cycle, the counters Cnt_1, Cnt_2 and Cnt_3 perform the same counting operation, wherein Cnt_3 is the counting result of Cnt_2 in the previous system clock cycle, and Cnt_2 is the counting result of Cnt_1 in the previous system clock cycle; the data corresponding to Cnt_1, Cnt_2 and Cnt_3 in the current data window after three system clock cycles are all summed to obtain the total number of valid values ​​in the current data window; Using the total number of valid values, the number of valid values ​​around the center point is counted from the 8 data around the center point of the current data window, and the number of valid values ​​around is compared with a set threshold. If the number of valid values ​​around is less than the threshold, the data of the center point is removed from the point cloud data after preprocessing; Select the next point cloud data from the preprocessed point cloud data, and update the center point of the current data window, until all the preprocessed point cloud data are subjected to the above operations one by one, thereby obtaining denoised point cloud data; The process of screening and filtering the ground point cloud number by the cloth simulation filtering module includes: A cloth initialization module is built on the FPGA platform to realize cloth initialization in the cloth simulation filtering algorithm; the cloth initialization module mainly includes a Ram and a comparator, the comparator is used to obtain the maximum value from the input denoised point cloud data, and the maximum value is used as the initial value of the simulated cloth to obtain the initial cloth point cloud data, the Ram is used to cache the input denoised point cloud data, and output the denoised point cloud data and the initial cloth point cloud data simultaneously; Designed on the FPGA platform A cloth filter iteration module is used to pass The cloth filter iteration realizes the iterative control of the algorithm; The cloth filter iteration modules are arranged in series on the FPGA platform, and pipeline data processing and transmission are performed between each of the cloth filter iteration modules to reduce the time consumption of iterative control of the cloth simulation filter algorithm; the input data of the first cloth filter iteration module is the denoised point cloud data and the initial cloth point cloud data output by the cloth initialization module, and each cloth filter iteration module will output the denoised point cloud data and the cloth point cloud data after the cloth is moved as the input data of the next cloth filter iteration module; The first The denoised point cloud data finally output by the cloth filtering iteration module is compared with the cloth point cloud data after the corresponding cloth is moved. If the difference between the two is less than a predetermined threshold, the denoised point cloud data is determined to be ground point cloud data, and the corresponding ground point cloud point is set as a filtering point, and the point cloud filtered data obtained after traversing and filtering the ground point cloud points is output.

8. The FPGA-based ground point cloud filtering device according to claim 7, characterized in that: The data interaction module consists of two memories, which are arranged on the FPGA platform and connected to external devices through the Emif bus to control the data input and output of the FPGA; the number of cloth filter iteration modules connected in series on the FPGA platform ; The external device that implements the data input function on the FPGA platform may be different from the external device that implements the data output function.

9. A computer device comprising a memory and a processor, wherein the memory stores a computer program, wherein: When the processor executes the computer program, the steps of the method according to any one of claims 1 to 5 are implemented.

10. A storage medium for storing a computer program, characterized in that: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 5 are implemented.