如何使用可变大小的原始图像块训练 SVM?
How to train SVM using variable size raw image patch?
我想训练一个分类器在 "person with weapon" 和 "person without weapon" 之间进行分类。 weapon 可以包含任何武器,如左轮手枪或突击步枪。
我有图像中带有武器边界框的图像。图片大小不一。
我想做什么?
我想使用武器边界框坐标获得的原始图像块来训练 SVM 分类器。对于 "person without weapon" 我想将整个原始图像作为特征向量传递给 SVM。
限制:
每个边界框的大小不同,这意味着武器的大小不同。我不能对这些边界框使用 PCA,因为我认为这可能会导致信息丢失,因为 images.Some 中有 3 种不同大小的武器,边界框几乎覆盖了整个图像。所以首先我必须缩小图像和边界框,否则如果我为 PCA 拍摄整个图像,我的内存就会耗尽。
问题:
如何使用可变大小的特征向量训练 SVM?换句话说,如何在不丢失信息的情况下使所有特征向量大小相同?
因为您有可变大小的补丁,所以有几种方法可以使用 SVM 处理这些补丁的 class化。这些都有其优点和缺点,因此您必须决定您认为最好的。鉴于您已决定为要提交到 SVM 以进行 classification 的图像选择大小为 M x N
的补丁,您可以尝试以下两种方法之一:
调整输入图像块的大小
对于测试时的每个图像,调整它们的大小,使它们都匹配 M x N
的大小,然后 运行 通过 SVM class 化管道来确定哪个 class 该图像属于。这样做的好处是,您丢失的唯一信息是由于对图像进行子采样时丢失的信息。但是,缺点是如果图像小于 M x N
的目标补丁大小,则在上采样以匹配目标补丁大小时会引入虚假信息。这种事情以前见过,尤其是在深度学习中。具体来说,Region Proposal Networks by Ren et al. 首先查看较大图像中的哪些补丁是候选对象或图像中值得一看的东西,然后他们 调整大小 补丁将输入层匹配到他们的神经网络(卷积 btw)然后继续 class化。
在多个尺度上搜索补丁
另一种方法是保持图像大小不变,但使用 M x N
的补丁大小,执行滑动 window 方案,提取大小 M x N
的重叠补丁,将这些提交到然后,您的 SVM 对于每个重叠补丁的每个中心,确定该补丁的 class 是什么。您可以在多个尺度上执行此操作,然后进行投票程序,其中在整个图像上出现次数最多的 class 是感兴趣的 class。在 Semenet et al. for their Overfeat classification engine 中看到了类似的东西 - 也使用了卷积神经网络。这样做的好处是您不会丢失任何信息,因为在 class 化一个对象时您正在使用所有(如果不是大部分)图像信息。缺点是所需的计算时间——具体来说,比例数、windows 之间的重叠量和补丁大小本身都是您需要确定以获得最佳性能的超参数。这种方法还假设在扫描时补丁大小小于所讨论的图像。您必须意识到并选择小于训练数据集中最大图像的补丁大小。
如果我能推荐....
因为您正在进行图像 class化,所以在 class化中具有最佳性能并且在测试时速度极快的算法将是卷积神经网络。我会考虑查看这些而不是使用 SVM 来提高性能。首先,先看看 AlexNet pipeline by Krizhevsky et al.。这是 的开创性工作,以及卷积神经网络如何在计算机视觉任务(例如 class化、检测等)的地图上发挥作用。
我想训练一个分类器在 "person with weapon" 和 "person without weapon" 之间进行分类。 weapon 可以包含任何武器,如左轮手枪或突击步枪。
我有图像中带有武器边界框的图像。图片大小不一。
我想做什么?
我想使用武器边界框坐标获得的原始图像块来训练 SVM 分类器。对于 "person without weapon" 我想将整个原始图像作为特征向量传递给 SVM。
限制:
每个边界框的大小不同,这意味着武器的大小不同。我不能对这些边界框使用 PCA,因为我认为这可能会导致信息丢失,因为 images.Some 中有 3 种不同大小的武器,边界框几乎覆盖了整个图像。所以首先我必须缩小图像和边界框,否则如果我为 PCA 拍摄整个图像,我的内存就会耗尽。
问题:
如何使用可变大小的特征向量训练 SVM?换句话说,如何在不丢失信息的情况下使所有特征向量大小相同?
因为您有可变大小的补丁,所以有几种方法可以使用 SVM 处理这些补丁的 class化。这些都有其优点和缺点,因此您必须决定您认为最好的。鉴于您已决定为要提交到 SVM 以进行 classification 的图像选择大小为 M x N
的补丁,您可以尝试以下两种方法之一:
调整输入图像块的大小
对于测试时的每个图像,调整它们的大小,使它们都匹配 M x N
的大小,然后 运行 通过 SVM class 化管道来确定哪个 class 该图像属于。这样做的好处是,您丢失的唯一信息是由于对图像进行子采样时丢失的信息。但是,缺点是如果图像小于 M x N
的目标补丁大小,则在上采样以匹配目标补丁大小时会引入虚假信息。这种事情以前见过,尤其是在深度学习中。具体来说,Region Proposal Networks by Ren et al. 首先查看较大图像中的哪些补丁是候选对象或图像中值得一看的东西,然后他们 调整大小 补丁将输入层匹配到他们的神经网络(卷积 btw)然后继续 class化。
在多个尺度上搜索补丁
另一种方法是保持图像大小不变,但使用 M x N
的补丁大小,执行滑动 window 方案,提取大小 M x N
的重叠补丁,将这些提交到然后,您的 SVM 对于每个重叠补丁的每个中心,确定该补丁的 class 是什么。您可以在多个尺度上执行此操作,然后进行投票程序,其中在整个图像上出现次数最多的 class 是感兴趣的 class。在 Semenet et al. for their Overfeat classification engine 中看到了类似的东西 - 也使用了卷积神经网络。这样做的好处是您不会丢失任何信息,因为在 class 化一个对象时您正在使用所有(如果不是大部分)图像信息。缺点是所需的计算时间——具体来说,比例数、windows 之间的重叠量和补丁大小本身都是您需要确定以获得最佳性能的超参数。这种方法还假设在扫描时补丁大小小于所讨论的图像。您必须意识到并选择小于训练数据集中最大图像的补丁大小。
如果我能推荐....
因为您正在进行图像 class化,所以在 class化中具有最佳性能并且在测试时速度极快的算法将是卷积神经网络。我会考虑查看这些而不是使用 SVM 来提高性能。首先,先看看 AlexNet pipeline by Krizhevsky et al.。这是 的开创性工作,以及卷积神经网络如何在计算机视觉任务(例如 class化、检测等)的地图上发挥作用。