机器学习笔记 - JigsawNet论文解读

一、摘要

        使用卷积神经网络和基于循环的组合的碎片图像重组

        这里提出了一种新的算法,可以将任意切碎的图像重新组装到其原始状态。现有的重组管道通常由一个局部匹配阶段和一个全局组合阶段组成。在局部阶段,片段重组的一个关键挑战是可靠地计算和识别正确的成对匹配,大多数现有算法都使用手工制作的特征,因此不能可靠地处理复杂的难题。我们构建了一个深度卷积神经网络来检测成对拼接的兼容性,并用它来修剪计算的成对匹配。为了提高网络的效率和准确性,我们将CNN的计算转移到拼接区域并应用aboost训练策略。在全局组合阶段,我们将常用的贪婪边缘选择策略修改为两种新的基于回环的搜索算法。

二、引言

        此处略去一大段,主要是说从碎片化的视觉数据中重新组装和恢复原始信息是比如法医和考古工作用很有意义。

        片段重组问题可以表述为解决任意切割的拼图游戏。然而,教计算机可靠地做到这一点仍然具有挑战性,因为它在1964年中首次讨论。困难来自解谜的局部和全局方面。 (1) 在局部,我们需要识别相邻的块并正确对齐它们。但相关片段仅共享可匹配的几何形状和沿断裂边界的纹理。与在图像全景和运动结构等经典问题中研究的部分匹配不同,其中重叠(重复模式)通常更为显着,这里相邻片段之间的相关性较弱且难以识别。 (2) 总体而言,即使设计良好的成对对齐算法,由于各种噪声和模糊性,它通常并不总是可靠的。有效的组合需要从更全局的方面考虑相互一致性。不幸的是,强大的全局组合算法通常很复杂,计算量很大,并且容易出现局部最优。

        对于局部匹配,在计算成对对齐之后,可靠地识别这样的对齐是否正确并不容易。直观地说,图像上下文中跨越断裂边界的平滑过渡可能是制定或评估成对对齐兼容性的关键标准。然而,这种平滑度并不简单 表示颜色或梯度的相似性,但抽象且难以以封闭形式建模。其次,非平滑性也经常存在于图像内容中近前景/背景轮廓、轮廓或场景中相邻对象之间。 第三,在没有丰富纹理的区域(例如,纯色背景或夜空)上,对齐可能有很大的歧义,在这种情况下,不正确的拼接也可能产生自然过渡。

        对于全局组合,当局部成对对齐不可靠时(例如,许多不正确的对齐与正确对齐混合),通过最大化组间相互一致性来找到所有正确的对齐本质上是一个 NP-hard 问题。处理复杂的谜题需要一种有效且有效的策略。

        在这项工作中,我们解决这些困难的主要思想和技术贡献如下。在局部,我们设计了一个卷积神经网络(CNN)来从碎片化的训练数据中学习隐含的图像特征,以判断局部对齐正确的可能性。 在全球范围内,我们将已在 SLAM、环境重建领域、和之前的方形拼图游戏、上有效使用的闭环约束推广并应用到 任意切碎(几何不规则)的图像碎片。

        总之,这项工作的主要贡献是

        我们设计了一个 CNN 网络来评估片段对之间的匹配成对兼容性。为了提高网络性能,设计了两个技术组件:(1)CNN计算注意力在拼接区域上的转移,以及(2)用于解决数据不平衡问题的自适应提升训练程序。

        我们开发了一种新的基于闭环的合成策略来强制多件姿势之间的相互一致性。这极大地提高了全局组合的鲁棒性,尤其是在解决复杂的谜题时。

三、相关工作

        一般来说,我们可以将拼图问题分为解决规则形状的谜题和解决不规则形状的谜题。

扫描二维码关注公众号,回复: 14175765 查看本文章

1、解决规则形状的拼图

        方形拼图是规则形状拼图中最典型的案例。最近,多篇文献研究了这个问题。乔等人仅使用拼接边界的平方和色差(SSD)评估片段间一致性,并使用图形模型来解决全局组合。彭慕兰等人利用各种测量策略来提高成对对齐兼容性的准确性,并在全局组合中为贪心求解器引入了一种共识度量。加拉盖特人开发了一个马氏梯度兼容性(MGC)来评估成对对齐使用强度梯度的变化,而不是边界附近强度本身的变化;在全局组合阶段,他们贪婪地生成一个最小生成树来连接所有部分。Son 等人利用循环约束配置来过滤掉假阴性对齐;通过更准确的强度梯度计算改进了上述 MGC 测量,并通过改进共识组成进一步增强了整体重组。

        那些最先进的方形拼图求解器甚至可以处理一千多个碎片。但是,方形求解器不能用于处理具有任意形状片段的一般谜题。 关键区别在于假设碎片是正方形的。这种简化使这个问题具有组合性:片段总是位于由一对网格整数 (I,j) 索引的单元格的 2D array 中,并且旋转只是 k * \pi / 2。 在这样的方形片段上,成对的兼容性测量,如 SSD、MGC 及其变体,可以简单地考虑在直线边界上沿水平和垂直方向的像素强度/梯度一致性。 从全局角度来看,可以在 2D 网格上轻松地制定和检测回环。 基于这些简化开发的算法不适用于一般的谜题。

        鲍马尔代特设计了一个CNN神经网络来预测片段的相对位置,然后对全局组合应用贪心策略。 然而,他们的方法只能解决简单的难题。

2、解决不规则形状的拼图

        不规则形状的拼图由任意切割的碎片组成。 切碎的图像或文档是此类难题的典型和实际案例。

        来自边界像素的颜色信息用于构建图像片段描述符以进行匹配。Amigoni 等人从片段的边界轮廓中提取颜色内容,并使用它们来匹配和对齐图像。 Tsamoura 等人应用基于颜色的图像检索策略来识别潜在的相邻片段,然后使用边界像素的颜色来构建轮廓特征。然后通过找到片段轮廓之间的最长公共子序列来计算成对匹配。 还有人通过图像修复来预测片段边界之外的条带的纹理,然后使用基于FFT的配准算法来查找片段的对齐方式。

        片段的边界几何也常用于片段匹配的构建特征。 朱等人通过多边形近似撕裂碎片的轮廓,并使用多边形上定义的转向角作为几何特征来匹配碎片。 刘等人还使用多边形来近似噪声片段轮廓,然后沿简化边界提取顶点和线特征以匹配部分曲线。 每个成对匹配候选包含一个分数,以指示匹配的好坏。 他们使用这些分数来构建加权图,并应用切面聚类技术过滤掉不相关的匹配。Zhang 等人在几何和颜色空间上建立多边形近似,并使用 ICP 计算潜在的成对匹配。 多个成对对齐存储在多图上,由成对匹配分数加权。 全局组合通过贪心搜索找到一个具有最大化兼容边集的简单图来解决。

        所有这些现有的谜题求解器通常遵循三步组合程序:(1)设计基于几何或颜色的特征来描述片段; (2) 计算片段间的对应和/或刚性变换(对齐),使用一个分数指标对这些对齐进行排序; (3) 使用可接受的成对对齐方式全局重新组装各个部分。 然而,这些现有的算法不仅依赖于具有良好设计的特征,而且往往需要仔细调整参数。 一般来说,这变得非常困难,因为谜题可能有不同的内容和不同的复杂性,并且一组预先确定的手工制作的特征和手工调整的参数可能不适用于所有各种案例。 在所有这些现有文献中报道的大多数实验中,谜题相对简单,碎片数小于30。

