tml lang="zh" data-theme="light">

知乎 - 知乎

Dropbox用機器學習,從海量圖片中對文本進行檢索

來自專欄論智5 人贊了文章

來源:Dropbox

編譯:Bing

Dropbox是Dropbox公司的在線存儲服務,通過雲計算實現互聯網上的文件同步,用戶可以存儲並共享文件和文件夾。最近,研究人員在一次產品更新後,在用戶的工作流中加入了人工智慧模塊,並加入了光學字元識別(OCR)技術。用戶從這些變化中最明顯的感受就是,他們可以在圖像或PDF文件中直接搜索英文文本。

從圖像中(包括PDF)自動識別文本是一項前景廣闊的技術。在Dropbox中,用戶總共存儲了超過200億個圖像和PDF文件,其中10%—20%是文本照片,例如收據和白色背景的圖像,這些都是目前圖像中文本識別的新對象。另外還有25%的PDF文件是掃描版文本,同樣可以用作自動文本識別。

從計算機視覺的角度來看,雖然對人類來說,看真實的文件和影印版的沒有太大差別,但對計算機就大不一樣了:文件可以通過搜索被檢索,用戶輸入一些單詞就可以從文件中找到目標對象。但在圖像上,檢索系統就無法工作了,因為它顯示的只是一堆像素。通常,圖像格式(例如JPEG、PNG、GIF等)都無法被檢索,因為它們沒有文本內容。只有基於文本的文件(例如TXT、DOCX或HTML)才能被檢索。但PDF介於二者中間,因為它既能包含文本,也能包含圖像。自動圖像中的文本識別可以辨認這些文本,並將其中的數據進行分類。

所以現在,如果用戶在任意格式下搜索英文文本,Dropbox都能顯示出結果。這篇文章就講解了研究人員的具體做法。

認識問題

首先,我們要對此任務有大致瞭解,尤其是要知道要處理的數據數量有多大,這不僅關係到所需成本,還有助於評估其有用性。具體需要了解的有以下三方面:

  • 我們應該處理哪些類型的文件?
  • 這些文件中有哪些含有可用光學字元識別技術處理的內容?
  • 對於像PDF這樣有多頁的文件,我們需要處理幾頁才能讓模型變得有效?

我們想處理的文件類型是目前不包含可檢索文本內容的文件,這包括圖像格式和不含有文字的PDF文檔。但是,並不是所有的圖像或PDF都含有文本,大多數只是一些照片或圖示。所以,研究的關鍵是機器學習模型需要判斷,給定的內容是否能用光學字元識別技術,也就是說其中是否含有能用OCR系統識別出的文本,例如不包含街景照片的文件的掃描件等等。我們訓練的模型是一個卷積神經網路,輸入圖像並處理後,會將輸出結果傳遞到二元決策中,看它是否含有文本內容。

最常見的圖像格式是JPEG,我們發現大約有9%的JPEG圖像可能含有文本。對於PDF,情況就比較複雜了,因為一份PDF文件可能含有多頁,每頁又可能有三種類型的內容:

  1. 已經經過嵌入或可檢索的文本(69%)
  2. 有圖片格式的文本,暫不可被檢索(28%)
  3. 沒有實質文本內容(3%)

我們主要關注第二種情況,因為這是我們研究的對象。總的來說,我們的目標用戶擁有的JPEG數量是PDF的兩倍,但是每個PDF文件平均有8頁,而且PDF可能有更多的文本圖片,所以總的來說,PDF含有的文本是JPEG的10倍。

文本頁數

一旦確定了文件類型,我們就要決定以何種方式處理這些文件。有些PDF文件有很多頁,處理起來很費時。幸運的是,對於長文本,即使只檢索幾頁,也可以讓文本更易於搜索。所以,我們統計了PDF採樣中頁數的分佈情況,弄清楚每份文件最多可以對幾頁進行檢索。最終結果顯示,一半的PDF只有一頁內容,大約90%的PDF在10頁及以下。所以我們把上限定為10頁,這意味著我們可以對將近90%的文檔進行索引,而且運用了足夠多的頁數。

