欢迎你们前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~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