system: [SYSTEM]

user: 2. 方法介绍 2.1. 关键帧提取 在选定基准帧影像后，为了提高图像拼接的效率，获取满足重叠度要求的影像对需要提取关键帧影像。判定当前帧图像是否为关键帧的依据是当前帧与参考帧之间的重叠度 [ 12 ] 。在选定了重叠度和参考帧之后，计算当前帧与基准帧的重叠度，若重叠度满足要求，则将当前帧选为关键帧，否则移动到下一帧，循环上述过程。在选定关键帧之后，再进行下一关键帧的提取。Li Jing [ 13 ] 等人采用逐帧计算的方法进行关键帧提取，其缺点在于效率太低，不适合时效性要求较高的应用领域。Fadaeieslam [ 14 ] 和李岩山 [ 15 ] 等人通过Kalman滤波预测影像四个角点的运行轨迹，进而计算相邻帧影像之间的重叠度。当拼接的范围增大时，随着误差累积等因素的影响，精确的影像角点位置很难获得，因此影响了Kalman滤波预测的准确性，进而影响关键帧的提取精度。刘善磊 [ 16 ] 等人根据摄像机的内部参数、飞行平台的速度、地面像对高等先验知识计算相邻帧之间的理论重叠度，进而按照固定的帧间隔提取关键帧。然而，当这些先验知识无法获取或者地形条件发生改变时，该方法无法获取满足重叠度要求的关键帧。 为了解决上述问题和提高关键帧的提取效率，本文提出了一种自适应关键帧的提取方法，该方法分为两个阶段，一是：统计阶段，二是：提取阶段。在统计阶段通过给定的基准帧和重叠度(根据摄影测量的一般要求，本文设定70%至90%)逐帧计算当前帧与基准帧的重叠度。若重叠度满足要求则记录当前帧与基准帧的帧差，循环上述过程，若重叠度小于设定的下限则停止计算。最后取所有帧差的均值为固定帧差间隔k，至此，统计阶段完成。在提取阶段主要是通过固定帧间隔k提取关键帧。若当前帧与参考帧的重叠度满足给定的阈值范围，则将当前帧记录为关键帧。在重叠度无法满足要求时，若当前帧与参考帧的重叠度大于阈值范围上限(90%)，则以当前帧为基准向前逐帧搜索，并且计算当前帧与参考帧的重叠度，直至重叠度满足要求，将当前帧记录为关键帧。若当前帧与参考帧的重叠度小于给定的阈值下限(70%)，则以当前帧为基准向后逐帧搜索并且计算当前帧与参考帧的重叠度，直至重叠度满足要求，将当前帧记录为关键帧，重复上述过程，直至所有的关键帧提取完成。在提取关键帧的同时，还对提取的关键帧进行了正射校正，为后续的图像快速拼接提供原始的数据。关键帧提取算法流程图如图1所示。 本文将重叠度定义为两幅图像重叠区域的面积与第一幅图像面积的比值。首先通过共线方程解算出两幅图像在地面的覆盖范围，并计算这个覆盖范围的外包矩形。然后对这个外包矩形进行离散化处理，如图2，在x方向和y方向采用一定的固定间隔(建议使用像素的地面分辨率)生成离散化格网点。统计既在第一幅图像覆盖范围内又在第二幅图像范围内的点数目N和仅在第一幅图像覆盖范围内的点数目M，N/M即为两幅图像之间的重叠度。 2.2. 影像正射校正 传感器物理模型根据相机所在的位置、相机的姿态、地面的高程，使用共线方程计算每个像素在地面点的坐标，采用一定的插值方法，即可获得地面正射图像。这种不需要控制点的传感器物理模型非常适合本文所采集图像的正射几何校正。 目前实现航拍图像几何校正的方法主要包括正解法和反解法。其中正解法从原始的图像出发，根据正解公式逐个计算所有像素纠正后的坐标，然后使用一定的插值方法即可完成航拍图像的正射校正。反解法思路与正解法刚好相反，其从纠正后的正射图像出发，以一定的分辨率划分格网，计算每个格网在 图1. 关键帧的提取算法流程图 图2. 重叠度的计算 原始图像中的坐标，并将这个坐标处的像素值赋予正射格网点。当某个格网点在原始图像中的坐标不为整数时，则需要进行一定的插值处理，这是目前较为常用的方法。然而，本文所采用的飞行载体为飞艇，其飞行姿态的倾角变化很大，很难直接确定一幅航拍图像在地面的覆盖范围。针对这种情况，本文采用正解和反解相结合的方法。假设飞行高度足够大，单幅图像覆盖的范围内地面起伏有限，可近似将该区域看作一个平面。假设存在一幅图像，如图3(a)，图像四个角点分别为a、b、c和d，其在像空间坐标系中的坐标分别为 ( x a ， y a ， − f ) ， ( x b ， y b ， − f ) ， ( x c ， y c ， − f ) 和 ( x d ， y d ， − f ) ，使用共线方程可计算其在四个角点在物方坐标系中的坐标 ( X A ， Y A ) 、 ( X B ， Y B ) 、 ( X C ， Y C ) 和 ( X D ， Y D ) ，如图3(b)中虚线梯形的四个角点。由于图像只能以矩形的形式存储，还需要根据这些坐标在X方向和Y方向的最大值和最小值确定正射图像在物方坐标系中的范围，如图3虚线梯形的外侧的实线矩形。 确定正射图像范围后，还需要估算正射图像的分辨率，航高为 Z s − Z A ，相机在X方向的视场角为 α ，在X方向上的像素个数为M，那么图像的分辨率为D，其表达式如式(1)。根据分辨率即可划分正射图像的分辨率网格，如图4。O点位置为外接矩形的左下角位置，假设校正后的图像中存在一个像素位置P，其像素坐标为 ( m ， n ) ，那么这个像素位置对应的实际位置在本地摄影测量坐标系中的位置为 ( X P ， Y P ) ，其计算方程如式(2)所示。根据每个像素在物方坐标系的位置使用共线方程可求得其在像方空间坐标系中的位置；由于该位置的坐标一般不是整数，可以使用一定的插值方法计算该位置的灰值，然后将该位置的像素的灰度值赋予正射图像中的像素，即可完成正射校正。 D = 2 ( Z S − Z A ) sin α 2 M (1) { X P = m i n ( X A + X B + X C + X D ) + m D Y P = m i n ( Y A + Y B + Y C + Y D ) + n D (2) 2.3. 正视频影像的快速拼接算法原理 图像拼接当前广泛使用的方法是基于特征匹配的图像配准方法，目前常用的图像特征描述方法有Moravec特征点检测方法 [ 17 ] 、Susan特征点检测方法 [ 18 ] 、Harris特征点检测方法 [ 19 ] 、SIFT特征点检测方法 [ 20 ] 等。由于SIFT特征具有尺度不变性，旋转不变性，对于光线、噪声、微视角改变具有鲁棒性，因此广泛地应用于图像拼接中 [ 21 ] [ 22 ] 。但是基于图像内部特征点的方法需要在特征点检测，粗匹配，误匹配剔除，全局的平差等方面耗费大量的计算时间，使得其无法满足应急响应和现场数据质量检查等方面的需求。另一方面，基于图像特征的拼接方法与图像内部特征的丰富程度有很大的关系，在图像特征比较丰富的区域(比如城市区域)，以特征点匹配为基础的方法能够取得很好的匹配效果。而在特征比较弱的区域(植被区域或沙漠区域等)，这种方法几乎无法得到正确的匹配结果。 图3. 图像正射校正 图4. 分辨率格网划分 为了解决上述问题，本文提出了针对航空视频影像的横向流型快速拼接方法。该方法使用惯性测量单元(IMU)实时提供的姿态角数据将视频流中的关键帧影像校正成正射图像。经正射校正后，可近似认为任何两幅关键帧影像之间只存在平移变换关系，然后选择一幅图像作为基准帧图像，计算所有关键帧影像与其之间的旋转关系由于每幅图像均有其独自的覆盖区域，当两幅图像之间的间距过大时，两幅图像可能不包含公共区域，因此二者之间的平移关系无法直接计算。本文提供了一种间接的方法计算二者之间的平移关系。假定M i ，j 表示影像I i 和影像I j 之间的平移关系。M i ，j 可表示为式(3)，x i ，j 和y i ，j 分别表示影像I i 和影像I j 之间在行方向和列方向之间的平移关系。 M i ， j = [ 1 0 x i ， j 0 1 y i ， j 0 0 1 ] (3) 如果我们需要将影像I i 投影到影像I j ，可以先使用I i 将影像投影到I k ，然后再使用M k ，j 将结果投影到I j 。矩阵M i ，j 可表达为式(4)。使用这种方法所有的正射影像 I 1 ， I 2 ， ⋯ ， I N 均可计算其与参考图像之间的转换矩阵。如果第一幅正射影像为参考图像，P j ，1 为图像I j 和图像I 1 之间的投影矩阵，P j ，1 可表示为式(5)。 M i ， j = M i ， k M k ， j (4) P j ， 1 = ∏ i = 2 j M i ， i - 1 (5) 假定所有正射图像的尺寸均为m × n，每幅图像参与拼接的起始行行号为H。则影像I j 中需要参与拼接的条带的宽度为 x i ， i − 1 。假设拼接后的影像为Z，Z图像中实际数据的起始位置为 [ r ， c ] 。在拼接过程中只需要把影像I j 中第H行和 H + x i ， i − 1 行之间的条带直接写入到Z中第 r + P j - 1 ， 1 ( 1 ， 3 ) 行与 r + P j ， 1 ( 1 ， 3 ) 行之间，第 c + P j - 1 ， 1 ( 2 ， 3 ) 列与 c + P j ， 1 ( 2 ， 3 ) 列之间的区域即可完成图像的拼接。选择一幅图像作为基准帧图像，根据相邻两幅关键帧图像之间的平移关系，计算每幅图像与基准帧图像之间的平移关系估算拼接后全局图像的尺寸。根据相邻两幅之间的平移参数，计算出待拼接图像中需要参与拼接的区域，如图5(a)，并将这些条带裁出，并计算每个条带在整体图像中的位置，并将这些条带写入到相应区域，完成拼接，如图5(b)。与传统方法相比，这种方法不需要实时GPS位置数据和地面高程数据，不需要检测与图像内容相关的特征点或角点，稳定性更高，普适性更强。这种方法具有更快的处理速度，几乎可以实现实时处理，满足现场勘验飞行参数正确与否，检测数据遗漏与否，以及快速应急响应的需求。这种拼接方法只使用了经过校正后的正射图像中很窄的条带，舍去了造成鬼影的冗余部分，因此拼接效果好，无鬼影，拼接后的影像数据可以用于深度分析。快速拼接的算法流程如图6所示。 图5. 图像拼接 图6. 快速拼接算法流程图