使用 OpenVINO Model Zoo 下载和转换模型
使用 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_downloader
和 omz_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 中的其他模型奠定了基础,使读者能够轻松集成预训练模型到深度学习应用中。