作者:熊唯,黄飞,戈扬

腾讯 PCG 应用研究员

本文介绍了 QQ 研发中心自研的 PPT  重建技术,目前腾讯文档在进行接入工作。当前主流办公产品比如 office,wps,腾讯文档会采用 AI 技术对图片进行排版恢复还原为 doc 形式的文档。通常针对以文字偏多,格式简单的图像效果比较好。如果内容丰富,图片并茂的内容图像在转为 doc 文档时,由于图像比例,文档排版插入,对丰富背景还原度差等问题导致很多 ppt 形式的图片无法很好还原为电子文档。

目前越来越多的资源信息是以图像形式存储,然而很多用户在获取图像后需要对图片进行编辑或者电子文档形式进行存储。最主流的做法是直接进行 OCR 提取,但这种方法无法满足用户对排版的需求。当前主流办公产品比如 office,wps,腾讯文档等会采用一些技术对图片进行排版恢复还原为 doc 形式的文档,通常针对以文字偏多,格式简单的图像效果比较好,但如果内容丰富,图片并茂的 ppt 内容图像在转为 doc 文档时由于图像比例,文档排版插入限制以及文档适应背景单一而丰富背景还原度差等问题会导致很多 ppt 形式的图片无法很好还原为电子文档。

QQ 研发团队团队在前期已经推出了基于深度学习的文档重建,表格重建的技术文章。产品也已经在腾迅文档,PCQQ,手机 QQ 上线,近期我们又增加了 PPT 重建功能。小程序在搭建中,其中添加里更多子功能,比如 OCR,文档自动选框,去摩尔纹,图片扭曲恢复等。欢迎大家通过 QQ 小程序体验。

下面主要给大家介绍 PPT 的重建技术,产品流程如图 1 所示,效果图如图 2 所示:

图1 图片转PPT 产品流程

图2 图片转PPT (左:原图 右:PPT )

一、图片转 ppt 框架

项目的技术流程主要分为三大模块:

预处理:包括文档检测和矫正,图片去摩尔纹,文档扭曲恢复,文档旋转,语义分割等,主要深度学习,模型部署在 GPU。

排版分析:对各实体的恢复,以及排版处理,逻辑流程部署在 CPU。

后处理: 生成导出 PPT 文件

图3 项目技术模块

下面给大家一一介绍我们主要模块用到的技术细节。

二、AI 模块

2.1 自动框选

用户拍摄图片一般不会是工整图片,所以在进行提取前还需要做很多的预处理工作,其中最重要的一个模块就是先框选出真正我们需要转换的 PPT/文档内容。

图4 自动框选效果

对内容的框选现有很多技术,比如图像处理的边缘提取,但是效果不好需要特别多的后处理,随着 AI 的发展,也有一些深度学习的方法对边缘进行提取,比如 HED 网络。前期同事也基于 hed 进行了模型训练得到了不错的检测效果。使用的框架图如下图:

其中 Decoder1 分支的简易图如下:

经过 HED 处理后在工程的后处理还是需要很多规则判断,特别在候选框选取时添加过多规则,如下图。所以我们需要进一步对模型进行优化减免后处理的繁杂工作以及优化框选准确性。

图5 框选后处理

通过 case 分析,我们预测的选框通常会多出背景区域,如果通过语义分析知道大致的文档内容区域,再通过边缘线条检测准确的边框信息,融合信息是否能得到更精确的选框。

所以在原有基础上增加了一个分割分支,多任务学习,在 decoder 模块分出两个分支,一个分支学习图像的边缘信息,一个分支学习图像的语义信息,如下图所示。

图6 多任务边缘检测网络

图7 网络示意图

两个分支的 encoder 部分卷积层权重共享。

在边缘检测分支,我们还是分为多个 block 计算 loss,并通过 se 模块融合分支。对于边缘检测,我们更多想得到全局信息,所以引入了 SEblock,如下图,在 featrueMap 上做了一次 attention。

