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

【任务认领】第一阶段复现paddleocr #3

Closed
14 of 19 tasks
novioleo opened this issue May 16, 2020 · 21 comments
Closed
14 of 19 tasks

【任务认领】第一阶段复现paddleocr #3

novioleo opened this issue May 16, 2020 · 21 comments
Labels
dev_task 开发任务

Comments

@novioleo
Copy link
Collaborator

novioleo commented May 16, 2020

这是第一阶段复现paddle ocr的任务认领,对哪个模块有兴趣的小伙伴可以at我,然后添加任务
backbone:

  • 实现mbv3(检测+识别)并能加载paddle ocr模型,且保证diff小于1e-6 @novioleo @WenmuZhou
  • 实现res34(检测+识别)并能加载paddle ocr模型,且保证diff小于1e-6 @novioleo @WenmuZhou

neck:

head:

  • 实现db @WenmuZhou
  • 实现east
  • 实现识别的attention head

rec:

  • 实现crnn(mb和res34)并能加载paddle ocr模型 @novioleo

paddle 里面的dynamic lstm无法在pytorch中有对应的,这块会有差异

det:

utils:

train:

data:

demo:

其他资源:

  • 不同语言语料的收集
  • 不同语言不同字体的收集与归档
@novioleo novioleo added the dev_task 开发任务 label May 16, 2020
@novioleo novioleo pinned this issue May 16, 2020
Repository owner locked as off-topic and limited conversation to collaborators May 16, 2020
@novioleo novioleo added this to the 复现paddle ocr milestone May 16, 2020
Repository owner unlocked this conversation May 16, 2020
@novioleo novioleo changed the title 【任务认领】 【任务认领】第一阶段复现paddleocr May 16, 2020
@WenmuZhou
Copy link
Owner

@WenmuZhou db 和db head

@Jinreejing
Copy link
Contributor

Jinreejing commented May 18, 2020

基础训练代码 @novioleo

@novioleo
Copy link
Collaborator Author

novioleo commented May 18, 2020

基础训练代码 @novioleo

@Jinreejing 第一期利用paddle ocr预训练的模型的数据,然后目前是对mbv3的crnn和res34的crnn进行训练的代码编写。训练用数据集可以用icdar2013和icdar2015也可以用其他数据集。conv部分的lr和wd要小一点,lstm的部分可以是正常的。

@PKQ1688
Copy link

PKQ1688 commented May 18, 2020

实现fpn @novioleo

@ZenFSheng
Copy link
Contributor

想试试dataloader🙏 @novioleo

@novioleo
Copy link
Collaborator Author

实现fpn @novioleo

@WenmuZhou 麻烦给他明确下具体任务,主要的输入输出,方便上下游联调测试

@novioleo
Copy link
Collaborator Author

想试试dataloader🙏 @novioleo

@ZenFSheng 麻烦实现两个dataloader(其实本质是dataset+dataloader),分别用于det和rec,可以优先实现rec的部分,能够加载常见的IIIT, SVT, IC03, IC13, IC15, SVTP, CUTE等相关数据集格式,可以先适配ic13,后期进行增加。

@WenmuZhou
Copy link
Owner

实现fpn @novioleo

@WenmuZhou 麻烦给他明确下具体任务,主要的输入输出,方便上下游联调测试

fpn的输入应为一个list[stage1(B,C1,H//4,W//4),stage2(B,C2,H//8,W//8),stage3(B,C3,H//16,W//16),stage4(B,C4,H//32,W//32)], 其输出应为shape为(B,C,H//4,W//4)的tensor,先实现这一通用的FPN,后面其他诡异的融合情况再另行添加

@WenmuZhou
Copy link
Owner

想试试dataloader🙏 @novioleo

@ZenFSheng 麻烦实现两个dataloader(其实本质是dataset+dataloader),分别用于det和rec,可以优先实现rec的部分,能够加载常见的IIIT, SVT, IC03, IC13, IC15, SVTP, CUTE等相关数据集格式,可以先适配ic13,后期进行增加。

rec的dataset可以采用TextLineDataset(即用文本文件记载图片路径和label的形式)+转换工具这种形式
det的dataset考虑的比较多:1. 各种算法预处理的不同;2. 数据集格式的适配或转换工具

@WenmuZhou
Copy link
Owner

@novioleo 我觉得我们可以先定下配置系统并提供一个example,这样后面比较清晰

@ofexe
Copy link

ofexe commented May 18, 2020

推荐先设计大概的框架,做一些约定,这样整合的话比较方便

@novioleo
Copy link
Collaborator Author

推荐先设计大概的框架,做一些约定,这样整合的话比较方便

@ofexe 感谢提醒。最近会有相关代码提交上来。届时会出相关的框架性代码,大家可以再进行开发。

@novioleo
Copy link
Collaborator Author

@novioleo 我觉得我们可以先定下配置系统并提供一个example,这样后面比较清晰

@WenmuZhou 好的。我个人建议我们可以先把基于mbv3的一整套的方案串通,这样再po出来,大家可以运行起来,这样就方便了。

@afterimagex
Copy link
Contributor

我想认领demo的实现

@novioleo
Copy link
Collaborator Author

我想认领demo的实现

@afterimagex 主要是为了实现一个类似于chineseocr那种网页,然后能够进行可视化的模型结果的展示以及试用。

@afterimagex
Copy link
Contributor

我想认领demo的实现

@afterimagex 主要是为了实现一个类似于chineseocr那种网页,然后能够进行可视化的模型结果的展示以及试用。

没问题

WenmuZhou pushed a commit that referenced this issue May 22, 2020
@lgcy
Copy link

lgcy commented Jun 18, 2020

大佬有计划实现EAST吗,自己实现了一下,性能比paddle的差太多了。很期待大佬的实现

@novioleo
Copy link
Collaborator Author

大佬有计划实现EAST吗,自己实现了一下,性能比paddle的差太多了。很期待大佬的实现

@lgcy 你好,欢迎你pr,我们可以帮你优化性能相关,你看如何?

@lgcy
Copy link

lgcy commented Jun 18, 2020

pr

你好,真的非常感谢大佬可以帮忙优化性能。只是我的代码是按照自己的流程走的,你们这个模块化很清晰,要融进去感觉比较麻烦。我应该怎么弄呢

@novioleo
Copy link
Collaborator Author

你好,真的非常感谢大佬可以帮忙优化性能。只是我的代码是按照自己的流程走的,你们这个模块化很清晰,要融进去感觉比较麻烦。我应该怎么弄呢

@lgcy 首先,选择对应的backbone,在torchocr.network.backbones中选择你需要的Det的backbone,目前只适配了res和mb。然后neck层就是east中对backbone的fm进行进一步处理的部分,head层就是east的回归值的地方。你可以一步一步走一下~fork之后开一个新的branch试试我说的,然后有问题可以at我,然后我帮你看下。你看如何?

@lgcy
Copy link

lgcy commented Jun 18, 2020

你好,真的非常感谢大佬可以帮忙优化性能。只是我的代码是按照自己的流程走的,你们这个模块化很清晰,要融进去感觉比较麻烦。我应该怎么弄呢

@lgcy 首先,选择对应的backbone,在torchocr.network.backbones中选择你需要的Det的backbone,目前只适配了res和mb。然后neck层就是east中对backbone的fm进行进一步处理的部分,head层就是east的回归值的地方。你可以一步一步走一下~fork之后开一个新的branch试试我说的,然后有问题可以at我,然后我帮你看下。你看如何?

好的,我试试

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dev_task 开发任务
Projects
None yet
Development

No branches or pull requests

8 participants