经典文献阅读之--PON

news2024/10/7 14:28:34

0. 简介

作为Transformer在机器视觉领域的爆火,在自动驾驶领域目前很多工作都集中在前视转鸟瞰图的方法中,这里我们来讲2020年一篇经典的论文《Predicting Semantic Map Representations from Images using Pyramid Occupancy Networks》,其工作被近两年的新的BEV算法进行充分的验证以及对比,从今天的眼光来看,这项工作的思想仍然是非常好的。论文通过使用Transformer算法,通过单目视觉检测俯视图下(BEV (bird eye view))车辆建立语义地图,并通过贝叶斯概率建立多帧之间的地图关系。这是这篇文章的Github开源网址

1. 文章贡献

这篇文章作为一篇前视转BEV文章。其输入和输出分别是环视单目摄像头以及周围360°的BEV语义分割地图。
在这里插入图片描述
本文作者指出,该文章主要有三个主要创新点:

  1. 提出了一种新型的密集Transformer变换层,从而将基于图像的特征映射映射到鸟瞰空间。(这部分工作应该是最关键的工作)
  2. 设计了一个深度卷积神经网络体系结构,其中包括在多个图像尺度下运行的变压器金字塔,从单目图像预测精确的鸟瞰图。(这部分工作与前面该作者工作类似)
  3. 在两个大规模自动驾驶数据集上评估了作者的方法

但是实际上文中还有一点比较值得借鉴的就是贝叶斯概率建立多帧之间的地图关系。这虽然不是作者提出的方法,但是影响到了后面的前视转BEV领域。下面该文的要点。

  1. 视图变换:使用了密集transformation层。单纯的就是个homography 变换,只是在不同分辨率上硬性切段来实现拼接。

  2. 概率语义占用网格表示的方法便于摄像机和帧之间的融合。本质上,我们需要预测BEV网格的多类二进制标签

  3. loss :加权二进制CE+不确定性损失,使得不可见的feature map上概率接近0.5.

  4. Bayesian occupancy grid 操作。 log-odds使用,把概率p转化到log-odds,然后进行时间维度合并,最后通过个sigmoid操作转化回概率,从而用于多摄像机和时间融合。

  5. 结构方面:
    密集变换Transform内部主要有三点:(1)1D conv将高度尺寸折叠为固定特征向量(2)1D conv扩展沿深度轴扩展特征向量(3)使用内部函数重新采样到笛卡尔框架
    在这里插入图片描述

     多尺度变换金字塔:每一层负责变换BEV中图像的一部分
    

在这里插入图片描述

2. 具体算法

该作者为《Orthographic Feature Transform for Monocular 3D Object Detection》一文的作者,其大致的结构做了保留下图的结构
在这里插入图片描述
该文的结构如下图所示,我们可以发现其与OFT的feature transformation上有很大的进步,主要存在有两点:

  1. 使用FPN网络得到multi-scale的特征,对每一个特征都转成BEV
  2. 不同scale的特征对应不同的BEV上的距离(这点很intuitive,在OFT实际训练的时候会发现受制于分辨率,OFT沿着一条射线上的格点几乎就是很长的区域都是同一个值,使用不同特征对应不同的距离,一方面可以打破这个不良的特性,增强BEV上的信息裕度,另一方面也很符合不同scale上感受野与物体大小的特性,当然又被《Translating Images into Maps》通过给进一步提升了)。同时由于转到了BEV上,作者自然地进一步想到了对时序信息上进行融合,这样预测出来的BEV上的occupancy map就可以用贝叶斯方法直接更新。
    在这里插入图片描述
    整个网络有四部分:
    (1)ResNet-50骨干网络以多种分辨率提取图像特征。
    (2)特征金字塔通过较低金字塔层的空间上下文来增强高分辨率特征。
    (3)一组密集变换层(dense transformer layers)将基于图像的特征映射到鸟瞰图。
    (4)自上而下网络(top down network)处理鸟瞰特征并预测最终的语义占用(semantic occupancy)概率。

2.1 占用栅格地图

传统的占用网格映射中,占用概率 p ( m i ∣ z t ) p(m_i |z_t) p(mizt)使用反向传感器模型进行估计,该模型通常是一个简单的手工设计函数,根据传感器特性从距离传感器读数映射到占用概率。但是文中的观察是依据图像的,它需要学习从单眼输入图像预测占用概率。为此文中基于Occupancy grid结构,通过CNN去模拟每个网格某种分类obj出现的 p ( m i c ∣ z t ) p(m^c_i |z_t) p(miczt)后验估概率密度函数 f θ ( z t , x i ) f_θ(z_t, x_i) fθ(zt,xi)

