图像检索:拓展查询(Query Expansion)
拓展查詢(QE, Query Expansion): 指對返回的前top@K個結(jié)果,包括查詢樣本本身,對它們的特征求和取平均,再做一次查詢,此過程稱為拓展查詢。
從上面的定義可以看出,拓展查詢屬于重排的一種方式。通過Query Expansion,以達(dá)到提高檢索召回率的目的。前面的博文RANSAC算法做直線擬合曾介紹過RANSAC的基本思想,放在詞袋模型里(相應(yīng)博文見圖像檢索:BoW圖像檢索原理與實戰(zhàn)),我們可以使用RANSAC方法或Weak Geometry Consistency方法做幾何校正,進(jìn)行重排以提高檢索的精度。在這篇博文中,小白菜暫時拋開其他的重排方法,重點(diǎn)分析Query Expansion對圖像檢索精度的提升。
根據(jù)小白菜讀圖像檢索論文獲得的對Query Expansion的感知,做完Query Expansion能夠獲得百分之幾的精度提升。為了證實Query Expansion對檢索精度的改善,在過去一段時間里,小白菜在Oxford Building數(shù)據(jù)庫上對其做了驗證。下面是小白菜對Query Expansion的實驗整理和總結(jié)。
特征表達(dá)
Oxford Building圖像數(shù)據(jù)庫,每一幅圖像提取的是一個512維的CNN特征,即對于Oxford Building圖像數(shù)據(jù)庫,我們得到5064個512維的特征。
特征索引
直接采用brute線性掃描,因為圖庫才5064張圖像,所以沒必要建索引。在實際應(yīng)用中,我們可以采用哈希、倒排PQ等方式,這一部分可以細(xì)講很多,有機(jī)會的話,小白菜單獨(dú)拿一個篇幅整理實用的索引方法。
評價指標(biāo)
實驗評價指標(biāo)采用平均檢索精度(mAP, mean average precision), mAP如何計算可以閱讀信息檢索評價指標(biāo),里面有對mAP如何計算的詳細(xì)介紹。
對于Oxford Building圖像數(shù)據(jù)庫,mAP的計算過程有必要詳細(xì)介紹一下。Oxford Building的groundtruth有三類:good, ok和junk。對于某個檢索結(jié)果,如果它在good和ok中,則被判為是與查詢圖像相關(guān)的;如果在junk中,則被判為是不相關(guān)的。我們可以細(xì)致的閱讀一下Oxford Building的mAP計算代碼:
float compute_ap(const set<string>& pos, const set<string>& amb, const vector<string>& ranked_list){float old_recall = 0.0;float old_precision = 1.0;float ap = 0.0;size_t intersect_size = 0;size_t i = 0;size_t j = 0;for ( ; i<ranked_list.size(); ++i) {if (amb.count(ranked_list[i])) continue;if (pos.count(ranked_list[i])) intersect_size++;float recall = intersect_size / (float)pos.size();float precision = intersect_size / (j + 1.0);ap += (recall - old_recall)*((old_precision + precision)/2.0);old_recall = recall;old_precision = precision;j++;}return ap; }其中,pos即是由good和ok構(gòu)成的set,amb是junk構(gòu)成的set,ranked_list即查詢得到的結(jié)果。可以看到Oxford Building上計算的AP是檢索準(zhǔn)確率(precision)和檢索召回率(recall)曲線圍成的面積(梯形面積,積分思想),mAP即是對AP的平均。
理解完了Oxford Building的mAP計算過程,還有一個需要考慮的問題是:對于查詢圖像特征的提取,我們要不要把Oxford Building提供的區(qū)域框用上,即在提取特征的時候,我們是在整個圖像提取特征,還是在區(qū)域框內(nèi)提取特征?在圖像檢索的論文中,在計算Oxford Building的mAP時,都是在區(qū)域框內(nèi)提取特征。但是放在實際中,我們肯定是希望我們的圖像檢索方法能夠盡可能的減少交互,即在不框選區(qū)域的時候,也能夠取得很好的檢索精度。所以,基于這樣的意圖,在實際中測評檢索算法的mAP時,小白菜更喜歡采用在整個圖像上提取特征的方式。當(dāng)然,如果不嫌麻煩的話,可以兩種方式都測評一下。
查詢拓展對mAP的提升
庫內(nèi)查詢,所以返回的top@1為查詢圖像自身,并且采用的是全圖查詢(即上面提到的對于查詢圖像是在整個圖像上提取特征,而不是在區(qū)域框內(nèi)提取特征),表中top@K表示取前K個樣本求和取平均。
| MAP | 61.91% | 61.91% | 65.42% | 66.52% | 66.07% | 66.38% | 66.51% | 65.65% | 65.16% | 63.46% | 62.41% |
上面表格中mAP隨top@K用曲線表示如下:
在不做Query Expansion的時候,即top@K=0時,mAP為61.91%。因為查詢屬于庫內(nèi)查詢,所以top@K=1時,仍然是查詢向量本身,故結(jié)果與top@K=0是一樣的。從實驗的結(jié)果可以看出,Query Expansion確實能夠提升檢索的精度,在top@K=3的時候,取得了最高的檢索精度。相比于不做Query Expansion,Query Expansion可以提高4%-5%的檢索精度。
所以,在實際中,做Query Expansion完全是有必要的,一則是它實現(xiàn)簡單,二則是它提升的效果還是比較明顯的。
from:?http://yongyuan.name/blog/cbir-query-expansion.html?
總結(jié)
以上是生活随笔為你收集整理的图像检索:拓展查询(Query Expansion)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图像检索:再叙ANN Search
- 下一篇: 图像检索:Fisher Informat