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

Posted 刘润森!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深度学习和目标检测系列教程 21-300:deepsorts测试小车经过的时间和速度相关的知识,希望对你有一定的参考价值。

@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-300:什么是对象检测和常见的8 种基础目标检测算法

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

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

深度学习和目标检测系列教程 19-300:关于目标检测APIoU和mAP简介

深度学习和目标检测系列教程 19-300:关于目标检测APIoU和mAP简介

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