自動圖像文本識別系統的組成

格式轉換

當我們開始用OCR提取文本後,需要確定如何對PDF文件中的圖像數據進行轉換:我們可以對文件流中的像素圖像目標分開提取,或者可以將整頁PDF轉換成光柵圖像數據。兩種方法都實踐之後,我們選擇了後者,因為我們已經已經有了穩定的大型PDF轉換工具。使用這一系統的優點如下:

  • 它可以自然地擴展到其他需要翻譯或嵌有圖片的文件格式中,例如PowerPoint、PostScript和其他支持的格式。
  • 轉換過程很自然地保留了文本符的順序和頁面中文本的位置,考慮了文件結構。

在我們此前的Chromium項目中,伺服器部分的轉換是基於PDFium完成的,這是一個由谷歌基於Chrome瀏覽器開源的項目。這一軟體同樣用於對全文的檢測,判斷文本是否只含有圖片,可以幫助我們決定是否進行OCR處理。

一旦我們開始轉換,每份文件中的內容都會同時進行處理,我們將每一頁轉化成2048×2048的正方形像素,保留了原始的長寬比。

文件圖像分類

我們帶有OCR技術的機器學習模型最初是為了Dropbox的文件掃描功能創建的,目的是為了了解用戶最近是否上傳了可以「將其轉化成掃描格式」的圖片。分類器在創建時,在圖像特徵上使用了一個線性分類器。模型在來源不同的數千張照片上訓練,包括公共圖像、私人圖像以及Dropbox員工貢獻出的圖像。

最初,分類器偶爾會出現誤報的情況(即模型認為圖像中含有文本,但實際上沒有),例如在含有白牆、天際線、開闊的水域等照片中。雖然人類能輕鬆分辨這些景觀,但是對分類器來說它們看起來都是一樣的:都有平整開闊的背景和水平線。經過每次迭代後,我們在訓練集中添加「消極」標籤,可以顯著提高模型的分類精確度,從而高效地教會模型,雖然這些圖像有很多類似文本文件的特徵,但它們沒有文本。

拐角檢測

確定圖像中文本的拐角並確定它的大致形狀是另一個重要步驟。給定轉角的坐標,圖片中的文章可以用簡單的幾何轉換進行修正。文本的拐角檢測元組使用另一個ImageNet深度卷積網路創建的(DenseNet-121),其最頂層換成了一個回歸因子,可以生成四個拐角坐標。有了坐標,就能輕易地將文本修正成易於檢測的版本了。

token提取

OCR系統從拐角檢測階段獲取修正過的圖像作為輸入,並生成token檢測,包括針對tokens和文本的邊界框。這些大致按token的順序排列並添加到搜索索引中。如果有多個頁面,每頁上token的列表會連接在一起生成一個大表。

合併各元素

為了能在所有可以被索引的文件中進行紫銅圖像文本識別,我們需要一個系統能對輸入的文件執行添加和編輯,並開始相關處理。這就需要用到Cape框架,這是一種靈活大型的處理框架,可以進行事件流的分時間處理。我們在OCR處理中加入了新的Cape工作器,稱為lambda,作為框架的一部分。

整個處理過程如下:

  1. 基於圖像中是否有符合要求的JPEG、GIF或PDF,檢查我們是否應該繼續處理文本。
  2. 運行含有OCR技術的分了器,確定圖像中是否有文本。
  3. 運行文本拐角檢測器,對其進行修正。
  4. 用OCR引擎提取tokens。
  5. 向用戶的搜索索引中添加token列表。

結語

自動圖片文本辨認是計算機視覺和機器學習處理大型數據的重要案例。讓圖片中的文本可搜索只是深度瞭解文本結構和內容的第一步,有了這一成果,Dropbox可以幫助用戶更好地管理他們的文件。


推薦閱讀:
查看原文 >>
相關文章