網路城邦
上一篇 回創作列表 下一篇  字體:
如何辨識模糊的證件字號?
2017/03/30 06:17:05瀏覽2981|回應0|推薦7

理論上,各種證件上的文字應該是要很清楚的!但是常常又為了防止偽造,加上了複雜的背景花紋,甚至貼上雷射光影標籤,用人眼辨識還好,要用程式辨識就變得很難了!近年還有一個演變是:取得證件影像的方式已經慢慢從掃描變成拍照了!原因不言可喻,掃描的好處原本是比照像解析度高,但是速度慢,現在攝影解析度已經很高了,當然是拍照取影像比較快,時間就是金錢啊!。

但是很不幸的,只要是拍照就有可能失焦,或亮度不均,一邊亮一邊暗之類的,這些都是使用掃描影像時絕對不會發生的新狀況!原本已經被防偽機制弄得很難辨識的證件號碼,一旦失焦或亮度不均勻就是影像辨識工作者的災難了!如下圖:

背景複雜 + 雷射標籤 + 影像失焦 亮度不均= Mission Impossible

其實最近我的RD進步神速,我們擔任文件影像辨識顧問的例行工作多半已交由RD去寫程式,但是這個問題太具挑戰性,當然是御駕親征師傅出馬我親自操刀囉!果然三四個工作天就搞定了!但真的是拼出了這三四年累積的所有經驗與實力,最高檔的車牌辨識工具箱都全部用上了!首先是選擇背景與文字間亮度差異最大的綠色作為灰階圖的基礎:

再搬出可以隨著區域亮度變化,動態調整門檻值的二值化程式作二值化(變黑白圖)的動作,這可是用來處理夜間車牌受車燈影響亮度不均時的密技!如上圖左邊亮右邊暗,一般的全圖均一門檻二值化程序鐵定不行,左邊的「F」看到時右邊的字就是一團漿糊了!我的方法作出來至少每個字都看得到基本的內容:

接下來就是依據塊狀區域開始「認字」了!第一步當然很亂:

但是已經足以用統計方式概略知道這行字的上下邊界,也就是字的高度,有了字高,字寬當然也可以估計了!這是標楷體字型,寬高比固定是3:5嘛!接下來先將「應該」屬於同一個字的破碎目標上下「融合」一下:

融合之後兩個「2」字連在一起了,看它「胖」成那樣,當然知道是兩個字的連體嬰,那就開刀分割吧!那麼那個「4」呢?瘦得很可疑?參考與左右目標的距離也差很多,應該不會是特別窄的「1」!那就給它充氣膨脹到應有的寬度吧!

怎麼樣?和你的眼睛判斷的結果差不多了吧?此時再拿標準字模去比對,就不難知道他們是甚麼字了!事實上因為怕模糊的字產生毛邊或缺口,會影響字的位置判斷,模板還會上下左右移動一個小範圍,看看哪個字模的符合度最高,就是那個字了!答案如下:

好玩吧!鄉下老師絕不小氣,一本當老師的精神,能教的就教,希望更多人也能學會!當然這只是一些原則原理說明而已,應該可以讓大家破除一些神秘感增加挑戰影像辨識領域的信心,但是要跟老師我一樣厲害可以靠這個賺錢,還必須努力一段時間的!簡單說就是理論與實作的差距!

譬如這個程式目前在完整的身分證影像上辨識身分證字號的時間只需約0.06秒!以我手邊約20張的樣本(多數是很模糊的),我的辨識成功率是百分之百!這就是商業化的水準!證件辨識的成功率如果低於99%就很難賣出去了!我現在也不敢宣稱>99%,至少要等實驗過的樣本數過百之後才能嗆聲的!要這麼快又這麼準,細節還有很多,族繁不及備載的!

( 心情隨筆工作職場 )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=yccsonar&aid=99502727