作者的目标是在二维鸟瞰图像的每个位置上预测一组多类二值标签。这个场景与被广泛研究的计算机视觉语义分割问题有许多相似之处。然而,让这项任务特别具有挑战性的是,输入和输出表示存在于完全不同的坐标系中:前者存在于透视图像空间,后者存在于正投影鸟瞰空间。因此,我们提出了一个简单的Transformer层,使其既利用了摄像机的几何形状,又利用了全连接。
在这里插入图片描述

2.2 Loss损失函数

总体设计还是一个多分类的交叉熵,但是为了处理小物体不均衡的问题加入了αc作为权重因子
在这里插入图片描述
对于不确定性高的区域,比如遮挡,额外加上这个衡量不确定性的交叉熵
在这里插入图片描述
整个目标函数如上,λ = 0.001
在这里插入图片描述

2.3 时间和传感器数据融合

这部分主要讲了使用贝叶斯占用栅格的思路,贝叶斯占用网格公式提供了一种使用贝叶斯滤波方法将多个观察结果和多个时间步上的信息结合起来的自然方法。考虑一个由具有外部矩阵Mt的相机拍摄的图像观测 z t z_t zt。我们首先将占用概率 p ( m i c ∣ z t ) p(m^c_i|z_t) p(miczt)变为对数-赔率表示,将后验估加了log,变成了类似sigmoid的形式
在这里插入图片描述
接下来还是一个全概率公式,因为加了log形式,其实还是概率相乘
在这里插入图片描述
这里是对公式(4)的倒推,目的是通过sigmoid函数,即 l i , 1 : t c l^c_{i,1:t} li,1:tc,来计算其后验概率
在这里插入图片描述
然后计算先验分布
在这里插入图片描述

…详情请参照古月居

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/46792.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

手把手教你写嵌入式Linux中的Makefile(一)

一、Makefile的引入及规则 使用keil, mdk,avr等工具开发程序时点击鼠标就可以编译了,它的内部机制是什么?它怎么组织管理程序?怎么决定编译哪一个文件? 答:实际上windows工具管理程序的内部机制,也是Make…

【c++基础】第一章 C到C++过度阶段

第一章 C到C过度阶段第一个C程序:使用namespace名字using关键字bool类型string字符串结构体struct结构体成员函数指针的获取方式const关键字:内联函数函数缺省值:函数重载:引用(quote)开辟空间第一个C程序:…

UDP-A-D-乙酰氨基葡萄二钠盐;UDP-ALPHA-D-N-ACETYLGLUCOSAMINE, DISODIUM SALT

产品名称:UDP-A-D-乙酰氨基葡萄二钠盐 英文名称:UDP-ALPHA-D-N-ACETYLGLUCOSAMINE, DISODIUM SALT CAS No.:91183-98-1 分子式:C₁₇H₂₅N₃Na₂O₁₇P₂ 分子量:651.32 产地:西安 规格:…

如何在几百万qps的网关服务中实现灵活调度策略

作者 | 加纳斯 导读 说起百度的BFE可能不少人都听说过,但是其实在百度内部还有一个几百万qps的通用网关服务:Janus。截止当前,Janus服务不仅覆盖了百度内部FEED、评论、点赞、关注、直播等十多个中台服务的内网流量,而且为百度app…

【Java】JavaFx桌面编程整理

JavaFX是用于构建富Internet应用程序的Java库。 使用此库编写的应用程序可以跨多个平台一致地运行。 使用JavaFX开发的应用程序可以在各种设备上运行,例如台式计算机,移动电话,电视,平板电脑等。 为了开发具有丰富功能的Client Si…

运动爱好者的专属耳机,轻巧时尚又好用,哈氪无界上手

很多朋友在户外健身的时候喜欢戴上耳机,在音乐的节奏中去运动,现在市面上的运动耳机选择也特别丰富,为了在户外运动更安全,有些朋友会选择骨传导这种不入耳的耳机,上周我看到哈氪出了一款发带耳机,将运动发…

rac/rac one node扩容

某现场部署的cDAS RAC Onde Node超融合架构,2个计算/存储节点,1台仲裁节点 现网架构: 随着业务量增加,准备把仲裁节点加以利用,添加到融合节点的计算存储集群当中,与另外两个融合节点组成三节点的计算存储集群 改造后的架构: 一、配置仲裁节点(第三个计算/存储节点)…

