计算机视觉新巅峰,微软牛津联合提出MVSplat登顶3D重建

f96ddf8bc9bdac77bdacd2eb7ef8231d.jpeg

开篇:探索稀疏多视图图像的3D场景重建与新视角合成的挑战

3D场景重建和新视角合成是计算机视觉领域的一项基础挑战,尤其是当输入图像非常稀疏(例如,只有两张)时。尽管利用神经场景表示,例如场景表示网络(SRN)、神经辐射场(NeRF)和光场网络(LFN)等,取得了显著进展,但这些方法在实际应用中仍然不尽人意,原因包括每个场景的优化成本高昂、内存消耗大以及渲染速度慢。最近,3D高斯投影(3DGS)作为一种高效且表达力强的3D表示方法应运而生,它凭借快速的渲染速度和高质量成为了研究的热点。使用基于光栅化的渲染,3DGS天然避免了NeRF中昂贵的体积采样过程,从而实现了高效且高质量的3D重建和新视角合成。

接下来提出的几种前馈高斯投影方法,如Splatter Image和pixelSplat,尝试从稀疏视图图像进行3D重建。Splatter Image使用U-Net架构从单一视图回归像素对齐的高斯参数,取得了单个对象3D重建的有希望的结果。然而,从单个图像进行3D重建本质上是不适定的和模糊的,这使得它特别难以应用于更一般和更大的场景级别重建。对于一般场景重建,pixelSplat提出从两个输入视图回归高斯参数。尽管pixelSplat学习了具有环视变换器的跨视图感知特征,但仅从图像特征预测可靠的概率深度分布仍然具有挑战性,导致pixelSplat的几何重建质量相对较低且存在噪声伪影。为了改进几何重建结果,需要使用额外的深度正则化损失进行缓慢的深度微调。

为了准确定位3D高斯中心,我们提出通过在3D空间中进行平面扫描来构建代价体积表示。具体来说,代价体积存储了所有潜在深度候选项的跨视图特征相似性,这些相似性可以为3D表面的定位提供有价值的几何线索。通过我们的代价体积表示,任务被表述为学习执行特征匹配以识别高斯中心,而不是像以前的工作那样从图像特征中进行数据驱动的3D回归。这样的表述降低了任务的学习难度,使我们的方法能够以轻量级模型大小和快速速度实现最先进的性能。

我们通过将由我们构建的多视图代价体积估计的多视图一致深度反投影到3D空间中,获得3D高斯中心。此外,我们还并行预测其他高斯属性(协方差、不透明度和球谐系数),从而使用预测的3D高斯和可微分的投影操作渲染新视角图像。我们的完整模型MVSplat是端到端训练的,仅使用渲染和真实图像之间的光度损失进行监督。

在大规模的RealEstate10K和ACID基准测试中,我们基于代价体积的方法MVSplat以最快的前馈推理速度(22 fps)实现了最先进的性能。与最先进的pixelSplat相比,我们的模型使用了更少的参数,并且在提供更高的外观和几何质量以及更好的跨数据集泛化能力的同时,推理速度提高了2倍以上。广泛的消融研究和分析强调了我们基于特征匹配的代价体积设计在实现高效前馈3D高斯投影模型方面的重要性。

论文标题: MVSplat: Efficient 3D Gaussian Splatting from Sparse Multi-View Images

机构:

1. Monash University

2. ETH Zurich

3. University of Tübingen, Tübingen AI Center

4. University of Oxford

5. Microsoft

6. Nanyang Technological University

论文链接:https://arxiv.org/pdf/2403.14627.pdf

项目地址: https://donydchen.github.io/mvsplat

公众号【AI论文解读】后台回复“论文解读” 获取论文PDF!

3D高斯投影(3DGS)的介绍与优势

3D高斯投影(3D Gaussian Splatting,简称3DGS)是一种高效且表现力强的三维表示方法,它因其快速的渲染速度和高质量的重建而受到关注。3DGS使用基于光栅化的渲染方法,从而避免了NeRF中昂贵的体积采样过程,实现了高效率和高质量的3D重建及新视角合成。

1. 3DGS的工作原理:3DGS通过将3D高斯(Gaussian primitives)映射到图像平面上,避免了传统NeRF方法中的体积渲染,从而大幅提高了渲染速度。这些高斯原语由中心位置、协方差、不透明度和颜色参数定义,可以高效地用于渲染新视角的图像。

