Contents ...
udn網路城邦
超模糊的影像辨識如何做到的?我告訴你!
2024/06/12 05:58
瀏覽812
迴響0
推薦8
引用0

1 原圖

最近忙得都沒時間寫文章繼續罵AI影像辨識的詐騙了!原因就是在努力研究如何辨識出如上圖中那麼模糊的發票資訊!因為公布發票影像是有洩漏個資疑慮的,所以我非常審慎不敢隨便分享圖資!各位讀者一定不會看到我將整張發票影像PO出來的!連讓人猜到是誰的發票的可能性我都會盡力避免!但是如上的局部影像應該沒有洩漏個資的疑慮,卻也足以說明我的工作了!

我不是曝露狂,沒有必要隨時讓大家知道我上班都在忙些甚麼?介紹太多我的技術研發內容甚至是會傷害到我在商場上的技術優勢!我會有迫切的動機洩漏我的技術發明,其實是基於社會責任的使命感!我很想告訴大家即使是最困難的影像辨識,都不是也不必用那些AI詐騙集團欺騙大眾的神秘AI技術做的!希望大家有機會一窺一個真的很成功的影像辨識研發廠商的真實日常生活!增加一些對於猖獗的AI影像辨識詐騙的抵抗力!

大家應該相信:任何人國高中學過的傳統科學與你自己的常識直覺加上合格的程式設計能力,就足以做好影像辨識了!不需要甚麼神奇的AI秘笈加持的!我就是這樣在經營我的事業的!也希望大家跟我一樣理解這個技術!雖然這些年我也很努力學會那些他們宣稱有神力的技術,如MLDLCNN等等,但是我的最終認知是:那也只是傳統技術的延伸而已!根本沒有他們宣稱的神力!多數時候根本不需要用到!把那些技術當作影像辨識必修的課程就已經很荒謬了!

重點永遠是合理的使用所有已知的技術努力整合解決問題,包括他們宣稱有神力的AI技術在內,也只是我的工具箱裡面不常用的特殊工具而已!如果老是用不適當的工具處理問題的話,我的公司早就倒閉了!但目前的辨識案例就可以告訴大家我如何適時適切的使用CNN等特殊工具了!如上圖的狀況,即使我用最好的傳統影像處理增強技術呈現出裡面的字,最後也只能得到下面這種結果:

2 二值化圖

以這個區域來說,我的目標就是要辨識出這張發票的消費總金額,從圖一中視力正常的人應該都可以知道答案是469元!不會有其他的答案!使用CNN那種可以辨識貓狗的技術確實是可以做到的!但是以商業實務的角度來看,完全依賴CNN的成本實在太高了!一般客戶絕對花不起那個錢的!我的商業價值就是讓這種辨識在合理的運算與時間成本之內完成!讓客戶不必買輝達的超級電腦就能繼續做生意!我如果成功,輝達股票就會下跌了!

很顯然的,我無法用我熟悉的OCR技術找到那個終極目標的469元!那個4字根本只是一些毫無意義的碎片!但是我真的最終可以很穩定的得到正確答案,目前我的這種模糊辨識成功率已經接近九成了!而且整張發票(100萬畫素)需要辨識五個類似上面的數字資訊,在一般規格電腦上計算時間只需不到兩秒!執行時的記憶體用量也非常少,不會超過50M

我怎麼作到的呢?其實就是盡量使用我可以掌握的所有這種影像的周邊與統計資訊!譬如它們是用點矩陣印表機印的,都是一行一行的,每行字的高度也必然是一樣的!如上圖每個字的寬度基本上分為寬字與窄字,那個目標的469就是寬字元,其他數字都是窄字元。

所以我先確定資料行的位置,在資料行內做精準的CNN模式的寬字與窄字的Convolution掃描,這一行中是不是有寬或窄字的字串?從掃描後的統計資料中就可以很清楚看出來了!即使原始資料其實很破碎,誰都無法直接從圖二中看出那個寬字元的4字的!但我設計的辨識流程就是可以穩定判斷出來!

