首页IT科技yolov5行人识别(yolov5_reid【附代码,行人重识别,可做跨视频人员检测】)

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

时间2025-05-02 21:07:18分类IT科技浏览4785
导读:该项目利用yolov5+reid实现的行人重识别功能,可做跨视频人员检测。...

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

应用场景:

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

支持功能:

        1.reid训练

        2.人员标注

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

环境说明:

matplotlib>=3.2.2

numpy>=1.18.5

opencv-python>=4.1.2

Pillow>=7.1.2

PyYAML>=5.3.1

requests>=2.23.0

scipy>=1.4.1

torch>=1.7.0

torchvision>=0.8.1

tqdm>=4.41.0

目录

Reid训练

人员标注

 人员查找(yolov5+Reid)

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

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
stp 命令(stty命令 – 修改终端命令行的相关设置) 提高网站的排名(如何提高网站的排名)