基于 Transformation-Equivariant 的自动驾驶 3D 目标检测

论文地址:https://arxiv.org/abs/2211.11962
论文代码:https://github.com/hailanyi/TED

论文背景

三维场景中的物体分布有不同的方向。普通探测器不明确地模拟旋转和反射变换的变化。需要大的网络和广泛的数据增强来进行鲁棒检测。

equivariant networks 通过在多个变换点云上应用共享网络显式地模拟变换变化,显示出在物体几何建模方面的巨大潜力。这种网络计算量大,推理速度慢,难以应用于自动驾驶中的 3D 目标检测。

希望 3D detector 的预测与旋转和反射等变换是一致的。换句话说,当一个目标在输入点中改变它的方向时,该目标被检测到的 box 应该具有相同的形状,但相应地改变它的方向。
然而,大多数基于体素和点的方法都没有对这种变换等价方差进行显式建模,在处理变换后的点云时会产生不可靠的检测结果。

论文提出了 an efficient Transformation-Equivariant 3D Detector(TED

论文相关

3D物体检测

先前的方法将点云转换成2D多视图图像以执行3D目标检测。最近大量的方法采用体素或基于点的检测框架。
通过使用基于体素的稀疏卷积,SECOND、PointPillars、SA-SSD 和 SE-SSD 执行单阶段3D对象检测,而体素-RCNN 和SFD 执行两阶段检测。
通过使用基于点的集合抽象,3DSSD、SASA 和 IA-SSD 执行单阶段检测,而PointRCNN 和 STD 进行两阶段检测。
PVRCNN 和 CT3D 使用基于体素和基于点的操作两者来生成和细化目标 proposal。
一些最近的方法生成伪点云或来自RGB图像的虚拟点,用于基于体素的多模态3D目标检测。

论文扩展了流水线与变换等变性设计,拥有更高的检测精度。

变换等变性建模

目前,已经提出了各种各样的变换(平移、旋转和反射)等变网络。一些基于点的SO(3)和基于体素的SE(3)等变网络被设计用于处理3D数据。一些等变网络被设计用于目标检测和姿态估计。最相近的是专为室内场景设计的EON;但是,它没有考虑效率。
论文的TED主要是为户外场景中的实时目标检测而设计的。

变换等变性和不变性
给定运算f: X → Y X → Y XY 和变换群 G G G,等方差定义为: f [ T g X ( x ) ] = T g Y [ f ( x ) ] , ∀ x ∈ X , ∀ g ∈ G , (1) \tag1 f[T_g^X(x)]=T_g^Y[f(x)],\forall x\in X,\forall g \in G, f[TgX(x)]=TgY[f(x)],xX,gG,(1)其中 T g X T^X_g TgX T g Y T^Y_g TgY 分别指 X X X Y Y Y 空间中的变换操作。当 T g Y T^Y_g TgY 是单位矩阵时,等方差变为不变性。
论文研究了自动驾驶场景中的3D目标检测,其中变换主要发生在道路平面上。
不失一般性,考虑 2D BEV平面上的变换。形式上,认为变换群 G G G 是二维平移群 ( R 2 , + ) (\R^2,+) (R2,+) 和二维旋转反射群 K K K 的半直积 G = ( R 2 , + ) ⋊ K G =(R2,+)\rtimes K G=(R2,+)K。旋转反射群 K K K 由反射群 ( { ± 1 } , ∗ ) (\{±1\},*) ({±1},) 和离散旋转群 O N O_N ON 组成。在反射的情况下,群 K K K 包含角度分辨率 β β β 的角度倍数的 N N N 个离散旋转;因此, K K K 2 N 2N 2N 阶的离散子群。对于输入点云 P P P,论文试图找到具有参数 θ θ θ 的检测器 D θ ( ⋅ ) D^θ(·) Dθ() 来检测 bounding box B B B,满足变换等方差: D θ ( T g ( P ) ) = T g [ D θ ( P ) ] (2) \tag2D^θ(T_g(P))=T_g[D^\theta(P)] Dθ(Tg(P))=Tg[Dθ(P)](2) 其中, T g T_g Tg G G G 的变换操作。

用于3D检测的对象增强

基于“copy-andpaste”的增强(GT-aug)在最近的 3D 目标检测中被广泛使用。LiDAR-Aug 解决了GT-aug中的闭塞问题。通过交换目标的一部分,PA-Aug 和 SE-SSD 创建用于数据增强的不同目标。
与之不同的是,论文通过从附近密集的对象中创建稀疏的训练样本来增强远处对象的检测。

3D 目标检测
给定输入点云 P = { p i } i P = \{p_i\}_i P={pi}i,3D对象检测旨在找到由 3D BBs(Bounding boxs) B = { b i } i B = \{b_i\}_i B={bi}i表示的所有对象。每个框 b i b_i bi 由坐标编码,尺寸和方向。
论文中,从最先进的 Voxel-RCNN 提出了单模态 TED-S 和 多模态 TED-M 3D目标检测器。TED-S和TED-M之间的区别在于,TED-S 仅取 LiDAR 点,而 TED-M 取 LiDAR 点和由深度估计算法生成的 RGB 图像伪点两者。遵循基于区域的检测框架。它包括一个稀疏卷积主干,一个2D区域提议网络(RPN)和一个建议细化分支。

论文内容

论文提出了 TED,它既是变换等价的,又是有效的。
通过一个简单而有效的设计来实现:让 TeSpconv 堆叠多通道变换-等变体素特征,而 TeBEV 池和 Tivoxel 池化将等变特征对齐并聚合到轻量级的 scene-Level 和实例级表示中,以实现高效有效的 3D 目标检测。

在这里插入图片描述

等差变换体素 Backbone

为了有效地将原始点编码为等差变换特征,首先设计了等差变换稀疏卷积(TeSpConv)Backbone。 TeSpConv 由广泛使用的稀疏卷积(SpConv)构造。 与CNNs类似,SpConv 是等差变换的。 然而,SpConv 与旋转和反射并不时等变换的。 因此,通过添加转换通道将 SpConv 扩展到旋转和反射等变:1)转换通道之间权重高度共享;2)输入点的变换拥有不同旋转角度和反射。
形式上,基于 2 N 2N 2N 个变换动作 { T i } i = 1 2 N ⊂ K \{T_i\}_{i=1}^{2N} \sub K {Ti}i=12NK,将点云 P P P 变换为 2 N 2N 2N 个不同点集 { P T i } i = 1 2 N \{P^{T_i}\}_{i=1}^{2N} {PTi}i=12N。 然后将所有点集划分为体素集 { P ^ T i } i = 1 2 N \{\hat P^{T_i}\}_{i=1}^{2N} {P^Ti}i=12N。在每个体素中,原始特征被计算为所有内部点的 point-wise 特征的平均值。 利用共享 SpConv φ ( ⋅ ) φ(·) φ() 将体素 { P ^ T i } i = 1 2 N \{\hat P^{T_i}\}_{i=1}^{2N} {P^Ti}i=12N 编码为等差变换体素 { V T i } i = 1 2 N \{V^{T_i}\}_{i=1}^{2N} {VTi}i=12N V T i = φ ( P ^ T i ) , i = 1 , 2 , . . . , 2 N . (3) \tag 3 V^{T_i} = \varphi (\hat P^{T_i}),i=1,2,...,2N. VTi=φ(P^Ti),i=1,2,...,2N.(3)对于多模态设置,论文使用相同的网络结构对伪点特征进行编码。与常规稀疏卷积编码的体素特征相比,在不同的旋转和反射变换下,特征 { V T i } i = 1 2 N \{V^{T_i}\}_{i=1}^{2N} {VTi}i=12N 包含了不同的特征。

