|
1 | 1 | # Changelog |
2 | 2 |
|
| 3 | +## v0.4.0 (15/12/2021) |
| 4 | + |
| 5 | +### Highlights |
| 6 | + |
| 7 | +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) |
| 8 | +2. We are also working hard to fulfill the requests from our community. |
| 9 | +[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 |
| 10 | +a demo script to convert WildReceipt to open set domain, though it cannot |
| 11 | +take the full advantage of OpenSet format. For more information, please read our |
| 12 | +[tutorial](https://mmocr.readthedocs.io/en/latest/tutorials/kie_closeset_openset.html). |
| 13 | +3. APIs of models can be exposed through TorchServe. [Docs](https://mmocr.readthedocs.io/en/latest/model_serving.html) |
| 14 | + |
| 15 | +### Breaking Changes & Migration Guide |
| 16 | + |
| 17 | +#### Postprocessor |
| 18 | + |
| 19 | +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. |
| 20 | + |
| 21 | +**Migration Guide**: Find a similar line from detection model's config: |
| 22 | +``` |
| 23 | +text_repr_type=xxx, |
| 24 | +``` |
| 25 | +And replace it with |
| 26 | +``` |
| 27 | +postprocessor=dict(type='{MODEL_NAME}Postprocessor', text_repr_type=xxx)), |
| 28 | +``` |
| 29 | +Take a snippet of PANet's config as an example. Before the change, its config for `bbox_head` looks like: |
| 30 | +``` |
| 31 | + bbox_head=dict( |
| 32 | + type='PANHead', |
| 33 | + text_repr_type='poly', |
| 34 | + in_channels=[128, 128, 128, 128], |
| 35 | + out_channels=6, |
| 36 | + loss=dict(type='PANLoss')), |
| 37 | +``` |
| 38 | +Afterwards: |
| 39 | +``` |
| 40 | + bbox_head=dict( |
| 41 | + type='PANHead', |
| 42 | + in_channels=[128, 128, 128, 128], |
| 43 | + out_channels=6, |
| 44 | + loss=dict(type='PANLoss'), |
| 45 | + postprocessor=dict(type='PANPostprocessor', text_repr_type='poly')), |
| 46 | +``` |
| 47 | +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). |
| 48 | + |
| 49 | +#### New Config Structure |
| 50 | + |
| 51 | +We reorganized the `configs/` directory by extracting reusable sections into `configs/_base_`. Now the directory tree of `configs/_base_` is organized as follows: |
| 52 | + |
| 53 | +``` |
| 54 | +_base_ |
| 55 | +├── det_datasets |
| 56 | +├── det_models |
| 57 | +├── det_pipelines |
| 58 | +├── recog_datasets |
| 59 | +├── recog_models |
| 60 | +├── recog_pipelines |
| 61 | +└── schedules |
| 62 | +``` |
| 63 | + |
| 64 | +Most of model configs are making full use of base configs now, which makes the overall structural clearer and facilitates fair |
| 65 | +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. |
| 66 | + |
| 67 | +### New Features |
| 68 | +* Support openset kie by @cuhk-hbsun in https://github.com/open-mmlab/mmocr/pull/498 |
| 69 | +* Add converter for the Open Images v5 text annotations by Krylov et al. by @baudm in https://github.com/open-mmlab/mmocr/pull/497 |
| 70 | +* Support Chinese for kie show result by @cuhk-hbsun in https://github.com/open-mmlab/mmocr/pull/464 |
| 71 | +* Add TorchServe support for text detection and recognition by @Harold-lkk in https://github.com/open-mmlab/mmocr/pull/522 |
| 72 | +* Save filename in text detection test results by @cuhk-hbsun in https://github.com/open-mmlab/mmocr/pull/570 |
| 73 | +* Add codespell pre-commit hook and fix typos by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/520 |
| 74 | +* Avoid duplicate placeholder docs in CN by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/582 |
| 75 | +* Save results to json file for kie. by @cuhk-hbsun in https://github.com/open-mmlab/mmocr/pull/589 |
| 76 | +* Add SAR_CN to ocr.py by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/579 |
| 77 | +* mim extension for windows by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/641 |
| 78 | +* Support muitiple pipelines for different datasets by @cuhk-hbsun in https://github.com/open-mmlab/mmocr/pull/657 |
| 79 | +* ABINet Framework by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/651 |
| 80 | + |
| 81 | +### Refactoring |
| 82 | +* Refactor textrecog config structure by @cuhk-hbsun in https://github.com/open-mmlab/mmocr/pull/617 |
| 83 | +* Refactor text detection config by @cuhk-hbsun in https://github.com/open-mmlab/mmocr/pull/626 |
| 84 | +* refactor transformer modules by @cuhk-hbsun in https://github.com/open-mmlab/mmocr/pull/618 |
| 85 | +* refactor textdet postprocess by @cuhk-hbsun in https://github.com/open-mmlab/mmocr/pull/640 |
| 86 | + |
| 87 | +### Docs |
| 88 | +* C++ example section by @apiaccess21 in https://github.com/open-mmlab/mmocr/pull/593 |
| 89 | +* install.md Chinese section by @A465539338 in https://github.com/open-mmlab/mmocr/pull/364 |
| 90 | +* Add Chinese Translation of deployment.md. by @fatfishZhao in https://github.com/open-mmlab/mmocr/pull/506 |
| 91 | +* Fix a model link and add the metafile for SATRN by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/473 |
| 92 | +* Improve docs style by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/474 |
| 93 | +* Enhancement & sync Chinese docs by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/492 |
| 94 | +* TorchServe docs by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/539 |
| 95 | +* Update docs menu by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/564 |
| 96 | +* Docs for KIE CloseSet & OpenSet by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/573 |
| 97 | +* Fix broken links by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/576 |
| 98 | +* Docstring for text recognition models by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/562 |
| 99 | +* Add MMFlow & MIM by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/597 |
| 100 | +* Add MMFewShot by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/621 |
| 101 | +* Update model readme by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/604 |
| 102 | +* Add input size check to model_inference by @mpena-vina in https://github.com/open-mmlab/mmocr/pull/633 |
| 103 | +* Docstring for textdet models by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/561 |
| 104 | +* Add MMHuman3D in readme by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/644 |
| 105 | +* Use shared menu from theme instead by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/655 |
| 106 | +* Refactor docs structure by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/662 |
| 107 | +* Docs fix by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/664 |
| 108 | + |
| 109 | +### Enhancements |
| 110 | +* Use bounding box around polygon instead of within polygon by @alexander-soare in https://github.com/open-mmlab/mmocr/pull/469 |
| 111 | +* Add CITATION.cff by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/476 |
| 112 | +* Add py3.9 CI by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/475 |
| 113 | +* update model-index.yml by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/484 |
| 114 | +* Use container in CI by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/502 |
| 115 | +* CircleCI Setup by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/611 |
| 116 | +* Remove unnecessary custom_import from train.py by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/603 |
| 117 | +* Change the upper version of mmcv to 1.5.0 by @zhouzaida in https://github.com/open-mmlab/mmocr/pull/628 |
| 118 | +* Update CircleCI by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/631 |
| 119 | +* Pass custom_hooks to MMCV by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/609 |
| 120 | +* Skip CI when some specific files were changed by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/642 |
| 121 | +* Add markdown linter in pre-commit hook by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/643 |
| 122 | +* Use shape from loaded image by @cuhk-hbsun in https://github.com/open-mmlab/mmocr/pull/652 |
| 123 | +* Cancel previous runs that are not completed by @Harold-lkk in https://github.com/open-mmlab/mmocr/pull/666 |
| 124 | + |
| 125 | +### Bug Fixes |
| 126 | +* Modify algorithm "sar" weights path in metafile by @ShoupingShan in https://github.com/open-mmlab/mmocr/pull/581 |
| 127 | +* Fix Cuda CI by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/472 |
| 128 | +* Fix image export in test.py for KIE models by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/486 |
| 129 | +* Allow invalid polygons in intersection and union by default by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/471 |
| 130 | +* Update checkpoints' links for SATRN by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/518 |
| 131 | +* 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 |
| 132 | +* Fix PyTorch 1.6 incompatible checkpoints by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/540 |
| 133 | +* Fix paper field in metafiles by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/550 |
| 134 | +* Unify recognition task names in metafiles by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/548 |
| 135 | +* Fix py3.9 CI by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/563 |
| 136 | +* Always map location to cpu when loading checkpoint by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/567 |
| 137 | +* Fix wrong model builder in recog_test_imgs by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/574 |
| 138 | +* Improve dbnet r50 by fixing img std by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/578 |
| 139 | +* Fix resource warning: unclosed file by @cuhk-hbsun in https://github.com/open-mmlab/mmocr/pull/577 |
| 140 | +* 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 |
| 141 | +* Keep original texts for kie by @cuhk-hbsun in https://github.com/open-mmlab/mmocr/pull/588 |
| 142 | +* Fix random seed by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/600 |
| 143 | +* Fix DBNet_r50 config by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/625 |
| 144 | +* Change SBC case to DBC case by @cuhk-hbsun in https://github.com/open-mmlab/mmocr/pull/632 |
| 145 | +* Fix kie demo by @innerlee in https://github.com/open-mmlab/mmocr/pull/610 |
| 146 | +* fix type check by @cuhk-hbsun in https://github.com/open-mmlab/mmocr/pull/650 |
| 147 | +* Remove depreciated image validator in totaltext converter by @gaotongxiao in https://github.com/open-mmlab/mmocr/pull/661 |
| 148 | +* Fix change locals() dict by @Fei-Wang in https://github.com/open-mmlab/mmocr/pull/663 |
| 149 | +* fix #614: textsnake targets by @HolyCrap96 in https://github.com/open-mmlab/mmocr/pull/660 |
| 150 | + |
| 151 | +## New Contributors |
| 152 | +* @alexander-soare made their first contribution in https://github.com/open-mmlab/mmocr/pull/469 |
| 153 | +* @A465539338 made their first contribution in https://github.com/open-mmlab/mmocr/pull/364 |
| 154 | +* @fatfishZhao made their first contribution in https://github.com/open-mmlab/mmocr/pull/506 |
| 155 | +* @baudm made their first contribution in https://github.com/open-mmlab/mmocr/pull/497 |
| 156 | +* @ShoupingShan made their first contribution in https://github.com/open-mmlab/mmocr/pull/581 |
| 157 | +* @apiaccess21 made their first contribution in https://github.com/open-mmlab/mmocr/pull/593 |
| 158 | +* @zhouzaida made their first contribution in https://github.com/open-mmlab/mmocr/pull/628 |
| 159 | +* @mpena-vina made their first contribution in https://github.com/open-mmlab/mmocr/pull/633 |
| 160 | +* @Fei-Wang made their first contribution in https://github.com/open-mmlab/mmocr/pull/663 |
| 161 | + |
| 162 | +**Full Changelog**: https://github.com/open-mmlab/mmocr/compare/v0.3.0...0.4.0 |
| 163 | + |
3 | 164 | ## v0.3.0 (25/8/2021) |
4 | 165 |
|
5 | 166 | ### Highlights |
|
0 commit comments