57行價值八千萬美元的車牌識別代碼
摘要: 為了防止被竊車輛進入黑市銷售,警方使用了一個名為VicRoads的基於網路的服務,該服務用於檢查車輛的登記狀態。該警局還投資研發了一個固定式汽車牌照掃描器:一個固定的三腳架攝像頭,可掃描過往的車輛,並自動識別被竊車輛。
維多利亞警察局是澳大利亞維多利亞州的主要執法機構。在過去一年裡,維多利亞州共有超過1.6萬輛車被盜,價值約為1.7億美元。目前警方正在試驗各種技術方案,以打擊汽車盜竊行為。
為了防止被竊車輛進入黑市銷售,警方使用了一個名為VicRoads的基於網路的服務,該服務用於檢查車輛的登記狀態。該警局還投資研發了一個固定式汽車牌照掃描器:一個固定的三腳架攝像頭,可掃描過往的車輛,並自動識別被竊車輛。
不要問我為什麼,但有一天下午,我突然想設計一個車載式汽車牌照掃描器,如果車輛被盜或未登記,它會自動通知你。同時,我還想了解要組成這樣一個掃描器需要哪些獨立的組件,將這些組件結合在一起有多困難。
但是,經過一番谷歌搜索之後,我發現維多利亞警察局最近已經在試用類似的裝置,推廣使用的話估計費用在8600萬美元左右。一位敏銳的評論員指出,配置220輛車的總成本是8600萬美元,相當於**每輛車390,909美元**。
當然,我們可以做得比這更好。
(現有的固定式汽車牌照識別系統)
成功的標準
在開始之前,我將簡要介紹一下產品設計的幾個關鍵要求。
圖像處理必須在本地執行
將視頻流傳送到中央處理倉庫進行處理似乎是解決這個問題最低效的方法。因為除了巨額的數據流量賬單以外,你還會將網路延遲引入到這個可能已經相當緩慢的過程當中。
雖然集中式機器學習演算法會隨著時間的推移而變得越來越準確,但我還是想看一下本地的設備實現是否「足夠好」。
必須支持低質量的圖像
由於我沒有樹莓派相機或USB攝像頭,所以我將使用dashcam鏡頭。它是現成的,而且是樣本數據的理想來源。有一個額外的好處,dashcam視頻質量代表了你對車載攝像機預期的整體質量。
需要使用開源技術構建
依靠專有軟體意味著每次你要求修改或改進時,都會感到麻煩。而使用開源技術則不需要擔心這個。
解決方案
從整體上來說,我的解決方案是從Dashcam視頻中獲取圖像,通過安裝在本地設備上的開源車牌識別系統將數據發送出去,查詢註冊檢查服務,然後接收返回的結果並顯示出來。
返回到執法車輛的數據包括:車輛的樣式和型號(驗證車牌是否被盜)、登記狀態,以及如果車輛被盜時的通知。
如果這聽起來很簡單的話,那是因為它真的很簡單。例如,圖像處理可以由openalpr庫來處理。這就是識別車牌字元的全部內容:
小小的附加說明
VicRoads API不支持公開訪問,因此車牌檢查是通過網路抓取來實現的。
這就是我的概念證明示例:
結果
我必須要說,我感到非常驚訝。
我原來預計開源的車牌識別會相當垃圾。而且圖像識別演算法可能並沒有針對澳大利亞的牌照進行優化。
該解決方案能夠在寬闊的視野中識別車牌。
添加註釋的效果。儘管存在光線反射和鏡頭失真,但車牌號還是識別出來了。
雖然該解決方案偶爾會有特定字母出現問題。
車牌號碼識別錯誤,誤將M識別為H
但是…… 該解決方案最終還是把車牌識別出來了。
幾幀過後,M被正確識別出來了,並具有更高的置信度
你可以從上面兩個圖像看出,在處理了幾幀圖像之後,置信度從87%提升到了91%多。
我有信心可以通過提高採樣率來提高識別的準確率,然後按置信度排序。或者,在校驗註冊的號碼之前只接受置信度大於90%的識別結果。
這些是非常直接的代碼方面的修復,並且不妨礙使用本地數據集訓練車牌識別軟體。
8600萬美元的問題
說句公道話,我完全不知道8600萬美元這個數字包括些什麼東西,也不能說沒有本地化訓練的開源工具的準確性能與BlueNet系統相提並論。
我估計這一預算中有一部分包括了替換幾個遺留的資料庫和軟體應用程序,以支持高頻率低延遲的車牌查詢服務。
另一方面,每輛車的成本約為39萬美元,似乎相當昂貴,特別是如果BlueNet不是特別準確,並且沒有大型IT項目淘汰或相關係統升級的話。
未來的應用程序
雖然這很容易陷入奧維爾性質的「永遠在線」的牌照扒竊網路,但這種技術也有很多積極的應用。想像一下,對一輛被劫持的車輛掃描乘客的被動系統,可以自動上報當局和家人目前的位置和方向。
特斯拉的車輛已經配備了攝像機和感測器,能夠接收OTA更新。 Uber和Lyft司機也可以通過配備這些設備來大幅增加覆蓋的區域。
使用開源技術和現有的組件,似乎有可能提供一個提供更高響應率的解決方案,並且投資額遠低於8600萬美元。
文章原標題《How I replicated an $86 million project in 57 lines of code》,作者:Tait Brown,譯者:夏天,審校:主題曲。
文章為簡譯,更為詳細的內容,請查看原文
更多技術乾貨敬請關注云棲社區知乎機構號:阿里云云棲社區 - 知乎
推薦閱讀:
※WebSocket 淺析
※HTML5的Websocket(理論篇 I)
※【RPU-A】官網 HTTP 指南基於新 HttpClient 重構