QS-Attn 论文和代码运行讲解——图像风格迁移

论文:arxiv

代码:github

简介:

        非配对图像到图像(I2I)翻译通常需要最大化跨不同域的源图像和翻译图像之间的互信息,这对于生成器保留源内容并防止其进行不必要的修改至关重要。自监督对比学习已经在I2I中得到成功的应用。通过约束来自相同位置的特征比来自不同位置的特征更接近,它隐含地确保了结果从源获取内容。然而,以往的工作使用随机位置的特征来施加约束,由于某些位置包含的源域信息较少,可能不合适。而且,特征本身并不能反映与他人的关系。本文通过有意选择有意义的锚点进行对比学习来解决这些问题。我们设计了一个查询选择注意力(QS-Attn)模块,它比较源域中的特征距离,给出每行具有概率分布的注意力矩阵。然后我们根据它们的显著性度量来选择查询,从分布中计算出来。将选取的数据作为对比损失的锚点。同时,采用简化的注意矩阵对两个域的特征进行路由,使源关系在综合中保持不变。

模型框架:

        源域图像I_x由生成器G转换为目标域图像G(I_x)。编码器E从这两幅图像中提取特征,然后QS-Attn模块选择显著特征建立对比损失。使用一个判别器D来构造对抗损失。橙色、蓝色和绿色斑块分别表示正、负和锚, 利用注意力对每一行按其显著性度量进行排序得到A_g,利用A_QS同时路由源域和目标域的值特征, 并获得正、负、锚特征来构造对比损失。

代码

代码不细讲了,因为和dcl几乎一样

1、从github 上下载下来代码。

2、如果想直接尝试,可以下载预训练权重,有city街道的,马2斑马的

然后下载训练集

bash ./datasets/download_qsattn_dataset.sh horse2zebra

3、如果想自行训练,别忘了重新调整dataset的创建,具体的可以看我dcl那个博客

4、训练和测试如下

python train.py \
--dataroot=datasets/horse2zebra \
--name=horse2zebra_global \
--QS_mode=global

如果需要损失等参数的可视化,可以运行下行后打开http://localhost:8097:调用的visdom 的方法

python -m visdom.server

如果是在服务器上,不需要展示,甚至展示会报错,可以ctrl+F找到所有的visdom, 全部注释掉,不会报错的。

代码的权重保存在

测试:name就是上面训练的时候自己加的name,我没遇到报错,很流畅。

python test.py \
--dataroot=datasets/horse2zebra \
--name=horse2zebra_qsattn_global \
--QS_mode=global

引用

@inproceedings{hu2022qs,
  title={QS-Attn: Query-Selected Attention for Contrastive Learning in I2I Translation},
  author={Hu, Xueqi and Zhou, Xinyue and Huang, Qiusheng and Shi, Zhengyi and Sun, Li and Li, Qingli},
  booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
  pages={18291--18300},
  year={2022}
}

贴点实验图

  • 21
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值