等差变换 BEV Pooling

体素特征 { V T i } i = 1 2 N \{V^{T_i}\}_{i=1}^{2N} {VTi}i=12N 包含大量的变换通道;因此,直接将它们输入RPN将引入大量额外的计算,并需要更大的GPU内存。为了解决这个问题,论文提出了 TeBEV Pooling,通过双线性插值和 max-pooling 将 scene-level 体素特征对齐和聚集成一个紧凑的 BEV map。
在这里插入图片描述
首先将体素特征 { V T i } i = 1 2 N \{V^{T_i}\}_{i=1}^{2N} {VTi}i=12N沿高度维压缩为BEV特征 { E T i } i = 1 2 N \{E^{T_i}\}_{i=1}^{2N} {ETi}i=12N。由于 BEV 特征是在不同的变换下得到的,因此有必要将它们对齐到同一个坐标系中。 首先在 E T 1 E^{T_1} ET1 坐标系中生成一组 scene-level 网格点 X T 1 X^{T_1} XT1。根据变换动作 { T i } i = 1 2 N \{T_i\}_{i=1}^{2N} {Ti}i=12N,将网格点转换到 BEV 坐标系中,生成一组新的网格点 { X T i } i = 1 2 N \{X^{T_i}\}_{i=1}^{2N} {XTi}i=12N。然后,在 BEV map 上应用一系列双线性插值 I ( ⋅ , ⋅ ) \mathcal I(·, ·) I(⋅,⋅),得到一组对齐特征 { A T i } i = 1 2 N \{A^{T_i}\}_{i=1}^{2N} {ATi}i=12N A T i = I ( X T i , E T i ) , i = 1 , 2 , . . . , 2 N . (4) \tag4 A^{T_i} = \mathcal I(X^{T_i}, E^{T_i}),i=1,2,...,2N. ATi=I(XTi,ETi),i=1,2,...,2N.(4)如果 E T 1 E^{T_1} ET1 中的边界像素在 E T 2 , . . . , E T N E^{T_2},...,E^{T_N} ET2,...,ETN 中没有对应的像素,则内插结果将被填充零。
为了提高效率,在 2 N 2N 2N 个对齐特征映射上应用最大池 M ( ⋅ ) \mathcal M(·) M() 来得到一个紧致表示 A ∗ A^* A A ∗ = M ( A T 1 , A T 2 , . . . , A T 2 N ) . (5) \tag5 A^* = \mathcal M(A^{T_1},A^{T_2},...,A^{T_{2N}}). A=M(AT1,AT2,...,AT2N).(5)轻量级特征 A ∗ A^* A 被放入RPN 中,以有效地生成一组目标 proposals B ∗ B^* B.

