0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于图像修复详细解析全局和局部一致性的图像补全

中科院长春光机所 来源:AI公园 作者:Chu-Tak Li 2021-04-25 14:21 次阅读

全局一致让图像补全的内容契合上下文,局部一致性让纹理更加真实。

这里只是对我们之前所学内容的一个简单回顾。

对于图像修复,填充像素的纹理细节是很重要的。有效的像素和填充的像素应该是一致的,填充的图像应该看起来真实。

粗略的说,研究者采用逐像素的重建损失(即L2损失)来确保我们可以用“正确”的结构来填补缺失的部分。另一方面,GAN损失(即对抗损失)和/或[纹理损失]应用于获得具有更清晰的生成像素纹理细节的填充图像。

86c2640c-a554-11eb-aece-12bb97331649.png

图1,一个例子来说明为图像修复任务生成新的片段的需求。

对于基于patch的方法,一个很大的假设是我们相信我们可以在缺失区域之外找到相似的patch,这些相似的补丁将有助于填充缺失区域。这个假设对于自然场景可能是正确的,因为天空和草坪在一个图像中可能有许多相似的patch。如果缺失区域之外没有任何类似的patch,就像图1中所示的人脸图像修复的情况。在这种情况下,我们找不到眼睛的patch来填补相应的缺失部分。因此,鲁棒的修复算法应该能够生成新的片段。

现有的基于GAN的修复方法利用一个鉴别器(对抗损失)来增强填充区域的锐度,将填充区域输入到鉴别器(即欺骗鉴别器)。有些人可能会在预训练的网络中比较缺失区域内部和外部的局部神经响应,以确保缺失区域内部和外部的局部小块的纹理细节相似。如果我们同时考虑图像的局部和全局信息来加强局部和全局一致性呢?我们会得到更好的完整图像吗?让我们看看。

dd9b2c415e79130a8a90436ea607b41c.png

图2,上下文编码器神经网络结构

如何处理高分辨率图像?我们之前已经讨论过第一种基于GAN的修复方法,上下文编码器。他们假设测试图像总是128×128和一个64×64中心缺失的洞。然后,我们还在上一篇文章中介绍了上下文编码器的改进版本,称为Multi-Scale Neural Patch Synthesis。他们提出了一种多尺度的方法来处理测试图像,最大的分辨率为512×512,中心缺失的孔为256×256。简而言之,他们采用了三种不同尺度的图像网络,即128×128、256×256和512×512。因此,速度是他们提出的方法的瓶颈。使用Titan X GPU填充512×512的图像大约需要1分钟。这是个有趣的问题!我们如何处理高分辨率图像,只需一个单一的的网络?给你几秒钟的思考时间,你可能会从图2所示的架构中发现一些提示(注意中间层)。一个快速的解决方案是去掉中间的全连接层,并采用全卷积网络!你很快就会知道怎么做,为什么要这样做!

介绍

现有的方法大多假设可以找到相似的图像patch来填补同一幅图像中缺失的部分。这种情况并不总是适用于图像修复,见图1。更准确地说,我们应该看整个图像,了解它的上下文,然后根据它的上下文来填补缺失的部分。

如果使用全连接层,输入图像的大小必须是固定的。因此,网络不能处理不同分辨率的测试图像。回想一下,完全连接的层完全连接了两层之间的所有神经元,因此它对前一层输出大小的变化很敏感,测试图像的大小必须固定。另一方面,对于卷积层,神经元之间没有全连接。更小的输入特征映射将导致更小的输出特征映射。所以,如果一个网络只由卷积层组成,它就可以处理不同大小的输入图像。我们称这种网络为全卷积网络(FCNs)。

方案

采用膨胀卷积代替全连接层,这样我们仍然可以理解图像的上下文,构建一个全卷积网络(Fully Convolutional Network, FCN)来处理不同大小的图像。

使用两个鉴别器来保证完成(填充)图像的局部和全局一致性。一个鉴别器在全局意义上看整个图像,而一个在局部意义上看被填充区域周围的子图像。

使用简单的后处理。有时很明显可以看出生成的像素和有效像素之间的区别。为了进一步提高图像的视觉质量,本文采用了两种传统的方法,即Fast Marching method和Poisson image blend。这两种技术超出了本文的范围。之后,在一定程度上将后处理步骤以细化网络的形式嵌入到网络中。我们将在后面的文章中讨论它。

贡献

提出一种全卷积的网络扩展卷积图像修复。它允许我们在不使用全连接的层的情况下理解图像的上下文,因此训练过的网络可以用于不同大小的图像。这个架构实际上是后来基于深度学习的图像修复方法的基础。这就是为什么我认为这篇文章是图像修复的一个里程碑。

建议使用两个判别器(一个局部的和一个全局的)。多尺度鉴别器似乎可以在不同尺度上提供较好的完整图像纹理细节。

强调图像修复任务中产生新片段的重要性。实际上,训练数据是非常重要的。简单地说,你不能生成你以前没见过的东西。

方法

23cde22ddb2a6fe927bad6a65ddd06d7.png

图3,提出方法的结构

图3显示了提出的方法的网络架构。它由三个网络组成,分别是Completion网络(即生成器,既用于训练又用于测试)、局部鉴别器和全局鉴别器(用于刚训练时作为辅助网络用于学习)。快速回顾一下这个GAN框架。Generator负责补全图像以欺骗discriminator,而discriminator负责将完整图像与真实图像区分开来。

CNNs中的膨胀卷积

膨胀卷积的概念对于读者理解本文的网络设计是很重要的。所以,我想尽力为那些不熟悉膨胀卷积的读者解释一下。对于非常了解它的读者,也请快速回顾一下。

8ec4650026be64f8c470958ef264d46b.png

图4,标准卷积和膨胀卷积的图解

在论文中,作者用了半页的篇幅来描述cnn、标准卷积和扩张卷积。并给出了相应的卷积方程供参考。我需要澄清一点,膨胀卷积并不是本文作者提出的,他们是将其用于图像修复。

这里,我想用一个简单的图来说明标准卷积和膨胀卷积的区别。

图4(a)是带有3×3 kernel, stride=1, padding=1,膨胀率=1的标准卷积层。这种情况的设置中,8×8输入给出8×8的输出,每个相邻的9个位置在输出中贡献一个元素。

图4(b)也是一个标准的卷积层。这次我们使用5×5 kernel,stride=1, padding=2(为了保持相同的输入和输出大小)和膨胀率=1。在这种情况下,每个相邻的25个位置对输出的每个元素都有贡献。这意味着对于输出的每个值,我们必须更多地考虑(查看)输入。我们通常指更大的感受野。对于一个大的感受野,更多的来自遥远空间位置的特征将被考虑进去,在输出时给出每个值。

然而,对于图4(b)中的情况,我们使用一个更大的kernel (5×5)来获得更大的感受野。这意味着需要学习更多的参数(3×3=9,而5×5=25)。有没有办法在不增加更多参数的情况下增加感受野?答案是膨胀卷积。

图4(c)是一个膨胀卷积层,使用3×3 kernel, stride=1, padding=2,膨胀率=2。当比较图4(b)和(c)中的kernel的覆盖时,我们可以看到它们都覆盖了输入处的5×5局部空间区域。3×3的kernel可以通过跳过连续的空间位置来获得5×5 kernel的感受野。跳跃的step是由膨胀率决定的。例如,一个3×3内核的膨胀率=2给出5×5感受野,一个3×3核的膨胀率=3给出一个7×7的感受野,以此类推。显然,膨胀卷积通过跳过连续的空间位置来增加感受野,而不需要添加额外的参数。这样做的优点是,我们有更大的感受野,同时有相同数量的参数。缺点是我们会跳过一些位置(我们可能会因此丢失一些信息)。

为什么要用膨胀卷积?

在回顾了膨胀卷积的概念之后,我将讨论为什么作者在他们的模型中使用膨胀卷积。你们中的一些人可能已经猜到原因了。

如前所述,了解整个图像的上下文对于图像修复的任务是重要的。以前的方法使用全连接层作为中间层,以便理解上下文。记住,标准卷积层在局部区域执行卷积,而全连接层则完全连接所有的神经元(即每个输出值取决于所有的输入值)。然而,全连接层限制了输入图像的大小,并引入了更多的可学习参数。

