3D点云目标检测:CT3D解读(未完)

CT3D

  • 一、RPN for 3D Proposal Generation
  • 二、Proposal-to-point Encoding Module
    • 2.1、Proposal-to-point Embedding
    • 2.2、Self-attention Encoding
  • 三、Channel-wise Decoding Module
    • 3.1、Standard Decoding
    • 3.2、Channel-wise Re-weighting
    • 3.3、Channel-wise Decoding Module
  • 四、Detect head and Training Targets
  • 五、训练losses

在这里插入图片描述

一、RPN for 3D Proposal Generation

就是基于单阶段的网络获取box作为Proposal,文章中使用的是Second网络,其他的如pointpillar、centerpoint都可以作为
CT3D的RPN网络。

二、Proposal-to-point Encoding Module

通过以下两个模块精修RPN输出的proposal:
1、将proposal特征映射到点的特征上(下图左)。
2、通过自注意力编码对proposal内点之间的相对关系进行建模来细化点的特征(下图右)。
在这里插入图片描述

2.1、Proposal-to-point Embedding

对于给定的一个proposal,选择ROI区域内的点,ROI区域是一个没有高度限制的圆柱体,然后随机选取ROI范围内的256个点。

  • 首先计算采样点和Proposal中心点的相对坐标, Δ p i c = p i − p c , ∀ p i ∈ N \Delta \boldsymbol{p}_{i}^{c}=\boldsymbol{p}_{i}-\boldsymbol{p}^{c}, \forall \boldsymbol{p}_{i} \in \mathcal{N} Δpic=pipc,piN
  • 然后一个直接的做法是将Proposal的长、宽、高、和旋转角度信息直接拼接到每个点的特征上,即 [ Δ p i c , l c , w c , h c , θ c , f i r ] \left[\Delta \boldsymbol{p}_{i}^{c}, l^{c}, w^{c}, h^{c}, \theta^{c}, f_{i}^{r}\right] [Δpic,lc,wc,hc,θc,fir]。由于Transformer 编码器根据这种几何信息重新定向的效果可能较差,所以这种直接基于尺寸和方向的特征表示对于Proposal的优化帮助可能是有限的。
  • 通过计算采样点和Proposal八个顶点的相对位置, Δ p i j = p i − p j , j = 1 , … , 8 \Delta \boldsymbol{p}_{i}^{j}=\boldsymbol{p}_{i}-\boldsymbol{p}^{j}, j=1, \ldots, 8 Δpij=pipj,j=1,,8 p j {p}^{j} pj是第 j j j个顶点的坐标,这样长、宽、高和角度信息就被重新编码为不同纬度的距离信息。
  • 最后将上述信息合并,并经多一个MLP网络上提升特征纬度。
    f i = A ( [ Δ p i c , Δ p i 1 , … , Δ p i 8 , f i r ] ) ∈ R D \boldsymbol{f}_{i}=\mathcal{A}\left(\left[\Delta \boldsymbol{p}_{i}^{c}, \Delta \boldsymbol{p}_{i}^{1}, \ldots, \Delta \boldsymbol{p}_{i}^{8}, f_{i}^{r}\right]\right) \in \mathbb{R}^{D} fi=A([Δpic,Δpi1,,Δpi8,fir])RD

2.2、Self-attention Encoding

随后将重新编码后的采样点送入多头自注意力层,然后接一个带有残差结构的FFN网络。除了没有位置编码外(在第一步中已经包含了位置信息),这种自注意力编码机制和NLP中的Transofrmer结构几乎一模一样。encoding具体细节略过。

三、Channel-wise Decoding Module

3.1、Standard Decoding

3.2、Channel-wise Re-weighting

3.3、Channel-wise Decoding Module

四、Detect head and Training Targets

将经过编码-解码模块的输出送入两个FFN网络中,预测得到confidence和相对于输入的Proposal的box残差值。
训练过程中confidence的真值被设置为Proposals和对应的gt的3D IoU值。confidence真值计算公式如下:
c t = min ⁡ ( 1 , max ⁡ ( 0 , I o U − α B α F − α B ) ) c^{t}=\min \left(1, \max \left(0, \frac{\mathrm{IoU}-\alpha_{B}}{\alpha_{F}-\alpha_{B}}\right)\right) ct=min(1,max(0,αFαBIoUαB))

