[深度学习] 搭建行人重识别系统心得
2023-04-18 12:37:32 时间
普通的行人reid,分为特征提取和向量检索两大部分。其他一些商用技术是普通项目接触不到,大概用这两部分,再搜集数据,换换检测模型,提高reid模型就可以了。
1 特征提取
对于特征提取,通常步骤如下:
- 目标检测
目标检测提取图像中的行人,一般会使用输入图像尺寸较大的yolo模型。 - 目标跟踪
仅仅使用目标检测往往会出现目标检测框不稳定的情况。所以会利用目标跟踪算法,跟踪行人以稳定行人识别结果。现有常用的reid目标跟踪算法有deepsort,bytetrack,oc-sort。这些目标跟踪算法分为两种情况:- deepsort:这类算法会根据目标检测模型的行人检测框和其对应的行人图像特征来实现行人跟踪,这类算法会有一定的耗时而且需要计算对应的行人图像特征。
- bytetrack/oc-sort:这两种算法直接根据目标检测模型的行人检测框来完成行人的多目标跟踪,所以对目标检测算法的精度要求较高。使用这类算法,再送入向量检索之前还需要提取行人特征。
- 规则过滤
目标跟踪后会通过一些规则过滤行人,或者采用多镜头行人融合技术降低误报率。这一部分可有可无,看各家的技术。
目标检测很耗时,通过会每隔几帧进行检测。没有目标检测的中间帧,则使用上一帧的结果进行目标跟踪即可。行人特征提取开源的项目常用的demo有:
-
PP-Human,这个项目提供reid的一键式特征提取方案,缺点是paddle的东西不稳定,而且代码修改难度很大。
-
Yolov5-Deepsort-Fastreid,这个项目通过yolov5识别行人,deepsort基于fastreid特征提取结果进行目标跟踪。这个项目较老,可以参考该项目搭建自己的特征提取项目。
-
ByteTrack、ByteTrack_ReID、OC-SORT。如果追求检测速度,可以看看这三个项目。
2 向量检索
向量检索会涉及到很多东西,出库入库检索之类的。底库特别大会严重影响检索性能。不要自己写检索系统,用成熟的向量检索系统非常好,一方面可以方便管理,另外一方面可以加快检索速度。推荐两个:
- milvus,milvus是一个很完备的向量搜索引擎,能无脑搭建向量检索库,支持分布式处理,而且检索速度极快。缺点是,东西太多过于臃肿,搭建也不容易。可以照着milvus官方提供的以图搜图系统案例,搭建自己的行人向量检索系统。
- faiss,faiss是一个底层的向量检索库,提供一些基础的功能,但是得费点时间搭建向量检索库。不会用的话可以看看向量检索库Faiss使用指北。
向量检索库涉及很多内容,多看看官方文档。无脑就用milvus,想自己弄或者要求不多就用faiss。
相关文章
- Golang中的map类型都在哪些场景下使用
- 使用frp配置内网穿透访问(超详细)
- 从 Codecity 到元宇宙:元宇宙的软件形态会怎样的?
- 今天带大家认识一下Golang中的数组类型
- Pandas.set_option()函数的5种技巧,学完惊呆了!
- 为了保护CSDN版权,我用一行代码就能给图片加水印!
- 干货 | DC1靶机渗透实战攻略
- 5行代码带你爬取 “2021福布斯排行榜“,看看中国都有哪些人?
- 架构师们,请收好这份多云架构指南
- Pandas与openpyxl库的超强结合,再见,Excel!
- 全球37%手机或因芯片漏洞遭攻击、黑客利用微软漏洞窃取登录凭据|全球网络安全热点
- 基于Bokeh库,手把手教你制作子弹图和瀑布图!
- 保姆级BurpSuite"爆破"模块使用指南
- 10分钟学会网站搭建,太有用了!
- 原来酷炫的大屏,用Excel就能做
- Nmap为什么是扫描探测神器?凭什么这么牛!
- 商品新零售行业——客户价值分析驾驶舱(附详细操作)
- 为什么 Go 是我最喜欢的编程语言(2017)翻译
- 一个新手也能玩的在线基础练习平台!
- 必会算法:反转链表Ⅰ