比OCR更強(qiáng)大的PPT圖片一鍵轉(zhuǎn)文檔重建技術(shù)
本文介紹了 QQ 研發(fā)中心自研的 PPT 重建技術(shù),目前騰訊文檔在進(jìn)行接入工作。當(dāng)前主流辦公產(chǎn)品比如 office,wps,騰訊文檔會(huì)采用 AI 技術(shù)對(duì)圖片進(jìn)行排版恢復(fù)還原為 doc 形式的文檔。通常針對(duì)以文字偏多,格式簡(jiǎn)單的圖像效果比較好。如果內(nèi)容豐富,圖片并茂的內(nèi)容圖像在轉(zhuǎn)為 doc 文檔時(shí),由于圖像比例,文檔排版插入,對(duì)豐富背景還原度差等問題導(dǎo)致很多 ppt 形式的圖片無(wú)法很好還原為電子文檔。
目前越來(lái)越多的資源信息是以圖像形式存儲(chǔ),然而很多用戶在獲取圖像后需要對(duì)圖片進(jìn)行編輯或者電子文檔形式進(jìn)行存儲(chǔ)。最主流的做法是直接進(jìn)行 OCR 提取,但這種方法無(wú)法滿足用戶對(duì)排版的需求。當(dāng)前主流辦公產(chǎn)品比如 office,wps,騰訊文檔等會(huì)采用一些技術(shù)對(duì)圖片進(jìn)行排版恢復(fù)還原為 doc 形式的文檔,通常針對(duì)以文字偏多,格式簡(jiǎn)單的圖像效果比較好,但如果內(nèi)容豐富,圖片并茂的 ppt 內(nèi)容圖像在轉(zhuǎn)為 doc 文檔時(shí)由于圖像比例,文檔排版插入限制以及文檔適應(yīng)背景單一而豐富背景還原度差等問題會(huì)導(dǎo)致很多 ppt 形式的圖片無(wú)法很好還原為電子文檔。
QQ 研發(fā)團(tuán)隊(duì)團(tuán)隊(duì)在前期已經(jīng)推出了基于深度學(xué)習(xí)的文檔重建,表格重建的技術(shù)文章。產(chǎn)品也已經(jīng)在騰迅文檔,PCQQ,手機(jī) QQ 上線,近期我們又增加了 PPT 重建功能。小程序在搭建中,其中添加里更多子功能,比如 OCR,文檔自動(dòng)選框,去摩爾紋,圖片扭曲恢復(fù)等。歡迎大家通過 QQ 小程序體驗(yàn)。
下面主要給大家介紹 PPT 的重建技術(shù),產(chǎn)品流程如圖 1 所示,效果圖如圖 2 所示:
圖1 圖片轉(zhuǎn)PPT 產(chǎn)品流程
圖2 圖片轉(zhuǎn)PPT (左:原圖 右:PPT )
一、圖片轉(zhuǎn) ppt 框架
項(xiàng)目的技術(shù)流程主要分為三大模塊:
預(yù)處理:包括文檔檢測(cè)和矯正,圖片去摩爾紋,文檔扭曲恢復(fù),文檔旋轉(zhuǎn),語(yǔ)義分割等,主要深度學(xué)習(xí),模型部署在 GPU。
排版分析:對(duì)各實(shí)體的恢復(fù),以及排版處理,邏輯流程部署在 CPU。
后處理: 生成導(dǎo)出 PPT 文件
圖3 項(xiàng)目技術(shù)模塊
下面給大家一一介紹我們主要模塊用到的技術(shù)細(xì)節(jié)。
二、AI 模塊
2.1 自動(dòng)框選
用戶拍攝圖片一般不會(huì)是工整圖片,所以在進(jìn)行提取前還需要做很多的預(yù)處理工作,其中最重要的一個(gè)模塊就是先框選出真正我們需要轉(zhuǎn)換的 PPT/文檔內(nèi)容。
圖4 自動(dòng)框選效果
對(duì)內(nèi)容的框選現(xiàn)有很多技術(shù),比如圖像處理的邊緣提取,但是效果不好需要特別多的后處理,隨著 AI 的發(fā)展,也有一些深度學(xué)習(xí)的方法對(duì)邊緣進(jìn)行提取,比如 HED 網(wǎng)絡(luò)。前期同事也基于 hed 進(jìn)行了模型訓(xùn)練得到了不錯(cuò)的檢測(cè)效果。使用的框架圖如下圖:
其中 Decoder1 分支的簡(jiǎn)易圖如下:
經(jīng)過 HED 處理后在工程的后處理還是需要很多規(guī)則判斷,特別在候選框選取時(shí)添加過多規(guī)則,如下圖。所以我們需要進(jìn)一步對(duì)模型進(jìn)行優(yōu)化減免后處理的繁雜工作以及優(yōu)化框選準(zhǔn)確性。
圖5 框選后處理
通過 case 分析,我們預(yù)測(cè)的選框通常會(huì)多出背景區(qū)域,如果通過語(yǔ)義分析知道大致的文檔內(nèi)容區(qū)域,再通過邊緣線條檢測(cè)準(zhǔn)確的邊框信息,融合信息是否能得到更精確的選框。
所以在原有基礎(chǔ)上增加了一個(gè)分割分支,多任務(wù)學(xué)習(xí),在 decoder 模塊分出兩個(gè)分支,一個(gè)分支學(xué)習(xí)圖像的邊緣信息,一個(gè)分支學(xué)習(xí)圖像的語(yǔ)義信息,如下圖所示。
圖6 多任務(wù)邊緣檢測(cè)網(wǎng)絡(luò)
圖7 網(wǎng)絡(luò)示意圖
兩個(gè)分支的 encoder 部分卷積層權(quán)重共享。
在邊緣檢測(cè)分支,我們還是分為多個(gè) block 計(jì)算 loss,并通過 se 模塊融合分支。對(duì)于邊緣檢測(cè),我們更多想得到全局信息,所以引入了 SEblock,如下圖,在 featrueMap 上做了一次 attention。
圖8 SEBlock
在語(yǔ)義分割分支,我們采用通過的 Unet 結(jié)構(gòu)。最終加權(quán)兩個(gè)分支的 loss 進(jìn)行訓(xùn)練。
在訓(xùn)練過程中,我們的數(shù)據(jù)來(lái)源于仿真和真實(shí)數(shù)據(jù)的標(biāo)注,另一部分來(lái)源于半監(jiān)督方式通過檢測(cè)分支的結(jié)果獲取到文檔內(nèi)容從而得到分割 mask。在 infer 過程中,檢測(cè)分支獲取得到所有可能組成的四邊形,和分割分支的結(jié)果計(jì)算 Miou,選擇 miou 最大的檢測(cè)框作為最終框選對(duì)象。
圖9 檢測(cè)結(jié)合分割獲取最佳選框
通過對(duì)比可以發(fā)現(xiàn),語(yǔ)義分割分支可以得到更精準(zhǔn)的檢測(cè)框。
圖10 優(yōu)化前后對(duì)比圖
通過驗(yàn)證集驗(yàn)證,hed 驗(yàn)證集 miou=88.38,多任務(wù)網(wǎng)絡(luò) miou=90.63,多任務(wù)訓(xùn)練的方式 miou 可以提升 2 個(gè)點(diǎn)。
2.2 圖像矯正
檢測(cè)到 PPT 文檔內(nèi)容后,我們還需要對(duì)圖像質(zhì)量進(jìn)行提升后再進(jìn)行后續(xù)處理,希望轉(zhuǎn)換后的文件還原度更高。針對(duì)圖片矯正我們主要做了,去摩爾紋,文檔旋轉(zhuǎn)矯正和扭曲恢復(fù)。
2.2.1 去摩爾紋
對(duì)于屏幕拍攝圖片,摩爾紋很影響我們后續(xù)處理的圖像質(zhì)量,所以檢測(cè)到圖片后我們首先通過小的分類模型判斷是否需要對(duì)摩爾紋進(jìn)行處理,如果屬于屏幕拍攝場(chǎng)景會(huì)調(diào)用去摩爾紋模塊。
去除摩爾紋的網(wǎng)絡(luò)框架和效果圖如下:
圖11 去摩爾紋網(wǎng)絡(luò)
圖12 去摩爾紋效果(左:帶摩爾紋圖片 中:原圖 右:去摩爾紋效果)
2.2.2 扭曲恢復(fù)
檢測(cè)出四邊形后,通過投影變換可以對(duì)圖片進(jìn)行一步矯正,但是對(duì)于扭曲圖像,僅僅通過圖像處理是不夠的,我們通過扭曲恢復(fù)模型,對(duì)圖片扭曲恢復(fù)。這一步驟對(duì)于紙質(zhì)的 PPT 拍攝以及文檔拍攝圖片比較重要。
扭曲恢復(fù)的網(wǎng)絡(luò)框架和效果圖:
圖13 扭曲恢復(fù)效果
扭曲網(wǎng)絡(luò)借鑒了 Document Image Unwarping via A Stacked U-Net 論文思路,近期也做了比較大的優(yōu)化,主要通過將曲線擬合算法結(jié)合到網(wǎng)絡(luò)結(jié)構(gòu)解決了扭曲恢復(fù)后的文字在空間上存在細(xì)微抖動(dòng)的問題,后續(xù)我們也會(huì)公開這塊的技術(shù)細(xì)節(jié)。
2.2.3 文本旋轉(zhuǎn)
OCR 也是我們重建的一個(gè)重要模塊,除了能夠提取圖片中的文字信息,還有一個(gè)作用是可以通過文本檢測(cè)框獲取到圖片中文本的旋轉(zhuǎn)角度。但是目前 OCR 對(duì)于角度的預(yù)測(cè)在-45---45 角度之間比較準(zhǔn)確,對(duì)于 90 度,180 度的旋轉(zhuǎn)圖片,預(yù)判角度不太準(zhǔn)確。
我們采用的方案是首先通過小的分類模型預(yù)測(cè)圖片的象限方向,分類類別為[0,90,180,270]。先把圖片旋轉(zhuǎn)到-45~45 之間。再通過 OCR 預(yù)測(cè)角度講圖片旋轉(zhuǎn)到 0 度。效果如下圖:
圖14 綜合分類模型和OCR 模型旋轉(zhuǎn)圖片
左圖為原圖,中圖為判斷需要旋轉(zhuǎn) 180 度,右圖為通過 OCR 預(yù)測(cè)角度旋轉(zhuǎn)后圖片。
2.3 實(shí)體提取
通過以上步驟,我們可以獲取到比較干凈工整的 PPT 內(nèi)容圖片,這一步我們要通過語(yǔ)義分割,檢測(cè)到圖片的實(shí)體部分,方面后續(xù)生成 PPT。本模塊在圖片轉(zhuǎn) word 和圖片轉(zhuǎn) excel 中都需要的模塊。
對(duì)于 PPT 圖片,我們主要分割的類別為文本,圖片,表格,背景。下圖為標(biāo)注的語(yǔ)義分割類別示意圖。
圖15 語(yǔ)義分割示意圖
對(duì)于主流框架和基礎(chǔ)網(wǎng)絡(luò),我們使用 PPT 的分割數(shù)據(jù)做了一些實(shí)驗(yàn)對(duì)比
圖15 語(yǔ)義分割主流框架實(shí)驗(yàn)對(duì)比
從基礎(chǔ)網(wǎng)絡(luò)上看,shufflenet 速度更快,resnet 效果更好。網(wǎng)絡(luò)結(jié)構(gòu)上從性能上分析 bisenet 性價(jià)比更好。
我們?cè)陧?xiàng)目中使用的是 Bisenet 框架,在學(xué)習(xí)特征時(shí)并行兩條支路,一條學(xué)習(xí)空間細(xì)節(jié)信息,一條支路學(xué)習(xí)高層語(yǔ)義信息,然后將學(xué)到的信息融合,能夠更好學(xué)習(xí)到全局信息和局部信息特征信息。
圖16 BiseNet網(wǎng)絡(luò)
2.4 實(shí)體恢復(fù)
在上一步我們已經(jīng)知道圖片中哪塊區(qū)域是文本,圖片,表格,但是直接插入到 PPT 中會(huì)存在很多問題,比如圖片中還嵌有文本的處理,文本框直接插入的背景問題等。我們重要介紹文字和背景的恢復(fù)。
2.4.1 文本恢復(fù)
通過實(shí)體分割文本段以及 OCR 提取后,可以獲取到文本框信息。如圖 17,左圖為原圖,右圖紅框?yàn)槲覀儷@取到的文本區(qū)域,但是無(wú)法直接獲取到字體顏色。
圖17 OCR框選文本框
得到文本框后,字體顏色恢復(fù)步驟為:
- 截取文本框區(qū)域,如圖 18(a)
- 對(duì)文本框區(qū)域自適應(yīng)二值化得到前景背景,如圖 18(b)
- 前景顏色區(qū)域計(jì)算均值得到前景和背景顏色值,如圖 18(b)上前景像素區(qū)域?qū)?yīng)的 a 點(diǎn)像素值 rgb 計(jì)算均值,設(shè)置為字體顏色。
- 圖 18(a)的文本塊區(qū)域,背景顏色為 RGB([73.,192.,179]);前景顏色 RGB ( [207, 255,255])
- 圖 18(c)的文本塊區(qū)域,背景顏色為 RGB([229,250,245]);前景顏色 RGB ( [78,156,149])
圖18 獲取文本框前景
得到了字體大小和顏色恢復(fù),結(jié)合之前的背景重建,我們可以得到最終的還原效果,字體幾乎完全還原,如圖 19 所示:
圖19 字體還原效果
2.4.2 背景恢復(fù)
通過語(yǔ)義分割模型后,我們可以獲取到前景所有實(shí)體,和剩下的背景區(qū)域。通過實(shí)體抽取直接在畫布上進(jìn)行插入,效果如圖 20。
圖20 未對(duì)背景做處理插入效果
直接插入效果可以看出,在文本區(qū)域塊和周圍其他背景顏色差別太多,過度顯得特別突兀,而且如果插入文本框顏色和文字顏色一致會(huì)導(dǎo)致文本看不清。所以我們需要通過 inpainting 算法,對(duì)背景進(jìn)行重建。重建背景,圖片,文字,表格,包括圖片上的文字后就可以生成 PPT 了。
2.5 生成 PPT
通過以上步驟我們得到了各個(gè)實(shí)體模塊,并且對(duì)每個(gè)模塊進(jìn)行了恢復(fù)重建。通過語(yǔ)義分割模塊,可以獲取到各實(shí)體(表格,圖片,文本,背景)的相對(duì)坐標(biāo)位置。通過重建模塊,可以獲取:
- 表格:表格的樣式,行列數(shù),單元格內(nèi)文字內(nèi)容
- 圖片:圖片抹除文字區(qū)域后,通過 impainting 重建圖片內(nèi)容
- 文本:文本區(qū)域的字體顏色,字體大小
- 背景:抹除前景區(qū)域后,通過 inpainting 重建背景內(nèi)容
最后可以按照 office open xml 的格式在畫布上依次插入背景,表格,圖片,文字實(shí)體,得到最終的可編輯.ppt 格式。騰訊文檔通過 http 請(qǐng)求獲取到.ppt 格式文件后再轉(zhuǎn)化為騰訊文檔在線電子文檔形式展示。