作者: 种准,郑良,郑哲东,杨易等 2018CVPR
代码:https://github.com/zhunzhong07/CamStyle
和ZL老师团队2018年另一篇CVPR很相似:Image-Image Domain Adaptation with Preserved Self-Similarity and Domain-Dissimilarity for Person Re-identification,可参考我的:这篇博客
不同相机不一样导致风格差异,需要学习相机不变性特征–>直接将相机迁移到其他相机下,让网络见到更多风格的照片就OK了,同时还能改善过拟合–>普通版本;加上LSR正则就是改进版本。思想很简单,但效果很显著。
普通版本在相机少的情况下由于缓和了过拟合现象因此作用很大,但相机较多时由于图像也多了导致过拟合没那么严重,而生成图像中的噪声点(如图2)开始捣乱了,性能开始不太行,需要用改进版本做。
CamStyle的优点:
贡献:
关于CycleGAN的详细内容可以参考我的这篇博客
G:A->B 和 F:B->A 的双向图像生成 + 循环一致性损失进行生成图像约束
其中AB中图像分别记为x和y,分别M和N张,即:
F(x):x对于F而言是目标域真实图像,而F是为了进行风格迁移的,而x本身就是需要的风格,故F不再在风格而起作用,但为了保证
最小化,F就只能强迫让F(x)和x的其他信息一致,主要体现在让两者的内容信息,如id相关信息一致,从而维持了id不变。
G(y)同理。
网络结构和CycleGAN一样(本身就是一样的做法,只不过加了一个损失监督而已,和后面的reid是分段进行的,就是将CycleGAN搬到reid中并结合实际加了一个损失来生成图像,用生成结果做reid),输入为256256,生成器由9个残差块+4个卷积(2个步长2的+2个步长1/2的),鉴别器用7070的PatchGAN。将每一张图像迁移到其他L-1个相机下,得到L倍的图像(L是相机数,生成的L-1倍图像不全部要,后面会提)。
三点观察:
IDE网络,ResNet50,去掉FC-1000改成FC-1024和FC-#Classes,reid的输入size为256*128
两个版本:
共同定义:
每个mini-batch包含M张真实图像和N张生成图像,损失为:
M/N>1会导致生成(假)图像太大,假的太大必然会出问题,会让网络倾向于学习假图像的信息(假图像丢失了必然部分信息);最终选择M:N=3:1比较合适。
均是越多越好,因为一方面可靠性数据越来越多,另一方面由于GT多了,找rank1(评估的就是rank1)也就容易些
** 普通版本:Fig7 + Tab 1
还是那句:少相机系统中比较有用,多相机系统中由于过拟合缓解而噪声副作用导致涨点不明显
** 全版本:Fig7 + Tab 1
性能进一步提升
相关链接: