基于协作的原型表示的图像集分类((ISCER)
对于图像集分类,至关重要问题包括如何简单有效地表示图像集以及处理异常值。基于协作的原型表示的图像集分类,这种方法一个明确的物理意义:通过寻找原型来对数据进行压缩,同时移除那些降低分类性能的异常值。与其他方法不同的是:对于图像集,该方法确地选择了可以恰当地描述这个图像集的原型,对于测试集,该方法在由样本组合成的图库集上协同表示。解决了表示系数之后,测试集和每个图库集之间的距离可以用来评估分类。对..
对于图像集分类,至关重要问题包括如何简单有效地表示图像集以及处理异常值。基于协作的原型表示的图像集分类,这种方法一个明确的物理意义:通过寻找原型来对数据进行压缩,同时移除那些降低分类性能的异常值。与其他方法不同的是:对于图像集,该方法确地选择了可以恰当地描述这个图像集的原型,对于测试集,该方法在由样本组合成的图库集上协同表示。解决了表示系数之后,测试集和每个图库集之间的距离可以用来评估分类。
对于那些基于仿射包/凸包的方法,图像集可以被表示为在特征空间的凸包或仿射船体。通过对的相似性:几何距离的评估,得到两组在这两个仿射包上最近的成对点。最近邻模型之所以受欢迎,主要是因为两个原因首先,这个模型不需要做分布假设
和参数估计。第二个原因是这个模型的性能并不太依赖于采样密度。最近的点方法取决于仿射包顶点的位置,分类在图像集中的异常值会使性能恶化:
比如上图,三个仿射包:测试集和图像集1,图像集2,测试集和图像集1的距离为dp1,和图像集2的距离为dp2,但是由于图像集2上有一个异常值的存在使得dp,f2<dp1<dp2,从而导致错误的分类结果。
基于协作的原型表示的图像集分类((ISCER)步骤如下:
1)显式地检测和移除离群值,找到图像集对应的的代表性子集,中的任意一点都可以由代表点的线性组合表示得到。最终获得图库集中每个集合的紧凑表示
2)计算得到最接近的协作表示距离,该距离用于图像集分类。
直观图如下:
与基于协作表示的方法相比,ISCER由于并没有使用图库集中的所有图像所以内存需求也大大的降低。此外压缩的图库集集将有助于快速解决协同表示的优化问题中涉及的用于分类的表示系数 α、β。可想而知,计算时间也大大降低。
与通过正则化约束减少了异常值的影响的方式不同。ISCER显式地检测和删除显著的降低分类性能的异常值。ISCRE中的字典学习只是简单地定义对于画廊中所有图像集有相同的数目的原子。这不是普遍的,因为不同的图像集通常需要不同数量的原子来编码。而数据自我表达可以自适应地确定能够很好的重建数据集中的真实数据的原型数量。这些选择出来的样本在图像集上是对应凸壳的顶点因此,他有一个清晰的物理意义和几何图形解释。
这种方法主要贡献:
1)明确地检测和拒绝会显著降低分类性能异常值
2)在集合中找到了一个的样本有一个清晰的物理意义:集合的凸壳的顶点,这对进一步的分析是有益的
3)自适应地选择可以捕获的原型图像在外观和大小上的变化。这对于保持集合信息与分类相关性能一致来说非常重要
4)压缩集数据可以极大地减少优化找到用于分类的协作表示系数的时间
算法步骤:
1)代表性的图片的寻找
字典学习得到的原子基本上和原始数据不一致并且缺少明确的物理意义。因此,得到的结果不能被认为是数据的良好典范或代表点数据集。为了获得对于图像集分类具有代表性的图像,我们可以根据工作学习计划修改字典。
第i个图像的数据矩阵表示为是图像的一个d维特征, 代表在这个集合中的N个图像,通过解决以下优化问题得到:
C是一个行稀疏的系数矩阵,||C||0表示C中非0的行的行数,公式(1)的目的就是通过优化得到m<<N个原型能够很好的重建中的所有图像,换句话是,这个集合中的每个图像都可以用这m个原型的一个子集的仿射组合表示。因此,通过选择原型来进行紧凑的表示也被称为物体空间维度减少。
然而,优化问题(1)是np-hard问题,这需要在所有的子集上搜索m列。类似于许多稀疏模型,使用l1范数在优化问题上放松,因此,公式(1)重写为
是矩阵C的每一行的行地l p范数的总和。是一个可选参数,为了使(2)是凸函数,通常选择lp>1。利用拉格朗日乘数法,这个优化问题可以进一步写成:
为了得到C*的解决方案,使用一种交替的乘数优化框架(ADMM)实现了算法。公式(3)C*的解决方案提供关于代表性图像描述原始图像集的相对重要性的信息,直观地说,行C*具有较大值的非零元素,这就意味着对应于集合中更重要的代表性图像。让秩为k的图像集表示为:, 第一个k个原型是通过计算C*每一行的lp范数找到第一组k个样本对它们进行排序:
选择k个原型对应上面第一个k行,最后,这些k个原型形成了紧凑的表示
图像集通常都会包含一些影响分类性能的异常值,通过选择具有代表性的点的过程中消除在原始数据中的异常值。通过观察,我们可以发现异常值通常是与真实图像的集合不连贯,每个离群值都是它自身的表示。因此,一个异类很容易被自己所表示。但是通过矩阵C*的行发现,异常值并不是严格的由自己表示,一般它是由几个异常值/真实值表示,因此C*中稀疏的行可以用作检测异常值的标准,我们定义在矩阵C*的第i行中行-稀疏指数:
如果RSI的值接近1,这就意味着这一行所对应的是一个异常值,反之,如果RSI的值接近于0,这就意味着这一行所对应的是一个表示样本,一般来说,当图像的RSI值大于临界值τ0,则就会被认为是一个异常值。
例如,当τ0 = 0.20,我们找到了这些代表样本并发现了异常值的过程,如下图所示:
他们对应的系数矩阵C*如下图所示:
2)图像集的协作表示分类 (同CRC)
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)