open_model_zoo
Pre-trained Deep Learning models and demos (high quality and extremely fast)
Top Related Projects
A collection of pre-trained, state-of-the-art models in the ONNX format
Datasets, Transforms and Models specific to Computer Vision
🤗 Transformers: State-of-the-art Machine Learning for Pytorch, TensorFlow, and JAX.
ONNX Runtime: cross-platform, high performance ML inferencing and training accelerator
Caffe: a fast open framework for deep learning.
Quick Overview
The Open Model Zoo is a repository maintained by OpenVINO™ toolkit, containing pre-trained deep learning models and demos for various computer vision tasks. It provides a collection of high-quality models optimized for Intel® architectures, along with tools for model conversion and optimization.
Pros
- Wide variety of pre-trained models for different computer vision tasks
- Optimized for Intel® architectures, ensuring efficient performance
- Regular updates with new models and improvements
- Includes demos and sample applications for easy integration
Cons
- Primarily focused on Intel® hardware, which may limit usefulness for other platforms
- Some models may require additional setup or dependencies
- Documentation can be overwhelming for beginners
- Limited support for non-vision AI tasks
Code Examples
- Download a model using the Model Downloader tool:
from openvino.model_zoo import model_utils
model_name = "face-detection-0200"
precision = "FP16"
model_utils.download_model(model_name, precision=precision)
- Load and run inference using a downloaded model:
from openvino.runtime import Core
ie = Core()
model = ie.read_model("face-detection-0200.xml")
compiled_model = ie.compile_model(model, "CPU")
input_tensor = np.random.rand(1, 3, 256, 256).astype(np.float32)
output = compiled_model([input_tensor])[0]
- Convert a TensorFlow model to OpenVINO IR format:
from openvino.tools import mo
tf_model_path = "path/to/tensorflow_model.pb"
output_dir = "converted_model"
mo.convert_model(
input_model=tf_model_path,
model_name="converted_model",
output_dir=output_dir
)
Getting Started
- Install OpenVINO™ toolkit and its dependencies:
pip install openvino-dev[tensorflow2,onnx,pytorch]
- Clone the Open Model Zoo repository:
git clone https://github.com/openvinotoolkit/open_model_zoo.git
cd open_model_zoo
- Install additional requirements:
pip install -r requirements.txt
- Download a model using the Model Downloader:
omz_downloader --name face-detection-0200
- Run a demo application:
python demos/object_detection_demo/python/object_detection_demo.py \
-i /path/to/image.jpg \
-m intel/face-detection-0200/FP16/face-detection-0200.xml \
-at ssd
Competitor Comparisons
A collection of pre-trained, state-of-the-art models in the ONNX format
Pros of ONNX Models
- Wider variety of models across different frameworks
- Standardized format for better interoperability
- Active community contributions and frequent updates
Cons of ONNX Models
- Less focus on optimization for specific hardware
- May require additional steps for deployment on certain platforms
- Limited pre-trained models for some specialized tasks
Code Comparison
Open Model Zoo example (model loading):
from openvino.runtime import Core
ie = Core()
net = ie.read_model("model.xml")
compiled_model = ie.compile_model(net, "CPU")
ONNX Models example (model loading):
import onnxruntime as ort
session = ort.InferenceSession("model.onnx")
input_name = session.get_inputs()[0].name
output = session.run(None, {input_name: input_data})
Both repositories provide valuable resources for AI developers, but they serve different purposes. Open Model Zoo focuses on optimized models for Intel hardware, while ONNX Models offers a broader range of models in a standardized format. The choice between them depends on specific project requirements and target deployment platforms.
Datasets, Transforms and Models specific to Computer Vision
Pros of vision
- Broader ecosystem support within PyTorch community
- More extensive collection of pre-trained models for various computer vision tasks
- Easier integration with other PyTorch-based projects and libraries
Cons of vision
- Less optimized for inference on specific hardware platforms
- Fewer tools for model optimization and deployment in production environments
- May require more manual work for performance tuning on edge devices
Code Comparison
vision:
import torchvision.models as models
resnet18 = models.resnet18(pretrained=True)
resnet18.eval()
open_model_zoo:
from openvino.inference_engine import IECore
ie = IECore()
net = ie.read_network(model="resnet18.xml", weights="resnet18.bin")
exec_net = ie.load_network(network=net, device_name="CPU")
The vision code is more straightforward for loading pre-trained models, while open_model_zoo requires additional steps for inference optimization but offers more control over deployment.
🤗 Transformers: State-of-the-art Machine Learning for Pytorch, TensorFlow, and JAX.
Pros of transformers
- Extensive collection of pre-trained models for various NLP tasks
- Active community and frequent updates
- Seamless integration with PyTorch and TensorFlow
Cons of transformers
- Larger model sizes and higher computational requirements
- Steeper learning curve for beginners
- Less focus on optimized inference for edge devices
Code Comparison
transformers:
from transformers import BertTokenizer, BertModel
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
model = BertModel.from_pretrained('bert-base-uncased')
inputs = tokenizer("Hello, world!", return_tensors="pt")
outputs = model(**inputs)
open_model_zoo:
from openvino.inference_engine import IECore
ie = IECore()
net = ie.read_network(model="bert-base-uncased.xml", weights="bert-base-uncased.bin")
exec_net = ie.load_network(network=net, device_name="CPU")
output = exec_net.infer(inputs={"input_ids": input_ids})
ONNX Runtime: cross-platform, high performance ML inferencing and training accelerator
Pros of ONNX Runtime
- Broader hardware support, including CPUs, GPUs, and specialized AI accelerators
- More extensive ecosystem and integration with popular ML frameworks
- Active development with frequent updates and improvements
Cons of ONNX Runtime
- Steeper learning curve for beginners compared to Open Model Zoo
- May require more manual configuration for optimal performance
- Less focus on pre-trained models and computer vision tasks
Code Comparison
ONNX Runtime:
import onnxruntime as ort
session = ort.InferenceSession("model.onnx")
input_name = session.get_inputs()[0].name
output = session.run(None, {input_name: input_data})
Open Model Zoo:
from openvino.inference_engine import IECore
ie = IECore()
net = ie.read_network(model="model.xml", weights="model.bin")
exec_net = ie.load_network(network=net, device_name="CPU")
output = exec_net.infer(inputs={input_layer: input_data})
Both repositories offer powerful tools for deploying machine learning models, but they cater to different use cases. ONNX Runtime provides a more versatile solution for various hardware platforms and ML frameworks, while Open Model Zoo focuses on optimized pre-trained models and computer vision tasks using OpenVINO.
Caffe: a fast open framework for deep learning.
Pros of Caffe
- Mature and well-established deep learning framework
- Extensive community support and resources
- Efficient for image classification and computer vision tasks
Cons of Caffe
- Limited support for newer deep learning architectures
- Less flexible for non-vision tasks compared to modern frameworks
- Development has slowed down in recent years
Code Comparison
Caffe (Python):
import caffe
net = caffe.Net('deploy.prototxt', 'model.caffemodel', caffe.TEST)
transformer = caffe.io.Transformer({'data': net.blobs['data'].data.shape})
transformed_image = transformer.preprocess('data', image)
output = net.forward_all(data=transformed_image)
Open Model Zoo (Python with OpenVINO):
from openvino.inference_engine import IECore
ie = IECore()
net = ie.read_network(model="model.xml", weights="model.bin")
exec_net = ie.load_network(network=net, device_name="CPU")
output = exec_net.infer(inputs={"input": preprocessed_image})
Open Model Zoo offers a more streamlined API for inference and better integration with Intel hardware, while Caffe provides a familiar interface for traditional deep learning workflows.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
OpenVINO⢠Toolkit - Open Model Zoo repository
[!NOTE] Open Model Zoo is in maintenance mode as a source of models. Check out model tutorials in Jupyter notebooks.
This repository includes optimized deep learning models and a set of demos to expedite development of high-performance deep learning inference applications. Use these free pre-trained models instead of training your own models to speed-up the development and production deployment process.
Intel is committed to the respect of human rights and avoiding complicity in human rights abuses, a policy reflected in the Intel Global Human Rights Principles. Accordingly, by accessing the Intel material on this platform you agree that you will not use the material in a product or application that causes or contributes to a violation of an internationally recognized human right.
Repository Components:
- Intel Pre-Trained Models
- Public Pre-Trained Models
- Model Downloader and other automation tools
- Demos that demonstrate models usage with OpenVINO⢠Toolkit
- Accuracy Checker tool for models accuracy validation
License
Open Model Zoo is licensed under Apache License Version 2.0.
Telemetry
OpenVINO⢠collects software performance and usage data for the purpose of improving OpenVINO⢠tools. This data is collected directly by OpenVINO⢠or through the use of Google Analytics 4. You can opt-out at any time by running the command:
opt_in_out --opt_out
Online Documentation
Other Usage Examples
How to Contribute
We welcome community contributions to the Open Model Zoo repository. If you have an idea how to improve the product, please share it with us doing the following steps:
- Make sure you can build the product and run all the demos with your patch.
- In case of a larger feature, provide a relevant demo.
- Submit a pull request at https://github.com/openvinotoolkit/open_model_zoo/pulls
You can find additional information about model contribution here.
We will review your contribution and, if any additional fixes or modifications are needed, may give you feedback to guide you. When accepted, your pull request will be merged into the GitHub* repositories.
Open Model Zoo is licensed under Apache License, Version 2.0. By contributing to the project, you agree to the license and copyright terms therein and release your contribution under these terms.
Support
Please report questions, issues and suggestions using:
- #open_model_zoo tag on StackOverflow*
- GitHub* Issues
- Forum
- Gitter
* Other names and brands may be claimed as the property of others.
Top Related Projects
A collection of pre-trained, state-of-the-art models in the ONNX format
Datasets, Transforms and Models specific to Computer Vision
🤗 Transformers: State-of-the-art Machine Learning for Pytorch, TensorFlow, and JAX.
ONNX Runtime: cross-platform, high performance ML inferencing and training accelerator
Caffe: a fast open framework for deep learning.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot