技術探索

DNN車牌辨識於智慧城市的應用

工研院資通所 林宏軒

智慧城市由各種道路的視訊監控系統、收費站、社區住宅與企業出入口監控、科技執法、停車收費系統等不同應用情境所組成。由於汽機車為人們出行的主要交通工具,因此只要能辨識汽機車的車牌號碼,即可定義出人的資訊。而透過車牌自動辨識系統,可協助完成如高速公路自動收費、嫌犯贓車自動追尋、汽車違規自動開單、停車自動收費、社區與企業出入自動管制等各種智慧化應用,且由於需要辨識的地方非常多,不適合傳到雲端辨識,大多是在地端使用AI晶片進行即時識別。

為了達到自動化車牌辨識,車牌辨識系統需能克服各種型式車牌、不同天候狀況、不同高低視角或極端左右視角的車號辨識,工研院以DNN深度學習技術,研發車牌轉正模型,可將車牌由不同視角轉成正面視角的影像,以此克服極端視角的辨識障礙。透過整合三個不同的DNN模型,包括找出車牌、車牌轉正、車號辨識,完成影像中的車牌號碼自動辨識。

車牌辨識應用情境

智慧城市相關應用包括智慧建築、智慧能源、智慧安全、智慧交通、智慧教育等各種領域,當交通建設與監視器連結,就可作為各類智能交通管理的依據。城市交通仰賴影像分析以及物件辨識分析,透過部署在城市各處的智慧攝影機即時分析,即可發展出各式各樣的應用。而在智慧城市中最常需要辨識物件之一為車輛,除了辨識出車輛的位置及數量之外,亦可辨識車色、車款以及車牌等,由於車子掛有車牌且車牌號碼為唯一,因此透過車牌號碼即可定義出個別車輛及其車主,而當看不到車牌或車牌資訊不可靠時,只能依靠其他的車子特徵來定義出個別車輛。 車牌辨識非常適合實作於智慧終端的辨識晶片上,由於車牌不大,在畫面中僅佔約100個像素的長度,所需要的辨識算力不高,以晶片的算力足以支援。且若所需辨識的為所有交通路口的即時影像,總計上萬個攝影機且每秒各有30張影像,辨識的量過於龐大,若全由伺服器主機運算所耗的成本過高,因此適合使用晶片辨識。 城市中有許多汽車需要收費的地方,例如各地方的定點式停車場、各縣市的路邊停車格、高速公路的道路使用費等;以及汽車違規需要繳交罰款的情況,例如超速、闖紅燈等。另外,也有許多與收費無關但仍需要車牌辨識的地方,例如各公司、單位的汽車出入口管制,以及警政單位對贓車搜尋之需求等,以下分別進行一一介紹。

.定點式停車場

定點式停車場目前大多是以代幣的方式記錄汽車進入時間、繳費資訊,包括百貨公司、賣場等所附設的停車場;另一種是以計次的人工收費方式,於進入或駛出時進行繳費,但此方式需要固定有人守在出入口處,例如高鐵、景點等附近的私人小型停車場。定點式停車場目前已有部份開始採用車牌辨識技術,車子於駛入時不必領取任何代幣,車主只需要在駛出前至繳費機輸入車號,系統即可自動找出該車輛,並依停放時間進行收費。 由於定點式停車場的場域比較單純,比如說出入口非常固定,架設攝影機時亦可架在比較正前方的視角,讓車牌影像非常正面,並且可自行架設燈源進行補光的動作,避免影像中的各種可能光影變化造成干擾,因此在停車場的車牌辨識中有機會使用傳統影像處理的手法進行辨識,且達到非常不錯的準確度。

.高速公路

高速公路從傳統的人工收費站,到目前已使用ETC取代。但由於仍有許多人不想安裝ETC,加上ETC的準確度無法保持在百分之百,因此高速公路收費系統除了以ETC辨識車輛之外,亦會針對經過的所有車子進行影像拍攝,後續再以車牌辨識技術及人工的方式將車號進行比對校正或手工輸入車號,確保每一輛車的收費正確。高速公路的車牌辨識是正面的高度視角的影像,比起定點式停車場的車牌辨識還要再更困難,因為車牌的角度更加傾斜。

.路邊停車格

