Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing 深度学习中的图像预处理_Image Processing_Deep Learning_Object Detection - Fatal编程技术网

Image processing 深度学习中的图像预处理

Image processing 深度学习中的图像预处理,image-processing,deep-learning,object-detection,Image Processing,Deep Learning,Object Detection,我正在尝试对图像进行深度学习。我有大约4000张来自不同相机的图像,它们具有不同的光线条件、图像分辨率和视角 我的问题是:什么样的图像预处理有助于提高目标检测?(例如:对比度/颜色标准化、去噪等)通读一遍,希望这会有所帮助。其思想是将输入图像分割为多个部分。这被称为R-CNN(是一些例子)。这个过程分为两个阶段,目标检测和分割。目标检测是通过观察梯度变化来检测前景中某些对象的过程。分割是将对象放在一个具有高对比度的图像中的过程。高级图像检测器使用贝叶斯优化,该优化可以使用局部优化点检测接下来可能

我正在尝试对图像进行深度学习。我有大约4000张来自不同相机的图像,它们具有不同的光线条件、图像分辨率和视角

我的问题是:什么样的图像预处理有助于提高目标检测?(例如:对比度/颜色标准化、去噪等)

通读一遍,希望这会有所帮助。其思想是将输入图像分割为多个部分。这被称为R-CNN(是一些例子)。这个过程分为两个阶段,目标检测和分割。目标检测是通过观察梯度变化来检测前景中某些对象的过程。分割是将对象放在一个具有高对比度的图像中的过程。高级图像检测器使用贝叶斯优化,该优化可以使用局部优化点检测接下来可能发生的情况

基本上,在回答您的问题时,您给出的所有预处理选项似乎都很好。由于对比度和颜色标准化使计算机能够识别不同的物体,而去噪将使梯度更容易区分


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

用于将图像输入神经网络之前的预处理。最好使数据以零为中心。然后尝试标准化技术。当数据在比任意大的值或太小的值更大的范围内缩放时,它肯定会提高精度

示例图像如下所示:-

以下是斯坦福CS231n 2016年讲座的解释

*

规范化是指规范化数据维度,使其具有大致相同的规模。对于图像数据,有两种实现这种标准化的常用方法。一种方法是将每个维度除以其标准偏差,一旦它以零为中心:
(X/=np.std(X,轴=0))
。这种预处理的另一种形式是对每个维度进行规格化,使维度上的最小值和最大值分别为-1和1。只有当您有理由相信不同的输入特征具有不同的比例(或单位)时,才有必要应用此预处理,但它们对学习算法的重要性应大致相同。在图像的情况下,像素的相对比例已经大致相等(并且在0到255的范围内),因此严格来说没有必要执行此额外的预处理步骤

*


以上摘录的链接:-

这篇文章的回复肯定很晚,但希望能帮助偶然发现这篇文章的人

这是我在网上找到的一篇文章,我认为这是一篇关于如何训练网络的好文章

文章的主旨是

1) 作为数据(图像),应根据NN设计采用的图像大小(通常为正方形,即100x100250x250)对NN中的少量数据进行缩放

2)考虑某一组图像

集合中所有输入图像的<强>平均/强>(左图像)和<强>标准偏差< /强>(右图像)值。

3) 归一化图像输入通过从每个像素中减去平均值,然后将结果除以标准偏差来完成,这样可以在训练网络时加快收敛速度。这类似于以零为中心的高斯曲线

4) 降维RGB到灰度图像,允许神经网络性能对该维度保持不变,或使训练问题更易于处理

除了上面提到的,提高低分辨率图像(LR)质量的一个好方法是使用深度学习进行超分辨率处理。这意味着要建立一个深度学习模型,将低分辨率图像转换为高分辨率图像。我们可以通过应用降级功能(如模糊等过滤器)将高分辨率图像转换为低分辨率图像。这实质上意味着LR=降级(HR),其中降级功能将高分辨率图像转换为低分辨率图像。如果我们能找到这个函数的倒数,那么我们就把低分辨率的图像转换成高分辨率的图像。这可以被视为一个有监督的学习问题,并使用深度学习来寻找逆函数。在介绍使用深度学习的超分辨率时遇到了这个问题。我希望这会有所帮助。

通常不建议使用仅链接的答案。请将链接中的相关部分添加到您的aswer。随着时间的推移,链接可能会变得无效。谢谢您的回答!事实上,我正在用rcnn做实验,所以我听说了R-CNN。我的问题是我的数据集的图像质量参差不齐,真正的问题是深度学习对图像质量的敏感程度有多高?没有人能回答这个问题,除非他们看了你的数据。一般来说,用深度学习进行预处理是没有必要的。如果你有足够的数据,你的模型可以学习如何适应数据的变化。是的,我知道我的问题太笼统了,但你的回答帮助了我。我真正的问题是深度学习对图像质量有多敏感?深度网络或CNN的过滤器倾向于在您的数据集上学习。数据量越大、种类越多,系统就越健壮。当然,如果您的目标域与培训域不同,这是敏感的。添加到列表中的另一种图像预处理技术可能是照明校正。请参阅更多。还检查您是否考虑使用伽玛校正您的图像。值得注意的是,在本文中提到的平均值是“全球”的意思。所有图像都要减去全局平均值,而不是每个图像都要从自身减去自己的平均值。@Blahblahetchetc如果我不计算数据集的平均值和标准偏差,而是使用平均值和标准偏差,可以吗