VAD代码解读
BEV特征提取 首先使用ResNet50(backbone)从输入的多帧多视角图片提取图片特征,然后使用FPN(neck)融合多尺度特征,最后借助BEVFormer的编码器得到BEV特征
VAD: Vectorized Scene Representation for Efficient Autonomous Driving
GitHub ICCV 2023 1. 简介 本文贡献 将场景建模为向量化表示,舍弃了传统的稠密删格化表示和人工设计的后处理 通过查询交互和矢量化规划约束,隐式和显式地利用矢量化场景信息来提高规划安全性 性能好,设计简洁推理速度快 2. 相关工作 3. 方法 首先从输入的多帧多视角图片中得到BEV特征 使用一组map query从个BEV特征中提取信息得到map向量和更新后的map query,具体见3.1 使用一组agent query从个BEV特征和更新后的map query中提取信息得到motion向量和更新后的agent query,具体见3.1 ego query与agent query和map query进行注意力交互,并接收上层的驾驶指令和自车状态(可选),最终输出自车轨迹,具体见3.2 自车轨迹会和map向量、motion向量一起输入到规划约束中,以此计算loss,具体见3.3 3.1 向量化场景学习 向量化map 得到的除了map向量和map query之外,还有每个map类别的置信度,用来计算loss。map的类别包括:车道线、道路边界、人行...
Sparse BEV
1. Sparse BEV 多数Sparse BEV方法不生成稠密的BEV网格,而是直接使用稀疏的3D查询(Query)与多视角图像特征交互,从而绕过稠密特征图的构建 优势:降级计算消耗;感知范围远;可达150米甚至更远(Dense只有前后50米左右); 2. DETR3D GitHub CORL 2021 2.1 图像特征提取 使用ResNet-FPN骨干网络对图像进行特征提取,得到多尺度2D特征图 2.2 2D到3D特征变换 维护一组稀疏的、可学习的3D目标查询,queries 每一个3D query会通过子网络预测出参考点,作为bbox的三维中心点坐标 通过相机外参将参考点变换到相机2D平面上 利用双线性插值采样得到2D图像特征,如果3D点投影到了图像外则过滤掉 对特征进行聚合,用多头自注意力机制更新queries 2.3 缺点 3D参考点难学,将3D参考点投影回相机平面时,如果参考点预测不准会导致投影回的位置位于目标区域外,会采样到无效特征 参考点限制了特征提取范围 特征采样过程复杂 3. PETR GitHub ECCV 2022 创新点:解决了DET...
Query-Based
1. 和LSS-Based的区别 LSS的核心是显式投影,在图像侧显式地为每个像素预测一个深度分布,然后用这个分布把图像特征“抬升”和“拍平”到BEV空间 Query的核心是隐式查询,它先有一个关于BEV空间的先验(BEV query),然后通过可微的注意力机制去“查询”2D图像中与该BEV位置最相关的区域,从而隐式地学习到从2D到3D的映射 2. Deformable DETR GitHub ICLR 2021 创新点:将Transformer原本的“全局注意力”变成了“稀疏的局部注意力” 2.1 传统多头注意力机制 设zqz_qzq为query元素,xkx_kxk为key元素,xvx_vxv为value元素。那么多头注意力机制特征的计算公式可以简写为 MultiHeadAttn(zq,xk)=∑mWm[∑kAmkqWm′xv]\operatorname{MultiHeadAttn}(z_q,x_k) = \sum_{m}W_m [\sum_{k} A_{mkq} W_m^{'} x_v ] MultiHeadAttn(zq,xk)=m∑Wm[k...
Ubuntu输入法
1. 卸载系统默认的IBus 系统自带的IBus不具备记忆功能,建议卸载防止与新安装的Fcitx5冲突 sudo apt purge ibus ibus-gtk ibus-gtk3 2. 安装Fcitx5和RIME sudo apt install -y fcitx5 fcitx5-chinese-addons fcitx5-rime fcitx5-config-qt 设置环境变量 vim ~/.bashrc # >>>Fcitx5>>> export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx export XMODIFIERS=@im=fcitx export INPUT_METHOD=fcitx export SDL_IM_MODULE=fcitx export GLFW_IM_MODULE=ibus # <<<Fcitx5<<< 刷新 source ~/.bashrc 启动服务并查看状态 # 启动服务 fcitx5 -d # 检查状态 fcitx5-diagnose 3. 安装白霜拼音 ...
LSS-Based
1. BEV相关概念 1.1 BEV网格 在自车周围俯视平面x-y方向划分nnn个网格,每个网格表示特定物理距离ddd米。自车中心(自动驾驶的的车辆中心一般指后轴中心)在网格中心位置。类似于机器人中的栅格地图 1.2 BEV特征图 在BEV网格的所有格子中都填充CCC个通道的特征值作为内容(contex),就组成了BEV特征图。每个格子中CCC通道特征值都要来自格子所对应空间的特征信息,而不是胡乱地填充其它地方的特征信息 BEV方法的核心目标是:为BEV网格中每个格子组织并填充合适的特征信息,得到BEV特征图 2. LSS GitHub ECCV 2020 2.1 图片预处理 通过CNN网络从原始图片中提取特征,特征为长度为CCC的向量,于是预处理后得到[B,N,H,W,C][B, N, H, W, C][B,N,H,W,C]的特征张量,其中BBB是Batch Size,NNN是相机个数H,WH, WH,W是特征图大小 2.2 Lift升维 从2D图像中恢复图像的深度信息,这里恢复的深度信息并非确定的值,而是概率分布。文中将深度离散为4m−44m4m-44m4m−44m中步长...
Model Predictive Control via Probabilistic Inference: A tutorial and survey
GitHub Annual Reviews in Control 2. 我们是想通过求解最优控制问题得到最优控制输入序列u0:T−1∗\bm{u}_{0:T-1}^*u0:T−1∗和对应的状态序列x0:T∗\bm{x}_{0:T}^*x0:T∗ minx0:T,u0:T−1 J(x0:T,u0:T−1)s.t. xt+1=f(xt,ut),∀t∈{0,⋯ ,T−1}\begin{align*} \min _{\bm{x}_{0:T},\bm{u}_{0:T-1}} \ & J(\bm{x}_{0:T},\bm{u}_{0:T-1}) \\ \text{s.t.} \ & \bm{x}_{t+1}=f(\bm{x}_t,\bm{u}_t),\forall t \in \left\{ 0,\cdots ,T-1 \right\} \end{align*} x0:T,u0:T−1min s.t. J(x0:T,u0:T−1)xt+1=f(xt,ut),∀t∈{0,⋯,T−1} JJJ代表代价函数,xt\bm{x}_txt和ut\bm{...
A New Approach to Time-Optimal Path Parameterization Based on Reachability Analysis
GitHub TRO Conda TOPP-RA算法解决的问题是,再给定一条路径后,怎么在不违反动力学约束的情况下跑完这条路。即路径的时间分配 TOPP-RA的代码库在逐渐放弃对Python的支持,建议使用C++版本 1. 简介 之前关于TOPP两种主流方法为TOPP-NI(数值积分)和TOPP-CO(凸优化) TOPP-NI方法速度快,但是实现困难,并且鲁棒性差;TOPP-CO方法鲁棒性强,但是速度慢,这篇论文解决了二者的不足 2.
Learning Agile Gate Traversal via Analytical Optimal Policy Gradient
Arxiv 1. 介绍 四旋翼是欠驱动的,平移和旋转动力学是耦合的,因此,在受限空间内进行运动规划和控制很有挑战性。穿过窄门是一个典型且要求很高的任务,需要非常灵活的飞行、精确的姿态控制,以及严格遵守时空约束。这个任务被广泛用作评估敏捷运动规划和控制方法的标准 2. 问题提出 跟踪参考轨迹的MPC被定义为 π(x)=arg minξ J(ξ)=∑k=0N−1c(xk,uk)+cN(xN)s.t. xk+1=f(xk,uk),f(xk,uk)≤0,gN(xN)≤0,x0=xinit\begin{align*} \pi(x)= \argmin _{ \xi} \ &J(\xi)= \sum_{k=0}^{N-1} c(\bm{x}_k,\bm{u}_k)+c_N(\bm{x}_N) \\ \text{s.t.} \ & \bm{x}_{k+1}=f(\bm{x}_k,\bm{u}_k), \\ & f(\bm{x}_k,\bm{u}_k) \leq 0, \\ & g_N(\bm{x}_N) \leq 0, \\ & \bm{x}_0=\...