当前位置:首页 > 工业园区 >计算机视觉对图像进行哪三个层处理(计算机视觉 图像处理 区别)

计算机视觉对图像进行哪三个层处理(计算机视觉 图像处理 区别)

介绍

它包括适合传统图像的数据处理和适合深度学习的数据处理。

计算机视觉对图像进行哪三个层处理(计算机视觉 图像处理 区别)

简介:

在过去几年从事多个计算机视觉和深度学习项目之后,我在这个博客中收集了关于如何处理图像数据的想法。预处理数据基本上比直接将其输入深度学习模型更好。有时,甚至可能不需要深度学习模型,经过一些处理后,一个简单的分类器就足够了。

最大化信号并最小化图像中的噪声可以使当前的问题更容易处理。在构建计算机视觉系统时,您应该考虑使用滤镜来增强功能并使图像对光照、颜色变化等更加鲁棒。

考虑到这一点,让我们探索一些可以帮助解决经典计算机视觉或基于图像的深度学习问题的方法。相关代码库:https://github.com/bikramb98/image_processing。

1.先简单后深入:

在应用最新、最好的深度学习来解决问题之前,请尝试经典的计算机视觉技术。特别是当数据可能稀缺时,就像许多现实世界问题的情况一样。

检查计算图像像素的统计数据(例如平均值、峰度、标准差)是否会导致不同类别的不同统计数据。然后可以根据这些值训练SVM、KNN 等简单分类器,以在不同类之间进行分类。

2、提高图像信噪比:

在将图像输入深度学习模型之前,检查预处理技术是否增强了图像的主要特征并提高了信噪比。这将有助于模型获得更好的准确性。

使用阈值处理、腐蚀和膨胀等噪声消除技术以及高斯模糊(平滑边缘)和中值模糊(消除椒盐噪声)等模糊技术。

对于不同的问题,不同的操作可能会以不同的顺序有用。

常见的做法是多次使用特定的运算符,然后在几个步骤后再次应用它(如果它增强了功能)。

找到不同内核大小的滤波器、阈值等的最佳组合(这些组合的数量可能有数百万!)可以生成产生最佳结果的图像。您可以通过构建交互式滑块来帮助找到这些值的理想范围。

3.直方图均衡化

增强图像特征的另一种方法是使用直方图均衡化。直方图均衡化提高了图像的对比度。直方图均衡的目的是均匀分布出现次数最多的像素值。

让我们看下面的例子。

正如您所看到的,上图中的对比度非常低。在这种情况下,增加对比度以使图像的特征更加清晰可见是很重要的。 OpenCV 提供了两种技术来执行此—— 直方图均衡化和对比度限制自适应直方图均衡化(CLAHE)。

应用直方图均衡化,图像的对比度确实得到改善。然而,它也会增加图像中的噪点,如下图中间所示。

这就是CLAHE 的用武之地。使用这种方法,将图像分为m x n 网格,然后对每个网格应用直方图均衡化。可以使用交互式滑块找到理想的对比度阈值和网格大小,如下所示。

交互式滑块可找到最佳阈值和图块大小值

从左到右:原始图像、直方图均衡图像、CLAHE图像

4.图像色彩空间变换:

将图像转换为不同的颜色空间(例如HSV)通常可以为分割对象提供更好的信息,以便在对象跟踪等情况下使用。一般来说,RGB 颜色空间对于影响对象颜色的阴影和光照的轻微变化并不鲁棒。对于使用经典计算机视觉进行对象跟踪等任务,由于上述原因,在稍微不同的环境中使用时,RGB 空间中的调试蒙版通常会失败。此外,一旦图像转换到不同的空间(例如HSV),分离通道通常有助于分割感兴趣的区域并消除噪声。如下图所示,一旦将图像转换为HSV 空间并分割通道,就可以更轻松地去除阴影并分割网球。

不同的色彩空间(RGB、HSV)及其分量分割

5.归一化图像:

如果将图像输入深度学习模型,则必须使用批量归一化等技术对其进行归一化,这将有助于标准化网络的输入。这将有助于网络更快、更稳定地学习。批量归一化有时也会减少泛化误差。

6. 进行有意义的增强:

增强图像时,确保所应用的增强技术保留图像的类别并类似于现实世界中遇到的数据。例如,对狗的图像应用裁剪增强可能会导致增强后的图像看起来不像狗。在使用旋转和翻转增强某些目标的情况下也是如此。增强时更改图像属性(例如颜色)时要非常小心。另外,请确保增加数据不会更改图像的标签。

始终检查增强的图像是否有意义并反映现实世界。

随机裁剪等增强功能如何导致数据损坏的示例

7、训练集和验证集的数据泄露:

确保相同的图像(例如原始图像和增强图像)不会同时出现在训练和验证集中非常重要。当在训练/验证集分割之前执行数据增强时,通常会发生这种情况。忽略这一点可能会导致给出不正确的模型指标,因为它将在训练期间从验证集中也存在的非常相似的图像中学习。

8.所有类别都需要包含在测试集和验证集中:

确保测试集和验证集包含所有标记样本。这样,模型指标就反映了模型的真实性能。

以其中一个标签的样本数量明显较少的情况为例。执行随机的训练测试集分割可能会导致标签较少的类根本不会出现在验证/测试集中。当测试经过训练的模型时,不会在该特定类上进行测试,并且模型指标不能反映其性能的真实表示。

9.后处理完整性检查:

模型训练完成后,执行一些健全性检查也很重要:

在多类分类器的情况下,确保所有类的输出之和为1。

确保在测试或部署模型时也应用训练期间应用于图像的预处理。

审稿人:李茜

最新资讯

推荐资讯