返回列表

14th Place Solution

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

开始: 2023-03-21 结束: 2023-06-19 教育内容生成 数据算法赛
第14名解决方案

第14名解决方案

作者:penguin46

首先,祝贺获胜的团队!这项任务非常有趣且具有挑战性。我希望能从排名靠前的解决方案中学到很多东西。

我的解决方案包括图表类型分类、针对散点图的模板匹配,以及针对其他图表类型的pix2struct模型。

图表类型分类

我在ICDAR数据集中约70,000张图像上微调了resnet18d,在提取的数据上准确率达到0.995。

针对散点图的模板匹配

散点图通常需要大量数据点,并且需要较长的标记长度。我通过目标检测、OCR和模板匹配来解决这个问题。该方法在提取数据上的得分为0.51。算法如下:

  1. 通过YOLOX(im_size=480)检测数据点和轴文本
  2. 使用检测到的点中置信度最高的点生成数据点模式
  3. 根据模式的RGB值与背景颜色之间的距离来识别模式的形状
  4. 扫描整个图像,并计算与模式的相似度得分(L2距离)
  5. 选择约1000个相似度得分最高的像素作为候选点
  6. 用背景颜色填充包含数据点的矩形区域,并将其作为重建的基础
  7. 按相似度得分从高到低的顺序取出候选点,并在满足以下两个条件时放置模式:
    1. 放置模式后与原图像的L2误差比不放置模式时更小
    2. 与现有模式的重叠不超过30%

由于简单线性回归容易受到离群值的影响,我尝试使用某种形式的鲁棒回归。考虑到RANSAC和huber等方法需要尺度参数,并且由于数据量小,参数容易过拟合数据集,我实现了一种无需任何超参数的简单鲁棒回归。连接所有两点对形成一条直线,并计算斜率和截距。所需的回归线通过使用所有计算出的斜率和截距的中位数来获得。

其他类型的Pix2Struct模型

  • 标签采用xyxy格式
  • 数值的小数部分四舍五入到4位有效数字
  • 对平移、旋转、噪声、色调等进行增强
  • 预训练模型:MatCha-base
  • 超参数:
    • max_length: 512
    • max_patches: 2048
    • lr: 1e-5
    • 调度器: get_cosine_schedule_with_warmup
    • num_warmup_steps: 1000
    • weight_decay: 1e-5
  • 训练数据:
    • 提取的数据 (1118)
    • 生成的数据 (999)
    • ICDAR (已标注 1286 + 伪标注和手动标注 2988)
同比赛其他方案