行人重识别论文阅读8-FastReID京东快速行人重识别
7.22 京东 Fast-ReID论文阅读
1. 解决的问题
FastReID是京东AI研究中广泛使用的软件系统,有高度模块化和可扩展的设计,有好的可管理的系统配置和工程部署。
FastReID是统一实例重标识库,允许其他人员将其他代码块插入到ReID系统,从而进一步快速的将研究思想转移到生产模型中。提供person reid,partial person reid,vehicle reid。
2. 模型概述
FastReID的亮点:
模块化和可扩展设计:可以快速实现他们的想法,无需重写数十万行代码。
可管理的系统配置:FastReID支持可选组件,主干头部聚合层损失函数训练策略。
丰富的评估体系:ROC和mINP等,以往都是用CMC评价指标。
工程部署:实现知识蒸馏模块已获得更精确更高效的轻量级模型。
提供最先进的与训练模型:容易扩展到一般的对象检索和人脸识别。
3.实验结果
3.1 Person Re-identification
Datasets:Market1501,DuKeMTMC,MSMT17.
FastReID Setting:翻转随机擦除和自动增强对训练图像进行处理。主干:Non-local IBN-ResNet101,Head:gem pooling,Aggregation:bnneck。Harder loss function。
ROC曲线
实验结果:
3.2 Cross-domain Person Re-identification
问题定义:训练集和数据集不是同一个环境。
设置:提出跨域方法FastReIDMLT,采用混合标签传输,通过多粒度策略学习伪标签。用源域数据集训练模型,然后用目标域数据集的伪标签对预先训练的模型进行微调。主干:ResNet50,gem pooling,bnneck。使用hard triplet loss。
结果:
3.3 Partial Person Re-identification
实验设置:结果:
3.4 Vehicle Re-identification
数据集:VeRi,VehicleID,VERI-Wild。
4. 模型详述
整个模型由四个部分组成:图像预处理,主干,聚合和头部。
4.1 Image Pre-processing
将图像大小调整到固定大小的图像。Images can be packaged into batched and then input into the network
。使用图像增强(随机擦除,随机补片和剪切等)。在图像中随机选择一个矩形区域,用随机值、另一个图像补片和零值擦除其像素,使模型有效降低过拟合风险,对遮挡具有鲁棒性。自动扩充是基于自动技术实现有效的数据扩充,以提高特征表示的鲁棒性。它使用自动搜索算法来寻找多种图像处理功能(如平移、旋转和剪切)的融合策略。
4.2 Backbone
将图像转化为特征图,使用三种主干网络:ResNet,ResNeXt,ResNeSt。同时还将关注非局部模块和实例BN层。
4.3 Aggregation
聚合层的作用是将主干生成的特征图聚合为全局特征图。使用四种聚合方法:最大池化,平均池化,GeM池化,注意力池化。池化层输入是:X∈RW×H×C\mathbf X \in \mathbb R^{W \times H \times C}X∈RW×H×C。以f∈R1×1×C\mathbf f \in \mathbb R^{1 \times 1 \times C}f∈R1×1×C。全局特征向量f=[f1,...,fc,...,fC]\mathbf f = [f_1,...,f_c,...,f_C]f=[f1,...,fc,...,fC]。
MaxPooling:fc=maxx∈XcxAvgPooling:fc=1∣Xc∣∑x∈XcxGeMPooling:fc=(1∣Xc∣∑x∈Xcxα)1αAttentionPooling:fc=1∣Xc∗Wc∣∑x∈Xc,w∈Wcw∗xMax Pooling: f_c = \max_{x \in \mathbf X_c} x \\ Avg Pooling: f_c = \frac 1 {|\mathbf X_c|} \sum_{x \in \mathbf X_c} x \\ GeM Pooling: f_c = (\frac 1 {|\mathbf X_c|} \sum_{x \in \mathbf X_c} x^{\alpha})^{\frac 1 \alpha} \\ Attention Pooling: f_c = \frac 1 {|\mathbf X_c* \mathbf W_c|}\sum_{x \in \mathbf X_c,w \in \mathbf W_c} w*x MaxPooling:fc=x∈XcmaxxAvgPooling:fc=∣Xc∣1x∈Xc∑xGeMPooling:fc=(∣Xc∣1x∈Xc∑xα)α1AttentionPooling:fc=∣Xc∗Wc∣1x∈Xc,w∈Wc∑w∗x
α\alphaα是控制系数,Wc\mathbf W_cWc是softmax注意力权重。
4.4 Head
Head 是解决聚合模块生成的全局向量的部分。包括BN Head,线性层Head,Reduction Head。
BN:batch normalization。用于解决内部协变量偏移,因为很困难去训练饱和非线性的模型。给定一系列的特征向量f∈Rm×C\mathbf f \in \mathbb R^{m \times C}f∈Rm×C,m是batch中采样的数量。特征向量bn可以表示为fbn∈Rm×C\mathbf f_{bn} \in \mathbf R^{m \times C}fbn∈Rm×C:
{μ=1m∑i=1mfi,σ2=1m∑m=1m(fi−μ)2,fbn=γ⋅f−μσ2+ϵ+β\begin {cases} \mu = \frac 1 m \sum_{i=1}^m \mathbf f_i,\\ \sigma^2 = \frac 1 m \sum^m_{m=1} (\mathbf f_i - \mu)^2,\\ \mathbf f_{bn} = \gamma \cdot\frac {\mathbf f - \mu} {\sqrt{\sigma ^2 + \epsilon}} + \beta \end {cases} ⎩⎪⎨⎪⎧μ=m1∑i=1mfi,σ2=m1∑m=1m(fi−μ)2,fbn=γ⋅σ2+ϵf−μ+β
γ,β\gamma,\betaγ,β是可训练尺度和变换参数,ϵ\epsilonϵ是添加到小批量方差中的常数。
Reduction layer:使高纬度特征成为低维度特征,2048dim-> 512 dim.
Decision layer:输出不同类别的概率,为后面模型训练区分不同的类别。
4.5 Loss Function
四种损失函数:CrossEntropy loss,Arcface loss,Circle loss,Triplet loss。
Cross-Entropy Loss:
Lce=∑i=1Cyilogy^i+(1−y^i)log(1−y^i)\mathcal L_{ce} = \sum^C_{i=1} y_i \log \hat y_i + (1-\hat y_i)\log (1- \hat y_i) Lce=i=1∑Cyilogy^i+(1−y^i)log(1−y^i)
y^i=eWiTf∑i=1CeWiTf\hat y_i = \frac {e^{\mathbf W_i^T\mathbf f}} {\sum^C_{i=1}e^{\mathbf W_i^T\mathbf f}}y^i=∑i=1CeWiTfeWiTf,交叉熵损失使预测logit值接近真实值。交叉熵促使最大logit与其他所有的logit之间的差异变大, 这与有界梯度一起降低了模型的适应能力,导致模型对预测过于自信。反过来会导致过拟合。标签平滑使倒数第二层的激活函数靠近正确的类模板,同时远离不正确的类模板。所以可以定义为:
yi={1−δ,j=c,δC−1,j≠c.y_i = \begin{cases} 1- \delta, j=c,\\ \frac {\delta} {C-1}, j \neq c. \end{cases} yi={1−δ,j=c,C−1δ,j=c.
ArcFace Loss:将笛卡尔坐标映射到球面坐标。WiTf=∥Wi∥∥f∥cosθi\mathbf {W^T_i f}= \mathbf {\|W_i\|\|f\|\cos \theta_i}WiTf=∥Wi∥∥f∥cosθi,其中θi\theta_iθi是Wi,f\mathbf {W_i,f}Wi,f之间的角度。通过l2归一化将∥Wi∥=1\|\mathbf W_i\|=1∥Wi∥=1并且通过l2归一化将嵌入特征f修正re-scale至s,y^i=escosθi∑i=1Cescosθi\hat y_i = \frac {e^{s \cos \theta_i}} {\sum^C_{i=1}e^{s\cos \theta_i}}y^i=∑i=1Cescosθiescosθi,为了同时增强类内紧密度和类间差异,ArcFace在类内度量中田家姨姑父家的角度惩罚m:
y^i=escos(θi+m)escos(θi+m)+∑i=1,i≠cC−1escosθi\hat y_i = \frac {e^{s\cos (\theta_i+m)}} {e^{s\cos (\theta_i+m)} +\sum^{C-1}_{i=1,i \neq c}e^{s\cos \theta_i}} y^i=escos(θi+m)+∑i=1,i=cC−1escosθiescos(θi+m)
Circle Loss
Triplet Loss:保证样本离正对距离近,离负对距离远。xia,xip,xinx^a_i,x^p_i,x^n_ixia,xip,xin分别代表锚,正样本和负样本。
D(xia,xip)+m<D(xia,xin)D(x^a_i,x^p_i)+m \lt D(x^a_i,x^n_i)D(xia,xip)+m<D(xia,xin),有N个样本的三元组损失表示为:
∑i=1N[m+D(gia,gip)−D(gia,gin)]\sum^N_{i=1}[m + D(g^a_i,g^p_i)-D(g^a_i,g^n_i)] i=1∑N[m+D(gia,gip)−D(gia,gin)]
m表示正对和负对的边界。
4.6 Training Strategy
Learning rate warm-up:有助于建环模型训练的过早过度适应。有助于保持模型深层的稳定性。
Backbone Freezing:为了重新训练分类网络以满足我们任务的要求,我们使用从任务中收集的数据在ImageNet预训练模型上进行微调。
4.7 Distance Metric
深层空间重建:有人物图像x和y,将其特征表示为xforx,yfory.\mathbf x ~for~ x,\mathbf y ~for~y.x for x,y for y.尺寸分别为wxtimeshx×d,wy×hy×dw_x\ times h_x \times d,w_y \times h_y \times dwx timeshx×d,wy×hy×d。来自N个位置的总N个空间特征被聚合成矩阵X=[xn]n=1N\mathbf X = [\mathbf x_n]^N_{n=1}X=[xn]n=1N,同样构建gallery feature matrix:Y={ym}m=1M∈Rd×M,M=wy×hy\mathbf Y=\{\mathbf y_m\}^M_{m=1} \in \mathbb R^{d \times M},M=w_y \times h_yY={ym}m=1M∈Rd×M,M=wy×hy,然后,xn\mathbf x_nxn可以再Y\mathbf YY中找最相似的空间特征进行匹配,匹配得分sns_nsn。因此我们试图得到X所有空间特征相对于Y的相似分数,最终匹配分数定义为:s=∑n=1Nsns = \sum^N_{n=1} s_ns=∑n=1Nsn。
4.8 Post-processing
在Fast ReID中,有两种重排序方法:K-reciprocal coding和Query Expansion。
QE:给定查询图像,使用它查找m个相似的库图像,查询特征定义为fq\mathbf f_qfq,相似的库特征被定义为fg\mathbf f_gfg,然后通过对验证后的库特征和查询特征求平均值,构造新的查询特征。新查询特征表示为:
fqnew=fq+∑i=1mfg(i)m+1\mathbf f_{q_{new}} = \frac {\mathbf f_q + \sum^m_{i=1}\mathbf f^{(i)}_g} {m+1} fqnew=m+1fq+∑i=1mfg(i)
新查询图像特征被用于图像检索。
4.9 Evaluation
采用常用的CMC和mAP,同时增加两个:ROC和mINP衡量指标。
CMC:cumulative matching cure
mAP:mean Averaage Precision
ROC:Receiver Operating characteristic
mINP:mean inverse negative penalty
4.10 Visualization
提供rank list tool来检索结果。
4.11 Deployment
在FastReID中设计知识提取模块,实现高精度高效率的轻量级模型。
老师模型深,没有局部模型,有很多技巧,学生模型简单。使用two-stream方法训练该网络,学生模型和教师莫明星分别输出分类器ls,ltl_s,l_tls,lt,特征图fs,ftf_s,f_tfs,ft,希望学生尽可能多的学习教室模型的分类能力,logits学习定义为:
Llogit=∥ls−lt∥1\mathcal L_{logit} = \|\mathbf l_s-\mathbf l_t\|_1 Llogit=∥ls−lt∥1
为了保证学生模型和教师模型在特征空间分布上的一致性,采用基于Kullback-Leibler散度的概率知识转移模型对学生模型进行优化:
{LPKT=∑i=1N∑j=1,i≠jNpj∣ilog(pj∣ipi∣j)pi∣j=K(fsi,fsj)∑j=1,i≠jNK(fsi,fsj)pj∣i=K(fsi,fsj)∑j=1,i≠jNK(fsi,fsj)\begin{cases} \mathcal L_{PKT} = \sum^N_{i=1} \sum^N_{j=1,i \neq j} p_{j|i}\log (\frac {p_{j|i}} {p_{i|j}}) \\ p_{i|j} = \frac {K(\mathbf f^i_s,\mathbf f^j_s)} {\sum^N_{j=1,i \neq j}K(\mathbf f^i_s,\mathbf f^j_s)} \\ p_{j|i} = \frac {K(\mathcal f^i_s,\mathbf f^j_s)} {\sum^N_{j=1,i \neq j} K(\mathcal f^i_s,\mathbf f^j_s)} \end{cases} ⎩⎪⎪⎪⎨⎪⎪⎪⎧LPKT=∑i=1N∑j=1,i=jNpj∣ilog(pi∣jpj∣i)pi∣j=∑j=1,i=jNK(fsi,fsj)K(fsi,fsj)pj∣i=∑j=1,i=jNK(fsi,fsj)K(fsi,fsj)
K(:,:)代表余弦相似性函数。
同时,学生模型需要reid 损失优化整合网络,总的损失为:
Lkd=Llogit+αLPKT+Lreid\mathcal L_{kd} = \mathcal L_{logit} + \alpha \mathcal L_{PKT} + \mathcal L_{reid} Lkd=Llogit+αLPKT+Lreid
训练结束,使用fs\mathbf f_sfs进行推理.
5. 实验复现
Market1501 bagtricks_R50.yml
方法1:
下载
训练
方法2:
方法3:
方法4:
Method | Pretrained | Rank@1 | Rank@5 | Rank@10 | mAP | mINP | metric |
---|---|---|---|---|---|---|---|
BoT(R50)训练 | ImageNet | 94.40% | 98.37% | 98.99% | 86.25% | 60.34% | 90.36% |
BoT(R50)下载 | ImageNet | 93.38% | 97.71% | 98.63% | 85.06% | 59.30% | 89.22% |
BoT(R50-ibn) | ImageNet | 94.36% | 97.75% | 98.78% | 86.55% | 61.79% | 90.46% |
BoT(S50) | ImageNet | 95.28% | 98.16% | 99.82% | 87.97% | 65.50% | 91.62% |
BoT(R101-ibn) | ImageNet | 95.22% | 98.19% | 98.81% | 87.98% | 65.27% | 91.56% |
行人重识别论文阅读8-FastReID京东快速行人重识别相关推荐
- 行为识别论文阅读(2)——3D Human Sensing, Action and Emotion Recognition in Robot Assisted Therapy of Children
行为识别论文阅读(2)--3D Human Sensing, Action and Emotion Recognition in Robot Assisted Therapy of Children ...
- [行人重识别论文阅读]Fine-Grained Shape-Appearance Mutual Learning for Cloth-Changing Person Re-Identification
论文地址 论文代码:暂无 文章思想 在上篇文章中我们引入了sketch(行人轮廓图)的思想去解决换衣问题,但是我们会在实践中发现sketch的优劣性严重影响了最后实验结果的好坏.此篇论文的核心思想就提 ...
- 【深度学习】步态识别-论文阅读:(T-PAMI-2021)综述:Deep Gait Recognition
论文详情: 期刊:T-PAMI-2021 地址:参考笔记 1.Abstract 本文综述了到2021年1月底在步态识别方面的最新进展,以 全面概述了深度学习步态识别的突破和最近的发展,涵盖了广泛的主题 ...
- 虹膜识别-论文阅读1
hello,这是鑫鑫鑫的论文分享站,今天分享的文章是Iris Recognition With Off-the-Shelf CNN Features: A Deep Learning Perspect ...
- 【深度学习】步态识别-论文阅读(无参考意义):Cross-View Gait Recognition Based on Feature Fusion
这里写目录标题 摘要 介绍 相关工作 改进 提出 多尺度特征融合 全局和局部特征融合 特征映射 结论 基于特征融合的跨视图步态识别 摘要 与人脸识别相比,步态识别是最有前途的视频生物特征识别技术之一, ...
- 计算机类的毕业论文是怎么查重的,论文检测软件是如何实现查重功能的
之所以人们在写完论文之后会使用知网检测软件来检测文章的原创度,是因为重复率过高的论文是无法符合要求的.那么,我们日常生活中所使用的论文检测软件是如何实现查重功能的呢?现在,就让我详细的为大家进行介绍. ...
- 知网查重提交论文显示服务器错误,知网查重时显示检测失败是什么原因?
无论是毕业抑或是评职称升职,写论文基本都成了标配,而论文重要又是毕业论文或者发表前必经的一个步骤,在国内无论是高校还有杂志社,95%以上都是使用知网查重,在使用知网查重的过程中,同学们经常会遇到检测失 ...
- 嵌入式OCR+RFID识别电子护照阅读器模块MRZ码电子证件识别模组的应用与攻略
嵌入式OCR+RFID识别电子护照阅读器模块|MRZ码电⼦证件验证识别模组是一款USB通讯模式,体积小巧.便于安装,方便嵌入至各类终端设备中,适用于出境游旅行社.海关检查.口岸出入境检查.使领馆签证登 ...
- 知网查重提交论文显示服务器错误,知网查重怎么会提交失败
在毕业之即,毕业生在完成论文初稿后,便要对论文进行查重.高校认证的一般都是知网查重,但在知网查重中会有许多问题出现,比如在上交论文的时候却提交失败.这是为什么呢?今天就让我们一起来聊聊知网查重怎么会提 ...
- 表单识别(五)——票据识别-论文研读:基于深度学习的票据识别系统设计与实现,卞飞飞(上)
(论文研读:基于深度学习的票据识别系统设计与实现,卞飞飞:) 引言: 传统的文本检测与识别算法主要指利用数字图像处理等非深度学习技术进行文本检测的方法,依赖于数字图像特征(如颜色.纹理.轮廓.形状等特 ...
最新文章
- VTK:可视化之BoxClipUnstructuredGrid
- tproxy_Linux使用TPROXY进行UDP的透明代理
- 官方晒中兴AXON 30 Pro真机亮屏谍照:第二代屏下摄像头技术提升明显
- matplotlib之scatter散点、bar直方图(笔记四)
- Ecplise + Xdebug 一波三折终于能单步调试了
- sublime3中如何快速生成html头部信息
- 阿里巴巴的页面不能被抓取吗_符合百度抓取的高质量内容(72小时秒收录)
- QQ广告营销推广全能王 QQ空间自动发表日志说说广告实用工具!
- STM32L452CCU6 STM32L432KCU6 GD32F407VKT6 嵌入式技术数据手册 32位ARM
- Mac 文本对比工具(比较两份文件差异)
- sin30的c语言表达式,c语言sin30度怎么打
- 青花瓷的小鸟装饰蛋糕
- PDF怎么压缩指定大小
- 查看tomcat的版本号
- c# char unsigned_关于C ++:将unsigned char *复制到unsigned char *
- js实现左右无缝轮播图
- 基于YOLOV3的通用物体检测项目实战---(5)利用DarkNet框架进行YOLOV3模型训练实操(笔记)
- java数据结构与算法之双链表设计与实现
- ip话机 mitel_华为IP话机
- ts(TypeScript)定义服务器返回数据类型
热门文章
- java更换证件照背景色
- 维特智能陀螺仪角度传感器原理
- matlab所有颜色,MATLAB 颜色选择及应用
- C语言中文分号,问什么C程序里总是提示缺少分号;,而明明有分号?
- 使用 FUMA 鉴定 Independent SNPs 和 Lead SNPs
- 服务器硬盘开机吱吱响,硬盘吱吱响怎么回事?电脑硬盘响动原因和解决方法
- Excel的复合条饼图制作
- python开发cms企业官网用python php_基于Django的Python CMS
- Python学习之路-NLP(人物提取)
- pc端ui图片尺寸_PC端网页尺寸设计一