【发布时间】:2017-06-17 03:52:16
【问题描述】:
我正在尝试实现一个包含以下步骤的对象检测模块:
1) 使用 SURF 提取图像描述符,创建大小为 [x, 64] 的矩阵,其中 x 取决于图像中找到的关键点的数量;
2) 使用特征/词袋方法将描述符大小固定为 [k,64] 格式。其中 k 是使用 k-means 创建的集群的数量。
3) 使用生成的词袋矩阵作为训练样本来输入神经网络。
到目前为止,我已经实现了第 1 步和第 2 步,但我不太确定如何格式化 NN 的输出向量。在 OpenCV CvANN_MLP 上,输出向量中的行数应该与输入行数相同(否则返回 what() 异常),但输入行数是第 2 步中 k 个簇的数量,所以我我不明白如何基于此编写输出矩阵。
我知道输出矩阵应该有 n 列,对应于我想要的输出中的类数(例如 3 个类:猫、狗和鸟将在一个具有 3 列的矩阵上产生),但是我如何组织基于输入行的该矩阵的行?我读了这个相关的post,它使用matlab,它说每个特征应该是一行,但我不知道如何在OpenCV C++上做到这一点。 如果有人对如何进行此操作有任何想法/提示,将不胜感激。
【问题讨论】:
标签: opencv neural-network feature-detection object-detection surf