↓ Skip to main content
  1. Categories/

Deep-Learning

2019

记一次faster-rcnn debug记录

问题描述 # 一年debug 三次faster rcnn,每次都有新感觉(不 接到一个bug report,现象为某人脸模型,转换成trt模型,当batch size为1时结果完全正确,但是batch size大于1时结果不正确。 具体的现象是,如果跑多张不同的图,只有第一张图有结果,后面的图都没有结果。 如果跑的图中有相同的,那么和第一张相同的图都会有结果,其余的图没有结果。

FPN:Feature Pyramid Networks 学习笔记

检测不同尺度的物体一直是计算机视觉领域中比较有挑战性的事情.我们先从之前的工作出发,并对比FPN比起之前的工作有哪些改进. 之前的工作 # Featurized image pyramid # 思路是对于同一张图,生成不同的scale,然后每个scale的image单独去做检测. 这个方法是手工设计feature时代的常用办法. 这个办法是比较显然的,也的确可以解决检测不同尺度物体的问题. 缺点非常明显…inference的速度几乎和scale的个数线性相关. 以及由于显存的开销,没办法做end-to-end 的training.

SSD: Single Shot MultiBox Detector 学习笔记

·3374 words·7 mins
概述 # SSD是一种单阶段目标检测算法.所谓单阶段,是指只使用了一个deep neural network,而不是像faster-rcnn这种两阶段网络. 为什么有了faster-rcnn还要使用SSD? 最主要是慢… 两阶段网络虽然准确率高,但是在嵌入式等算力不足的设备上做inference速度非常感人,很难达到real time的要求. (实际业务上也是这样,公有云上的检测模型几乎都是faster-rcnn,而到了一些盒子之类的硬件设备,检测模型就全是SSD等single stage 模型了)

rankboost 算法学习笔记

·1377 words·3 mins
boosting 算法是什么 # 机缘使然,接触到了 Boosting 算法.Boosting是一种通过组合弱学习器来产生强学习器的通用且有效的方法. 动机是基于如下观察:尽管委员会中每个成员只提供一些不成熟的判断,但整个委员会却产生较为准确的决策。通过组合多个弱学习器来解决学习问题。给定训练数据,弱学习算法(如决策树)可以训练产生弱学习器,这些弱学习器只需要比随机猜测的准确率好一些。用不同的训练数据训练可以得到不同的弱学习器。这些弱学习器作为委员会成员,共同决策。

2018

caffe2 添加自定义operater

·1153 words·3 mins
记录一下,一个之前没有接触过 caffe/caffe2 的人为了添加自定义 op 到 caffe2 需要做的工作。 首先参考 caffe2 tutorial,随便跑个 op 来试试,不妨以比较简单的 Accumulate_op 为例子。 这个 op 的作用就是计算 Y=X+gamma*Y,其中 X 为输入,Y 为输出,gamma 是参数。

非极大值抑制(Non-Maximum Suppression,NMS)

·830 words·2 mins
NMS是为了在诸多CV任务如边缘检测,目标检测等,找到局部最大值 其主要思想是先设定一个阈值,然后计算检测框的IOU(所谓IOU,也就是intersection-over-union,指的是相交面积除以相并面积,是来衡量overlap程度的指数)。如果IOU大于阈值,说明overlap过大,我们要通过某种算法来将其剔除。

reid 相关任务记录

·541 words·2 mins
被师兄(同事?)普及了一番实验规范orz… 我还是太年轻了 所谓的一个fc的版本是右边的.一个放着不动,另一个在sequence_len(10)的维度上做ave,然后再expand成原来的维度.如下图.

分类评价指标之Cumulative Match Characteristi (CMC)曲线

CMC曲线全称是Cumulative Match Characteristic (CMC) curve,也就是累积匹配曲线,同ROC曲线Receiver Operating Characteristic (ROC) curve一样,是模式识别系统,如人脸,指纹,虹膜等的重要评价指标,尤其是在生物特征识别系统中,一般同ROC曲线( 多标签图像分类任务的评价方法-mean average precision(mAP) 以及top x的评价方法)一起给出,能够综合评价出算法的好坏。

pytorch 函数笔记

·701 words·2 mins
记录一些常用的…总去查文档也是有点麻烦 * tensor.view 的作用是reshape 比如 a = torch.range(1, 16) 得到一个tensor that has 16 elements from 1 to 16. 在a=a.view(4,4)就得到了一个44的tensor。 需要注意reshape之后元素的个数不能改变(16==44) 参数-1的作用是,我懒得算这一维度应该是多少,(由于元素个数不能改变)所以希望自动被计算。**需要注意的是,只有一个维度可以写-1。 **不过view和reshape有些区别:reshape always copies memory. view never copies memory # * torch.squeeze 将输入张量形状中的1 去除并返回。 如果输入是形如(A×1×B×1×C×1×D),那么输出形状就为: (A×B×C×D)当给定dim时,那么挤压操作只在给定维度上。例如,输入形状为: (A×1×B), squeeze(input, 0) 将会保持张量不变,只有用 squeeze(input, 1),形状会变成 (A×B)。注意: 返回张量与输入张量共享内存,所以改变其中一个的内容会改变另一个。 # * torch.unsqueeze 返回一个新的张量,对输入的指定位置插入维度 1 注意: 返回张量与输入张量共享内存,所以改变其中一个的内容会改变另一个。如果dim为负,则将会被转化dim+input.dim()+1 # 1>>> x = torch.Tensor([1, 2, 3, 4]) 2>>> torch.unsqueeze(x, 0) 3 1 2 3 4 4[torch.FloatTensor of size 1x4] 5>>> torch.unsqueeze(x, 1) 6 1 7 2 8 3 9 4 10[torch.FloatTensor of size 4x1] 11 12 13 14 * tensor.expand(size) 扩展tensor.可以保持维度数目不变,每一维度的size增加(比如AB变到C*D,其中C>=A,D>=B).-1参数表示某一个维度的size不发生改变 . 有可以扩展tensor到更多的维度,新增加的维度会默认放在最前面,并且不能以-1作为参数。 # * tensor.contiguous 将一个tensor变成连续的。(一些ops如expand/expand_as会让tensor 不连续) #

光流法初探

·235 words·1 min
算是CV领域的传统算法了 只写两句话就够了。 它是空间运动物体在观察成像平面上的像素运动的瞬时速度,是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法。

end-to-end 神经网络

·561 words·2 mins
所谓end-to-end 神经网络,更多是一种思想。 这种思想的核心是,比如对于图像处理,输入原始图像数据,输出的是直接有用的结果(有用取决于具体的任务,比如自动驾驶)

persion reid 论文列表

·332 words·1 min
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 end to end learning (4). Post-process, re-ranking AlignedReID: Surpassing Human-Level Performance in Person Re-Identification Hydraplus-net: Attentive deep features for pedestrian analysis. Darkrank: Accelerating deep metric learning via cross sample similarities transfer. Glad: Global-local-alignment descriptor for pedestrian retrieval.

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

·1414 words·3 mins
起因是被 assign 了一个新的任务……要死。 参考资料: 推荐系统学习笔记之三 LFM (Latent Factor Model) 隐因子模型 + SVD (singular value decomposition) 奇异值分解 基于矩阵分解的隐因子模型 实时推荐系统的三种方式 先说下我的理解。 隐因子模型(LFM)是一种推荐算法,“隐”可以理解成用户喜欢某个 item 的间接原因。