【单目3D目标检测】MonoGround论文精读与代码解析

news2024/11/27 10:29:22

文章目录

  • Preface
  • Abstract
  • Contributions
  • Problem Definition
  • Ground Plane Prior
    • In Paper
    • In Code
  • Pipeline
    • In Pape
    • In Code
  • Depth-Align Training
    • In Paper
    • In Code
  • Two-stage Depth Inference
    • In Paper
    • In Code

Preface

Qin Z, Li X. MonoGround: Detecting Monocular 3D Objects From the Ground[C]. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2022: 3793-3802.
Paper
Code

Abstract

从单幅二维图像中获取三维信息本质上比较困难,主要有以下三点原因:

  • 一对多的映射关系:从2D到3D的映射是一个不适定(ill-posed)的问题,因为2D图像平面中的一个位置对应于所有共线的3D位置,这些位置存在于从相机中心到2D位置的射线中。如下图中(a)所示,这种一对多的特性使得预测物体的深度非常困难
  • 深度在图片中的表达与物体的实际高度有关:对于两个深度和位置相同的物体,如果高度不同,则在相机平面的投影中心会不同,如下图(b)所示,这样,深度的学习就必须克服对象不相关属性的干扰
  • (以上两点在实际中真的需要考虑嘛?)
  • 基于CenterNet的单目3D目标检测算法,物体的所有信息(包括深度)用一个点来表示,那么在训练过程中,对深度的监督是非常稀疏的,导致深度估计的学习不足(假设一个图像中有两辆车,那么深度图上只有两个点会被训练,而深度图上的所有其他点都被忽略)

 

Contributions

针对上述问题,本文提出在单目3D目标检测任务之前引入地平面先验(Ground Plane Prior)。在地平面先验的情况下,病态的2D到3D映射成为一个具有唯一解的适定问题。唯一解由相机射线与地平面的交点决定。深度表达不再与物体高度相关,如图2所示

本工作的主要贡献可以概括如下:

  • 提出在单目3D目标检测之前引入地平面,可以缓解ill-posed映射,消除深度的不相关关系,同时提供密集的深度监督,而不需要任何额外的数据,如LiDAR、立体和深度图像
  • 提出了一种深度对齐训练策略,以有效地学习和预测密集接地深度
  • 同时,利用稠密预测深度,提出了两阶段深度推断方法,实现了更细粒度的深度估计

单目3D目标检测中的地平面先验:

  • 地平面知识在单目3D目标检测中已经有过多次尝试。Mono3D首先尝试使用地平面来生成3D边界框建议,Ground-Aware在几何映射中引入了地平面,并提出了一个接地感知卷积模块来增强检测。在上述工作中,地平面是根据一个固定的规则定义的,例如KITTI上的摄像机高度为1.65米。这样,三维空间中固定高度为-1.65米的所有位置都将构成地平面
  • 但是本文则提出了一个可学习地平面先验,它基于一个更合理的假设,即物体应该躺在地面上。只要物体在地面上,地平面可以用物体的三维边界框底面代替。这样,所提出的地平面先验于物体的底面

单目3D目标检测中的深度估计:

  • 纯单目3D目标检测中主流的深度估计方法有两种,分别是直接回归方法和基于针孔成像模型的几何投影方法,此外,MonoFlex通过对角成对关键点的几何深度的平均值将几何深度扩展到对角关键点深度。同时,许多研究在深度估计的同时采用了不确定性,得到了较好的结果
  • 本文则在地平面先验的帮助下,提出了一种不同于上述方法的新的深度估计方法。它是一种两阶段深度推理方法,可以得到比几何深度更精确的深度估计。此外,所提出的深度估计还可以采用不确定性和对角成对关键点的扩展
     

Problem Definition

单目3D目标检测任务是从单目RGB图像中检测出3D目标(ill-posed)。除了RGB图像,还可以采用标定信息(即摄像机参数矩阵)。具体来说,对于每个物体,都需要:

  • 三维位置 ( x , y , z ) (x, y, z) (x,y,z)
  • 大小 ( h , w , l ) (h, w, l) (h,w,l)
  • 方向 θ θ θ,在KITTI数据集上,俯仰角和横摇角被视为零,因此只考虑偏航角 θ θ θ
    与上述目标相对应,主流方法将整个任务划分为4个子任务,分别是2D位置(根据投影公式计算出3D位置)、深度、大小和方向估计任务。而深度估计是单眼三维目标检测的关键瓶颈,本文的工作专注于精确的深度估计
     

