- 博客(44)
- 收藏
- 关注
原创 从PyTorch `.pth` 导出 ONNX图文件
本文介绍了将PyTorch模型(.pth)导出为ONNX格式并集成TensorRT插件的工程化流程,重点针对包含CUDA扩展算子的复杂模型(如UniAD/Deformable DETR)。首先澄清.pth文件仅包含权重参数,而ONNX才是可部署的静态计算图。详细讲解了通用导出流程:构建模型、准备输入数据、调用torch.onnx.export(),并强调处理TensorRT插件算子的三种方案,推荐采用自定义ONNX节点+TRT插件的方式。
2026-01-15 10:21:05
550
原创 uniad模型详细介绍(一)
摘要(148字): UniAD模型采用ResNet-50作为图像主干网络(img_backbone),输出第4阶段特征图(2048维),通过FPN进行多尺度特征融合(输出_dim_维度)。模型配置包含关键参数:目标检测IoU阈值、900个查询向量、10类别分类、点云空间范围,并冻结ResNet前1层参数。输入数据维度为[1,5,6,3,256,416],分别对应批大小、时序帧数、相机数、RGB通道及图像尺寸。特征提取时会reshape为[5,6,3,256,416]处理时空信息,支持视频目标检测与跟踪任务。
2026-01-12 14:15:26
883
原创 uniad模型输出参数详细解释
nuScenes数据集评测指标涵盖自动驾驶感知系统的多个核心维度,包括目标跟踪、检测、运动预测和场景理解。关键指标包括:目标跟踪的MOTA(准确率)和AMOTA(平均准确率),目标检测的AP(平均精度)和NDS(综合得分),运动预测的ADE(平均位移误差)和FDE(最终位移误差),以及场景理解的各类IOU(交并比)。其中NDS、MOTA和mAP是综合性能的核心指标,值越高越好;而各类误差指标如trans_err和ADE则越低越好。评测结果显示不同类别性能差异明显,car和pedestrian的检测跟踪效果较
2026-01-12 14:14:03
628
原创 MMCV版本介绍
(大致“最近稳定 / 官方推荐”)的 MMCV / MMDetection / MMDetection3D(及其依赖 MMEngine) 的兼容性推荐表格 — 涵盖,并给出的推荐组合 + “docker / 镜像 / 安装建议”。
2025-12-05 09:44:53
752
原创 docker源文件配置以及密钥文件
摘要:本文介绍如何解决在Ubuntu系统中导入Docker公钥时出现的问题。首先提供两种导入公钥的方法(清华镜像站或Docker官方源),然后说明如何清理缓存并更新包列表。若问题未解决,需检查镜像源配置和密钥文件位置,重点解决当密钥存储在/etc/apt/keyrings/而非传统/etc/apt/trusted.gpg.d/目录时的处理方法。最后指导如何验证是否解决问题,确保Docker仓库签名正常验证。全文提供清晰命令示例和配置检查方法。
2025-11-17 10:01:45
502
原创 nvidia PhysicalAI-Autonomous-Vehicles数据集介绍
原点:后轴中心在地面的投影点X 轴:指向车辆前方Y 轴:在面向前方时指向左侧Z 轴:指向上方。
2025-11-12 09:55:32
1269
原创 BEVFUSION-CUDA 解读
RsQ−zRsQ−zR:真实值Q:量化值s:比例(scale)z:偏移(zero point)fill:#333;color:#333;color:#333;fill:none;📂 加载预训练模型 (ResNet50)⚙️ 初始化量化器 quantize_net()🔄 激光雷达分支量化📸 相机分支量化(Bottleneck+Concat统一Scale)🧮 BN融合 + ReLU修正📊 标定300批次💾 保存量化模型 bevfusion_ptq.pth。
2025-10-24 09:24:42
954
原创 BEVFUSION解读(八)
本文总结了BEVFUSION框架中激光雷达点云和摄像头数据的处理方法。对于激光雷达点云,介绍了五种处理方式:点基方法、体素基方法、柱基方法、图基方法和投影基方法(包括球面投影、圆柱投影和鸟瞰视图)。重点分析了体素化过程,包括将点云划分为规则三维网格的步骤,以及通过稀疏卷积网络提取特征的过程。对于摄像头数据,描述了从原始图像到特征提取的流程,包括将激光雷达点投影到图像平面获取深度信息的关键步骤。整体流程展示了多模态数据融合中两种传感器数据的预处理和特征提取方法。
2025-10-15 14:45:29
1001
原创 BEVFUSION解读(七)
BEV池化技术原理摘要(150字): BEV池化是一种将3D点云特征转换为2D鸟瞰图表示的方法。核心步骤包括:1) 将激光雷达坐标系下的空间(-54m至54m范围)划分为360×360×1的网格;2) 每个网格内的点特征进行求和聚合;3) 通过坐标转换将点云映射到voxel网格。关键技术实现使用CUDA加速,通过计算每个网格的起始索引和长度,实现高效的分段聚合操作。其中,前向传播将点特征累加到对应网格,反向传播则将梯度广播回原始点。该方法通过特征相加的方式,将3D点云压缩为2D BEV特征图,适用于自动驾驶
2025-10-14 10:15:13
779
原创 BEVFUSION解读(六)
函数是 BEVFusion(或类似 BEV 特征融合模型)中一个关键步骤,用于将图像或多视角特征从 3D 空间投影到 Bird’s Eye View (BEV) 特征图上。代码中主要有两个输入:: 每个像素点(或特征点)在 3D 空间中的坐标(x, y, z)。从图中看,它的 shape 是:表示::batch size:6 个摄像头:深度采样层数:特征图的高宽:每个点的 (x, y, z) 坐标: 对应位置的特征向量(C 为通道数,例如 80)。先将 和 展平成一维。, 表示
2025-10-13 09:32:26
459
原创 BEVFUSION解读(五)
撤销后处理的平移和旋转:先对视锥体进行平移和旋转。深度缩放:将每个像素的uuuvvv坐标与深度值ddd相结合,得到实际的 3D 坐标。从相机坐标系到激光雷达坐标系的转换:通过旋转矩阵和内参矩阵进行变换,得到激光雷达坐标系下的点。额外的变换:根据输入的额外旋转和平移矩阵,对点进行二次变换。
2025-10-10 16:34:21
942
原创 BEVFUSION解读(四)
本文介绍了3D目标检测中数据预处理的关键步骤,包括坐标系转换和点云投影。主要内容有:1)详细推导了激光雷达到相机的坐标变换矩阵,解释了旋转矩阵求逆和平移向量计算;2)展示了相机内参矩阵构建和激光雷达到图像像素的投影过程;3)提供了多种坐标系组合变换实例,如世界坐标系转换。此外还简述了测试流程中的数据处理步骤,包括多视角图像加载、点云合并和3D标注加载等操作。这些预处理为后续3D目标检测任务提供了标准化的输入数据格式。
2025-09-29 16:23:58
766
原创 BEVFUSION解读(三)
模型提供的model.yaml配置文件的详细解释,并附上不同模型配置的说明。这个配置文件定义了一个多模态 BEVFusion 模型,结合了相机图像和激光雷达(LiDAR)数据,以进行 3D 目标检测。将逐步分析每个模块的作用以及不同模型选择的含义。
2025-09-28 15:57:45
647
原创 BEVFUSION解读(一)
NuScenes 点云到相机成像的流程,抽成**清晰的公式**,用统一的**齐次坐标**和**列向量**记号来写公式,同时也说明当前代码的**行向量实现**该怎么对应。
2025-09-17 10:43:35
1156
原创 BEVFusion & NVIDIA Lidar_AI_Solution 部署与测试笔记
本文介绍了BEVFusion与NVIDIA Lidar_AI_Solution的部署与测试流程。主要内容包括环境配置要求(CUDA≥11.0、TensorRT≥8.5.0等)、项目代码与数据集的下载方法(需递归克隆NVIDIA项目)、Docker环境配置与容器操作指南,以及MIT-BEVFusion项目的编译、训练和评估步骤。重点说明了使用nuScenes数据集时的注意事项,并提供了模型训练和评估的具体命令参数。该项目要求特定的硬件支持(Compute Capability≥sm_80)和严格的软件版本约束
2025-09-17 10:25:55
1099
原创 Nsight Systems 2025.5.1 JetPack运行
nsys status -e显示CPU Profiling Environment失败,可能因缺少root权限或内核Paranoid Level限制。解决方法:1) 使用sudo运行nsys;2) 检查并修改/proc/sys/kernel/perf_event_paranoid为-1;3) 确保无SELinux/AppArmor限制;4) 必要时重启系统。ARM设备可能不支持Intel LBR但不影响基本分析功能。
2025-09-03 13:48:51
473
原创 从Windows远程显示Linux图形程序:SSH X11转发完整指南
通过本文,您已掌握:✅ 在Windows部署VcXsrv X服务器✅ 配置Linux SSH X11转发在本地调试远程Pythonmatplotlib图表安全运行服务器上的GUI管理工具甚至远程操作ROS机器人可视化界面。
2025-08-26 11:41:48
1118
原创 Diffusion模型解析(二)
Diffusion 模型就是通过学习噪声去除的过程,从纯噪声一步步“反演”出清晰的图像,从而实现强大的生成能力。1) 作用:已知 xtx_txt 与(模型预测的)噪声 ϵ^\hat\epsilonϵ^,复原 x^0\hat x_0x^0。推导:由xt=αˉt x0+1−αˉt ϵ⟹x0=xt−1−αˉt ϵαˉt,x_t=\sqrt{\bar\alpha_t}\,x_0+\sq
2025-08-13 10:41:30
425
原创 Diffusion模型解析(一)
Diffusion 模型的核心想法是:正向过程(Forward Process / Diffusion):把一张真实图像逐步加噪声,直到变成接近纯高斯噪声。反向过程(Reverse Process / Denoising):学习一个神经网络,逐步去噪,从随机噪声还原成清晰的图像。这样就能实现 从噪声生成数据 的能力。
2025-08-08 14:33:44
812
原创 强化学习入门(五)
输入:初始化:──────────────────────────────────────────────────────────────FOR step=1…Niterstep=1\dots N_{\text{iter}}step=1…Niter DO采样小批量 (s,a,r,s′,d)←D.sample(B)(s,a,r,s',d)←\mathcal{D}.\text{sample}(B)(s,a,r,s′,d)←D.sample(B)更新 Critic(值函数) 2.1 目标动作 a
2025-07-22 14:55:51
969
1
原创 强化学习入门(三)
感知、行动和目标是强化学习(RL)的三大关键要素:在感知到环境状态信息后,RL 智能体能够采取行动来影响环境,以实现其目标。在 RL 中,智能体并不依赖专家数据来决定如何行动,而是通过奖励信号评估动作表现,不断迭代并改进其策略,以更好地达成目标。一般而言,RL 模型可被表述为满足马尔可夫性质的马尔可夫决策过程(MDP)[21]——未来状态仅取决于当前状态。具体来说,MDP 问题由五元组 <S,A,R,T,γ><\mathcal{S}, \mathcal{A},\mathcal{R},\mathcal{T},
2025-07-01 09:15:16
1258
原创 增广拉格朗日时空联合规划ALTRO-iLQR (二)
下面给出两种参考点(Rear Axle Center 与 Vehicle CG)下的离散化运动学模型表达。设状态向量xk=[xkykvkθk],\mathbf{x}_k = \begin{bmatrix}x_k\\ y_k\\ v_k\\ \theta_k\end{bmatrix},xk=xkykvkθk,控制输入uk=[akδk],\mathbf{u}_k = \begin{bmatrix}a_k\\ \delta_k\end{bmatrix},uk=[akδ
2025-06-16 15:43:38
625
原创 增广拉格朗日时空联合规划ALTRO-iLQR (一)
利用问题的马尔可夫结构,显式在前向仿真中满足动力学,代表有 DDP 和 iLQR。每次迭代将非线性目标与约束在线性/二次近似后,求解一系列 LQR 子问题,速度快、内存少,适合嵌入式场景。轨迹优化是一种强大的机器人控制框架,其核心价值在于高度的通用性:只要系统动力学满足马尔可夫性质,就可以应用此方法。常用隐式积分,提高数值稳定性,但依赖大型闭源库,计算较慢。(Augmented Lagrangian iLQR,亦称 AL‑iLQR),即原始 ALTRO 算法的核心(参见。,则为 Hessian 矩阵。
2025-05-29 13:41:19
648
原创 CILQR代码分析(二)
向心加加速度公式为(2v(k)a(k)κ(k)+v(k)2dκ(k))2(2v(k) a(k) \kappa(k) + v(k)^2 d\kappa(k))^2(2v(k)a(k)κ(k)+v(k)2dκ(k))2∂L∂U(0)(k)prime+=2dκ(k)v(k)4+4v(k)3a(k)κ(k)\frac{\partial L}{\partial U_{(0)}(k)}_{prime}+=2d\kappa(k) v(k)^4 + 4v(k)^3a(k)\kappa(k)∂U(0)(k)∂Lpr
2025-05-08 14:45:38
1092
原创 CILQR代码分析(一)
iLQR 的基本思路是 迭代地做局部线性化+二次近似,然后求解一个 LQR 子问题,不断更新轨迹,直到收敛为止。给定一个车辆的动力学模型:如图所示给出了简单的车辆动力学模型,其中κ\kappaκ为曲率, θ\thetaθ为车辆的航向角, LLL为轴距。这几个变量的关系为:R=Ltan(α)R = \frac{L}{\tan (\alpha)}R=tan(α)LR=1κR = \frac{1}{\kappa}R=κ1轨迹规划的目标是找到一个函数S(t)S(t)S(t), 该函数将时间参
2025-04-30 20:50:51
1526
原创 强化学习入门(二)
加噪过程,加入高斯白噪声。去噪过程,需要训练一个神经网络,和时间步t预测加入的噪声。按照αt和1−αt进行加权加噪,加噪之后得到的图片也是符合高斯分布的。t时刻的xt和t−1时刻的xt−1xtαtxt−11−αtεt−1所以从xt−1到xt的概率分布qxt∣xt−1qxt∣xt−1Nxt;αt。
2025-04-22 10:06:30
177
原创 强化学习入门(一)
在图片1中,使用重要性采样估计新策略πθ′πθ′下的期望,并计算优势函数。在图片2中,构建了 TRPO 的优化目标,通过最大化期望优势函数来更新策略,并通过 KL 散度约束确保新旧策略的差异不会太大,从而保证策略更新的稳定性。这就是从图片1的公式推导出图片2 TRPO公式的过程。
2025-04-22 09:40:47
954
原创 cmake教程(一)
这个库将包含我们自己的平方根计算实现,执行文件(executable)可以使用这个库,而不是使用编译器提供的标准平方根函数。定义:这个变量代表 构建目录,即你运行 CMake 生成构建文件的目录。通常它是一个与源代码目录不同的目录,通常用于存放构建生成的文件、库、可执行文件等。定义:这个变量代表 项目的源代码目录,即 CMakeLists.txt 文件所在的目录。用途:它用于指向生成的二进制文件所在的目录,通常用于设置编译器的包含路径、输出路径等。用于将包含目录添加到编译器的搜索路径中,这样头文件。
2025-04-03 10:55:16
1117
原创 附加gdb调试遇到问题
具体解决方法有在Linux上以普通用户身份使用GDB附加到进程时,可能会失败,并显示“ptrace:Operation not permitted”(ptrace:操作不允许)。默认情况下,Linux不允许附加到不是由调试器启动的进程(有关更多详细信息,请参阅Yama安全文档)。这将把ptrace级别设置为0,之后仅凭用户权限即可附加到不是由调试器启动的进程。在没有Yama的发行版(例如Raspbian)中,您可以使用为特定可执行文件分配ptrace另外,您可以以超级用户身份启动GDB并附加到进程。
2025-04-02 14:19:31
459
原创 C++学习(一)
万能引用是一种特殊的引用类型,它既可以绑定到左值,也可以绑定到右值。在模板参数推导和范围 for 循环中使用 auto &&,编译器会根据实际传入的值的类别(左值或右值)自动推导出正确的引用类型。
2025-03-17 14:49:30
481
原创 已有代码解读(一)
/计算障碍物的四个顶点和中心点的sl//面积比较的方法进行碰撞检测 carpoint 为局部路径上的点 obses为障碍物上的坐标obs命名空间包含用于障碍物检测和处理的函数和结构。Frenet 坐标转换:将点从笛卡尔坐标系转换为 Frenet 坐标系,便于路径规划和避障。障碍物处理:处理障碍物数据,包括计算其位置、边界及与车辆的重叠。碰撞检测:使用几何特性检测车辆和障碍物之间的重叠。工具函数:辅助函数,用于寻找最近点、比较面积、判断障碍物的有效性等。
2025-01-12 16:26:47
782
原创 Apollo 10.0 Public Road Planner 详解(Planning代码学习)(五)
速度规划的参考系是st坐标系,这里的s是沿着规划好的路径方向的位移,t是时间。动态规划:通过把原问题分解为相对简单的子问题,再根据子问题的解求解原问题的方法。有向权重图,采用递推方法逐步求解:f(P)=min{f(R)+wR→P}f(P)=\min\left\{f(R)+w_{R\to P}\right\}f(P)=min{f(R)+wR→P}Apollo速度规划中,动态规划主要用来进行速度决策的判定,使用采样搜索算法:对st图采样为栅格图,在t的方向以固定间隔进行采样,Apollo中默认设置
2025-01-10 20:10:19
1918
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