什么是文檔圖片彎曲矯正?
用戶有時候會有這種需求痛點:看書時特別喜歡其中的某些段落,想摘抄下來,但發現篇幅很長,用手機拍攝的話書本又不能完全鋪平。
手持一份裝訂過的合同,著急發給老板,卻沒有工具拆開裝訂釘。拍出來的圖里頁面是彎曲的,里邊的文字看起來很費勁...
你也不可能隨時隨地帶著掃描儀。那該怎么辦呢?市面上大部分 APP 是把視角歪掉的圖片矯正為正視圖,如下圖:
在很多場合確實可以幫助到用戶。但是它只是解決了透視變化的問題。如果是彎曲的頁面,還是不能很好的矯正。
WPS 對這個需求很上心,希望可以讓用戶做到隨手一拍就獲得完美鋪平的電子文檔。歷經幾個月的開發周期,結合了本地 AI 和云端 AI 能力打造了一個功能:文檔矯正。這個貼心的功能能讓剛才那些棘手的問題輕松被稿定。直接看效果吧。還是剛才那張拍攝的書本照片,經過文檔彎曲矯正后。就可以立刻得到鋪平的圖片,甚至連頁面區域都給你自動裁剪好了,背景干擾全無,完美!
這個彎曲矯正對于 OCR 識別也有很大的幫助,因為很多 OCR 識別對于文本彎曲的情況下識別會有很多亂碼,經過彎曲矯正變成規規整整的文本行后,OCR 識別準確度會大大提高。
以上就是我們新推出的這個功能的應用場景和使用效果。那么下面我們就來聊一聊為什么這個功能背后是本地 AI 和云端 AI 的結合。
云+端 AI ,共建文檔矯正功能
目前其他第三方以及我們 WPS 里上一個版本的文檔矯正都是通過檢測出文檔的邊緣或者四個角,然后施行透視變化進行矯正的。其中的計算量雖然也會比較大,但現在的移動端計算能力還能夠覆蓋,實時檢測預覽起來也還比較流暢。然而彎曲矯正背后的計算量非常大,我們不得不將其部署在計算集群上,通過網絡傳輸壓縮和加密的原圖以及相應的參數到服務器上進行計算,然后將計算結果傳輸回用戶的手機端再呈現。這個過程原本也可以設計成全部在云端計算,那樣我們的工作量就會少很多,但是為了獲得更好的用戶體驗,能夠讓用戶直觀的看到實時檢測的文檔區域,我們將文檔檢測的部分放在了本地。在用戶開啟相機進行預覽時我們的深度學習模型就在后臺進行運行,逐幀去檢測文檔區域,并將檢測結果渲染在屏幕上。為了實現準確穩定的文檔區域檢測,我們將傳統的邊緣檢測算法升級為深度學習模型,隨著模型的不斷迭代,雖然識別效果越來越好,但模型體積也越來越大,計算量也越來越大。為了兼顧中低端手機的運算能力,我們在網絡模型設計時做了相應的優化,參考 SqueezeNet 的結構設計了一個 7 層的卷積神經網絡替代最初采用的更深的開源預訓練網絡,雖然網絡變淺導致準確度上稍微有些損失,但速度有大幅提升,內存占用也減少不少,這使得低端手機也能達到每秒數幀的速度,而高端手機則可以達到每秒 30 幀滿幀的速度。同時為了彌補準確度損失帶來的檢測不準而引起的抖動,我們在網絡外邊增加了濾波器,讓檢測結果在視覺上看起來更穩定。
整套網絡和代碼完成后,我們發現其實 SDK 包的體積已經有一些大了,除了對代碼和依賴庫的精簡,我們還需要對推理框架進行精簡。我們需要一套速度快而又輕量級的移動端推理框架。我們當時做了很多選擇和嘗試,最后選擇了 Tensorflow Lite。Tensorflow Lite 是 Google 出品的對移動端非常友好的深度學習框架,其架構設計和訓練部署思路都和 Tensorflow 非常相像,同時又非常小巧,容易上手。我們直接在 PC 架構的訓練機器上訓練好模型,經過 Google 提供的工具 TOCO 進行轉化,即可獲得一個體積很小而且速度很快的手機端模型,而運行的效果和準確度卻沒有打多少折扣。從模型訓練到移動端部署的流程非常通暢,這讓我們非常喜歡 Tensorflow Lite 這個框架,畢竟我們可以減少工程部署的時間,而把精力更多放在算法優化和模型優化上。
除了獲取文檔區域,為了實現彎曲矯正,我們還設計了一整套復雜的算法系統,經過評估,我們確定很難在移動端進行那樣高強度的計算,于是我們選擇了計算能力更強的云服務方案。核心算法部署在計算集群上可以獲得更充沛的算力,同時也為該業務算法的優化和升級預留了比較大的空間,畢竟現在只是第一版,以后我們還會對其進行持續升級和優化。
目前我們的整體設計框架是將本地相應的 AI 能力封裝成一個 SDK 提供給業務方的客戶端,客戶端通過 API 接口調用 SDK 里相應的能力,數據和參數也是通過 API 接口和 SDK 進行交互,同時 SDK 也接管了訪問云服務器的能力,統一的進行管理,在保障了信息安全的同時也有相應的容錯和異常處理能力。這套系統的流程圖如下所示:
云和端的選擇以及未來的期許
因為需求的特殊性和不同算法的復雜程度以及平臺的計算能力評估,我們因地適宜的選擇了讓一部分計算在本地利用 TensorFlow Lite 進行,一部分計算放在云端計算集群上進行。相信隨著手機算力不斷的提升,以后也許單純依靠端上的算力就能完成如此復雜程度的計算。那一天應該很快到來。當然,隨著 5G 的普及,也許以后云端的計算借助更高帶寬極快速的網絡傳輸能力也能夠體驗到端上的體驗。到時候普通用戶再也感受不到云和端的區別,那將會給更復雜更強大的算法更多落地的機會。我們很期待這些條件更快滿足,我們也會努力帶給大家更多強大好用的算法功能。
-
AI
+關注
關注
87文章
30830瀏覽量
268984 -
云服務
+關注
關注
0文章
820瀏覽量
38912 -
TensorFlow Lite
+關注
關注
0文章
26瀏覽量
621
原文標題:金山WPS:基于本地TensorFlow Lite和AI云服務的文檔矯正功能
文章出處:【微信號:tensorflowers,微信公眾號:Tensorflowers】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論