The Movidius™ Neural Compute Stick (NCS) is a tiny fanless deep learning device that you can use to learn AI programming at the edge. NCS is powered by the same low power high performance Movidius™ Vision Processing Unit (VPU) that can be found in millions of smart security cameras, gesture controlled drones, industrial machine vision equipment, and more.
This project is a ROS wrapper for NC API of NCSDK, providing the following features: * A ROS service for object classification and detection of a static image file * A ROS publisher for object classification and detection of a video stream from a RGB camera * Demo applications to show the capabilities of ROS service and publisher * Support multiple CNN models of Caffe and Tensorflow * Support multiple devices in parallel to acclerate inference
There are 2 active branches in this project:
* master - stable branch
The latest version on it is v0.6.0 which supports NCSDK v1.12.00. master branch is only updated when every milestone release ready.
* devel - default branch
This branch is updated from time to time and maintain the latest code on it. Each pull request should be submitted based on devel branch. We will merge patches to master branch on every milestone release.
/opt/movidiusby default. Create a symbol link in
/opt/movidiusto NC APP Zoo.
Shell sudo ln -s /ncappzoo /opt/movidius/ncappzooAfter that, make sure you can find graph data in
/opt/movidius/ncappzoo/caffeor
/opt/movidius/ncappzoo/tensorflowand image data in
/opt/movidius/ncappzoo/data/images
Shell sudo apt-get install ros-kinetic-usb-cam
sudo ln -s /usr/lib/x86_64-linux-gnu/libusb-1.0.a /usr/lib/libusb.a
Shell cd ~/catkin_ws/src git clone https://github.com/intel-ros/realsense.git cd realsense git checkout 2.0.2 cd ~/catkin_ws catkin_make## 4 Building and Installation
Shell # Building cd ~/catkin_ws/src git clone https://github.com/intel/object_msgs git clone https://github.com/intel/ros_intel_movidius_ncs.git cd ros_intel_movidius_ncs git checkout master cd ~/catkin_ws catkin_make # Installation catkin_make install source install/setup.bash # Copy label files from this project to the installation location of NCSDK cp ~/catkin_ws/src/ros_intel_movidius_ncs/data/labels/* /opt/movidius/ncappzoo/data/ilsvrc12/## 5 Running the Demo ### 5.1 Classification #### 5.1.1 Supported CNN Models ###### Table1 |CNN Model|Framework|Usage| |:-|:-|:-| |AlexNet|Caffe|Image/Video| |GoogLeNet|Caffe|Image/Video| |SqueezeNet|Caffe|Image/Video| |Inceptionv1|Tensorflow|Image/Video| |Inceptionv2|Tensorflow|Image/Video| |Inceptionv3|Tensorflow|Image/Video| |Inceptionv4|Tensorflow|Image/Video| |MobileNet|Tensorflow|Image/Video| #### 5.1.2 Classification Result with GoogLeNet
|CNN Model|Framework|Usage| |:-|:-|:-| |MobileNetSSD(Recommended)|Caffe|Image/Video| |TinyYolo_v1|Caffe|Image/Video|
We introduce multiple NCS support from v0.6.0, providing x1.8 / x2.5 / x3 performance improvement with 2NCSs / 3NCSs / 4NCSs compared with 1 NCS respectively. Refer here for more details.
Classification:
/movidius_ncs_nodelet/classified_objects
/movidius_ncs_nodelet/detected_objects
Classification:
/movidius_ncs_image/classify_object
/movidius_ncs_image/detect_object