<div align="center">
<img src="https://yellow-cdn.veclightyear.com/2b54e442/61cffb9f-2582-4d5d-ad5d-4057fbec7a7e.png" width="500px"/>
<div> </div>
<div align="center">
<b><font size="5">OpenMMLab 网站</font></b>
<sup>
<a href="https://openmmlab.com">
<i><font size="4">热门</font></i>
</a>
</sup>
<b><font size="5">OpenMMLab 平台</font></b>
<sup>
<a href="https://platform.openmmlab.com">
<i><font size="4">试用</font></i>
</a>
</sup>
</div>
<div> </div>
[![build](https://github.com/open-mmlab/mmocr/workflows/build/badge.svg)](https://github.com/open-mmlab/mmocr/actions)
[![docs](https://readthedocs.org/projects/mmocr/badge/?version=dev-1.x)](https://mmocr.readthedocs.io/en/dev-1.x/?badge=dev-1.x)
[![codecov](https://yellow-cdn.veclightyear.com/2b54e442/a23dba4a-312c-4ff3-82af-5bcc3d4e0834.svg)](https://codecov.io/gh/open-mmlab/mmocr)
[![license](https://yellow-cdn.veclightyear.com/2b54e442/007c19b6-93e0-4c0a-af27-cc9c98f96b09.svg)](https://github.com/open-mmlab/mmocr/blob/main/LICENSE)
[![PyPI](https://yellow-cdn.veclightyear.com/2b54e442/6f959ed5-7d6a-4df5-b98d-4481ac7d0183.svg)](https://pypi.org/project/mmocr/)
[![Average time to resolve an issue](https://yellow-cdn.veclightyear.com/2b54e442/1db39390-41f4-4ab0-9154-8abba262689d.svg)](https://github.com/open-mmlab/mmocr/issues)
[![Percentage of issues still open](https://yellow-cdn.veclightyear.com/2b54e442/220b21c0-8e67-4196-b7b0-706c97f7d4d3.svg)](https://github.com/open-mmlab/mmocr/issues)
<a href="https://console.tiyaro.ai/explore?q=mmocr&pub=mmocr"> <img src="https://yellow-cdn.veclightyear.com/2b54e442/71f266a3-ef77-4951-8369-58dff4227d64.svg"></a>
[📘文档](https://mmocr.readthedocs.io/en/dev-1.x/) |
[🛠️安装](https://mmocr.readthedocs.io/en/dev-1.x/get_started/install.html) |
[👀模型库](https://mmocr.readthedocs.io/en/dev-1.x/modelzoo.html) |
[🆕更新消息](https://mmocr.readthedocs.io/en/dev-1.x/notes/changelog.html) |
[🤔反馈问题](https://github.com/open-mmlab/mmocr/issues/new/choose)
</div>
<div align="center">
English | [简体中文](README_zh-CN.md)
</div>
<div align="center">
<a href="https://openmmlab.medium.com/" style="text-decoration:none;">
<img src="https://yellow-cdn.veclightyear.com/2b54e442/0a36fa8b-5b1d-49a5-9343-78cf7bfa9d8c.png" width="3%" alt="" /></a>
<img src="https://yellow-cdn.veclightyear.com/2b54e442/347ad10c-315d-40a3-9c13-4b84f0ad497f.png" width="3%" alt="" />
<a href="https://discord.gg/raweFPmdzG" style="text-decoration:none;">
<img src="https://yellow-cdn.veclightyear.com/2b54e442/ce252528-f3e1-4702-8dea-ad13145d511c.png" width="3%" alt="" /></a>
<img src="https://yellow-cdn.veclightyear.com/2b54e442/347ad10c-315d-40a3-9c13-4b84f0ad497f.png" width="3%" alt="" />
<a href="https://twitter.com/OpenMMLab" style="text-decoration:none;">
<img src="https://yellow-cdn.veclightyear.com/2b54e442/5ba2a187-44c8-4ed5-a2e7-5605f11bf859.png" width="3%" alt="" /></a>
<img src="https://yellow-cdn.veclightyear.com/2b54e442/347ad10c-315d-40a3-9c13-4b84f0ad497f.png" width="3%" alt="" />
<a href="https://www.youtube.com/openmmlab" style="text-decoration:none;">
<img src="https://yellow-cdn.veclightyear.com/2b54e442/1c2151a1-ed1d-4a3c-b0fe-ac5d276b5892.png" width="3%" alt="" /></a>
<img src="https://yellow-cdn.veclightyear.com/2b54e442/347ad10c-315d-40a3-9c13-4b84f0ad497f.png" width="3%" alt="" />
<a href="https://space.bilibili.com/1293512903" style="text-decoration:none;">
<img src="https://yellow-cdn.veclightyear.com/2b54e442/698d8d52-9a00-44e1-84fd-c75ea7b81e5f.png" width="3%" alt="" /></a>
<img src="https://yellow-cdn.veclightyear.com/2b54e442/347ad10c-315d-40a3-9c13-4b84f0ad497f.png" width="3%" alt="" />
<a href="https://www.zhihu.com/people/openmmlab" style="text-decoration:none;">
<img src="https://yellow-cdn.veclightyear.com/2b54e442/9cec6a3d-3a61-416a-b98f-01e853e427d2.png" width="3%" alt="" /></a>
</div>
## 最新动态
**默认分支现在是 `main`,并且分支上的代码已经升级到 v1.0.0。旧的 `main` 分支(v0.6.3)代码现在存在于 `0.x` 分支上。** 如果你一直在使用 `main` 分支并遇到升级问题,请阅读 [迁移指南](https://mmocr.readthedocs.io/en/dev-1.x/migration/overview.html) 和 [分支说明](https://mmocr.readthedocs.io/en/dev-1.x/migration/branches.html)。
v1.0.0 于 2023-04-06 发布。1.0.0rc6 的主要更新包括:
1. 在数据集准备器中支持 SCUT-CTW1500、SynthText 和 MJSynth 数据集
2. 更新了常见问题解答(FAQ)和文档
3. 废弃了 file_client_args,转而使用 backend_args
4. 添加了一个新的 MMOCR 教程笔记本
要了解有关 MMOCR 1.0 的更多更新信息,请查阅 [MMOCR 1.x 的新功能](https://mmocr.readthedocs.io/en/dev-1.x/migration/news.html),或阅读 [更新日志](https://mmocr.readthedocs.io/en/dev-1.x/notes/changelog.html) 了解更多详细信息!
## 简介
MMOCR 是一个基于 PyTorch 和 mmdetection 的开源工具包,用于文本检测、文本识别以及包含关键信息提取在内的下游任务。它是 [OpenMMLab](https://openmmlab.com/) 项目的一部分。
主分支支持 **PyTorch 1.6+**。
<div align="center">
<img src="https://yellow-cdn.veclightyear.com/2b54e442/f8720af7-bf1d-4141-9b30-19d349957c9f.png"/>
</div>
### 主要特性
- **全面的处理管道**
该工具包不仅支持文本检测和文本识别,还支持下游任务如关键信息提取。
- **多种模型**
该工具包支持多种最先进的文本检测、文本识别和关键信息提取模型。
- **模块化设计**
MMOCR 的模块化设计使用户可以自行定义优化器、数据预处理器以及包括骨干网(backbones)、颈部(necks)和头部(heads)在内的模型组件以及损失。请参考 [概览](https://mmocr.readthedocs.io/en/dev-1.x/get_started/overview.html) 以了解如何构建自定义模型。
- **众多实用工具**
该工具包提供了一套全面的实用工具,帮助用户评估模型性能。包括可视化工具,可以显示图像、实际情况以及预测的边界框,还包括用于在训练期间评估检查点的验证工具。它还包括数据转换器,展示如何将用户自己的数据转换为工具包支持的注释文件格式。
## 安装
MMOCR 依赖于 [PyTorch](https://pytorch.org/)、[MMEngine](https://github.com/open-mmlab/mmengine)、[MMCV](https://github.com/open-mmlab/mmcv) 和 [MMDetection](https://github.com/open-mmlab/mmdetection)。以下是快速安装步骤。请参考 [安装指南](https://mmocr.readthedocs.io/en/dev-1.x/get_started/install.html) 了解更详细的说明。
```shell
conda create -n open-mmlab python=3.8 pytorch=1.10 cudatoolkit=11.3 torchvision -c pytorch -y
conda activate open-mmlab
pip3 install openmim
git clone https://github.com/open-mmlab/mmocr.git
cd mmocr
mim install -e .
入门
请参阅 快速运行 了解 MMOCR 的基本用法。
模型库
支持的算法:
BackBone
- oCLIP (ECCV'2022)
文本检测
文本识别
``` - [x] [ABINet](configs/textrecog/abinet/README.md) (CVPR'2021) - [x] [ASTER](configs/textrecog/aster/README.md) (TPAMI'2018) - [x] [CRNN](configs/textrecog/crnn/README.md) (TPAMI'2016) - [x] [MASTER](configs/textrecog/master/README.md) (PR'2021) - [x] [NRTR](configs/textrecog/nrtr/README.md) (ICDAR'2019) - [x] [RobustScanner](configs/textrecog/robust_scanner/README.md) (ECCV'2020) - [x] [SAR](configs/textrecog/sar/README.md) (AAAI'2019) - [x] [SATRN](configs/textrecog/satrn/README.md) (CVPR'2020 Workshop on Text and Documents in the Deep Learning Era) - [x] [SVTR](configs/textrecog/svtr/README.md) (IJCAI'2022)关键信息提取
- SDMG-R (ArXiv'2021)
请参阅model_zoo了解更多详情。
项目
此处是一些基于MMOCR构建的SOTA模型和解决方案的实现,社区用户支持和维护。这些项目展示了基于MMOCR的研究和产品开发的最佳实践。我们欢迎并感谢对OpenMMLab生态系统的所有贡献。
贡献
我们感谢所有提升MMOCR的贡献。请参阅CONTRIBUTING.md以了解贡献指南。
致谢
MMOCR是一个由各高校和公司研究人员与工程师的共同贡献的开源项目。我们感谢所有实现方法或新增功能的贡献者,以及提供宝贵反馈的用户。我们希望该工具箱和基准可以通过提供一个灵活的工具包为不断发展的研究社区服务,以重新实现现有方法和开发他们自己的新OCR方法。
引用
如果您在研究中发现该项目有用,请考虑引用:
@article{mmocr2021,
title={MMOCR: A Comprehensive Toolbox for Text Detection, Recognition and Understanding},
author={Kuang, Zhanghui and Sun, Hongbin and Li, Zhizhong and Yue, Xiaoyu and Lin, Tsui Hin and Chen, Jianyong and Wei, Huaqiang and Zhu, Yiqin and Gao, Tong and Zhang, Wenwei and Chen, Kai and Zhang, Wayne and Lin, Dahua},
journal= {arXiv preprint arXiv:2108.06543},
year={2021}
}
许可
本项目基于Apache 2.0 license发布。
OpenMMLab家族
- MMEngine: OpenMMLab训练深度学习模型的基础库
- MMCV: OpenMMLab计算机视觉基础库
- MIM: MIM安装OpenMMLab软件包
- MMClassification: OpenMMLab图像分类工具箱和基准
- MMDetection: OpenMMLab检测工具箱和基准
- MMDetection3D: OpenMMLab的下一代通用3D目标检测平台
- MMRotate: OpenMMLab旋转目标检测工具箱和基准
- MMSegmentation: OpenMMLab语义分割工具箱和基准
- MMOCR: OpenMMLab文本检测、识别和理解工具箱
- MMPose: OpenMMLab姿态估计工具箱和基准
- MMHuman3D: OpenMMLab的3D人体参数模型工具箱和基准
- MMSelfSup: OpenMMLab自监督学习工具箱和基准
- MMRazor: OpenMMLab模型压缩工具箱和基准
- MMFewShot: OpenMMLab少样本学习工具箱和基准
- MMAction2: OpenMMLab的下一代动作理解工具箱和基准
- MMTracking: OpenMMLab视频感知工具箱和基准
- MMFlow: OpenMMLab光流工具箱和基准
- MMEditing: OpenMMLab图像和视频编辑工具箱
- MMGeneration: OpenMMLab图像和视频生成模型工具箱
- MMDeploy: OpenMMLab模型部署框架
欢迎加入OpenMMLab社区
扫描以下二维码,关注OpenMMLab团队的知乎官方账号,加入OpenMMLab团队的QQ群,或通过添加微信,加入官方交流微信群,或加入我们的Slack
我们将为你提供OpenMMLab社区
- 📢 分享AI框架最新核心技术
- 💻 解读PyTorch常见模块源码
- 📰 发布OpenMMLab相关资讯
- 🚀 介绍OpenMMLab开发的前沿算法 🏃 获得更高效的解答和反馈
- 🔥 提供与各行各业开发者交流的平台
OpenMMLab社区期待你的参与!👬