- 博客(42)
- 收藏
- 关注
原创 RetinaNet详解
网络结构这里默认3∗33*33∗3个anchor,图中标出以输入为672*640大小时,每层对应的尺度,以及每层对应anchor个数和每个特征层base anchor对应到原图的anchor大小.边界框回归在faster rcnn 中存在3个框,其中anchor, ground truth为已知固定的框, predict 为预测框其中:Anchor:(Ax,Ay,Aw,Ah)Anchor :(A_x,A_y,A_w,A_h)Anchor:(Ax,Ay,Aw,Ah)Predict:(Px
2020-05-27 16:20:38
11846
8
原创 pytorch——AttributeError: 'DataParallel' object has no attribute '****'
报错原因:在使用model = nn.DataParallel(model,device_ids=[0,1])加载模型之后,出现了这个错误:AttributeError: ‘DataParallel’ object has no attribute ‘****’报错的地方在我后面调用model的一些层时,并没有那些层,输出经过nn.DataParallel的模型参数后,发现每个参数前面多了m...
2020-03-26 17:02:29
13058
1
原创 图像分类竞赛——Test Time Augmentation(TTA)
TTA介绍Test Time Augmentation(TTA),测试数据增强,是在测试阶段时,将输入的测试数据进行,翻转、旋转操作等数据增强,并最后对同一样本的不同数据增强的结果根据任务需求进行例如平均,求和等数据处理。TTA实现这里推荐github上一个库https://github.com/qubvel/ttach,可以直接调用tta,非常方便。tta_model = tta.Cla...
2020-03-19 21:18:59
6460
2
原创 行人重识别——三元损失函数及其实现
什么是三元损失函数?三元损失函数是行人重识别里非常常见的一个损失函数,其目的就是相对于负样本xnx_nxn拉近某一个样本xax_axa和它的正样本xpx_pxp的距离。Ltri=max(∥xa−xp∥−∥xa−xn∥+margin,0)L_{tri}=max(∥x_a−x_p∥−∥x_a−x_n∥+margin,0)Ltri=max(∥xa−xp∥−∥xa−xn∥+margin...
2020-03-13 22:34:06
4116
原创 pytorch——多GPU训练,CPU测试出现的问题
我在训练模型的时候使用了nn.DataParallel,并在在服务器gpu测试也同时将训练好的模型并行载入,这样没有问题,但是我将训练好的模型在本地cpu运行的时候出错。这里记录出错的地方,并记录大致流程。1. CPU读取模型:RuntimeError: Attempting to deserialize object on a CUDA device but torch.cuda.is_av...
2020-03-06 20:52:00
1892
原创 ICCV2019-行人重识别-View Confusion Feature Learning for Person Re-identification
动机:这篇文章的出发点很明确,就是解决re-id问题中不同行人视角的匹配问题。在之前有不少文章,比如Pose-Normalized Image Generation for Person Re-identification这篇文章,就是将不同视角下的行人匹配到同一个视角下。与这篇的思想类似,作者想到,匹配到某个视角下这样误查一定很大,也不一定准确,所以,不一定要匹配到这样一个“具体的视角”而匹配...
2020-03-04 22:46:04
758
原创 ICCV2019-行人重识别-Pose-Guided Feature Alignment for Occluded Person Re-Identification
动机:这篇文章的中心思想很明确,就是针对于目标遮挡情况下的行人重识别问题。我们知道在目标检测的数据集,尤其是较密集的数据集里对检测目标都会有是否遮挡这样的标注,而re-id数据集里,默认的都是少部分遮挡的目标。所以这个工作对于现实场景下的很有帮助。创新:这个文章对于遮挡目标的处理方法很直接,就是将未遮挡区域提出其特征,再结合原始的全局特征进行re-id学习。遮挡数据集:作者分析了原Duk...
2020-03-03 22:07:55
3327
1
原创 ICCV2019-行人重识别-Instance-Guided Context Rendering for Cross-Domain Person Re-Identification
动机:对于跨数据集的re-id问题来说,最大的障碍就是不同数据集分布不同的这个gap,而解决这个问题最直接的办法就是将Source Domain的数据分布强行拉成Target Domain的分布,而这个最容易想到的办法就是GAN。这篇文章的通过GAN,改变Source Domain数据的环境背景,去接近Target Domain。创新:这里可能有人会想到,为什么不直接提取Source Dom...
2020-02-28 22:53:41
582
原创 ICCV2019-行人重识别-Beyond Human Parts: Dual Part-Aligned Representations for Person Re-Identification
动机:这是一篇基于part,之后对于每个part添加了self-attention的文章。作者出发点在于当前结合human parsing的part re-id方法只能对人体部分检测,不能对一些装饰物,例如包,帽子等检测,而这些外部装饰也是重识别不可或缺的元素,却被当作background,这当然会降低精度。创新:作者提出了DPB网络,该网络主要由人体区域语义提取部分(human part...
2020-02-27 16:46:21
1529
原创 CVPR2019-行人重识别-Interaction-and-Aggregation Network for Person Re-identification
动机:本文是一篇基于attention的文章,通过channel 和 postion 两个层面得到feature mask,用于得到更有鉴别性的feature。创新Spatial Interaction-and-Aggregation (SIA):这里涉及到三个种相关性关系:Appearance Relations,Location Relations和semantic relations...
2020-02-26 22:34:37
491
原创 ICCV2019-行人重识别-Mixed High-Order Attention Network for Person Re-Identification
动机:依旧是一篇基于attention 的论文,不得不说现在market数据集上top10基本被attention霸榜了。这篇文章的出发点和SONA很类似,作者分析目前attention的操作都太过于粗糙,例如 spatial attention 和 channel attention ,需要高阶的操作以获取更多local之间的关系。创新:乍一看first-order和channel at...
2020-02-25 22:56:11
1663
1
原创 ICCV2019-行人重识别-Batch DropBlock Network for Person Re-identification and Beyond论文阅读
动机:依旧是一篇基于part-based的re-id论文,但与其他相比不同的是,这篇文章没有正面提取local 信息,而是从侧面通过结合随机mask有效信息强化对local特征的学习。创新:Batch DropBlock,这个思路和Random Erasing如出一辙,只不过Random Erasing在图像层面,而Batch DropBlock在特征层面。既然原理相似,那只要把Rando...
2020-02-24 22:44:09
708
原创 python使用requests爬取DOTA2轮盘数据
写在前面本文主要概述如何爬取DOTA2的轮盘(chatwheel)数据,以便后期对轮盘数据结合其他数据做数据可视化&数据分析。环境配置环境为python3.6,需安装requests 、pandas 、beautifulsoup等库数据类型查阅大量的资料,我归总DOTA2的轮盘数据为以下3类:普通的轮盘,例如Well played!,*Missing!*等基础轮盘语音勇士...
2020-02-23 21:44:59
951
1
原创 Horizontal Pyramid Matching for Person Re-identification论文阅读
动机:本文作者应该是看了PCB的实验有感,垂直分块太多虽然关注了更多的local特征,但是会降低part之间的联系;垂直分块太少虽然关注了global特征,但会忽略local特征。很难去在分块这个方面选择一个很好的阈值,所以作者统统全部加入,设计了Horizontal Pyramid 结构,这样既考虑global又考虑了local,岂不美哉。创新:多个不同的水平分块结构,1,2,4,8并行...
2020-02-22 20:42:42
439
1
原创 ICCV2019-行人重识别-Discriminative Feature Learning with Consistent Attention Regularization for Person
动机:在re-id数据集中,一个样本图像由有效的前景信息(行人信息)和无效的背景信息(背景干扰)信息构成。所以说,能否有效学习到面积只占整个图像一部分的行人信息,即Discriminative Feature,就是了一个良好re-id模型的关键。目前的常见的提取行人信息的方案各有利弊,最容易想到的方法便是使用annotated mask,但这种方法引入额外的标注,并且样本分辨率低,所以mask...
2020-02-21 22:48:23
1276
2
原创 ICCV2019-行人重识别-Second-order Non-local Attention Networks for Person Re-identification论文阅读
动机:作者总结了常见的Part-base的re-id网络的常见问题,即使用多part虽然会增加精度,但是却忽略了part的之间的联系。所以Non-local是一个可以整体解决多part的办法。本文整体思路大概如下:基于BFE的架构加入DropBlock模块,这样有利于对于Non-local的学习改进了Non-local 模块,改进一阶为二阶创新:作者对于本文最大的创新点为Seco...
2020-02-20 23:14:23
2216
2
原创 CVPR2019-行人重识别-Densely Semantically Aligned Person Re-Identification论文阅读
Densely Semantically Aligned Person Re-Identification动机:re-id问题在遇到遮挡、姿态变化时,全局信息不能很好表示行人的特征,所以需要局部信息,但目前基于局部特征的re-id也有缺陷,提取的局部信息是刚性的,在不同视角下差异大,无法对齐而导致无法利用提取到高效的part信息,总结一下:局部信息不够精细对齐方法粗糙创新:FAIR...
2020-02-19 23:07:39
366
原创 leetcode——旋转数列问题集合总结
旋转数列问题是个很经典的二分查找问题,这里将其总结一下:什么是旋转数列?首先定义旋转数列:原数组为排序数列一次旋转操作为:将数列首元素插入数列末尾经过n次旋转操作的排序数列数组称为旋转数组,其中数组可能会有重复数在leetcode中共有如下几题:189:旋转数组——实现旋转数组的操作796:旋转字符串——实现旋转数组的操作,并与目标字符串比对33:搜索旋转数组——没有重复数...
2020-02-13 23:37:54
713
原创 密集场景人物检测项目
之前做了一个较密集场景下的人脸检测项目,主要场景是面向阶梯教室场景。主要难点:目标密集目标尺度变化大使用检测网络:我们知道随着神经网络的层数的增加,其予语义信息会更丰富,但位置信息会越不准确,但同一大小的神经元的感受会越大。所以有效融合高层和低层的信息,即融合语义信息和位置信息,会对检测模型有很大提升。所以目前主流的检测网络均采用如(d)所示的FPN结构,由于任务场景较小,采用了R...
2020-02-12 22:23:56
1321
4
原创 pandas——对索引,单列和多列排序
以下方法均未对原数据产生影响,若想改变原数据,参数需加入inplace = True1. 对索引排序对列索引排序df.sort_index()对列标签排序df.sort_index(axis = 1)2. 对数据排序对某列数据排df.sort_values(by='col1')对多列数据排序df.sort_values(by=['col1', 'col2'...
2020-02-10 11:26:00
960
原创 leetcode——广度优先算法(BFS)总结 & 模板
什么是广度优先算法?广度优先搜索一层一层地进行遍历,每层遍历都以上一层遍历的结果作为起点,遍历一个距离能访问到的所有节点。但是BFS访问节点代价为1,即为对无权图求解最短路径。BFS特性广度优先算法需要满足以下几个条件:一层一层地进行遍历遍历一个距离能访问到的所有节点遍历过的节点不能再次被遍历所以针对以上条件,我们需要有如下对策:设计队列,对每层元素依次搜索通过分析问题发现...
2020-02-08 18:11:57
2098
1
原创 python解析jsonp格式数据
解决方法:最近在调用一些api时发现返回的是jsonp格式的数据,这些数据的格式基本是这样:callback&&callback(json_data)因为json数据中没有括号,所以我们可以使用正则表达式把json_data提取出来。代码:import redef loads_jsonp(_jsonp): try: return json.lo...
2020-02-07 13:08:57
5268
2
原创 leetcode——区间重叠问题(贪心算法)&对原始数组排序的思考
区间重叠问题区域重叠问题是贪心算法常见题目,其类型通常是N×2N×2N×2或者N×MiN×M_{i}N×Mi的数组,进行一些合并,删除等操作。常见题型:合并区间:leetcode 56(合并区间)leetcode 763(先统计,再合并区间)计算不重叠区间的个数:leetcode 435(不重叠区间个数)leetcode 452(相邻区间视为重叠区间)合并区间问...
2020-02-05 17:54:51
2727
原创 leetcode——非递减数列
题目序号:665题目 :给定一个长度为 n 的整数数组,你的任务是判断在最多改变 1 个元素的情况下,该数组能否变成一个非递减数列。分析:已知最终得到的数据每一项一定大于等于前一项,即:nums[i−1]<=nums[i]<=nums[i+1],0<i<len(nums)−1nums[i-1]<=nums[i]<=nums[i+1],0<i&l...
2020-02-04 22:00:16
392
原创 python——列表排序总结
列表排序1. 两种方法对当前列表排序(默认小到大),改变当前列表,无返回list1.sort()对当前列表排序,不改变当前列表,返回有序列表sort_list = sorted(list1)2. 顺序&倒序顺序(小→大)参数reverse = False倒序(大→小)参数reverse = True顺序list1 = [1,3,2]list2.sort(r...
2020-02-03 22:41:11
198
原创 pandas——条件选取指定列
在使用pandas经常选取指定的数据,总结一下常用的方法:1. 单个条件选取df = pd.DataFrame({'a':[1,2,3], 'b':[4,5,1]})若选取索引为a大于1使用loc方法:df.loc[df['a']>1]直接选取:df[df['a']>1]2. 多个条件选取若选取索引为a大于1 并且 b大于1使用loc方法:df...
2020-01-31 22:24:20
10164
原创 TinyFace论文阅读总结
数据集:WIDER FACE:包括32,203 张包含人脸图片,其中包括393,703张标注人脸。数据集依据检测的难易程度划分为"easy",“medium”,"hard"三种类型FDDB检测方法:基于两阶段检测:1 Improve RCNN:1.1 基础结构:改进Faster RCNN:采用light RCNN(结合Faster rcnn和rfcn的优点,将检测器的head部分...
2020-01-13 11:09:07
953
原创 pytorch 指定显卡
在pytorch中若使用gpu, 则默认从0号卡开始终端中指定CUDA_VISIBLE_DEVICES=1 python mian.py代码中指定import osos.environ["CUDA_VISIBLE_DEVICES"] = "0"
2020-01-11 21:05:49
1912
原创 ROI Pooling 和 ROI Align
1. 为什么会提出ROI Pooling?在Rcnn系列检测器中,rcnn在selective search后得到一系列的预选框,再将这些预选框 resize到同样大小的尺寸,通过卷积网络,再进行检测,这是因为固定的卷积网络需要同样大小的输入,这样多次通过网络,不仅费时,box之间存在大量的重复区域,也浪费了计算资源。selective searchresizeCNNImageboxbox_s...
2020-01-09 20:45:15
688
原创 voc 数据集制作 + yolo v3 训练 笔记
数据准备课程需要一个目标检测的demo,对单个种类的目标检测,以下为训练记录。1. 文件目录格式VOCdevkitAnnotations00001.xml00002.xml……ImageSetsMaintrain.txttest.txtJPEGImges00001.jpg00002.jpg……labels00001.txt00002...
2020-01-09 20:40:28
447
原创 pytorch tensor和ndarray转换相关总结
在使用pytorch的时候,经常会涉及到两种数据格式tensor和ndarray之间的转换,这里总结一下两种格式的转换:1. tensor cpu 和tensor gpu之间的转化:tensor cpu 转为tensor gpu:tensor_gpu = tensor_cpu.cuda()>>> tensor_cpu = torch.ones((2,2))tenso...
2020-01-06 10:23:00
5749
1
原创 soft-nms 与 nms 实现
soft-nms 与 nms1. nmsnms流程:遍历所有的box找到置信度(score)最大的box遍历剩下的box如果其iou > 阈值 ——> 删除该框2. soft-nmssoft-nms流程:遍历所有的box找到置信度(score)最大的box遍历剩下的box如果其iou > 阈值 ——> 降低置信度...
2020-01-04 14:30:00
701
原创 目标检测评估指标(ap,map,PR曲线)
目标检测评估指标1.对于目标检任务,分为单类别和多类别单类别 AP:(average pression)多类别 mAP:(mean average precision)2.计算AP已知:图片上有N个groundtruth,M个预测的bounding box,以及每个预测目标的confidencestep1: 先将bounding box 按照 confidence排序ste...
2020-01-04 14:20:19
3616
1
原创 图像分类竞赛——添翼杯人工智能应用创新大赛——rank4解决方案
添翼杯人工智能应用创新大赛——环保赛道题目分析:数据分布:正、负样本比基本一致图像长宽比分布在1-1.5成绩:初赛a榜:0.97989318 (排名:10)初赛b榜:0.97814671 (排名:7)复赛:0.988(排名:4)方法思路:cnn 二分类:使用 se_resnext101_32x4d 作为backbone5折验证:5个model分别对test数据验证,...
2020-01-03 11:33:37
782
原创 深度学习下分类任务中L2 norm总结
什么是L2范数?L2范数既欧式距离,表示向量的元素平方和再开方∥x∥2=∑i=1nxi2\Vert x \Vert_{2} = \sqrt{\sum_{i=1}^{n}x_{i}^{2}}∥x∥2=i=1∑nxi2为什么使用L2 norm?对于CNN的输出,各个特征的模长均不一样, l2 norm是强行把同个维度的特征归一化。经过L2 norm的数据都处于0到1之间,距离就变得有一...
2020-01-03 11:08:29
7537
原创 近红外跨模态行人重识别(RGB-IR Cross-Modality Re-id)(二)
接着第一篇文章,继续介绍后面的方法4. Visible Thermal Person Re-Identification via Dual-Constrained Top-Ranking简介:本文的作者与之前的HCML的作者为同一人,两种框架基本一致,但本文的损失函数较HCML的损失函数更直观,更易于理解。特点:三元损失函数的构建:跨模态的三元损失函数,并同时引入了难...
2019-12-25 20:19:40
957
原创 近红外跨模态行人重识别(RGB-IR Cross-Modality Re-id)(一)
1. 写在前面本文是我阅读近红外的跨模态行人重识别(RGB-IR Cross-Modality Re-id)文献的笔记,由于网上对该方面介绍的博客很少,所以这里我记录下阅读文章的一些要点和我自己对这些问题的思考。2. 综述1. Beyond Intra-modality Discrepancy: A Comprehensive Survey of Heterogeneous Person ...
2019-12-02 21:51:21
4411
1
原创 pytorch 本地远程使用 visdom
pytorch 远程使用 visdom安装 visdompip install visdom启动python -m visdom.server若出现OSError: [Errno 98] Address already in use visdom,即说明端口被占用。解决方法方法一查看端口占用情况(vidsom 默认占用8097端口)lsof -i:8097中断...
2019-09-28 23:07:29
969
原创 简单分析朋友圈手游吃鸡的数据,分析人机击杀和数据可视化
写在前面最近晚上没事经常和朋友一起开黑玩手游吃鸡,在每一盘游戏都会发现有这样一类“玩家”,这类“玩家”有以下特征:突然出现在你的身边放“冷枪”,但却对你造成很低的伤害走位如同无头苍蝇,打中他一枪就换个方向跑装备极好,甚至不少装备三级套其实大家已经猜到这些“玩家”其实是为了腾讯官方为补充游戏人数,和增加游戏体验的“机器人,”俗称“人机”。...
2019-06-04 10:34:42
1526
1
原创 linux,windows下配置vscode-insider 远程连接服务器
前言由于计算资源在远端服务器,从而本地和服务器端代码不同步导致很麻烦,微软在月初正式将remote功能加入,方便了本地和服务器端代码调试同步,这里简单介绍了Linux和Windows两种系统下配置的方法,亲测可行。本地端操作下载相应版本的 vscode-insider,并安装在vscode-insider 扩展插件中安装 Remote-SSH插件安装完插件后,vscode-inside...
2019-05-18 15:18:40
1640
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人