Skip to content

Commit

Permalink
add the first summary report (#227)
Browse files Browse the repository at this point in the history
* add first report

* update table

* add report cn version
  • Loading branch information
fengyuentau committed Dec 28, 2023
1 parent ca85f8e commit 80f7c6a
Show file tree
Hide file tree
Showing 6 changed files with 803 additions and 688 deletions.
1,360 changes: 680 additions & 680 deletions benchmark/color_table.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
16 changes: 8 additions & 8 deletions benchmark/table_config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,14 @@ Devices:
display_info: "Intel\n12700K\nCPU"
platform: "CPU"

- name: "Atlas 200I DK A2"
display_info: "Atlas 200I DK A2\nAscend 310B\nCPU"
platform: "CPU"

- name: "Atlas 200 DK"
display_info: "Atlas 200 DK\nAscend 310\nCPU"
platform: "CPU"

- name: "Khadas VIM3"
display_info: "Khadas VIM3\nA311D\nCPU"
platform: "CPU"
Expand All @@ -182,14 +190,6 @@ Devices:
display_info: "Khadas Edge2\nRK3588S\nCPU"
platform: "CPU"

- name: "Atlas 200 DK"
display_info: "Atlas 200 DK\nAscend 310\nCPU"
platform: "CPU"

- name: "Atlas 200I DK A2"
display_info: "Atlas 200I DK A2\nAscend 310B\nCPU"
platform: "CPU"

- name: "Jetson Nano B01"
display_info: "Jetson Nano\nB01\nCPU"
platform: "CPU"
Expand Down
3 changes: 3 additions & 0 deletions reports/2023-4.9.0/assets/benchmark_table_4.9.0.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
53 changes: 53 additions & 0 deletions reports/2023-4.9.0/opencv_zoo_report-cn-2023-4.9.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# OpenCV Model Zoo报告 - 模型、板卡和性能基准结果分析

[![benchmark_table](assets/benchmark_table_4.9.0.png)](benchmark_table)

[OpenCV Model Zoo](https://github.com/opencv/opencv_zoo)项目于2021年9月启动。从那时起,我们已收集了43个模型权重,涵盖19个任务,并添加了13种硬件设置,涵盖不同的CPU架构(x86-64、ARM和RISC-V)以及不同的计算单元(CPU、GPU和NPU)。所有这些模型和硬件都经过我们的全面测试,并保证与OpenCV的最新版本(目前是4.9.0)兼容,如我们的基准表所示。

## Models

截至此版本发布,我们在opencv_zoo中共有43个模型权重,涵盖了总共19个任务。这些模型是考虑到许可证的,这意味着基本上您可以为任何目的使用opencv_zoo中的所有模型,甚至用于商业用途。它们主要来自以下4个来源:

- OpenCV中国团队。YuNet人脸检测模型由我们团队的一名成员开发和维护。
- OpenCV Area Chair。这是由OpenCV基金会启动的一个项目,详情可以在[这里](https://opencv.org/opencv-area-chairs/)找到。人脸识别的SFace模型和面部表情识别的FER模型是由Area Chair邓教授贡献的。
- 与OpenCV的合作。人体分割模型来自百度PaddlePaddle,修改后的YuNet用于车牌检测来自[watrix.ai](watrix.ai)
- OpenCV社区。从2022年开始,我们在Google Summer of Code(GSoC)计划中有关于模型贡献的项目想法。GSoC学生已成功贡献了6个模型,涵盖了目标检测、目标跟踪和光流估计等任务。

我们欢迎您的贡献!

此外,我们为每个模型提供了在最新版本的OpenCV中可立即使用的Python和C++演示。我们还提供了[可视化样例](https://github.com/opencv/opencv_zoo?tab=readme-ov-file#some-examples),以便开发者们更好地了解任务和输出的类型。

## Boards

opencv_zoo中有13种硬件设置,其中之一是搭载Intel i7-12700K的 PC,其他都是单板计算机(SBC)。它们按CPU架构分类如下:

<!-- TODO: add price -->

x86-64:

- Intel Core i7-12700K:8 P核(3.60GHz,4.90GHz turbo),4 E核(2.70GHz,3.80GHz turbo),20线程。

ARM:

| 板卡 | SoC 型号 | CPU 型号 | GPU 型号 | NPU 性能(Int8) |
| ----- | --- | --- | --- | --- |
| Khadas VIM3 | Amlogic A311D | 2.20GHz 四核 Cortex-A73 + 1.80GHz 双核 Cortex-A53 | ARM G52 | 5 TOPS |
| Khadas VIM4 | Amlogic A311D2 | 2.2GHz 四核 ARM Cortex-A73 + 2.0GHz 四核 Cortex-A53 | Mali G52MP8(8EE) 800Mhz | 3.2 TOPS |
| Khadas Edge 2 | Rockchip RK3588S | 2.25GHz 四核 Cortex-A76 + 1.80GHz 四核 Cortex-A55 | 1GHz ARM Mali-G610 | 6 TOPS |
| Raspberry Pi 4B | Broadcom BCM2711 | 1.5GHz 四核 Cortex-A72 | *未知* | ** |
| Horizon Sunrise X3 PI | Sunrise X3 | 1.2GHz 四核 Cortex-A53 | *未知* | 5 TOPS,双核伯努利架构|
| MAIX-III AXera-Pi | AXera AX620A | 四核 Cortex-A7 | *未知* | 3.6 TOPS |
| Toybrick RV1126 | Rockchip RV1126 | 四核 Cortex-A7 | *未知* | 2.0 TOPS |
| NVIDIA Jetson Nano B01 | *未知* | 1.43GHz 四核 Cortex-A57 | 128 核 NVIDIA Maxwell | ** |
| NVIDIA Jetson Nano Orin | *未知* | 6 核 Cortex®-A78AE | 1024 核 NVIDIA Ampere | ** |
| Atlas 200 DK | *未知* | *未知* | *未知* | 22 TOPS,Ascend 310 |
| Atlas 200I DK A2 | *未知* | 1.0GHz 四核 | *未知* | 8 TOPS,Ascend 310B |

RISC-V:

| 板卡 | SoC 型号 | CPU 型号 | GPU 型号 |
| ----- | --------- | --------- | --------- |
| StarFive VisionFive 2 | StarFive JH7110 | 1.5GHz 四核 RISC-V 64 位 | 600MHz IMG BXE-4-32 MC1 |
| Allwinner Nezha D1 | Allwinner D1 | 1.0GHz 单核 RISC-V 64 位,RVV-0.7.1 | *未知* |

我们的目标是在边缘设备上进行高效计算!在过去的几年中,我们(OpenCV)中国团队,已经在dnn模块针对ARM架构优化的方面付出了大量努力,特别关注卷积神经网络的卷积内核优化和Vision Transformers的GEMM内核优化。更值得一提的是,我们为dnn模块引入了NPU支持,支持Khadas VIM3、Atlas 200 DK 和Atlas 200I DK A2上的 NPU。在 NPU 上运行模型可以帮助将计算负载从CPU分配到NPU,甚至可以达到更快的推理速度(例如,在 Atlas 200 DK 上 Ascend 310 的测试结果)。
56 changes: 56 additions & 0 deletions reports/2023-4.9.0/opencv_zoo_report-en-2023-4.9.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# OpenCV Model Zoo Report - Models, Boards and Benchmark Result Analysis

<!-- ![benchmark_table_4.9.0](assets/benchmark_table.png) -->
[![benchmark_table](assets/benchmark_table_4.9.0.png)](benchmark_table)

[OpenCV Model Zoo](https://github.com/opencv/opencv_zoo) was started back in September, 2021. Since then, we have collected 43 model weights covering 19 tasks and added 13 hardware setups covering different CPU architectures (x86-64, ARM and RISC-V) and different computing units (CPU, GPU and NPU). All these models and hardware are fully tested by us and guaranteed to work with latest release of OpenCV (currently 4.9.0) as our benchmark table shown.

## Models

As of this release, we have 43 model weights covering 19 tasks in total in the zoo. These models are collected with licenses in mind, meaning you can bascially use all the models in the zoo for whatever purposes you want, even for commercial purpose. They are collected from mainly 4 sources:

- OpenCV China team. The YuNet model for face detection is developed and maintained by one of our team members.
- OpenCV Area Chair. This is a program started by OpenCV Foundation, details can be found [here](https://opencv.org/opencv-area-chairs/). The SFace model for face recognition and FER model for facial expression recognition are contributed from one of the Area Chairs Prof. Deng.
- Cooperation with OpenCV. The HumanSeg model for human segmentation is from Baidu PaddlePaddle, and the modified YuNet for license plate detection is from [watrix.ai](watrix.ai).
- Community. Started from 2022, we have project ideas for model contribution in the Google Summer of Code (GSoC) program. GSoC students have successfully contributed 6 models covering tasks such as object detection, object tracking and optical flow estimation.

We welcome your contribution!

Besides, demos in Python and C++, which work out-of-the-box with latest OpenCV, are also provided for each model. We also provide [visual examples](https://github.com/opencv/opencv_zoo?tab=readme-ov-file#some-examples) so that people can better understand what the task is and what kind of the output is.

## Boards

There are 13 hardware setups in the zoo, one of them is a PC with Intel i7-12700K, and the others are single board computers (SBC). They are categorized by CPU architecture as follows:

<!-- TODO: add price -->

x86-64:

- Intel Core i7-12700K: 8 P-core (3.60GHz, 4.90GHz turbo), 4 E-core (2.70GHz, 3.80GHz turbo), 20 threads.


ARM:

| Board | SoC model | CPU model | GPU model | NPU Performance (Int8) |
| ----- | --- | --- | --- | --- |
| Khadas VIM3 | Amlogic A311D | 2.20GHz Quad-core Cortex-A73 + 1.80GHz Dual-core Cortex-A53 | ARM G52 | 5 TOPS |
| Khadas VIM4 | Amlogic A311D2 | 2.2GHz Quad-core ARM Cortex-A73 + 2.0GHz Quad-core Cortex-A53 | Mali G52MP8(8EE) 800Mhz | 3.2 TOPS |
| Khadas Edge 2 | Rockchip RK3588S | 2.25GHz Quad-core Cortex-A76 + 1.80GHz Quad-core Cortex-A55 | 1GHz ARM Mali-G610 | 6 TOPS |
| Raspberry Pi 4B | Broadcom BCM2711 | 1.5GHz Quad-core Cortex-A72 | *Unknown* | *No* |
| Horizon Sunrise X3 PI | Sunrise X3 | 1.2GHz Quad-core Cortex-A53 | *Unkown* | 5 TOPS, Dual-core Bernoulli Arch|
| MAIX-III AXera-Pi | AXera AX620A | Quad-core Cortex-A7 | *Unknown* | 3.6 TOPS |
| Toybrick RV1126 | Rockchip RV1126 | Quad-core Cortex-A7 | *Unknown* | 2.0 TOPS |
| NVIDIA Jetson Nano B01 | *Unknown* | 1.43GHz Quad-core Cortex-A57 | 128-core NVIDIA Maxwell | *No* |
| NVIDIA Jetson Nano Orin | *Unknown* | 6-core Cortex®-A78AE | 1024-core NVIDIA Ampere | *No* |
| Atlas 200 DK | *Unknown* | *Unknown* | *Unknown* | 22 TOPS, Ascend 310 |
| Atlas 200I DK A2 | *Unknown* | 1.0GHz Quad-core | *Unknown* | 8 TOPS, Ascend 310B |


RISC-V:

| Board | SoC model | CPU model | GPU model |
| ----- | --------- | --------- | --------- |
| StarFive VisionFive 2 | StarFive JH7110 | 1.5GHz Quad-core RISC-V 64-bit | 600MHz IMG BXE-4-32 MC1 |
| Allwinner Nezha D1 | Allwinner D1 | 1.0GHz single-core RISC-V 64-bit, RVV-0.7.1 | *Unknown* |

We are targetting on efficient computing on edge devices! In the past few years, we, the OpenCV China team, have spent most of our effort in optimizing dnn module for ARM architecture, focusing especially on convolution kernel optimization for ConvNets and GEMM kernel optimization for Vision Transformers. What's even more worth mentioning is that we introduce NPU support for the dnn module, supporing the NPU in Khadas VIM3, Atlas 200 DK and Atlas 200I DK A2. Running the model on NPU can help distribute computing loads from CPU to NPU and even reaching a faster inference speed (see benchmark results on Ascend 310 on Atlas 200 DK for example).
3 changes: 3 additions & 0 deletions reports/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Reports on models and boards

Here we present reports on models and boards in the zoo per major release of OpenCV since 4.9.0.

0 comments on commit 80f7c6a

Please sign in to comment.