图8 SEBlock

在语义分割分支,我们采用通过的 Unet 结构。最终加权两个分支的 loss 进行训练。

在训练过程中,我们的数据来源于仿真和真实数据的标注,另一部分来源于半监督方式通过检测分支的结果获取到文档内容从而得到分割 mask。在 infer 过程中,检测分支获取得到所有可能组成的四边形,和分割分支的结果计算 Miou,选择 miou 最大的检测框作为最终框选对象。

图9 检测结合分割获取最佳选框

通过对比可以发现,语义分割分支可以得到更精准的检测框。

图10 优化前后对比图

通过验证集验证,hed 验证集 miou=88.38,多任务网络 miou=90.63,多任务训练的方式 miou 可以提升 2 个点。

2.2 图像矫正

检测到 PPT 文档内容后,我们还需要对图像质量进行提升后再进行后续处理,希望转换后的文件还原度更高。针对图片矫正我们主要做了,去摩尔纹,文档旋转矫正和扭曲恢复。

2.2.1 去摩尔纹

对于屏幕拍摄图片,摩尔纹很影响我们后续处理的图像质量,所以检测到图片后我们首先通过小的分类模型判断是否需要对摩尔纹进行处理,如果属于屏幕拍摄场景会调用去摩尔纹模块。

去除摩尔纹的网络框架和效果图如下:

图11 去摩尔纹网络

图12 去摩尔纹效果(左:带摩尔纹图片 中:原图 右:去摩尔纹效果)
2.2.2 扭曲恢复

检测出四边形后,通过投影变换可以对图片进行一步矫正,但是对于扭曲图像,仅仅通过图像处理是不够的,我们通过扭曲恢复模型,对图片扭曲恢复。这一步骤对于纸质的 PPT 拍摄以及文档拍摄图片比较重要。

扭曲恢复的网络框架和效果图:

图13 扭曲恢复效果

扭曲网络借鉴了 Document Image Unwarping via A Stacked U-Net 论文思路,近期也做了比较大的优化,主要通过将曲线拟合算法结合到网络结构解决了扭曲恢复后的文字在空间上存在细微抖动的问题,后续我们也会公开这块的技术细节。

2.2.3 文本旋转

OCR 也是我们重建的一个重要模块,除了能够提取图片中的文字信息,还有一个作用是可以通过文本检测框获取到图片中文本的旋转角度。但是目前 OCR 对于角度的预测在-45---45 角度之间比较准确,对于 90 度,180 度的旋转图片,预判角度不太准确。

我们采用的方案是首先通过小的分类模型预测图片的象限方向,分类类别为[0,90,180,270]。先把图片旋转到-45~45 之间。再通过 OCR 预测角度讲图片旋转到 0 度。效果如下图:

图14 综合分类模型和OCR 模型旋转图片

左图为原图,中图为判断需要旋转 180 度,右图为通过 OCR 预测角度旋转后图片。

2.3 实体提取

通过以上步骤,我们可以获取到比较干净工整的 PPT 内容图片,这一步我们要通过语义分割,检测到图片的实体部分,方面后续生成 PPT。本模块在图片转 word 和图片转 excel 中都需要的模块。

对于 PPT 图片,我们主要分割的类别为文本,图片,表格,背景。下图为标注的语义分割类别示意图。

图15 语义分割示意图

对于主流框架和基础网络,我们使用 PPT 的分割数据做了一些实验对比

图15 语义分割主流框架实验对比

从基础网络上看,shufflenet 速度更快,resnet 效果更好。网络结构上从性能上分析 bisenet 性价比更好。

我们在项目中使用的是 Bisenet 框架,在学习特征时并行两条支路,一条学习空间细节信息,一条支路学习高层语义信息,然后将学到的信息融合,能够更好学习到全局信息和局部信息特征信息。

图16 BiseNet网络

2.4 实体恢复

