中国科学院自动化研究所&QMUL联合发布了基于 Pytorch 的轻量化行人重识别(person re-identification, reid)开源工具箱 light-reid。不同于已有开源 reid 工具箱往往关注于精度,该工具箱在保证精度的同时,可以一键加速 reid 模型,推理3x、图像搜索20x。应用于该工具箱的部分加速模块已经被 ECCV2020 接收。(注:本文 reid 特指 person reid,即行人重识别)
GitHub:https://github.com/wangguanan/light-reid Paper:https://arxiv.org/abs/2008.06826
————————————————————————————————————————
作者介绍
王贯安,中国科学院自动化研究所博士,英国伦敦玛丽王后学院(Queen Mary University of London,QMUL)访问学者。研究方向为计算机视觉,特别是行人重识别、哈希、生成对抗网络等,目前已发表顶级论文9篇,包括CVPR/ICCV/ECCV/AAAI/IJCAI等。个人主页:https://wangguanan.github.io/
————————————————————————————————————————
什么是reid,如何实现
图:行人重识别(来自于网络)
简单理解就是,我们需要根据某行人A的图像,在图像候选集中找到该行人A的其他图像。reid 技术在实际场景中有着很重要的作用。reid 技术可以在一个监控系统中,构建行人的运动轨迹,并应用到各种下游任务。
比如在小区监控系统中,我们在某个时刻锁定犯人A,根据 reid 算法,我们就可以在整个监控系统的中,自动的找出犯人A在整个小区监控中出现的图片,并确定他的运动轨迹,最终辅助警察抓捕。再比如在智慧商业场景中,我们可以根据 reid 算法描绘出每个消费者的商场运动轨迹和区域驻留时间,从而优化客流、辅助商品推荐等。
reid 算法可以分解为以下3步:
特征提取:给定一个查询图片(query image)和大量的数据库图片(gallery images),提取出它们的语义特征。在这个特征空间,同一个人的图片距离尽可能小,不同人图片距离尽可能大。目前主流的 reid 算法使用深度卷积神经网络(CNN,如 ResNet50)提取特征。 距离计算:得到查询特征(query feature)和数据库特征(gallery features)后,计算查询图片和数据库图片的距离。通常使用欧式(euclidean)、余弦(cosine)距离等。 排序返回:得到距离后,我们可以使用排序算法对样本进行排序,通过卡距离阈值或者K近邻的方法,返回最终样本。一般使用快速排序算法(QuickSort),其复杂度是 O(NlogN),N 为数据库图片数量。
什么是light-reid
图:light-reid 框架
light-reid 框架如上图所示, 一共分为3个模块,分别是 light-model (轻量化模型),light-feature(轻量化特征)以及 light-search(轻量化搜索):
总结
reid 社区目前已经多个工具箱以及 baseline,它们极大的促进了 reid 技术的发展。但美中不足的是,它们主要关注精度,却忽视了速度这个重要指标。我们提出的 light-reid 工具箱在关注精度的同时,提供了一键式的加速算法,提高推理以及搜索速度。结合已有 reid 工具箱,我们的 light-reid 完善了 reid 工具箱的生态,从精度,到速度,再到工业应用,形成良好闭环。
Author:https://wangguanan.github.io/ GitHub:https://github.com/wangguanan/light-reid Paper:https://arxiv.org/abs/2008.06826