为了解决这些限制,我们使用膨胀卷积来构建一个全卷积的网络,允许不同大小的输入。另一方面,通过调整标准kernel(通常是3×3)的膨胀率,我们可以在不同的层次上拥有更大的感受野,以帮助理解整个图像的上下文。

ff7e1307aebc01881d03635d3afa43ee.png

图5,不同大小的感受野的影响。

图5是一个展示膨胀卷积的有用性的例子。你可能认为(a)是带有3×3核(较小的感受野)的标准卷积,(b)是带有3×3核且扩张率≥2(较大的感受野)的膨胀卷积。位置p1和p2在孔内区域,p1靠近边界,p2大致在中心点。对于(a),可以看到p1位置的感受野(影响区域)可以覆盖有效区域。这意味着可以使用有效像素来填充位置p1的像素。另一方面,p2位置的感受野不能覆盖有效区域,因此不能使用有效区域的信息进行生成。

对于(b),我们使用膨胀卷积来增加感受野。这一次,两个位置的感受野都可以覆盖有效区域。读者现在可以认识到扩张卷积的有效性了。

Completion网络

让我们回到Completion 网络的结构,如图3所示。

3530ea7ee88d9d0d15a8182c79b9e052.png

表1,Completion网络结构。,每个卷积层后面都是ReLU,除了最后一个后面是Sigmoid

Completion 网络是一个全卷积的网络,接受不同大小的输入图像。该网络对输入进行2次2倍的下采样。这意味着,如果输入是256×256,中间层的输入大小是64×64。为了充分利用有效像素,保证像素精度,我们用有效像素替换孔区域以外的像素。

上下文判别器

让我们来谈谈局部和全局判别器。没有什么特别的,就像单个判别器的情况一样。唯一的不同是这次我们有两个。

07b107b0272cab8079b6d24f142bfd9b.png

表2,局部和全局鉴别器的结构,FC代表全连接层,连接层(c)的最终FC后面是Sigmoid

局部和全局判别器的架构基本相同。全局判别器的输入图像大小为256×256(整个图像,用于全局一致性),而局部判别器的输入为128×128,围绕缺失区域的中心,用于局部一致性。

需要注意的一点是,在训练过程中,总有一个区域是缺失的。在测试过程中,图像中可能存在多个缺失区域。除此之外,对于local discriminator,由于真实图像没有填充区域,所以对真实图像采用128×128 patch的随机选择。

训练策略和损失函数

与之前一样,使用两个损失函数来训练网络,即L2损失和对抗损失(GAN损失)。

d5ed709ddb09d404f9d49f92df55f333.png

C(x, M_c)将completion网络表示为函数。x是输入图像,M_c是表示缺失区域的二进制掩码。缺失区域为1,外部区域为0。你可以看到L2损失是在缺失区域内计算的。注意,补全的图像的外部区域的像素直接被有效像素替换。

f149b6ac49a8097021d9445be443e6bc.png

D(x, M_d)将两个鉴别器表示为一个函数。M_d是一个随机掩码,用于为局部判别器随机选择一个图像patch。这是一个标准的GAN损失。我们希望该判别器不能区分完整的图像和真实的图像,从而得到具有真实纹理细节的完整图像。

df8ac4e156bd236a4a8f8fa52692dafa.png

这是训练网络的联合损失函数。alpha是一个加权超参数,以平衡L2损失和GAN损失。

6afffd60f0835b967be2c0c9004ce2e9.png

作者将他们的训练分为三个阶段。i) 训练仅带L2损失的completion网络,迭代次数为T_C。ii) 修正completion网络,使用GAN损失训练判别器进行T_D迭代。iii) 交替训练completion网络和判别器,直到训练结束。

对于稳定训练,除completion网络的最后一层和判别器外,所有卷积层都采用批处理归一化(BN)。

为了生成训练数据,他们随机地将图像的最小边缘大小调整到[256,384]像素范围。然后,他们随机截取256×256图像补丁作为输入图像。对于掩模图像,随机生成一个区域,每个边的范围为[96,128]。

简单的后处理:如前所述,作者还采用了传统的Fast Marching方法,随后采用泊松图像混合,进一步提高完成图像的视觉质量。

实验

作者使用Places2数据集中的8097967张训练图像训练他们的网络。联合损失函数中的alpha加权超参数设置为0.0004,batch大小为96。