变换不变体素 Pooling

近年来,许多检测器都采用了兴趣区域(Region of Interest, RoI)池化操作,从 scene-level 变换等变 backbone 特征中提取 instance-level 变换不变特征,用于 proposal refinement。然而,直接应用这样的池化操作从 backbone 中提取特征是不可行的:
1.坐标系 T 1 T_1 T1 中的 proposal B ∗ B^* B 与不同 T i T_i Ti变换的体素特征 { V T i } i = 1 2 N \{V^{T_i}\}_{i=1}^{2N} {VTi}i=12N不对齐。
2.TeSpConv中的体素特征包含多个变换通道,将提取的特征直接送入检测头需要大量的额外计算和GPU内存。
因此,论文提出了 TiVoxel pooling,它通过多网格池和跨网格关注将实例级体素特征对齐并聚合成一个紧凑的特征向量。

多网格 pooling

Proposal B ∗ B^* B 是在 T 1 T_1 T1 坐标系中获得的,而 backbone 特征是在不同的变换下获得的。因此,在池化之前需要进行 proposal 对齐。
首先在坐标系 T 1 T_1 T1 中使用 proposal B ∗ B^* B 生成一组局部网格点,然后根据变换动作 T 2 , . . . , T 2 N {T_2,...,T_{2N}} T2,...,T2N 将网格点变换 到 { A T i } i = 1 2 N \{A^{T_i}\}_{i=1}^{2N} {ATi}i=12N 中的每个通道的坐标系中,最后由变换后的 2 N 2N 2N 组网格点提取变换不变的局部特征。
对于 proposal B ∗ B^* B 基于变换动作 { T i } i = 1 2 N \{{T_i}\}_{i=1}^{2N} {Ti}i=12N,首先生成 2 N 2N 2N 个 instance-level 网格点集合 { X T i } i = 1 2 N \{{ \boldsymbol X^{T_i}}\}_{i=1}^{2N} {XTi}i=12N X T i = { X j T i } j = 1 J ⊂ R 3 { \boldsymbol X^{T_i}} = \{ X_j^{T_i} \}_{j=1}^{J} \sub \R^3 XTi={XjTi}j=1JR3 J J J 表示在每个集合中的网格点数量。通过使用 2 N 2N 2N 各网格点集,论文从 { V T i } i = 1 2 N \{ V^{T_i}\}_{i=1}^{2N} {VTi}i=12N 提取多个 instance-level 特征 { F T i } i = 1 2 N \{\boldsymbol F^{T_i}\}_{i=1}^{2N} {FTi}i=12N
F T i = V S A ( X T i , V T i ) , i = 1 , 2 , . . . , 2 N , (6) \tag6 \boldsymbol F^{T_i} = VSA(\boldsymbol X^{T_i},V^{T_i}),i=1,2,...,2N, FTi=VSA(XTi,VTi),i=1,2,...,2N,(6)其中 VSA 指的是体素集 Abstraction 模块,且 F T i = { F j T i } j = 1 J ⊂ R 1 × C \boldsymbol F^{T_i} = \{ F_j^{T_i}\}_{j=1}^J \sub \R^{1 \times C} FTi={FjTi}j=1JR1×C C C C 为 grid-wise 特征通道数。

Cross-grid attention

{ F T i } i = 1 2 N \{\boldsymbol F^{T_i}\}_{i=1}^{2N} {FTi}i=12N 包含多个 instance-level 特征。为了编码更好的局部几何,论文应用一个 cross-grid attention 操作来进一步将多个特征聚合成一个更紧凑的变换不变特征向量。具体来说,对于第 j j j 个网格点,串联了 2 N 2N 2N 个 grid-wise 特征 F j = c o n c a t ( F j T 1 , … , F j T 2 N ) F_j = concat(F^{T_1}_ j,…, F^{T_{2N}}_j) Fj=concat(FjT1FjT2N) F j ∈ R 2 N × C F_j \in \R^{2N \times C} FjR2N×C。然后有 Q j = F j W q , K j = F j W k , V j = F j W v \boldsymbol Q_j = F_j\boldsymbol W^q,\boldsymbol K_j= F_j \boldsymbol W^k,\boldsymbol V_j= F_j \boldsymbol W^v Qj=FjWqKj=FjWkVj=FjWv,其中 W q , W k , W v \boldsymbol W^q,\boldsymbol W^k,\boldsymbol W^v Wq,Wk,Wv都是线性投影。因此,grid-wise 特征为:
F ^ j = s o f t m a x ( Q j ( K j ) T C ) V j . (7) \tag7 \hat F_j = softmax(\frac{\boldsymbol Q_j(\boldsymbol K_j)^T}{\sqrt{C}})\boldsymbol V_j. F^j=softmax(C Qj(Kj)T)Vj.(7)沿 2 N 2N 2N 平均特征,得到特征 F ^ = { F ^ j } j = 1 J ⊂ R 1 × C \hat {\boldsymbol F} =\{\hat F_j\}^J_{j =1}\sub \R^{1 \times C} F^={F^j}j=1JR1×C。然后,这些特征被扁平化成一个单一的特征向量,以执行类似于 object proposal refinement。

距离感知数据增强

远距离物体的几何形状不完整通常会导致检测性能的巨大下降。为了解决这个问题,论文通过从附近的密集对象创建稀疏训练样本来增加遥远稀疏对象的 geometric knowledge。
一种简单的方法是采用随机采样或最远点采样(FPS)。但是,它破坏了激光雷达扫描到的点云的分布模式。为了解决这个问题,论文提出了一种距离感知采样策略,该策略考虑了激光雷达和场景遮挡的 scanning 机制。
具体来说,给定一个位置为 C g C^g Cg 的近地真值 box,内部点 { P i g } i \{P^g_i\}_i {Pig}i,添加一个随机距离偏移 ∆ α ∆α α,即 C g : = C g + ∆ α C^g:= C^g +∆α Cg:=Cg+α P i g : = P i g + ∆ α P^g_i:= P^g_i +∆α Pig:=Pig+α。然后将 { P i g } i \{P^g_i\}_i {Pig}i 转换为球面坐标系,并根据激光雷达的角度分辨率将它们体素化为球面体素。 在每个体素中,最接近体素中心的点被保留作为采样点。 然后,得到一组采样点,它具有与实际扫描点相似的分布模式。
在这里插入图片描述由于真实场景中由于遮挡导致的数据不完整是很常见的,因此还随机去除一些部分来模拟遮挡。 在训练过程中,类似于GT-AUG,将采样点和 bounding box 添加到训练样本中进行数据扩充。

