Tensorflow and ROS
This guide targets Ubuntu 16.04 and ROS Kinetic
To run Default SSD (Single Shot Detection) algorithm:
-
Install ROS: http://wiki.ros.org/kinetic/Installation/Ubuntu
-
Install camera dependencies
sudo apt-get install ros-kinetic-usb_cam ros-kinetic-openni2-launch
-
Install tensorflow into python virtualenv: https://www.tensorflow.org/install/install_linux
sudo apt-get install python-pip python-dev python-virtualenv
virtualenv --system-site-packages ~/tensorflow
source ~/tensorflow/bin/activate
easy_install -U pip
pip install --upgrade tensorflow
-
mkdir ~/catkin_ws/ && mkdir ~/catkin_ws/src/
-
Clone standard Vision messages repository and this repository into
catkin_ws/src
:cd ~/catkin_ws/src
git clone https://github.com/Kukanani/vision_msgs.git
git clone https://github.com/osrf/tensorflow_object_detector.git
-
Build tensorflow_object_detector and Vision message
cd ~/catkin_ws && catkin_make
-
Source catkin workspace's setup.bash:
source ~/catkin_ws/devel/setup.bash
-
Plug in camera and launch Single Shot Detector (varies per camera, NOTE:
object_detect.launch
also launches the openni2.launch file for the camera. If you are using any other camera, please change the camera topic in the launch file before launching the file)roslaunch tensorflow_object_detector object_detect.launch
OR
roslaunch tensorflow_object_detector usb_cam_detector.launch
If you want to try any other ML model:
-
Download any Object Detection Models from the Tensorflow Object detection API and place it in
data/models/
. You can find the models in tensorflow Object Detection Model Zoo . Extract thetar.gz
file. -
Edit the MODEL_NAME and LABEL_NAME in detect_ros.py. By default it is
ssd_mobilenet_v1_coco_11_06_2017
withmscoco_label_map.pbtxt
respectively.