Contents ...
udn網路城邦
如何辨識有陰影的車牌?
2023/08/15 14:46
瀏覽588
迴響0
推薦6
引用0

圖一 陰影車牌的灰階分布

要辨識有陰影部分遮蓋的車牌是件不容易的事情,理論上就是如上圖所示,車牌內部原本應該只有黑字與白底兩種顏色(亮度),但是陰影讓兩色變成三色,就顛覆了二值化處理可以切割前景與背景的基本假設了!如上左的車牌內部灰階分布柱狀圖,最右邊最亮的峰值代表車牌的白底,最左邊最暗的峰值代表真正的字元黑色,中間多出來的峰值就是陰影區的車牌底色了!

因為字元的黑色即使在陰影中也不會變得更黑了,但是原本白色的車牌底色就會變暗成為明顯的灰色!如果想正確的切割字元,關鍵就是要避開那個灰色的峰值!如果二值化的門檻可以正確地拉到灰色峰值的左側,最好就是與字元黑色峰值之間的最低點,那車牌的二值化圖就會非常清晰了!

但是上面的運算前提是:不管是陰影或陽光下的字元,你都必須從全圖中正確的抓到,這樣才能正確地知道車牌的位置與涵蓋範圍!這才是辨識陰影中車牌最關鍵的步驟!如下圖如果你用簡單的單一門檻二值化,抓出來的畫面大概就是這樣,陰影中的字元會髒兮兮的,右邊環境太亮的字元則容易破碎,反正很不容易切割正確。

圖二 全圖使用單一二值化門檻的示意圖

所以在此是不適合使用全圖單一門檻做二值化的!動態調整每一個小區塊的動態二值化門檻是一定必要的!就是較暗的陰影區門檻必須降低,較亮的日照區則必須略微提高!此事說來容易,但是要準確計算動態門檻是很消耗運算量的!試想如果每一點都要計算周邊100X100點的平均亮度?那還得了?一不小心就會跟CNN一樣慢了!要設計出像我一樣快速有效的動態二值化門檻,內容說清楚差不多也是一篇博士論文了!

如果動態二值化處理得當,結果大概就會像下圖這樣了!因為我們無法事先知道陰影區的邊界,所以陰影邊界左右的字元還是會有些錯亂,很難完全切割正確的!

圖三 使用動態二值化門檻處理的車牌區域

所以我們可以確定的資訊只有如下圖所示,AR999五個字元通常沒有問題,S7能否在原圖之中直接辨識切割成功就要靠點運氣了!但是只要頭尾字元有抓到,也能定義出合理的字元區邊界,把原圖中的車牌區塊局部影像挖出來,在此小區域內再做一次較精確的二值化處理就能得到第一階段遺漏的字元了!

圖四 可正確擷取的字元示意圖

老實說,多數的車牌辨識系統碰到這種車牌都是當作例外,不會認真處理的!因為確實很有難度,碰到的機會也不多!即使是我已經掌握了如上的技術,當陰影過強時還是會有大約一成的辨識失敗率。但是我的主要客群之一就是路邊停車收費開單員拍的照片!他們如果接近中午工作時,碰到車牌有陰影就是常態了!碰到半黑半白的車牌,難道要他們撐著美麗的陽傘去拍照嗎?當然是不可能的!

所以我必須深入研究各種實務上可能遇到的辨識障礙,包括這種陰影照片,我推託無法辨識的藉口狀況越少,我的客戶使用我的產品就會越方便。所以即使我的車牌辨識已經算是市場上的優良品牌了,但以現實的標準來看,我應該繼續努力研究的辨識技術還有很多很多!

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

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