四、我们的解决方案概述

        如下图所示,我们的方法包含三个组件:成对对齐候选提取、成对兼容性测量和全局组合。直观地说,如果遵循成对匹配,两个片段可以对齐(在刚性变换下)与边界上的自然几何和纹理过渡,我们认为这是候选对齐。但是在匹配之前,我们不知道两个片段是否相邻。因此,我们计算每对片段之间的匹配。我们采用中使用的成对匹配计算策略,将匹配表述为部分曲线匹配问题。

图像重组算法流水线。 给定图像片段,我们首先计算成对对齐以获得许多成对对齐候选。然后,我们使用 CNN 检测器将可能正确的对齐与不正确的对齐分类。 最后,我们通过使用闭环约束最大化片段之间的相互一致性来进行全局组合。

        具体来说,它包含四个步骤:(1)通过改进的RDP算法(Ramer-Douglas-Peucker 算法,也称为Douglas-Peucker 算法和迭代终点拟合算法,是一种将由线段组成的曲线抽取成具有较少点的相似曲线的算法。),将噪声片段边界轮廓近似为一个多边形,其每个线段具有相似的颜色; (2) 通过迭代估计所有可能的段到段匹配来匹配每个片段对; (3) 使用 ICP 算法(Iterative closest point)细化那些良好的段到段匹配;(4) 通过计算对齐良好的像素的体积来评估成对匹配分数。在每个片段对之间,这种匹配算法会产生一组可能的比对,其中正确和不正确的比对都存在,并且不正确的比对数比正确比对数大得多。

1、成对兼容性测量

        对于成对对齐候选,我们仍然需要一个可靠的兼容性评估器来检查这些候选:保留可能正确的候选并过滤掉可能不正确的候选。这样的检测器可以减少下一个全局组合步骤中的搜索空间,并有利于重组的鲁棒性和效率.在大多数现有的重组算法中,设计了启发式和手工制作的特征和评估方案来衡量这种兼容性。例如,对齐分数定义为匹配像素的数量(即,在片段上进行 ICP 变换后,具有​​相似颜色、相反法线和小空间距离的像素)。匹配分数被定义为提取的最长公共子序列的加权长度。然而,这些手动设计的评估器并不总是适用于不同的谜题,而且参数调整通常很困难。因此,在这项工作中,我们使用 CNN 网络设计了一个成对兼容性检测器(分类器)。该网络经过训练以识别在特定成对对齐下的图像片段对的拼接是否正确。

2、全局组成

        即使有一个好的成对兼容性检测器,由于局部模糊性导致的错位有时也是不可避免的。此类错误需要从全局角度进行处理。我们使用许多片段的姿势的相互共识来修剪成对对齐并全局组合片段。广泛采用的共识约束是闭环:正确的成对对齐在空间上相互支持,并且如果它们被考虑在一个循环中,则它们的相对变换构成一个闭合循环。这种闭环约束已广泛应用于许多基于视觉的 SLAM 和环境重建中的精炼或修剪成对对齐。然而,在拼图解决问题中强制执行闭环比在这些 SLAM 和重建任务中更具挑战性。首先,在重组中,异常值支配了内部值,此外,由于相邻部分之间的重叠明显较小并且存在小环,不正确的对齐有时会形成闭环。简单地应用贪心闭环,这是最先进的 SLAM 系统中的常见策略,将无法可靠地工作。其次,除了闭环约束之外,全局组合还应该防止任何片段间的交叉,并且这种额外的约束不能与闭环约束一起以连续闭合的形式表示。强制执行它也会使解决方案变得更加昂贵。我们在一般多图上开发了闭环搜索和合并算法。这些算法不仅在片段重组,而且在数据集稀疏采样时的一般 SLAM 和环境重建方面都有很好的应用。

