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

news2024/11/27 11:49:30

本项目使用Yolov7+Reid实现的行人重识别功能,可做跨视频人员检测。

应用场景:

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


支持功能:

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

pytorch-ignite=0.4.11


Reid训练

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

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

准备工作

代码准备

 GitHub - YINYIPENG-EN/yolov7_reid: 使用yolov7+reid实现行人重识别,可做陌生人检索

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

数据集准备

将Markt1501数据集放项目(yolov7_reid)的在data下:

权重准备

权重链接:

链接:百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固,支持教育网加速,支持手机端。注册使用百度网盘即可享受免费存储空间icon-default.png?t=N7T8https://pan.baidu.com/s/1QYvFE6rDSmxNl4VBNBar-A

提取码:yypn

r50_ibn_2.pth放在yolov7_reid/weights

 训练

开发不易,yolov7 reid中的核心训练代码部分为有偿提供。【拒绝讲价】可扫描文末的二维码添加

有偿训练代码有两种:含tensorboard与不含tensorboard(价格不一样)

python tools/train.py --config_file configs/softmax_triplet.yml

即可开启训练:

=> 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下(tensorboard也会存在这里)。

测试

该脚本为针对训练后的模型单独获得测试结果,例如mAP、Rank等指标。

python tools/test.py --weights weights/ReID_resnet50_ibn_a.pth

测试结果如下:

Validation Results
mAP: 92.0%
CMC curve, Rank-1  :97.2%
CMC curve, Rank-5  :99.1%
CMC curve, Rank-10 :99.5%


行人重识别

链接:百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固,支持教育网加速,支持手机端。注册使用百度网盘即可享受免费存储空间icon-default.png?t=N7T8https://pan.baidu.com/s/1QYvFE6rDSmxNl4VBNBar-A

提取码:yypn

检测:将 ReID_resnet50_ibn_a.pth放在👂person_search/weights文件下,yolov7.ptperson_search

该项目可用于做reid识别,可用于做跨视频人员识别

reid网络采用resnet50_ibn_a(权重需要和defaults.py中的MODEL.NAME对应),支持se_resnext50网络。

该项目没有将yolov7训练加入,只是将检测功能和reid进行了整理。

person_search下只进行检测,不进行reid的训练,reid的训练在yolov7_reid中。

从视频中获取陌生人(待检测人员)图像

python get_query.py

可从弹出的视频中利用鼠标框选待检测的人员(陌生人员)。

操作方法:

运行程序后用鼠标左键从目标左上角进行框选,按“空格”键继续播放视频(会自动把框选的图像进行保存)

该人员图像会保存在query文件夹中,默认命名格式为markt1501

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

人员检测

参数说明:

--weights: yolov7权重路径

--source: video/file/ path

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

--conf_thres:置信度阈值

--iou_thres:iou阈值

--classes:过滤的类

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

--save_res:保存视频图像

python search.py --weights yolov7.pt --source demo.mp4 --dist_thres 1.5

 检测后的视频会保存在runs/detect/下

检测效果如下:

GUI界面

 GUI部分未开源,该部分为有偿提供

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1558457.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python API(happybase)操作Hbase案例

一、Windows下安装Python库:happybase pip install happybase -i https://pypi.tuna.tsinghua.edu.cn/simple 二、 开启HBase的Thrift服务 想要使用Python API连接HBase,需要开启HBase的Thrift服务。所以,在Linux服务器上,执行如…

scikit learn数据预处理学习笔记

数据集及基本操作 1)数据集的组成 数据集由特征(feature)与标签(label)构成。 特征是输入数据。 什么是特征(Features): 机器学习中输入数据,被称为特征。通常特征不止1个,可以用 n 维向量表示n个特征。 Features 数…

设备树语法

设备树语法 1 Devicetree格式1.1 DTS文件格式1.2 node格式1.3 properties格式 2 dts文件包好desi文件3 常用的 属性 properties3.1 #address-cells、#size-cells3.2 compatible3.3 model3.4 status3.5 reg(设备不同reg属性的含义就不同)3.6 name、device…

链式前向星解析

树形DP涉及到图存储,先复习一下链式前向星存储图,便于理解上篇的树形DP。对于图数据结构的存储,我们除了采用邻接矩阵(消耗空间,不常用)、邻接表,还有一种方法就是链式前向星。 链式前向星存储图…

数据结构——线性表(一)

线性表,顾名思义,是具有像线一样的性质的表。如同学生们在操场上排队,一个跟着一个排队,有一个打头,有一个收尾,在其中的学生都知道前一个是谁,后一个是谁,这样就像一根线将他们都串…

[HNCTF 2022 WEEK2]来解个方程?

