mirror of
https://github.com/clearlinux/clear-linux-documentation.git
synced 2026-10-03 23:48:28 +00:00
Deprecate OpenVINO tutorial; CL no longer supports computer-vision-openvino (#1177)
* Deprecate OpenVINO tutorial; CL no longer supports computer-vision-openvino. - Closes #1166 - openvino was also removed from containers-basic bundle - See also: https://community.clearlinux.org/t/openvino-in-clear-linux-os-moving-to-docker/4566 Signed-off-by: Michael Vincerra <michael.vincerra@intel.com> * Remove ref to computer-vision-openvino in developer-workstation. - Remove ref to openVINO in tutorials index. Signed-off-by: Michael Vincerra <michael.vincerra@intel.com>
This commit is contained in:
@@ -78,9 +78,6 @@ tools you need to start. Consider these profiles as a starting point.
|
||||
* - Work with deep learning and edge-optimized models.
|
||||
- `computer-vision-models <https://clearlinux.org/software/bundle/computer-vision-models/>`_
|
||||
|
||||
* - Basic OpenVINO™ toolkit.
|
||||
- `computer-vision-openvino <https://clearlinux.org/software/bundle/computer-vision-openvino/>`_
|
||||
|
||||
* - API helper for cloud access.
|
||||
- `cloud-api <https://clearlinux.org/software/bundle/cloud-api/>`_
|
||||
|
||||
|
||||
@@ -37,7 +37,6 @@ sorted by difficulty level! Learn about :ref:`how we evaluate tutorials <tutoria
|
||||
- :ref:`hpc`
|
||||
- :ref:`kubernetes-bp`
|
||||
- :ref:`nvidia-cuda`
|
||||
- :ref:`openvino`
|
||||
- :ref:`php`
|
||||
- :ref:`vmware-workstation`
|
||||
- :ref:`wp-install`
|
||||
|
||||
@@ -1,290 +0,0 @@
|
||||
.. _openvino:
|
||||
|
||||
OpenVINO™ for Deep Learning
|
||||
###########################
|
||||
|
||||
This tutorial shows how to install OpenVINO™ on |CL-ATTR|, run an
|
||||
OpenVINO sample application for image classification, and run a benchmark_app
|
||||
for estimating inference performance---using Squeezenet 1.1.
|
||||
|
||||
.. contents::
|
||||
:local:
|
||||
:depth: 1
|
||||
|
||||
Prerequisites
|
||||
*************
|
||||
|
||||
* |CL| installed on the host OS
|
||||
|
||||
Install OpenVINO
|
||||
****************
|
||||
|
||||
OpenVINO in |CL| offers pre-built OpenVINO sample applications with which
|
||||
developers can try inferencing immediately.
|
||||
|
||||
#. In |CL| OpenVINO is included in the :command:`computer-vision-basic`
|
||||
bundle. To install OpenVINO, enter:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
sudo swupd bundle-add computer-vision-basic
|
||||
|
||||
#. OpenVINO Inference Engine libraries are located in :file:`/usr/lib64/`
|
||||
To view one added package, enter:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
ls /usr/lib64/libinference_engine.so
|
||||
|
||||
If bundle installation is successful, the output shows:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
/usr/lib64/libinference_engine.so
|
||||
|
||||
#. To view the OpenVINO Model Optimizer, enter:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
ls /usr/share/openvino/model-optimizer
|
||||
|
||||
#. To view the OpenVINO sample application Executables, enter:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
ls /usr/bin/benchmark_app \
|
||||
/usr/bin/classification_sample_async \
|
||||
/usr/bin/hello_classification \
|
||||
/usr/bin/hello_nv12_input_classification \
|
||||
/usr/bin/hello_query_device \
|
||||
/usr/bin/hello_reshape_ssd \
|
||||
/usr/bin/object_detection_sample_ssd \
|
||||
/usr/bin/speech_sample \
|
||||
/usr/bin/style_transfer_sample \
|
||||
|
||||
.. note::
|
||||
|
||||
If bundle installation is successful, the above files should appear.
|
||||
|
||||
#. To view the pre-built OpenVINO sample application source code, enter:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
ls /usr/share/doc/inference_engine/samples
|
||||
|
||||
In the next section, you learn how to use an OpenVINO sample application.
|
||||
|
||||
Run OpenVINO sample application
|
||||
*******************************
|
||||
|
||||
After installing OpenVINO on |CL|, you need a model against which to test.
|
||||
In this example, we use the public squeezenet 1.1 model for image
|
||||
classification. Test results vary based on the system used.
|
||||
|
||||
Use model to test
|
||||
=================
|
||||
|
||||
#. If you don’t have any model, you can download an
|
||||
**intel_model** or a public model using OpenVINO Model Downloader.
|
||||
|
||||
- Check the list of public models you can download from
|
||||
:file:`/usr/share/open_model_zoo/models/public`
|
||||
|
||||
- Check the list of Intel® models you can download from
|
||||
:file:`/usr/share/open_model_zoo/intel_models`
|
||||
|
||||
#. View the location of OpenVINO Model Downloader:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
cd /usr/share/open_model_zoo/tools/downloader
|
||||
|
||||
#. In general, download models with the following command:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
python3 downloader.py --name <model_name> -o <downloading_path>
|
||||
|
||||
.. note::
|
||||
|
||||
* Where :file:`<model_name>` is the one you chose from previous step
|
||||
|
||||
* Where :file:`<downloading_path>` is your project directory
|
||||
|
||||
#. For this example, enter:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
python3 downloader.py --name squeezenet1.1 -o $HOME/.
|
||||
|
||||
#. After running this command, the model appears as downloading at your
|
||||
:file:`$HOME/classification/squeezenet/1.1/caffe` as follows:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
###############|| Downloading topologies ||###############
|
||||
|
||||
========= Downloading /$HOME/classification/squeezenet/1.1/caffe/squeezenet1.1.caffemodel
|
||||
... 100%, 4834 KB, 2839 KB/s, 1 seconds passed
|
||||
|
||||
...
|
||||
|
||||
Convert model to IR format
|
||||
==========================
|
||||
|
||||
#. As necessary, follow the instruction on :ref:`convert-dl-models`
|
||||
to convert deep learning models.
|
||||
|
||||
#. Navigate to the model:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
cd $HOME/classification/squeezenet/1.1/caffe
|
||||
|
||||
#. Enter the command:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
python3 /usr/share/openvino/model-optimizer/mo.py --input_model squeezenet1.1.caffemodel
|
||||
|
||||
|
||||
The output will show these files being generated:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
squeezenet1.1.xml
|
||||
|
||||
squeezenet1.1.bin
|
||||
|
||||
#. Finally, enter :command:`ls` to view the newly added model and files.
|
||||
|
||||
Run image classification
|
||||
========================
|
||||
|
||||
This sample application demonstrates how to run the Image Classification in asynchronous mode on supported devices. In this example, we use the image of a specific type of automobile to test the inference engine. Squeezenet 1.1 is designed to perform image classification and has been trained on the `ImageNet`_ database.
|
||||
|
||||
#. We provide an image of an automobile, shown in Figure 1. For ease of use,
|
||||
save this image into the :file:`classification` model directory.
|
||||
|
||||
.. figure:: ../_figures/openvino/automobile.png
|
||||
:height: 375 px
|
||||
:width: 500 px
|
||||
:scale: 100 %
|
||||
:alt: Photo by Goh Rhy Yan on Unsplash
|
||||
|
||||
Figure 1: Photo by Goh Rhy Yan on Unsplash
|
||||
|
||||
#. To execute the sample application enter the command:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
classification_sample_async -i <path_to_image> -m <path_to_model_ir> -d <device>
|
||||
|
||||
.. note::
|
||||
|
||||
* Where :file:`<path_to_image>` is the image that you selected
|
||||
|
||||
* Where :file:`<path_to_model_ir>` is the path to the IR model file
|
||||
|
||||
* Where :file:`<device>` is your choice of CPU, GPU, etc.
|
||||
|
||||
#. In this case, we replace the :file:`<path_to_image>` with the previously
|
||||
saved image for CPU inferencing.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
classification_sample_async -i ./automobile.png -m squeezenet1.1.xml
|
||||
|
||||
.. note::
|
||||
|
||||
If you do not specify the :file:`device`, the CPU is used by default.
|
||||
|
||||
#. The results show the highest probability is 67% for a sports car.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
classid probability
|
||||
------- -----------
|
||||
817 0.6717085
|
||||
511 0.1611409
|
||||
|
||||
+-----------------------+-----------------------------------+
|
||||
|:command:`classid` 817 | :command:`sports car, sport car` |
|
||||
+-----------------------+-----------------------------------+
|
||||
|:command:`classid` 511 |:command:`convertible` |
|
||||
+-----------------------+-----------------------------------+
|
||||
|
||||
.. note:
|
||||
|
||||
Label definitions are provided by `ImageNet`_.
|
||||
|
||||
#. Next, add :command:`-d GPU` to the end of the above command for GPU
|
||||
inferencing.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
classification_sample_async -i ./automobile.png -m squeezenet1.1.xml -d GPU
|
||||
|
||||
Run benchmark_app
|
||||
*****************
|
||||
|
||||
This sample application demonstrates how to use benchmark application to
|
||||
estimate deep learning inference **performance** on supported devices.
|
||||
We use the same image of an automobile, Figure 1, from the previous section.
|
||||
|
||||
#. To execute this sample application, enter:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
benchmark_app -i <path_to_image> -m <path_to_model> -d <device>
|
||||
|
||||
.. note::
|
||||
|
||||
* Where :file:`<path_to_image>` is the image that you selected
|
||||
|
||||
* Where :file:`<path_to_model_ir>` is the path to the IR model file
|
||||
|
||||
* Where :file:`<device>` is local your choice of CPU, GPU, etc.
|
||||
|
||||
#. Change directory:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
cd $HOME/classification/squeezenet/1.1/caffe
|
||||
|
||||
#. Enter the following command for CPU inferencing.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
benchmark_app -i ./automobile.png -m squeezenet1.1.xml
|
||||
|
||||
#. For the CPU, the results show a :guilabel:`Throughput` of 243.202 FPS.
|
||||
|
||||
.. code-block:: console
|
||||
:linenos:
|
||||
:emphasize-lines: 4
|
||||
|
||||
Count: 1464 iterations
|
||||
Duration: 60196.8 ms
|
||||
Latency: 164.104 ms
|
||||
Throughput: 243.202 FPS
|
||||
|
||||
#. Next, add :command:`-d GPU` to the end of the same command for GPU
|
||||
inferencing.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
benchmark_app -i ./automobile.png -m squeezenet1.1.xml -d GPU
|
||||
|
||||
#. For the GPU, the results show a :guilabel:`Throughput` of 372.677 FPS.
|
||||
|
||||
.. code-block:: console
|
||||
:linenos:
|
||||
:emphasize-lines: 4
|
||||
|
||||
Count: 2240 iterations
|
||||
Duration: 60105.7 ms
|
||||
Latency: 107.554 ms
|
||||
Throughput: 372.677 FPS
|
||||
|
||||
.. _ImageNet: http://image-net.org/
|
||||
Reference in New Issue
Block a user