persion reid 论文列表

Key:

(1). Pose-driven, body part alignment, combine whole feature and body part feature, focus on alignment of part model,

(2). Combine image label and human attributes classes, do classification with attributes and identity learning

(3). Based on triplet loss, improve metric learning for an en[……]

Read more

To do list

  • 初步了解和STL algorithm有点像的基础算法库thrust
  • ilidsvid 数据集在做validation 的时候数据是如何切分的-> doc ilidsvid
  • 新任务…阅读探探推荐算法的代码…讲给组员orz…
  • 对比Big video框架中MAP的计算方法与@luyu 组的框架的MAP的计算方法(sklearn?)  是一样的
  • 突然GPU编程。。。cs179
  • cuda编程相关
  • 阅读facebook开源库faiss 源码(github)
  • tf boy-> torch boy
  • cross pooling …重构…
  • 如何添加non-local block 在resnet50等结构

[……]

Read more

pytorch 函数笔记

记录一些常用的…总去查文档也是有点麻烦

  • tensor.view 的作用是reshape 比如 a = torch.range(1, 16) 得到一个tensor  that has 16 elements from 1 to 16. 在a=a.view(4,4)就得到了一个4*4的tensor。 需要注意reshape之后元素的个数不能改变(1*16==4*4)  参数-1的作用是,我懒得算这一维度应该是多少,(由于元素个数不能改变)所以希望自动被计算。需要注意的是,只有一个维度可以写-1。

光流法初探

算是CV领域的传统算法了

只写两句话就够了。

它是空间运动物体在观察成像平面上的像素运动的瞬时速度,是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法。

研究光流场的目的就是为了从图片序列中近似得到不能直接得到的运动场。运动场,其实就是物体在三维真实世界中的运动;光流场,是运动场在二维图像平面上(人的眼睛或者摄像头)的投影。

 

参考资料:

光流Optical Flow介绍与OpenCV实现

 

Reid iLIDS-VID 数据集 切分

ilids-vid数据集

150个人做trainning,150个人做
在training set里面,每个人有来自两个不同camera的两段video,之后再怎么切分去train是自己的事

在bash脚本里面有两个参数,(一段比如100个frame的video里切割出很多sequence),一个参数是seq_len,是一个sequence的长度,还有一个是seq_std,是切割间隔,所以如果第一个参数是10,第二个参数是5,就会切割出来20个sequence

end-to-end 神经网络

所谓end-to-end 神经网络,更多是一种思想。

这种思想的核心是,比如对于图像处理,输入原始图像数据,输出的是直接有用的结果(有用取决于具体的任务,比如自动驾驶)

也就是尽可能少得减少人为干预,使训练是end (原始数据)  to end (对应用问题直接有用的结果)

端到端指的是输入是原始数据,输出是最后的结果,原来输入端不是直接的原始数据,而是在原始数据中提取的特征,这一点在图像问题上尤为突出,因为图像像素数太多,数据维度高,会产生维度灾难,所以原来一个思路是手工提取图像的一些关键特征,这实际就是就一个降维的过程。
那么问题来了,特征怎么提?
特征提取的好坏异常关键,甚至比学[……]

Read more

Pose-driven Deep Convolutional Model for Person Re-identification 阅读笔记

1709.08325

Reid问题指的是判断一个probe person 是否在被不同的camera捕获的gallery person 中出现。

通常是如下情景:给出一个特定camera下某个特定人的probe image 或者 video sequence,从其他camera处询问这个人的图像,地点,时间戳。

 

ReID问题至今没有很好得解决,主要原因是,不同camera下,人的姿势(pose),观察的视角(viewpoint) 变化太大了。

传统方法主要在两个大方向上努力:

  1. 用一些在图像上抽取的不变量来作为人的特征feture
  2. 去学习一个不同的距离[……]

Read more

Deep Mutual Learning(相互学习) 阅读笔记

原始论文

DNN在很多问题上效果很不错,但是由于深度和宽度过大,导致需要的执行时间和内存过大。我们需要讨论一些能快速执行并且对内存的需要不大的模型。

已经有很多方法来做这件事,比较重要的是Model distillation(模型蒸馏)

基于蒸馏的模型压缩的有效性是基于一个发现:小的网络有和大的网络一样的表达能力,只不过是更难以训练找到合适的参数。

也就是说,难点在于优化(以找到合适的参数)而不在于网络的尺寸。

