# Intel AI Sales Kit with Object Detection Developer Models (YOLO v3/v4)
This page will go you through steps to build docker image with TGL optimized OpenVINO environemnt installed and use YOLO v3/v4 models to run object detection demo and get benchmark data.
###### tags: `Intel AI Sales Kit`
- Table of Content
[ToC]
## Step 0 : Install OS
The system i am using is TGL running Ubuntu 20.04.2 and account name is openvino.
### Download and Install Ubuntu 20.04.2.0 LTS
URL to donwload Ubuntu 20.04.2.0 LTS ISO image:
https://ubuntu.com/download/desktop/thank-you?version=20.04.2.0&architecture=amd64
### Install Ubuntu 20.04
https://phoenixnap.com/kb/install-ubuntu-20-04
## Step 1 : Create docker hub account
https://docs.docker.com/docker-hub/
Ref : https://ithelp.ithome.com.tw/articles/10191139
## Step 2: Prepare required materials
- l_openvino_toolkit_p_2021.3.394.tgz : https://software.intel.com/content/www/us/en/develop/tools/openvino-toolkit/download.html
- test video : https://github.com/incluit/OpenVino-For-SmartCity/raw/master/data/NewVideo2.mp4
- openvino_cgvh_proprietary_2021.3.dockerfile : See below
- smartcity_demo.sh : See below
- benchmark script : run_command.py, benchmark_models_cmds.txt : See below
- FP32/FP16/FP16-INT8 model : openvino_models.tgz
### Material list
```
-rwxr-xr-x 1 openvino openvino 2.1K 三 29 20:25 benchmark_models_cmds.txt
drwxr-xr-x 2 openvino openvino 4.0K 三 29 20:36 dockerfiles
-rw-rw-r-- 1 openvino openvino 14K 三 30 2021 get-docker.sh
-rwxr-xr-x 1 openvino openvino 526M 三 29 13:38 l_openvino_toolkit_p_2021.3.394.tgz
-rwxr-xr-x 1 openvino openvino 767M 三 29 13:38 openvino_models.tgz
-rwxr-xr-x 1 openvino openvino 786 三 29 13:43 run_command.py
-rwxr-xr-x 1 openvino openvino 405 三 29 20:25 smartcity_demo.sh
```
## Step 3 : Build docker image
### Install docker
```
sudo apt update
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt install curl
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
## Need to logout or reboot to run docker as non-root user
docker run hello-world
```
If you see error messages below, reboot your system.
```
openvino@openvino-TGL:~$ docker run hello-world
docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/create: dial unix /var/run/docker.sock: connect: permission denied.
See 'docker run --help'.
```
### Build docker image
```
docker build /home/openvino/intelaigent/ -f dockerfiles/openvino_cgvh_proprietary_2021.3.dockerfile --build-arg product_name="Intel® Distribution of OpenVINO™ toolkit 2021.3.394" --build-arg package_url=l_openvino_toolkit_p_2021.3.394.tgz --build-arg build_id=2021.3.394 --build-arg year=2021 --build-arg distribution=proprietary --build-arg INTEL_OPENCL=20.35.17767 --build-arg models_url=openvino_models.tgz -t openvino_2021.3:developer_models
```
```
openvino@openvino-EI52:~/intelaigent$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
openvino_2021.3 developer_models ab4ac93f3f9c 12 minutes ago 3.23GB
ubuntu 20.04 8e428cff54c8 3 days ago 72.9MB
openvino/ubuntu20_data_dev latest 2889bf2087e8 5 days ago 6.03GB
hello-world latest d1165f221234 3 weeks ago 13.3kB
openvino@openvino-EI52:~/intelaigent$ docker tag openvino_2021.3:developer_models chungyehwangai/openvino:2021.3_developer_models
openvino@openvino-EI52:~/intelaigent$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
chungyehwangai/openvino 2021.3_developer_models ab4ac93f3f9c 12 minutes ago 3.23GB
openvino_2021.3 developer_models ab4ac93f3f9c 12 minutes ago 3.23GB
ubuntu 20.04 8e428cff54c8 3 days ago 72.9MB
openvino/ubuntu20_data_dev latest 2889bf2087e8 5 days ago 6.03GB
hello-world latest d1165f221234 3 weeks ago 13.3kB
openvino@openvino-EI52:~/intelaigent$ docker push chungyehwangai/openvino:2021.3_developer_models
```
## Step 5 Run Smart City Demo
```
wget -O ~/Downloads/NewVideo2.mp4 https://github.com/incluit/OpenVino-For-SmartCity/raw/master/data/NewVideo2.mp4
docker pull chungyehwangai/openvino:2021.3_developer_models
docker run -it -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY -v ~/Downloads:/mnt --device /dev/dri:/dev/dri --group-add=$(stat -c "%g" /dev/dri/render*) --rm chungyehwangai/openvino:2021.3_developer_models /home/openvino/smartcity_demo.sh
# HDDL
docker run -it -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY -v ~/Downloads:/mnt --device /dev/dri:/dev/dri --device-cgroup-rule='c 189:* rmw' --device-cgroup-rule='c 180:* rmw' -v /dev:/dev --group-add=$(stat -c "%g" /dev/dri/render*) -v /var/tmp:/var/tmp --ipc=host --net=host -u root --rm chungyehwangai/openvino:2021.3_developer_models
```

