• Stars
    star
    254
  • Rank 160,264 (Top 4 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created over 2 years ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A unified evaluation library for multiple machine learning libraries
 
OpenMMLab website HOT      OpenMMLab platform TRY IT OUT
 

PyPI - Python Version PyPI license open issues issue resolution

🤔Reporting Issues

English | 简体中文

Introduction

MMEval is a machine learning evaluation library that supports efficient and accurate distributed evaluation on a variety of machine learning frameworks.

Major features:

  • Comprehensive metrics for various computer vision tasks (NLP will be covered soon!)
  • Efficient and accurate distributed evaluation, backed by multiple distributed communication backends
  • Support multiple machine learning frameworks via dynamic input dispatching mechanism
Supported distributed communication backends
MPI4Py torch.distributed Horovod paddle.distributed oneflow.comm
MPI4PyDist TorchCPUDist
TorchCUDADist
TFHorovodDist PaddleDist OneFlowDist
Supported metrics and ML frameworks

NOTE: MMEval tested with PyTorch 1.6+, TensorFlow 2.4+, Paddle 2.2+ and OneFlow 0.8+.

Metric numpy.ndarray torch.Tensor tensorflow.Tensor paddle.Tensor oneflow.Tensor
Accuracy
SingleLabelMetric
MultiLabelMetric
AveragePrecision
MeanIoU
VOCMeanAP
OIDMeanAP
COCODetection
ProposalRecall
F1Score
HmeanIoU
PCKAccuracy
MpiiPCKAccuracy
JhmdbPCKAccuracy
EndPointError
AVAMeanAP
StructuralSimilarity
SignalNoiseRatio
PeakSignalNoiseRatio
MeanAbsoluteError
MeanSquaredError

Installation

MMEval requires Python 3.6+ and can be installed via pip.

pip install mmeval

To install the dependencies required for all the metrics provided in MMEval, you can install them with the following command.

pip install 'mmeval[all]'

Get Started

There are two ways to use MMEval's metrics, using Accuracy as an example:

from mmeval import Accuracy
import numpy as np

accuracy = Accuracy()

The first way is to directly call the instantiated Accuracy object to calculate the metric.

labels = np.asarray([0, 1, 2, 3])
preds = np.asarray([0, 2, 1, 3])
accuracy(preds, labels)
# {'top1': 0.5}

The second way is to calculate the metric after accumulating data from multiple batches.

for i in range(10):
    labels = np.random.randint(0, 4, size=(100, ))
    predicts = np.random.randint(0, 4, size=(100, ))
    accuracy.add(predicts, labels)

accuracy.compute()
# {'top1': ...}

Learn More

Tutorials
Examples
Design

In the works

  • Continue to add more metrics and expand more tasks (e.g. NLP, audio).
  • Support more ML frameworks and explore multiple ML framework support paradigms.

Contributing

We appreciate all contributions to improve MMEval. Please refer to CONTRIBUTING.md for the contributing guideline.

License

This project is released under the Apache 2.0 license.

Projects in OpenMMLab

  • MMEngine: OpenMMLab foundational library for training deep learning models.
  • MIM: MIM installs OpenMMLab packages.
  • MMCV: OpenMMLab foundational library for computer vision.
  • MMClassification: OpenMMLab image classification toolbox and benchmark.
  • MMDetection: OpenMMLab detection toolbox and benchmark.
  • MMDetection3D: OpenMMLab's next-generation platform for general 3D object detection.
  • MMRotate: OpenMMLab rotated object detection toolbox and benchmark.
  • MMYOLO: OpenMMLab YOLO series toolbox and benchmark.
  • MMSegmentation: OpenMMLab semantic segmentation toolbox and benchmark.
  • MMOCR: OpenMMLab text detection, recognition, and understanding toolbox.
  • MMPose: OpenMMLab pose estimation toolbox and benchmark.
  • MMHuman3D: OpenMMLab 3D human parametric model toolbox and benchmark.
  • MMSelfSup: OpenMMLab self-supervised learning toolbox and benchmark.
  • MMRazor: OpenMMLab model compression toolbox and benchmark.
  • MMFewShot: OpenMMLab fewshot learning toolbox and benchmark.
  • MMAction2: OpenMMLab's next-generation action understanding toolbox and benchmark.
  • MMTracking: OpenMMLab video perception toolbox and benchmark.
  • MMFlow: OpenMMLab optical flow toolbox and benchmark.
  • MMEditing: OpenMMLab image and video editing toolbox.
  • MMGeneration: OpenMMLab image and video generative models toolbox.
  • MMDeploy: OpenMMLab model deployment framework.

More Repositories

1

mmdetection

OpenMMLab Detection Toolbox and Benchmark
Python
29,487
star
2

mmsegmentation

OpenMMLab Semantic Segmentation Toolbox and Benchmark.
Python
7,992
star
3

mmagic

OpenMMLab Multimodal Advanced, Generative, and Intelligent Creation Toolbox. Unlock the magic 🪄: Generative-AI (AIGC), easy-to-use APIs, awsome model zoo, diffusion models, for text-to-image generation, image/video restoration/enhancement, etc.
Jupyter Notebook
6,909
star
4

mmcv

OpenMMLab Computer Vision Foundation
Python
5,879
star
5

mmpose

OpenMMLab Pose Estimation Toolbox and Benchmark.
Python
5,625
star
6

Amphion

Amphion (/æmˈfaɪən/) is a toolkit for Audio, Music, and Speech Generation. Its purpose is to support reproducible research and help junior researchers and engineers get started in the field of audio, music, and speech generation research and development.
Python
5,482
star
7

mmdetection3d

OpenMMLab's next-generation platform for general 3D object detection.
Python
5,216
star
8

OpenPCDet

OpenPCDet Toolbox for LiDAR-based 3D Object Detection.
Python
4,658
star
9

mmocr

OpenMMLab Text Detection, Recognition and Understanding Toolbox
Python
4,270
star
10

mmaction2

OpenMMLab's Next Generation Video Understanding Toolbox and Benchmark
Python
4,236
star
11

mmtracking

OpenMMLab Video Perception Toolbox. It supports Video Object Detection (VID), Multiple Object Tracking (MOT), Single Object Tracking (SOT), Video Instance Segmentation (VIS) with a unified framework.
Python
3,538
star
12

mmpretrain

OpenMMLab Pre-training Toolbox and Benchmark
Python
3,383
star
13

mmselfsup

OpenMMLab Self-Supervised Learning Toolbox and Benchmark
Python
3,182
star
14

mmyolo

OpenMMLab YOLO series toolbox and benchmark. Implemented RTMDet, RTMDet-Rotated,YOLOv5, YOLOv6, YOLOv7, YOLOv8,YOLOX, PPYOLOE, etc.
Python
2,967
star
15

mmskeleton

A OpenMMLAB toolbox for human pose estimation, skeleton-based action recognition, and action synthesis.
Python
2,928
star
16

mmdeploy

OpenMMLab Model Deployment Framework
Python
2,744
star
17

mmgeneration

MMGeneration is a powerful toolkit for generative models, based on PyTorch and MMCV.
Python
1,881
star
18

mmaction

An open-source toolbox for action understanding based on PyTorch
Python
1,853
star
19

mmrotate

OpenMMLab Rotated Object Detection Toolbox and Benchmark
Python
1,843
star
20

mmrazor

OpenMMLab Model Compression Toolbox and Benchmark.
Python
1,470
star
21

Multimodal-GPT

Multimodal-GPT
Python
1,461
star
22

mmfashion

Open-source toolbox for visual fashion analysis based on PyTorch
Python
1,245
star
23

mmhuman3d

OpenMMLab 3D Human Parametric Model Toolbox and Benchmark
Python
1,232
star
24

mmengine

OpenMMLab Foundational Library for Training Deep Learning Models
Python
1,161
star
25

playground

A central hub for gathering and showcasing amazing projects that extend OpenMMLab with SAM and other exciting features.
Python
1,117
star
26

OpenMMLabCourse

OpenMMLab course index and stuff
Jupyter Notebook
1,000
star
27

mmflow

OpenMMLab optical flow toolbox and benchmark
Python
942
star
28

PIA

[CVPR 2024] PIA, your Personalized Image Animator. Animate your images by text prompt, combing with Dreambooth, achieving stunning videos. PIA,你的个性化图像动画生成器,利用文本提示将图像变为奇妙的动画
Python
867
star
29

mmfewshot

OpenMMLab FewShot Learning Toolbox and Benchmark
Python
697
star
30

PowerPaint

[ECCV 2024] PowerPaint, a versatile image inpainting model that supports text-guided object inpainting, object removal, image outpainting and shape-guided object inpainting with only a single model. 一个高质量多功能的图像修补模型,可以同时支持插入物体、移除物体、图像扩展、形状可控的物体生成,只需要一个模型
Python
526
star
31

awesome-vit

400
star
32

OpenUnReID

PyTorch open-source toolbox for unsupervised or domain adaptive object re-ID.
Python
393
star
33

labelbee-client

Out-of-the-box Annotation Toolbox
JavaScript
380
star
34

FoleyCrafter

FoleyCrafter: Bring Silent Videos to Life with Lifelike and Synchronized Sounds. AI拟音大师,给你的无声视频添加生动而且同步的音效 😝
Python
379
star
35

mim

MIM Installs OpenMMLab Packages
Python
346
star
36

denseflow

Extracting optical flow and frames
C++
294
star
37

MMGEN-FaceStylor

Python
249
star
38

labelbee

LabelBee is an annotation Library
TypeScript
244
star
39

Live2Diff

Live2Diff: A Pipeline that processes Live video streams by a uni-directional video Diffusion model.
Python
150
star
40

OpenMMLabCamp

Jupyter Notebook
93
star
41

polynet

The Github Repo for PolyNet
77
star
42

CLUE

C++ Lightweight Utility Extensions
C++
70
star
43

AnyControl

[ECCV 2024] AnyControl, a multi-control image synthesis model that supports any combination of user provided control signals. 一个支持用户自由输入控制信号的图像生成模型,能够根据多种控制生成自然和谐的结果!
Python
66
star
44

StyleShot

StyleShot: A SnapShot on Any Style. 一款可以迁移任意风格到任意内容的模型,无需针对图片微调,即能生成高质量的个性风格化图片!
Python
59
star
45

mim-example

Python
58
star
46

mmengine-template

Python
49
star
47

ecosystem

37
star
48

mmstyles

Latex style file to facilitate writing of technical papers
TeX
37
star
49

mmpose-webcam-demo

Python
25
star
50

pre-commit-hooks

Python
17
star
51

mdformat-openmmlab

Python
6
star
52

.github

4
star