TB3 Movidius Applications

From wikidb
Jump to: navigation, search

Reference

Install App Zoo

 $ cd ~/workspace/

 $ git clone https://github.com/movidius/ncappzoo

 $ sudo ln -s /home/eepp/workspace/ncappzoo/ /opt/movidius/ncappzoo

NOTE: Use this for NCSDK 2.08 which is not supported by the ROS Movidius Wrapper. $ git clone -b ncsdk2 https://github.com/movidius/ncappzoo.git. See also section 3 ROS Intel Movidius NCS README

Live Image Classifier

Build

 $ cd ~/workspace/ncappzoo/apps/live-image-classifier/
 
 $ make run
     ...
     age_net.caffemodel  100%[===================>]  43.55M  3.47MB/s    in 18s     

     Last-modified header missing -- time-stamps turned off.
     2019-02-05 13:50:01 (2.46 MB/s) - ‘./age_net.caffemodel’ saved [45661480/45661480]

     mvNCCompile -w age_net.caffemodel -s 12 deploy.prototxt
     mvNCCompile v02.00, Copyright @ Movidius Ltd 2016

     /usr/local/bin/ncsdk/Controllers/FileIO.py:52: UserWarning: You are using a large type. Consider reducing your data sizes for best performance
       "Consider reducing your data sizes for best performance\033[0m")
     make[1]: Leaving directory '/home/eepp/workspace/ncappzoo/caffe/AgeNet'

     Running live-image-classifier.py
     python3 live-image-classifier.py --graph ../../caffe/AgeNet/graph --labels ../../data/age_gender/age_categories.txt
     Traceback (most recent call last):
       File "live-image-classifier.py", line 12, in <module>
         import cv2
     ImportError: /opt/ros/kinetic/lib/python2.7/dist-packages/cv2.so: undefined symbol: PyCObject_Type
     Makefile:41: recipe for target 'run' failed
     make: *** [run] Error 1

Note the "import cv2" reference above.

Fix

Import Error ROS python3 opencv. ROS creates its own open cv which is compatible with python2 only. I do the following.I followed zishan’s instructions

 $ pwd
     /opt/ros/kinetic/lib/python2.7/dist-packages
 
 $ sudo mv cv2.so cv2_rename.so
     [sudo] password for eepp:

Finish Build

 $ make run
     ...
     mvNCCompile -w gender_net.caffemodel -s 12 deploy.prototxt
     mvNCCompile v02.00, Copyright @ Movidius Ltd 2016

     /usr/local/bin/ncsdk/Controllers/FileIO.py:52: UserWarning: You are using a large type. Consider reducing your data sizes for best performance
       "Consider reducing your data sizes for best performance\033[0m")
     make[1]: Leaving directory '/home/eepp/workspace/ncappzoo/caffe/GenderNet'

     making AgeNet
     (cd ../../caffe/AgeNet; make compile;)
     make[1]: Entering directory '/home/eepp/workspace/ncappzoo/caffe/AgeNet'
     make[2]: Entering directory '/home/eepp/workspace/ncappzoo/data/age_gender'
     make[2]: Leaving directory '/home/eepp/workspace/ncappzoo/data/age_gender'
     test -f deploy.prototxt || (wget -P . https://raw.githubusercontent.com/GilLevi/AgeGenderDeepLearning/master/age_net_definitions/deploy.prototxt; awk 'NR <2 {print}' < deploy.prototxt > temp; cat input_shape.prototxt >> temp; awk 'NR > 6 {print}' < deploy.prototxt >> temp; mv temp deploy.prototxt)
     test -f age_net.caffemodel || wget -P . -N https://github.com/GilLevi/AgeGenderDeepLearning/raw/master/models/age_net.caffemodel
     mvNCCompile -w age_net.caffemodel -s 12 deploy.prototxt
     mvNCCompile v02.00, Copyright @ Movidius Ltd 2016

     /usr/local/bin/ncsdk/Controllers/FileIO.py:52: UserWarning: You are using a large type. Consider reducing your data sizes for best performance
        "Consider reducing your data sizes for best performance\033[0m")
     make[1]: Leaving directory '/home/eepp/workspace/ncappzoo/caffe/AgeNet'

     Running live-image-classifier.py
     python3 live-image-classifier.py --graph ../../caffe/AgeNet/graph --labels ../../data/age_gender/age_categories.txt
     I am 41.4% confidant you are 25-32 years ( 46.03 ms )
     I am 41.6% confidant you are 25-32 years ( 42.45 ms )
     I am 40.9% confidant you are 25-32 years ( 42.34 ms )
     I am 44.3% confidant you are 4-6 years ( 42.32 ms )
     I am 41.7% confidant you are 4-6 years ( 42.31 ms )
     I am 72.2% confidant you are 4-6 years ( 42.12 ms )
     I am 47.5% confidant you are 4-6 years ( 42.38 ms )
     I am 36.0% confidant you are 8-12 years ( 41.91 ms )
     I am 37.8% confidant you are 60-100 years ( 42.47 ms )
     I am 53.8% confidant you are 60-100 years ( 42.02 ms )
 ^C

Live Image Classifier Tests

Preconditions

  • Fix from above has be executed
 $ cd ~/workspace/ncappzoo/apps/live-image-classifier/

change to

 $ cd /opt/movidius/ncappzoo/apps/live-image-classifier/

Tests

Caffe AgeNet

