Point cloud filtering technology
By identifying and removing false alarm points in the FMCW LiDAR system, and utilizing statistical information and contextual data from neighboring points, multiple filters were designed to solve the problem of incorrect estimation caused by ghosting points and noise points in the LiDAR system, thereby improving the accuracy of target range and velocity.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- AEVA INC
- Filing Date
- 2021-10-08
- Publication Date
- 2026-07-31
AI Technical Summary
The presence of ghosting and noise points in the FMCW LiDAR system leads to incorrect target range and velocity estimations, which are difficult to effectively filter using existing technologies.
By identifying the characteristics of false alarm points, and utilizing the statistical information and contextual data of neighboring points, multiple filters are designed to identify and remove false alarm points, generating a point cloud free of false alarm points.
It effectively eliminated false alarms, improved the accuracy of target range and velocity estimation in the LiDAR system, and reduced the occurrence of ghosted objects.
Smart Images

Figure CN116507984B_ABST
Abstract
Description
[0001] Related applications
[0002] This application claims the benefit of U.S. Patent Application No. 17 / 398,895, filed August 10, 2021, pursuant to 35 U.S. SC § 119(e), which claims priority and benefit to U.S. Provisional Patent Application No. 63 / 092,228, filed October 15, 2020, the entire contents of which are incorporated herein by reference. Technical Field
[0003] This invention generally relates to point set or point cloud filtering techniques, and more specifically, to point set or point cloud filtering techniques used in optical detection and ranging (LiDAR) systems. Background Technology
[0004] Frequency-modulated continuous wave (FMCW) LiDAR systems include several potential phase impairments, such as laser phase noise, circuit phase noise, flicker noise from the laser injected by driving electronics, temperature / weather drift, and chirp rate shift. FMCW LiDAR point clouds may exhibit different noise patterns, potentially due to incorrect peak matching leading to the false detection of points present in the field (even when nothing is actually there). For example, when an FMCW LiDAR is pointed at a fence or bushes, multiple ghosting points may appear in the field between the LiDAR and the fence. If these ghosting or noise points, which are also classified as false alarms (FAs), are not filtered out, ghosted objects may be introduced, leading to errors in the estimated target range / velocity. Summary of the Invention
[0005] This invention describes various examples of point cloud filters in LiDAR systems.
[0006] In some examples, this paper discloses a method for filtering point clouds. FA points and regions can be identified using the characteristic features that distinguish FA points from true detections. When the point cloud is fed to a filtering algorithm (referred to herein as a filter), the filter works on one or more points called points of interest (POIs) at a given time. Some points and statistics from the neighborhood of the POI can be provided to the filter to provide context. Decisions for the POI can be made using the context to check whether the characteristics of the POI are consistent with those of its neighbors. The context can include contextual data surrounding the POI to help the filter make decisions for the POI by checking the consistency between the POI and its neighbors. Different metrics can be developed to quantify these statistics / characteristics. Multiple filters can be designed to identify FA points with characteristics different from those of the point cloud. The identified FA points are then modified or removed from the point cloud. The resulting point cloud is a filtered version of the original point cloud without the FA points. For example, a filter can iteratively acquire points of interest (POIs) from a point cloud, select points in the neighborhood of the POI to provide context to the filter, and compute metrics on the POI and its neighborhood points, and then (e.g., based on the computed metrics) make a decision to retain, remove, or modify the POI.
[0007] In some examples, this paper discloses a method for filtering points in a point cloud. A set of Points of Interest (POIs) in the point cloud is received at a first filter, where each POI in the set comprises one or more points. Each POI in the set is filtered. A set of neighborhood points of the POI is selected. A metric of the neighborhood point set is calculated. Based on the metric, it is determined whether to accept the POI, modify the POI, reject the POI, or send the POI to a second filter to extract at least one of target-related range and velocity information. If the POI is accepted or modified, it is sent to the filtered point cloud to extract at least one of target-related range and velocity information; if the POI is rejected, it is prevented from reaching the filtered point cloud; if the POI is neither accepted, modified, nor rejected, it is sent to the second filter to determine whether to accept, modify, or reject the POI, thereby extracting at least one of target-related range and velocity information.
[0008] In some examples, this document discloses a LiDAR system. The LiDAR system includes a processor and a memory for storing instructions, which, when executed by the processor, cause the system to receive a set of Point Indicators (POIs) of a point cloud at a first filter, wherein each POI in the set comprises one or more points. The system is also configured to filter each POI in the set. The system is configured to select a set of neighborhood points of the POI; calculate a metric of the neighborhood point set; and, based on the metric, determine whether to accept the POI, modify the POI, reject the POI, or send the POI to a second filter to extract at least one of target-related range and velocity information. If the POI is accepted or modified, the system sends the POI to the filtered point cloud to extract at least one of target-related range and velocity information; if the POI is rejected, the system prevents the POI from reaching the filtered point cloud; if the POI is neither accepted, modified, nor rejected, the system sends the POI to the second filter to determine whether to accept the POI, modify the POI, or reject the POI to extract at least one of target-related range and velocity information.
[0009] In some examples, this document discloses a LiDAR system. The LiDAR system includes a light source for emitting a portion of an optical signal toward a target, an optical receiver for receiving a return beam from the target based on the optical signal, circuitry, and a memory for storing instructions, which, when executed by a processor, cause the system to receive a set of Point Indicators (POIs) of a point cloud at a first filter, wherein each POI in the set comprises one or more points. The system also filters each POI in the set. The system is used to select a set of neighboring points of a POI; calculate a metric for the set of neighboring points; and, based on the metric, determine whether to accept the POI, modify the POI, reject the POI, or send the POI to a second filter to extract at least one of range and velocity information related to the target. If a POI is accepted or modified, the system sends the POI to the filtered point cloud to extract at least one of the range and velocity information related to the target; if a POI is rejected, the system prevents the POI from reaching the filtered point cloud; if a POI is neither accepted, modified, nor rejected, the system sends the POI to a second filter to determine whether to accept, modify, or reject the POI in order to extract at least one of the range and velocity information related to the target.
[0010] It should be understood that although one or more embodiments of the present invention describe the use of point clouds, the embodiments of the present invention are not limited thereto and may include, but are not limited to, the use of point sets, etc.
[0011] These and other aspects of the invention will become apparent from the following detailed description and the accompanying drawings, which will be briefly described below. The invention includes any combination of two, three, four, or more features or elements set forth herein, regardless of whether such features or elements are explicitly combined or otherwise set forth in the particular example implementation described herein. The invention is intended to be read holistically such that any separable feature or element of the invention should be considered composable in any aspect and example of the invention, unless the context of the invention clearly provides otherwise.
[0012] Therefore, it should be understood that this summary is provided merely to summarize some examples to provide a basic understanding of some aspects of the invention, and is not intended to limit or narrow the scope or spirit of the invention in any way. Other examples, aspects, and advantages will become apparent from the following detailed description taken in conjunction with the accompanying drawings, which illustrate the principles of the described embodiments. Attached Figure Description
[0013] To gain a more comprehensive understanding of the various examples, reference is now made to the following detailed description taken in conjunction with the accompanying drawings, in which similar reference numerals correspond to similar elements:
[0014] Figure 1A This is a block diagram illustrating an example LiDAR system according to an embodiment of the present invention.
[0015] Figure 1B This is a block diagram illustrating an example of a point cloud filtering module of a LiDAR system according to an embodiment of the present invention.
[0016] Figure 2 This is a time-frequency diagram illustrating an example of an FMCW LiDAR waveform according to an embodiment of the present invention.
[0017] Figure 3A This is a block diagram illustrating an example of a point cloud filter according to an embodiment of the present invention.
[0018] Figure 3B This is a block diagram illustrating an example of a filter core for a point cloud filter according to an embodiment of the present invention.
[0019] Figure 4A This is a block diagram illustrating an example of a filter core according to an embodiment of the present invention.
[0020] Figure 4B This is a block diagram illustrating another example of a filter core according to an embodiment of the present invention.
[0021] Figure 5A This is a block diagram illustrating yet another example of a filter core according to an embodiment of the present invention.
[0022] Figure 5BThis is a block diagram illustrating yet another example of a filter core according to an embodiment of the present invention.
[0023] Figure 6 This is a flowchart illustrating an example of filtering processing of a point cloud filter according to an embodiment of the present invention.
[0024] Figure 7 This is a block diagram illustrating an example of filtering a point cloud according to an embodiment of the present invention. Detailed Implementation
[0025] Various embodiments and aspects of the invention will be described with reference to the details discussed below, and the accompanying drawings will illustrate various embodiments. The following description and drawings are illustrative of the invention and should not be construed as limiting the invention. Numerous specific details are described to provide a thorough understanding of various embodiments of the invention. However, in some cases, well-known or conventional details have not been described in order to provide a concise discussion of embodiments of the invention.
[0026] The LiDAR system described herein can be implemented in any sensing market, such as, but not limited to, transportation, manufacturing, metrology, medical, virtual reality, augmented reality, and security systems. According to some embodiments, the described LiDAR system can be implemented as part of the front end of a frequency modulated continuous wave (FMCW) device that assists automated driver assistance systems or autonomous vehicles in spatial perception.
[0027] Figure 1A An example implementation of a LiDAR system 100 according to the present invention is illustrated. The LiDAR system 100 includes one or more of a plurality of components, but may include more than one of a plurality of components. Figure 1A The components shown are fewer or more. According to some embodiments, one or more of the components described herein with respect to the LiDAR system 100 may be implemented on a photonic chip. The optical circuitry 101 may include a combination of active and passive optical components. Active optical components may generate, amplify, and / or detect optical signals, etc. In some examples, active optical components include light beams of different wavelengths and include one or more optical amplifiers, one or more optical detectors, etc.
[0028] Free-space optics 115 may include one or more optical waveguides to carry optical signals and to route and manipulate the optical signals to appropriate input / output ports of active optical circuitry. Free-space optics 115 may also include one or more optical components, such as taps, wavelength division multiplexers (WDMs), beam splitters / combiners, polarization beam splitters (PBSs), collimators, couplers, etc. In some examples, free-space optics 115 may include, for example, components for transforming polarization states and guiding received polarized light to an optical detector using a PBS. Free-space optics 115 may also include diffraction elements to deflect beams of different frequencies at different angles.
[0029] In some examples, the LiDAR system 100 includes an optical scanner 102 comprising one or more scanning mirrors rotatable along an axis orthogonal or substantially orthogonal to the fast-moving axis of the diffraction element (e.g., a slow-moving axis) to guide optical signals to scan a target environment according to a scanning pattern. For example, the scanning mirrors may be rotatable via one or more galvanometers. Objects in the target environment may scatter incident light into an echo beam or target echo signal. The optical scanner 102 also collects the echo beam or target echo signal, which may be returned to passive optical circuitry components of the optical circuitry 101. For example, the echo beam may be guided to an optical detector via a polarizing beam splitter. In addition to the mirrors and galvanometers, the optical scanner 102 may also include components such as quarter-wave plates, lenses, anti-reflective coated windows, etc.
[0030] To control and support the optical circuitry 101 and the optical scanner 102, the LiDAR system 100 includes a LiDAR control system 110. The LiDAR control system 110 may include processing means for the LiDAR system 100. In some examples, the processing means may be one or more general-purpose processing means, such as a microprocessor, a central processing unit, etc. More specifically, the processing means may be a Complex Instruction Set Computing (CISC) microprocessor, a Reduced Instruction Set Computer (RISC) microprocessor, a Very Long Instruction Word (VLIW) microprocessor, or a processor implementing other instruction sets, or a processor implementing combinations of instruction sets. The processing means may also be one or more special-purpose processing means, such as an Application-Specific Integrated Circuit (ASIC), a Field-Programmable Gate Array (FPGA), a Digital Signal Processor (DSP), a network processor, etc.
[0031] In some examples, the LiDAR control system 110 may include a signal processing unit 112, such as a digital signal processor (DSP). The LiDAR control system 110 is configured to output digital control signals to control the optical driver 103. In some examples, the digital control signals may be converted into analog signals by a signal conversion unit 106. For example, the signal conversion unit 106 may include a digital-to-analog converter. The optical driver 103 can then provide drive signals to the active optical components of the optical circuit 101 to drive light sources such as lasers and amplifiers. In some examples, several optical drivers 103 and signal conversion units 106 may be provided to drive multiple light sources.
[0032] The LiDAR control system 110 is also configured to output digital control signals for the optical scanner 102. The motion control system 105 can control the galvanometer of the optical scanner 102 based on the control signals received from the LiDAR control system 110. For example, a digital-to-analog converter (DAC) can convert coordinate routing information from the LiDAR control system 110 into signals that can be interpreted by the galvanometer in the optical scanner 102. In some examples, the motion control system 105 can also return information to the LiDAR control system 110 relating to the position or operation of components of the optical scanner 102. For example, an DAC can instead convert information about the galvanometer position into signals that can be interpreted by the LiDAR control system 110.
[0033] The LiDAR control system 110 is also configured to analyze incoming digital signals. In this regard, the LiDAR system 100 includes an optical receiver 104 for measuring one or more beams received by the optical circuitry 101. For example, a reference beam receiver may measure the amplitude of a reference beam from active optical components, and an analog-to-digital converter converts the signal from the reference receiver into a signal interpretable by the LiDAR control system 110. A target receiver measures an optical signal in the form of a beat-modulated optical signal carrying information related to the range and velocity of the target. The reflected beam may be mixed with a second signal from a local oscillator. The optical receiver 104 may include a high-speed analog-to-digital converter to convert the signal from the target receiver into a signal interpretable by the LiDAR control system 110. In some examples, the signal from the optical receiver 104 may be signal-conditioned by a signal conditioning unit 107 before being received by the LiDAR control system 110. For example, the signal from the optical receiver 104 may be provided to an operational amplifier to amplify the received signal, and the amplified signal may be provided to the LiDAR control system 110.
[0034] In some applications, LiDAR system 100 may additionally include one or more imaging devices 108 configured to capture images of the environment, a Global Positioning System 109 configured to provide the system's geographic location, or other sensor inputs. LiDAR system 100 may also include an image processing system 114. Image processing system 114 may be configured to receive images and geographic locations, and to transmit the images and locations, or related information, to LiDAR control system 110 or other systems connected to LiDAR system 100.
[0035] In some example operations, the LiDAR system 100 is configured to use a non-degradable light source to simultaneously measure range and velocity across two dimensions. This capability allows for real-time, remote measurement of the range, velocity, azimuth, and elevation of the surrounding environment.
[0036] In some examples, the scanning process begins with an optical driver 103 and a LiDAR control system 110. The LiDAR control system 110 instructs the optical driver 103 to independently modulate one or more beams, and these modulated signals are propagated through passive optical circuitry to a collimator. The collimator guides the light at an optical scanning system that scans the environment on a pre-programmed pattern defined by a motion control system 105. The optical circuitry 101 may also include a polarizing waveplate (PWP) to change the polarization of the light as it leaves the optical circuitry 101. In some examples, the polarizing waveplate may be a quarter-wave plate or a half-wave plate. A portion of the polarized light may also be reflected back to the optical circuitry 101. For example, the lens or collimation system used in the LiDAR system 100 may have natural reflective properties or a reflective coating to reflect a portion of the light back to the optical circuitry 101.
[0037] The optical signal reflected from the environment is transmitted to the receiver via optical circuit 101. Since the polarization of the light has been transformed, it can be reflected together with a portion of the polarized light reflected back to optical circuit 101 by a polarization beamsplitter. Therefore, the reflected light does not return to the same fiber or waveguide as the light source, but is reflected to a separate optical receiver. These signals interfere with each other and generate a combined signal. The individual beams of signal returning from the target produce time-shifted waveforms. The time phase difference between the two waveforms generates a beat frequency measured on the optical receiver (photodetector). The combined signal can then be reflected back to optical receiver 104.
[0038] The analog signal from the optical receiver 104 is converted into a digital signal using an ADC. The digital signal is then sent to the LiDAR control system 110. The signal processing unit 112 can then receive and interpret the digital signals. In some embodiments, the signal processing unit 112 also receives position data from the motion control system 105 and a galvanometer (not shown), as well as image data from the image processing system 114. Then, as the optical scanner 102 scans additional points, the signal processing unit 112 can utilize information related to the range and velocity of points in the environment to generate a 3D point cloud. The signal processing unit 112 can also overlay the 3D point cloud data with the image data to determine the velocity and distance of objects in the surrounding area. The system also processes satellite-based navigation and positioning data to provide accurate global positioning.
[0039] Figure 1B This is a block diagram 100b illustrating an example of a point cloud filtering module 140 in a LiDAR system according to an embodiment of the present invention. The signal processing unit 112 may include the point cloud filtering module 140. It should be noted that although the point cloud filtering module is depicted residing within the signal processing unit 112, embodiments of the invention are not limited thereto. For example, in one embodiment, the point cloud filtering module 140 may reside in a computer memory (e.g., RAM, ROM, flash memory, etc.) within the system 100 (e.g., the LiDAR control system 110).
[0040] Reference Figure 1B The point cloud filtering module 140 includes the functionality to select neighborhood data points from a set of points using one or more filters, calculate metrics, and make determinations related to accepting, modifying, removing, and / or sending points relative to the point set or point cloud.
[0041] For example, point cloud filtering module 140 may include filter 121. In some scenarios, point cloud filtering module 140 may receive (e.g., acquire, obtain, generate, etc.) a set of POIs from a point cloud at filter 121, wherein each POI in the set of POIs comprises one or more points. Filter 121 includes the functionality to filter POIs in a given set of POIs provided by a particular point cloud.
[0042] As in Figure 1B As depicted, filter 121 may include a neighborhood context module 122, a metric calculation module 123, and a decision module 124. The neighborhood context module 122 includes functionality for selecting a set of neighborhood points for a given POI. The metric calculation module 123 includes functionality for calculating one or more metrics for a given set of neighborhood points.
[0043] The decision module 124 includes functionality to determine, based on specific metrics, whether to accept, modify, reject, or send the POI to a subsequent filter (not shown). In some scenarios, if the POI is accepted or modified at a specific filter module, the decision module 124 includes functionality to send the POI to another point cloud. In some scenarios, if the POI is rejected at a specific filter, the decision module 124 can be configured to prevent the POI from reaching a specific point cloud, such as the output point cloud.
[0044] In certain scenarios, if a POI is not accepted, modified, or rejected at a specific filter, the decision module 124 can be configured to send the POI to a subsequent filter module to determine whether to accept, modify, or reject the POI.
[0045] Figure 2 This is a time-frequency diagram 200 of an FMCW scan signal 201 that can be used by a LiDAR system such as System 100 to scan a target environment, according to some embodiments. In one example, the scan waveform 201, labeled fFM(t), is a sawtooth waveform (sawtooth "chirp") with a chirped bandwidth ΔfC and a chirped period TC. The slope of the sawtooth is given as k = (ΔfC / TC). Figure 2 A target echo signal 202 according to some embodiments is also depicted. The target echo signal 202, denoted as fFM(t-Δt), is a delayed version of the scan signal 201, where Δt is the round-trip time relative to the target illuminated by the scan signal 201. The round-trip time is given as Δt = 2R / v, where R is the target range and v is the speed of the beam, i.e., the speed of light c. Therefore, the target range R can be calculated as R = c(Δt / 2). When the echo signal 202 is optically mixed with the scan signal, a range-related difference frequency (“beat frequency”) ΔfR(t) is generated. The beat frequency ΔfR(t) is linearly related to the time delay Δt by the slope k of the sawtooth. That is, ΔfR(t) = kΔt. Since the target range R is proportional to Δt, the target range R can be calculated as R = (c / 2)(ΔfR(t) / k). In other words, the range R is linearly related to the beat frequency ΔfR(t). The beat frequency ΔfR(t) can be generated, for example, as an analog signal in the optical receiver 104 of system 100. Then, the beat frequency can be digitized by an analog-to-digital converter (ADC) in a signal conditioning unit such as signal conditioning unit 107 in LiDAR system 100. The digitized beat frequency signal can then be digitally processed, for example, in a signal processing unit such as signal processing unit 112 in system 100. It should be noted that if the target has a velocity relative to LiDAR system 100, the target echo signal 202 will typically also include a frequency shift (Doppler shift). The Doppler shift can be determined separately and used to correct the frequency of the echo signal; therefore, for simplicity and ease of interpretation, in Figure 2 Doppler offset is not shown. It should also be noted that the sampling frequency of the ADC will determine the highest beat frequency that the system can process without aliasing. Generally, the highest frequency that can be processed is half the sampling frequency (i.e., the "Nyquist limit"). In one example, and not limited to, if the ADC sampling frequency is 1 GHz, the highest beat frequency (ΔfRmax) that can be processed without aliasing is 500 MHz. This limit, in turn, determines the maximum range of the system as Rmax = (c / 2)(ΔfRmax / k), which can be adjusted by changing the chirp slope k. In one example, although the data samples from the ADC can be continuous, the subsequent digital processing described below can be divided into "time periods" that can be associated with some periodicity in the LiDAR system 100. In one example, but not limited to, the time period can correspond to a predetermined number of chirp periods T, or the number of full rotations of the optical scanner in azimuth.
[0046] Figure 3A This is a block diagram depicting a system 300a including the use of a point cloud filter (e.g., point cloud filter 310) according to an embodiment of the present invention. In some scenarios, a point cloud (e.g., 311) is a set (or multiple points) of data points in the field collected using one or more components of an optical scanning system (e.g., LiDAR system 100). It should be noted that the terms "data point" and "point" are used interchangeably in this invention.
[0047] Each point has a set of coordinates, such as (X, Y, Z) and / or (range, azimuth, elevation). The LiDAR system 100 can use this set of coordinates to determine the point's location in the field relative to one or more sensors used by the LiDAR system 100. Additional attributes such as velocity, intensity, reflectivity, recording time, metadata, etc., can also be calculated for specific points. True detection (TD) points are points in the field that represent objects or fragments of the field (such as the ground, foliage, etc.). False alarm (FA) points are inaccurate detection points in the field, such as ghosting points or noise points. FA points cannot be associated with any object or fragment in the field.
[0048] In some scenarios, point clouds (e.g., FMCW LiDAR point clouds) exhibit different noise patterns, primarily caused by incorrect peak matching resulting in FA points appearing in the field (even when nothing is actually present). For example, when an FMCW LiDAR system scans points corresponding to fences or bushes, numerous FA points, such as ghosting points, may appear in the field between the LiDAR system and the fence. FA points have characteristic features that distinguish them from true detection (TD) points. As described in more detail herein, embodiments of the invention can utilize these distinguishing features to identify these points and regions, and then subsequently modify or remove them from the point cloud without affecting the TD points. The resulting point cloud (e.g., filtered point cloud 319) is a filtered version of the original point cloud (e.g., point cloud 311) without FA points.
[0049] As described herein, point cloud filtering performed by embodiments can remove points from a point cloud that do not meet a predetermined threshold of a metric. For example, a filter can refer to a filtering technique or algorithm that processes a point cloud and outputs a filtered point cloud. In some embodiments, a filter may include a process of processing the point cloud, such as removing points that do not meet a predetermined threshold of a metric, and outputting a filtered point cloud. The filtered point cloud produced by the embodiments described herein may have some points modified and some points removed.
[0050] The filter processing described herein, according to embodiments, can process a predetermined number of points at a time, such as a single point or multiple points. The filter is configured to work on a predetermined number of points, including points of interest (POIs), at a given time. Each POI may include one or more points. POIs can be identified based on predetermined thresholds, such as velocity thresholds or other common identifiers of various types. The filter described herein can be configured to work on POIs at a time, where POIs may include a single point or multiple points.
[0051] As will be explained in more detail, when receiving one or more points from a point cloud, the filters described herein can operate on POIs, single points, or multiple points at a given time. These filters can be configured to use points, and statistical information from the neighborhood of the POI can be provided to the filters to provide context. The filters can be configured to use the contextual information to make decisions for the POI and check whether the characteristics of the POI are consistent with those of its neighboring points. The contextual information may include contextual data surrounding the POI to help the filters make decisions for the POI by checking the consistency between the POI and its neighboring points. The embodiments described herein can be configured to quantify these statistics / characteristics using different metrics. Multiple filters can be used to identify FA points with characteristics different from those of the point cloud. The identified FA points are then modified or removed from the point cloud using the described embodiments. The resulting point cloud is a filtered version of the original point cloud without the FA points.
[0052] For example, such as Figure 3A The embodiments depicted herein may, for example, involve receiving a point cloud 311 via a filter 310. In one scenario, the filter 310 may include a point cloud divider 312, a POI allocator 313, a filter kernel 315, a POI collector 316, and / or a point cloud builder 317. The point cloud 311 may be fed into the point cloud divider 312, which identifies regions in the point cloud 311 for which the filter 310 will operate and creates one or more POIs that can be sent to the point cloud allocator 313. Portions in the point cloud 311 for which the filter 310 will not operate are communicated or sent to the point cloud builder 317. The point cloud divider 312 identifies regions in the point cloud 311 that may have FA points, which in turn identifies the set of POIs for which the filter will operate. The point cloud divider 312 identifies the set of POIs in the regions for which the filter 310 will operate based on a predetermined threshold (e.g., a velocity threshold). For example, if filter 310 operates on all points with velocities > 10 m / s, then point cloud divider 312 is configured to ignore any points with velocities < 10 m / s. The ignored points are then sent (e.g., communicated) between point cloud divider 312 and point cloud builder 317 via link 318. Points that filter 310 does not operate on can be considered approved by filter 310 and therefore exist in the output point cloud 319.
[0053] In a scene, the size of the Point of Interest (POI) can be selected, such as the number of points in the POI. Then, the region in the point cloud 311 that the filter 310 will operate on can be identified. The size and region information of the POIs can help the point cloud divider 312 divide the point cloud 311 into a set of POIs that the filter kernel 315 can operate on.
[0054] POI allocator 313 receives POIs from point cloud partitioner 312 and sends them one POI at a time to filter core 315 for processing. In some scenarios, this allocation mechanism can be parallelized on multiple threads / graphics processing unit (GPU) cores or on a field-programmable gate array (FPGA) for faster processing. The allocation strategy selected by the embodiment may depend on how filter core 315 operates on the POIs. In some scenarios, multiple filter cores may be initialized to process multiple threads or GPU cores. In these scenarios, POI allocator 313 can be configured to handle this coordination.
[0055] Filter core 315 contains one or more modules of filter 310, each module being configured to process POIs, as will be discussed below. Filter core 315 can be configured to select a combination of neighborhood context strategies, metrics, and decisions to be made by the filter. This combination can depend on the noise pattern the filter is configured to target.
[0056] In some embodiments, filter 310 may be configured to make decisions for a POI, including approving, modifying, rejecting, or delegating (to another filter). Once a POI has been processed, the filter may determine a “filtered POI” that includes decisions made for the POI (e.g., including but not limited to approving, modifying, rejecting, or delegating).
[0057] For example, once all POIs have been processed, the POI collector 316 can be configured to collect the filtered POIs received from the filter core 315 and send the filtered POIs to the point cloud builder 317.
[0058] Point cloud builder 317 can be configured to construct point cloud 319 based on all approved points in the Points of Interest (POIs) and bypassed POIs received from point cloud divider 312. The filtered point cloud 319 is output from filter 310. In some scenarios, the filtered point cloud 319 may have fewer points than the input point cloud 311 because points rejected by filter 310 can be removed from the input point cloud 311. Point cloud builder 317 can be configured to cooperate with point cloud divider 312. Point cloud builder 317 is configured to receive information related to points not processed by filter core 315.
[0059] The filter 310 can also be configured to selectively operate on smaller groups of points instead of waiting to build the entire point cloud frame, in order to reduce overall system latency.
[0060] Figure 3B This is a block diagram illustrating an example of a filter core 315 of a point cloud filter 310 according to an embodiment of the present invention. The filter core can be configured to target noise with specific characteristics. Multiple filter cores can be designed to handle different potential noise patterns in the field. As described herein, a filter core can include the functionality of a filter. It should be understood that the terms "filter" and "filter core" are used interchangeably herein. In some embodiments, the filter core 315 may include a neighborhood context module 322, a metric calculation module 323, and a decision module 324. The neighborhood context module 322 is configured to select a set of neighborhood points of a POI. The metric calculation module 323 is configured to calculate a metric of the set of neighborhood points. The decision module 324 is configured to determine, based on the metric, whether to accept the POI, modify the POI, reject the POI, or send the POI to another filter.
[0061] In some implementations, filter kernel 315 can be configured to process only one POI at a time. Neighborhood context module 322 can also be configured to receive one or more neighboring POIs, statistical information about the neighboring POIs, and / or the entire point cloud 311. This context information can be used to make decisions about POIs by checking whether their characteristics are consistent with those of neighboring points. In some cases, the embodiments described herein can use metrics to represent the type of noise the filter is processing. After processing the POI, decision module 124 can be configured to perform one or more actions, including but not limited to accepting, modifying, discarding, or sending (delegating) the POI.
[0062] Figure 4A This is a block diagram of a system 400a including a filter core 415a as used, according to an embodiment of the present invention. It should be noted that the terms "filter" and "filter core" can be used interchangeably in this invention. According to some embodiments, the filter can operate on a set of POIs in a point cloud, which can be based on, for example, a combination of different selections, different metrics, and / or decisions for neighboring data points. It should be understood that the embodiments described herein are for illustrative purposes only. Many other embodiments based on the filter core of the present invention may exist.
[0063] like Figure 4A As depicted, the filter kernel 415a may include a neighborhood context module 422a, a metric calculation module 423a, and a decision module 424a. The neighborhood context module 422a can be configured to select a window of nearby points for the POI 430a, for example, a window of data points with the same azimuth / elevation around the POI.
[0064] The metric calculation module 423a can be configured to calculate a confidence metric based on the similarity of point attributes (e.g., velocity) across the POI and selected neighboring data points. The filter kernel 415a can be configured to check whether the POI has attributes that are not significantly different from those of its neighboring points. For example, if the minimum velocity, maximum velocity, or velocity range of the POI is within a corresponding predetermined threshold of the minimum velocity, maximum velocity, or velocity range of its neighboring points, the confidence metric of the POI can be determined to be high.
[0065] Decision module 424a can be configured to determine, for example, whether to accept, modify, reject, or delegate / send the POI to a filter kernel based on a confidence metric, such as 515a. If the confidence metric of a POI is determined to be high, the POI can be approved. For example, POI 430a is accepted and becomes filtered POI 440a when the confidence metric is within a first predetermined threshold. When the confidence metric is within the first predetermined threshold but inconsistency with the neighborhood context is detected within a specific predetermined threshold, the POI can be modified. For example, point attributes such as range and / or velocity can be modified. When the confidence metric of a POI is inconsistent with neighborhood points, for example, with a second predetermined or specified threshold, the POI is classified as FA. The POI will be discarded, removed, or filtered out.
[0066] When a decision cannot be made but a POI is found to be suspicious, the POI can be marked as a delegated POI 450a and sent (e.g., delegated) to a subsequent filter core, such as filter core 515a. The POI can be passed to the subsequent filter core 515a. The filter core (e.g., subsequent filter core 515a) can be configured to make a decision to accept, modify, or reject the POI. Delegating in this way can reduce the load on the subsequent filter core (e.g., filter core 515a) because the subsequent filter core 515a operates not on the entire point cloud, but only on a subset of points (i.e., the undetermined or sent POIs).
[0067] Figure 4B This is a block diagram of a system 400b including a filter core 415b as used, according to an embodiment of the present invention. Figure 4B Further examples are provided demonstrating the types of functionality that the filters described herein can perform based on their respective hardware / software profiles. For example, the filters can be configured to perform the operations described herein constrained by computation time, power consumption, etc.
[0068] Reference Figure 4BThe filter kernel 415b may include a neighborhood context module 422b, a metric calculation module 423b, and a decision module 424b. The neighborhood context module 422b can be configured to bypass neighborhood selection for POI 430b. The metric calculation module 423b can be configured to check whether the POI has a very low velocity (below a first predetermined threshold, e.g., 1 m / s) or a very high velocity (above a second predetermined threshold, e.g., 100 m / s). If the POI has a very low velocity, the decision module 424b can approve the POI, which can then become the filtered POI 440b. If the POI has a very high velocity, the decision module 424b can be configured to reject the POI. The decision module 424b can be configured to delegate (send) any POI, for example, a POI with a velocity between the first and second predetermined thresholds, which can then become the delegated POI 450b. Since most of the field is typically static, any noisy dynamic point can be handled by a subsequent filter core (e.g., 515b).
[0069] Figure 5A This is a block diagram of a system 500a including a filter core 515a as used, according to an embodiment of the present invention. For example, referring now... Figure 5A In one embodiment, the filter kernel 515a may include a neighborhood context module 522a, a metric calculation module 523a, and a decision module 524a. The neighborhood context module 522a may be configured to select a 3D spatial neighborhood for the assigned POI 530a (e.g., 450a). To obtain neighborhood data points in the neighborhood, a search tree (KD tree, OctTree, or variant) may be constructed for all POIs.
[0070] The metric calculation module 523a can be configured to calculate the variance of point attributes, including velocity, intensity, or range. The variance of POI attributes can be calculated or computed over a 3D spatial neighborhood. POI attributes can include the velocity, intensity, range, or even higher-order moments such as skewness and kurtosis of data points / POIs. The variance of POI attributes (e.g., velocity or intensity) can be calculated over a neighborhood (e.g., neighboring data points).
[0071] Decision module 524a can be configured to determine, based on a confidence metric, whether to accept, modify, reject, or delegate / send the POI to another filter kernel. The variance of a data point / POI attribute (e.g., velocity or intensity) can be compared to a predetermined threshold. When the POI attribute (e.g., velocity or intensity) is below the predetermined threshold, the data point / POI can be accepted or approved as a filtered POI 540a. The filtered POI 540a can be added to the filtered output point cloud. When the POI attribute (e.g., velocity or intensity) is not below the predetermined threshold, the data point / POI can be rejected. When no decision can be made, the POI can be sent to a subsequent filter kernel.
[0072] Reference Figure 5B The filter kernel 515b may include a neighborhood context module 522b, a metric calculation module 523b, and a decision module 524b. The neighborhood context module 522b can select a window of data points with the same azimuth or elevation angle surrounding the POI 530b. The neighborhood context module 522b can also select a window of adjacent points in the scan mode. In some embodiments, multiple neighborhood data points including 2D or 3D spatial neighborhoods can be selected to consider additional range of the data points.
[0073] The upper and lower chirp frequencies of windows from adjacent points in a scanned pattern can be stored. The metric calculation module 823 can calculate a metric, which can be the variance of the upper or lower chirp frequencies from the window of points. For example, the variance of the upper chirp frequency, or the variance of the lower chirp frequency, or the difference between the variances of the upper and lower chirp frequencies, can be compared with a corresponding predetermined threshold.
[0074] If the variance of the upper chirp frequency, or the variance of the lower chirp frequency, or the difference between the variances of the upper and lower chirp frequencies, is not less than the corresponding predetermined threshold, then the decision module 524b can determine to reject the POI. Otherwise, the data POI can be approved as a filtered POI 540b or delegated / sent to another filter (not shown).
[0075] Figure 6 This is a flowchart illustrating an example of filtering processing of a point cloud filter according to an embodiment of the present invention. At step 602, for example, in (such as...) Figure 1B The input point cloud is received at filter 121 (as shown). The input point cloud may include multiple points / data points.
[0076] At step 604, a set of POIs in the input point cloud can be identified or obtained. Filters (e.g., filters 121, 315, 415a, 415b, 515a, 515b) can filter each POI in the set of POIs, for example, by iterating over each POI in the set of POIs in the input point cloud.
[0077] At step 606, in the filter's neighborhood context module (e.g., 122, 322, 422a, 422b, 522a, 522b), a set of neighborhood points in the neighborhood of the POI can be selected. For example, multiple neighborhood data points in the neighborhood of the POI can be selected. The neighborhood context module can select points from neighboring POIs and / or from the point cloud. Neighboring points in the neighborhood must be selected to provide context to the filter's metric calculation module (e.g., 123, 323, 423a, 423b, 523a, 523b).
[0078] In one embodiment, a window of data points surrounding the POI at the same azimuth or elevation angle can be selected. A set of neighboring data points at the same azimuth or elevation angle surrounding the POI in a one-dimensional array can be selected.
[0079] In one embodiment, 2D grid neighborhood points surrounding the POI can be selected. A set of neighborhood data points in a 2D grid surrounding the POI can be selected.
[0080] In one embodiment, 3D spatial / mesh neighborhood points surrounding the POI can be selected. A set of neighborhood data points in the 3D space / mesh surrounding the POI can be selected. To obtain the neighborhood data points, a search tree (k-dimensional (KD) tree, OctTree, or variant) can be constructed for all points. A KD tree is a spatial partitioning data structure used to organize data points in k-dimensional space. KD trees are a useful data structure for several applications, such as searches involving multidimensional search keys (e.g., range search and nearest neighbor search) and creating point clouds. An OctTree is a tree data structure in which each internal node has exactly eight child nodes. OctTrees are most commonly used to partition 3D space by recursively subdividing it into eight octets. In one embodiment, 3D spatiotemporal neighborhood points from previous frames surrounding the POI can be selected.
[0081] At step 608, in the metric calculation module (e.g., 123, 323, 423a, 423b, 523a, 523b), the metric for the neighborhood point set is calculated. Once the neighborhood of the POI is selected, the metric for the neighborhood point set can be calculated. For example, one or more attributes can be calculated to distinguish FA points from ground truth detections. The metric may include one or more attributes of the POI and / or the neighborhood point set.
[0082] In one embodiment, the variance of a point attribute can be calculated, including the variance of velocity, intensity, range, or even higher-order moments such as skewness and kurtosis. Point attributes may include velocity, intensity, range, higher-order moments such as skewness and kurtosis. Metrics may include the variance of point attributes, including the variance of velocity, intensity, range, or even higher-order moments such as skewness and kurtosis.
[0083] In one embodiment, confidence (e.g., a confidence metric or value) can be determined based on the similarity of attributes, including velocity, intensity, range, etc., across the POI and selected neighboring data points. For example, a confidence metric or value can be determined based on the similarity of velocity, intensity, or range. A confidence metric can check whether the POI has attributes that are not significantly different from those of its neighboring points. For example, if the minimum velocity, maximum velocity, or velocity range of the POI is within a corresponding predetermined threshold for the minimum velocity, maximum velocity, or similarity of the neighboring points, the confidence metric of the POI can be determined to be high. The confidence metric indicates the level of similarity between the point attributes of the POI and the point attributes of its neighboring points. If a determination cannot be made, the confidence metric may be low, and more complex filters can be added to make decisions for such POIs. POIs that are clearly outliers can be rejected.
[0084] In one embodiment, an absolute threshold can be determined for an attribute (e.g., velocity, intensity, and range). For example, POI attributes that include velocity, intensity, range, or higher-order moments (such as skewness and kurtosis) may have predetermined thresholds. Metrics may include absolute thresholds for attributes.
[0085] In one embodiment, the variance, confidence metric, and difference of the frequency and / or intensity estimates can be determined for both upper and lower chirp detection. For example, the upper and / or lower chirp frequencies (e.g., from windows of adjacent points in a scanning pattern) can be stored. Figure 2 (as shown), and the variance of the upper chirp frequency and / or lower chirp frequency can be calculated. Measures may include the variance, confidence measure, and difference of the frequency estimates and / or intensity estimates for both upper and lower chirp detections.
[0086] At step 610, after the POI has been processed in the metric calculation module at the filter decision module (e.g., 124, 324, 424a, 424b, 524a, 524b), a decision can be made for the POI. The following options may be available: accept the POI, modify the POI, discard the POI, delegate or send the POI to a subsequent filter, or score the POI.
[0087] When a POI's metric or attribute falls within a first predetermined or specified threshold, the POI is not classified as a FA. Therefore, the POI is accepted as a true detection, and the POI is sent to the filtered point cloud (e.g., 319).
[0088] A POI can be slightly modified when its metric or attribute is within a first predetermined or specified threshold but is slightly inconsistent with the neighborhood context. For example, a POI can be modified to smooth the point cloud.
[0089] When a metric-based POI's metric or attribute is inconsistent with its neighboring points or with a second predetermined or specified threshold, the POI is classified as FA. The POI will be discarded, removed, or filtered out. The POI will not appear in the filtered point cloud.
[0090] When a decision cannot be made, but a Point of Interest (POI) is suspected to be a Fatal Element (FA), the POI can be flagged, or it can be sent or delegated to a subsequent filter. The POI can then be passed to more complex filters. These subsequent filters can then decide whether to accept, modify, or reject the POI.
[0091] In one embodiment, the filter can score the data point / POI with the probability that the POI is not a FA. Multiple scores of POIs from multiple filters can be reviewed, for example, by different algorithms, and the POI can be removed when one of the multiple scores is low.
[0092] At step 612, it is determined whether all POIs in the input point cloud have been processed.
[0093] At step 614, if not all POIs in the input point cloud have been processed, the filter can acquire another POI and repeat the above steps, such as steps 604 to 610, until all POIs in the input point cloud have been processed. These steps are repeated until all regions in the point cloud have been processed.
[0094] At step 616, once all POIs in the input point cloud have been processed, the filtered point cloud can be output.
[0095] Filters can be selected by choosing a specific combination of neighborhood context strategies, metrics, and decisions that filters can make.
[0096] In one embodiment, the filter is designed to operate on a specific region based on range or orientation, because different regions can have different properties, and predetermined thresholds for the expected and / or POI properties of PD / FA points vary region by region. Therefore, the filter can vary region by region. In one embodiment, the filter can operate on a portion of the point cloud immediately, rather than waiting to build the entire point cloud, to reduce overall latency.
[0097] Figure 7 This is a block diagram illustrating an example of a process for filtering a point cloud according to an embodiment of the present invention. For example, this process can be performed by, for example... Figures 1A to 1B The signal processing unit 112 of the LiDAR system shown performs this process. In this processing, FA points can be removed, thereby improving the accuracy of the estimated target range / velocity.
[0098] At block 701, for example at a first filter, a set of points of interest (POIs) of the point cloud is received. Each POI in the set comprises one or more points. In one embodiment, receiving the set of POIs further includes identifying the set of POIs in the point cloud based on a predetermined threshold.
[0099] At box 702, each POI in the POI set is filtered, for example, at the first filter.
[0100] At box 703, select the set of neighboring points of the POI.
[0101] At box 704, calculate the metric of the neighborhood point set.
[0102] At box 705, based on the metric, it is determined whether to accept the POI, modify the POI, reject the POI, or send the POI to the second filter to extract at least one of the range and velocity information related to the target.
[0103] At block 706, if a POI is accepted or modified at the first filter, the POI is sent to the filtered point cloud to extract at least one of the range and velocity information associated with the target. The filtered point cloud may be the output point cloud. In one embodiment, the POI is accepted or modified in response to a metric satisfying a first predetermined threshold established for that metric.
[0104] At block 707, if a POI is rejected at the first filter, the POI is prevented from reaching the filtered point cloud. In one embodiment, a POI is rejected in response to a metric not meeting a second predetermined threshold established for that metric.
[0105] At box 708, if the POI is not accepted, modified, or rejected at the first filter, the POI is sent to the second filter to determine whether to accept, modify, or reject the POI, thereby extracting at least one of the range and velocity information related to the target.
[0106] The foregoing description sets forth numerous specific details, such as examples of specific systems, components, methods, etc., to provide a thorough understanding of several examples of the invention. However, it will be apparent to those skilled in the art that at least some examples of the invention can be practiced without these specific details. In other instances, well-known components or methods have not been described in detail or presented in block diagram form to avoid unnecessarily obscuring the invention. Therefore, the specific details set forth are merely exemplary. Specific examples may differ from these exemplary details and are still contemplated within the scope of the invention.
[0107] Any reference to "an embodiment" or "example" throughout this specification means that a particular feature, structure, or characteristic described in connection with the example is included in at least one example. Therefore, the phrases "in an example" or "in the example" appearing in various places throughout this specification do not necessarily refer to the same example.
[0108] Although this document shows and describes the operations of the methods in a specific order, the order of the operations of each method can be changed so that some operations can be performed in reverse order, or so that some operations can be performed at least partially concurrently with other operations. Instructions or sub-operations that perform different operations can be performed intermittently or alternately.
[0109] The above description of the illustrated implementations of the invention, including the content described in the abstract, is not intended to exhaustively or limit the invention to the precise forms disclosed. While specific implementations and examples of the invention have been described herein for illustrative purposes, various equivalent modifications can be made within the scope of the invention, as will be recognized by those skilled in the art. The terms “example” or “exemplary” are used herein to mean used as an example, instance, or illustration. Any aspect or design described herein as “example” or “exemplary” is not necessarily to be construed as being more preferred or advantageous than other aspects or designs. Rather, the use of the terms “example” or “exemplary” is intended to present concepts in a concrete manner. As used herein, the term “or” means inclusive “or” rather than exclusive “or.” That is, unless otherwise specified or the context clearly indicates, “X includes A or B” means any natural inclusion arrangement. That is, if X includes A; X includes B; or X includes both A and B, then “X includes A or B” is satisfied under any of the above instances. Furthermore, the terms “a” and “an” as used in this application and the appended claims should generally be interpreted as meaning “one or more” unless otherwise specified or clearly indicated from the context as singular. Additionally, the terms “first,” “second,” “third,” “fourth,” etc., as used herein refer to labels used to distinguish between different elements and do not necessarily have a meaning according to the order of their numerical names.
Claims
1. A method for filtering points in a LiDAR (Light Detection and Ranging) system, comprising: The point cloud set of points of interest (POIs) is received at the first filter, wherein each POI in the POI set includes one or more points. Filtering is performed on each POI in the POI set, including: Select the set of neighborhood points of the POI; The metric of the neighborhood point set is calculated based on the neighborhood point set and the attributes of the POI, wherein the attributes include velocity; Based on the metric, determine whether to accept the POI, modify the POI, reject the POI, or send the POI to the second filter to extract at least one of the range and velocity information related to the target; If the POI is accepted or modified, the POI is sent to the filtered point cloud to extract at least one of the range and velocity information associated with the target; If the POI is rejected at the first filter, prevent the POI from reaching the filtered point cloud; and If the POI is not accepted, modified, or rejected at the first filter, the POI is sent to the second filter to determine whether to accept, modify, or reject the POI, thereby extracting at least one of the target-related range and velocity information.
2. The method according to claim 1, wherein, Selecting a set of neighboring points for a point of interest (POI) involves selecting a window of data points around the POI that have the same orientation or elevation.
3. The method according to claim 1, wherein, Selecting the neighborhood point set of a POI involves selecting the set of points in the 2D grid neighborhood surrounding that POI.
4. The method of claim 1, wherein, Selecting the neighborhood point set of a POI involves selecting a set of points in the 3D spatial neighborhood surrounding that POI.
5. The method of claim 1, wherein, Selecting the neighborhood point set of a POI involves selecting a set of points from the 3D spatiotemporal neighborhood of the POI from previous frames.
6. The method of claim 1, wherein, Calculating the metric for the neighborhood point set includes calculating the metric based on the variance of the attribute of the neighborhood point set and the POI.
7. The method of claim 6, wherein, The metric is also calculated based on higher-order moments of the properties of the neighborhood point set and the POI, wherein the higher-order moments include skewness or kurtosis.
8. The method of claim 1, wherein, Calculating the metric for the neighborhood point set includes calculating the metric based on a confidence level of the similarity between the neighborhood point set and the velocity of the POI.
9. The method of claim 1, wherein, Calculating the metric for the neighborhood point set includes calculating the metric based on a threshold of the velocity of the neighborhood point set and the POI.
10. The method of claim 1, wherein, Calculating the metric for the neighborhood point set includes calculating the metric based on the variance of the upper or lower chirp frequency of the neighborhood point set and the POI.
11. A light detection and ranging system, namely a LiDAR system, comprising: processor; as well as A memory that stores instructions that, when executed by the processor, cause the system to: The first point cloud set of points of interest (POIs) is received at the first filter, wherein each POI in the POI set includes one or more points. The system filters each POI in the POI set, wherein the system is used to: Select the set of neighborhood points of the POI; The metric of the neighborhood point set is calculated based on the neighborhood point set and the attributes of the POI, wherein the attributes include velocity; Based on the metric, determine whether to accept the POI, modify the POI, reject the POI, or send the POI to the second filter to extract at least one of the range and velocity information related to the target; If the POI is accepted or modified, the POI is sent to the filtered point cloud to extract at least one of the range and velocity information associated with the target; In the event that the POI is rejected, prevent the POI from reaching the filtered point cloud; and If the POI is not accepted, modified, or rejected, the POI is sent to the second filter to determine whether to accept, modify, or reject the POI, thereby extracting at least one of the target-related range and velocity information.
12. The system according to claim 11, wherein, The system is used to select a window of data points with the same azimuth or elevation angle surrounding the POI.
13. The system of claim 11, wherein, The system is used to select a set of points in a 2D grid neighborhood, a 3D spatial neighborhood, or a 3D spatiotemporal neighborhood from a previous frame surrounding the POI.
14. The system of claim 11, wherein, The system is used to calculate the metric based on the variance of the attribute of the neighborhood point set and the POI.
15. The system of claim 11, wherein, The system is used to calculate the metric based on a confidence level of the similarity between the velocity of the neighborhood point set and the POI.
16. The system according to claim 11, wherein, The system is used to calculate the metric based on the neighborhood point set and the velocity threshold of the POI.
17. A light detection and ranging system, namely a LiDAR system, comprising: A light source, which is used to emit light signals to a target; An optical receiver for receiving a return beam from the target based on the optical signal. Circuit; as well as A memory storing instructions that, when executed by the circuit, cause the system to: The first point cloud set of points of interest (POIs) is received at the first filter, wherein each POI in the POI set includes one or more points. The system filters each POI in the POI set, wherein the system is used to: Select the set of neighborhood points of the POI; The metric of the neighborhood point set is calculated based on the neighborhood point set and the attributes of the POI, wherein the attributes include velocity; Based on the metric, determine whether to accept the POI, modify the POI, reject the POI, or send the POI to the second filter to extract at least one of the range and velocity information related to the target; If the POI is accepted or modified, the POI is sent to the filtered point cloud to extract at least one of the range and velocity information associated with the target; In the event that the POI is rejected, prevent the POI from reaching the filtered point cloud; and If the POI is not accepted, modified, or rejected, the POI is sent to the second filter to determine whether to accept, modify, or reject the POI, thereby extracting at least one of the target-related range and velocity information.
18. The system of claim 17, wherein, The system is used to select a window of data points with the same azimuth or elevation angle surrounding the POI.
19. The system of claim 17, wherein, The system is used to select a set of points in a 2D grid neighborhood, a 3D spatial neighborhood, or a 3D spatiotemporal neighborhood from a previous frame surrounding the POI.
20. The system of claim 17, wherein, The system is used to calculate the metric based on the variance of the attribute of the neighborhood point set and the POI.
21. The system of claim 17, wherein, The system is used to calculate the metric based on a confidence level of the similarity between the velocity of the neighborhood point set and the POI.
22. The system of claim 17, wherein, The system is used to calculate the metric based on the neighborhood point set and the velocity threshold of the POI.