我对使用 BOVW 进行 CBIR 的步骤感到非常困惑。我找到了很多关于分类、机器学习和 SVM 的文献,但这并不是我想要的。
我的问题与使用图像查询在数据库中搜索图像相似性有关。
到目前为止我的步骤:
- 提取特征(例如:ORB、BRISK、SIFT...)。
- 将所有图像的特征存储到磁盘。
- 读取特征并计算 K-means 以获得质心(我的词汇,对吗?)
现在我被困住了。我发现了许多不同的方法来进行。
这是我的假设:
- 对于每个 k-means 计算最近邻(FLANN?)
- 用一组最近邻构建直方图
我是否还必须为每个图像提取字典,然后对图像进行索引?
为什么需要矢量量化(步骤 4 和 5)?
你能建议我一种可能的方法,或者关于这个主题的任何文章、教程吗?
注意:对于 BOVW 的实现,我不能使用 OpenCV,因为它不适用于二进制描述符,所以我需要尝试使用sklearn库。