首页> 中国专利> 一种并行流水线实现的点目标连通域实时标记与识别方法

一种并行流水线实现的点目标连通域实时标记与识别方法

摘要

一种并行流水线实现的实时标记与识别多个点目标连通域的方法。采用高斯滤波器对图像进行平滑去噪;提出了一种自适应阈值计算方法使系统可以在不同的光照环境和不同的目标发光强度下工作;针对点目标所形成的连通域特点,提出用于连通域标记的扫描窗口;为同一连通域中的标记冲突区域建立等价标志,将像素位置的灰度加权累加和再次累加,在解决标记冲突的同时,实现对目标重心位置的识别。采用多级流水线逻辑算法并行地实现点目标连通域实时标记与识别。本发明的优点在于,可以在不同照度环境下对多个点目标进行实时标记,并识别目标在图像中的二维位置,原始图像数据与处理结果之间只有7个像素时钟的延迟,识别精度精确到亚像素级。

著录项

  • 公开/公告号CN101727654A

    专利类型发明专利

  • 公开/公告日2010-06-09

    原文格式PDF

  • 申请/专利权人 北京理工大学;

    申请/专利号CN200910090766.2

  • 发明设计人 周平;刘越;王涌天;翁冬冬;

    申请日2009-08-06

  • 分类号G06T1/20;G06T5/00;

  • 代理机构北京理工大学专利中心;

  • 代理人张利萍

  • 地址 100081 北京市海淀区中关村南大街5号

  • 入库时间 2023-12-18 00:10:00

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2011-09-07

    授权

    授权

  • 2010-08-11

    实质审查的生效 IPC(主分类):G06T1/20 申请日:20090806

    实质审查的生效

  • 2010-06-09

    公开

    公开

说明书

技术领域

本发明涉及一种点目标连通域的实时标记与识别方法,尤其是一种并行流水线实现高速实时标记与识别多个点目标的方法,属于目标识别和视觉测量技术领域。

背景技术

点目标的识别和标记在飞机目标识别、星光点目标探测、红外制导、医学影像导航等领域都具有重要的现实意义。空间中的点目标(如飞机、星光、导弹、圆形标记点)通过摄像机成像,可以在摄像机像面上形成一个块状区域,该区域称为点目标在像面上所形成的连通域。对连通域的特征识别包括两个方面的内容,其一是对图像中的多个连通域进行标记,即对每个连通域进行自然数的标号,从而将每个连通域区分开来,其二是识别连通域重心在图像中的二维位置。通过对连通域的标记和重心识别,可得到目标在图像上的二维特征信息,为目标的三维空间定位、跟踪、姿态解算等提供重要的依据。

为了提取点目标在图像中的特征信息(如前所述,包括两方面特征:点目标连通域的重心和点目标连通域的标号),传统的方法通常包括以下几种:轮廓曲线拟合、柱状图信息统计、小区域图像分割。“红外LED实时视觉跟踪的若干关键技术研究”(浙江大学硕士学位论文,2007.5)中,分析了基于轮廓曲线拟合、柱状图信息统计、小区域图像分割这三种方法的点目标特征提取的耗时,由于图像中的目标数目很少(仅为6个点目标连通域),每张静态图片耗时2毫秒。此外,在“Linear-Time Connected-Component Labeling Based on SequentialLocal Operations”(Computer Vision and Image Understanding,2003,89(1):1-23)和“Finding Connected Components in Digital Images”(Information Technology:Coding and Computing.2001:652-656.)两篇文献中,介绍了常用的连通域标记方法,这类方法针对不同的目标连通域形状,采用不同的滑动窗口对图像进行从左至右或从上往下的反复扫描,并对标记冲突进行重扫描和最终标记替换,最终实现对目标区域的标记。“Fast Connected-Component Labeling Based onSequential Local Operations in the Course of Forward Raster Scan Followed byBackward Raster Scan”(15th International Conference on Pattern Recognition.2000:434-437.)和“一种用于二值图像分割的快速聚类算法”(计算机研究与发展,1998,35(8):719-723.)中,通过C/C++语言对算法进行仿真,实验结果表明,软件处理一幅512×512的图像所带来的延迟时间数量级为102毫秒。

以上这些传统的处理办法都是将图像传感器采集到的原始图像通过千兆网(Gigabyte Ethernet)、IEEE 1394、USB(Universal Serial Bus)等适合图像传输的高速接口送入高性能的工作站或PC机,用基于CPU的软件方法对图像进行处理,以识别目标。由于软件处理方法所固有的串行特点,当图像数据量、图像中的目标数量、图像帧率以及算法的复杂度都较高时,处理一帧图像所耗用的时间会大于帧间隔时间,这样就会造成图像流中的某些帧丢失,且处理延迟也会加大,应用系统的实时性和刷新率会受到严重影响。

为了提高实时性,“An Fpga-Based Image Connected Component Labeller”(Field-Programmable Logic and Applications,2003,2778(1):1012-1015.)中,“Fpga Based Connected Component Labeling”(International Conference on Control,Automation and Systems.Seoul,Korea,2007:2313-2317.)中,以及“A ParallelHardware Architecture for Connected Component Labeling Based on Fast LabelMerging”(International Conference on Application-Specific Systems,Architecturesand Processors.2008:144-149.)中,采用了ASIC的方法对连通域目标进行标记,这种采用ASIC的硬件方法与采用软件的方法有本质的不同,即使是相同的算法原理,采用硬件处理比采用软件处理所带来的延迟要低很多,处理一帧图像所带来的延迟数量级仅为几个毫秒。现有的采用ASIC对目标连通域进行标记的方法都是使用大容量的存储器对整帧图像先作缓存,然后再对这帧数据进行处理。采用这种方法处理至少会带来一帧时间的延迟,没有实现真正意义上的实时;且该方法会耗用大量的存储器资源,增加了系统成本。

发明内容

为了解决传统的基于CPU的软件处理以及以帧为单位的ASIC硬件处理所造成的处理效果非实时的缺陷,从构建实时性应用系统所需要的低延迟目标出发,本发明提出了一种并行流水线实现的点目标连通域的实时识别和标记方法。利用本发明技术方案不仅实现了目标连通域的实时标记,同时还实现对目标的实时二维位置识别,并且本方案能够在不同的照度环境下正常运作,鲁棒性强,其识别精度可达到亚像素级。

本发明包括如下步骤:

(1)对视频图像进行平滑滤波,使目标区域的边缘毛刺得到削减;

(2)自适应阈值计算

①逐行扫描步骤(1)平滑滤波后的图像中的每个像素,取所有像素灰度值中最大值和最小值之间的中间值作为迭代计算的初始阈值T。

②逐行扫描步骤(1)平滑滤波后的图像中的每个像素,在扫描过程中,计算像素灰度值大于T的所有像素的平均灰度值m1,计算像素灰度值小于T的所有像素的平均灰度值m2,然后由m1和m2的均值得到一个新的阈值Tnew

③通过以下机制对自适应阈值计算终止与否进行决策,并且在决策的同时,保存此时的新阈值Tnew,用以分割下一帧图像。

如果新阈值Tnew和T之差的绝对值大于或等于预设值ε,则新阈值Tnew将做为下一帧图像的初始阈值,对下一帧图像进行相同的自适应阈值计算过程;

如果新阈值Tnew和T之差的绝对值小于预设值ε,则自适应阈值计算结束;

(3)采用步骤(2)中保存的阈值Tnew,对图像进行分割,将目标从背景中提取出来;

(4)设计一个m×n的滑动窗口用以进行连通域标记(Connected componentlabeling),该滑动窗口的最下面一行的中间位置是当前像素的灰度值,当前像素的前面(n-1)/2个像素位置和上面(m-1)行的所有像素位置均为已经被标记过的像素被赋予的连通域标记结果,这些标记结果按从左到右,从上到下依次记为L1至Lk其中k=(m-1)*n+(n-1)/2,m和n的取值根据连通域设计精度需求确定;所述连通域标记过程如下:当某个当前像素被扫描时,会出现两种情况:情况一,当前像素表示背景,则它被直接标记为零。情况二,当前像素表示目标,则依次扫描L1至Lk,一旦探测到一个标记结果,则将该结果赋给当前像素;如果L1至Lk位置均没有有效的标记结果,则给当前像素赋予一个新的标记;

(5)步骤(4)完成之后,每个像素位置都被赋予了一个临时标记;将同一连通域中的冲突标记区域的像素位置的带灰度加权的坐标累加值进行再次累加,从而计算出目标的重心位置。同时,将同一连通域中产生标记冲突的区域设置为等价连通域,得到每个目标连通域的最终标记;

(6)将以上步骤形成以下七个流水线,以并行的方式对图像进行处理,实现对目标连通域的识别和标记:

流水线一:高斯滤波

流水线二:阈值初始值计算

流水线三:自适应阈值计算迭代更新过程

流水线四:图像分割

流水线五:连通域标记

流水线六:重心提取

流水线七:上位机接口

与现有技术相比,本发明的有益效果是:

(1)本发明对点目标的识别和标记结果与原始数据之间的延迟仅为七个像素时钟。

(2)本发明利用并行流水线对点目标进行识别和标记,结果可以不丢帧地实时刷新,其更新频率与原始图像的帧率相同。

(3)使用本发明所提出的扫描窗口进行连通域标记可减少等价表处理量;

(4)本发明所提出的自适应阈值计算方法采用单帧迭代的办法,将迭代过程融入到连续的图像帧序列中,以实现最有利于图像分割的阈值的解算,使得识别系统能够在不同的光照环境以及不同的目标发光强度条件下自适应地工作。本发明所提出的自适应阈值计算方法具有以下优点:其一,可以避免使用外部存储器对一帧的图像数据进行缓存,节约了资源和系统成本;其二,可以在两级流水线上实现,分别是阈值的初始值计算和迭代计算;

(5)本发明识别多点目标的精度可以精确到亚像素级;

(6)本发明适用于医学手术导航、智能化控制等对实时性要求高的场合,有利于提高应用系统的安全性;

(7)本发明所提出的方法具有通用性,可以方便地移植到其他分辨率和帧率的系统中,当目标点数目较多时,可通过配置更大宽度的缓冲区来实现对其的标记和识别,系统的实时性和精度不会受到影响。

附图说明

图1为本发明所提出的并行流水线结构中通过FIFO所构建的高斯滤波掩模窗口;

图2为本发明所提出的自适应阈值计算方法的流程框图;

图3为本发明所提出的平滑滤波、阈值初始值估计、自适应阈值计算迭代更新、图像分割所形成的四级流水线结构;

图4为本发明所提出的实现对点目标连通域进行标记的扫描窗口;

图5为本发明所提出的连通域标记过程流程图;

图6为本发明所涉及到的同一目标连通域中的标记冲突示意图;

图7为本发明所提出的标记和识别流水线结构;

图8为本发明的一个实施例的系统硬件结构;

图9为本发明的一个实施例中FPGA内的并行流水线算法逻辑结构;其中,1-相机的并行数据信号,2-行同步信号,3--帧同步信号、4-平滑滤波模块、5-阈值处理模块、6和7-FIFO、8-连通域标记模块、9-累加器、10-乘法器、11-重心识别电路模块、12-计数器模块、13-像素时钟、14-时钟管理模块、15-双口RAM、16-上位机接口电路;

图10为环境照度为300lx,目标发光强度为8mcd条件下的原始图像和标记结果,其中左图为原始图像,右图为标记结果;

图11为环境照度为300lx,目标发光强度为18mcd条件下的原始图像和标记结果,其中左图为原始图像,右图为标记结果;

图12为环境照度为70lx,目标发光强度为8mcd条件下的原始图像和标记结果,其中左图为原始图像,右图为标记结果;

图13为环境照度为70lx,目标发光强度为18mcd条件下的原始图像和标记结果,其中左图为原始图像,右图为标记结果;

图14为本发明的一个实施例的FPGA内部流水线结构的波形示意图;

图15为本发明的一个实施例的多点目标在不同照度环境(从左至右分别为75lx,150lx,300lx)下的原始图像。

具体实施方式

下面结合附图和实施方式对本发明进一步说明。针对FPGA内实现的并行流水线实例,进一步对本发明进行解释,本发明的技术方案包括如下步骤:

(1)滤波和去噪

采用高斯滤波器(Gaussian filter)对图像做平滑滤波,通过滤波,可以对图像进行有效的去噪和平滑,并且目标区域的边缘毛刺会得到有效的削减,滤波带来的好处是可以减少初次标记产生的冲突。图1为通过FIFO所构建的高斯滤波掩模窗口。FIFO的宽度为8位,深度为1024,即有1024个8位的存储单元。将这两个FIFO首尾相接,抽取出滤波窗口所需要的九个像素数据Pi(i=1,2,3...9),其中P5为当前像素时钟所对应的像素灰度数据。这些数据流送入高斯滤波电路行为级描述模块,得到滤波后的图像。

(2)自适应阈值计算

本发明提出了一种自适应的阈值计算方法,使得识别系统能够在不同的光照环境以及不同的点目标发光强度的条件下自适应地工作。该方法采用单帧迭代的办法,将迭代过程融入到连续的图像帧序列中,以实现最有利于图像分割的阈值的解算。图2为阈值自动计算方法的框图。阈值的初始估计是通过对一帧图像的扫描计算得出,其值取为所有像素灰度值中最大值和最小值之间的中间值。

假设T和Tnew分别是一次迭代计算过程之前和之后的阈值。一次迭代过程实际上是对一帧图像的逐行扫描过程。在扫描过程中,若像素灰度值大于T,则对该像素赋予标签A,若其灰度值小于T,则对其赋予标签B。扫描结束后,分别计算出含标签A和标签B的像素的灰度平均值m1和m2,然后得到一个新的阈值Tnew。接下来通过一个判断机制来对迭代终止与否进行决策:如果新阈值和旧阈值之差的绝对值大于或等于预设值ε,则新阈值将做为下一帧图像的输入阈值,对下一帧图像进行相同的迭代过程;如果新阈值和旧阈值之差的绝对值比预设值ε小,则迭代结束。在决策的同时,新阈值Tnew被传送到下一个流水线,即图像分割模块,用以分割下一帧图像。

在本发明所提出的自适应阈值计算方法中,每帧图像只被扫描了一次。也就是说,对于每帧图像,有且只有一次迭代计算过程。随着连续的视频数据流过,阈值将被自动地调节在最佳值,用以对图像进行有效准确地分割。前一次迭代过程所对应的阈值初始化估计被存储在寄存器中。当迭代终止时,若根据当前帧所计算的阈值初始估计与寄存器中的值之差足够大,则将开始新的一次迭代过程。

本发明所提出的自适应阈值计算方法具有以下优点:其一,可以避免使用外部存储器对一帧的图像数据进行缓存,节约了资源和系统成本;其二,可以在两级流水线上实现,分别是阈值的初始值计算和迭代计算。

(3)图像分割

由步骤(2)得到的阈值,对图像进行分割,将目标从背景中提取出来。设滤波后像素灰度表示为f(x,y),其中x=1,2,...m;y=1,2,...n。阈值化过程如公式(一)所示:

F(x,y)=f(x,y),f(x,y)T0,f(x,y)<T公式(一)

公式(一)中,T表示自适应阈值模块所计算得出的最佳阈值,F(x,y)表示进行分割后的图像像素的灰度值。

将自适应阈值计算和高斯滤波以及图像分割衔接起来,形成四级流水线结构。图3为平滑滤波、阈值初始值估计、最佳阈值的迭代计算、图像分割所形成的四级流水线结构。随着图像数据流动方向,始终伴随着一个行同步信号和一个帧同步信号。这两个同步信号控制着图像数据的传输以及新阈值的回传过程。通过这四级流水线后,图像得到了有效的分割,目标从背景中提取出来,即得到了下一步操作(连通域标记)所需要的有效目标区域。

(4)连通域标记

图4为本发明所提出的扫描窗口,用本窗口对一帧图像中的每个像素进行标记,以得到目标连通域的标记结果。使用该扫描窗口可以减少等价表处理量。图4中L1至L7表示已经被处理过的像素位置被赋予的初次标记结果,P0表示当前像素。

图5为本发明所提出的标记过程,标记过程如下:当某个像素被扫描时,会出现两种情况。情况一,该像素表示背景,则它被直接标记为零。情况二,该像素表示目标像素,则依次扫描L3至L7,一旦探测到一个初步标记结果,则将该结果赋给当前像素;如果L3至L7位置均没有初步标记结果,则给当前像素赋予一个新的标记。以上所提出的标记方法的优点在于,减少了同一连通域里产生的标记冲突。

(5)目标连通域的重心提取

初步标记过程完成之后,每个像素位置都被赋予了一个临时的标记。但是,由于目标边缘的毛刺,会产生标记冲突,图6显示了在同一目标连通域中,像素被赋予了不同的标记,即不同的灰度值,形成了两个不同的标记区域A和B。区域A和B将被赋予一个等价的标志,用以将计算重心所需的累加值进行再次累加。

根据透视投影变换所固有的特性,椭圆或圆在摄像机像平面上所成的像一般仍为椭圆。当椭圆或圆在摄像机平面上所成的像比较小,一般只占几十个像素时,重心法是提取椭圆或圆孔图像中心比较有效的方法。

重心法实际上就是计算二值化后椭圆和圆图像的一阶矩,公式(二)和公式(三)说明了重心计算原理。

x0=Σx=1mΣy=1nF(x,y)xΣx=1mΣy=1nF(x,y)公式(二)

y0=Σx=1mΣy=1nF(x,y)yΣx=1mΣy=1nF(x,y)公式(三)

公式(二)和公式(三)中,F(x,y)表示某像素经过高斯滤波后的灰度值,x和y分别表示有效目标像素在图像平面内的横纵坐标。

本发明的目的是解算视场中多个点目标在图像平面上的位置,同时给每个点目标赋予唯一的身份标记。所以在下一级流水线中,不必将等价连通域里面的每个标记都用最小标记替换,而是对形如图6中的区域A和B赋予一个等价的标志。具有等价标志的像素的x坐标和y坐标的灰度加权累加和将被再次累加,某个点目标区域的最终识别结果写入RAM的某个特定地址。通过这样的方式,不需对每个像素位置都重新赋予最终标记即可实现对目标连通区域的辨认和点目标重心坐标的解算。

图7描述了标记和识别流水线结构,本结构的前端输入是经过有效分割的图像及图像的行同步和帧同步信号。采用两个FIFO来实现对数据的缓存,一个FIFO用以缓冲上一行像素的临时标记,从而构建出图4中的扫描窗口;另一个FIFO用以缓冲当前行的像素灰度值,从而实现重心提取所需要的乘法运算。同时,采用两个计数器来产生像素的x和y坐标。在第六次扫描过程中,一旦扫描到一个有效的初步标记,乘法器就会被使能。此外,产生出对应的等价标志,用以控制二次累加模块。最后,标记和识别结果从RAM中取出并送往上位机。

在整个流水线结构中,行同步和帧同步信号对算法逻辑起着重要的作用:其一,由这两路同步信号经计数器后的输出结果为后端点目标重心解算提供依据;其二,由同步信号控制两个FIFO缓冲器的移位与否以及移位个数产生标记扫描工作窗;其三,为寄存器变量的归零和重新赋值提供依据,并给初次标记和第六次扫描之间建立一个桥梁,以实现算法的高度并行化。

图8显示了本发明的某个实施例的系统硬件结构。

图8中的图像采集部分使用CMOS图像传感器MT9V022,MT9V022的有效像素数目为752×480,在全分辨率条件下其帧速可达60帧/秒(frame per second,fps)。镜头加装了700nm的红外滤光片,即该滤光片对700nm的红外光的光谱灵敏度最佳。

图8中硬件逻辑算法的实施部分采用FPGA(XC3S500E)。

图8中电源模块采用TPS75003。

图9为本发明的一个实施例中FPGA内的并行流水线算法逻辑结构。进入FPGA顶层模块的信号包括相机的并行数据信号(1)、像素时钟(13)以及行同步信号(2)和帧同步信号(3)。图像经平滑滤波模块(4)后,其噪声干扰得到有效抑制,目标连通域的边缘也得到了有效的平滑,该处理过程有助于减少由凹形连通域带来的标记冲突。然后,经阈值处理模块(5),得到当前帧图像的最适合分割出目标连通域的阈值,该阈值将作为下一帧图像的图像分割临界值。图像经阈值处理后,用FIFO(6和7)来存放上两行数据的临时标记结果。按本发明的技术方案所介绍的连通域标记方法对图像做第一次扫描标记,得到初步标记结果。然后进入重心识别电路模块(11),在图像的扫描过程中,设置计数器模块(12)以产生像素的二维坐标x和y。当扫描过程中发现当前像素是有效的连通域像素时,则将此时的x和y计数器值经过乘法器(10)乘以灰度加权系数后输入到对应的累加器(9)中,同时将有效像素灰度寄存器也进行累加。这样,随着扫描的结束,累加过程也随之完成。然后,将相同连通域或等价连通域的处理结果放入双口RAM(15)的同一地址里,即实现不同连通域处理结果的分离。在一帧图像扫描完后,在图像的垂直消隐期间将标记和识别结果通过上位机接口电路(16)送出。

本发明的实施例中的识别目标采用了多个红外发光二级管(波长700nm)作为点目标,

由图10、图11、图12、图13可以看出,每个目标被赋予了一个唯一的标记。从标记图像中可以看出,标记结果(即目标位置的灰度值)随着逐行扫描的方向递增。本发明能够根据不同的光照条件和目标发光强度自动地调节阈值,对目标进行有效地分割和标记。

图14为本发明的一个实施例的FPGA内部流水线结构的波形示意图。图14中显示了每一级流水线相对于原始图像数据所产生的延迟。每两级相邻的流水线之间的延迟为一个时钟,根据本发明所提出的流水线结构,原始图像数据和识别结果之间的延迟为7个像素时钟。若像素时钟为27MHz,那么系统延迟仅为259ns。

图15为本发明的一个实施例的多点目标在不同照度环境(从左至右分别为75lx,150lx,300lx)下的原始图像。将4个发光强度恒定的点目标固定在一个刚体上,设沿着光栅逐行扫描的方向,4个点目标分别被命名为目标点1、目标点2、目标点3和目标点4。实验在不同的光照环境下进行。在每一照度条件下,保持相机、场景及目标的位置不变,记录下100帧图像中4个目标点的二维位置识别结果,然后求出这100帧结果的统计值。100帧识别结果的均值和标准差列于表1中。由表1中数据可知,本发明的识别精度可以达亚像素级。

表1 在不同光照环境下的识别结果

以上所述的具体描述,对发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号