快速导航×

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

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

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

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

一、赛题背景

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

二、数据分析

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

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

  • 如上图所示是经过初步训练后的有遮挡的检测结果,存在较为严重的漏检,因此本次比赛着重优化有遮挡的表格检测。 在训练集中这类图片只有极少数,所以经过裁剪,筛选,粘贴等方式生成了很多新的此类型数据作为数据扩充。
  • 另外,由于检测的行和列都为窄长的目标,且较短边长度极短。我们知道越大的尺寸越有利于小目标的检测,因此增大训练时随机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大赛-表格检测进阶:表格的结构化优胜方案 -        

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

五、训练细节

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

数据扩充

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

数据增强

  • 随机像素内容变换,包括对亮度、对比度、饱和度、色相角度、通道顺序的调整
  • 随机扩张,填充值为 [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 计算预测分布与真实分布之间的距离,并将上述四个损失的加权和作为模型的总损失。

六、改进策略

有效策略:

Motiff妙多 Motiff妙多

Motiff妙多是一款AI驱动的界面设计工具,定位为“AI时代设计工具”

Motiff妙多 334 查看详情 Motiff妙多
  • 对有遮挡框和图表格的类型进行数据扩充。
  • 增大随机缩放大小到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大赛-表格检测进阶:表格的结构化优胜方案的详细内容,更多请关注其它相关文章!


# 套件  # 巩义网站推广怎么样  # 网站建设美丽田园  # 抖音发视频关键词搜索排名  # 网站运营与优化理论课  # 忻州网站建设优化公司  # 莱芜网站建设与制作公司  # 常德网站建设与设计制作  # 石林谷歌seo排名提升  # 盐城网站seo优化  # 东胜区网站建设操作  # 可分为  # 显存  # 所示  # 评价指标  # python  # 一言  # 中文网  # 结构化  # 百度网  # 进阶  # fig  # udio  # igs  # red  # 质数  # cos  # 百度  # 百度网盘  # ai 


相关栏目: 【 企业资讯168 】 【 行业动态50218 】 【 媒体报道120512


相关推荐: j*a 数组怎么循环输出  固态硬盘如何检查  如何查看win10版本命令行  ai如何重复使用上一命令  苹果16系统网站有哪些  虽千万人吾往矣什么意思  夸克学习都有什么课程  苹果16要升级哪些功能  买的5g手机但是没有5g网络怎么办  vb中的datediff函数怎么用 ​VB中的DateDiff函数:详尽指南  如何查找固态硬盘  51单片机贴片怎么*  j*a怎么用数组缓存  如何在一串数字前面去掉四位数的命令  typescript怎么使用vue  mysql的datediff函数怎么用  显示器上power键是什么意思  路由器power闪红绿灯闪是什么意思  如何用命令打开光驱  如何用adb命令停用系统软件  位置控制单片机怎么用的  域名解析后为什么要进行域名备案  如何查看硬盘是固态硬盘  基金市盈率是什么意思  单片机加法程序怎么写  j*a数组怎么放字符  如何设置从固态硬盘启动  固态硬盘 如何分区  单片机*计步器怎么用  输入命令如何换行  苹果16多有哪些功能  typescript怎么传json  空调控制面板power灯一直亮是什么意思  固态硬盘4k如何看  一尺是多少厘米  如何显示固态硬盘  苹果16都有哪些亮点  如何提高固态硬盘速度  tft单片机怎么写彩屏  cron表达式在线工具有哪些  春运抢票多久可以买到票  税负是什么意思  春运抢票如何抢连坐的票  夸克高考为什么不靠谱  新找到ao3镜像网站链接入口  电动车power灯亮红灯是什么意思  ready是什么意思  如何设置sql命令  苹果16有哪些改装模式  wps中datediff函数怎么用 WPS中DATEDIFF函数的语法和用法分享