Contents ...
udn網路城邦
讓停車場軟體更快更省電!
2019/05/15 08:58
瀏覽722
迴響0
推薦10
引用0

我剛剛開始做車牌辨識時,就體會到車牌辨識應該不是一個軟體就能包山包海的!僅僅五六年前,影像品質要好就很難了,所以其實車牌辨識只會在控制良好的環境下做,譬如停車場出入口或是道路情境下的單車道高架辨識,像是高速公路ETC那樣的!一般人認為那就是高科技了,其實真正困難的高科技現在才開始!

正如我常常發表的各種困難的車牌辨識狀況,因為現在高品質影像來源多了,也便宜了!事實上就是可以用軟體辨識更多的情境,電腦速度也跟上之後,連動態高速辨識的應用也隨之興起了!像是手拍、車載、道路監視的多車全景辨識,乃至區間測速等等。這些多樣化的車牌辨識應用,才真的是近幾年出現的高科技挑戰,我的車牌辨識核心也跟著這個浪潮越來越聰明也越快速。

前幾個月主要的研發方向是高傾斜與高側視角度的極端辨識能力,也算是推到了一個極限。但是有點小尷尬的是,當我將最新的,辨識能力更強的辨識核心換裝到我的動態軟體中時,理所當然的運算量增加,軟體的執行速度就變慢了!尤其是停車場的軟體,其實並沒有因為我的極端辨識能力提升而受益,我原本的辨識核心就夠好了,停車場的狀況相對於道路情境來說,都是很好辨識的嘛!

不僅如此,買停車場軟體的客戶多半是要「量產」的!就是希望我的軟體可以同時辨識更多車道,更大的畫面,還希望可以用更便宜一點的電腦咧!所以他們發現新版變慢時當然是不高興的!正所謂「未蒙其利,先受其害」!所以這一兩周都在「平撫民怨」努力讓這些軟體的實際執行效能提升回來。總不能一直不更新辨識核心啊?

我先是對較外層的多執行緒交管措施做了一些修改,讓程式的多執行緒交替更順暢,軟體跑起來就會感覺快一點,過程中也出了一些小錯,發生了一些「車禍」,壓力好大!但是這種努力其實無法降低CPU的負荷,軟體順暢之後,客戶又開始抱怨:速度是有回升,但CPU負荷居高不下(比舊版還高),還是挺讓人擔心的!

所以這幾天我開始努力對辨識核心做些新的設計,就是從外部的屬性定義,讓辨識核心知道這個匯入影像的辨識是屬於較簡單情境的停車場照片,很多極端狀況可以直接忽略。譬如停車場的車牌辨識過程中,一定會有個區段是在極佳的距離與角度。所以我不必在車子還沒到達最佳位置時就開始勉強辨識,譬如車子轉入車道的過程中車牌看起來是傾斜的,我就先忽略它,等它到達適當位置時車牌就不會斜了,那時才做完整的辨識即可。

這些預期車牌會有適於辨識的良好狀況的假設,在一般道路的全景辨識過程中未必成立,車子不會自動跑到攝影機的正前方讓你辨識(躲都來不及了),但是停車場的辨識情境中就一定可以成立!所以我就可以省下好多不必要的運算了!

具體來說,我是評估可能的車牌水平傾斜超過15度側向視角超過60度就不辨識了!這已經是一般其他廠牌車牌辨識系統的極限值了!所以絕對不會讓我的停車場軟體看起來變笨的。果然,經過這些合理的修改,我的停車場軟體又變得速度很快,甚至比之前的舊版更快了,而且是連CPU的負荷都變低了!

上圖就是新版測試的狀況,我刻意開啟四車道辨識,設定的辨識面積還蠻大的,總辨識面積1.85百萬畫素,大約就是一整個1920X1080的標準螢幕了!加上設定辨識速度在略高於一般需要的15Hz(一般只需10Hz就夠了),算是有點讓系統超載的狀況。即使如此,我的電腦CPU負荷還是最多60幾趴!無車經過時還會降到約20%!這樣電腦就不會太辛苦了吧?

所以我又學到了!雖然停車場的車牌辨識,要達到高辨識率難度不算高,但是好的車牌辨識產品也要兼顧便宜又好用,能減少運算量,快速辨識更多車道,降低系統負載,間接降低成本,也是很重要的產品特色哦!

有誰推薦more
你可能會有興趣的文章:

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