在上一步我们已经知道图片中哪块区域是文本,图片,表格,但是直接插入到 PPT 中会存在很多问题,比如图片中还嵌有文本的处理,文本框直接插入的背景问题等。我们重要介绍文字和背景的恢复。

2.4.1 文本恢复

通过实体分割文本段以及 OCR 提取后,可以获取到文本框信息。如图 17,左图为原图,右图红框为我们获取到的文本区域,但是无法直接获取到字体颜色。

图17 OCR框选文本框

得到文本框后,字体颜色恢复步骤为:

  • 截取文本框区域,如图 18(a)

  • 对文本框区域自适应二值化得到前景背景,如图 18(b)

  • 前景颜色区域计算均值得到前景和背景颜色值,如图 18(b)上前景像素区域对应的 a 点像素值 rgb 计算均值,设置为字体颜色。

  • 图 18(a)的文本块区域,背景颜色为 RGB([73.,192.,179]);前景颜色 RGB ( [207, 255,255])

  • 图 18(c)的文本块区域,背景颜色为 RGB([229,250,245]);前景颜色 RGB ( [78,156,149])

图18 获取文本框前景

得到了字体大小和颜色恢复,结合之前的背景重建,我们可以得到最终的还原效果,字体几乎完全还原,如图 19 所示:

图19 字体还原效果
2.4.2 背景恢复

通过语义分割模型后,我们可以获取到前景所有实体,和剩下的背景区域。通过实体抽取直接在画布上进行插入,效果如图 20。

图20 未对背景做处理插入效果

直接插入效果可以看出,在文本区域块和周围其他背景颜色差别太多,过度显得特别突兀,而且如果插入文本框颜色和文字颜色一致会导致文本看不清。所以我们需要通过 inpainting 算法,对背景进行重建。重建背景,图片,文字,表格,包括图片上的文字后就可以生成 PPT 了。

2.5 生成 PPT

通过以上步骤我们得到了各个实体模块,并且对每个模块进行了恢复重建。通过语义分割模块,可以获取到各实体(表格,图片,文本,背景)的相对坐标位置。通过重建模块,可以获取:

  • 表格:表格的样式,行列数,单元格内文字内容

  • 图片:图片抹除文字区域后,通过 impainting 重建图片内容

  • 文本:文本区域的字体颜色,字体大小

  • 背景:抹除前景区域后,通过 inpainting 重建背景内容

最后可以按照 office open xml 的格式在画布上依次插入背景,表格,图片,文字实体,得到最终的可编辑.ppt 格式。腾讯文档通过 http 请求获取到.ppt 格式文件后再转化为腾讯文档在线电子文档形式展示。

END
最后说个题外话,相信大家都知道视频号了,随着灰度范围扩大,越来越多的小伙伴都开通了视频号。小詹也开通了一个视频号,会分享互联网那些事、读书心得与副业经验,欢迎扫码关注,和小詹一起向上生长!「没有开通发布权限的尽量多互动,提升活跃度可以更快开通哦」

