Awesome
OpenCV Zoo and Benchmark
A zoo for models tuned for OpenCV DNN with benchmarks on different platforms.
Guidelines:
- Install latest
opencv-python
:python3 -m pip install opencv-python # Or upgrade to latest version python3 -m pip install --upgrade opencv-python
- Clone this repo to download all models and demo scripts:
# Install git-lfs from https://git-lfs.github.com/ git clone https://github.com/opencv/opencv_zoo && cd opencv_zoo git lfs install git lfs pull
- To run benchmarks on your hardware settings, please refer to benchmark/README.
Models & Benchmark Results
Hardware Setup:
x86-64:
- Intel Core i7-12700K: 8 Performance-cores (3.60 GHz, turbo up to 4.90 GHz), 4 Efficient-cores (2.70 GHz, turbo up to 3.80 GHz), 20 threads.
ARM:
- Khadas VIM3: Amlogic A311D SoC with a 2.2GHz Quad core ARM Cortex-A73 + 1.8GHz dual core Cortex-A53 ARM CPU, and a 5 TOPS NPU. Benchmarks are done using per-tensor quantized models. Follow this guide to build OpenCV with TIM-VX backend enabled.
- Khadas VIM4: Amlogic A311D2 SoC with 2.2GHz Quad core ARM Cortex-A73 and 2.0GHz Quad core Cortex-A53 CPU, and 3.2 TOPS Build-in NPU.
- Khadas Edge 2: Rockchip RK3588S SoC with a CPU of 2.25 GHz Quad Core ARM Cortex-A76 + 1.8 GHz Quad Core Cortex-A55, and a 6 TOPS NPU.
- Atlas 200 DK: Ascend 310 NPU with 22 TOPS @ INT8. Follow this guide to build OpenCV with CANN backend enabled.
- Atlas 200I DK A2: SoC with 1.0GHz Quad-core CPU and Ascend 310B NPU with 8 TOPS @ INT8.
- NVIDIA Jetson Nano B01: a Quad-core ARM A57 @ 1.43 GHz CPU, and a 128-core NVIDIA Maxwell GPU.
- NVIDIA Jetson Nano Orin: a 6-core Arm® Cortex®-A78AE v8.2 64-bit CPU, and a 1024-core NVIDIA Ampere architecture GPU with 32 Tensor Cores (max freq 625MHz).
- Raspberry Pi 4B: Broadcom BCM2711 SoC with a Quad core Cortex-A72 (ARM v8) 64-bit @ 1.5 GHz.
- Horizon Sunrise X3: an SoC from Horizon Robotics with a quad-core ARM Cortex-A53 1.2 GHz CPU and a 5 TOPS BPU (a.k.a NPU).
- MAIX-III AXera-Pi: Axera AX620A SoC with a quad-core ARM Cortex-A7 CPU and a 3.6 TOPS @ int8 NPU.
- Toybrick RV1126: Rockchip RV1126 SoC with a quard-core ARM Cortex-A7 CPU and a 2.0 TOPs NPU.
RISC-V:
- StarFive VisionFive 2:
StarFive JH7110
SoC with a RISC-V quad-core CPU, which can turbo up to 1.5GHz, and an GPU of modelIMG BXE-4-32 MC1
from Imagination, which has a work freq up to 600MHz. - Allwinner Nezha D1: Allwinner D1 SoC with a 1.0 GHz single-core RISC-V Xuantie C906 CPU with RVV 0.7.1 support. YuNet is tested for now. Visit here for more details.
Important Notes:
- The data under each column of hardware setups on the above table represents the elapsed time of an inference (preprocess, forward and postprocess).
- The time data is the mean of 10 runs after some warmup runs. Different metrics may be applied to some specific models.
- Batch size is 1 for all benchmark results.
---
represents the model is not availble to run on the device.- View benchmark/config for more details on benchmarking different models.
Some Examples
Some examples are listed below. You can find more in the directory of each model!
Face Detection with YuNet
Face Recognition with SFace
Facial Expression Recognition with Progressive Teacher
Human Segmentation with PP-HumanSeg
Image Segmentation with EfficientSAM
License Plate Detection with LPD_YuNet
Object Detection with NanoDet & YOLOX
Object Tracking with VitTrack
Palm Detection with MP-PalmDet
Hand Pose Estimation with MP-HandPose
Person Detection with MP-PersonDet
Pose Estimation with MP-Pose
QR Code Detection and Parsing with WeChatQRCode
Chinese Text detection PPOCR-Det
English Text detection PPOCR-Det
Text Detection with CRNN
License
OpenCV Zoo is licensed under the Apache 2.0 license. Please refer to licenses of different models.