标准的Z3题,可以拿来当模版题 题目逻辑很简单 直接看check from z3 import * # 初始化求解器 s Solver() # 定义6个未知数 n 24 x [Int(s str(i)) for i in range(0,24)] s.add(245 * x[6] 395 * x[5 ] 3541 * x[4 ] 2051 * x[3 ] 3201 * x[2 ] 1345 * x[7 ] 8…

中制交通安全统筹闪耀资本市场,成功上市引领行业新篇章

3月30日上午,随着上市钟声的敲响,中制(海南)交通安全统筹服务有限公司(股票代码:HK 31598)在香港股权交易展示中心挂牌上市,中制交通安全统筹董事长熊辉、联合创始人兼CEO张国伟、董事石杰等公司高管、股东、客户、合作伙伴出席挂牌仪式,共同见证敲钟上市,这也使中制交通安全统…

PonyAi Planning-横纵向轨迹规划

PonyAi Planning-横纵向轨迹规划 轨迹规划的探索和挑战 轨迹规划的概念安全舒适两不误:探讨优化算法在规划控制中的应用 轨迹规划的概念 决策 横向规划 纵向规划 优化算法在规划(Planning)中的应用 附赠自动驾驶学习资料和量产经验…

PP-YOLOE: An evolved version of YOLO

摘要 我们在之前 PP-YOLOv2 的基础上进行了优化,使用 无锚 范式,更强大的主干和颈部配备了 CSPRepResStage 。 ET-head 和动态标签分配算法 TAL 。 1 、介绍 受 YOLOX 的启发,我们进一步优化了之前的工作 PP-YOLOv2 。 PP-YOLOv2 是一款高…

使用hping3网络工具构造TCP/IP数据包和进行DDos攻击

1 概述 hping3是一个强大的命令行工具,用于生成、发送和解析TCP/IP协议的数据包。它是开源的网络安全工具,由Salvatore Sanfilippo开发,主要应用于网络审计、安全测试和故障排查等领域。hping3不仅可以作为普通的网络连通性检测工具&#xf…

深入理解数据结构(2):顺序表和链表详解

文章主题:顺序表和链表详解🌱所属专栏:深入理解数据结构📘作者简介:更新有关深入理解数据结构知识的博主一枚,记录分享自己对数据结构的深入解读。😄个人主页:[₽]的个人主页&#x…

数据结构——lesson12排序之归并排序

💞💞 前言 hello hello~ ,这里是大耳朵土土垚~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页&#x…

揭秘五力模型:轻松掌控企业竞争命脉,决策不再迷茫!

五力分析模型又成为波特五力模型是由著名的管理学者迈克尔波特(Michael Porter)在20世纪80年代初提出的一种理论框架,它对企业营销中的战略制定产生了全球性的深远影响。这一模型被广泛应用于企业竞争战略的分析,可以帮助企业有效地分析企业在营销环境中…

Java实验报告2

一、实验目的 本实验为Java课程的第二次实验,其主要目的如下: 理解继承和多态的概念; 掌握域和方法在继承中的特点; 掌握构造函数的继承和重载; 掌握this和super的用法; 二、实验原理 ​ 继承性是面…

上市公司-动态能力数据集(2008-2022年)

01、数据介绍 上市公司动态能力是指企业在不断变化的外部环境中,通过整合、创建和重构内外部资源,寻求和利用机会的能力。这种能力有助于企业重新构建、调配和使用其核心竞争力,从而保持与时俱进,应对市场挑战。具体来说&#xf…

Chrome DevTools中的骚操作

今天来分享 Chrome DevTools 中一些非常实用的功能和调试技巧! 保留日志 当我们刷新完页面之后,通常控制台的 Console 面板就会被清空。如果想保留控制台的日志,就可以在设置中勾选 Preserve log 选项以保留控制台中的日志。 代码覆盖率 我…

快讯!TiDB v8 发版!超硬核 v8 引擎!

TiDB 是 PingCAP 公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP) 的融合型分布式数据库产品。 具备水平扩容或者缩容、金融级高可用、实时 HTAP、云原生的分布式数…

【Docker】Windows中打包dockerfile镜像导入到Linux

【Docker】Windows中打包dockerfile镜像导入到Linux 大家好 我是寸铁👊 总结了一篇【Docker】Windows中打包dockerfile镜像导入到Linux✨ 喜欢的小伙伴可以点点关注 💝 前言 今天遇到一个新需求,如何将Windows中打包好的dockerfile镜像给迁移…

【Linux】进程程序替换 做一个简易的shell

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 文章目录 前言 进程程序替换 替换原理 先看代码和现象 替换函数 第一个execl(): 第二个execv(): 第三个execvp(): 第四个execvpe()&a…

android WMS服务

android WMS服务 WMS的定义 窗口的分类 WMS的启动 WindowManager Activity、Window、DecorView、ViewRootImpl 之间的关系 WindowToken WMS的定义 WMS是WindowManagerService的简称,它是android系统的核心服务之一,它在android的显示功能中扮演着…