2017-01-02 210 views
5

我正在对图像进行深度学习。我有不同的光照条件,图像分辨率和视角的约4000张图像。深度学习中的图像预处理

我的问题是:什么样的图像预处理将有助于改善物体检测?(例如:对比度/颜色标准化,去噪等)

+2

没有人可以回答这个问题,除非他们看看你的数据。一般用深度学习预处理是没有必要的。如果您有足够的数据,您的模型可以学习如何适应数据中的变化。 – Feras

+0

是的,我知道我的问题太笼统了,但您的回答对我有帮助。我真正的问题是深度学习对图像质量有多敏感? – Norbert

+1

深度网络或CNN有过滤器倾向于在您的数据集上学习。大量的数据和多样性让你的系统更健壮。当然,如果您的目标域名与您的培训域名不同,它就会很敏感。 – Feras

回答

1

用于在将图像送入神经网络之前对图像进行预处理。以数据零中心为佳。然后尝试规范化技术。它肯定会提高准确性,因为数据的缩放范围大于任意大的值或太小的值。

一个例子的图像将是: -

enter image description here

这里是它从斯坦福CS231n 2016和讲座一个解释。

*

规范化是指归一化的数据的尺寸,使得它们的大致相同的尺度。对于图像数据有两种常见的方法来实现这种规范化。一种是将每个维度除以它的标准差,一旦它以零为中心:
(X /= np.std(X, axis = 0))。此预处理的另一种形式将每个维度标准化,以使沿维度的最小值和最大值分别为-1和1。如果你有理由相信不同的输入特征具有不同的尺度(或单位),那么应用这种预处理才有意义,但它们应该与学习算法大致同等重要。在图像的情况下,像素的相对尺寸已经大致相等(并且范围从0到255),因此不必严格执行此额外的预处理步骤。

*

链接,上面摘录: - http://cs231n.github.io/neural-networks-2/

0

请仔细阅读this,希望这会对您有所帮助。这个想法是将输入图像分成几部分。这就是所谓的R-CNN(here就是一些例子)。这个过程有两个阶段,对象检测和分割。对象检测是通过观察渐变中的变化来检测前景中的某些对象的过程。分割是将对象放在具有高对比度的图像中的过程。高级别图像检测器使用贝叶斯优化,可以使用本地优化点检测接下来会发生什么。

基本上,在回答你的问题时,你给出的所有预处理选项似乎都很好。由于对比度和颜色归一化使得计算机识别不同的对象,并且去噪会使渐变更容易区分。

我希望所有这些信息对你有用!

+2

通常不建议使用仅链接回答。请将链接中的相关部分添加到您的aswer。链接随着时间的推移可能会失效 – MeanGreen

+0

谢谢你的回答!其实我正在试验机智py-faster-rcnn,所以我听说过R-CNN。我的问题是我的数据集有不同质量的图像,真正的问题是深度学习对图像质量有多敏感? – Norbert

0

这无疑是为这个职位迟到的答复,但希望能帮助在这个帖子谁绊倒。

这里是我在网上找到的一篇文章Image Data Pre-Processing for Neural Networks,虽然这当然是一篇很好的文章,应该如何训练网络。

制品的主要要点说

1)作为数据(图像)几成NN应根据该NN旨在利用图像尺寸,通常是正方形被缩放即100x100,250x250

2)考虑MEAN(左图)和标准偏差(右图)的特定图像组的集合中的所有输入图像的价值

enter image description here

3)正常化图像输入通过减去每个像素的平均值,然后除以标准差,这使得收敛速度更快,同时训练网络。这将类似于在零 enter image description here

4)维数降低 RGB为灰度图像为中心的高斯曲线,神经网络性能被允许是不变的该维度,或使培训问题更易处理 enter image description here