```
* Download the following models to run the Image Classification Sample:
|Model Name | Code Sample or Demo App |
|-----------------------------------------------|------------------------------------------|
|`googlenet-v1` | Image Classification Sample |
@sphinxdirective
.. raw:: html
@endsphinxdirective
To download the GoogleNet v1 Caffe model to the `models` folder:
@sphinxdirective
.. tab:: Linux
.. code-block:: sh
omz_downloader --name googlenet-v1 --output_dir ~/models
.. tab:: Windows
.. code-block:: bat
omz_downloader --name googlenet-v1 --output_dir %USERPROFILE%\Documents\models
.. tab:: macOS
.. code-block:: sh
omz_downloader --name googlenet-v1 --output_dir ~/models
@endsphinxdirective
Your screen looks similar to this after the download and shows the paths of downloaded files:
@sphinxdirective
.. tab:: Linux
.. code-block:: sh
###############|| Downloading models ||###############
========= Downloading /home/username/models/public/googlenet-v1/googlenet-v1.prototxt
========= Downloading /home/username/models/public/googlenet-v1/googlenet-v1.caffemodel
... 100%, 4834 KB, 3157 KB/s, 1 seconds passed
###############|| Post processing ||###############
========= Replacing text in /home/username/models/public/googlenet-v1/googlenet-v1.prototxt =========
.. tab:: Windows
.. code-block:: bat
################|| Downloading models ||################
========== Downloading C:\Users\username\Documents\models\public\googlenet-v1\googlenet-v1.prototxt
... 100%, 9 KB, ? KB/s, 0 seconds passed
========== Downloading C:\Users\username\Documents\models\public\googlenet-v1\googlenet-v1.caffemodel
... 100%, 4834 KB, 571 KB/s, 8 seconds passed
################|| Post-processing ||################
========== Replacing text in C:\Users\username\Documents\models\public\googlenet-v1\googlenet-v1.prototxt
.. tab:: macOS
.. code-block:: sh
###############|| Downloading models ||###############
========= Downloading /Users/username/models/public/googlenet-v1/googlenet-v1.prototxt
... 100%, 9 KB, 44058 KB/s, 0 seconds passed
========= Downloading /Users/username/models/public/googlenet-v1/googlenet-v1.caffemodel
... 100%, 4834 KB, 4877 KB/s, 0 seconds passed
###############|| Post processing ||###############
========= Replacing text in /Users/username/models/public/googlenet-v1/googlenet-v1.prototxt =========
@endsphinxdirective
@sphinxdirective
.. raw:: html
@endsphinxdirective
## Step 2: Convert the Model with Model Optimizer
In this step, your trained models are ready to run through the Model Optimizer to convert them to the IR (Intermediate Representation) format. For most model types, this is required before using the OpenVINO Runtime with the model.
Models in the IR format always include an `.xml` and `.bin` file and may also include other files such as `.json` or `.mapping`. Make sure you have these files together in a single directory so the OpenVINO Runtime can find them.
REQUIRED: `model_name.xml`
REQUIRED: `model_name.bin`
OPTIONAL: `model_name.json`, `model_name.mapping`, etc.
This tutorial uses the public GoogleNet v1 Caffe* model to run the Image Classification Sample. See the example in the Download Models section of this page to learn how to download this model.
The googlenet-v1 model is downloaded in the Caffe* format. You must use the Model Optimizer to convert the model to IR.
Create an `` directory to contain the model's Intermediate Representation (IR).
@sphinxdirective
.. tab:: Linux
.. code-block:: sh
mkdir ~/ir
.. tab:: Windows
.. code-block:: bat
mkdir %USERPROFILE%\Documents\ir
.. tab:: macOS
.. code-block:: sh
mkdir ~/ir
@endsphinxdirective
The OpenVINO Runtime can infer models where floating-point weights are [compressed to FP16](../MO_DG/prepare_model/FP16_Compression.md). To generate an IR with a specific precision, run the Model Optimizer with the appropriate `--data_type` option.
Generic Model Optimizer script:
``` sh
mo --input_model / --data_type --output_dir
```
IR files produced by the script are written to the directory.
The command with most placeholders filled in and FP16 precision:
@sphinxdirective
.. tab:: Linux
.. code-block:: sh
mo --input_model ~/models/public/googlenet-v1/googlenet-v1.caffemodel --data_type FP16 --output_dir ~/ir
.. tab:: Windows
.. code-block:: bat
mo --input_model %USERPROFILE%\Documents\models\public\googlenet-v1\googlenet-v1.caffemodel --data_type FP16 --output_dir %USERPROFILE%\Documents\ir
.. tab:: macOS
.. code-block:: sh
mo --input_model ~/models/public/googlenet-v1/googlenet-v1.caffemodel --data_type FP16 --output_dir ~/ir
@endsphinxdirective
## Step 3: Download a Video or a Photo as Media
Many sources are available from which you can download video media to use the code samples and demo applications. Possibilities include:
- [Pexels](https://pexels.com)
- [Google Images](https://images.google.com)
As an alternative, the Intel® Distribution of OpenVINO™ toolkit includes several sample images and videos that you can use for running code samples and demo applications:
- [Sample images and video](https://storage.openvinotoolkit.org/data/test_data/)
- [Sample videos](https://github.com/intel-iot-devkit/sample-videos)
## Step 4: Run Inference on a Sample
### Run the Image Classification Code Sample
To run the **Image Classification** code sample with an input image using the IR model:
1. Set up the OpenVINO environment variables:
@sphinxdirective
.. tab:: Linux
.. code-block:: sh
source /setupvars.sh
.. tab:: Windows
.. code-block:: bat
\setupvars.bat
.. tab:: macOS
.. code-block:: sh
source /setupvars.sh
@endsphinxdirective
2. Go to the code samples release directory created when you built the samples earlier:
@sphinxdirective
.. tab:: Linux
.. code-block:: sh
cd ~/inference_engine_cpp_samples_build/intel64/Release
.. tab:: Windows
.. code-block:: bat
cd %USERPROFILE%\Documents\Intel\OpenVINO\inference_engine_samples_build\intel64\Release
.. tab:: macOS
.. code-block:: sh
cd ~/inference_engine_cpp_samples_build/intel64/Release
@endsphinxdirective
3. Run the code sample executable, specifying the input media file, the IR for your model, and a target device for performing inference:
@sphinxdirective
.. tab:: Linux
.. code-block:: sh
classification_sample_async -i -m -d
.. tab:: Windows
.. code-block:: bat
classification_sample_async.exe -i -m -d
.. tab:: macOS
.. code-block:: sh
classification_sample_async -i -m -d
@endsphinxdirective
@sphinxdirective
.. raw:: html
@endsphinxdirective
The following commands run the Image Classification Code Sample using the [dog.bmp](https://storage.openvinotoolkit.org/data/test_data/images/224x224/dog.bmp) file as an input image, the model in IR format from the `ir` directory, and on different hardware devices:
**CPU:**
@sphinxdirective
.. tab:: Linux
.. code-block:: sh
./classification_sample_async -i ~/Downloads/dog.bmp -m ~/ir/googlenet-v1.xml -d CPU
.. tab:: Windows
.. code-block:: bat
.\classification_sample_async.exe -i %USERPROFILE%\Downloads\dog.bmp -m %USERPROFILE%\Documents\ir\googlenet-v1.xml -d CPU
.. tab:: macOS
.. code-block:: sh
./classification_sample_async -i ~/Downloads/dog.bmp -m ~/ir/googlenet-v1.xml -d CPU
@endsphinxdirective
**GPU:**
> **NOTE**: Running inference on Intel® Processor Graphics (GPU) requires [additional hardware configuration steps](../install_guides/configurations-for-intel-gpu.md), as described earlier on this page. Running on GPU is not compatible with macOS*.
@sphinxdirective
.. tab:: Linux
.. code-block:: sh
./classification_sample_async -i ~/Downloads/dog.bmp -m ~/ir/googlenet-v1.xml -d GPU
.. tab:: Windows
.. code-block:: bat
.\classification_sample_async.exe -i %USERPROFILE%\Downloads\dog.bmp -m %USERPROFILE%\Documents\ir\googlenet-v1.xml -d GPU
@endsphinxdirective
**MYRIAD:**
> **NOTE**: Running inference on VPU devices (Intel® Movidius™ Neural Compute Stick or Intel® Neural Compute Stick 2) with the MYRIAD plugin requires [additional hardware configuration steps](../install_guides/configurations-for-ncs2.md), as described earlier on this page.
@sphinxdirective
.. tab:: Linux
.. code-block:: sh
./classification_sample_async -i ~/Downloads/dog.bmp -m ~/ir/googlenet-v1.xml -d MYRIAD
.. tab:: Windows
.. code-block:: bat
.\classification_sample_async.exe -i %USERPROFILE%\Downloads\dog.bmp -m %USERPROFILE%\Documents\ir\googlenet-v1.xml -d MYRIAD
.. tab:: macOS
.. code-block:: sh
./classification_sample_async -i ~/Downloads/dog.bmp -m ~/ir/googlenet-v1.xml -d MYRIAD
@endsphinxdirective
When the sample application is complete, you see the label and confidence for the top 10 categories on the display. Below is a sample output with inference results on CPU:
@sphinxdirective
.. code-block:: sh
Top 10 results:
Image dog.bmp
classid probability label
------- ----------- -----
156 0.6875963 Blenheim spaniel
215 0.0868125 Brittany spaniel
218 0.0784114 Welsh springer spaniel
212 0.0597296 English setter
217 0.0212105 English springer, English springer spaniel
219 0.0194193 cocker spaniel, English cocker spaniel, cocker
247 0.0086272 Saint Bernard, St Bernard
157 0.0058511 papillon
216 0.0057589 clumber, clumber spaniel
154 0.0052615 Pekinese, Pekingese, Peke
@endsphinxdirective
@sphinxdirective
.. raw:: html
@endsphinxdirective
## Other Demos/Samples
For more samples and demos, you can visit the samples and demos pages below. You can review samples and demos by complexity or by usage, run the relevant application, and adapt the code for your use.
[Samples](../OV_Runtime_UG/Samples_Overview.md)
[Demos](@ref omz_demos)