本文中,completion网络训练为T_C = 90000次迭代,训练判别器T_D = 10,000次迭代,最后联合训练所有网络400,000次迭代。他们声称,整个训练过程在一台4个k80 GPU的电脑上大约需要2个月的时间。

91449e11caf8471664152013a9c2323f.png

表3,所提出方法的用时

他们使用Intel Core i7-5960X 3.00 GHz 8核CPU和NVIDIA GeForce TITAN X GPU对CPU和GPU进行评估。实际上,速度相当快,只需半秒多一点就可以完成1024×1024的一张图片。

aaa41d3dbd3833beba0be36a2ec22060.png

图6,和已有方法的对比

图6显示了与一些现有方法的比较。总的来说,基于patch的方法可以用局部一致的图像patch来完成,但可能不会是全局一致的。最近的基于GAN的方法,上下文编码器(第5行),倾向于给出模糊的完整图像。该方法提供了局部和全局一致的完整图像。

6cb26e7d69916932ac39cce7c22527d3.png

图7,和上下文编码器的对比,在同样的数据集上训练填补中心缺失孔洞

为了与最先进的基于GAN的修复方法进行比较,作者进行了中心区域补全,结果如图7所示。可以看出,CE对于中心区域补全的性能优于任意区域补全(图6)。在我看来,CE与本文方法在图7中具有相似的性能。读者可以放大看其中的差异。

20fde37cd94845882ec07aa7615975ca.png

图8,不同判别器的效果

作者对这两种判别器进行了消融研究。从图8(b)和(c)可以看出,当不使用局部判别器时,补全的区域看起来更加模糊。另一方面,对于(d),如果只使用局部判别器,我们可以得到良好的局部一致纹理细节,但不能保证全局一致性。对于(e)中的full方法,我们获得了局部和全局一致的结果。

26982d89229105d171b8fe04f2958b38.png

图9,简单后处理的结果

图9显示了简单后处理的效果。对于图9(b),我们可以很容易地观察到边界。

46947a6ddea6750ba2f8c8ff06a5a5dc.png

图10,使用不同的数据集的修复结果

图10显示了在不同数据集上训练的模型的修复结果。注意,Places2包含了大约800万张不同场景的训练图像,而ImageNet包含了100万张用于目标分类的训练图像。我们可以看到,在Places2上训练模型的结果比在ImageNet上训练的结果稍好一些。

7ea1eed967350b087437a89e81360e31.png

图11,用提出的方法来做目标移除的例子

图像修复的一个潜在应用是物体移除。图11显示了使用所提方法删除目标的一些例子。

1f7b12ad905639c2f1227cc719a51829.png

图12,更多特定数据集的结果

本文的作者还考虑了域特定的图像修复。他们在CelebA数据集和CMP Facade数据集上微调了他们的预训练模型,这两个数据集分别由202599和606张图像组成。他们使用了Places2数据集上的预训练模型。对于新的数据集,他们从无到有训练判别器,然后进行completion网络和判别器交替训练。

图12显示了本文方法对特定领域图像的修复结果。对于面部修复,该方法能够生成眼睛和嘴等新的片段。对于立面的修复,本文提出的方法还能够生成与整个图像局部和全局一致的窗口等片段。

作者还对完整的面部图像进行了用户研究。结果表明,在10个用户中,使用该方法得到的77.0%的完整人脸被视为真实人脸。另一方面,96.5%的真实面孔可以被这10个用户正确识别。

限制和讨论

以下是作者对其局限性和未来发展方向的几点看法。

84bb8cf27f502e2eb6fa004ccb42d4fe.png

图13,失败的例子 i) mask在图像的边缘 ii) 复杂的场景

对于图13左侧的情况,我们可以看到缺失的部分位于上方图像的边框。作者声称,在这种情况下,可以从邻近位置借用的信息更少,因此基于GAN的方法(第3行和第4行)比传统的基于patch的方法(第2行)表现更差。另一个原因是这个例子是自然场景,所以基于patch的方法可以很好地工作。

对于图13右侧的例子,场景要复杂得多。根据这个mask,我们想要移除一个人,我们需要填充一些建筑的细节来完成这个复杂的场景。在这种情况下,所有的方法都不能正常工作。因此,在复杂的场景中填补缺失的部分仍然是的挑战。