路邊停車格是各縣市政府目前重要的收入來源之一,且路邊停車格跟城市中的交通狀況息息相關。根據交通部 103 年統計,全台灣駕駛在上班場所附近找尋車位每次平均需花費6.8分鐘,其中又以台北市最為嚴重,平均為10.3 分鐘。若能透過技術的手法隨時得知各停車格中的車輛資訊包括是否已停有車子、車號為何、目前停了多久,則可以創造出許多應用,例如研發手機APP讓用路人隨時查找附近停車格,加快尋找到停車格的速度,節省人民時間、降低尋找停車格時所造成的汽車廢氣排放、亦降低了城市的交通擁擠程度,而若能得知停車格中的車號以及停放時間,則可以以APP尋找自己車輛停放位置,以及對停放於停車格的車輛進行收費。 目前的技術包括埋入地磁感應以及架設停車柱等,地磁感應會針對每一停車格施工埋入相關設備,可以得知車輛的駛入、駛出時間,但若需要進一步收費,仍需要其他手法的配合,例如通知收費員前來開單。而停車柱是架設在停車格旁的人行道上,針對車輛的駛入、停放、駛出進行拍照,並透過影像辨識技術識別車號。 在路邊停車格的情境若需要做到車號自動辨識,需要克服大角度的車牌辨識問題。由於連續兩個停車格之間的間距非常短,停車柱設於此兩停車格的中間,很容易因為車子停放位置關係導致所拍攝的車牌影像非常斜角,甚至發生可能看不到車牌的情況,因此若要做到自動辨識是一件很困難的事。

.科技執法

科技執法也是少數可以為政府帶來營收的項目之一,與傳統員警發現違規事項進行人工開單不同,科技執法是指以技術的手段自動偵測違規行為並開出罰單。目前常見的包括道路邊的超速照相機,以及安全島的闖紅燈照相機。而隨著科技的進步,目前也有許多技術想要做到更多的違規自動舉證,例如汽車違停在公車格、違停在紅線、跨越雙黃線、跨越雙白線、紅燈右轉、違規迴轉等。 可以用來錄製影像以便舉證汽車違規的有包括各汽車自行架設的行車記錄器、公有汽車如公車、客運的行車記錄器、現有道路上的監控設影機等。此外,現有路燈也因為已有基本的硬體結構且電路已經拉好,因此也可以在路燈上架設攝影機來做到科技執法,但由於路燈高度大約為十米,比高速公路收費門架還高,因此辨識的挑戰亦不小。

.其他

除了上述的應用場域之外,還有各種不同的需求。例如各縣市的警察局擁有道路上所有監視器的影像,可透過影像搜尋既有贓車,或針對目前在逃嫌犯即時辨識道路上的車子。以及各企業或單位的出入口部份,對於企業內部員工,可事先輸入員工的車牌號碼,以便在進出時即時辨識車牌開啟柵欄,對於來訪貴賓,則可請貴賓於事前告知車號,於來訪時直接自動辨識後進入。 另外,除了仰賴車牌提供的資訊,在智慧城市中亦有許多不需靠車牌即可做到的應用,例如目前紅綠燈的秒數是每天依照時間段進行設定,未來亦可升級成即時辨識車輛多寡而自動控制紅燈及綠燈的長度;重點道路及路口也可辨識是否有車禍或堵車現象,即時將訊息推播給附近用路人知道,以便提早改道。

以DNN深度學習技術研發車牌辨識技術

在深度學習出來之前,車牌辨識技術是以傳統影像處理手法來辨識車牌及其數字,適用於正面視角的情況下,例如定點式停車場的出入口可透過調整閘門及攝影機擺放位置讓所拍攝的車牌盡量為正面;企業或單位大門的出入口在架設攝影機時也可根據辨識需求進行擺放,甚至為了避免車子進到拍攝位置時的車子本身角度不正,亦會在道路前方數米處先行在道路邊線上擺放三角錐,迫使汽車進入時的角度為正。針對這種偏正面視角的車牌辨識,傳統影像處理演算法可以做到90%以上的準確度,而若影像完全是正面角度且光線問題可解決的情況下,可做到98%以上的準確度。

而對於路邊停車這種斜角視角的車牌辨識,或是極高視角如路燈上的攝影機這種所拍攝的照片,傳統影像處理手法辨識車牌的準確率會大幅下降,正確性不足50%。工研院針對這種斜角度的車牌,透過整合尋找車牌、車牌轉正、車號辨識三個DNN深度學習模型,完成各種角度的車牌辨識,達到95%以上的辨識準確度,適用於各種不同視角的場域應用。

如上圖所示,針對畫面中央紅色車子的極端斜角度車牌,透過工研院的車牌轉正技術,即可將車牌轉成正向的角度影像,呈現於圖中左上角的方框內,而其底下黃色數字則為辨識結果。也就是說,即使是連人眼都難以辨識的大角度車牌影像,透過工研院的車牌辨識技術,仍可以正確辨識出車牌數字。

