我只用57行代碼就復刻一個8600萬美元的大項目!
維多利亞警察局是澳大利亞維多利亞州的主要執法機構。 過去一年,維多利亞州共有超過1.6萬輛車被盜,損失約為1.7億美元,警方正在試驗各種技術解決方案,來打擊汽車盜竊。
為了防止被盜車輛的欺詐性銷售,已經有VicRoads這種在線服務用於檢查車輛註冊狀況。當局還投資了一個固定的車牌掃描器——一個固定的三腳架攝像頭,用於自動掃描識別被盜車輛。
不要問我為什麼,就在某天下午,我想到製作一個車載的車牌掃描儀,如果車輛被盜或未註冊,能夠自動通知您。這些單獨的組件是存在的,我想知道將它們協同連接起來會有多困難。
但是,經過一番谷歌搜索之後,我發現維多利亞警方最近試驗了一個類似的設備,估計費用約為8600萬美元。 一位精明的評論員指出,這8600萬美金用來匹配220輛車,相當於每一輛車花費39.0909萬美元。
當然我們可以做的比這更好。
現有固定車牌識別系統
成功的標準
在開始之前,我簡要羅列了產品設計的幾個關鍵要求。
圖像處理必須在本地執行
將實時視頻流傳向中央處理倉庫似乎是解決此問題的最低效方法。除了數據流龐大的容量,您還將網路延遲引入到已經相當緩慢的過程中。
雖然集中式機器學習演算法只會隨著時間的推移而變得更加準確,但我想了解本地的設備實現是否「足夠好」。
它必須能夠解析低質量的圖像
因為我沒有樹莓派相機或USB網路攝像頭,所以我將使用Dashcam鏡頭——它是一種隨時可用的、理想的樣本數據來源。還有一個額外的好處,Dashcam視頻代表了您從車載攝像機預期的鏡頭的整體質量。
它使用開源技術構建
依靠專有軟體意味著每次您要求更改或增強時,您都會感覺非常棘手,並且持續到此後每一個請求。使用開源技術就容易得多。
解決方案
在上層,我的解決方案會從Dashcam視頻中獲取圖像,傳送給安裝在本地設備上的開源車牌識別系統,查詢註冊服務,然後返回結果進行顯示。
執法車上設備返回的數據包括車輛生產商和型號(用於驗證車牌是否被盜),登記狀態,以及如果此車被盜還會有通告內容。
如果這聽起來很簡單,那是因為它確實就這麼簡單。例如,圖像處理都可以由openalpr庫處理。你所需要有關車牌字元識別就是這樣了:
一個小小的警告無法對VicRoads API進行公開訪問,因此在實驗中我將它的網頁爬下來用於號牌檢測。雖然通常大家對這種行為不滿——這只是一個概念上的證明,我沒有攻擊任何人的伺服器。 以下是我的概念驗證:
結果
我必須說我很驚喜。
我原以為開源車牌識別會相當垃圾。此外,圖像識別演算法可能沒有針對澳大利亞車牌進行優化。
實際卻發現該解決方案能夠在各種視野中識別車牌。
添加註釋生效。 儘管有反光和鏡頭失真,但確定了牌號。
雖然解決方案對特定字母識別有問題。
車牌識別不正確,誤把M當作H
但是...識別最終會還是成功了。
幾幀後,M被正確識別,並具有更高的置信度
正如你可以看到上述兩個圖像,幾幀後圖像處理從87%的置信度上升到91%。
我很自信,原諒我這麼說,提高準確率可以通過提高抽樣率,然後按最高置信度排序。或者,可以設置在驗證車牌之前僅接受大於90%的置信度的閾值。
這些是非常直接的代碼優先修復,並且不排除使用本地數據集訓練車牌識別軟體。
8600萬美元的問題
老實說,我完全不知道8600萬美元的系統都包含什麼,也不知道本地化訓練的開源工具的準確性跟官方系統相比結果如何。
我估計預算的一部分包括更新幾個遺留資料庫和軟體應用程序,以支持每秒對多車進行高速,低延遲的車牌查詢。
另一方面,每輛車的識別成本在39.1萬美元左右也確實挺貴——特別是如果系統的識別結果不是特別準確,而且沒有大規模的IT項目停產或升級相關係統。
未來的應用
雖然在想法上很容易陷入喬治奧威爾式的「永遠在線」式的車牌告密網路,但這種技術還是有很多積極的應用。試想,一個系統掃描到一個綁匪的車,自動通報當局和家屬綁匪目前的位置和方向。
特斯拉斯車輛已經擁有攝像頭和感測器,能夠接收OTA更新——想像將其變成一個虛擬的好心人。Ubers和Lyft司機也可以配備這些設備來大幅增加覆蓋面積。
使用開源技術和現有組件,似乎有可能提供一個提供更高回報率的解決方案——投資遠低於8600萬美元。
感謝Drew Firment。
看完此文,有什麼想法或觀點呢?歡迎在留言區留言評論。
點擊展開全文
※數學家破解婚戀網站配對程序 90天找到靈魂伴侶
※當程序員找BUG的時候
※這些程序員最怕的事,你怕么?
※我寫程序的時候最想給你看……
※編程就像兩性關係
TAG:程序人生 |