Contents ...
udn網路城邦
軟體就很快了,還需要硬體化嗎?
2018/05/28 14:45
瀏覽1,238
迴響0
推薦6
引用0

我的車牌辨識產品至今都還是純軟體架構,這不是因為我拘泥於「軟體公司」的名號,而是真的沒必要!面對「硬體化總是比較好」的迷思,我真的已經解釋到沒力了!其實任何車牌辨識「硬體」內的辨識機制還是與軟體一樣,是奠基於演算法,絕無例外!如果硬體辨識較快,那是因為電子迴路較為固定簡化,不像一般電腦的架構,必須兼顧到不同軟體都能有彈性地被執行,記憶體內容的轉移次數會較多所致。但以現今電腦CPU及記憶體效能進步的狀況,其實軟硬體辨識之間的差異已經極小了!

我堅持軟體架構的主要原因,是要保持設計的彈性!一般人都誤解了車牌辨識只是「一種」軟體,而且好像已經技術成熟,不太需要更動設計了!其實差得遠了!同樣達到車牌辨識的目的,演算流程的選擇多不勝數,我根據客戶不同的使用情境,就有五六種大同,但是小異的車牌辨識核心。每次發現特殊案例會讓我的辨識失敗,我也會設法修改或新增演算法去因應,讓我的辨識核心更有智慧!

此外,為了替客戶降低成本,使同一電腦軟體可以辨識更多車道,或用較低規格的電腦也能辨識很多車道,或辨識速度較高的過往車輛,我持續讓辨識流程越來越精簡有效,提升辨識速度的努力從未停歇!如果現階段將我的車牌辨識核心硬體化,我將無法很彈性地替客戶客製化適用的核心,我的演算法研發也會很難更新進步。

勸我硬體化的理由通常有兩種,第一是為了提升速度,第二是為了降低成本。事實上真正可以降低成本的方式就是將辨識核心做成IC晶片大量生產,這個過程本身就需要很大的投資,除非我的產品有一次上萬的訂單,或者做好庫存可以賣個十年,不然降低成本其實是做不到的!投資很大則是立即的壓力。

話說回來,如果軟體辨識速度已經夠快,硬體化真的沒必要!而且研究更有效率的演算法可以達到的速度提升幅度,常常是會超越硬體化的效率差異的!我不好意思引用太多別家的網路文件說法,但是大家可以去查一下,各家說法辨識一張車牌的時間鮮少低於0.1秒的!但是我的百萬畫素影像車牌辨識早就突破0.1秒了!如下圖1280X720近百萬畫素的照片辨識只需72毫秒,就是0.072秒:

最近正在替較為單純的,傳統路口監視器車牌辨識系統畫面,調整最佳化的辨識核心,因為狀況單純不會有過度傾斜與變形等問題,經過精簡流程,一張640x48030萬畫素的影像辨識時間可以快到25-30毫秒!

這表示完全使用軟體架構,我就可以一秒鐘辨識三十多張這種影像!如果加上多執行緒平行運算,更可以突破每秒辨識上百次的辨識量!都可以一秒鐘辨識一百張車牌影像了,你還需要硬體化讓它更快嗎?

傳統上,這種路口監視器車牌辨識系統很多就是用硬體辨識的!一個黑盒子,饋入串流影像,它會一秒鐘執行約十次的辨識,一輛四五十公里時速通過的車子可以辨識兩到三次。當然我說的是幾年前出產的盒子,但即使是較新版也不會達到一秒辨識100張吧?

換言之,我現在的努力成果已經可以用一個軟體取代四到六個這種硬體黑盒子了!你想,用我的軟體還是用其他廠牌的硬體辨識會比較便宜呢?其實還有一個促使車辨廠商將產品硬體化的原因,就是防止盜拷!因為這個考慮其實對客戶沒有好處,所以多數廠商不會在廣告文件提及這個硬體化的理由。

對我來說,即使為了防盜拷要硬體化,如果沒人願意幫我買單硬體化的成本,我還是寧願先用其他的軟體防盜機制,或許我的產品有朝一日還是會硬體化,但絕對不是最近的事。

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

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