Ground Plane Prior

通过3D框的标注信息,来获取密集的地平面表示
整个流程如下:

  1. 首先利用物体的标注坐标信息,获取底面四个角点的坐标
  2. 利用底面四个角点的坐标,在地面随机采样,获得地面的随机采样点 P 3 d P_{3d} P3d(此时为3D坐标)
  3. 将地面的随机采样点坐标,转换为2D图像坐标

In Paper

为了定义地平面,本文从一个合理的假设开始,即物体位于地面上。这个假设适用于所有常见的物体,如汽车、行人和骑自行车的人。在此假设下,可以用物体三维边界框的底面代替地平面。对于每个对象,我们首先获得3D空间中的底部键点 k 1 、 k 2 、 k 3 k_1、k_2、k_3 k1k2k3 k 4 k_4 k4。然后对由底部关键点组成的三维底面进行随机采样和插值。将 R ∈ R N × 2 R \in \mathbb{R}^{N \times 2} RRN×2表示为每个元素为 R i , j ∈ [ 0 , 1 ] R_{i, j}∈[0,1] Ri,j[0,1]的随机矩阵。 N N N是采样点的个数,采样的密集点可表示为:
P 3 d = R [ k 2 − k 1 k 4 − k 1 ] + k 1 P_{3 d}=R\left[\begin{array}{l} k_2-k_1 \\ k_4-k_1 \end{array}\right]+k_1 P3d=R[k2k1k4k1]+k1
其中 P 3 d ∈ R N × 3 P_{3d}∈\mathbb{R}^{N \times 3} P3dRN×3包含所有采样点。假设 K 3 × 3 K_{3×3} K3×3为摄像机参数矩阵。采样后将这些点投影回图像空间:
P 2 d T = K 3 × 3 P 3 d T P_{2 d}^T=K_{3 \times 3} P_{3 d}^T P2dT=K3×3P3dT
其中 P 2 d ∈ R N × 3 P_{2d}∈\mathbb{R}^{N \times 3} P2dRN×3 P 2 d P_{2d} P2d的第 i i i行 为 [ u i ⋅ z i , v i ⋅ z i , z i ] [u_i·z_i, v_i·z_i, z_i] [uizi,vizi,zi],其中 u i u_i ui v i v_i vi为图像空间中的投影坐标, z i z_i zi为该点对应的深度。

如上图所示,利用上述公式,可以得到一个密集接地的深度表示,解决了主流方法中深度监督稀疏的问题。对于不适定的2D到3D映射问题,密集的接地深度提供了地平面约束,使其成为一个适定问题,而映射的唯一解是摄像机光线与地平面的相交。此外,由于本文的公式与物体的高度没有关系,因此自然避免了不相关的相关问题。更重要的是,引入的地平面先验和密集接地深度都来自于3D边界框注释,易于访问,不需要LiDAR和深度等其他数据源

In Code

 

Pipeline

基于MonoFlex

In Pape

整体网络框架基于CenterNet和MonoFlex,如下图所示

在这里插入图片描述

  1. Backbone采用DLA34,之后分为两个branch
  2. Ground Branch负责预测Grounded Depth,并且采用了Dilated Coord Conv,原因如下:
  • 首先,Grunded Depth的估计涉及到视觉特征和位置特征,而普通卷积只能提供视觉特征,坐标卷积可以整合视觉和位置特征
  • 其次,3D坐标 ( x , y , z ) (x, y, z) (x,y,z) z z z为深度)是2D坐标的线性变换(相机投影模型)。坐标卷积可以显式地将卷积中的二维坐标串联起来,使其成为一个外部提示,从而更好地估计深度
  1. 3D Branch基于MonoFlex,负责预测五类Attributes:
  • Heatmap [ C × H S × W S ] [C\times\frac{H}{S}\times\frac{W}{S}] [C×SH×SW]表示每个物体的中心坐标,热图越接近1,表示某类物体在该位置存在的可能性越大
  • Offsets [ 22 × H S × W S ] [22\times\frac{H}{S}\times\frac{W}{S}] [22×SH×SW]表示11个点(3个中心点+8个立方体顶点)在2D图像中的偏移,如下图所示:

