#OpenVINO Ubuntu Xenial, Virtualbox and Vagrant Install, Intel NCS2 (Neural Compute Stick 2)
Download Latest VirtualBox from [https://www.virtualbox.org/wiki/Downloads] https://www.virtualbox.org/wiki/Downloads
Make sure to download extension pack
Oracle VM VirtualBox Extension Pack
Download and Install Vagrant from
[https://www.vagrantup.com/downloads.html] https://www.vagrantup.com/downloads.html
First step is to setup VM.
vagrant up
Vagrant is configured to apply all usb filters required to access Neural Compute Stick 1 and 2 inside Virtualbox Ubuntu Xenial VM
This will create VM on your host machine with name "OpenVinoVM"
This will also automatically download OpenVINO to /home/vagrant/openvino
cd /home/vagrant/openvino/l_openvino_toolkit_p_2019.1.094/ && sudo ./install_openvino_dependencies.sh
cd /home/vagrant/openvino/l_openvino_toolkit_p_2019.1.094/ && sudo ./install.sh
This will have multiple manual steps like accepting license and selecting kind of installation
Default installation path the download configured in Vagrantfile /opt/intel/openvino_2019.1.094
source /opt/intel/openvino_2019.1.094/bin/setupvars.sh
echo "source /opt/intel/openvino_2019.1.094/bin/setupvars.sh" >> /home/vagrant/.bashrc
THese are required for USB to be activated and used
sh /opt/intel/openvino_2019.1.094/install_dependencies/install_NCS_udev_rules.sh
Update UDEV Rules are below
sudo vi /etc/udev/rules.d/97-myriad-usbboot.rules
I modified MODE to 666 from 660. OpenVINO has 660 as default.
SUBSYSTEM=="usb", ATTRS{idProduct}=="2150", ATTRS{idVendor}=="03e7", GROUP="users", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1" SUBSYSTEM=="usb", ATTRS{idProduct}=="2485", ATTRS{idVendor}=="03e7", GROUP="users", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1" SUBSYSTEM=="usb", ATTRS{idProduct}=="f63b", ATTRS{idVendor}=="03e7", GROUP="users", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1"
Reload UDEV
sudo udevadm control --reload-rules && sudo udevadm trigger && sudo ldconfig
cd /opt/intel/openvino_2019.1.094/deployment_tools/model_optimizer/install_prerequisites && sudo ./install_prerequisites.sh
If you dont want to run optimizer for all different kind of model you can choose specific optimizer
Example: sudo ./install_prerequisites_caffe.sh ( For Caffe Model) Example: sudo ./install_prerequisites_tf.sh ( For Tensorflow Model)
Type lsusb
You should see some USB device with vendor id like
Bus 002 Device 002: ID 03e7:2485
cd /opt/intel/openvino_2019.1.094/deployment_tools/demo && ./demo_squeezenet_download_convert_run.sh
This should print something like this
Image /opt/intel/openvino_2019.1.094/deployment_tools/demo/car.png
classid | probability | label |
---|---|---|
817 | 0.8363345 | sports car, sport car |
511 | 0.0946488 | convertible |
479 | 0.0419131 | car wheel |
751 | 0.0091071 | racer, race car, racing car |
436 | 0.0068161 | beach wagon, station wagon, wagon, estate car, beach waggon, station waggon, waggon |
656 | 0.0037564 | minivan |
586 | 0.0025741 | half track |
717 | 0.0016069 | pickup, pickup truck |
864 | 0.0012027 | tow truck, tow car, wrecker |
581 | 0.0005882 | grille, radiator grille |
total inference time: 11.7261708 Average running time of one iteration: 11.7261708 ms
Throughput: 85.2793311 FPS
cd /opt/intel/openvino_2019.1.094/deployment_tools/tools/model_downloader/
python3 downloader.py --print_all
Make sure vagrant has access to folder
sudo chmod -R 777 /opt/intel/openvino_2019.1.094/deployment_tools/tools/model_downloader/
python3 downloader.py --name googlenet-v2
cd /opt/intel/openvino_2019.1.094/deployment_tools/tools/model_downloader/classification/googlenet/v2/caffe
/opt/intel/openvino_2019.1.094/deployment_tools/model_optimizer/mo.py --data_type FP16 --input_model googlenet-v2.caffemodel --input_proto googlenet-v2.prototxt
cd /opt/intel/openvino_2019.1.094/deployment_tools/inference_engine/samples/python_samples
sudo wget -N https://upload.wikimedia.org/wikipedia/commons/b/b6/Felis_catus-cat_on_snow.jpg
python3 classification_sample/classification_sample.py -m /opt/intel/openvino_2019.1.094/deployment_tools/tools/model_downloader/classification/googlenet/v2/caffe/./googlenet-v2.xml -i Felis_catus-cat_on_snow.jpg -d MYRIAD
This should give results like
Image Felis_catus-cat_on_snow.jpg
classid | probability |
---|---|
173 | 0.4843750 |
54 | 0.2985840 |
7 | 0.1647949 |
200 | 0.0359497 |
66 | 0.0035839 |
10 | 0.0024872 |
473 | 0.0024281 |
84 | 0.0016794 |
198 | 0.0014591 |
152 | 0.0006762 |
Next write up will be on Image Classification Using OpenCV and OpenVINO