在深度神经网络的训练中总是需要大量的样本,所以经常需要对样本进行增强,说白了就是一变多,通常的图像增强方法有 crop、flip、ratate、scale、颜色调整(对比度、亮度等);
还有一类是仿射类增强,在图像分割中可能更常用一些,这里重点介绍MLS
(移动最小二乘),它包含三种图像变形方法,分别是仿射变换、相似变换、刚性变换。其中刚性变换的效果是最好的。
参考这里,比较详细的介绍了仿射变换的原理和过程,以及c++代码实现。
核心计算公式,给定一个图像的控制点 p,原图像上的像素点v的坐标。变形后图像的控制顶点位置q,求v在变形后图像中对应位置
L
(
v
)
L(v)
L(v)。
l
v
(
x
)
=
(
x
−
p
∗
)
M
+
q
∗
l_v(x) = (x-p_*)M+q_*
lv(x)=(x−p∗)M+q∗
其中,
p
∗
p_*
p∗是所有控制点 p 相对于 x 的重心,即加权求和后的均值,每个控制点的权值是 x 与
p
i
p_i
pi 的距离的倒数。