The final program, written in C++, from the previous NASA -PDS CASSINI code challenge are provided. These programs detect propeller objects in the rings of saturn by analyzing images taken of the rings. The goal of this challenge is to extend these programs by adding an additional algorithm to detect propellers. There is already a mechanism in the code to select which algorithm to use, but there is currently only one selectable algorithm. The provided Java code must be ported to C++ and integrated with the existing programs. You will need to download the contest and eval image file sets to test the programs.
1. Port the new algorithm from Java to C++. The relevant top level functions are in the class “PropellerDetector” in the functions “trainingData”, “testingData”, and “getAnswer”.
2. Integrate the new algorithm with the existing programs. The “trainingData” function will be integrated into the first C++ program “PropellerTrain”. The other two functions will be integrated into the second C++ program “PropellerTest”.
3. Test the programs using the new algorithm with the contest and eval image sets for training and testing, and report the received scores. You should use the “local_index.lbl” label file for training and the “system_index.lbl” file for testing.
4. Create a simple way to execute training and/or testing of both algorithms (original and new) with a single command (including all relevant parameters for both of the algorithms).
5. The new algorithm re-projects the input images as part of the image processing step. These reprojected images should be saved (in a lossless format) in real time.
6. The new algorithm should be modified such that results are saved incrementally during the testing phase. In case of a program crash, the results up until this crash should be preserved.
The full image data sets:
Existing programs to be updated:
New Java code to port and integrate:
Final Submission Guidelines
Submit all of your solution files.
Submit document describing how to configure (application options), compile, and run your code along with steps to run tests and verify results.
In your final write up, to maximize your score, you should include details on how each of the challenge requirements have been fulfilled (including references to specific lines of code).