位置: IT常识 - 正文

[paper] lift,splat,shooting 论文浅析

编辑:rootadmin

目录

00 前言

01 创新点

02 算法细节

Lift:潜在深度分布:

Splat: Pillar Pooling(支柱池)

Shoot: Motion Planning

03 实验和验证

推荐整理分享[paper] lift,splat,shooting 论文浅析,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

Title:《Lift, Splat, Shoot: Encoding Images from Arbitrary Camera Rigs by Implicitly Unprojecting to 3D》

cs.CV 2020;

Github: here

00 前言

目前的计算机视觉算法任务,基于输出结果是否与输入图像在同一个参考系下,可以分为两类:

• 预测结果与输入不在同一个参考系:分类

• 预测结果与输入在同一个参考系:目标检测、语义分割、全景分割

从这个角度来看,基于BEV的自动驾驶感知算法,属于前一个类别,即预测结果与输入不在同一个参考系,最终得到的BEV结果属于本体车辆参考系,而图像属于相机参考系,一般的做法是,通过算法模型,把属于多个参考系下的多模态数据,进行融合预测,形成在BEV参考系下的预测结果。

针对多参考系转换问题,又引出了很多研究方法。例如,可以扩展传统单视图的范式,把它扩展到多视图模式上。具体来说,针对来自n个相机的图像数据,我们使用一个单视图检测器,针对每个相机的每张图像数据进行检测,然后将检测结果根据对应相机的内外参数,转换到车辆本体参考下,这样就完成了多视图的检测。

但是这样的简单后处理方法是有问题,比如,我们可能想要通过训练结果反馈,进行反向传播,并进一步调整对应相机的输入,这一步是无法完成,因为上面的转换是单向的,也就是说,我们无法反向区分不同特征的坐标系来源,因此我们无法轻易的使用一个端到端的模式来训练改善我们的自动感知系统。

01 创新点

本文的做法是通过,将二维图像特征生成3D特征(这一步对应论文中的"Lift"操作),然后把3D特征“拍扁”得到BEV特征图(这一步对应论文中的"Splat"),最终在BEV特征图上进行相关任务操作(这一步对应于"Shooting")。具体来说,二维图像特征生成3D特征这一步使用了“视锥”点云的操作,如下图所示:

就是预测了一个深度值分布,提取的特征c,然后将两种进行外积操作,实现了增维。Splat操作则是使用了一种特殊的“求和池化”操作,实现降维。最后的Shooting,则是将预测的一组轨迹投射出来,选取最好的轨迹作为预测结果。  

整体效果

02 算法细节

首先构造矩阵:;

是输入的图像,;是相机外参,;I_{k}是相机内参,;现在的目的是寻找BEV坐标下场景的光栅化表示 y;,;内参和外参矩阵共同定义每一个相机从基准(ego-vhicle坐标系)坐标(x,y,z)到本地像素坐标(h,w,d)的映射,没有使用任何关于深度的传感器;

Lift:潜在深度分布:

对相机图片单独处理,将对每一个图像提取的feature map 从的2D的图像坐标系统转换成以车辆中心为原点的3D坐标系中,这个转换参数在相机之间是共享的;单目传感器融合的难点在于需要将深度信息转换为参考帧坐标,但与每个像素的depth是未知的。 本论文提出的解决方案是为每个像素生成所有可能深度的表示。(为每一个模型生成离散的深度值,模型训练阶段像素自行选择合适的深度值)。

注:怎么为每个像素定义一堆离散的深度值?因为2D图像中的每个像素点可以理解成一条世界中某点到相机中心的一条射线,现在不知道的是该像素具体在射线上位置(也就是不知道该像素的深度值)。官方代码中是这么做的:在距离相机5m到45m的视锥内,每隔1m有一个模型可选的深度值(这样每个像素有41个可选的离散深度值)。

[paper] lift,splat,shooting 论文浅析

 

图像的2D特征是维度的,也就是每一个像素点的特征都是c维的,然后每一个像素点具有d维的深度分布,点的特征就由这c维图像特征和d维深度特征联合表示,也就是每一个点的特征是一个d,c,h,w的四维向量

图像中每一个像素点对应着世界坐标中的一条射线,那么这个像素点对应的深度应该是多少呢,按照1米的距离划分格子,用概率值表示该像素的深度值处于这个1米的格子内部的概率,用一个D维的向量经过softmax来表示,D表示4-45米范围内以1米为间隔的距离,也就是 D=41,这样的话D上每个位置的值就代表了该像素处于这个深度范围的概率值。

最后,得到的是一个视锥点云,这个视锥是以相机光心为中心,长为w/16,宽为h/16,高从4-45的一个立方体,然后通过相机外参将这个立方体转换到BEV视图下;之后从视锥中提取图像的feature map。

Splat: Pillar Pooling(支柱池)

目前已经得到了像素的2D像素坐标以及深度值,再加上相机的内参以及外参,即可计算得出像素对应的在车身坐标系中的3D坐标。

将多个相机中的像素点投影在同一张俯视图中,先过滤掉感兴趣域(以车身为中心200*200范围)外的点。但是在俯视图中同一个坐标可能存在多个特征,这里有两个原因:

是单张2D图像不同的像素点可能投影在俯视图中的同一个位置,

是不同相机图像中的不同像素点投影在俯视图中的同一个位置,例如不同相机画面中的同一个目标。对于同一个位置的多个特征,作者使用了sum-pooling的方法计算新的特征,最后得到了200x200xC的feature,源码中C取64。

