@Author:Runsen

deepDeepSort

DeepSort是一种用于跟踪目标的模型,为每个目标分配 ID,为每一个不同的类别分配label。

在DeepSort 中,过程如下。

  • 使用YOLO 计算边界框(检测)
  • 使用Sort(卡尔曼滤波器)和ReID(识别模型)链接边界框和轨迹
  • 如果无法建立活动链接,则会分配一个新 ID 并将其新添加到track。

deepDeepSort所谓的“检测”是每一帧中的目标列表,“轨迹”是当前被跟踪的列表。

deepsorts项目地址:https://github.com/mikelbrostrom/Yolov5_DeepSort_Pytorch

deepsorts测试小车经过的时间和速度

本次项目代码
参考项目:https://github.com/dyh/unbox_yolov5_deepsort_counting。

该项目封装了deepsorts和yolov5文件,非常易于其他需求的开发,个人在
该项目上进行二次开发。

项目实现目标要求:通过deepsorts测试图中的小车到拐弯是否存在超速的行为。

个人通过Image_Pixel小软件对图片进行标点和标线。一共划分了六条线和六个区域块。

项目的主要结构

由于yolov5模型存在一定的检测异常,因此需要在设置线时,最好设置成小矩形。最后的矩形判断的速度设置为4,也大约是15km/h。

下面是部分具体的测试结果,保存image 和 是否超速的结果写到rabbitmq中。

