Object Disappearance for Object Discovery
- Authors: Julian Mason and Bhaskara Marthi and Ron Parr
Code
Our code runs against the electric distribution of ROS. Instructions to build:
Download and untar the code
Follow the installation instructions for getting the Electric Emys distribution of ROS
- Add the downloaded code to ROS_PACKAGE_PATH
roscd mobileobjects && rosmake
It also runs in ROS Fuerte, but has not been extensively tested.
Running
All scripts and launch files are in the mobileobjects ROS package. The launch files and scripts contain documentation on how to set the input data file(s) and other parameters.
launch/dump.launch launches the MongoDB database instance needed by everything else.
launch/go.launch launches the initial feature detection (Section V)
scripts/offline_segmenter.py does the segmentation (Section VI)
bin/feature_extraction recomputes per-segment features and writes descriptors out (for visual word computation)
scripts/feature_cluster.m computes visual words (Section VII)
scripts/word_based_tracker.py does the Dirichlet process data association (Section VIII).
scripts/pipeline.py runs everything.
Data
The following ROS bags were used as the three datasets in the paper:
The attached database contains the state of the large run at the time of submission. That collection is called large2_seg_update. The ground-truth segmentations of these objects are in the data/large2 directory of the released code.
Due to some nondeterminism in how ROS handles messages, the process of transforming a bagfile into a database (go.launch) varies by a few frames. In our experience, this does not change our results by more than 1%. All of our analysis was performed on the same database, posted above.