openvinotoolkit/open_model_zoo · 上手攻略

  • 仓库:openvinotoolkit/open_model_zoo
  • 链接:https://github.com/openvinotoolkit/open_model_zoo
  • 分类:计算机视觉 · 预训练模型库
  • 作者:Tom
  • 更新:2026-07-29

是什么

Open Model Zoo 是 Intel 维护的预训练深度学习模型仓库,为 OpenVINO™ Toolkit 提供大量已优化模型和演示程序。包含 200+ 模型,覆盖目标检测、图像分类、图像分割、姿态估计、语音识别、文本转语音等主流 CV 任务,并配有可直接运行的 C++ / Python Demo 示例。

模型分为两大类: - Intel 预训练模型models/intel/):Intel 官方训练,已转为 OpenVINO IR 格式,可直接下载使用 - 公开预训练模型models/public/):来自社区的 PyTorch/TensorFlow/ONNX 模型,需用 Model Converter 转 IR

⚠️ 注意:Open Model Zoo 已进入维护模式(Maintenance Mode),新模型来源建议转向 openvino_notebooks 中的模型教程。

解决什么问题

从头训练 CV 模型成本极高,且大多数开发者只需要"快速验证想法"或"直接部署"。Open Model Zoo 提供:

  • 开箱即用的预训练模型:无需自己训练,直接下载并用 OpenVINO 推理
  • 标准化模型下载工具omz_downloader 一键下载,自动按目录结构组织
  • 配套 Demo 程序:每个模型都有完整可运行的 C++/Python 示例,降低原型验证门槛
  • Accuracy Checker:评测工具,验证模型在自有数据集上的精度

快速安装

安装 OpenVINO Development Tools

pip install openvino-dev

这会一并安装 omz_downloader(模型下载器)、omz_converter(模型格式转换)、omz_info_dumper(模型信息导出)等工具。

安装模型下载器(独立使用)

# 从源码安装(获取最新版本)
git clone https://github.com/openvinotoolkit/open_model_zoo.git
cd open_model_zoo/tools/model_tools
pip install .

下载第一个模型

以目标检测模型 person-vehicle-bike-detection-0200 为例:

omz_downloader \
  --name person-vehicle-bike-detection-0200 \
  --output_dir ./models \
  --precision FP16

下载完成后目录结构:

models/
└── intel/
    └── person-vehicle-bike-detection-0200/
        └── FP16/
            ├── person-vehicle-bike-detection-0200.xml   # 网络结构
            └── person-vehicle-bike-detection-0200.bin   # 权重文件

核心用法

Python 推理示例

from openvino.runtime import Core
import cv2

ie = Core()

# 加载模型(IR 格式)
model = ie.read_model("models/intel/person-vehicle-bike-detection-0200/FP16/person-vehicle-bike-detection-0200.xml")
compiled_model = ie.compile_model(model, device_name="CPU")

# 读取图像
image = cv2.imread("input.jpg")
h, w = image.shape[:2]

# 预处理(OpenVINO 要求 NCHW 格式,FP32)
input_tensor = cv2.resize(image, (512, 512))
input_tensor = input_tensor.transpose(2, 0, 1)  # HWC -> CHW
input_tensor = input_tensor.reshape(1, 3, 512, 512).astype("float32")

# 推理
output = compiled_model.infer_new_request({0: input_tensor})

# 解析结果(后处理根据具体模型而定)
detections = output[compiled_model.output(0)]
print(f"检测到 {len(detections)} 个目标")

C++ 推理示例

#include <openvino/openvino.hpp>
#include <opencv2/opencv2.hpp>

int main() {
    ov::Core core;
    auto model = core.read_model("models/intel/person-vehicle-bike-detection-0200/FP16/person-vehicle-bike-detection-0200.xml");
    auto compiled_model = core.compile_model(model, "CPU");

    cv::Mat image = cv::imread("input.jpg");
    // ... 预处理 ...

    ov::InferRequest infer_request = compiled_model.create_infer_request();
    // 设置输入,运行推理,解析输出
}

