1. 引言
在数字图像处理领域,分辨率是图像质量一个十分重要的指标,图像的分辨率高说明它能够呈现出更多的细节和丰富的信息。G20峰会期间,为进一步提高会场安保级别,相关管理部门需要对进场人员进行更快更有效的安全检查。毫米波安检仪采集的图像分辨率低,噪声大,不利于观察,故需要一种把低分辨率图像重建成高分辨率图像的便于携带且快速高效系统。
随着数字信号处理器DSP的快速发展,科研人员利用DSP平台开展了不少的图像处理相关领域的研究工作与工程项目。2012年2月邓建青等利用Fourier-Mellin变换法等算法进行运动估计,然后利用基于边缘保持的凸集投影简化方法在DM642上实现超分辨率重建,采用的相机分辨率为720 × 576,重建时间耗费20 s左右 [1] 。2014年12月朱才高等在TMS320C6678上利用图像分层处理的细节增强基本框架,提出了一种基于引导滤波器的高动态范围红外图像显示与细节增强算法,实现了图像视频流的传输、处理等系列功能 [2] 。在2015年7月,叶宗民等为光学目标特性研究提供高质量的图像在VPM6467DSP上实现对舰船目标低分辨率红外视频的超分辨率重构 [3] 。目前,针对毫米波安检图像重建的具体应用,还没有现成的开发应用技术可循,而在已有的一些相关应用中,TMS320C6678是研究开发人员较多采用的DSP之一。
TMS320C6678是一款基于KeyStone架构的八核DSP,每个核拥有最高可达1.25 Ghz的主频,32 K的一级程序缓存L1P,32 K的一级数据缓存L1D,512 K的本地二级存储L2SRAM,可自由配置成Cache和普通SRAM,另外还有4 M的共享内存MSM,也可将其配置成共享二级缓存和共享三级缓存,另外TMS320C6678支持OpenMp多核模型,还拥有丰富的外设接口、EDMA、SRIO等,可以与外界迅速的进行数据交换 [4] 。因此,基于项目的需求及我们开发的难易程度,本文选择了TMS320C6678处理器。
OpenMp是由OpenMP Architecture Review Board牵头提出的,用于共享内存并行系统的多线程程序设计的一套指导性的编译处理方案(Compiler Directive)。OpenMP支持的编程语言包括C语言、C++和Fortran;OpenMp提供了对并行算法的高层抽象描述,程序员通过在源代码中加入专用的pragma来指明自己的意图,由此编译器可以自动将程序进行并行化。当选择忽略这些pragma,或者编译器不支持OpenMp时,程序又可退化为通常的程序,代码仍然可以正常运作,只是不能利用多线程来加速程序的运行。
关于超分辨率的重建的研究也很多,并且不少算法都取得了不错的效果,但这些方法基本上都是基于PC的算法,算法复杂度较高,要在嵌入式系统上实现还存在实际困难,比如系统资源等问题。因此,针对安检图像分辨率低的问题,本文基于TMS320C6678系统,首先选取双三次(Bicubic)插值算法,将原始图像放大4倍。由于放大后的图像细节模糊,不便于观察,通过实验对比发现,暗通道算法在处理此类图像上具有良好效果。故继而采用暗通道算法,通过暗通道去雾算法进行图像增强,使放大后的模糊细节得以恢复 [7] 。实验结果表明,进行超分辨率重建后的图像局部比未重建之前的局部细节更加清晰,具有更好的表现性;而且本文在算法的实现过程中还采用了OpenMp模型,对超分辨率算法进行多核加速 [8] ,对一幅48 × 128分辨率的图片重建到192 × 512的实验,在1Ghz单核下耗时363 ms,在八核下耗时180 ms。
2. 算法描述
2.1. 插值算法
双三次插值,作为一种较复杂的插值方法,双三次插值算法采用了待采样点四周16个点的灰度值作三次插值,并考虑了4个直接邻点的灰度值与各邻点之间的灰度变换率影响。三次运算可以得到分辨率更高的图像,但也带来了更大的运算。
其数学表达式如下:
(1)
双三次插值公式如下:
. (2)
其中,A、B、C均为矩阵,形式如下:
(3)
(4)
(5)
其中,
表示源图像
像素点的灰度值。
2.2. 暗通道增强算法
有一个有雾图片的表达公式在计算机视觉领域中运用广泛,该式如式(6):
(6)
其中,
代表待处理有雾图像,
代表想要得到的无雾图片,
是透射率,
则是全局大气光值(global atmospheric light);
下面需要从式(6)中得到
,但是式(6)里
和
都是未知的。
为此,先研究暗通道的数学定义,如下式(7):
(7)
其中,
为暗通道图,而等式右侧:C为R,G,B中的某一通道,
是图中某一像素点,Ω(X)则是点x周围的一个小区域;
这个公式的意思可以这样理解:取出原图每个像素点中最小的通道值后,得到一幅灰色的图,然后对该图进行最小值滤波,这样就得到了暗通道图。下面来看看究竟是如何从公式(6)推出
的:
首先对式(6)两边取最小,得:
(8)
再次取最小,得:
(9)
由(7)可知:暗通道图是稀疏的,绝大多数元素为零或者趋向于零,可近似得到式(10):
(10)
进一步对其进行限制,如下式(11):
(11)
为了保持图像的真实感,取
;
最终得到:
(12)
3. 基于多核DSP的图像超分辨率重建算法实现
本文为了在多核DSP上实现图像超分辨率重建,首先在PC端将图片转化为dat格式的数据通过seed-560-v2仿真器加载到DSP内存,然后再从内存中取数据进行一系列处理,处理完后再放回另一段内存,然后再使用CCS自带的Image Analyzer工具查看处理过后的图片,整个系统框图如图1所示:
对于图像增强本文首先采用双三次插值算法对其进行图像放大,考虑到DSP所具有的软件流水功能,为了加快进度,对R、G、B三通道同时插值;由于放大后图像细节不明显,本文又采用暗通道去雾算法进行增强处理。通过对整个增强算法进行时间统计,发现整个暗通道去雾算法主要耗时在高斯滤波处理上,于是,我们将其高斯滤波部分单独提取出来,利用DSP的OpenMp进行多核加速处理,本文采用的核数是8核,其线程也为8,采用OpenMp部分程序如图2所示,private (sum, gindex, windex, …)表示变量sum,gindex,windex在每个线程里都拥有私有拷贝,其它的线程不能访问该线程里的私有备份,而share (tmpdata)则相反,里面的共享tmyupdata数组是线程间共享的,即线程都可以访问。
由于本文在图像输入阶段的原始大小和放大倍数都是已知的,结合DSP中内存有限的实际情况,最终统一采用静态分配内存,如图3所示。本文原始图片的数据量大,故将原始的图像数据和一些处理的
中间结果数据放在DDR3上。
4. 实验结果及数据分析
在实验初期,尝试多种图像增强算法后,发现局部增强效果均不明显,达不到更快更有效的安全检查目的。经过对大量图片反复测试,双三次插值和暗通道去雾组合算法在增强毫米波图像方面具有一定的效果,增强后的图像能够满足基本的观察应用需求。如图4(a)所示,表示未经处理过的原图,图中可以看出有很多不清晰的地方,如果不进行图像增强,不利于观察;图4(b)表示经过双三次插值放大后的图,放大后整体效果不太好,整个图片显得模糊,需要对其进行增强;图4(c)表示增强后的效果图,与原图相比较,大小与清晰度提高很大。
由于DSP系统其独特的处理性能,对于浮点数,乘法具有很快的速度,于是将超分辨率算法移植到TMS320C6678上运行,在编写该程序时,所使用的DSP优化技术:1) OpenMp优化 [9] :即把某些非常耗时的算法部分进行多核加速2) 32字节对齐:由于TMS320C6678是一款32的处理器,它可以一次处理32位的数据,于是我们在定义内存时,设置成32字节对齐,在经过上述优化后,得到的执行时间如表1所示。
5. 结论
本文在多核DSP上实现了一个超分辨率重建系统,对多幅原始图片进行重建实验。以其中一幅大小

Figure 2. Gauss filter OpenMp accelerated processing program
图2. 高斯滤波OpenMp加速处理程序

Figure 3. Statically allocated memory in DSP
图3. DSP中静态分配内存


(a) 原图 [2] (b) 插值放大图 (c) 图像增强图
Figure 4. The original and experimental test chart
图4. 实验原图及测试图1

Table 1. Optimized contrast time chart
表1. 优化对比时间图
为48 × 128的原始图片为例,将其重建到4倍,即192 × 512,在不经过任何的优化下,耗时363 ms,经过多核等各种加速后,耗时180 ms。从实验结果可以看出,本文重建后的效果良好,更加有利于相关人员观察,达到了预期效果。
基金项目
“成都市科技惠民项目”(2015-HM01-00293-SF)。
NOTES
1图片引用网址: http://wenku.baidu.com/link?url=whMi3JABNhJkfOaPSXQ3Rp4QLVn679YEPNJLU4-2h719YnMLtCMJQuqy28J3phSk4RozkJp0z6Z7hMSS_5b6SCeenKVgIpFhAUVdWM-c0IG
文章名:Bomb and Weapon Detection by Millimeter Wave Imaging。