Ship position, heading and velocity detection of Synthetic Aperture Radar (SAR) images in Opticks.
Supported Opticks Releases:
Supported Operating Systems:
What are the algorithms involved?
This extension detects the location, orientation and velocity of target ships in SAR images using only the intensity of the image pixels. It uses the follow algorithms to do this:
- K-Distribution based CFAR filter to detect ships
- Morphological processing for better ship detection
- Radon transform to detect ship wakes.
- Elliptical regression to detect the orientation of the ship
- Clustering algorithm to cluster each ship
The details of each algorithm and how it performs is documented in the PDF file here: Google Summer of Code 2011.pdf
How do the algorithms solve the problem of amplitude-only ship surveillance?
The extension automatically implements all these algorithms in the following way:
- The K-Distribution algorithm + Morphological algorithm detects each ship.
- The clustering algorithm classifies each ship into its own domain.
- For each domain, a square window of a user-specified size is chosen with the ship centroid as the center of the square.
- For this window, the orientation of the ship is found.
- The radon transform then detects any wakes in the vicinity of the ship.
- If a wake is detected, the velocity of the ship is found through the azimuth shift between the detected wake and the ship's location.
Screenshots and Videos
Image 1: Final Output of extension; the ship heading, position and velocity
Image 2: An intermediate raster that shows the radon transform of a particular ship's wake.
Image 3: The clustering algorithm categorizing each ship for further computation
Why is the .aeb file not working?
If the file is not working, access the .aeb folder. Go to
\Ship_Detection1.0.aeb\platform\win32-x86-msvc8.1-release\PlugIns. Copy the .dll file and paste it in here:
\Opticks\4.6.0\PlugIns. Then open Opticks. The plug-in should be accessible through the plug-in menu bar.
I have not tested the dll file in other versions of Opticks but since I did not use any particular extension or dependency of Opticks 4.6, I am confident it should work in other versions of Opticks. Please notify me if it does not.