Skip to content

Commit

Permalink
Updated readme with new instructions and content
Browse files Browse the repository at this point in the history
Signed-off-by: Andrew Herrold (Intel Corporation) <andrew.herrold@intel.com>
  • Loading branch information
DrewBearly committed Jan 7, 2020
1 parent 166498c commit c3f1513
Showing 1 changed file with 53 additions and 36 deletions.
89 changes: 53 additions & 36 deletions README.md
@@ -1,79 +1,89 @@
# Neural Compute Application Zoo (ncappzoo)
# Neural Compute Application Zoo (_ncappzoo_)
[![Stable release](https://img.shields.io/badge/For_OpenVINO™_Version-2019.R3-green.svg)](https://github.com/opencv/dldt/releases/tag/2019_R2)
[![MIT License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)

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&reg; Neural Compute Stick 2 (Intel&reg; NCS 2)](https://software.intel.com/en-us/neural-compute-stick) or the original [Intel&reg; Movidius&trade; Neural Compute Stick](https://software.intel.com/en-us/movidius-ncs) and the Deep Learning Deployment Toolkit (DLDT) portion of the [OpenVINO&trade; Toolkit](https://software.intel.com/en-us/openvino-toolkit).
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&reg; Neural Compute Stick 2 (Intel&reg; NCS2)](https://software.intel.com/en-us/neural-compute-stick) or the original [Intel&reg; Movidius&trade; Neural Compute Stick](https://software.intel.com/en-us/movidius-ncs) and the Deep Learning Deployment Toolkit (DLDT) portion of the [OpenVINO&trade; Toolkit](https://software.intel.com/en-us/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.
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.

## ncappzoo Quick Start
If you have an Intel&reg; NCS 2 (or the first generation Intel&reg; Movidus&trade; NCS) device and want to jump into the ncappzoo its easy! There are only a few steps to get going with the ncappzoo projects fast.
1. clone the repo with the following command
## _ncappzoo_ Quick Start
If you have an Intel&reg; NCS2 (or the first generation Intel&reg; Movidus&trade; NCS) device and want to jump into the _ncappzoo_, follow these steps:

Clone the repo with the following command:
```bash
git clone https://github.com/movidius/ncappzoo.git
```
2. Explore apps by opening a terminal window navigating to any directory under **ncappzoo/apps** and execute this command

Run this command to check your system software dependencies:
```bash
make install_deps
```
If the script returns successfully, you're ready to run apps and networks!

## _ncappzoo_ Apps and Networks
Explore apps by opening a terminal window navigating to any directory under **_ncappzoo_/apps** and execute this command:
```bash
make run
```
3. Explore the neural networks by navigating to any network directory under **ncappzoo/networks**, **ncappzoo/caffe**, or **ncappzoo/tensorflow** and execute the same command
Explore the neural networks by navigating to any network directory under **_ncappzoo_/networks**, **_ncappzoo_/caffe**, or **_ncappzoo_/tensorflow** and execute the same command:
```bash
make run
```
Thats it! All of the network and app directories have simple consistant makefiles. To see other make targets supported from these directories just execute this 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:
```bash
make help
```


## ncappzoo Repository Branches
There are three branches in the repository; their discriptions are below. **The master branch is the one most developers will want.** The others are provided only for legacy reasons.
## _ncappzoo_ Repository Branches
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.

- **master** branch: This is the most current branch, and the content relies on the DLDT from the OpenVINO&trade; Toolkit. This is the only branch that is compatible with the Intel&reg; NCS 2 however, it is also compatible with the original Intel&reg; Movidius&trade; NCS device.
- **ncsdk2** branch: This branch is a legacy branch and the content relies on the NCSDK 2.x tools and APIs rather than the OpenVINO&trade; toolkit. This branch is only compatible with the original Intel&reg; Movidius&trade; NCS device and is **NOT** compatile with the Intel&reg; NCS 2 device.
- **ncsdk1** branch: This branch is a legacy branch and the content relies on the NCSDK 1.x tools and APIs rather than OpenVINO&trade; toolkit. This branch is only compatible with the original Intel&reg; Movidius&trade; NCS device and is **NOT** compatile with the Intel&reg; NCS 2 device.
- **master** branch: This is the most current branch, and the content relies on the DLDT from the OpenVINO&trade; Toolkit. This is the only branch that is compatible with the Intel&reg; NCS2 however, it is also compatible with the original Intel&reg; Movidius&trade; NCS device.
- **ncsdk2** branch: This branch is a legacy branch and the content relies on the NCSDK 2.x tools and APIs rather than the OpenVINO&trade; toolkit. This branch is only compatible with the original Intel&reg; Movidius&trade; NCS device and is **NOT** compatile with the Intel&reg; NCS2 device.
- **ncsdk1** branch: This branch is a legacy branch and the content relies on the NCSDK 1.x tools and APIs rather than OpenVINO&trade; toolkit. This branch is only compatible with the original Intel&reg; Movidius&trade; Neural Compute Stick and is **NOT** compatile with the Intel&reg; NCS2 device.

You can use the following git command to use the master branch of the repo:
```bash
git clone https://github.com/movidius/ncappzoo.git
```

## ncappzoo Compatibility Requirements
## _ncappzoo_ Compatibility Requirements

### Hardware compatibility
The projects in the ncappzoo are periodically tested on Intel&reg; 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<br><br>
The projects in the ncappzoo work on both the Intel&reg; NCS 2 and the original Intel&reg; Movidius NCS devices.
The projects in the _ncappzoo_ are periodically tested on Intel&reg; 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&trade; toolkit including the Raspberry Pi 3/3B/3B+/4B hardware<br><br>
The projects in the _ncappzoo_ work on both the Intel&reg; NCS2 and the original Intel&reg; Movidius NCS devices.


### Operating System Compatibility
The projects in the ncappzoo are tested and known to work on the **Ubuntu 16.04**. 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 _ncappzoo_ are tested and known to work on the **Ubuntu 18.04**. 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.

### OpenVINO and DLDT Compatibility
The projects in the **master branch** depend on the Deep Learning Deployment Toolkit (DLDT) portion of the OpenVINO&trade; toolkit. There are two flavors of the the OpenVINO&trade; toolkit's DLDT:
- The [Intel&reg; Distribution of the OpenVINO&trade; toolkit](https://software.intel.com/en-us/openvino-toolkit) is a binary installation for supported platforms. Here are some links regarding the Intel Distribution of the OpenVINO&trade; Toolkit and the Intel&reg; NCS 2
- The [Intel&reg; Distribution of the OpenVINO&trade; toolkit](https://software.intel.com/en-us/openvino-toolkit) is a binary installation available for supported platforms. Here are some links regarding the Intel Distribution of the OpenVINO&trade; Toolkit and the Intel&reg; NCS2
- Getting started web page: https://software.intel.com/en-us/articles/get-started-with-neural-compute-stick
- Getting Started Video for Linux: https://youtu.be/AeEjQKKkPzg?list=PL61cFkSnEEmOF3AJvLtlDTSbwjlCP4iCs
- OpenVINO Toolkit documentation: https://docs.openvinotoolkit.org/latest/index.html
- The [open source distribution of the OpenVINO toolkit DLDT](https://github.com/opencv/dldt). This is the means by which the Intel NCS 2 device can be used with most single board computers on the market and is also helpful for other non-Ubuntu development systems. Here are some links regarding the open source distribution of the OpenVINO&trade; with the Intel&reg; NCS 2:
- The [open source distribution of the OpenVINO&trade; toolkit DLDT](https://github.com/opencv/dldt). This is the means by which the Intel&reg; NCS2 device can be used with most single board computers on the market and is also helpful for other non-Ubuntu development systems. Here are some links regarding the open source distribution of the OpenVINO&trade; with the Intel&reg; NCS2:
- Applies to all target system: https://software.intel.com/en-us/articles/intel-neural-compute-stick-2-and-open-source-openvino-toolkit
- ARMv7: https://software.intel.com/en-us/articles/ARM-sbc-and-NCS2
- ARM64: https://software.intel.com/en-us/articles/ARM64-sbc-and-NCS2
- Python on all: https://software.intel.com/en-us/articles/python3-sbc-and-ncs2

**Note:** When using the open source distribution of the OpenVINO&trade; 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&trade; Toolkit and unless oterwise specified in a project's README.md file all projects are based on the **OpenVINO Toolkit 2019 R3 release**.
The projects in the _ncappzoo_ work with both flavors of the OpenVINO&trade; Toolkit and unless otherwise specified in a project's README.md file all projects are targeted for the **OpenVINO&trade; Toolkit 2019 R3 release**.

### OpenCV Compatibility
Some projects also rely on OpenCV, for these projects, the OpenCV from the OpenVINO release is the expected version. Other versions may also work but are not tested an may require tweaks to get working.
Some projects also rely on OpenCV. For these projects, OpenCV distributed with the OpenVINO&trade; release is the recommended version. Other versions may also work but are not tested an may require tweaks to get working.

### Python Compatibility
The Python projects in the ncappzoo rely on python 3.5 unless otherwise stated in the project's README.md
The Python projects in the _ncappzoo_ rely on Python 3.5, unless otherwise stated in the individual project's README.

### Raspberry Pi Compatibility
The ncappzoo is compatible with the Raspberry Pi 3 B+ and the Raspberry Pi 4. Some additional configuration steps are required:
The _ncappzoo_ is compatible with the Raspberry Pi 3 B+ and the Raspberry Pi 4. Some additional configuration steps are required:

#### Intel&reg; Distribution of OpenVINO&trade; for Raspbian* OS
The **Intel&reg; Distribution of OpenVINO&trade; toolkit for Raspbian OS** does not include the Model Optimizer. To use the ncappzoo, you must clone the open source version of the OpenVINO&trade; 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:
The **Intel&reg; Distribution of OpenVINO&trade; toolkit for Raspbian OS** does not include the Model Optimizer. To use the _ncappzoo_, you must clone the open source version of the OpenVINO&trade; 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
Expand All @@ -86,24 +96,31 @@ export PYTHONPATH=~/dldt/model-optmizer:$PYTHONPATH
#### Open Source OpenVINO&trade; Deep Learning Development Toolkit (DLDT)
To setup the open source version of OpenVINO&trade; 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.

## ncappzoo Repository Layout
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.
- **[apps](apps/README.md)** : Applications built to use the Intel Movidius NCS. **This is a great place to start in the ncappzoo!**
- **[networks](networks/README.md)** : Scripts to download models and optimize neural networks based on any framework for use with the NCS and NCS 2.
- **[caffe](caffe/README.md)** : Scripts to download caffe models and optimize neural networks for use with the NCS and NCS 2. Note: this is a legacy directory and new networks will be in the _networks_ directory.
- **[tensorflow](tensorflow/README.md)** : Scripts to download TensorFlow&trade; models and optimize neural networks for use with the NCS and NCS 2. Note: this is a legacy directory and new networks will be in the _networks_ directory.
- **[data](data/README.md)** : Data and scripts to download data for use with models and applications that use the NCS and NCS 2
## _ncappzoo_ Repository Layout
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_.
- **[apps](apps/README.md)** : Applications built to use the Intel&reg; Movidius Intel&reg; NCS and Intel&reg; Neural Compute Stick 2. **This is a great place to start in the _ncappzoo_!**
- **[networks](networks/README.md)** : Scripts to download models and optimize neural networks based on any framework for use with the Intel&reg; NCS and Intel&reg; NCS2.
- **[caffe](caffe/README.md)** : Scripts to download caffe models and optimize neural networks for use with the Intel&reg; NCS and Intel&reg; NCS2. Note: this is a legacy directory and new networks will be in the _networks_ directory.
- **[tensorflow](tensorflow/README.md)** : Scripts to download TensorFlow&trade; models and optimize neural networks for use with the Intel&reg; NCS and Intel&reg; NCS2. Note: this is a legacy directory and new networks will be in the _networks_ directory.
- **[data](data/README.md)** : Data and scripts to download data for use with models and applications that use the Intel&reg; NCS and Intel&reg; NCS2

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](OWNERS) file contains the mapping of subdirectory to owner.

## Contributing to the ncappzoo
The more contributions to the ncappzoo, the more successful the 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.
## Contributing to the _ncappzoo_
The more contributions to the _ncappzoo_, the more successful the 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.

See the [CONTRIBUTING.md](CONTRIBUTING.md) file for instructions and guidelines for contributing.

## Licensing
All content in the ncappzoo is licensed via the [MIT license](https://opensource.org/licenses/MIT) 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.
All content in the _ncappzoo_ is licensed via the [MIT license](https://opensource.org/licenses/MIT) 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](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.

See the [LICENSE](LICENSE) file in the top-level directory for all licensing details, including reuse and redistribution of content in the ncappzoo repository.
Raspberry Pi is a trademark of the Raspberry Pi Foundation.

TensorFlow, the TensorFlow logo and any related marks are trademarks of Google Inc.

0 comments on commit c3f1513

Please sign in to comment.