Releases: open-mmlab/mmocr
MMOCR Release v1.0.1
We are thrilled to announce the release of MMOCR v1.0.1! This version contains important bug fixes and feature enhancements.
🆕 New Features
- Scheduler visualization from mmpretrain is now added to MMOCR thanks to @A-new-b #1866
- AWS S3 obtainer support @EnableAsync #1888
🛠️ Bug Fixes
- Fixed TypeError bug by @frankstorming #1868
- Updated IIIT5K md5 by @gaotongxiao #1848
- Fixed some Chinese display problems by @KevinNuNu #1922
- Updated branches in the continuous integration (CI) setup by @gaotongxiao #1842
📝 Documentation Improvements
- Removed version tab from the documentation by @gaotongxiao #1843
- Updated data preparation guide by @Harold-lkk #1784
- Updated English version of dataset_preparer.md by @Lum1104 #1860
New Contributors
- @frankstorming made their first contribution in #1868
- @A-new-b made their first contribution in #1866
- @Lum1104 made their first contribution in #1860
- @ly015 made their first contribution in #1944
Full Changelog: v1.0.0...v1.0.1
MMOCR Release v1.0.0
We are excited to announce the first official release of MMOCR 1.0, with many enhancements, bug fixes, and the introduction of new dataset support!
🌟 Highlights
- Support for SCUT-CTW1500, SynthText, and MJSynth datasets
- Updated FAQ and documentation
- Deprecation of file_client_args in favor of backend_args
- Added a new MMOCR tutorial notebook
🆕 New Features & Enhancement
- Add SCUT-CTW1500 by @Mountchicken in #1677
- Cherry Pick #1205 by @gaotongxiao in #1774
- Make lanms-neo optional by @gaotongxiao in #1772
- SynthText by @gaotongxiao in #1779
- Deprecate file_client_args and use backend_args instead by @gaotongxiao in #1765
- MJSynth by @gaotongxiao in #1791
- Add MMOCR tutorial notebook by @gaotongxiao in #1771
- decouple batch_size to det_batch_size, rec_batch_size and kie_batch_size in MMOCRInferencer by @hugotong6425 in #1801
- Accepts local-rank in train.py and test.py by @gaotongxiao in #1806
- update stitch_boxes_into_lines by @cherryjm in #1824
- Add tests for pytorch 2.0 by @gaotongxiao in #1836
📝 Docs
- FAQ by @gaotongxiao in #1773
- Remove LoadImageFromLMDB from docs by @gaotongxiao in #1767
- Mark projects in docs by @gaotongxiao in #1766
- add opendatalab download link by @jorie-peng in #1753
- Fix some deadlinks in the docs by @gaotongxiao in #1469
- Fix quick run by @gaotongxiao in #1775
- Dataset by @gaotongxiao in #1782
- Update faq by @gaotongxiao in #1817
- more social network links by @fengshiwest in #1818
- Update docs after branch switching by @gaotongxiao in #1834
🛠️ Bug Fixes:
- Place dicts to .mim by @gaotongxiao in #1781
- Test svtr_small instead of svtr_tiny by @gaotongxiao in #1786
- Add pse weight to metafile by @gaotongxiao in #1787
- Synthtext metafile by @gaotongxiao in #1788
- Clear up some unused scripts by @gaotongxiao in #1798
- if dst not exists, when move a single file may raise a file not exists error. by @KevinNuNu in #1803
- CTW1500 by @gaotongxiao in #1814
- MJSynth & SynthText Dataset Preparer config by @gaotongxiao in #1805
- Use poly_intersection instead of poly.intersection to avoid sup… by @gaotongxiao in #1811
- Abinet: fix ValueError: Blur limit must be odd when centered=True. Got: (3, 6) by @hugotong6425 in #1821
- Bug generated during kie inference visualization by @Yangget in #1830
- Revert sync bn in inferencer by @gaotongxiao in #1832
- Fix mmdet digit version by @gaotongxiao in #1840
🎉 New Contributors
- @jorie-peng made their first contribution in #1753
- @hugotong6425 made their first contribution in #1801
- @fengshiwest made their first contribution in #1818
- @cherryjm made their first contribution in #1824
- @Yangget made their first contribution in #1830
Thank you to all the contributors for making this release possible! We're excited about the new features and enhancements in this version, and we're looking forward to your feedback and continued support. Happy coding! 🚀
Full Changelog: v1.0.0rc6...v1.0.0
MMOCR Release v1.0.0rc6
Highlights
- Two new models, ABCNet v2 (inference only) and SPTS are added to
projects/
folder. - Announcing
Inferencer
, a unified inference interface in OpenMMLab for everyone's easy access and quick inference with all the pre-trained weights. Docs - Users can use test-time augmentation for text recognition tasks. Docs
- Support batch augmentation through
BatchAugSampler
, which is a technique used in SPTS. - Dataset Preparer has been refactored to allow more flexible configurations. Besides, users are now able to prepare text recognition datasets in LMDB formats. Docs
- Some textspotting datasets have been revised to enhance the correctness and consistency with the common practice.
- Potential spurious warnings from
shapely
have been eliminated.
Dependency
This version requires MMEngine >= 0.6.0, MMCV >= 2.0.0rc4 and MMDet >= 3.0.0rc5.
New Features & Enhancements
- Discard deprecated lmdb dataset format and only support img+label now by @gaotongxiao in #1681
- abcnetv2 inference by @Harold-lkk in #1657
- Add RepeatAugSampler by @gaotongxiao in #1678
- SPTS by @gaotongxiao in #1696
- Refactor Inferencers by @gaotongxiao in #1608
- Dynamic return type for rescale_polygons by @gaotongxiao in #1702
- Revise upstream version limit by @gaotongxiao in #1703
- TextRecogCropConverter add crop with opencv warpPersepective function by @KevinNuNu in #1667
- change cudnn benchmark to false by @Harold-lkk in #1705
- Add ST-pretrained DB-series models and logs by @gaotongxiao in #1635
- Only keep meta and state_dict when publish model by @Harold-lkk in #1729
- Rec TTA by @Harold-lkk in #1401
- Speedup formatting by replacing np.transpose with torch… by @gaotongxiao in #1719
- Support auto import modules from registry. by @Harold-lkk in #1731
- Support batch visualization & dumping in Inferencer by @gaotongxiao in #1722
- add a new argument font_properties to set a specific font file in order to draw Chinese characters properly by @KevinNuNu in #1709
- Refactor data converter and gather by @Harold-lkk in #1707
- Support batch augmentation through BatchAugSampler by @gaotongxiao in #1757
- Put all registry into registry.py by @Harold-lkk in #1760
- train by @gaotongxiao in #1756
- configs for regression benchmark by @gaotongxiao in #1755
- Support lmdb format in Dataset Preparer by @gaotongxiao in #1762
Docs
- update the link of DBNet by @AllentDan in #1672
- Add notice for default branch switching by @gaotongxiao in #1693
- docs: Add twitter discord medium youtube link by @vansin in #1724
- Remove unsupported datasets in docs by @gaotongxiao in #1670
Bug Fixes
- Update dockerfile by @gaotongxiao in #1671
- Explicitly create np object array for compatibility by @gaotongxiao in #1691
- Fix a minor error in docstring by @Mountchicken in #1685
- Fix lint by @triple-Mu in #1694
- Fix LoadOCRAnnotation ut by @Harold-lkk in #1695
- Fix isort pre-commit error by @KevinNuNu in #1697
- Update owners by @xinke-wang in #1699
- Detect intersection before using shapley.intersection to eliminate spurious warnings by @gaotongxiao in #1710
- Fix some inferencer bugs by @gaotongxiao in #1706
- Fix textocr ignore flag by @xinke-wang in #1712
- Add missing softmax in ASTER forward_test by @Mountchicken in #1718
- Fix head in readme by @vansin in #1727
- Fix some browse dataset script bugs and draw textdet gt instance with ignore flags by @KevinNuNu in #1701
- icdar textrecog ann parser skip data with ignore flag by @KevinNuNu in #1708
- bezier_to_polygon -> bezier2polygon by @double22a in #1739
- Fix docs recog CharMetric P/R error definition by @KevinNuNu in #1740
- Remove outdated resources in demo/ by @gaotongxiao in #1747
- Fix wrong ic13 textspotting split data; add lexicons to ic13, ic15 and totaltext by @gaotongxiao in #1758
- SPTS readme by @gaotongxiao in #1761
New Contributors
- @triple-Mu made their first contribution in #1694
- @double22a made their first contribution in #1739
Full Changelog: v1.0.0rc5...v1.0.0rc6
MMOCR Release v1.0.0rc5
Highlights
- Two models, Aster and SVTR, are added to our model zoo. The full implementation of ABCNet is also available now.
- Dataset Preparer supports 5 more datasets: CocoTextV2, FUNSD, TextOCR, NAF, SROIE.
- We have 4 more text recognition transforms, and two helper transforms. See #1646 #1632 #1645 for details.
- The transform,
FixInvalidPolygon
, is getting smarter at dealing with invalid polygons, and now capable of handling more weird annotations. As a result, a complete training cycle on TotalText dataset can be performed bug-free. The weights of DBNet and FCENet pretrained on TotalText are also released.
New Features & Enhancements
- Update ic15 det config according to DataPrepare by @Harold-lkk in #1617
- Refactor icdardataset metainfo to lowercase. by @Harold-lkk in #1620
- Add ASTER Encoder by @Mountchicken in #1239
- Add ASTER decoder by @Mountchicken in #1625
- Add ASTER config by @Mountchicken in #1238
- Update ASTER config by @Mountchicken in #1629
- Support browse_dataset.py to visualize original dataset by @xinke-wang in #1503
- Add CocoTextv2 to dataset preparer by @xinke-wang in #1514
- Add Funsd to dataset preparer by @xinke-wang in #1550
- Add TextOCR to Dataset Preparer by @xinke-wang in #1543
- Refine example projects and readme by @gaotongxiao in #1628
- Enhance FixInvalidPolygon, add RemoveIgnored transform by @gaotongxiao in #1632
- ConditionApply by @Harold-lkk in #1646
- Add NAF to dataset preparer by @Mountchicken in #1609
- Add SROIE to dataset preparer by @FerryHuang in #1639
- Add svtr decoder by @willpat1213 in #1448
- Add missing unit tests by @Mountchicken in #1651
- Add svtr encoder by @willpat1213 in #1483
- ABCNet train by @Harold-lkk in #1610
- Totaltext cfgs for DB and FCE by @gaotongxiao in #1633
- Add Aliases to models by @gaotongxiao in #1611
- SVTR transforms by @gaotongxiao in #1645
- Add SVTR framework and configs by @gaotongxiao in #1621
- Issue Template by @Harold-lkk in #1663
Docs
- Add Chinese translation for browse_dataset.py by @xinke-wang in #1647
- updata abcnet doc by @Harold-lkk in #1658
- update the dbnetpp`s readme file by @zhuyue66 in #1626
Bug Fixes
- nn.SmoothL1Loss beta can not be zero in PyTorch 1.13 version by @Harold-lkk in #1616
- ctc loss bug if target is empty by @Harold-lkk in #1618
- Add torch 1.13 by @gaotongxiao in #1619
- Remove outdated tutorial link by @gaotongxiao in #1627
- Dev 1.x some doc mistakes by @KevinNuNu in #1630
- Support custom font to visualize some languages (e.g. Korean) by @ProtossDragoon in #1567
- db_module_loss,negative number encountered in sqrt by @KevinNuNu in #1640
- Use int instead of np.int by @gaotongxiao in #1636
- Remove support for py3.6 by @gaotongxiao in #1660
New Contributors
- @zhuyue66 made their first contribution in #1626
- @KevinNuNu made their first contribution in #1630
- @FerryHuang made their first contribution in #1639
- @willpat1213 made their first contribution in #1448
Full Changelog: v1.0.0rc4...v1.0.0rc5
MMOCR Release v1.0.0rc4
Highlights
- Dataset Preparer can automatically generate base dataset configs at the end of the preparation process, and supports 6 more datasets: IIIT5k, CUTE80, ICDAR2013, ICDAR2015, SVT, SVTP.
- Introducing our
projects/
folder - implementing new models and features into OpenMMLab's algorithm libraries has long been complained to be troublesome due to the rigorous requirements on code quality, which could hinder the fast iteration of SOTA models and might discourage community members from sharing their latest outcome here. We now introduceprojects/
folder, where some experimental features, frameworks and models can be placed, only needed to satisfy the minimum requirement on the code quality. Everyone is welcome to post their implementation of any great ideas in this folder! We also add the first example project to illustrate what we expect a good project to have (check out the raw content of README.md for more info!). - Inside the
projects/
folder, we are releasing the preview version of ABCNet, which is the first implementation of text spotting models in MMOCR. It's inference-only now, but the full implementation will be available very soon.
New Features & Enhancements
- Add SVT to dataset preparer by @xinke-wang in #1521
- Polish bbox2poly by @gaotongxiao in #1532
- Add SVTP to dataset preparer by @xinke-wang in #1523
- Iiit5k converter by @Harold-lkk in #1530
- Add cute80 to dataset preparer by @xinke-wang in #1522
- Add IC13 preparer by @xinke-wang in #1531
- Add 'Projects/' folder, and the first example project by @gaotongxiao in #1524
- Rename to {dataset-name}_task_train/test by @Harold-lkk in #1541
- Add print_config.py to the tools by @IncludeMathH in #1547
- Add get_md5 by @gaotongxiao in #1553
- Add config generator by @gaotongxiao in #1552
- Support IC15_1811 by @gaotongxiao in #1556
- Update CT80 config by @gaotongxiao in #1555
- Add config generators to all textdet and textrecog configs by @gaotongxiao in #1560
- Refactor TPS by @Mountchicken in #1240
- Add TextSpottingConfigGenerator by @gaotongxiao in #1561
- Add common typing by @Harold-lkk in #1596
- Update textrecog config and readme by @gaotongxiao in #1597
- Support head loss or postprocessor is None for only infer by @Harold-lkk in #1594
- Textspotting datasample by @Harold-lkk in #1593
- Simplify mono_gather by @gaotongxiao in #1588
- ABCNet v1 infer by @Harold-lkk in #1598
Docs
- Add Chinese Guidance on How to Add New Datasets to Dataset Preparer by @xinke-wang in #1506
- Update the qq group link by @vansin in #1569
- Collapse some sections; update logo url by @gaotongxiao in #1571
- Update dataset preparer (CN) by @gaotongxiao in #1591
Bug Fixes
- Fix two bugs in dataset preparer by @xinke-wang in #1513
- Register bug of CLIPResNet by @jyshee in #1517
- Being more conservative on Dataset Preparer by @gaotongxiao in #1520
- python -m pip upgrade in windows by @Harold-lkk in #1525
- Fix wildreceipt metafile by @xinke-wang in #1528
- Fix Dataset Preparer Extract by @xinke-wang in #1527
- Fix ICDARTxtParser by @xinke-wang in #1529
- Fix Dataset Zoo Script by @xinke-wang in #1533
- Fix crop without padding and recog metainfo delete unuse info by @Harold-lkk in #1526
- Automatically create nonexistent directory for base configs by @gaotongxiao in #1535
- Change mmcv.dump to mmengine.dump by @ProtossDragoon in #1540
- mmocr.utils.typing -> mmocr.utils.typing_utils by @gaotongxiao in #1538
- Wildreceipt tests by @gaotongxiao in #1546
- Fix judge exist dir by @Harold-lkk in #1542
- Fix IC13 textdet config by @xinke-wang in #1563
- Fix IC13 textrecog annotations by @gaotongxiao in #1568
- Auto scale lr by @gaotongxiao in #1584
- Fix icdar data parse for text containing separator by @Harold-lkk in #1587
- Fix textspotting ut by @Harold-lkk in #1599
- Fix TextSpottingConfigGenerator and TextSpottingDataConverter by @gaotongxiao in #1604
- Keep E2E Inferencer output simple by @gaotongxiao in #1559
New Contributors
- @jyshee made their first contribution in #1517
- @ProtossDragoon made their first contribution in #1540
- @IncludeMathH made their first contribution in #1547
Full Changelog: v1.0.0rc3...v1.0.0rc4
MMOCR Release v1.0.0rc3
Highlights
-
We release several pretrained models using oCLIP-ResNet as the backbone, which is a ResNet variant trained with oCLIP and can significantly boost the performance of text detection models.
-
Preparing datasets is troublesome and tedious, especially in OCR domain where multiple datasets are usually required. In order to free our users from laborious work, we designed a Dataset Preparer to help you get a bunch of datasets ready for use, with only one line of command! Dataset Preparer is also crafted to consist of a series of reusable modules, each responsible for handling one of the standardized phases throughout the preparation process, shortening the development cycle on supporting new datasets.
New Features & Enhancements
- Add Dataset Preparer by @xinke-wang in #1484
- support modified resnet structure used in oCLIP by @HannibalAPE in #1458
- Add oCLIP configs by @gaotongxiao in #1509
Docs
- Update install.md by @rogachevai in #1494
- Refine some docs by @gaotongxiao in #1455
- Update some dataset preparer related docs by @xinke-wang in #1502
- oclip readme by @Harold-lkk in #1505
Bug Fixes
- Fix offline_eval error caused by new data flow by @gaotongxiao in #1500
New Contributors
- @rogachevai made their first contribution in #1494
- @HannibalAPE made their first contribution in #1458
Full Changelog: v1.0.0rc2...v1.0.0rc3
MMOCR Release v0.6.3
Highlights
This release enhances the inference script and fixes a bug that might cause failure on TorchServe.
Besides, a new backbone, oCLIP-ResNet, and a dataset preparation tool, Dataset Preparer, have been released in
MMOCR 1.0.0rc3 (1.x branch). Check out the changelog for more information about the features, and maintenance plan for how we will maintain MMOCR in the future.
New Features & Enhancements
- Convert numpy.float32 type to python built-in float type by @JunYao1020 in #1462
- When '.' char not in output string, output is also considered to be a… by @JunYao1020 in #1457
- Refactor issue template by @Harold-lkk in #1449
- issue template by @Harold-lkk in #1489
- Update maintainers by @gaotongxiao in #1504
- Support MMCV < 1.8.0 by @gaotongxiao in #1508
Bug Fixes
- fix ci by @Harold-lkk in #1491
- [CI] Fix CI by @gaotongxiao in #1463
Docs
- [DOCs] Add MMYOLO in Readme. by @ysh329 in #1475
- [Docs] Update contributing.md by @gaotongxiao in #1490
New Contributors
Full Changelog: v0.6.2...v0.6.3
MMOCR Release v1.0.0rc2
This release relaxes the version requirement of MMEngine
to >=0.1.0, < 1.0.0
.
Full Changelog: v1.0.0rc1...v1.0.0rc2
MMOCR Release v0.6.2
Highlights
It's now possible to train/test models through Python Interface. For example, you can train a model under mmocr/ directory in this way:
# an example of how to use such modifications is shown as the following:
from mmocr.tools.train import TrainArg, parse_args, run_train_cmd
args = TrainArg(config='/path/to/config.py')
args.add_arg('--work-dir', '/path/to/dir')
args = parse_args(args.arg_list)
run_train_cmd(args)
See PR #1138 for more details.
Besides, release candidates for MMOCR 1.0 with tons of new features are available at 1.x branch now! Check out the changelog for more information about the features, and maintenance plan for how we will maintain MMOCR in the future.
New Features
- Adding test & train API to be used directly in code by @wybryan in #1138
- Let ResizeOCR full support mmcv.impad's pad_val parameters by @hsiehpinghan in #1437
Bug Fixes
- Fix ABINet config by @gaotongxiao in #1256
- Fix Recognition Score Normalization Issue by @xinke-wang in #1333
- Remove max_seq_len inconsistency by @antoniolanza1996 in #1433
- box points ordering by @yjmm10 in #1205
- Correct spelling by misspelling 'preperties' to 'properties' by @JunYao1020 in #1446
Docs
- Demo, experiments and live inference API on Tiyaro by @Venkat2811 in #1272
- Update 1.x info by @Harold-lkk in #1369
- Add global notes to the docs and the version switcher menu by @gaotongxiao in #1406
- Logger Hook Config Updated to Add WandB by @Nourollah in #1345
New Contributors
- @Venkat2811 made their first contribution in #1272
- @wybryan made their first contribution in #1139
- @hsiehpinghan made their first contribution in #1437
- @yjmm10 made their first contribution in #1205
- @JunYao1020 made their first contribution in #1446
- @Nourollah made their first contribution in #1345
Full Changelog: v0.6.1...v0.6.2
MMOCR Release v1.0.0rc1
Highlights
This release fixes a severe bug causing inaccurate metric reports in multi-GPU training. Together with the fix, weights for all the text recognition models in MMOCR 1.0 architecture are released. The inference shorthand for them are also added back to ocr.py
. Besides, more documentation chapters are available now.
New Features & Enhancements
- Simplify the Mask R-CNN config by @xinke-wang in #1391
- auto scale lr by @Harold-lkk in #1326
- Update paths to pretrain weights by @gaotongxiao in #1416
- Streamline duplicated split_result in pan_postprocessor by @gaotongxiao in #1418
- Update model links in ocr.py and inference.md by @gaotongxiao in #1431
- Update rec configs by @gaotongxiao in #1417
- Visualizer refine by @Harold-lkk in #1411
- Support get flops and parameters in dev-1.x by @vansin in #1414
Docs
- intersphinx and api by @Harold-lkk in #1367
- Fix quickrun by @gaotongxiao in #1374
- Fix some docs issues by @gaotongxiao in #1385
- Add Documents for DataElements by @xinke-wang in #1381
- config english by @Harold-lkk in #1372
- Metrics by @xinke-wang in #1399
- Add version switcher to menu by @gaotongxiao in #1407
- Data Transforms by @xinke-wang in #1392
- Fix inference docs by @gaotongxiao in #1415
- Fix some docs by @xinke-wang in #1410
- Add maintenance plan to migration guide by @xinke-wang in #1413
- Update Recog Models by @xinke-wang in #1402
Bug Fixes
- clear metric.results only done in main process by @Harold-lkk in #1379
- Fix a bug in MMDetWrapper by @xinke-wang in #1393
- Fix browse_dataset.py by @Mountchicken in #1398
- ImgAugWrapper: Do not cilp polygons if not applicable by @gaotongxiao in #1231
- Fix CI by @gaotongxiao in #1365
- Fix merge stage test by @gaotongxiao in #1370
- Del CI support for torch 1.5.1 by @gaotongxiao in #1371
- Test windows cu111 by @gaotongxiao in #1373
- Fix windows CI by @gaotongxiao in #1387
- Upgrade pre commit hooks by @Harold-lkk in #1429
- Skip invalid augmented polygons in ImgAugWrapper by @gaotongxiao in #1434
New Contributors
Full Changelog: v1.0.0rc0...v1.0.0rc1