旷视开源了一套图像检索和 ReID 的 PyTorch 库,论文“PyRetri: A PyTorch-based Library for Unsupervised Image Retrieval by Deep Convolutional Neural Networks”介绍了其主要内容。
01 架构
在特征提取阶段,包含:数据增强(Data Augmentation对图像做各种变换)、骨干网选择(Backbone,使用不同的骨干网架构和预训练模型)、特征聚合(Aggregation,将不同网络提取的特征聚合成一个特征向量)。
在索引阶段,包含:维度处理(Dimension Process,PCA降维等)、特征增强(Feature Enhance)、距离度量(Distance Metric,衡量样本之间的相似性)、重排序(Rerank,对相似度较高的图像按照再次查询等方法重新排序)。
在评估阶段,包含:结果量化(Quantitative results)和可视化(Visualization)。
02 方法
该库目前支持的方法:
DirectResize (DR): 将图像长宽缩放到目标大小; PadResize (PR): 根据图像长边将图像等比例缩放到目标大小,空白区域用ImageNet均值填充; ShorterResize (SR): 根据图像短边将图像等比例缩放到目标大小; TwoFlip (TF): 返回原始图像和水平翻转图像; CenterCrop (CC): 从图像中心crop出目标大小的图像区域; TenCrop (TC): crop图像并按照上下左右翻转
3、后处理方法:
SVD : 使用矩阵SVM分解降维; PCA : PCA降维度; DBA : 数据库中每一个特征用它自己和自己的近邻的加权和表示; QE : 使用返回的 top-k 近邻 和原始查询图像再进行一次检索; k-reciprocal : 编码K个倒数最近邻,增强检索精度。
03 结果
作者在基于内容的图像检索(CBIR)和行人重识别(ReID)常用数据集 Oxford5k、CUB-200-2011、Indoor、Caltech101、Market-1501上进行了实验。
使用 PyRetri 检索时各阶段用时比较:
论文地址:
https://arxiv.org/abs/2005.02154
代码地址:
https://github.com/PyRetri/PyRetri
模型下载:
官方不仅开源了代码,也提供了在ImageNet、Places365、Market-1501、DukeMTMC-reID数据集上的预训练模型,可惜国内无法下载。