视锥点云转换到bev下后,每个点都会被分配到bev的柱子里面,这个柱子就是bev空间每个grid都对应一个[dx,dy,无限高]的立方体,这样每一个grid的特征就是在里面所有点对应的图像特征求和。"lift-splat"框架在Figure 4.

 

视锥体池化累积求和技巧

该模型使用的是Pillar的累积求和池化,“累积求和”是通过bin id 对所有点进行排序,对所有特征执行累积求和,然后减去 bin 部分边界处的累积求和值来执行求和池化。无需依赖 autograd 通过所有三个步骤进行反向传播,而是可以导出整个模块的分析梯度,从而将训练速度提高 2 倍。 该层被称为“Frustum Pooling”,因为它处理将 n 个图像产生的截锥体转换为与摄像机数量 n 无关的固定维度 C × H × W 张量。

过程示意图:

Shoot: Motion Planning

Lift-Splat模型的关键是可以仅从图像角度实现端到端的运动规划,在测试时,使用推断的成本图进行规划,可以通过“拍摄”不同的轨迹,对其成本进行评分,然后根据最低成本轨迹[25]进行行动,在section 5.6上有详细的介绍;

03 实验和验证

本文在nuScenes和Lyft数据集上,对本位提出的模型算法进行验证,分别对以下几个方面做实验比较:

baseline比较;分割结果比较;鲁棒性比较;与LiDAR算法进行比较;

baseline and segment

robustness

 检测当某个位置相机缺失时,语义分割指标IOU分数的变化,正常情况下的IOU是“full”,可以看出“CAM BACK ”相机缺失时对鲁棒性的影响是最大的,也是因为nuScenes数据集中后置相机拥有很大的视野的原因导致的。 之后训练的时候使用6个相机中的4个相机,在测试的时候分别增加不同位置的相机,发现测试的性能是提升的。

本文链接地址:https://www.jiuchutong.com/zhishi/300553.html 转载请保留说明!

上一篇:前端vue经典面试题78道(重点详细简洁)(vue前端面试官常问的问题)

下一篇:使用el-upload组件实现递归多文件上传(elementui的upload组件详解)

  • 销项税转出是啥意思
  • 税后经营净利率和营业净利率的区别
  • 汇算清缴补缴的企业所得税会计分录怎么写
  • 公司能经营烟草公司吗
  • 与生产相关的关键成功因素包括
  • 个人所得税如果两份工作怎么扣
  • 增值税发票没了能补开吗
  • 研发产品成功入库账务处理
  • 出口退税逾期申报,需申报出口货物收汇情况表
  • 哪些税种计税价格是含增值税
  • 单位补缴社保会罚款吗
  • 银行存款收款凭证是原始凭证吗
  • 企业为什么用银行承兑汇票
  • 办公室购置空调的词语
  • 消费税的征收方式是代收代缴
  • 无票收入记账多的进项发票怎么处理?
  • 税控技术服务费怎么做账
  • 高速公路通行费电子发票怎么打印
  • 哪些出口业务不能做
  • 湖北个体户网上申报
  • 退役士兵增值税优惠申报方法
  • 国税局代开发票是否可代地税局征收城市维?
  • mac u盘
  • 一般纳税人和小规模纳税人的区别
  • 查看电脑开机时间记录win10
  • 鸿蒙3.0内测申请成功显示名额已满
  • 免租期房产税增值税如何计算
  • 如何快速判断
  • php echo \n
  • 销售不动产应交的增值税计入
  • springboot+vue+elementsUI 实现分角色注册登录界面
  • 如何挽留婚姻危机
  • upload靶场搭建
  • pc端微信扫码支付
  • 通过云服务器租号安全吗
  • 小规模单位没交五险一金
  • x-s和web_session
  • php禁用函数怎么删除
  • 综合所得内容有哪些
  • 购辅助材料会计分录
  • 门诊收费票据能重新打印吗
  • 加工企业进项发票有哪些
  • sql server数据表
  • mongodb如何备份
  • 公允价值变动损益在利润表哪里
  • 城镇土地使用税每年都要交吗
  • 现金日记账怎么填
  • 销售退回所得税怎么做账
  • 材料估价入库发票收到如何记账
  • 预收款收入确认
  • 国有资产保值增值率
  • 工会经费与工会福利的区别
  • 核定征收的一般纳税人进项税额抵扣
  • 公司缴纳印花税如何缴纳
  • 商业企业的营业成本包括
  • 个人开具的收据能税前扣除吗
  • 会计准则规定了什么
  • 工程预缴税款流程
  • 普通发票和增值发票的区别在哪里
  • 密码区是什么
  • mysql导入数据语句
  • mysql8高可用
  • mysql newid()
  • 如何禁止windows7自动更新
  • jusearch是什么程序
  • linux系统如何禁用光驱
  • 测试下载速度很快,实际下载很慢
  • Node.js中的construct构造函数
  • js解析url参数的方法
  • javascript 变量
  • javascript的语句
  • jquery属性操作
  • 用shell写一个脚本,对文本中无序的一列数字排序
  • javascript常用函数大全
  • jQuery插件是什么
  • 江苏电子税务局电话
  • 自然人扣缴端重置密码操作流程
  • 政府征用土地社保补偿标准
  • 北京市地税总局电话
  • 车辆购置税怎么做账
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设