0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

特斯拉的Occupancy Network占用网络如何解决无法识别物体的难题呢?

佐思汽车研究 来源:佐思汽车研究 2024-04-16 17:29 次阅读

Occupancy Network并非特斯拉发明,最先提出Occupancy Network的是2018年的论文《Occupancy Networks: Learning 3D Reconstruction in Function Space》,主要作者是Tubingen大学和博世旗下软件公司ETAS。更早可以追溯至2012年的论文《Indoor Segmentation and Support Inference from RGBD Images》,主要作者是纽约大学。而最早可以追溯到1986年的论文《A computational approach to edge detection》。Occupancy Network源自语义分割,语义分割需要连续边界而不是传统的Bounding Box(一般会缩写为BBox),语义分割再加上2D或3D重建,就是Occupancy Network。不过让Occupancy Network扬名天下的是特斯拉。

b9e5deb2-fbd3-11ee-a297-92fbcf53809c.png

图片来源:Occ3D

目前,传统的3D目标感知算法缺点是过于依赖数据集,但数据集的分类有限,通常不超过30类,总有不常见的物体类别没被标注,这些未被标注的物体再次出现在实际场景中,会因为数据集中没有标注,无法识别而被感知系统忽略掉,导致车辆不减速直接撞向物体。这种事故经常发生,最典型的是当车辆有故障,驾驶员下车站在车尾,打开后备箱找维修工具,对于计算机视觉来说就是一个难题,这是个打开的后备箱加人的影像,或者人推着电动车或自行车过马路,人眼可以一眼看出,但机器就彻底傻眼,复合目标,从未被标注的物体或从未出现在数据集的物体,要探测目标距离,必须先识别目标,探测和识别是一体的,无法分割,画出BBox,机器无法识别,画不出BBox,会认为前方没有物体,自然不会减速,直接撞上去。

BBox的致命缺陷,一是无法忽略掉物体的几何细节,二是探测和识别一体,遇到未被标注的物体就会视而不见。Occupancy Network就是为了解决BBox的缺陷而产生的,Occupancy Network学术上讲就是建模物体详细几何和语义的通用且连贯的表征。一个需要从输入图像中联合估计场景中每个voxel的占据状态和语义标签的模型,其中占据状态分为free,occupied和unobserved三种,对于occupied的voxel,还需要分配其语义标签。而对于没有标注的物体类别,统一划分为General Objects(GOs),GOs少见但为了安全起见是必须的,否则检测时经常检测不到。Occupancy Network理论上能解决无法识别物体的难题,但实际中不能。很简单,Occupancy Network是一种预测性质的神经网络,它不可能达到100%的准确度,自然也就有漏网之鱼,还是有无法识别的物体无法探测。

b9f271c2-fbd3-11ee-a297-92fbcf53809c.png

图片来源:网络

占用网络算法排名,第一名是英伟达的FB-OCC,小米和北大联合的UniOcc排名第三,华为仅排名第六。目前基于BEV的解决方案很多。这些解决方案在经过一定的修改后都可以适用于 3D occupancy 预测,门槛不高。

目前Occupancy Network准确度有多少呢?目前最顶级的Occupancy Network的mIoU是54.19%。mIoU是预测值与真值的交并比,某种意义上可以看做是准确度。这和传统激光雷达语义分割差距极大,2021年的激光雷达语义分割就能达到80%以上。

ba19bf02-fbd3-11ee-a297-92fbcf53809c.png

图片来源:OctreeOcc

另一份资料,OctreeOcc论文中提到,目前得分最高的是上海科技大学的OctreeOcc,也就是上表中的“Ours”。排名第二的是英伟达的FB-OCC,与OctreeOcc差距很小。

ba37c8d0-fbd3-11ee-a297-92fbcf53809c.png

图片来源:KITTI

KITTI数据集3D语义场景完成的mIoU上得分最高的是鉴智机器人的OccFormer。

我们就来深入了解一下这OctreeOcc、FB-OCC和OccFormer三个模型。