2. 3DGS的优势:与传统的NeRF方法相比,3DGS具有多个显著优势。首先,它的渲染速度快,因为它避免了昂贵的体积采样过程。其次,3DGS在处理稀疏视图输入时表现出色,这对于实际应用中捕获大量视图是不切实际的情况尤为重要。此外,3DGS能够在轻量级模型和快速速度的同时,提供更高的外观和几何质量,以及更好的跨数据集泛化能力。

MVSplat模型的核心设计

MVSplat是一个基于3DGS的前馈模型,它通过构建成本体积(cost volume)来利用多视图的对应信息,从而更好地学习几何结构。与之前依赖于数据驱动设计的方法不同,MVSplat的核心设计在于其有效地利用特征匹配信息来预测3D高斯中心,从而实现了高效的深度估计。

1. 成本体积的构建:MVSplat通过平面扫描技术在3D空间中构建成本体积,存储了所有潜在深度候选项的跨视图特征相似性。这些相似性为3D表面的定位提供了宝贵的几何线索,使得模型能够通过特征匹配来识别3D高斯中心。

2. 多视图深度估计:MVSplat的深度模型基于2D卷积和注意力机制,不使用许多先前MVS和前馈NeRF模型中的3D卷积,这使得模型高效。深度模型包括多视图特征提取、成本体积构建、成本体积细化、深度估计和深度细化等步骤。

3. 3D高斯参数的预测:在获得多视图深度预测后,MVSplat直接将它们投影到3D点云中,并将每个视图的点云转换为对齐的世界坐标系,直接组合为3D高斯的中心。同时,模型还并行预测其他高斯属性(协方差、不透明度和颜色参数),以便使用可微分的投影操作渲染新视角图像。

4. 训练损失:MVSplat使用简单的渲染损失进行端到端训练,通过预测的3D高斯参数渲染图像,并以真实目标RGB图像作为监督,计算训练损失。

MVSplat在大规模RealEstate10K和ACID基准测试中取得了最先进的性能,并以最快的前馈推理速度(22 fps)运行。与最新的pixelSplat模型相比,MVSplat使用了更少的参数,并且推理速度更快,同时提供了更高的外观和几何质量,以及更好的跨数据集泛化能力。

实验设置与数据集描述

1. 数据集

本研究使用了两个大型基准数据集:RealEstate10K [42] 和 ACID [14]。RealEstate10K 数据集包含从 YouTube 下载的房地产视频,分为 67,477 个训练场景和 7,289 个测试场景。ACID 数据集包含由无人机拍摄的自然场景,分为 11,075 个训练场景和 1,972 个测试场景。两个数据集都提供了每个帧的估计相机内参和外参。此外,为了进一步评估跨数据集的泛化能力,还在多视图 DTU [10] 数据集上进行了直接评估,该数据集包含带有相机位姿的以物体为中心的场景,在 DTU 数据集上,我们报告了 16 个验证场景的结果,每个场景有 4 个新视角。

2. 评价指标

量化结果使用标准图像质量指标,包括像素级的 PSNR、补丁级的 SSIM [31] 和特征级的 LPIPS [40]。同时报告了推理时间和模型参数,以便全面比较速度和准确性的权衡。为了公平比较,所有实验都在 256×256 分辨率下进行,以符合现有模型 [1, 27]。

3. 实现细节

MVSplat 使用 PyTorch 实现,并使用 CUDA 中的现成 3DGS 渲染器。多视图 Transformer 包含 6 层堆叠的自注意力和交叉注意力层。构建成本体积时,在所有实验中采样了 128 个深度候选项。所有模型在单个 A100 GPU 上训练了 300,000 次迭代,使用 Adam [13] 优化器。更多细节在补充材料 Appendix C 中提供。代码和模型可在 https://github.com/donydchen/mvsplat 获取。

主要结果与性能分析

1. 图像质量评估

在 RealEstate10K [42] 和 ACID [14] 基准测试中,MVSplat 在所有视觉质量指标上超越了所有先前的最先进模型,并且在 LPIPS 指标上有更明显的改进,该指标更符合人类感知。MVSplat 在具有挑战性的条件下,即使在只有一个输入视图中呈现的区域(例如“楼梯扶手”和“灯罩”)或从远处视点捕获的大型户外物体(例如“桥梁”),也能实现最高质量的新视图结果。

33eae4e024ab3af77ef798cfa6d1505f.jpeg

2. 模型效率评估

MVSplat 不仅在图像质量上表现优异,而且在所有比较模型中具有最快的推理时间,并且模型尺寸轻巧,展示了其效率和实用性。MVSplat 使用的参数比 pixelSplat [1] 少 10 倍,并且推理速度快于 2 倍以上。

3. 几何重建评估

MVSplat 生成的 3D 高斯原语质量显著高于最新的最先进模型 pixelSplat [1]。pixelSplat 需要额外的 50,000 步微调,使用额外的深度正则化损失来实现合理的几何重建结果。而 MVSplat 仅通过光度监督训练,就能生成高质量的几何结构。

1244d50495d4a398e851991e5de6f617.jpeg

4. 跨数据集泛化评估

MVSplat 在泛化到分布外的新场景方面具有固有的优势,主要是因为成本体积捕获了特征之间的相对相似性,这与特征的绝对尺度相比保持不变。在两个跨数据集评估中,MVSplat 渲染出的新视图具有竞争力,尽管目标数据集的场景包含与源数据集显著不同的相机分布和图像外观。相比之下,pixelSplat 渲染的视图严重退化,这主要是因为 pixelSplat 依赖于与特征值的绝对尺度相关的纯特征聚合,这阻碍了其在接收来自其他数据集的不同图像特征时的性能。

5. 更多视图质量评估

MVSplat 设计为对输入视图的数量不敏感,因此如果在测试阶段有更多输入视图可用,无论在训练中使用了多少输入视图,都可以从中受益。在 DTU 上使用 3 个上下文视图进行测试时,MVSplat 的结果优于使用 2 个视图的结果,这表明 MVSplat 可以利用更多的输入视图来提高性能。

6. 消融研究

通过在 RealEstate10K 上进行详尽的消融研究,分析了 MVSplat 的关键组件。结果表明,成本体积是 MVSplat 成功的关键,它在编码器中发挥着最重要的作用,提供了更好的几何质量。此外,交叉视图注意力在学习多视图几何结构中也非常重要,它通过在输入视图之间融合信息来增强特征表达能力。

跨数据集泛化能力的评估

在计算机视觉领域,从稀疏的图像(例如,仅两张)进行3D场景重建和新视角合成一直是一个基本挑战。虽然使用神经场景表示(如SRN、NeRF和LFN)取得了显著进展,但这些方法在实际应用中仍不尽人意,原因在于每个场景的昂贵优化成本、高内存消耗和慢渲染速度。最近,基于成本体积的方法MVSplat在大规模RealEstate10K和ACID基准测试中实现了最先进的性能,具有最快的前馈推理速度(22 fps),并且在外观和几何质量以及跨数据集泛化方面都优于最新的pixelSplat模型。

1. 跨数据集泛化能力

MVSplat的跨数据集泛化能力得益于其成本体积表示,该表示捕获了特征之间的相对相似性,这种相似性与特征的绝对尺度相比是不变的。为了评估这种泛化能力,研究人员选择了仅在RealEstate10K(室内场景)上训练的模型,并直接在ACID(室外场景)和DTU(以物体为中心的场景)上进行了测试。结果显示,尽管目标数据集的场景与源数据集在相机分布和图像外观上有显著差异,MVSplat仍能渲染出具有竞争力的新视图。相比之下,pixelSplat在渲染质量上明显下降,主要原因是它依赖于与特征值的绝对尺度相关的纯特征聚合,这在接收来自其他数据集的不同图像特征时会影响其性能。

5fc86fb53ccf9c23adf8fb934ae90781.jpeg

2. 更多视图的质量

MVSplat的设计使其对输入视图的数量不敏感,这意味着如果在测试阶段有更多的输入视图可用,无论在训练中使用了多少输入视图,它都可以从中受益。通过在DTU上使用3个上下文视图进行测试,使用在2视图RealEstate10K数据集上训练的模型,MVSplat的性能得到了提升。然而,pixelSplat在使用更多视图时性能略有下降,即使研究人员已经尽力将其发布的仅支持2视图的模型扩展到支持更多视图的测试。这表明,更多视图的特征分布可能与用于训练pixelSplat的两视图特征分布不同,这种依赖于纯特征聚合的方法缺乏对特征分布变化的鲁棒性。

