资讯专栏INFORMATION COLUMN

原理讲解-项目实战 <-> DeepSORT算法实现车辆和行人跟踪计数和

FleyX / 2709人阅读

摘要:点击上方码农的后花园,选择星标公众号精选文章,第一时间送达上一期中我们讲解了多目标跟踪算法算法的原理实现,今天就给大家带来基于算法和算法实现智能交通场景下车辆和行人跟踪计数和车辆是否道路违规检测的落地项目。

点击上方码农的后花园”,选择星标” 公众号

精选文章,第一时间送达

上一期中我们讲解了多目标跟踪算法DeepSORT算法的原理实现,今天就给大家带来基于Yolo算法和DeepSORT算法实现智能交通场景下车辆和行人跟踪计数和车辆是否道路违规检测的落地项目。


往期回顾:

多目标跟踪(Multi-Object-Tracking)入门

原理讲解-项目实战 <-> 多目标跟踪算法之DeepSORT

   1 场景背景提取

此处面对的场景是是交通摄像头下的马路场景,数据格式为视频流或者视频,所以我们要提取视频的第一帧作为背景来进行车道线的标定,运行提取背景.py即可提取第一帧背景图片。

2 车道线和斑马线标定

根据第一步提取的场景背景图片,进行道路信息的标定,并返回道路信息的相关参数。

标定的方式是运行车道线标定.py,先鼠标在背景图片上从左至右依次点击红色的两边的车道线实线,然后鼠标再依次在背景图片点击斑马线绿色框的从左至右四个顶点。这样就可以将斑马线和车道线的位置信息进行提取了,项目目录下会生成如上图标记好了的的out.png

3 车牌识别

车牌号使用车牌号的识别是从车辆出现在画面的第一帧开始,一直到车辆消失在画面中。我们并不能事先确定在哪一帧对车牌的识别效果最好。因此,我们在车辆出现的第一帧,就将它的id和车牌信息传入字典chepaixinxi保存起来。如果当前帧比之前的识别效果都好(置信度高),我们就用它替换之前的车牌信息。另一方面,为了节省计算资源,只要是该车在某一帧的车牌置信度高于0.9,我们就不再将其传入车牌识别模块,运行LPR.py即可提取车牌信息,提取效果如下图所示。

车牌识别使用HyperLPR,HyperLPR是一个基于深度学习的高性能中文车牌识别开源项目。开源地址 https://github.com/zeusees/HyperLPR,由python语言编写,同时还支持Linux、Android、iOS、Windows等各主流平台。它拥有不错的识别率。

4 车辆越实线、不礼让行人检测

我们将车辆在上一帧的检测位置保存下来。如果车辆在上一帧的位置和在这一帧的位置分别位于车道线实线的两侧,或者落在了实线上,我们就判定车辆非法越实线了。行人在斑马线上时,车辆也在斑马线上 ==>车辆不礼让行人,运行效果图:

代码下载,后台回复:项目实战,代码即可获取下载使用。

环境

  • python==3.6

  • opencv-python==3.4.9.33

  • tensorflow-gpu or tensorflow-cpu 2.0.1

reference:

https://blog.csdn.net/fuhao7i/article/details/112910577

精彩推荐:

原理讲解-项目实战 <-> Mtcnn + Facenet 搭建人脸识别平台(中奖名单公示)

原理讲解-项目实战 <-> Keras搭建Mtcnn人脸检测平台

Yolov3算法实现社交距离安全检测项目讲解和实战(Social Distance Detector)

万字长文,用代码的思想讲解Yolo3算法实现原理,Visdrone数据集和自己制作数据集两种方式在Pytorch训练Yolo模型

更多优质内容?等你点在看

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/124064.html

相关文章

  • 如何用Python实现景区安防系统

      本设计的时候,应用YOLO目标检测算法、Openpose姿势检测算法、deepsort跟踪算法、MSCNN群体密度估计技术实现了火灾监测、抽烟数据监测、行为表现安全监控、人群密度数据监测、防护口罩率数据监测、人员定位系统数据监测六个基本要素,对Python完成旅游景点安防监控系统感兴趣的小伙伴一起了解一下吧  本设计的时候,应用YOLO目标检测算法、Openpose姿势检测算法、deepsor...

    89542767 评论0 收藏0
  • ntp-keygen命令 – 生成NTP主机密钥

    ntp-keygen 命令的作用是可以生成 NTP 主机密钥(公钥和私钥)。 公钥和私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密。如果用私有密钥对数据进行加密,只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种加密叫作非对称加密。 常用的非对称加密算法有:ElGamal、RSA、DH 等。语法格式:ntp-keygen [参数]常用参数:参数...

    社区管理员 评论0 收藏0
  • 详细解说JavaScript内存管理GC算法

      JavaScript在创建变量(数组、字符串、对象等)是自动进行了分配内存,而且当它没有被使用的状态下,会自动的释放分配的内容;其实这样基层语言,如C语言,他们提供了内存管理的接口,比如malloc()用于分配所需的内存空间、free()释放之前所分配的内存空间。  释放内存的过程称为垃圾回收,例如avaScript这类高级语言可以提供了内存自动分配和自动回收,其实这个自动储存不会占用太多空间...

    3403771864 评论0 收藏0
  • Python超详细的讲解运存管理模式

      本文主要是详细介绍Pyhon的代码优化,以Pyhon的记数体制做为引进,详细介绍Pyhon的代码优化方法,感兴趣的小伙伴来了解一下吧  什么是内存管理模式  python中建立的目标情况下,都会先进行申请基址,再对目标开展复位,全部目标都是会维护保养在同一个  个称为refchain的双重循环链表中,每一个数据储存如下所示信息内容:  importsys   a=[11,22]#对象被创建  ...

    89542767 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<