Patent Description:
Applications in the millimeter-wave frequency regime have gained significant interest in the past few years due to the rapid advancement in low cost semiconductor technologies, such as silicon germanium (SiGe) and fine geometry complementary metal-oxide semiconductor (CMOS) processes. Availability of high-speed bipolar and metal-oxide semiconductor (MOS) transistors has led to a growing demand for integrated circuits for millimeter-wave applications at e.g., <NUM>, <NUM>, <NUM>, and <NUM> and also beyond <NUM>. Such applications include, for example, automotive radar systems and multi-gigabit communication systems.

In some radar systems, the distance between the radar and a target is determined by transmitting a frequency modulated signal, receiving a reflection of the frequency modulated signal (also referred to as the echo), and determining a distance based on a time delay and/or frequency difference between the transmission and reception of the frequency modulated signal. Accordingly, some radar systems include a transmit antenna to transmit the radio-frequency (RF) signal, and a receive antenna to receive the reflected RF signal, as well as the associated RF circuits used to generate the transmitted signal and to receive the RF signal. In some cases, multiple antennas may be used to implement directional beams using phased array techniques. A multiple-input and multiple-output (MIMO) configuration with multiple chipsets can be used to perform coherent and non-coherent signal processing as well.

Document <CIT> relates to techniques and apparatuses that implement a smartdevice-based radar system capable of performing angular estimation using machine learning. In particular, a radar system includes an angle-estimation module that employs machine learning to estimate an angular position of one or more objects (e. By analyzing an irregular shape of the radar systems spatial response across a wide field of view, the angle-estimation module can resolve angular ambiguities that maybe present based on the angle to the object or based on a design of the radar system to correctly identify the angular position of the object. Using machine-learning techniques, the radar system can achieve a high probability of detection and a low false-alarm rate for a variety of different antenna element spacings and frequencies. Document <NPL>" relates to methods for data acquisition, pre-processing, sensor-domain encoding, and modulation with synthesized phase. In this regard, the document suggests AUtomated TransfOrm by Manifold Approximation (AUTOMAP) manifold learning.

There may be a demand for providing an improved concept for a method and a radar system. Such demand may be satisfied by the subject matter of any of the claims.

In accordance with an embodiment of the invention, a method for generating a target set using a radar includes:.

In accordance with an embodiment of the invention, a method of training a neural network for a radar system and for generating a target set includes: providing training data to the neural network;
generating a predicted target set with the neural network, where each predicted target of the predicted target set has associated first and second coordinates; assigning each predicted target to a corresponding reference target of an ordered reference target set using an ordered minimum assignment to generate the ordered reference target set, where each reference target of the reference target set includes first and second reference coordinates; using a distance-based loss function to determine an error between the predicted target set and the ordered reference target set; and updating parameters of the neural network to minimize the determined error. Providing the training data to the neural network includes providing raw digital training data to a first fully-connected layer of the neural network, where the neural network includes a transpose layer having an input coupled to the first fully-connected layer and an output coupled to a second fully-connected layer, and wherein updating non-uniform discrete Fourier transform coefficients includes updating coefficients of the first and second fully-connected layers.

In accordance with an embodiment of the invention, a radar system includes: a millimeter-wave radar sensor including: a transmitting antenna configured to transmit radar signals; first and second receiving antennas configured to receive reflected radar signals; an analog-to-digital converter (ADC) configured to generate, at an output of the ADC, raw digital data based on the reflected radar signals; and a processing system configured to process the raw digital data using a neural network to generate range-Doppler images for generating a target set based on the range-Doppler images, where each target of the target set has associated first and second coordinates, and where the neural network includes: a first fully-connected layer coupled to the output of the ADC, a transpose layer having an input coupled to an output of the fully-connected layer, and a second fully-connected layer having an input coupled to an output of the transpose layer, where the first and second fully-connected layer include non-uniform discrete Fourier transform coefficients.

The making and using of the embodiments disclosed are discussed in detail below. It should be appreciated, however, that the present invention provides many applicable inventive concepts that can be embodied in a wide variety of specific contexts. The specific embodiments discussed are merely illustrative of specific ways to make and use the invention, and do not limit the scope of the invention.

Embodiments of the present invention will be described in a specific context, a radar-based target list generation based on deep learning and operating in the millimeter-wave regime. Embodiments of the present invention may operate in other frequency regimes.

In an embodiment of the present invention, a deep neural network is used to detect and provide the center positions of a plurality of targets based on the digital output of a millimeter-wave radar sensor. In embodiments of the invention, a non-uniform discrete Fourier transform implemented by the deep neural network is used to generate radar images that are used by the deep neural network for the target detection.

In some embodiments of the invention, the deep neural network is trained by using supervised learning. In some embodiments, an assignment algorithm, such as Hungarian assignment or ordered minimum assignment, is used to match predictions generated by the deep neural network with labels associated with the ground-truth before applying the loss function during training. In some embodiments, the loss function used during training is a distance-based loss function.

A radar, such as a millimeter-wave radar, may be used to detect targets, such as humans, cars, etc. For example, <FIG> shows a schematic diagram of millimeter-wave radar system <NUM>, according to an embodiment of the present invention. Millimeter-wave radar system <NUM> includes millimeter-wave radar sensor <NUM> and processing system <NUM>.

During normal operation, millimeter-wave radar sensor <NUM> operates as a frequency-modulated continuous-wave (FMCW) radar sensor and transmits a plurality of TX radar signals <NUM>, such as chirps, towards scene <NUM> using transmitter (TX) antenna <NUM>. The radar signals <NUM> are generated using RF and analog circuits <NUM>. The radar signals <NUM> may be in the <NUM> to <NUM> range.

The objects in scene <NUM> may include one or more static and moving objects, such as cars, motorcycles, bicycles, trucks, and other vehicles, idle and moving humans and animals, furniture, machinery, mechanical structures, walls and other types of structures. Other objects may also be present in scene <NUM>.

The radar signals <NUM> are reflected by objects in scene <NUM>. The reflected radar signals <NUM>, which are also referred to as the echo signal, are received by receiver (RX) antennas 116a and 116b. RF and analog circuits <NUM> processes the received reflected radar signals <NUM> using, e.g., band-pass filters (BPFs), low-pass filters (LPFs), mixers, low-noise amplifier (LNA), and/or intermediate frequency (IF) amplifiers in ways known in the art to generate an analog signal xouta(t) and xoutb(t).

The analog signal xouta(t) and xoutb(t) are converted to raw digital data xout_dig(n) using ADC <NUM>. The raw digital data xout_dig(n) is processed by processing system <NUM> to detect targets and their position. In some embodiments, processing system <NUM> may also be used to identify, classify, and/or track one or more targets in scene <NUM>.

Although <FIG> illustrates a radar system with a two receiver antennas <NUM>, it is understood that more than two receiver antennas <NUM>, such as three or more, may also be used.

Although <FIG> illustrates a radar system with a single transmitter antenna <NUM>, it is understood that more than one transmitter antenna <NUM>, such as two or more, may also be used.

In some embodiments, the output of processing system <NUM> may be used by other systems for further processing. For example, in an embodiment in which millimeter-wave radar system <NUM> is implemented in a car, the output of processing system <NUM> may be used by a central controller of a car to support advanced driver assistance systems (ADAS), adaptive cruise control (ACC), automated driving, collision warning (CW), and/or other automotive technologies.

Controller <NUM> controls one or more circuits of millimeter-wave radar sensor <NUM>, such as RF and analog circuit <NUM> and/or ADC <NUM>. Controller <NUM> may be implemented, e.g., as a custom digital or mixed signal circuit, for example. Controller <NUM> may also be implemented in other ways, such as using a general purpose processor or controller, for example. In some embodiments, processing system <NUM> implements a portion or all of controller <NUM>.

Processing system <NUM> may be implemented with a general purpose processor, controller or digital signal processor (DSP) that includes, for example, combinatorial circuits coupled to a memory. In some embodiments, processing system <NUM> may be implemented as an application specific integrated circuit (ASIC). In some embodiments, processing system <NUM> may be implemented with an ARM, RISC, or x86 architecture, for example. In some embodiments, processing system <NUM> may include an artificial intelligence (AI) accelerator. Some embodiments may use a combination of hardware accelerator and software running on a DSP or general purpose microcontroller. Other implementations are also possible.

In some embodiments, millimeter-wave radar sensor <NUM> and a portion or all of processing system <NUM> may be implemented inside the same integrated circuit (IC). For example, in some embodiments, millimeter-wave radar sensor <NUM> and a portion or all of processing system <NUM> may be implemented in respective semiconductor substrates that are integrated in the same package. In other embodiments, millimeter-wave radar sensor <NUM> and a portion or all of processing system <NUM> may be implemented in the same monolithic semiconductor substrate. Other implementations are also possible.

As a non-limiting example, RF and analog circuits <NUM> may be implemented, e.g., as shown in <FIG>. During normal operation, VCO <NUM> generates a radar signal, such as a linear frequency chirp (e.g., from <NUM> to <NUM>, or from <NUM> to <NUM>), which is transmitted by transmitting antenna <NUM>. The VCO <NUM> is controlled by PLL <NUM>, which receives a reference clock signal (e.g., <NUM>) from reference oscillator <NUM>. PLL <NUM> is controlled by a loop that includes frequency divider <NUM> and amplifier <NUM>.

The TX radar signal <NUM> transmitted by transmitting antenna <NUM> is reflected by objects in scene <NUM> and received by receiving antennas 116a and 116b. The echo received by receiving antennas 116a and 116b are mixed with a replica of the signal transmitted by transmitting antenna <NUM> using mixer 146a and 146b, respectively, to produce respective intermediate frequency (IF) signals xIFa(t) xIFb(t) (also known as beat signals). In some embodiments, the beat signals xIFa(t) xIFb(t) have a bandwidth between <NUM> and <NUM>. Beat signals with a bandwidth lower than <NUM> or higher than <NUM> is also possible.

Beat signals xIFa(t) xIFb(t) are filtered with respective low-pass filters (LPFs) 148a and 148b and then sampled by ADC <NUM>. ADC <NUM> is advantageously capable of sampling the filtered beat signals xouta(t) xoutb(t) with a sampling frequency that is much smaller than the frequency of the signal received by receiving antennas 116a and 116b. Using FMCW radars, therefore, advantageously allows for a compact and low cost implementation of ADC <NUM>, in some embodiments.

The raw digital data xout_dig(n), which in some embodiments include the digitized version of the filtered beat signals xouta(t) and xoutb(t), is (e.g., temporarily) stored, e.g., in matrices of Nc x Ns per receiver antenna <NUM>, where Nc is the number of chirps considered in a frame and Ns is the number of transmit samples per chirp, for further processing by processing system <NUM>.

In some embodiments, ADC <NUM> is a <NUM>-bit ADC with multiple inputs. ADCs with higher resolution, such as <NUM>-bits or higher, or with lower resolution, such as <NUM>-bits, or lower, may also be used. In some embodiments, an ADC per receiver antenna may be used. Other implementations are also possible.

<FIG> shows a sequence of chirps <NUM> transmitted by TX antenna <NUM>, according to an embodiment of the present invention. As shown by <FIG>, chirps <NUM> are organized in a plurality of frames and may be implemented as up-chirps. Some embodiments may use down-chirps or a combination of up-chirps and down-chirps, such as up-down chirps and down-up chirps. Other waveform shapes may also be used.

As shown in <FIG>, each frame may include a plurality of chirps <NUM> (also referred to, generally, as pulses). For example, in some embodiments, the number of pulses in a frame is <NUM>. Some embodiments may include more than <NUM> pulses per frame, such as <NUM> pulses, <NUM> pulses, or more, or less than <NUM> pulses per frame, such as <NUM> pulses, <NUM> pulses, <NUM> or less. In some embodiments, each frame includes only a single pulse.

Frames are repeated every FT time. In some embodiments, FT time is <NUM>. A different FT time may also be used, such as more than <NUM>, such as <NUM>, <NUM>, <NUM>, or more, or less than <NUM>, such as <NUM>, <NUM>, or less.

In some embodiments, the FT time is selected such that the time between the beginning of the last chirp of frame n and the beginning of the first chirp of frame n+<NUM> is equal to PRT. Other embodiments may use or result in a different timing.

The time between chirps of a frame is generally referred to as pulse repetition time (PRT). In some embodiments, the PRT is <NUM>. A different PRT may also be used, such as less than <NUM>, such as <NUM>, <NUM>, or less, or more than <NUM>, such as <NUM>, or more.

The duration of the chirp (from start to finish) is generally referred to as chirp time (CT). In some embodiments, the chirp time may be, e.g., <NUM>. Higher chirp times, such as <NUM>, or higher, may also be used. Lower chirp times, may also be used.

In some embodiments, the chirp bandwidth may be, e.g., <NUM>. Higher bandwidth, such as <NUM> or higher, or lower bandwidth, such as <NUM>, <NUM>, or lower, may also be possible.

In some embodiments, the sampling frequency of millimeter-wave radar sensor <NUM> may be, e.g., <NUM>. Higher sampling frequencies, such as <NUM> or higher, or lower sampling frequencies, such as <NUM> or lower, may also be possible.

In some embodiments, the number of samples used to generate a chirp may be, e.g., <NUM> samples.

A higher number of samples, such as <NUM> samples, or higher, or a lower number of samples, such as <NUM> samples or lower, may also be used.

<FIG> shows a flow chart of conventional, exemplary method <NUM> for processing the raw digital data xout_dig(n) to perform target detection.

During steps 302a and 302b, raw ADC data xout_dig(n) is received. As shown, the raw ADC data xout_dig(n) includes separate baseband radar data from multiple antennas (e.g., <NUM> in the example shown in <FIG>). During steps 304a and 304b, signal conditioning, low pass filtering and background removal are performed on the raw ADC data of the respective antenna <NUM>. The raw ADC data xout_dig(n) radar data are filtered, DC components are removed to, e.g., remove the Tx-Rx self-interference and optionally pre-filtering the interference colored noise. Filtering may include removing data outliers that have significantly different values from other neighboring range-gate measurements. Thus, this filtering also serves to remove background noise from the radar data.

During steps 306a and 306b, 2D moving target indication (MTI) filters are respectively applied to data produced during steps 304a and 304b to remove the response from static targets. The MTI filter may be performed by subtracting the mean along the fast-time (intra-chirp time) to remove the transmitter-receiver leakage that perturbs the first few range bins, followed by subtracting the mean along the slow-time (inter-chirp time) to remove the reflections from static objects (or zero-Doppler targets).

During steps 308a and 308b, a series of FFTs are performed on the filtered radar data produced during steps 306a and 306b, respectively. A first windowed FFT having a length of the chirp is calculated along each waveform for each of a predetermined number of chirps in a frame of data. The FFTs of each waveform of chirps may be referred to as a "range FFT. " A second FFT is calculated across each range bin over a number of consecutive periods to extract Doppler information. After performing each 2D FFT during steps 308a and 308b, range-Doppler images are produced, respectively.

During step <NUM>, a minimum variance distortionless response (MVDR) technique, also known as Capon, is used to determine angle of arrival based on the range and Doppler data from the different antennas. A range-angle image (RAI) is generated during step <NUM>.

During step <NUM>, an ordered statistics (OS) Constant False Alarm Rate (OS-CFAR) detector is used to detect targets. The CFAR detector generates a detection image in which, e.g., "ones" represent targets and "zeros" represent non-targets based, e.g., on the power levels of the RAI, by comparing the power levels of the RAI with a threshold, points above the threshold being labeled as targets ("ones") while points below the threshold are labeled as non-targets ("zeros).

During step <NUM>, targets present in the detection image generated during step <NUM> are clustered using a density-based spatial clustering of applications with noise (DBSCAN) algorithm to associate targets from the detection image to clusters. The output of DBSCAN is a grouping of the detected points into particular targets. DBSCAN is a popular unsupervised algorithm, which uses minimum points and minimum distance criteria to cluster targets.

<FIG> shows a block diagram of embodiment processing chain <NUM> for processing radar images (e.g., RDIs) to perform target detection, according to an embodiment.

Processing chain <NUM> may be implemented by processing system <NUM>.

As shown in <FIG>, the radar images may be generated, e.g., by performing steps <NUM>, <NUM>, <NUM> and <NUM>. Other methods for generating the radar images may also be possible.

As shown in <FIG>, processing chain <NUM> includes convolutional encoder <NUM> and plurality of fully-connected (dense) layers <NUM>. Convolutional encoder <NUM> receives radar images associated with each of the antennas <NUM>. In some embodiments, the convolutional encoder performs target detection based on the received radar images, as well as focuses on targets, rejects noise and ghost targets and performs feature extraction such as range information. In some embodiments, convolutional encoder <NUM> operates separately on the data from the different antennas, and preserves phase information (which may be used by plurality of fully-connected layers <NUM>, e.g., for angle estimation and x,y-position estimation). In some embodiments, the output of convolutional encoder <NUM> is a vector of <NUM> x <NUM> x Num_Ant x Num_Chan, where Num_Ant is the number of antennas (e.g., <NUM> in the embodiment illustrated in <FIG> in the embodiment illustrated in <FIG>), and Num_Chan is the number of channels of, e.g., the last layer of convolutional encoder <NUM> (before the flatten layer). In some embodiment, the multidimensional vector generated by convolutional encoder <NUM> (e.g., by a residual block layer) is then flattened before providing the output to plurality of fully-connected layers <NUM>. In some embodiments, the residual block layer is the last layer of convolutional encoder <NUM>.

A plurality of fully-connected layers <NUM> receives the output of convolutional encoder <NUM> and performs angle estimation, e.g., by using phase information between antennas, from, e.g., processed radar images from each antenna (e.g., separately outputted by convolutional encoder <NUM>) and x,y-position estimation, e.g., by performing a mapping from the features extracted by convolutional converter <NUM> to the targets positions. Plurality of fully-connected layers <NUM> produces an output vector with the coordinates of each of the detected targets, e.g., via a reshape layer. For example, in an embodiment, plurality of fully-connected layers <NUM> include a first (e.g., <NUM>) and second (e.g., <NUM>) fully-connected layers, each having a rectified linear unit (ReLU) activation followed by a third (e.g., <NUM>) fully-connected layer having a linear activation (no activation) so that the output can assume any positive or negative number. In some embodiments, the output of the third fully-connected layer is reshaped, with a reshape layer (e.g., <NUM>), e.g., from a vector having a single column and <NUM>*max_targets rows to a vector having max_targets rows and two columns (each column for representing the respective coordinate (e.g., x,y), where max_targets is the maximum number of detectable targets at the same time.

In the embodiment shown in <FIG>, the output vector includes a list of (x,y) Cartesian coordinates associated with the center of each of the detected targets. For example, in an embodiment in which two detected targets are present in scene <NUM>, the output vector Stargets may be given by <MAT> where (x<NUM>,y<NUM>) are the Cartesian coordinates of the center of target, and (x<NUM>,y<NUM>) are the Cartesian coordinates of the center of target. In some embodiments, other coordinate systems, such as Polar coordinates, may also be used.

In some embodiments, the output vector has a fixed size (e.g., <NUM>×<NUM>, <NUM>×<NUM>, <NUM>×<NUM>, <NUM>×<NUM>, <NUM>×<NUM>, or different). In such embodiments, non-targets may be identified by a predefined value (e.g., a value outside the detection space, such as a negative value). In some embodiments, the predefined value is outside but near the detection space. For example, in some embodiments, the Euclidean distance between the location associated with the predefined value (e.g., (-<NUM>,-<NUM>)) and the point of the detection space that is closest to the location associated with the predefined value (e.g., (<NUM>,<NUM>)) is kept low (e.g., below <NUM>% of the maximum distance between edges of the detection space), e.g., since the predefined value may be considered by the loss function, and the larger the distance between the predefined value and the detection space, the larger the weighting for the error associated with the non-targets. For example, in an embodiment in which the detection space is from (<NUM>,<NUM>) to (<NUM>,<NUM>), and the vector Stargets has a fixed size of <NUM>×<NUM> (max_targets = <NUM>), the predetermined value of "-<NUM>" may be used to identify non-targets. For example, the output vector corresponding to two detected targets in scene <NUM> may be given by <MAT> where x<NUM>, y<NUM>, x<NUM>, y<NUM>, are each between <NUM> and <NUM>.

In some embodiments, convolutional encoder <NUM> may be implemented as a deep convolutional neural network DCNN. For example, <FIG> shows a block diagram of a possible implementation of convolutional encoder <NUM>, and plurality of fully-connected layers <NUM>, according to an embodiment of the present invention. <FIG> shows a block diagram of residual layer <NUM>, according to an embodiment of the present invention. Residual layer <NUM> is a possible implementation of residual layers <NUM>, <NUM>, <NUM>, <NUM>, and <NUM>.

As shown in <FIG>, convolutional encoder <NUM> may be implemented with a DCNN that includes input layer <NUM> for receiving the radar images from respective antennas <NUM>, three-dimensional (3D) convolutional layers <NUM>, <NUM>, <NUM>, <NUM>, 3D residual layers <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, flatten layer <NUM>, Plurality of fully-connected layers <NUM> includes fully-connected layers <NUM>, <NUM>, and <NUM>. Reshape layer <NUM> may be used to generate the output vector, e.g., with the (x,y)-coordinates.

In some embodiments, the kernel size of the 3D convolutional layers (<NUM>, <NUM>, <NUM>, <NUM>) is <NUM>×<NUM>. In some embodiments, each 3D convolutional layer (<NUM>, <NUM>, <NUM>, <NUM>) has the same number of channels as the input to the corresponding 3D residual layer (<NUM>, <NUM>, <NUM>, <NUM>) and uses ReLU as the activation function. In some embodiments, each 3D convolutional layer (<NUM>, <NUM>, <NUM>, <NUM>) works separately on the different antennas. In some embodiments, the 3D convolutional layers coupled between residual layers have a stride of (<NUM>,<NUM>,<NUM>).

In some embodiments, 3D residual layers <NUM>, <NUM>, <NUM>, <NUM>, <NUM> all have the same architecture (e.g., each including the same number of layers).

In some embodiments, convolutional encoder <NUM> may be implemented with more layers, with fewer layers, and/or with different types of layers.

In some embodiments, fully-connected layers <NUM> and <NUM>, each has a ReLU activation function. Fully-connected layer <NUM> has a linear activation function so that the output can assume any positive or negative number. In some embodiments, the output of fully-connected layer <NUM> is reshaped, with reshape layer <NUM>, e.g., from a vector having a single column and dimensions*max_targets rows to a vector having max_targets rows and dimension columns (each column for representing the respective coordinate, where max_targets is the maximum number of targets allowed to be detected at the same time. For example, in an embodiment having <NUM> dimensions (such as shown in <FIG>), fully-connected layer outputs a vector having a single column and <NUM>*max_targets rows, and reshape layer <NUM> maps such vector to a vector having max_targets rows and <NUM> columns, e.g., for (x,y)-coordinates. In an embodiment having <NUM> dimensions (such as shown in <FIG>), fully-connected layer outputs a vector having a single column and <NUM>*max_targets rows, and reshape layer <NUM> maps such vector to a vector having max_targets rows and <NUM> columns, e.g., for (x,y,z)-coordinates.

In some embodiments plurality of fully-connected layers <NUM> may be implemented with a different number of layers (e.g., <NUM>, <NUM>, <NUM> or more).

In some embodiments, in each convolutional layer (e.g., <NUM>, <NUM>, <NUM>, <NUM>), the input of the convolutional layer is filtered with Num_Chan filters (e.g., of size <NUM>×<NUM>×<NUM>) to produce Num_Chan output feature maps. In some embodiments, the number of channels Num_Chan is a hyperparameter, e.g., which may be increased, e.g., in each strided convolutional layer, e.g., at a rate of, e.g., <NUM>. For example, the number of channels convolutional layer <NUM> Num_Chan<NUM> may be given by Round(<NUM> * (Num_Chan<NUM>)), where Num_chan<NUM> is the number of channels of convolutional layer <NUM>, and Round() is the round function. In some embodiments, a Floor function (to round down), or a Ceiling function (to round up) may also be used. In some embodiments, the rate of increase of channels may be higher than <NUM>, such as <NUM>, <NUM>, <NUM>, or higher, or lower than <NUM>, such as <NUM>, <NUM>, or lower. In some embodiments, the number of channels of each convolutional layer may be chosen individually and not subject to a particular (e.g., linear) rate of increase.

As a non-limiting example, in some embodiments:.

As shown by Equations <NUM> and <NUM>, in some embodiments, the output vector includes two coordinates for each target. In some embodiments, the output vector includes three coordinates for each detected target. For example, <FIG> shows block diagram of embodiment processing chain <NUM> for processing radar images (e.g., RDIs) to perform target detection, according to an embodiment of the present invention. Processing chain <NUM> may be implemented by processing system <NUM>.

In some embodiments, convolutional encoder <NUM> and plurality of fully-connected layers <NUM> may be implemented as convolutional encoder <NUM> and fully-connected layer <NUM>, e.g., as illustrated in <FIG>, e.g., adapted for three dimensions.

As shown in <FIG>, the radar images may be generated, e.g., by performing steps <NUM>, <NUM>, <NUM> and <NUM> over data associated with three receiver antennas <NUM>. Other methods for generating the radar images may also be possible.

As shown in <FIG> and <FIG>, the output vector includes information about the center of the detected targets. In some embodiments, a different portion of the detected targets, such as the coordinates of the point of the detected targets closest to the radar, may be used, e.g., based on the labels used during training of the network.

In some embodiments, parameters of the processing chain, such as parameters of the convolutional encoder (e.g., <NUM>, <NUM>, <NUM>, <NUM>) and/or the fully-connected layers (e.g., <NUM>, <NUM>, <NUM>, <NUM>) may be trained by using a training data set that is pre-labeled with the ground-truth. For example, in some embodiments, radar images (e.g., RDI) of the training data set are provided to the convolutional encoder. The corresponding outputs of the fully-connected layers are compared with the ground truth, and the parameters of the convolutional encoder and fully-connected layer are updated to reduce the error between the output of the fully-connected layer and the ground truth. For example, <FIG> shows a flow chart of embodiment method <NUM> for training the parameters of a processing chain for performing target detection, according to an embodiment of the present invention. Method <NUM> may be implemented by processing system <NUM>.

During step <NUM>, training data is provided to the processing chain (e.g., <NUM>, <NUM>, <NUM>, <NUM>, <NUM>). For example, in some embodiments, the training data comprises radar images (e.g., RDIs), and the processing chain comprises a convolutional encoder (e.g., <NUM>, <NUM>) followed by a plurality of fully-connected layers (e.g., <NUM>, <NUM>).

In some embodiments, the processing chain includes processing elements for performing the generation of the radar images, such as processing elements for performing steps <NUM>, <NUM> and <NUM> (or neural network <NUM>). In some of such embodiments, the training data comprises raw digital data (e.g., xout_dig(n)) from the radar sensor (e.g., <NUM>).

During step <NUM>, the (e.g., center) locations of predicted targets are obtained from the output of the processing chain. For example, in some embodiments, 2D Cartesian coordinates are obtained for each predicted target. In some embodiments, 3D Cartesian coordinates are obtained for each predicted target. In some embodiments, other types of coordinates, such as Polar coordinates, are used. In some embodiments, the coordinates correspond to the center of the predicted target. In some embodiments, the coordinates correspond to a different reference point of the predicted target.

During step <NUM>, location data (such as coordinates) associated with reference targets (also referred to as ground-truth) are provided for comparison purposes. As a non-limiting example, a portion of the training data set may be associated with two targets. The actual location of the two targets is known (e.g., the actual location, or ground-truth, may be calculated/determined using video cameras and/or using method <NUM> and/or using other methods). During step <NUM>, the actual coordinates (reference coordinates) of the two targets are provided for comparison purposes.

During step <NUM>, the error between the predicted target location (e.g., the coordinates predicted by the processing chain) and the reference target coordinates (the labeled coordinates associated with the actual target) is determined. For example, if the predicted coordinates of two detected targets are <MAT> and the actual (reference) coordinates of the two targets are <MAT> a loss function L is applied during step <NUM> to determine the error between p and ẏ. In some embodiments, a single predicted target, no predicted target, two predicted targets, or more than two predicted targets may be obtained during different portions of the training data set.

In some embodiments, the loss function is a function that determines the distance (e.g., Euclidean, Mahalanobis, etc.) between the coordinates of the predicted and reference targets. For example, in some embodiments the loss function may be given by <MAT> where ∥ ∥ is the Euclidean distance function. For example, in some embodiments, the loss function L is equal to the sum of the individual errors between each predicted target and the corresponding reference target. When there is no predicted target, the prediction may be equal to the predetermined value, such as (-<NUM>,-<NUM>), and the loss function is calculated using such values. As such, some embodiments benefit from having a predetermined value that is outside but near the detectable space, such that the error generated by the loss function (e.g., between a predicted non-target and an actual reference target, or a predicted ghost target and a reference non-target) does not receive a disproportionate weight. For example, in some embodiments, the predetermined value may have an, e.g., Euclidean, distance to the detectable space that is lower than <NUM>% of the maximum distance to a detectable target.

In some embodiments, there is noise associated with the ground-truth and/or with the radar measurements. In some embodiments, some error is allowed between the prediction and the ground-truth when determining the error value using the loss function. For example, in some embodiments, the loss function may be given by <MAT> where Dthres is a distance threshold, such as <NUM> (other values may also be used). Using a distance threshold, such as shown in Equation <NUM>, advantageously allows avoiding further optimization when the prediction is close enough to the ground truth (since, e.g., such further optimization may not necessarily improve the model (since it may be within the noise of the system).

In some embodiments, using a distance-based loss function, such as shown in Equations <NUM> and <NUM>, advantageously allows for faster convergence during training.

In some embodiments, the loss function also uses other parameters different than the distance between the predicted and reference coordinates. For example, in some embodiments, the loss function may be given by <MAT> where IoU is an intersection-over-union function and may be given by <MAT> where Bp and Bẏ are bounding box vectors associated with the predicted and ground-truth coordinates, respectively, where each bounding box vector includes respective bounding boxes (e.g., the coordinates of the <NUM> corners of each of the bounding boxes) (e.g., symmetrically) around the center locations of respective targets.

During step <NUM>, the parameters of the processing chain, such as parameters of the convolutional encoder and of the plurality of fully-connected layers, are updated so that the error L is minimized. For example, in some embodiments, all weights and biases of convolutional layers <NUM>, <NUM>, <NUM>, and <NUM>, and of fully-connected layers <NUM>, <NUM>, and <NUM>, as well as all weights and biases of convolutional layers <NUM>, <NUM>, and <NUM> for each 3D residual layer (<NUM>, <NUM>, <NUM>, <NUM>, <NUM>), are updated during step <NUM>.

In some embodiments, steps <NUM>, <NUM>, <NUM>, <NUM>, and <NUM> are repeated for multiple epochs of training data of the training data set, e.g., until convergence is achieved (a local or global minima is achieved) until a minimum error is achieved, or until a predetermined number of epochs have been used for training.

In embodiments having multiple targets in the set of predicted (detected) targets from the output of the processing chain, the reference targets in the set of reference targets may not necessarily be ordered in the same way as the predicted targets of the set of predicted targets. For example, it is possible that the predicted targets and the reference targets are out of order. For example, in an embodiment, a set of predicted targets p<NUM> and a set of reference targets y<NUM> may be given by <MAT>.

Applying the loss function (e.g., any of Equations <NUM>, <NUM>, or <NUM>) to the unordered sets p<NUM> and y<NUM> may provide an incorrect error value. Thus, in some embodiments, step <NUM> includes performing a reorder step. For example, <FIG> shows a flow chart of embodiment method <NUM> for performing step <NUM>, according to an embodiment of the present invention.

During step <NUM>, a set of predicted coordinates is received from the output of the processing chain. In some embodiments, the set of predicted coordinates may include non-targets, which may be labeled, e.g., with "-<NUM>. " A non-limiting example of a set of predicted coordinates is p<NUM>.

During step <NUM>, a set of reference coordinates is received from the training data set. For example, in some embodiments, the training data set includes labels associated with the ground-truth location of the targets represented in the training data set. Such reference coordinates are received during step <NUM>. In some embodiments, the set of reference coordinates may include non-targets, which may be labeled, e.g., with "-<NUM>. " A non-limiting example of a set of reference coordinates is y<NUM>.

During step <NUM>, the set of reference coordinates is reordered to match the order of the set of predicted coordinates. For example, the set y<NUM> after reordering, may be given by <MAT> where ẏ<NUM> is the reordered set of reference coordinates. In some embodiments, the set of predicted coordinates is reordered instead of the set of reference coordinates. In some embodiments, both sets are reordered so that they match.

During step <NUM>, the loss function (e.g., Equations <NUM>, <NUM>, or <NUM>) is applied to the matching sets.

In some embodiments, the reordering step (step <NUM>) is performed by applying the Hungarian assignment algorithm. In other embodiments, the reordering step (step <NUM>) is performed by applying ordered minimum assignment algorithm. Other assignment algorithms may also be used.

For example, the Hungarian assignment algorithm focuses on minimizing the total error (the sum of all errors between predicted and reference targets). The ordered minimum assignment focuses on matching predicted targets with their respective closest reference targets. <FIG> shows examples of Hungarian assignment and ordered minimum assignment for matching predicted locations with ground-truth locations, according to embodiments of the present invention. Plot <NUM> shows assignments between predictions <NUM>, <NUM>, and <NUM>, and labels <NUM>, <NUM>, and <NUM>, respectively, according to the Hungarian assignment. Plot <NUM> shows assignments between predictions <NUM>, <NUM>, and <NUM>, and labels <NUM>, <NUM>, and <NUM>, respectively, according to the ordered minimum assignment.

As shown in <FIG>, the sum of the distances associated with assignments <NUM>, <NUM>, and <NUM> is lower than the sum of the distances associated with assignments <NUM>, <NUM>, and <NUM>. As also shown in <FIG>, using ordered minimum assignment, prediction <NUM> is assigned to label <NUM> instead of label <NUM>, and prediction <NUM> is assigned to label <NUM> instead of label <NUM>. Thus, in some cases, ordered minimum assignment differs from Hungarian assignment in that closest targets are matched (e.g., assignment <NUM>) resulting in a larger error in other assignments (e.g., assignment <NUM>). Although the total error may be larger when using ordered minimum assignment instead of Hungarian assignment, some embodiments advantageously achieve better performance using ordered minimum assignment, e.g., since it is likely that noise, or corrupted measurements, may cause a single prediction to be off, rather than all predictions being off slightly.

For example, <FIG> shows waveforms <NUM> comparing the F1 score versus number of epochs when performing method <NUM> using Hungarian assignment (curve <NUM>) and ordered minimum assignment (curve <NUM>), according to embodiments of the present invention. As shown in <FIG>, in some embodiments, using ordered minimum assignment advantageously achieves faster training convergence and/or better overall F1 score than using Hungarian assignment.

In some embodiments, applying Hungarian assignment comprises:.

In some embodiments, applying the ordered minimum assignment comprises:.

For example, if max_targets is <NUM>, then the cost matrix C is <NUM>×<NUM>. If the saved indices are c<NUM>,<NUM>, c<NUM>,<NUM>, and c<NUM>,<NUM>, the reordering changes the label order such that the third label row matches the second prediction row, the second label row matches the first prediction row, and the first label row matches the third prediction row.

In some embodiments, a non-uniform discrete Fourier transform (DFT) (NUDFT) is used to generate the radar images provided to the convolutional encoder. By using a non-uniform DFT, some embodiments advantageously are able to focus on range-Doppler features of interest while keeping memory and computational requirements low.

<FIG> shows a block diagram of embodiment processing chain <NUM> for processing radar images (e.g., non-uniform RDIs) to perform target detection, according to an embodiment of the present invention. Processing chain <NUM> may be implemented by processing system <NUM>. Convolutional encoder <NUM> may be implemented in a similar manner as convolutional encoder <NUM>, and Fully-connected layers <NUM> may be implemented in a similar manner as fully-connected layers <NUM>, e.g., as illustrated in <FIG>. Reshape layer <NUM> may be used to generate the output vector, e.g., with the (x,y)-coordinates.

As shown in <FIG>, processing chain <NUM> implements 2D non-uniform DFT (steps 1102a and 1102b) for generating 2D non-uniform radar images, such as non-uniform RDIs. In some embodiments, other non-uniform radar images, such as non-uniform DAI or non-uniform RAI may also be used.

The NUDFT may be understood as a type of DFT in which the signal is not sampled at equally spaced points and/or frequencies. Thus, in an embodiment generating NURDIs, during steps 1102a and 1102b, a first non-uniform range DFT is performed for each of a predetermined number of chirps in a frame of data. A second non-uniform DFT is calculated across each non-uniform range bin (the spacing between range bins is not uniform) over a number of consecutive periods to extract Doppler information. After performing each 2D NUDFT, non-uniform range-Doppler images are produced, for each antenna.

In some embodiments, the sampling points are equally spaced in time, but the DFT is not equally sampled.

Given the non-uniform sampling in range and Doppler domains, the energy distribution of the resulting NURDIs is non-uniform. Thus, some embodiments advantageously accurately focus on range-Doppler features of interest while keeping memory and computational requirements low. In some embodiments, such as in some embodiments having a plurality of antennas the memory savings become particularly advantageous, as the memory requirements may increase, e.g., linearly, as the number of antennas increases.

In some embodiments, the non-uniform sampling is learned by training a neural network. For example, in some embodiments, the NUDFT transforms a sequence of N complex numbers x<NUM>, x<NUM>,. , xN-<NUM>, into another sequence of complex numbers X<NUM>, X<NUM>,. , XN-<NUM>, e.g., given by <MAT> where fk are non-uniform frequencies. Such non-uniform frequencies fk may be learned, e.g., by performing method <NUM>. Thus, some embodiments advantageously allow for focusing and defocusing range bins and/or Doppler bins, which would otherwise be evenly stressed if a uniform DFT were used.

<FIG> shows a block diagram of processing chain <NUM> for processing radar images (e.g., non-uniform RDIs) to perform target detection, according to an embodiment of the present invention. Processing chain <NUM> may be implemented by processing system <NUM>. Processing chain <NUM> operates in a similar manner as processing chain <NUM> and implements neural networks <NUM> with fully-connected layers <NUM> and <NUM>, and transpose layers <NUM>.

In some embodiments, fully-connected layers 1202a, 1202b, and 1206a and 1206b, are parametric layers that perform the computations shown in Equation <NUM>, and having only the frequencies fk as (learnable) parameters. In some embodiments, fully-connected layer 1202a is equal to fully-connected layer 1202b and shares the same parameters; and fully-connected layer 1206a is equal to fully-connected layer 1206b and shares the same parameters. In some embodiments, fully-connected layer 1204a is equal to fully-connected layer 1204b.

As shown in <FIG>, for each antenna <NUM>, neural network <NUM> is implemented with fully-connected layer <NUM>, followed by transpose layer <NUM>, followed by fully-connected layer <NUM>. Fully-connected layer <NUM> performs a range transformation by applying learned NUDFT along the ADC data for each chirp in a frame. In some embodiments, the output of fully-connected layer <NUM> may be given by <MAT> where PN is the number of chirps in a frame, and W<NUM> represents the learned NUDFT matrix.

Transpose layer <NUM> transposes the output of fully-connected layer <NUM>, e.g., as <MAT>.

Fully-connected layer <NUM> performs a Doppler transformation by applying learned NUDFT along the chirps per range bin. In some embodiments, the output of fully-connected layer <NUM> may be given by <MAT> where BN is the number of range bins, and W<NUM> represents the learned NUDFT matrix.

In some embodiments, the NUDFT matrix W<NUM> and W<NUM> are the learnable parameters of layers <NUM>, <NUM>, and <NUM> and may be learned, e.g., by performing method <NUM>. For example, in some embodiments, the NUDFT matrix W<NUM> and W<NUM> are updated during step <NUM> to reduce the error generated by the loss function (e.g., based on Equations <NUM>, <NUM>, or <NUM>).

In some embodiments, additional (e.g., fixed) weighting functions are applied along the ADC data (Equation <NUM>) and the PN chirps (Equation <NUM>), e.g., for purposes of improving sidelobe level rejection. In some embodiments, a self-attention network through fully-connected layers coupled in parallel with layers <NUM>, <NUM>, and <NUM> is implemented for adapting weighting function to mimic an apodization function for achieving low sidelobe levels.

<FIG> shows a block diagram of embodiment processing chain <NUM> for processing radar images (e.g., non-uniform RDIs) to perform target detection, according to an embodiment of the present invention. Processing chain <NUM> may be implemented by processing system <NUM>. Processing chain <NUM> operates in a similar manner as processing chain <NUM>. Processing chain <NUM>, however, receives data from three receiver antennas <NUM> and produces an output vector that includes three coordinates for each detected target.

In some embodiments, a confidence level is associated with the output vector Stargets. For example, in some embodiments, the global signal-to-noise ratio (SNR) associated with the radar images received by the convolutional encoder (e.g., <NUM>, <NUM>, <NUM>, <NUM>) is used to determine the confidence level associated with the corresponding output vector Stargets. A high SNR (e.g., <NUM> dB or higher) is associated with high confidence while a low SNR (e.g., lower than <NUM> dB) is associated with low confidence. In some embodiments, low confidence output vectors are ignored (e.g., not used for further processing, such as for a subsequent Kalman filter), while high confidence output vectors are further processed.

In some embodiments, the confidence level associated with each detected target may be different. For example, in some embodiments, the output vector Stargets includes, in addition to the coordinates for each target, a respective SNR value associated with each target. The SNR value for each detected target may be calculated based on the difference between the peak power at the target location in the radar images received by the convolutional encoder and the adjacent floor level. Thus, in some embodiments, the coordinates of a detected target may have high confidence (and further processed) while another detected target of the same output vector has low confidence (and ignored). For example, as a non-limiting example, the output vector of Equation <NUM> includes (x,y,SNR) values for three detected targets. The first detected target located in (<NUM>,<NUM>) has an SNR of 20dB and thus have high confidence level. The second and third detected targets are located in (<NUM>,<NUM>) and (<NUM>,<NUM>) and have low confidence levels.

In the embodiment illustrated by Equation <NUM>, the global SNR is lower than <NUM> dB and, and some embodiments relying on global SNR may ignore all three detected targets. Embodiments relying on SNR values associated with each target may further process the first target located at (<NUM>,<NUM>) of Equation <NUM> while ignoring the other two targets. Thus, some embodiments advantageously generate accurate detection of at least some targets in low SNR environments.

Although the cutoff SNR value between high confidence and low confidence is <NUM> dB in the illustrated example, it is understood that different SNR values may also be used as the cutoff SNR value.

In some embodiments, the SNR values and location of the peak and floor levels of each detected target may be used to determine the coordinates of bounding boxes Bp and Bẏ used in Equation <NUM>.

<FIG> shows a schematic diagram of millimeter-wave radar system <NUM>, according to an embodiment of the present invention. Millimeter-wave radar systems operates in a similar manner as millimeter-wave radar system <NUM>, and implements processing system <NUM> using artificial intelligence (AI) accelerator <NUM> coupled to processor <NUM>.

As shown in <FIG>, AI accelerator <NUM> implements the processing chain (e.g., <NUM>, <NUM>, <NUM>) using neural network <NUM> that directly receive raw digital data (e.g., xout_dig(n)) from the radar sensor (e.g., <NUM>). Processor <NUM> implements post-processing steps, such as target tracking, e.g., using a Kalman filter.

In some embodiments, AI accelerator <NUM> is designed to accelerate artificial intelligence applications, such as artificial neural networks and machine learning and may be implemented in any way known in the art.

In some embodiments, processor <NUM> may be implemented in any way known in the art, such as a general purpose processor, controller or digital signal processor (DSP) that includes, for example, combinatorial circuits coupled to a memory.

Claim 1:
A method for generating a target set using a radar (<NUM>), the method comprising:
generating, using the radar, a plurality of radar images, wherein each radar image of the plurality of radar images is a range-Doppler image;
receiving the plurality of radar images with a convolutional encoder (<NUM>); and
generating the target set using a plurality of fully-connected layers (<NUM>) based on an output of the convolutional encoder, wherein each target of the target set has associated first and second coordinates, wherein generating the plurality of radar images comprises:
transmitting a plurality of radar signals (<NUM>) using a radar sensor (<NUM>) of the radar;
receiving, using multiple receiver antennas (116a, 116b) of the radar, a plurality of reflected radar signals (<NUM>) that correspond to the plurality of transmitted radar signals;
mixing a replica of the plurality of transmitted radar signals with the plurality of received reflected radar signals to generate an intermediate frequency signal;
generating raw digital data based on the intermediate frequency signal using an analog-to-digital converter; characterized in the method further comprising:
receiving the raw digital data using a first fully-connected layer;
receiving the output of the first fully-connected layer with a transpose layer;
receiving an output of transpose layer with a second fully-connected layer; and
generating the plurality of radar images using the second fully-connected layer, wherein an output of the second fully-connected layer is coupled to an input of the convolutional encoder.