模型的优化与改进

1. 模型优化

为了提高模型性能,MVSplat采用了多种优化策略。首先,它基于2D卷积和注意力机制,避免了许多以前的MVS和前馈NeRF模型中使用的3D卷积,从而提高了模型效率。其次,MVSplat通过构建成本体积来存储所有潜在深度候选项的跨视图特征相似性,这些相似性为3D表面的定位提供了宝贵的几何线索。此外,MVSplat还使用了一个轻量级的2D U-Net来进一步细化成本体积,并预测每个视图的深度图。这些深度图被投影到3D空间,并与其他高斯属性(协方差、不透明度和球面谐波系数)一起预测,以使用可微分的splatting操作渲染新视图。

2. 模型改进

MVSplat的改进主要体现在以下几个方面:

成本体积表示:通过平面扫描在3D空间中构建成本体积表示,为学习特征匹配以识别高斯中心提供了一个新的公式化方法,与以前的数据驱动3D回归方法不同。

多视图深度估计:MVSplat的深度模型仅基于2D卷积和注意力,不使用其他模型中的3D卷积,提高了模型效率。

高斯参数预测:通过直接从多视图深度预测中投影得到的3D点云作为高斯中心,同时预测不透明度、协方差和颜色参数。

训练损失:模型使用简单的渲染损失进行端到端训练,无需地面真实几何监督。

通过这些优化和改进,MVSplat在两个大规模场景级重建基准测试中树立了新的最先进水平,并且在外观和几何质量以及跨数据集泛化方面都优于最新的pixelSplat模型。

讨论与总结

在本文中,我们探讨了从稀疏多视图图像进行3D场景重建和新视角合成的挑战,并介绍了最近提出的MVSplat模型。MVSplat模型通过构建代价体积(cost volume)来利用多视图间的对应信息,从而更好地学习几何结构。这种方法与现有的数据驱动设计有所不同,使得MVSplat在两个大规模场景级重建基准测试中设定了新的最高标准。与最新的先进方法pixelSplat相比,MVSplat使用的参数少了10倍,推断速度快了2倍以上,同时提供了更高的外观和几何质量,以及更好的跨数据集泛化能力。

1. 成果总结

MVSplat模型在多个方面展现了其优越性。首先,它在RealEstate10K和ACID基准测试中取得了最佳的视觉质量指标,并且具有最快的前馈推断速度(22 fps),这证明了其在实际应用中的高效性和实用性。其次,MVSplat在几何重建方面也展现了显著的优势,能够在没有额外深度微调的情况下,通过光度监督单独训练,生成高质量的3D高斯原语。此外,MVSplat在跨数据集泛化能力方面表现出色,尤其是在源数据集与目标数据集之间存在较大差异时,其性能提升更为显著。

2. 技术细节

MVSplat模型的关键在于其代价体积表示,该表示存储了所有潜在深度候选项的跨视图特征相似性,为3D表面的定位提供了有价值的几何线索。与之前的工作不同,MVSplat的任务被构建为学习执行特征匹配以识别3D高斯中心,这降低了任务的学习难度,并使得模型能够以轻量级的模型大小和快速的速度实现最先进的性能。

3. 实验结果

MVSplat在多个实验中均展现了其优势。在RealEstate10K和ACID数据集上的定量结果表明,MVSplat在所有视觉质量指标上均优于先前的最佳模型。在几何重建质量的可视化比较中,MVSplat产生的3D高斯原语和平滑深度图表现出更高的质量。在跨数据集泛化测试中,MVSplat在未经训练的新数据集上的渲染质量也远超pixelSplat,这进一步证明了其代价体积设计的有效性。

4. 未来方向

尽管MVSplat在多个方面取得了显著的成果,但它在处理反射表面(如玻璃和窗户)时可能产生不可靠的结果,这是现有方法的一个公开挑战。此外,MVSplat目前主要在RealEstate10K数据集上进行训练,尽管其规模较大,但多样性不足以健壮地泛化到野外真实世界场景。未来的一个有趣方向是探索MVSplat模型扩展到更大和更多样化的训练数据集的可能性,例如通过混合现有的几个场景级数据集。

