APP下载

海量遥感图像数据库设计

2010-07-25潘红艳

微型电脑应用 2010年5期
关键词:海量线程入库

潘红艳

0 引言

图像数据库技术是数字图像处理技术、数据库技术和模式识别技术发展并相结合的产物。它具有如下特点:数据对象庞大、数据结构复杂、数据类型多样、结构性数据与非结构性数据并存。图像数据库能够将大批图像及有关信息存储在一起并进行有效的管理。

这些图像信息的有效组织和检索便依赖于基于内容的图像检索方式CBIR(Content-Based Image Retrieval)[1] [2],即据给定图象或颜色、纹理、形状、空间关系等特征,检索库存图像,找出与给定图像特征相似的图像来。

遥感图像数据库系统已广泛应用于中国的军事、林业、国土、地质矿产、水利、农业等领域的资源调查和动态监测。遥感图像很多为 G级大小,且对精度要求高,很多存为Tif/Tiff格式。一般的软件无法处理Tif/Tiff图像,数据库要对这种超大复杂的图像执行操作也十分困难,耗费很多时间和内存资源。遥感图像数据库有其自身特点,本文架构并实现了基于缩略图的海量图像数据库系统[3]。

本文第二部分为系统架构,第三部分为系统实现及分析,第四部分为结论及展望。

1 系统架构

本文提供的遥感图象基于256灰度级,一个字节代表一个像素点,它的区间为 0x00~0xff中 256个灰度级。使用UltraEdit工具观察该图像的组织形式:IFH--数据--IFD。对于Tif/Tiff图像目前有多种函数库,其中最为有效的处理方式为libtiff函数库(Adobe公司);

针对支持CBIR的遥感图像数据库,本文基于OOP的组件化设计思想,采用基于 windows2000操作系统平台的模块化软件设计,以提高系统的开放性、可扩充性和通用性,设计了如图1的系统架构:

主要实现和硬件系统的交互;设备层包括TIFF图像处理器,图像装载器,数据库连接器和图像检索器等,负责系统所有事务的执行;事务映射层主要实现系统事务和设备层之间的交互;用户接口层包括用户数据输入输出交互,视图的得到。

图1 系统架构

2 系统的实现及分析

2.1 开发平台的软、硬件方案

根据已经掌握的支撑软件要求,采用标准台式PC机,配置为:CPU:PIV2.0GHz ;内存:128M;显卡:带64M加速缓存的AGP卡;硬盘:40G以上;运行软件建立在Delphi平台上,进行界面设计,核心算法可采用IDL 、C/ C++语言开发,形成动态链接库。

本文通过Borland公司发布的数据库引擎Firebird连接Delphi6.0[4] [5]程序和Interbase库。对于海量遥感图像,使用(1)实体图像数据表1和(2)缩略图数据表2(包括特征值字段)的方法来存储图像(Tblob型)。读取Tif/Tiff文件中的像素,存到bmp文件中,最后读取并显示bmp文件的倒叙RGB像素。以GUID字段为主键,通过外键Path相连。有3个好处:

(1)这样BLOB和表格与数据一起备份和恢复,数据插入、更新和删除都在同一个事务中实现。这样就确保了数据的一致性和文件与数据库之间的一致性,易于管理。

(2)数据库系统可对大量小文件进行优化,具有良好可伸缩性。

(3)数据库复制允许在分布式环境中复制、分配和潜在的修改数据。在主系统失效的情况下,日志转移提供了保留数据库备用副本的方法。见图2。

图2 TIF 入库存储

2.2 线程同步

分布在磁盘中各个文件中的大量超大原文件,采用选取磁盘自动检索方式,管理员选择文件夹进行入库批处理。

处理对象为超大图像,且算法包含了图像缩略图提取算法和属性提取算法,在文件数量较多的时候此批处理动作可能将持续较长时间。考虑作底层后台循环运算。同时可以执行一些前台突发事务。两者通过线程的同步来解决。线程同步时不释放线程机锁。

事务是一种能够在一个单一的、大型的、原子性的操作中知性所有的操作的方法,它可以保证所有的操作要么都成功,要么都失败。流程图见图3。

图3 操作流程图

2.3 改进的缩略图策略

就目前的硬件水平,已经能够获得9216x9216约8.5亿像素的特大彩色图像。而从图像采集卡得原始图像则占据160MB以上空间,用遥感图像构成的图像数据库达海量级别。对此一般不有损压缩,而无损压缩的压缩比例不高。计算机对于1G大小的图像反应慢,画面闪烁。只能通过每次移入整个屏幕的量,分块显示。而处理Tif/Tiff海量图像时,很多操作不涉及显示原图,比如手动查找比较建筑区,查找需要的图像,剔除不合要求的图像,象征性显示图像内区域等。因此本文所用缩略图策略来进行基础操作[6],在需要时才点击缩略图显示原图。缩略图显示效果见图4。

图 4 TIF/TIFF缩略图的显示界面