论文总结

论文提出了一个高性能的三维目标检测器TED。TED将变换等变体素特征编码为紧凑的场景级和实例级表示,用于目标候选生成和精细化。该设计效率高,能更好地学习物体的几何特征。
局限性:
(1)由于输入的变换是离散的和体素化的,TED的设计不是严格的变换等变的。通过使用更多的变换和更小的体素,TED将更接近完全等变,但这带来了更高的计算成本。
(2)考虑到加入更多的变换方式会增加计算成本,没有考虑缩放变换。
(3)与 baseline 相比,TED需要大约2倍的GPU内存。

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

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

相关文章

项目01—基于nignx+keepalived双vip的负载均衡高可用Web集群

文章目录 一.项目介绍1.拓扑图2.详细介绍 二.前期准备1.项目环境2.IP划分 三. 项目步骤1.ansible部署软件环境1.1 安装ansible环境1.2 建立免密通道1.3 批量部署nginx 2.配置NFS服务器和负载均衡器搭建keepalived2.1 修改nginx的index.html界面2.2 nginx实现七层负载均衡2.4 使…

《C++设计模式》——创建型

前言 创建型为了创建东西才是有用的,创建型设计模式使用的场景: 1、创建一个东西; 2、可重复利用; 3、灵活性高,代码可因地制宜。 Factory Method(工厂模式) 工厂模式将目的将创建对象的具体过程屏蔽隔离起来&#…

三维模型3DTile格式轻量化压缩处理工具常用几款软件介绍

三维模型3DTile格式轻量化压缩处理工具常用几款软件介绍 三维模型3DTile格式的轻量化处理旨在减少模型的存储空间和提高渲染性能。以下是一些推荐的工具软件,可以用于实现这个目的: MeshLab:MeshLab是一个开源的三维模型处理软件&#xff0c…

RBTree(红黑树)模拟实现(插入)

目录 红黑树的性质 红黑树的模拟插入 叔叔存在且为红色 叔叔不存在 旋转情况​​​​​​​ 叔叔存在且为黑色 总结 插入实现 节点 插入逻辑 左单旋 右单旋 红黑树是一颗平衡搜索二叉树,但是红黑树并不像 AVL 树一样是高度平衡二叉树,任意一…

自动化运维——ansible (五十二) (01)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 一、概述 1.1 为什么要用自动化运维软件 1.2 自动化运维 1.3 自动化运维要注意的方面 1.4 自动化运维主要关注的方面 1.5 常见的开源自动化运维软件 1.6 自动化运维软件…