总之,MVSplat模型的提出为稀疏多视图图像的3D场景重建和新视角合成提供了一种高效且有效的解决方案,其优异的性能和泛化能力预示着在实际应用中具有巨大的潜力。 

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

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

相关文章

Spring Boot 接入 Redis

Spring Boot 接入 Redis 简介 Redis 是一种访问速度非常快的内存数据结构存储,用作数据库、缓存、消息代理和流引擎。提供 strings、hashes、lists、sets 等数据结构。可以解决会话缓存、消息队列、分布式锁、定期将数据集存储到硬盘等功能。 通过 Redis 设计实现…

云原生架构(微服务、容器云、DevOps、不可变基础设施、声明式API、Serverless、Service Mesh)

前言 读完本文,你将对云原生下的核心概念微服务、容器云、DevOps、Immutable Infrastructure、Declarative-API、Serverless、Service Mesh 等有一个相对详细的了解,帮助你快速掌握云原生的核心和要点。 因题主资源有限, 这里会选用部分云服务商的组件进…

Aurora8b10b(2)上板验证

文章目录 前言一、AXI_Stream数据产生模块二、上板效果总结 前言 上一篇内容我们已经详细介绍了基于aurora8b10b IP核的设计,本文将基于此进一步完善并且进行上板验证。 设计思路及代码思路参考FPGA奇哥系列网课 一、AXI_Stream数据产生模块 AXIS协议是非常简单的…

小林coding图解计算机网络|TCP篇06|如何理解TCP面向字节流协议、为什么UDP是面向报文的协议、如何解决TCP的粘包问题?

小林coding网站通道:入口 本篇文章摘抄应付面试的重点内容,详细内容还请移步:小林coding网站通道 文章目录 如何理解UDP 是面向报文的协议如何理解字节流如何解决粘包固定长度的消息 特殊字符作为边界自定义消息结构 如何理解UDP 是面向报文的…

第20次修改了可删除可持久保存的前端html备忘录:重新布局

第20次修改了可删除可持久保存的前端html备忘录&#xff1a;重新布局 <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"…

Elasticsearch:我们如何演化处理二进制文档格式

作者&#xff1a;来自 Elastic Sean Story 从二进制文件中提取内容是一个常见的用例。一些 PDF 文件可能非常庞大 — 考虑到几 GB 甚至更多。Elastic 在处理此类文档方面已经取得了长足的进步&#xff0c;今天&#xff0c;我们很高兴地介绍我们的新工具 —— 数据提取服务&…

[从零开始学习Redis | 第九篇] 深入了解Redis数据类型

前言&#xff1a; 在现代软件开发中&#xff0c;数据存储和处理是至关重要的一环。为了高效地管理数据&#xff0c;并实现快速的读写操作&#xff0c;各种数据库技术应运而生。其中&#xff0c;Redis作为一种高性能的内存数据库&#xff0c;广泛应用于缓存、会话存储、消息队列…

重读Java设计模式: 桥接模式详解

引言 在软件开发中&#xff0c;经常会遇到需要在抽象与实现之间建立连接的情况。当系统需要支持多个维度的变化时&#xff0c;使用传统的继承方式往往会导致类爆炸和耦合度增加的问题。为了解决这一问题&#xff0c;我们可以使用桥接模式。桥接模式是一种结构型设计模式&#…

ARM架构学习笔记2-汇编

RISC是精简指令集计算机&#xff08;RISC:Reduced Instruction Set Computing&#xff09; ARM汇编概述 一开始&#xff0c;ARM公司发布两类指令集&#xff1a; ① ARM指令集&#xff0c;这是32位的&#xff0c;每条指令占据32位&#xff0c;高效&#xff0c;但是太占空间 2…

物联网实战--入门篇之(十)安卓QT--后端开发

目录 一、项目配置 二、MQTT连接 三、数据解析 四、数据更新 五、数据发送 六、指令下发 一、项目配置 按常规新建一个Quick空项目后&#xff0c;我们需要对项目内容稍微改造、规划下。 首先根据我们的需要在.pro文件内添加必要的模块&#xff0c;其中quick就是qml了&…

燃气管网安全运行监测系统功能介绍

