Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature] TextRecogCropConverter add crop with opencv warpPersepective function #1667

Conversation

KevinNuNu
Copy link
Contributor

…e function.

Thanks for your contribution and we appreciate it a lot. The following instructions would make your pull request more healthy and more easily get feedback. If you do not understand some items, don't worry, just make the pull request and seek help from maintainers.

Motivation

自定义数据集中会有一些由于拍摄角度以及透视等问题造成的文字区域倾斜或者旋转,在标注时会用到polygon的标注方式。同时密集文本场景,不适合将polygon标注转换为水平文本框进行裁剪,需要用opencv warpPersepective方法进行裁剪

Modification

1.优化TextRecogCropConverter的pack_instance()方法,增加crop_with_warp选择按钮,引入mmocr/utils/img_utils.py中的warp_img方法,完成四边形标注的旋转文本区域的裁剪功能
2.完善了一下相应的使用文档:docs/zh_cn/user_guides/data_prepare/dataset_preparer.md

BC-breaking (Optional)

Does the modification introduce changes that break the backward-compatibility of the downstream repositories?
If so, please describe how it breaks the compatibility and how the downstream projects should modify their code to keep compatibility with this PR.

Use cases (Optional)

If this PR introduces a new feature, it is better to list some use cases here, and update the documentation.

Checklist

Before PR:

  • I have read and followed the workflow indicated in the CONTRIBUTING.md to create this PR.
  • Pre-commit or linting tools indicated in CONTRIBUTING.md are used to fix the potential lint issues.
  • Bug fixes are covered by unit tests, the case that causes the bug should be added in the unit tests.
  • New functionalities are covered by complete unit tests. If not, please add more unit test to ensure the correctness.
  • The documentation has been modified accordingly, including docstring or example tutorials.

After PR:

  • If the modification has potential influence on downstream or other related projects, this PR should be tested with some of those projects.
  • CLA has been signed and all committers have signed the CLA in this PR.

Copy link
Collaborator

@gaotongxiao gaotongxiao left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice feature!

docs/zh_cn/user_guides/data_prepare/dataset_preparer.md Outdated Show resolved Hide resolved
Comment on lines 583 to 586
if 'box' in instance:
return bbox2poly(instance['box']).tolist()
if 'poly' in instance:
return instance['poly']
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
if 'box' in instance:
return bbox2poly(instance['box']).tolist()
if 'poly' in instance:
return instance['poly']
if 'poly' in instance:
return instance['poly']
if 'box' in instance:
return bbox2poly(instance['box']).tolist()

box is just a rough approximation of polygon, so polygon should be the first choice

mmocr/datasets/preparers/data_converter.py Outdated Show resolved Hide resolved
@gaotongxiao gaotongxiao merged commit edf085c into open-mmlab:dev-1.x Feb 3, 2023
@KevinNuNu KevinNuNu deleted the kevinnunu/TextRecogCropConverter_add_crop_with_opencv_warpPersepective branch February 4, 2023 12:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants