目前,我正在努力实现一种在图像中定位对象的算法。假设我有100个训练集,每个训练集中都有一只猫,并且每只都有正确的坐标。我的第一个想法是创建一个固定大小的正方形并遍历图像。对于正方形中包含的每个像素集合,我们都可以将其用作支持向量机算法的一个点。
问题是我不确定该怎么做,因为通常每个点代表每个类(有对象或没有对象),并且通常具有简单的d特征,而在这种情况下,它具有dx3矩阵作为其功能(每个功能都有RGB值)。
欢迎使用简单的帮助,谢谢!
答案 0 :(得分:1)
如果我很好地理解了您的问题,则将机器学习应用于图像处理和计算机视觉与其他类型的问题有所不同。主要区别在于您应该以某种方式克服位置和规模问题。所有小猫都始终出现在特定坐标(x,y)中吗?当然不是!他们可以在场景中的任何地方。那么如何为对象的SVM提供特定点呢?它将不会一概而论。这就是为什么计算机视觉中几乎所有基本操作都与卷积操作有关,以提取独立于其位置的特征。一个像素单独携带零个有用信息,您需要分析像素组。您可以采用2种方法:
使用OpenCV使用SIFT之类的方法执行噪声去除,边缘检测,特征提取,并将这些特征提供给SVM等模型,而不是未处理的原始像素。特征提取意味着从 d 个特征到 k 个更有意义的输入表示形式,通常(k 卷积神经网络(CNN)揭示了许多计算机视觉任务,这些任务直到最近还遥不可及,更重要的是使用诸如 Keras 和 tensorflow 之类的框架。计算机视觉只是诚实的编程任务,不需要像以前一样需要太多知识。因为(CNN)本身会提取特征,所以您不再需要进行特征工程,而这需要在工作中受过良好教育的知识渊博的人。 所以,选择适合您的小猫检测方法= ^。^ =。