从GitHub官网下载源码:mikel-brostrom/Yolov5_StrongSORT_OSNet
将下载的与deepsort配套的yolov5代码导入对应文件夹。
在pycharm终端输入:
pip install -r requirements.txt
在deep_sort文件夹下deep_sort.py文件下会有torchreid包未导入的错误。
可以根据路径提示:deep_sort–>deep–>reid是一个空文件。
打开GitHub下作者下的目录,发现还有一个链接文件,继续下载放到本地文件中。
即可配置我们的torchreid依赖包。
方法一:
在pycharm中输入:
cd C:\Users\三木今天学习了吗\Desktop\Yolov5_deepsort\deep_sort\deep\reid
执行上面语句进入reid目录,运行
python setup.py develop
再安装依赖包:
pip install -r requirements.txt
方法二: 根据deep-person-reid的作者写的Installation,在conda中安装。
在Model zoo里下载权重文件,放到deep_sort–>deep–>checkpoint目录下。
感兴趣的话可以搜索并阅读:OSNet:Omni-Scale Feature Learning for Person Re-Identification
在Model zoo中可以看到权重文件的参数和运算速度
滑动下滑条,还可以看见距离结算的使用公式。有的是欧氏距离,有的是余弦距离。
这里我决定使用osnet_ain_x1_0,并放到deep_sort–>deep–>checkpoint目录下。
Yolov5_DeepSort_Pytorch–>deep_sort–>configs–>deep_sort.yaml
DEEPSORT:
MODEL_TYPE: "osnet_ain_x1_0"
REID_CKPT: '~/Yolov5_DeepSort_Pytorch/deep_sort/deep/checkpoint/osnet_ain_x1_0_imagenet.pth'
MAX_DIST: 0.1 # 0.2 The matching threshold. Samples with larger distance are considered an invalid match
MAX_IOU_DISTANCE: 0.7 # 0.7 Gating threshold. Associations with cost larger than this value are disregarded.
MAX_AGE: 90 # 30 Maximum number of missed misses before a track is deleted
N_INIT: 3 # 3 Number of frames that a track remains in initialization phase
NN_BUDGET: 100 # 100 Maximum size of the appearance descriptors gallery
MIN_CONFIDENCE: 0.75
NMS_MAX_OVERLAP: 1.0
MOT16-02 Raw Sequence 下载完这个数据集后放在Yolov5_DeepSort_Pytorch的同级文件夹下。
parser.add_argument('--yolo_model', nargs='+', type=str, default='yolov5/weights/yolov5s.pt', help='model.pt path(s)')
parser.add_argument('--deep_sort_model', type=str, default='deep_sort/deep/checkpoint/osnet_ain_x1_0_imagenet.pth')
parser.add_argument('--source', type=str, default='MOT16-02-raw.mp4', help='source') # file/folder, 0 for webcam
在跑跟踪的track.py时,若要验证追踪的结果(txt和视频),需要设置保存TXT文本,最后添加:default=True
parser.add_argument('--show-vid', action='store_true', help='display tracking video results', default=True)
parser.add_argument('--save-vid', action='store_true', help='save video tracking results', default=True)
parser.add_argument('--save-txt', action='store_true', help='save MOT compliant results to *.txt', default=True)
在运行track.py时,提示缺少什么包就装什么包。
训练结束会在同级目录Yolov5_DeepSort_Pytorch下生成run和inference。
在runs\track\yolov5\weights\yolov5s_osnet_x1_0_imagenet3中会生成网络的txt文件和一个打好框的视频文件。
做到这的话,我们可以看到自己的视频中IDSW的现象还是很严重的。下面我们对网路检测的结果进行评价。
实现pycharm运行.sh文件——本地运行和打开服务器终端
就是在该文件下,下载我们的评价代码TrackEval和“正确答案”。
评价代码:/Yolov5_DeepSort_Pytorch/MOT16_eval/TrackEval
正确答案:/Yolov5_DeepSort_Pytorch/data.zip
将下载的答案data放入评价代码TrackEval同级目录下。
data目录如下:
1、不同的文件夹对应不同的数据集,感兴趣的小伙伴可以搜一下。
2、在data/gt/mot_challenge/下文件内容都是官方给出的数据,对视频中行人进行标定,可以理解为标准答案,不需要改动。
3、在data/trackers/mot_challenge/MOT16-train/data/下存放你跑MOT-16训练集视频得到的跟踪TXT文本。
传送门:【多目标追踪算法】多目标跟踪评价指标