代码开源!!行人检测与行人重识别结合 person search
0 前言
最近在做自己课题相关的小项目,行人检测与行人重识别进行结合进行场景图片进行特定行人的检索由于也比较着急,先利用现有的模型搭建了简单的demo,简单效果展示如下,速度大概在20FPS:
先是给定需要检索的行人:
在监控场景图片进行检索该行人:
还有视频的demo展示:
利用下面一张其他摄像头拍摄的特定行人图片在视频中进行搜人:
https://www.bilibili.com/video/av69353188/
由视频效果可以看到对于遮挡等情况效果还是非常好的,自己也试过单目标跟踪多目标跟踪,直接用效果都是比较差的。
1 行人检测部分
行人检测先是尝试使用之前的RFSong进行尝试,发现在这种监控场景下效果非常不好,可能是VOC数据集太小了,难以实现很好的泛化。因为这种监控场景在VOC数据集很少有类似的,因此使得训练的网络泛化很差,在监控场景以及一些密集行人场景都不太理想。为了实现更好的效果,需要在COCO等包含大量行人的数据集进行训练,这样网络才能“认识”这种场景下的行人。
这种监控场景目标往往也都是中小型的,因此感觉YOLO应该还是蛮合适的,而且YOLO也有提供COCO权重,我就直接先用YOLO来做了。行人检测YOLO代码主要采用下面这个:
https://github.com/ultralytics/yolov3github.com
自己对YOLO416 COCO权重在监控场景和行人密集情况都做了测试,效果也都还是不错的,因此先直接用,后面尝试进行一些改进,例如进行剪枝以及类似RFSong的设计尝试。
2 行人重识别
行人重识别部分是利用Bag of Tricks and A Strong ReID Baseline的开源代码基础上做的,我也非常喜欢这个工作,感觉还是很有帮助的,并且仅仅利用全局特征,没有那么多花哨的设计:
https://link.zhihu.com/?target=https%3A//github.com/michuanhaohao/reid-strong-baseline
https://zhuanlan.zhihu.com/p/61831669
由于需要在实际监控场景进行一些简单演示,并且自己也实在懒得去标注,所有比较关注的是跨域的性能,也就是泛化要很好才行。
论文中也有关于跨域(cross-domain)的一些实验,发现去掉随机擦除(REA)操作跨域性能会好很多。
因此为了实现更好的泛化性能,使得可以直接演示:
- 训练的时候去掉随机擦除操作,因为随机擦除可能引导网络学习更多背景相关信息了
- 多个数据集联合训练,这里我将Market1501数据集、CUHK03数据集和MSMT17数据集进行了联合训练,然后在没有进行训练的DukeMTMC数据集进行测试,看看跨域性能如何。
- 使用跨域比较好的IBN-Net,具体介绍可以看看下面这个,在跨域效果确实有一些提高:
量子位:汤晓鸥为CNN搓了一颗大力丸zhuanlan.zhihu.com
自己在上述联合数据集进行训练,然后在没有训过的Duke数据集进行跨域测试,然后对各个trick进行了消融实验对比:
在DukeMTMC数据集的测试集进行测试的效果rank1达到了71.9,mAP也有56.2,,说明跨域效果应该还是OK的,做个小展示应该问题不大。
3 行人检测 + 重识别
代码主要就是去掉了两个代码的训练部分,只保留推理相关的代码。query文件夹是存放待查询图片,命名格式与market1501保持一致,具体介绍可以看看下面这篇文章:
Person Re-identification数据集描述——Market-1501blog.fangchengjin.cn
data/samples文件夹下就是需要进行检索的图片,检索完成后,保存在output文件夹。
需要注意的是,行人检测与行人重识别如何更好的进行结合。reid使得行人检测可以存在多一些的误检,要求recall比较高,因为一些背景可以通过reid进行相似度比较从而排除掉。但是如过置信度阈值设的太低,会有很多的proposal要进入reid模型,降低模型的速度。因此,需要进行合理的设置,这里我就设置了conf-thres=0.1,nms-thres=0.4。
4 下一步方向
这个还只是个小demo,因此还是需要后面做很多改进工作。
1. 行人检测部分利用RFSong在COCO+VOC联合训练的权重进行检测,参考下面文章:。
https://zhuanlan.zhihu.com/p/47196727
https://zhuanlan.zhihu.com/p/36734511
2. 检测与跟踪的结合
SYUI:工程实践中,目标检测为何要加目标追踪?zhuanlan.zhihu.com
3. 对行人重识别模型进行剪枝、蒸馏,加快推理速度
总结
还是欢迎各位大佬交流指正,代码和权重文件先传到群文件了,后面稍微整理下放到github。
希望大家多多加群,一起交流进步,云深不知处-目标检测 763679865
代码链接:
https://github.com/songwsx/person_search_demo
加群交流: 云深不知处-目标检测 763679865
代码开源!!行人检测与行人重识别结合 person search相关推荐
- unity随机方向的代码_ECCV 2020 目前用于车辆重识别(vehicle reID)中最大的合成车辆数据集(代码开源)...
论文题目: Simulating Content Consistent Vehicle Datasets with Attribute Descent 论文地址: https://arxiv.org/ ...
- 【行人检测】行人检测综述
1. pipeline Proposal generation:滑窗,粒子窗(particle-window),对象性方法(objectness method),区域建议网络(region propo ...
- python行人检测_行人检测 基于 OpenCV 的人体检测
原文链接行人检测 基于 OpenCV 的人体检测 - 热分享hotdog29.com 行人检测 基于 OpenCV 的人体检测 我们都知道,无论性别,种族或种族如何,我们的身体都具有相同的基本结构. ...
- ECCV 2018 | Bi-box行人检测:‘行人遮挡’为几何?
极市平台是专业视觉算法平台,主要为开发者提供真实项目需求,视觉算法开发等服务,点击填表加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会 ...
- 信号检测与估计理论 pdf_CVPR2020|行人检测与重识算法推荐论文源码大盘点
本文收集了CVPR 2020 一些行人检测与人员重识别优秀论文,我们知道在视频监控相关领域这些技术方向可以得到很好得广泛应用. 行人检测及人群计数从内容来看主要解决行人与行人.行人与物体间的遮挡透视, ...
- CVPR 2021 论文大盘点-人员重识别篇
关注公众号,发现CV技术之美 本篇文章总结人员重识别相关论文,包含无监督人员重识别,基于视频.部分身体的行人重识别,可见光红外人员重识别,域泛化人员重识别,换装人员重识别,行人检索等等.共计 26篇. ...
- CVPR 2020 论文大盘点-行人检测与重识别篇
本文盘点CVPR 2020 所有行人检测(Pedestrian Detection)与人员重识别(Person Re-Identification,ReID)相关论文,在视频监控领域该方向技术应用广泛 ...
- 行人重识别的挑战与最新进展(35页PPT整理)
本文转载自知乎,作者为悉尼科技大学博士生郑哲东,已获作者授权转载. 链接:https://zhuanlan.zhihu.com/p/163255539 行人重识别近几年获得了在测试结果上的大幅提升,甚 ...
- 深度学习行人重识别ReID最新综述与展望
点击我爱计算机视觉标星,更快获取CVML新技术 今天 arXiv 新出论文 Deep Learning for Person Re-identification: A Survey and Outlo ...
最新文章
- with tf.Session(config=tf.ConfigProto(log_device_placement=True))
- plsql学习范例--使用utl_file包将查询结果输出到文件中
- 根据pid判断某个进程是否存在
- WebSocket使用案例
- Android 城市选择,热门城市,全部城市(美团、滴滴、淘宝)
- X++中对字符串进行操作的函数
- LINUX系统用户操作命令
- html中optition默认类型,射频微电子学概论.PDF
- 升职加薪,必不可少!Python刷题打怪,你要的LeetCode答案都在这里了!
- PBRT笔记(11)——光源
- springboot test
- 深入浅出 HTTP协议
- 内存核心频率、工作频率,等效频率、总线频率
- 3DMAX场景渲染失败怎么办?
- VoIP的落地通信模型和要考虑几个大的方面问题及基本概念和交互流程整理
- D. Three Religions
- ubuntu20.04 RTX2060||nvidia显卡驱动|cuda|cudnn|pytorch
- 对I2C总线时序的一点理解以及ACK和NACK(NAK)
- 如何使用TensorRT加速深度学习推理
- elf section类型_ELF格式解析库之基本数据类型
热门文章
- SDK 下载错误 , simply set anenvironment variable JAVA_ HOME to point toit.
- Hadoop pig进阶语法
- 【算法图解】 之 [贪婪算法(贪心算法)] 详解
- oracle使用tmpfs,在Linux上使用文件系统tmpfs的技巧
- quarkus实战之一:准备工作
- java获取组合框值_在Java swing中获得组合框值
- 永磁同步电机带电流补偿反馈的矢量控制
- MATLAB如何画两个不同内切圆
- 期末作业成品代码——红色的婚庆(18页) HTML5网页设计成品_学生DW静态网页设计代做_web课程设计网页制作
- 实验6 单个交换机虚拟局域网