使用 Bag of words/features 和神经网络

Using Bag of words/features and neural network

我正在尝试实现包含以下步骤的对象检测模块:

1) 使用 SURF 提取图像描述符,创建大小为 [x, 64] 的矩阵,其中 x 取决于在图像中找到的关键点数量;

2) 使用 features/words 包方法将描述符大小固定为 [k,64] 格式。其中 k 是使用 k-means 创建的聚类数。

3) 使用生成的词袋矩阵作为训练样本为神经网络提供数据。

到目前为止,我已经实施了步骤 1 和步骤 2,但我不太确定如何格式化 NN 的输出向量。在 OpenCV CvANN_MLP 上,输出向量中的行数应与输入行数相同(否则 returns what() 异常),但输入行数是k 个簇在第 2 步,所以我不明白如何基于此编写输出矩阵。

我知道输出矩阵应该有 n 列对应于我想要的输出中 类 的数量(例如 3 类:猫、狗和鸟将在矩阵上产生3 列),但如何根据输入行组织此矩阵的行?我读了这个相关的 ,它使用 matlab 并且它说每个特征应该是一行,但我不确定如何在 OpenCV C++ 上执行此操作。 如果有人 idea/tips 知道如何进行,我们将不胜感激。

你这样做过吗:

However, before you train your neural network, as you suspected, you must represent every image you wish to train with this feature vector.

在为你的神经网络提供数据之前?我缺乏使用神经网络的经验,但是在阅读 和你的问题后,你似乎试图将 bag-of-words 集群提供给你的神经网络,这是不正确的。