A method and apparatus for clustering
By identifying the core point and its velocity vector value in sensor data and using compatibility conditions for clustering, the problem of high parameter sensitivity in existing technologies is solved, achieving higher clustering accuracy and adaptability.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- YINWANG INTELLIGENT TECHNOLOGIES CO LTD
- Filing Date
- 2020-04-30
- Publication Date
- 2026-07-31
AI Technical Summary
Existing density-based clustering algorithms are highly sensitive to parameters when processing sensor data, making it difficult to effectively separate extended targets, especially when dealing with datasets containing both position and velocity components, where the clustering results are poor.
By acquiring the location and radial velocity data of data points, the core point and its velocity vector value are determined. Clustering is then performed using compatibility conditions to reduce sensitivity to spatial location data and improve clustering accuracy and reliability.
By effectively utilizing the velocity vector information of the core points, the accuracy and reliability of clustering are improved, making it suitable for different application scenarios and flexibly handling extended targets.
Smart Images

Figure CN113591891B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of data processing, and more specifically, to a clustering method and apparatus. Background Technology
[0002] Advanced driver assistance systems (ADAS) or autonomous driving (AD) systems typically employ multiple sensors, such as radar, sonar, ultrasonic sensors, and visual sensors like cameras, to perceive the surrounding environment and target information. Using the information acquired by these sensors, functions such as classification, identification, and tracking of the surrounding environment and objects can be achieved. With the improvement of sensor capabilities, especially spatial resolution, for a target relatively close to the sensor, the sensor will generate multiple measurement data points during a single scan. These targets are often called extended targets. Unlike point targets, extended targets span the resolution units of multiple sensors. Furthermore, a single sensor scan may include multiple extended targets, where the data for each target can include position and radial velocity or velocity component information. Identifying and separating the measurement data from each extended target is a prerequisite / foundation for subsequent processing such as tracking or classification. Therefore, it is essential to cluster the dataset from the sensors using clustering methods to identify and separate the measurement data from each extended target.
[0003] Density-based clustering algorithms are currently widely used. For example, DBSCAN (density-based spatial clustering of applications with noise) and its extensions such as HDBSCAN (Hierarchical DBSCAN) or OPTICS (ordering points to identify the clustering structure) can cluster extended targets based on the spatial location information of data points. However, these density-based clustering methods face the following problems when applied to datasets from sensors: First, these methods are sensitive to input parameters, requiring different parameter configurations for different targets, making it difficult for them to achieve the desired results. For example, if the parameter threshold is too small, the same cluster is easily split; if the threshold is too large, different clusters are easily merged. Second, the data points in the datasets applicable to these methods are usually of the same class, such as 2D or 3D spatial location vectors. When the extension is used for data that simultaneously contains position and velocity components, directly calculating the vector differences between different points usually results in large discrepancies, leading to poor clustering performance.
[0004] Therefore, how to effectively utilize position and radial velocity or velocity component data to perform effective clustering of the dataset is an urgent problem to be solved. Summary of the Invention
[0005] This application provides a clustering method and apparatus to improve the accuracy and reliability of clustering.
[0006] Firstly, a clustering method is provided, which includes:
[0007] Obtain a first set of data points, wherein the first set of data points includes at least two data points, and the information of each data point in the first set of data points includes position data and radial velocity data;
[0008] Determine the core point q and the velocity vector value v(q) of the core point q from the first set of data points;
[0009] Based on the core point q and the velocity vector value v(q) of the core point q, a cluster C(q) is determined from the first set of data points, and the radial velocity of each data point in the cluster C(q) satisfies the compatibility condition with the velocity vector value v(q).
[0010] Based on the above scheme, clustering the data points by using the core point q and the velocity vector value v(q) of the core point q in the first data point set can make full use of the velocity vector information of the core point q, avoid the limitation of radial velocity data as component information, and reduce the sensitivity of spatial position data information to input parameters, thus effectively improving the accuracy and reliability of clustering.
[0011] In conjunction with the first aspect, in some implementations of the first aspect,
[0012] The core point q is a data point in the pre-specified first data point set; or,
[0013] The core point q is a data point q' in the first data point set, wherein the number of data points in the first data point set contained in the neighborhood N(q') of the data point q' satisfies a first predefined threshold.
[0014] Based on the above scheme, the core point q can be determined in different ways to meet different scenario or functional requirements. On the one hand, it can be pre-specified according to external requirements to cluster specific points of interest or their surrounding areas; on the other hand, it can determine points of interest in the dataset or their surrounding areas based on the information of the data points, which is convenient for discovering and determining potential targets. For example, extended targets obtained through clustering, such as vehicles in assisted driving or autonomous driving environments, can be identified.
[0015] In conjunction with the first aspect, in some implementations of the first aspect,
[0016] The neighborhood N(q') of the data point q' is a predefined neighborhood; or,
[0017] The neighborhood N(q') of the data point q' is the set of data points in the first set of data points whose distance from the data point q' satisfies a second predefined threshold. This distance is determined based on the position data of the data point q' and the position data of the data points in the first set of data points, or the distance is determined based on the position data and radial velocity data of the data point q', and the position data and radial velocity data of the data points in the first set of data points.
[0018] Based on the above scheme, the neighborhood N(q') of data point q' can be determined in different ways. Determining the neighborhood N(q') of data point q' offers high flexibility and is suitable for various application scenarios. On one hand, it can be pre-specified according to external requirements, such as specifying the neighborhood of a specific point of interest; on the other hand, the neighborhood of points of interest in the dataset can be determined based on the information of the data points, facilitating the discovery and identification of potential targets.
[0019] In conjunction with the first aspect, in some implementations of the first aspect,
[0020] The velocity vector value v(q) of the core point q is a predefined velocity vector value; or,
[0021] The velocity vector value v(q) of the core point q is determined based on the data points contained in the neighborhood N(q) of the core point q.
[0022] Based on the above scheme, the velocity vector value v(q) of the core point q can be determined in different ways. Determining the velocity vector value v(q) of the core point q offers high flexibility and is suitable for various application scenarios. On one hand, it can be determined based on the velocity vector value provided by an external interface; on the other hand, it can be determined based on the information of data points within the neighborhood N(q) of the core point q, facilitating the independent determination of the target's velocity vector.
[0023] In conjunction with the first aspect, in some implementations of the first aspect,
[0024] The velocity vector value v(q) of the core point q is determined based on the data points contained in the neighborhood N(q) of the core point q, including:
[0025] Based on the information of the core point q and one or more data points contained in the neighborhood N(q) of the core point q, determine at least one candidate velocity vector value for the core point q.
[0026] Based on the data points contained in the neighborhood N(q) of the core point q, and at least one candidate velocity vector value of the core point q, the velocity vector value v(q) of the core point q is determined.
[0027] In conjunction with the first aspect, in some implementations of the first aspect,
[0028] Using information about the core point q and one or more data points contained in its neighborhood N(q), the system determines at least one candidate velocity vector value for the core point q, including:
[0029] Based on the position data and radial velocity data of one or more data points contained in the core point q and its neighborhood N(q), at least one candidate velocity vector value of the core point q is determined according to the following relationship.
[0030]
[0031] Among them, v c (q) represents at least one candidate velocity vector for the core point q, and s represents the velocity vector within the core point q or its neighborhood used to determine the velocity. c Data points of (q), Let n be the radial velocity data for data point s. s To and The corresponding error. h s Let h be the direction cosine vector, where h s This is obtained based on the location data of data point s. In conjunction with the first aspect, in some implementations of the first aspect,
[0032] The determination of the velocity vector value v(q) of the core point q based on the data points contained in the neighborhood N(q) of the core point q and at least one candidate velocity vector value of the core point q includes:
[0033] Based on the core point q, and the position data and radial velocity data of one or more data points contained in the neighborhood N(q) of the core point q, determine the weight of at least one candidate velocity vector value of the core point q.
[0034] Based on the weight of the at least one candidate velocity vector value, the velocity vector value v(q) of the core point q is determined.
[0035] In conjunction with the first aspect, in some implementations of the first aspect,
[0036] The weight of the at least one candidate velocity vector value is the sum of the weights of the data points contained in the core point q and / or the neighborhood N(q) of the core point q relative to the at least one candidate velocity vector value.
[0037] The weights of the data points contained in the core point q and / or the neighborhood N(q) of the core point q relative to the candidate velocity vector value are obtained based on the position data and radial velocity data of the data points in the first set of data points contained in the core point q and / or the neighborhood N(q) of the core point q.
[0038] In conjunction with the first aspect, in some implementations of the first aspect,
[0039] The neighborhood N(q) of the core point q contains a data point t relative to the candidate velocity vector value v. c The weight of (q) is based on the candidate velocity vector value v. c (q) The difference between the radial projection component of data point t and the radial velocity data of data point t is obtained, where the candidate velocity vector value v c (q) The radial projection component at data point t is based on the candidate velocity vector value v c (q) and the position data of the data point t are obtained.
[0040] In conjunction with the first aspect, in some implementations of the first aspect,
[0041] The velocity vector value v(q) of the core point q is determined based on the weights of the at least one candidate velocity vector value, including:
[0042] The candidate velocity vector value corresponding to the weight of the largest candidate velocity vector value among the weights of at least one candidate velocity vector value is determined as the velocity vector value v(q) of the core point q; or,
[0043] The candidate velocity vector value corresponding to the weight of the candidate velocity vector value that is greater than or equal to the third predefined threshold among the weights of at least one candidate velocity vector value is determined as the velocity vector value v(q) of the core point q.
[0044] In conjunction with the first aspect, in some implementations of the first aspect,
[0045] The compatibility condition is that the radial projection component of the velocity vector value at the data point and the radial velocity of the data point satisfy a fourth predefined threshold. The radial projection component of the velocity vector value at the data point is determined based on the velocity vector value and the position data of the data point.
[0046] In conjunction with the first aspect, in some implementations of the first aspect,
[0047] The cluster C(q) includes the following data points: the core point q, and data points p. i and data points s i,j ,
[0048] The data point p i Let N(q) be the number of data points in the neighborhood N(q) of the core point q that satisfy the compatibility condition, i = 1, ..., N. q The data point s i,j Let p be the data point i The neighborhood N(p) i Data points within the range that satisfy compatibility conditions, i = 1, ..., N q j = 1, ..., N pi ;
[0049] Wherein, the data point p i and / or the data point s i,j The compatibility condition is met when: the data point p i and / or the data point s i,j The radial velocity data at the core point q, and the velocity vector value v(q) at the data point p. i and / or the data point s i,j The radial projection component satisfies the fourth predefined threshold, and the velocity vector value v(q) of the core point q at the data point p i and / or the data point s i,j The radial projection component is based on the velocity vector value v(q) of the core point q and the data point p. i and / or the data point s i,j The location data was obtained.
[0050] In conjunction with the first aspect, in some implementations of the first aspect,
[0051] The cluster C(q) includes the following data points: the core point q, data point p i and data point v j,k ,
[0052] The data point p i Let N(q) be the data points within the neighborhood N(q) of the core point q that satisfy the compatibility conditions of the core point q, where i = 1, ..., N. q The data point v j,k For this data point u j The neighborhood N(u) j The condition of data point u within ) j The data point with compatibility conditions, that data point u j Let p be the data point i i = 1, ..., N q The number of data points in the neighborhood that satisfy the second predefined threshold is j = 1, ..., M. q k = 1, ..., N uj ;
[0053] Wherein, the data point p i And / or the data point v j,k The compatibility condition is met when: the data point p i And / or the data point v j,k The radial velocity data at the core point q, and the velocity vector value v(q) at the data point p. i And / or the data point v j,k The radial projection component satisfies the fourth predefined threshold, and the velocity vector value v(q) of the core point q at the data point p i And / or the data point v j,k The radial projection component is based on the velocity vector value v(q) of the core point q and the data point p. i And / or the data point v j,k The location data was obtained.
[0054] In conjunction with the first aspect, in some implementations of the first aspect,
[0055] The target velocity corresponding to the cluster C(q) is the velocity vector value v(q) of the core point q;
[0056] The target location corresponding to the cluster C(q) is the weighted sum of the locations of the data points contained in the cluster C(q).
[0057] Secondly, a clustering apparatus is provided, the apparatus comprising:
[0058] A transceiver unit is used to acquire a first set of data points, wherein the first set of data points includes at least two data points, and the information of each data point in the first set of data points includes position data and radial velocity data;
[0059] A processing unit is used to determine the core point q and the velocity vector value v(q) of the core point q from the first set of data points;
[0060] The processing unit is further configured to determine a cluster C(q) from the first set of data points based on the core point q and the velocity vector value v(q) of the core point q, wherein the radial velocity of each data point in the cluster C(q) satisfies the compatibility condition with the velocity vector value v(q).
[0061] In conjunction with the second aspect, in some implementations of the second aspect,
[0062] The core point q is a data point in the pre-specified first data point set; or,
[0063] The core point q is a data point q' in the first data point set, wherein the number of data points in the first data point set contained in the neighborhood N(q') of the data point q' satisfies a first predefined threshold.
[0064] In conjunction with the second aspect, in some implementations of the second aspect,
[0065] The neighborhood N(q') of the data point q' is a predefined neighborhood; or,
[0066] The neighborhood N(q') of the data point q' is the set of data points in the first data set whose distance from the data point q' satisfies a second predefined threshold, wherein the distance is determined based on the position data of the data point q' and the position data of the data points in the first data set, or the distance is determined based on the position data and radial velocity data of the data point q' and the position data and radial velocity data of the data points in the first data set.
[0067] In conjunction with the second aspect, in some implementations of the second aspect,
[0068] The velocity vector value v(q) of the core point q is a predefined velocity vector value; or,
[0069] The velocity vector value v(q) of the core point q is determined based on the data points contained in the neighborhood N(q) of the core point q.
[0070] In conjunction with the second aspect, in some implementations of the second aspect, the processing unit is also used for:
[0071] Based on the information of the core point q and one or more data points contained in the neighborhood N(q) of the core point q, determine at least one candidate velocity vector value for the core point q.
[0072] Based on the data points contained in the neighborhood N(q) of the core point q, and at least one candidate velocity vector value of the core point q, the velocity vector value v(q) of the core point q is determined.
[0073] In conjunction with the second aspect, in some implementations of the second aspect, the processing unit is also used for:
[0074] Based on the position data and radial velocity data of one or more data points contained in the core point q and its neighborhood N(q), at least one candidate velocity vector value of the core point q is determined according to the following relationship.
[0075]
[0076] Among them, v c (q) is the c-th candidate velocity vector of the core point q, where c ≥ 1, and s is the velocity vector contained in the core point q or its neighborhood N(q) used to determine the velocity vector. c Data points of (q), Let n be the radial velocity data for data point s. s To and The corresponding error. h s Let h be the direction cosine vector, where h s This is obtained based on the location data of data point s.
[0077] In conjunction with the second aspect, in some implementations of the second aspect, the processing unit is also used for:
[0078] Based on the core point q, and the position data and radial velocity data of one or more data points contained in the neighborhood N(q) of the core point q, determine the weight of at least one candidate velocity vector value of the core point q.
[0079] Based on the weight of the at least one candidate velocity vector value, the velocity vector value v(q) of the core point q is determined.
[0080] In conjunction with the second aspect, in some implementations of the second aspect, the weight of the at least one candidate velocity vector value is the sum of the weights of the data points contained in the core point q and / or the neighborhood N(q) of the core point q relative to the at least one candidate velocity vector value.
[0081] The weights of the data points contained in the core point q and / or the neighborhood N(q) of the core point q relative to the at least one candidate velocity vector value are obtained based on the position data and radial velocity data of the data points in the first set of data points contained in the core point q and / or the neighborhood N(q) of the core point q.
[0082] In conjunction with the second aspect, in some implementations of the second aspect, the neighborhood N(q) of the core point q contains a data point t relative to the candidate velocity vector value v. c The weight of (q) is based on the candidate velocity vector value v. c (q) The difference between the radial projection component of data point t and the radial velocity data of data point t is obtained, where the candidate velocity vector value v c (q) The radial projection component at data point t is based on the candidate velocity vector value v c (q) and the position data of the data point t are obtained.
[0083] In conjunction with the second aspect, in some implementations of the second aspect, the processor is also used for:
[0084] The candidate velocity vector value corresponding to the weight of the largest candidate velocity vector value among the weights of at least one candidate velocity vector value is determined as the velocity vector value v(q) of the core point q; or,
[0085] The candidate velocity vector value corresponding to the weight of the candidate velocity vector value that is greater than or equal to the third predefined threshold among the weights of at least one candidate velocity vector value is determined as the velocity vector value v(q) of the core point q.
[0086] In conjunction with the second aspect, in some implementations of the second aspect,
[0087] The compatibility condition is that the radial projection component of the velocity vector value at the data point and the radial velocity of the data point satisfy a fourth predefined threshold. The radial projection component of the velocity vector value at the data point is determined based on the velocity vector value and the position data of the data point.
[0088] In conjunction with the second aspect, in some implementations of the second aspect,
[0089] The cluster C(q) includes the following data points: the core point q, and data points p. i and data points s i,j ,
[0090] The data point p i Let N(q) be the number of data points in the neighborhood N(q) of the core point q that satisfy the compatibility condition, i = 1, ..., N. q The data point s i,j Let p be the data point i The neighborhood N(p)i Data points that satisfy compatibility conditions within the range, i = 1, ..., N q j = 1, ..., N pi ;
[0091] Wherein, the data point p i and / or the data point s i,j The compatibility condition is met when: the data point p i and / or the data point s i,j The radial velocity data at the core point q, and the velocity vector value v(q) at the data point p. i and / or the data point s i,j The radial projection component satisfies the fourth predefined threshold, and the velocity vector value v(q) of the core point q at the data point p i and / or the data point s i,j The radial projection component is based on the velocity vector value v(q) of the core point q and the data point p. i and / or the data point s i,j The location data was obtained.
[0092] In conjunction with the second aspect, in some implementations of the second aspect,
[0093] The cluster C(q) includes the following data points: the core point q, data point p i and data point v j,k ,
[0094] The data point p i Let N(q) be the data points within the neighborhood N(q) of the core point q that satisfy the compatibility conditions of the core point q, where i = 1, ..., N. q The data point v j,k For this data point u j The neighborhood N(u) j The condition of data point u within ) j The data point with compatibility conditions, that data point u j Let p be the data point i i = 1, ..., N q The number of data points in the neighborhood that satisfy the second predefined threshold is j = 1, ..., M. q k = 1, ..., N uj ;
[0095] Wherein, the data point p i And / or the data point v j,k The compatibility condition is met when: the data point p i And / or the data point v j,k The radial velocity data at the core point q, and the velocity vector value v(q) at the data point p. iAnd / or the data point v j,k The radial projection component satisfies the fourth predefined threshold, and the velocity vector value v(q) of the core point q at the data point p i And / or the data point v j,k The radial projection component is based on the velocity vector value v(q) of the core point q and the data point p. i And / or the data point v j,k The location data was obtained.
[0096] In conjunction with the second aspect, in some implementations of the second aspect,
[0097] The target velocity corresponding to the cluster C(q) is the velocity vector value v(q) of the core point q;
[0098] The target location corresponding to the cluster C(q) is the weighted sum of the locations of the data points contained in the cluster C(q).
[0099] Thirdly, an apparatus is provided, comprising a memory and a processor, the memory for storing instructions and the processor for reading the instructions stored in the memory, causing the apparatus to perform the methods described in the first aspect and any possible implementation thereof.
[0100] Fourthly, a processor is provided, comprising: an input circuit, an output circuit, and a processing circuit. The processing circuit is configured to receive signals through the input circuit and transmit signals through the output circuit, such that any of the methods in the first aspect and any possible implementation of the first aspect are implemented.
[0101] In specific implementation, the processor can be a chip, the input circuit can be an input pin, the output circuit can be an output pin, and the processing circuit can be a transistor, gate circuit, flip-flop, and various logic circuits. The input signal received by the input circuit can be received and input by, for example, but not limited to, a receiver, and the signal output by the output circuit can be output to, for example, but not limited to, a transmitter and transmitted by the transmitter. Furthermore, the input circuit and the output circuit can be the same circuit, which is used as the input circuit and the output circuit at different times. This application does not limit the specific implementation of the processor and various circuits.
[0102] Fifthly, a processing apparatus is provided, including a processor and a memory. The processor is configured to read instructions stored in the memory and to receive signals via a receiver and transmit signals via a transmitter to execute the methods of the first aspect and any possible implementation thereof.
[0103] Optionally, the processor may be one or more, and the memory may be one or more.
[0104] Optionally, the memory may be integrated with the processor, or the memory may be separated from the processor.
[0105] In specific implementation, the memory can be a non-transitory memory, such as read-only memory (ROM), which can be integrated with the processor on the same chip or set on different chips. The embodiments of this application do not limit the type of memory or the way the memory and processor are set.
[0106] It should be understood that the relevant data interaction process, such as sending indication information, can be the process of outputting indication information from the processor, and receiving capability information can be the process of the processor receiving input capability information. Specifically, the processed output data can be output to the transmitter, and the input data received by the processor can come from the receiver. Here, the transmitter and receiver can be collectively referred to as a transceiver.
[0107] In a sixth aspect, a computer-readable storage medium is provided for storing a computer program including instructions for performing the methods described in the first aspect and any possible implementation thereof.
[0108] In a seventh aspect, a computer program product containing instructions is provided, which, when run on a computer, causes the computer to perform the methods described in the first aspect and any possible implementation thereof.
[0109] Eighthly, a chip is provided, including at least one processor and an interface; the at least one processor is configured to invoke and run a computer program to cause the chip to perform the methods described in the first aspect and any possible implementation thereof. Attached Figure Description
[0110] Figure 1 This is a schematic flowchart of a clustering method 100 provided in an embodiment of this application.
[0111] Figure 2 This is a schematic flowchart of the clustering method 200 provided in the embodiments of this application.
[0112] Figure 3 This is a schematic diagram of a data point set provided in an embodiment of this application.
[0113] Figure 4 This is a schematic diagram of another set of data points provided in an embodiment of this application.
[0114] Figure 5 This is a schematic diagram of another set of data points provided in the embodiments of this application.
[0115] Figure 6 This is a schematic structural diagram of the clustering apparatus 600 provided in the embodiments of this application.
[0116] Figure 7 A schematic structural diagram of the clustering device 700 provided in this application embodiment. Detailed Implementation
[0117] The technical solutions in this application will now be described with reference to the accompanying drawings.
[0118] This application will present various aspects, embodiments, or features relating to systems comprising multiple devices, components, modules, etc. It should be understood and appreciated that individual systems may include additional devices, components, modules, etc., and / or may not include all devices, components, modules, etc. discussed in conjunction with the accompanying drawings. Furthermore, combinations of these approaches are also possible.
[0119] Figure 1 This diagram illustrates a schematic flowchart of a clustering method 100 provided in an embodiment of this application. The executing entity of this method 100 can be a sensor system, a fusion perception system, or a planning / control system integrating the above systems, such as an assisted driving or autonomous driving system. Alternatively, the executing entity of this method 100 can also be software or hardware (such as a data processing device connected or integrated with corresponding sensors wirelessly or wiredly). The following different execution steps can be implemented centrally, or they can be implemented in a distributed manner.
[0120] like Figure 1 As shown, the clustering method 100 includes steps 110 to 130, which will be described in detail below.
[0121] Step 110: Obtain the first set of data points.
[0122] The first data point set includes at least two data points, and the information of each data point in the first data point set includes position data and radial velocity data.
[0123] In this embodiment of the application, the method of obtaining the first data point set is not specifically limited.
[0124] The first set of data points can be acquired from one or more sensors, or from the cloud via wired or wireless means. This first set of data points is a collection directly measured by one or more sensors, and it is also a collection processed by the aforementioned one or more sensors.
[0125] In the embodiments of this application, the sensor can be a radar sensor, such as a millimeter-wave radar or lidar. Alternatively, the sensor can be a sonar or ultrasonic sensor. Alternatively, the sensor can also be a vision sensor or imaging sensor, such as a camera or video camera. Alternatively, the sensor can also be an imaging radar, such as lidar, synthetic aperture radar, etc. Alternatively, the sensor can also be a direction-finding sensor with frequency shift measurement capability. This direction-finding sensor, in addition to obtaining azimuth angle or azimuth and elevation angle data, can also obtain radial velocity data by measuring the frequency shift of the received signal relative to a known frequency.
[0126] The sensor platform can be a mobile device. For example, it can be a vehicle-mounted platform, such as a car, motorcycle, or bicycle. Alternatively, it can be a ship-mounted platform, such as a vessel, ship, or speedboat. It can also be an airborne platform, such as a drone, helicopter, jet aircraft, or balloon. Finally, it can be a spaceborne platform, such as a satellite.
[0127] In this embodiment, the data processing device can be deployed within the sensor platform, meaning it can be integrated with the sensor platform. Alternatively, the data processing device can be deployed outside the sensor platform, and the data processing device and the sensor platform can communicate via a wireless network.
[0128] It should be further noted that the physical composition of the sensor here can be one or more physical sensors. For example, each of the one or more physical sensors can measure the azimuth angle, pitch angle, and radial velocity respectively, or the azimuth angle, pitch angle, and radial velocity can be derived from the measurement data of the one or more physical sensors. No specific limitation is made here.
[0129] For example, a radar sensor can calculate the position data of a data point by acquiring the distance, elevation angle, and azimuth angle between the data point and the radar sensor.
[0130] For example, a radar sensor can acquire the radial velocity of a data point relative to the radar sensor by directly measuring it.
[0131] In this embodiment of the application, the format of the location data is not specifically limited.
[0132] For example, location data can be represented using rectangular coordinates. For instance, the location data can include two-dimensional rectangular coordinate components, such as (x, y). Alternatively, the location data can include three-dimensional rectangular coordinate components, such as (x, y, z).
[0133] For example, location data can be represented using polar coordinates. For instance, this location data can be represented as (ρ, θ), where ρ represents distance and θ represents azimuth.
[0134] For example, location data can be represented using spherical coordinates. For instance, this location data can be represented as (r, θ, ... Where r represents distance and θ represents azimuth. Indicates the angle of elevation or depression.
[0135] Step 120: Determine the core point q and the velocity vector value v(q) of the core point q from the first data point set.
[0136] In this embodiment of the application, the method of obtaining the core point q is not specifically limited.
[0137] As one implementation method, the core point q is a data point in a pre-specified first set of data points.
[0138] Specifically, for the first set of data points, which includes M data points, the kth data point among the M data points can be designated as the core point, where M≥2 and 1≤k≤M.
[0139] For example, suppose radar sensor A acquires a data point set A consisting of three data points: data point 1, data point 2, and data point 3. In this case, radar sensor A can pre-designate data point 2 as the core point. Alternatively, radar sensor B, which is a radar sensor capable of communicating with radar sensor A, can also pre-designate data point 2 as the core point.
[0140] Using the above method, the core point q in the first set of data points can be obtained quickly and flexibly.
[0141] In this embodiment, the k-th data point out of the M data points can be externally input. For example, the k-th data point is a point of interest within the sensor's field of view (FoV); this externally input point can be obtained by the system from the sensor itself, or it can be acquired based on information from other sensors. For example, the area of interest can be obtained from a camera, and a point can be selected as the core point from the FoV of a radar sensor.
[0142] As another implementation, the core point q is a data point q' in the first data point set, where the number of data points in the first data point set contained in the neighborhood N(q') of data point q' satisfies a first predefined threshold.
[0143] Specifically, the number of data points in the first set of data points contained in the neighborhood N(q') of data point q' satisfies the first predefined threshold, which can be that the number of data points in the first set of data points contained in the neighborhood N(q') of data point q' is greater than or equal to the first predefined threshold.
[0144] It should be understood that the neighborhood N(q') of data point q' contains data point q'.
[0145] In this embodiment of the application, the size of the first predefined threshold can be set based on experience or application scenario.
[0146] Taking the first set of data points as measurement data from the sensor as an example, the size of the first predefined threshold can be determined based on factors such as the resolution of the sensor, the size of the target to be clustered, and the distance between the target and the sensor.
[0147] For example, based on millimeter-wave radar, lidar, ultrasonic radar, or sonar, the number of data points near the corresponding data point can be calculated according to the size of the resolution cell based on its distance and / or angle, and the size of the first predefined threshold can be determined according to the desired number of data points.
[0148] For example, the value of the first predefined threshold can be 3, 4, 5, etc.; or, the value of the first predefined threshold can be 10, etc.
[0149] Optionally, the first predefined threshold can be set based on the minimum number of points required to determine the velocity vector. Specifically, if determining the velocity vector requires m data points, then the first predefined threshold is an integer greater than or equal to m. For example, if determining a two-dimensional velocity vector requires at least 2 data points, then the first predefined threshold is greater than or equal to 2. Furthermore, to ensure the accuracy of the two-dimensional velocity vector, at least l data points are required, then the first predefined threshold is greater than or equal to l. For example, l = 4, 6, 8, etc.
[0150] In the implementation of this application, the core point q can be determined in different ways as described above, which can meet different scenario requirements or functional requirements. On the one hand, it can be pre-specified according to external requirements, and specific points of interest or their surrounding areas can be clustered. On the other hand, it can determine the points of interest in the dataset or their surrounding areas based on the information of the data points, which is convenient for discovering and determining potential targets. For example, extended targets obtained through clustering, such as vehicles in assisted driving or autonomous driving environments, can be identified.
[0151] In this embodiment of the application, the method of obtaining the neighborhood N(q') of data point q' is not specifically limited.
[0152] As one implementation, the neighborhood N(q') of data point q' is a predefined neighborhood.
[0153] Specifically, the neighborhood N(q') of data point q' is a predefined neighborhood that can include data point q' and a subset of data points in the first data set; specifically, for the first data point set, which includes M data points, j data points among the M data points can be specified as the data points included in the neighborhood N(q') of data point q', where M≥2, 1≤j≤M.
[0154] For example, the data point set A includes 6 data points, namely data point 1, data point 2, data point 3, data point 4, data point 5, and data point 6. Two data points in the data point set A can be specified as the data points contained in the neighborhood N(q') of data point q', or three data points in the data point set A can be specified as the data points contained in the neighborhood N(q') of data point q', or four data points in the data point set A can be specified as the data points contained in the neighborhood N(q') of data point q'.
[0155] As one implementation, the neighborhood N(q') of data point q' is a predefined neighborhood that can be determined based on external input;
[0156] For example, based on the position or velocity vector value input from the external input and the error covariance matrix, the data point in the first set of data points closest to the position or velocity vector value input from the external input can be determined as the data point q'.
[0157] The data points within a predefined probability range of the position or velocity vector value of the external input are defined as the neighborhood N(q') of the data point q'. The data points within the predefined probability range are determined based on the position or velocity vector value of the external input and the error covariance matrix. The predefined probability can be 90%, 95%, 99%, etc., and is not limited here.
[0158] For example, the externally input position or velocity vector values and error covariance matrix can be obtained from other sensors such as radar or sensor fusion systems; the position or velocity vector values and error covariance matrix can be obtained from the state vectors and their covariance matrices obtained from other sensors or fusion systems.
[0159] For example, based on the externally input bounding box, the data points that are in the same bounding box as the data point q' are determined to be data points within the neighborhood N(q') of the data point q'; for example, the externally input bounding box can be obtained from a visual sensor or a LiDAR sensor.
[0160] As another implementation, the neighborhood N(q') of data point q' is a set of data points in a first data set whose distance from data point q' satisfies a second predefined threshold, wherein the distance is determined based on the position data of data point q' and the position data of data points in the first data set, or the distance is determined based on the position data of data point q' and radial velocity data, as well as the position data and radial velocity data of data points in the first data set.
[0161] In this case, the number of data points in the neighborhood N(q) of the core point q that are connected to the core point q should satisfy a first predefined threshold, and the distance between each data point in the neighborhood N(q) of the core point q and the core point q should satisfy a second predefined threshold.
[0162] Specifically, the statement that the distance to data point q' satisfies the second predefined threshold can be understood as the distance to data point q' being less than or equal to the second predefined threshold.
[0163] For example, taking data point k in the data point set as an example, the neighborhood N(k) of data point k is a subset of the first data point set, and N(k) can be represented as:
[0164] N(k) = {l∈D|d(k,l)≤T1}
[0165] Alternatively, the neighborhood N(k) of data point k is a subset of the first set of data points, and N(k) can be represented as:
[0166] N(k)={l∈D|d p (k,l)+d v (k,l)≤T1}
[0167] Alternatively, the neighborhood N(k) of data point k is a subset of the first set of data points, and N(k) can be represented as:
[0168] N(k)={l∈D|d p (k,l)≤T 11 ,d v (k,l)≤T 12}
[0169] Where D is the first set of data points, and d(k,l) represents the distance between data point k and data point l, which can be obtained from the distance data of the data points or the distance and radial velocity data; d p (k,l) represents the distance between data point k and data point l obtained from the distance data, d v (k,l) represents the distance between data point k and data point l obtained from the radial velocity data of the data points; T1, T 11 T12 Both represent the second predefined threshold.
[0170] Optionally, the distance between data points can be Euclidean distance, Mahalanobis distance, or other distances equivalent to the above.
[0171] For example, the distance between two data points can be obtained based on Euclidean or Mahalanobis distance and the position data of the two data points, or the position data of the two data points and radial velocity data.
[0172] Specifically, the Euclidean distance between two data points is:
[0173]
[0174] Specifically, the Mahalanobis distance between two data points is:
[0175]
[0176] In the above expression, The vector difference between two data points. To and The corresponding error covariance.
[0177] Taking two-dimensional location data as an example, the positional difference between data point k and data point l for:
[0178]
[0179] The Euclidean distance d between data point k and data point l E (k,l) can be represented as:
[0180]
[0181] Taking three-dimensional position data as an example, the position difference between data point k and data point l for:
[0182]
[0183] The Euclidean distance d between data point k and data point l E (k,l) can be represented as:
[0184]
[0185] In this embodiment of the application, the size of the second predefined threshold can be set based on experience or application scenario.
[0186] Specifically, the threshold can be determined based on the probability that a data point within the threshold is located at that threshold, such as a probability greater than 90%, like 97% or 99%. For example, for Euclidean distance, the second predefined threshold can be a multiple of the corresponding error standard deviation, such as 1.5, 2, or 3 times the error standard deviation. For Mahalanobis distance, the second predefined threshold can be 1 + m / 2, or 3, etc., where m is the dimension of the vector. For a vector composed of two-dimensional position data, m = 2; for a vector composed of three-dimensional position data or a vector composed of two-dimensional position data and radial velocity data, m = 3; for a vector composed of three-dimensional position data and radial velocity data, m = 4.
[0187] As another implementation, the core point q is determined based on the neighborhood of the data points in the first set of data points. The neighborhood of a data point is the set of data points within the bounding box of the data point and the data points whose distance from the data point meets the second predefined threshold. The distance of the data point is determined based on the position data of the data point, or the distance of the data point is determined based on the position data and radial velocity data of the data point.
[0188] In some implementations, the bounding box containing the data points can be pre-specified externally. For example, the bounding box information can be obtained from sensors such as cameras or LiDAR. This bounding box can be obtained based on machine learning, computer vision, or deep learning methods using camera or LiDAR data; no specific limitations are imposed here.
[0189] For example, taking data point k in the data point set as an example, the area consisting of the data points within the border of data point k and the data points whose distance from data point k is less than a preset threshold value can be regarded as the neighborhood of data point k. The size of the preset threshold value can be set in a similar way to setting the second predefined threshold as described above.
[0190] In this application, the neighborhood N(q') of data point q' can be determined through the different methods described above. Determining the neighborhood N(q') of data point q' offers high flexibility and is suitable for various application scenarios. On one hand, it can be pre-specified based on external requirements, such as specifying the neighborhood of a specific point of interest; on the other hand, the neighborhood of points of interest in the dataset can be determined based on the information of the data points, facilitating the discovery and identification of potential targets.
[0191] In this embodiment of the application, the method of obtaining the velocity vector value v(q) of the core point q is not specifically limited.
[0192] As one implementation method, the core point is that the velocity vector value v(q) of q is a predefined velocity vector value.
[0193] For example, the velocity vector value v(q) of the core point q can be predefined by sensor B, which communicates with sensor A, where sensor A is the sensor that acquires the core point q.
[0194] For example, a predefined core point q and its velocity vector value v(q) can be obtained from data input from other sensors or a fusion system.
[0195] Specifically, the data input from the other sensors or fusion system mentioned above may include state vector data X, or state vector data X and its covariance matrix X, wherein the state vector X may include position data and velocity vector data. Based on the state vector X, a data point is selected from the first data point set as a core point q, and the velocity data contained in the state vector X is used as the velocity vector value v(q) of the core point q. The core point q can be the data point in the first data point set that is closest to the position data and velocity data in the state vector.
[0196] Using the above method, the core point q of interest and its velocity vector value v(q) in the first data point set can be obtained quickly and flexibly. Alternatively, the velocity vector value v(q) of the core point q can be determined based on the data points contained in the neighborhood N(q) of the core point q.
[0197] In this embodiment, the velocity vector value v(q) of the core point q is determined based on the data points contained in the neighborhood N(q) of the core point q, including:
[0198] Based on the position data and radial velocity data of the core point q and one or more data points contained in the neighborhood N(q) of the core point q, determine at least one candidate velocity vector value for the core point q.
[0199] The velocity vector value of the core point q is determined based on the data points contained in the neighborhood N(q) of the core point q and at least one candidate velocity vector value of the core point q.
[0200] Specifically, the neighborhood N(q) of the core point q contains data points p. i Let i = 1, ..., |N(q)|, where |N(q)| is the size of the neighborhood N(q) of the core point q, which is the number of data points contained in N(q); this can be determined based on the core point q and the data points p. i One or more data points i = 1, ..., |N(q)| determine at least one candidate velocity vector value for the core point q.
[0201] For example, the core point q is data point 3 within the first data point set, and the neighborhood N(q) of the core point q contains data points 1, 4, and 8 within the first data point set. For instance, a candidate velocity vector value for the core point q=3 can be determined based on the core point q=3 and data point 1. Similarly, a candidate velocity vector value for the core point q=3 can be determined based on the core point q=3, data point 4, and data point 8. For simplicity, these will not be listed individually here.
[0202] In this embodiment of the application, determining at least one candidate velocity vector value for the core point q based on information about the core point q and one or more data points contained in its neighborhood N(q) includes:
[0203] Based on the position data and radial velocity data of one or more data points contained in the core point q and its neighborhood N(q), at least one candidate velocity vector value of the core point q is determined according to the following relationship.
[0204]
[0205] Among them, v c (q) is the c-th candidate velocity vector of the core point q, where c ≥ 1, and s is the velocity vector v within the core point q or its neighborhood used to determine the candidate velocity vector. c Data points of (q), Let n be the radial velocity data for data point s. s To and The corresponding error. h s Let h be the direction cosine vector, where h s It is obtained from the location data of data point s.
[0206] Specifically, taking two-dimensional rectangular coordinates or polar coordinates as an example, the direction cosine vector h s It can be represented as:
[0207] h s =[cosθ s sinθ s ]
[0208] Alternatively, the direction cosine vector h s It can be represented as:
[0209]
[0210] Specifically, taking three-dimensional rectangular coordinates or spherical coordinates as an example, the direction cosine vector h s It can be represented as:
[0211]
[0212] Alternatively, the direction cosine vector h s It can be represented as:
[0213]
[0214] in, θ s All data are the location data of data point s, and the specific θ s Let be the azimuth angle of data point s. x is the pitch angle of data point s; s ,y s ,z s The rectangular coordinates of data point s are given.
[0215] The clustering method provided in this application determines the velocity vector value v(q) of the core point q by using data points within the neighborhood of the core point q, and then clusters the data points based on this velocity vector value v(q). This method can fully utilize the position and radial velocity component information of the target data points to reconstruct the target's velocity vector information. Therefore, it can fully utilize the velocity vector information of the core point q, avoid the limitations of radial velocity data as component information, and reduce the sensitivity of spatial position data to input parameters, effectively improving the accuracy and reliability of clustering.
[0216] In the embodiments of this application, the method for determining the candidate velocity vector value of the core point q is not specifically limited.
[0217] For example, based on the above relational formula, a candidate velocity vector value for the core point q can be obtained using least squares (LS), weighted least squares (WLS), minimum mean squared error (MMSE), or Wiener filtering, based on the core point q and the data points contained in the neighborhood of the core point q.
[0218] As one implementation, the candidate velocity vector N(q) of the core point q can be determined by the core point q and the points pi in the neighborhood N(q) of the core point q, i = 1, ..., M, where 1 ≤ M ≤ |N(q)|.
[0219] Taking the least squares (LS) method as an example, the candidate velocity vector value of the core point q is determined according to LS, and the candidate velocity vector value v of the core point q is... c (q) satisfies the following expression:
[0220]
[0221] Among them, v c (q) represents the candidate velocity vector value of the core point q; h qh represents the direction cosine vector of the core point q. pi Represents data point p i The direction cosine vector; This represents the radial velocity data at the core point q. Represents data point p i Radial velocity data, i = 1, ..., M.
[0222] Taking the Weighted Least Squares (WLS) method as an example, the candidate velocity vector values of the core point q are determined according to WLS, and the candidate velocity vector value v of the core point q is... c (q) satisfies the following expression:
[0223]
[0224] in, This represents the error variance of the radial velocity data at the core point q. Represents data point p i The error variance of the radial velocity data, i = 1, ..., M; other variables are as described above and will not be repeated here.
[0225] Similarly, based on the MMSE criterion or Wiener filtering, candidate velocity vector values for the core point q can be obtained, which will not be elaborated here.
[0226] It should be noted that different candidate velocity vector values can be obtained by using the core point q and different data points or combinations of data points in the neighborhood of the core point q.
[0227] In this embodiment of the application, the velocity vector value of the core point q is determined based on the data points in the first data point set contained in the neighborhood N(q) of the core point q, and the candidate velocity vector values of the core point q, including:
[0228] Based on the core point q and one or more data points contained in the neighborhood N(q) of the core point q, determine the weight of at least one candidate velocity vector value of the core point q.
[0229] The velocity vector value of the core point q is determined based on the weight of at least one candidate velocity vector value.
[0230] The weight of at least one candidate velocity vector value of the core point q is obtained based on the position and radial velocity data of one or more data points contained in the core point q and / or the neighborhood N(q) of the core point q.
[0231] Optionally, in some embodiments, the weight of the candidate velocity vector value is the sum of the weights of one or more data points contained in the core point q and / or the neighborhood N(q) of the core point q relative to the candidate velocity vector value.
[0232] The weights of each data point contained in the core point q and / or the neighborhood N(q) of the core point q relative to the at least one candidate velocity vector value are obtained based on the position data and radial velocity data of one or more data points contained in the core point q and / or the neighborhood N(q) of the core point q.
[0233] Specifically, the weight of a candidate velocity vector value is the sum of the weights of one or more data points contained in the core point q and / or its neighborhood N(q) relative to that candidate velocity vector value, given a candidate velocity vector value v of the core point q. c Taking (q) as an example,
[0234] Candidate velocity vector value v of core point q c The weights of (q) satisfy the following expression:
[0235] w c (v c (q))=∑Δw c,i (v c (q)), i = 1, 2, ..., N, N ≥ 1
[0236] Where, Δw c,i (v c (q) represents the data point with index i within the neighborhood N(q) of the core point q, relative to v. c The weight of (q).
[0237] For example, the neighborhood of core point 1 in data point set A is N(1), which includes core point 1, data point 2, and data point 3, and the candidate velocity vector value of core point 1 is v1(1). In this case, the weight of the candidate velocity vector value v1(1) of core point 1 can satisfy the following expression:
[0238] w1(v1(1))=Δw 1,1 (v1(1))
[0239] Alternatively, the weights of the candidate velocity vector values v1(1) of core point 1 can satisfy the following expression:
[0240] w1(v1(1))=Δw 1,1 (v1(1))+Δw 1,2 (v1(1))
[0241] Alternatively, the weights of the candidate velocity vector values v1(1) of core point 1 can satisfy the following expression:
[0242] w1(v1(1))=Δw 1,1 (v1(1))+Δw 1,2 (v1(1))+Δw 1,3 (v1(1))
[0243] Where w1(v1(1)) is the weight of the candidate velocity vector value v1(1) of core point 1; Δw 1,1 (v1(1)) is the weight of data point 1 relative to the candidate velocity vector value v1(1); Δw 1,2 (v1(1)) is the weight of data point 2 relative to the candidate velocity vector value v1(1); Δw 1,3 (v1(1)) is the weight of data point 3 relative to the candidate velocity vector value v1(1).
[0244] As one implementation, a data point s within the neighborhood N(q) of the core point q is relative to the candidate velocity vector value v. c The weight of (q) can be the radial velocity data of data point s. With v c (q) and candidate velocity vector value v c (q) Velocity projection component at data point s The function; specifically, it can be based on the radial velocity data of data point s. With v c (q) and candidate velocity vector value v c (q) Velocity projection component at data point s The difference This can be obtained. For example, the function can be an exponential function, a Gaussian density function, or other similar probability density functions. It should be noted that the data point s can be the core point q.
[0245] Optionally, in some embodiments, a data point s within the neighborhood N(q) of the core point q is relative to the candidate velocity vector value v. c The weight of (q) can be determined based on the radial velocity data of data point s. With v c (q) and candidate velocity vector value v c (q) Velocity projection component at data point s The difference is achievable.
[0246] For example, the weight satisfies the following expression:
[0247]
[0248] Alternatively, the weight satisfies the following expression:
[0249]
[0250] Alternatively, the weight satisfies the following expression:
[0251]
[0252] Alternatively, the weights satisfy the following expression:
[0253]
[0254] In the above expression, Candidate velocity vector value v c (q) The radial projection component at data point s; σ represents the radial velocity of data point s; 2 For data point s and radial velocity projection components The variance of the error. a0 and β0 are configuration parameters. For example, a0 = 1, or... And so on, β0 = 1, 2, ... etc.
[0255] in, Based on the candidate velocity vector value v c (q) and the position data of data point s are obtained.
[0256] For example, Satisfy the following expression:
[0257]
[0258] or, Satisfy the following expression:
[0259]
[0260] Among them, v c,x (q) represents the candidate velocity vector value v c (q) Components along the x-axis; v c,y (q) represents the candidate velocity vector value v c (q) Component on the y-axis; v c,z (q) represents the candidate velocity vector value v c (q) Components along the z-axis.
[0261] Where, σ 2 For data point s and radial velocity projection components The variance of the error.
[0262] Specifically, σ 2 Satisfy the following expression:
[0263]
[0264] in, The variance of the radial velocity error at data point s is represented by Δ; Δ is a compensation term, which can represent the variance of the radial velocity error caused by other factors, such as the variance caused by azimuth angle or azimuth and pitch angles. Δ can be a pre-defined constant. Alternatively, Δ can be based on the candidate velocity vector value v. c,x (q) Confirm.
[0265] Taking a two-dimensional velocity vector as an example, Δ satisfies the following expression:
[0266]
[0267] Optionally, in some embodiments, the weight of the candidate velocity vector value is the product of the weight factors of one or more data points within a first set of data points contained in the core point q and / or the neighborhood N(q) of the core point q relative to the candidate velocity vector value.
[0268] For example, the weighting factor satisfies the following expression:
[0269]
[0270] Alternatively, the weighting factor satisfies the following expression:
[0271]
[0272] In this embodiment of the application, determining the velocity vector value v(q) of the core point q based on the weight of at least one candidate velocity vector value includes:
[0273] The candidate velocity vector value corresponding to the weight of the largest candidate velocity vector value among the weights of at least one candidate velocity vector value is determined as the velocity vector value v(q) of the core point q; or,
[0274] The candidate velocity vector value corresponding to the weight of the candidate velocity vector value that is greater than or equal to the third predefined threshold among the weights of at least one candidate velocity vector value is determined as the velocity vector value v(q) of the core point q.
[0275] The following section introduces the process of determining the velocity vector value v(q) of the core point q by selecting the candidate velocity vector value corresponding to the weight of the largest candidate velocity vector value among the weights in the candidate velocity vectors.
[0276] Specifically, based on one or more data points in the first data point set and the core point q, multiple candidate velocity vector values can be determined, each of which corresponds to a weight.
[0277] The candidate velocity vector value with the largest weight among the multiple candidate velocity vector values is determined as the velocity vector value v(q) of the core point q.
[0278] For example, in data point set A (which includes at least core point q, data point 1, and data point 2), only two candidate velocity vector values for core point q in data point set A are obtained through calculation. These two candidate velocity vector values are v1(q) and v2(q), where the weight corresponding to v1(q) is w1(v1(q)) and the weight corresponding to v2(q) is w2(v2(q)), and w1(v1(q)) is greater than w2(v2(q)). In this case, v1(q) can be determined as the velocity vector value v(q) of core point q.
[0279] The following section introduces the requirement that the weight of the velocity vector value v(q) of the core point q is greater than or equal to the third predefined threshold.
[0280] As one implementation, based on one or more data points in the first data point set and the core point q, multiple candidate velocity vector values of the core point q can be determined. These multiple candidate velocity vector values correspond to multiple weights. The candidate velocity vector value corresponding to the weight of the candidate velocity vector value that is greater than or equal to a third predefined threshold among the multiple candidate velocity vector values is determined as the velocity vector value v(q) of the core point q.
[0281] For example, in data point set A (which includes at least core point q, data point 1, and data point 2), only two candidate velocity vector values for core point q in data point set A are obtained through calculation. These two candidate velocity vector values are v1(q) and v2(q), with weight w1(v1(q)) for v1(q) and weight w2(v2(q)) for v2(q). Here, v1(q) is the first candidate velocity vector for core point q determined based on the position and radial velocity data of core point q and data point 1, and v2(q) is the second candidate velocity vector for core point q determined based on the position and radial velocity data of core point q, data point 1, and data point 2. If w1(v1(q)) is less than a third predefined threshold and w2(v2(q)) is greater than the third predefined threshold, then v2(q) is determined as the velocity vector value of core point q.
[0282] It should be noted that if there are at least two candidate velocity vector values whose weights are greater than the third predefined threshold, the candidate velocity vector value corresponding to the weight of any one of these two candidate velocity vector values can be determined as the velocity vector value v(q) of the core point q.
[0283] Alternatively, if at least two of the candidate velocity vector values have weights greater than the third predefined threshold, the candidate velocity vector value closest to the external input can be selected from these two candidate velocity vector values and determined as the velocity vector value v(q) of the core point q.
[0284] For example, in data point set A (data point set A includes at least core point q, data point 1, data point 2, and data point 3), three candidate velocity vector values are obtained only for core point q in data point set A. These three candidate velocity vector values are v1(q), v2(q), and v3(q), and the weight corresponding to v1(q) is w. 1,1 The weights corresponding to (v1(q)) and v2(q) are w. 2,3 The weights corresponding to (v2(q)) and v3(q) are w. 3,2 (v3(q)). Where v1(q) is the first candidate velocity vector for core point q determined based on the position and radial velocity data of core point q and data point 1; v2(q) is the second candidate velocity vector for core point q determined based on the position and radial velocity data of core point q, data point 1, and data point 2; and v3(q) is the third candidate velocity vector for core point q determined based on the position and radial velocity data of core point q and data point 2. In w 1,1 (v1(q)) is less than the value of the third predefined threshold, and w 2,3 (v2(q)), average w 3,2 If v3(q) is greater than the third predefined threshold, v2(q) can be determined as the velocity vector value of the core point q, or v3(q) can be determined as the velocity vector value of the core point q. Alternatively, v2(q) and v3(q) can be compared with the nearest candidate velocity vector value from the external input to determine v2(q) or v3(q) as the velocity vector value of the core point q.
[0285] Step 130: Based on the core point q and the velocity vector value v(q) of the core point q, determine the cluster C(q) from the first data point set. The radial velocity of each data point in the cluster C(q) satisfies the compatibility condition with the velocity vector value v(q).
[0286] As one implementation method, the compatibility condition is that the radial projection component of the velocity vector value at the data point and the radial velocity of the data point satisfy the fourth predefined threshold, and the radial projection component of the velocity vector value at the data point is determined based on the velocity vector value and the position data of the data point.
[0287] In this embodiment of the application, the size of the fourth predefined threshold can be set based on experience or application scenario.
[0288] Specifically, the fourth predefined threshold can be determined based on the standard deviation of the radial velocity data of the data point or the standard deviation of the error between the radial velocity data of the data point and the radial velocity projection component.
[0289] For example, the fourth predefined threshold can be the standard deviation of the radial velocity data error or m times the standard deviation of the radial velocity data of the data point and the radial velocity projection component error. For example, m can be 1.5, 2, 3, etc.; or m can be determined according to predefined probabilities such as 90%, 95%, 97%, 99%, etc.
[0290] As one implementation, the clustering C(q) includes the following data points: the core point q, and data points p. i and data points s i,j ,
[0291] Data point p i Let N(q) be the number of data points in the neighborhood N(q) of the core point q that satisfy the compatibility condition, i = 1, ..., N. q Data point s i,j For data point p i The neighborhood N(p) i Data points within the range that satisfy compatibility conditions, i = 1, ..., N q j = 1, ..., N pi ;
[0292] Wherein, data point p i and / or data points s i,j The compatibility condition is met as follows: data point p i and / or data points s i,j The radial velocity data and the velocity vector value v(q) at the core point q at data point p i and / or data points s i,j The radial projection components satisfy the fourth predefined threshold, and the velocity vector value v(q) of the core point q is at data point p. i and / or data points s i,j The radial projection component is based on the velocity vector value v(q) of the core point q and the data point p. i and / or data points s i,j The location data was obtained.
[0293] In some implementations, the velocity vector value v(q) of the core point q is taken as a two-dimensional vector [v x (q),v y Taking the position data of the data point as polar coordinates as an example, the radial projection component of the velocity vector value v(q) of the core point q onto the data point p satisfies the fourth predefined threshold with the data point p, and the corresponding compatible neighborhood can be expressed as:
[0294]
[0295] Where, N rrc (q) represents the neighborhood of data points that satisfy the compatibility conditions of core point q; N(q) represents the neighborhood of core point q; v x (q) represents the x-component of the velocity vector v(q) at the core point q; v y (q) represents the y-component of the velocity vector v(q) at the core point q; θ p This represents the azimuth angle of data point p; D represents the radial velocity of data point p; T This is the compatibility neighborhood threshold value.
[0296] It should be noted that the location data of the data point can also be in rectangular coordinates. In this case, the cosine and sine of the azimuth of the data point p can be determined based on the rectangular coordinates (x, y, s) of the data point. p ,y p The details are as follows, and will not be elaborated further here.
[0297] In the embodiments of this application, the value of the compatibility neighborhood threshold can be set based on experience and / or application scenarios.
[0298] Specifically, the compatibility neighborhood threshold can be determined based on the standard deviation of the radial velocity data of the data point or the standard deviation of the error between the radial velocity data of the data point and the radial velocity projection component. For example, the compatibility neighborhood threshold can be m times the standard deviation of the radial velocity data or the standard deviation of the error between the radial velocity data of the data point and the radial velocity projection component, such as m can be 1.5, 2, 3, etc.; or, m can be determined according to a predefined probability such as 90%, 95%, 97%, 99%, etc.
[0299] In other implementations, the velocity vector value v(q) of the core point q is taken as the three-dimensional vector [v x (q),v y (q),v z Taking the position data of data point p as spherical coordinates as an example, the radial projection of the velocity vector value v(q) of the core point q onto the data point p satisfies the fourth predefined threshold with the data point p. The neighborhood formed by the data points corresponding to the compatibility condition of the core point q can be represented as:
[0300]
[0301] Where, N rrc (q) represents the neighborhood of data points that satisfy the compatibility conditions of core point q; N(q) represents the neighborhood of core point q; v x(q) represents the x-component of the velocity vector v(q) at the core point q; v y (q) represents the y-component of the velocity vector v(q) at the core point q; v z (q) represents the component of the velocity vector v(q) of the core point q in the z-axis direction; θ represents the pitch angle of data point p. p This represents the azimuth angle of data point p; D represents the radial velocity of data point p; T This is the compatibility neighborhood threshold value.
[0302] It should be noted that the location data of the data point can also be in three-dimensional rectangular coordinates. In this case, the pitch angle, azimuth cosine, and azimuth sine of the data point p can be determined based on the rectangular coordinates (x, y, y) of the data point's location. p ,y p ,z p The details are as follows, and will not be elaborated further here.
[0303] Optionally, as another implementation, clustering C(q) includes the following data points:
[0304] Cluster C(q) includes the following data points: core point q, data points p i and data point v j,k ,
[0305] Data point p i Let N(q) be the data points within the neighborhood N(q) of the core point q that satisfy the compatibility condition of the core point q, where i = 1, ..., N. q Data point v j,k For data point u j The neighborhood N(u) j The data point u within the range satisfies j Data points with compatibility conditions, the data point u j For data point p i i = 1, ..., N q Data points j = 1, ..., M that satisfy the second predefined threshold in their neighborhood contain a number of data points. q k = 1, ..., N uj ;
[0306] Wherein, data point p i and / or data point v j,k The compatibility condition is met as follows: data point p i and / or data point v j,k The radial velocity data at the core point q and the velocity vector value v(q) at the data point p i and / or data point v j,kThe radial projection components satisfy the fourth predefined threshold, and the velocity vector value v(q) of the core point q is at data point p. i and / or data point v j,k The radial projection component is based on the velocity vector value v(q) of the core point q and the data point p. i and / or data point v j,k The location data was obtained.
[0307] Optionally, as another implementation, the above core points can be data points whose neighborhood size satisfies a predefined threshold, and whose compatibility neighborhood size also satisfies a predefined threshold. Here, the compatibility neighborhood is a set of data points in the first set of data points that satisfy the above compatibility conditions. The above definition of core points applies to the aforementioned core point q and core point u. j And so on, not all of them are listed here.
[0308] The clustering method provided in this application embodiment further includes: obtaining a second data point set, wherein the data points in the second data point set are data points in the first data point set other than the data points contained in cluster C(q); and determining a cluster from the second data point set using the method in step 120 and the method described in step 130.
[0309] For example, in a data point set A, a core point and its candidate velocity vector value are determined. Based on the core point and its candidate velocity vector value, a cluster #1 is determined from data point set A, where the number of data points in cluster #1 is less than the number of data points in data point set A. In this case, a data point set B can be obtained, which is the difference between data point set A and cluster #1. Clustering is then performed on data point set B to obtain cluster #2. The specific method for obtaining cluster #2 is the same as the method for obtaining cluster #1.
[0310] Furthermore, as one implementation method, the target velocity corresponding to cluster C(q) is the velocity vector value v(q) of the core point q.
[0311] Furthermore, the target location corresponding to cluster C(q) is the weighted sum of the locations of data points within the neighborhood N(q) of the core point q.
[0312] The clustering method provided in this application clusters data points using a core point q and its velocity vector value v(q). This fully utilizes the velocity vector information of the core point q, avoiding the limitations of radial velocity data as a component information, and reduces the sensitivity of spatial location data to input parameters, effectively improving the accuracy and reliability of clustering. Furthermore, in the embodiments of this application, the core point q and its velocity vector value can be determined in different ways, making it suitable for various application scenarios. For example, it is suitable for scenarios where the data points in the data point set are sparse, or scenarios where the data points in the data point set are dense.
[0313] Figure 2 A schematic flowchart of a clustering method 200 provided in an embodiment of this application is shown.
[0314] like Figure 2 As shown, the clustering method 200 includes steps 210 to 250, which are described below. It should be understood that... Figure 2 This is for illustrative purposes only and does not constitute any limitation on the clustering method 100 provided in this application.
[0315] To facilitate understanding, we will first present a schematic diagram of a data point set provided in an embodiment of this application.
[0316] Figure 3 A schematic diagram of a data point set provided in an embodiment of this application is shown.
[0317] like Figure 3 As shown, the data point set #1 (i.e., an example of the first data point set in method 100) includes 10 data points, namely data point 1, data point 2, data point 3, data point 4, data point 5, data point 6, data point 7, data point 8, data point 9, and data point 10.
[0318] The distances between different data points are not all the same. For example, the distance between data point 1 and data point 9 is greater than the distance between data point 1 and data point 6. Similarly, the distance between data point 2 and data point 4 is roughly the same as the distance between data point 1 and data point 2.
[0319] By way of example and not limitation, the clustering method 100 provided in the embodiments of this application can obtain at least one cluster #1 in the data point set #1 (see...). Figure 3 ), where cluster #1 contains data point 1, data point 6 and data point 10 from data point set #1.
[0320] It should be understood that Figure 3This is for illustrative purposes only and does not constitute any limitation on the first data point set and / or cluster C(q) in this application. For example, the first data point set and / or cluster C(q) may include more or fewer data points. Also, the data points in the first data point set and / or cluster C(q) may be closer or farther apart.
[0321] Below, in conjunction with Figure 3 The provided data point set #1 provides a detailed description of the clustering method 200 provided in the embodiments of this application.
[0322] Step 210: Obtain information for each data point in data point set #1 (i.e., an example of the first data point set in method 100).
[0323] The information for each data point includes position data and radial velocity data.
[0324] The method for obtaining data point information in step 210 is the same as the method for obtaining data point information in step 110. For the sake of brevity, it will not be described in detail here.
[0325] Step 220: Determine the core point of data point set #1, and the core points in the neighborhood of the core point.
[0326] For ease of description, we will focus on data point 1 in data point set #1 below.
[0327] In this embodiment of the application, data point 1 can be determined as the core point of data point set #1 based on the location data of each data point in data point set #1, the first predefined threshold, and the second predefined threshold. The neighborhood N(1) of core point 1 contains data points 1, 2, and 6. In this case, data point 6 in the neighborhood N(1) of data point 1 can also be determined as the core point in N(1), and the neighborhood N(6) of core point 6 contains data points 6, 1, and 10.
[0328] Optionally, in some implementations, the core point in the data point set #1, as well as the core points in the neighborhood of that core point, can also be determined in a predefined manner.
[0329] It should be noted that the method for determining the core point 1 in the data point set #1 and the method for determining the core point 6 in the neighborhood N(1) of the core point 1 provided in this application embodiment are the same as the method for determining the core point in step 120. For the sake of brevity, they will not be described in detail here.
[0330] Step 230: Determine the velocity vector value of the core point.
[0331] As one implementation method, determining the velocity vector value v(q) of the core point q can include the following steps:
[0332] Based on the core point q and one or more data points in the neighborhood of the core point q, obtain at least one candidate velocity vector value for the core point;
[0333] Based on the core point and the position data and radial velocity data of one or more data points contained in the neighborhood N(q) of the core point q, determine the weight of at least one candidate velocity vector value of the core point q.
[0334] The candidate velocity vector value corresponding to the largest weight among the weights of at least one candidate velocity vector value of the core point q is determined as the velocity vector value v(q) of the core point q.
[0335] In this embodiment of the application, based on the two core points (data point 1 and data point 6) determined in step 220, the velocity vector value v(1) of core point 1 and the velocity vector value v(6) of core point 6 can be determined respectively by using the above method and the relevant formula in step 120.
[0336] Specifically, in the neighborhood N(1) of core point 1, the first candidate velocity vector value of core point 1 can be determined as v1(1) based on data point 2 and core point 1, and the weight corresponding to v1(1) is w1(v1(1)). In the neighborhood N(1) of core point 1, the second candidate velocity vector value of core point 1 can also be determined as v2(1) based on data point 6 and core point 1, and the weight corresponding to v2(1) is w2(v2(1)). In the neighborhood N(1) of core point 1, the third candidate velocity vector value of core point 1 can be determined as v3(1) based on data point 2, data point 6 and core point 1, and the weight corresponding to v3(1) is w3(v3(1)). Since w1(v1(1))≥w2(v2(1))≥w3(v3(1)) is greater than w2(v2(1)), v1(1) can be determined as the velocity vector value v(1) of core point 1.
[0337] In the neighborhood N(6) of core point 6, the candidate velocity vector value of core point 6 can be determined based solely on core point 6, data point 1, and data point 10. Specifically, based on data point 10 and core point 6, the first candidate velocity vector value of core point 6 can be determined as v1(6), and the weight corresponding to v1(6) is w1(v1(6)). Based on data point 10 and data point 1, the second candidate velocity vector value of core point 6 can be determined as v2(6), and the weight corresponding to v2(6) is w2(v2(6)). In the case that w1(v1(6)) > w2(v2(6)), v1(6) can be determined as the velocity vector value v(6) of core point 6.
[0338] For ease of understanding, the method for determining the velocity vector value v(1) of core point 1 is described in detail below. It should be understood that the velocity vector value v(6) of core point 6 can also be obtained using the following method.
[0339] Taking data point 2 and core point 1 in the neighborhood N(1) of core point 1 as an example, the first candidate velocity vector value v1(1) of core point 1 can be obtained in the following way:
[0340]
[0341] Where v1(1) represents the candidate velocity vector value of core point 1; h1 represents the direction cosine vector of core point 1, and h2 represents the direction cosine vector of data point 2; This represents the radial velocity data at core point 2. This represents the radial velocity data for data point 2.
[0342] Taking the weighted least squares (WLS) method as an example, the candidate velocity vector value of core point 1 is determined according to WLS. The candidate velocity vector value v1(1) of core point 1 satisfies the following expression:
[0343]
[0344] in, This represents the error variance of the radial velocity data at core point 1. This represents the error variance of the radial velocity data at data point 2; other variables are as described above and will not be repeated here.
[0345] Similarly, the same method used to determine v1(1) can be used to determine v2(1) and v3(1).
[0346] Among them, the weight w1(v1(1)) of the candidate velocity vector value v1(1) at the core point 1 satisfies the following expression:
[0347] w1(v1(1))=Δw 1,1 (v1(1))+Δw 1,2 (v1(1))
[0348] Where, Δw 1,1 (v1(1)) represents the weight of core point 1 relative to the candidate velocity vector value v1(1); Δw 1,2 (v1(1)) represents the weight of data point 2 relative to the candidate velocity vector value v1(1).
[0349] Similarly, w2(v2(1)) and w3(v3(1)) can be determined by determining w1(v1(1)).
[0350] Wherein, the weight Δw of data point 2 relative to the candidate velocity vector value v1(1) 1,2 (v1(1)) satisfies the following expression:
[0351]
[0352] In the above expression, The radial projection component of the candidate velocity vector value v1(1) at data point 2; σ represents the radial velocity of data point 2; 2 For data point 2 and the radial velocity projection component The variance of the error. a0 and β0 are configuration parameters. For example, a0 = 1, or... And so on, β0 = 1, 2, ... etc.
[0353] Similarly, Δw can be determined. 1,2 The method of (v1(1)) determines Δw 1,1 (v1(1)).
[0354] Step 240: Determine a cluster from data point set #1 based on the core point and its velocity vector value.
[0355] According to step 230, the velocity vector value of core point 1 is v1(1), and data point 6 in the neighborhood N(1) of core point 1 is the core point within the neighborhood N(1), and the velocity vector value of core point 6 is v1(6).
[0356] Based on the radial projection formula in step 130, the following can be calculated:
[0357] Within data point set #1, the radial projection component of v1(1) of core point 1 onto data point 6 and the radial velocity of data point 6 satisfy the fourth predefined threshold, while the radial projection component of v1(1) of core point 1 onto data point 2 and the radial velocity of data point 2 do not satisfy the fourth predefined threshold. Furthermore, the radial projection component of v1(6) of core point 6 onto data point 10 and the radial velocity of data point 10 satisfy the fourth predefined threshold. In this case, data points 1, 6, and 10 within data point set #1 can be clustered into one class.
[0358] Specifically, the velocity vector value v(1) of core point 1 is taken as a two-dimensional vector [v x (1),v y When (1)], taking the position data of the data point as polar coordinates as an example, the radial projection component of the velocity vector value v(1) of the core point 1 on the data point 6 and the radial velocity of the data point p satisfy the fourth predefined threshold. The neighborhood formed by the data points with the compatibility condition of the core point 1 can be expressed as:
[0359]
[0360] Where, N rrc (1) represents the neighborhood formed by data points that satisfy the compatibility conditions of core point 1; N(1) represents the neighborhood of core point 1; v x (1) represents the component of the velocity vector v(1) at core point 1 along the x-axis; v y (1) represents the component of the velocity vector v(1) at core point 1 along the y-axis; θ p This represents the azimuth angle of data point p; D represents the radial velocity of data point p; T This is the compatibility neighborhood threshold value. (D) T For instructions on setting the size, please refer to step 120 in method 100.
[0361] Step 250: Obtain data point set #2 (i.e., an example of the second data point set in method 100), and cluster the data points in data point set #2 using the methods from steps 220 to 240.
[0362] After steps 210 to 240, the process also includes obtaining data point set #2, specifically the data points contained in data point set #2. Figure 4 As shown.
[0363] Figure 4 A schematic diagram of another set of data points provided in an embodiment of this application is shown.
[0364] Data point set #2 includes 7 data points: data point 2, data point 3, data point 4, data point 5, data point 7, data point 8, and data point 9.
[0365] Clustering the data points in data point set #2 includes: determining the core point of data point set #2 and its candidate velocity vector values, and determining another cluster from data point set #2 based on the core point and its candidate velocity vector values. Specifically, the methods in steps 220 to 240 can be used to cluster the data points in data point set #2. For simplicity, these steps will not be elaborated further here.
[0366] Optionally, as another implementation, the clustering method provided in this application does not acquire the data point set #2. That is, after steps 210 to 240, step 250 is not executed.
[0367] Traditional clustering methods, when clustering data points in data set #1, can easily cluster data points from different classes into one class due to inappropriate selection of density parameter values. For example, data points 1, 2, 4, and 6 in data set #1 may be clustered into one class, leading to inaccurate classification results.
[0368] The clustering method provided in this application clusters data points using the core point 1 and its velocity vector value v(1) in the data point set #1. This fully utilizes the velocity vector value v(1) of the core point 1, avoiding the limitations of radial velocity data as component information, and reducing the sensitivity of spatial location data to input parameters, thereby achieving accurate clustering of data points. Furthermore, in this application embodiment, the core point 1 and its velocity vector value v(1) in the data point set can be determined in different ways, making it suitable for various application scenarios. For example, it is suitable for scenarios where the data points in the data point set are sparse. For example, it is suitable for scenarios where the data points in the data point set are dense, etc.
[0369] Figure 5 This illustration shows a schematic diagram of yet another set of data points provided in an embodiment of this application.
[0370] Data point set #1 includes four data points: data point 1, data point 2, data point 3, and data point 4. The clustering method 100 provided in this application embodiment can be used to cluster this data point set #1. For simplicity, details are omitted here.
[0371] The above combination Figures 1 to 5 The clustering method provided in this application is described in detail. It should be understood that... Figures 1 to 5 The method described is for illustrative purposes only and does not constitute any limitation on this application.
[0372] Below, in conjunction with Figure 6 and Figure 7 This application provides a detailed description of the clustering apparatus and equipment.
[0373] Figure 6 A schematic structural diagram of a clustering apparatus 600 provided in an embodiment of this application is shown.
[0374] The clustering apparatus 600 includes a transceiver unit 610 and a processing unit 620. The transceiver unit 610 and the processing unit 620 communicate with each other through an internal connection path to transmit control and / or data signals.
[0375] The transceiver unit 610 is used to acquire a first data point set, wherein the first data point set includes at least two data points, and the information of each data point in the first data point set includes position data and radial velocity data;
[0376] Processing unit 620 is used to determine the core point q and the velocity vector value v(q) of the core point q from the first data point set;
[0377] The processing unit 620 is further configured to determine a cluster C(q) from the first set of data points based on the core point q and the velocity vector value v(q) of the core point q, wherein the radial velocity of each data point in the cluster C(q) satisfies the compatibility condition with the velocity vector value v(q).
[0378] Optionally, in some implementations,
[0379] The core point q is a data point in the pre-specified first data point set; or,
[0380] The core point q is a data point q' in the first data point set, wherein the number of data points in the first data point set contained in the neighborhood N(q') of the data point q' satisfies a first predefined threshold.
[0381] Optionally, in some implementations,
[0382] The neighborhood N(q') of the data point q' is a predefined neighborhood; or,
[0383] The neighborhood N(q') of the data point q' is the set of data points in the first data set whose distance from the data point q' satisfies a second predefined threshold, wherein the distance is determined based on the position data of the data point q' and the position data of the data points in the first data set, or the distance is determined based on the position data and radial velocity data of the data point q' and the position data and radial velocity data of the data points in the first data set.
[0384] Optionally, in some implementations,
[0385] The velocity vector value v(q) of the core point q is a predefined velocity vector value; or,
[0386] The velocity vector value v(q) of the core point q is determined based on the data points contained in the neighborhood N(q) of the core point q.
[0387] Optionally, in some implementations, the processing unit 620 is also used for:
[0388] Based on the information of the core point q and one or more data points contained in the neighborhood N(q) of the core point q, determine at least one candidate velocity vector value for the core point q.
[0389] Based on the data points contained in the neighborhood N(q) of the core point q, and at least one candidate velocity vector value of the core point q, the velocity vector value v(q) of the core point q is determined.
[0390] Optionally, in some implementations, at least one candidate velocity vector value of the core point q is determined based on the position data and radial velocity data of one or more data points contained in the core point q and its neighborhood N(q), according to the following relationship;
[0391]
[0392] Among them, v c (q) is the c-th candidate velocity vector of the core point q, where c ≥ 1, and s is the velocity vector contained in the core point q or its neighborhood N(q) used to determine the velocity vector. c Data points of (q), Let n be the radial velocity data for data point s. s To and The corresponding error. h s Let h be the direction cosine vector, where h s This is obtained based on the location data of data point s.
[0393] Optionally, in some implementations, the processing unit 620 is also used for:
[0394] Based on the core point q, and the position data and radial velocity data of one or more data points contained in the neighborhood N(q) of the core point q, determine the weight of at least one candidate velocity vector value of the core point q.
[0395] Based on the weight of the at least one candidate velocity vector value, the velocity vector value v(q) of the core point q is determined.
[0396] Optionally, in some implementations, the weight of the at least one candidate velocity vector value is the sum of the weights of the data points contained in the core point q and / or the neighborhood N(q) of the core point q relative to the at least one candidate velocity vector value; wherein the weight of the data points contained in the core point q and / or the neighborhood N(q) of the core point q relative to the at least one candidate velocity vector value is obtained based on the position data and radial velocity data of the data points in the first set of data points contained in the core point q and / or the neighborhood N(q) of the core point q.
[0397] Optionally, in some implementations, the neighborhood N(q) of the core point q contains a data point t relative to the candidate velocity vector value v. c The weight of (q) is based on the candidate velocity vector value v. c(q) The difference between the radial projection component of data point t and the radial velocity data of data point t is obtained, where the candidate velocity vector value v c (q) The radial projection component at data point t is based on the candidate velocity vector value v c (q) and the position data of the data point t are obtained.
[0398] Optionally, in some implementations, the processor is also used for:
[0399] The candidate velocity vector value corresponding to the weight of the largest candidate velocity vector value among the weights of at least one candidate velocity vector value is determined as the velocity vector value v(q) of the core point q; or,
[0400] The candidate velocity vector value corresponding to the weight of the candidate velocity vector value that is greater than or equal to the third predefined threshold among the weights of at least one candidate velocity vector value is determined as the velocity vector value v(q) of the core point q.
[0401] Optionally, in some implementations, the compatibility condition is that the radial projection component of the velocity vector value at the data point and the radial velocity of the data point satisfy a fourth predefined threshold, and the radial projection component of the velocity vector value at the data point is determined based on the velocity vector value and the position data of the data point.
[0402] Optionally, in some implementations, the cluster C(q) includes the following data points: the core point q, and data points p. i Data point s i,j ,
[0403] The data point p i Let N(q) be the number of data points in the neighborhood N(q) of the core point q that satisfy the compatibility condition, i = 1, ..., N. q The data point s i,j Let p be the data point i The neighborhood N(p) i Data points that satisfy compatibility conditions within the range, i = 1, ..., N q j = 1, ..., N pi ;
[0404] Wherein, the data point p i and / or the data point s i,j The compatibility condition is met when: the data point p i and / or the data point s i,j The radial velocity data at the core point q, and the velocity vector value v(q) at the data point p. i and / or the data point s i,j The radial projection component satisfies the fourth predefined threshold, and the velocity vector value v(q) of the core point q at the data point p iand / or the data point s i,j The radial projection component is based on the velocity vector value v(q) of the core point q and the data point p. i and / or the data point s i,j The location data was obtained.
[0405] Optionally, in some implementations, the cluster C(q) includes the following data points: the core point q, and data points p. i and data point v j,k ,
[0406] The data point p i Let N(q) be the data points within the neighborhood N(q) of the core point q that satisfy the compatibility conditions of the core point q, where i = 1, ..., N. q The data point v j,k For this data point u j The neighborhood N(u) j The condition of data point u within ) j The data point with compatibility conditions, that data point u j Let p be the data point i i = 1, ..., N q The number of data points in the neighborhood that satisfy the second predefined threshold is j = 1, ..., M. q k = 1, ..., N uj ;
[0407] Wherein, the data point p i And / or the data point v j,k The compatibility condition is met when: the data point p i And / or the data point v j,k The radial velocity data at the core point q, and the velocity vector value v(q) at the data point p. i And / or the data point v j,k The radial projection component satisfies the fourth predefined threshold, and the velocity vector value v(q) of the core point q at the data point p i And / or the data point v j,k The radial projection component is based on the velocity vector value v(q) of the core point q and the data point p. i And / or the data point v j,k The location data was obtained.
[0408] Optionally, in some implementations, the target velocity corresponding to the cluster C(q) is the velocity vector value v(q) of the core point q;
[0409] The target location corresponding to the cluster C(q) is the weighted sum of the locations of the data points contained in the cluster C(q).
[0410] Figure 7A schematic structural diagram of a clustering device 700 provided in an embodiment of this application is shown.
[0411] The clustering device 700 includes a transceiver 710, a processor 720, and a memory 730. The transceiver 710, processor 720, and memory 730 communicate with each other via internal connections to transmit control and / or data signals. The memory 730 stores computer programs, and the processor 710 retrieves and runs the computer programs from the memory 730 to control the transceiver 720 to transmit and receive signals.
[0412] Specifically, the functions of transceiver 710 are... Figure 6 The specific functions of the transceiver unit 610 shown are as follows, and will not be described in detail here.
[0413] Specifically, the functions of the processor 720 are... Figure 6 The specific functions of the processing unit 620 shown are as follows, and will not be described in detail here.
[0414] It should be understood that the processor in the embodiments of this application can be a central processing unit (CPU), but it can also be other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The general-purpose processor can be a microprocessor or any conventional processor.
[0415] It should also be understood that the memory in the embodiments of this application can be volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. The non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. The volatile memory can be random access memory (RAM), which is used as an external cache. By way of example, but not limitation, many forms of random access memory (RAM) are available, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate synchronous DRAM (DDR SDRAM), enhanced synchronous DRAM (ESDRAM), synchronous linked DRAM (SLDRAM), and direct rambus RAM (DR RAM).
[0416] The above embodiments can be implemented, in whole or in part, by software, hardware, firmware, or any other combination thereof. When implemented using software, the above embodiments can be implemented, in whole or in part, as a computer program product. The computer program product includes one or more computer instructions or computer programs. When the computer instructions or computer programs are loaded or executed on a computer, all or part of the processes or functions described in the embodiments of this application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more sets of available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium. A semiconductor medium can be a solid-state drive.
[0417] It should be understood that the term "and / or" in this article is merely a description of the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A existing alone, A and B existing simultaneously, or B existing alone. A and B can be singular or plural. Additionally, the character " / " in this article generally indicates an "or" relationship between the preceding and following related objects, but it can also represent an "and / or" relationship. Please refer to the context for a more accurate understanding.
[0418] In this application, "at least one" means one or more, and "more than one" means two or more. "At least one of the following" or similar expressions refer to any combination of these items, including any combination of single or multiple items. For example, at least one of a, b, or c can mean: a, b, c, ab, ac, bc, or abc, where a, b, and c can be single or multiple.
[0419] It should be understood that in the various embodiments of this application, the order of the above-mentioned processes does not imply the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.
[0420] Those skilled in the art will recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0421] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.
[0422] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between apparatuses or units may be electrical, mechanical, or other forms.
[0423] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0424] In addition, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit.
[0425] If the aforementioned functions are implemented as software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or a portion of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0426] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.
Claims
1. A method of clustering, characterized by, The method includes: Obtain a first set of data points, wherein the first set of data points includes at least two data points, and the information of each data point in the first set of data points includes position data and radial velocity data; Determine the core point q from the first set of data points; Based on the information of the core point q and one or more data points contained in the neighborhood N(q) of the core point q, at least one candidate velocity vector value of the core point q is determined. Based on the core point q, and the position data and radial velocity data of one or more data points contained in the neighborhood N(q) of the core point q, determine the weight of at least one candidate velocity vector value of the core point q. The velocity vector value of the core point q is determined based on the weights of the at least one candidate velocity vector value. v (q); Based on the core point q and the velocity vector value of the core point q v (q), determine a cluster C(q) from the first set of data points, wherein the radial velocity of each data point in the cluster C(q) is related to the velocity vector value. v (q) The compatibility conditions are met.
2. The method according to claim 1, characterized in that, The core point q is a data point in the first set of data points that is specified in advance; or... The core point q is a data point q' in the first data point set, wherein the number of data points in the first data point set contained in the neighborhood N(q') of the data point q' satisfies a first predefined threshold.
3. The method according to claim 2, characterized in that, The neighborhood N(q') of the data point q' is a predefined neighborhood; or, The neighborhood N(q') of the data point q' is a set of data points in the first data set whose distance from the data point q' satisfies a second predefined threshold, wherein the distance is determined based on the position data of the data point q' and the position data of the data points in the first data set, or the distance is determined based on the position data and radial velocity data of the data point q' and the position data and radial velocity data of the data points in the first data set.
4. The method according to claim 1, characterized in that, The step of determining at least one candidate velocity vector value for the core point q based on information from the core point q and one or more data points contained in its neighborhood N(q) includes: Based on the position data and radial velocity data of one or more data points contained in the core point q and its neighborhood N(q), at least one candidate velocity vector value of the core point q is determined according to the following relationship. in, Let c be the c-th candidate velocity vector of the core point q, where c ≥ 1, and s be the velocity vector contained in the core point q or its neighborhood N(q) used to determine the core point q. Data points, The radial velocity data is for data point s. To and The corresponding error, Let be the direction cosine vector, where It is obtained based on the position data of the data point s.
5. The method according to claim 1, characterized in that, The weight of the at least one candidate velocity vector value is the sum of the weights of the data points contained in the core point q and / or the neighborhood N(q) of the core point q relative to the at least one candidate velocity vector value. The weights of the data points contained in the core point q and / or the neighborhood N(q) of the core point q relative to the at least one candidate velocity vector value are obtained based on the position data and radial velocity data of the data points within the first set of data points contained in the core point q and / or the neighborhood N(q) of the core point q.
6. The method according to claim 1 or 5, characterized in that, The neighborhood N(q) of the core point q contains a data point t relative to the candidate velocity vector value. The weights are based on the candidate velocity vector values. The difference between the radial projection component of the data point t and the radial velocity data of the data point t is obtained, wherein the candidate velocity vector value is... The radial projection component of the data point t is based on the candidate velocity vector value. And the position data of the data point t are obtained.
7. The method according to claim 1 or 5, characterized in that, The velocity vector value of the core point q is determined based on the weights of the at least one candidate velocity vector value. v (q), including: The candidate velocity vector value corresponding to the weight of the largest candidate velocity vector value among the weights of the at least one candidate velocity vector value is determined as the velocity vector value of the core point q. v (q); or, The candidate velocity vector value corresponding to the weight of the candidate velocity vector value whose weight is greater than or equal to the third predefined threshold among the weights of the at least one candidate velocity vector value is determined as the velocity vector value of the core point q. v (q).
8. The method according to any one of claims 1-5, characterized in that, The compatibility condition is that the radial projection component of the velocity vector value at the data point and the radial velocity of the data point satisfy a fourth predefined threshold, and the radial projection component of the velocity vector value at the data point is determined based on the velocity vector value and the position data of the data point.
9. The method according to any one of claims 1-5, characterized in that, The cluster C(q) comprises the following data points: the core point q, a data point p i and a data point s i,j , The data point p i The data points within the neighborhood N(q) of the core point q that satisfy the compatibility condition. i =1,…,N q The data point s i,j For the data point p i The neighborhood N(p) i Data points that meet compatibility requirements within the specified range. i =1,…,N q , j =1,…,N pi ; Wherein, the data point p i and / or the data points s i,j The compatibility condition is satisfied as follows: the data point p i and / or the data points s i,j The radial velocity data is the velocity vector value at the core point q. v (q) at the data point p i and / or the data points s i,j The radial projection component satisfies the fourth predefined threshold, and the velocity vector value of the core point q v (q) at the data point p i and / or the data points s i,j The radial projection component is based on the velocity vector value of the core point q. v (q) and the data point p i and / or the data points s i,j The location data was obtained.
10. The method according to any one of claims 1-5, characterized in that, The cluster C(q) comprises the following data points: the core point q, data point p i and data point v j,k , The data point p i Data points within the neighborhood N(q) of the core point q that satisfy the compatibility conditions of the core point q. i =1,…,N q The data point v j,k For the data point u j The neighborhood N(u) j The data point u within the range satisfies the above conditions. j Data points with compatibility conditions, the data point u j For the data point p i , i =1,…,N q The number of data points in a neighborhood that satisfy the second predefined threshold is [the number of data points in the neighborhood]. j =1,…,M q , k = 1,…, N uj ; Wherein, the data point p i and / or the data point v j,k The compatibility condition is satisfied as follows: the data point p i and / or the data point v j,k The radial velocity data is the velocity vector value at the core point q. v (q) at the data point p i and / or the data point v j,k The radial projection component satisfies the fourth predefined threshold, and the velocity vector value of the core point q v (q) at the data point p i and / or the data point v j,k The radial projection component is based on the velocity vector value of the core point q. v (q) and the data point p i and / or the data point v j,k The location data was obtained.
11. The method according to any one of claims 1-5, characterized in that, The target velocity corresponding to the cluster C(q) is the velocity vector value of the core point q. v (q); The target position corresponding to the cluster C(q) is the weighted sum of the positions of the data points contained in the cluster C(q).
12. A clustering apparatus, characterized in that, The device includes: A transceiver unit is used to acquire a first set of data points, wherein the first set of data points includes at least two data points, and the information of each data point in the first set of data points includes position data and radial velocity data; A processing unit is used to determine the core point from the first set of data points; Based on the information of the core point q and one or more data points contained in the neighborhood N(q) of the core point q, at least one candidate velocity vector value of the core point q is determined. Based on the core point q, and the position data and radial velocity data of one or more data points contained in the neighborhood N(q) of the core point q, determine the weight of at least one candidate velocity vector value of the core point q. The velocity vector value of the core point q is determined based on the weights of the at least one candidate velocity vector value. v (q); Based on the core point q and the velocity vector value of the core point q v (q), determine a cluster C(q) from the first set of data points, wherein the radial velocity of each data point in the cluster C(q) is related to the velocity vector value. v (q) The compatibility conditions are met.
13. The apparatus according to claim 12, characterized in that, The core point q is a data point in the first set of data points that is specified in advance; or... The core point q is a data point q' in the first data point set, wherein the number of data points in the first data point set contained in the neighborhood N(q') of the data point q' satisfies a first predefined threshold.
14. The apparatus according to claim 13, characterized in that, The neighborhood N(q') of the data point q' is a predefined neighborhood; or, The neighborhood N(q') of the data point q' is a set of data points in the first data set whose distance from the data point q' satisfies a second predefined threshold, wherein the distance is determined based on the position data of the data point q' and the position data of the data points in the first data set, or the distance is determined based on the position data and radial velocity data of the data point q' and the position data and radial velocity data of the data points in the first data set.
15. The apparatus according to claim 12, characterized in that, The processing unit is also used for: Based on the position data and radial velocity data of one or more data points contained in the core point q and its neighborhood N(q), at least one candidate velocity vector value of the core point q is determined according to the following relationship. in, Let c be the c-th candidate velocity vector of the core point q, where c ≥ 1, and s be the velocity vector contained in the core point q or its neighborhood N(q) used to determine the core point q. Data points, The radial velocity data is for data point s. To and The corresponding error, Let be the direction cosine vector, where It is obtained based on the position data of the data point s.
16. The apparatus according to claim 12, characterized in that, The weight of the at least one candidate velocity vector value is the sum of the weights of the data points contained in the core point q and / or the neighborhood N(q) of the core point q relative to the at least one candidate velocity vector value. The weights of the data points contained in the core point q and / or the neighborhood N(q) of the core point q relative to the at least one candidate velocity vector value are obtained based on the position data and radial velocity data of the data points within the first set of data points contained in the core point q and / or the neighborhood N(q) of the core point q.
17. The apparatus according to claim 12 or 16, characterized in that, The neighborhood N(q) of the core point q contains a data point t relative to the candidate velocity vector value. The weights are based on the candidate velocity vector values. The difference between the radial projection component of the data point t and the radial velocity data of the data point t is obtained, wherein the candidate velocity vector value is... The radial projection component of the data point t is based on the candidate velocity vector value. And the position data of the data point t are obtained.
18. The apparatus according to claim 12 or 16, characterized in that, The processing unit is also used for: The candidate velocity vector value corresponding to the weight of the largest candidate velocity vector value among the weights of the at least one candidate velocity vector value is determined as the velocity vector value of the core point q. v (q); or, The candidate velocity vector value corresponding to the weight of the candidate velocity vector value whose weight is greater than or equal to the third predefined threshold among the weights of the at least one candidate velocity vector value is determined as the velocity vector value of the core point q. v (q).
19. The apparatus according to any one of claims 12-16, characterized in that, The compatibility condition is that the radial projection component of the velocity vector value at the data point and the radial velocity of the data point satisfy a fourth predefined threshold, and the radial projection component of the velocity vector value at the data point is determined based on the velocity vector value and the position data of the data point.
20. The apparatus according to any one of claims 12-16, characterized in that, The cluster C(q) comprises the following data points: the core point q, a data point p i and a data point s i,j , The data point p i The data points within the neighborhood N(q) of the core point q that satisfy the compatibility condition. i =1,…,N q The data point s i,j For the data point p i The neighborhood N(p) i Data points that meet compatibility requirements within the specified range. i =1,…,N q , j =1,…,N pi ; Wherein, the data point p i and / or the data points s i,j The compatibility condition is satisfied as follows: the data point p i and / or the data points s i,j The radial velocity data is the velocity vector value at the core point q. v (q) at the data point p i and / or the data points s i,j The radial projection component satisfies the fourth predefined threshold, and the velocity vector value of the core point q v (q) at the data point p i and / or the data points s i,j The radial projection component is based on the velocity vector value of the core point q. v (q) and the data point p i and / or the data points s i,j The location data was obtained.
21. The apparatus according to any one of claims 12-16, characterized in that, The clustering C(q) includes the following data points: the core point q, and data points p. i and data point v j,k , The data point p i Data points within the neighborhood N(q) of the core point q that satisfy the compatibility conditions of the core point q. i =1,…,N q The data point v j,k For the data point u j The neighborhood N(u) j The data point u within the range satisfies the above conditions. j Data points with compatibility conditions, the data point u j For the data point p i , i =1,…,N q The number of data points in a neighborhood that satisfy the second predefined threshold is [the number of data points in the neighborhood]. j =1,…,M q , k = 1,…, N uj ; Wherein, the data point p i and / or the data point v j,k The compatibility condition is satisfied as follows: the data point p i and / or the data point v j,k The radial velocity data is the velocity vector value at the core point q. v (q) at the data point p i and / or the data point v j,k The radial projection component satisfies the fourth predefined threshold, and the velocity vector value of the core point q v (q) at the data point p i and / or the data point v j,k The radial projection component is based on the velocity vector value of the core point q. v (q) and the data point p i and / or the data point v j,k The location data was obtained.
22. The apparatus according to any one of claims 12-16, characterized in that, The target velocity corresponding to the cluster C(q) is the velocity vector value of the core point q. v (q); The target position corresponding to the cluster C(q) is the weighted sum of the positions of the data points contained in the cluster C(q).
23. A clustering apparatus, characterized in that, It includes a processor and a memory, the memory being used to store instructions, and the processor being used to read the instructions stored in the memory to perform the method of any one of claims 1 to 11.
24. A computer-readable storage medium, characterized in that, It includes a computer program, which, when run on a computer, performs the method according to any one of claims 1 to 11.
25. A chip, characterized in that, Includes at least one processor and interface; The at least one of the processors is configured to invoke and run a computer program to cause the chip to perform the method as described in any one of claims 1 to 11.