The pf_object_detector node implements the tree-structured HOG object model from http://people.cs.uchicago.edu/~pff/latent/.
The current code mostly is http://people.cs.uchicago.edu/~pff/latent/voc-release3.tgz with minor parts from v2 added (issues with blas).
The code is packaged as a node, see doxygen for the use details.
Important issues:
- Parameter and topic remapping doesn't work properly
Models should be downloaded separately: get http://people.cs.uchicago.edu/~pff/latent/voc-release3.tgz and move models from there to the package root.
- Compilation doesn't work on rosmake. Go to src, run octave and type compile.
- Some demos require imread (octave-forge image package. The version of 1.0.8 seems fine, but the latest doesn't contain imread. It is moving to core octave, but isn't there yet).
How to run
- Compile mex files
- Get models (see above)
- Run pf_detect.launch (optionally set do_display=1 in the launch file)
- Replay a bag file
- Run stereo_proc (to generate /stereo/left/image).
- listen to /objects_2d_str
How to run fast
Change interval to 1 and/or scale to 0.5/0.25 in the pf_detect.launch.
It'll be fast, but much worse.
Detection formats
The node listens to images and produces detections in 2 forms:
people.PositionMeasurement (using x,y dimensions only), variance is reported as 1/4 width and height respectively. The header is copied from the image message.
plaintext string - Pascal VOC format (object name, x,y,w,h,confidence). (use rostopic echo to see the output).