The final programs, written in C++, from the previous NASA - PDS CASSINI Assembly challenge are provided here. The goal of this challenge is to make several modifications to the operation of these programs. Three separate programs are provided. The first program reads a set of training images and trains a model which is then written to a file. The second program uses this trained model to make a list of predictions of possible propeller locations in a set of testing images. The third program analyzes the predicted propeller locations to link detections across multiple images to the same physical propeller object. You will need to download the contest and eval image file sets to test the programs.
Clean up and document the input / output for each of the three programs. The trained model format should be documented. The output of the second program should be in a simple, easy to read, ASCII file. This file must include at least the image ID, image time, x and y pixel positions, radial and longitudinal positions for every detection.
The algorithm being used for training and testing must be modularized. An interface should be designed such that different algorithms other than the one included can be used for the training and testing phases. The algorithm should be selectable via a command line parameter.
The interface should include three primary methods: a training method, a testing method, and a linking method. The training method should operate on a set images with all appropriate additional image information and should save the trained model to a file. The testing method should operate on a different set of images using a loaded trained model file. The linking method should operate on the output of the testing method and the results should be saved to a separate file.
Change hard coded parameters to be set through a command line parameter. All existing and new parameters should have the default value set by an optional configuration file while still being able to be set by a command line option. The configuration file path should be optionally set by a command line parameter; otherwise, a default filename should be used. The configuration file format and all command line options must be documented. Additional options which must be included: minimum / maximum radial bounds for detections.
Real time logging to both console and log file must be improved throughout each program. A debug parameter must also be included to enable logging for all functions such that the program flow can be determined at all times.
Scripts must be included to run all three programs in sequence or separately, using the appropriate parameters for each program.
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.