五、成对兼容性测量

        成对匹配计算导致正确和不正确的对齐。 尽管我们可以开发一种组合算法来在最后的全局步骤中使用相互共识来修剪不正确的对齐方式,但它的计算成本很高。 当难题很复杂时,完全依赖全局剪枝是禁止的。 一个有效的候选人过滤和预选工具对作文效率和可靠性都很重要。

        在大多数现有的解谜算法中,通常使用基于实验或参数调整的手动设计的配对匹配分数和启发式阈值来进行此过滤。 不幸的是,构建手工制作的特征和加权参数来评估各种拼图(具有不同的内容和几何/大小复杂性)的拼接通常非常困难。 因为评估拼接内容是否呈现自然过渡不仅涉及几何、颜色、纹理等分析,还涉及更高层次的语义分析。

        因此,我们没有手工制作检测器,而是将对齐是否正确的问题表述为二元分类问题,并训练 CNN 进行这种成对兼容性测量。

1、用于兼容性测量的 CNN 检测器

1) 概述和主要思想

        AlexNet、VGG16和 ResNet等流行的卷积神经网络架构已被开发并应用于许多图像分类和识别任务。但这些经典任务与片段拼接兼容性测量在两个方面有所不同:(1)在这个问题中,不是处理通常包含相对完整内容的矩形图像,而是图像片段的形状不规则,其内容往往非常局部和不完整。(2)在传统的分类或识别中,从局部到全局,以及来自整个图像的特征可能有助于分类。然而,在片段合成问题中,在拼接区域附近提取的能够表征图像内容过渡平滑度的特征最为重要。

        因此,我们设计了一个新的CNN网络,整合了残差块和RoIAlign结构的理想特性。

        首先,对于成对兼容性测量,通常不需要计算复杂且深度的特征图,因为图像片段中的内容是局部且不完整的。因此与许多其他高级识别任务不同,它不需要建立在深度和复杂的特征图堆栈上。 因此,我们构建了一个相对较深的网络(总共 29 个 CONV 层),但使特征图的堆栈变浅(最大特征图堆栈为 128)。 这种网络结构中的参数数量比 ResNet等流行的深度主干网络要少得多,并且训练(优化迭代)和测试(评估)明显更快。

        其次,区分正确和不正确对齐的关键线索应位于拼接边界附近。正确的成对重组将保持内容的平滑过渡。一个简单的低级内容平滑度可以是颜色强度的平滑度或渐变的平滑度(尤其是在没有复杂纹理的区域)。下图说明了两个示例。在拼接区域(绿色框),自然过渡很重要。但在其他地区,内容的不太平滑的过渡可能可以忽略不计。

拼接区域中的平滑内容过渡(绿色框)。其他区域的非平滑内容过渡(例如树枝与背景天空)在评估拼接兼容性时不太重要。

         因此,一方面,CNN应该被训练来观察内容转换的平滑度,另一方面,网络应该把注意力集中在关键的拼接区域上。这不仅可以加快学习过程,还可以提高识别精度。