Fusing layers...
进入第一块矩形类别: truck | id: 3 | : 碰撞点的坐标 (148, 245) | : time: 9.04
进入第一块矩形类别: truck | id: 3 | : 碰撞点的坐标 (148, 246) | : time: 9.08
进入第一块矩形类别: car | id: 3 | : 碰撞点的坐标 (148, 247) | : time: 9.12
进入第一块矩形类别: truck | id: 3 | : 碰撞点的坐标 (149, 246) | : time: 9.16
进入第一块矩形类别: truck | id: 3 | : 碰撞点的坐标 (149, 246) | : time: 9.2
进入第一块矩形类别: truck | id: 3 | : 碰撞点的坐标 (150, 247) | : time: 9.24
进入第一块矩形类别: truck | id: 3 | : 碰撞点的坐标 (151, 247) | : time: 9.28
进入第二块矩形类别: truck | id: 3 | : 碰撞点的坐标 (161, 258) | : time: 9.96
第一块花费的时间: 0.6800000000000015
进入第二块矩形类别: truck | id: 3 | : 碰撞点的坐标 (162, 258) | : time: 10.0
第一块花费的时间: 0.7200000000000006
进入第二块矩形类别: car | id: 3 | : 碰撞点的坐标 (163, 259) | : time: 10.04
第一块花费的时间: 0.7599999999999998
进入第二块矩形类别: truck | id: 3 | : 碰撞点的坐标 (163, 259) | : time: 10.08
第一块花费的时间: 0.8000000000000007
进入第二块矩形类别: car | id: 3 | : 碰撞点的坐标 (163, 260) | : time: 10.12
第一块花费的时间: 0.8399999999999999
进入第三块矩形类别: truck | id: 3 | : 碰撞点的坐标 (179, 273) | : time: 10.96
第二块花费的时间: 0.8400000000000016
进入第三块矩形类别: truck | id: 3 | : 碰撞点的坐标 (180, 273) | : time: 11.0
第二块花费的时间: 0.8800000000000008
进入第三块矩形类别: truck | id: 3 | : 碰撞点的坐标 (180, 273) | : time: 11.04
第二块花费的时间: 0.9199999999999999
进入第三块矩形类别: truck | id: 3 | : 碰撞点的坐标 (181, 275) | : time: 11.08
第二块花费的时间: 0.9600000000000009
进入第三块矩形类别: truck | id: 3 | : 碰撞点的坐标 (182, 275) | : time: 11.12
第二块花费的时间: 1.0
进入第五块矩形类别: truck | id: 3 | : 碰撞点的坐标 (208, 299) | : time: 12.36
第四块花费的时间: 1.0
进入第五块矩形类别: truck | id: 3 | : 碰撞点的坐标 (235, 325) | : time: 13.48
第五块花费的时间: 1.2400000000000002
进入第五块矩形类别: truck | id: 3 | : 碰撞点的坐标 (235, 326) | : time: 13.52
第五块花费的时间: 1.2400000000000002
进入第五块矩形类别: truck | id: 3 | : 碰撞点的坐标 (237, 327) | : time: 13.56
第五块花费的时间: 1.2400000000000002
进入第五块矩形类别: truck | id: 3 | : 碰撞点的坐标 (238, 328) | : time: 13.6
第五块花费的时间: 1.2400000000000002
进入第五块矩形类别: truck | id: 3 | : 碰撞点的坐标 (238, 329) | : time: 13.64
第五块花费的时间: 1.2400000000000002
进入第五块矩形类别: truck | id: 3 | : 碰撞点的坐标 (240, 329) | : time: 13.72
第五块花费的时间: 1.2400000000000002
进入第五块矩形类别: truck | id: 3 | : 碰撞点的坐标 (241, 329) | : time: 13.76
第五块花费的时间: 1.2400000000000002
离开的时间:: truck | id: 3 | : 碰撞点的坐标 (275, 364) | : time: 16.12
11.904761904761907 10.0 8.064516129032256 7.1428571428571415 4.237288135593218
True
离开的时间:: truck | id: 3 | : 碰撞点的坐标 (276, 364) | : time: 16.16
11.904761904761907 10.0 8.064516129032256 7.1428571428571415 4.166666666666666
True
离开的时间:: truck | id: 3 | : 碰撞点的坐标 (277, 364) | : time: 16.2
11.904761904761907 10.0 8.064516129032256 7.1428571428571415 4.0983606557377055
True
离开的时间:: truck | id: 3 | : 碰撞点的坐标 (277, 365) | : time: 16.24
11.904761904761907 10.0 8.064516129032256 7.1428571428571415 4.032258064516132
True
离开的时间:: truck | id: 3 | : 碰撞点的坐标 (277, 365) | : time: 16.28
11.904761904761907 10.0 8.064516129032256 7.1428571428571415 3.968253968253966
False
离开的时间:: truck | id: 3 | : 碰撞点的坐标 (277, 365) | : time: 16.4
11.904761904761907 10.0 8.064516129032256 7.1428571428571415 3.7878787878787894
False
离开的时间:: truck | id: 3 | : 碰撞点的坐标 (278, 365) | : time: 16.44
速度:11.904761904761907 10.0 8.064516129032256 7.1428571428571415 3.7313432835820874
False

附上GIthub:https://github.com/MaoliRUNsen/deepsort-yolov5-car