燃气管网&#xff0c;作为城市基础设施的重要组成部分&#xff0c;其安全运行直接关系到居民的生命财产安全和城市的稳定发展。然而&#xff0c;随着城市规模的不断扩大和燃气使用量的增加&#xff0c;燃气管网的安全运行面临着越来越大的挑战。为了应对这些挑战&#xff0c;燃…

虚幻UE5智慧城市全流程开发教学

一、背景 这几年&#xff0c;智慧城市/智慧交通/智慧水利等飞速发展&#xff0c;骑士特意为大家做了一个这块的学习路线。 二、这是学习大纲 1.给虚幻UE5初学者准备的智慧城市/数字孪生蓝图开发教程 https://www.bilibili.com/video/BV1894y1u78G 2.UE5数字孪生蓝图开发教学…

蓝桥集训之斐波那契数列

蓝桥集训之斐波那契数列 核心思想&#xff1a;矩阵乘法 将原本O(n)的递推算法优化为O(log2n) 构造1x2矩阵f和2x2矩阵a 发现f(n1) f(n) * a 则f(n1) f(1) * an可以用快速幂优化 #include <iostream>#include <cstring>#include <algorithm>using na…

算法刷题应用知识补充--基础算法、数据结构篇

这里写目录标题 位运算&#xff08;均是拷贝运算&#xff0c;不会影响原数据&#xff0c;这点要注意&#xff09;&、|、^位运算特性细节知识补充对于n-1的理解异或来实现数字交换找到只出现一次的数据&#xff0c;其余数据出现偶数次 >> 、<<二进制中相邻的位的…

第12届蓝桥杯省赛 ---- C/C++ C组

文章目录 1. ASC2. 空间3. 卡片4. 相乘5. 路径6.时间显示7.最少砝码8. 杨辉三角形9. 左孩子右兄弟 第12届蓝桥杯省赛&#xff0c;C/C C组真题&#xff0c;第10题不是很清楚&#xff0c;题解不敢乱放&#x1f601;&#x1f601;&#x1f601; 1. ASC 额。。。。 #include <i…

【WEEK6】 【DAY1】DQL查询数据-第一部分【中文版】

2024.4.1 Monday 目录 4.DQL查询数据&#xff08;重点&#xff01;&#xff09;4.1.Data Query Language查询数据语言4.2.SELECT4.2.1.语法4.2.2.实践4.2.2.1.查询字段 SELECT 字段/* FROM 表查询全部的某某查询指定字段 4.2.2.2.给查询结果或者查询的这个表起别名&#xff08…

Spark-Scala语言实战(13)

在之前的文章中&#xff0c;我们学习了如何在spark中使用键值对中的keys和values,reduceByKey,groupByKey三种方法。想了解的朋友可以查看这篇文章。同时&#xff0c;希望我的文章能帮助到你&#xff0c;如果觉得我的文章写的不错&#xff0c;请留下你宝贵的点赞&#xff0c;谢…

【瑞萨RA6M3】1. 基于 vscode 搭建开发环境

基于 vscode 搭建开发环境 1. 准备2. 安装2.1. 安装瑞萨软件包2.2. 安装编译器2.3. 安装 cmake2.4. 安装 openocd2.5. 安装 ninja2.6. 安装 make 3. 生成初始代码4. 修改 cmake 脚本5. 调试准备6. 仿真 1. 准备 需要瑞萨仓库中的两个软件&#xff1a; MDK_Device_Packs.zipse…

浅谈物联网高速公路智慧配电室系统构建方案

关键词&#xff1a;高速公路&#xff1b;智慧供配电&#xff1b;电力监控&#xff1b;配电室智能运维托管&#xff1b;安全隐患 0、引言 随着高速公路事业的不断发展和路网的不断延伸&#xff0c;传统的管理方式已难以满足日益增长的需求&#xff0c;动态管理和安全隐患预警成…

ubuntu16如何使用高版本cmake

1.引言 最近在尝试ubuntu16.04下编译开源项目vsome&#xff0c;发现使用apt命令默认安装cmake的的版本太低。如下 最终得知&#xff0c;ubuntu16默认安装确实只能到3.5.1。解决办法只能是源码安装更高版本。 2.源码下载3.20 //定位到opt目录 cd /opt 下载 wget https://cmak…