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

歡迎你們前往騰訊雲+社區,獲取更多騰訊海量技術實踐乾貨哦~python

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

img

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

整個「開四停四」限行斷定系統主要涉及三大功能模塊:數據庫

img圖1:「開四停四」限行斷定系統主要模塊編程

1、電子警察影像採集及存儲小程序

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

涉及到廣州的外地車牌「開四停四」限行,因爲是新法規,這裏很大多是一整套專門的拍攝採集系統,佈局在管控區域內。據網上信息披露,廣州2018-7-10新增啓用 「170」套設備用於「開四停四」的說法。不過理論上,任何一個交通監控攝像頭均可採集用於「開四停四」數據分析處理的影像數據。微信

因爲這塊技術最成熟,咱們這裏只列出技術架構圖(見下圖:電子卡口設置示意圖及電子「卡口」抓拍系統架構):網絡

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

img圖2-2:電子「卡口」抓拍系統架構機器學習

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

2、外地車牌識別入庫

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

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

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

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

騰訊雲也提供了「智能鈦機器學習」平臺服務,能夠幫助用戶進行模型型訓練、評估與預測。

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

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

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

3、違法識別斷定

「開四停四」違法車輛識別斷定,是咱們文章重點要介紹的模塊。實現方法以下:

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

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

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

以上,爲你們剖析了一種「開四停四」交通限行管理的實現技術方法,但願對你們解決實際場景問題時如何應用技術有所幫助。

問答

AI開發的語言要求?

相關閱讀

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

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

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

此文已由做者受權騰訊雲+社區發佈,原文連接:https://cloud.tencent.com/dev...

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

海量技術實踐經驗,盡在雲加社區! https://cloud.tencent.com/dev...

相關文章
相關標籤/搜索