自动驾驶与3D视觉
文章平均质量分 81
3D视觉相关内容学习,工程实战
AI小白龙
人工智能算法工程师,对深度学习,计算机视觉,嵌入式AI,人脸识别,自动驾驶技术感兴趣的一起来交流吧!
展开
-
【自动驾驶】PETR/PETRv2/StreamPETR论文分析
为了缓解在3D场景中的收敛困难,类似于Anchor DETR,我们首先在均匀分布的3D世界空间中初始化一组可学习的锚点从0到1。在我们的实践中,在三维空间中使用锚点可以保证收敛在采用DETR中的设置或生成锚点的同时在BEV空间中不能实现令人满意的检测性能。StreamPETR的总体架构。不同色调的矩形象征着来自不同帧,灰色矩形表示当前帧的初始化查询,虚线矩形对应于背景查询。petrv2的整体框图如下,与petr不同的地方在于加入了时序模块,分割头,以及改变了 3D Position Encoder。原创 2023-10-09 14:58:14 · 637 阅读 · 1 评论 -
【自动驾驶】PETR 环境安装与测试
该工程依赖MMCV, MMDetection, MMDetection3d,MMSegmentation。原创 2023-09-12 10:46:05 · 752 阅读 · 0 评论 -
【BEVformer部署】tensorrt部署整体流程
Rotateand性能对比如下:grid 指定了 采样像素的位置(由input 空间维度归一化),因此,它的大多数值应该在[-10,10]范围内。例如,值x=-10,y=-10是输入的左上像素,值x=10,y=10是输入的右下像素。输入:Tensor shape:(5D case)输出:Tensor shape:(5D case)原创 2023-06-29 00:13:38 · 1234 阅读 · 9 评论 -
【CUDA编程】 动态体素化实现
动态体素化实现动态体素化DV克服了硬体素化HV的一些缺点。动态体素化DV保留了分组grouping阶段,相反,它没有采样固定的点数或体素容量,它保留了点和体素之间的完全映射。因此,体素数和每个体素中的点数都是动态的,依赖于具体的映射函数。这消除了对固定大小缓冲区的需求,也消除了对随机点和体素的丢弃过程。因为所有原始点和体素信息都被保留了,动态体素化DV没有引入信息丢失,并产生了确定的体素嵌入,使得检测结果更稳定。原创 2023-06-16 18:13:43 · 620 阅读 · 0 评论 -
【蒸馏】PointDistiller: Structured Knowledge DistillationTowards Efficient and Compact 3D Detection
方法的细节。fT和f S:教师检测器和学生检测器中的特征编码层。AT和AS:抽取的待蒸馏体素或重要性得分最高的点的特征。CT和CS:教师和学生检测特征的通道数。GT和GS:教师和学生检测器的图形特征。该方法基于预先定义的重要度评分,从整个点云中抽取比较关键的N个体素或点,通过动态图卷积提取它们的局部几何结构,然后对其进行加权提取。 最近的大量研究表明,获取和利用点云局部几何结构中的语义信息对点云表示学习有着至关重要的影响。因此,我们提出局部蒸馏的方法,并不是直接将教师检测器的主干特征提取为学生检测器,而是先原创 2022-06-24 12:38:13 · 331 阅读 · 0 评论 -
【自动驾驶】CenterPoint复现笔记
从VoxelNet主体将原来的anchor head改为center head即可,重构完成。需要排查输入输出的shpe和数值;在报错行打印数据的维度以及数值原创 2023-05-24 10:20:54 · 619 阅读 · 0 评论 -
VoxelNeXt:用于3D检测和跟踪的纯稀疏体素网络
在本文中,我们提出了VoxelNeXt。这是一个简单、高效且无需后期处理的3D对象检测器。我们设计的核心是体素到对象方案,其根据体素特征直接预测3D对象一个强大的完全稀疏的卷积网络。关键的优点是我们的方法可以去掉锚代理,稀疏到密集转换、区域建议网络和其他复杂组件。由于我们的体素到对象方案避免了密集的特征图,所以网络可以高效推理。它只预测稀疏和必要的位置,如表1所示,与CenterPoint[57]相比。这种表示也使得VoxelNeXt可以很容易地扩展到使用离线跟踪器的3D跟踪。原创 2023-05-18 17:52:21 · 1229 阅读 · 0 评论 -
【融合感知】激光雷达和相机融合感知-BEVFusion
常见的前融合第一种如(a)中首先将雷达点,根据外参和相机内参投影到图像或图像提取的2D特征上去采样对应的视觉特征,然后拼接到点云上,后面就可以通过常用的点云3D检测算法进行处理,比如3DSSD[1], PointPillar[2], CenterPoint[3]等,目前PointPainting[4], PointAugment[5]就属于这类工作;第二种如图1(b)所示,先对雷达点云进行特征提取,然后将特征或者初始预测值按照外参和相机内参投影到图像或图像提取的2D特征上去采样对应特征。原创 2023-05-18 14:40:33 · 3246 阅读 · 0 评论 -
OpenPcdet中的点云体素化-VFE实现
过程也很简洁,直接使用torch.unique 输出体素坐标中非重复坐标,原始坐标在非重复坐标中的索引,以及非重复坐标的个数。dim: 值沿着哪个维度进行unique的处理,这个我试验后没有搞懂怎样的机理。如果处理的张量都是一维的,那么这个不需要理会。return_inverse: 是否返回原始tensor中的每个元素在这个无重复张量中的索引。该过程调用spconv库中的实现,主要过程为points_to_voxel。sorted:是否对返回的无重复张量按照数值进行排列,默认是生序排列的。原创 2023-05-17 15:19:03 · 676 阅读 · 0 评论 -
基于容器训练OpenPCdet
在容器中进入OpenPCDet目录,在data子目录创建自己的数据集,点云应当是 .npy格式,标签应当是 .txt格式。标签内容如下:中心点,长宽高,航向角,类别名称。主要修改点云范围,检测类别(如果你的训练集类别是['Vehicle', 'Pedestrian', 'Cyclist']就不用修改),训练数据名称,体素大小。(2)检测类别,在pcdet/datasets/custom.custom_dataset.py中也要做相应修改。数据放置位置如下,ImageSets目录放置训练和测试拆分文件。原创 2022-12-14 10:20:41 · 578 阅读 · 1 评论 -
【3D视觉】realsense D435三维重建
但对于64位版本的Windows保持64位和32位DLL文件的方式会相对复杂些,微软因此创建了一个新的名为SysWOW64的文件夹来存放32位的DLL文件,使用\Windows\System32文件夹作为64位DLL的文件夹,而不是存放32位DLL文件的文件夹。下一步,勾选WiTH_FFMPEG,WITH_REALSENSE2(这里只选取这两个功能的扩展,如果想要选取其他的功能也可以,但是前提是要配置对应的依赖库),然后再次Configure。......原创 2022-07-31 21:21:48 · 2866 阅读 · 0 评论 -
【3D视觉】深度摄像头与3D重建
大家在上图可以看到,Kinect两端有两个3D深度摄像头,左边那个发射红外线,右边那个是一个红外线感应器,它负责感应发射出来的红外线的方位和强度,由此来获取物体与Kinect之间的深度信息(个人感觉类似声纳和蝙蝠的识别系统),然后再根据中间的一个RGB摄像头,三个摄像头配合构建出了Kinect的图像识别的检测。D435在深度传感器上采用卷帘快门,可提供最高的每度深度质量。,它的分辨率是前代产品的3倍,而体型是前代的十分之一,环境光的检测性能是前代的50倍,可以在日光下工作。...原创 2022-07-31 21:14:14 · 1355 阅读 · 0 评论 -
【自动驾驶】单目3D检测M3D-RPN解析与paddle复现
模型输出2Danchor定义3Danchor定义。原创 2022-07-30 16:11:20 · 1932 阅读 · 0 评论 -
【自动驾驶】多传感器感知技术解析
这里主要说的是外参标定,外参是描述了传感器与其他给定坐标之间的相对位置关系,所以这里的外参描述为,长焦相机与短焦相机之间的外参,相机与雷达之间的外参,又或者是雷达与雷达之间的外参,都需要分别进行标定。使用标定间进行标定,设置一些参照物,多为有角点的物体,方便定位。1)激光雷达的测距精度、测距范围及对温度和光照的适应性很强,缺点线束低的情况,识别不好,也可能会漏掉目标(尤其是非金属物体)不同相机使用PNP得到一个矩阵,将两个矩阵进行传递,一般用一个矩阵得逆乘以另一个矩阵就得到了外参,点云也是这样。...原创 2022-07-20 16:56:12 · 1520 阅读 · 0 评论 -
【自动驾驶】second模型训练
3)目前仅支持单个GPU训练,但训练一个模型在单个1080Ti中只需要20小时,并且只需要50个循环就可以达到78.3 AP,并在Kitti验证日期集中使用super converge in car Medium 3D。(1)如果要训练新模型,请确保“/path/to/model\u dir”不存在。如果model\u dir不存在,将创建一个新目录,否则将读取其中的检查点。检测结果默认保存为:result.pkl,可设置--pickle_result=False,将结果保存为kitt标签格式。......原创 2022-07-19 16:00:29 · 848 阅读 · 0 评论 -
【3D目标检测】稀疏卷积
稀疏卷积是对无论是2D卷积还是3D卷积进行加速运算的一种方式,其中由于3D点云的稀疏性比较大,加速将更为明显。举例子之前的定义为了逐步解释稀疏卷积的概念,使其更易于理解,本文以二维稀疏图像处理为例。由于稀疏信号采用数据列表和索引列表表示,二维和三维稀疏信号没有本质区别。1. 输入定义使用以下稀疏图像作为输入如图所示,我们有一个5 × 5的3通道图像。除了 P1和 P2两点外,所有像素都是(0,0,0) (虽然0这个假设也很不严谨)。根据文献[1] ,P1和 P2,这种非零元素也称为a原创 2022-07-19 15:54:44 · 1797 阅读 · 2 评论 -
【Open3D】人脸深度图转点云,点云表面重建
1.简介Open3D:一个用于3D数据处理的现代库Open3D是一个开源库,支持处理3D数据的软件的快速开发。Open3D前端在c++和Python中公开了一组精心选择的数据结构和算法。后端经过高度优化,并设置为并行化。我们欢迎来自开源社区的贡献。Open3D的核心功能包括: 三维数据结构 三维数据处理算法 现场重建 表面对齐 三维可视化 物理渲染(PBR) 3D机器学习支持PyTorch和TensorFlow GPU加速核心3D操作 c++和Python版本可用官方:Ope原创 2022-03-10 23:06:07 · 6073 阅读 · 0 评论 -
【人脸姿态】2D人脸姿态估计的两种方式:solvePnP与3DMM参数
人脸姿态估计原创 2022-03-06 18:24:46 · 6334 阅读 · 6 评论 -
【自动驾驶】基于点云的避障算法笔记
1,点云数据预处理与可视化激光雷达数据获取的这一步有一些需要满足的条件:雷达需确保能够扫描到地面,VLP-16雷达的竖直平面视角为[-15,15],需根据这个视角,确保地面可以被扫描到;地面和非地面数据最好可以有个很明显的竖直维度的落差,以便可以区分地面和非地面。满足上面两个条件后,可以对采集的数据进行处理。先将其转换为(x,y,z)的点云数据,拿到数据后,可以使用MATLAB可视化,也可使用python工具包mayavi来可视化mayavi使用实列:from ma..原创 2022-01-14 11:21:49 · 2997 阅读 · 1 评论 -
【虚拟主播】刚刚,我用三行代码创建了一个虚拟主播
刚刚,我用三行代码创建了一个虚拟主播刚刚,我花了10分钟,写了三行代码创建一个具有明星脸的虚拟主播先看看效果:语音播报虚拟主播2实现简易的虚拟数字人非常简单,需要调用三个模型:(1)First Order Motion(表情迁移)(2)Text to Speech(文本转语音)(2)Wav2Lip(唇形合成)。具体技术步骤如下:1,把图像放入First Order Motion模型进行面部表情迁移,让虚拟主播的表情更加逼近真人,既然定位是一个主播,那表情都参考当然是原创 2022-01-09 11:56:32 · 12408 阅读 · 20 评论 -
【3D视觉】元宇宙之如何将你的人脸扫描进游戏
FaceBuilder 是 Blender 的一个附加组件,用于根据照片对人脸和头部进行 3D 建模。使用 FaceBuilder,您无需成为经验丰富的 3D 建模师即可创建具有清晰拓扑结构的优质 3D 模型。您首先从不同角度拍摄一些人的照片,然后在每个人身上放置一个模型以构建头部或面部模型。3D 模型稍后可用于在 Blender 中进行雕刻、动画、跟踪或任何其他操作,或导出到文件中并导入到任何其他 3D 软件中。安装添加在本视频介绍了完整的安装过程。它一升升开始以下载ZIP..原创 2021-11-22 15:14:56 · 3923 阅读 · 0 评论 -
【3D视觉】PCL点云库安装
1、安装依赖项sudo apt-get update sudo apt-get install git build-essential linux-libc-devsudo apt-get install cmake cmake-guisudo apt-get install libusb-1.0-0-dev libusb-dev libudev-devsudo apt-get install mpi-default-dev openmpi-bin openmpi-common sudo原创 2021-04-16 17:14:50 · 571 阅读 · 0 评论