The repository is my graduation project about radar target classification, detection and recognition on public MSTAR using deep learning method. The main framework is based on caffe and faster-rcnn using matlab interface with a bit modification.
The project is supposed to run on win7 or above. Before running the project, please checkout if your PC supports Nvidia GPU computing with compute capability 6.1 like GTX1080 and cuda v8.0, and a certain higher version of Matlab, like Matlab 2015b. Besides, python3.5 is needed and I recommend you directly install Anaconda3-4.2.0-Windows-x86_64.exe and add it to system path. No other installation and compilation is required since the repository is a release version. You can also make your own changes by compiling caffe and faster-rcnn yourselves.
git clone git@github.com:hunterlew/mstar_deeplearning_project.git
The first part of the work focuses on 10-class radar target classification on standard MSTAR dataset. For the sake of comparisons, I fulfilled 128*128 SAR target classification without data augmentation at the beginning, proving that it can easily outperform traditional machine learning methods.
Run the commands below and you may get 98% accuracy:
cd classification\caffe
create_mstar.bat
train_mstar.bat
But I did crop and increase my data to avoid overfitting in my later work about detection and recognition. See below.
The second part is about how to locate and recognize several SAR targets in a larger background, which may also contain trees and houses, etc. In view of ShaoqingRen's RPN networks, I builded two models with datasets that I made myself. The first model takes only RPN's output as the input of classification network trained before. The second model partially shares the convolution layers between RPN and classification network, which is called faster-rcnn by Ren. You can respectively run the two models and make comparisons.
Before running the test, you should train it first. Make sure you have downloaded the pretrained ZF model and mean.mat from here. Then run the commands:
cd detection_and_recognition\core
(run the train.m with matlab)
It will take nearly 30 mins for training and finally will generate output folder with trained model. Remember to copy the RPN's net file and trained model to the output folder and rename them, serving as network files for the run_apart model.
To run the first model:
cd classification\caffe
(run the data_augmentation.m with matlab)
(run the generate_file.m with matlab)
create_mstar_96.bat
train_mstar_96.bat
cd ....\detection_and_recognition
(run the run_apart.m with matlab)
To run the second model:
cd detection_and_recognition
(run the run_overall.m with matlab)
To validate model performance, such as the missing detection rate, false detection rate, recognition rate and the running time:
cd detection_and_recognition
(run the run_apart_validation.m or run_overall_validation.m with matlab)
The results seemed successful. But it may be doubtful that I directly inserted several targets, under a certain lightness, into the background without considering the reasonability and the characteristics of SAR images. Therefore, the work needs further considerations and research.