From 1cfbd692c26ce9b3d0bf4029df5cca1117d643fb Mon Sep 17 00:00:00 2001 From: Ernestina <121707790@qq.com> Date: Thu, 24 Oct 2024 19:20:36 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E3=80=90Hackathon=207th=20No=2051=E3=80=91?= =?UTF-8?q?MixTeX=20=E8=AE=BA=E6=96=87=E5=A4=8D=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在 PaddleOCR 中复现 MixTeX 模型的设计文档 --- rfcs/PaddleOCR/MixText.md | 75 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 rfcs/PaddleOCR/MixText.md diff --git a/rfcs/PaddleOCR/MixText.md b/rfcs/PaddleOCR/MixText.md new file mode 100644 index 000000000..246997efa --- /dev/null +++ b/rfcs/PaddleOCR/MixText.md @@ -0,0 +1,75 @@ +# MixText——设计文档 + +| 任务名 | PaddleOcr--MixText | +| ---- | ------------------ | +| 提交作者 | ErnestinaQiu | +| 提交时间 | 2024-10-22 | +| 版本号 | v1.0 | +| 依赖 | develop版本 | +| 文件名 | MixText.md | + +## 一、概述 + +## 1、相关背景 + +针对易混淆的文本公式,该研究主要提出了一种专门的多模态OCR模型和一种新颖的数据采集方法。多模态模型采用了Swin Transformer作为编码器提取视觉特征,采用了RoBERTa作为解码器通过融合语意结构提升识别率。值得一提的是,在识别清晰的图像时,模型更多地依赖于图像,而非上下文语意给出后续的识别结果。论文仓库中仅给出了数据生成的部分代码。 + +## 2、功能目标 + +1.在PaddleOcr中增加该模型与数据生成方法,复现性能指标与原始仓库效果相当,并在提交的文档中给出 Edit distance(Edit Dis.)、BLEU score、Precision、Recall 具体值。 + +## 3. 意义 + +1. 扩充PaddleOcr中的模型,给予用户更多选择 + +2. 扩充PaddleOcr中的数据生成方法 + +# 二、现状 + +PaddleOcr已对经典的ocr识别算法进行了支持,并持续优化通用识别模型。配套提供了数据生成和增强的工具。复现本研究的目的是为了进一步跟进前沿科技成果。 + +# 三、业内方案调研 + +1. 已开源数据生成代码至代码仓库 + + [RQLuo/MixTeX-Latex-OCR: MixTeX multimodal LaTeX, ZhEn, and, Table OCR. It performs efficient CPU-based inference in a local offline on Windows. (github.com)](https://github.com/RQLuo/MixTeX-Latex-OCR/tree/main) + +2. 提供在线demo网址 + + [https://mineai.top/](https://mineai.top/) + +3. Swin Transformer + +[microsoft/swin-tiny-patch4-window7-224 · Hugging Face](https://huggingface.co/microsoft/swin-tiny-patch4-window7-224) + +4. RoBERTa + +    [fairseq/examples/roberta/README.md at main · facebookresearch/fairseq (github.com)](https://github.com/facebookresearch/fairseq/blob/main/examples/roberta/README.md) + +# 四、对比分析 + +相较于PaddleOcr中已有的LaTeX-OCR, MixText采用了nlp模型作为decoder,通过对特定上下文的学习和融合自然语义,为印刷体和手写体公式的识别率的提升提供了新的思路。 + +提出了新颖的数据集生成方法,并通过消融实验论证了,使用基于该方法的混合数据集的效果优于单纯使用合成数据集与真实数据集,为识别率指标提升提供了思路。 + +# 五、设计思路与实现方案 + +总体思路 + +1. 在PaddleOcr的PaddleOCR/ppocr/modeling模块增加MixTex模型,在PaddleOCR/ppocr/postprocess模块增加对应的后处理。 + +2. 在PaddleOCR/ppocr/data/中增加mixtex_dataset.py,在PaddleOCR/ppocr/data/imaug中增加数据生成方式 + +# 六、测试和验收的考量 + +参考论文中的测试方式,并在提交的文档中给出 Edit distance(Edit Dis.)、BLEU score、Precision、Recall 具体值 + +# 七、影响面 + +1. PaddleOCR/ppocr/data/中增加数据生成方法 + +2. 计划在PaddleOCR/ppocr中增加模型模块和其前后处理,并以增加参数可选值而非增加新参数的方式整合入现有的训练和推理pipeline. + +# 八、排期规划 + +预计能在活动期内完成。 \ No newline at end of file From b76c78ef1dcafc1fb8a6cf99af375fb3bd88d081 Mon Sep 17 00:00:00 2001 From: Ernestina <121707790@qq.com> Date: Sat, 26 Oct 2024 17:41:20 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E3=80=90Hackathon=207th=20No=2051=E3=80=91?= =?UTF-8?q?MixTeX=20=E8=AE=BA=E6=96=87=E5=A4=8D=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在 PaddleOCR 中复现 MixTeX 模型的设计文档 --- rfcs/PaddleOCR/MixText.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rfcs/PaddleOCR/MixText.md b/rfcs/PaddleOCR/MixText.md index 246997efa..96f3ab12f 100644 --- a/rfcs/PaddleOCR/MixText.md +++ b/rfcs/PaddleOCR/MixText.md @@ -30,7 +30,7 @@ PaddleOcr已对经典的ocr识别算法进行了支持,并持续优化通用 # 三、业内方案调研 -1. 已开源数据生成代码至代码仓库 +1. 已开源数据生成代码和模型训练和推理代码至代码仓库 [RQLuo/MixTeX-Latex-OCR: MixTeX multimodal LaTeX, ZhEn, and, Table OCR. It performs efficient CPU-based inference in a local offline on Windows. (github.com)](https://github.com/RQLuo/MixTeX-Latex-OCR/tree/main) @@ -56,9 +56,9 @@ PaddleOcr已对经典的ocr识别算法进行了支持,并持续优化通用 总体思路 -1. 在PaddleOcr的PaddleOCR/ppocr/modeling模块增加MixTex模型,在PaddleOCR/ppocr/postprocess模块增加对应的后处理。 +1. 在PaddleOCR/ppocr/data/中增加mixtex_dataset.py,在PaddleOCR/ppocr/data/imaug中增加数据生成方式 -2. 在PaddleOCR/ppocr/data/中增加mixtex_dataset.py,在PaddleOCR/ppocr/data/imaug中增加数据生成方式 +2. 在PaddleOcr的PaddleOCR/ppocr/modeling模块增加MixTex模型,在PaddleOCR/ppocr/postprocess模块增加对应的后处理。 # 六、测试和验收的考量 From 7a62838f3e12d414da982ad49ede7b4322e805d8 Mon Sep 17 00:00:00 2001 From: Ernestina <121707790@qq.com> Date: Mon, 28 Oct 2024 17:41:23 +0800 Subject: [PATCH 3/4] modify according to template --- rfcs/PaddleOCR/MixTex.md | 73 +++++++++++++++++++++++++++++++++++++ rfcs/PaddleOCR/MixText.md | 75 --------------------------------------- 2 files changed, 73 insertions(+), 75 deletions(-) create mode 100644 rfcs/PaddleOCR/MixTex.md delete mode 100644 rfcs/PaddleOCR/MixText.md diff --git a/rfcs/PaddleOCR/MixTex.md b/rfcs/PaddleOCR/MixTex.md new file mode 100644 index 000000000..dc9d353ba --- /dev/null +++ b/rfcs/PaddleOCR/MixTex.md @@ -0,0 +1,73 @@ +# MixText——设计文档 + +| 任务名 | PaddleOcr--MixText | +| ---- | ------------------ | +| 提交作者 | ErnestinaQiu | +| 提交时间 | 2024-10-26 | +| 版本号 | v1.0 | +| 依赖 | develop版本 | +| 文件名 | MixTex.md | + +# 一、概述 + +## 1、相关背景 + +针对易混淆的文本公式,该研究主要提出了一种多模态OCR模型和一种新颖的数据采集方法。多模态模型采用了Swin Transformer作为编码器提取视觉特征,采用了RoBERTa作为解码器通过融合语意结构提升识别率。值得一提的是,在识别清晰的图像时,模型更多地依赖于图像,而非上下文语意给出后续的识别结果。 + +## 2、功能目标 + +1.在PaddleOcr中增加该模型与数据生成方法,复现性能指标与原始仓库效果相当,并在提交的文档中给出 Edit distance(Edit Dis.)、BLEU score、Precision、Recall 具体值。 + +## 3、意义 + +- 扩充PaddleOcr中的模型,给予用户更多选择 + +- 扩充PaddleOcr中的数据生成方法 + +# 二、飞桨现状 + +PaddleOCR目前暂无对swin transformer encoder和RoBERTa的支持,可以通过PaddlePaddle.nn以现有api的组合方式实现。 + +# 三、业内方案调研 + +1. 已开源数据生成代码、模型训练和推理代码至代码仓库 + + [RQLuo/MixTeX-Latex-OCR: MixTeX multimodal LaTeX, ZhEn, and, Table OCR. It performs efficient CPU-based inference in a local offline on Windows. (github.com)](https://github.com/RQLuo/MixTeX-Latex-OCR/tree/main) + +2. Swin Transformer + +[microsoft/swin-tiny-patch4-window7-224 · Hugging Face](https://huggingface.co/microsoft/swin-tiny-patch4-window7-224) + +4. RoBERTa + +    [fairseq/examples/roberta/README.md at main · facebookresearch/fairseq (github.com) + +# 四、对比分析 + +使用作者开源的模型和代码进行实现为目前最佳的论文复现实践方式,但基于控制影响面考量,将作者开源的模型转换成基于飞浆的模型,并为PaddleOCR增加研究中提出的数据生成和增强方式为目前的最佳实践方式 + +# 五、设计思路与实现方案 + +## 总体思路 + +1. 在PaddleOCR/ppocr/data/中增加mixtex_dataset.py,在PaddleOCR/ppocr/data/imaug中增加数据生成方式 + +2. 在PaddleOcr的PaddleOCR/ppocr/modeling模块增加MixTex模型,在PaddleOCR/ppocr/postprocess模块增加对应的后处理。 + +# 六、测试和验收的考量 + +参考论文中的测试方式,并在提交的文档中给出 Edit distance(Edit Dis.)、BLEU score、Precision、Recall 具体值 + +# 七、可行性分析和排期规划 + +预计能在活动期内完成。 + +# 八、影响面 + +- PaddleOCR/ppocr/data/中增加数据生成方法 + +- 计划在PaddleOCR/ppocr中增加模型模块和其前后处理,并以增加参数可选值而非增加新参数的方式整合入现有的训练和推理pipeline. + +# 名词解释 + +# 附件及参考资料 \ No newline at end of file diff --git a/rfcs/PaddleOCR/MixText.md b/rfcs/PaddleOCR/MixText.md deleted file mode 100644 index 96f3ab12f..000000000 --- a/rfcs/PaddleOCR/MixText.md +++ /dev/null @@ -1,75 +0,0 @@ -# MixText——设计文档 - -| 任务名 | PaddleOcr--MixText | -| ---- | ------------------ | -| 提交作者 | ErnestinaQiu | -| 提交时间 | 2024-10-22 | -| 版本号 | v1.0 | -| 依赖 | develop版本 | -| 文件名 | MixText.md | - -## 一、概述 - -## 1、相关背景 - -针对易混淆的文本公式,该研究主要提出了一种专门的多模态OCR模型和一种新颖的数据采集方法。多模态模型采用了Swin Transformer作为编码器提取视觉特征,采用了RoBERTa作为解码器通过融合语意结构提升识别率。值得一提的是,在识别清晰的图像时,模型更多地依赖于图像,而非上下文语意给出后续的识别结果。论文仓库中仅给出了数据生成的部分代码。 - -## 2、功能目标 - -1.在PaddleOcr中增加该模型与数据生成方法,复现性能指标与原始仓库效果相当,并在提交的文档中给出 Edit distance(Edit Dis.)、BLEU score、Precision、Recall 具体值。 - -## 3. 意义 - -1. 扩充PaddleOcr中的模型,给予用户更多选择 - -2. 扩充PaddleOcr中的数据生成方法 - -# 二、现状 - -PaddleOcr已对经典的ocr识别算法进行了支持,并持续优化通用识别模型。配套提供了数据生成和增强的工具。复现本研究的目的是为了进一步跟进前沿科技成果。 - -# 三、业内方案调研 - -1. 已开源数据生成代码和模型训练和推理代码至代码仓库 - - [RQLuo/MixTeX-Latex-OCR: MixTeX multimodal LaTeX, ZhEn, and, Table OCR. It performs efficient CPU-based inference in a local offline on Windows. (github.com)](https://github.com/RQLuo/MixTeX-Latex-OCR/tree/main) - -2. 提供在线demo网址 - - [https://mineai.top/](https://mineai.top/) - -3. Swin Transformer - -[microsoft/swin-tiny-patch4-window7-224 · Hugging Face](https://huggingface.co/microsoft/swin-tiny-patch4-window7-224) - -4. RoBERTa - -    [fairseq/examples/roberta/README.md at main · facebookresearch/fairseq (github.com)](https://github.com/facebookresearch/fairseq/blob/main/examples/roberta/README.md) - -# 四、对比分析 - -相较于PaddleOcr中已有的LaTeX-OCR, MixText采用了nlp模型作为decoder,通过对特定上下文的学习和融合自然语义,为印刷体和手写体公式的识别率的提升提供了新的思路。 - -提出了新颖的数据集生成方法,并通过消融实验论证了,使用基于该方法的混合数据集的效果优于单纯使用合成数据集与真实数据集,为识别率指标提升提供了思路。 - -# 五、设计思路与实现方案 - -总体思路 - -1. 在PaddleOCR/ppocr/data/中增加mixtex_dataset.py,在PaddleOCR/ppocr/data/imaug中增加数据生成方式 - -2. 在PaddleOcr的PaddleOCR/ppocr/modeling模块增加MixTex模型,在PaddleOCR/ppocr/postprocess模块增加对应的后处理。 - -# 六、测试和验收的考量 - -参考论文中的测试方式,并在提交的文档中给出 Edit distance(Edit Dis.)、BLEU score、Precision、Recall 具体值 - -# 七、影响面 - -1. PaddleOCR/ppocr/data/中增加数据生成方法 - -2. 计划在PaddleOCR/ppocr中增加模型模块和其前后处理,并以增加参数可选值而非增加新参数的方式整合入现有的训练和推理pipeline. - -# 八、排期规划 - -预计能在活动期内完成。 \ No newline at end of file From 6cfdfec0971bb470829f70d7d2ff942b663504e6 Mon Sep 17 00:00:00 2001 From: Ernestina <121707790@qq.com> Date: Mon, 28 Oct 2024 22:24:25 +0800 Subject: [PATCH 4/4] modify according to advice --- rfcs/PaddleOCR/MixTex.md | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/rfcs/PaddleOCR/MixTex.md b/rfcs/PaddleOCR/MixTex.md index dc9d353ba..65c85d724 100644 --- a/rfcs/PaddleOCR/MixTex.md +++ b/rfcs/PaddleOCR/MixTex.md @@ -1,12 +1,12 @@ -# MixText——设计文档 +# MixTex——设计文档 -| 任务名 | PaddleOcr--MixText | -| ---- | ------------------ | -| 提交作者 | ErnestinaQiu | -| 提交时间 | 2024-10-26 | -| 版本号 | v1.0 | -| 依赖 | develop版本 | -| 文件名 | MixTex.md | +| 任务名 | PaddleOcr--MixTex | +| ---- | ----------------- | +| 提交作者 | ErnestinaQiu | +| 提交时间 | 2024-10-28 | +| 版本号 | v1.0 | +| 依赖 | main版本 | +| 文件名 | MixTex.md | # 一、概述 @@ -26,7 +26,7 @@ # 二、飞桨现状 -PaddleOCR目前暂无对swin transformer encoder和RoBERTa的支持,可以通过PaddlePaddle.nn以现有api的组合方式实现。 +[PaddleMIX](https://github.com/PaddlePaddle/PaddleMIX/tree/develop)中实现了swin_transformer的模型结构,[PaddleNLP](https://github.com/PaddlePaddle/PaddleNLP/tree/develop)中实现了RoBERTa的模型结构。可以参考以上开源项目,使用API组合的方式在PaddleOCR中加入模型。 # 三、业内方案调研 @@ -35,12 +35,14 @@ PaddleOCR目前暂无对swin transformer encoder和RoBERTa的支持,可以通 [RQLuo/MixTeX-Latex-OCR: MixTeX multimodal LaTeX, ZhEn, and, Table OCR. It performs efficient CPU-based inference in a local offline on Windows. (github.com)](https://github.com/RQLuo/MixTeX-Latex-OCR/tree/main) 2. Swin Transformer - -[microsoft/swin-tiny-patch4-window7-224 · Hugging Face](https://huggingface.co/microsoft/swin-tiny-patch4-window7-224) + + 基于飞浆框架的实现 [PaddleMIX/paddlemix/models/groundingdino/backbone/swin_transformer.py at develop · PaddlePaddle/PaddleMIX (github.com)](https://github.com/PaddlePaddle/PaddleMIX/blob/develop/paddlemix/models/groundingdino/backbone/swin_transformer.py) + + 作者论文中引用的模型 [microsoft/swin-tiny-patch4-window7-224 · Hugging Face](https://huggingface.co/microsoft/swin-tiny-patch4-window7-224) 4. RoBERTa - -    [fairseq/examples/roberta/README.md at main · facebookresearch/fairseq (github.com) + + 基于飞浆框架的实现  [PaddleNLP/slm/model_zoo/roberta at develop · PaddlePaddle/PaddleNLP (github.com)](https://github.com/PaddlePaddle/PaddleNLP/tree/develop/slm/model_zoo/roberta)   # 四、对比分析