比OCR更强大的PPT图片一键转文档重建技术相关推荐

  1. 高分辨率扫描出来的图片有摩尔纹_QQ新功能:图片一键转PPT,比OCR更强大的文档重建技术...

    作者:熊唯,黄飞,戈扬,腾讯 PCG 应用研究员 本文介绍了 QQ 研发中心自研的 PPT 重建技术,目前腾讯文档在进行接入工作.当前主流办公产品比如 office,wps,腾讯文档会采用 AI 技术 ...

  2. OCR技术学习,智能文档图像处理技术应用与实践

    目录 一.智能文字识别一般包含以下几个过程 1.图像输入 2.图像预处理 (1)弯曲矫正系统pipeline (2)摩尔纹去除 3.版面分析 4.字符切割 5.字符识别 6.版面恢复 7.后处理.核对 ...

  3. 转换文件格式时怎么把ppt转换成word文档

    ppt是我们经常在会议上使用,以供演示和讲座.现在随着时代的发展,每个学校几乎都在使用多媒体上课,ppt的制作成了每个老师必须要熟练的技能,但中间出现了错误那就会导致修改起来太麻烦.一般情况下我们会把 ...

  4. java freemarker 图片_java通过freemarker导出包含富文本图片的word文档

    废话不多说,进入正题! 本文重点在于:对富文本图片的导出(基础的freemarker+word模板导出这里不做详细解说哈) (ps:大神的东西太深奥~~懵逼了 一周才搞定,为了方便后来在更加简单,清晰 ...

  5. SDK实现APP一键登录文档

    SDK实现APP一键登录文档 一键登录效果展示 前期准备 从相关公司官网http://www.51yixun.com/quicklogint下载相关的SDK压缩包. 第一步,复制libs文件夹里的所有 ...

  6. PPT到Word的文档转换(未果)

    作为学习总结,说一下自己从PPT到word的文档转换的过程. 1.尝试将PPT转换为rtf格式. 该方法可保留原PPT的文字格式,若为纯文本的ppt文件转换后稍做排版便可使用,无须其他工具的辅助.然而 ...

  7. PPT转成Word文档的四种方法

    注: 实际使用中,方法四比较好使. 如果想要提取图片,可以先转换成pdf,再转换成word. 方法一:利用"大纲"视图       打开PPT演示文稿,单击"大纲&quo ...

  8. 把ppt转换成word文档的转换器

    ppt转换成word文档的方法是什么?我们经常在办公时,会用到PPT文档,但有时编辑好了后,发现了错误要再次进行修改.这可实在是太麻烦了.需要一页一页的查找,十分的耽误时间.要是能将PPT该成另一个格 ...

  9. 如何把图片转换为PDF文档

    今天无意中看到有一个同事的空间,有一篇<如何把图片转为PDF文档>的日志,按照教程所写,于是下载了一个迅捷JPG转换成PDF转换器,笔者使用成功,特与大家分享. 应用背景: 把书本纸上有用 ...

最新文章

  1. 联机重做日志的配置过程
  2. 如何组织公司的线下活动
  3. Android数据存储之GreenDao 3.0 详解
  4. 104. Maximum Depth of Binary Tree 二叉树的最大深度
  5. 要不要出去找一份实习?
  6. 晨哥真有料丨为什么女生从来不主动找你聊天
  7. 删除android电视软件下载,智能电视Root并删除预装
  8. C# 调用讯飞实时语音转写
  9. 【2020 Java基础快速学习路线】写了很久,这是一份最适合普通大众、非科班的路线
  10. 【Spring Boot】创建一个简单的Spring Boot的 Demo
  11. 手机显示主服务器连接异常怎么办,手机主服务器连接配置异常
  12. 权益证明,私钥攻击与无法伪造的奢侈
  13. TNS-12555 TNS-12560错误
  14. php hapijs,hapi 起步
  15. (转)常用的js代码
  16. 阿里高维向量检索方法NSG介绍
  17. 关于去除CSDN上图片的默认水印
  18. 微信企业支付RSA加密报错
  19. 利用excel表格将IP(IPV4)地址自动按段拆分每一段的数值至单元格
  20. vue使用高德地图api,点击地图标记,弹出弹窗,使用animate让弹窗有动画的加载

热门文章

  1. 请写一段 PHP 代码 ,确保多个进程同时写入同一个文件成功
  2. CSS引入CSS文件不生效 搞得很恼火
  3. jQuery的进行解决layui闪退的问题
  4. PHP保留小数三种方法
  5. Linux之Server环境配置
  6. java+cache使用方法_java相关:Spring boot redis cache的key的使用方法
  7. 与孩子一起学编程python_与的解释|与的意思|汉典“与”字的基本解释
  8. php如何获取上传文件的后缀?
  9. php获取日期中的月份,年份
  10. 信息时代计算机应用技术,计算机应用技术