3b30bf7e26479e733bf4be88f5891c00.png

图14,举例说明生成新片段的重要性,我们只能生成之前在训练中看到的内容。

作者提供了额外的例子来强调另外两点。i) 产生诸如眼睛、鼻子、嘴巴等新颖片段的重要性。ii)训练数据集的重要性。

对于无法找到相似的图像patch来填补缺失部分的情况,基于patch的方法(第2行和第3行)无法正常工作,如图14所示。因此,一个鲁棒的修复算法必须能够生成新的片段。

为了进一步显示训练数据集选择的重要性,作者比较了在Places2 (General dataset, (d))和CelebA (Face dataset, (e))上训练的两个模型。显然,(d)无法用合理的面部细节来填补缺失的部分,因为它是在没有任何对齐的面部图像的Places2上训练的。另一方面,(e)工作得很好,因为它是在CelebA上训练的,一个有许多对齐的人脸图像的数据集。因此,我们只能生成我们在训练中看到的东西。全面的修复还有很长的路要走。

总结

所提议的结构是后来大多数修复论文的基础。膨胀卷积的全卷积网络允许我们在不使用全连接的层的情况下理解图像的上下文,因此网络可以获取不同大小的输入图像。

多尺度的鉴别器(在这里我们有两个鉴别器,实际上有些可能有三个!) 对于在不同尺度上增强完整图像的纹理细节是很有用的。

当场景很复杂的时候,补上缺失的部分仍然很有挑战性。另一方面,自然场景是比较容易修复的。

要点

在这里,我想列出一些对以后的文章有用的观点。

请记住,膨胀卷积的全卷积网络是一种典型的图像修复网络结构。它允许不同大小的输入,并提供类似于全连接层的功能(即帮助理解图像的上下文)。

事实上,人脸图像的修复相对来说比一般的图像修复简单。这是因为我们总是在人脸数据集上训练一个模型来进行人脸图像修复,而该数据集由许多对齐的人脸图像组成。对于一般的图像修复,我们可以训练一个更多样化的数据集,如Places2,它包含来自不同类别(如城市、建筑和许多其他类别)的数百万张图像。对于一个模型来说,学习生成所有具有良好视觉质量的东西要困难得多。不管怎样,还有很长的路要走。
编辑:lyn

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • GaN
    GaN
    +关注

    关注

    19

    文章

    1905

    浏览量

    72523
  • patch
    +关注

    关注

    0

    文章

    14

    浏览量

    8316
  • 图像修复
    +关注

    关注

    0

    文章

    11

    浏览量

    2259

原文标题:图像修复:全局和局部的一致性补全

