一种基于fpga的实时二值图像连通域标记实现方法

xiaoxiao2020-10-23  17

一种基于fpga的实时二值图像连通域标记实现方法
【技术领域】
[0001] 本发明涉及一种二值图像连通域标记实现方法,尤其是一种基于现场可编程口阵 列器件通过硬件方式,使用超标量流水线技术实现对大规模运动目标实时进行连通域标记 的方法。属于大规模集成电路设计W及目标识别和视觉测量技术领域。
[0002]
【背景技术】
[0003] 二值图像连通域标记在雷达系统中为动目标的多普勒频率位置、距离向位置、相 位、幅度、角度和速度等参数的解算提供了重要依据,另外该技术还广泛应用于目标识别、 目标探测、制导、导航W及医学应用领域。
[0004] 二值图像连通域标记是从仅由"0"(表示背景点)和"1"(表示目标点)组成的点 阵图像中,将相邻的目标提取出来。其目的是寻找图像中所有的目标对象,并且将属于同一 目标对象的所有像素用唯一的标记值进行标记。在算法仿真阶段,往往在MTLAB中使用 bwlable函数来实现该功能。在实现阶段,通常有软件和硬件实现两种方式。
[0005] 软件实现的方式是使用高性能的PC机或者工作站,用基于软件方法来实现。但是 由于CPU执行指令的串行化特点,当图像分辨率、峽率提高或动目标数量变多时,处理一峽 图像所耗费的时间会线性增长。当处理时间大于峽间隔时间时,会导致丢峽。为了降低处 理延时,一般的方式是对算法进行改进,提出了区域增长法、深度或者广度优先搜索法、线 标记法等各种优化算法。文献"一种二值图像连通区域标记的新方法"(计算机工程与应 用,2006 ;42 (25) ;50-51)中使用区域增长法,只需要对图像进行一次扫描,提高了运算速 度。"一种二值图像连通区域标记的新方法"(计算机应用,2007 ;27 (11) =2776-2777)中 使用线标记法和区域增长法相结合的方法,其把连通体作为检测的基本单元,大大减少了 需要检测的个数。但是该算法需要反复搜索每个连通体的领域,并且当图像中含有很多点 状和竖线装连通区域时该算法执行效率会显著退化。通过分析软件实现方式得到的测试结 果,完成分辨率为1024巧68的图像连通域标记一般处理时间在百毫砂量级,远远达不到雷 达系统中实时处理的要求。
[0006] 硬件实现方式基于ASIC或者FPGA器件,利用其并行化特点来降低处理延迟。文献 "FPGAbasedconnectedcomponentlabeling',(InternationalConferenceonControl, AutomationandSystems.Seoul,Korea, 2007 ;2313-2317)中描述了一种基于硬件方式 的实现架构,可W每砂处理200峽图像,但是最大仅支持255个运动目标,在动辄需要同时 处理数千个运动目标的合成孔径雷达系统中没有实际用处。

【发明内容】

[0007] 本发明旨在解决图像分辨率最高达18432x4096,并且需要同时处理数千个上万个 运动目标的合成孔径雷达中现有技术无法实现的实时二值图像连通域标记的技术难题。本 发明基于现场可编程口阵列器件通过硬件方式,使用超标量流水线技术实现了实时标记大 规模运动目标,并且本方案能自适应各种分辨率,在动目标形状和数量改变时不会影响其 性能,鲁棒性强,其运算结果和MTLAB的bwl油el函数完全一致。
[0008] 本发明的目的是通过W下技术方案实现的。
[0009] 本发明的一种基于FPGA的实时二值图像连通域标记实现方法,其实现算法使用 四邻域标记算法,具体来讲就是对某一点的处理只与其左边和上边的点的状态相关。处理 过程使用四次扫描的方式,第一次使用顺序方式,从左到右、从上到下对图像进行处理;第 二次则反之使用逆序方式,从右向左、从上到下进行处理;第H次又使用顺序方式处理;最 后一次使用逆序方式扫描处理图像。此种处理算法是比较普通的算法,其计算量相对较大, 但是能够保证在任何形状和任何数量动目标的情况下得到和bwlabel函数一致的结果。本 发明的着眼点是使用独创性的实现架构和实现思想提高处理性能,达到对高分辨率和高峽 率图像实时处理的有益效果。
[0010] 本发明的一种基于FPGA的实时二值图像连通域标记实现方法其硬件平台使用四 个对称处理节点组成,采用VK(架构(高速串行交换架构),互联采用高速串行接口。其中四 个处理节点100~103使用XILINX公司的XC5VX95TI-2高端FPGA;存储单元200~203采用 Micron公司型号为MT47肥56M8-3E的2G比特孤R2颗粒,每个存储单元使用16片孤R2颗 粒,使得每个处理单元的存储容量为16G比特。处理单元之间的互联采用16对2. 5GHz的 Rocket10(XILINX定义的高速串行通信标准),其总带宽大于lOOOMB/s,能够满足合成孔 径雷达中高分辨率带来的高数据吞吐量的要求,另外处理单元之间还有4对差分控制线, 可用于处理单元之间的控制和状态信号的通信。
[0011] 本发明的一种基于FPGA的实时二值图像连通域标记实现方法,其中所述的处理 节点由第一次扫描单元1、主控制器模块2、相关性表存储器组3、普通扫描单元4、孤R访问 仲裁模块5、DDR控制器6和组峽和数据输出模块7构成。主控制器模块2分别与第一次扫 描单元1、相关性表存储器组3、普通扫描单元4和组峽和数据输出模块7相连,交互控制和 状态信息;第一次扫描单元1和普通扫描单元4通过标准的RAM访问接口与相关性表存储 器组3相连,写端口用于更新相关性表的内容,读端口用于读出相关性表的值;第一次扫描 单元1、普通扫描单元4和组峽和数据输出模块7都需要与孤R进行数据交互,所W该H个 模块都通过自定义的高速访问接口与孤R访问仲裁模块5相连;孤R访问仲裁模块5根据 轮询和自定义优先级相结合的仲裁方式把多个并行的对DDR的访问请求映射和复用为串 行的孤R的访问请求与孤R控制器6相连;孤R控制器6根据访问请求产生孤R的访问时 序直接访问外部的DDR芯片;组峽和数据输出模块7根据峽结构把标记值结果嵌入峽内输 出。
[0012] 本发明的一种基于FPGA的实时二值图像连通域标记实现方法,其中所述的第一 次扫描单元1由串并转换模块11、原始数据兵兵缓冲12、第一次扫描单元处理控制模块13、 标记值兵兵缓冲14和孤R写缓冲15构成;主控制器模块2由主控制状态机21和一些辅助 逻辑构成;相关性表存储器组3由访问切换模块31、缓冲器A32和缓冲器B33构成;普通 扫描单元4由读缓冲器组41、普通扫描单元处理控制模块42、孤R写缓冲43和标记值兵兵 缓冲44构成;DDR访问仲裁模块5由端口选择状态机51、端口和状态寄存器组52、读数据 缓冲53和读写控制状态机54构成;DDR控制器6由初始化模块61、控制状态机62、数据通 道63和相位校准模块64构成;组峽和数据输出模块7由读状态机71、读数据缓冲72、组峽 控制逻辑73和输出时序控制模块74构成。
[0013] 本发明的一种基于FPGA的实时二值图像连通域标记实现方法,其实现包括如下 步骤: 1. 在第一次扫描单元中按照从左到右、从上到下的顺序方式完成二值图像的初始标 记,并且把标记值之间的相关性信息写入到相关性表存储器组中: A. 对输入的二值图像数据做串并转换,变为8比特宽度的数据,存入原始数据兵兵缓 冲里。该样每次读取8个图像点的数据来处理,可W减少读取次数; B. 判断是否为目标点,然后做相应的处理。有H种情况,如果不为目标点,那么把当前 位置点的标记值赋值为0 ;如果为新的目标点,也就是其左边和上边的点都不是目标点,那 么把当前位置点的标记值赋值为已使用的最大的标记值加1,并且要修改相关性表;如果 不为新的目标点,需要读出相邻像素的标记值,然后W该些标记值为地址从相关性表存储 器组中读出相关的标记值,把该点的标记值赋值为读出的标记值的最小值,最后修改相关 性表; C. 算出的标记值需要存入标记值兵兵缓冲,因为计算下一行的时候需要用到上一行的 标记值,把上一行的标记值存入内部存储器中主要是为了提高处理速度。同时也要存入DDR 写缓冲FIFO中,第一次扫描单元中的读写控制逻辑根据FIFO中的数据量启动孤R写操作 把标记值存入孤R中; 2. 第一次扫描单元处理完成之后对图像完成了初始标记并且相关性表存储器组里面 存入了标记值的相关性数据。此时主控制器模块通知普通扫描单元开始下一次的扫描操 作,并且通知相关性表存储器组里的访问切换模块做访问切换,之后的读写操作是普通扫 描单元发起的; 3. 普通扫描单元第一次扫描时候按照从右到左、从下到上的逆序方式完成标记的融 合,并且更新相关性表的信息: A. 从DDR中读出标记值存入读缓冲器组中; B. 判断标记值,如果不为0表示该点为目标点。其处理方式和第一次扫描单元处理完 全不同,首先是从读缓冲器组中读出当前处理点W及左边和右边点的标记值,然后用该些 标记值作为地址从相关性表存储器组中读出相关的标记值,然后比较读出的3个点的标记 值的最小值,用该个最小值作为当前点的标记值并且更新相关性表存储器组中的值; C. 算出的标记值写入孤R写缓冲FIFO中,然后存入到孤R中; 4. 普通扫描单元完成扫描之后通知主控制器模块,主控制器模块更新普通扫描单元的 参数值开启下一次的扫描操作; 5. 重复3, 4步操作两次完成对图像的四次扫描; 6. 所有的扫描操作完成之后主 控制器模块通知组峽和数据输出模块从孤R的对应位 置取出最后的标记值,然后根据输出峽的格式生成输出的最终数据,最后输出时序控制模 块产生合适的时序把结果发送出去。
[0014] 与现有技术相比,本发明的有益效果包括: 1.处理速度快,使用XILINX公司型号为X巧VX95TI的FPGA,处理时钟lOOMHz的条件 下最大能够处理的速度达到400M像素每砂,完全能够实时处理合成孔径雷达中二值图像 连通域的标记; 2. 此种实现结构与动目标的形状和数量无关,不同的形状和数量不会降低处理速度; 3. 参数化的实现结构,当图像分辨率和峽率更大的时候只需要修改对应的缓冲器空间 大小,而不用修改实现逻辑; 4. 恒定的处理延时,方便使用在各种不同的系统中。
[0015]
【附图说明】
[0016] 图1为本发明硬件架构示意图 图2为本发明系统中处理节点实现架构示意图 图3为待处理点位置设计图 图4a为第一次扫描单元流水线实现时序图 图4b为待处理的点、对应的标记值W及相关性表中的值的表示方法示意图 图5为第一次扫描单元中不同类型的待处理点的示意图 图6为普通扫描单元流水线实现时序图 图中标号说明: 10(T103处理节点、20(T203处理节点外部存储单元、1第一次扫描单元、2主控制器 模块、3相关性表存储器组、4普通扫描单元、5孤R访问仲裁模块、6孤R控制器、7组峽和 数据输出模块、11串并转换模块、12原始数据兵兵缓冲、13第一次扫描单元处理控制模 块、14标记值兵兵缓冲、15孤R写缓冲、21主控制状态机、31访问切换模块、32缓冲器A、 33缓冲器B、41读缓冲器组、42普通扫描单元处理控制模块、43孤R写缓冲、44标记值兵 兵缓冲、51端口选择状态机、52端口和状态寄存器组、53读数据缓冲、54读写控制状态 机、61初始化模块、62控制状态机、63数据通道、64相位校准模块、71读状态机、72读 数据缓冲、73组峽控制逻辑、74输出时序控制模块。
【具体实施方式】
[0017] 本发明详细结构、应用原理、作用与功效,参照附图1-6,通过如下实施方式予W说 明。
[0018] 本发明硬件平台架构如图1所示,使用四个对称处理节点组成,采用VK(架构,互 联采用高速串行接口。本发明中处理节点实现架构如图2所示,主要包括走个主要的功能 模块。该两部分已经在
【发明内容】
中详细描述了。
[0019] 下面分别描述系统和处理节点中各模块的功能和具体设计方法,进一步对本发明 进行解释,其侧重点在于说明超标量流水线技术是如何在设计中体现的,W及如何提高系 统处理性能的。另外对一些关键的实现细节也进行了阐述: 一、 整个系统在硬件构成上使用四个相同的FPGA,每个FPGA作为一个处理节点,完成 一峽图像的连通域标记操作。处理节点10(T103采用顺序流水的方式工作。前端进入的图 像数据按照4峽为一个处理周期,第i~i+3峽图像分别分派到FPGA_A~FPGA_D中,该四 个处理节点完成扫描后,再汇总到FPGA_D。从总体实现上实现了第一级的流水操作; 二、 在处理节点的实现上采用两级流水线处理的方式,共有两个处理模块,包括第一次 扫描单元1和普通扫描单元4, 一峽图像进入处理节点之后首先在第一次扫描单元内做处 理,处理完成之后交给普通扫描单元做后续处理,此时第一次扫描单元开始处理下一峽的 图像。该是第二级的流水操作; H、第一次扫描单元1,按照从左到右、从上到下的顺序方式完成二值图像的初始标记, 并且把标记值之间的相关性信息写入到相关性表存储器组中。
[0020] 在做初始扫描标记时处理如图3所示的(m,n)位置上的点的时候需要完成几个操 作: 1) 读出(m,n)、(m,n-l)、(m-l,n)H个点的二值数据,判断是否为背景点、新的目标点 或者是有相邻的目标点; 2) 读出(m,n-1)和(m-l,n)的标记值,表示为g(m,n-1)和g(m-l,n); 3) W标记值g(m,n-l)和g(m-l,n)作为地址在相关性表里面读出对应的标记值,表示 为T(g(m,n-1))和T(g(m-1,n)); 4) 比较T(g(m,n-1))和T(g(m-l,n))的大小,求出其最小值,表示为TO; 5) 把(m,n)的标记值赋为TO; 6) 更新T(g(m,n))=T0,T(g(m,n-1))=T0,T(g(m,n-1))=T0 到相关性表中,相关性表存 放于相关性表存储器组中。
[0021] 根据FPGA的结构,上面描述的六个操作每个至少需要一个时钟周期来处理,如果 操作都使用顺序的方式那么就会极大的降低处理速度。在设计中使用如图4a所示的流水 线方式处理,W8个点作为处理颗粒,每次同时读取8个点来处理。图4a中的a^f表示上 面所述的六个操作,带上标的表示上一次或者下一次处理的对应操作;图4b说明了需要处 理的点、对应的标记值W及相关性表中的值的表示方法,T表示目标点,B表示背景点。其执 行流程如下: 1) 在d',e',f'H个时钟周期从原始数据兵兵缓冲12中读出需要处理的8个原 始数据d(m,nrd(m,n巧)W及从标记值兵兵缓冲14中读出对应的上一行8个点的标记值 g(m-l,n)~g(m-l,n+7)。每处理8个像素点只需要读1次。因为有;个时钟周期,FPGA内 部的块存储器的读延迟可W设置为2个时钟周期,该样做可W减少设计中关键路径优化处 理时序。在时钟周期6'的时候该些数据就被读出来了; 2) 在a的时候Wg(m-l,n)为地址在相关性表存储器组3中读出g(m-l,n)对应的标 记值T(g(m-1,n)),同样的读相关性表存储器组3的延迟可W设置为2个时钟周期; 3) 在C的时候处理点上边的点的T(g(m-l,n))的值被读出来了,而左边点的 T(g(m,n-1))是上一次处理的结果可W直接得到,该样就可W比较该两个值,把小的值标记 为TO; 4) 在d,e,fH个时钟周期把C得到的点(m,n)的标记值写入到标记值兵兵缓冲14和 孤R写缓冲15中,并且更新相关性表存储器组3中地址g(m,n-1)和g(m-1,n)的值为TO; 5) 在d,e,fH个时钟周期更新相关性表存储器组3时,下一点处理的a又在读相关性 表,加入比较机制避免地址冲突。
[0022] 该是设计中第H级的流水操作。
[0023] 第一次扫描单元其设计的重点在处理控制模块,根据上述的算法说明,其处理的 像素点可分为3种情况,1)背景点;2)新目标点;3)非新的目标点。如图5所示,其中1为 背景点;2为新的目标点,3、4、5为非新的目标点。然后根据是否需要读上面相邻点的相关 性表的值,又要分为下表所示几种情况:
根据前面描述的H种情况和是否要读从相关性表存储器组3中读取处理点上边临近 点的值,处理的情况总共分为4种情况。包括1、2、3和5a、4和化。所W处理控制模块13 中处理状态机使用4种不同的处理状态来处理所有的情况。根据图4a所示的流水线设计 方式,每个处理状态持续3个时钟周期,该样能够保证有恒定的处理延迟。
[0024] 四、普通扫描单元4会按照逆序、顺序、逆序的顺序对图像进行H次扫描,完成 标记值的融合,同时把标记值之间的相关性信息写入到相关性表存储器组中。
[0025]用图3所示的(m,n)位置上的点为例,其实现需要完成如下操作: 1) 读出(m,n)、(m,n-1)、(m-1,n)H个点的标记值g(m,n)、g(m,n-1)、g(m-l,n),判断 是否为背景点或目标点; 2) W标记值g(m,n)、g(m,n-1)和g(m-l,n)作为地址在相关性表里面读出对应的标记 值,表示为T(g(m,n))、T(g(m,n-1))和T(g(m-1,n)); 3) 比较1'(3〇11,11))、1'(3(111,11-1))和1'(3(111-1,11))的大小,求出其最小值,表示为?; 4) 把(m,n)的标记值赋为TO; 5) 更新T(g(m,n))=T0,T(g(m,n-l))=T0,T(g(m,n-l))=T0 到相关性表中。
[0026] 普通扫描单元的操作只有5个步骤,但是其设计上难度更大。因为上述的第2步 中需要从相关性表存储器组中读出3个标记值对应的值,第4步中需要写3个值到相关性 表存储器中。根据FPGA内部存储器的功能,一个时钟周期只能同时进行一次读写操作,女口 果不进行处理就算2和4并行操作也至少需要3个时钟周期,数据比较需要1个时钟周期, 读取数据和写入结果并行操作也需要1个时钟周期,该就至少需要5个时钟周期。并且普 通扫描需要执行3次,如果按照第一次扫描单元中的固定延迟的流水线设计,那么处理速 度会非常慢。
[0027] 本发明中使用动态延迟的流水线技术来提高处理速度。
[0028] 普通扫描单元中的流水线设计如图6所示。其中A表示从读缓冲器组41中读出 待处理的标记值,从相关性表存储器组3中读取待比较的相关性表的值;B表示比较比较相 关性表的值得到当前处理点的标记值;C表示把当前处理点的标记值写入到孤R写缓冲和 标记值兵兵缓冲中,更新相关性表的内容。
[0029] 从图6中可知流水线的延迟等于A+B的延迟或者C的延迟中延迟量大的一个。分 为下表中的四种情况:
从上表中可W看出,只有当处理两个相邻的目标点并且处理时需要从相关性表存储器 组中读相关性表的值时其 流水线延迟为3个时钟周期,其他情况都小于3个时钟周期。因 为就算是一峽图像中有数千个或者上万个动目标时候,目标点的数量相对于整个图像的点 来讲也是很少的,通过上述的动态延迟的流水线技术就大大提高了处理效率。
[0030] 本实施方式中的处理节点100~103可米用FPGA(FieldProgramm油leGate Array,现场可编程口阵列),也可使用ASIC(Application-SpecificIntegratedCir州it, 专用集成电路)实现。
[0031] 本实施方式试运行中,使用XILINX公司型号为XC5VX95TI的FPGA,处理时钟设置 为lOOMHz的条件下最大能够处理的速度达到400M像素每砂。二值图像通过本系统的处理 之后,得到的标记值与MTLAB的bwl油el函数得到的标记值完全一致,说明达到了预期效 果。
[0032] W上所述的具体描述,对发明的目的、技术方案和有益效果进行了进一步详细说 明,所应理解的是,W上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范 围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明 的保护范围之内。
【主权项】
1. 一种基于FPGA的实时二值图像连通域标记实现方法,其特征在于:硬件平台使用四 个对称处理节点组成,采用VPX架构(高速串行交换架构);其中四个处理节点10(Tl03使用 XILINX公司的XC5VX95TI-2 FPGA ;存储单元200~203采用16片容量为2G比特DDR2颗粒, 使得每个处理单元的存储容量32G比特;处理单元之间的互联采用16对2. 5GHz的Rocket 10,另外处理单元之间还有4对差分控制线,可用于处理单元之间的控制和状态信号的通 信;其中处理节点由第一次扫描单元(1)、主控制器模块(2)、相关性表存储器组(3)、普通 扫描单元(4)、DDR访问仲裁模块(5)、DDR控制器(6 )和组帧和数据输出模块(7 )构成;主控 制器模块(2)分别与第一次扫描单元(1)、相关性表存储器组(3)、普通扫描单元(4)和组帧 和数据输出模块(7)相连,交互控制和状态信息;第一次扫描单元(1)和普通扫描单元(4) 通过标准的RAM访问接口与相关性表存储器组(3)相连,写端口用于更新相关性表的内容, 读端口用于读出相关性表的值;第一次扫描单元(1)、普通扫描单元(4)和组帧和数据输出 模块(7)都需要与DDR进行数据交互,所以这三个模块都通过自定义的高速访问接口与DDR 访问仲裁模块(5)相连;DDR访问仲裁模块(5)根据轮询和自定义优先级相结合的仲裁方式 把多个并行的对DDR的访问请求映射为串行的DDR的访问请求与DDR控制器(6)相连;DDR 控制器(6)根据访问请求产生DDR的访问时序直接访问外部的DDR芯片;组帧和数据输出 模块(7)根据帧结构把标记值结果嵌入帧内输出。2. 如权利要求1所述的一种基于FPGA的实时二值图像连通域标记实现方法,其特征在 于:所述的第一次扫描单元(1)由串并转换模块(11)、原始数据乒乓缓冲(12)、第一次扫描 单元处理控制模块(13)、标记值乒乓缓冲(14)和DDR写缓冲(15)构成;主控制器模块(2) 由主控制状态机(21)和一些辅助逻辑构成;相关性表存储器组(3)由访问切换模块(31)、 缓冲器A (32)和缓冲器B (33)构成;普通扫描单元(4)由读缓冲器组(41)、普通扫描单元 处理控制模块(42 )、DDR写缓冲(43 )和标记值乒乓缓冲(44)构成;DDR访问仲裁模块(5 )由 端口选择状态机(51)、端口和状态寄存器组(52)、读数据缓冲(53)和读写控制状态机(54) 构成;DDR控制器(6 )由初始化模块(61 )、控制状态机(62 )、数据通道(63 )和相位校准模块 (64)构成;组帧和数据输出模块(7)由读状态机(71)、读数据缓冲(72)、组帧控制逻辑(73) 和输出时序控制模块(74)构成。3. 如权利要求1所述的一种基于FPGA的实时二值图像连通域标记实现方法,其特征在 于实现包括如下步骤: A.在第一次扫描单元(1)中按照从左到右、从上到下的顺序方式完成二值图像的初始 标记,并且把标记值之间的相关性信息写入到相关性表存储器组(3)中; a) 对输入的二值图像数据做串并转换,变为8比特宽度的数据,存入原始数据乒乓缓 冲(12)里,使得每次读取8个图像点的数据来处理,可以减少读取次数; b) 判断是否为目标点,然后做相应的处理;有三种情况,如果不为目标点,那么把当前 位置点的标记值赋值为〇 ;如果为新的目标点,也就是其左边和上边的点都不是目标点,那 么把当前位置点的标记值赋值为已使用的最大的标记值加1,并且要修改相关性表;如果 不为新的目标点,需要读出相邻像素的标记值,然后以这些标记值为地址从相关性表存储 器组(3)中读出相关的标记值,把该点的标记值赋值为读出的标记值的最小值,最后修改相 关性表; c) 算出的标记值存入标记值乒乓缓冲(14)和DDR写缓冲FIFO (15)中,第一次扫描单 元(1)中的读写控制逻辑根据FIFO中的数据量启动DDR写操作把标记值存入DDR中; 第一次扫描单元(1)处理完成之后对图像完成了初始标记并且相关性表存储器组(3) 里面存入了标记值的相关性数据;此时主控制器模块(2)通知普通扫描单元(4)开始下一 次的扫描操作,并且通知相关性表存储器组(3)里的访问切换模块(31)做访问切换,之后 响应普通扫描单元(4)发起的读写操作; C. 普通扫描单元(4)第一次扫描时按照从右到左、从下到上的逆序方式完成标记的融 合,并且更新相关性表的信息; a) 从DDR中读出标记值存入读缓冲器组(41)中; b) 判断标记值,如果不为0表示该点为目标点;其处理方式和第一次扫描单元(1)的 处理完全不同,首先是从读缓冲器组中读出当前处理点以及左边和右边点的标记值,然后 用这些标记值作为地址从相关性表存储器组(3)中读出相关的标记值,然后比较得到读出 的3个点的标记值的最小值,用这个最小值作为当前点的标记值并且更新相关性表存储器 组(3)中的值; c) 算出的标记值写入DDR写缓冲FIFO (43)中,然后存入到DDR中; D. 普通扫描单元(4 )完成扫描之后通知主控制器模块(2 ),主控制器模块(2 )更新普 通扫描单元(4)的参数值开启下一次的扫描操作; E. 重复C,D步操作两次完成对图像的四次扫描; F. 所有的扫描操作完成之后主控制器模块(2)通知组帧和数据输出模块(7)从DDR的 对应位置取出最后的标记值,然后根据输出帧的格式生成输出的最终数据,最后输出时序 控制模块(74)产生合适的时序把结果发送出去。4. 如权利要求1所述的一种基于FPGA的实时二值图像连通域标记实现方法,其特征在 于:实现上使用了超标量流水线技术,具体体现在: A. 处理节点KKT103采用顺序流水的方式工作;前端进入的图像数据按照4帧为一 个处理周期,第i~i+3帧图像分别分派到FPGA_A~FPGA_D*,这四个处理节点完成扫描 后,再汇总到FPGA_D ;从总体实现上实现了第一级的流水操作; B. 在处理节点的实现上采用两级流水线处理的方式,共有两个处理模块,包括第一次 扫描单元1和普通扫描单元4, 一帧图像进入处理节点之后首先在第一次扫描单元内做处 理,处理完成之后交给普通扫描单元做后续处理,此时第一次扫描单元开始处理下一帧的 图像;这是第二级的流水操作; C. 在处理过程中,对每个像素点需要完成读数据、读相关性表数据、比较、更新相关性 表和写数据五个步骤,这五个步骤通过流水方式处理,使得每个像素点的处理最多只需要 三个时钟周期;这是第三级的流水操作。5. 如权利要求1所述的一种基于FPGA的实时二值图像连通域标记实现方法,其特征在 于:在普通扫描单元的实现上使用动态延迟的流水线技术;其具体体现在:根据上一次处 理点的类型和当前处理点类型把处理分成四种情况,只有当处理两个相邻的目标点并且处 理时需要从相关性表存储器组(3)中读相关性表的值时其流水线延迟为3个时钟周期,其 他情况都小于3个时钟周期。
【专利摘要】本发明公开了一种基于FPGA的实时二值图像连通域标记实现方法,属于大规模集成电路设计以及目标识别和视觉测量技术领域,旨在基于现场可编程门阵列器件通过硬件的方式实现大规模运动目标的实时连通域标记。本发明使用四个对称处理节点,采用最新的串行交换架构(VPX架构);每个处理节点包括XILINX公司的XC5VX95TI-2FPGA和存储容量高达16G比特的DDR存储单元,节点之间采用16对2.5GHz的RocketIO互联;其中处理节点第一次扫描单元、主控制器模块、相关性存储器组、普通扫描单元、DDR访问仲裁模块、DDR控制器和组帧和数据输出模块构成。本发明使用超标量流水线和动态延迟流水线技术实现了实时标记大规模运动目标,并且能自适应各种分辨率,在动目标形状和数量改变时不会影响其性能,鲁棒性强,其运算结果和MATLAB的bwlabel函数完全一致。
【IPC分类】G06K9/38, G06T1/20
【公开号】CN104881666
【申请号】CN201410068052
【发明人】王磊
【申请人】王磊
【公开日】2015年9月2日
【申请日】2014年2月27日
转载请注明原文地址:https://www.famiwei.com/read-8138410.html

最新回复(0)