尋找車牌

以路邊停車格為例,由於車子有高有低、停放位置有前有後,因此攝影機所拍攝的影像會涵蓋比較大的範圍,畫面中除了車牌以外,許多不同的景像也會被拍攝進來,因此首先第一步需要做的就是找出車牌的位置。

在此步驟中,並不需要把車牌的輪廓描繪出來,只需要以長方型的方框框出車牌位置即可。網路上有許多開源軟體,有基本的深度學習模型架構可以參考使用,只需要搜集各種含有車牌的影像,並標出車牌在畫面中的所在位置作為模型的訓練資料,即可訓練出可找出車牌的辨識模型,在這裡我們使用的開源架構是YOLO。工研院透過搜集一千多張影像並標記後,訓練出來的尋找車牌模型,其準確度可達99.5%以上。

車牌轉正

找出車牌之後可以直接讓深度學習模型進行車號辨識,也可以考慮先把車牌轉成正的長方型之後再辨識,這裡我們是先轉正之後再辨識,這樣的好處是可以讓三個不同的模型各司其職,每個模型都只需要專心做自己的工作。

車牌轉正模型會自動學出在車牌畫面中找到更進一步準確的車牌位置,例如車牌的邊框及角落資訊,在找到這些資訊後將其透過透視變換(Perspective Transform)手法將車牌拉伸成長方型。甚至在訓練車牌轉正模型時,我們有將畫面資料進行順時針與逆時針的各種角度旋轉,讓轉正模型習得如何透過畫面中的字元模樣使轉正後的車牌不會有上下顛倒的情形,其轉正模型的準確度約為99%以上。

車號辨識

將車牌轉為正向之後,雖轉正後的車牌與實際的正面角度拍攝還是略有不同,但已經非常接近,這時會採用工研院自行研發的車號辨識模型,進行車號的辨識。台灣的車牌號碼字元包括英文A-Z、數字0-9以及橫槓共37種可能性,而車牌長度目前最大為8碼(含橫槓),若當車牌長度不足8碼時,辨識模型會以空白取代長度不足的字元部份,因此加上空白後此模型針對每一字元有38種可能答案,因此辨識模型需要辨識出的結果可能性最多有38的8次方種組合。

在車號辨識模型中,工研院採用了全局池化層(Global Average Pooling, GAP)技術,在車牌影像的垂直方向上做全局池化,也就是對垂直方向而言,所辨識出的車牌字元不需保留其高低位置資訊,只需知道字元為何即可,這是因為台灣的車牌號碼只會有一排,因此車牌中的字元只需保留水平方向的先後順序。加入了全局池化層的技術,可以讓模型的參數訓練量大幅降低,因此在同樣的訓練資料量下可以加快訓練速度並提升訓練結果準確度。如上圖所示,車號辨識模型可以針對整張車牌影像進行車號辨識,會預測出整張車牌的號碼,車牌字元的辨識準確度約為96.5%以上。

另外,工研院的技術與目前大多深度學習車牌辨識的不同地方在於,工研院的模型不需要框出車牌中的每個字元位置,可直接拿整張車牌影像與車號文字進行學習,比如說現有路邊停車收費員開單時會將車子進行拍照,並輸入車號,像這樣的資料可直接作為模型的訓練資料,不需人工進一步標記,節省大量的人力成本。

工研院的車牌辨識技術展示於今(2019)年7/31的ITRI ICT Techday,以及10/16至10/18的DO IT TODAY創新科技展,上圖為創新科技展中於大螢幕播放車牌辨識的DEMO影片。

新型態車牌辨識技術

智慧城市的AI辨識需求量非常大,以道路攝影機為例,每個攝影機皆需要有相關AI辨識能力,非常適合使用前端裝置進行。在前端裝置拍攝到影像後,不需透過網路將影像回傳至伺服器端,只需在前端晶片進行辨識,並在判定有違規、有收費或異常狀況發生時,再將佐證資料回傳至伺服器主機,可大幅節省網路流量及硬體建置成本。

工研院所研發的車牌辨識模型,可解決各種不同視角的辨識問題,克服路邊停車這種正常高度的橫向斜角影像,亦可克服高角度的正面或斜向視角,且深度學習具有極高的環境耐受度,只需要針對各種可能的情境如白天、黑夜、斜向、特殊角度、雨天、略微反光、模糊等各種狀況收集資料,即可讓深度學習自動學出如何辨識車牌號碼,發展成智慧城市應用。