深度学习中的图像预处理
Image preprocessing in deep learning
我正在尝试对图像进行深度学习。我有大约 4000 张来自具有不同光照条件、图像分辨率和视角的不同相机的图像。
我的问题是:什么样的图像预处理有助于提高目标检测?(例如:contrast/color归一化、去噪等)
通读 this, hopefully that will be helpful. The idea is to split the input image into parts. This is called R-CNN (here 是一些示例)。这个过程有两个阶段,对象检测和分割。物体检测是通过观察梯度变化来检测前景中的某些物体的过程。分割是将对象放在高对比度图像中的过程。高级图像检测器使用贝叶斯优化,它可以使用局部优化点检测接下来会发生什么。
基本上,在回答您的问题时,您提供的所有预处理选项似乎都不错。由于对比度和颜色归一化使计算机识别不同的物体,去噪会使渐变更容易区分。
希望所有这些信息对您有用!
用于在将图像输入神经网络之前对图像进行预处理。最好使数据零居中。然后尝试归一化技术。它肯定会提高准确性,因为数据在一个范围内缩放,而不是任意大的值或太小的值。
示例图片为:-
这是斯坦福 CS231n 2016 讲座中对其的解释。
*
Normalization refers to normalizing the data dimensions so that they are of approximately the same scale. For Image data There are two common ways of achieving this normalization. One is to divide each dimension by its standard deviation, once it has been zero-centered:
(X /= np.std(X, axis = 0))
. Another form of this preprocessing normalizes each dimension so that the min and max along the dimension is -1 and 1 respectively. It only makes sense to apply this preprocessing if you have a reason to believe that different input features have different scales (or units), but they should be of approximately equal importance to the learning algorithm. In case of images, the relative scales of pixels are already approximately equal (and in range from 0 to 255), so it is not strictly necessary to perform this additional preprocessing step.
*
Link 以上摘录:- http://cs231n.github.io/neural-networks-2/
这肯定是对这个 post 的迟到回复,但希望能帮助偶然发现这个 post 的人。
这是我在网上找到的一篇文章 Image Data Pre-Processing for Neural Networks,我认为这确实是一篇关于如何训练网络的好文章。
文章的主要内容是
1) 由于进入 NN 的数据(图像)很少,因此应根据 NN 设计采用的图像大小进行缩放,通常是正方形,即 100x100、250x250
2) 考虑集合中所有输入图像的 MEAN(左图)和 STANDARD DEVIATION(右图)值一组特定图像
3) 归一化图像输入 通过从每个像素中减去平均值,然后将结果除以标准差来完成,这使得训练网络时收敛速度更快。这类似于以零为中心的高斯曲线
4)降维RGB转灰度图像,允许神经网络性能对那个维度不变,或者让训练问题更容易处理
除了上面提到的之外,提高低分辨率图像 (LR) 质量的一个好方法是使用深度学习进行超分辨率。这意味着建立一个深度学习模型,将低分辨率图像转换为高分辨率。我们可以通过应用降级函数(过滤器,如模糊)将高分辨率图像转换为低分辨率图像。这基本上意味着 LR = degradation(HR),其中退化函数会将高分辨率图像转换为低分辨率。如果我们能找到这个函数的反函数,那么我们就可以将低分辨率图像转换为高分辨率图像。这可以被视为一个监督学习问题,并使用深度学习找到反函数来解决。在介绍使用深度学习的超分辨率时遇到了这个 interesting article。希望对您有所帮助。
我正在尝试对图像进行深度学习。我有大约 4000 张来自具有不同光照条件、图像分辨率和视角的不同相机的图像。
我的问题是:什么样的图像预处理有助于提高目标检测?(例如:contrast/color归一化、去噪等)
通读 this, hopefully that will be helpful. The idea is to split the input image into parts. This is called R-CNN (here 是一些示例)。这个过程有两个阶段,对象检测和分割。物体检测是通过观察梯度变化来检测前景中的某些物体的过程。分割是将对象放在高对比度图像中的过程。高级图像检测器使用贝叶斯优化,它可以使用局部优化点检测接下来会发生什么。
基本上,在回答您的问题时,您提供的所有预处理选项似乎都不错。由于对比度和颜色归一化使计算机识别不同的物体,去噪会使渐变更容易区分。
希望所有这些信息对您有用!
用于在将图像输入神经网络之前对图像进行预处理。最好使数据零居中。然后尝试归一化技术。它肯定会提高准确性,因为数据在一个范围内缩放,而不是任意大的值或太小的值。
示例图片为:-
这是斯坦福 CS231n 2016 讲座中对其的解释。
*
Normalization refers to normalizing the data dimensions so that they are of approximately the same scale. For Image data There are two common ways of achieving this normalization. One is to divide each dimension by its standard deviation, once it has been zero-centered:
(X /= np.std(X, axis = 0))
. Another form of this preprocessing normalizes each dimension so that the min and max along the dimension is -1 and 1 respectively. It only makes sense to apply this preprocessing if you have a reason to believe that different input features have different scales (or units), but they should be of approximately equal importance to the learning algorithm. In case of images, the relative scales of pixels are already approximately equal (and in range from 0 to 255), so it is not strictly necessary to perform this additional preprocessing step.
*
Link 以上摘录:- http://cs231n.github.io/neural-networks-2/
这肯定是对这个 post 的迟到回复,但希望能帮助偶然发现这个 post 的人。
这是我在网上找到的一篇文章 Image Data Pre-Processing for Neural Networks,我认为这确实是一篇关于如何训练网络的好文章。
文章的主要内容是
1) 由于进入 NN 的数据(图像)很少,因此应根据 NN 设计采用的图像大小进行缩放,通常是正方形,即 100x100、250x250
2) 考虑集合中所有输入图像的 MEAN(左图)和 STANDARD DEVIATION(右图)值一组特定图像
3) 归一化图像输入 通过从每个像素中减去平均值,然后将结果除以标准差来完成,这使得训练网络时收敛速度更快。这类似于以零为中心的高斯曲线
4)降维RGB转灰度图像,允许神经网络性能对那个维度不变,或者让训练问题更容易处理
除了上面提到的之外,提高低分辨率图像 (LR) 质量的一个好方法是使用深度学习进行超分辨率。这意味着建立一个深度学习模型,将低分辨率图像转换为高分辨率。我们可以通过应用降级函数(过滤器,如模糊)将高分辨率图像转换为低分辨率图像。这基本上意味着 LR = degradation(HR),其中退化函数会将高分辨率图像转换为低分辨率。如果我们能找到这个函数的反函数,那么我们就可以将低分辨率图像转换为高分辨率图像。这可以被视为一个监督学习问题,并使用深度学习找到反函数来解决。在介绍使用深度学习的超分辨率时遇到了这个 interesting article。希望对您有所帮助。