本缩略图提取策略,使缩略图的一个像素RGB值对应原图的一个对等长方形的所有RGB值,长方形中的每个像素根据其离长方形中心的距离为权重依据,进行权重累加。最后得出缩略图中一个像素的RGB值。比起选取长方形中一点提取RGB的方法更精确。取得了很高的保真度。但这种方法提高了提取像素的数量和计算量,很难降低提取缩略图时间耗费。

传统的缩略图提取算法使用 Canvsa.Pixels方法的GetValue,像素依次读取 RGB值,经实验这对于海量的Tif/Tiff遥感图像来说,需要几分钟的处理时间,见图3显示的TimeStamp两幅Tif/Tiff图像完成入库的时间差:

平均需时约为 1.75分钟。为了提高效率,避免无谓的时间牺牲,本文在使用Libtif时,使用指针数组代替Borland公司使用的指针,分行存储提取出的像素,使用了分行读取的Scanline方法代替了原来的pixels方法。并优化了算术运算符计算方法,使提取缩略图策略的速度提高了20多倍。具体见图4显示的TimeStamp图像完成入库的时间差(包括用库函数读图,图像入数据库及其他字段入库等操作):

平均需时约为 5秒钟,可见对于本实验所用图像数据(约1M大小的遥感Tiff图像),此缩略图提取算法的速度提高了近20倍,但此数据包括调用库函数读取图像,原始超大图像入库及其他数据入库时间,所以实际上提高更多,20倍以上。图像越大,此算法效率越高。此策略同样可用于许多其他的对超大图像的处理上,用来读取图像像素进行处理。

缩略图提取算法流程见图5:

图5 TIF/TIFF图像缩略图提取算法流程

2.4 动态显示技术[6] [7]

特大图像动态显示法,实现了图像的快速浏览。图像的存储和显示方式,直接影响着整个图像数据库的运行速度和性能,在存储和显示过程中,使用内存流技术(TStream)进一步提高速度,并保证快速、平滑、连续地浏览整个图像数据库中的任一图像。

在DELPHI中定义一个内存流,就可用流指针在内存中快速加载和显示缩略图。并可以快速定位到滚动条所移动到的位置,进而动态加载该位置图像。主要思想,先判断将显示区域的大小是否大于显示屏幕,若小于则全显示,若大于,则只是将某一个位置的一个显示屏幕大小平面中的某一些像素直接拷贝到内存,并显示出来,若继续移动滚动条显示,则释放已加载的内存区域,并当滚动条移到某区域时动态加载该一个显示屏大小的该区域的图像,而原来已经加载的图像当被移出显示区域外时,立即释放其所占的内存,并存储新的一个显示屏大小的区域。这样无论多大的图像,当显示时始终只有显示区域在占用内存。由于显示的是图像的某一块,而其他的部分可通过移动滚动条来实现,所以该设计方法不受图像大小的限制,再大的图像也只是加载入显示屏大小的图像,速度自然是相当快的。

在窗体的创建事件中,当初始化时就建立双缓冲区,可以加快图像显示速度。

Self doublebuffered = true;

3 结论及展望

本文针对 Tif/Tiff海量遥感图像和基于内容的检索技术,设计了适用的图像数据库系统。创新点为:通过特大图像缩略图快速提取策略、特征向量、缩略图与原始图像分开存储、线程同步和内存流等技术,实现了特大图像快速存储与显示。实现了海量图像数据库的高效管理与应用。接下来笔者将针对海量遥感数据库,进行有针对性的算法设计以及重点区域或感兴趣区域(ROI)的选取。

[1] Datta R ,Li Jia ,Wang J Z.Content-based image retrieval approaches and trends of the new Age[C] //Proceedings of the 7thInternational Workshop on Multimedia Information Retrieval ,in conjunction with ACM International Conference on Multimedia. Singapore ,ACM ,November 2005 :2532262.

[2] 董卫军,周明全,耿国华,黎晓.基于内容的图像检索技术研究[J] .计算机工程,2005,31(10):162-163.

[3] 郑斌.基于内容的遥感图像数据库的多维索引技术[J] .计算机测量与控制. 2007年12月.

[4] (美)Ray Lischner.肖雪莲(译).Delphi 技术手册[M] .中国电力出版社. 2001年5月.

[5] 李维.Delphi7高效数据库程序设计[M] .机械工业出版社.2003-4第2次印刷.

[6] 黄斌,杨世洪.数据库中特大图像快速存储与显示研究及实现[J] ,计算机工程及应用.2005.5:176-178 [7] Roni Yagel, Davids Ebert, James N Scottetal. Grouping Volume Renderers For Enhanced Visualization in Computational Fluid Dynamics[J] .IEEE Transaction on Visualization and Computer Graphics, 1995.

猜你喜欢

海量线程入库
一种傅里叶域海量数据高速谱聚类方法
重磅!广东省“三旧”改造标图入库标准正式发布!
基于C#线程实验探究
中国食品品牌库入库企业信息公示②
中国食品品牌库入库企业信息公示①
基于国产化环境的线程池模型研究与实现
海量快递垃圾正在“围城”——“绿色快递”势在必行
浅谈linux多线程协作
一个图形所蕴含的“海量”巧题
身临其境探究竟 主动思考完任务——《仓储与配送实务》入库作业之“入库订单处理”教学案例