Spaces:
Runtime error
Runtime error
# Changelog | |
## v0.4.1 (27/01/2022) | |
### Highlights | |
1. Visualizing edge weights in OpenSet KIE is now supported! https://github.com/open-mmlab/mmocr/pull/677 | |
2. Some configurations have been optimized to significantly speed up the training and testing processes! Don't worry - you can still tune these parameters in case these modifications do not work. https://github.com/open-mmlab/mmocr/pull/757 | |
3. Now you can use CPU to train/debug your model! https://github.com/open-mmlab/mmocr/pull/752 | |
4. We have fixed a severe bug that causes users unable to call `mmocr.apis.test` with our pre-built wheels. https://github.com/open-mmlab/mmocr/pull/667 | |
### New Features & Enhancements | |
* Show edge score for openset kie by @cuhk-hbsun in https://github.com/open-mmlab/mmocr/pull/677 | |
* Download flake8 from github as pre-commit hooks by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/695 | |
* Deprecate the support for 'python setup.py test' by @Harold-lkk in https://github.com/open-mmlab/mmocr/pull/722 | |
* Disable multi-processing feature of cv2 to speed up data loading by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/721 | |
* Extend ctw1500 converter to support text fields by @Harold-lkk in https://github.com/open-mmlab/mmocr/pull/729 | |
* Extend totaltext converter to support text fields by @Harold-lkk in https://github.com/open-mmlab/mmocr/pull/728 | |
* Speed up training by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/739 | |
* Add setup multi-processing both in train and test.py by @Harold-lkk in https://github.com/open-mmlab/mmocr/pull/757 | |
* Support CPU training/testing by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/752 | |
* Support specify gpu for testing and training with gpu-id instead of gpu-ids and gpus by @Harold-lkk in https://github.com/open-mmlab/mmocr/pull/756 | |
* Remove unnecessary custom_import from test.py by @Harold-lkk in https://github.com/open-mmlab/mmocr/pull/758 | |
### Bug Fixes | |
* Fix satrn onnxruntime test by @AllentDan in https://github.com/open-mmlab/mmocr/pull/679 | |
* Support both ConcatDataset and UniformConcatDataset by @cuhk-hbsun in https://github.com/open-mmlab/mmocr/pull/675 | |
* Fix bugs of show_results in single_gpu_test by @cuhk-hbsun in https://github.com/open-mmlab/mmocr/pull/667 | |
* Fix a bug for sar decoder when bi-rnn is used by @MhLiao in https://github.com/open-mmlab/mmocr/pull/690 | |
* Fix opencv version to avoid some bugs by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/694 | |
* Fix py39 ci error by @Harold-lkk in https://github.com/open-mmlab/mmocr/pull/707 | |
* Update visualize.py by @TommyZihao in https://github.com/open-mmlab/mmocr/pull/715 | |
* Fix link of config by @cuhk-hbsun in https://github.com/open-mmlab/mmocr/pull/726 | |
* Use yaml.safe_load instead of load by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/753 | |
* Add necessary keys to test_pipelines to enable test-time visualization by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/754 | |
### Docs | |
* Fix recog.md by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/674 | |
* Add config tutorial by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/683 | |
* Add MMSelfSup/MMRazor/MMDeploy in readme by @cuhk-hbsun in https://github.com/open-mmlab/mmocr/pull/692 | |
* Add recog & det model summary by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/693 | |
* Update docs link by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/710 | |
* add pull request template.md by @Harold-lkk in https://github.com/open-mmlab/mmocr/pull/711 | |
* Add website links to readme by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/731 | |
* update readme according to standard by @Harold-lkk in https://github.com/open-mmlab/mmocr/pull/742 | |
### New Contributors | |
* @MhLiao made their first contribution in https://github.com/open-mmlab/mmocr/pull/690 | |
* @TommyZihao made their first contribution in https://github.com/open-mmlab/mmocr/pull/715 | |
**Full Changelog**: https://github.com/open-mmlab/mmocr/compare/v0.4.0...v0.4.1 | |
## v0.4.0 (15/12/2021) | |
### Highlights | |
1. We release a new text recognition model - [ABINet](https://arxiv.org/pdf/2103.06495.pdf) (CVPR 2021, Oral). With it dedicated model design and useful data augmentation transforms, ABINet can achieve the best performance on irregular text recognition tasks. [Check it out!](https://mmocr.readthedocs.io/en/latest/textrecog_models.html#read-like-humans-autonomous-bidirectional-and-iterative-language-modeling-for-scene-text-recognition) | |
2. We are also working hard to fulfill the requests from our community. | |
[OpenSet KIE](https://mmocr.readthedocs.io/en/latest/kie_models.html#wildreceiptopenset) is one of the achievement, which extends the application of SDMGR from text node classification to node-pair relation extraction. We also provide | |
a demo script to convert WildReceipt to open set domain, though it cannot | |
take the full advantage of OpenSet format. For more information, please read our | |
[tutorial](https://mmocr.readthedocs.io/en/latest/tutorials/kie_closeset_openset.html). | |
3. APIs of models can be exposed through TorchServe. [Docs](https://mmocr.readthedocs.io/en/latest/model_serving.html) | |
### Breaking Changes & Migration Guide | |
#### Postprocessor | |
Some refactoring processes are still going on. For all text detection models, we unified their `decode` implementations into a new module category, `POSTPROCESSOR`, which is responsible for decoding different raw outputs into boundary instances. In all text detection configs, the `text_repr_type` argument in `bbox_head` is deprecated and will be removed in the future release. | |
**Migration Guide**: Find a similar line from detection model's config: | |
``` | |
text_repr_type=xxx, | |
``` | |
And replace it with | |
``` | |
postprocessor=dict(type='{MODEL_NAME}Postprocessor', text_repr_type=xxx)), | |
``` | |
Take a snippet of PANet's config as an example. Before the change, its config for `bbox_head` looks like: | |
``` | |
bbox_head=dict( | |
type='PANHead', | |
text_repr_type='poly', | |
in_channels=[128, 128, 128, 128], | |
out_channels=6, | |
loss=dict(type='PANLoss')), | |
``` | |
Afterwards: | |
``` | |
bbox_head=dict( | |
type='PANHead', | |
in_channels=[128, 128, 128, 128], | |
out_channels=6, | |
loss=dict(type='PANLoss'), | |
postprocessor=dict(type='PANPostprocessor', text_repr_type='poly')), | |
``` | |
There are other postprocessors and each takes different arguments. Interested users can find their interfaces or implementations in `mmocr/models/textdet/postprocess` or through our [api docs](https://mmocr.readthedocs.io/en/latest/api.html#textdet-postprocess). | |
#### New Config Structure | |
We reorganized the `configs/` directory by extracting reusable sections into `configs/_base_`. Now the directory tree of `configs/_base_` is organized as follows: | |
``` | |
_base_ | |
βββ det_datasets | |
βββ det_models | |
βββ det_pipelines | |
βββ recog_datasets | |
βββ recog_models | |
βββ recog_pipelines | |
βββ schedules | |
``` | |
Most of model configs are making full use of base configs now, which makes the overall structural clearer and facilitates fair | |
comparison across models. Despite the seemingly significant hierarchical difference, **these changes would not break the backward compatibility** as the names of model configs remain the same. | |
### New Features | |
* Support openset kie by @cuhk-hbsun in https://github.com/open-mmlab/mmocr/pull/498 | |
* Add converter for the Open Images v5 text annotations by Krylov et al. by @baudm in https://github.com/open-mmlab/mmocr/pull/497 | |
* Support Chinese for kie show result by @cuhk-hbsun in https://github.com/open-mmlab/mmocr/pull/464 | |
* Add TorchServe support for text detection and recognition by @Harold-lkk in https://github.com/open-mmlab/mmocr/pull/522 | |
* Save filename in text detection test results by @cuhk-hbsun in https://github.com/open-mmlab/mmocr/pull/570 | |
* Add codespell pre-commit hook and fix typos by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/520 | |
* Avoid duplicate placeholder docs in CN by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/582 | |
* Save results to json file for kie. by @cuhk-hbsun in https://github.com/open-mmlab/mmocr/pull/589 | |
* Add SAR_CN to ocr.py by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/579 | |
* mim extension for windows by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/641 | |
* Support muitiple pipelines for different datasets by @cuhk-hbsun in https://github.com/open-mmlab/mmocr/pull/657 | |
* ABINet Framework by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/651 | |
### Refactoring | |
* Refactor textrecog config structure by @cuhk-hbsun in https://github.com/open-mmlab/mmocr/pull/617 | |
* Refactor text detection config by @cuhk-hbsun in https://github.com/open-mmlab/mmocr/pull/626 | |
* refactor transformer modules by @cuhk-hbsun in https://github.com/open-mmlab/mmocr/pull/618 | |
* refactor textdet postprocess by @cuhk-hbsun in https://github.com/open-mmlab/mmocr/pull/640 | |
### Docs | |
* C++ example section by @apiaccess21 in https://github.com/open-mmlab/mmocr/pull/593 | |
* install.md Chinese section by @A465539338 in https://github.com/open-mmlab/mmocr/pull/364 | |
* Add Chinese Translation of deployment.md. by @fatfishZhao in https://github.com/open-mmlab/mmocr/pull/506 | |
* Fix a model link and add the metafile for SATRN by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/473 | |
* Improve docs style by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/474 | |
* Enhancement & sync Chinese docs by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/492 | |
* TorchServe docs by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/539 | |
* Update docs menu by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/564 | |
* Docs for KIE CloseSet & OpenSet by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/573 | |
* Fix broken links by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/576 | |
* Docstring for text recognition models by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/562 | |
* Add MMFlow & MIM by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/597 | |
* Add MMFewShot by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/621 | |
* Update model readme by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/604 | |
* Add input size check to model_inference by @mpena-vina in https://github.com/open-mmlab/mmocr/pull/633 | |
* Docstring for textdet models by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/561 | |
* Add MMHuman3D in readme by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/644 | |
* Use shared menu from theme instead by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/655 | |
* Refactor docs structure by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/662 | |
* Docs fix by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/664 | |
### Enhancements | |
* Use bounding box around polygon instead of within polygon by @alexander-soare in https://github.com/open-mmlab/mmocr/pull/469 | |
* Add CITATION.cff by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/476 | |
* Add py3.9 CI by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/475 | |
* update model-index.yml by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/484 | |
* Use container in CI by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/502 | |
* CircleCI Setup by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/611 | |
* Remove unnecessary custom_import from train.py by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/603 | |
* Change the upper version of mmcv to 1.5.0 by @zhouzaida in https://github.com/open-mmlab/mmocr/pull/628 | |
* Update CircleCI by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/631 | |
* Pass custom_hooks to MMCV by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/609 | |
* Skip CI when some specific files were changed by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/642 | |
* Add markdown linter in pre-commit hook by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/643 | |
* Use shape from loaded image by @cuhk-hbsun in https://github.com/open-mmlab/mmocr/pull/652 | |
* Cancel previous runs that are not completed by @Harold-lkk in https://github.com/open-mmlab/mmocr/pull/666 | |
### Bug Fixes | |
* Modify algorithm "sar" weights path in metafile by @ShoupingShan in https://github.com/open-mmlab/mmocr/pull/581 | |
* Fix Cuda CI by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/472 | |
* Fix image export in test.py for KIE models by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/486 | |
* Allow invalid polygons in intersection and union by default by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/471 | |
* Update checkpoints' links for SATRN by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/518 | |
* Fix converting to onnx bug because of changing key from img_shape to resize_shape by @Harold-lkk in https://github.com/open-mmlab/mmocr/pull/523 | |
* Fix PyTorch 1.6 incompatible checkpoints by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/540 | |
* Fix paper field in metafiles by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/550 | |
* Unify recognition task names in metafiles by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/548 | |
* Fix py3.9 CI by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/563 | |
* Always map location to cpu when loading checkpoint by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/567 | |
* Fix wrong model builder in recog_test_imgs by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/574 | |
* Improve dbnet r50 by fixing img std by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/578 | |
* Fix resource warning: unclosed file by @cuhk-hbsun in https://github.com/open-mmlab/mmocr/pull/577 | |
* Fix bug that same start_point for different texts in draw_texts_by_pil by @cuhk-hbsun in https://github.com/open-mmlab/mmocr/pull/587 | |
* Keep original texts for kie by @cuhk-hbsun in https://github.com/open-mmlab/mmocr/pull/588 | |
* Fix random seed by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/600 | |
* Fix DBNet_r50 config by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/625 | |
* Change SBC case to DBC case by @cuhk-hbsun in https://github.com/open-mmlab/mmocr/pull/632 | |
* Fix kie demo by @innerlee in https://github.com/open-mmlab/mmocr/pull/610 | |
* fix type check by @cuhk-hbsun in https://github.com/open-mmlab/mmocr/pull/650 | |
* Remove depreciated image validator in totaltext converter by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/661 | |
* Fix change locals() dict by @Fei-Wang in https://github.com/open-mmlab/mmocr/pull/663 | |
* fix #614: textsnake targets by @HolyCrap96 in https://github.com/open-mmlab/mmocr/pull/660 | |
### New Contributors | |
* @alexander-soare made their first contribution in https://github.com/open-mmlab/mmocr/pull/469 | |
* @A465539338 made their first contribution in https://github.com/open-mmlab/mmocr/pull/364 | |
* @fatfishZhao made their first contribution in https://github.com/open-mmlab/mmocr/pull/506 | |
* @baudm made their first contribution in https://github.com/open-mmlab/mmocr/pull/497 | |
* @ShoupingShan made their first contribution in https://github.com/open-mmlab/mmocr/pull/581 | |
* @apiaccess21 made their first contribution in https://github.com/open-mmlab/mmocr/pull/593 | |
* @zhouzaida made their first contribution in https://github.com/open-mmlab/mmocr/pull/628 | |
* @mpena-vina made their first contribution in https://github.com/open-mmlab/mmocr/pull/633 | |
* @Fei-Wang made their first contribution in https://github.com/open-mmlab/mmocr/pull/663 | |
**Full Changelog**: https://github.com/open-mmlab/mmocr/compare/v0.3.0...0.4.0 | |
## v0.3.0 (25/8/2021) | |
### Highlights | |
1. We add a new text recognition model -- SATRN! Its pretrained checkpoint achieves the best performance over other provided text recognition models. A lighter version of SATRN is also released which can obtain ~98% of the performance of the original model with only 45 MB in size. ([@2793145003](https://github.com/2793145003)) [#405](https://github.com/open-mmlab/mmocr/pull/405) | |
2. Improve the demo script, `ocr.py`, which supports applying end-to-end text detection, text recognition and key information extraction models on images with easy-to-use commands. Users can find its full documentation in the demo section. ([@samayala22](https://github.com/samayala22), [@manjrekarom](https://github.com/manjrekarom)) [#371](https://github.com/open-mmlab/mmocr/pull/371), [#386](https://github.com/open-mmlab/mmocr/pull/386), [#400](https://github.com/open-mmlab/mmocr/pull/400), [#374](https://github.com/open-mmlab/mmocr/pull/374), [#428](https://github.com/open-mmlab/mmocr/pull/428) | |
3. Our documentation is reorganized into a clearer structure. More useful contents are on the way! [#409](https://github.com/open-mmlab/mmocr/pull/409), [#454](https://github.com/open-mmlab/mmocr/pull/454) | |
4. The requirement of `Polygon3` is removed since this project is no longer maintained or distributed. We unified all its references to equivalent substitutions in `shapely` instead. [#448](https://github.com/open-mmlab/mmocr/pull/448) | |
### Breaking Changes & Migration Guide | |
1. Upgrade version requirement of MMDetection to 2.14.0 to avoid bugs [#382](https://github.com/open-mmlab/mmocr/pull/382) | |
2. MMOCR now has its own model and layer registries inherited from MMDetection's or MMCV's counterparts. ([#436](https://github.com/open-mmlab/mmocr/pull/436)) The modified hierarchical structure of the model registries are now organized as follows. | |
```text | |
mmcv.MODELS -> mmdet.BACKBONES -> BACKBONES | |
mmcv.MODELS -> mmdet.NECKS -> NECKS | |
mmcv.MODELS -> mmdet.ROI_EXTRACTORS -> ROI_EXTRACTORS | |
mmcv.MODELS -> mmdet.HEADS -> HEADS | |
mmcv.MODELS -> mmdet.LOSSES -> LOSSES | |
mmcv.MODELS -> mmdet.DETECTORS -> DETECTORS | |
mmcv.ACTIVATION_LAYERS -> ACTIVATION_LAYERS | |
mmcv.UPSAMPLE_LAYERS -> UPSAMPLE_LAYERS | |
``` | |
To migrate your old implementation to our new backend, you need to change the import path of any registries and their corresponding builder functions (including `build_detectors`) from `mmdet.models.builder` to `mmocr.models.builder`. If you have referred to any model or layer of MMDetection or MMCV in your model config, you need to add `mmdet.` or `mmcv.` prefix to its name to inform the model builder of the right namespace to work on. | |
Interested users may check out [MMCV's tutorial on Registry](https://mmcv.readthedocs.io/en/latest/understand_mmcv/registry.html) for in-depth explanations on its mechanism. | |
### New Features | |
- Automatically replace SyncBN with BN for inference [#420](https://github.com/open-mmlab/mmocr/pull/420), [#453](https://github.com/open-mmlab/mmocr/pull/453) | |
- Support batch inference for CRNN and SegOCR [#407](https://github.com/open-mmlab/mmocr/pull/407) | |
- Support exporting documentation in pdf or epub format [#406](https://github.com/open-mmlab/mmocr/pull/406) | |
- Support `persistent_workers` option in data loader [#459](https://github.com/open-mmlab/mmocr/pull/459) | |
### Bug Fixes | |
- Remove depreciated key in kie_test_imgs.py [#381](https://github.com/open-mmlab/mmocr/pull/381) | |
- Fix dimension mismatch in batch testing/inference of DBNet [#383](https://github.com/open-mmlab/mmocr/pull/383) | |
- Fix the problem of dice loss which stays at 1 with an empty target given [#408](https://github.com/open-mmlab/mmocr/pull/408) | |
- Fix a wrong link in ocr.py ([@naarkhoo](https://github.com/naarkhoo)) [#417](https://github.com/open-mmlab/mmocr/pull/417) | |
- Fix undesired assignment to "pretrained" in test.py [#418](https://github.com/open-mmlab/mmocr/pull/418) | |
- Fix a problem in polygon generation of DBNet [#421](https://github.com/open-mmlab/mmocr/pull/421), [#443](https://github.com/open-mmlab/mmocr/pull/443) | |
- Skip invalid annotations in totaltext_converter [#438](https://github.com/open-mmlab/mmocr/pull/438) | |
- Add zero division handler in poly utils, remove Polygon3 [#448](https://github.com/open-mmlab/mmocr/pull/448) | |
### Improvements | |
- Replace lanms-proper with lanms-neo to support installation on Windows (with special thanks to [@gen-ko](https://github.com/gen-ko) who has re-distributed this package!) | |
- Support MIM [#394](https://github.com/open-mmlab/mmocr/pull/394) | |
- Add tests for PyTorch 1.9 in CI [#401](https://github.com/open-mmlab/mmocr/pull/401) | |
- Enables fullscreen layout in readthedocs [#413](https://github.com/open-mmlab/mmocr/pull/413) | |
- General documentation enhancement [#395](https://github.com/open-mmlab/mmocr/pull/395) | |
- Update version checker [#427](https://github.com/open-mmlab/mmocr/pull/427) | |
- Add copyright info [#439](https://github.com/open-mmlab/mmocr/pull/439) | |
- Update citation information [#440](https://github.com/open-mmlab/mmocr/pull/440) | |
### Contributors | |
We thank [@2793145003](https://github.com/2793145003), [@samayala22](https://github.com/samayala22), [@manjrekarom](https://github.com/manjrekarom), [@naarkhoo](https://github.com/naarkhoo), [@gen-ko](https://github.com/gen-ko), [@duanjiaqi](https://github.com/duanjiaqi), [@gaotongxiao](https://github.com/gaotongxiao), [@cuhk-hbsun](https://github.com/cuhk-hbsun), [@innerlee](https://github.com/innerlee), [@wdsd641417025](https://github.com/wdsd641417025) for their contribution to this release! | |
## v0.2.1 (20/7/2021) | |
### Highlights | |
1. Upgrade to use MMCV-full **>= 1.3.8** and MMDetection **>= 2.13.0** for latest features | |
2. Add ONNX and TensorRT export tool, supporting the deployment of DBNet, PSENet, PANet and CRNN (experimental) [#278](https://github.com/open-mmlab/mmocr/pull/278), [#291](https://github.com/open-mmlab/mmocr/pull/291), [#300](https://github.com/open-mmlab/mmocr/pull/300), [#328](https://github.com/open-mmlab/mmocr/pull/328) | |
3. Unified parameter initialization method which uses init_cfg in config files [#365](https://github.com/open-mmlab/mmocr/pull/365) | |
### New Features | |
- Support TextOCR dataset [#293](https://github.com/open-mmlab/mmocr/pull/293) | |
- Support Total-Text dataset [#266](https://github.com/open-mmlab/mmocr/pull/266), [#273](https://github.com/open-mmlab/mmocr/pull/273), [#357](https://github.com/open-mmlab/mmocr/pull/357) | |
- Support grouping text detection box into lines [#290](https://github.com/open-mmlab/mmocr/pull/290), [#304](https://github.com/open-mmlab/mmocr/pull/304) | |
- Add benchmark_processing script that benchmarks data loading process [#261](https://github.com/open-mmlab/mmocr/pull/261) | |
- Add SynthText preprocessor for text recognition models [#351](https://github.com/open-mmlab/mmocr/pull/351), [#361](https://github.com/open-mmlab/mmocr/pull/361) | |
- Support batch inference during testing [#310](https://github.com/open-mmlab/mmocr/pull/310) | |
- Add user-friendly OCR inference script [#366](https://github.com/open-mmlab/mmocr/pull/366) | |
### Bug Fixes | |
- Fix improper class ignorance in SDMGR Loss [#221](https://github.com/open-mmlab/mmocr/pull/221) | |
- Fix potential numerical zero division error in DRRG [#224](https://github.com/open-mmlab/mmocr/pull/224) | |
- Fix installing requirements with pip and mim [#242](https://github.com/open-mmlab/mmocr/pull/242) | |
- Fix dynamic input error of DBNet [#269](https://github.com/open-mmlab/mmocr/pull/269) | |
- Fix space parsing error in LineStrParser [#285](https://github.com/open-mmlab/mmocr/pull/285) | |
- Fix textsnake decode error [#264](https://github.com/open-mmlab/mmocr/pull/264) | |
- Correct isort setup [#288](https://github.com/open-mmlab/mmocr/pull/288) | |
- Fix a bug in SDMGR config [#316](https://github.com/open-mmlab/mmocr/pull/316) | |
- Fix kie_test_img for KIE nonvisual [#319](https://github.com/open-mmlab/mmocr/pull/319) | |
- Fix metafiles [#342](https://github.com/open-mmlab/mmocr/pull/342) | |
- Fix different device problem in FCENet [#334](https://github.com/open-mmlab/mmocr/pull/334) | |
- Ignore improper tailing empty characters in annotation files [#358](https://github.com/open-mmlab/mmocr/pull/358) | |
- Docs fixes [#247](https://github.com/open-mmlab/mmocr/pull/247), [#255](https://github.com/open-mmlab/mmocr/pull/255), [#265](https://github.com/open-mmlab/mmocr/pull/265), [#267](https://github.com/open-mmlab/mmocr/pull/267), [#268](https://github.com/open-mmlab/mmocr/pull/268), [#270](https://github.com/open-mmlab/mmocr/pull/270), [#276](https://github.com/open-mmlab/mmocr/pull/276), [#287](https://github.com/open-mmlab/mmocr/pull/287), [#330](https://github.com/open-mmlab/mmocr/pull/330), [#355](https://github.com/open-mmlab/mmocr/pull/355), [#367](https://github.com/open-mmlab/mmocr/pull/367) | |
- Fix NRTR config [#356](https://github.com/open-mmlab/mmocr/pull/356), [#370](https://github.com/open-mmlab/mmocr/pull/370) | |
### Improvements | |
- Add backend for resizeocr [#244](https://github.com/open-mmlab/mmocr/pull/244) | |
- Skip image processing pipelines in SDMGR novisual [#260](https://github.com/open-mmlab/mmocr/pull/260) | |
- Speedup DBNet [#263](https://github.com/open-mmlab/mmocr/pull/263) | |
- Update mmcv installation method in workflow [#323](https://github.com/open-mmlab/mmocr/pull/323) | |
- Add part of Chinese documentations [#353](https://github.com/open-mmlab/mmocr/pull/353), [#362](https://github.com/open-mmlab/mmocr/pull/362) | |
- Add support for ConcatDataset with two workflows [#348](https://github.com/open-mmlab/mmocr/pull/348) | |
- Add list_from_file and list_to_file utils [#226](https://github.com/open-mmlab/mmocr/pull/226) | |
- Speed up sort_vertex [#239](https://github.com/open-mmlab/mmocr/pull/239) | |
- Support distributed evaluation of KIE [#234](https://github.com/open-mmlab/mmocr/pull/234) | |
- Add pretrained FCENet on IC15 [#258](https://github.com/open-mmlab/mmocr/pull/258) | |
- Support CPU for OCR demo [#227](https://github.com/open-mmlab/mmocr/pull/227) | |
- Avoid extra image pre-processing steps [#375](https://github.com/open-mmlab/mmocr/pull/375) | |
## v0.2.0 (18/5/2021) | |
### Highlights | |
1. Add the NER approach Bert-softmax (NAACL'2019) | |
2. Add the text detection method DRRG (CVPR'2020) | |
3. Add the text detection method FCENet (CVPR'2021) | |
4. Increase the ease of use via adding text detection and recognition end-to-end demo, and colab online demo. | |
5. Simplify the installation. | |
### New Features | |
- Add Bert-softmax for Ner task [#148](https://github.com/open-mmlab/mmocr/pull/148) | |
- Add DRRG [#189](https://github.com/open-mmlab/mmocr/pull/189) | |
- Add FCENet [#133](https://github.com/open-mmlab/mmocr/pull/133) | |
- Add end-to-end demo [#105](https://github.com/open-mmlab/mmocr/pull/105) | |
- Support batch inference [#86](https://github.com/open-mmlab/mmocr/pull/86) [#87](https://github.com/open-mmlab/mmocr/pull/87) [#178](https://github.com/open-mmlab/mmocr/pull/178) | |
- Add TPS preprocessor for text recognition [#117](https://github.com/open-mmlab/mmocr/pull/117) [#135](https://github.com/open-mmlab/mmocr/pull/135) | |
- Add demo documentation [#151](https://github.com/open-mmlab/mmocr/pull/151) [#166](https://github.com/open-mmlab/mmocr/pull/166) [#168](https://github.com/open-mmlab/mmocr/pull/168) [#170](https://github.com/open-mmlab/mmocr/pull/170) [#171](https://github.com/open-mmlab/mmocr/pull/171) | |
- Add checkpoint for Chinese recognition [#156](https://github.com/open-mmlab/mmocr/pull/156) | |
- Add metafile [#175](https://github.com/open-mmlab/mmocr/pull/175) [#176](https://github.com/open-mmlab/mmocr/pull/176) [#177](https://github.com/open-mmlab/mmocr/pull/177) [#182](https://github.com/open-mmlab/mmocr/pull/182) [#183](https://github.com/open-mmlab/mmocr/pull/183) | |
- Add support for numpy array inference [#74](https://github.com/open-mmlab/mmocr/pull/74) | |
### Bug Fixes | |
- Fix the duplicated point bug due to transform for textsnake [#130](https://github.com/open-mmlab/mmocr/pull/130) | |
- Fix CTC loss NaN [#159](https://github.com/open-mmlab/mmocr/pull/159) | |
- Fix error raised if result is empty in demo [#144](https://github.com/open-mmlab/mmocr/pull/141) | |
- Fix results missing if one image has a large number of boxes [#98](https://github.com/open-mmlab/mmocr/pull/98) | |
- Fix package missing in dockerfile [#109](https://github.com/open-mmlab/mmocr/pull/109) | |
### Improvements | |
- Simplify installation procedure via removing compiling [#188](https://github.com/open-mmlab/mmocr/pull/188) | |
- Speed up panet post processing so that it can detect dense texts [#188](https://github.com/open-mmlab/mmocr/pull/188) | |
- Add zh-CN README [#70](https://github.com/open-mmlab/mmocr/pull/70) [#95](https://github.com/open-mmlab/mmocr/pull/95) | |
- Support windows [#89](https://github.com/open-mmlab/mmocr/pull/89) | |
- Add Colab [#147](https://github.com/open-mmlab/mmocr/pull/147) [#199](https://github.com/open-mmlab/mmocr/pull/199) | |
- Add 1-step installation using conda environment [#193](https://github.com/open-mmlab/mmocr/pull/193) [#194](https://github.com/open-mmlab/mmocr/pull/194) [#195](https://github.com/open-mmlab/mmocr/pull/195) | |
## v0.1.0 (7/4/2021) | |
### Highlights | |
- MMOCR is released. | |
### Main Features | |
- Support text detection, text recognition and the corresponding downstream tasks such as key information extraction. | |
- For text detection, support both single-step (`PSENet`, `PANet`, `DBNet`, `TextSnake`) and two-step (`MaskRCNN`) methods. | |
- For text recognition, support CTC-loss based method `CRNN`; Encoder-decoder (with attention) based methods `SAR`, `Robustscanner`; Segmentation based method `SegOCR`; Transformer based method `NRTR`. | |
- For key information extraction, support GCN based method `SDMG-R`. | |
- Provide checkpoints and log files for all of the methods above. | |