字體:小 中 大 | |
|
|
2019/12/17 05:30:04瀏覽1317|回應0|推薦4 | |
做車牌辨識最難的部分,當然是在自然環境中將車牌正確的辨識出來,就是所謂的「辨識核心」了!辨識的標的是單一影像中的車牌。但我們不可能只為了「辨識車牌」而去辨識車牌,這只是手段,不是目的。以最簡單的停車場應用來說,就是要確認車子已經開到出入口這個「事件」! 在攝影機固定的情況下,車輛活動的事件判斷才是車牌辨識軟體執行的目的!單一張影像通常很難直接判斷「事件」,譬如下圖是一張影像,攝影機在此角度持續拍攝,希望我告訴管理者畫面中的每輛車各停了多久?只有一張影像我當然不知道車子停了多久?那我該怎麼做呢? 較「簡單」的想法是每幾秒鐘拍一張影像,辨識一次車牌,參考每一張影像中的車牌辨識結果,看看每一個車號在時間軸上的資料持續多久?譬如從八點到九點的影像都有這個車號,九點之後就不見了!我就可以報告這事件:某車從八點停到九點!這個事件的監看工作就完成了! 但是寫過程式的就知道,要建立完成這種事件的邏輯判斷過程,一點都不簡單!我們要監看的還不只是一輛車,而是所有可以看到車牌的車!又如下圖,此車道車子應該只能左轉,客戶希望我抓到違規右轉的車子,就是要監看有沒有車輛右轉的「事件」!這又應該怎麼做呢? 這也不是單一影像單一車牌辨識能做到的,基本上就是要追蹤每輛車的行進路線!我們當然是以「車牌」的行進路線為基礎,很多人誤以為辨識「車輛」比辨識「車牌」簡單,這是大錯特錯!車牌有非常固定的特徵,車子與背景的顏色對比等等都不是那麼確定,不好辨識的! 即使可以直接辨識車輛,當我們發現他違規右轉時,還是需要辨識他的車號做報告的!正如電視上的汽車廣告詞:「你遲早要開歐洲車的,那為什麼不一開始就開歐洲車?」直接一路辨識車牌不就好了?我就準備這麼做!其實像區監測速也是類似的概念,那個應用中,我們要判斷的事件是:某輛車通過兩個監測站的時間差!
總之,任何車牌辨識的應用軟體都不會只有辨識車牌而已,就看我要替客戶做到甚麼程度?我的原則是:大家都會做,也很方便做的部分,我就盡量不做!譬如進入資料庫做搜尋比對,或製作可以查詢資料的APP等等。但是如上所述的事件判斷就不一定了! 如果我的客戶(多半是系統整合商)本身的程式能力很強,我就只會微調一下既有軟體的輸出資訊,讓他們可以根據這些資訊,譬如車輛正在左行或右行之類的,去自己寫程式完成這些事件判斷!如果他們不太會寫或懶得寫,要請我做我也會考慮接案的!如果是有後續商機的應用,他們不請我做我也會試試看!做得好就是新產品了!我的區間測速軟體就是這樣寫好的,正在積極推銷中。 大家可以想像,如果你用的車牌辨識核心是外購的,要整合寫出這種事件判斷軟體難度就會很高!就像有些客戶希望我提供辨識核心,就是某種DLL檔案,呼叫它就可以辨識車牌,讓他們整合到他們的軟體內。但如果這樣,他們不就可以無限複製我的辨識核心了嗎?為了保護我的利益,可以一套一套的賣錢,我當然不願意提供,那他們要製作進階軟體就很麻煩了! 所以啦!車牌辨識軟體可以做的事情非常多,每個應用點子都可以是新產品,但如果你的核心技術不是自己的,那就非常麻煩了!通常只能處處受制於人,任何小應用都必須出高價哀求原廠幫你寫程式了!找我當然便宜很多囉!我也會玩得很開心! |
|
( 心情隨筆|工作職場 ) |