本文中定义Offsets为:
δ p = p S − ⌊ c 2 d S ⌋  s.t.  p ∈ { c 2 d , k 1 2 d , ⋯   , k 8 2 d , b 2 d , t 2 d } \begin{gathered} \delta_p=\frac{p}{S}-\left\lfloor\frac{c^{2 d}}{S}\right\rfloor \\ \text { s.t. } p \in\left\{c^{2 d}, k_1^{2 d}, \cdots, k_8^{2 d}, b^{2 d}, t^{2 d}\right\} \end{gathered} δp=SpSc2d s.t. p{c2d,k12d,,k82d,b2d,t2d}
其中, S S S为Backbone的下采样率, ⌊ ⋅ ⌋ \left\lfloor · \right\rfloor 为向下取整,假设 δ p ∗ \delta_p^* δp为GT真值,那么Offsets的损失如下:
L offset  = ∑ p ∈ { c 2 d , k 1 2 d , ⋯   , k 8 2 d , b 2 d , t 2 d } ∣ δ p − δ p ∗ ∣ L_{\text {offset }}=\sum_{p \in\left\{c^{2 d}, k_1^{2 d}, \cdots, k_8^{2 d}, b^{2 d}, t^{2 d}\right\}}\left|\delta_p-\delta_p^*\right| Loffset =p{c2d,k12d,,k82d,b2d,t2d}δpδp

  • Size [ 3 × H S × W S ] [3\times\frac{H}{S}\times\frac{W}{S}] [3×SH×SW]表示物体3D的长宽高预测值
  • Orientation [ 8 × H S × W S ] [8\times\frac{H}{S}\times\frac{W}{S}] [8×SH×SW]表示物体的偏航角(yaw),分为8部分,在KITTI数据集中,俯仰角(pitch)和旋转角(roll)均设置为0
  • Direct Depth [ 1 × H S × W S ] [1\times\frac{H}{S}\times\frac{W}{S}] [1×SH×SW]表示物体的直接深度
  1. 在后处理阶段:分别预测两个Depth(Grounded Depth、Geometry Depth)
  • 利用预测的Offsets,计算Geometry Depth:
    z = f ⋅ h h 2 d z=\frac{f \cdot h}{h_{2 d}} z=h2dfh
    其中, f f f为相机焦距, h h h物体的3D高度, h 2 d h_{2d} h2d b 2 d − t 2 d b^{2 d}-t^{2 d} b2dt2d,即物体的2D图像像素高度。此外,本文还通过平均对角关键点的几何深度来扩展几何深度(借鉴MonoFlex)
  • 最后,通过从七个深度 z p r e d z_{pred} zpred(1 direct depth, 3 geometry depths, 3 grounded depths)中基于不确定性的投票得到最终深度(借鉴MonoFlex):
    z final  = ( ∑ i = 1 7 z pred  i σ i ) / ( ∑ i = 1 7 1 σ i ) z_{\text {final }}=\left(\sum_{i=1}^7 \frac{z_{\text {pred }}^i}{\sigma_i}\right) /\left(\sum_{i=1}^7 \frac{1}{\sigma_i}\right) zfinal =(i=17σizpred i)/(i=17σi1)
  • 3 geometry depths:物体 h 2 d h_{2d} h2d的表示有三种,即顶部中心和底部中心之间的距离,两对对角线的距离,如下图所示:
  • 3 grounded depths:物体底部中心 b 2 d b^{2d} b2d的深度、底部两对对角顶点的深度 k 1 2 d , k 3 2 d {k^{2d}_1,k^{2d}_3} k12d,k32d k 2 2 d , k 4 2 d {k^{2d}_2,k^{2d}_4} k22d,k42d

In Code

 

Depth-Align Training

