4A-1.什么是特征
Features
图像中的特征
缘起
我们都玩过拼图游戏,图片被切成许多块,你需要把他们按照正确的顺序排列起来,形成一张大图。问题是你要怎么做?如果能明确描述拼图方法的话,那么能不能把这些方法做成计算机程序交给计算机?如果计算机能做这件事,何如我们给计算机一些现实世界的图片让它去拼成一张大图?比如一些自然景观的图像、建筑物的图,或者其他结构的图像等等,让计算机去创建一个3D模型。
那么问题来了,人类在玩拼图游戏时,是怎么做的呢?人类是如何摆放每一个小图片呢?
答案是,我们会寻找一些特殊的模式或者叫特殊的特征,它们都是独一无二的,易于跟踪和比较。特征,很难用一个词定义,但我们知道它就在那里。如果有人让你找出一个好的特征点来,用来与其他图片进行比较,你会很轻松的做到。甚至一个小孩子也能很容易的玩这个游戏。那么我们可以这样做,首先找到图片上的特征点,然后将他们与其他图片的特征点进行比较找到对应的点,然后将匹配到的点进行对齐(投射变换)。这些技能早已内置于我们的大脑中。
至此,我们的问题被分解为数个明确的问题。首先什么是特征?(该定义应让计算机也能明白)
很难说人类是怎么发现特征的。因为它已内化于我们的大脑。如果我们仔细研究一副图片,从中找出不同的模式,我们会得到一些有趣的结论。如下图:
图片上方有6块切图,如果让你在大图中找到他们相应的位置,你能找对几个呢?
AB是平面。他们都能展开成一片区域,所以很难定位他们的位置。
CD相对简单,像是建筑的某处边,但仍然很难说出他们的具体位置。这是因为他们沿着边移动时得到的模式是相同的。他们相对于平面来说变好了,但仍然不够好。
EF像是建筑的某个角点,而且很容易就能找到它们的位置。因为在角点处,不论朝哪个方向移动,都会产生较大变化。所以他们是好的特征点。
正如刚才讨论的,蓝色的切图是平面区域,它很难找到和跟踪,不论朝哪个方向移动,它看起来都是一样的。黑色的切图有一个边,如果竖着移动,它会有变化,但是沿着边移动,它没有变化。对于红色的切图,不论朝着哪个方向移动,它都会有变化,这意味着角点处是一个独一无二的点(不仅是角点,有些单独的点(blob)也是好的特征点)。
现在我们回答了我们的问题“什么是好的特征点?”。那么如何找到他们呢?或者说我们怎么找到这些角点?直观地说,我们可以找出图片上移动切图框时变化最大的地方(纹理变化剧烈的地方)。找到这些点的过程叫特征提取(Feature Detection)。
为了能够在其他图片里找到对应的点,我们应当对特征点进行描述,比如这样描述一个特征点:“上半部分是蓝天,下半部分是建筑物,建筑物上有玻璃等”。同理,计算机也应当对特征点进行描述,这叫做特征描述(Feature Description)。一旦拥有了特征和它的描述,我们就能找到所有图片上的特征点并进行对齐操作,然后将他们黏在一起拼成一张大图。