This is an early release, so it is based on an already downloaded model from TensorFlow, which is working over a SSD detector trained on the COCO (Common Objects in COntext), on 17th November, 2017. In a future release, you will be able to select the desired model, and download it in execution time.
- JdeRobot (installation guide).
- TensorFlow (
sudo pip install tensorflow
). - Protobuf installation (read below).
More dependencies might be installed automatically with the packages mentioned above.
This component works over a library of TensorFlow pre-trained models, importing one of them and embedding it on the component developed here. Hence, to be able to run it, we have to install previously the protobufs
provided with the models, following the installation guide.
For the moment, this node handles a real-time stream of video (incoming by an ICE/ROS proxy, automatically processed by the comm
library), and shows a window displaying it, and also the output from the detection network. It provides a button for toggling on/off the real-time detection (TODO: implement another button to process a single frame on demand)
Open Terminal and type cameraserver cameraserver.cfg
In another terminal type python objectdetector.py objectdetector.yml
Although, you might have to edit the Model node in yml configuration file to suit your needs.
For training custom models one would need a tar.gz file same as the model name containing checkpoint information and a frozen inference graph generated by Tensorflow. Extract the file in the Net folder.
Path to labels is also necessary to label bounding boxes, contained in a .pbtxt file.
Some sample models are available to use right away here