网络预测的grounded points,由均匀的网格组成,处在整数位置
而由标注信息转换的投影grounded points,则是随机分散的,即非整数位置
那么二者存在不对齐的现象
那么,本文的思路是:对投影的每个随机采样grounded points,使用其周围4个网格点的深度进行损失函数的计算,来优化非整数位置的密集深度

In Paper

在得到Grounded Depth预测图后,如何训练这种预测图是一个重要的问题,因为预测的Grounded Depth与利用标签得到的投影Grounded Depth存在不对齐的问题,即投影密集接地点分布在预测图中任意位置,而预测图由均匀的网格组成。也就是说,预测图只能用于整数位置,而投影的密集接地点分布在非整数位置。为了解决这个问题,本文提出了一种深度对齐训练方法,如下图所示:

  • 深度对齐训练的前向计算与双线性插值相同,设投影接地点为 ( u i , v i ) (u_i, v_i) (ui,vi),深度为 z i z_i zi { g 1 , g 2 , g 3 , g 4 } \{g_1, g_2, g_3, g_4\} {g1,g2,g3,g4}为从左上角开始顺时针环绕的四个网格点,则第 i i i个点的深度预测值可以写成:
    λ 1 = u i − ⌊ u i ⌋ , λ 2 = ⌈ u i ⌉ − u i , λ 3 = v i − ⌊ v i ⌋ , λ 4 = ⌈ v i ⌉ − v i ,  pred  i = λ 2 λ 4 g 1 + λ 1 λ 4 g 2 + λ 1 λ 3 g 3 + λ 2 λ 3 g 4 , \begin{gathered} \lambda_1=u_i-\left\lfloor u_i\right\rfloor, \lambda_2=\left\lceil u_i\right\rceil-u_i, \\ \lambda_3=v_i-\left\lfloor v_i\right\rfloor, \quad \lambda_4=\left\lceil v_i\right\rceil-v_i, \\ \text { pred }_i=\lambda_2 \lambda_4 g_1+\lambda_1 \lambda_4 g_2+\lambda_1 \lambda_3 g_3+\lambda_2 \lambda_3 g_4, \end{gathered} λ1=uiui,λ2=uiui,λ3=vivi,λ4=vivi, pred i=λ2λ4g1+λ1λ4g2+λ1λ3g3+λ2λ3g4,
  • 那么接地点的总深度损失为:
    L d a = ∑ i = 1 N ∣ z i − pred ⁡ i ∣ L_{d a}=\sum_{i=1}^N\left|z_i-\operatorname{pred}_i\right| Lda=i=1Nzipredi
  • 这样,我们可以直接优化非整数位置的密集深度,反向传播是根据双线性插值的权重将梯度传递给周围的网格点
  • 【疑问1】:为什么要用投影点周围的四个网格点来进行双线性插值呢?
  • 【疑问2】: g g g是什么意思呢?每个网格点的深度值?

In Code

 

Two-stage Depth Inference

目前理解:Ground Branch就是用来预测接地点,每一个接地点的深度都是唯一的,并且理论上接地点的深度,等于该点向上延伸中所有点的深度值,例如:底部中心点的深度=物体中心点的深度=顶部中心点的深度
那么,就可以利用Ground Branch来获得接地点的深度值,来辅助最终深度的生成
那么,如何知道应该利用Ground Branch中的哪些接地点呢?就需要用到3D Branch中预测出的heatmap和offsets,具体而言,需要获得物体底部中心点的坐标,然后对应到Ground Branch中获得其深度值
物体底部中心点的坐标 可以由heatmap(即物体中心点),以及offsets中的对底部中心点的偏移量来计算得到
所以,先利用3D Branch获得物体底部中心点,再转移到Ground Branch中获得其深度值(即物体中心点的深度值),即两阶段

In Paper

