曠視開源了一套影像檢索和ReID的PyTorch庫

我愛計算機視覺發表於2020-05-09

曠視開源了一套影像檢索和 ReID 的 PyTorch 庫,論文“PyRetri: A PyTorch-based Library for Unsupervised Image Retrieval by Deep Convolutional Neural Networks”介紹了其主要內容。

曠視開源了一套影像檢索和ReID的PyTorch庫


01 架構

深度學習影像檢索無監督方法的架構:
曠視開源了一套影像檢索和ReID的PyTorch庫
  • 在特徵提取階段,包含:資料增強(Data Augmentation對影像做各種變換)、骨幹網選擇(Backbone,使用不同的骨幹網架構和預訓練模型)、特徵聚合(Aggregation,將不同網路提取的特徵聚合成一個特徵向量)。

  • 在索引階段,包含:維度處理(Dimension Process,PCA降維等)、特徵增強(Feature Enhance)、距離度量(Distance Metric,衡量樣本之間的相似性)、重排序(Rerank,對相似度較高的影像按照再次查詢等方法重新排序)。

  • 在評估階段,包含:結果量化(Quantitative results)和視覺化(Visualization)。

0方法

該庫目前支援的方法:

1、前處理方法:
  • DirectResize (DR): 將影像長寬縮放到目標大小;
  • PadResize (PR): 根據影像長邊將影像等比例縮放到目標大小,空白區域用ImageNet均值填充;
  • ShorterResize (SR): 根據影像短邊將影像等比例縮放到目標大小;
  • TwoFlip (TF): 返回原始影像和水平翻轉影像;
  • CenterCrop (CC): 從影像中心crop出目標大小的影像區域;
  • TenCrop (TC): crop影像並按照上下左右翻轉
2、特徵表示方法:

曠視開源了一套影像檢索和ReID的PyTorch庫

3、後處理方法:

  • SVD : 使用矩陣SVM分解降維;
  • PCA : PCA降維度;
  • DBA : 資料庫中每一個特徵用它自己和自己的近鄰的加權和表示;
  • QE : 使用返回的 top-k 近鄰 和原始查詢影像再進行一次檢索;
  • k-reciprocal : 編碼K個倒數最近鄰,增強檢索精度。
特別值得一提的是,為了降低使用者選擇不同演算法和超引數配置的難度,PyRetri提供了自動化的配置搜尋工具,可根據使用者定義的搜尋空間和搜尋指令碼,自動選擇最優的演算法流程。

03 結果

作者在基於內容的影像檢索(CBIR)和行人重識別(ReID)常用資料集 Oxford5k、CUB-200-2011、Indoor、Caltech101、Market-1501上進行了實驗。

曠視開源了一套影像檢索和ReID的PyTorch庫

上表列出了透過搜尋配置得到的前三個演算法配置和每個資料集上的baseline方案結果的比較,可見使用官方推薦的配置工具,大大提高了檢索mAP!

使用 PyRetri 檢索時各階段用時比較:

曠視開源了一套影像檢索和ReID的PyTorch庫

可見每幅影像平均時間還不到 8ms。
以下是在ReID問題上的實驗結果:

曠視開源了一套影像檢索和ReID的PyTorch庫


可見,PyRetri 較好的復現了經典論文的結果,而且如果使用自動搜尋配置的方法,能大幅提高精度!超過原方案10個百分點之多!

論文地址:

https://arxiv.org/abs/2005.02154

程式碼地址:

https://github.com/PyRetri/PyRetri

模型下載:

官方不僅開源了程式碼,也提供了在ImageNet、Places365、Market-1501、DukeMTMC-reID資料集上的預訓練模型,可惜國內無法下載。

相關文章