Contents ...
udn網路城邦
車牌辨識系統都一樣嗎?才怪!
2016/10/15 03:29
瀏覽1,218
迴響0
推薦7
引用0

很多人會誤解「車牌辨識系統」是「一種」產品,但實際上差得遠了!我因為是自己從無到有開發出我的車牌辨識核心,所以一開始就發現所有的演算法都必須因應環境變動的!最終不僅我每一代的辨識核心持續在進化演變,做給不同客戶不同情境使用的辨識核心也都不會一樣,錯用版本速度與效能就會大減!

譬如一開始我面對的是解析度只有320X240的影像,裡面的車牌字元當然解析度更低,大約每個字的高度只能有十多個畫素,放大起來就是不太漂亮的馬賽克圖案了!但是日子還是得過,就依據低解析的目標發展了一套演算法「盡力而為」的做「模糊辨識」了!

但是稍後多數影像的解析度提高了!影像中的字元變大了,普遍可以達到三四十個畫素高度,如果我還是繼續使用舊版的程式,辨識率並不會因為影像變清晰而提高,所以我將比對字模的解析度也提高了!這很像馬車為主的時代進化到以汽車為主的時代,交通規則也必須跟著變動,不然一定天下大亂,至少會很沒效率,譬如速限就必須提高吧?

接下來我碰到很多夜間或有陰影的車牌辨識問題,於是發展了一套可以適應影像內各區域亮度變化的演算法,這當然會消耗運算時間,但是可以辨識標準演算流程很難辨識的亮度不均的車牌。值得思考的是:如果客戶不需要這個功能,我還一定要做這種計算嗎?或者可不可以簡化參數,算得粗略一點呢?這一帖藥下的重不重?是要看客戶需要的!不吃藥的就可以讓速度快兩三成,我當然會因地制宜!

拍攝影像的距離也是一個很大的變因!低解析時代我們沒有選擇,為了至少讓車牌字元能看得到,每張照片都必須很逼近目標,常常近到整個畫面還容不下一個完整的車形,只看到一個車頭或車尾!但是當影像提升到近百萬畫素時,即使拍個道路的全景照片,兩三輛車同時在一張影像裡面,那些車牌字元也都很夠清楚!

此時就會有很多新的辨識可能性與困難,譬如要不要同時辨識多個車牌呢?圖變大了背景物也多了,如何才能避免抓錯背景(如廣告)的字誤以為是車牌呢?車牌自遠到近看起來都很清楚,實際的字元高度從十幾畫素到上百畫素都有可能,那我的演算法該如何設定要抓多大的目標呢?等等等等。

上面這些問題沒有標準答案,就看客戶需要與使用情境可能的變化範圍而定。譬如停車場用的系統,拍照距離位置都比較固定,也不會想同時辨識多個車牌,所以目標大小,甚至車牌可能出現的位置,都可以較嚴格的限定,這樣可以避免很多誤判的可能,也讓演算速度快一點!其實這是最簡單的情境,所以能提供產品的廠商很多,或說這種情境使用的系統都不會做,那就不必玩車牌辨識了!

其次難的是手機辨識的核心,通常他們拍攝車牌的距離近,大約一兩公尺吧?不必考慮解析度不夠的問題,反而必須擔心客戶給車牌特寫!一個字有兩百個畫素高,一般車牌辨識系統可能就認為不可能這麼大而忽略過去了!但是問題來自近距離的影像車牌變形很大,譬如站著拍膝蓋高度的車牌會變成上寬下窄的梯形!所以幾何校正部分的程式就要比較厲害了!參數要更寬鬆,計算精確度卻要更高!

而且手機辨識的硬體效能還是不如一般PC,所以為了速度快一點,要更加精算計算的時間。每一個程序都要考慮是不是真的需要做?即使要做,也要考慮做到必要的精確度就好,嚼三下就可以吞的食物堅持嚼三十下當然沒有效益,在PC上無所謂的多餘計算,到手機上就必須斤斤計較了!昨天我親自指導資深工程師整理手機辨識程序,就在保持辨識正確的前提下,將執行速度推進了接近一倍!這就是能省則省的效果。

那麼我們最近做的動態車牌辨識呢?那又是很不同的情境,車子由遠到近都有可能,但是不可能近到如手機拍攝那樣近在眼前,因為那時攝影機就會被撞到了!哈哈!總之是目標尺度變化範圍大,但是偏向要能辨識較小的車牌,當然也必須考慮到辨識速度,但是不必太重視車牌變形的幾何修正!因為有點距離的車牌怎麼看都是接近標準矩形的。

講這麼多,你還相信買一個車牌辨識主機就可以包山包海,甚麼情況下的車牌影像都能有效辨識嗎?別傻了!那是現階段的科技還做不到的高階人工智慧!我既然有解決各種狀況的關鍵技術,要真的做出可以包山包海,以上所提任何情境都能辨識的系統,理論上也不是不可能,但是你一定不會想用!因為即使寫得出來也會跑得超慢!大概要等電腦速度再快個一百倍時才會有實用性。

所以啦!想要有最合用的車牌辨識系統,就要找像我這種可以客製化的自行研發廠商,買成藥是可以!但是必須知道:那不是專為了你的病開的藥,不要期望可以完全對症。你必須自己找到接近需求的品牌系統,也實際測試有效之後再買才不會後悔。

有誰推薦more
全站分類:心情隨筆 工作職場
自訂分類:教育學習

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