自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hali_Botebie的博客

一步一步来(严义雄),闻道有先后,术业有专攻,Github主页:https://hiyx.github.io, 服务器:https://gz.work.abiuni.com,Gitee:https://gitee.com/hiyanyx

  • 博客(674)
  • 收藏
  • 关注

转载 【相机标定系列】径向畸变和切向畸变(radial-tangential distortion) 径向畸变和切向畸变模型,简称为radtan畸变模型。

径向畸变和切向畸变(radial-tangential distortion)径向畸变和切向畸变模型,简称为radtan畸变模型。为了获得更好的成像效果,会在相机前加入透镜。透镜会影响光线的传播,由透镜形状引其的畸变称为径向畸变。径向畸变可分为桶形畸变和枕形畸变。在相机组装过程中,由于不能使得透镜和成像平面完全平行,会引入切向畸变。至此径向畸变和切向畸变的基本概念讨论完毕。那么如何消除径向、切向畸变呢?对于径向畸变,离中心的距离越远畸变越严重。

2024-05-27 22:10:39 617

原创 【鱼眼镜头11】Kannala-Brandt模型和Scaramuzza多项式模型区别,哪个更好?

Kannala-Brandt模型和Scaramuzza多项式模型在描述鱼眼相机畸变时都有其特定的数学表示和应用,但它们之间存在一些区别。总结来说,Kannala-Brandt模型和Scaramuzza多项式模型在描述鱼眼相机畸变时都有其独特的方法,但它们在数学表示、应用特点、参数确定和适用范围等方面存在差异。选择哪种模型取决于具体的应用场景和需求。

2024-05-27 22:06:56 1407

原创 【相机标定系列】【相机模型】SLAM 中常用的相机模型&畸变模型总结

Overview目前的视觉系统都是 central 的,入射光线会相交于同一点,点称为 single effective viewpoint。Camera models相机模型Distortion models :畸变模型Projection model:投影模型。

2024-05-27 22:06:44 1221

原创 【鱼眼镜头10】等距Equidistant模型的Kannala-Brandt模型,opencv的鱼眼标定使用的模型。kalibr中的 pinhole + equidistant 都是指该模型。

在之前的博客,说明了:为了从全向相机捕获的图像中提取有用的信息,我们需要知道光线如何从三维空间映射到二维图像平面。这就是投影模型的作用。一个准确的投影模型可以帮助我们更准确地估计场景中物体的位置、姿态和其他属性。常见的鱼眼相机基本成像模型主要有四种,它们分别是等距投影(最广泛)、等立体角投影、体视投影、正交投影。镜头的设计基本是按照上述四种投影模型而制作的,可看出鱼眼相机成像模型通用性较差。为了解决模型通用性较差的问题,可以引入畸变模型,将鱼眼成像模型等价成理想针孔成像模型与畸变模型的叠加作用。

2024-05-27 21:59:21 1496

原创 【鱼眼镜头9】论文Omnidirectional Camera,鱼眼是全向折射相机,满足单一有效视点,scaramuzza多项式Taylor模型(适用于鱼眼相机),统一投影模型(在鱼眼应用受限)

(全方位摄像机)An omnidirectional camera (from omni, meaning all) is a camera with a 360-degree field of view in the horizontal plane, or with a visual field that covers a hemisphere or (approximately) the entire sphere.

2024-05-27 21:52:33 826

转载 【TensorRT(5)】tensorrt官方int8量化方法汇总

int8量化对小目标检测影响较大;int8量化相比fp16量化推理时间并不会节省一半,需实测;当fp16推理时间满足要求时,请采用fp16量化;

2024-05-27 19:22:26 621

翻译 【TensorRT(3)】How to compile and install TensorrtOSS on DRIVE AGX ORIN?

实测可行1、先到Github 上下载 https://github.com/NVIDIA/TensorRT2、把第三方库更新到最新。

2024-05-23 18:53:33 34

原创 【提示工程】视觉分割基础模型:Segment Anything Model SAM模型

