歡迎大家前往騰訊雲+社區,獲取更多騰訊海量技術實踐干貨哦~
為緩解廣州城區的道路交通緊張狀況,廣州已於2018年7月1日起進行管控區域的“外地牌車”實施“開四停四”管理措施通行規則,執法部門已於8月1日起正式依據規則進行非廣州市籍車輛通行的拍攝取證工作。今天我們就從技術的角度,來剖析一下如何技術上實現“開四停四”的判定執法。
整個“開四停四”限行判定系統主要涉及三大功能模塊:
圖1:“開四停四”限行判定系統主要模塊
一、電子警察影像采集及存儲
電子影像采集及存儲是非常成熟的系統,目前已形成多套解決方案:電子警察抓拍、卡口抓拍、治安監控、流量監控等。采集數據主要為圖片或視頻資料。
涉及到廣州的外地車牌“開四停四”限行,由於是新法規,這里很大可能是一整套專門的拍攝采集系統,布局在管控區域內。據網上信息披露,廣州2018-7-10新增啟用 “170”套設備用於“開四停四”的說法。不過理論上,任何一個交通監控攝像頭都可采集用於“開四停四”數據分析處理的影像數據。
由於這塊技術最成熟,我們這里只列出技術架構圖(見下圖:電子卡口設置示意圖及電子“卡口”抓拍系統架構):
圖2-1:電子卡口設置示意圖
圖2-2:電子“卡口”抓拍系統架構
在圖像或視頻資料的存儲方面,由於數據量巨大,可以考慮使用騰訊雲的文件存儲(CFS)來滿足,確保彈性擴展與共享訪問。
二、外地車牌識別入庫
在卡口由電子警察采集的圖片資料,將通過采用機器學習的“圖片識別”/ “視頻關鍵幀”技術,將外地車牌的信息抽取出來,存放於外地限行數據庫(LimitedPassDB)的originalInfoTable中。
這里圖片資料識別的技術也很成熟,目前已廣泛用於停車場、高速關卡等場景。系統架構圖如下:
圖3:車牌識別系統示意圖
關於車牌識別的編程代碼(python)實現,可以參考文章《用PaddlePaddle進行車牌識別》:https://cloud.tencent.com/developer/article/1065786
騰訊雲也提供了“智能鈦機器學習”平台服務,可以幫助用戶進行模型型訓練、評估與預測。
圖4:騰訊雲TI機器學習平台架構圖
圖片從服務器上傳到 COS 對象存儲后,您可以通過 TI 調度 CPU 和 HPC 集群對圖片數據進行裁剪、格式轉換等數據預處理;接下來采用 Faster R-CNN 或其他算法進行圖象識別的模型訓練,並優化參數直至最優;訓練完畢的模型即可用於其他圖片的圖像識別預測,以判斷圖像物品的基本屬性。
TI 的圖片識別結果可廣泛應用於公安領域的網絡鑒黃,反恐的高危行為檢測、嫌疑人特征檢測,廣告推薦領域的新商品識別、相似商品推薦,智能交通領域的車輛識別、行人識別、自動駕駛等場景。
三、違法識別判定
“開四停四”違法車輛識別判定,是我們文章重點要介紹的模塊。實現方法如下:
1、符合條件的通行進行編碼
首先,我們先要對符合外地車通行的措施與條件進行編碼。廣州外地車限行的措施見下圖所示:
圖5:“開四停四”管理措施
如果我們將通行標識為“1”,停駛標識為“0”,依圖我們可以得出合規的通行標識碼有8種:
100001
1100001
11100001
10100001
111100001
101100001
110100001
100100001
這8種符合條件的bitmap通行碼,可以大大減少我們判定的復雜性。
2、記錄跟蹤外地車在管制區域內的行駛
在管制區域內任一點拍攝識別外地車(非粵A牌車輛),即入庫1條uin為車牌號的記錄addTraceRec到traceInfoTable表中。當天再有同一輛車的信息不再入庫。顯然,記錄必須包括有字段-標識串flagStr,還可以有時間timestamp、違法標記isIllegal等字段。首次寫入時:flagStr置為1。
第二天開始,拍攝到有記錄的外地車牌,即update其標識串字段:flagStr=flagStr.’1’;
另外,還需要起一個定時任務(如每天23:59:00):對於之前已有記錄,但其他該天未拍攝到的,進行標識串字符補齊,flagStr=flagStr.’0’
3、外地車限行違法判定
使用定時任務來完成(如每天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