当前位置: 首页 > news >正文

reid查找余弦相似度计算修正(二)

上一篇文章

reid查找余弦相似度计算(一)

上一篇的遗留问题就是reid 的结果部分正确,我们参考一下
fast-reid的demo,把里面的抽取特征提取出来

修改提取特征

首先发现图像改变大小的不同,fast 使用的是[128,384], 如果使用[128,256] 会在高度上损失特征


# 提取特征 fast-reid 适用
def extract_features(image_path):
    original_image = cv2.imread(image_path)
    original_image = original_image[:, :, ::-1]
        # Apply pre-processing to image.
    image = cv2.resize(original_image, tuple(cfg.INPUT.SIZE_TEST[::-1]), interpolation=cv2.INTER_CUBIC)
    # Make shape with a new batch dimension which is adapted for
    # network input
    image = torch.as_tensor(image.astype("float32").transpose(2, 0, 1))[None].to(cfg.MODEL.DEVICE)
    with torch.no_grad():
        features = predictor(image)    
    features = F.normalize(features)
    features = features.cpu().numpy()            
    return features

其中维度转换:transpose(2, 0, 1) 对图像的维度进行转换。在 NumPy 数组表示的图像中,维度顺序通常是 (高度, 宽度, 通道),而 PyTorch 中的张量期望的维度顺序是 (通道, 高度, 宽度),所以这里进行了维度的调整。

图片增加

使用较多的三组图片
在这里插入图片描述
一种红色,一种蓝色,一种紫色,我们重新运行程序,来进行排序
在这里插入图片描述
可以看到c2,c3, c4 是接近的,红色人在中间,紫色背包人在最后,排序和相似度改进成功。

总结问题

模型训练时的输入尺寸不匹配
原因:如果模型是在 (256, 128) 尺寸的图像上训练的,那么模型的权重参数是针对这个特定尺寸学习得到的。当输入尺寸变为 (384, 128) 时,图像的特征分布发生了变化,模型可能无法很好地适应新的输入尺寸,从而导致性能下降。

其他改进

1 需要resize在gpu上进行,直接穿透进行tensor数据推理
2 需要进行视频输入,进行查找,进行gpu穿透
3 改进成faiss 来处理向量,而不进行手动计算
4 不限于使用fast reid,进而使用自己的reid

后面会循序渐进修改该程序

相关文章:

  • python-64-前后端分离之图书管理系统的Vue前端
  • 面向对象(OOP)
  • 跨浏览器 Tab 通信工具-emit/on 风格 API(仿 mitt)
  • 【Unity】Unity Transform缩放控制教程:实现3D模型缩放交互,支持按钮/鼠标/手势操作
  • Python 快速搭建一个小型的小行星轨道预测模型 Demo
  • 裴蜀定理扩展欧几里得定理
  • ssh密钥连接远程服务器并用scp传输文件
  • QAI AppBuilder 快速上手(8): 图像修复应用实例2
  • 网络带宽测速工具选择指南iperf3 nttcp tcpburn jperf使用详解
  • Vue 3 的<Teleport>功能与用法
  • 代码随想录算法训练营第十二天
  • 【ES系列】Elasticsearch从入门到精通保姆级教程 | 启篇
  • Java9新特性
  • Python 并发编程指南:协程 vs 多线程及其他模型比较
  • SpringBoot集成RedisSearch
  • 深度学习|注意力机制
  • 【Java中级】11章、注解、元注解介绍、快速入门,了解java注解的基本使用方式【2】
  • vscode 跳转失败之c_cpp_properties.json解析
  • 【从一个 TypeScript 报错理解 ES6 模块的三种导入方式】
  • 北京自在科技:让万物接入苹果Find My网络的″钥匙匠″