網路城邦
上一篇 回創作列表 下一篇  字體:
我是用高中學的幾何學作車牌辨識的!
2019/03/16 05:29:20瀏覽1969|回應0|推薦8

沒人教過我怎麼作車牌辨識,我也沒上過影像辨識課,連基礎的電腦概論課程我都沒上過,此生唯一上過的電腦課程是大四時選修過一學期的Fortran程式語言。那時上完課還必須自己找時間去電算中心「上機」寫程式,那是現在的小朋友難以想像的電腦原始時代(1983),連PC都還是像超跑一樣少見的。

所以我會作影像辨識,還將車牌辨識研究到目前的地步,從程式語言到影像辨識該知道的基礎知識都是買書或上網學會的。進一步的研發呢?我依賴的就不是大家以為的「正途」,去讀研究所跟著甚麼大師學習了!我是有嘗試讀過很多論文,想經過努力讀書「深入」研究別人是怎麼做出影像辨識或車牌辨識核心的!

但是老實說,一開始我完全跟不上,看不懂!他們好像都是說西班牙語或俄語的!我自己一直都只會說中文加上看得懂英文,腦袋思考方式也跟一般讀過高中的地球人相似,我認為影像辨識就是個物理問題嘛!看到東西(影像)就解讀它,跟腦筋裡的資料比對,看看最像甚麼東西?答案不就出來了?我想要的分析資料,一定要經過那麼複雜,我都不知道在幹嘛的XX Transform之類的運算嗎?運算完我都不知道輸出資料的物理意義了,怎麼去思考下一步啊?

但是為什麼我看到的影像辨識專業書籍與文章,他們的思考方式都不像地球人?搞得好像影像辨識是個外星科技?他們不愛討論辨識目標本身的具體特性與意義,還沒談清楚要辨識甚麼東西,目標屬性還很含糊時,就開始提出一大堆我很難理解物理意義與使用目的的數學方法論,我相信大多數人都跟我一樣,一定會感到錯愕無法跟上學者們的高論了!只能得到一個結論:影像辨識好難!是智商180以上的天才玩的遊戲!

雖然我現在已經能看懂所有的影像辨識論文了!但事實上,我還是堅持自己對影像辨識的初始態度,按照我自己熟悉能掌握的邏輯想法,一步一步地找到推進的方式,解決方式多半是ㄧ些高中程度就能懂,也能操作的數學,頂多加上一點微積分的概念,有效的演算法程式就這樣勢如破竹的寫出來了!也因為我始終沒在我不懂的數學方法迷宮中鬼打牆,我的研發總是直線前進的,所以速度就比絕大多數的學界或業界研發團隊還快了!

下面就是我辨識歪斜車牌影像的多格漫畫:

先將顏色簡化成亮度(灰階),再用動態門檻值將一定範圍內較亮與較暗的區域切成黑白圖(二值化),再將黑白圖畫成輪廓圖,開始辨識整理,將封閉曲線建構成很多目標物件,各有長寬高等屬性之後,接著篩選一下,留下可能是車牌字元的目標,再像打麻將一樣加以排列組合,選出最像是車牌的字元組。

到了上圖這個階段,還用問嗎?誰都看得出來,車牌就是那幾個439-2B的斜斜的字元了!但是我要如何「證明」他們是哪幾個字呢?不過就是如下圖找出那組字元目標的四個邊界,再將那個任意四邊形轉正嘛!

很多人,連影像辨識專家在內,都會好奇我辨識高度變形車牌的程序,我不會去申請專利,也不會高價出售這個「商業機密」!因為說出來根本一點都不神奇,反而是比一般的業界RD或學界研究者的方法更像課本會寫的基本辨識程序!我只是很堅持不用既有的複雜方法論,自己摸索建構出如何實作出這些辨識理念的數學方法而已!

我真的是用高中數學的概念找到車牌四邊的切線,細節當然沒這麼容易,但思考方向與概念確實就是這樣的!先找到幾個字的頂部與底部切線,這部分沒有困難,很像替虎克定律的實驗數據找到一個最符合資料分布的直線。再找到合理方法估計字元的左右傾斜角度,這部分倒是不容易,最近還有很大的進化。等到四邊切線都找到,就投影成標準的矩形車牌子影像,之後就在這個小影像中切割標準大小的字元目標,去跟標準字模比對了!

我相信現在真正在教與學影像辨識的師生應該會很震撼!因為這些程序真的跟中學生的腦袋會想這種問題的方式很像!但是跟常見的影像辨識論文中用的方法論卻很不一樣!這種「簡單直覺」的想法真的能將變形嚴重的目標正確辨識出來嗎?真的不必用到更複雜的數學理論及方法嗎?我已經證明了,不但可以,還比學院派的方法更有效!他們不是都做不出高度變形車牌的辨識嗎?我這樣土法煉鋼卻成功了!不是嗎?運算速度還超快的!處理變形車牌的程序在百萬畫素的影像中,耗時不過幾個毫秒!

所以讀書要有效果,要能解決問題,標準並不是讀越多越好!更不是將學位讀得越高越好!而是堅持要將所學的知識,跟你腦袋裡既有的經驗與常識結合,相信自己和一般人都有的常識,比相信根本聽不懂的理論數學更有用處!這是我的經驗,我也已經證明這是很有效的學習與作研究的態度。

我是讀到了博士學位沒錯,還是台灣頂尖的台大博士!先不說我讀的是海洋專業,不是我現在作的資訊領域。即使只談研究方法與理念好了,讀博士時學到的理念都是與我現在成功的研究模式相反的!他們堅持要我相信論文中的方法論,至少必須學習那些人的「研究模式」,努力讓我變成那種思考局限於「學術」習慣的人!也就是學會輕蔑鄙視俗人的直覺與常識

我真的很想將台大博士的學位歸還!這不是酸言酸語,也不是因為現在我已經不需要了,而是我真的不是他們想要培養的那種人!我和台大都不需要互相沾光!如果我沒拿到這個博士學位,就不可能當上教授,其實我會更早走到比較快樂成功的事業之路,就像現在的我一樣!號稱台灣學術研究最佳的台大,真的沒有幫助到我個人,反而延遲了我以研究表現發出光熱的時程。還好我並沒有被台大的教育方式改變,不然就不會有今天的事業了!這是真心話!謹供後進參考!

還好我並沒有被洗腦成台大希望我變成的那種人,我還是相信我高中就已經學會的基礎物理與數學觀念,我從來不覺得數學變得複雜或抽象之後,就會有神奇的力量隨之產生?它們真的沒有!它們永遠只是工具,不值得被信奉甚至迷信!依據問題的實際需求「用對」方法才是重點!會說哪種演算法(或程式語言)比較厲害的人,我立即可以斷定:「他們一定不是能解決問題的幫手,他們只是來亂的!」最好的應對方式就是:別理他!

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

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