560. Benetech - Making Graphs Accessible | benetech-making-graphs-accessible
祝贺所有获奖者,并感谢主办方举办这场有趣的竞赛。
我也想感谢我的队友@fuumin621与我一起完成这项挑战性任务。
与其他解决方案类似,我们的流程也包含散点图的物体检测和其他图表的端到端图表预测。
散点图:使用YOLOX进行图表边界框检测 + 使用YOLOX进行散点检测 + 使用matcha进行最大/最小轴标签的OCR识别
其他图表:使用原始合成数据训练的deplot模型
我们采用以下两步物体检测方法检测散点,并通过matcha读取的轴标签确定散点坐标:
步骤1. 使用YOLOX进行图表边界框检测(模型大小:x,图像尺寸:640)
步骤2. 使用YOLOX在"图表边界框裁剪"图像上进行散点检测(模型大小:x,图像尺寸:960)
步骤2的训练数据包括竞赛数据(生成的、提取的)以及来自ICDAR数据集的538个散点图。
公开榜分数 : 私有榜分数 = 0.09 : 0.29
我们使用多种图表数据源训练deplot模型:
本次竞赛的核心重点是数据生成。
我们生成具有各种模式的图表,使模型对未知的私有数据集具有鲁棒性。
生成的图表使用竞赛数据集(提取的)和ICDAR数据集进行评估。
持续的图表修改和错误分析反馈使我们能够处理困难数据。
我们的数据在提高折线图精度方面特别有帮助(因此线条是否在刻度标签上非常重要!)。
针对常见错误的改进尝试:
以下是生成图表的示例:




| 数据源 | 每轮样本数 | 总图表数 |
|---|---|---|
| 生成的 | 1000 | 50000 |
| 提取的 | 953 | 953 |
| ICDAR | 1000 | 4177 |
| 50万数据集 | 1000 | 400000 |
| 原始合成数据 | 2000 | 120000 |
| 原始合成数据(直方图) | 100 | 10000 |
每轮训练按上述比例随机采样各数据源的图表。
训练轮数:50
学习率:2e-4
调度器:余弦退火
批大小(累积):64
| 图表类型 | 公开榜 | 私有榜 |
|---|---|---|
| 全部 | 0.86 | 0.69 |
| 垂直条形图 | 0.39 | 0.26 |
| 水平条形图 | 0.04 | 0.01 |
| 折线图 | 0.32 | 0.12 |
| 散点图 | 0.09 | 0.29 |
| 点图 | 0 | 0 |