box回归值的真值计算如下:
x t = x g − x c d , y t = y g − y c d , z t = z g − z c h c , l t = log ⁡ ( l g l c ) , w t = log ⁡ ( w g w c ) , h t = log ⁡ ( h g h c ) , θ t = θ g − θ c , \begin{aligned} x^{t} & =\frac{x^{g}-x^{c}}{d}, y^{t}=\frac{y^{g}-y^{c}}{d}, z^{t}=\frac{z^{g}-z^{c}}{h^{c}}, \\ l^{t} & =\log \left(\frac{l^{g}}{l^{c}}\right), w^{t}=\log \left(\frac{w^{g}}{w^{c}}\right), h^{t}=\log \left(\frac{h^{g}}{h^{c}}\right), \\ \theta^{t} & =\theta^{g}-\theta^{c}, \end{aligned} xtltθt=dxgxc,yt=dygyc,zt=hczgzc,=log(lclg),wt=log(wcwg),ht=log(hchg),=θgθc,

五、训练losses

CT3D是端到端的训练策略,包括三个损失,分别是RPN损失、confidence损失、box回归损失。
在这里插入图片描述
confidence损失用的是二元交叉墒计算。
在这里插入图片描述
回归损失使用的是Smooth-L1计算,只有 I o U ≥ α R IoU ≥ α_R IoUαR 的Proposal才会用来计算回归损失。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/175488.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Pinctrl子系统和GPIO子系统实验

驱动入口出口函数: static int __init led_init(void) {return 0; } static void __exit led_exit(void) { }module_init(led_init);module_exit(led_exit);MODULE_LICENSE("GPL");字符设备驱动那一套 先创建设备结构体 (cdev) 1…

控制台gbk乱码

引用IntelliJ IDEA中 统一设置编码为utf-8或GBK-CSDN博客 特别注意file coding 的文件path和java的编码格式 配置

Linux 基本语句_12_信号

用途: 信号可以直接进行用户进程与内核进程之间的交互 特性: 对于一个进程,其可以注册或者不注册信号,不注册的信号,进程接受后会按默认功能处理,对于注册后的信号,进程会按自定义处理 自定义…

代码随想录训练营第30天 | 332.重新安排行程、51. N皇后、37. 解数独

332.重新安排行程 题目链接:重新安排行程 解法: 这个题,卡哥的思路会超时。辛辛苦苦看懂了卡哥的思路,结果超时了,直接崩溃。 看了leetcode官方的思路,非常简洁,但是里面的深意还是不太懂。 由…

如何通过信息化为燃气管道提供数据监控、智能的调度和作业技术?

关键词:智慧燃气、燃气监控、智慧管网、智慧燃气管网、智慧燃气管网解决方案、城市燃气管网 在信息化迅猛发展的历史潮流中,如何通过信息化为燃气管道提供更广泛的数据监控、更紧密的数据集成、更智能的调度和作业、更智慧的分析和决策,为安…

01-鸿蒙4.0学习之开发环境搭建 HelloWorld

HarmonyOS开发学习 1.环境配置 1.下载地址 开发工具:DevEco Studio 3.1.1 Release 下载地址 安装选择快捷方式 安装nodejs和Ohpm 安装SDK 选择同意Accept 检测8项目是否安装成功 2.创建项目 —— hello word

C语言第三十五弹---打印九九乘法表

C语言打印九九乘法表 思路&#xff1a;观察每一行可以看出乘号右边的一行值都是相同的&#xff0c;而乘号左边不断变化&#xff0c;所以使用嵌套循环&#xff0c;控制好 乘号左右值变化的条件即可。 #include <stdio.h>int main() {for (int i 1; i < 9; i){for (in…

森林无人机高效解决巡查难题,林区防火掀新篇

山东省某市为了强化森林火灾防范&#xff0c;采用了一项新兴手段——复亚智能无人机森林火情监测系统。这套系统在AI飞行大脑的指挥下&#xff0c;让无人机在空中巡逻&#xff0c;实现了无人机森林防火系统的实施落地。 一、AI大脑如何引领森林无人机高空巡逻&#xff1f; 在山…

C++ :const修饰成员函数

常函数&#xff1a; 常函数&#xff1a; 成员函数后加const后我们称为这个函数为常函数 常函数内不可以修改成员属性 成员属性声明时加关键字mutable后&#xff0c;在常函数中依然可以修改 属性可修改&#xff1a; class Person { public: void showPerson() …

云原生实战课大纲<2>

我们pod的数据挂载文件可以使用 pv-pvc的方式 1. 创建pv池 2. 在pv池中创建pv&#xff0c;并且设置pv的模式 3. 编写pod 写对应的pvc 申请书 就可以了这就是我们k8s中的pv和pvc 基于pv池创建pv的时候会有容量限制呢么关于配置呢&#xff0c;我们以前会有这种场景 比如说在dock…

