【Person Re-ID】Deep-Person: Learning Discriminative Deep Features for Person Re-Identification

2023-11-21 19:40

本文主要是介绍【Person Re-ID】Deep-Person: Learning Discriminative Deep Features for Person Re-Identification,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

paper下载地址:https://arxiv.org/abs/1711.10658

Introduction

基于CNN方法的person re-id方法可以分为三类:

  • 基于全局描述的方法

  • 基于局部描述的方法

  • 结合全局描述和局部描述的方法

局部描述能够提取行人的一些细节信息,在大多数试验中都能比单独用全局描述的方法要好。通常的做法是将新人图像分割成几个rigid的块,然后每个块分别进行分类。这样的做法带来的弊端就是忽略了块与块之间的上下文信息,本文通过LSTM将图像看成是一个输入序列来记录行人的结构信息,然后用joint learning的方法将这种局部描述与全局描述结合起来。

Approach

主网络采用resnet-50,网络结构如下图所示,包括两方面的设计:

  1. 全局描述和局部描述的结合:全局描述和基于LSTM的局部描述能够增强网络的判别性。

  2. 基于softmax的分类loss和基于triplet的排序loss的结合:triplet loss帮助网络学习相似性度量(L2距离)。

网络主要包括两个部分:

  1. 主网络学习low-level特征

  2. 三个分支网络学习具有高度可分性的描述子,分别为

    • 基于局部描述的识别分支:将resnet-50最后一个卷积层的输出特征横向pooling做成一个sequence输入到双向LSTM中。
    • 基于全局描述的识别分支:将resnet-50最后一个卷积层的输出特征global pooling进行分类。
    • 基于triplet的排序分支:输入三元组,将resnet-50最后一个卷积层的输出特征global pooling求取triplet loss。

Experiment

Evaluation on Market-1501

Evaluation on CUHK03

这篇关于【Person Re-ID】Deep-Person: Learning Discriminative Deep Features for Person Re-Identification的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/404637

相关文章

4-4.Andorid Camera 之简化编码模板(获取摄像头 ID、选择最优预览尺寸)

一、Camera 简化思路 在 Camera 的开发中,其实我们通常只关注打开相机、图像预览和关闭相机,其他的步骤我们不应该花费太多的精力 为此,应该提供一个工具类,它有处理相机的一些基本工具方法,包括获取摄像头 ID、选择最优预览尺寸以及打印相机参数信息 二、Camera 工具类 CameraIdResult.java public class CameraIdResult {

简单的Q-learning|小明的一维世界(3)

简单的Q-learning|小明的一维世界(1) 简单的Q-learning|小明的一维世界(2) 一维的加速度世界 这个世界,小明只能控制自己的加速度,并且只能对加速度进行如下三种操作:增加1、减少1、或者不变。所以行动空间为: { u 1 = − 1 , u 2 = 0 , u 3 = 1 } \{u_1=-1, u_2=0, u_3=1\} {u1​=−1,u2​=0,u3​=1}

简单的Q-learning|小明的一维世界(2)

上篇介绍了小明的一维世界模型 、Q-learning的状态空间、行动空间、奖励函数、Q-table、Q table更新公式、以及从Q值导出策略的公式等。最后给出最简单的一维位置世界的Q-learning例子,从给出其状态空间、行动空间、以及稠密与稀疏两种奖励函数的设置方式。下面将继续深入,GO! 一维的速度世界 这个世界,小明只能控制自己的速度,并且只能对速度进行如下三种操作:增加1、减

集群环境下为雪花算法生成全局唯一机器ID策略

雪花算法是生成数据id非常好的一种方式,机器id是雪花算法不可分割的一部分。但是对于集群应用,让不同的机器自动产生不同的机器id传统做法就是针对每一个机器进行单独配置,但这样做不利于集群水平扩展,且操作过程非常复杂,所以每一个机器在集群环境下是一个头疼的问题。现在借助spring+redis,给出一种策略,支持随意水平扩展,肥肠好用。 大致策略分为4步: 1.对机器ip进行hash,对某一个(大于

在实现回显功能模块的时候,把ID设置成全局变量了

在hsapprove.jsp中: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><script type="text/javascript">function edittodayhs(hsid){//alert(hsid);//

PL/SQL工具创建Oracle数据库表,实现id字段的自动递增

通过PL/SQL工具,创建Oracle数据库表,如何实现字段ID自动递增; Oracle的自增需要依靠序列和触发器共同实现 比如:先创建一个表 create table test (id int primary key, name varchar2(10)); 创建一个序列 create sequence test_seq increment by 1 start with 1  min

分布式项目中使用雪花算法提前获取对象主键ID

hello,大家好,我是灰小猿! 在做分布式项目开发进行数据表结构设计时,有时候为了提高查询性能,在进行数据库表设计时,会使用自增ID来代替UUID作为数据的主键ID,但是这样就会有一个问题,数据的自增ID应该如何获取到下一个ID并且插入到库中呢? 如果你使用的是mybatisPlus,可以使用自带的自增注解加在id字段上即可,这样在数据入库时就可以自动给数据赋值自增的主键ID, 但是对于不

Deep Ocr

1.圈出内容,文本那里要有内容.然后你保存,并'导出数据集'. 2.找出deep_ocr_recognition_training_workflow.hdev 文件.修改“DatasetFilename := 'Test.hdict'” 310行 write_deep_ocr (DeepOcrHandle, BestModelDeepOCRFilename) 3.推理test.hdev

013.Python爬虫系列_re正则解析

我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈 PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)文章合集 👈👈 Oracle数据库教程:👉👉 Oracle数据库文章合集 👈👈 优

《长得太长也是错?——后端 Long 型 ID 精度丢失的“奇妙”修复之旅》

引言 在前后端分离的时代,我们的生活充满了无数的机遇与挑战——包括那些突然冒出来的让人抓狂的 Bug。今天我们要聊的,就是一个让无数开发者哭笑不得的经典问题:后端 Long 类型 ID 过长导致前端精度丢失。说到这个问题,那可真是“万恶之源”啊,谁让 JavaScript 只能安全地处理 Number.MAX_SAFE_INTEGER(也就是 9007199254740991)以内的数值呢?