返回列表

#13th place solution

560. Benetech - Making Graphs Accessible | benetech-making-graphs-accessible

开始: 2023-03-21 结束: 2023-06-19 教育内容生成 数据算法赛
第13名解决方案 - 图表可访问性竞赛

第13名解决方案

作者头像
Liam Nguyen
Kaggle MASTER
竞赛排名:第13名
发布时间:2023年6月20日

感谢Kaggle和主办方组织这次比赛。我想快速分享我的简单解决方案。所有步骤都很基础,可以使用Kaggle和Google Colab(Pro)计算资源完成。

最终提交笔记本:
https://www.kaggle.com/code/namgalielei/benetech-eval-and-infer-v12/notebook

1. 概述

图表类型分类 + 绘图边界框预测 -> OCR识别 -> 图表数据实例检测/分割(线图)-> 数据关联

2. 模块详解

a. 图表类型分类 + 绘图边界框预测

  • 使用PyTorch实现的Unet分割模型,骨干网络为eca nfnet l1,带有辅助分类头。通过二值分割预测绘图边界框,使用softmax分类进行图表类型识别
  • 集成3折交叉验证模型
    训练代码链接

b. OCR文字识别

  • 基于Paddle ppOCRv3框架
  • 文本检测:在竞赛数据上微调轻量级mobilenetv3-dbnet模型,以词组级别为检测目标(JSON文件已提供真实标注)
  • 文本识别:使用预训练模型
  • 逻辑优化:
    • 修复Paddle TextDet后处理问题:当生成的多边形只有3个点(三角形)时,改用最小外接旋转矩形
    • 解决透视变换后的文本旋转问题:进行两次预测(无旋转和顺时针旋转90度),选择置信度更高的结果

c. 图表数据检测

d. 数据关联

  • 基于规则逻辑将图表数据(柱状、散点、点图)与对应坐标轴刻度关联
  • 将刻度和图表数据的像素坐标投影到轴相对尺度空间

未来可优化方向

由于时间限制未能尝试的改进:使用外部数据集、测试更多实例分割/目标检测模型、引入生成模型

同比赛其他方案