訊光科技/蘇文瑞
前言
自從2016年AlphaGo擊敗專業棋手的新聞以來,人工智慧、深度學習,如同早些年的大數據、物聯網、區塊鏈,頻頻出現在媒體報導中為世人所熟悉。如何以人工智慧進行大數據(人像、影片、語音、圖片、文字、生產製造、交易紀錄、病例等)識別,並且以特徵分類、分析,最後進行未來預測,成為決策參考,近期一直為人所研究討論著。
我們把範圍集中在透過機器學習進行識別與分類,CNN(卷積神經網絡)、RNN(循環神經網絡)等模型策略,最被廣泛使用。以本專刊OCR應用為例,CNN適合特徵提取,也就是識別圖片中的物件,而RNN適合將物件依照特徵分類並生成語句描述。
用個更淺顯易懂的例子,例如霹靂遊俠影集中的霹靂車,CNN等於是夥計的眼睛,用來辨識物體以自動駕駛,RNN相當於霹靂車的耳口,用以分析李麥克的文字語言指令並回應對話。因此如果以機器學習進行名片辨識為例,可採用CNN+RNN組合方式,以CNN進行名片中的文字內容識別,RNN進行文本分析與辭意歸類。
許多人也許會想到,既然Google免費開源提供的tensorflow 2.0深度學習工具,可支援CNN與RNN,只要有張好點的NVIDIA顯示卡,搭配簡單易學的Python語言,下一句pip install tensorflow即可安裝好整個環境。那是否能自己建立影像識別模型並且訓練神經網路,打造一個圖內文字的識別系統?其實有類似想法的人不在少數,在github上,就有近兩百個以tensorflow訓練OCR的專案開源分享。不過,實際上除了需收集大量原始名片素材,建模與優化參數以訓練神經網路外,並且還要考慮到名片歪斜拍攝、髒汙、過亮過暗、各種圖案背景等情況,額外還要對圖片降噪、梯形修正、加強對比、去背景色、轉灰階等影像處理,整體研發人力成本較高。因此使用現有的中文OCR產品,是一個更明智的選擇。
目前比較成熟的中文OCR引擎/平台,有以下幾種:
1.Google Vision API,使用 Google 的預先訓練模型為圖片加上標籤,並將圖片分類成數百萬種預先定義的類別。另外還可偵測物件和臉孔、讀取識別超過 50 種語言印刷文字和手寫文字等。
2.微軟Azure Computer Vision,可擷取印刷和手寫文字、辨識熟悉的主題 (例如品牌與地標) 和適度的內容,偵測臉部傳回座標、矩形、性別和年齡,是否為知名人士。中文名片辨識使用的為OCR API。
3.Tesseract,開放原始碼套件,由HP實驗室研發,現由Google維護的OCR引擎。官方有基本的中文辨識訓練檔,但是中文辨識率不高,仍需自行訓練
4.百度、騰訊、搜狗、有道等API開放平台
上述平台的OCR技術都已經非常成熟,對於中文識別度非常高,甚至手寫、藝術變形體等也難不倒。
1.我們使用EEP iCoder平台,透過Word檔案進行客戶表單設計,首先在Word中設計客戶資料表欄位,客戶聯絡人明細等欄位內容
2.匯入Word檔案到EEP iCoder平台中,系統會自動產生客戶資料表、後端資料處理功能、前端響應式網頁輸入介面
3.工具列增加一個按鈕,呼叫myScan()語法,即可上傳名片,進行分析
<↑按鈕設定畫面>
function myScan()
{
$.loading($('#dgMaster').closest('div'), '正在導入中...');
$.scanCard(function(data){
$('#dfMaster').form('open', {
row: {
'客戶編號': 0,
'名稱': data.Company,
'地址': data.Address,
'統一編號': data.SerialNumber,
'聯絡人': data.Name,
'電話':data.Telephone,
'電子信箱': data.Email,
'網站': data.Website,
'傳真': data.Fax
},
status: 'inserted',
keys: ''
});
$.loaded($('#dgMaster').closest('div'));
})
}
<↑按鈕執行畫面>
案例一,筆者名片
識別結果,並自動對應到正確欄位
案例二:
識別結果,並自動對應到正確欄位
隨著機器學習時代來臨,有許多人工智慧工具可以應用在企業中,除了名片識別自動產生客戶資料外,直接掃描出差單據,產生零用金申請流程,或是將舊有紙本請購單掃描,自動產生請購電子紀錄,甚至透過客服電話錄音,將問題解決後建立產品知識庫與客服紀錄等,日後由人工智慧客服進行服務,可減少人力成本,提高準確率,改善內部的作業流程,讓企業朝向更智慧化的經營模式前進。