百度网盘AI大赛-表格检测进阶:表格的结构化优胜方案

P粉084495128
发布: 2025-07-30 10:44:37
原创
324人浏览过
百度网盘AI大赛表格结构化赛题需检测表格、行、列及合并单元格。方案选用ppyoloe-plus X网络,通过扩充有遮挡数据、增大训练resize尺寸、替换SIOU为回归损失优化,经300轮训练,单图耗时合规,获第9名,还提及有效、无效策略及待优化点。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

百度网盘ai大赛-表格检测进阶:表格的结构化优胜方案 - php中文网

百度网盘AI大赛-表格检测进阶:表格的结构化第9名方案

一、赛题背景

随着票据、名单等带有表单、表格的文件被广泛应用,将纸质文件转化成电子数据并保存管理成为了很多企业的必然工作。传统人工录入的方式效率低、差错多、流程长,如果能通过技术处理,实现表格图片的结构化展现,则可以很大程度降低成本,提高效率以及使用体验。本次比赛希望各位选手能通过OCR等技术解决此痛点问题,识别表格图片的内容与坐标,精准还原纸质数据。

二、数据分析

  • 本次比赛发布的训练集共7742张图片。
  • 数据类型大致可分为截屏电子表和拍照电子表。其中截屏电子表包括有边界的和无边界的电子表,拍照电子表可分为有遮挡的无遮挡的。
  • 检测目标分为四类,分别是整体表格(table)、表格行(row)、表格列(column)、跨多行/列的合并单元格(spanning_cell)。

百度网盘AI大赛-表格检测进阶:表格的结构化优胜方案 - php中文网        

  • 如上图所示是经过初步训练后的有遮挡的检测结果,存在较为严重的漏检,因此本次比赛着重优化有遮挡的表格检测。 在训练集中这类图片只有极少数,所以经过裁剪,筛选,粘贴等方式生成了很多新的此类型数据作为数据扩充。
  • 另外,由于检测的行和列都为窄长的目标,且较短边长度极短。我们知道越大的尺寸越有利于小目标的检测,因此增大训练时随机resize的尺寸。不过由于自身设备的限制,最大只增大到832(理论上来说更大一些效果会更好)。

三、评价指标

  • 本次比赛的评价指标为:precision 和 recall。针对每一个类别box,pred box与gt box计算iou>=0.9且类别正确记为TP,未匹配的gt box记为FN,同一gt box仅可正确匹配一次。precision为所有类别的平均precision,recall为所有类别的平均recall,最终排名按照上述两个指标的加权分数从大到小依次排序。
  • 机器配置:V100,显存15G,内存10G
  • 单张图片耗时>2s,决赛中的性能分数记0分
  • 由评价指标可知,iou>=0.9且类别正确才会记为TP,而Paddle Detection 中的默认iou阈值为0.5,在此验证时将其改变为0.9.

四、网络模型

  • 此次我们首先选取了 Paddle Detection 套件中的ppyoloe-plus和VitDet来训练测试,因为检测会对显存以及时间有要求,最终放弃了VitDet, 采用 ppyoloe-plus 作为本次比赛的 baseline。网络架构如图所示:

百度网盘AI大赛-表格检测进阶:表格的结构化优胜方案 - php中文网        

  • 其次考虑到ppyoloe-plus有不同大小网络的版本,我们知道,通常来讲相同架构下网络越深性能越好,在检测到最大的X网络也满足检测时间要求后,最终采用ppyoloe-plus的X网络。

五、训练细节

本次对训练集所有图片进行训练,并根据A榜测试集的类型分布挑选一些代表性的作为验证集,其中由于有遮挡的表格检测是本次比赛的难点,因此新生成的有遮挡的表格图片占验证集比重最大。

数据扩充

  • 通过裁剪,筛选,然后随机粘贴方式生成新的带有遮挡框或者图表格的数据。如下图所示:百度网盘AI大赛-表格检测进阶:表格的结构化优胜方案 - php中文网            

数据增强

  • 随机像素内容变换,包括对亮度、对比度、饱和度、色相角度、通道顺序的调整
  • 随机扩张,填充值为 [123.675, 116.28, 103.53]
  • 随机裁剪
  • 随机翻转
  • 按批次随机缩放,缩放大小选取列表为 [320, 352, 384, 416, 448, 480, 512, 544, 576, 608, 640, 672, 704, 736, 768, 800, 832]
  • 归一化处理, 均值为 [0.485, 0.456, 0.406],标准差为 [0.229, 0.224, 0.225]