蒸馏的模型的做法是把一个有效的(deep or/and wide) network 作为teacher network,让一个size 较小的 student network[……]

Read more

Similarity learning 和Metric learning

Similarity_learning

相似性学习(Similarity learning )有监督机器学习,它与回归和分类密切相关,但目标是从实例中学习一个相似函数,以衡量两个对象的相似程度或相关程度。

Similarity learning通常有四种setups:

  • regression similarity learning  在这种方式中,给出的数据是   和他们的相似度 .  目标是学习到一个函数f(x_{i}^{1},x_{i}^{2})\sim y_{i},对于 给出yi近似值。
  • Classification similarity learning  给出数据   和他们是否相似 。目标是训练出一个分类器,能够完成对一[……]

Read more

CUDA C Best Practices Guide 阅读笔记(二) Heterogeneous Computing

CUDA 编程涉及到在不同的平台上同时运行代码:包含CPU的host 和包含GPU的device.

所以了解host和device的对性能优化是非常重要的。

2.1. Differences between Host and Device

Threading resources

host 上能同时运行的线程数目比较少(比如24个)

device上能同时运行的线程数目比较多(数量级通常为1E3,1E4等)

Threads

操作系统必须交换CPU执行通道上和下的线程以提供多线程功能。因此,上下文切换(当交换两个线程时)既慢又昂贵。

相比之下,GPU上的线程非常轻量级。在典型的系统中[……]

Read more

CUDA C Best Practices Guide 阅读笔记(1) 并行计算方法论(APOD)

APOD指的是Assess, Parallelize, Optimize, Deploy

Assess, Parallelize, Optimize, Deploy.

如图所示,APOD过程是一个循环的过程,每次只进行一部分,从A到P到O到D,然后再进行下一轮的APOD

Assess

对于一个项目,第一步要做的是接触(Assess)项目,得到项目代码中每部分的执行时间。有了这部分内容,开发者就可以找到并行优化的瓶颈所在,并开始尝试用GPU加速。

根据Amdahl’s and Gustafson’s laws,开发者可以确定并行优化的性能上界。

Parallelize

找到瓶颈所在并确定了优化的目标和期望,开发者就可以优化代码了。调用一些如cuBLAS, [……]

Read more

CUDA 7.5: 用指令级性能分析精确找到性能问题

原文:

CUDA 7.5: Pinpoint Performance Problems with Instruction-Level Profiling

 

主要是介绍了CUDA 7.5 以上的版本的 NVIDIA Visual Profiler 加入的新特性

可以细粒度到指令级,分析出性能的瓶颈(在这之前,只能分析到kernel级别)

顺便了解了一下nvidia-visual-profiler

原理大概是用PC(程序计数器)采样目前活跃的warp,然后得到这些warp的PC和状态,以此来得到更细粒度的性能分析。

Instruction-level profiling[……]

Read more

推荐系统之 LFM (Latent Factor Model) 隐因子模型 学习笔记

起因是被assgin了一个新的任务…..要死.

参考资料:

推荐系统学习笔记之三 LFM (Latent Factor Model) 隐因子模型 + SVD (singular value decomposition) 奇异值分解

基于矩阵分解的隐因子模型

实时推荐系统的三种方式

 

先说下我的理解…

隐因子模型(LFM)是一种推荐算法,”隐”可以理解成用户喜欢某个item的间接原因.

该算法的核心思想是转化成一个矩阵分解问题..

然后用传统机器学习算法去优化分解得到的矩阵…

主要的优势如下:

  • 比较容易编程实现,随机梯度下降方法依次迭代即可训[……]

Read more

cuda 学习笔记 术语篇

最近在学习cuda,遇到的新词汇有点多,所以开一篇记录一下.

所记录的不一定和cuda有关,只是在学习cuda中遇到的陌生概念.

  • SIMD(Single Instruction Multiple Data)  单指令流多数据流  是一种采用一个控制器来控制多个处理器,同时对一组数据(又称“数据向量”)中的每一个分别执行相同的操作从而实现空间上的并行性的技术。图形处理器(GPU)拥有强大的并发处理能力和可编程流水线,面对单指令流多数据流时,运算能力远超传统CPU。OpenCLCUDA分别是目前最广泛使用的开源和专利通用图形处理器(GPGPU)运算语言。
  • SAXPY (S[……]

Read more