第14名解决方案
第14名解决方案
作者:penguin46
首先,祝贺获胜的团队!这项任务非常有趣且具有挑战性。我希望能从排名靠前的解决方案中学到很多东西。
我的解决方案包括图表类型分类、针对散点图的模板匹配,以及针对其他图表类型的pix2struct模型。
图表类型分类
我在ICDAR数据集中约70,000张图像上微调了resnet18d,在提取的数据上准确率达到0.995。
针对散点图的模板匹配
散点图通常需要大量数据点,并且需要较长的标记长度。我通过目标检测、OCR和模板匹配来解决这个问题。该方法在提取数据上的得分为0.51。算法如下:
- 通过YOLOX(im_size=480)检测数据点和轴文本
- 使用检测到的点中置信度最高的点生成数据点模式
- 根据模式的RGB值与背景颜色之间的距离来识别模式的形状
- 扫描整个图像,并计算与模式的相似度得分(L2距离)
- 选择约1000个相似度得分最高的像素作为候选点
- 用背景颜色填充包含数据点的矩形区域,并将其作为重建的基础
- 按相似度得分从高到低的顺序取出候选点,并在满足以下两个条件时放置模式:
- 放置模式后与原图像的L2误差比不放置模式时更小
- 与现有模式的重叠不超过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)