From Makefile above

Passed Jan 2019

 # From Makefile
 $ python3 live-image-classifier.py --graph ../../caffe/AgeNet/graph --labels ../../data/age_gender/age_categories.txt
     I am 71.7% confidant you are 8-12 years ( 45.94 ms )
     I am 65.4% confidant you are 8-12 years ( 42.28 ms )
     I am 79.5% confidant you are 8-12 years ( 42.37 ms )
     I am 83.4% confidant you are 8-12 years ( 42.22 ms )

OLD Tests

Tests from a previous build. Need to be rechecked.

Caffe GoogLeNet from me

Passed 2018

Used the example above as a base

 $ python3 live-image-classifier.py --graph ../../caffe/GoogLeNet/graph --labels ../../data/ilsvrc12/synset_words.txt

Failed Jan 2019 Tried to fix with this

 $ cd ~/workspace/ncappzoo/apps/live-image-classifier/

 $ cd  ../../caffe/GoogLeNet/

 $ make run

 cd ~/workspace/ncappzoo/apps/live-image-classifier/

 $ python3 live-image-classifier.py --graph ../../caffe/GoogLeNet/graph --labels ../../data/ilsvrc12/synset_words.txt

Two Caffe Models: Alex and SqueezeNet from README.md

Failed Jan 2019

 $ python3 live-image-classifier.py --graph ../../caffe/AlexNet/graph --dim 227 227

 $ python3 live-image-classifier.py --graph ../../caffe/SqueezeNet/graph --dim 227 227

Result: Didn't recognize hand-held photos or a real banana

Two Tensorflow models: Mobilenet and Inception

Build and Test the Mobilenet and Inception Models

Failed Jan 2019

 $ cd ~/workspace/ncappzoo/tensorflow/mobilenets
 
 $ make run
 
 $ python3 ../../apps/image-classifier/image-classifier.py --graph ./model/graph --dim 224 224 --mean 127.5 --scale 0.00789 --colormode "RGB" --labels ./model/labels.txt --image ../../data/images/pic_053.jpg
 
 $ cd ~/workspace/ncappzoo/tensorflow/inception

 $ make run
 
 $ python3 ../../apps/image-classifier/image-classifier.py --graph ./model/v3/graph --dim 224 224 --mean 127.5 --scale 0.00789 --colormode "RGB" --labels ./model/v3/labels.txt --image ../../data/images/pic_053.jpg

Run the Mobilenet and Inception Models in Live View *** BEST RESULTS

 $ cd ~/workspace/ncappzoo/apps/live-image-classifier/

 $ python3 live-image-classifier.py --graph ../../tensorflow/mobilenets/model/graph --labels ../../tensorflow/mobilenets/model/labels.txt --mean 127.5 --scale 0.00789 --dim 224 224 --colormode="RGB"
 
 $ python3 live-image-classifier.py --graph ../../tensorflow/inception/model/v3/graph --labels ../../tensorflow/inception/model/v3/labels.txt --mean 127.5 --scale 0.00789 --dim 299 299 --colormode="RGB"

Result: Recognized electric guitar and zebra photos. A real banana in front of a white board.

Help

$ python3 live-image-classifier.py --graph ../../caffe/GoogLeNet/graph -h
     usage: live-image-classifier.py [-h] [-g GRAPH] [-v VIDEO] [-l LABELS]
                                     [-M MEAN [MEAN ...]] [-S SCALE]
                                     [-D DIM [DIM ...]] [-c COLORMODE]

     Image classifier using Intel® Movidius™ Neural Compute Stick.

     optional arguments:
       -h, --help            show this help message and exit
       -g GRAPH, --graph GRAPH
                             Absolute path to the neural network graph file.
       -v VIDEO, --video VIDEO
                             Index of your computer's V4L2 video device. ex. 0 for
                             /dev/video0
       -l LABELS, --labels LABELS
                             Absolute path to labels file.
       -M MEAN [MEAN ...], --mean MEAN [MEAN ...]
                             ',' delimited floating point values for image mean.
       -S SCALE, --scale SCALE
                             Absolute path to labels file.
       -D DIM [DIM ...], --dim DIM [DIM ...]
                             Image dimensions. ex. -D 224 224
       -c COLORMODE, --colormode COLORMODE
                             RGB vs BGR color sequence. This is network dependent.

Log Image Classifier

 $ cd ~/workspace/ncappzoo/apps/log-image-classifier/
 
 $ make run
     ...      making compile
     mvNCCompile -w bvlc_alexnet.caffemodel -s 12 deploy.prototxt
     mvNCCompile v02.00, Copyright @ Movidius Ltd 2016
 
     /usr/local/bin/ncsdk/Controllers/FileIO.py:52: UserWarning: You are using a large type. Consider reducing your data sizes for best performance
       "Consider reducing your data sizes for best performance\033[0m")
     make[1]: Leaving directory '/home/eepp/workspace/ncappzoo/caffe/AlexNet'
 
     Running log-image-classifier.py
     python3 log-image-classifier.py
 
 
     Pre-processing images...
     /usr/local/lib/python3.5/dist-packages/skimage/transform/_warps.py:84: UserWarning: The default mode, 'constant', will be changed to 'reflect' in skimage 0.15.
       warn("The default mode, 'constant', will be changed to 'reflect' in "
 
     Performing inference on a lot of images...
 
     Inference complete! View results in ./inferences.csv.