图像关键点
图像关键点是图片中一个细小而独特的位置,计算机能够可靠地再次找到它——哪怕场景移动了、相机动了,或者光照变了。可以把它想成一个视觉地标。就像你在城市里靠记住街角和路牌、而不是记住每一块砖来辨路一样,机器人也会挑出一组稀疏的、格外醒目的点,而不去试图追踪每一个像素——后者是徒劳的,因为大多数像素看起来都和它的邻居一模一样。
一个好关键点的关键,在于从任何方向看都不会被认错。一面空白白墙正中的一点毫无用处:把你的观察窗口往任何方向滑动,它看起来都一样,于是你根本判断不出有没有东西动过。一条笔直边沿上的一点只能算半个有用:当它横跨边沿移动时你能察觉,但沿着边沿滑动时看起来还是一样。两条边沿相交处的角点才是宝贝——无论你把它往哪个方向轻推,它周围的局部图案都会变,于是机器人就能精确地定位它。这正是经典的角点检测器成为关键点查找主力的原因,也是关键点最受看重的两个特质:可重复性(在一张新图像里能再次找到同一个实物上的点)与独特性(不会和别的点混淆)。
关键点是机器人视觉中许多任务的锚。通过在两张照片里找到同一些实物上的点,机器人可以拼接全景图、逐帧追踪自身的运动、一边给环境建图一边在图中给自己定位,或者从一对立体图像中估计物体的深度。每个关键点通常还会配上一个特征描述子——对它周围环境的一段紧凑“指纹”——这样同一个点才能在不同视角之间被认出并匹配上。
一架在停车场上空飞行的无人机,把白色停车线上漆出的拐角当作关键点锁定。由于这些拐角在一帧又一帧画面中反复出现,无人机便能测出自己在两次拍摄之间漂移了多远,从而稳住位置。
角点是理想的关键点:往任何方向轻推,局部图案都会改变,因此可以被精确地重新定位。
关键点检测是一种由人手工设计的几何思想,比深度学习还要古老,但现代系统越来越多地让卷积神经网络去学习哪些点值得保留。