Welcome to the Neural Compute Application Zoo (ncappzoo). This repository is a place for any interested developers to share their projects (code and Neural Network content) that make use of the Intel® Neural Compute Stick 2 (Intel® NCS2) or the original Intel® Movidius™ Neural Compute Stick and the Deep Learning Deployment Toolkit (DLDT) portion of the OpenVINO™ Toolkit.
The ncappzoo is a community repository with many content owners and maintainers. All ncappzoo content is open source and being made available in this central location for others to download, experiment with, modify, build upon, and learn from.
If you have an Intel® NCS2 (or the first generation Intel® Movidus™ NCS) device and want to jump into the ncappzoo, follow these steps:
Clone the repo with the following command:
git clone https://github.com/movidius/ncappzoo.git
Run this command inside of any app/network folder to check your system software dependencies for that particular sample:
If the script returns successfully, you're ready to run the app or network sample!
Explore apps by opening a terminal window navigating to any directory under ncappzoo/apps and execute this command:
Explore the neural networks by navigating to any network directory under ncappzoo/networks and execute the same command:
Thats it! All of the network and app directories have simple consistent makefiles. To see other make targets supported from these directories just execute this command:
There are main three branches in the repository; their descriptions are below. The master branch is the one most developers will want. The others are provided for legacy compatibility.
You can use the following git command to use the master branch of the repo:
git clone https://github.com/movidius/ncappzoo.git
The projects in the ncappzoo are periodically tested on Intel® x86-64 Systems unless otherwise stated in the project's README.md file. Although not tested on other harware platforms most projects should also work on any hardware which can run the OpenVINO™ toolkit including the Raspberry Pi 3/3B/3B+/4B hardware
The projects in the ncappzoo work on both the Intel® NCS2 and the original Intel® Movidius NCS devices.
The projects in the ncappzoo are tested and known to work on the Ubuntu 18.04 OS. These projects will likely work on other Linux based operating systems as well but they aren't tested on those unless explicitly stated in the project's README.md file and there may be some tweaks required as well. If any specific issues are found for other OSes please submit a pull request as broad compatibility is desirable.
The projects in the master branch depend on the Deep Learning Deployment Toolkit (DLDT) portion of the OpenVINO™ toolkit. There are two flavors of the the OpenVINO™ toolkit's DLDT:
Note: When using the open source distribution of the OpenVINO™ toolkit, you may need to modify your shell's path and environment variables to point to the toolkit's directories.
The projects in the ncappzoo work with both flavors of the OpenVINO™ Toolkit and unless otherwise specified in a project's README.md file all projects are targeted for the OpenVINO™ Toolkit 2020.1 release.
Some projects also rely on OpenCV. For these projects, OpenCV distributed with the OpenVINO™ release is the recommended version. Other versions may also work but are not tested an may require tweaks to get working.
The Python projects in the ncappzoo rely on Python 3.5, unless otherwise stated in the individual project's README.
The ncappzoo is compatible with the Raspberry Pi 3 B+ and the Raspberry Pi 4. Some additional configuration steps are required:
The Intel® Distribution of OpenVINO™ toolkit for Raspbian OS does not include the Model Optimizer. To use the ncappzoo, you must clone the open source version of the OpenVINO™ Deep Learning Development Toolkit (DLDT) and use that version of the Model Optimizer. Clone the repository, install dependencies for TensorFlow* and Caffe*, and set up your PATH and PYTHONPATH variables to point to the Model Optimizer:
cd ~ git clone https://github.com/opencv/dldt.git cd dldt/model-optimizer pip3 install -r requirements_tf.txt pip3 install -r requirements_caffe.txt export PATH=~/dldt/model-optimizer:$PATH export PYTHONPATH=~/dldt/model-optmizer:$PYTHONPATH
To setup the open source version of OpenVINO™ with your Raspberry Pi, add to the PATH, PYTHONPATH, and LD_LIBRARY_PATH environment variables the location of the build Inference Engine libraries and Python API.
The ncappzoo contains the following top-level directories. See the README file in each of these directories or just click on the links below to explore the contents of the ncappzoo.
The top-level directories above have subdirectories that hold project content. Each of these project subdirectories has one or more owners that assumes responsibility for it. The OWNERS file contains the mapping of subdirectory to owner.
The ncappzoo is meant to explore and teach features available for the Intel® Movidius™ Neural Compute Stick and Intel® Neural Compute Stick 2 with the Intel® OpenVINO™ toolkit. The more contributions to the ncappzoo, the more successful this community will be! We always encourage everyone with Neural Compute Stick related content to share by contributing their applications and model-related work to the ncappzoo. It's easy to do, and even when contributing new content you will be the owner and maintainer of the content.
If your inclusion is an opportunity to explore a new idea in computer vision, add as much documentation about the functionality and your process in creating your app or network, including smartly commenting your code. This will give others - and you! - a chance to learn from your addition. Your addition will help grow our community and improve all of our AI and computer vision skills. Most importantly, the insights you get from releasing your app into the wild here will only help you down the line if you ever want to commercialize your idea. As always, your work in the ncappzoo should be properly attributed so that its ownership will always be managed by you and those you grant additional rights to.
See the CONTRIBUTING.md file for instructions and guidelines for contributing.
All content in the ncappzoo is licensed via the MIT license unless specifically stated otherwise in lower-level projects. Individual model and code owners maintain the copyrights for their content, but provide it to the community in accordance with the MIT License.
See the LICENSE file in the top-level directory for all licensing details, including reuse and redistribution of content in the ncappzoo repository.
Intel and the Intel logo are trademarks of Intel Corporation or its subsidiaries.
OpenVINO is a trademark of Intel Corporation or its subsidiaries.
Raspberry Pi is a trademark of the Raspberry Pi Foundation.
TensorFlow, the TensorFlow logo and any related marks are trademarks of Google Inc.