【发布时间】:2017-01-02 14:44:36
【问题描述】:
我正在尝试对图像进行深度学习。我有大约 4000 张来自不同相机的图像,它们具有不同的光照条件、图像分辨率和视角。
我的问题是:什么样的图像预处理有助于提高物体检测?(例如:对比度/颜色归一化、去噪等)
【问题讨论】:
标签: image-processing deep-learning object-detection
我正在尝试对图像进行深度学习。我有大约 4000 张来自不同相机的图像,它们具有不同的光照条件、图像分辨率和视角。
我的问题是:什么样的图像预处理有助于提高物体检测?(例如:对比度/颜色归一化、去噪等)
【问题讨论】:
标签: image-processing deep-learning object-detection
用于在将图像输入神经网络之前对图像进行预处理。最好使数据以零为中心。然后尝试归一化技术。当数据在一个范围内缩放而不是任意大的值或太小的值时,它肯定会提高准确性。
一个示例图像将是:-
这是 Stanford CS231n 2016 Lectures 的解释。
*
归一化是指对数据维度进行归一化,使它们具有大致相同的规模。对于图像数据,有两种常见的方法可以实现这种标准化。一种是将每个维度除以其标准差,一旦它以零为中心:
(X /= np.std(X, axis = 0))。这种预处理的另一种形式是对每个维度进行归一化,以便沿维度的最小值和最大值分别为 -1 和 1。仅当您有理由相信不同的输入特征具有不同的尺度(或单位)时,应用此预处理才有意义,但它们对学习算法的重要性应该大致相同。在图像的情况下,像素的相对比例已经大致相等(并且在 0 到 255 的范围内),因此没有必要执行这个额外的预处理步骤。
*
【讨论】:
这肯定是这篇文章的迟到回复,但希望能帮助那些偶然发现这篇文章的人。
这是我在网上找到的一篇文章Image Data Pre-Processing for Neural Networks,我认为这肯定是一篇关于如何训练网络的好文章。
文章的主旨是说
1) 由于 NN 中的少量数据(图像)应根据 NN 设计采用的图像尺寸进行缩放,通常为正方形,即 100x100,250x250
2) 考虑特定图像集合中所有输入图像的 MEAN(左图)和 标准差(右图)值
3) 标准化图像输入通过从每个像素中减去平均值然后将结果除以标准差来完成,这使得在训练网络时收敛更快。这类似于以零为中心的高斯曲线
【讨论】:
除了上面提到的之外,提高低分辨率图像 (LR) 质量的一个好方法是使用深度学习进行超分辨率。这意味着建立一个深度学习模型,将低分辨率图像转换为高分辨率图像。我们可以通过应用退化函数(模糊等过滤器)将高分辨率图像转换为低分辨率图像。这基本上意味着 LR = 退化(HR),其中退化函数会将高分辨率图像转换为低分辨率。如果我们能找到这个函数的逆函数,那么我们将低分辨率图像转换为高分辨率图像。这可以被视为一个监督学习问题,并使用深度学习来找到反函数来解决。在介绍使用深度学习的超分辨率时遇到了这个interesting article。我希望这会有所帮助。
【讨论】:
【讨论】: