a&s专业的自动化&安全生态服务平台
公众号
安全自动化

安全自动化

安防知识网

安防知识网

手机站
手机站

手机站

大安防供需平台
大安防供需平台

大安防供需平台

资讯频道横幅A1
首页 > 资讯 > 正文

试析监控图像处理系统的软件结构与软件包

资讯频道文章B

    当前,安防监控技术已从经典模式向以图像处理、识别与跟踪为核心的现代智能化模式转变。因此,监控图像的检测、分析、处理、识别等智能化功能软件的研发尤为重要。本文介绍监控图像软件系统的分层结构、基础结构以及在Windows操作系统环境下设计菜单形式的图像处理软件包与图像处理的一些常用算法等。以供编写监控图像处理系统软件的研发者参考。

    随着光电等现代科学技术的发展,以及现代信息社会的需要,安防监控系统已向着数字化、网络化、智能化方向发展,安防监控技术已从经典模式向以图像处理、识别与跟踪为核心的现代智能化模式转变。因此,监控图像的检测、分析、处理、识别等智能化功能软件的研发尤为重要。

    监控图像处理软件的开发,首要的问题是要选择所依赖的软件平台以及图像硬件系统,即要选择操作系统、编程语言、数据库种类、图像硬件系统等。显然,这种选择一定要注意先进性问题,如当Windows操作系统已经上市以后,就不要再去选用DOS操作系统;同样,当Visual C++已经很流行的时候,就不要再去选用早期的Basic了。对于一个完整的监控图像处理系统的研发者来说,监控图像软件系统所配接的硬件,正是自行研制的图像硬件系统,因此还必须研制出适合这种图像硬件系统的设备驱动程序等。

图像处理系统的软件结构
图像软件系统的功能
    在现在的面向计算机内存的图像处理系统里,一般采用Windows操作系统、PCI总线、单屏操作方式,而且又融合了图像通信技术。当前图像软件系统一般应具有以下功能:

1、图像的输入输出
    图像的输入主要包括摄像机、扫描仪、数码相机的图像输入;图像的输出主要包括打印机、视频拷贝机、监视器的图像输出。要实现把输入输出设备嵌入图像软件系统以完成图像输入输出的功能,就需要调用或安装这些设备的设备驱动程序。

2、图像文件的存储与加载
    图像文件的存储是把帧存或内存的图像储存在磁盘上,图像文件的加载是把磁盘中的图像文件调入帧存或内存,这里有图像文件格式问题,常采用通用的BMP格式等。

3、系统的管理
    系统的管理可以认为是对图像硬件系统的工作状态进行控制。如输入通道输出通道的切换、存贮体的选择等。

4、图像处理
    图像处理的种类很多,常常以大类来作为一级菜单的内容,如灰度变换、图像编辑、图像量测、图像增强等。

5、图像的通信
    图像的通信包括图像的发送与接收,常常涉及图像的压缩与传输。一般分静态图像压缩与传输以及动态图像压缩与传输。有两种图像数据源的图像压缩与传输:图像数据来自硬盘;图像数据来自硬件图像系统。[nextpage]

图像软件系统的分层结构
    通常,图像软件系统是分层构造的,给出了图像软件系统的分层结构。图中虚线框部分是图像软件系统,其中底层是硬件驱动层,主要解决和硬件的联接问题,中间层是处理层,实现各种各样的算法,最上面一层是数据的存储和通信。

    一般来说,驱动硬件设备,可以采用以下三种方法:
•提供高级语言调用子程序;
•提供可安装的设备驱动程序;
•提供通用的设备驱动程序。
在Windows操作系统里,用户可以直接安装打印机、扫描仪等设备的驱动程序。因为在Windows操作系统里,已经包含了许多外设的设备驱动程序,这对用户来说是很方便的。
图像软件系统的硬件设备驱动程序
图像软件系统的硬件设备驱动程序要完成如下任务:
•对PCI总线上设备配置空间的操作;
•对SAA7146内部寄存器的操作;
•对视频前端子系统的初始化;
•对PC硬件中断的维护;
•视频图像数据缓冲区的获得;
•视频图像的实时显示;
•软件总体结构和特殊功能的实现。

    从整个系统的数据处理流程可以看到,位于主机内的图像数据缓冲区是数据流从外部专用硬件平台到主机内部通用处理平台的中转环节。外部图像数据经PCI总线接口控制芯片写到缓冲区内,而内部的软件需要从缓冲区读数据,进行处理和显示。

    视频图像数据的显示问题,目前都是利用WindowsAPI函数SetDIBitsToDevice实现图像数据从缓冲区到显示设备之间的传送。绝大多数显卡的硬件功能支持SetDIBitsToDevice,当硬件不支持时,Windows将提供经软件模拟的SetDIBitsToDevice函数。由于有统一的规范,不需要关心所选用的显卡的具体细节,同是显示模式的问题也迎刃而解了。由于图像数据的传输由显卡的硬件完成,所以能达到很好的效果。

Windows图像软件系统的基础结构
    在Windows操作系统且采用单屏方式的条件下,要对图像进行处理,就必须将图像装入内存。当物理内存不足时,系统通过内存分页交换,利用硬盘空间模拟内存。应用程序使用统一的系统内存管理,代码简单,维护方便,还具有自动伸缩性。

    图像作为一个处理对象放到内存中,必须使用数据结构来描述它,这就是图像数据结构。对于任何一个图像应用程序来说,图像数据总是应用程序数据的核心部分。

    应用程序的所有功能几乎都是围绕它进行的。如文件读写、扫描、拍摄、处理、显示、打印等,都需要建立、访问图像数据,实际上都是以图像数据结构核心为中心的。即使是最简单的图像显示软件,也需要图像文件读取和图像显示两大部分。[nextpage]

    一个图像软件系统,包括不同的图像处理算法、图像显示、扫描仪或摄像机支持、图像采集卡支持、图像文件格式转换等,都涉及到图像数据结构。如果我们建立了一个以图像数据结构为核心的Windows图像软件系统的基础结构,就建立了一个完整的软件图像环境。

    图像基础结构包括图像数据结构核心和围绕此核心构造的周边模块。图像数据结构核心是居于中心位置的。周边模块包括图像文件格式支持、图像显示、图像处理等。
    在设计过程中,要注意以下几个问题:

    图像基础结构的核心部分以C/C++语言完成。因为C/C++语言编译效率高,执行速度快,这对于要处理大量数据的图像应用来说是非常关键的;且C/C++语言非常灵活,使得图像基础结构可以高效的实现,而用其他的语言实现某些相同的功能可能要花很大的精力;C/C++语言移植性强,几乎可以移植到任何硬件和操作系统中。

    图像基础结构的内部实现可以使用C++,但是对外接口一律使用C界面。因为C++的名字解析方法没有统一的标准,不同公司的C++编译器对相同的C++符号解析得到的名字可能完全不同,因此不同C++编译器生成的目标文件不能正确连接。这使得像Windows系统下具有C++接口的动态连接库(DLL)的应用不太可行,所以对外接口使用C语言则没有这个问题。

    避免使用依赖于平台的声明、函数等,保持核心的可移植性。图像核心定义和代码只使用标准C数据类型和标准C库(ANSI)调用。当需要高端应用时,图像核心可以迅速移植到UNIX及其他平台,使整个应用具备较强的移植能力和伸缩性。

    目前,图像基础结构包含如下模块:
•StdImage:图像数据结构核心以及对此核心进行操作的基本函数;
•ProgressStub:进度处理机制的定义和接口;
•VirtualFile:虚拟文件I/O界面;
•Vf_file:虚拟文件I/O的实际文件实现;
•Vf_memory:虚拟文件I/O的内存文件实现;
•ImageFile:虚拟图像文件读写界面;
•Jfit_file:虚拟图像文件读写界面的JPEG格式实现;
•Bmp-file:虚拟图像文件读写界面的BMP格式实现;
•Fgi_file:虚拟图像文件读写界面的自由灰度图像格式实现;
•DibStdImage:DIB(设备无关位图)与StdImage之间的转换;
•mess_util:难以归类的杂项辅助功能;
•ProgressWinHint:Windows下的一个进度处理机制实现;
•WinMessUtilities:Windows下的难以归类的杂项辅助功能。

    由于面向帧存的图像硬件系统的结构,以图像帧存为核心,还包括图像的输入输出和处理等模块;而面向计算机内存的图像系统里,是以计算机内存为核心,同样包括有图像的输入输出和处理等模块。前者以整体硬件结构为主体,软件似乎只是图像处理和数据存储,后者以整体软件结构为主体,硬件则纳入软件的管理之下。这两种系统结构的差别很大,但从功能来讲,有其相似之处。[nextpage]

    面向计算机内存的图像软件系统结构,称之为Windows图像基础结构,这种Windows图像基础结构的总体结构框图。StdImage结构代表了一个图像或图像序列,所有的功能几乎都围绕它进行。它可以利用ImageFile模块从图像文件装入图像,或者将图像写入文件中。在Windows环境下,为了显示或打印图像,通常会使用DIB,此外,像扫描仪、摄像机等还会以DIB的形式向计算机输入图像,因此图像基础结构设有DibStdImage模块,以便在DIB和StdImage之间进行快速转换。图像通信插入在网络和StdImage之间,由此可以实现图像的传输,而这种传输,是以内存为媒介,它具有速度快的优点。

图像处理软件包
    图像处理软件包通常是以菜单的形式出现的,在Windows操作系统的环境下来设计菜单形式的图像处理软件包,比在DOS操作系统的环境下容易得多,外设的管理和汉字的注释不再费事,而且用VisualC++编程,已有现成的菜单形式可以借用,这样可以集中精力去设计图像处理的算法。

    图像处理软件包分为专用图像处理软件包和通用图像处理软件包,专用图像处理都以软件处理为主,解决特定的问题。通用图像处理软件包主要采用菜单形式,其算法相对比较简单,只是要求具有一些初步的算法,但一定具有图像输入功能。

    菜单一般有多级,主菜单里可以分为几个大项,如文件管理、图像获取、图像编辑、图像二值化、边缘增强、图像量测、图像变换等,每一个菜单大项的下级菜单又分若干小项,现以单屏图像处理软件包为例,简要介绍菜单的各项内容。

文件管理
    这一项主要是图像的存盘和加载,有时把图像的打印也放在这一类里。图像的存盘和加载要解决两个主要的问题,一个是图像区域的确定,另一个是图像格式的规范。

    图像区域分为规则区域和不规则区域,规则区域通常指矩形区域,不规则区域通常指用鼠标器画出来的一个封闭的单连通区域。

    在规则区域的情况下,存储图像时常用鼠标器来确定所需存储的区域,加载时又可以用鼠标器来确定所加载图像的显示位置。图像处理常常按整幅图像来进行,有时也把区域分为整幅图像区域和局部图像区域,由于整幅操作不再需要鼠标器来确定区域,因此可以简化操作。

    规则区域图像的格式有自由格式和标准格式两种。对于灰度图像,自由格式文件的第一个字节为0,表示是灰度图像,后两个字节表示矩形区域的宽,接下来的两个字节表示矩形区域的高,随后是灰度图像数据,一个字节表示一个像素,每个像素按照从左到右、从上到下排列。对于彩色图像,常用RGB基色的彩色空间。其自由格式文件的第一个字节为1,表示是彩色图像,后两个字节表示矩形区域的宽,接下来的两个字节表示矩形区域的高,随后是彩色图像数据,三个字节表示一个像素,顺序是R,G,B,每个像素按照从左到右、从上到下的顺序排列。标准格式的图像文件有BMP,TIFF等格式,也有压缩存储的格式。

    不规则区域的图像存储和加载比一般矩形区域复杂,首先遇到的是区域边界的描述问题,一般有多边形描述方法和链码(chaincodes)描述方法。 [nextpage]

    不规则的图像文件的结构。文件头是一个CHAIN-HEAD型的结构体的对象;链码数据就是从图像起始扫描点(xs,ys)开始,以顺时针方向沿区域外边界曲线行走得到的各个节点的数据,其数目由文件头的code_size确定;扫描线的位置数据是若干个CHAIN_SORT型结构体的对象,数目由文件头中的couple_size确定。

图像获取
    图像输入设备有摄像机、扫描仪等,要在菜单里嵌入这些设备的图像输入功能,就必须使用相应设备的设备驱动程序。当摄像机输入时,有两种状态:
•直通状态,这是为了调整摄像机的工作状态,如聚焦、调整光圈等。这种“直通”,实际上是一个连续数字化、传输、显示的过程;
•采集状态,采集分单帧采集和多帧采集,多帧采集时至少需要开辟相应存储容量的内存空间。

图像编辑
    图像编辑功能包括图像的放大、缩小、旋转、平移、文字注释、图像动态显示等。软件进行的图像放大基本上都是无级放大,所谓无级放大,是指放大倍数可以是非整数的放大,如放大2.2倍。图像放大时,要进行插值处理,有两种插值处理的方法:
•重读插值,如放大两倍,即在x,y两个方向上都放大两倍,这样一个点变成了2×2邻域的四个点,每个点的数值相同且为原来点的值;
•线性插值,双线性插值的放大效果最好。
图像缩小一般是抽点,即按缩小的比例把多余的点去掉。图像的旋转是原始图像乘一个旋转矩阵,旋转的角度可以由鼠标器确定。算法实现时,首先应确定旋转后得到的区域,由这个区域的每一个点去对应原始图像的点,即把原始图像对应点的值来作为该点的值,这样做的好处是不会出现空点。

灰度变换
    在数字图像处理中,经常需要对图像的灰度进行某种变换,达到好的视觉效果或者便于以后的特征提取和识别。灰度变换是图像预处理(preprocessing)的基本内容之一。下面只简介3种灰度变换,其数学公式从略。

1、灰度级的线性变换
    图像由于成像时曝光不足或过度,成像设备的非线性或图像记录设备动态范围太窄等因素,都会产生对比度不足的弊病,使图像中的细节分辨不清。这时如果将图像灰度线性扩展,常能显著改善图像的观看质量。

2、灰度级的对数变换
    当希望对图像的低灰度区有较大的扩展而对高灰度区压缩时,可采用灰度级的对数变换,它能使图像灰度的分布均匀,与人的视觉特性相匹配。

3、直方图统计与直方图均衡化
    对于灰度图像可统计其直方图,将统计结果用图示法直观地表示出来。直方图均衡化是当一个图像具有平坦的均匀分布直方图时,各个灰度等级都能充分发挥作用,可以得到比较好的视觉效果。

边缘增强
    边缘是图像的最基本特征。边缘包括着有价值的目标边界信息,这些信息可以用于图像分析、目标识别以及图像滤波。边缘检测和边缘增强的常用方法是微分运算。图像中灰度发生突变或不连续的地方称为边缘,这些地方的微分值往往比较大。[nextpage]

    下面只罗列7种边缘增强方法及其检测算子,其数学公式这里从略,应用时可参阅有关专著资料。常用的边缘增强方法有:
•双向一次微分;
•二次微分;
•Roberts算子。这是一种差分算子,由于窗口小,平滑噪声作用也小,改进的另两种算子是Prewitt算子和Sobel算子,它们对有噪声的阶跃型边沿的检测能力比Roberts的好;
•Sobel微分运算。Sobel可以产生较好的边缘检测效果,而且受噪声的影响也比较小;
•拉普拉斯运算。拉普拉斯算子有时找到的边缘是伪边缘,特别是在图像灰度变化不大的区域。因为这时小的灰度干扰(噪声)便可能使二阶导数产生过零输出;
•Robinson边缘检测。Robinsons算子实际上是4个不同的模板,分别算出4个加权和,进行比较,取其中最大者作为最终结果。由于它考虑到了水平、垂直、45°、135°各个方向的灰度值的影响,所以通常滤除噪声效果较好,边界较清晰;
•Frei&Chen边缘检测等。
二值化
所谓二值化,就是通过设定阈值(threshold)把灰度图像变换成仅用两个值分别表示目标和背景的二值图像。图像二值化可根据下列的阈值处理(thresholding)来进行(见图(1))。
通常,用最后的二值图像g(i,j)中的1值(亮)部分表示目标子图,0值(黑)部分表示背景子图。确定二值化阈值t的方法叫做阈值选择,大多数的阈值选择以图像的灰度概率密度函数(直方图)为依据。
二值化方法有:
1、非0像素置1法二值化
对于灰度图像,把灰度值非黑的所有像素变为白,其他为黑,得到二值图像。这种方法仅在背景象素多为黑时有效。
2、固定阈值法二值化
对于灰度图像,小于阀值的像素变为黑,大于阈值的像素变为白,阈值由用户输入。当已经了解灰度直方图的情况,且预先通过对直方图的统计已经找到了目标与背景之间的阈值时,宜采用这种方法。
3、微分直方图法二值化
微分直方图法是设想图像中的目标和背景之间的边界灰度值急剧变化,此时利用灰度的变化率(微分值)来决定阀值。

噪声消除
    数字图像中往往存在着噪声干扰,如光电元件产生的随机噪声,数字化产生的量化噪声等。这些噪声与图像信号可以是相加的或相乘的,这种噪声干扰下的图像可以用数字处理的办法得到改善。消除图像中的噪声干扰的有效办法是用局部平滑滤波,通过平滑滤波可以达到消除噪声、提高图像质量的目的。

滤波方法有:
1、二值图形麻点噪声的滤除
    对于二值图像f,消去麻点噪声。设图像像素f(i,j)周围8个像素的灰度平均值为a,若|f(i,j)-a|≤0.5时,则f(i,j)黑白反转;若大于0.5时则f(i,j)不变。

2、3×3平均值滤波
    对于灰度图像f,设像素f(i,j)周围8个像素的灰度平均值为a,进行如下处理:
•若|f(i,j)-a|<e,则f(i,j)=a;
•若|f(i,j)-a|≥e,则f(i,j)不变;
•程序中,误差容限e由用户指定。

3、中值滤波
    中值滤波可以有效地去除脉冲噪声。3×3十字中值滤波和5×5十字中值滤波的数据形式分别如图3(a)、(b)所示。5×5十字中值滤波的效果比3×3十字中值滤波的效果要好,但计算时间要长。

4、多帧平均
    多帧平均可以有效地去除雪花噪声,具体做法是连续采集M帧图像,每帧图像的宽、高为H,V,多帧平均算法为式中,G(x,y)为输出图像,f(x,y,k)为第k帧的输入图像。

图像量测
    简单的图像量测包含量测两点之间的距离以及计算闭合区间的周长、面积、重心等。其计算公式均相对简单,一般测量的书藉资料中都有,这里就从略了。

结语
    上面只是介绍了在Windows操作系统环境下监控图像软件系统的分层结构、基础结构以及图像处理软件包与图像处理的一些常用算法。这些算法的一些具体公式,由于篇幅所限,这里均从略了。本文在这里只起一个抛砖引玉的提示作用,仅供编写监控图像处理系统软件的研发者参考。真正在编制图像处理软件时,很多图像处理的算法,均可查阅有关专业书籍。

    当前,由于平安城市建设的需要,图像处理与模式识别的软件算法将在安防监控中获得广泛的应用。现在,各安防监控公司的老总应抓住这一机遇,不要等国外的智能化功能软件出来了再去照搬,而要自已组织创新地研发自己的智能化高新产品。

 

参与评论
回复:
0/300
文明上网理性发言,评论区仅供其表达个人看法,并不表明a&s观点。
0
关于我们

a&s是国际知名展览公司——德国法兰克福展览集团旗下专业的自动化&安全生态服务平台,为智慧安防、智慧生活、智能交通、智能建筑、IT通讯&网络等从业者提供市场分析、技术资讯、方案评估、行业预测等,为读者搭建专业的行业交流平台。

免责声明:本站所使用的字体和图片文字等素材部分来源于互联网共享平台。如使用任何字体和图片文字有冒犯其版权所有方的,皆为无意。如您是字体厂商、图片文字厂商等版权方,且不允许本站使用您的字体和图片文字等素材,请联系我们,本站核实后将立即删除!任何版权方从未通知联系本站管理者停止使用,并索要赔偿或上诉法院的,均视为新型网络碰瓷及敲诈勒索,将不予任何的法律和经济赔偿!敬请谅解!
© 2020 Messe Frankfurt (Shenzhen) Co., Ltd, All rights reserved.
法兰克福展览(深圳)有限公司版权所有 粤ICP备12072668号 粤公网安备 44030402000264号
用户
反馈