2022-04-02 20:01:06 +08:00
2022-04-24 10:26:34 +08:00
< div align = "center" >
[](https://pypi.org/project/pai-easycv/)
2022-04-26 10:38:58 +08:00
[](https://easy-cv.readthedocs.io/en/latest/)
2022-04-24 10:26:34 +08:00
[](https://github.com/open-mmlab/mmdetection/blob/master/LICENSE)
[](https://github.com/alibaba/EasyCV/issues)
[](https://GitHub.com/alibaba/EasyCV/pull/)
[](https://GitHub.com/alibaba/EasyCV/commit/)
<!-- [](https://GitHub.com/alibaba/EasyCV/graphs/contributors/) -->
2022-04-27 14:49:00 +08:00
<!-- [](http://makeapullrequest.com) -->
2022-04-24 10:26:34 +08:00
< / div >
2022-04-02 20:01:06 +08:00
# EasyCV
2022-04-27 14:49:00 +08:00
English | [简体中文 ](README_zh-CN.md )
2022-04-02 20:01:06 +08:00
## Introduction
2022-04-29 15:58:28 +08:00
EasyCV is an all-in-one computer vision toolbox based on PyTorch, mainly focus on self-supervised learning, transformer based models, and SOTA CV tasks including image classification, metric-learning, object detection, pose estimation and so on.
2022-04-02 20:01:06 +08:00
2022-08-24 18:11:15 +08:00
[🔥 Latest News] We have released our YOLOX-PAI that reveives SOTA results within 40~50 mAP (less than 1ms). And we also provide a convenient and fast export/predictor api for end2end object detection. To get a quick start of YOLOX-PAI, click [here ](docs/source/tutorials/yolox.md )!
2022-04-02 20:01:06 +08:00
### Major features
- **SOTA SSL Algorithms**
2022-04-27 14:49:00 +08:00
EasyCV provides state-of-the-art algorithms in self-supervised learning based on contrastive learning such as SimCLR, MoCO V2, Swav, DINO and also MAE based on masked image modeling. We also provide standard benchmark tools for ssl model evaluation.
2022-04-02 20:01:06 +08:00
- **Vision Transformers**
2022-04-27 14:49:00 +08:00
EasyCV aims to provide an easy way to use the off-the-shelf SOTA transformer models trained either using supervised learning or self-supervised learning, such as ViT, Swin-Transformer and Shuffle Transformer. More models will be added in the future. In addition, we support all the pretrained models from [timm ](https://github.com/rwightman/pytorch-image-models ).
2022-04-02 20:01:06 +08:00
- **Functionality & Extensibility**
In addition to SSL, EasyCV also support image classification, object detection, metric learning, and more area will be supported in the future. Although convering different area,
EasyCV decompose the framework into different componets such as dataset, model, running hook, making it easy to add new compoenets and combining it with existing modules.
2022-04-27 14:49:00 +08:00
EasyCV provide simple and comprehensive interface for inference. Additionaly, all models are supported on [PAI-EAS ](https://help.aliyun.com/document_detail/113696.html ), which can be easily deployed as online service and support automatic scaling and service monitoring.
2022-04-02 20:01:06 +08:00
- **Efficiency**
2022-07-27 10:22:44 +08:00
EasyCV support multi-gpu and multi worker training. EasyCV use [DALI ](https://github.com/NVIDIA/DALI ) to accelerate data io and preprocessing process, and use [TorchAccelerator ](https://github.com/alibaba/EasyCV/tree/master/docs/source/tutorials/torchacc.md ) and fp16 to accelerate training process. For inference optimization, EasyCV export model using jit script, which can be optimized by [PAI-Blade ](https://help.aliyun.com/document_detail/205134.html )
2022-04-02 20:01:06 +08:00
2022-08-18 10:26:34 +08:00
## Technical Articles
We have a series of technical articles on the functionalities of EasyCV.
* [EasyCV开源| 开箱即用的视觉自监督+Transformer算法库 ](https://zhuanlan.zhihu.com/p/505219993 )
* [MAE自监督算法介绍和基于EasyCV的复现 ](https://zhuanlan.zhihu.com/p/515859470 )
* [基于EasyCV复现ViTDet: 单层特征超越FPN ](https://zhuanlan.zhihu.com/p/528733299 )
* [基于EasyCV复现DETR和DAB-DETR, Object Query的正确打开方式 ](https://zhuanlan.zhihu.com/p/543129581 )
2022-04-02 20:01:06 +08:00
## Installation
Please refer to the installation section in [quick_start.md ](docs/source/quick_start.md ) for installation.
2022-04-21 13:15:58 +08:00
2022-04-02 20:01:06 +08:00
## Get Started
Please refer to [quick_start.md ](docs/source/quick_start.md ) for quick start. We also provides tutorials for more usages.
* [self-supervised learning ](docs/source/tutorials/ssl.md )
* [image classification ](docs/source/tutorials/cls.md )
* [object detection with yolox ](docs/source/tutorials/yolox.md )
2022-04-26 10:38:58 +08:00
* [model compression with yolox ](docs/source/tutorials/compression.md )
2022-04-27 17:50:42 +08:00
* [metric learning ](docs/source/tutorials/metric_learning.md )
2022-08-18 10:26:34 +08:00
* [torchacc ](docs/source/tutorials/torchacc.md )
2022-04-27 17:50:42 +08:00
notebook
* [self-supervised learning ](docs/source/tutorials/EasyCV图像自监督训练-MAE.ipynb )
* [image classification ](docs/source/tutorials/EasyCV图像分类resnet50.ipynb )
* [object detection with yolox ](docs/source/tutorials/EasyCV图像检测YoloX.ipynb )
* [metric learning ](docs/source/tutorials/EasyCV度量学习resnet50.ipynb )
2022-04-02 20:01:06 +08:00
2022-04-21 13:15:58 +08:00
2022-04-02 20:01:06 +08:00
## Model Zoo
2022-08-18 10:26:34 +08:00
< div align = "center" >
< b > Architectures< / b >
< / div >
< table align = "center" >
< tbody >
< tr align = "center" >
< td >
< b > Self-Supervised Learning< / b >
< / td >
< td >
< b > Image Classification< / b >
< / td >
< td >
< b > Object Detection< / b >
< / td >
< td >
< b > Segmentation< / b >
< / td >
< / tr >
< tr valign = "top" >
< td >
< ul >
< li > < a href = "configs/selfsup/byol" > BYOL (NeurIPS'2020)< / a > < / li >
< li > < a href = "configs/selfsup/dino" > DINO (ICCV'2021)< / a > < / li >
< li > < a href = "configs/selfsup/mixco" > MiXCo (NeurIPS'2020)< / a > < / li >
< li > < a href = "configs/selfsup/moby" > MoBY (ArXiv'2021)< / a > < / li >
< li > < a href = "configs/selfsup/mocov2" > MoCov2 (ArXiv'2020)< / a > < / li >
< li > < a href = "configs/selfsup/simclr" > SimCLR (ICML'2020)< / a > < / li >
< li > < a href = "configs/selfsup/swav" > SwAV (NeurIPS'2020)< / a > < / li >
< li > < a href = "configs/selfsup/mae" > MAE (CVPR'2022)< / a > < / li >
< li > < a href = "configs/selfsup/fast_convmae" > FastConvMAE (ArXiv'2022)< / a > < / li >
< / ul >
< / td >
< td >
< ul >
< li > < a href = "configs/classification/imagenet/resnet" > ResNet (CVPR'2016)< / a > < / li >
< li > < a href = "configs/classification/imagenet/resnext" > ResNeXt (CVPR'2017)< / a > < / li >
< li > < a href = "configs/classification/imagenet/hrnet" > HRNet (CVPR'2019)< / a > < / li >
< li > < a href = "configs/classification/imagenet/vit" > ViT (ICLR'2021)< / a > < / li >
< li > < a href = "configs/classification/imagenet/swint" > SwinT (ICCV'2021)< / a > < / li >
< li > < a href = "configs/classification/imagenet/efficientformer" > EfficientFormer (ArXiv'2022)< / a > < / li >
< li > < a href = "configs/classification/imagenet/timm/deit" > DeiT (ICML'2021)< / a > < / li >
< li > < a href = "configs/classification/imagenet/timm/xcit" > XCiT (ArXiv'2021)< / a > < / li >
< li > < a href = "configs/classification/imagenet/timm/tnt" > TNT (NeurIPS'2021)< / a > < / li >
< li > < a href = "configs/classification/imagenet/timm/convit" > ConViT (ArXiv'2021)< / a > < / li >
< li > < a href = "configs/classification/imagenet/timm/cait" > CaiT (ICCV'2021)< / a > < / li >
< li > < a href = "configs/classification/imagenet/timm/levit" > LeViT (ICCV'2021)< / a > < / li >
< li > < a href = "configs/classification/imagenet/timm/convnext" > ConvNeXt (CVPR'2022)< / a > < / li >
< li > < a href = "configs/classification/imagenet/timm/resmlp" > ResMLP (ArXiv'2021)< / a > < / li >
< li > < a href = "configs/classification/imagenet/timm/coat" > CoaT (ICCV'2021)< / a > < / li >
< li > < a href = "configs/classification/imagenet/timm/convmixer" > ConvMixer (ICLR'2022)< / a > < / li >
< li > < a href = "configs/classification/imagenet/timm/mlp-mixer" > MLP-Mixer (ArXiv'2021)< / a > < / li >
< li > < a href = "configs/classification/imagenet/timm/nest" > NesT (AAAI'2022)< / a > < / li >
< li > < a href = "configs/classification/imagenet/timm/pit" > PiT (ArXiv'2021)< / a > < / li >
< li > < a href = "configs/classification/imagenet/timm/twins" > Twins (NeurIPS'2021)< / a > < / li >
< li > < a href = "configs/classification/imagenet/timm/shuffle_transformer" > Shuffle Transformer (ArXiv'2021)< / a > < / li >
< / ul >
< / td >
< td >
< ul >
< li > < a href = "configs/detection/fcos" > FCOS (ICCV'2019)< / a > < / li >
< li > < a href = "configs/detection/yolox" > YOLOX (ArXiv'2021)< / a > < / li >
< li > < a href = "configs/detection/detr" > DETR (ECCV'2020)< / a > < / li >
< li > < a href = "configs/detection/dab_detr" > DAB-DETR (ICLR'2022)< / a > < / li >
< li > < a href = "configs/detection/dab_detr" > DN-DETR (CVPR'2022)< / a > < / li >
< / ul >
< / td >
< td >
< / ul >
< li > < b > Instance Segmentation< / b > < / li >
< ul >
< ul >
< li > < a href = "configs/detection/mask_rcnn" > Mask R-CNN (ICCV'2017)< / a > < / li >
< li > < a href = "configs/detection/vitdet" > ViTDet (ArXiv'2022)< / a > < / li >
< li > < a href = "configs/segmentation/mask2former" > Mask2Former (CVPR'2022)< / a > < / li >
< / ul >
< / ul >
< / ul >
< li > < b > Sementic Segmentation< / b > < / li >
< ul >
< ul >
< li > < a href = "configs/segmentation/fcn" > FCN (CVPR'2015)< / a > < / li >
< li > < a href = "configs/segmentation/upernet" > UperNet (ECCV'2018)< / a > < / li >
< / ul >
< / ul >
< / ul >
< li > < b > Panoptic Segmentation< / b > < / li >
< ul >
< ul >
< li > < a href = "configs/segmentation/mask2former" > Mask2Former (CVPR'2022)< / a > < / li >
< / ul >
< / ul >
< / ul >
< / td >
< / tr >
< / td >
< / tr >
< / tbody >
< / table >
2022-04-02 20:01:06 +08:00
Please refer to the following model zoo for more details.
- [self-supervised learning model zoo ](docs/source/model_zoo_ssl.md )
2022-04-26 10:38:58 +08:00
- [classification model zoo ](docs/source/model_zoo_cls.md )
2022-07-11 14:52:49 +08:00
- [detection model zoo ](docs/source/model_zoo_det.md )
2022-05-31 20:19:17 +08:00
- [segmentation model zoo ](docs/source/model_zoo_seg.md )
2022-04-02 20:01:06 +08:00
2022-05-25 17:17:31 +08:00
## Data Hub
EasyCV have collected dataset info for different senarios, making it easy for users to fintune or evaluate models in EasyCV modelzoo.
2022-08-18 10:26:34 +08:00
Please refer to [data_hub.md ](docs/source/data_hub.md ).
2022-04-02 20:01:06 +08:00
## ChangeLog
2022-07-27 17:06:17 +08:00
* 28/07/2022 EasyCV v0.5.0 was released.
* Self-Supervised support ConvMAE algorithm
* Classification support EfficientFormer algorithm
* Detection support FCOS、DETR、DAB-DETR and DN-DETR algorithm
* Segmentation support UperNet algorithm
2022-08-18 10:26:34 +08:00
* Support use [torchacc ](docs/source/tutorials/torchacc.md ) to speed up training
2022-07-27 17:06:17 +08:00
* Support use analyze tools
2022-07-01 18:41:19 +08:00
* 23/06/2022 EasyCV v0.4.0 was released.
* Add semantic segmentation modules, support FCN algorithm
* Expand classification model zoo
* Support export model with [blade ](https://help.aliyun.com/document_detail/205134.html ) for yolox
* Support ViTDet algorithm
* Add sailfish for extensible fully sharded data parallel training
* Support run with [mmdetection ](https://github.com/open-mmlab/mmdetection ) models
2022-05-13 16:36:54 +08:00
* 31/04/2022 EasyCV v0.3.0 was released.
* Update moby pretrained model to deit small
* Add mae vit-large benchmark and pretrained models
* Support image visualization for tensorboard and wandb
2022-05-16 11:37:33 +08:00
2022-04-21 13:15:58 +08:00
* 07/04/2022 EasyCV v0.2.2 was released.
2022-04-02 20:01:06 +08:00
Please refer to [change_log.md ](docs/source/change_log.md ) for more details and history.
2022-04-21 13:15:58 +08:00
## License
This project licensed under the [Apache License (Version 2.0) ](LICENSE ). This toolkit also contains various third-party components and some code modified from other repos under other open source licenses. See the [NOTICE ](NOTICE ) file for more information.
2022-04-02 20:01:06 +08:00
## Contact
2022-04-26 15:12:55 +08:00
This repo is currently maintained by PAI-CV team, you can contact us by
* Dingding group number: 41783266
* Email: easycv@list.alibaba-inc.com
### Enterprise Service
If you need EasyCV enterprise service support, or purchase cloud product services, you can contact us by DingDing Group.
2022-04-26 15:23:54 +08:00
