This repository holds source code for Rayleigh Mixture Summed Area Tables-Constant False Alarm Rate (RmSAT-CFAR). This study is submitted to joint special issue of Elsevier Digital Signal Processing and SoftwareX journals. Following articles are submitted for this special issue.
1) Nar, F.; Okman, O. E.; Özgür, A. & Çetin, M.
Fast Target Detection in Radar Images using Rayleigh Mixtures and Summed Area Tables
Submitted to Digital Signal Processing, Elsevier, 2017
2) Nar, F.; Okman, O. E.; Özgür, A. & Çetin, M.
RmSAT-CFAR: Fast and Accurate Target Detection in Radar Images
Submitted to SoftwareX, Elsevier, 2017 , XX , XXXX-XXXX
Constant False Alarm Rate (CFAR) is the most used framework for target detection in Synthetic Aperture Radar (SAR) images. RmSAT-CFAR is an extension of clasical CFAR framework by modeling the background statistics using a Rayleigh Mixture (RM) model and adopting Summed Area Tables (SAT) to improve detection speed. Parallel implementation of image tiles is used for fast computation.
For finding parameters of Rayleigh Mixture, Adaptive Simulated Annealing (ASA) is used. Our implementation for ASA can be found in following file. To test ASA, following non linear cost functions are also implemented. Information about these functions can be found in here.
- RastriginFunction
- AckleysFunction
- SphereFunction
- RosenbrockFunction
- BealesFunction
- GoldsteinPriceFunction
- BoothsFunction
- BukinFunctionNo6
- MatyasFunction
- LeviFunctionNo13
- ThreeHumpCamelFunction
- EasomFunction
- CrossInTrayFunction
- EggholderFunction
- HolderTableFunction
- McCormickFunction
- SchafferFunctionNo2
- SchafferFunctionNo4
- StyblinskiTangFunction
To compare RmSAT-CFAR algorithm to other CFAR algorithms, following algorithms are also implemented in the repository. Using abstract classes provided ( AbstractCFAR and WindowBasedCFAR ), other CFAR algorithms can be easily added.
-
Cell Averaging CFAR (CA-CFAR)
Novak, L. M.; Owirka, G. J.; Brower, W. S. & Weaver, A. L. The automatic target-recognition system in SAIP Lincoln Laboratory Journal, LINCOLN LABORATORY MIT, 1997 , 10
-
Automatic Censored CFAR (AC-CFAR)
Farrouki, A. & Barkat, M. Automatic censoring CFAR detector based on ordered data variability for nonhomogeneous environments IEE Proceedings-Radar, Sonar and Navigation, IET, 2005 , 152 , 43-51
-
Adaptive and Fast CFAR (AAF-CFAR)
Gao, G.; Liu, L.; Zhao, L.; Shi, G. & Kuang, G. An adaptive and fast CFAR algorithm based on automatic censoring for target detection in high-resolution SAR images IEEE transactions on geoscience and remote sensing, IEEE, 2009 , 47 , 1685-1697
-
Variability Index CFAR (VI-CFAR)
M. E. Smith and P. K. Varshney, "VI-CFAR: a novel CFAR algorithm based on data variability," Proceedings of the 1997 IEEE National Radar Conference, Syracuse, NY, 1997, pp. 263-268.
You can compile code using provided Visual Studio 2015 project or use already compiled binaries.
All already compiled executables for windows can be found in the releases. Or you can download latest executable.
First, you need to install Visual C++ Redistributable for Visual Studio 2015. Either use vc_redist.x64.exe in downloaded zip file or download it from Microsoft.
- Visual Studio 2015 Express C++ IDE
- OpenCV 3.1 64bit (image processing library)
You should download suitable version of OpenCV that is already compiled for Visual Studio. For example Visual Studio 2015 C++ is the version vc14. OpenCV 3.1 provides already compiled DLL and LIB files for this version.
- \OpenCV\build\x64\vc14\bin
- \OpenCV\build\x64\vc14\lib
To make it easy to compile source code using different OpenCV installations, project file for Visual Studio 2015 uses following environment variables with given default values.
- VisualCppVersion=vc140
- OpenCVDirectory=D:\OpenCV\
- OpenCVVersion=310
You may choose to set these environment variables using windows standard mechanism for setting environment variables. Or you may use the provided bat file vs2015.bat. You should change VS2015.bat so that these environment variables point to correct paths.
After these steps, double click VS2015.bat and open Visual Studio. You should be able to compile the project using Visual Studio 2015.
If you run CFARtargetDetection.exe without arguments, help information can be seen.
CFARtargetDetector v1.0
CFARtargetDetector [Input File Name] [Output File Name] [Target Detection Method] [Probability Of False Alarm] [Key1] [Value1] ... [KeyN] [ValueN]
Example : CFARtargetDetector im1024.tif im1024_targets.png RmSAT-CFAR 1e-5 ThreadCount 1 RmSAT-CFAR.guardRadius 10 RmSAT-CFAR.maximumMixtureCount 6
RmSAT-CFAR parameters
---------------------
RmSAT-CFAR.guardRadius
RmSAT-CFAR.clutterRadius
RmSAT-CFAR.minimumMixtureCount
RmSAT-CFAR.maximumMixtureCount
AAF-CFAR parameters
-------------------
AAF-CFAR.guardRadius
AAF-CFAR.clutterRadius
AAF-CFAR.censoringPercentile
CA-CFAR, AC-CFAR, VI-CFAR parameters
------------------------------------
WB-CFAR.targetRadius
WB-CFAR.guardRadius
WB-CFAR.clutterRadius
AC-CFAR parameters
------------------
AC-CFAR.censoringPercentile
CFARtargetDetection.exe im1024.tif output-targets-RmSAT-CFAR.png RmSAT-CFAR 1e-5
CFARtargetDetection.exe im1024.tif output-targets-AAFSAT-CFAR.png AAF-CFAR 1e-5
CFARtargetDetection.exe im1024.tif output-targets-CA-CFAR.png CA-CFAR 1e-5
CFARtargetDetection.exe im1024.tif output-targets-AC-CFAR.png AC-CFAR 1e-5
CFARtargetDetection.exe im1024.tif output-targets-VI-CFAR.png VI-CFAR 1e-5
The program can't start because MSVCP140.dll is missing from your computer. Try reinstalling the program to fix this problem.
Install Visual C++ Redistributable for Visual Studio 2015. Either use vc_redist.x64.exe in executable zip or download it from Microsoft.
Supplementary figures can be found in following directories.
Data Details used in the article can be found in the following file