深度学习计算机视觉之SSD MultiBox —实时对象检测
自从AlexNet在2012年ImageNet大规模视觉识别挑战赛(ILSVRC)席卷研究界以来,深度学习已成为图像识别任务的首选方法,远远超过了文献中使用的传统计算机视觉方法。在计算机视觉领域,卷积神经网络擅长图像分类,它包括对图像进行分类,给定一组类别(例如猫,狗),并让网络确定图像中存在的最强类别。如今,深度学习网络在图像分类方面比人类更胜一筹,这表明该技术的强大功能。但是,作为人类,我们在观察和与世界互动时所做的不仅是对图像进行分类。我们还将对我们视野内的每个元素进行位置预测和分类。这些是复杂得多的任务,机器仍然要像人类一样努力地执行。实际上,我认为对象检测性能良好时,会使机器更接近真实场景的理解。The Region-Convolutional Neural Network (R-CNN)几年前,通过利用CNN在计算机视觉中实现的某些飞跃,研究人员开发了R-CNN以处理对象检测,定位和分类的任务。广义上讲,R-CNN是一种特殊的CNN,它能够定位和检测图像中的对象:输出通常是一组与每个检测到的对象紧密匹配的边界框,以及每个对象的类输出。检测到的物体。下图显示了典型R-CNN的输出:该领域有详尽的论文清单,对于任何渴望进一步探索的人,我建议从以下围绕该主题的论文“三部曲”开始:●神经网络●Fast RCNN●Faster RCNN您可能已经猜到了,接下来的每篇论文都提出了对R-CNN中所做的开创性工作的改进,以开发更快的网络,以实现实时对象检测。通过这组工作所显示的成就确实令人惊叹,但是这些架构都无法创建实时对象检测器。在不过多讨论的情况下,确定了上述网络的以下问题:●训练数据很麻烦且时间太长●培训分为多个阶段(例如,培训区域建议与分类器)●网络在推理 时(例如,在处理非训练数据时)太慢幸运的是,在过去的几年中,创建了新的体系结构来解决R-CNN及其后续版本的瓶颈,从而实现了实时对象检测。最著名的是YOLO(您只看一次)和SSD MultiBox(单发检测器)。在本文中,我们将讨论SSD,因为与YOLO相比,此体系结构的覆盖面似乎更少。此外,一旦您了解了SSD,也应该更容易掌握YOLO。Single Shot MultiBox Detector关于SSD:Single Shot MultiBox Detector的论文(C.Szegedy等人)于2016年11月发布,在对象检测任务的性能和精度方面均达到了新记录,得分超过74%(平均 平均精度))在PascalVOC和COCO等标准数据集上以每秒59帧的速度播放。为了更好地了解SSD,让我们首先解释一下此架构的名称来自何处:●Single Shot:这意味着对象定位和分类的任务是在网络 的一次 正向传递中完成的●MultiBox:这是Szegedy等人开发的边界框回归技术的名称。(我们将简要介绍一下)●检测器:网络是一个对象检测器,还可以对那些检测到的对象进行分类从上图可以看到,SSD的体系结构建立在古老的VGG-16体系结构上,但丢弃了完全连接的层。VGG-16被用作基础网络的原因是由于其在高质量图像分类任务中的强大性能以及在传输学习有助于改善结果的问题中的广泛应用。代替原始的VGG全连接层,添加了一组辅助卷积层(从conv6开始),从而能够以多个比例提取特征并逐渐减小每个后续层的输入大小。MultiBoxSzegedy在MultiBox上的工作启发了SSD的包围盒回归技术,MultiBox是一种用于类无关的快速包围盒坐标建议的方法。有趣的是,在MultiBox上完成的工作中,使用了Inception风格的卷积网络。您在下面看到的1x1卷积有助于减少维数,因为维数会减少(但“宽度”和“高度”将保持不变)。MultiBox的丢失功能还结合了两个进入SSD的关键组件:●置信度损失(Confidence Loss):这用于衡量网络对计算的边界框的客观性的置信度。分类交叉熵用于计算此损失。●位置损失:衡量网络的预测边界框与训练集中的地面真实边界框有多远。此处使用L2-Norm。因此,无需深入研究数学,损失的表达式即为:距离 + 位置:本 alpha 长期帮助我们在平衡位置损失的贡献。像深度学习中一样,目标是找到最优化减少损失函数的参数值,从而使我们的预测更接近于基本事实。MultiBox Priors和IoU实际上,围绕边界框生成的逻辑比我之前所说的要复杂。但是不要担心:它仍然可以实现。在MultiBox中,研究人员创建了我们所谓的先验(或Faster-R-CNN术语中的锚点),它们是预先计算的,固定大小的边界框,与原始地面真值框的分布紧密匹配。实际上,以这样的方式选择这些先验,即它们的交集与交集之比(又名IoU,有时也称为Jaccard指数)大于0.5。从下面的图片可以推断,IoU值0.5仍然不够好,但是它确实为边界框回归算法提供了一个强大的起点-与从随机坐标开始进行预测相比,这是一个更好的策略!因此,MultiBox从先验开始作为预测,并尝试回归到更接近地面真实边界框。产生的架构(请再次查看上面的MultiBox架构图以供参考)每个功能图单元(8x8、6x6、4x4、3x3、2x2)包含11个先验,而在1x1功能图上只有一个先验,因此每个图像总共1420个先验,因此,可以在多个比例上可靠地覆盖输入图像,以检测各种尺寸的物体。最后,MultiBox仅保留前K个预测,这些预测已将位置(LOC)和置信度(CONF)损失最小化。SSD改进回到SSD上,添加了许多调整,以使该网络更加能够对对象进行位置预测和分类。固定优先级:与MultiBox不同,每个要素地图单元都与一组具有不同尺寸和纵横比的默认边界框相关联。这些先验是手动(但要小心)选择的,而在MultiBox中选择它们是因为它们相对于地面真实性的IoU超过0.5。从理论上讲,这应该使SSD可以针对任何类型的输入进行通用化,而无需前代的预训练阶段。例如,假设我们在给定大小为f = m *的特征图上,为每个特征图像元每个b默认边界框配置了2个对角相对的点(x1,y1)和(x2,y2),并配置了c个类进行分类。ñ ,SSD将为此功能图计算f * b * (4 + c)值。位置损失: SSD 使用平滑的L1-Norm计算位置损失。尽管不如L2-Norm精确,但它仍然非常有效,并为SSD提供了更大的回旋余地,因为它没有在边界框预测中尝试“像素完美”(即,几个像素之间的差异几乎不会引起注意)我们中许多人)。分类: MultiBox不执行对象分类,而SSD则执行。因此,对于每个预测的边界框,针对数据集中的每个可能的类别,计算一组c类预测。
一、深度学习简介
1、什么是神经网络一个关于房价预测的简单神经网络示意图如下图所示:其中,最左测的所有特征称为输入层(Input layer),中间一层称为全连接层(dense layer),最右侧一层称为输出层(output layer)。2、使用神经网络做监督学习 使用神经网咯做监督学习的使用案例如下所示:基本神经网络,卷积神经网络(CNN)和循环神经网络(RNN)的示意图如下图所示:结构化数据: 每一个特征的数据都能都被准确地进行量化,如房价,房间数量;用户年龄,用户ID,etc。 非结构化数据: 当输入的信息时声音,图片或者文本时,特征的数据无法准确地进行量化,如图像可以使用像素,文本可以使用单次编码。3、使用神经网络做逻辑回归 加入我们现在的目标是通过二元分类来判断某张图片是否中的图像是否是“猫”,则首先需要将图片的像素值提取出来作为神经网络的输入特征向量,假如一幅图片的大小为64×64个像素点,而每一个像素点又包括红黄蓝三种色彩,将所有的像素点伸缩称为一个特征向量x,则x的大小为64×64×3。3.1 符号定义单个样本(x,y),x∈Rn,y∈{0,1},其中x表示特征向量,y表示真值。 m个训练样本: {(x(1),y(1)),(x(2),y(2)),...,(x(m),y(m)),};所有特征组成的向量集合 X=[x(1),x(2),...,x(m)],X∈R(n×m); 所有真值的集合 Y=[y(1),y(2),...,y(m)]3.2 逻辑回归模型给定一组训练数据,需要预测y^=P(y=1∣x);给定参数:w∈Rn,b∈Rn;输出预测值 y^=σ(wTx+b)。其中, sigmoid=1+e−z1函数图像如下所示:逻辑回归模型使用交叉熵误差: L(y^,y)=−(ylogy^+(1−y)log(1−y^)),使用交叉熵误差的原因如下所示:逻辑回归的成本函数如下所示: J(w,b)=m1∑i=1mL(y^,y)3.3 使用梯度下降训练神经网络神经网络的成本函数是 J(w,b),目标是选择合适的参数 w,b使得成本函数 J(w,b)尽可能地小,所以使用梯度下降时,首先需要计算 J(w,b)关于参数 w,b的偏导数,之后让参数 w,b沿着导数的方向进行移动,直到算法收敛。参数 w,b更新的方式如下所示:3.4 计算图计算图从左到右计算损失函数 J的值,从右到左计算计算图中每一个参数的梯度,下图是一个计算图的示例:3.5 逻辑回归中的梯度下降 逻辑回归的模型和计算图如下图所示:逻辑回归模型反向传播计算过程如下图所示:3.6 多样本下的梯度下降 m个样本下的逻辑回归模型的梯度下降算法流程如下所示:
NLP知识图谱项目合集(信息抽取、文本分类、图神经网络、性能优化等)
NLP知识图谱项目合集(信息抽取、文本分类、图神经网络、性能优化等)这段时间完成了很多大大小小的小项目,现在做一个整体归纳方便学习和收藏,有利于持续学习。1. 信息抽取项目合集1.PaddleNLP之UIE技术科普【一】实例:实体识别、情感分析、智能问答https://aistudio.baidu.com/aistudio/projectdetail/4180615?contributionType=1NLP领域任务选择合适预训练模型以及合适的方案【规范建议】【ERNIE模型首选】https://aistudio.baidu.com/aistudio/projectdetail/4888188?contributionType=1Paddlenlp之UIE模型实战实体抽取任务【打车数据、快递单】https://aistudio.baidu.com/aistudio/projectdetail/4321385?contributionType=1快递单信息抽取【二】基于ERNIE1.0 预训练模型https://aistudio.baidu.com/aistudio/projectdetail/4157455?contributionType=1快递单信息抽取[三]:Ernie 1.0至ErnieGram + CRF改进算法https://aistudio.baidu.com/aistudio/projectdetail/4159638?contributionType=1UIE之快递单信息抽取【四】--小样本标注数据提高准确率https://aistudio.baidu.com/aistudio/projectdetail/4160432?contributionType=1Paddlenlp之UIE关系抽取模型【高管关系抽取为例】https://aistudio.baidu.com/aistudio/projectdetail/4371345?contributionType=1文档级关系抽取模型:基于结构先验产生注意力偏差SSAN模型https://aistudio.baidu.com/aistudio/projectdetail/4666541?contributionType=1基线提升至96.45%:2022 司法杯犯罪事实实体识别+数据蒸馏+主动学习https://aistudio.baidu.com/aistudio/projectdetail/4911042?contributionType=1[信息抽取]基于ERNIE3.0的多对多信息抽取算法:属性关系抽取https://aistudio.baidu.com/aistudio/projectdetail/5143572?contributionType=1基于ERNIELayout&PDFplumber-UIEX多方案学术论文信息抽取https://aistudio.baidu.com/aistudio/projectdetail/5196032?contributionType=12.文本分类意图识别项目合集应用实践:分类模型大集成者[PaddleHub、Finetune、prompt]https://aistudio.baidu.com/aistudio/projectdetail/4357474?contributionType=1小样本学习分类任务:在文心ERNIE3.0应用(提示学习),提速提效快用起来!https://aistudio.baidu.com/aistudio/projectdetail/4438610?contributionType=12022 CCF大数据与计算智能大赛:小样本数据分类任务baselinehttps://aistudio.baidu.com/aistudio/projectdetail/4479243?contributionType=1Paddlenlp之UIE分类模型【以情感倾向分析新闻分类为例】含智能标注方案)https://aistudio.baidu.com/aistudio/projectdetail/4337189?contributionType=1基于ERNIR3.0文本分类:(KUAKE-QIC)意图识别多分类(单标签)https://aistudio.baidu.com/aistudio/projectdetail/4362154?contributionType=1基于Ernie-3.0 CAIL2019法研杯要素识别多标签分类任务https://aistudio.baidu.com/aistudio/projectdetail/4280922?contributionType=1基于ERNIR3.0文本分类:CAIL2018-SMALL罪名预测为例(多标签)https://aistudio.baidu.com/aistudio/projectdetail/4374631?contributionType=1基于ERNIR3.0文本分类:WOS数据集为例(层次分类)https://aistudio.baidu.com/aistudio/projectdetail/4382251?contributionType=13.模型性能提升项目合集在数据增强、蒸馏剪枝下ERNIE3.0模型性能提升详细方案https://aistudio.baidu.com/aistudio/projectdetail/4436131?contributionType=1Paddle模型性能分析工具Profiler:定位瓶颈点、优化程序、提升性能https://aistudio.baidu.com/aistudio/projectdetail/4482932?contributionType=1可视化分析工具VisualDL 2.4强势来袭!新增:动态图模型可视化和性能分析https://aistudio.baidu.com/aistudio/projectdetail/4561034?contributionType=1推广TrustAI可信分析:通过提升数据质量来增强在ERNIE模型下性能https://aistudio.baidu.com/aistudio/projectdetail/4622139?contributionType=1AiTrust下预训练和小样本学习在中文医疗信息处理挑战榜CBLUE表现https://aistudio.baidu.com/aistudio/projectdetail/4592515?contributionType=1UIE Slim满足工业应用场景,解决推理部署耗时问题,提升效能!https://aistudio.baidu.com/aistudio/projectdetail/4516470?contributionType=1主动学习(Active Learning)综述以及在文本分类和序列标注应用https://aistudio.baidu.com/aistudio/projectdetail/4897371?contributionType=14.知识图谱项目合集技术知识介绍:工业级知识图谱方法与实践https://aistudio.baidu.com/aistudio/projectdetail/4444783?contributionType=1特定领域知识图谱融合方案:技术知识前置【一】-文本匹配算法https://aistudio.baidu.com/aistudio/projectdetail/5398069?contributionType=1特定领域知识图谱(Domain-specific KnowledgeGraph:DKG)融合方案(重点!)在前面技术知识下可以看看后续的实际业务落地方案和学术方案关于图神经网络的知识融合技术学习参考下面链接:[PGL图学习项目合集&数据集分享&技术归纳业务落地技巧[系列十]](https://aistudio.baidu.com/aistudio/projectdetail/5127575?contributionType=1)从入门知识到经典图算法以及进阶图算法等,自行查阅食用!文章篇幅有限请参考专栏按需查阅:NLP知识图谱相关技术业务落地方案和码源4.1 特定领域知识图谱知识融合方案(实体对齐):优酷领域知识图谱为例方案链接:https://blog.csdn.net/sinat_39620217/article/details/1286149514.2 特定领域知识图谱知识融合方案(实体对齐):文娱知识图谱构建之人物实体对齐方案链接:https://blog.csdn.net/sinat_39620217/article/details/1286739634.3 特定领域知识图谱知识融合方案(实体对齐):商品知识图谱技术实战方案链接:https://blog.csdn.net/sinat_39620217/article/details/1286744294.4 特定领域知识图谱知识融合方案(实体对齐):基于图神经网络的商品异构实体表征探索方案链接:https://blog.csdn.net/sinat_39620217/article/details/1286749294.5 特定领域知识图谱知识融合方案(实体对齐)论文合集方案链接:https://blog.csdn.net/sinat_39620217/article/details/128675199论文资料链接:两份内容不相同,且按照序号从小到大重要性依次递减知识图谱实体对齐资料论文参考(PDF)+实体对齐方案+特定领域知识图谱知识融合方案(实体对齐)知识图谱实体对齐资料论文参考(CAJ)+实体对齐方案+特定领域知识图谱知识融合方案(实体对齐)4.6 知识融合算法测试方案(知识生产质量保障)方案链接:https://blog.csdn.net/sinat_39620217/article/details/1286756985.图神经网络1.1 关于图计算&图学习的基础知识概览:前置知识点学习(PGL)[系列一] :https://aistudio.baidu.com/aistudio/projectdetail/4982973?contributionType=1本项目对图基本概念、关键技术(表示方法、存储方式、经典算法),应用等都进行详细讲解,并在最后用程序实现各类算法方便大家更好的理解。当然之后所有图计算相关都是为了知识图谱构建的前置条件1.2 图机器学习(GML)&图神经网络(GNN)原理和代码实现(前置学习系列二)https://aistudio.baidu.com/aistudio/projectdetail/4990947?contributionType=1现在已经覆盖了图的介绍,图的主要类型,不同的图算法,在Python中使用Networkx来实现它们,以及用于节点标记,链接预测和图嵌入的图学习技术,最后讲了GNN分类应用以及未来发展方向!1.3 图学习初探Paddle Graph Learning 构建属于自己的图【系列三】 https://aistudio.baidu.com/aistudio/projectdetail/5000517?contributionType=1本项目主要讲解了图学习的基本概念、图的应用场景、以及图算法,最后介绍了PGL图学习框架并给出demo实践,过程中把老项目demo修正版本兼容问题等小坑,并在最新版本运行便于后续同学更有体验感1.4 PGL图学习之图游走类node2vec、deepwalk模型[系列四]https://aistudio.baidu.com/aistudio/projectdetail/5002782?contributionType=1介绍了图嵌入原理以及了图嵌入中的DeepWalk、node2vec算法,利用pgl对DeepWalk、node2vec进行了实现,并给出了多个框架版本的demo满足个性化需求。图学习【参考资料1】词向量word2vec https://aistudio.baidu.com/aistudio/projectdetail/5009409?contributionType=1介绍词向量word2evc概念,及CBOW和Skip-gram的算法实现。图学习【参考资料2】-知识补充与node2vec代码注解https://aistudio.baidu.com/aistudio/projectdetail/5012408?contributionType=1主要引入基本的同构图、异构图知识以及基本概念;同时对deepWalk代码的注解以及node2vec、word2vec的说明总结;(以及作业代码注解)1.5 PGL图学习之图游走类metapath2vec模型[系列五]https://aistudio.baidu.com/aistudio/projectdetail/5009827?contributionType=1介绍了异质图,利用pgl对metapath2vec以及metapath2vec变种算法进行了实现,同时讲解实现图分布式引擎训练,并给出了多个框架版本的demo满足个性化需求。1.6 PGL图学习之图神经网络GNN模型GCN、GAT[系列六] [https://aistudio.baidu.com/aistudio/projectdetail/5054122?contributionType=1](https://aistudio.baidu.com/aistudio/projectdetail/5054122?contributionType=1)本次项目讲解了图神经网络的原理并对GCN、GAT实现方式进行讲解,最后基于PGL实现了两个算法在数据集Cora、Pubmed、Citeseer的表现,在引文网络基准测试中达到了与论文同等水平的指标。1.7 PGL图学习之图神经网络GraphSAGE、GIN图采样算法[系列七] https://aistudio.baidu.com/aistudio/projectdetail/5061984?contributionType=1本项目主要讲解了GraphSage、PinSage、GIN算法的原理和实践,并在多个数据集上进行仿真实验,基于PGl实现原论文复现和对比,也从多个角度探讨当前算法的异同以及在工业落地的技巧等。1.8 PGL图学习之图神经网络ERNIESage、UniMP进阶模型[系列八]https://aistudio.baidu.com/aistudio/projectdetail/5096910?contributionType=1ErnieSage 可以同时建模文本语义与图结构信息,有效提升 Text Graph 的应用效果;UniMP 在概念上统一了特征传播和标签传播, 在OGB取得了优异的半监督分类结果。PGL图学习之ERNIESage算法实现(1.8x版本)【系列八】https://aistudio.baidu.com/aistudio/projectdetail/5097085?contributionType=1ERNIESage运行实例介绍(1.8x版本),提供多个版本pgl代码实现1.9 PGL图学习之项目实践(UniMP算法实现论文节点分类、新冠疫苗项目)[系列九]https://aistudio.baidu.com/aistudio/projectdetail/5100049?contributionType=1本项目借鉴了百度高研黄正杰大佬对图神经网络技术分析以及图算法在业务侧应用落地;实现了论文节点分类和新冠疫苗项目的实践帮助大家更好理解学习图的魅力。PGL图学习之基于GNN模型新冠疫苗任务[系列九]https://aistudio.baidu.com/aistudio/projectdetail/5123296?contributionType=1图神经网络7日打卡营的新冠疫苗项目拔高实战PGL图学习之基于UniMP算法的论文引用网络节点分类任务[系列九]https://aistudio.baidu.com/aistudio/projectdetail/5116458?contributionType=1基于UniMP算法的论文引用网络节点分类,在调通UniMP之后,后续尝试的技巧对于其精度的提升效力微乎其微,所以不得不再次感叹百度PGL团队的强大!PGL图学习项目合集&数据集分享&技术归纳业务落地技巧[系列十]https://aistudio.baidu.com/aistudio/projectdetail/5127575?contributionType=16.其他项目强化学习【强化学习项目一】搭建自己的寻宝游戏环境(Qlearning)https://aistudio.baidu.com/aistudio/projectdetail/2006781?contributionType=1MADDPG多智能体深度强化学习算法算法实现(parl)--【追逐游戏复现】https://aistudio.baidu.com/aistudio/projectdetail/1864915?contributionType=1使用TD3解决四轴飞行器悬浮任务https://aistudio.baidu.com/aistudio/projectdetail/1705633?contributionType=1深度学习【深度学习项目一】全连接神经网络实现手写数字识别https://aistudio.baidu.com/aistudio/projectdetail/1926913?contributionType=1深度学习项目二】卷积神经网络LeNet实现手写数字识别https://aistudio.baidu.com/aistudio/projectdetail/1928935?contributionType=1【深度学习项目三】ResNet50多分类任务【十二生肖分类】https://aistudio.baidu.com/bd-cpu-01/user/691158/5427356/home#codelab『深度学习项目四』基于ResNet101人脸关键点检测https://aistudio.baidu.com/aistudio/projectdetail/1932295?contributionType=1【深度学习项目五】:利用LSTM网络进行情感分析https://aistudio.baidu.com/aistudio/projectdetail/1994431?contributionType=1༄ℳ持续更新中ꦿོ࿐
《图计算优化技术探索》电子版地址
《图计算优化技术探索》图计算优化技术探索
电子版下载地址: https://developer.aliyun.com/ebook/2539
电子书:
</div>
《FLASH大规模分布式图计算引擎及应用》电子版地址
《FLASH:大规模分布式图计算引擎及应用》FLASH:大规模分布式图计算引擎及应用
电子版下载地址: https://developer.aliyun.com/ebook/1341
电子书:
</div>
《FLASH大规模分布式图计算引擎及应用》电子版地址
《FLASH:大规模分布式图计算引擎及应用》FLASH:大规模分布式图计算引擎及应用
电子版下载地址: https://developer.aliyun.com/ebook/1341
电子书:
</div>
ViT强势应用 | V2X基于ViT提出了一个具有V2X通信的强大协作感知框架
原文首发微信公众号【自动驾驶之心】:一个专注自动驾驶与AI的社区(https://mp.weixin.qq.com/s/NK-0tfm_5KxmOfFHpK5mBA)在本文中研究了Vehicle-to-Everything(V2X)通信在提高自动驾驶汽车感知性能方面的应用。使用新颖的vision Transformer提出了一个具有 V2X 通信的强大协作感知框架。具体来说,本文构建了一个整体注意力模型,即 V2X-ViT,以有效地融合道路代理(即车辆和基础设施)的信息。V2X-ViT 由异构多智能体自注意力和多尺度窗口自注意力的交替层组成,可捕获智能体间的交互和每个智能体的空间关系。这些关键模块设计在统一的 Transformer 架构中,以应对常见的 V2X 挑战,包括异步信息共享、姿势错误和 V2X 组件的异构性。为了验证方法的有效性,作者使用 CARLA 和 OpenCDA 创建了一个大规模的 V2X 感知数据集。广泛的实验结果表明,V2X-ViT 再 3D目标检测 方面得到了新的最先进性能,即使在恶劣、嘈杂的环境下也能实现稳健的性能。1. 简介准确感知复杂的驾驶环境对于自动驾驶汽车 (AV) 的安全至关重要。随着深度学习的最新进展,单车感知系统的鲁棒性在语义分割和模板检测等多项任务中表现出显著改善。尽管最近取得了进展,但挑战依然存在。单智能体感知系统往往会遭受远距离的遮挡和稀疏的传感器观察,这可能会导致灾难性的后果。造成这种问题的原因是单个车辆只能从单一视角感知环境,视野有限。为了解决这些问题,最近的研究通过调查Vehicle-to-Vehicle (V2V) 协作来利用同一场景的多个视点的优势,其中视觉信息(例如,检测输出、原始感官信息、中间深度学习特征)来自多个附近的 AV 共享,以便全面准确地了解环境。尽管 V2V 技术有望彻底改变移动行业,但它忽略了一个关键——路边基础设施。自动驾驶汽车的存在通常是不可预测的,而一旦安装在十字路口和人行横道等关键场景中,基础设施总是可以提供支持。此外,在较高位置配备传感器的基础设施具有更广阔的视野和可能更少的遮挡。尽管有这些优势,包括部署强大的 V2X 感知系统的基础设施并非易事。与所有代理都是同质的 V2V 协作不同,V2X 系统通常涉及由基础设施和 AV 形成的异构图。基础设施和车辆传感器之间的配置差异,例如类型、噪音水平、安装高度,甚至传感器属性和模式,使 V2X 感知系统的设计具有挑战性。此外,GPS 定位噪声和自动驾驶汽车和基础设施的异步传感器测量可能会引入不准确的坐标转换和滞后的传感信息。未能妥善处理这些挑战将使自动驾驶系统变得十分脆弱。在本文中介绍了一个统一的融合框架,即 V2X Vision Transformer 或 V2X-ViT,用于 V2X 感知,可以共同应对这些挑战。图 2 说明了整个系统。AV 和基础设施相互捕获、编码、压缩和发送中间视觉特征,而自我车辆(即接收器)使用 V2X-Transformer 执行信息融合以进行目标检测。作者提出了2个新颖的注意力模块来适应 V2X 挑战:1.一个定制的异构多智能体自注意力模块,在执行注意力融合时明确考虑智能体类型(车辆和基础设施)及其连接;2.一个多尺度窗口注意力模块,可以通过并行使用多分辨率窗口来处理定位错误。这2个模块将以迭代的方式自适应地融合视觉特征,以捕捉智能体间的交互和每个智能体的空间关系,纠正由定位误差和时间延迟引起的特征错位。此外,还集成了延迟感知位置编码,以进一步处理时间延迟的不确定性。值得注意的是,所有这些模块都集成在一个Transformer中,该Transformer可以实现端到端地应对这些挑战。为了评估本文的方法,作者收集了一个新的大规模开放数据集,即 V2XSet,它使用高保真模拟器carla和一个合作驾驶自动化模拟工具OpenCDA,明确地考虑了V2X通信过程中的真实噪声。图1显示了所收集到的数据集中的一个数据样本。实验表明,V2X-ViT显著提高了基于V2Xlidar的3D目标检测的性能,与single-agent baseline相比,实现了21.2%的AP增益,比领先的中间融合方法至少提高了7.3%。本文的主要贡献包括:1.提出了第一个用于V2X感知的统一Transformer架构(V2X-vit),它可以捕获V2X系统的异质性,对各种噪声具有很强的鲁棒性。此外,该模型在具有挑战性的协同检测任务上取得了最先进的性能。2.提出了一种新的异构多智能体注意力模块(HMSA),专门用于异构智能体之间的自适应信息融合。3.提出了一种新的多尺度窗口注意力模块(MSWin),它可以同时并行捕获局部和全局空间特征交互。4.构建了V2XSet,一个新的大规模的V2X感知的开放模拟数据集,它明确地解释了不完善的现实世界条件。2. V2X-ViT在本文中,作者将 V2X 感知视为异构多智能体感知系统,其中不同类型的智能体(即智能基础设施和 AV)感知周围环境并相互通信。为了模拟真实世界的场景,假设所有代理的定位不完善,并且在特征传输过程中存在时间延迟。鉴于此开发一个强大的融合系统,以增强车辆的感知能力并以统一的端到端方式应对上述挑战。框架的整体架构如图 2 所示,其中包括5个主要组件:元数据共享特征提取压缩和共享V2X-ViT一个Detection Head2.1 主要的架构设计1、元数据共享在协作的早期阶段,每个 agent 在通信网络中共享元数据,例如姿势、外在和agent类型 (表示基础设施或车辆)。选择其中一个连接的 AV 作为自车辆 (e) 以在其周围构建 V2X 图,其中节点是 AV 或基础设施,边缘表示定向 V2X 通信通道。在这项工作中关注特征共享延迟并忽略元数据共享延迟,因为它的尺寸最小。更具体地说,假设元数据的传输是同步良好的,这意味着每个agent i 都可以在时间 接收到自姿势 $。在接收到本车的姿态后,附近的所有其他连接agent将在特征提取之前将自己的 LiDAR 点云投影到本车的坐标系中。2、特征提取利用PointPillar从点云中提取视觉特征(PointPillar具有低推理延迟和优化的内存使用)。原始点云将被转换为一个堆叠的pillar张量,然后分散到一个二维伪图像,并输入到 PointPillar backbone。backbone提取信息特征图,表示 agent i在时间的特征,高度为H、宽度为W和通道C。3、压缩与共享为了减少所需的传输带宽,利用一系列1×1卷积沿通道维度逐步压缩特征图。然后将大小为(H,W,C')的压缩特征(其中 C'<< C)传输到自车辆 (e),在其上使用1×1卷积将特征投影回(H,W,C) 。在激光雷达数据被连接的agent捕获时和被提取的特征被自载体接收时之间存在着不可避免的时间间隔。因此,从周围agent收集的特征往往与自载体上捕获的特征在时间不一致。为了纠正这种延迟引起的全局空间失调,需要将接收到的特征转换(即旋转和平移)为当前的自车辆的姿态。因此,利用了一个时空校正模块(STCM),它使用了一个差分变换和采样算子Γξ来对特征映射进行空间扭曲。还计算了一个 ROI mask,以防止网络关注由空间扭曲引起的填充零。4、V2X-ViT从连接agents聚合的中间特征 被输入框架的主要组件,即 V2X-ViT,以使用自注意力机制进行迭代agents间和agents内特征融合。在整个 Transformer 中将特征图保持在相同的高分辨率水平,因为作者观察到缺乏高清特征会极大地损害模板检测性能。5、Detection head在收到最终的融合特征图 后,应用2个 1×1 卷积层进行框回归和分类。回归输出为(x,y,z,w,l,h,θ),分别表示预定义Anchor box的位置、大小和偏航角。分类输出是作为每个Anchor box的对象或背景的置信度得分。这里使用 PointPillar 中定义的相同损失,即用于回归的Smooth L1 Loss和用于分类的Focal Loss。2.2 V2X-Vision Transformer作者的目标是设计一个定制的 Vision Transformer,可以共同应对常见的 V2X 挑战。首先,为了有效地捕捉基础设施和 AV 之间的异构图表示,作者构建了一个异构多智能体自注意力模块,该模块根据节点和边类型学习不同的关系提出了一种新颖的空间注意力模块,即多尺度窗口注意力(MSwin),它可以捕获各种尺度的远程交互。MSwin 使用多个窗口大小来聚合空间信息,这大大提高了对定位错误的检测鲁棒性。最后,这2个注意力模块以分解的方式集成到单个 V2X-ViT 块中(如图 3a 所示)能够在整个过程中保持高分辨率特征。堆叠了一系列 V2X-ViT 块以迭代地学习agent间交互和每个agent的空间注意力,从而产生用于检测的强大聚合特征表示。1、异构多智能体自注意力基础设施和 AV 捕获的传感器测量结果可能具有不同的特征。基础设施的激光雷达通常安装在较高位置,遮挡较少且视角不同。此外,由于维护频率、硬件质量等原因,传感器可能具有不同级别的传感器噪声。为了编码这种异质性,作者构建了一种新颖的异构多智能体自注意力(HMSA),其中将类型附加到节点和边缘有向图。为了简化图结构,假设同一类别的agent之间的传感器设置是相同的。如图 3b 所示,有2种类型的节点和4种类型的边,即节点类型 和边类型 。请注意,与将节点特征视为向量的传统注意力不同,仅推理来自不同agent的相同空间位置的特征的交互以保留空间线索。形式上,HSMA 表示为:HSMA 包含3个操作符:一个线性聚合器、注意力权值估计器ATT和消息聚合器MSG。密集度是一组由节点类型索引的线性投影,聚合了多头信息。ATT计算基于相关节点和边缘类型的节点对之间的重要性权重:式中,|| 表示concat,m为当前Head数,h为Head总数。请注意,这里的密集度是由节点类型和Head数m共同索引的。K和Q中的线性层有不同的参数。为了结合边的语义意义,计算了query和key向量之间的点积,由矩阵加权。类似地,当解析来自相邻agent的消息时,通过分别嵌入基础设施和车辆的特性。利用矩阵,根据源节点与目标节点之间的边缘类型投影特征:2、多尺度窗口注意力本文提出了一种新型的注意力机制,专为高分辨率检测上的高效远程空间交互而设计,称为多尺度窗口注意力(MSwin)。它使用了一个窗口金字塔,每个窗口都覆盖了不同的注意力范围,如图 3c 所示。可变窗口大小的使用可以极大地提高 V2X-ViT 针对定位错误的检测鲁棒性(参见图 5b 中的消融研究)。在较大窗口中执行的注意力可以捕获远程视觉线索以补偿较大的定位错误,而较小的窗口分支在更精细的范围内执行注意力以保留局部上下文。之后,split-attention 模块用于自适应地融合来自多个分支的信息,使 MSwin 能够处理一系列姿势错误。注意,MSwin 独立应用于每个智能体,而不考虑任何智能体间融合;形式上,让 是单个agent的输入特征图。在 k 个平行分支中的分支 j 中,使用窗口大小 将 H 划分为形状为的张量,它表示一个 每个大小为 的非重叠patch网格。使用 个head来提高第 j 个分支的注意力。更详细的公式可以在附录中找到。作者还考虑了一个额外的相对位置编码 B,它作为添加到注意力图中的偏置项。由于沿每个轴的相对位置位于 范围内,这里从参数化矩阵 中获取 B。为了获得每个智能体的多范围空间关系,每个分支将输入张量 H 划分为不同的窗口大小,即 。当使用更大的窗口大小来节省内存使用时,会逐渐减少Head的数量。最后,通过 Split-Attention 模块融合来自所有分支的特征,产生输出特征 Y。所提出的 MSwin 的复杂性与图像大小 HW 成线性关系,同时享受远程多尺度感受野并自适应地融合两者并行的局部和全局视觉信息。值得注意的是,与 Swin Transformer 不同,本文多尺度窗口方法不需要掩码、填充或循环移位,使其在实现中更高效,同时具有更大规模的空间交互。3、延迟感知位置编码尽管空间扭曲矩阵Γ捕获了全局错位,但也需要考虑另一种类型的局部错位,它是由延迟引起的时间滞后期间的物体运动引起的。为了编码这些时间信息,利用了自适应延迟感知位置编码 (DPE),它由线性投影和可学习嵌入组成。使用以时间延迟 和通道 为条件的正弦函数对其进行初始化:一个线性投影将进一步扭曲可学习的嵌入,从而可以更好地推广到看不见的时延。在输入Transformer之前将这个投影嵌入添加到每个agents的特征中,以便将这些特性预先进行时间对齐。3. 实验3.1 3D检测性能3.2 检测可视化3.3 Attention map可视化4. 参考[1].V2X-ViT: Vehicle-to-Everything Cooperative Perception with Vision Transformer.
【图神经网络】GNN的目前进展
在深度学习时代,GNN在以下几个方面得到了迅速发展。提出了大量新的GNN模型,包括谱方法和空间方法。侧重于图的任务,例如图分类,需要得到整个图的表示。因此,许多池化方法被提出来,以从节点表示中获得图表示。传统的DNN容易收到对抗性攻击,GNN也继承了这一缺点。研究者已经开发了多种图对抗攻击方法和各种图对抗防御技术。可扩展性是GNN面临的紧迫问题。目前已存在很多将GNN应用到大型图的策略。新的GNN模型被设计用于处理发杂图,例如异构图、二分图、多维图、有符号图、超图和动态图。更多的深度架构被扩展到图上,诸如自编码器、变分自编码器、递归神经网络和生成对抗网络等。由于图是一种通用的数据表示形式,因此GNN已被用于许多领域,例如自然语言处理、计算机视觉、数据挖掘和医疗健康。
图神经网络 —— GNN通用计算管道
前言大家好,我是阿光。本专栏整理了《图神经网络》,内包含了不同图神经网络的原理以及相关代码实现,详细讲解图神经网络,理论与实践相结合,如GCN、GraphSAGE、GAT等经典图网络,每一个代码实例都附带有完整的代码+数据集。正在更新中~ ✨🚨 我的项目环境:平台:Windows10语言环境:python3.7编译器:PyCharmPyTorch版本:1.11.0PyG版本:2.1.0💥 项目专栏:【入门图神经网络】一、GNN模型的通用计算管道对于GNN模型来说可以将其看成一个通用的图模型管道,对于管道那么就会有通用的流水线设计,对于这个流水线中的常见步骤有4步,找出任务中的图结构信息、指定图类型、设计指定任务的损失函数、使用计算模块构建模型。二、找出任务中的图结构信息使用GNN的前提就是我们首先需要判断我们的任务能够使用GNN来进行建模,其次就是如果符合那么我们的图数据是什么。通常有两种情景:结构性情景和非结构性情景。在结构场景中,图结构在应用中是显式的,例如蛋白质分子结构、智慧交通、知识图谱、推荐系统等应用。在非结构场景中图是隐式的,因此我们必须首先从任务中构建图,例如像现在的文本处理我们也可以使用GNN来进行建模,但是GNN是基于图数据的,但是我们的文本数据并不是属于图结构,所以我们必须要进行构造,常用构建方式就可以设计一个窗口,将窗口内的词进行连接,将每个词看成图中的节点。三、指定图类型有向和无向图:有向图中的边都是从一个节点指向另一个节点的,这提供了比无向图更多的信息。无向图中的每条边也可以看作是两条有向边。同构图和异构图:同构图中的节点和边具有相同的类型,而异构图中的结点和边具有不同的类型。节点和边的类型在异构图中起着重要作用,应该进一步考虑。静态图和动态图:当输入特征或图的拓扑随时间变化时,该图被视为动态图。在动态图中应仔细考虑时间信息。对于这些类型我们可以随意组合,例如,可以处理动态有向异构图。还有其他几种图形类型是为不同的任务设计的,如超图和签名图。我们不会在这里列举所有类型,但最重要的想法是考虑这些图提供的附加信息。一旦我们指定了图形类型,在设计过程中应该进一步考虑这些图形类型提供的附加信息。四、设计指定任务的损失函数对于不同的任务我们需要设计不同的损失函数,常见的图应用有节点级任务、边级任务、图级任务。节点级任务侧重于节点,包括节点分类、节点回归、节点聚类等。节点分类试图将节点分类为几个类,节点回归预测每个节点的连续值。节点聚类旨在将节点划分为几个不相交的组,其中相似的节点应该在同一组中。边级任务是边缘分类和链接预测,这要求模型对边缘类型进行分类,或预测两个给定节点之间是否存在边缘。图级任务包括图分类、图回归和图匹配,所有这些都需要模型来学习图表示。五、使用计算模块构建模型我们需要针对不同的任务设计不同的模块来获得相应的信息。传播模块:传播模块用于在节点之间传播信息,以便聚合的信息可以捕获特征和拓扑信息。在传播模块中,卷积算子和递归算子通常用于聚集来自邻居的信息,而跳过连接操作用于从节点的历史表示中收集信息并缓解过度平滑问题。采样模块:当图很大时,通常需要采样模块来对图进行传播。采样模块通常与传播模块相结合。池化模块:当我们需要高级子图或图的表示时,需要池模块来从节点中提取信息。利用这些计算模块,通常通过组合它们来构建典型的GNN模型。其中卷积算子、递归算子、采样模块和跳过连接用于在每一层传播信息,然后添加池模块以提取高层信息。这些层通常被堆叠以获得更好的表示。请注意,这种架构可以概括大多数GNN模型。参考文章Graph neural networks: A review of methods and applications
图神经网络通用框架 —— MPNN消息传递神经网络
前言大家好,我是阿光。本专栏整理了《图神经网络》,内包含了不同图神经网络的原理以及相关代码实现,详细讲解图神经网络,理论与实践相结合,如GCN、GraphSAGE、GAT等经典图网络,每一个代码实例都附带有完整的代码+数据集。正在更新中~ ✨🚨 我的项目环境:平台:Windows10语言环境:python3.7编译器:PyCharmPyTorch版本:1.11.0PyG版本:2.1.0💥 项目专栏:【入门图神经网络】一、图计算框架对于空域的图神经网络常见有GAT、GCN等变体,除此之外目前还提出了几个通用的计算框架,目的就是将一些模型集成到一个框架当中。对于常见的计算模块通常有传播模块、采样模块、池化模块等,针对每个模块目前都有很多不同的设计模式,所以一些研究人员想要提出一个通用的框架来表示这个计算流程。二、计算模块传播模块:用于在节点之间传播信息,以便聚合的信息可以捕获特征和拓扑信息。在传播模块中,卷积算子和递归算子通常用于聚集来自邻居的信息,而跳过连接操作用于从节点的历史表示中收集信息并缓解过度平滑问题。采样模块:当图很大时,通常需要采样模块来对图进行传播。采样模块通常与传播模块相结合。池化模块:当我们需要高级子图或图的表示时,需要池模块来从节点中提取信息。Monti等人提出了混合模型网络MoNet,这是在图或流形上定义的几种方法的通用空间框架。Gelmer等人提出了消息传递神经网络MPNN,该网络使用消息传递函数来统一几个变体。Wang等人提出了非局部神经网络NLNN,它统一了几种“自我注意力”方法。Battaglia等人提出了图形网络GN,它是一个更加通用的框架,能够学习节点级、边级和图级别的表示学习。三、MPNN消息传递神经网络MPNN是Gilmer等人为实现分子性质预测提出的一个通用计算框架。该模型主要包含两个阶段:消息传递阶段和读取阶段消息传递阶段(Message Passing Phase):该阶段分别两个步骤,分别是聚合邻居信息和更新状态信息上式用于聚合邻居,其中 M t M_tMt 代表一个可微函数,用于聚合信息使用,最简单的设计就是一个全连接神经网络,将输入的节点与邻居节点的特征向量以及边特征进行映射形成新的维度特征,然后将所有邻居聚合后的信息进行加和。该式是用于更新节点状态的,同理 U t U_tUt 也是一个可微函数,输入的信息是当前节点的隐状态信息以及聚合后的信息,经过更新作为新的时间点的隐状态特征向量。对于下标v表示当前节点,上标t代表第t个时间步,或者可以理解为第t层特征经过了几个网络层,N v N_vNv代表节点v的所有邻居。读取阶段(Readout Phase):这个阶段主要是为整张图计算一个特征向量用于表示整张图对于R一般常见有均值聚合器、最大聚合器、LSTM聚合器,类似于图像处理中的最大池化层,对于均值聚合器,我们可以将整张图所有节点的特征向量进行加权平均作为整张图的向量表示,对于LSTM聚合器就是将所有节点的特征向量输入到LSTM当中,利用LSTM网络进行提取信息然后将最后一个时间步的输出作为整张图的表示。参考文章Neural Message Passing for Quantum ChemistryGraph neural networks: A review of methods and applications