Difference between revisions of "TB3 Movidius Applications"

From wikidb
Jump to: navigation, search
(Caffe GoogLeNet from me)
(Caffe GoogLeNet from me)
Line 142: Line 142:
 
Tried to fix with this
 
Tried to fix with this
  
   cd ~/workspace/ncappzoo/apps/live-image-classifier/
+
   $ cd ~/workspace/ncappzoo/apps/live-image-classifier/
 
   
 
   
   cd  ../../caffe/GoogLeNet/
+
   $ cd  ../../caffe/GoogLeNet/
 
   
 
   
   make run
+
   $ make run
 
   
 
   
 
   cd ~/workspace/ncappzoo/apps/live-image-classifier/
 
   cd ~/workspace/ncappzoo/apps/live-image-classifier/

Revision as of 15:36, 29 January 2019

Reference

Install App Zoo

 $ cd ~/workspace/

 $ git clone -b ncsdk2 https://github.com/movidius/ncappzoo.git
 

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

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

 $ cd ~/workspace/ncappzoo/caffe
 
 $ make compile

 $ cd ../tensorflow/

 $ make compile

 $ cd ..

 $ find . -name graph
     ./tensorflow/mobilenets/model/graph
     ./tensorflow/inception_v2/graph
     ./tensorflow/tf_src/tensorflow/tensorflow/core/graph
     ./tensorflow/inception_resnet_v2/graph
     ./tensorflow/inception_v3/graph
     ./caffe/ResNet-18/graph
     ./caffe/TinyYolo/graph
     ./caffe/SqueezeNet/graph
     ./caffe/SSD_MobileNet/graph
     ./caffe/AgeNet/graph
     ./caffe/GoogLeNet/graph
     ./caffe/GenderNet/graph
     ./caffe/AlexNet/graph

Live Image Classifier

Build

 $ cd ~/workspace/ncappzoo/apps/live-image-classifier/
 
 $ make run
     ...
     age_net.caffemodel  100%[===================>]  43.55M  6.02MB/s    in 7.3s    
 
     Last-modified header missing -- time-stamps turned off.
     2018-05-29 13:16:32 (5.99 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

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 48.8% confidant you are 48-53 years ( 46.69 ms )
     I am 48.0% confidant you are 8-12 years ( 42.57 ms )
     I am 54.2% confidant you are 48-53 years ( 42.45 ms )
     I am 51.6% confidant you are 48-53 years ( 42.59 ms )
     I am 54.3% confidant you are 8-12 years ( 41.93 ms )
     I am 48.1% confidant you are 8-12 years ( 42.05 ms )
     I am 71.2% confidant you are 8-12 years ( 42.00 ms )


Run

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

Caffe AgeNet from Makefile

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 )

Caffe GoogLeNet from me

Failed Jan 2019

Used the example above as a base

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

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.