分类 产品 下的文章

使用 OpenVINO Model Zoo 下载和转换模型

OpenVINO 是由英特尔开发的一个开源工具包,用于优化和部署深度学习模型。它特别适合在英特尔硬件上运行推理,但也支持其他平台。OpenVINO 的一个关键功能是 Model Zoo,这是一个包含预训练深度学习模型的集合,涵盖了对象检测、分类、图像分割等多种任务。

笔者将详细介绍在 Linux 系统上使用 OpenVINO Model Zoo 的步骤。我们将涵盖安装必要工具、探索可用模型、下载并转换 AlexNet 模型的完整过程。这些步骤基于 OpenVINO 2023.3 版本,并使用命令行工具完成。

前提条件

在开始之前,请确保您的 Linux 系统满足以下要求:

  • Python 3 和 pip:需要 Python 3 以及 pip 来管理 Python 包。
  • OpenVINO 开发工具:这些工具是与 Model Zoo 交互的必需品。
  • 互联网连接:用于下载工具和模型。

以下是我们将使用的关键命令:

命令 描述
apt install python3-pip 安装 Python 3 的 pip 包管理器
pip install openvino-dev==2023.3 安装 OpenVINO 开发工具(2023.3 版本)
pip install protobuf==3.20.1 安装与 OpenVINO 兼容的 Protocol Buffers
pip list 列出已安装的 Python 包以验证安装
omz_downloader -h 显示 omz_downloader 工具的帮助信息
omz_downloader --print_all 列出 Model Zoo 中的所有可用模型
omz_downloader --name alexnet 下载 AlexNet 模型
omz_converter --name alexnet 将 AlexNet 模型转换为 OpenVINO IR 格式

1. 安装 pip 及 OpenVINO 开发包

如果您的系统尚未安装 Python 3 的 pip,可以通过以下命令安装:

apt install python3-pip

此命令确保可以安装和管理 Python 包。OpenVINO 开发包包含与 Model Zoo 交互所需的工具,例如 omz_downloaderomz_converter。安装 2023.3 版本的开发包:

pip install openvino-dev==2023.3

确保版本号与您使用的 OpenVINO 版本匹配,以避免兼容性问题。

2. 安装 Protocol Buffers

某些模型可能需要 Protocol Buffers(protobuf)来处理模型文件,例如转换格式等。安装与 OpenVINO 2023.3 兼容的版本:

pip install protobuf==3.20.1

此步骤确保您可以处理需要 protobuf 的模型。

3. 验证安装

为了确认所有工具都已正确安装,运行以下命令列出已安装的 Python 包:

pip list

在输出中查找以下包,如果这些包出现在列表中,说明安装成功:

包名 版本
openvino-dev 2023.3
protobuf 3.20.1

4. 检查 Model Zoo

OpenVINO Model Zoo 包含超过 200 个预训练模型,涵盖了对象检测、分类、图像分割、手写识别、文本到语音、姿势估计等多种任务。这些模型分为两类:

  • 英特尔模型:已转换为 OpenVINO 格式。
  • 公共模型:需要使用 OpenVINO 模型转换 API 进行转换。

要了解 omz_downloader 工具的用法,运行:

omz_downloader -h

usage: omz_downloader [-h] [--name PAT[,PAT...]] [--list FILE.LST] [--all]
                      [--print_all] [--precisions PREC[,PREC...]] [-o DIR]
                      [--cache_dir DIR] [--num_attempts N]
                      [--progress_format {text,json}] [-j N]

options:
  -h, --help            show this help message and exit
  --name PAT[,PAT...]   download only models whose names match at least one of
                        the specified patterns
  --list FILE.LST       download only models whose names match at least one of
                        the patterns in the specified file
  --all                 download all available models
  --print_all           print all available models
  --precisions PREC[,PREC...]
                        download only models with the specified precisions
                        (actual for DLDT networks); specify one or more of:
                        FP16-INT8,FP32-INT1,FP32-INT8,FP16,FP32,FP16-INT1
...
  -j N, --jobs N        how many downloads to perform concurrently

此命令将显示工具的选项和用法,例如指定模型名称、下载目录等。要查看 Model Zoo 中所有可用模型的列表,运行:

omz_downloader --print_all

此命令将输出一个详细的模型列表,您可以根据任务需求选择合适的模型:

Sphereface
aclnet
aclnet-int8
action-recognition-0001
...
yolo-v2-ava-sparse-35-0001
yolo-v2-ava-sparse-70-0001
yolof
yolox-tiny

5. 下载并转换 AlexNet 模型

在本例中,我们将下载 AlexNet 模型,这是一个用于图像分类的经典卷积神经网络。运行以下命令:

omz_downloader --name alexnet

此命令会将 AlexNet 模型下载到默认目录(通常是用户主目录下的 open_model_zoo_models)。您可以通过 --download_dir 选项指定自定义下载路径。下载的模型需要转换为 OpenVINO 的中间表示(IR)格式,以便在 OpenVINO 应用程序中进行高效推理。使用 omz_converter 工具完成此操作:

omz_converter --name alexnet

此命令会将 AlexNet 模型转换为 IR 格式,生成两个文件:一个 .xml 文件(描述模型结构)和一个 .bin 文件(包含模型权重)。转换后的模型可以直接用于 OpenVINO 支持的推理任务。

结论

通过以上步骤,笔者成功在 Linux 系统上安装了 OpenVINO 工具,探索了 Model Zoo,下载并转换了 AlexNet 模型。这些步骤为使用 OpenVINO Model Zoo 中的其他模型奠定了基础,使读者能够轻松集成预训练模型到深度学习应用中。