windocs连接麒麟桌面---vnc软件

目录 一、下载vnc 二、麒麟服务器安装VNC远程 三、客户端连接 一、下载vnc客户端 Download VNC Viewer 6.22.826 - free - latest version

Nodejs -- 一文学会如何在Express中使用JWT(json web token)

文章目录在Express中使用JWT1 安装JWT相关的包2 导入JWT相关的包3 定义secret密钥4 在登录成功后生成JWT字符串5 将JWT字符串还原为JSON对象6 使用req.user获取用户信息7 捕获解析JWT失败后产生的错误8 完整代码示例在Express中使用JWT 1 安装JWT相关的包 运行如下命令&#…

Java基础概念-03-字面量

在有些资料中,会把字面量叫做,常量,或字面值常量,但最正确的叫法还是,字面量 小数在 Java 中也称为浮点数 下面是课本中的介绍: 常量是指在程序运行过程中,其值不能被修改的量,Java…

C# 移动飞机

一 实现一个飞机游戏,可以使用键盘控制飞机的移动。 二 游戏的显示 GameView:负责游戏的显示; 使用自定义绘制的技术,将飞机场地绘制出来; cells:3x3的单元格; OnSizeChanged:计算单元格的位置和大小&…

用VS软件开发“中国象棋“游戏<笔记摘录>

整体架构如上 1.很直观地去看这个中国象棋的界面,数一下它有多少行和多少列. 10行,9列:要注意这里数的是安放象棋的位置,有10行9列 这里我们首先想到的必然是二维数组,每一个行列交叉的点都设置成二维数组a[i][j]这样的格式,以此来确定棋盘上面每一个棋子的位置和走向. 我们…

01 导论【计量经济学及stata应用】

配套教材:《计量经济学及stata应用.陈强.2015.高等教育出版社》 官方课程链接:http://www.econometrics-stata.com/ 官方公众微信号:econometrics-stata 写博客的初衷就是为了督促自己把所学的知识进行整理和完善,我将于接下来的时…

性能测试-CPU性能分析,用户态us高,初步定位到代码行

监控工具安装 Grafana:安装请看我上一篇文章性能测试-JMeter influxdb grafana性能测试监控平台-食用指南_Tommy.IT的博客-CSDN博客JMeter测试脚本跑起来,在influxdb服务看看数据里面的数据,原来influxdb的jmeter库里面没有表,当JMeter脚本运…

PyCharm+PyQT5之三界面与逻辑的分离

之二的例程已经实现了界面与逻辑的分离,所建立的 Dialog Mainwindow 或者 widgets 等,界面改变其主调程序(暂且这样叫)更改,或者不需要大规模更改, 主调函数的程序是这样的 import sys import FistUI from PyQt5.QtWidgets import QApplication, QMainWindow,QDialog if __nam…

KubeSphere 多行日志采集方案深度探索

作者:大飞哥,视源电子运维工程师,KubeSphere 用户委员会广州站站长 采集落盘日志 日志采集,通常使用 EFK 架构,即 ElasticSearch,Filebeat,Kibana,这是在主机日志采集上非常成熟的方案,但在容器…

React Server Component: 混合式渲染

作者:谢奇璇 React 官方对 Server Comopnent 是这样介绍的: zero-bundle-size React Server Components。 这是一种实验性探索,但相信该探索是个未来 React 发展的方向,与 React Server Component 相关的周边生态正在积极的建设当中。 术语…

R语言主成分分析可视化(颜值高,很详细)

文章目录PCA特征值可视化提取变量结果变量结果可视化变量和主成分的cos2可视化变量对主成分的贡献可视化Dimension description提取样本结果样本结果可视化样本的cos2可视化样本对主成分的贡献可视化biplot参考资料网络上很多R语言教程都是基于R语言实战进行修改,今…

Mysql密码忘记后怎么重置密码,mysql8之后有改动

mysql8之前的修改方式: 1.管理员身份打开cmd:然后关闭mysql,停止MySQL服务,输入 net stop mysql 停止服务 2.切换到MySQL的bin文件下,输入mysqld --console --skip-grant-tables --shared-memory。 3上个窗口保留不要…

四种类型自编码器AutoEncoder理解及代码实现

自编码器(AE) 自编码器的结构和思想 结构 自编码器是一种无监督的数据压缩和数据特征表达方法。自编码器是神经网络的一种,经过训练后的能尝试将输入复制到输出。自编码器由编码器和解码器组成。如下图所示: 自编码器指的是试图…