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

表格内部单元格存在换行如何标注 #131

Open
zhangxj-1 opened this issue Jan 2, 2025 · 10 comments
Open

表格内部单元格存在换行如何标注 #131

zhangxj-1 opened this issue Jan 2, 2025 · 10 comments

Comments

@zhangxj-1
Copy link

zhangxj-1 commented Jan 2, 2025

这种表格该如何标注

@GreatV
Copy link
Collaborator

GreatV commented Jan 2, 2025

表格内部单元格存在换行时的标注方法主要取决于你使用的工具和标注标准。在使用 PPOCRLabel 进行标注时,以下是处理这种情况的详细指南:


1. 表格单元格中换行的标注方法

如果表格单元格中存在换行,通常需要将单元格中的内容完整识别,并按照换行符作为逻辑分隔,但在标注时,仍然将其视为同一个单元格。

标注规则:

  • 逻辑视为同一单元格: 即使单元格内存在换行,PPOCRLabel 会将其视为一个单元格,换行符仅作为内容分隔符。
  • 标注顺序: 按照从上到下、从左到右的顺序对表格的单元格进行标注。
  • HTML 结构输出: 使用 <td> 标签标注单元格内容,单元格内部的换行可以用 <br> 或直接换行处理。

标注示例:

对于如下表格:

名称 数据
上海凤凰驿站体育文化
发展有限公司
195,530.54

生成的标注结果为:

<tr>
    <td>上海凤凰驿站体育文化<br>发展有限公司</td>
    <td>195,530.54</td>
</tr>

2. 如何用 PPOCRLabel 标注换行单元格

PPOCRLabel 标注工具中,单元格的内容和位置通过 tokensbbox(边界框)来描述。对于换行的单元格,具体操作如下:

  1. 绘制单元格区域:

    • 使用矩形工具(标注框)覆盖整个单元格内容区域,包括所有换行的内容。
  2. 输入单元格内容:

    • 在内容框中输入单元格的完整文字内容。若有换行,可以直接输入换行符(如按下 Enter 键)或用 <br> 标记换行。
  3. 生成标注文件:

    • 导出的 gt.txt 文件会包含每个单元格的 tokens(内容)和 bbox(位置)。对于存在换行的单元格,内容以完整形式保留,换行位置会在最终的 HTML 中体现。

3. 针对标注难点的解决方案

结合参考的 Issue 和用户反馈,以下是换行单元格标注中的常见问题和解决方法:

问题 1:表格结构不规则或存在合并单元格

  • 解决方法: 在标注时,需手动调整每个单元格的边界框(bbox),确保合并单元格的区域完整覆盖,并在 HTML 中通过 <colspan><rowspan> 描述合并关系。

问题 2:标注顺序不一致

  • 解决方法: 标注时按从上到下、从左到右的顺序依次处理单元格。如果标注顺序混乱,可以参考 Issue #103 中提到的手动调整方法,或请求开发者加入自动排序功能。

问题 3:换行内容无法正确显示

  • 解决方法:
    1. 确保输入内容时正确标记换行符。
    2. 检查导出的 HTML 文件是否包含 <br> 或正确的换行格式。

4. 相关参考链接

以下 Issues 可为表格标注提供更多参考:

  • Issue #92: 不规则合并该如何标注?
    • 提供了不规则表格和合并单元格的标注建议。
  • Issue #116: 关于表格标注合并逻辑的讨论。
  • Issue #106: 自定义表格识别数据的标注方式。

总结

针对包含换行的单元格,标注时需:

  1. 将换行内容视为同一个单元格。
  2. 正确输入内容并标记换行符。
  3. 确保标注顺序从上到下、从左到右。
  4. 导出 HTML 文件时,换行内容通过 <br> 或换行符体现。

如果还有其他标注问题,可以参考上述链接或向社区寻求支持。


Response generated by feifei-bot | chatgpt-4o-latest

@GreatV
Copy link
Collaborator

GreatV commented Jan 2, 2025

操作指南只有一个README,Q&A是机器人根据issue总结。

@zhangxj-1
Copy link
Author

@GreatV 那么请问如何输出HTML结构

@GreatV
Copy link
Collaborator

GreatV commented Jan 2, 2025

标完的输出文件里不是有吗,你找找看看

@zhangxj-1
Copy link
Author

标完的输出文件里不是有吗,你找找看看

明白了

@GreatV
另标注工具多行是无法识别多行的,需要完全手动标注,最终的模型支持多行OCR吗?

@GreatV
Copy link
Collaborator

GreatV commented Jan 3, 2025

不支持

@GreatV
Copy link
Collaborator

GreatV commented Jan 3, 2025

PaddleOCR是按行识别的

@zhangxj-1
Copy link
Author

zhangxj-1 commented Jan 3, 2025

Image
@GreatV 我的意思是,按照你提供的标注方法,修改html格式,最后训练的模型,对应上图,单行文本识别的文本框四点坐标会拼接到表格结构多行合并成的cell里去,理解对吗?另外html格式中的文字内容需要准确吗?

@zhangxj-1
Copy link
Author

@GreatV 表格标注的时候html里识别内容的准确性需要保证吗?如果需要保证,最终表格模型推理的时候需要再传递一个识别模型的参数,互相是什么关系呢?

@GreatV
Copy link
Collaborator

GreatV commented Jan 15, 2025

@zhangxj-1 内容不需要保证,只需要保证表格结构正确

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

No branches or pull requests

2 participants