)
该项目利用yolov8reid实现的行人重识别功能实现特定人员查找。应用场景可根据行人的穿着、体貌等特征在视频中进行检索可以把这个人在各个不同摄像头出现时检测出来。可应用于犯罪嫌疑人检索、寻找走失儿童等。2026.11更新1.新增网页版界面支持用户注册、权限管理2.支持日志管理、视频上传、检测结果下载等可试用。支持功能1.reid训练2.人员标注3.Reid(行人重识别)4.GUI界面(已更新)环境说明(项目中有requirements.txt)ipython8.12.3loguru0.7.2matplotlib3.7.5mss7.0.1numpy1.22.4opencv-python4.4.0.44pandas2.0.3Pillow9.5.0protobuf5.26.1pytorch-ignite0.4.11PyYAML6.0.1requests2.31.0scikit-learn1.3.2scipy1.10.1seaborn0.13.2six1.16.0tensorboardX2.6.2.2torch1.10.0cu102torchvision0.11.0cu102tqdm4.66.1transformers4.27.0ultralytics8.0.228yacs0.1.8Reid训练项目支持多网络如resnet50, resnet50_ibn_a, se_resnext50等主干网络。下载代码后输入python tools/train.py --config_file configs/softmax_triplet.yml其中softmax_triple.yml是配置文件(里面包含了训练epochs学习率优化器等参数配置)。中断后的继续训练或微调训练如果训练意外终止或者希望继续训练可以适用本功能。只需要传入--resume参数即可python tools/train.py --weights 【your weight path】 --resume注意在训练期间会保存两种格式一个是mAP_xx_model_model_name.pth,一个是mAP_xx_optimizer_model_name.pth。后者保存的是训练期间优化器等参数。【不建议修改保存的名字因为训练期间会根据权重名字自动加载优化器权重】。冻结训练新增冻结训练输入参数freeze 并指定freeze_epoch即可可用于加快训练或者微调训练如下python tools/train.py --weights 【your weight path】 --freeze --freeze_epoch 20tensorboard更新内容支持训练曲线可视化√hard sample可视化√训练可选参数 参数说明--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.--resume:继续训练--freeze:冻结训练--freeze_epoch:表示前多少个epoch为冻结训练配置文件的修改(注意项目中有两个配置文件一个是config下的defaults.py配置文件一个是configs下的yml配置文件一般配置yml文件即可当两个配置文件参数名相同的时候以yml文件为主这个需要注意一下)configs文件:以softmax_triplet.yml为例SOLVER:OPTIMIZER_NAME: Adam # 优化器MAX_EPOCHS: 120 # 总epochsBASE_LR: 0.00035IMS_PER_BATCH: 8 # batchCHECKPOINT_PERIOD: 1 # 权重保存周期LOG_PERIOD: 1 # 日志周期EVAL_PERIOD: 1 # 测试周期测mapTEST:IMS_PER_BATCH: 4 # test batchRE_RANKING: noWEIGHT: path # test weight pathFEAT_NORM: yesOUTPUT_DIR: /logs # model save path Market1501 loadedDataset statistics:----------------------------------------subset | # ids | # images | # cameras----------------------------------------train | 751 | 12936 | 6query | 750 | 3368 | 6gallery | 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-052023-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-052023-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下。人员标注可将视频中嫌疑人(特定人员)可以运行Reid_Search/get_query.py按住鼠标左键不放拖动进行人员款选标注标注后的人员会自动保存在query文件中(命名格式为markt1501)按空格键继续播放视频。也可以直接将图像放在query文件中但名字也需要按mark1501命名。人员查找(yolov8_Reid)python search.py --weights yolov8s.pt --source demo.mp4 --dist_thres 1.如果需要检测视频或者多视频(跨视频检测)需要指定source路径。效果如下yolov8_reid参数说明--weights: yolov8权重路径--source: video/file/ path--imgsz: 输入图像大小默认640--dist_thres:reid对比的距离阈值(小于该阈值判断为同一个人)--save:保存视频图像检测后的视频会保存在runs/detect/下训练、检测、GUI界面代码有偿使用。wechat:y24065939sGUI界面Qt界面网页端界面支持试用。检测效果如下左侧工具栏可上传模板图像和待检测视频右侧显示检测结果(可批量检测)支持视频播放、可倍速、下载代码https://github.com/YINYIPENG-EN/yolov8_reid.git权重下载检测将ReID_resnet50_ibn_a.pth放在:Reid_Search/weights文件下yolov8s.pt放Reid_Search下链接百度网盘 请输入提取码 提取码yypn相关参考资料涉及到的相关资料如下参考的reid论文Bag of Tricks and A Strong Baseline for Deep Person Re-identification(这应该是一篇19年的论文可能稍微比较早了但很有参考价值)Reid代码详解Reid strong baseline 代码详解Reid之网络的定义Reid之网络的定义代码详解Reid训练代码之数据集处理Reid训练代码之数据集处理Reid损失函数理论学习Reid损失函数理论学习Reid度量学习Triplet loss:Reid度量学习之Triplet lossyolov5_行人重识别yolov5_行人重识别yolov5_车辆重识别yolov5 车辆重识别yolov7_行人重识别yolov7 行人重识别