模型信息查询

# 列出所有可用模型
omz_info_dumper --print_all

# 搜索特定任务模型
omz_info_dumper --print_all | grep -i "detection"

# 导出特定模型信息为 JSON
omz_info_dumper --name person-vehicle-bike-detection-0200

模型转换(公开模型 → IR)

公开模型(非 Intel 预训练)需要先下载再转换:

# 下载公开模型(以 YOLOv8 为例,取决于该模型是否在 OMZ 清单中)
omz_downloader --name yolov8n-pytorch --output_dir ./public_models

# 转换为 OpenVINO IR 格式
omz_converter --name yolov8n-pytorch --download_dir ./public_models --output_dir ./ir_models

运行 Demo 程序

以目标检测 Demo 为例:

# 下载模型(同上)

# 运行 Python Demo
python /opt/openvino_model_zoo/demos/security_barrier_camera_demo/ \
  --model models/intel/person-vehicle-bike-detection-0200/FP16/person-vehicle-bike-detection-0200.xml \
  --input_video <your_video.mp4> \
  --device CPU

Demo 目录结构:demos/<demo_name>/ 下有 Python 和 C++ 两套实现。

典型适用场景

  • 快速原型验证:选一个预训练模型跑通 pipeline,不用自己训练
  • Intel 硬件部署优化:在 Intel CPU / GPU / VPU / FPGA 上做 CV 推理,OpenVINO 对这些硬件有专项优化
  • 边缘视觉应用:配合 Intel NCS2(Myriad X)、OpenVINO 工具链做边缘部署
  • Benchmark 对比:用 Accuracy Checker 在自有数据集上对比不同模型的精度和速度
  • 产品化 Demo:用现成的 Demo 程序快速搭建产品演示版本

坑与注意

  1. 已处于维护模式:新模型不再追加,主要价值是已有的 200+ 模型的稳定版本;新项目建议评估是否要迁移到 openvino_notebooks
  2. 模型下载依赖网络:部分模型文件较大(如 OCR 模型可达 1GB+),内网环境可能需要配置代理或离线下载
  3. IR 格式版本兼容:OpenVINO 版本需要与模型下载器版本匹配;老版本 IR 可能不兼容新版 OpenVINO Runtime;建议使用匹配的 LTS 版本
  4. 部分模型需注册/许可:极少数 Intel 模型含额外许可条款,商用前需阅读 LICENSE
  5. 预处理必须严格对齐:OpenVINO 推理前预处理(resize、normalize、RGB/BGR 顺序)必须与模型训练时一致,否则精度会严重下降
  6. FP16 需确认硬件支持:INT8/FP16 量化加速需对应硬件支持(如 Intel Gen9+ GPU);在旧 CPU 上会 fallback 到 FP32,精度不变但速度不提升
  7. omz_converter 依赖框架omz_converter 转换 PyTorch 模型时需 PyTorch 环境,转换 TF 模型需 TensorFlow;安装 openvino-dev 时需带上相应框架支持

与同类对比

仓库 规模 硬件优化 配套 Demo 维护状态
Open Model Zoo 200+ Intel 全家桶最优 C++/Python 丰富 维护模式
TensorFlow Model Garden 100+ TPU/TF 优化 活跃
PyTorch Hub / TIMM 1000+ 通用 活跃
ONNX Model Zoo 100+ 跨框架 低活跃
HuggingFace Hub 100,000+ 通用 活跃

Open Model Zoo 的差异化在于 Intel 硬件原生优化 + 开箱即用的生产级 Demo,如果你用 Intel 平台做 CV 产品,这是最省力的路径;如果需要更多模型选择或非 Intel 硬件,应考虑 HuggingFace/TIMM。

一句话推荐结论

在 Intel 硬件上快速搭建计算机视觉产品原型的最佳起点——200+ 预训练模型配合完整 Demo 和 OpenVINO 优化,开箱即用;但新项目应评估迁移到 openvino_notebooks 以获得更活跃的模型更新支持。