华为OD机试 - 单词接龙 - 数据结构map、list (Java 2023 B卷 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、输入示例1、输入:2、输出3、说明 五、解题思路1、核心思想:2、核心算法是构建一个map: 六、Java算法源码七、效果展示1、输入2、输出3、说明4、没有移除后再次拼接的情况,改…

Vue中实现3D得球自动旋转

具体实现 安装echarts 在终端下安装echarts npm install -D echarts 安装echarts-gl 在终端下安装echarts-gl npm install -D echarts-gl earth3D组件 earth3D.vue <template><div class"globe3d-earth-container" ><div class"globe3d-earth&qu…

CK_Label-V23货架标签(电池版本)接口文档

查询标签信息接口 接口类型&#xff1a;POST, 参数格式&#xff1a;json array 链接形式&#xff1a; http://localhost/wms/associate/getTagsMsg 代码形式&#xff1a; { url : http://localhost/wms/associate/getTagsMsg, requestMethed : GET, requestParameter :…

AKF拆分原则

在分布式软件环境下&#xff0c;为了保障分布式架构的可靠性、可扩展、高性能&#xff0c;通常会通过集群、扩容、数据分治等思想来实现&#xff0c;比如很多中间件的使用Redis、ZK、Kafka等&#xff0c;都可以通过这种设计思想来提高系统架构吞吐量。AKF是一个系统化的拓展思想…

苹果电脑快捷键集合

苹果电脑Windows系统下的ALT键是组合键。苹果电脑键盘左下角的Fnoption是Windows的alt键。同时按下两个键是ALT键的功能。在非组合状态下&#xff0c;单独按Option键。 补充&#xff1a; 1. 按controlalt&#xff08;选项&#xff09;delete 启动任务管理器。 2. Option-Del…

Mysql数据库之常用SQL语句及事务学习总结

数据库介绍 几个常见的缩写&#xff1a; DB&#xff1a;数据库。全称&#xff1a;DataBase。DBMS&#xff1a;数据库管理系统。全称&#xff1a;DataBase Management System。DBS&#xff1a;数据库系统。全称&#xff1a;DataBase System。DBA&#xff1a;数据库管理员。全称…

初识Nacos

前言 Nacos是一个用于微服务架构下的服务发现和配置管理以及服务管理的综合解决方案&#xff08;官网介绍&#xff09;&#xff0c;这里的服务发现其实就是注册中心&#xff0c;配置管理就是配置中心&#xff0c;而服务管理是二者的综合&#xff1b; Nacos特性 1.服务发现与…

什么是Linux

什么是Linux&#xff1f; 不知道大家是什么时候开始接触Linux&#xff0c;我记得我是大三的时候&#xff0c;那时候通过国嵌、韦东山的教学视频&#xff0c;跟着搭bootloader&#xff0c;修改内核&#xff0c;制作根文件系统&#xff0c;一步步&#xff0c;视频真的很简单&…

两性养生网站源码 生活类减肥网站源码 健康网模板源码 支持QQ登录和百度主动推送

本套模板非常适合生活类&#xff0c;两性类&#xff0c;减肥类等等类型的网站&#xff0c;这类型网站比较好做流量&#xff0c;因为客户群体众多&#xff0c; 可以自行改内容为其他类型网站模板总体非常简洁漂亮&#xff0c;配色合理&#xff0c;视觉舒服&#xff0c;并且配合…

HarmonyOS实现几种常见图片点击效果

一. 样例介绍 HarmonyOS提供了常用的图片、图片帧动画播放器组件&#xff0c;开发者可以根据实际场景和开发需求&#xff0c;实现不同的界面交互效果&#xff0c;包括&#xff1a;点击阴影效果、点击切换状态、点击动画效果、点击切换动效。 相关概念 image组件&#xff1a;图片…

IP175LLF基本参数和引脚图

特性 宽工作温度范围IP175LLF(0C至70C) IP175LLFI(-40C至85C)内置5个MAC和4个PHY 每个端口可配置为10base-t、100Base-TX 最多2K个MAC地址支持自极性10Mbps 汽车MDI-MDIX 支持1个MII/RMII端口Layer2-4多字段分类器 支持8-MultiField输入支持交通政策支持多字段过滤器 支…

静态链表处理

静态链表是指使用数组来表示节点。在C中&#xff0c;可以使用数组来创建静态列表&#xff0c;其中每个元素都有固定的位置和索引。可以通过下标寻址的方式来访问和操作列表中的元素。 单向列表&#xff1a; struct linkednode{int data;int next; }node[N]; 双向链表&#x…

K8S1.23.6版本详细安装教程以及错误解决方案(包括前置环境,使用部署工具kubeadm来引导集群)

准备工作&#xff08;来自官方文档&#xff09; 一台兼容的 Linux 主机。Kubernetes 项目为基于 Debian 和 Red Hat 的 Linux 发行版以及一些不提供包管理器的发行版提供通用的指令。每台机器 2 GB 或更多的 RAM&#xff08;如果少于这个数字将会影响你应用的运行内存&#xf…

HJ23 删除字符串中出现次数最少的字符

描述 实现删除字符串中出现次数最少的字符&#xff0c;若出现次数最少的字符有多个&#xff0c;则把出现次数最少的字符都删除。输出删除这些单词后的字符串&#xff0c;字符串中其它字符保持原来的顺序。 数据范围&#xff1a;输入的字符串长度满足 1≤n≤20 &#xff0c;保…

vue使用wangEditor

vue版本2.0&#xff1b;editor5.1.23版本&#xff1b;editor-for-vue&#xff1a;1.0.2版本 api文档入口 效果图 点击查看如何封装 安装步骤入口 npm install wangeditor/editor --savenpm install wangeditor/editor-for-vue --save代码&#xff08;未封装过的&#xff09;…