热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

广州“开四停四”交通限行,技术上是如何实现的?

腾小云导读:为缓解广州城区的道路交通紧张状况,广州已于2018年7月1日起进行管控区域的“外地牌车”实施“开四停四”管理措施通行规则,执法

腾小云导读:

为缓解广州城区的道路交通紧张状况,广州已于2018年7月1日起进行管控区域的“外地牌车”实施“开四停四”管理措施通行规则,执法部门已于8月1日起正式依据规则进行非广州市籍车辆通行的拍摄取证工作。今天我们就从技术的角度,来剖析一下如何技术上实现“开四停四”的判定执法。

本文共:2169 字,预计阅读时间:6 分钟

整个“开四停四”限行判定系统主要涉及三大功能模块:

图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

以上,为大家剖析了一种“开四停四”交通限行管理的实现技术方法,希望对大家解决实际场景问题时如何应用技术有所帮助。

— 完 —

征稿啦!

云+社区是腾讯云官方技术社区,我们致力于打造技术影响力,帮助广大开发者提升技术实力,社区汇聚了众多开发者群体,提供优质的技术干货文章,建立了互帮互助的知识问答,丰富的技术课程,定期举办线下沙龙活动等。

欢迎广大读者投稿,比如技术干货,对行业的看法,热点事件解读,职业规划分享,开发应用实践,技术解决方案等。

联系方式:微信(itquan1234,暗号:投稿+姓名)

关注云加社区,回复 3 加读者群



推荐阅读
  • Python与R语言在功能和应用场景上各有优势。尽管R语言在统计分析和数据可视化方面具有更强的专业性,但Python作为一种通用编程语言,适用于更广泛的领域,包括Web开发、自动化脚本和机器学习等。对于初学者而言,Python的学习曲线更为平缓,上手更加容易。此外,Python拥有庞大的社区支持和丰富的第三方库,使其在实际应用中更具灵活性和扩展性。 ... [详细]
  • Java服务问题快速定位与解决策略全面指南 ... [详细]
  • 深入解析 Django 中用户模型的自定义方法与技巧 ... [详细]
  • 从无到有,构建个人专属的操作系统解决方案
    操作系统(OS)被誉为程序员的三大浪漫之一,常被比喻为计算机的灵魂、大脑、内核和基石,其重要性不言而喻。本文将详细介绍如何从零开始构建个人专属的操作系统解决方案,涵盖从需求分析到系统设计、开发与测试的全过程,帮助读者深入理解操作系统的本质与实现方法。 ... [详细]
  • Python作为当今IT领域中最受欢迎且高效的语言之一,其框架能够显著加速Web应用程序的开发过程。本文推荐并对比了十大顶级Python Web开发框架,其中CubicWeb以其卓越的代码重用性和模块化设计脱颖而出,为开发者提供了强大的支持。 ... [详细]
  • 本文介绍了使用 Python 编程语言高效抓取微博文本和动态网页图像数据的方法。通过详细的示例代码,展示了如何利用爬虫技术获取微博内容和动态图片,为数据采集和分析提供了实用的技术支持。对于对网络数据抓取感兴趣的读者,本文具有较高的参考价值。 ... [详细]
  • 当前,众多初创企业对全栈工程师的需求日益增长,但市场中却存在大量所谓的“伪全栈工程师”,尤其是那些仅掌握了Node.js技能的前端开发人员。本文旨在深入探讨全栈工程师在现代技术生态中的真实角色与价值,澄清对这一角色的误解,并强调真正的全栈工程师应具备全面的技术栈和综合解决问题的能力。 ... [详细]
  • Java中高级工程师面试必备:JVM核心知识点全面解析
    对于软件开发人员而言,随着技术框架的不断演进和成熟,许多高级功能已经被高度封装,使得初级开发者只需掌握基本用法即可迅速完成项目。然而,对于中高级工程师而言,深入了解Java虚拟机(JVM)的核心知识点是必不可少的。这不仅有助于优化性能和解决复杂问题,还能在面试中脱颖而出。本文将全面解析JVM的关键概念和技术细节,帮助读者全面提升技术水平。 ... [详细]
  • 2019年后蚂蚁集团与拼多多面试经验详述与深度剖析
    2019年后蚂蚁集团与拼多多面试经验详述与深度剖析 ... [详细]
  • 深入解析 C 语言与 C++ 之间的差异及关联
    深入解析 C 语言与 C++ 之间的差异及关联 ... [详细]
  • 点云技术初探(三):PCL基础知识与学习路径指南本文首先介绍了点云库(PCL)的基本概念,PCL是一个在前人点云研究成果基础上发展而来的大型跨平台开源C++编程库,旨在为点云数据处理提供全面的支持。文章详细阐述了PCL的核心功能及其在三维数据处理、特征提取、分割与配准等方面的应用,并为初学者提供了系统的学习路径和资源推荐,帮助读者快速掌握PCL的使用方法。 ... [详细]
  • PyQt5 QTextEdit:深入解析Python中多功能GUI库的应用与实现
    本文详细探讨了 PyQt5 中 QTextEdit 组件在 Python 多功能 GUI 库中的应用与实现。PyQt5 是 Qt 框架的 Python 绑定,提供了超过 620 个类和 6000 个函数及方法,广泛应用于跨平台应用程序开发。QTextEdit 作为其中的重要组件,支持丰富的文本编辑功能,如富文本格式、文本高亮和自定义样式等。PyQt5 的流行性不仅在于其强大的功能,还在于其易用性和灵活性,使其成为开发复杂用户界面的理想选择。 ... [详细]
  • 本文深入探讨了Java枚举类型的使用与实践,详细解析了枚举的基本用法及其在实际开发中的应用。首先介绍了枚举作为常量的替代方案,自JDK 1.5起,通过枚举可以更加简洁、安全地定义常量,避免了传统方式中可能出现的错误。此外,文章还探讨了枚举在实现单例模式、状态机等场景中的优势,并提供了多个实际案例,帮助开发者更好地理解和运用这一强大的语言特性。 ... [详细]
  • 本研究聚焦于利用Java、PHP和Python开发的汽车销售管理系统,旨在为计算机科学专业学生的毕业设计提供参考。项目采用BS架构,结合多种编程语言的优势,实现高效的数据管理和用户交互。该系统不仅涵盖了汽车销售的核心功能,还通过集成先进的技术栈,提升了系统的稳定性和扩展性。 ... [详细]
  • 基于STM32的智能太阳能路灯设计与华为云IOT集成方案
    基于STM32的智能太阳能路灯设计与华为云IOT集成方案 ... [详细]
author-avatar
忽而今秋_丶
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有