2)网络架构设计

        关注感兴趣区域 (RoI)。应用感兴趣区域对齐方法(RoIAlign)将计算的注意力转移到拼接区域。 RoIAlign是神经网络中的一个池化层,用于从每个特定的感兴趣区域 (RoI) 中提取特征图。为了平滑计算该层的特定输出大小,使用了双线性插值。我们在最后一个池化层中应用 RoIAlign,并且在浅层池化层中仍然使用传统的最大池化。 这种设计有两个好处:(1)浅层的最大池化可以有效地增加感受野。 (2) 在最后的 RoIAlign 中,仅计算位于 RoI 中的特征,并主要基于拼接区域进行最终分类(在全连接层中)。 基于这种设计,网络训练不仅在局部拼接区域上进行,而且在整个图像上下文上进行。

        网络架构

        神经网络的输入是一系列 160 \times 160 \times 3 幅图像,具有相应的权重和边界框坐标,覆盖了两幅图像之间的邻接区域。 原始输入图像由一个卷积块和 12 个残差块处理。 卷积块 (CB) 应用以下模块:

        (1) 8 个过滤器的卷积,核大小为3 \times 3,步长为 1。

        (2) 批量归一化[。

        (3) 一个整流线性单元(ReLU)。

        残差块 (RB(r, h))有两个参数:输入深度 r 和输出深度 h。 每个残差块具有以下架构:

        (1) h 个滤波器的卷积,核大小为3 \times 3,步长为 1。

        (2) 批量归一化。

        (3) 一个整流线性单元(ReLU)。

        (4) h 个滤波器的卷积,核大小为 3 \times 3,步长为 1。 

        (5) 跳跃连接。

        如果 r = h,则直接将输入连接到模块。

        如果 r 不等于h,则应用内核大小为 3 3 且步长为 1 的 h 滤波器的卷积,并进行批量归一化。

        (6) 一个整流线性单元(ReLU)。

        输出被传递到一个最大池化或 RoIAlign。 RoIAlign 通过使用双线性插值将位于输入边界框中的特征图裁剪并调整大小为4 \times 4个小特征图。最后两个全连接层将特征图转换为 one-hot 向量(即 2\times 1 向量)下图说明了完整的网络架构。 

卷积神经网络架构。 CB 是卷积块。 RB(, h) 是输入深度为 r,输出深度为 h 的残差块。

 3) 训练检测器

        合成碎图像。为了训练我们的 CNN 检测器,我们构建了一个粉碎程序来模拟给定图像的碎片。 切碎由三个参数控制:(1)拼图复杂性(要生成的切割数量),(2)随机切割方向,(3)沿切割曲线的扰动。 使用这个生成器,我们可以合成大量碎片化的图像数据进行训练和测试。

        为了训练 CNN 检测器,首先,使用上述成对匹配算法对合成的图像片段进行对齐;这些对齐用于拼接两个图像片段;然后,将拼接后的图像输入CNN进行训练或测试。网络的输出通过代表真假分类概率的softmax函数进行归一化。我们将此概率称为对齐分数。下图说明了分类结果的一些示例。

一些 CNN 分类结果。 是输出概率/分数.G.T. 代表基本事实。 通常,我们使用分数阈值 0.5来区分正确对齐和不正确对齐。 (b)被CNN误判了。

2、解决数据不平衡

        在训练 CNN 检测器时,我们从合成的图像片段中计算出许多成对对齐。 然而,这些计算出来的对齐是不平衡的。 在每一对片段之间,只有一个正确的比对,但部分匹配可能会找到许多不相交的比对。 这些不正确的对齐,表明各种不兼容的转换,对于增强检测器的泛化和识别能力很有价值。 我们将这种真实对齐与错误对齐的不平衡称为类间不平衡。

        此外,在错误对齐中,由于边界几何形状不一致和图像上下文不一致而存在错误。 在对齐候选计算中,原始片段边界由多边形近似,对齐(变换)通过匹配多边形边对来计算。 将生成比不一致的图像内容对齐更不一致的几何对齐。 下图说明了这两种类型的不一致的示例。(b) 显示了一个典型的上下文不一致,其中两个颜色无关的片段被缝合,尽管在几何上缝合非常适合。 (c) 显示了几何不一致的情况,其中颜色上下文似乎可以很好地过渡,但在几何上拼接不是很理想。

         由于大多数合成的不良对齐是由于几何不一致性,它们可能会主导学习过程。 此外,描述图像上下文不一致的特征更难学习,因为图像上下文可能因一张图像而异。 因此,如果我们直接训练一个 CNN,检测器往往会被大多数几何不一致性类所支配,而错过了对上下文不一致性的检测。 该检测器将实现较高的整体准确度,但精度较低。 我们将这种类型的不平衡称为类内不平衡。

        虽然数据不平衡问题与我们的综合策略有关,但它是一个普遍性和根本性的问题,仅通过改进综合策略是难以避免和克服的。 事实上,虽然这种几何不一致性与图像上下文不一致性是我们观察到的简单不平衡,但我们不知道在每个不一致性类中是否存在其他可能被其他错误对齐支配的次要子类。 我们需要一个通用的策略来解决这种班级内的不平衡。

1)解决类间不平衡

        处理 CNN 训练数据不平衡的策略可以分为数据级和分类器级方法。 数据级方法通过(1)过采样(随机复制一些少数类)或(2)过采样(随机删除一些多数类)来修改原始训练数据。 分类器级方法相应地调整目标函数或分类器。 例如,可以计算不平衡类的概率分布,然后通过为不同的类分配不同的权重来补偿。

        对大多数类的数据进行欠采样是一种最简单的方法,并且考虑到较小的训练数据集,它还可以理想地提高训练过程的效率。然而,由于各种不正确的对齐对训练鲁棒检测器很有价值,我们发现通过提供更全面的对齐数据,对少数类进行过采样可以提高最终的分类精度。此外,根据 Buda 等人的说法。 过采样通常对 CNN 网络更有效,并且不会导致过拟合问题(这是经典机器学习模型中的问题)。因此,考虑到训练的准确性和效率,我们在合成的对齐数据集上同时应用过采样和欠采样。在我们的实验中,我们将原始正数据集过采样 20 倍,然后将结果随机下采样到一半。我们最终的训练数据集包含大约 600k 对齐(拼接图像),其中 70% 和 30% 分别是假对齐和真对齐。

2)解决类内不平衡

        数据中也存在类内不平衡。 这种不平衡问题是一个更难解决的问题。在成对匹配期间,产生的具有几何不一致性的错误对齐比带有图像上下文不一致的错误对齐要多得多。但是我们不知道在特定的错误对齐上存在哪种类型的不一致,即使在基本事实的帮助下也是如此。因此,这种不平衡不能通过数据过采样/欠采样或重新加权目标函数来消除。

        Boosting 方法,例如 Adaboost,提供了解决这种不平衡的有效机制。boosting 方法结合了多个弱学习器。 每个弱学习者都在之前的弱学习者表现不佳的数据上进行训练,以补充和强化整体结果。 这样的分类器集成策略适用于我们的类内不平衡问题。 来自先前学习者的错误预测数据通常属于少数类别,这些数据将在下一次学习者训练中分配更大的权重。

        Binary classification boosting

        这里有一系列推导过程......

        CNN boost training

CNN 增强训练。 所有学习者共享相同的网络架构,并独立训练。 每个学习者都从头开始接受加权训练数据的训练。

六、代码参考

        我们在两个公共数据集上进行了实验:MITdatasets和 BGU datasets。然而,这两个数据集只包含有限的一组图像。流行的通用图像数据库,如 ImageNet,不适合测试拼图解决,因为这些数据库中的大多数图像分辨率相对较低,并且每张图像通常只包含一个/简单的对象。因此,我们还创建了一个新的基准数据集。我们使用网站蜘蛛从无版权网站 Pexels自动下载图像。 125张下载的不同类别(例如街道、山脉、植物等)的图像被随机选择作为训练和测试数据。这些图像被随机切割以生成 36 块、100 块的拼图。我们将这组数据表示为TestingSet1。我们还使用5个额外的高分辨率图像来创建具有挑战性的谜题,每个谜题大约有400块。

        下面地址存储了响应代码
GitHub - Lecanyu/JigsawNet: JigsawNet: Shredded Images Reassembly Using Convolutional Neural Network and Loop-based Compositionicon-default.png?t=M4ADhttps://github.com/Lecanyu/JigsawNet

        论文地址

https://arxiv.org/abs/1809.04137https://arxiv.org/abs/1809.04137

        其它参考链接

GitHub - anilsathyan7/Jigsaw-Net: Solving Jigsaw Puzzles with Deep Convolutional Neural Networkshttps://github.com/anilsathyan7/Jigsaw-Net

猜你喜欢

转载自blog.csdn.net/bashendixie5/article/details/124841221
今日推荐