system: [SYSTEM]

user: 2. 建筑物识别系统 为了解决在小范围、图像数据较少区域内识别准确度低、效率低等问题，本文所提出的建筑物识别系统中创新点加入针对建筑物的预筛查操作，进一步减少运算资源的浪费，此系统将被主要划分为四个模块，如图1所示，分别为：预处理模块、特征提取模块、数据库创建模块、特征匹配模块。图2所示为系统的逻辑流程图。 2.1. 预处理模块 现阶段许多的建筑物识别系统主要是在内容上的图像检索(CBIR) [ 6 ]，在此之中并未针对待识别图像中是否存在建筑物进行预判断。与自然物体相比，建筑物的结构更加具有规则，在相关的图像中可能有迹可循，列如多条直线的相交、特定的构造模式等。该模块通过对直线及其消失点的检测对是否存在建筑物进行预判。 通过平滑操作以减少图像中噪声的影响，在此之后引入Canny算子完成边缘检测。所获得的边缘图像将用于之后的直线检测，此处通过霍夫变换得到直线参数并判断其数量。空间坐标中同一条直线上的点映射到另一参数空间中来定义曲线，他们都会相交于一点。但通常这些交点在此空间中的某一点(x， y)附近。由于这些离群点的存在，会产生误差直线，必定会对下一步消失点检测产生影响。本文通过寻找消失点簇，并通过计算两点之间距离d，设定阈值T，若d ≤ T则视为相邻点，相邻点数量大于某一设定值时，作为消失点。 在此之上对整幅图像中是否存在建筑物进预判断操作，而不是直接对其进行特征匹配，这将减少对无关图像的操作，以此提高本系统的准确度和高效性。 图1. 建筑物识别系统结构图 图2. 系统逻辑流程图 2.2. 特征提取模块 由于拍摄设备、拍摄角度等外因影响，故相应图像并不是每张都为标准尺寸。因此，先进性待识别图像的尺寸缩小，本文采用双线性插值法进行操作，以此减少响应时间。然后对待识别图像进行GPS信息的提取，为后续缩小图像匹配范围；之后使用改进的SIFT算法对待识别图像进行特征提取，并将提取到的特征描述算子保存为特征文件，为后续匹配操作使用。 SIFT作为一种成熟算法，其基于待识别物体的局部特点加以提取，对待识别物体的角度、尺寸等要素无关且对噪声有很高的容忍度 [ 7 ]，但传统SIFT在建筑物识别方面存在特征点的误匹配，增加无关点的存在会影响响应时间和系统精准度，且高达128维的描述算子会使得其具有很高的时间和空间复杂度。本文针对此进行改进，在不影响原始算法鲁棒性的基础上，提升对图像中显著区域的特征提取和缩短响应时间。 1) 构建高斯差分金字塔 L ( x ， y ， σ ) = G ( x ， y ， σ ) ∗ I ( x ， y ) (1) G ( x ， y ， σ ) = 1 2 π σ 2 e − ( x 2 + y 2 ) 2 σ 2 (2) 其中 L ( x ， y ， σ ) 高斯尺度空间模型， G ( x ， y ， σ ) 为尺度变化高斯函数， I ( x ， y ) 是原图像像素灰度值， ∗ 为卷积运算。 2) 关键点定位 关键点由DOG空间中的局部极值点组成。每一个检测点都将于来自本层和上下两相邻图层中的26个像素点进行比较，其中8个像素点来自本层，相邻层各9个。以确保在尺度空间和二维像素空间都能得到极值点，此时获得的极值点处在离散空间中。由于某些极值点响应较弱，所以得到的并不都是稳健的特征点，需要加入拟合三维二次函数来定位关键点的位置及尺度。 3) 特征点主方向的计算 为了消除由图像角度改变等操作对匹配产生的影响，以保证描述算子的旋转不变性。需要计算梯度值和梯度方向，并在构建领域梯度直方图后为关键点分配一个主方向。 m ( x ， y ) = ( L ( x + 1 ， y ) − L ( x − 1 ， y ) ) 2 + ( L ( x ， y + 1 ) − L ( x ， y − 1 ) ) 2 (3) θ ( x ， y ) = tan − 1 ( L ( x + 1 ， y ) − L ( x − 1 ， y ) / L ( x ， y + 1 ) − L ( x ， y − 1 ) ) (4) 梯度值和梯度方向由公式(3)，(4)求得，其中 表示关键点所在的尺度空间值。 4) 生成特征描述子 在进行了上述操作后，接下来需要利用以获取生成特征描述算子，本文在实验基础上，拟定将特征点领域划分为 3 × 3 个子区域，每个子区域看做一个种子点，并保留8个方向的梯度信息，此时每个特征点都会有 3 × 3 × 8 = 72 个数据，这些数据就是构成了在保证算法性能的基础上，降维后的72维SIFT特征向量。 原始SIFT算法是在RGB模式下直接对图形进行灰度处理。本文将在Lab模式下进行操作，相较与传统RGB模式，本模式在处理速度近似相等，但可定义色彩更多且与光线、设备等无关。该模式不同于RGB由三原色通道组成，而是由一个明亮通道L和两个色彩通道组成。其中，a即表示包括颜色从深绿色变化到粉红色的通道；b则表示从深蓝色变化到黄色的通道，相比于RGB模式，此模式表示的颜色范围更广。 之后，计算各通道的期望与方差，针对色彩对比度不明显的图像，本文引入参数 来调节灰度图，公式(5)为灰度计算方法。 S 2 ( j ) = ( P j ( L ) − E ( L ) ) 2 + ( P j ( a ) − E ( a ) ) 2 + ( P j ( b ) − E ( b ) ) 2 (5) G r a y ( j ) = { S 2 ( j ) } R (6) 其中， G r a y ( j ) 表示第j个点的像素点的灰度值，R定义为影响因子，通过R的取值来改变灰度值，以此调节区分度，使得保留的有效建筑物信息为相对最佳状态。通过实验表明，R的取值在±1.5时效果显著，也可根据需要在0.8~1.8之间进行调节，区分度越大，图像中相应建筑物越明显。 之后对使用欧式距离的原始SIFT算法进行进一步改进，原文作者思路是每个特征点的描述符都具有128维信息，通过欧式距离完成对比 [ 3 ]。本文改为采用马氏距离作为特征点之间紧邻的度量标准。马氏距离表示的是数据的协方差距离，相比于欧式距离，更适合处理高维数据，并且独立于测量尺度。以此进一步提高了数据库中图像的特征匹配速度。 若向量样本为 X 1 ~ X n ，S为对应的协方差矩阵，u为均值，任意X到u的马氏距离可以由公式(7)求得。 D ( X ) = ( X − u ) T S − 1 ( X − u ) (7) 两样本 X i ， X j 之间的马氏距离公式(8)所示： D ( X i ， X j ) = ( X i − X j ) T S − 1 ( X i − X j ) (8) 相较与原始算法对有效的建筑物区域特征提取得到了改善(与环境相比)，但存在大量相似结构时仍会出现一部分误匹配点，此处引入RANSAC算法加以改进。该算法通过迭代训练的方法从一组包含“局外点”观测数据中训练最佳参数模型。RANSAC的目的即为寻找最优的参数矩阵使得满足该矩阵的数据点最多 [ 8 ]。 S [ x ′ y ′ 1 ] = [ h 11 h 12 h 13 h 21 h 22 h 23 h 31 h 32 h 33 ] [ x y 1 ] (9) 在公式(9)中， ( x ， y ) ， ( x ′ ， y ′ ) 分别表示比较和输入图像的角点位置，S为尺度参数。算法从匹配数据集中随机抽取四个不共线的样本，然后计算其单应性矩阵，然后利用和这个模型测试所有数据，并计算满足这个模型数据点的个数与投影误差(即代价函数)。若此模型为最优模型，则对应值为最小值。代价函数可由公式(10)求得。 ∑ i = 1 n ( x ′ i h 11 x i + h 12 y i + h 13 h 31 x i + h 32 y i + h 33 ) 2 + ( y ′ i h 21 x i + h 22 y i + h 23 h 31 x i + h 32 y i + h 33 ) 2 (10) 2.3. 数据库建立模块 在进行识别操作时，首先要创建相应的图像特征数据库。本文针对小范围区域；视野、信号较差；图像资源较少区域设计，故数据库建立是搜索有针对性图像资源。笔者以西南民族大学武侯校区为例，以不同设备，在不同角度、时间、光线下拍摄了带有GPS信息的学校中建筑物照片，供创建数据库使用。对以上叙述中所获得的图像进行GPS信息提取，并将此信息与图像的景点信息存入数据库中；之后对相关图像进行尺寸变换并提取相应的特征信息，最终存放到XML特征文件中。 2.4. 特征匹配模块 通过预处理模块进行判断后，若图像中存在建筑物，将会进入特征匹配模块进行最终的对比。此模块内包含GPS信息匹配和特征匹配两方面。 首先，待识别图像的GPS信息与前文已建立的数据库中信息进行匹配操作。我国常用的WGS-1984坐标系中，经度1″ ≈ 23.6米；纬度1″ ≈ 30.9米。待识别图像定位信息与数据库中所有定位信息计算距离D (distance)，若之间距离小于30米，即在秒级变化时，库中相应图片作为候选，反之则舍弃，最终减少特征匹配时的计算量。最后，待识别图像与上一步操作后所形成的候选图像进行特征匹配，此处采用改进的SIFT算法，若匹配成功，将对应的图像和相关信息输出给操作界面。 在不考虑地球表面实际地形差异的影响下，可将地球看做是平均半径 R = 6371.004   km 的正球体。此时根据经纬度信息即可得到两点之间距离。若存在A，B两点，分别用 ( L o n A ， L a t A ) ， ( L o n B ， L a t B ) 表示经纬度。以0度经线为基准，东经设为正值，西经为负，在本研究的实际情况下，纬度暂不考虑正负。由公式(11)，(12)可根据经纬度信息求得距离，其中 N L o n A ， N L o n B 表示经过正负处理后的经度信息。 C = sin ( L a t A ) sin ( L a t B ) + cos ( L a t A ) cos ( L a t B ) cos ( N L o n A − N L o n B ) (11) Distance = R × arccos ( C ) P i 180 (12)