在CenterNet-Style的推理中,对象由特征图上的粗网格点表示,所有其他属性都由点上的特征一次性预测,称之为单阶段推理。但是粗网格点只能反映物体的粗位置,这就是为什么我们需要进一步回归GT位置和粗网格位置之间的差异
在密训练的接地深度图的帮助下,我们使用回归的细粒度位置代替粗糙的网格位置,可以实现比原来的CenterNet式深度推断更精确的深度估计,二者的区别如下图所示:

  • 第一个Ground Depth:假设 ⌊ c 2 d / S ⌋ \left\lfloor c^{\mathbf{2 d}} / S\right\rfloor c2d/S是热图预测的中心。我们首先对中心进行回归偏移,得到物体底部中心点的精细位置 b 2 d / S = ⌊ c 2 d / S ⌋ + δ b 2 d b^{\mathbf{2 d}} / S=\left\lfloor c^{\mathbf{2 d}} / S\right\rfloor+\delta_{b^{\mathbf{2 d}}} b2d/S=c2d/S+δb2d,然后对地面支路预测采用深度对齐的前向计算公式进行插值,得到精确深度。由于 b 2 d b^\mathbf{2d} b2d为物体的底部中心,因此 b 2 d b^\mathbf{2d} b2d的接地深度与 c 2 d c^\mathbf{2d} c2d的深度完全相同,即物体的中心深度
  • 第二、三个Ground Depth:利用物体底部框的四个角点,根据三维几何结构,中心深度等于对角线关键点的平均深度。这样,可以利用得到的对角线结果求平均值,从关键点 k 1 2 d , k 3 2 d 和 k 2 2 d , k 4 2 d k^{2d}_1, k^{2d}_3和k^{2d}_2, k^{2d}_4 k12d,k32dk22d,k42d得到另外两个深度估计

In Code

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

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

相关文章

一个牛X小编,用Python将普通视频变成动漫,这也太厉害了吧

前言 最近几个月,毒教材被曝光引发争议,那些编写度教材的人着实可恶。咱程序员也没有手绘插画能力,但咱可以借助强大的深度学习模型将视频转动漫。所以今天的目标是让任何具有python语言基本能力的程序员,实现短视频转动漫效果。…

springboot实现excel数据导入导出

目录 1.一些关于excel的常识 2.使用Apache POI操作excel 3.使用easyexcel操作excel 4.结合mybatis-plus批量导入excel数据到数据库 1.一些关于excel的常识 首先关于excel的文件格式,分为xls和xlsx,分别对应03版本和07以后的版本。 03版本的excel最大…

基于云边协同架构的五大应用场景革新

从概念到场景落地,边缘云加速革新,颠覆体验,拟造丰沛生态。边缘云的概念自明确以来已有四个多年头。 什么是边缘云? 边缘云,即把公共云的能力放在离数据发生端和消费端最近的地方,提升数据的处理效率&…

143.如何个性化推荐系统设计-3

143.1 算法介绍 协同过滤算法 协同过滤(Collaborative filtering, CF)算法是目前个性化推荐系统比较流行的算法之一。协同算法分为两个基本算法:基于用户的协同过滤(UserCF)和基于项目的协同过滤(ItemCF)。 基于属性…

m基于GA遗传优化的BP神经网络时间序列预测算法matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 将遗传算法(GA)与BP神经网络相结合,使用GA优化BP神经网络的主要参数。然后将影响输出响应值的多个特征因素作为GA-BP神经网络模型的输入神经元, 输出响应值作为…

[附源码]计算机毕业设计springboot绿色生鲜

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

nfs实现共享目录对于集群高可用风险,nfs客户端容易卡死

目录 背景说明 解决办法 执行步骤 数据移动 取消挂载 停nfs服务(客户端) 卸载nfs(客户端) 重启主机(客户端) 卸载nfs(服务端) 背景说明 nfs可以完成集群多个主机之间共享目…

感知算法工程师面试===目标检测===YOLO v3

引言 因为找工作的原因,面试中经常遇到目标检测的问题,在2022年的现在,大多是对单步目标检测算法YOLO家族系列展开一系列追问,比如Yolov3、Yolov4、Yolov5、Yolox算法。 另一部分就是Faster RCNN为代表的两阶段目标检测网络。 而…

[附源码]计算机毕业设计JAVA小区宠物管理系统

[附源码]计算机毕业设计JAVA小区宠物管理系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybati…

blender UV基础

文章目录进入UV界面导出UV布局图拆分UV清除现有UV展开UV不同UV展开方式智能UV投射缝合边进入UV界面 1 选中一个物体,选择最上方UVEditing即可进入UV界面 2 注意进入UV界面后,舞台也会自动进入编辑模式 3 只有在编辑模式里才能操作UV 4 选择一个面来单独…

