歡迎你們前往騰訊雲+社區,獲取更多騰訊海量技術實踐乾貨哦~python
爲緩解廣州城區的道路交通緊張情況,廣州已於2018年7月1日起進行管控區域的「外地牌車」實施「開四停四」管理措施通行規則,執法部門已於8月1日起正式依據規則進行非廣州市籍車輛通行的拍攝取證工做。今天咱們就從技術的角度,來剖析一下如何技術上實現「開四停四」的斷定執法。數據庫
整個「開四停四」限行斷定系統主要涉及三大功能模塊:編程
圖1:「開四停四」限行斷定系統主要模塊小程序
1、電子警察影像採集及存儲服務器
電子影像採集及存儲是很是成熟的系統,目前已造成多套解決方案:電子警察抓拍、卡口抓拍、治安監控、流量監控等。採集數據主要爲圖片或視頻資料。微信
涉及到廣州的外地車牌「開四停四」限行,因爲是新法規,這裏很大多是一整套專門的拍攝採集系統,佈局在管控區域內。據網上信息披露,廣州2018-7-10新增啓用 「170」套設備用於「開四停四」的說法。不過理論上,任何一個交通監控攝像頭均可採集用於「開四停四」數據分析處理的影像數據。網絡
因爲這塊技術最成熟,咱們這裏只列出技術架構圖(見下圖:電子卡口設置示意圖及電子「卡口」抓拍系統架構):架構
圖2-1:電子卡口設置示意圖機器學習
圖2-2:電子「卡口」抓拍系統架構
在圖像或視頻資料的存儲方面,因爲數據量巨大,能夠考慮使用騰訊雲的文件存儲(CFS)來知足,確保彈性擴展與共享訪問。
2、外地車牌識別入庫
在卡口由電子警察採集的圖片資料,將經過採用機器學習的「圖片識別」/ 「視頻關鍵幀」技術,將外地車牌的信息抽取出來,存放於外地限行數據庫(LimitedPassDB)的originalInfoTable中。
這裏圖片資料識別的技術也很成熟,目前已普遍用於停車場、高速關卡等場景。系統架構圖以下:
圖3:車牌識別系統示意圖
關於車牌識別的編程代碼(python)實現,能夠參考文章《用PaddlePaddle進行車牌識別》:https://cloud.tencent.com/developer/article/1065786
騰訊雲也提供了「智能鈦機器學習」平臺服務,能夠幫助用戶進行模型型訓練、評估與預測。
圖4:騰訊雲TI機器學習平臺架構圖
圖片從服務器上傳到 COS 對象存儲後,您能夠經過 TI 調度 CPU 和 HPC 集羣對圖片數據進行裁剪、格式轉換等數據預處理;接下來採用 Faster R-CNN 或其餘算法進行圖象識別的模型訓練,並優化參數直至最優;訓練完畢的模型便可用於其餘圖片的圖像識別預測,以判斷圖像物品的基本屬性。
TI 的圖片識別結果可普遍應用於公安領域的網絡鑑黃,反恐的高危行爲檢測、嫌疑人特徵檢測,廣告推薦領域的新商品識別、類似商品推薦,智能交通領域的車輛識別、行人識別、自動駕駛等場景。
3、違法識別斷定
「開四停四」違法車輛識別斷定,是咱們文章重點要介紹的模塊。實現方法以下:
一、符合條件的通行進行編碼
首先,咱們先要對符合外地車通行的措施與條件進行編碼。廣州外地車限行的措施見下圖所示:
圖5:「開四停四」管理措施
若是咱們將通行標識爲「1」,停駛標識爲「0」,依圖咱們能夠得出合規的通行標識碼有8種:
100001
1100001
11100001
10100001
111100001
101100001
110100001
100100001
這8種符合條件的bitmap通行碼,能夠大大減小咱們斷定的複雜性。
二、記錄跟蹤外地車在管制區域內的行駛
在管制區域內任一點拍攝識別外地車(非粵A牌車輛),即入庫1條uin爲車牌號的記錄addTraceRec到traceInfoTable表中。當天再有同一輛車的信息再也不入庫。顯然,記錄必須包括有字段-標識串flagStr,還能夠有時間timestamp、違法標記isIllegal等字段。首次寫入時:flagStr置爲1。
次日開始,拍攝到有記錄的外地車牌,即update其標識串字段:flagStr=flagStr.’1’;
另外,還須要起一個定時任務(如天天23:59:00):對於以前已有記錄,但其餘該天未拍攝到的,進行標識串字符補齊,flagStr=flagStr.’0’
三、外地車限行違法斷定
使用定時任務來完成(如天天00:00:00);針對flagStr.length>=5,執行斷定,斷定條件:
1)是否知足「停四」,是則清除記錄;
If ‘0000’ in flagStr:
//flagStr=‘’
//isIllegal=0
deleteTraceRec() //清除traceInfoTable中記錄
2)在上述1)的條件下,判斷是否知足「開四」,不是則違法
else:
if flagStr not in (11110,11000,11100,10100,10010,10110,11010,111100,111000,101000,100100,101100,110100,1111000,1001000,1011000,1101000):
isIllegal=1
addIllegalRec() //在違法信息illegalInfoTable中增長1條記錄
sendBill() //發送違法罰單
flagStr=flagStr[1:] //截去第1位標識串
endif
endif
以上,爲你們剖析了一種「開四停四」交通限行管理的實現技術方法,但願對你們解決實際場景問題時如何應用技術有所幫助。
問答
相關閱讀
此文已由做者受權騰訊雲+社區發佈,原文連接:https://cloud.tencent.com/developer/article/1179758?fromSource=waitui
歡迎你們前往騰訊雲+社區或關注雲加社區微信公衆號(QcloudCommunity),第一時間獲取更多海量技術實踐乾貨哦~
海量技術實踐經驗,盡在雲加社區! https://cloud.tencent.com/developer?fromSource=waitui