深度学习和目标检测系列教程 21-300:deepsorts测试小车经过的时间和速度相关推荐

  1. 深度学习和目标检测系列教程 1-300:什么是对象检测和常见的8 种基础目标检测算法

    @Author:Runsen 由于毕业入了CV的坑,在内卷的条件下,我只好把别人卷走. 对象检测 对象检测是一种计算机视觉技术,用于定位图像或视频中的对象实例.对象检测算法通常利用机器学习或深度学习来 ...

  2. 深度学习和目标检测系列教程 2-300:小试牛刀,使用 ImageAI 进行对象检测

    @Author:Runsen 对象检测是一种属于更广泛的计算机视觉领域的技术.它处理识别和跟踪图像和视频中存在的对象.目标检测有多种应用,如人脸检测.车辆检测.行人计数.自动驾驶汽车.安全系统等.Im ...

  3. 深度学习和目标检测系列教程 5-300:早期的目标检测RCNN架构

    @Author:Runsen 最早期的目标检测基于RCNN的算法,下面介绍RCNN的架构 RCNN架构 R-CNN 的目标是获取图像,并正确识别图片中的主要对象(通过边界框)的位置. 输入:图像: 输 ...

  4. 深度学习和目标检测系列教程 3-300:了解常见的目标检测的开源数据集

    @Author:Runsen 计算机视觉中具有挑战性的主题之一,对象检测,可帮助组织借助数字图片作为输入来理解和识别实时对象.大量的论文基于常见的目标检测的开源数据集而来,因此需要了解常见的目标检测的 ...

  5. 深度学习和目标检测系列教程 22-300:关于人体姿态常见的估计方法

    @Author:Runsen 姿态估计是计算机视觉中的一项流行任务,比如真实的场景如何进行人体跌倒检测,如何对手语进行交流. 作为人工智能(AI)的一个领域,计算机视觉使机器能够以模仿人类视觉为目的来 ...

  6. 深度学习和目标检测系列教程 7-300:先进的目标检测Faster R-CNN架构

    @Author:Runsen Faster R-CNN 由于Fast R-CNN 过程中仍然存在一个瓶颈,即ROI Projection.众所周知,检测对象的第一步是在对象周围生成一组潜在的边界框.在 ...

  7. 深度学习和目标检测系列教程 15-300:在 Python 中使用 OpenCV 执行 YOLOv3 对象检测

    @Author:Runsen 上次讲了yolov3,这是使用yolov3的模型通过opencv的摄像头来执行YOLOv3 对象检测. 导入所需模块: import cv2 import numpy a ...

  8. 深度学习和目标检测系列教程 12-300:常见的opencv的APi和用法总结

    @Author:Runsen 由于CV需要熟练使用opencv,因此总结了opencv常见的APi和用法. OpenCV(opensourcecomputervision)于1999年正式推出,它来自 ...

  9. 深度学习和目标检测系列教程 9-300:TorchVision和Albumentation性能对比,如何使用Albumentation对图片数据做数据增强

    @Author:Runsen 上次对xml文件进行提取,使用到一个Albumentation模块.Albumentation模块是一个数据增强的工具,目标检测图像预处理通过使用"albume ...

最新文章

  1. Mac的访达中,如何只搜索当前文件夹的内容?
  2. 最新版ffmpeg 提取视频关键帧
  3. JQuery中html、append、appendTo、after、insertAfter系列方法
  4. 微信小游戏开发Canvas资源汇总
  5. 面试必谈的哈希,.Net 程序员温故而知新
  6. linux安装之后缺少命令,Centos 7 最小安装后关键命令找不到 ifconfig等
  7. 操作系统形成性考核册作业答案
  8. Language binding(语言绑定)
  9. mysql 小技巧
  10. 一次小黄车的二维码还原过程
  11. 多媒体信息技术对远程教育的影响
  12. eclipse java环境配置_Eclipse怎么配置运行环境?
  13. PHP 下载文件的方法(指定路径)
  14. Could not build wheels for xx which use PEP 517 and cannot be installed directly
  15. 解散群通知怎么写_家人微信群想解散通知怎么写
  16. Nonce Used1
  17. 【Java / Kotlin】Warning:Leaking ‘this‘ in constructor of non-final class
  18. 51cto学院微信支付实战对接开发视频教程
  19. parquet和orc 一次说清了
  20. ESP8266 CH420

热门文章

  1. C typedef功能介绍(内附函数指针和指针函数的区别)
  2. envi导出jpg文件_保存技巧,完美解决PS导出文件过大的问题
  3. 无csrf防护的html页面,Springs CSRF保护仅* HTML登录页面
  4. richedit line insertion error什么意思_大连 LINE 是怎样的一个公司?
  5. Java平滑处理什么意思_为何要进行数据平滑处理?
  6. redis集群扩容和缩容_Redis一站式管理平台,支持集群的创建、管理、监控和报警...
  7. jmeter测试udp收发数据
  8. Android自绘制控件
  9. 团队作业-Beta冲刺第二天
  10. PHP二维数组去重(指定键名)