先来看英伟达的FB-OCC,论文《FB-OCC: 3D Occupancy Prediction based on Forward-Backward View Transformation》,论文很简短,只有5页。

FB-OCC整体架构

ba52c16c-fbd3-11ee-a297-92fbcf53809c.png

图片来源:《FB-OCC: 3D Occupancy Prediction based on Forward-Backward View Transformation》论文

FB-OCC的预测头

bad0d0ca-fbd3-11ee-a297-92fbcf53809c.png

图片来源:《FB-OCC: 3D Occupancy Prediction based on Forward-Backward View Transformation》论文

语义和深度联合预训练

baeaf96e-fbd3-11ee-a297-92fbcf53809c.png

图片来源:《FB-OCC: 3D Occupancy Prediction based on Forward-Backward View Transformation》论文

英伟达的FB-OCC非常简洁,基本上就是BEVFormer加了一个占用网络head。纯视觉的3D感知模型的核心模块是 view transformation 模块。这个模块包括两个主要的视图转换方式:正向投影(LSS)和反向投影(BEVFormer)。FB-BEV 提供了一个统一的设计,利用这两种方法,扬长避短。在FB-OCC中,使用前向投影来生成初始的3D体素表征,然后将其压缩为一个扁平的 BEV 特征图。BEV特征图被视为BEV空间内的queries,并与图像编码器特征一起获得密集的几何信息。然后将3D体素表征和优化后的BEV表征的融合特征输入到后续的任务头中。

英伟达采用了预训练,通过深度估计任务增强模型的几何意识。英伟达对nuScenes数据集进行了广泛的预训练,主要集中在深度估计上。值得注意的是,深度预训练缺乏语义层面的监督。为了减轻模型过度偏向深度信息的风险,可能导致语义先验的损失(特别是考虑到模型的大规模特性,容易出现过拟合),在进行深度预测任务的同时,也要致力于预测二维语义分割标签,如上图3所示。

鉴智机器人的OccFormer框架

bafa341a-fbd3-11ee-a297-92fbcf53809c.png

图片来源:OccFormer

OccFormer以单目图像或环视图像作为输入,首先由图像编码器提取多尺度特征,然后基于深度预测和体素Voxel池化得到三维场景特征。随后,该三维特征首先经过dual-path transformer encoder进行三维视角下的特征提取,得到多尺度体素特征。最终transformer occupancy decoder融合多尺度特征,预测不同类别的binary mask并结合得到最终的occupancy预测。

图像编码器的输出为输入分辨率的 1/16 的融合特征图: 来表示提取的特征。

然后是英伟达提出的LSS BEV算法,编码后的图像特征被处理以生成 context feature

bb0cd804-fbd3-11ee-a297-92fbcf53809c.png

N 是相机视角的数量,C是通道数,(H,W) 代表分辨率。

离散的深度分布是

bb1ac568-fbd3-11ee-a297-92fbcf53809c.png

二者相乘得到点云的表示:

bb2bf3b0-fbd3-11ee-a297-92fbcf53809c.png

最终进行体素池化以创建三维特征 3D feature volume

bb445770-fbd3-11ee-a297-92fbcf53809c.png

其中(X, Y, Z) 表示三维体的分辨率。

bb566686-fbd3-11ee-a297-92fbcf53809c.png

图片来源:OccFormer

由于驾驶场景中沿着水平方向的信息变化最剧烈,而高度方向上信息密度相对较低,因此三维特征编码的重点应该放在水平方向上。但由于occupancy需要三维的细粒度信息,将三维特征完全压平进行处理是不可取的。输入的三维特征会经过局部和全局两条路径、沿着水平方向进行语义特征提取,两条路径的输出会通过自适应融合得到输出的三维场景特征。对于输入的三维特征,局部 local 和全局 global 路径首先沿水平方向并行地聚集语义信息。接下来,双路径输出通过 sigmoid-weighted 进行融合。局部路径主要针对提取细粒度的语义结构。由于水平方向包含最多的变化,通过一个共享编码器并行处理所有BEV切片能够保留大部分语义信息。将高度维度合并到批处理维度,并使用窗口化自注意力作为局部特征提取器,它可以利用较小的计算量动态地关注远距离区域;另一方面,全局路径旨在高效捕获场景级语义布局。为此,全局路径首先通过沿高度维度进行平均池化来获取BEV特征,并采用相同的窗口化自注意力实现特征提取,为了进一步增大全局感受野,还使用了ASPP结构来捕获全局上下文。