Linux学习-61-Linux系统服务管理

14 Linux系统服务管理 系统服务:服务是在后台运行的应用程序,并且可以提供一些本地系统或网络的功能。Linux 中常见的服务有那些,这些服务怎么分类,服务如何启动,服务如何自启动,服务如何查看?…

Codeforces Round #725 (Div. 3) F. Interesting Function

翻译&#xff1a; 给出两个整数&#x1d459;和&#x1d45f;&#xff0c;其中&#x1d459;<&#x1d45f;。我们将在&#x1d459;上加1&#xff0c;直到结果等于&#x1d45f;。因此&#xff0c;执行的添加恰好是&#x1d45f;−&#x1d459;。对于每一个这样的加法&am…

pytest文档84 - 把收集的 yaml 文件转成pytest 模块和用例

前言 前面实现了一个基础的读取yaml文件内容&#xff0c;当成用例去执行。虽然入门简单&#xff0c;但需要扩展功能&#xff0c;比如在 yaml 用例实现参数化&#xff0c;就不好扩展了。 因为它并不是一个真正的pytest的模块和用例&#xff0c;无法被钩子函数探测到。所以这篇会…

CV攻城狮入门VIT(vision transformer)之旅——VIT原理详解篇

&#x1f34a;作者简介&#xff1a;秃头小苏&#xff0c;致力于用最通俗的语言描述问题 &#x1f34a;往期回顾&#xff1a;CV攻城狮入门VIT(vision transformer)之旅——近年超火的Transformer你再不了解就晚了&#xff01; &#x1f34a;近期目标&#xff1a;写好专栏的每一篇…

Linux centos7.6 安装elasticsearch8.x (es8) 教程

系列-Linux centos7.6 安装elasticsearch8.x (es8) 教程 Linux centos7.6 安装elasticsearch8.x (es8) 教程_言之有李LAX的博客-CSDN博客 系列-linux安装elasticsearch-head &#xff08;es可视化界面&#xff09; linux安装elasticsearch-head &#xff08;es可视化界面&am…

隆重推出 Incredibuild 10

变更可能来的很快&#xff0c;也可能来的很慢。但有时候&#xff0c;它真的值得我们等待。您并非每天都能目睹一个很棒的平台进一步发展成为一个不可思议&#xff08;Incredible&#xff09;的平台。今天&#xff0c;我们将正式发布最新版本——Incredibuild 10&#xff01;经过…

SIMetrix导入MOS管参数的另一种方法

问题的提出 在采用SIMetrix 8.3软件进行E类放大器的仿真过程中&#xff0c;用到了NEXPERIA公司的NMOS管器件PMH550UNE, 但在SIMetrix 8.3的库中没有该器件&#xff0c;因此需要导入第三方库文件. 通常的办法是从生产该器件的公司网站上下载器件库文件&#xff0c;导入到SIMet…

《QDebug 2022年11月》

一、Qt Widgets 问题交流 二、Qt Quick 问题交流 1.QtQuick.Dialogs 1.x 中的 MessageDialog 触发两次 accepted 、rejected [QTBUG-94126] If inherit QApplication, the MessageDialog accepted signal is emitted twice. - Qt Bug Tracker 当使用 QApplication 而不是 Q…

React 中ref 的使用(类组件和函数组件)以及forwardRef 与 useImperativeHandle 详解

前言 在一个父组件中&#xff0c;我们想要获取到其中的节点元素或者子组件实例&#xff0c;从而直接调用其上面的方法。Class 类组件和函数组件是两种不同的写法。 1. Class 组件中使用ref 在 React 的 Class 组件中&#xff0c;我们通过 createRef 创建 ref class Parent …

传统制造企业进行数字化转型,是翻身还是翻船?

数实融合正在从可选项&#xff0c;变成每个行业都要面对的必选项&#xff0c;制造企业也从野蛮生长逐渐步入有序的数字化世界。 出品|产业家 2022年&#xff0c;疫情及经济环境全面淬炼了各行各业&#xff0c;大多数能有效应用数字化持续经营的企业成为幸存者&#xff0c;数字…