[英]OpenCV Clustering Bag Of Words K-Means
將SIFT Detector
和Extractor
與FlannBased Matcher
,並為BOWKMeansTrainer
設置Dictionary
,如下所示:
TermCriteria termCrit(CV_TERMCRIT_ITER, 100, 0.001);
int dictionarySize = 15; // -- Same as number of images given in
int retries = 1;
int flags = KMEANS_PP_CENTERS;
BOWKMeansTrainer trainBowTrainer(dictionarySize, termCrit, retries, flags);
群集提取的關鍵點的數組大小將為[128 x 15]
。
然后使用時BOWImgDescriptorExtractor
作為Extractor
上不同的一組15幅圖像,與先前提取的數組作為它的Vocabulary
,陣列出來的[15 x 15]
為什么?
關於這一切的實際運作方式,我找不到太多的地方,而只能放在哪里以及提供什么價值。
如果您有n
張圖像且k=15
,則結果應始終為[nx 15]
。
但是在第一輪中,您查看的是vocabular ,而不是第一張圖像的特征表示。 您看到的128
是SIFT維度; 這是15個“典型” SIFT向量; 它們不是您圖像的描述。
您需要閱讀BoW模型,以及為什么輸出結果應該是每個圖像的長度為k
(可能稀疏,即具有許多0)的向量。 我給您的印象是您期望這種方法為每個圖像生成一個128維特征向量。 另外,k = 15可能太小; 並且訓練數據集也太小。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.