# 2024-11-01 组会汇报

## 一、科研项目
- 无新进展
## 二、工程项目
### 2.1 梳理行人重识别服务流程
![alt text](image/person_reid_service.png)
### 2.2 代码实现行人重识别
1. 完成Facebook向量数据库Faiss GPU版本（CPU版本完全不能用，换成GPU版本结合批处理之后，效率提升了10倍左右）的接口适配
2. 完成Facebook键值数据库RocksDB（LevelDB的改进版）的接口适配，基本实现行人特征向量的数据持久化，存储耗时在当前行人情景下基本可以忽略不计
3. 基本打通行人重识别服务流程链路，需要进一步优化耗时以及准确率
### 2.3 待办事项
- 视频流卡顿问题
  - 当前结果：目前Faiss是对每一张图片都进行行人检索，然后实时更新每一张检索出来的行人特征向量；8张图片完成整个过程，平均下来大概需要60ms左右![alt text](image/search.png)
  - 尝试方向
    1. 考虑是faiss::gpu::GpuIndexFlat暴力匹配太慢了，换成faiss::gpu::GpuIndexIVFPQ利用倒排索引以及乘积量化的方法优化一下应该会更快
    2. 使用fast-reid提取行人特征时的耗时是最大的，8张图片的情况下，大概需要160ms左右；之前的目标跟踪非常流畅是由于deepsort跟踪算法的耗时几乎可以忽略；然而，在行人重识别服务中，由于需要对每一张图片都进行检索和更新，所以耗时会增加很多；目前针对特征提取这块的优化，还没有头绪
- ID Switch问题
  - 当前结果：行人重叠或者背景变换较大时，会有ID Switch现象
  - 尝试方向
    1. 目前由于Faiss的GPU版本没有实现删除特征向量的方法，所以现在基本没有对特征向量进行更新，而是沿用行人第一次出现的特征向量的ID，这也许是导致出现ID Switch现象的原因，考虑实现一个更新特征向量的方法![alt text](image/remove_id.png)
- HTTP客户端
  - 目前没有走到发送HTTP消息时，等待解决上述问题之后，再考虑HTTP消息的构造与发送

[项目链接](https://github.com/dancing-ui/uestc_vhm)