Java之API(上):Character

一、前言&#xff1a; 我们上次讲到 java.lang.*下的八大包装类&#xff1a; 八大包装类 基本数据类型byteshortintlongfloatdoublecharboolean引用数据类型(对象)ByteShortIntegerLongFloatDoubleCharacterBoolean 之前讲到了比较常用的Integer包装类&#xff0c;但是前面6个包…

文件夹重命名:克服语言障碍,批量将中文文件夹名翻译成英文

随着全球化的不断深入&#xff0c;英语成为了世界上最广泛使用的语言。在日常生活和工作中&#xff0c;可能经常要将中文文件夹名翻译成英文&#xff0c;以便交流或满足特定需求。手动翻译文件夹名不仅耗时&#xff0c;还容易出错。那有什么方法可以快速、准确地批量将中文文件…

RT-DETR算法优化改进:AKConv(可改变核卷积),即插即用的卷积,效果秒杀DSConv | 2023年11月最新发表

💡💡💡本文全网首发独家改进:可改变核卷积(AKConv),赋予卷积核任意数量的参数和任意采样形状,为网络开销和性能之间的权衡提供更丰富的选择,解决具有固定样本形状和正方形的卷积核不能很好地适应不断变化的目标的问题点,效果秒殺DSConv 1)AKConv替代标准卷积进行…

基于可微分渲染器的相机位置优化【PyTorch3D】

在这个教程中&#xff0c;我们将使用可微渲染学习给定参考图像的相机的 [x, y, z] 位置。 我们将首先使用相机的起始位置初始化渲染器。 然后&#xff0c;我们将使用它来生成图像&#xff0c;使用参考图像计算损失&#xff0c;最后通过整个管道进行反向传播以更新相机的位置。…

Django创建基本的app应用并配置URL路径-成功运行服务

开发环境&#xff1a;Pycharm2021 Win11 首先创建虚拟环境: 可参考&#xff1a; Pycharm开发环境下创建python运行的虚拟环境&#xff08;自动执行安装依赖包&#xff09;_pycharm自动下载依赖包_heda3的博客-CSDN博客 1、安装 Django 在虚拟环境下安装pip install django …

从容应对高并发:RabbitMQ与消息限流策略的完美结合

在当今互联网时代&#xff0c;高并发访问已成为许多应用系统面临的常见挑战之一。对于需要处理大量请求的系统来说&#xff0c;如何保证系统的稳定性和可靠性是一个关键问题。RabbitMQ作为一种可靠的消息队列中间件&#xff0c;可以帮助解决高并发环境下的消息处理问题。而结合…

docker基础快速入门:基础命令、网络、docker compose工具

docker基础命令快速入门 目录 docker基本命令docker 网络docker compose Docker介绍 Docker是一个虚拟环境容器&#xff0c;可以将你的开发环境、代码、配置文件等一并打包到这个容器中&#xff0c;并发布和应用到任意平台中。 Docker的三个概念 镜像 Docker镜像是一个特…

自己动手写编译器:golex 和 flex 比较研究 2

上一节我们运行了 gcc 使用的词法解析器&#xff0c;使用它从.l 文件中生成对应的词法解析程序。同时我们用相同的词法规则对 golex 进行测试&#xff0c;发现 golex 同样能实现相同功能&#xff0c;当然这个过程我们也发现了 golex 代码中的不少 bug&#xff0c;本节我们继续对…

【Linux】23、内存超详细介绍

文章目录 零、资料一、内存映射1.1 TLB1.2 多级页表1.3 大页 二、虚拟内存空间分布2.1 用户空间的段2.2 内存分配和回收2.2.1 小对象2.2.2 释放 三、查看内存使用情况3.1 Buffer 和 Cache3.1.1 proc 文件系统3.1.2 案例3.1.2.1 场景 1&#xff1a;磁盘和文件写案例3.1.2.2 场景…

【数据结构】顺序表---C语言版

【数据结构】顺序表 前言&#xff1a;一、线性表二、顺序表1.顺序表的概念及结构&#xff1a;2.顺序表的分类&#xff1a;3.顺序表缺陷&#xff1a; 三、顺序表的代码实现&#xff1a;1.头文件&#xff1a;2.函数文件&#xff1a;3.测试文件&#xff1a; 四、顺序表的相关OJ题&…