摘要:本文主要介紹文字檢測和文字識別作為計算機視覺一部分的重要性,基本知識,面臨的挑戰,以及部分最新的成果。
人類在認識了解世界的信息中91%來自視覺,同樣計算機視覺是機器認知世界的基礎,也是人工智能研究的熱點,文字識別也是人工智能的重要研究方向。在我們生活當中,文字是無處不在的,我們的衣食住行都是離不開它的。
文字的價值
首先,文字並非自然產生,而是人類特有的造物,是高層語義信息的載體。文字從整個文化的角度來講也是非常重要的,人類的文明離不開文字,文字是我們學習知識、傳播信息、記錄思想很重要的載體,沒有文字人類的文明無從談起。比如說王羲之的“蘭亭序”,不只是文化作品,也是人類歷史上璀璨的明珠之一;再比如詩經,通過詩經我們既可以學習它朗朗上口的文學特性,也可以通過它了解兩千年前歷史的故事和先人的思想。
在上圖的右側的兩幅圖里面,可以看到是有建築、有場景、有樹木等。如果僅僅看到這兩幅圖,相信大家並不知道圖片表達的意思。但是結合了文字之后,就可以一目了然的看到要講的內容。所以說文字是計算機視覺的重要線索,與其他視覺信息有着重要的互補作用,可以和對話、NLP等,合成多模態語義分析。
光學字符識別,英文為OCR,是指把圖片、PDF中的文字轉換成可編輯的文字,也就是通常所說的文字識別。如果只提光學字符識別,估計很多人不知道是什么意思,所以大家通常把光學字符識別說成為文字識別。實際光學字符識別是一般包括檢測和識別等多個過程。文字檢測,是指判斷是否存在文字實例,並給出具體位置的過程。而文字識別是指把文字區域轉化成計算機可讀和編輯的符號。
文字識別方法也是有很多的,有一種方法是基於手工設計的特征。這個在2014年前是主流的方法,比如MSER,SIFT等。在2014年之后,大家主要用的方法是深度學習方法。
左邊這兩張圖分別是把發票和文檔轉化成文字
在文字識別技術領域,華為雲也有着深入的研究。華為雲的OCR處理流程,融合了多種圖像處理技術,具有高精度,魯棒性和自適應性等特點。處理結果中,文字識別精度特別高,支持錯行、蓋章、文字疊加等復雜場景。同時還支持多種類型單據、及自適應不同質量圖片。整個流程包括圖像預處理、表格提取(有沒有表格進一步處理)、文字定位,整個流程中可能還會有文字矯正、文字識別、文字后處理等內容,最后返回給客戶的是結構化的json數據。
文字和檢測和識別的難點也是非常多。從下面圖片可以看得出,它的背景非常的復雜,字體不一、顏色多種多樣、字體多種朝向、大小各不相同、語言不統一、模板不固定等應用場景,這些都是日常生活中所看到的。
在日常生活的指示欄、窗戶、磚塊、圖標、花草、柵欄、樹木、機電等都與文字有一定的相似性,給檢測和識別帶來很大的干擾。
圖像本身和成像也會存在的問題,比如分比率、曝光、反光、局部遮擋、干擾等,給檢測和識別帶來很大的挑戰。
深度學習時代的文字和檢測和識別,主要是基於深度學習。其中文字檢測和目標檢測類似,主要是基於物體檢測和基於分割。比如說我們左上邊看到的textbox是基於SSD目標檢測網絡,主要改了anchor的設置。在左下圖的pixellink,則是基於分割。其中基於目標檢測,更多是側重比較規整的、可以用四點表示,而分割更多傾向於各種不規則形狀的文字。
文字識別,最常用的思想是把文字分成一個個字符,然后直接分類,這是以前傳統方法最常用的技術之一。中間一個也是基於分類,但是基於單詞,對整句話非常難以處理好。最后,是基於序列的特征,提取基本特征,比如說CTC,是參考語音識別,比如說Attention,比如說基於sequence2sequence。最后就是端到端的識別,是在一個網絡里同時做到文字檢測和識別,檢測和識別可以相輔相成,提高性能。
華中科技大學許老師提出一個TextField的概念,就是文字方向場的概念,傳統基於分割的文字檢測方法有一個很大的局限性就是對密集文本無法有效區分開。他們提出一個文字方向場,基於像素做回歸,然后通過后處理組合成一個文字條,對於彎曲特別離譜的文字都可以檢測出來。
在文字識別當中非常有代表性的一個方法是就是華中科技大學白老師團隊提出的CRNN模型(后正式發表在IEEE TPAMI2016上),稱之為 CRNN,其底層用 CNN 提取特征,中層用 LSTM 進行序列建模,上層用 CTC loss 對目標進行優化。它是一個端到端可訓練的文字識別結構,但並未使用 Attention。目前,CRNN 已成長為該領域的一個標准方法。