更微妙的是:我也同時辨識出531那個數字了,卻不會誤認它是我的目標!原因是我利用了一個潛規則:只有售價金額有可能被放大為寬字體!如果在這個可能出現售價的區域內有任何成功辨識的寬字元數字,那就可以排除其他數字,確定就是售價了!

如果沒有寬字體的字出現呢?這也是常見的!沒保證售價數字一定會被放大!這種發票的印製規格沒這麼統一的!「通常」此區域可能會出現的數字是:顧客付的錢、售價與找零的三個數字,那就算算看是不是最後出現的三個數字是否有互相加總的關係,譬如1000-469=531,我就可以猜測售價可能是469了!最後一個數字一定是找零的錢嘛!這也是影像資訊不會告訴我的潛規則,我必須多看資料才知道的!

反正就像警察辦案,努力找到所有可用的現場證據做推論,證據未必總是完整,答案也未必遠會對,但越是用心蒐證就會越接近事實!我的成功優勢其實不是來自我的「影像」技術特別好?而是我很會利用科學知識與一般常識來幫助我找出最合理的答案,現在常說的ML、DL與CNN技術是用資料統計得到需要的解題資訊,效率太低成本太高了,如果以它們為影像辨識的主軸一定會是一場大災難!

簡單說,我在這次的研究中,還是利用了那些AI技術的機率統計優勢,但是使用很多周邊資訊限縮大量資料搜尋統計需要的運算量與時間!也充分利用影像外的格式慣例資訊做推理,最終就可以「客製化」的做出很高效率的「發票」辨識核心!但是如果目標不是這種發票呢?結果當然是完全錯誤毫無意義的結果!我的收費標準就是我客製化這種辨識核心需要的時間與知識了!

其實人眼與人腦實際執行的影像辨識就是這樣的!你在看發票之前就已經在腦中切換到你所知道的發票模式樣貌了!你絕對不會把發票當作車牌來辨識的!所以合理的影像辨識軟體一定是客製化替特定目標設計的!如果有人吹噓任何影像都能辨識?或只是辨識目標種類範圍稍微過大?就確定是詐騙無疑了!你如果信了?就準備拿百萬元投資給詐騙集團吧!

換言之,所謂「通用」的辨識軟體,百年之內都不會出現的!所以自駕車的影像辨識才會那麼困難!因為在馬路上開車要保持安全,需要辨識的議題實在太多了!其他安全監控軟體也很類似!譬如電子圍籬軟體也炒作很多年了,至今依舊沒有成熟可靠的產品!

所以我現在進行的票據辨識研發只是一個開始,據稱它們有二十多種不同格式性質的票據需要辨識,之前已經找過別家公司開發過所謂的「通用」軟體,但是顯然辨識率不夠好,人工確認校正的時間人力成本太高,所以很掙扎是不是乾脆放棄影像辨識?回歸純人工辨識就好?

我和合作夥伴公司一開始就設定目標,如果需要每種票據都有高辨識率,一定是要一一客製化辨識核心的!我們其實是從之前辨識率最差的一種票據開始做POC的!下周將會對客戶做POC簡報,相信目前進度會讓客戶很驚豔的!

總之,陳義過高的通用影像辨識軟體是根本做不到的!如果我們的客戶沒有之前的慘痛經驗,是根本不會理我們的!二十多種票據一一製作客製化辨識核心至少要搞一年以上!這才是影像辨識研發合理的市場應有樣貌!但是現在的AI詐騙實在太厲害了!多數廠商都必須被騙一次,虛耗百萬元之後才會痛定思痛理解這個事實!我希望我的狗吠火車可以幫到一些人!就像警察或銀行行員會努力阻止阿伯大嬸們匯款給詐騙集團一樣!

有誰推薦more

限會員,要發表迴響,請先登入