bb64f4c6-fbd3-11ee-a297-92fbcf53809c.png

W指的是沿高度维度生成聚合权重的 FFN;σ(·) 是 sigmoid 函数;“unsqueeze” 是沿高度方向扩展全局 2D 特征。

语义分割方面采用了META提出的Mask2Former ,Mask2Former建立在一个简单的元框架 (MaskFormer)和一个新的 Transformer 解码器上,其关键组成部分为掩码注意力(Masked-attention),通过将交叉注意力限制在预测的掩码区域内来提取局部特征。与为每个任务(全景、实例或语义)设计专门模型相比,Mask2Former 节省了3倍的研究工作,并且有效节省计算资源。Mask2Former 在全景分割(COCO上的 57.8 PQ)、实例分割(COCO 上的 50.1 AP)和语义分割(ADE20K 上的 57.7 mIoU)上都实现了SOTA。

利用输入的多尺度体素特征 (multi-scale voxel features) 和参数化的查询特征 (parameterized query features) ,transformer decoder 对查询特征进行迭代更新,以达到预期的类别语义。在每个迭代内,查询特征 (queries features)Q1, 通过 masked attention 来关注它们相对应前景区域。

bb726bba-fbd3-11ee-a297-92fbcf53809c.png

然后进行 self-attention,以交换上下文信息,然后用FFN进行特征投影。在每个迭代结束时,每个Q1被投影来预测它的语义分对数 (semantic logits)Pi,和掩膜嵌入 (mask embedding)εmask,后者通过 一个 per-voxel 嵌入εvoxel和 sigmoid 函数的点积进一步转化为二进制的三维掩膜Mi。

OctreeOcc框架

bb80e596-fbd3-11ee-a297-92fbcf53809c.png

图片来源:OctreeOcc

OctreeOcc框架如上图, 实际就是用传统的八叉数空间表示法取代了传统的BEV或Voxel。

不过目前这些前沿试验性质的论文都无法落地。

bb9aa4c2-fbd3-11ee-a297-92fbcf53809c.png

图片来源:OctreeOcc

左边的是Occ3D-nuScenes,专为占用网络测试搞的数据集,右边的是KITTI的语义分割测试数据集,占用网络模型消耗内存惊人,最少都需要25GB,对运算资源消耗惊人,即便是用英伟达8张A100,最快的也要386毫秒,自动驾驶最低门槛10Hz都达不到。这个每帧都需要读出模型一次,也就说需要容量至少超过48GB的高宽带存储,最好是HBM3,GDDR6都非常勉强,而HBM价格惊人,英伟达H100的HBM内存容量也不过80GB。



审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编码器
    +关注

    关注

    41

    文章

    3364

    浏览量

    131573
  • 神经网络
    +关注

    关注

    42

    文章

    4575

    浏览量

    98790
  • 特斯拉
    +关注

    关注

    66

    文章

    6022

    浏览量

    125680
  • 激光雷达
    +关注

    关注

    961

    文章

    3662

    浏览量

    186787

原文标题:特斯拉的Occupancy Network占用网络真能解决无法识别物体难题?

