README.md 3.2 KB
Newer Older
LuckyFucky's avatar
LuckyFucky 已提交
1
本文地址:[https://blog.csdn.net/qq_43521665/article/details/117223138?spm=1001.2014.3001.5501](https://blog.csdn.net/qq_43521665/article/details/117223138?spm=1001.2014.3001.5501)
LuckyFucky's avatar
LuckyFucky 已提交
2 3 4 5 6 7

# 注意:

本项目使用Yolov5 3.0版本,4.0版本需要替换掉models和utils文件夹

# 项目简介:
LuckyFucky's avatar
LuckyFucky 已提交
8
使用YOLOv5+Deepsort+REID实现车辆行人追踪和徘徊检测,代码封装成一个Detector类,更容易嵌入到自己的项目中。车辆检测是理论上的,主要实现的是行人检测。注意这里因为项目背景,这里只一次识别3个行人,1辆卡车和1辆汽车。
LuckyFucky's avatar
LuckyFucky 已提交
9 10 11

代码地址(欢迎star):

LuckyFucky's avatar
LuckyFucky 已提交
12
[https://codechina.csdn.net/qq_43521665/loitering-detection](https://codechina.csdn.net/qq_43521665/loitering-detection)
LuckyFucky's avatar
LuckyFucky 已提交
13

LuckyFucky's avatar
LuckyFucky 已提交
14 15
# 项目逻辑:
使用yolov5进行物体的识别和筛选。将信息导入到deep_sort中进行分配跟踪id,并进行行人重识别,以保证重识别到的行人的id保持为之前使用的id.(如果对deep_sort分配id的方法没有概念,可以先看一下deep_sort单独对视频的处理。)最后将保存到的物体的移动轨迹进行简单的徘徊检测判断,也就是依据路程和位移的关系(所以真的是简单检测),当然你可以参考一些资料,实现更合理更精确的徘徊检测算法实现。
LuckyFucky's avatar
LuckyFucky 已提交
16

LuckyFucky's avatar
LuckyFucky 已提交
17 18
# 项目运行:
首先需要进行人物特征的导入,这是因为我临时加上了行人重识别,可一般的重识别模型都是在有参考视频的情况下进行的,所以……只好……运行PS/query_get进行图片的保存。截取的人物图片会保存在'PS/query'文件夹下,具体的配置文件在config中。之后运行demo即可。注意这里只允许不大于三人进行特征提取,其实这里应该不限制人数,但后来的徘徊检测已经固定死了。考虑到之后deep_sort还会为每个行人分配id,为了区分重识别人物的id,所以用负数和0进行标记。可以看到,这里将目标识别人物进行0,-1,-2标记。
LuckyFucky's avatar
LuckyFucky 已提交
19
```python
LuckyFucky's avatar
LuckyFucky 已提交
20 21 22 23 24
    feats = {}
    feat = temp.get_feats()
    feats[0] = feat[0:2]
    feats[-1] = feat[2:4]
    feats[-2] = feat[4:6]
LuckyFucky's avatar
LuckyFucky 已提交
25
 ```python
LuckyFucky's avatar
LuckyFucky 已提交
26

LuckyFucky's avatar
LuckyFucky 已提交
27 28
PS下的temp文件是我将重识别模型的特征提取和特征匹配两个方法提取出来,整合成一个文件,这里也就是行人充实别的接口。
newtracker文件是徘徊检测问价,也是最核心的文件。这里是逻辑的集大成者,也就是yolov5,deep_sort,reid和徘徊检测算法都在这里进行。
LuckyFucky's avatar
LuckyFucky 已提交
29 30
plot_bboxes方法实现框和轨迹的绘制,update_tracker实现track_id的分配,并将结果输入到plot_bboxes方法,该方法中引用get_distance方法进行路程和位移的计算,并进行轨迹的保存,之后方便进行轨迹的绘画,当然轨迹是在提出警告后才开始进行保存绘制的。具体的内容还是参考[https://blog.csdn.net/qq_43521665/article/details/117223138?spm=1001.2014.3001.5501](https://blog.csdn.net/qq_43521665/article/details/117223138?spm=1001.2014.3001.5501)
这篇代码中也有一些细节,例如超出视频范围内的轨迹预测,这里用到的就是离开的帧数和运动的速度,在使用过程中也要记得速度的更新。
LuckyFucky's avatar
LuckyFucky 已提交
31 32 33 34



遵循 GNU General Public License v3.0 协议,标明目标检测部分来源:https://github.com/ultralytics/yolov5/