Are you sure you want to delete this task? Once this task is deleted, it cannot be recovered.
changshun d87d22ae97 | 2 years ago | |
---|---|---|
scripts | 2 years ago | |
src | 2 years ago | |
README.md | 2 years ago | |
README_CN.md | 2 years ago | |
deep_sort_app.py | 2 years ago | |
evaluate_motchallenge.py | 2 years ago | |
export.py | 2 years ago | |
generate_videos.py | 2 years ago | |
generater-detection.py | 2 years ago | |
prepare.py | 2 years ago | |
show_results.py | 2 years ago |
DeepSort是2017年提出的多目标跟踪算方法。该网络在MOT16获得冠军,不仅提升了精度,而且速度比之前快20倍。
论文: Nicolai Wojke, Alex Bewley, Dietrich Paulus. "SIMPLE ONLINE AND REALTIME TRACKING WITH A DEEP ASSOCIATION METRIC". Presented at ICIP 2016.
DeepSort由一个特征提取器、一个卡尔曼滤波和一个匈牙利算法组成。特征提取器用于提取框中人物特征信息,卡尔曼滤波根据上一帧信息预测当前帧人物位置,匈牙利算法用于匹配预测信息与检测到的人物位置信息。
使用的数据集:MOT16、Market-1501
MOT16:
Market-1501:
通过官方网站安装MindSpore后,您可以按照如下步骤进行训练和评估:
# 进入脚本目录,预处理数据集(Market-1501)
python prepare.py
# 进入脚本目录,训练DeepSort特征提取器
python deep_sort/deep/train.py --run_modelarts=False --run_distribute=True --data_url="" --train_url=""
# 进入脚本目录,提取det信息(使用作者提供的检测框信息)
python process-npy.py
# 进入脚本目录,提取detections信息
python generater_detection.py --run_distribute=False --run_distribute=True --data_url="" --train_url="" --det_url="" --ckpt_url="" --model_name=""
# 进入脚本目录,生成跟踪信息
python evaluate_motchallenge.py --run_distribute=False --run_distribute=True --data_url="" --train_url="" --detection_url=""
#Ascend多卡训练
bash scripts/run_distribute_train.sh train_code_path RANK_TABLE_FILE DATA_PATH
Ascend训练:生成RANK_TABLE_FILE
├── DeepSort
├── scripts
│ ├──run_distribute_train.sh // 在Ascend中多卡训练
├── src //源码
│ │ ├── application_util
│ │ │ ├──image_viewer.py
│ │ │ ├──preprocessing.py
│ │ │ ├──visualization.py
│ │ ├──deep
│ │ │ ├──feature_extractor.py //提取目标框中人物特征信息
│ │ │ ├──original_model.py //特征提取器模型
│ │ │ ├──train.py //训练网络模型
│ │ ├──sort
│ │ │ ├──detection.py
│ │ │ ├──iou_matching.py //预测信息与真实框匹配
│ │ │ ├──kalman_filter.py //卡尔曼滤波,预测跟踪框信息
│ │ │ ├──linear_assignment.py
│ │ │ ├──nn_matching.py //框匹配
│ │ │ ├──track.py //跟踪器
│ │ │ ├──tracker.py //跟踪器
├── deep_sort_app.py //目标跟踪
├── evaluate_motchallenge.py //生成跟踪结果信息
├── generate_videos.py //根据跟踪结果生成跟踪视频
├── generater-detection.py //生成detection信息
├── prepare.py //处理训练数据集
├── process-npy.py //提取帧序列人物坐标和置信度
├── show_results.py //展示跟踪结果
├── README.md // DeepSort相关说明
train.py generater_detection.py evaluate_motchallenge.py 中主要参数如下:
--data_url: 到训练和提取信息数据集的绝对完整路径
--train_url: 输出文件路径。
--epoch: 总训练轮次
--batch_size: 训练批次大小
--device_targe: 实现代码的设备。值为'Ascend'
--ckpt_url: 训练后保存的检查点文件的绝对完整路径
--model_name: 模型文件名称
--det_url: 视频帧序列人物信息文件路径
--detection_url: 人物坐标信息、置信度以及特征信息文件路径
--run_distribute: 多卡运行
--run_modelarts: ModelArts上运行
Ascend处理器环境运行
python deep_sort/deep/train.py --run_modelarts=False --run_distribute=False --data_url="" --train_url=""
# 或进入脚本目录,执行脚本
bash scripts/run_distribute_train.sh train_code_path RANK_TABLE_FILE DATA_PATH
经过训练后,损失值如下:
# grep "loss is " log
epoch: 1 step: 3984, loss is 6.4320717
epoch: 1 step: 3984, loss is 6.414733
epoch: 1 step: 3984, loss is 6.4306755
epoch: 1 step: 3984, loss is 6.4387856
epoch: 1 step: 3984, loss is 6.463995
...
epoch: 2 step: 3984, loss is 6.436552
epoch: 2 step: 3984, loss is 6.408932
epoch: 2 step: 3984, loss is 6.4517527
epoch: 2 step: 3984, loss is 6.448922
epoch: 2 step: 3984, loss is 6.4611588
...
模型检查点保存在当前目录下。
在运行以下命令之前,请检查用于评估的检查点路径。
Ascend处理器环境运行
# 进入脚本目录,提取det信息(使用作者提供的检测框信息)
python process-npy.py
# 进入脚本目录,提取detections信息
python generater_detection.py --run_distribute False --run_distribute True --data_url "" --train_url "" --det_url "" --ckpt_url "" --model_name ""
# 进入脚本目录,生成跟踪信息
python evaluate_motchallenge.py --run_distribute=False --run_distribute=True --data_url="" --train_url="" --detection_url=""
# 生成跟踪结果
python eval_motchallenge.py ----run_distribute=False --run_distribute=True --data_url="" --train_url="" --result_url=""
说明:脚本中引用头文件可能存在一些问题,自行修改头文件路径即可
#测量精度
python motmetrics/apps/eval_motchallenge.py --groundtruths="" --tests=""
测试数据集的准确率如下:
数据 | MOTA | MOTP | MT | ML | IDs | FM | FP | FN |
---|---|---|---|---|---|---|---|---|
MOT16-02 | 29.0% | 0.209 | 11 | 11 | 157 | 235 | 4189 | 8316 |
MOT16-04 | 58.7% | 0.168 | 42 | 15 | 60 | 243 | 6201 | 13360 |
MOT16-05 | 51.7% | 0.214 | 27 | 27 | 66 | 108 | 613 | 2615 |
MOT16-09 | 64.3% | 0.162 | 12 | 1 | 33 | 60 | 317 | 1529 |
MOT16-10 | 49.2% | 0.228 | 25 | 1 | 205 | 298 | 3126 | 2923 |
MOT16-11 | 65.9% | 0.153 | 30 | 9 | 53 | 100 | 913 | 2162 |
MOT16-13 | 45.0% | 0.237 | 62 | 7 | 284 | 327 | 3740 | 2269 |
overall | 51.9% | 0.189 | 209 | 71 | 858 | 1371 | 19099 | 33174 |
参数 | ModelArts |
---|---|
资源 | Ascend 910;CPU 2.60GHz, 192核;内存:755G |
上传日期 | 2021-04-26 |
MindSpore版本 | 1.1.1 |
数据集 | MOT16 Market-1501 |
训练参数 | epoch=10000, step=191, batch_size=8, lr=0.2 |
优化器 | SGD |
损失函数 | SoftmaxCrossEntropyWithLogits |
损失 | 0.0016 |
速度 | 0.019毫秒/步 |
总时间 | 10分钟 |
微调检查点 | 大约40M (.ckpt文件) |
脚本 | [DeepSort脚本] |
train.py中设置了随机种子。
请浏览官网主页。
Dear OpenI User
Thank you for your continuous support to the Openl Qizhi Community AI Collaboration Platform. In order to protect your usage rights and ensure network security, we updated the Openl Qizhi Community AI Collaboration Platform Usage Agreement in January 2024. The updated agreement specifies that users are prohibited from using intranet penetration tools. After you click "Agree and continue", you can continue to use our services. Thank you for your cooperation and understanding.
For more agreement content, please refer to the《Openl Qizhi Community AI Collaboration Platform Usage Agreement》