文章出处:【微信号:zuosiqiche,微信公众号:佐思汽车研究】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    NUCLEO-H723无法识别到stlink如何解决?

    我使用了一个USB隔离模块,经过测试,nucleo-L4和nucleo-H745可以识别,但是NUCLEO-H723无法识别到stlink,貌似只有直连电脑才可以,请问这个该如何解
    发表于 03-13 07:09

    网络分析器无法识别模型

    我正在使用E4418A功率计和N3383A网络分析仪。网络分析器无法识别该模型。我有Newtok分析仪Agilent IO 16.3,它在那里重现了E4418A。使用旧的437B功率计
    发表于 03-08 12:31

    硬件设计中面临的难题有哪些?如何解决?

    硬件设计中面临的难题有哪些如何解决硬件设计中的难点
    发表于 04-07 06:10

    何解决无法添加单片机型号到KEIL中的这个问题?

    何解决无法添加单片机型号到KEIL中的这个问题?
    发表于 11-05 06:51

    怎样去解决无法使用内置Bootloader的DFU方式进行固件升级的问题

    为什么无法使用内置Bootloader的DFU方式进行固件升级?怎样去解决无法使用内置Bootloader的DFU方式进行固件升级的问题?
    发表于 11-11 06:16

    怎样去解决无人机的续航问题

    无人机的基本概念有哪些?无人机的基本结构是由哪些部分组成的?怎样去解决无人机的续航问题
    发表于 12-20 07:11

    基于深度神经网络的激光雷达物体识别系统

    的激光雷达物体识别技术一直难以在嵌入式平台上实时运行。经纬恒润经过潜心研发,攻克了深度神经网络在嵌入式平台部署所面临的算子定制与加速、量化策略、模型压缩等难题,率先实现了高性能激光检测
    发表于 12-21 07:59

    何解网络无法识别问题

    网络问题分类网络无法识别问题还是比较好排查,但是如果涉及到网络丢包牵扯的环节太多了比如交换芯片是否异常,对方的工作模式是否正常、
    发表于 12-23 06:08

    stm32 NUCLEO开发板板载stlink无法识别何解决?

    我使用了一个USB隔离模块,经过测试,nucleo-L4和nucleo-H745可以识别,但是NUCLEO-H723无法识别到stlink,貌似只有直连电脑才可以,请问这个该如何解
    发表于 08-04 06:22

    何解决锁相环无法锁定

    何解决锁相环无法锁定
    发表于 11-02 08:16 3次下载
    如<b class='flag-5'>何解</b>决锁相环<b class='flag-5'>无法</b>锁定

    介绍一种对标Tesla Occupancy的开源3D语义场景补全⽅法

    在 2022 年的 Tesla AI Day 上, Tesla 将 Bev(鸟瞰图) 感知进⼀步升级,提出了基于 Occupancy Network 的感知⽅法。
    的头像 发表于 03-08 16:44 861次阅读

    超长隧道对讲机怎么解决无网络通信难题

    超长隧道对讲机怎么解决无网络通信难题?下面河南宝蓝小编为大家详细介绍下。
    的头像 发表于 03-20 16:34 575次阅读

    4G路由器无法上网时!该如何解

    4G路由器无法上网时!该如何解
    的头像 发表于 07-20 09:43 1532次阅读
    4G路由器<b class='flag-5'>无法</b>上网时!该如<b class='flag-5'>何解</b>决

    何解决无铅锡膏在焊接时产生的气泡?

    元器件失效的几率。今天,佳金源锡膏厂家来和大家分享下如何解决无铅锡膏在焊接时产生气泡:焊接时为什么会产生气泡?通常焊点内气泡的产生是因为无铅锡膏内的助焊剂,相比普通焊
    的头像 发表于 11-03 17:18 1003次阅读
    如<b class='flag-5'>何解</b><b class='flag-5'>决无</b>铅锡膏在焊接时产生的气泡?

    城市高阶智能驾驶从此摆脱激光雷达:百度联合极越行业首推OCC占用网络功能

    1月15日,极越01迎来交付以来的首次重大整车OTA升级,百度Apollo与极越联合研发的OCC占用网络Occupancy Network)功能提前体验是此次OTA升级的最大亮点。
    的头像 发表于 01-16 17:23 920次阅读