我们首先将自然语言处理中的提示理念应用于图像分割,将其转化为分割掩码。这里的提示可以是明确的点、框、掩码,也可以是自由形式的文本,旨在指示图像中需要分割的内容。可提示的分割任务旨在根据给定的任何提示生成有效的分割掩码。即使提示存在歧义,指向多个对象,输出的掩码也应至少能覆盖其中一个对象的合理范围。这与期望语言模型对模糊提示产生一致响应的原理相似。我们选择此任务,是因为它能引导我们开发出一种自然的预训练算法,并通过提示实现零样本迁移到各种下游分割任务。

2024-05-20 16:38:38 789

原创 【Transformer-BEV编码(15)】Sparse4D v2 v3 转onnx可以把use_deformable_func关了,用grid_sample采样算法代替。

根据指定shape生成input和grid,使用pytorch中的grid_sample算子生成output。之后取grid中的第一个位置中的xy,根据xy从input中通过双线性插值计算出output第一个位置的值。print(f'自定义实现输出结果:\n。

2024-05-16 15:16:58 714

原创 【Transformer-BEV编码(9)】Sparse4D v2 v3源代码分析。稀疏感知方向新的baseline,相机参数泛化能力差的问题。

基于BEV的稠密融合算法或许并不是最优的多摄融合感知框架。同时特征级的多摄融合也并不等价于BEV。这两年,PETR系列(PETR, PETR-v2, StreamPETR) 也取得了卓越的性能,并且其输出空间是稀疏的。在PETR系列方法中,对于每个instance feature,采用global cross attention来实现多视角的特征融合。由于融合模块计算复杂度仍与特征图尺寸相关,因此其仍然属于稠密算法的范畴,对高分辨率的图像特征输入不够友好。因此,我们希望实现一个高性能高效率的长时序纯稀疏融合

2024-05-16 10:05:48 1375

原创 【MLP-BEV(6)】BEVDet的Voxel pooling 新版本BEVPoolv2: A Cutting-edge Implementation of BEVDet Toward Deplo

在 BEVDet 发布后,后面跟着三篇是在 《BEVDet: High-performance Multi-camera 3D Object Detection in Bird-Eye-View》 中采用了 Voxel Pooling,大家普遍反映效率低啊。如果是原版 LSS 哪个就更低了,还是python 写的。

2024-05-13 14:18:30 1572

原创 【MLP-BEV(5)】BEVDet: High-Performance Multi-Camera 3D Object Detection in Bird-Eye-View 探索检测BEV3D的优势

构建BEVDet的框架很简单,但构建其强大的性能并非易事。数据增强策略NMS 新的研究在View Transformer 采用的 LSS的方案。Head 的centerpoint方案。BEV Encoder 类似与骨干部分的结构。

2024-05-13 14:17:11 901

原创 【MLP-BEV(4)】BEVDepth论文和代码分析, 第一个对深度质量如何影响整个LSS BEV系统进行彻底分析的论文,显式深度监督

深度估计模块、深度微调模块去解决不精确的特征非投影所带来的副作用,Voxel 池化(这个应该是核心的部分:关于如何进行View Transformation)多帧机制。BEV 表示非常重要,因为它不仅支持多输入摄像头系统的端到端训练方案,而且还为各种下游任务(例如 BEV 分割、对象检测)提供统一的空间和运动规划。LSS(Philion 和 Fidler 2020)很好地解决了使用多视图相机进行 3D 感知的可行性。

2024-05-13 14:15:53 1791 1

原创 【Transformer-BEV编码(10)】CVPR2021 PYVA 第一个明确提到 cross-attention decoder可用于视图转BEV

我们提出了一种新颖的框架,该框架可以在仅给定前视单眼图像的情况下,在鸟瞰视图中重建由道路布局和车辆占用率形成的本地地图。特别地,我们提出了一个跨视图转换模块,该模块考虑了视图之间循环一致性的约束,并充分利用它们的相关性来加强视图转换和场景理解。考虑到车辆与道路之间的关系,我们还设计了上下文感知判别器以进一步完善结果。

2024-05-13 14:12:35 650

原创 【Transformer-BEV编码(8)】Sparse4D v2: Recurrent Temporal Fusion with Sparse Model,计算工作量与输入分辨率无关,适合长距离检测

稀疏算法为多视图时间感知任务提供了极大的灵活性。我们通过实现多帧特征采样的递归形式来改进时间融合模块。通过有效解耦图像特征和结构化锚点特征,Sparse4D能够实现时间特征的高效变换,从而仅通过稀疏特征的逐帧传输来促进时间融合。循环时间融合方法提供了两个主要好处首先,它将时间融合的计算复杂度从 O(T ) 降低到 O(1),从而显着提高推理速度和内存使用量。其次,它能够融合长期信息,由于时间融合而带来更显着的性能提升。

2024-05-06 11:32:06 1299 1

原创 【车展直播(1)】电机的知识

自己开车的话,车需要去用手去开车,用脚去感受油门,屁股去感受舒适度,脑袋感受晕不晕。保有量大的车型也是人们用人民币投票出来的。现在的车 OTA 升级是可以改变开车的感觉的,但是是存在上限的,不好开的车,OTA 可能变得还行,但也未必可以。如果自己有司机的,那就是主要看屁股属不属于,脑袋晕不!当然也可能是司机不行,开的头晕。

2024-04-26 21:56:48 680

原创 【Transformer-BEV编码(6)】Sparse4D-V3: Sparse-based End-to-end Multi-view Temporal Perception

论文:https://arxiv.org/abs/2311.11722代码:https://github.com/HorizonRobotics/Sparse4D其他:https://zhuanlan.zhihu.com/p/637096473如果不看V1 和V2 是无法理解V3 的,因为V3只是改进了V2的一些东西。增加了去噪模块,质量评估模块和解耦头。其他的还得看V2 哟!

2024-04-23 11:25:04 1351

原创 【Transformer-BEV编码(7)】Sparse4D源代码,在mmdet里面增加cuda的插件deformable_aggregation可变形聚合

双线性插值的梯度更新原理基于链式法则,即在反向传播过程中,通过计算损失函数对插值结果的梯度,进一步求得插值过程中各参数(如输入数据、采样位置、权重等)的梯度。这个函数主要用于在图像处理中,当需要从一个浮点坐标获取像素值时,可以通过这个函数基于其最近的四个整数坐标上的像素值进行插值计算,从而得到一个估计值。的Kernel,并传递给它相关的数据和参数。,bilinear_sampling 用于 推理过程中的计算,在训练过程中,需要保证这个经过双线性插值后,权重依然可以被更新,因此需要写相关的代码。

2024-04-22 16:43:19 1129

原创 【QT开发(18)】QT for android,安卓手机蓝牙遥控器,用来控制遥控车

因为云端配置了QT for android,没有其他开发安卓的IDE,本着简单事情简单办的原则,在QT 上开发,还可以跨平台部署,很好啊。界面划分为三个 QWidget,伸展因子 (Stretch Factor)比例分别是3:2:6.例如左边的标度盘是15,右边刻度盘是50,串口发送。发送左右两个标度盘的数值(范围:10-99),在。发送前进、后退、暂停等串口指令分别发送。2、蓝牙QT for android。3、公众号:果果小师弟出品,蓝牙小车。接受其他蓝牙发送过来的串口信息。蓝牙打开、搜索和连接。

2024-04-18 09:24:28 869 2

原创 【数据集(2)】A Survey on Autonomous Driving Datasets: Data Statistic, Annotation, and Outlook

0.论文信息标题:A Survey on Autonomous Driving Datasets: Data Statistic, Annotation, and Outlook作者:Mingyu Liu, Ekim Yurtsever, Xingcheng Zhou, Jonathan Fossaert, Yuning Cui, Bare Luka Zagar, Alois C. Knoll机构:TUM、俄亥俄州立大学原文链接:https://arxiv.org/abs/2401.01454。

2024-04-12 20:39:21 148

原创 【Transformer-BEV编码器(5)】CVPR2023 AeDet: Azimuth-invariant Multi-view 3D Object Detection

LSS 的多视角3D 中,因为忽略了辐射(径向方向)对称性,导致优化困难。为了保留 BEV 特征的固有属性并简化优化,我们提出了方位角等变卷积(AeConv)和方位角等变锚点。AeConv 采用的网格是在辐射方向,因此它能学习到方位角不变性的BEV 特征。提出的anchor 可以开启检测头去学习预测方位角相关性的目标。另外,我们引入了相机解耦虚拟深度去统一深度预测(不同相机内参的图片)。大幅超越了最近的多视图 3D 物体检测器,例如 PETRv2 和 BEVDepth。

2024-04-12 20:19:56 601

转载 【Vector-Map-路径规划(C1)】Open Planner 工程-论文Open Source Integrated Planner for Autonomous Navigation

Global Planner处理路径规划。vector map 矢量地图start position 起点goal position 终点输出:最短,最少cost的路径支持复杂的vector map,但这篇论文里用的是简单的。全局规划器处理路径路由。该算法以矢量地图、起始位置和目标位置为输入,利用动态规划方法寻找最短或最低成本路径。

2024-04-11 17:42:58 200

原创 【Vector-Map-路径规划(0)】卷首语

我基于论文《VectorMapNet: End-to-end Vectorized HD Map Learning 》的输出来看,论文中说,在矢量地图中,我们表征地图元素作为一系列的几何线,它们是容易去连接下游任务的,例如运动预测,编码这些几何线与一系列的预测任务。输出包括道路边沿,车道线和人行横道。看图片右边的情况,经过Polyline Generator 后,输出Polyline。这是由关键点+类别组成的。这就和车道线的关键点检测方法有点类似了。

2024-04-11 16:59:47 978

原创 【Head-DETR系列(3)】2023CVPR最佳论文奖:UniAD: Planning-oriented Autonomous Driving 规划导向的自动驾驶

现代自动驾驶系统的特点是将任务按顺序模块化,即感知、预测和规划。要么为单个任务部署独立的模型,要么用不同的head 设计一个多任务任务网络。他们可能会遭受累积错误AE或缺乏任务协调deficient task coordination。相反,我们认为,为了追求最终目标,即自动驾驶汽车的规划(planning of the self-driving car),应该设计和优化一个有利的框架。

2024-04-10 23:13:39 1224

原创 【Transformer-BEV编码器(5)】CVPR2023 时空BEV金字塔:TBP-Former: Learning Temporal Bird’s-Eye-View Pyramid

以视觉为中心的联合感知和预测(PnP)成为自动驾驶研究的新兴趋势。我们提出了一种用于以视觉为中心的 PnP 的时间鸟瞰金字塔变换器(TBPFormer),其中包括两种新颖的设计。首先,提出了一种姿态同步的 BEV 编码器,可以随时将具有任何相机姿态的原始图像输入映射到共享且同步的 BEV 空间,以实现更好的时空同步。其次,引入时空金字塔变换器来全面提取多尺度 BEV 特征,并在空间先验的支持下预测未来的 BEV 状态。

2024-04-10 22:53:01 988

原创 【Transformer-BEV编码器(4)】CVPR2023丰田研究院Viewpoint Equivariance for Multi-View 3D Object Detection -视点等变化

BEV 作为cornerstone capability ,非常重要。多视图一致性multi-view consistenc——> 3D 场景理解和几何学习——> 利用 3D multi-view geometry+ 通过viewpoint equivariance ——>改进定位。利用 query-base 的transformer 架构和 3D 场景进行编码(通过使用来自 3D 透视几何的位置编码来增强图像特征)。我们在输出级别设计,这使得能够在训练期间生成多个虚拟帧,以通过强制来学习。

2024-04-09 14:33:16 1066

原创 【迅为iTOP-4412-linux 系统制作(4)】ADB 或者 TF 卡烧写测试

编译生成的内核镜像uImage 和设备树 dtb 文件“exynos4412-itop-elite.dtb”已经可以使用了。

2024-04-08 17:29:18 852

转载 【迅为iTOP-4412-linux 系统制作(3)】根文件系统移植-Ubuntu 20

大家不要看着ubuntu就怕了,其实移植里面ubuntu是相对最简单,步骤最少的了。Ubuntu官方针对不同的CPU架构提供相应的ubuntu base根文件系统,有amd64(64位X86)、armhf、i386(32位X86)、powerpc、ppc64el等,我们只需要修改下相关配置下即可放到板子上运行。下面是移植好的仓库地址,https://github.com/jason416/ubuntu-base-20一、下载ubuntu-base。

2024-04-08 17:22:20 99

转载 【迅为iTOP-4412-linux 系统制作(2)】根文件系统移植-BusyBox

文件系统是一个用来组织和管理文件的系统,有了文件系统之后,就可以轻松操作存储在存储介质上的文件,比如文件的增、删、查、改等基本操作。文件系统的格式有很多种(fat32、ext2、ext3、ntfs等)。根文件系统:最顶端称为根,在Linux上用“ \ ”表示,然后将一个按照特定目录组成的文件系统挂载到根上,这个系统就叫做根文件系统。Busybox是一个集成大量Linux命令的工具,例如ls,cat,cp等命令,使用busybox可以很容易构建出根文件系统需要的。

2024-04-08 17:21:44 51

原创 【迅为iTOP-4412-linux 系统制作(1)】linux内核移植-5.4并适配设备树

服务器:Ubuntu 18目标开发板CPU (Exynos4412,四核Cortex-A9,主频为1.4GHz-1.6GHz)RAM (1GB 双通道 DDR3)内核代码下载Note:移植好的源码见github仓库的iTop4412分支。

2024-04-08 17:08:03 1074

原创 【迅为iTOP-4412 linux系统制作(0)】卷首语

17年买的4412 开发板,最近想花半天时间来把“linux系统“重新部署一遍,毕竟都2024年了。当初为啥买 4412?因为,4412是三星的经典处理器。2017 年 6 月份左右,迅为电子 iTOP 系列开发平台 iTOP-4412 的 SCP 核心板,得到开源软件 Linux 的官方支持,这意味着从linux官方 www.kernel.orrg下载的更新内核稍加修改就可以直接在 ITOP4412 上运行。

2024-04-08 14:08:16 209

原创 【相机方案】智能驾驶的域控采用的“串行器和解串器”方案的总结(持续更新),SerDes,GMSL

SerDes是Serializer/Deserializer的缩写,即串行器和解串器。由于同轴线的传输延迟几乎可以忽略不计(ns级别),相当于将原来只能短距离传输的高速并行信号(MIPI/I2C/CLK等)的传输距离延长,真正做到高带宽、低延迟、长距离的数据传输。

2024-04-08 12:23:15 2527

原创 【Attention(0)】卷首语,从“SEAttention注意力效果秒杀CBAM”聊到“Transformer”

Attention 注意力是一个非常有价值的机制,例如我们耳熟能详的。我们常常看到这样的标题。其实,CBAM 是一种“卷积神经网络注意力模块”(Convolutional Block Attention Module, CBAM)。这也是一篇论文《CBAM: Convolutional Block Attention Module》。CBAM旨在自动学习输入特征图的空间和通道注意力权重,从而更好地捕捉图像中的局部信息和全局上下文。CBAM包括两个主要组成部分: 空间注意力模块和通道注意力模块。

2024-04-07 15:47:47 712

原创 【Transformer-BEV编码器(3)】BEVFormer v2: Adapting Modern Image Backbones to Bird’s-Eye-View Recognition

现有的最先进的BEV检测器通常与VOVnet等深度预训练主干网有关,阻碍了蓬勃发展的图像主干网和BEV检测器之间的协同作用。为了解决这一限制,我们通过引入透视图监控,优先考虑简化BEV探测器的优化1、作者提出了典型的BEV模型的工作流程2、作者说大家关注视觉转换模块和下游任务,但是对于 backbone 的关注缺乏。作为一个前沿和高需求领域,自然会将现代图像主干引入自动驾驶。令人惊讶的是,研究界选择坚持使用VOVnet[13],以享受其大规模深度培训前[26]。

2024-04-03 15:06:58 1086

原创 【透视图像目标检测(0)】卷首语

其实,透视图像目标检测很早就开始研究了,在博客笔记里面也躺了很多的坑没填,这个领域是一个很重要的领域,特别是在BEVFormerv2 使用透视监督后,透视的算法也又有应用的新地方了。把个人理解的脉络梳理出来,供大家参考,欢迎指正!

2024-04-02 15:50:11 1385

转载 pybind11混合CUDA+Python+C++编程

在cu文件里写如下代码,注意头文件包括头文件cuh里写这个,注意必须写上 __declspec(dllexport) ,不然生成的lib文件里没有该函数。

2024-04-01 17:09:33 128

原创 【C++学习(27)】一个c++类的实例“多线程“运行的例子

一个类本身并不直接“用于多线程运行”。但是,类的实例(即对象)可以在多线程环境中被使用,并且类的设计可以影响它在多线程环境中的表现和易用性。在多线程编程中,重要的是要理解线程安全和并发控制的概念。线程安全意味着类的实例可以在多个线程中同时访问而不会导致数据不一致或其他问题。要设计一个线程安全的类,通常需要考虑如何同步对共享资源的访问,以避免竞态条件(race conditions)和其他并发问题。此外,一些设计模式(如单例模式、观察者模式等)在多线程环境中使用时需要特别注意线程安全性。

2024-04-01 15:51:35 312

转载 【C++学习(26)】RAII + 接口模式对生产者消费者模型进行封装

本次课程学习了 RAII 接口模式下的生产者消费者多 batch 实现。把前面学的知识全都串起来了,首先通过 create_infer 创建 infer 资源并对模型进行加载,这是 RAII 体现,其次该函数返回的是接口类的智能指针,因此用户只能看到 forward 这一个接口,这是接口模式的应用。

2024-03-29 17:11:28 30

转载 【C++学习(25)】RAII+接口模式对代码进行有效封装

这次课程我们学习了 RAII + 接口模式对代码进行封装,我们模拟了一个非常常见的推理类,首先我们分析了其存在的问题,那就是实例化 Infer 类,去调用 load_model、forward 等函数时,需要在函数去写异常逻辑处理,非常让人头疼。我们首先通过 RAII 将资源在构造函数中就进行初始化,避免了外部获取资源后还要调用相关函数去做初始化,其次我们采取了接口模式,将接口纯虚类与具体实现类分离开,让使用者只考虑具体的接口,而不必关心具体的实现。

2024-03-29 17:09:33 29

转载 BEV超视距的范围内,增加一个原本传统的算法,用2D算法去跟踪更加远的物体,但是当它进入到了BEV体系之后,我们可以在几何上做变换,认为它是同一个物体。

如果假设有无限的、准确的结构化数据,确实是不需要激光雷达,可以快速的训练出来一个模型,这个模型因为数据量很大,可以无限接近激光雷达的精度,但因为现在我们的所得到的数据量有限,我们就想又想要得到一个不错效果的车,那么激光雷达放进来,它就是一个好又快、显性度高的补充。成本会增加,难度是在变,大成本是在增加。那么在持续性这个层面,传统车厂要去克服体制的原因,这个情况就是说,我们需要有会做决定的人,他知道要持续的、不断为这个事情,为训练数据收集数据形成数据闭环,去不断的优化算法,这个事情要持续的迭代和升级。

2024-03-29 11:06:35 75

翻译把STL容器放入共享内存

把STL容器放入共享内存 假设进程A在共享内存中放入了数个容器,进程B如何找到这些容器呢? 进程A先在共享内存某块确定地址上放置一个map容器,然后进程A再创建其他容器,然后给其取个名字和地址一并保存到这个map容器里。 进程B知道如何获取该保存了地址映射的map容器,然后同样再根据名字取得其他容器的地址。清单container_factory.hh是一个容器工厂类。 类Pool的方法setContainer把map容器放置在一个已知地址上,方法getContainer可以重新获取这个map。 该工厂的方法用来在共享内存中创建、获取和删除容器。

2024-06-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除