了解CV和RoboMaster视觉组(五)参数自适应与稳健特征

--neozng@hnu.edu.cn

5.5. 参数自适应方法和稳健特征

不论是传统的图像增强算法还是神经网络,总有一些参数是需要手工调整的,而这些参数得设置是否恰当,往往会影响整个算法的表现。手动设置的参数往往是针对部分情景和特定目标的,若环境或任务发生改变,之前的参数很可能会失效。这也是为什么我们都追求一种能够适应尽可能多的场景的参数设定方法,亦或是尝试元学习以指导参数的自动选取,减少人为干预。

不过即使再怎么追求hand-crafted free,我们似乎无法逃脱设置参数的魔咒——用于选取参数的算法在另一种角度来看仍然是一种参数,也就是深度学习中常说的超参数,而超参数之上亦有参数,这就是meta learning。如果我们希望不要人为设定meta learning的参数呢?那便有了meta-meta learning,我们可以不断增加meta的前缀直至无穷无尽... 即使是下面介绍的自适应方法本身,也算是一种prior knowledge,或者约束。

因此,参数自适应的方法就显得尤为重要了。我们希望能够在分割图像的时候自动选取合适的阈值,希望在分类图像的时候得到错误率最小的置信度阈值,希望在获取图像特征的时候划分得到最富有语义信息的部分······

本节将会介绍传统的图像处理中常见的参数自动选取和阈值自适应技术,以及运用了这些方法的特征点检测/目标i检测算法如LBP/FAST/SURF/ORB/SIFT/HOG。此节的内容也会更贴近实际应用,会稍微涉及一些比赛中的实用coding方法。

理论上来说,这一部分应该放在神经网络和CNN之前,因为CNN其实算是借鉴传统方法发展起来的,其特征表和提取都算是传统方法的泛化结果。

5.5.1. 阈值自适应与不变特征

对于黑白图像(彩色图像同理),亮度/像素点的值是最基本的特征。一般的计算机视觉任务都需要对输入进行预处理如标准化、提亮/暗化、锐化/模糊等,所以首先来看看像素级特征和形态学特征。

5.5.1.1. 亮度自适应

由于相机曝光/光圈/外界光线环境的变化,输入的图像常常有着不同的视野亮度。倘若我们希望在预处理中对所有图像进行整体提亮/暗化以达到相同的亮度水平,显然设置一两个一成不变的参数是不够的。不同的 图像要达到相同的 效果,就提醒我们应当使用自适应技术。 最简单的方法是对所有像素值求平均,然后使得所有图像的亮度均值相同,这样在稍后的处理中就可以用一个相同的参数对付所有图像了。

不过增减均值有时候并不是最好的选择,若我们希望在稍后得到图像的形态学特征,常常需要进行二值化处理,这时候阈值的选取就非常关键了,如果部分图像整张都偏暗或偏亮,阈值稍大可能导致特征被删除,太小又可能留下过多不需要的形状;特别有时候我们希望增大图像的对比图突出边缘和纹路等细节,那可以使用直方图均衡化的技巧,其将一张分布不均匀(常常是有大块明暗区域)的图像的直方图变得更接近均匀分布。这能够大大提升图像的对比度,使得明暗的差异增大,让我们更好地分离需要的部分。其基本思想是对在直方图中密度大的区域进行展宽,而对密度小灰度级进行缩减。

Histogram equalization的例子,图源知乎https://zhuanlan.zhihu.com/p/29772177

经过HE的操作,原本不明显的边缘和纹理也都变得更清晰了,最重要的是现在可以方便的选择阈值进行二值化操作了。

根据预处理目的的不同,我们也可以把没有达到均值部分的像素值与均值的差看作是某种损失,若相差越大就要施以更大的”惩罚“,即在稍后将此像素值增大/缩小得更多一些。比如L1 loss或L2 loss都是可用的,也可以采用一些更平滑的曲线。

5.5.1.2. 局部阈值自适应

前述的亮度自适应方法在一定程度上可以解决图像亮度变化造成的影响,但是考虑这种情况:我们分割出一张报纸上的文字(黑色字体),但是报纸的一侧暴露在阳光下,而另一侧则在黑暗中。那么即使进行了直方图均衡化,由于其亮度的”两极分化“,高亮和强暗区域仍然是糊成一团。这时候就应该选用局部阈值局部直方图的方法了,其本质是使用比全局统计特征(即直方图)更精细的分类。

使用局部动态阈值和单一阈值的对比

可以看到,采用动态阈值后很好地解决了这个问题。其实现过程也应该很容易想到:使用一个mean slide window或者gaussian slide Window处理整个图像,对部分区域统计均值/加权均值并由此设置均值的1/5或1/4(这个值仍然是人为设定的,取决于对细节的取舍)作为阈值,便可以得到上面的效果了。

使用局部直方图均衡化对比全局均衡化,中间下方的纹路差别更大了

局部直方图均衡化可以取得的效果和动态阈值相仿,不过和全局直方图均衡化希望得到形态学特征相比其更注重的是纹理和细节:对比上图中的global equlize和local equalize的结果就可以看到,若只希望得到外形轮廓即形态学特征,应该使用全局直方图均衡化,中间下方的沙坑轮廓非常明显;而要获取所有纹理特征,则应该选用局部直方图均衡化。

其步骤也同样非常简单,取滑动窗口和一定的步长(你看吧,滑动窗口的大小的步长以及是否加padding仍然是需要人为设定的超参数,使用不同的参数可以得到不同的效果,可以自己想想试试看),对滑窗内进行均衡化即可。

5.5.1.3. 形态不变特征

注意区别这里介绍的是形态学特征(morphology feature,指的是图像中具有一定形状的图形)而非前述的一般特征,不过形态学特征是作为一般特征的子集。请结合具体的例子进行理解,如RoboMaster比赛中的装甲板识别任务。

在处理形态学特征的时候,我们可能希望寻找一些由不同区块的轮廓组成的目标,在比赛中常见的即装甲板灯条的匹配,其在正常曝光下从远处看是两个对称的梯形,而我们一般将其视作一个轮廓进行处理。当我们希望匹配处于同一个物体上的两个或多个形态特征(对于装甲板识别就是找到处于同一块装甲板上的灯条),应该寻找对旋转/尺度/平移都有不变性的特征。

以灯条匹配为例,装甲板距离相机的距离会导致灯条长度的改变,但是不论距离远近,处于同一块装甲板上的灯条的长度比始终应当保持不变(根据 4.1 介绍的相机小孔成像模型),这就是一个尺度不变特征,显然灯条的宽度比也同样是一个很好的衡量指标。而由长宽相乘得到的面积,也可以作为一个筛选/匹配的准则,不过应该使用面积比而不是面积(面积比和长/宽比似乎在一定程度上有一些耦合,不过可以对筛选顺序进行合理排序,面积比可能更容易清理哪些非灯条的目标,在 6.1.1 我们会再进行介绍)。

至于平移不变性,这对于非定位和non-global-based的特征来说都是可以得到保证的,因为要利用形态学特征进行匹配,首先就应该定位这些轮廓

最后是旋转不变性,角度是候选的常客,只要是目标在空间中进行的是刚体变换,变换后的特征仍然会服从角度一致。但是对于out-of-plane的投影变换(相机成像)来说,物体的任何性质都不会被保留。但是对于畸变程度较小的镜头和真实尺度较小的目标,在数倍焦距外的相对角度被投影到2d平面后往往只会产生轻微的形变,因此之间的相对角度仍然可以作为一个筛选的标准,一般只要适当放宽筛选条件即可,这也适合对匹配目标进行初步筛选,删除那些极端值。

两个灯条拥有的尺度不变性特征

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值