本文摘要:摘 要:针对海量控制点影像管理现状中的不足, 提出了基于数据库方式进行控制点影像管理与应用的新模式, 并基于内存动态调度, 采用VC6.0平台, 实现了控制点影像数据库系统。通过该系统在青海第二测绘局的应用实践表明, 该系统能够有效提高控制点影像数据的管
摘 要:针对海量控制点影像管理现状中的不足, 提出了基于数据库方式进行控制点影像管理与应用的新模式, 并基于内存动态调度, 采用VC6.0平台, 实现了控制点影像数据库系统。通过该系统在青海第二测绘局的应用实践表明, 该系统能够有效提高控制点影像数据的管理效率, 在控制点影像数据的检查、更新以及管理等方面发挥作用。同时, 基于数据库方式的控制点影像管理, 有益于提高利用控制点对控制点影像匹配的速度, 对促进测绘资料的高效利用有着重要意义。
关键词:控制点影像; 影像匹配; 内存调度; 报表生成
控制点影像在空间数据生产中具有关键作用, 是影像预处理的重要组成部分[1]。随着测绘资料的增加, 人工管理控制点影像, 主要存在如下局限[1]: (1) 人工选择控制点, 对人员专业素质要求较高, 需要具备良好的专业基础和较高的影像判别能力[2]; (2) 对于海量控制点影像, 其查询与更新, 人工管理方式都存在较大的弊端[3]; (3) 影像控制点, 属于机密资料, 人工管理存在较大的保密安全隐患[4]。因此, 建立控制点影像系统, 采用科学有效的手段来管理控制点影像, 迫在眉睫。众多研究表明, 当前控制点影像库系统, 其控制点及控制点匹配大多由人工干预选取, 其自动化程度不高耗费的人力物力较大[5]。另外, 由于生产中使用的影像数据占用内存较大, 时常存在调用卡顿的现象, 影响作业的效率, 而且当前应用系统均缺少控制点影像报表自动生成功能, 不利于资料交替。基于以上问题, 提出了海量控制点影像库系统, 旨在自动提取控制点和实现控制点匹配, 同时引入TLSF算法优化内存调度, 提升用户体验。此外, 系统还实现了控制点信息报表自动生成功能, 便于资料移交和使用。具体的关键技术与系统功能如下详述。
1 系统设计
系统的环境为Windows 7操作系统, VC 6.0开发平台, Sql server数据库管理系统。该影像系统主要由4个板块组成, 分别是影像质量控制板块、影像数据库入库与更新板块、数据安全与备份板块、数据应用板块。海量影像数据库系统的主要功能结构如图1所示。
主要功能结构Fig.1 Structure diagram of the main functions 下载原图该系统主要完成对影像库中数据的检查、更新、查找、应用以及管理等功能。影像质量控制模块主要用来检查数据录入的格式, 处理影像的几何纠正问题。影像数据入库与更新模块功能是控制点的录入与批量录入、影像的录入与批量录入、数据的修改与更新。影像的安全与备份模块功能是报表的自动生成与访问影像库身份设置。影像库可以完成影像与控制点在该界面的显示、查询和输出等功能。
2 关键技术
2.1 影像间自动匹配
系统借鉴了sift影像匹配算法与RANSAC去除误差算法。sift与其他影像匹配算法相比, 有效地减少了错综控制点的干扰问题, 提高了匹配时的速度, 同时使用影像的特征点代替影像人工选择的控制点, 更多的考虑了影像的特征信息, 也就是说sift算法是寻找在2个影像中特征最相像的点匹配, 改变了之前算法过于复杂的情况, 是一种十分高效的影像匹配算法。它的设计思路是将图像之间的匹配转换为特征向量之间的匹配。选取的特征要求不会随着影像的旋转等变化而改变, 且该特征在空间域与频率域都有很好的定位作用, 这样可以减少在图像匹配时因噪声产生的误差。该方法的重要特点是可以生成大量的特征向量, 这些特征可以在各种尺度和位置上密集地覆盖图像。特征量对于对象识别尤其重要, 例如在杂乱背景中可靠地检测并识别小对象时, 要求每个对象至少正确匹配3个特征向量[6]。该匹配方法大致可以分为5个步骤: (1) 尺度空间极值检测; (2) 关键点定位; (3) 关键点方向分配; (4) 提取特征描述; (5) 特征点匹配[6]。(1) 尺度空间极值检测 使用图像金字塔与尺度空间结合, 即先对图像进行降采样或升采样, 减少或增加其分辨率形成图像金字塔, 再对每一层采样后的图像使用不同维度的二元高斯函数进行平滑, 即假如一张影像的图像金字塔有n张, 做m次平滑我们就可以得到m×n张的不同影像, 之后使用同分辨率层中相邻的影像相减即得到DOG算子模型。平滑图像公式为
(2) 关键点定位 在获得影像金字塔模型后就要寻找影像灰度变化的极值, 由于原影像数据为离散灰度值, 所以需要插值, 这里插值函数与极值点为
用于控制点匹配的另一种算法RANSAC是一种简单快捷的去除噪音的方法, 其优势在于使用少量的点就可以得到大范围的估计模型, 在sift算法影像提取特征点时可以剔除的只是边缘的错误特征点, 系统对其方法进行改正, 用RANSAC算法对特征点定位后的结果去除噪声点, 具体方法如下:(1) 均匀选取L个点拟合出一个连续灰度曲面。(2) 计算除了L个点的其他数据点距离曲面的距离, 超出阈值的舍去。(3) 没有舍去的点即为有效特征点。选取L个不同的初始点, 将以上算法迭代K次, 得
其中:Z为K次有一次L个点都是有效特征点的概率; (1-ωL) K表示K次迭代没有一次迭代选中的点都是有效特征点的概率。(3) 方向赋值 得到了需要的特征点后, 通过二元梯度计算公式得到每一个特征点的梯度值方向与幅值, 将其按照东、南、西、北、东北、西北、东南、西南8个方向进行统计, 得到幅值>80%的所有方向。到这一步我们获得了所有有效特征点的赋值信息, 包括位置、方向和尺度。(4) 关键点描述 sift算法就是用特征点的方向来代替影像点直接的匹配, 所以需要将每一个特征点转化为特征向量。为了保证特征方向的旋转不变性, 就要保证主方向不变, 即将影像方向与特征向量方向重合。设图像2次旋转角度相差的值为θ, 最终旋转公式为
其中:X与x为坐标矩阵。(5) 特征点匹配 匹配2幅不同时相下的影像时, 使用以上4步对影像特征矢量化, 之后找到特征最相似的2点即为匹配点, 由于结果有很多错误匹配点, 所以在最后匹配时应该设置阈值a, a为最近匹配点和次近匹配点之比。在a较大时会产生大量错误匹配, a取小值时特征匹配点对数会减小, 此次系统采用a值为0.5。
2.2 内存动态管理
(1) 内存管理原理 静态内存管理在程序开始运行时系统就会为程序分配一定的存储空间, 在程序运行完成后再全部释放内存, 动态内存管理的好处在于不需要提前预留内存空间, 可以根据程序本身要求内存进行分配。但传统的动态内存管理也存在碎片化等问题。结合控制点影像库管理系统的要求与传统内存管理存在的问题, 设计的新的内存动态调用机制需要满足以下几点的要求:(1) 在影像库使用过程中调用数据的速度是影响作业的关键所在。该系统采用的新的内存管理机制主要通过改变原有的数据结构, 使用新的分割内存块的方法实现。(2) 最适应性原则。在一个内存管理机制中如何快速的找到与请求内存需求大小最适合的空闲内存块是后续工作进行的前提, 这是对首次适应方法的改进。(3) 减少内存碎片提高内存池的使用效率[11]。许多实例已经证明了碎片问题会严重限制内存管理。Johnstone等人曾指出“在内存分配机制中, 内存碎片确实是一个十分难以解决的问题”。该系统使用的内存动态调度机制的关键是定义了一个内存分配器, 系统通过内存分配器对用户存储请求进行处理, 进而实现了对数据库内存分配的动态管理。例如, 当影像管理系统下Sql Sever数据库接受到用户的内存请求后, 从其所维护的虚拟地址空间区域为用户程序分配所需要大小的空间, 而不是通过Windows内存管理API函数malloc () /new来实现[12]。同理在用户执行其他有关数据库存储操作时, 其工作都将会由内存管理器来承担而不是原有系统的函数。所以其是一种自定义的内存分配器, 可以根据实际的情况对分配器修改, 与原有的内存分配相比具有更好的适应性。(2) 内存管理器数据结构 此次设计的控制点影像管理系统中内存管理机制主要用到了TLSF算法, TLSF算法是一种良好适应性算法, 其使用一串空列表, 每一个列表里都是无序的空闲内存块, 其大小介于上一个列表类与下一个列表类之间, 每一个列表包含着相同分类等级的内存块, 使其可以找到与请求内存大小最匹配的空闲内存块。详细结构如下。在对影像数据存储时TLSF算法会分2级去寻找空内存块, 这样比顺序的查找计算机中的空内存块效率更高且内存碎片更少, 该算法将内存分为2个隔离级, 第1级以2k (k=1, 2, …, n) 为区间对计算机存在的空闲内存块进行划分[13]。第2级在第1级的基础上再次划分, 具体划分区间大小可以调整 (都要为2的幂) , 这里我们将其划分为4个区间, 以25为例将其划分为[32, 40) 、[40, 48) 、[48, 56) 、[56, 64) 这4个区间。不论是一级还是二级链表都有位图文件去表示每一区间中块是否有空余。结构如图2所示, 图2中黑色方块为最后搜索到的空闲内存。
图2 TSLF数据结构Fig.2 TSLF data structure 下载原图确定一级搜索位置的变量设为N, 确定二级搜索位置的变量设为M, N/M值的大小由影像内存的尺寸大小 (设为SIZE) 来决定, 其公式为
其中:SLI为二级小区间长度。在影像库数据释放后通过指针搜索到相邻的空闲内存块, 将释放后的空内存块与原有空闲内存链相连接。该方法可以显著地减少内存碎片, 符合分配机制的设计要求。分类器中分配流程和在内存释放后分配器处理流程如图3所示。
图3 内存分配器工作流程Fig.3 Working process of memory allocator 下载原图2.3 报表的自动生成
海量的控制点影像存储对于管理来说是一种挑战, 如何更好地适应大数据量的管理, 同时适应系统对于影像数据的分布式数据管理体系是一个必须要解决的问题。元数据对于影像的有效管理不可或缺, 对于影像数据库来说其功能可以划分为7种, 分别是描述性元数据、结构性元数据、管理性元数据、存储性元数据[14]。元数据大多存储在开发系统的数据库中, 传统的影像库大多是对于感兴趣区域框选后, 在界面上显示相关的影像信息, 其缺点在于界面无法显示过多的元数据, 且在查找具体的元数据时也存在困难。该系统将元数据在数据库中自动生成报表, 通过控制点影像库系统使用Sql Sever数据库查询自动生成相关数据的元数据报表, 具体形式见表1和表2。
表1 控制点元数据Table 1 Meta date table of the control point 下载原表
上述列出的是一些重要元数据信息, 具体报表信息可以根据需求进行选取。
3 系统的实现
3.1 系统界面实现
基于以上思路, 设计出了运行良好的海量控制点影像库管理系统, 并将其应用到了青海影像库的建设中。软件整体不仅可以满足控制点影像库的调用存储, 还可以完成许多影像库应用的功能, 例如mdb、dxf等数据的导入导出, 地图的快速制作与矢量数据的快速入库等功能, 它的界面与主要功能菜单如图4所示。
3.2 主要功能实现
该系统的优势在于提高了控制点选取的自动化程度, 加快了数据存储调用的效率, 提供影像库系统元数据自动成表打印三大功能, 有效地提高了控制点影像库相关作业的效率。
表2 影像元数据Table 2 Meta date of the image 下载原表
该系统使用sift与RANSAC算法结合完成图像控制点的匹配, 最终完成影像的几何纠正, 其操作顺序为控制点自动生成→控制点匹配, 匹配完成结果如图5所示。从图5中可以看出小幅影像图上控制点与库中影像顺利匹配。将设计好的控制点影像库与原青海控制点影像库在调用影像与控制点速率上进行测试对比, 结果见表3。其中影像加载速度是一幅影像从确定导入到导入完成需要耗费的时间, 控制点加载速度是测试的一幅影像中控制点导入全部的速度, 卡顿率为每导入100幅影像图存在超过5min以上卡顿情况的影像数。从表3可以看出该系统通过设计内存管理器大幅度的提高了影像与控制点调用的速度, 明显降低了卡顿率, 达到了软件设计的目的。影像导入的同时需将其对应的原始元数据导入, 系统可以每隔30min记录1次影像与控制点修改的情况, 并将记录在元数据中直接生成表格输出, 系统输出元数据格式为mat格式。
4 结论
结合Sql Sever开发的海量控制点影像库系统, 良好地实现了对海量控制点影像的检查、更新、查找以及管理等应用操作, 并且对现在影像库设计中的不足进行改进, 提高了影像匹配的自动化程度, 完善了影像库框架下内存分配的漏洞, 增加了影像库中报表自动生成的功能, 提高了影像库管理安全性, 并将开发系统成功应用于青海影像库的管理中。事实证明其显著地提高了青海第二测绘院在影像存储与应用中的效率, 节省了大量的人力物力资源, 对影像库的管理设计有着重要的意义。但系统同样存在应用数据不够多样化的情况, 这就导致我们不了解在使用其他类型数据时该系统是否可以全部正常运行, 所以该系统还不足够稳定, 存在风险, 因此需要我们去不断的尝试, 将不同的数据类型应用于系统, 不断发现问题并改善。另外sift算法为暴力影像匹配, 需要对整幅影像搜索匹配, 当影像特别大时会影响匹配速度。
参考文献
[1]卢刚.控制点影像库的设计与实现[C]//江苏省测绘学会、江苏省测绘学会航测与遥感专业委员会.江苏省测绘学会2011年学术年会论文集.江苏省测绘学会、江苏省测绘学会航测与遥感专业委员会, 2011.[2]陈爱玲, 陈子越.基于控制点影像数据库的国产卫星影像纠正技术研究[J].测绘与空间地理信息, 2016, 39 (8) :28-30.[3]温礼, 柴渊, 田立瑛, 等.土地利用动态遥感监测控制点影像库管理系统建设[J].遥感学报, 2007, (4) :595-600.[4]王占宏, 王月莉, 李发红.基于控制点影像数据库的控制点提取研究[J].测绘通报, 2009, (12) :13-15, 30.[5]赵筱榕, 刘津.基于控制点影像数据库的国产卫星影像几何纠正[J].测绘通报, 2013, (8) :61-64, 90.[6]Lowe D G.Distinctive Image Features from Scale-Invariant Keypoints[J].International Journal of Computer Vision, 2004, 60 (2) :91-110.[7]Ke Y, Sukthankar R.PCA-SIFT:A More Distinctive Representation for Local Image Descriptors[C]//Computer Vision and Pattern Recognition, 2004.CVPR 2004.Proceedings of the2004IEEE Computer Society Conference on.IEEE, 2004:Ⅱ.[8]Zhao J, Liu H, Feng Y, et al.BE-SIFT:A More Brief and Efficient SIFT Image Matching Algorithm for Computer Vision[C]//IEEE International Conference on Computer and Information Technology;Ubiquitous Computing and Communications;Dependable, Autonomic and Secure Computing;Pervasive Intelligence and Computing.IEEE, 2015:568-574.[9]屈庆琳, 李良光.TLSF算法在嵌入式系统中的研究与实现[J].计算机与信息技术, 2011, 19 (10) :24-26.[10]王欣, 邱昕, 慕福奇, 等.嵌入式系统新型动态内存管理机制的研究[J].微电子学与计算机, 2017, 34 (8) :66-69.[11]李江, 梅静静, 王申良, 等.TLSF动态内存分配算法的研究与应用[J].单片机与嵌入式系统应用, 2011, 11 (11) :1-4.[12]魏海涛, 姜昱明, 李建武, 等.内存管理机制的高效实现研究[J].计算机工程与设计, 2009, 30 (16) :3708-3712.[13]Masmano M, Ripoll I, Crespo A, et al.TLSF:A New Dynamic Memory Allocator for Real-time Systems[C]//Euromicro Conference on Real-Time Systems.IEEE Computer Society, 2004.[14]于咏.元数据在缩微影像数据库中的应用[J].数字与缩微影像, 2013, (2) :5-7.
推荐阅读:《数字与缩微影像》(季刊)创刊于1982年,由北京电影机械研究所主办。本刊自创刊以来一直贯彻普及与提高相结合的办刊方针,以普及为主,以应用为主。
转载请注明来自发表学术论文网:http://www.fbxslw.com/dzlw/18659.html