PyRetri 图像检索和 ReID 的 PyTorch 库
PyRetri 是基于PyTorch的无监督的深度学习图像检索工具箱,也是ReID 的 PyTorch 库。这个库是为研究者及工程师设计的。
主要特征有:
1、模块化设计:将基于深度学习的无监督图像检索分解为几个阶段,用户可以通过选择和组合不同的模块,轻松构建图像检索流程。
2、灵活加载:工具箱能够适应加载多种类型的模型参数。
3、支持多种方法:直接支持多种受欢迎的方法,这些方法是基于无监督图像检索的深度学习的方法,也适用于人的再识别。
4、可配置的搜索工具:我们提供配置搜索工具,帮助用户找到各种超参数的最佳检索配置。
目前支持的各种方法:
1、预处理方法:
DirectResize (DR): 将图像长宽缩放到目标大小;
PadResize (PR): 根据图像长边将图像等比例缩放到目标大小,空白区域用ImageNet均值填充;
ShorterResize (SR): 根据图像短边将图像等比例缩放到目标大小;
TwoFlip (TF): 返回原始图像和水平翻转图像;
CenterCrop (CC): 从图像中心crop出目标大小的图像区域;
TenCrop (TC): crop图像并按照上下左右翻转
ToTensor,ToCaffeTensor
Normalize
2、特征表示方法:
Global Average Pooling (GAP),
Global Max Pooling (GMP) R-MAC, SPoC, CroW, GeM, SCDA, PWA PCB
3、后处理的方法:
SVD : 使用矩阵SVM分解降维;
PCA : PCA降维度;
DBA : 数据库中每一个特征用它自己和自己的近邻的加权和表示;
QE : 使用饭就的 top-k 近邻 和原始查询图像再进行一次检索;
k-reciprocal : 编码K个倒数最近邻,增强检索精度。
特别值得一提的是,为了降低用户选择不同算法和超参数配置的难度,PyRetri提供了自动化的配置搜索工具,可根据用户的输入搜索空间和搜索脚本,自动选择最优的算法流程。
依赖包:
Linux (Windows未正式支持) Python 3 PyTorch 1.2.0 or higher torchvison 0.4.0 or higher numpy sklearn yacs tqdm
验证了的各包的版本,参考,Python 3.5,PyTorch 1.2.0,torchvision 0.4.0,numpy 1.17.2, sklearn 0.21.3,tqdm 4.36.1
安装PyRetri
1、先安装PyTorch,torchvision
2、在安装PyRetri
下载PyRetri,进入到PyRetri目录下。执行脚本:python3 setup.py install
准备数据集:
数据集 Oxford5k、CUB-200-2011、Indoor、Caltech101、Market-1501。
需要先拆分数据集,执行如下脚本:
python3 main/split_dataset.py [-d ${dataset}] [-sf ${split_file}]
使用的例子:
python3 main/split_dataset.py -d /data/caltech101/ -sf main/split_file/caltech_split.txt
模型:
提供了在ImageNet、Places365、Market-1501、DukeMTMC-reID数据集上的预训练模型,需下载。