LoGoNet:基于局部到全局跨模态融合的精确 3D 目标检测
论文地址:https://arxiv.org/abs/2303.03595
论文代码:https://github.com/sankin97/LoGoNet
论文背景
激光雷达传感器点云通常是稀疏的,无法提供足够的上下文来区分远处的区域,从而造成性能次优。
激光雷达-摄像机融合方法在三维目标检测中表现出了良好的性能。目前先进的多模态方法主要进行全局融合,即在整个场景中融合图像特征和点云特征。这样的实践缺乏细粒度的区域级信息,从而产生了次优的融合性能。
为了解决上述问题,论文提出了一种新的局部到全局的融合网络,称为 LoGoNet,它在全局和局部两个层次上进行激光雷达-相机的融合。
LoGoNet 由全局融合(GoF)、局部融合(LoF)和特征动态聚合(FDA)三个新的组件组成。
相关工作
基于图像的 3D 目标检测
由于摄像机比激光雷达传感器便宜得多,许多研究人员致力于通过将图像作为唯一的输入信号来进行3D物体检测。 对于基于图像的 3D 目标检测,由于深度信息不能直接从图像中获得,一些工作首先进行深度估计以生成伪激光雷达表示或将2D特征提升到三维空间,然后在三维空间中进行目标检测。最近,一些工作引入了基于 transformer 的体系结构来利用检测 pipeline 中的3D对象查询和3D-2D对应。 由于从图像中准确估计深度信息极其困难,因此基于图像的方法的性能仍然不如基于激光雷达的方法。
基于雷达的 3D 目标检测
根据所使用的点云表示的类型,当前基于 Lidar 的方法大致可以分为三类:基于点的方法、基于体素的方法和基于点体素的融合方法。基于点的方法直接以原始点云作为输入,利用多层感知器层提取点特征;基于体素的方法倾向于将点云转化为体素,并利用3D稀疏卷积层提取体素特征。最近的一些工作引入了 transformer 来捕捉体素之间的 long-range 关系。点-体素融合方法利用基于体素和基于点的 backbones 从点云的不同表示中提取特征。
多模态 3D 目标检测
多模态融合技术综合了图像和点云的优点, AVOD、MV3D 和 F-Pointnet 是具有开创性的 proposal-level 融合工作,它们独立地进行两个模态的特征提取,并通过二维和三维感兴趣区域直接简单地连接多模态特征。 Clocs 直接组合来自预先训练的二维和三维检测器的检测结果,而不集成特征 。它们在跨模态融合中保持了实例语义的一致性,特征聚合和交互都比较粗糙。 因此,通过交叉融合增强点云特征得到了越来越多的关注。 Point decoration 方法、用从预先训练的分割网络中提取的语义分数或图像特征来增强每个激光雷达点。 3D-CVF 和 EPNET 探索了用学习的校准矩阵进行交叉特征融合。 最近的一些研究以同样的方式探索了基于视图变换的共享表示空间中的全局融合。 这些方法在利用点云的空间 clues 方面效果较差,而且可能会影响摄像机 BEV 表示和跨模态对齐的质量。 此外,许多并行方法引入交叉关注模块,通过学习的偏移矩阵自适应地对齐和融合点云特征和图像特征。
论文框架
LogoNet 的输入点云和多相机图像分别为为 P = { ( x i , y i , z i ) ∣ f i } i = 1 N P=\{ (x_i,y_i,z_i) | f_i \}_{i=1}^{N} P={(xi,yi,zi)∣fi}i=1N 和 来自 T T T个相机的 I = { I j ∈ R H I × W I × 3 } j = 1 T I = \{I_j \in \R^{H_I \times W_I \times 3}\}_{j=1}^T I={Ij∈RHI×WI×3}j=1T。其中 ( x i , y i , z i ) (x_i,y_i,z_i) (xi,yi,zi) 是第 i i i 个点的空间坐标, f i ∈ R C p f_i \in \R^{C_p} fi∈RCp 是包含每个点的强度或延伸的附加特征, N N N 是点云中的点数, H I H_I HI 和 W I W_I WI 是输入图像的高度和宽度。对于点云分支,在给定输入点云的情况下,使用基于3D体素的 backbone 生成 1 × , 2 × , 4 × 1×,2 ×, 4× 1×,2×,4× 和 8 × 8× 8× 下采样体素特征 F V ∈ R X × Y × Z × C V F_V∈\R^{X×Y×Z×C_V} FV∈RX×Y×Z×CV,其中 C V C_V CV 为每个体素特征的通道数, ( X , Y , Z ) (X, Y, Z) (X,Y,Z) 为每个体素层的网格大小。然后,从提取的分层体素特征中使用一个区域提议网络(RPN)来产生初始的 bounding box proposal B = { B 1 , B 2 , . . . , B n } B = \{ B_1,B_2,...,B_n \} B={B1,B2,...,Bn}。对于图像分支,利用二维检测器对原始多摄像机图像进行处理,得到稠密语义图像特征 F I ∈ R H I 4 × W I 4 × C I F_I∈\R^{\frac{H_I}{4}×\frac{W_I}{4}×C_I} FI∈R4HI×4WI×CI,其中 C I C_I CI 为图像特征的通道数。最后,将局部到全局的交叉模态融合应用到两阶段 refinement 中,其中多级体素特征 F V F_V FV、图像特征 F I F_I FI 和从原始点云中提取的局部位置信息自适应融合。LogoNet(local-to-global)融合方法主要包括全局融合(GoF)、局部融合(LoF)和特征动态聚合模块(FDA)。
全局融合模块
以往的全局融合方法通常使用体素中心来表示每个体素特征的位置。然而,这样的做法不可避免地忽略了每个体素内点的实际分布。 如 KPConv 和 PDV 所观察到的,体素点中心更接近物体的扫描表面。 它们更有效地为大尺度点云提供原始几何形状信息和尺度。因此,论文设计了质心动态融合(CDF)模块,以在全局体素特征空间中自适应地融合点云特征和图像特征。利用这些体素点质心来表示非空体素特征的空间位置。这些体素特征及其相关的图像特征通过可变形交叉注意力模块自适应融合,如图所示。给定非空体素特征集合 F V = { V i , f V i } i = 1 N V F_V =\{V_i,f_{V_i}\}^{N_V}_{i=1} FV={Vi,fVi}i=1NV和图像特征 F I F_I FI,其中 V i V_i Vi 为体素索引, f V i ∈ R C V f_{Vi}∈\R^{C_V} fVi∈RCV 为非空体素特征向量, N V N_V NV为非空体素的数量。通过在同一体素 V i V_i Vi 中对所有点的空间位置求平均,得到每个体素特征 f V i f_{V_i} fVi 的点质心 c i c_i ci: c i = 1 ∣ P ( V i ) ∣ ∑ p i ∈ P ( V i ) p i , (1) \tag1 c_i = \frac{1}{|\mathcal P(V_i)|} \sum_{p_i \in \mathcal P(V_i)}p_i, ci=∣P(Vi)∣1pi∈P(Vi)∑pi,(1) 其中 p i = ( x i , y i , z i ) p_i =(x_i,y_i,z_i) pi=(xi,yi,zi) 是空间坐标, ∣ P ( V i ) ∣ |\mathcal P(V_i)| ∣P(Vi)∣ 是体素 V i V_i Vi 内的点数。接下来,为每个计算的体素点质心分配一个体素网格索引,并通过哈希表匹配相关的体素特征。然后,利用摄像机投影矩阵 M \mathcal M M,从每个计算的体素点质心 c i c_i ci 计算出图像平面上的参考点 p i \boldsymbol {p_i} pi: p i = M ⋅ c i , (2) \tag 2 \boldsymbol {p_i} = \mathcal M \cdot c_i, pi=M⋅ci,(2)式中 M \mathcal M M为相机内参矩阵与外参矩阵的乘积,运算 ⋅ · ⋅ 为矩阵乘法。在参考点的基础上,对参考点周围的一组图像特征 F I k F^k_I FIk 进行加权,生成聚合图像特征 F ^ I i \hat F_{I}^i F^Ii ,该集合将学习到的偏移量应用于图像特征 F I F_I FI。 将每个体素特征表示为查询 Q i Q_i Qi,将采样特征 F ^ I i \hat F_I^i F^Ii 表示为键 K K K 和值 V V V。 整个质心动态融合过程表述为: F I k = F I ( p i + Δ p m i k ) , CDF ( Q i , F ^ I i ) = ∑ m = 1 M W M [ ∑ k = 1 K A m i k ⋅ ( W m ′ F I k ) ] , (3) \tag3 F_I^k = F_I(\boldsymbol p_i + \Delta \boldsymbol p_{mik}),\\\text{CDF}(Q_i,\hat F_I^i) = \sum_{m=1}^{M} W_M [\sum_{k=1}^{K}A_{mik}\cdot (W_m^{'}F_I^k)], FIk=FI(pi+Δpmik),CDF(Qi,F^Ii)=m=1∑MWM[k=1∑KAmik⋅(Wm′FIk)],(3)其中, W m W_m Wm 和 W m ′ W_m^{'} Wm′为可学习权值, M M M 为自注意头的个数, K K K 为总采样点数。 Δ p m i k \Delta p_{mik} Δpmik 和 A m i k A_{mik} Amik 分别表示第 m m m 个注意头中第 k k k 个采样点的采样偏移量和注意权重。它们都是通过在查询特征 Q i Q_i Qi 上的线性投影得到的。 将图像增强后的体素特征与原始体素特征进行级联,得到融合体素特征 F ^ V ∗ ∈ R N × 2 C V \hat F^*_V∈\R^{N×2C_V} F^V∗∈RN×2CV。 然后,在 F ^ V ∗ \hat F^*_V F^V∗ 上采用一个 FFN 来减少通道的数量,并从CDF模块获得最终的融合特征 F ^ V ∗ ∈ R N × C V \hat F^*_V∈\R^{N×C_V} F^V∗∈RN×CV,其中FFN表示一个前馈网络。最后,在 F ^ V ∗ \hat F^*_V F^V∗ 上执行 ROI pooling,以生成 proposal 特征 F B g F^g_B FBg 用于后续的 proposal refinement。
局部融合模块
为了在多模态融合过程中提供更多的局部和细粒度几何信息,提出了网格点动态融合(GDF)局部融合(LOF)模块,在 proposal 层动态融合点云特征和图像特征。给定每个 bounding box proposal B i B_i Bi,将其划分为 u × u × u u×u×u u×u×u 的规则体素网格 G j G_j Gj,其中 j j j 索引体素网格。 取中心点 z j z_j zj 作为对应体素网格 G j G_j Gj 的网格点。 首先,使用位置信息编码器(PIE)对相关的位置信息进行编码,并为每个 bounding box proposal 生成每个网格特征 F G j F^j_G FGj。 对每个 proposal 的网格进行 PIE 处理,得到局部网格感兴趣区域特征 F B p = { F G 1 , F G 1 , . . . , F G u 3 } F^p_B =\{F^1_G,F^1_G,...,F^{u^3}_G\} FBp={FG1,FG1,...,FGu3}。 每个网格特征 F G j F^j_G FGj 的 PIE计算如下: F G j = MLP ( γ , c B , log ( ∣ N G j ∣ + τ ) ) (4) \tag4 F^j_G = \text{MLP}(\gamma,c_B,\log(|N_{G_j}|+\tau)) FGj=MLP(γ,cB,log(∣NGj∣+τ))(4) 其中 γ = z j − c B γ=z_j-c_B γ=zj−cB 是每个网格与 bounding box proposla 质心 c B c_B cB 的相对位置, ∣ N G j ∣ |N_{G_j}| ∣NGj∣ 是每个体素网格 G j G_j Gj 中的点数, τ τ τ 是一个恒定的偏移量。 每个网格中的这些信息为在 region proposals 中构建细粒度跨模态融合提供了基础。 除了利用原始点云在每个体素网格中的位置信息外,论文还提出了网格动态融合(GDF)模块,使模型能够利用这些编码的局部ROI 网格特征 F B p F^p_B FBp 自适应地吸收相关的图像特征到局部 proposals 中。 然后,将网格点 G G G 的每个中心点 z j z_j zj 投影到类似于 GoF 模块的多视点图像平面上,并为每个 box proposal 获得若干个参考点 O ∈ R u 3 O∈\R^{u^3} O∈Ru3,对图像特征进行局部多模态特征融合。 利用交叉注意将局部采样图像特征与编码后的局部 ROI 网格特征 F B p F_B^p FBp 融合,查询特征 Q Q Q 是由 ROI 网格特征 F B p F_B^p FBp 与编码后的局部原始点云位置信息生成的、key 和 value 特征 K、V 是由参考点采样的图像特征 F I F_I FI 及其动态偏移量生成的,其操作与公式(3)相同。然后,将图像增强后的局部网格特征与原始的局部网格特征进行拼接,得到融合的网格特征 F ^ B l \hat F^l_B F^Bl。最后,在 F ^ B l \hat F^l_B F^Bl 上采用FFN算法减少通道数,得到融合后的ROI网格特征 F B l F^l_B FBl。
特征动态聚合模块
在LOF、GOF和PIE模之后,得到了三种特征,即 F B p F^p_B FBp、 F B l F^l_ B FBl 和 F B g F^g_B FBg。 这些特征是独立产生的,信息交互性和聚合性较差。因此,论文提出了特征动态聚合(FDA)模块,该模块引入了自注意来自适应地建立不同网格点之间的关系。首先得到每个 bounding box proposal 中所有编码网格点的聚合特征 F S F_S FS 为: F S = F B p + F B l + F B g (5) \tag5 F_S=F_B^p+F_B^l+F_B^g FS=FBp+FBl+FBg(5)然后,引入自注意模块,构建非空网格点特征与标准 transformer 编码器层和残差连接块(RCB)之间的交互。
训练的 Loss 函数
在LoGoNet中,图像分支的权值被冻结,只训练LiDAR分支。总体训练损失 L \mathcal L L 包括RPN损失 L R P N \mathcal L_{RPN} LRPN、置信度预测损失 L c o n f \mathcal L_{conf} Lconf 和 box 回归损失 L r e g \mathcal L_{reg} Lreg: L = L R P N + L c o n f + α L r e g (6) \tag6 \mathcal L = \mathcal L_{RPN}+\mathcal L_{conf}+ \alpha \mathcal L_{reg} L=LRPN+Lconf+αLreg(6)其中 α α α 是平衡不同损耗的超参数,在论文的实验中设为1。 我们遵循 voxel r-cnn 中的训练设置来优化整个网络。
论文总结
论文提出了一种新颖的多模态网络LoGoNet,通过局部到全局的跨模态特征融合,将点云特征与图像特征深度融合,为准确检测提供了更丰富的信息。在 WOD 和 KITTI 数据集上进行了大量实验,LoGoNet 超过了以前的方法,并在 Waymo 3D 检测排行榜上获得了第一名。结果表明,该框架具有很强的有效性和通用性。
相关文章:

LoGoNet:基于局部到全局跨模态融合的精确 3D 目标检测
论文地址:https://arxiv.org/abs/2303.03595 论文代码:https://github.com/sankin97/LoGoNet 论文背景 激光雷达传感器点云通常是稀疏的,无法提供足够的上下文来区分远处的区域,从而造成性能次优。 激光雷达-摄像机融合方法在三…...
Python 多线程、线程池、进程池
线程间的通讯机制 消息队列 event 事件对象 当线程创建完成之后,并不会马上执行线程,而是等待某一事件发生,线程才会启动 import threading# # 创建 event 对象 # event threading.Event() # # 重置代码中的 event 对象,使得所…...

深入浅出了解华为端到端交付流程的概念和5个关键点
如果您或您所在的组织在学习和研究华为,那么对“端到端”这个词语就一点都不陌生。 今天华研荟带着您了解华为端到端的交付流程的思想和一些做法,如果了解了这个,那么对于华为在其他领域提出的端到端要求或做法就一通百通了。 一、什么是端…...

[Linux]进程信号
[Linux]进程信号 文章目录 [Linux]进程信号进程信号的定义信号的特点信号的生命过程发送信号的原理进程处理信号的方式分类使用指令查看Linux系统定义的信号信号产生使用终端按键产生信号使用指令向进程发送信号调用系统调用向进程发送信号由软件条件产生信号硬件异常产生信号 …...

PostgreSQL 数据类型
文章目录 PostgreSQL数据类型说明PostgreSQL数据类型使用单引号和双引号数据类型转换布尔类型数值类型整型浮点型序列数值的常见操作 字符串类型日期类型枚举类型IP类型JSON&JSONB类型复合类型数组类型 PostgreSQL数据类型说明 PGSQL支持的类型特别丰富,大多数…...

智慧港口4G+UWB+GPS/北斗RTK人员定位系统解决方案
港口人员定位系统能够帮助企业实现对港口作业人员的全面监控和管理,不仅可以保障人员的人身安全,还可以提高人员的作业效率,为港口的可持续发展提供有力保障。接下来为大家分享智慧港口人员定位系统解决方案。 方案背景 1、港口作业人员多&a…...

实时时钟和日历电路芯片MS85163/MS85163M
MS85163/MS85163M 是一款 CMOS 实时时钟 (RTC) 和 日历电路,针对低功耗进行了优化,内置了可编程的时钟输出、中断输出和低电压检测器。所有寄存器地址和数据都通过两线双向I 2 C 总线进行串行传输,最大总线传输速度为 400kbit/s 。采用SOP8…...

【Java从入门到精通】这也许就是Java火热的原因吧!
前言:Java是一种高级的、面向对象的、可跨平台的程序设计语言。Java根据技术类别可划分为以下几类:JavaSE(Standard Edition,标准版):支持面向桌面、嵌入式和移动设备的应用程序开发;JavaEE&…...

zTasker—简洁易用强大的定时热键一体自动化工具,效率倍增器
软件名称 zTasker 应用平台 PC Windows7及以上 一句简介 市面上定时类软件很多,但无一例外功能都很单一,要完成不同的任务,需要不同的软件 市面上的热键软件,要么功能少,要么像是AutoHotKey这样对于一般用户太专业…...

惊艳时装界!AIGC风暴来袭,从设计到生产的全新体验
时尚是一个不断演进的领域,充满创新和独创性,但现在,创新迈入了一个崭新的境界——人工智能生成内容(AIGC)。这个革命性的技术,改变了时装设计的游戏规则。在过去的几年里,人工智能已经深刻地改…...

element -ui table表格内容无限滚动 使用插件vue-seamless-scroll
使用插件 一、安装组件依赖 npm install vue-seamless-scroll 二、引入组件 import vueSeamlessScroll from "vue-seamless-scroll"; components: { vueSeamlessScroll }, <div class"table-list "><vue-seamless-scroll :class-option"…...

如何在windows环境下编译T
一, 安装MYSYS2 1. 去https://www.msys2.org下载 msys2-x86_64-xxxxx.exe; 2. 按照msys2.org主页提示的步骤安装; 3.安装完默认起来的是 UCRT的, 可以根据环境的需要选择, 我选择的 MSYS2 MINGW64 4. 搭建编译环境, 安装对应的软…...

USB接口针式打印机
1 针式打印机原理 - 针式打印机16针是纵向排列,每次打印垂直的16bit,然后右移一bit,继续下列打印;字节的MSB表示最上面的点,字节LSB表示最下面的点 - 由于汉字字模的点阵是横向排列的,而提供给打印头的信息…...

外贸建站教程步骤有哪些?独立站怎么搭建?
推荐的外贸建站教程?制作国际贸易网站的流程? 对于那些希望将产品或服务推向全球市场的企业来说,建立一个专业、具有吸引力的网站是至关重要的。下面115SHOP将介绍外贸建站教程的关键步骤,帮助您更好地了解如何在国际市场上建立您…...

useGetState自定义hooks解决useState 异步回调获取不到最新值
setState 的两种传参方式 1、直接传入新值 setState(options); const [state, setState] useState(0); setState(state 1); 2、传入回调函数 setState(callBack); const [state, setState] useState(0); setState((prevState) > prevState 1); // prevState 是改变之…...

input子系统框架、外设驱动开发
一、input子系统基本框架 Linux内核为了两个目的: 简化纯输入类外设(如:键盘、鼠标、游戏杆、轨迹球、触摸屏。。。等等)的驱动开发统一输入类外设产生的数据格式(struct input_event),更加方…...

Google Chrome 浏览器以全屏模式打开
目录 前言以全屏模式打开禁止弹出无法更新的提示窗禁止翻译网页Chrome设置禁止翻译网页可能1可能2可能3 网页添加指令禁止Chrome翻译网页 禁用脚本气泡浏览器解决办法html解决办法方法1:鼠标滑过超链接时,使状态栏不出现超链接方法2:方法3&am…...
安装torch113、cuda116并运行demo【Transformer】
文章目录 01. 导读02. 显卡驱动版本03. 创建环境、下载安装必要包04. 运行参考代码: 01. 导读 安装torch113、cuda116并运行demo【Transformer】 02. 显卡驱动版本 C:\Users\Administrator>nvidia-smi -l 10 Wed Sep 13 23:35:08 2023 ----------------------…...

基于scRNA-seq的GRN分析三阴性乳腺癌的肿瘤异质性
三阴性乳腺癌即TNBC是一种肿瘤异质性高的乳腺癌亚型。最近的研究表明,TNBC患者可能包含具有不同分子亚型的细胞。此外,基于scRNA-seq数据构建的GRN已经证明了对关键调控因子研究的重要性。作者使用scRNA-seq对TNBC患者的GRN进行了全面分析。从scRNA-seq数…...
Python:二进制文件实现等间隔取相同数据量并合并
举例:每3byte为一页,每3页为一wl。将所有wl的第一页/第二页/第三页分别合并为一个文件。 data b\x01\x02\x03\x04\x05\x06\x07\x08\x09\x01\x02\x03\x04\x05\x06\x07\x08\x09\x01\x02\x03\x04\x05\x06\x07\x08\x09\x01\x02\x03\x04\x05\x06\x07\x08\x0…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...

Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...

AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...

JVM 内存结构 详解
内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 每个线程都有一个程序计数…...

群晖NAS如何在虚拟机创建飞牛NAS
套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...

系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文通过代码驱动的方式,系统讲解PyTorch核心概念和实战技巧,涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...

Unity中的transform.up
2025年6月8日,周日下午 在Unity中,transform.up是Transform组件的一个属性,表示游戏对象在世界空间中的“上”方向(Y轴正方向),且会随对象旋转动态变化。以下是关键点解析: 基本定义 transfor…...