训练配置

  • 总迭代周期: 300 epoch。
  • 预训练模型: ppyoloe-plus-x 在 Object365 数据集上的预训练模型。
  • 首先,我们采用 LinearWarmup 策略对ppyoloe-plus-x 进行预热,其中,预热周期为 5 epochs。 之后,采用 CosineDecay 策略对学习率进行调整,其中,训练的基础学习率为 0.0001, 训练周期为 360 epochs。此外,我们采用动量为 0.9 的 Momentum 优化器对网络进行优化。同时,我们采用 Focal loss 作为分类损失,采用 SIOU 作为回归损失,采用 L1 Loss 计算预测值与真实值之间的误差,采用 DF loss 计算预测分布与真实分布之间的距离,并将上述四个损失的加权和作为模型的总损失。

六、改进策略

有效策略:

飞书多维表格
飞书多维表格

表格形态的AI工作流搭建工具,支持批量化的AI创作与分析任务,接入DeepSeek R1满血版

飞书多维表格26
查看详情 飞书多维表格
  • 对有遮挡框和图表格的类型进行数据扩充。
  • 增大随机缩放大小到832。
  • 采用SIOU替换GIOU作为回归损失函数。

无效策略:

  • Mosaic,Mixup,Cutmix等数据增强。
  • 添加轻量级注意力机制,如CBAM,SE等。

待优化策略:

  • 预测后处理模块-自动纠正坐标。
  • 引入坐标注意力机制。

七、文件

  • PaddleDetection-release-2.5:检测套件
  • Modify/* 修改配置文件
  • gen_data.py 数据扩充脚本
  • gen_anno.py VOC标签生成脚本
  • label_list.txt 类别标签文件
  • train.txt 训练集标签文件
  • predict_final 最终提交结果
  • predict_corre.py 后处理模块(不能保证泛化性,最终未采用)

运行

In [ ]
# 解压数据集 此训练数据集已经添加了新扩充的数据,无需再次生成%cd /home/aistudio
!unzip /home/aistudio/data/data196460/train.zip!unzip /home/aistudio/data/data196460/testA.zip
登录后复制
   
In [ ]
# 解压 PaddleDetection 套件%cd /home/aistudio/
!unzip /home/aistudio/data/data196442/PaddleDetection.zip
登录后复制
   
In [ ]
# 安装相关包%cd /home/aistudio/PaddleDetection
! pip install -r requirements.txt
登录后复制
   
In [ ]
# 修改配置文件%cd /home/aistudio/work/modify/
!cp ppyoloe_plus_crn_table.yml /home/aistudio/PaddleDetection/configs/ppyoloe/_base_
!cp ppyoloe_plus_reader_table.yml /home/aistudio/PaddleDetection/configs/ppyoloe/_base_
!cp ppyoloe_plus_crn_x_table.yml /home/aistudio/PaddleDetection/configs/ppyoloe/
!cp voc.yml /home/aistudio/PaddleDetection/configs/datasets/voc.yml
登录后复制
   
  • IOU_loss替换:将PaddleDetection/ppdet/modeling/heads/ppyoloe_head.py中的第84行self.iou_loss = GIoULoss()改为self.iou_loss = SIoULoss()
In [ ]
# 训练%cd /home/aistudio/PaddleDetection
! python tools/train.py -c configs/ppyoloe/ppyoloe_plus_crn_x_table.yml
登录后复制
   
In [ ]
# 模型导出%cd /home/aistudio/PaddleDetection
! python tools/export_model.py -c configs/ppyoloe/ppyoloe_plus_crn_x_table.yml \
                               --output_dir=/home/aistudio/work/predict_final/\
                               -o weights=/home/aistudio/data/data186448/best_model.pdparams\
登录后复制
   
In [ ]
# 测试%cd /home/aistudio/work/predict_final/
!python predict.py /home/aistudio/work/predict_final/imgs /home/aistudio/work/predict_final/output
登录后复制
   

以上就是百度网盘AI大赛-表格检测进阶:表格的结构化优胜方案的详细内容,更多请关注php中文网其它相关文章!

百度网盘
百度网盘

百度网盘是一款省心、好用的超级云存储产品,已为超过7亿用户提供云服务,空间超大,支持多类型文件的备份、分享、查看和处理,自建多个数据存储中心。有需要的小伙伴快来保存下载体验吧!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号