3维数据增强

3D数据增强

在医学影像处理过程之中,由于医学影像研究通常是小数据集,故在深度学习研究上,往往会由于样本量太少,而导致在进行深度学习的训练过程之中易于出现过拟合的情况。此时,一些通过对已有图像进行某种变换而产生某种意义上的同族新图像。这样从某种程度上,数据集就得以扩增。尽可能的减少过拟合发生的概率。
1.旋转 rotate
我在进行3D图像旋转时,所参考的是二维的图像旋转方法,但在进行操作过程之中 ,发现由于在进行旋转操作时,会对图像进行插值,这样会让图像尤其是标签所对应的值发生了严重的映射性数学变化改变,这样会影响网络在进行训练时的性能即收敛性。故我在此只选用了180度旋转,这样图像在旋转前后插,不会对图像的标签值产生映射改变。
对于这个我目前主要只用过两种等效写法。
rotate(img,angle)
img.rotate(angle)
其中img为动作对象,你所要进行操作的图,angle为旋转的角度。

2.伽玛校准(gamma correction)
在进行伽玛校准时的主要的注意校准参数的设置,当
skimage adjust_gamma函数,skimage.exposure.exposure模块中的函数,对输入图像进行gamma校正,也称作幂律变换( Power Law Transform),这个函数将每个像素缩放到0到1后,根据方程O=Iγ来变换输入图像像素。
adjust_gamma(image, gamma=1)
当gamma大于1,则相当与将图像的直方图进行左移,输出图像较原图要暗;
当gamma小于1,则可以看作是将图像直方图进行了整体右移,图像变亮.

3.镜像
在此我是通过flip来实现的
flip(image,axis)
其中image为原图,axis为镜像所参考的轴平面

4.图像转置(transpose/swapaxes)
通过transpose同样可以实现数据增强的效果
image.transpose(2,1,0)
image.swapaxes(0,2)
其中,image为动作发生对象,1,3,2为轴

5.平移
由于我的网络训练图像较原图要小很多,故需要对原图进行取块操作,所以在此可以将取块视为平移操作。

你可能感兴趣的:(技术,数据增强,3D,transpose,Data,Augmentation,rotate)