首页IT科技cve2019-0708(【BEV】TPVFormer复现以及原理)

cve2019-0708(【BEV】TPVFormer复现以及原理)

时间2025-09-16 20:22:32分类IT科技浏览10256
导读:1. 前言 在环视图像的网络中,常使用鸟瞰图来进行特征提取,尽管比体素表示更加高效,但也会损失部分信息,为了解决这个问题,TPVFormer论文中提出了三个视图来表示三维特征的方法,并且在实验中验证了仅使用图像作为输入,能够与雷达获得相当的分割效果。...

1. 前言

在环视图像的网络中                ,常使用鸟瞰图来进行特征提取                           ,尽管比体素表示更加高效          ,但也会损失部分信息            ,为了解决这个问题                          ,TPVFormer论文中提出了三个视图来表示三维特征的方法               ,并且在实验中验证了仅使用图像作为输入        ,能够与雷达获得相当的分割效果                   。

本文主要介绍如何在本地运行mini数据集                         ,以及生成对应的视频                    ,后续会对源码进行深入学习                          。

mini数据集: https://pan.baidu.com/s/1oKvicVacbPFZNtXO7l9t7A?pwd=p4h4 提取码: p4h4

结果可视化:https://www.bilibili.com/video/BV1oX4y1o7FQ/?spm_id_from=333.999.0.0

BEV交流群    ,v群:Rex1586662742                、q群:468713665        。

2. 运行

在TPVFormer的仓库中                        ,作者只针对完整的nuscenes数据集制作了 nuscenes_infos_train.pkl                           、nuscenes_infos_val.pkl                        ,对于学习者来说,通常无法在完整nuscences数据集上进行测试                    ,在后来的咨询下                            ,原作者也是给出了mini数据集的pkl文件     ,通过下文的链接即可获得              。以及liar文件

2.1 运行eval.py

在整理好数据集后                ,运行下面的指令就可以进行验证了

python eval.py --py-config xxxx --ckpt-path xxxx

直接运行应该会报错                           ,如果报错为 self.table_names 里面没有 “lidarseg                   ”,则需要修改如下内容

将/home/snk/anaconda3/envs/tpv/lib/python3.8/site-packages/nuscenes_devkit-1.1.10-py3.8.egg/nuscenes/nuscenes.py文件中的

self.table_names中添加一个变量 ‘lidarseg’ self.table_names = [category, attribute, visibility, instance, sensor, calibrated_sensor, ego_pose, log, scene, sample, sample_data, sample_annotation, map,lidarseg]

同时在附近添加一行代码

self.lidarseg = self.__load_table__(lidarseg)

再次运行

python eval.py --py-config xxxx --ckpt-path xxxx 2.2 vis_scence.py

按照项目中的指示来安装环境可能会有问题          ,可以按照下面的方式来安装

pip install vtk==9.0.1 pip install mayavi==4.7.3 sudo apt update sudo apt install xvfb

安装完毕即可运行生成视频            ,个人生成的视频见下方的链接                           。

python visualization/vis_scence ... python visualization/generate_videos.py

如果报错说pyqt5有问题                          ,就卸载pyqt5

3 论文简介

3.1 原理学习

一般只用俯视图来计算三维特征               ,而在本文中主要提出了一种表征三维特征的方法        ,即提出了tri-perspective view representation(TPV)                         ,通过三个方向的特征                    ,很容易完成纯视觉的3d分割          、3d语义分割等    ,作者将TPVFormer对标特斯拉的occupancy network            。TPVFormer的主要流程如下图所示:

输入为6张环视图片                        ,通过Image Backbone                        ,可以得到不同尺度的特征层,多尺度特征层目前应用十分广泛         。再通过TPVFormer模块可以获得TPV特征                    ,最终将三个方向特聚合在[100,100,8]的体素中                            ,每个体素特征是由三个方向的特征相加得到                            。在训练时     ,使用真实Lidar来监督                ,在预测时                           ,可以输出稠密的体素特征                。

img_feats = self.extract_img_feat(img=img, use_grid_mask=use_grid_mask) // 提取多尺度特征 outs = self.tpv_head(img_feats, img_metas) # [1, 10000, 256]            、 [1, 800, 256]                          、[1, 800, 256] 三个方向的BEV特征 outs = self.tpv_aggregator(outs, points) # 分割结果

为何要提出三个方向的特征图          ,论文通过下图来进行说明:

如果直接用Voxel来表示三维特征            ,那么会极大的增加计算量                          ,而直接用BEV特征会损失高度上的信息               ,而TPV在前面两者之间进行了折中处理        ,在保留不同视图特征的同时                         ,极大的减少了计算量    。因此                    ,如何得到TPV特征是本文的重点                            。

上图即第一张图的补充版本    ,主要看后半段                        ,TPVFormer可以分为Cross-Attention和HyBird-Attention                        ,其中Cross-Attention就是在不同尺度上的特征层做self-atten,HyBird-Attention是TPV三个特征之间做self-atten                    ,且全部使用deformable transformer来减少计算量                    。通过TPVFormer之后                            ,就得到了TPV特征。通过TPV特征     ,即可获得任意一个Voexl在3D空间中的特征                ,然后利用分割头即可对其分类                           ,以达到Occupancy的效果                        。

3.2 结果

4               、总结

本文介绍了如何在本地进行TPVFormer的运行          ,对论文中的原理图片进行了学习            ,主要是学习到了文章中是如何进行TPV特征提取                          ,以及如何使用TPV特征               ,文章的代码十分友好        ,后续会继续对源码进行学习                         。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
图书馆微信抢座神器(基于微信小程序的图书馆座位预约系统的设计与实现) 润色文章怎么说好听(从颜值到内涵,深耕亚洲市场的润色文章软件——智能撰文助手)