2D虚拟试衣——服装变形

1、TPS(Thin Plate Spline)方法

TPS(薄板样条)插值是常用的2D插值方法。来表达薄金属板的物理弯曲能与点约束的关系(用一个薄钢板的形变来模拟2D形变,确保这N个点能够正确匹配,那么怎样的形变,可以使钢板的弯曲能量最小)。

补充:插值的常用方式

​ 将一张图片(包含10个像素点)扩大10倍,得到一张新图(包含100个像素点),其中90个像素点的值是缺少的,此时就可以使用插值法解决缺失问题。

给定两张图片中一些相互对应的关键点,将其中一张图片形变到另外一张图片上,使得这些关键点都对应重合。

2D虚拟试衣——服装变形_第1张图片

其中,A和B为非变形的基本网络。C为B变成A得到的TPS样条曲面。D为A变成B得到的TPS样条曲面。

2、空间变换

2.1、affine(2D仿射变换)

2D虚拟试衣——服装变形_第2张图片
2D虚拟试衣——服装变形_第3张图片
2D虚拟试衣——服装变形_第4张图片

2.2、projection(3D透视变换)

2D虚拟试衣——服装变形_第5张图片
2D虚拟试衣——服装变形_第6张图片
2D虚拟试衣——服装变形_第7张图片

3、STN(Spatial Transformer Networks)

补充:CNN层数越深,语义信息越丰富,空间信息越贫乏。

​ 当是一张人的图片时,CNN层数越深,经过不断的卷积,可以提取出“眼睛”、“耳朵”等具体的语义信息,并将其组合在一起,从而判断是人还是狗。但是,经过多次卷积操作(还包括池化层),使得特征图越来越小,已经逐渐忘记了它在原始图像上的位置,空间信息贫乏

​ CNN具有空间不变性,就是说对位置信息不敏感,即比如图中有一只狗,无论在图像上对这只狗进行平移、旋转、缩放等操作,CNN依然能判断这是一只狗。

​ STN允许在网络内对数据进行空间操作。这个可微模块可以插入到现有的卷积架构中,使神经网络能够根据特征图本身的条件主动进行空间变换,而无需任何额外的训练监督或对优化过程进行修改。STN的作用类似于传统的矫正的作用。

STN网络结构

2D虚拟试衣——服装变形_第8张图片

Localisation Net:简单的回归网络。对输入图片U进行CNN,输出Aθ(假设是仿射变换,得到2x3的矩阵,共6个角度值)

Grid generator:初始V没有像素信息(可以想象成全白或全黑图)只有位置信息(比如(0,0)(0,1)…)。Grid generator负责将V的位置信息与Aθ运算,得到对应原始图中对应的坐标信息T(G)(比如(5,0)(5,1)…)。

2D虚拟试衣——服装变形_第9张图片

​ 其中,s对应原始图位置坐标,t对应目标图位置坐标,Aθ为变换矩阵。

注意:V的位置信息与Aθ运算得到T(G),可是T(G)的值(x,y)很可能是非整数,无法与原图像中的像素坐标对应起来,导致像素值缺失问题,于是考虑使用插值法,求出输出像素点的取值,解决像素值缺失问题。

Sampler:通过T(G)和原始图U的像素,将对应位置的像素复制到V中,得到目标图像素V。

4、CNN求得θ

  1. 用深度学习方法模拟经典的图像相似度估计问题
  2. 用深度学习方法估计仿射变换参数Aθ(对图片进行仿射变换,使得原图关键点与目标图片关键点在位置上粗对齐,便于后面进行TPS),以及更为复杂的TPS transformation
2D虚拟试衣——服装变形_第10张图片

End-to-End模型

输入:两张图片IA和IB

特征提取:双路CNN(如:VGG16),权值共享,对IA和IB提取特征fA与fB

Matching:使用correlation-layer,把两路CNN提取的特征融合为一个向量,即fA与fB进行点乘得到correlation map,得到correlation map 后,使用ReLU+L2Norm对相似度进行归一化,以凸显相似度高的点,得到fAB。

Regression CNN:输入correlation map,得到仿射变换的6个参数Aθ,回归层中使用卷积层而不是全连接层,防止梯度爆炸。

参考
综述:利用深度学习实现的虚拟试衣技术(基于图像)
Convolutional neural network architecture for geometric matching 论文笔记

你可能感兴趣的:(2D虚拟试衣,计算机视觉,深度学习)