高性能图像处理***及图像数据处理方法
技术领域
本发明涉及图像数据处理领域,尤其是涉及一种用于图像识别的高性能图像处理***及图像数据处理方法。
背景技术
目前图像识别技术的应用和发展是依靠微处理器(MCU,Micro ControlUnit)技术或数字信号处理(DSP,Digital Signal Processing)技术所支持的处理器***来完成的。在随着图像识别技术的深化和精细化应用的推广,如多媒体图像数据的识别、军事侦察图像的判读,公安业务中的图像鉴别、飞机和卫星遥感图像的高速处理等,对图像识别技术的实现方法提出了更高的要求。图像本身的高分辨率要求和实时性要求迫使图像识别产品必须解决大量数据存取和大量数据的关联计算问题,如:点积运算。由于数据量巨大,它们不可能全部存储在微处理器内部,而不得不存储在处理器外部,并且要被处理器反复调用。
鉴于上述问题,目前的解决方法主要有:
(一)、基于传统计算机体系结构建立的通用***,利用计算机硬盘为数据存储介质,配合图像处理模块,构建图像处理实时平台。该种方法拓展了存储空间,但体积庞大,价格昂贵,不利于***的高度集成。
(二)、采用嵌入式结构,利用处理器之外的存储器,如SDRAM或FLASH实现大容量高速存储。该种方法大大增加了数据存储量且对数据存储速度提出了更高的要求,但并未解决处理器大向量数据运算难的问题,同时提高了设计成本。
(三)、可为图像识别算法设计匹配的处理芯片。该种方法将使图像处理方法失去通用性,与大量现有软件和通用软件编程环境不兼容,增加开发成本。
中华人民共和国国家知识产权局于2007年1月31日公开了授权公告号为CN1297899C的专利文献,名称为数字图像匹配芯片。它包括地址产生电路,主、从相关处理电路,比较定位及控制逻辑产生电路,先入先出存贮器,外部控制接口电路;该外部控制接口电路将外部输入的地址和对应的数据分别输出给地址产生电路、主从相关处理电路、比较定位及控制逻辑产生电路,地址产生电路产生四路搜索区像素地址和中断信号,从相关电路对该控制接口电路输入的数据与搜索区像素数据进行运算输出给主相关处理电路,并与从相关处理电路和先入先出存贮器输入的数据及搜索区像素数据进行运算后得到最佳匹配位置。此方案不具有通用性,移植性不高,与现有的软件不能兼容。
发明内容
本发明主要是解决现有技术所存在的通用处理器对大量数据进行点积运算困难、价格昂贵、通用性不高的技术问题,提供一种与通用处理器配套的,高处理速度,同时具备易使用,低成本的硬件结构,实现图像的高性能识别的高性能图像处理***及图像数据处理方法。
本发明针对上述技术问题主要是通过下述技术方案得以解决的:一种高性能图像处理***,包括通用处理器、协处理器、存储器,通用处理器与协处理器连接,通用处理器与协处理器分别与存储器连接,通用处理器与标准串口连接及外部图像输入设备连接。存储器中存有图像模板和外部图像输入设备输入的实时数据。通用处理器是整个***的控制单元,对图像模板进行分析和预处理并控制其他部件工作。当需要进行图像比较处理时,通用处理器发出指令,将实时数据和图像模板数据同时送抵协处理器进行点积运算,并存储运算结果,供通用处理器随时调用。整个***采用了计算机DMA(Direct Memory Access,直接存储器访问)的模式,使数据的点积运算在协处理器中运行,减轻了通用处理器的负荷,加快了识别速度。尤其对于大数据量的情况也可以流畅处理,而且不需要价格昂贵的硬件支持。
作为优选,协处理器包括点积运算部件、多端口存储控制器和DMA控制器,点积运算部件与DMA控制器连接,点积运算部件和DMA控制器分别连接多端口存储控制器,多端口存储控制器连接存储器,DMA控制器连接通用处理器。
作为优选,存储器包括第一子存储器和第二子存储器,第一子存储器和第二子存储器同时连接协处理器,通用处理器连接第二子存储器。第二子存储器用来保存图像模板数据,第一子存储器用来保存实时的图像数据,配合协处理器中的多端口存储控制器可以保证数据顺序、快速地在存储器和点积运算部件之间读取和保存。
作为优选,点积运算部件包括依次连接的乘法器、加法器和点积结果寄存器。点积计算是一对数据相乘,然后与以前的乘积累加的运算方法。运算时,在乘法器相乘的时候新的操作数在读取。乘法器的结果在与点积结果寄存器的数据相加时,乘法器做第二对操作数的相乘,同时第三对数据又在读取,即流水线式处理方式。该方法保证存储器读数据、乘法器相乘和加法器相加同时执行命令操作,大大地提高了计算速度。点积运算的操作数是两组数据,分别存在用于存放模板图像数据的第二子存储器和用于存放实时图像数据的第一子存储器中。对于实时图像数据,其含义是一帧图像或一帧图像中的一个窗口。对于模板图像数据,它是与实时图像数据的尺寸相同的数据,是经过通用处理器处理过后用于与实时图像数据比较的模板。通用处理器每次启动协处理器做的点积运算通常是图像中一个窗口的像素数据量。
作为优选,所述协处理器还包括图像预处理单元,图像预处理单元与多端口存储控制器连接。图像预处理单元将实时图像数据进行边缘特征提取、消除噪音、确定灰度阈值等操作,并将处理以后的数据存入到第一子存储器中。大量的数据不需要进入通用处理器,降低了对通用处理器的要求。
一种图像数据处理方法,包括以下步骤:
A、初始化操作,将寄存结果设为0;
B、将模板图像数据存入存储器;
C、对实时图像数据进行预处理并存储;
D、按序读取模板图像数据中的一个和经过步骤C处理的实时图像数据一个,对两个数据进行乘法操作;
E、将步骤D得到的数据与寄存结构进行加法操作,所得值设为新的寄存结果;
F、如果模板图像数据已被遍历,转到步骤G,否则重复步骤D;
G、寄存结果为计算得到的两个窗口图像的相似度参数,经过多种窗口组合计算,评判各种组合计算的相似度参数,最大者判定图像相同。
作为优选,预处理包括边缘特征提取、消除噪音和确定灰度。
作为优选,步骤E在处理前一组数据时,步骤D同时在处理后一组数据。
本发明带来的有益效果是,可以进行大数据量情况的处理,运行速度快,有良好的通用性,硬件成本低,使用范围广,并降低对通用处理器的要求。
附图说明
图1是本发明的一种简略电路框图;
图2是本发明的一种详细电路框图;
图中:1、通用处理器,2、协处理器,3、存储器,4、外部图像输入设备,5、I/O端口,21、DMA控制器,22、多端口存储控制器,23、点积运算部件,231、乘法器,232、加法器,233、点积结果寄存器,24、图像预处理单元,31、第一子存储器,32、第二子存储器。
具体实施方式
下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
实施例:本实施例的一种高性能图像处理***,如图1所示,包括相互连接的通用处理器1、协处理器2和存储器3,通用处理器1还连接I/O端口5,协处理器2连接外部图像输入设备4。存储器3包括第一子存储器31和第二子存储器32。协处理器2包括点积运算部件23、多端口存储控制器22和DMA控制器21和图像预处理单元24,点积运算部件23和DMA控制器21分别连接多端口存储控制器22,多端口存储控制器22连接存储器3。点积运算部件23包括依次连接的乘法器231、加法器232和点积结果寄存器233。图像预处理单元连接外部图像输入设备4。
通用处理器1首先将通过I/O端口5得到的识别对象的模板数据存入第二子存储器32中。***工作时,外部图像输入设备4实时地将捕获到的视频图像信号送入图像预处理单元24。图像预处理单元24先将收到的实时图像数据进行一些预处理,如边缘特征提取、消除噪音、确定灰度阈值等,然后存入第一子存储器31中。协处理器将第一子存储器31中的实时图像数据与第二子存储器32中的模板图像数据进行相关性比对。对比结果存入存储器3中,通用处理器1可以读取对比结果并通过I/O端口5发送到外部。比对操作是由协处理器2完成的,它将第一子存储器31中的实时图像数据与第二子存储器32中的模板图像数据做点积计算。在此过程中通用处理器1可做其它工作,提高了性能、节省了时间。
通用处理器1可以使用51系列单片机,也可以是ARM或DSP处理器。
DMA控制器21是协处理器2连接通用处理器1的接口,也是协处理器2执行通用处理器1命令的控制器。它接收通用处理器1送来的实时图像数据的存储地址,图像数据的向量长度,模板图像数据的存储地址,然后启动点积运算部件23开始计算。计算结束后,又向通用处理器1送出完成信号。
DMA控制器21的芯片是8237 DMAC。它有业界认可的完整的控制结构和控制方式,包括与通用处理器1之间的通讯方式,与存储器3之间的控制方式。本设计对这种标准的DMA控制标准做了如下扩充:
(a)传统DMA的作用是大量的存储器间数据传输,而本设计则将其扩展为在存储器内大数据量的数据运算,可以对高达数百KB的数据进行运算,而传统的DMA是以一维向量为传输单位的,而本实施例的DMA是以二维图像为传输单位的;
(b)传统DMA的数据传输是一组数据的存储器间传输,而本设计是多组数据的同时读取和运算。
存储器3的工作是靠多端口存储控制器22完成的。存储器3是多存储器体、多读写端口,需要有多端口存储控制器22对其进行协调完成数据的传输。在数据传输的过程中,保证了数据流顺序、快速地在存储器3与点积运算部件23之间读取和保存。
点积的一般算式是:
A=a(1)×b(1)+a(2)×b(2)+.........+a(n)×b(n)
点积计算是一对数据相乘,然后与以前的乘积累加的运算法则。点积的操作数分别来自存储实时图像数据的第一子存储器31和存储图像模板数据的第二子存储器32,在乘法器231相乘的时候新的操作数又在读出。乘法器231的结果在与点积结果寄存器233的数据相加时,乘法器231做第二对操作数的相乘,同时第三对数据又在读出,即流水线式处理方式。该方法保证存储器3读数据、乘法器231相乘和加法器232相加同时执行命令操作,大大地提高了计算速度。本设计的图像数据每个像素为8位,图像模板为16位,乘法的结果为24位,加法器44位,最多可达1M个数据的累加。
图像数据处理包括以下步骤:
A、初始化操作,将寄存结果设为0;
B、将模板图像数据存入存储器;
C、对实时图像数据进行预处理并存储;
D、按序读取模板图像数据中的一个和经过步骤C处理的实时图像数据一个,对两个数据进行乘法操作;
E、将步骤D得到的数据与寄存结构进行加法操作,所得值设为新的寄存结果;
F、如果模板图像数据已被遍历,转到步骤G,否则重复步骤D;
G、寄存结果为计算得到的两个窗口图像的相似度参数,经过多种窗口组合计算,评判各种组合计算的相似度参数,最大者判定图像相同。
预处理包括边缘特征提取、消除噪音和确定灰度。
步骤E在处理前一组数据时,步骤D同时在处理后一组数据。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
尽管本文较多地使用了通用处理器、协处理器等术语,但并不排除使用其它术语的可能性。使用这些术语仅仅是为了更方便地描述和解释本发明的本质;把它们解释成任何一种附加的限制都是与本发明精神相违背的。