/RCS_ATR

Primary LanguageJupyter Notebook

MIT License


Logo

ARL FREEDOM Project Task 2.2.2

Multistatic-Radar RCS-Signature Recognition of Aerial Vehicles: A Bayesian Fusion Approach

The first thrust of the FREEDOM project task 2.2.2 focused on Bayesian inference of a target UAV type classification using radar cross section (RCS) measurements in a multistatic radar configuration.

(back to top)

Built With

NumPy Anaconda Python scikit-learn Pandas mlflow Matplotlib

(back to top)

Getting Started

Prerequisites

  1. Download and install Anaconda for python package management.
  2. Create a virtual environment with python version 3.9
    conda create -n FREEDOM python=3.9
  3. Activate the conda FREEDOM virtual environment
    conda activate FREEDOM
  4. Clone the Github repo
    git clone https://github.com/mlpotter/RCS_ATR
  5. Download RCS data from IEEE DataPort here into RCS_ATR\Drone_RCS_Measurement_Dataset

Installation

  1. Install python packages
    pip install -r requirements.txt

(back to top)

Usage

To run a basic example of 4 radars recursively classifying a targets over 100 time steps.

(back to top)

# change to the folders related to mobile radars
cd RCS_ATR

python main_mc_trajectory_SNR.py --mlflow_track \
                           --experiment_name=radar_target_recognition_joke \
                           --SNR_constraint=-20 \
                           --model_choice=logistic \
                           --no-geometry \
                           --num_points=10000 \
                           --MC_Trials=10 \
                           --n_radars=4 \
                           --TN=100 \
                           --vx=50 \
                           --time_step_size=0.1 \
                           --yaw_range=np.pi/15 \
                           --pitch_range=np.pi/20 \
                           --roll_range=0 \
                           --fusion_method=fusion \
                           --noise_method=random \
                           --color=color \
                           --elevation_center=0 \
                           --elevation_spread=190 \
                           --azimuth_center=90 \
                           --azimuth_spread=180 \
                           --single_method=random \
                           --azimuth_jitter_bounds=0_180 \
                           --elevation_jitter_bounds=-90_90 \
                           --azimuth_jitter_width=20 \
                           --elevation_jitter_width=20 \

(back to top)

More details on experiment parameters may be found by running python main_expectation.py -h

python main_mc_trajectory_SNR.py -h
  -h, --help            show this help message and exit
  --num_points NUM_POINTS
                        Number of random points per class label (default: 1000)
  --MC_Trials MC_TRIALS
                        Number of MC Trials (default: 10)
  --n_radars N_RADARS   Number of radars in the xy grid (default: 16)
  --mlflow_track, --no-mlflow_track
                        Do you wish to track experiments with mlflow? --mlflow_track for yes --no-mlflow_track for no (default: False)
  --geometry, --no-geometry
                        Do you want az-el measurements in experiments? --geometry for yes --no-geometry for no (default: False)
  --fusion_method FUSION_METHOD
                        how to aggregate predictions of distributed classifier (default: average)
  --model_choice MODEL_CHOICE
                        Model to train (default: xgboost)
  --TN TN               Number of time steps for the experiment (default: 20)
  --vx VX               The Velocity of the Drone in the forward direction (default: 50)
  --yaw_range YAW_RANGE
                        The yaw std of the random drone walk (default: np.pi/8)
  --pitch_range PITCH_RANGE
                        The pitch std of the random drone walk (default: np.pi/15)
  --roll_range ROLL_RANGE
                        The roll std of the random drone walk (default: 0)
  --time_step_size TIME_STEP_SIZE
                        The Velocity of the Drone in the forward direction (default: 0.1)
  --noise_method NOISE_METHOD
                        The noise method to choose from (see code for examples) (default: random)
  --color COLOR         The type of noise (color,white) (default: white)
  --SNR_constraint SNR_CONSTRAINT
                        The signal to noise ratio (default: 0)
  --azimuth_center AZIMUTH_CENTER
                        azimuth center to sample for target single point RCS, bound box for random (default: 90)
  --azimuth_spread AZIMUTH_SPREAD
                        std of sample for target single point RCS, bound box for random (default: 5)
  --elevation_center ELEVATION_CENTER
                        elevation center to sample for target single point RCS, bound box for random (default: 0)
  --elevation_spread ELEVATION_SPREAD
                        std of sample for target single point RCS, bound box for random (default: 5)
  --single_method SINGLE_METHOD
                        target is for sampling around some designated point, random is to sample uniformly over grid (default: target)
  --azimuth_jitter_width AZIMUTH_JITTER_WIDTH
                        the width of the jitter for azimuth (default: 10)
  --azimuth_jitter_bounds AZIMUTH_JITTER_BOUNDS
                        lower and upper bound of the azimuth when adding noise to clip (default: 0_180)
  --elevation_jitter_width ELEVATION_JITTER_WIDTH
                        the width of the jitter for elevation (default: 10)
  --elevation_jitter_bounds ELEVATION_JITTER_BOUNDS
                        lower and upper bound of the elevation when adding noise to clip (default: -90_90)
  --experiment_name EXPERIMENT_NAME
                        experimennt name for MLFLOW (default: radar_target_recognition)
  --random_seed RANDOM_SEED

Contact

Michael Potter - linkedin - potter.mi@northeastern.edu

(back to top)

Acknowledgments

Research was sponsored by the Army Research Laboratory and was accomplished under Cooperative Agreement Number W911NF-23-2-0014. The views and conclusions contained in this document are those of the authors and should not be interpreted as representing the official policies, either expressed or implied, of the Army Research Laboratory or the U.S. Government. The U.S. Government is authorized to reproduce and distribute reprints for Government purposes notwithstanding any copyright notation herein.

Citing This Paper

Please cite the following paper if you intend to use this code or dataset for your research.

@misc{potter2024multistaticradar, title={Multistatic-Radar RCS-Signature Recognition of Aerial Vehicles: A Bayesian Fusion Approach}, author={Michael Potter and Murat Akcakaya and Marius Necsoiu and Gunar Schirner and Deniz Erdogmus and Tales Imbiriba}, year={2024}, eprint={2402.17987}, archivePrefix={arXiv}, primaryClass={eess.SP} }