文章出处:【微信号:cas-ciomp,微信公众号:中科院长春光机所】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    一致性测试系统的技术原理和也应用场景

    一致性测试系统是用来检测零部件或系统实现是否符合相关标准或规范的测试流程,其技术原理和应用场景具体如下:技术原理 基本框架:协议一致性测试的理论已经相对成熟,主要代表是ISO制定的国际标准ISO
    发表于 11-01 15:35

    异构计算下缓存一致性的重要

    在众多回复中,李博杰同学的回答被认为质量最高。他首先将缓存一致性分为两个主要场景:是主机内CPU与设备间的一致性;二是跨主机的一致性
    的头像 发表于 10-24 17:00 181次阅读
    异构计算下缓存<b class='flag-5'>一致性</b>的重要<b class='flag-5'>性</b>

    级联一致性和移相器校准应用手册

    电子发烧友网站提供《级联一致性和移相器校准应用手册.pdf》资料免费下载
    发表于 08-29 10:48 0次下载
    级联<b class='flag-5'>一致性</b>和移相器校准应用手册

    LIN一致性测试规范2.1

    电子发烧友网站提供《LIN一致性测试规范2.1.pdf》资料免费下载
    发表于 08-15 17:14 3次下载

    铜线键合焊接一致性:如何突破技术瓶颈?

    在微电子封装领域,铜线键合技术以其低成本、高效率和良好的电气性能等优势,逐渐成为芯片与基板连接的主流方式。然而,铜线键合过程中的焊接一致性问题是制约其进步发展和应用的关键难题。焊接一致性不仅
    的头像 发表于 07-04 10:12 1507次阅读
    铜线键合焊接<b class='flag-5'>一致性</b>:如何突破技术瓶颈?

    为什么主机厂愈来愈重视CAN一致性测试?

    新能源汽车迅猛发展下整车CAN网络架构日益复杂,总线故障等潜在问题时刻影响着运行安全。整车零部件通过CAN一致性测试必将是安全保障的第道门槛。CAN一致性测试,就是要求整车CAN网络中的节点都满足
    的头像 发表于 05-29 08:24 1046次阅读
    为什么主机厂愈来愈重视CAN<b class='flag-5'>一致性</b>测试?

     QSFP一致性测试的专业测试设备

    、高速度的光纤接口模块,广泛应用于数据中心、高速以太网和光纤通信等领域。本文将详细探讨QSFP一致性测试的目的、测试内容、测试方法以及测试的重要等方面。 QSFP一致性测试的目的是确
    的头像 发表于 03-14 10:40 502次阅读
     QSFP<b class='flag-5'>一致性</b>测试的专业测试设备

    企业数据备份体系化方法论的七大原则:深入理解数据备份的关键原则:应用一致性与崩溃一致性的区别

    在数字化时代,数据备份成为了企业信息安全的核心环节。但在备份过程中,两个关键概念——应用一致性和崩溃一致性,常常被误解或混淆。本文旨在阐明这两个概念的差异,并分析它们在数据备份中的重要,以便读者
    的头像 发表于 03-11 14:05 394次阅读
    企业数据备份体系化方法论的七大原则:深入理解数据备份的关键原则:应用<b class='flag-5'>一致性</b>与崩溃<b class='flag-5'>一致性</b>的区别

    深入理解数据备份的关键原则:应用一致性与崩溃一致性的区别

    深入理解数据备份的关键原则:应用一致性与崩溃一致性的区别 在数字化时代,数据备份成为了企业信息安全的核心环节。但在备份过程中,两个关键概念——应用一致性和崩溃一致性,常常被误解或混淆。
    的头像 发表于 03-11 11:29 793次阅读
    深入理解数据备份的关键原则:应用<b class='flag-5'>一致性</b>与崩溃<b class='flag-5'>一致性</b>的区别

    DDR一致性测试的操作步骤

    DDR一致性测试的操作步骤  DDR(双数据率)一致性测试是对DDR内存模块进行测试以确保其性能和可靠。在进行DDR一致性测试时,需要遵循
    的头像 发表于 02-01 16:24 1252次阅读

    微美全息(NASDAQ:WIMI)探索全局-局部特征自适应融合网络框架在图像场景分类中的创新运用

    面临着许多挑战,如复杂的场景等。然而,现有的图像场景分类方法往往只关注全局局部特征的提取,而忽略了全局和局部特征之间的互补关联。为了解决这
    的头像 发表于 01-05 16:08 340次阅读
    微美全息(NASDAQ:WIMI)探索<b class='flag-5'>全局</b>-<b class='flag-5'>局部</b>特征自适应融合网络框架在<b class='flag-5'>图像</b>场景分类中的创新运用

    MM32F0140 FlexCAN一致性测试 (2)

    MM32F0140 FlexCAN一致性测试 (2)
    的头像 发表于 11-10 18:23 618次阅读
    MM32F0140 FlexCAN<b class='flag-5'>一致性</b>测试 (2)

    MM32F0140 FlexCAN一致性测试(1)

    MM32F0140 FlexCAN一致性测试 (1)
    的头像 发表于 11-10 17:50 578次阅读
    MM32F0140 FlexCAN<b class='flag-5'>一致性</b>测试(1)

    什么是锂离子电池不一致性?如何提高锂离子电池的一致性

    什么是锂离子电池不一致性?锂离子电池不稳定的原因?如何提高锂离子电池的一致性? 锂离子电池不一致性是指同批次或不同批次的锂离子电池在性能上出现不
    的头像 发表于 11-10 14:49 1606次阅读

    分布式系统中常见的一致性模型

    什么是一致性模型? 在分布式系统中,C(一致性) 和 A(可用)始终存在矛盾。若想保证可用,就必须通过复制、分片等方式冗余存储。而旦进
    的头像 发表于 11-10 11:33 833次阅读
    分布式系统中常见的<b class='flag-5'>一致性</b>模型