With Counting,
```
gst-launch-1.0 filesrc location=/mnt/NewVideo2.mp4 ! decodebin ! gvadetect model=/opt/intel/openvino_models/public/yolo-v3-tf/FP16-INT8/yolo-v3-tf.xml model-proc=/opt/intel/openvino/data_processing/dl_streamer/samples/model_proc/yolo-v3-tf.json inference-interval=10 device=GPU ! queue ! gvatrack tracking-type="short-term" ! queue ! gvawatermark ! videoconvert ! fpsdisplaysink video-sink=xvimagesink sync=false
```

### Run Benchmark
```
docker run -it -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY -v ~/Downloads:/mnt --device /dev/dri:/dev/dri --group-add=$(stat -c "%g" /dev/dri/render*) --rm chungyehwangai/openvino:2021.3_developer_models
cd
python3 run_command.py
```
## References
### Developer Models (openvino_models.tgz)
openvino_models/public/yolo-v3-tf
openvino_models/public/yolo-v3-tf/FP32/yolo-v3-tf.xml
openvino_models/public/yolo-v3-tf/FP32/yolo-v3-tf.mapping
openvino_models/public/yolo-v3-tf/FP32/yolo-v3-tf.bin
openvino_models/public/yolo-v3-tf/FP16/yolo-v3-tf.xml
openvino_models/public/yolo-v3-tf/FP16/yolo-v3-tf.mapping
openvino_models/public/yolo-v3-tf/FP16/yolo-v3-tf.bin
openvino_models/public/yolo-v3-tf/FP16-INT8/yolo-v3-tf.xml
openvino_models/public/yolo-v3-tf/FP16-INT8/yolo-v3-tf.mapping
openvino_models/public/yolo-v3-tf/FP16-INT8/yolo-v3-tf.bin
openvino_models/public/yolo-v4-tf
openvino_models/public/yolo-v4-tf/FP32/yolo-v4-tf.xml
openvino_models/public/yolo-v4-tf/FP32/yolo-v4-tf.mapping
openvino_models/public/yolo-v4-tf/FP32/yolo-v4-tf.bin
openvino_models/public/yolo-v4-tf/FP16/yolo-v4-tf.xml
openvino_models/public/yolo-v4-tf/FP16/yolo-v4-tf.mapping
openvino_models/public/yolo-v4-tf/FP16/yolo-v4-tf.bin
openvino_models/public/yolo-v4-tf/FP16-INT8/yolo-v4-tf.xml
openvino_models/public/yolo-v4-tf/FP16-INT8/yolo-v4-tf.mapping
openvino_models/public/yolo-v4-tf/FP16-INT8/yolo-v4-tf.bin
### Dockerfile (openvino_cgvh_proprietary_2021.3.dockerfile)
```
# Copyright (C) 2019-2021 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
FROM ubuntu:20.04 AS base
# hadolint ignore=DL3002
USER root
WORKDIR /
SHELL ["/bin/bash", "-xo", "pipefail", "-c"]
ENV DEBIAN_FRONTEND=noninteractive
# hadolint ignore=DL3008
RUN apt-get update && \
apt-get install -y --no-install-recommends curl tzdata ca-certificates && \
rm -rf /var/lib/apt/lists/*
# get product from local archive
ARG package_url
ARG TEMP_DIR=/tmp/openvino_installer
WORKDIR ${TEMP_DIR}
COPY ${package_url} ${TEMP_DIR}
# install product by installation script
ENV INTEL_OPENVINO_DIR /opt/intel/openvino
# hadolint ignore=DL3008
RUN apt-get update && \
apt-get install -y --no-install-recommends cpio && \
rm -rf /var/lib/apt/lists/* && \
tar -xzf ${TEMP_DIR}/*.tgz --strip 1 && \
sed -i 's/decline/accept/g' silent.cfg && \
${TEMP_DIR}/install.sh -s silent.cfg && \
OV_BUILD="$(find /opt/intel -maxdepth 1 -type d -name "*openvino*" | grep -oP '(?<=_)\d+.\d+.\d+')" && \
ln --symbolic /opt/intel/openvino_"$OV_BUILD"/ /opt/intel/openvino && rm -rf ${TEMP_DIR} && \
rm -rf ${INTEL_OPENVINO_DIR}/deployment_tools/tools/workbench
ARG models_url
COPY ${models_url} ${TEMP_DIR}
RUN tar -C /opt/intel -xzf ${models_url}
# for VPU
ARG BUILD_DEPENDENCIES="autoconf \
automake \
build-essential \
libtool \
unzip"
# hadolint ignore=DL3008
RUN apt-get update && \
apt-get install -y --no-install-recommends ${BUILD_DEPENDENCIES} && \
rm -rf /var/lib/apt/lists/*
WORKDIR /opt
RUN curl -L https://github.com/libusb/libusb/archive/v1.0.22.zip --output v1.0.22.zip && \
unzip v1.0.22.zip && rm -rf v1.0.22.zip
WORKDIR /opt/libusb-1.0.22
RUN ./bootstrap.sh && \
./configure --disable-udev --enable-shared && \
make -j4
# -----------------
FROM ubuntu:20.04 AS ov_base
LABEL Description="This is the proprietary image for Intel(R) Distribution of OpenVINO(TM) toolkit on Ubuntu 20.04 LTS"
LABEL Vendor="Intel Corporation"
USER root
WORKDIR /
SHELL ["/bin/bash", "-xo", "pipefail", "-c"]
ENV DEBIAN_FRONTEND=noninteractive
# Creating user openvino and adding it to groups "video" and "users" to use GPU and VPU
RUN useradd -ms /bin/bash -G video,users openvino && \
chown openvino -R /home/openvino
RUN mkdir /opt/intel
ENV INTEL_OPENVINO_DIR /opt/intel/openvino
COPY --from=base /opt/intel /opt/intel
WORKDIR /thirdparty
ARG INSTALL_SOURCES="no"
ARG accuracy_checker="no"
ARG pot="no"
ARG DEPS="tzdata \
curl"
ARG LGPL_DEPS="g++ \
gcc \
libc6-dev"
ARG INSTALL_PACKAGES="-c=opencv_req -c=python -c=cl_compiler -c=opencv_opt -c=dlstreamer -c=pot"
# hadolint ignore=DL3008
RUN apt-get update && \
apt-get install -y --no-install-recommends dpkg-dev && \
dpkg --get-selections | grep -v deinstall | awk '{print $1}' > base_packages.txt && \
apt-get install -y --no-install-recommends ${DEPS} && \
rm -rf /var/lib/apt/lists/*
# hadolint ignore=DL3008
RUN apt-get update && \
apt-get install -y --no-install-recommends ${LGPL_DEPS} && \
${INTEL_OPENVINO_DIR}/install_dependencies/install_openvino_dependencies.sh -y ${INSTALL_PACKAGES} && \
if [ "$INSTALL_SOURCES" = "yes" ]; then \
sed -Ei 's/# deb-src /deb-src /' /etc/apt/sources.list && \
apt-get update && \
dpkg --get-selections | grep -v deinstall | awk '{print $1}' > all_packages.txt && \
grep -v -f base_packages.txt all_packages.txt | while read line; do \
package=`echo $line`; \
name=(${package//:/ }); \
grep -l GPL /usr/share/doc/${name[0]}/copyright; \
exit_status=$?; \
if [ $exit_status -eq 0 ]; then \
apt-get source -q --download-only $package; \
fi \
done && \
echo "Download source for `ls | wc -l` third-party packages: `du -sh`"; fi && \
rm -rf /var/lib/apt/lists/*
WORKDIR ${INTEL_OPENVINO_DIR}/licensing
RUN if [ "$INSTALL_SOURCES" = "no" ]; then \
echo "This image doesn't contain source for 3d party components under LGPL/GPL licenses. Please use tag <YYYY.U_src> to pull the image with downloaded sources." > DockerImage_readme.txt ; \
fi
# setup Python
ENV PYTHON_VER python3.8
RUN ${PYTHON_VER} -m pip install --upgrade pip
# proprietary package
WORKDIR /tmp
RUN ${PYTHON_VER} -m pip install --no-cache-dir cmake && \
${PYTHON_VER} -m pip install --no-cache-dir -r ${INTEL_OPENVINO_DIR}/python/${PYTHON_VER}/requirements.txt && \
${PYTHON_VER} -m pip install --no-cache-dir -r ${INTEL_OPENVINO_DIR}/deployment_tools/tools/benchmark_tool/requirements.txt; \
if [ -f ${INTEL_OPENVINO_DIR}/data_processing/dl_streamer/requirements.txt ]; then \
${PYTHON_VER} -m pip install --no-cache-dir -r ${INTEL_OPENVINO_DIR}/data_processing/dl_streamer/requirements.txt; \
fi
WORKDIR ${INTEL_OPENVINO_DIR}/deployment_tools/open_model_zoo/tools/accuracy_checker
RUN if [ "$accuracy_checker" = "yes" ]; then \
source ${INTEL_OPENVINO_DIR}/bin/setupvars.sh && \
${PYTHON_VER} -m pip install --no-cache-dir -r ${INTEL_OPENVINO_DIR}/deployment_tools/open_model_zoo/tools/accuracy_checker/requirements.in && \
${PYTHON_VER} ${INTEL_OPENVINO_DIR}/deployment_tools/open_model_zoo/tools/accuracy_checker/setup.py install && \
rm -rf ${INTEL_OPENVINO_DIR}/deployment_tools/open_model_zoo/tools/accuracy_checker/build; \
fi
# download source for PyPi LGPL packages
WORKDIR /thirdparty
RUN if [ "$INSTALL_SOURCES" = "yes" ]; then \
curl -L https://files.pythonhosted.org/packages/ee/2d/9cdc2b527e127b4c9db64b86647d567985940ac3698eeabc7ffaccb4ea61/chardet-4.0.0.tar.gz --output chardet-4.0.0.tar.gz; \
curl -L https://files.pythonhosted.org/packages/81/47/5f2cea0164e77dd40726d83b4c865c2a701f60b73cb6af7b539cd42aafb4/flake8-import-order-0.18.1.tar.gz --output lake8-import-order-0.18.1.tar.gz; \
fi
WORKDIR ${INTEL_OPENVINO_DIR}/deployment_tools/tools/post_training_optimization_toolkit
RUN if [ "$pot" = "yes" ]; then \
${PYTHON_VER} -m pip install --no-cache-dir -r ${INTEL_OPENVINO_DIR}/deployment_tools/tools/post_training_optimization_toolkit/requirements.txt && \
${PYTHON_VER} ${INTEL_OPENVINO_DIR}/deployment_tools/tools/post_training_optimization_toolkit/setup.py install --install-extras && \
rm -rf ${INTEL_OPENVINO_DIR}/deployment_tools/tools/post_training_optimization_toolkit/build; \
fi
RUN apt-get update && \
apt-get install -y --no-install-recommends python3-gi-cairo && \
rm -rf /var/lib/apt/lists/*
# for CPU
# for GPU
ARG INTEL_OPENCL
ARG TEMP_DIR=/tmp/opencl
WORKDIR ${INTEL_OPENVINO_DIR}/install_dependencies
RUN ./install_NEO_OCL_driver.sh --no_numa -y -d ${INTEL_OPENCL} && \
rm -rf /var/lib/apt/lists/*
# for VPU
ARG LGPL_DEPS=udev
WORKDIR /thirdparty
# hadolint ignore=DL3008
RUN apt-get update && \
dpkg --get-selections | grep -v deinstall | awk '{print $1}' > no_vpu_packages.txt && \
apt-get install -y --no-install-recommends ${LGPL_DEPS} && \
if [ "$INSTALL_SOURCES" = "yes" ]; then \
sed -Ei 's/# deb-src /deb-src /' /etc/apt/sources.list && \
apt-get update && \
dpkg --get-selections | grep -v deinstall | awk '{print $1}' > vpu_packages.txt && \
grep -v -f no_vpu_packages.txt vpu_packages.txt | while read line; do \
package=`echo $line`; \
name=(${package//:/ }); \
grep -l GPL /usr/share/doc/${name[0]}/copyright; \
exit_status=$?; \
if [ $exit_status -eq 0 ]; then \
apt-get source -q --download-only $package; \
fi \
done && \
echo "Download source for `ls | wc -l` third-party packages: `du -sh`"; fi && \
rm -rf /var/lib/apt/lists/*
COPY --from=base /opt/libusb-1.0.22 /opt/libusb-1.0.22
WORKDIR /opt/libusb-1.0.22/libusb
RUN /bin/mkdir -p '/usr/local/lib' && \
/bin/bash ../libtool --mode=install /usr/bin/install -c libusb-1.0.la '/usr/local/lib' && \
/bin/mkdir -p '/usr/local/include/libusb-1.0' && \
/usr/bin/install -c -m 644 libusb.h '/usr/local/include/libusb-1.0' && \
/bin/mkdir -p '/usr/local/lib/pkgconfig'
WORKDIR /opt/libusb-1.0.22/
RUN /usr/bin/install -c -m 644 libusb-1.0.pc '/usr/local/lib/pkgconfig' && \
cp ${INTEL_OPENVINO_DIR}/deployment_tools/inference_engine/external/97-myriad-usbboot.rules /etc/udev/rules.d/ && \
ldconfig
# for HDDL
WORKDIR /tmp
# hadolint ignore=DL3008
RUN apt-get update && \
apt-get install -y --no-install-recommends \
libboost-filesystem-dev \
libboost-thread-dev \
libboost-program-options1.71.0 \
libjson-c4 \
libssl1.1 \
libudev1 \
libelf-dev \
libxxf86vm-dev && \
rm -rf /var/lib/apt/lists/* && rm -rf /tmp/*
# Post-installation cleanup and setting up OpenVINO environment variables
RUN if [ -f "${INTEL_OPENVINO_DIR}"/bin/setupvars.sh ]; then \
printf "\nexport TBB_DIR=\${INTEL_OPENVINO_DIR}/deployment_tools/inference_engine/external/tbb/cmake\n" >> ${INTEL_OPENVINO_DIR}/bin/setupvars.sh; \
printf "\nsource \${INTEL_OPENVINO_DIR}/bin/setupvars.sh\n" >> /home/openvino/.bashrc; \
printf "\nsource \${INTEL_OPENVINO_DIR}/bin/setupvars.sh\n" >> /root/.bashrc; \
fi; \
if [ -d /opt/intel/mediasdk ]; then \
printf "\nexport LIBVA_DRIVER_NAME=iHD \nexport LIBVA_DRIVERS_PATH=/opt/intel/mediasdk/lib64/ \nexport GST_VAAPI_ALL_DRIVERS=1 \nexport LIBRARY_PATH=/opt/intel/mediasdk/lib64/:\$LIBRARY_PATH \nexport LD_LIBRARY_PATH=/opt/intel/mediasdk/lib64/:\$LD_LIBRARY_PATH \n" >> /home/openvino/.bashrc; \
printf "\nexport LIBVA_DRIVER_NAME=iHD \nexport LIBVA_DRIVERS_PATH=/opt/intel/mediasdk/lib64/ \nexport GST_VAAPI_ALL_DRIVERS=1 \nexport LIBRARY_PATH=/opt/intel/mediasdk/lib64/:\$LIBRARY_PATH \nexport LD_LIBRARY_PATH=/opt/intel/mediasdk/lib64/:\$LD_LIBRARY_PATH \n" >> /root/.bashrc; \
fi;
RUN apt-get update && \
apt-get autoremove -y dpkg-dev && \
rm -rf /var/lib/apt/lists/*
USER openvino
WORKDIR ${INTEL_OPENVINO_DIR}
COPY smartcity_demo.sh /home/openvino
COPY run_command.py /home/openvino
COPY benchmark_models_cmds.txt /home/openvino
CMD ["/bin/bash"]
# Setup custom layers below
```
### smartcity_demo.sh
```
source /opt/intel/openvino/bin/setupvars.sh
cd
gst-launch-1.0 filesrc location=/mnt/NewVideo2.mp4 ! decodebin ! gvadetect model=/opt/intel/openvino_models/public/yolo-v3-tf/FP16-INT8/yolo-v3-tf.xml model-proc=/opt/intel/openvino/data_processing/dl_streamer/samples/model_proc/yolo-v3-tf.json device=GPU ! queue ! gvawatermark ! videoconvert ! fpsdisplaysink video-sink=xvimagesink sync=false
```
### run_command.py
```
import subprocess
import re
#cmd = 'python3 /opt/intel/openvino/deployment_tools/tools/benchmark_tool/benchmark_app.py -m /mnt/openvino_models/public/yolo-v3-tf/FP16-INT8/yolo-v3-tf.xml -d CPU -api async -t 1'
fp = open('benchmark_models_cmds.txt', "r")
for cmd in iter(fp):
print("cmd:{}".format(cmd))
stdoutdata = subprocess.getoutput(cmd)
for item in stdoutdata.split("\n"):
if "Latency" in item:
print(item)
elif "Throughput" in item:
print(item)
elif "Read network" in item:
print(item)
elif "Load network" in item:
print(item)
elif "First inference" in item:
print(item)
elif "DNN" in item:
print(item)
elif "Measuring" in item:
print(item)
fp.close()
```
### benchmark_models_cmds.txt
```
python3 /opt/intel/openvino/deployment_tools/tools/benchmark_tool/benchmark_app.py -m /opt/intel/openvino_models/public/yolo-v3-tf/FP32/yolo-v3-tf.xml -d CPU -api async -t 60
python3 /opt/intel/openvino/deployment_tools/tools/benchmark_tool/benchmark_app.py -m /opt/intel/openvino_models/public/yolo-v3-tf/FP16/yolo-v3-tf.xml -d CPU -api async -t 60
python3 /opt/intel/openvino/deployment_tools/tools/benchmark_tool/benchmark_app.py -m /opt/intel/openvino_models/public/yolo-v3-tf/FP16-INT8/yolo-v3-tf.xml -d CPU -api async -t 60
python3 /opt/intel/openvino/deployment_tools/tools/benchmark_tool/benchmark_app.py -m /opt/intel/openvino_models/public/yolo-v3-tf/FP32/yolo-v3-tf.xml -d GPU -api async -t 60
python3 /opt/intel/openvino/deployment_tools/tools/benchmark_tool/benchmark_app.py -m /opt/intel/openvino_models/public/yolo-v3-tf/FP16/yolo-v3-tf.xml -d GPU -api async -t 60
python3 /opt/intel/openvino/deployment_tools/tools/benchmark_tool/benchmark_app.py -m /opt/intel/openvino_models/public/yolo-v3-tf/FP16-INT8/yolo-v3-tf.xml -d GPU -api async -t 60
python3 /opt/intel/openvino/deployment_tools/tools/benchmark_tool/benchmark_app.py -m /opt/intel/openvino_models/public/yolo-v4-tf/FP32/yolo-v4-tf.xml -d CPU -api async -t 60
python3 /opt/intel/openvino/deployment_tools/tools/benchmark_tool/benchmark_app.py -m /opt/intel/openvino_models/public/yolo-v4-tf/FP16/yolo-v4-tf.xml -d CPU -api async -t 60
python3 /opt/intel/openvino/deployment_tools/tools/benchmark_tool/benchmark_app.py -m /opt/intel/openvino_models/public/yolo-v4-tf/FP16-INT8/yolo-v4-tf.xml -d CPU -api async -t 60
python3 /opt/intel/openvino/deployment_tools/tools/benchmark_tool/benchmark_app.py -m /opt/intel/openvino_models/public/yolo-v4-tf/FP32/yolo-v4-tf.xml -d GPU -api async -t 60
python3 /opt/intel/openvino/deployment_tools/tools/benchmark_tool/benchmark_app.py -m /opt/intel/openvino_models/public/yolo-v4-tf/FP16/yolo-v4-tf.xml -d GPU -api async -t 60
python3 /opt/intel/openvino/deployment_tools/tools/benchmark_tool/benchmark_app.py -m /opt/intel/openvino_models/public/yolo-v4-tf/FP16-INT8/yolo-v4-tf.xml -d GPU -api async -t 60
```
### Use POT to Quantize yolo-v3-tf Public Model
https://hackmd.io/lKCVqs5xQ3WSFvl33wLnjQ
### Use POT to Quantize yolo-v4-tf Public Model
https://hackmd.io/mQHIp8vgTViF9Ao4mnI5rw
### OpenVINO Object Detection Public Model Data
https://github.com/openvinotoolkit/open_model_zoo/blob/master/models/public/index.md#object-detection
### YOLO v3 and YOLO v4 Benchmark data
https://docs.openvinotoolkit.org/latest/openvino_docs_performance_benchmarks_openvino.html#yolo_v3_tf
https://docs.openvinotoolkit.org/latest/openvino_docs_performance_benchmarks_openvino.html#yolo_v4_tf