论文阅读14 | Visible Thermal Person Re-Identification via Dual-Constrained Top-Ranking

论文名称:Visible thermal person re-identification via dual-constrained top-ranking

出处:2018 IJCAI

1. 摘要

解决跨模态信息匹配的常用手段就是将不同模态的信息映射到相同的特征空间中,这样就可以将它们等同对待,用同一种度量手段去度量它们之间的相似性。跨模态reid现有的工作,主要关注学习共享特征表示来处理交叉模态差异。本文提出了一种具有双向双约束顶级损失(bi-directional dual-constrained top-ranking loss)的双路径网络(a dual-path network)来学习判别特征表示。优点在两个方面:① 直接从数据中端到端学习,而无需执行额外的度量学习步骤。② 它同时处理交叉模态和模态内的变化,以确保学习表示的辨别性。同时,进一步结合身份损失来建模身份特定信息,以处理大的类内变化。

2. 网络框架

这个双路径网络包含特征提取器和特征嵌入两个部分。前者提取每个模态内的特定信息;后者学习一个多模态的共享空间来减少模态差异。如下图,FCN采用在ImageNet预训练的AlexNet (conv1 ∼ conv5),FC1(4096),BN,FC2共享的全连接层(1024)。

在这里插入图片描述

3. 损失

The bi-directional ranking loss:包含两种关系:visible to thermal triplet(one anchor visible image, two thermal images)、thermal to visible triplet (one anchor thermal image, two visible images)

在这里插入图片描述
Cross-modality Top-Ranking Constraint:对上面的 loss 进行改进,比较一个正样本对和所有负样本对的最小值。有两个重要的优势:① 确保了最近的跨模态负样本对远离最远的交叉模态正样本,从而有助于减少跨模态的变化,保留较高的可辨别性。② 双向训练策略确保了学习到的特征表示是模态不变的。它提高了对不同查询设置的鲁棒性。

在这里插入图片描述
Intra-modality Top-Ranking Constraint:为减少模态内部由于姿势视角等引起的差异,引入模态内部损失。三元组中除了参考样本之外,其余两个样本在同一个模态但是属于不同的身份,所以两者之间的距离也应该大于一个margin。

在这里插入图片描述
The final loss function

在这里插入图片描述
值得注意:在每次迭代中首先随机选择N个人的身份,其中N是批处理大小。然后从两种不同的模式中随机选择所选身份的一个可见图像和一个热图像来构建最小批( 2*N个样本)。那么,对于每个ID,正样本对只有一个,负样本对有N-1个。

4. 实验结果

论文程序使用tensorflow框架实现,将权衡参数设置为λ1=0.1和λ2=1。margin ρ1设置为0.5,而ρ2设置为0.1。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
完成以下Java代码:Write an IShape interface with the following UML specification: +------------------------------------+ | <<interface>> | | IShape | +------------------------------------+ | + getX(): int | | + getY(): int | | + setX(int x): void | | + setY(int y): void | | + isVisible(int w, int h): boolean | | + isIn(int x, int y): boolean | | + draw(Graphics g): void | +------------------------------------+ and a Shape class that implements IShape and has the following UML specification: +------------------------------------+ | Shape | +------------------------------------+ | - x: int | | - y: int | | - color: Color | +------------------------------------+ | + Shape(int x, int y) | | + getX(): int | | + getY(): int | | + setX(int x): void | | + setY(int y): void | | + isVisible(int w, int h): boolean | | + isIn(int x, int y): boolean | | + draw(Graphics g): void | | + testShape(): void | +------------------------------------+ The x and y instance variables indicate the position of the center of the shape, and the color instance variable indicates the color of the shape. The color of the shape is computed randomly in the constructor of the shape class and never changes after that, like this: color = new Color((float)Math.random(), (float)Math.random(), (float)Math.random()); The isVisible method is abstract, and indicates whether the shape is currently visible or not inside a window of width w and of height h. The isIn method is abstract, and indicates whether the point at coordinates (x, y) is currently inside the shape or not. The draw method simply changes the color of the graphics object g to be the correct color for the shape
最新发布
05-11

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值