【问题标题】:What is an appropriate feature extraction for object detection?什么是对象检测的合适特征提取?
【发布时间】:2019-02-14 14:22:37
【问题描述】:

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

【问题讨论】:

    标签: matlab image-processing


    【解决方案1】:

    准确率低可能与特征提取本身有关,也可能无关。没有它我认为你的准确性仍然很低,我认为这也与训练或其他部分有关。我不能具体,因为你没有提供任何细节。同样对于 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 边缘检测。 Canny 边缘检测器通常将灰度图像作为输入,并创建一个输出图像来显示不连续性的强度位置。Canny 边缘检测器所做的第一件事是它使用高斯卷积来平滑输入图像并去除噪音。然后,将一阶导数算子应用于平滑后的图像,以选择图像中具有高一阶空间导数的区域。算法的下一步是通过计算 x 导数和 y 导数来找到梯度的大小和方向,梯度的这些方向允许我们找到边缘的方向。在找到梯度方向后,canny 边缘检测器执行非最大抑制,这意味着它跟踪从边缘上升的脊的顶点,并通过生成细线将这些脊设置为零。换句话说,我们检查计算的梯度在正负梯度方向的相邻点中是否最大。如果梯度最大,则将其视为边缘的一部分,反之亦然。

    总结使用 RBG to GREY、Median Filter 和 Canny Edge Detector。请注意,对于普通计算机,此过程可能需要 5 分钟以上才能处理 50.000 张图像。所以要有耐心。 亲切的问候。

    【讨论】:

    • 是的,我使用了那个数据集,它确实有 50000 张图像。很抱歉造成混乱。我将尝试该方法,感谢您的明确解释。
    【解决方案2】:

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

    【讨论】:

    • 是的,但遗憾的是我没有使用 CNN 的经验 :(
    猜你喜欢
    • 2018-10-02
    • 2021-05-23
    • 2020-09-01
    • 2013-08-21
    • 2011-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多