剖析廣州“開四停四”交通限行的實現技術


歡迎大家前往騰訊雲+社區,獲取更多騰訊海量技術實踐干貨哦~

本文由Frank 發表於雲+社區專欄

img

為緩解廣州城區的道路交通緊張狀況,廣州已於2018年7月1日起進行管控區域的“外地牌車”實施“開四停四”管理措施通行規則,執法部門已於8月1日起正式依據規則進行非廣州市籍車輛通行的拍攝取證工作。今天我們就從技術的角度,來剖析一下如何技術上實現“開四停四”的判定執法。

整個“開四停四”限行判定系統主要涉及三大功能模塊:

img圖1:“開四停四”限行判定系統主要模塊

一、電子警察影像采集及存儲

電子影像采集及存儲是非常成熟的系統,目前已形成多套解決方案:電子警察抓拍、卡口抓拍、治安監控、流量監控等。采集數據主要為圖片或視頻資料。

涉及到廣州的外地車牌“開四停四”限行,由於是新法規,這里很大可能是一整套專門的拍攝采集系統,布局在管控區域內。據網上信息披露,廣州2018-7-10新增啟用 “170”套設備用於“開四停四”的說法。不過理論上,任何一個交通監控攝像頭都可采集用於“開四停四”數據分析處理的影像數據。

由於這塊技術最成熟,我們這里只列出技術架構圖(見下圖:電子卡口設置示意圖及電子“卡口”抓拍系統架構):

img圖2-1:電子卡口設置示意圖

img圖2-2:電子“卡口”抓拍系統架構

在圖像或視頻資料的存儲方面,由於數據量巨大,可以考慮使用騰訊雲的文件存儲(CFS)來滿足,確保彈性擴展與共享訪問。

二、外地車牌識別入庫

在卡口由電子警察采集的圖片資料,將通過采用機器學習的“圖片識別”/ “視頻關鍵幀”技術,將外地車牌的信息抽取出來,存放於外地限行數據庫(LimitedPassDB)的originalInfoTable中。

這里圖片資料識別的技術也很成熟,目前已廣泛用於停車場、高速關卡等場景。系統架構圖如下:

img圖3:車牌識別系統示意圖

關於車牌識別的編程代碼(python)實現,可以參考文章《用PaddlePaddle進行車牌識別》:https://cloud.tencent.com/developer/article/1065786

騰訊雲也提供了“智能鈦機器學習”平台服務,可以幫助用戶進行模型型訓練、評估與預測。

img圖4:騰訊雲TI機器學習平台架構圖

圖片從服務器上傳到 COS 對象存儲后,您可以通過 TI 調度 CPU 和 HPC 集群對圖片數據進行裁剪、格式轉換等數據預處理;接下來采用 Faster R-CNN 或其他算法進行圖象識別的模型訓練,並優化參數直至最優;訓練完畢的模型即可用於其他圖片的圖像識別預測,以判斷圖像物品的基本屬性。

TI 的圖片識別結果可廣泛應用於公安領域的網絡鑒黃,反恐的高危行為檢測、嫌疑人特征檢測,廣告推薦領域的新商品識別、相似商品推薦,智能交通領域的車輛識別、行人識別、自動駕駛等場景。

三、違法識別判定

“開四停四”違法車輛識別判定,是我們文章重點要介紹的模塊。實現方法如下:

1、符合條件的通行進行編碼

首先,我們先要對符合外地車通行的措施與條件進行編碼。廣州外地車限行的措施見下圖所示:

img圖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

以上,為大家剖析了一種“開四停四”交通限行管理的實現技術方法,希望對大家解決實際場景問題時如何應用技術有所幫助。

問答

AI開發的語言要求?

相關閱讀

教你從0到1搭建小程序音視頻

教你快速搭建一場發布會直播方案

移形換影 - 短視頻色彩特效背后的故事

此文已由作者授權騰訊雲+社區發布,原文鏈接:https://cloud.tencent.com/developer/article/1179758?fromSource=waitui

歡迎大家前往騰訊雲+社區或關注雲加社區微信公眾號(QcloudCommunity),第一時間獲取更多海量技術實踐干貨哦~

海量技術實踐經驗,盡在雲加社區! https://cloud.tencent.com/developer?fromSource=waitui


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM