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

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

Info

Publication number
CN104881666B
CN104881666B CN201410068052.2A CN201410068052A CN104881666B CN 104881666 B CN104881666 B CN 104881666B CN 201410068052 A CN201410068052 A CN 201410068052A CN 104881666 B CN104881666 B CN 104881666B
Authority
CN
China
Prior art keywords
ddr
data
read
processing
mark value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410068052.2A
Other languages
English (en)
Other versions
CN104881666A (zh
Inventor
王磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Jingyao Communication Technology Co., Ltd.
Original Assignee
王磊
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 王磊 filed Critical 王磊
Priority to CN201410068052.2A priority Critical patent/CN104881666B/zh
Publication of CN104881666A publication Critical patent/CN104881666A/zh
Application granted granted Critical
Publication of CN104881666B publication Critical patent/CN104881666B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Processing (AREA)
  • Image Analysis (AREA)

Abstract

本发明公开了一种基于FPGA的实时二值图像连通域标记实现方法,属于大规模集成电路设计以及目标识别和视觉测量技术领域,旨在基于现场可编程门阵列器件通过硬件的方式实现大规模运动目标的实时连通域标记。本发明使用四个对称处理节点,采用最新的串行交换架构(VPX架构);每个处理节点包括XILINX公司的XC5VX95TI‑2 FPGA和存储容量高达16G比特的DDR存储单元,节点之间采用16对2.5GHz的RocketIO互联;其中处理节点第一次扫描单元、主控制器模块、相关性存储器组、普通扫描单元、DDR访问仲裁模块、DDR控制器和组帧和数据输出模块构成。本发明使用超标量流水线和动态延迟流水线技术实现了实时标记大规模运动目标,并且能自适应各种分辨率,在动目标形状和数量改变时不会影响其性能,鲁棒性强,其运算结果和MATLAB的bwlabel函数完全一致。

Description

一种基于FPGA的实时二值图像连通域标记实现方法
技术领域
本发明涉及一种二值图像连通域标记实现方法,尤其是一种基于现场可编程门阵列器件通过硬件方式,使用超标量流水线技术实现对大规模运动目标实时进行连通域标记的方法。属于大规模集成电路设计以及目标识别和视觉测量技术领域。
背景技术
二值图像连通域标记在雷达***中为动目标的多普勒频率位置、距离向位置、相位、幅度、角度和速度等参数的解算提供了重要依据,另外该技术还广泛应用于目标识别、目标探测、制导、导航以及医学应用领域。
二值图像连通域标记是从仅由“0”(表示背景点)和“1”(表示目标点)组成的点阵图像中,将相邻的目标提取出来。其目的是寻找图像中所有的目标对象,并且将属于同一目标对象的所有像素用唯一的标记值进行标记。在算法仿真阶段,往往在MATLAB中使用bwlable函数来实现该功能。在实现阶段,通常有软件和硬件实现两种方式。
软件实现的方式是使用高性能的PC机或者工作站,用基于软件方法来实现。但是由于CPU执行指令的串行化特点,当图像分辨率、帧率提高或动目标数量变多时,处理一帧图像所耗费的时间会线性增长。当处理时间大于帧间隔时间时,会导致丢帧。为了降低处理延时,一般的方式是对算法进行改进,提出了区域增长法、深度或者广度优先搜索法、线标记法等各种优化算法。文献“一种二值图像连通区域标记的新方法”(计算机工程与应用,2006;42(25):50-51)中使用区域增长法,只需要对图像进行一次扫描,提高了运算速度。“一种二值图像连通区域标记的新方法”(计算机应用,2007;27(11):2776-2777)中使用线标记法和区域增长法相结合的方法,其把连通体作为检测的基本单元,大大减少了需要检测的个数。但是该算法需要反复搜索每个连通体的领域,并且当图像中含有很多点状和竖线装连通区域时该算法执行效率会显著退化。通过分析软件实现方式得到的测试结果,完成分辨率为1024x768的图像连通域标记一般处理时间在百毫秒量级,远远达不到雷达***中实时处理的要求。
硬件实现方式基于ASIC或者FPGA器件,利用其并行化特点来降低处理延迟。文献“FPGA based connected component labeling”(International Conference onControl,Automation and Systems. Seoul, Korea, 2007:2313-2317)中描述了一种基于硬件方式的实现架构,可以每秒处理200帧图像,但是最大仅支持255个运动目标,在动辄需要同时处理数千个运动目标的合成孔径雷达***中没有实际用处。
发明内容
本发明旨在解决图像分辨率最高达18432x4096,并且需要同时处理数千个上万个运动目标的合成孔径雷达中现有技术无法实现的实时二值图像连通域标记的技术难题。本发明基于现场可编程门阵列器件通过硬件方式,使用超标量流水线技术实现了实时标记大规模运动目标,并且本方案能自适应各种分辨率,在动目标形状和数量改变时不会影响其性能,鲁棒性强,其运算结果和MATLAB的bwlabel函数完全一致。
本发明的目的是通过以下技术方案实现的。
本发明的一种基于FPGA的实时二值图像连通域标记实现方法,其实现算法使用四邻域标记算法,具体来讲就是对某一点的处理只与其左边和上边的点的状态相关。处理过程使用四次扫描的方式,第一次使用顺序方式,从左到右、从上到下对图像进行处理;第二次则反之使用逆序方式,从右向左、从上到下进行处理;第三次又使用顺序方式处理;最后一次使用逆序方式扫描处理图像。此种处理算法是比较普通的算法,其计算量相对较大,但是能够保证在任何形状和任何数量动目标的情况下得到和bwlabel函数一致的结果。本发明的着眼点是使用独创性的实现架构和实现思想提高处理性能,达到对高分辨率和高帧率图像实时处理的有益效果。
本发明的一种基于FPGA的实时二值图像连通域标记实现方法其硬件平台使用四个对称处理节点组成,采用VPX架构(高速串行交换架构),互联采用高速串行接口。其中四个处理节点100~103使用XILINX公司的XC5VX95TI-2高端FPGA;存储单元200~203采用Micron公司型号为MT47H256M8-3E的2G比特DDR2颗粒,每个存储单元使用16片DDR2颗粒,使得每个处理单元的存储容量为16G比特。处理单元之间的互联采用16对2.5GHz 的RocketIO(XILINX定义的高速串行通信标准),其总带宽大于1000MB/s,能够满足合成孔径雷达中高分辨率带来的高数据吞吐量的要求,另外处理单元之间还有4对差分控制线,可用于处理单元之间的控制和状态信号的通信。
本发明的一种基于FPGA的实时二值图像连通域标记实现方法,其中所述的处理节点由第一次扫描单元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根据帧结构把标记值结果嵌入帧内输出。
本发明的一种基于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构成。
本发明的一种基于FPGA的实时二值图像连通域标记实现方法,其实现包括如下步骤:
1.在第一次扫描单元中按照从左到右、从上到下的顺序方式完成二值图像的初始标记,并且把标记值之间的相关性信息写入到相关性表存储器组中:
A.对输入的二值图像数据做串并转换,变为8比特宽度的数据,存入原始数据乒乓缓冲里。这样每次读取8个图像点的数据来处理,可以减少读取次数;
B.判断是否为目标点,然后做相应的处理。有三种情况,如果不为目标点,那么把当前位置点的标记值赋值为0;如果为新的目标点,也就是其左边和上边的点都不是目标点,那么把当前位置点的标记值赋值为已使用的最大的标记值加1,并且要修改相关性表;如果不为新的目标点,需要读出相邻像素的标记值,然后以这些标记值为地址从相关性表存储器组中读出相关的标记值,把该点的标记值赋值为读出的标记值的最小值,最后修改相关性表;
C.算出的标记值需要存入标记值乒乓缓冲,因为计算下一行的时候需要用到上一行的标记值,把上一行的标记值存入内部存储器中主要是为了提高处理速度。同时也要存入DDR写缓冲FIFO中,第一次扫描单元中的读写控制逻辑根据FIFO中的数据量启动DDR写操作把标记值存入DDR中;
2.第一次扫描单元处理完成之后对图像完成了初始标记并且相关性表存储器组里面存入了标记值的相关性数据。此时主控制器模块通知普通扫描单元开始下一次的扫描操作,并且通知相关性表存储器组里的访问切换模块做访问切换,之后的读写操作是普通扫描单元发起的;
3.普通扫描单元第一次扫描时候按照从右到左、从下到上的逆序方式完成标记的融合,并且更新相关性表的信息:
A.从DDR中读出标记值存入读缓冲器组中;
B.判断标记值,如果不为0表示该点为目标点。其处理方式和第一次扫描单元处理完全不同,首先是从读缓冲器组中读出当前处理点以及左边和右边点的标记值,然后用这些标记值作为地址从相关性表存储器组中读出相关的标记值,然后比较读出的3个点的标记值的最小值,用这个最小值作为当前点的标记值并且更新相关性表存储器组中的值;
C.算出的标记值写入DDR写缓冲FIFO中,然后存入到DDR中;
4.普通扫描单元完成扫描之后通知主控制器模块,主控制器模块更新普通扫描单元的参数值开启下一次的扫描操作;
5.重复3,4步操作两次完成对图像的四次扫描;
6.所有的扫描操作完成之后主控制器模块通知组帧和数据输出模块从DDR的对应位置取出最后的标记值,然后根据输出帧的格式生成输出的最终数据,最后输出时序控制模块产生合适的时序把结果发送出去。
与现有技术相比,本发明的有益效果包括:
1.处理速度快,使用XILINX公司型号为XC5VX95TI的FPGA,处理时钟100MHz的条件下最大能够处理的速度达到400M像素每秒,完全能够实时处理合成孔径雷达中二值图像连通域的标记;
2.此种实现结构与动目标的形状和数量无关,不同的形状和数量不会降低处理速度;
3.参数化的实现结构,当图像分辨率和帧率更大的时候只需要修改对应的缓冲器空间大小,而不用修改实现逻辑;
4.恒定的处理延时,方便使用在各种不同的***中。
附图说明
图1为本发明硬件架构示意图
图2为本发明***中处理节点实现架构示意图
图3为待处理点位置设计图
图4a为第一次扫描单元流水线实现时序图
图4b为待处理的点、对应的标记值以及相关性表中的值的表示方法示意图
图5为第一次扫描单元中不同类型的待处理点的示意图
图6为普通扫描单元流水线实现时序图
图中标号说明:
100~103 处理节点、200~203 处理节点外部存储单元、1 第一次扫描单元、2 主控制器模块、3 相关性表存储器组、4 普通扫描单元、5 DDR访问仲裁模块、6 DDR控制器、7 组帧和数据输出模块、11 串并转换模块、12 原始数据乒乓缓冲、13 第一次扫描单元处理控制模块、14 标记值乒乓缓冲、15 DDR写缓冲、21 主控制状态机、31访问切换模块、32缓冲器A、33 缓冲器B、41 读缓冲器组、42 普通扫描单元处理控制模块、43 DDR写缓冲、44 标记值乒乓缓冲、51 端口选择状态机、52 端口和状态寄存器组、53 读数据缓冲、54 读写控制状态机、61 初始化模块、62 控制状态机、63 数据通道、64 相位校准模块、71 读状态机、72读数据缓冲、73 组帧控制逻辑、74 输出时序控制模块。
具体实施方式
本发明详细结构、应用原理、作用与功效,参照附图1-6,通过如下实施方式予以说明。
本发明硬件平台架构如图1所示,使用四个对称处理节点组成,采用VPX架构,互联采用高速串行接口。本发明中处理节点实现架构如图2所示,主要包括七个主要的功能模块。这两部分已经在发明内容中详细描述了。
下面分别描述***和处理节点中各模块的功能和具体设计方法,进一步对本发明进行解释,其侧重点在于说明超标量流水线技术是如何在设计中体现的,以及如何提高***处理性能的。另外对一些关键的实现细节也进行了阐述:
一、整个***在硬件构成上使用四个相同的FPGA,每个FPGA作为一个处理节点,完成一帧图像的连通域标记操作。处理节点100~103采用顺序流水的方式工作。前端进入的图像数据按照4帧为一个处理周期,第i ~ i+3帧图像分别分派到FPGA_A ~ FPGA_D中,这四个处理节点完成扫描后,再汇总到FPGA_D。从总体实现上实现了第一级的流水操作;
二、在处理节点的实现上采用两级流水线处理的方式,共有两个处理模块,包括第一次扫描单元1和普通扫描单元4,一帧图像进入处理节点之后首先在第一次扫描单元内做处理,处理完成之后交给普通扫描单元做后续处理,此时第一次扫描单元开始处理下一帧的图像。这是第二级的流水操作;
三、第一次扫描单元1,按照从左到右、从上到下的顺序方式完成二值图像的初始标记,并且把标记值之间的相关性信息写入到相关性表存储器组中。
在做初始扫描标记时处理如图3所示的(m,n)位置上的点的时候需要完成几个操作:
1) 读出(m,n)、(m,n-1)、(m-1,n)三个点的二值数据,判断是否为背景点、新的目标点或者是有相邻的目标点;
2) 读出(m,n-1)和(m-1,n)的标记值,表示为g(m,n-1)和g(m-1,n);
3) 以标记值g(m,n-1)和g(m-1,n)作为地址在相关性表里面读出对应的标记值,表示为T(g(m,n-1))和T(g(m-1,n));
4) 比较T(g(m,n-1))和T(g(m-1,n))的大小,求出其最小值,表示为T0;
5) 把(m,n)的标记值赋为T0;
6) 更新T(g(m,n))=T0,T(g(m,n-1))=T0,T(g(m,n-1))=T0到相关性表中,相关性表存放于相关性表存储器组中。
根据FPGA的结构,上面描述的六个操作每个至少需要一个时钟周期来处理,如果操作都使用顺序的方式那么就会极大的降低处理速度。在设计中使用如图4a所示的流水线方式处理,以8个点作为处理颗粒,每次同时读取8个点来处理。图4a中的a~f表示上面所述的六个操作,带上标的表示上一次或者下一次处理的对应操作;图4b说明了需要处理的点、对应的标记值以及相关性表中的值的表示方法,T表示目标点,B表示背景点。其执行流程如下:
1) 在d’, e’, f’三个时钟周期从原始数据乒乓缓冲12中读出需要处理的8个原始数据d(m,n)~d(m,n+7)以及从标记值乒乓缓冲14中读出对应的上一行8个点的标记值g(m-1,n)~g(m-1,n+7)。每处理8个像素点只需要读1次。因为有三个时钟周期,FPGA内部的块存储器的读延迟可以设置为2个时钟周期,这样做可以减少设计中关键路径优化处理时序。在时钟周期6’的时候这些数据就被读出来了;
2) 在a的时候以g(m-1,n)为地址在相关性表存储器组3中读出g(m-1,n)对应的标记值T(g(m-1,n)),同样的读相关性表存储器组3的延迟可以设置为2个时钟周期;
3) 在c的时候处理点上边的点的T(g(m-1,n))的值被读出来了,而左边点的T(g(m,n-1))是上一次处理的结果可以直接得到,这样就可以比较这两个值,把小的值标记为T0;
4) 在d,e,f三个时钟周期把c得到的点(m,n)的标记值写入到标记值乒乓缓冲14和DDR写缓冲15中,并且更新相关性表存储器组3中地址g(m,n-1)和g(m-1,n)的值为T0;
5) 在d,e,f三个时钟周期更新相关性表存储器组3时,下一点处理的a又在读相关性表,加入比较机制避免地址冲突。
这是设计中第三级的流水操作。
第一次扫描单元其设计的重点在处理控制模块,根据上述的算法说明,其处理的像素点可分为3种情况,1)背景点;2)新目标点;3)非新的目标点。如图5所示,其中1为背景点;2为新的目标点,3、4、5为非新的目标点。然后根据是否需要读上面相邻点的相关性表的值,又要分为下表所示几种情况:
根据前面描述的三种情况和是否要读从相关性表存储器组3中读取处理点上边临近点的值,处理的情况总共分为4种情况。包括1、2、3和5a、4和5b。所以处理控制模块13中处理状态机使用4种不同的处理状态来处理所有的情况。根据图4a所示的流水线设计方式,每个处理状态持续3个时钟周期,这样能够保证有恒定的处理延迟。
四、普通扫描单元4会按照逆序、顺序、逆序的顺序对图像进行三次扫描,完成标记值的融合,同时把标记值之间的相关性信息写入到相关性表存储器组中。
用图3所示的(m,n)位置上的点为例,其实现需要完成如下操作:
1) 读出(m,n)、(m,n-1)、(m-1,n)三个点的标记值g(m,n)、g(m,n-1)、g(m-1,n),判断是否为背景点或目标点;
2) 以标记值g(m,n)、g(m,n-1)和g(m-1,n)作为地址在相关性表里面读出对应的标记值,表示为T(g(m,n))、T(g(m,n-1))和T(g(m-1,n));
3) 比较T(g(m,n))、T(g(m,n-1))和T(g(m-1,n))的大小,求出其最小值,表示为T0;
4) 把(m,n)的标记值赋为T0;
5) 更新T(g(m,n))=T0,T(g(m,n-1))=T0,T(g(m,n-1))=T0到相关性表中。
普通扫描单元的操作只有5个步骤,但是其设计上难度更大。因为上述的第2步中需要从相关性表存储器组中读出3个标记值对应的值,第4步中需要写3个值到相关性表存储器中。根据FPGA内部存储器的功能,一个时钟周期只能同时进行一次读写操作,如果不进行处理就算2和4并行操作也至少需要3个时钟周期,数据比较需要1个时钟周期,读取数据和写入结果并行操作也需要1个时钟周期,这就至少需要5个时钟周期。并且普通扫描需要执行3次,如果按照第一次扫描单元中的固定延迟的流水线设计,那么处理速度会非常慢。
本发明中使用动态延迟的流水线技术来提高处理速度。
普通扫描单元中的流水线设计如图6所示。其中A表示从读缓冲器组41中读出待处理的标记值,从相关性表存储器组3中读取待比较的相关性表的值;B表示比较比较相关性表的值得到当前处理点的标记值;C表示把当前处理点的标记值写入到DDR写缓冲和标记值乒乓缓冲中,更新相关性表的内容。
从图6中可知流水线的延迟等于A+B的延迟或者C的延迟中延迟量大的一个。分为下表中的四种情况:
从上表中可以看出,只有当处理两个相邻的目标点并且处理时需要从相关性表存储器组中读相关性表的值时其流水线延迟为3个时钟周期,其他情况都小于3个时钟周期。因为就算是一帧图像中有数千个或者上万个动目标时候,目标点的数量相对于整个图像的点来讲也是很少的,通过上述的动态延迟的流水线技术就大大提高了处理效率。
本实施方式中的处理节点100~103可采用FPGA(Field Programmable GateArray,现场可编程门阵列),也可使用ASIC(Application-Specific Integrated Circuit,专用集成电路)实现。
本实施方式试运行中,使用XILINX公司型号为XC5VX95TI的FPGA,处理时钟设置为100MHz的条件下最大能够处理的速度达到400M像素每秒。二值图像通过本***的处理之后,得到的标记值与MATLAB的bwlabel函数得到的标记值完全一致,说明达到了预期效果。
以上所述的具体描述,对发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (3)

1.一种基于FPGA的实时二值图像连通域标记实现方法,其特征在于:硬件平台使用四个对称处理节点组成,采用VPX架构(高速串行交换架构);其中四个处理节点100~103使用XILINX公司的XC5VX95TI-2 FPGA,存储单元200~203采用16片容量为2G比特DDR2颗粒,使得每个处理单元的存储容量32G比特,处理单元之间的互联采用16对2.5GHz 的Rocket IO,另外处理单元之间还有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)根据帧结构把标记值结果嵌入帧内输出;
所述的第一次扫描单元(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)构成;
其特征在于实现包括如下步骤:
A. 在第一次扫描单元(1)中按照从左到右、从上到下的顺序方式完成二值图像的初始标记,并且把标记值之间的相关性信息写入到相关性表存储器组(3)中:
a)对输入的二值图像数据做串并转换,变为8比特宽度的数据,存入原始数据乒乓缓冲(12)里,使得每次读取8个图像点的数据来处理,可以减少读取次数;
b)判断是否为目标点,然后做相应的处理,有三种情况,如果不为目标点,那么把当前位置点的标记值赋值为0;如果为新的目标点,也就是其左边和上边的点都不是目标点,那么把当前位置点的标记值赋值为已使用的最大的标记值加1,并且要修改相关性表;如果不为新的目标点,需要读出相邻像素的标记值,然后以这些标记值为地址从相关性表存储器组(3)中读出相关的标记值,把该点的标记值赋值为读出的标记值的最小值,最后修改相关性表;
c)算出的标记值存入标记值乒乓缓冲(14)和DDR写缓冲FIFO(15)中,第一次扫描单元(1)中的读写控制逻辑根据FIFO中的数据量启动DDR写操作把标记值存入DDR中;
B. 第一次扫描单元(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)产生合适的时序把结果发送出去。
2.如权利要求1所述的一种基于FPGA的实时二值图像连通域标记实现方法,其特征在于:实现上使用了超标量流水线技术,具体体现在:
A.处理节点100~103采用顺序流水的方式工作,前端进入的图像数据按照4帧为一个处理周期,第i ~ i+3帧图像分别分派到FPGA_A ~ FPGA_D中,这四个处理节点完成扫描后,再汇总到FPGA_D,从总体实现上实现了第一级的流水操作;
B.在处理节点的实现上采用两级流水线处理的方式,共有两个处理模块,包括第一次扫描单元1和普通扫描单元4,一帧图像进入处理节点之后首先在第一次扫描单元内做处理,处理完成之后交给普通扫描单元做后续处理,此时第一次扫描单元开始处理下一帧的图像,这是第二级的流水操作;
C.在处理过程中,对每个像素点需要完成读数据、读相关性表数据、比较、更新相关性表和写数据五个步骤,这五个步骤通过流水方式处理,使得每个像素点的处理最多只需要三个时钟周期,这是第三级的流水操作。
3.如权利要求1所述的一种基于FPGA的实时二值图像连通域标记实现方法,其特征在于:在普通扫描单元的实现上使用动态延迟的流水线技术,其具体体现在:根据上一次处理点的类型和当前处理点类型把处理分成四种情况,只有当处理两个相邻的目标点并且处理时需要从相关性表存储器组(3)中读相关性表的值时其流水线延迟为3个时钟周期,其他情况都小于3个时钟周期。
CN201410068052.2A 2014-02-27 2014-02-27 一种基于fpga的实时二值图像连通域标记实现方法 Active CN104881666B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410068052.2A CN104881666B (zh) 2014-02-27 2014-02-27 一种基于fpga的实时二值图像连通域标记实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410068052.2A CN104881666B (zh) 2014-02-27 2014-02-27 一种基于fpga的实时二值图像连通域标记实现方法

Publications (2)

Publication Number Publication Date
CN104881666A CN104881666A (zh) 2015-09-02
CN104881666B true CN104881666B (zh) 2018-01-16

Family

ID=53949153

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410068052.2A Active CN104881666B (zh) 2014-02-27 2014-02-27 一种基于fpga的实时二值图像连通域标记实现方法

Country Status (1)

Country Link
CN (1) CN104881666B (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105261049B (zh) * 2015-09-15 2017-09-22 重庆飞洲光电技术研究院 一种图像连通区域快速检测方法
CN105374032B (zh) * 2015-10-14 2018-01-12 合肥安晶龙电子股份有限公司 连通区域标记方法
CN105528305B (zh) * 2015-12-04 2018-04-13 北京理工大学 一种基于ddr2 sdram的短周期存储方法
US10355945B2 (en) 2016-09-21 2019-07-16 International Business Machines Corporation Service level management of a workload defined environment
US10417012B2 (en) 2016-09-21 2019-09-17 International Business Machines Corporation Reprogramming a field programmable device on-demand
US9996334B2 (en) 2016-09-21 2018-06-12 International Business Machines Corporation Deploying and utilizing a software library and corresponding field programmable device binary
US10599479B2 (en) 2016-09-21 2020-03-24 International Business Machines Corporation Resource sharing management of a field programmable device
US10572310B2 (en) 2016-09-21 2020-02-25 International Business Machines Corporation Deploying and utilizing a software library and corresponding field programmable device binary
CN106780288B (zh) * 2016-12-08 2020-10-20 苏州长风航空电子有限公司 一种多边形填充的硬件加速电路
CN107038736B (zh) * 2017-03-17 2021-07-06 腾讯科技(深圳)有限公司 一种基于帧率的动画展示方法及终端设备
CN107231535B (zh) * 2017-05-11 2020-02-18 大连理工大学 一种空间标志物动态坐标实时捕捉相机
CN107993246A (zh) * 2018-01-19 2018-05-04 歌尔科技有限公司 图像处理设备及连通域标记方法、***、装置、存储介质
CN108961298A (zh) * 2018-07-25 2018-12-07 安徽师范大学 一种基于线阵ccd图像流的快速连通域检测fpga实现方法
CN109146804B (zh) * 2018-07-26 2021-03-16 南京航空航天大学 一种基于fpga的sar图像几何失真校正方法
CN109597654B (zh) * 2018-12-07 2022-01-11 湖南国科微电子股份有限公司 寄存器初始化方法、基础配置表的生成方法及嵌入式***
CN110533678B (zh) * 2019-07-26 2022-02-11 杭州电子科技大学 基于fpga帧并行连通域筛选特征目标的图像处理方法
CN112114103B (zh) * 2020-08-18 2021-07-20 华南理工大学 基于鲁棒自适应典型相关分析的污水厂污泥膨胀检测方法
CN112784832B (zh) * 2021-02-09 2022-09-09 西南科技大学 一种物体标记点识别方法及装置
CN113377049B (zh) * 2021-06-11 2022-09-06 西安应用光学研究所 基于fpga低延迟视频图像缓存的ddr控制方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5604894B2 (ja) * 2010-02-16 2014-10-15 セイコーエプソン株式会社 画像処理装置、画像処理方法、コンピュータープログラム
CN102193865B (zh) * 2010-03-16 2015-03-25 联想(北京)有限公司 存储***、存储方法和使用其的终端
US8438326B2 (en) * 2010-06-07 2013-05-07 Xilinx, Inc. Scalable memory interface system
CN102103548B (zh) * 2011-02-22 2015-06-10 中兴通讯股份有限公司 提高双倍数据速率同步随机存储器读写速率的方法及装置
CN102339261B (zh) * 2011-09-16 2015-09-30 上海智翔信息科技股份有限公司 一种ddr2sdram控制器
CN103019779B (zh) * 2012-11-30 2015-11-25 北京遥测技术研究所 一种fpga/dsp嵌入式***的程序更新方法

Also Published As

Publication number Publication date
CN104881666A (zh) 2015-09-02

Similar Documents

Publication Publication Date Title
CN104881666B (zh) 一种基于fpga的实时二值图像连通域标记实现方法
Pauwels et al. A comparison of FPGA and GPU for real-time phase-based optical flow, stereo, and local image features
RU2623806C1 (ru) Способ и устройство обработки стереоизображений
CN103136721B (zh) 内联图像旋转
JPH0778825B2 (ja) 画像処理プロセツサ
CN110637461B (zh) 计算机视觉***中的致密光学流处理
CN109658337B (zh) 一种图像实时电子消旋的fpga实现方法
Kowalczyk et al. Real-time implementation of contextual image processing operations for 4K video stream in Zynq ultrascale+ MPSoC
CN205608814U (zh) 一种基于Zynq软硬件协同处理的增强现实***
WO2020073801A1 (zh) 一种3d图像处理中数据读写方法及***、存储介质及终端
JP6128617B2 (ja) 画像認識装置およびプログラム
US20220006457A1 (en) Glitch-free multiplexer
CN110651475B (zh) 用于致密光学流的阶层式数据组织
CN101567078A (zh) 一种双总线的视觉处理芯片架构
CN106952215B (zh) 一种图像金字塔特征提取电路、装置及方法
WO2023184754A1 (zh) 可配置实时视差点云计算装置及方法
Seo et al. A new parallel hardware architecture for high-performance stereo matching calculation
Tan et al. Resource minimization in a real-time depth-map processing system on FPGA
Kim et al. A real-time finite line detection system based on FPGA
RU168781U1 (ru) Устройство обработки стереоизображений
CN101452572A (zh) 基于三次平移算法的图像旋转vlsi结构
JP2013178670A (ja) 情報処理装置、情報処理方法
Kim et al. Real-time component labeling and boundary tracing system based on FPGA
US10665280B2 (en) Information processing apparatus and semiconductor integrated circuit device
Yonghong An nprod algorithm ip design for real-time image matching application onto FPGA

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20190702

Address after: 610000 Chunfeng Road, Jinquan Street, Jinniu District, Chengdu City, Sichuan Province

Patentee after: Chengdu Jingyao Communication Technology Co., Ltd.

Address before: 610000 Taisheng Building 2205, 61 Da'an East Road, Qingyang District, Chengdu City, Sichuan Province

Patentee before: Wang Lei