什么是适合物体检测的适当特征提取?

时间:2019-02-14 06:07:37

标签: matlab image-processing

您好,我正在研究一个对对象进行分类的项目。我为此项目使用MLP,它可以从10个不同的对象中对一个对象进行分类。但是我的准确度大约是%50。我想改进它,我使用500.000张图像作为数据集,所以这绰绰有余。现在,我正在使用原始图像作为输入。此项目合适的特征提取方法是什么?

2 个答案:

答案 0 :(得分:0)

您是否考虑过为此项目使用卷积神经网络?与MLP相比,CNN在图像分类上要优越得多。 https://machinelearningmastery.com/when-to-use-mlp-cnn-and-rnn-neural-networks/

答案 1 :(得分:0)

低精度可能与特征提取本身无关,也可能无关。没有它,我认为您的准确性仍然很低,我认为这也与培训或其他方面有关。由于您没有提供任何细节,我无法具体说明。同样对于CIFAR-10,我相信您使用的是toronto.edu的数据集,它具有50.000图像而不是500.000。只是为了防止混乱。      无论如何,对于您的问题,有很多特征提取方法,但是我会使用Canny Edge Detector。完成步骤:F

  • 首先,您必须具有灰度图像,我假设您的图像是RGB。在图像处理领域,有很多方法可以将rgb转换为灰度图像,但是,您可以选择Photoshop也使用的方法。这种转换方法将每个通道乘以人眼感知光的权重值。 灰色=(红色* 0.3 +绿色* 0.59 +蓝色* 0.11) 将其应用于所有50.000张图像,并将输出保存在3维矩阵中。
  • 中值滤波:现在,第一步之后,您需要消除噪音。您的GRAYScale图像将有胡椒和盐味的噪点,当检测到对象的边缘时,此噪点可能会成为障碍,为了使用中值滤镜消除此噪点。当使用中值滤波器时,通过消除图像中因脉冲噪声而失真的局部亮度峰值并保持图像中对象的边界和阴影,可以获得良好的效果。仍然保留有关图像中对象的信息。对象的边界完美平滑,并且不受滤镜的影响,这意味着我们可以检索对象的边缘而不会丢失有关该对象的任何信息。

-最后一步:Canny Edge Detection。 Canny边缘检测器通常以灰度图像作为输入并创建一个输出图像,该图像显示不连续强度的位置。Canny边缘检测器要做的第一件事是使用高斯卷积平滑输入图像并去除噪音。然后,将一阶导数算子应用于平滑图像,以便选择图像中具有较高一阶空间导数的区域。该算法的下一步是通过计算x导数和y导数找到梯度的大小和方向,梯度的这些方向使我们能够找到边缘的方向。找到梯度方向后,Canny边缘检测器执行非最大抑制,这意味着它会跟踪从边缘上升的山脊的顶点,并通过产生一条细线将这些山脊设置为零。换句话说,我们检查计算出的梯度在正和负梯度方向上的相邻点中是否最大。如果渐变最大,则将其视为边缘的一部分,反之亦然。

总结起来,请使用RBG进行灰度显示,中值过滤器和Canny Edge Detector。请注意,对于一台普通计算机而言,此过程可能需要5分钟以上才能获取50.000张图像。所以要耐心点。 此致。