0


yolov5_reid【附代码,行人重识别,可做跨视频人员检测】

该项目利用yolov5+reid实现的行人重识别功能,可做跨视频人员检测。

应用场景:

可根据行人的穿着、体貌等特征在视频中进行检索,可以把这个人在各个不同摄像头出现时检测出来。可应用于犯罪嫌疑人检索、寻找走失儿童等。


支持功能:

    1.reid训练

    2.人员标注

    3.人员查找(可做**跨视频人员检测**)

Reid训练

ps:Reid理论部分参考:Reid理论视频参考课程

项目支持多网络,如resnet50, resnet50_ibn_a, se_resnext50等主干网络。

下载代码后输入:

python tools/train.py --config_file configs/softmax_triplet.yml MODEL.DEVICE_ID "('0')" DATASETS.NAMES "('market1501')" DATASETS.ROOT_DIR "(r'./data')

其中softmax_triple.yml是配置文件(里面包含了训练epochs,学习率,优化器等参数配置)。

训练可选参数

参数说明:

--config_file: 配置文件路径,默认configs/softmax_triplet.yml

--weights: pretrained weight path

--neck: If train with BNNeck, options: bnneck or no

--test_neck: BNNeck to be used for test, before or after BNNneck options: before or after

--model_name: Name of backbone.

--pretrain_choice: Imagenet

--IF_WITH_CENTER: us center loss, True or False.

配置文件的修改:

(注意:项目中有两个配置文件,一个是config下的defaults.py配置文件,一个是configs下的yml配置文件,一般配置yml文件即可,当两个配置文件参数名相同的时候以yml文件为主,这个需要注意一下)

configs文件:

softmax_triplet.yml为例

SOLVER:
OPTIMIZER_NAME: 'Adam' # 优化器
MAX_EPOCHS: 120 # 总epochs
BASE_LR: 0.00035
** IMS_PER_BATCH: 8 # batch**

** CHECKPOINT_PERIOD: 1 # 权重保存周期
LOG_PERIOD: 1 # 日志周期
EVAL_PERIOD: 1 # 测试周期,测map**
TEST:
IMS_PER_BATCH: 4 # test batch
RE_RANKING: 'no'
WEIGHT: "path" # test weight path
FEAT_NORM: 'yes'
OUTPUT_DIR: "/logs" # model save path

=> Market1501 loaded
Dataset statistics:


subset | # ids | # images | # cameras

train | 751 | 12936 | 6
query | 750 | 3368 | 6
gallery | 751 | 15913 | 6


Loading pretrained ImageNet model......

2023-02-24 21:08:22.121 | INFO | engine.trainer:log_training_loss:194 - Epoch[1] Iteration[19/1484] Loss: 9.194, Acc: 0.002, Base Lr: 3.82e-05
2023-02-24 21:08:22.315 | INFO | engine.trainer:log_training_loss:194 - Epoch[1] Iteration[20/1484] Loss: 9.156, Acc: 0.002, Base Lr: 3.82e-05
2023-02-24 21:08:22.537 | INFO | engine.trainer:log_training_loss:194 - Epoch[1] Iteration[21/1484] Loss: 9.119, Acc: 0.002, Base Lr: 3.82e-05

训练好的权重会自动保存在logs下。


人员标注

可将视频中嫌疑人(特定人员),可以运行person_search/get_query.py,按住鼠标左键不放,拖动进行人员款选标注,标注后的人员会自动保存在query文件中(命名格式为markt1501),按空格键继续播放视频。

也可以直接将图像放在query文件中,但名字也需要按mark1501命名。

人员查找(yolov5+Reid)

参数说明:

--weights: yolov5权重路径

--source: video/file/ path

--data: data/coco128.yaml

--imgsz: 输入图像大小,默认(640,640)

--conf_thres:置信度阈值

--iou_thres:iou阈值

--classes:过滤的类

--half:半精度推理

--dist_thres:reid对比的距离阈值(小于该阈值判断为同一个人)

--save_res:保存视频图像

python search.py --weights yolov5s.pt --source 0 --dist_thres 1.5

如果需要检测视频或者多视频(跨视频检测),需要指定source路径。

代码:

git clone https://github.com/YINYIPENG-EN/yolov5_reid.git

权重下载:

检测:ReID_resnet50_ibn_a.pth放在👂person_search/weights文件下,yolov5s.pt放person_search

训练:r50_ibn_2.pth,resnet50-19c8e357.pth放在yolov5_reid/weights下

注意:训练和检测(person_search)是两个独立的项目!!

链接:百度网盘 请输入提取码 提取码:yypn


本文转载自: https://blog.csdn.net/z240626191s/article/details/129221510
版权归原作者 爱吃肉的鹏 所有, 如有侵权,请联系我们删除。

“yolov5_reid【附代码,行人重识别,可做跨视频人员检测】”的评论:

还没有评论