- 博客(48)
- 收藏
- 关注
原创 CVPR 2022 | “直面真实的世界”
今天并没有什么论文解读,起这个标题只是为了让文章被审核,只是记录一些想说而又不能说的话。踌躇许久,仍不知道要从何写起,如果直言不讳的叙述,大概率是不被审核通过的。一些文章不被“主流”认可,倒不是因为文章的内容有多么不雅,而是当局者的伤疤一旦被解开,就很难再用谎言来掩盖它的驭民手段。记得2019年曾读到一句话,大意是,2019年是过去十年中最糟糕的一年,同时也是未来十年里最美好的一年。当时只道是揶揄,如今回看,倒是颇有些洞察先机的意味。疫情之下,岁月静好的想象终于难以维续,因为兵荒马乱的日子,距离每个人都几乎
2022-10-12 10:47:16 670 4
原创 CVPR 2022 | ST-MR:与Multiverse有何不同?(二)
需要注意的是:ConvLSTM的输入维度大小,x(n_samples, seq_len, H, W, channels)、h(n_samples, H, W, hidden_dim)、c(n_samples, H, W, hidden_dim)。网格偏移是指轨迹坐标与网格中心点的差值,求得差值(20,8,2)后我们将其以某种方式映射到一张特征图上(20,8,18,32,2)。在ST-MR上分支,我们首先将行人的网格索引映射到一个18 x 32的网格图中,即(20,8,1)→(20,8,18,32,1)。
2022-10-25 22:02:52 966 1
原创 CVPR 2022 | ST-MR:与Multiverse有何不同?(一)
这是一篇CVPR 2022 关于行人轨迹预测的文章,之所以取这个题目,是因为它与CVPR 2020 Multiverse论文如出一辙。代码链接:这篇文章比较晦涩难懂,读者如果看过原论文和代码,再来看看博客也许会给你提供新的思路。
2022-10-25 20:34:55 1144 1
原创 ICCV 2021 | Y-Net:轨迹-场景信息的真正融合
今天没有多余的解释,直接开始吧~Y-Net的网络结构长什么样子呢?Y-Net的网络结构就长下图这样子。看上去我好像在自言自语,其实你仔细揣摩就会发现,我真的是在自言自语。可以看到说,Y-Net网络输入的是一张张的图片,而不是序列。这一点很重要的,因为只有先搞清输入输出是什么,才能进行接下来的工作。那在中的时候说,对于给定的RGB三通道图片,先通过语义分割网络得到图片的语义分割图,于此同时将行人的过去轨迹转化为轨迹热力图,然后将语义分割图。
2022-10-25 20:19:05 2501 5
原创 ICCV 2021 | MG-GAN:多生成器的行人轨迹预测模型(二)
我们知道说在实际训练中,我们拥有的已配对的数据(c,x)往往是非常少量的,并且D需要做两件事情:既需要和G进行博弈,也就是判别输入的样本是来自真实数据分布还是生成器,还需要预测数据的类标签,也就是输出条件c。中,我们输入一个条件word:c,再输入一个从原始照片中sample出来的分布z,经过generator后,输出一个image:x,我们希望这个x尽可能地符合条件c的描述,并且生成的照片足够清晰;也就是说,按照传入的probs中给定的概率,在相应的位置处进行取样,取样返回的是该位置的整数索引。
2022-09-24 16:56:35 1414 4
原创 ICCV 2021 | MG-GAN:多生成器的行人轨迹预测模型(一)
二是行人与场景间的交互,研究的是行人与周围场景的关联关系(交互),这里的场景指的是,人是站在路边,还是草坪上,或者是靠近一片水池、还是靠近一幢办公楼…,取观测坐标in_xy、相对坐标in_dxdy的最后一帧,将其拼接,得到一个大小为[6,1,4](或[120,1,4])的矩阵,该矩阵包含行人在最后一帧的绝对坐标以及相对坐标,利用该矩阵计算行人间的l2 distance、bearing angle、dcas_matrix,得到行人间的social feat [6,6,3](或[120,120,3])。
2022-09-22 22:14:00 2637 4
原创 CVPR 2018 Social GAN、CVPR 2019 Sophie、NIPS 2019 Social-BiGAT、CVPR 2019 Social Ways | 基于GAN的行人轨迹预测
目前广泛应用在行人轨迹预测领域的方法主要包括基于LSTM网络、GCN网络和GAN网络的轨迹预测方法,这些网络在训练完成后对同类型输入具有很好的适用性,拥有较高的轨迹预测精度。抽空整理下关于用GAN来做行人轨迹预测的相关论文与要点。一、CVPR 2018 Social GANSocial GAN提出的思想很明确:以往的单一轨迹预测往往是一种“平均”的结果。
2022-09-13 22:04:10 2152 1
原创 CVPR 2020 | Social-STGCNN:基于图卷积的行人轨迹预测
原文链接:Social-STGCNN: A Social Spatio-Temporal Graph Convolutional NeuralNetwork for Human Trajectory Prediction代码链接:代码有一段时间没有更新博客了,这一段时间我在干嘛呢?回想起来除了每周定时的007外,只是单纯的懒。在写作风格上,坚持靠近于算法层面,而不是单纯的文章翻译、代码解析。那废话不多说,我们开始吧!在涉及数据处理的时候,文字性的表达效果十分有限。举例来说,你会面对7个不同的场景,每个场
2022-07-12 22:22:59 4544 14
原创 ECCV 2020 | STAR:基于Transformer的行人轨迹预测模型(二)
在(一)中简单的对全文进行了翻译,实际上很多句子并不能靠翻译来理解,所以只能将自己的想法融入在译文里面。今天我们记录一下代码与论文。以前我认为将代码逐行解析就是“懂了”,实际上能用自然语言将代码要做的事情讲出来,这才是真的明白论文与代码在表达什么。所以接下来我不会涉及到具体代码,我将以自然语言的方式叙述STAR算法在做一件怎样的事情,希望看博客的朋友从算法的角度思考问题。1. 数据是怎样被处理的?STAR模型架构以ETH、UCY两个数据集作为输入,其中ETH数据集包含两个子集,UCY数据集包含三个子集。我们
2022-06-08 19:43:35 3461 13
原创 ECCV 2020 | STAR:基于Transformer的行人轨迹预测模型(一)
这是一篇ECCV 2020 行人轨迹预测的文章,在这里对论文进行浅浅的翻译。当然,由于水平的局限,有些地方只能意译。论文链接:Spatio-Temporal Graph Transformer Networks for Pedestrian Trajectory PredictionAbstract 理解人群动态运动对真实世界的一些应用,例如监控系统、自动驾驶来说是非常重要的。这是具有挑战性的,因为它(理解人群动态运动)需要对具有社会意识的人群的空间交互和复杂的时间依赖性进行建模。我们认为,注.
2022-05-25 17:31:20 7337 2
原创 语义分割中图片和mask的可视化
其实取标题一直以来都是一件麻烦的事,但是如果你要看下去,我想你得有一点语义分割的见解。用平常的语言描述该问题就是:语义分割出我们感兴趣的目标物,然后输出该目标物的轮廓点。做语义分割其实有很多种方法,你可以用不同的模型去train你的dataset,但是刚接触语义分割的朋友们可能会说,我该怎么分割出我想要的目标物,而不对其它部分的像素做修改?其实这件事并不复杂,一个很直觉的想法是:修改像素对应的RGB值。那怎么修改对应像素的RGB值呢?举例来说,假设你在mmsegmentation框架下用的是SegFor
2022-05-17 18:04:06 8252 2
原创 RNN生成模型、Attention & Memory work
今天比较为难的一点是怎么给这篇博客取一个标题。你有想到说这篇Blog是为接下来写STAR网络做一些前期铺垫,但是我该怎么取一个篇名能够体现接下来所要写的东西呢?之前有写过from RNN to LSTM系列,那至少说对RNN有一个大概的了解。那我们今天要做的事情是什么呢?我们要用RNN产生一个有structure的object。假设说这个structure objection可以拆成很多个component,那我们所要做的事就是用RNN把这些component呢,给一个一个的产生出来。事实上这件事情你已
2022-05-15 16:43:57 676
原创 Pedestrian trajectory prediction:from RNN to LSTM(二)
在写LSTM之前呢,不得不吐槽甄姬三个技能都带水,还不明白什么意思吗,啊?这个傻鸟下水道英雄我看哪个蠢驴还在一楼拿。二、LSTM在(一)里面写的呢都是非常原始简单的RNN,每一个输入都会被memory记住。现在RNN的标准做法基本上已经是LSTM。LSTM是一个更加复杂的设计,最简单的设计是每一个neuron都有四个输入,而一般的NN只有一个输入。在(一)里面提到RNN的memory,其实这个memory是最单纯的,为什么这么说呢?因为我们随时都可以把值存到memory里面去,也可以随时呢把值从me
2022-05-12 12:03:49 444 1
原创 Pedestrian trajectory prediction:from RNN to LSTM(一)
以往blog的开头呢都习惯写一顿抒情的废话,这样看起来好像会蛮有生活气息的样子,怎么说呢?一堆的废话可以让你感觉我不只是会写写blog之类的了,其实我还是蛮喜欢play的。一、RNN之前在ELMO里呢有提到说ELMO就是一个RNN-based的language module。那什么是RNN-based的language module呢?你要训练一个RNN-based的language module其实不需要做什么labeling,你只需要收集一大堆一大堆的句子,这些句子不需要做任何的标注。举例来说下
2022-05-11 20:15:27 879 1
原创 From Goals, Waypoints & Paths To Long Term Human Trajectory Forecasting(二)
把把遇到甄姬那种傻鸟英雄和蠢驴选手,栓只狗在中路都比甄姬强。在(一)的时候只是简单的对全文进行了意译,并没有涉及到网络结构。那接下来呢,对网络结构和代码进行分析与记录,由于网上还没有大神对该论文、代码进行解读,所以我的分析也仅代表自己的理解。1. Y-Net网络结构那Y-Net的网络结构长什么样子呢?Y-Net的网络结构就长下图这样子。看上去我好像在自言自语,其实你仔细揣摩就会发现,我真的是在自言自语。可以看到说,Y-Net网络输入的是一张张的图片,而不是序列。这一点很重要的,因为只有先搞清输入
2022-05-08 18:22:27 1646 4
原创 From Goals, Waypoints & Paths To Long Term Human Trajectory Forecasting(一)
Abstract 人类轨迹预测一直以来都是多模态问题。未来轨迹的不确定性主要来自两个方面:(a)知道人的行为意图,但不知道怎么去建模,例如长期目标(预测);(b)既不知道人的行为意图,也不知道怎么去建模,例如行人的目的以及决策的随意性。我们提出将这种不确定性分解为认知因素和随机因素(两方面)。对于认知不确定性,可以通过在长期目标(预测)中的多模态进行建模;对于随机不确定性,可以通过在沿路点与其路径(预测)中的多模态进行建模。为了验..
2022-05-03 22:08:03 3454 2
原创 docker应用部署——部署python
学习是痛苦的,但同时也是值当的。在一段时间里面你会碰到大大小小数不清的困难,这个时候唯有自己拯救自己,记住:再小的帆也能远航。docker是一门很有用的技术,我这里只是单纯的记录一点皮毛,以便遗忘后能回忆起现在的点滴。如何在docker里部署自己的python环境呢,这里假定你已经安装好了docker,并了解镜像(image)、容器、仓库之间的关系,则按以下步骤进行:1.拉取镜像首先你得查看自己的镜像是否已经存在吧,查看所有镜像:sudo docker iamge;发现没有自己所需要的py.
2022-04-14 16:17:57 6041
原创 Linux系统下解决error: the following arguments are required: cfg_file报错
我想下面的报错大部分人应该都遇到过:也许我们的做法会按照它的格式手动编辑配置:但是代码的奇妙之处就在于,你加任你加,我未必跑的通,所以加了之后又报错新问题:也许你会说试试双引号等,但这不是问题的关键,问题是我们有没有其它思路一开始就解决error: the following arguments are required: cfg_file的错误呢?我想可以从以下三方面来分析产生错误的原因:(1)参数前面没有加-- parser = argparse.Argu..
2022-04-03 11:10:34 2202
原创 Linux系统下解决使用github提示Please make sure you have the correct access rights and the repository exists的错误
在克隆代码时,为什么会遇到Please make sure you have the correct access rights and the repository exists的报错呢?原因在于你的GitHub没有设置好。具体怎么解决呢?按以下步骤进行。1. 打开终端,输入:git config --global user.name "yourname"git config --global user.email"your@email.com"请注意,这里的"yourname"一定一
2022-03-29 11:16:20 4091
原创 Linux系统下解决“RuntimeError: (PreconditionNotMet) The third-party dynamic library (libnccl.so)...”报错
随便写写...最近在用PaddlePaddle框架跑代码,遇到一些问题摸索了很久才有较为清晰的思路,在这里记录一下,希望可以帮助相同的朋友。在使用Paddle进行多卡训练的时候,往往会遇到一下报错:RuntimeError: (PreconditionNotMet) The third-party dynamic library (libnccl.so) that Paddle depends on is not configured correctly. (error code is lib
2022-03-23 21:11:54 13722 5
原创 Linux系统下解决“No protocol specified“报错
上次说到“用户名不在sudoers中”的解决办法是:先切换为root用户,再在终端键入:gedit /etc/sudoers可是当你的权限过低的时候,你会发现你压根进去不了sudoers 文件,反馈给你的错误是:No protocol specified 那怎么解决呢?1.打开一个新的终端,键入命令:xhost +结果是:2.键入命令:echo $DISPLAY结果是:3.键入命令(后面的14.0是你需要更改的地方):export DISPLAY=:...
2022-03-21 13:42:57 17404 1
原创 Nvidia驱动失效解决方法:NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver.·
记录一下,随便写写遇到Nvidia报错:NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.怎么解决呢?按以下步骤操作:1.检查驱动和cuda,终端输入:nvcc -V2.发现驱动存在,查看已安装驱动的版本信息,终端输入:ls /usr/s
2022-03-16 11:44:34 1998
原创 Linux环境下docker安装步骤
什么最难?摸索最难!docker其它安装方法我也不了解,就记录一下在线安装的方式。按以下步骤来:1.先获取root权限,终端输入命令:sudo su2.安装redhat-lsb,端输入命令:yum install -y redhat-lsb3.查看redhat-lsb是否安装好,终端输入命令:uname -r4.查看是否有装过docker列表,终端输入命令:yum list installed | grep docker如果存在docker列表,而doc..
2022-03-15 22:39:54 1532
原创 Linux系统下解决 ImportError:‘GLIBCXX_3.4.21‘ not found 的错误
忙里偷闲,记录随笔。在代码运行的时候可能会出现一下错误:ImportError: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /data10/gaoxl/install/anaconda3/envs/paddle37/lib/python3.7/site-packages/scipy/_lib/_uarray/_uarray.cpython-37m-x86_64-linux-gnu.so)这是因为
2022-03-10 14:07:18 3257 1
原创 ICCV2021 Best Paper : Swin Transformer (三)
code:GitHub - microsoft/Swin-TransformerSwin Transformer里面的具体架构是怎么实现的呢?由于代码呢很长容易理不清调用间的关系,最好的办法呢画一张图来表示:首先呢我们会定义需要使用的版本的swin transformer函数,比如swin_tiny_patch4_window7_224,然后呢调用SwinTransformer类,具体参数呢代码里已经很详细了,不需要多说def swin_tiny_patch4_window7_224(
2022-02-18 16:57:25 1644
原创 ICCV2021 Best Paper : Swin Transformer (二)
三、Supplement1.Relative Position Bias在Swin Transformer (一)中呢已经结束了主干部分,接下来呢,就是剩余的一些边边角角,不过重要的呢,是对源码的解析。在之前有提到说attention的计算多加了一个,即 :我们把这个呢叫做偏置,也称为相对位置偏置Relative Position Bias。那这个Relative Position Bias到底在做一件怎样的事情呢?我们以下图为例,window=2,先在窗口内任意选定一个参考点,比如第一..
2022-02-17 20:48:56 842
原创 ICCV2021 Best Paper : Swin Transformer (一)
今天呢,并不是什么重要的日子,但绝对是值得记录下Swin transformer的美好时刻。在写Swin transformer之前呢,会不禁有这样一个问题:Swin transformer要解决一个怎样的事情呢?这件事情就是:我们知道,在NLP任务中啊输入的token大小基本相同,而在CV领域例如目标检测中由于目标尺寸并不相同,那用单层级的模型就很难有好的效果;其次将transformer迁移到CV领域,由于图像分辨率高,像素点多,transformer基于全局的自注意力的计算将导致十分巨大的计算量,尤其
2022-02-17 09:15:00 1142
原创 Q&A:Transformer, Bert, ELMO, GPT, VIT
南方阴雨绵绵的气候出门都成了一种奢望,即便冬季漫长而又枯燥,但那真正意义上的春天也将悄然来临。这样的开头并不多见,那今天为什么要舞文弄墨呢?因为感冒它终于好了!所以对近期的科研工作做个小结,但是呢很多地方不敢细想,水太深,把握不住,就写写常见的question and answer一、Q&A:Transformer1. Transformer为什么要使用多头注意力机制呢?你可以想啊,这件事情就是,我们在做self-attention的时候,是用q去找相关的k。但是“相关”这件事情,.
2022-02-14 16:51:07 880
原创 Bert and its family——GPT
在更新完ELMO、Bert之后,还有一个家族成员——GPT需要记录。其实也一直想写啦,只不过最近都在玩。那什么是GPT呢?GPT就是Generative Pre-Training 的简称,实际上就是transformer的decoder。那GPT在做一个怎样的工作呢?就是输入一个句子中的上一个词,我们希望GPT模型可以得到句子中的下一个词,就仅此而已。当然,由于GPT-2的模型非常巨大,它在很多任务上都达到了惊人的结果,甚至可以做到zero-shot learning(简单来说就是模型的迁移能力非常好),如
2022-02-09 12:32:40 1583
原创 Bert and its family——Bert
在写完ELMO之后呢,就是我们的主角——Bert。Bert(Bidirectional Encoder Representation from Transformers)架构呢实际上是transformer中的encoder,同样里面有很多Self-Attention和residual connection,还有normalization等等。Bert的基本模型结构由多层transformer构成,包含2个预训练任务:掩码语言模型(Mask Language Model,MLM)和下一个句子预测(Next.
2022-02-06 23:02:15 984
原创 Bert and its family——ELMO
在写bert and its family之前呢,还是磨蹭了很久,主要是最近一直在喝酒,然后牌桌上的失意,愈发的难过。在写之前呢,我们先了解一个问题:机器怎么看懂人类文字?换句话说,我们怎么把文字输入到电脑里面去,让电脑能够看懂人类文字。那在bert、ELMO之前,机器是这样去读人类文字的:最早的做法是说每一个人类的词汇就当作是一个不同的符号,每一个符号都用一个独特的编码来表示这个符号。那最常见的做法叫做one-hot embedding。假设说现在世界上只有5个词汇,那我们把这五个词汇都用一个向量来描
2022-02-03 19:06:59 953
原创 Why transformer?(三)
在这一部分我们就要弄明白“encoder和decoder之间是怎么传递讯息的”了,如果你仔细观察下图红方块那一块的话(也就是我们在Why transformer(二)中遮起来的那一块),那我们就把这一块叫做Cross attention,它是连接encoder和decoder之间的桥梁。三、Cross attention上图红色框中你会发现,有两个输入来自于encoder(图中蓝色圆圈),另外一个输入才来自decoder。那这个模组实际上是怎么运作的呢?假设我们现在输入一排向量给encode..
2022-02-02 18:13:09 686
原创 Why transformer?(二)
前面有说呢,seq2seq model里面会分成两块,一块是encoder,,另外一块是decoder。你input一个sequence,由encoder处理这个sequence,再把处理好的sequence丢给decoder,由decoder决定它要输出什么样的sequence。在前面的 Why transformer(一)里呢,我们有详细的剖析transformer encoder的架构。现在呢,我们来看一看transformer decoder是怎样运作的。二、decoder那decode
2022-01-31 18:02:21 2054
原创 Why transformer?(一)
今天呢,是忙里偷闲来写一写transform,因为为了卤羊排,已经把我的耐心磨损到了临界值;不过为了舌尖上的美味,这好像是笔不亏的买卖。我们已经提到过好多次transformer,那transformer是什么呢?transformer就是一个sequence to sequence的model,sequence to sequence我们一般会写成seq2seq。那seq2seq又是什么呢?我们之前在写input a sequence的case时有提到过,input是一个sequence,那outpu
2022-01-30 09:15:00 650
原创 self-attention is all you need(三)
self-attention呢有一个进阶的版本,叫做Multi-head self-attention。实际Multi-head self-attention今天的使用是相当的广泛。我们知道,并不是所有的任务都适合用比较少的head,有一些任务,比如说翻译、语音辨识等用比较多的head会得到比较好的结果。那至于需要用多少的head,这个超参数是需要你自己调的。那为什么我们会需要比较多的head呢?你可以想啊,相关这件事情就是,我们在做self-attention的时候,是用q去找相关的k。但是相关这件事
2022-01-29 14:54:11 305
原创 self-attention is all you need(二)
过年的气息越来越浓厚了,那我们接着从self-attention is all you need (一)写下去在self-attention is all you need (一)呢,我们已经操作过怎样跟据Input sequence得到output sequence。self-attention要做的事情,就是给定一排的input vector得到另外一排output vactor。之前我们已经操作过如何根据一排input sequence(a1~a4)得到b1,同理可以得到b2~b4。这里需要强调的
2022-01-29 11:45:09 651 2
原创 self-attention is all you need(一)
还有几天就是22年春节了,趁年底写一写对self-attention的理解,虽然仍在隔离中,但科研永远在路上。一、what is attention ?类比而言,当download信息映入眼帘时,我们的大脑会把注意力放在主要的信息上,这就是大脑的注意力机制。同样地,当我们读一句话时,大脑也会首先记住重要的词汇。换句话说,Attention是从大量信息中有筛选出少量重要信息,并聚焦到这些重要信息上,忽略大多不重要的信息。就像下面这张图片,第一眼看到的一定是这个可爱的姑娘吧,然后才注意到身边的猫吧~
2022-01-27 17:43:42 850
原创 Pytorch数据读取机制(DataLoader)
一、python读取机制在学习Pytorch的数据读取之前,我们得先回顾一下这个数据读取到底是以什么样的逻辑存在的, 我们知道机器模型学习的五大模块,分别是数据,模型,损失函数,优化器,迭代训练。而这里的数据读取机制,很显然是位于数据模块的一个小分支,下面看一下数据模块的详细内容:数据模块中,又可以大致分为上面不同的子模块, 而今天学习的DataLoader和DataSet就是数据读取子模块中的核心机制。 了解了上面这些框架,有利于把知识进行整合起来,到底学习的内容属于哪一块。下面正式开始Dat
2022-01-23 17:15:41 10559 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人