首页> 中国专利> 用于高速视觉测量的基于合作目标的实时全局搜索方法

用于高速视觉测量的基于合作目标的实时全局搜索方法

摘要

用于高速视觉测量的基于合作目标的实时全局搜索方法,涉及标记点搜索方法。它为了解决高速视觉测量中,全局搜索过程耗时过长、对相机分辨率敏感、系统更新率受制于目标的运动速度的问题。本发明的数据预处理模块中并行化的数据同时输出到数据缓冲控制模块和标记点实时检测模块。标记点实时检测模块检测到标记点像素后,将标记点后续相关数据发送到运算模块,运算模块为多流水线结构,当一帧图像传输结束后,即可输出所有标记点的坐标,经计算得出标记点质心数据并存入对应缓存。本发明具有全局搜索过程耗时短、鲁棒性好、对相机分辨率不敏感、对目标的运动速度不敏感的优点。本发明适用于图像处理领域及视觉测量领域。

著录项

  • 公开/公告号CN103617624A

    专利类型发明专利

  • 公开/公告日2014-03-05

    原文格式PDF

  • 申请/专利权人 哈尔滨工业大学;

    申请/专利号CN201310681591.9

  • 申请日2013-12-13

  • 分类号G06T7/00;

  • 代理机构哈尔滨市松花江专利商标事务所;

  • 代理人张宏威

  • 地址 150001 黑龙江省哈尔滨市南岗区西大直街92号

  • 入库时间 2024-02-19 22:23:04

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-05-25

    授权

    授权

  • 2014-04-02

    实质审查的生效 IPC(主分类):G06T7/00 申请日:20131213

    实质审查的生效

  • 2014-03-05

    公开

    公开

说明书

技术领域

本发明涉及一种标记点实时搜索方法,属于图像处理领域及视觉测量领域。

背景技术

在视觉测量中,合作目标的实现方式通常采用红外主动或被动光源结合滤光片的方 法,将被测目标与背景进行良好的分离,进而简化后端处理算法,在保证精度的前提下提 高系统的实时性。在图像处理过程中,需对合作目标的标记点进行搜索,以确定其质心, 而后进行空间坐标解算。其搜索方式主要分为全局搜索和邻域搜索两种。全局搜索即在图 像中,将所有像素与阈值逐点比较,搜索到大于阈值的点后,在其周围完成所属合作目标 的像素遍历,而后得出该标记点的质心特征。然而全局搜索的耗时随着视觉传感器分辨率 的增加而增加。在分辨率为2048×2048的嵌入式双目视觉测量系统中,采用工作频率为 1GHz的DSP对来自两台相机的图像进行标记点全局搜索时,耗时约为100~200ms,严 重影响了视觉测量系统的数据更新率。

为解决这一问题,基于邻域的搜索方式得到了广泛的应用,即仅在系统初始化时执行 全局搜索,确定标记点在当前帧中的位置;在后续帧中,以上一帧标记点质心为中心,设 定邻域范围,仅搜索邻域范围中的像素。通过这种方式,使标记点的搜索耗时减少95% 以上。

然而采用邻域搜索方式时还需要解决以下问题:

第一,系统的数据更新率要与目标的运动速度相匹配。当帧频保持不变、目标在与像 面平行的平面中运动时,目标的运动速度决定了图像中,同一标记点在相邻帧间的移动距 离。随着目标速度的增加,简单的邻域设定已经不再适合,为了避免邻域范围设置过大带 来的种种问题,需加入对目标运动轨迹的估计。此时,邻域的范围取决与估计的偏差。当 目标进行高速复杂运动时,较大的估计偏差会造成多点邻域重合等情况,对标记点的识别 造成干扰。同时,较大的邻域增加了像素读取数量,使更新率进一步降低。这种情况在高 速运动目标的测量领域中尤为明显,如航空航天、交通安全、军事侦察、靶场测试、运动 分析等。

第二,当被测目标存在俯仰、偏航、滚转等运动或测量过程中受到其他物体遮挡时, 置于其上的标记点在图像中会有消失和重现的现象发生。当标记点消失时,视觉测量系统 需将搜索方式重新从邻域搜索切换到全局搜索进行初始化。此时,受到搜索耗时的影响, 系统的数据更新率会产生一定的波动,从而影响了系统的实时性。当标记点重现时,帧间 的邻域搜索方式并不能及时的发现重现的标记点,直到下一次切换到全局搜索时,该标记 点才被搜索到,在一定程度上影响了目标的位姿解算过程。

综上所述,视觉测量中,在串行结构体系的计算机、DSP等处理器上执行全局、邻域 搜索都有各自的局限性,在高速运动目标的测量中尤为明显。若能找到一种高速的全局搜 索方法或逻辑结构,解决全局搜索中实时性差的缺点,并将其应用在视觉测量系统中,则 会大大扩展测量系统的应用领域,使对高速运动目标的测量成为可能。

发明内容

本发明目的是为了解决高速视觉测量中,全局搜索过程耗时过长、对相机分辨率敏感、 系统更新率受制于目标的运动速度的问题,提供一种在FPGA中实现的用于高速视觉测量 的基于合作目标的实时全局搜索方法。

本发明所述的用于高速视觉测量的基于合作目标的实时全局搜索方法中的FPGA内部 嵌入有相机数据传输与控制模块、数据预处理模块、数据缓存控制模块、标记点实时检测 模块和运算模块,所述运算模块通过DSP EMIF数据通信接口与外部的DSP芯片相连;

相机数据传输与控制模块:用于完成相机通讯接口控制,并将高速相机的像素数据并 行输入到数据预处理模块,同时输出相机的同步时钟信号给数据预处理模块;

数据预处理模块:用于保证后续的时钟频率在50MHz以下,该时钟频率来自于相机 数据传输与控制模块输出的同步时钟信号;若该同步时钟信号在50MHz以上,则通过将 数据位宽倍增的方式将该信号二分频;在本方法应用的嵌入式系统中,输入时钟为 85MHz,数据预处理模块将二分频后并行的16像素数据同时输出到数据缓存控制模块和 标记点实时检测模块;

数据缓存控制模块:用于对h行像素进行缓冲,为t时刻高阈值搜索到的标记点像素 提供t时刻之前h行的像素数据;

标记点实时检测模块:采用双阈值法对合作目标的标记点进行搜索;

运算模块:用于通过多级流水线实时计算出标记点的质心坐标,所述质心坐标的计算公式为:

x=(Σi=t-mt-1xipi2+Σi=tnxipi2)/(Σi=t-mt-1pi2+Σi=tnpi2)

y=(Σi=t-mt-1yipi2+Σi=tnyipi2)/(Σi=t-mt-1pi2+Σi=tnpi2)---(1)

其中,m是指t时刻之前,属于相同标记点且灰度值大于低阈值的像素的个数,pi是 指第i个像素点的灰度值;

所述运算模块包括目标识别与集中运算单元、n个目标像素积分模块、多目标参数存 储模块和帧间除法与存储模块,n为大于1的整数;

其中,标记点实时检测模块对标记点进行检测基于如下四点假设:

假设一:假设安放在同一目标上的多个标记点在同一帧图像中具有相同尺寸的外切矩 形,且其长宽分别为Dx和Dy

假设二:假设当相邻两帧图像之间,同一标记点的外切矩形面积的差异小于5%,此时 两帧图像中,运动目标上标记点的外切矩形满足公式(2):

|Dx(t)-Dx(t-1)|<e    (2)

|Dy(t)-Dy(t-1)|<e

其中,e为允许偏差;

假设三:在图像中,定义标记点区域为以标记点质心为中心,长和宽分别为a和b的矩形 ,则n个标记点区域之间不重合,即

假设四:在相邻的两个标记点区域中,位于同一行且距离最近的两个标记点的像素之 间的距离L大于12个像素,即L>12pixels;

所述的a和b的取值通过如下方法确定:

标记点区域的长和宽在第t帧图像的取值a(t)和b(t)为:

a(t)=α1Dx(t-1)/2+β1    (4)

b(t)=α2Dy(t-1)/2+β2

当外切矩形为正方形时,则有

Dx(t-1)=Dy(t-1)=Afλzt-1×10-3+c---(5)

其中,α1与α2为比例系数,A为标记点物理尺寸,f为标定后的镜头焦距,λ为图像传 感器的像元尺寸,Zt-1为上一帧的空间坐标定位中,深度方向计算结果,β1和β2为标记 点外切矩形到标记点区域范围补偿值,c为补偿值;当DSP处理完一帧图像,根据式公 式(4)和公式(5)计算后出a(t)和b(t),将a(t)和b(t)的取值写回FPGA作为公式(6)和公式 (7)的判定依据。

所述的标记点实时检测模块对标记点进行检测的方法为:

每个时钟周期内,进入标记点实时检测模块的并行的16像素数据经过两级D触发器 缓冲后,以高阈值Th_H进行判断:

相邻的三个像素定义为一个像素段,16个像素段的首像素分别分第1至第16像素, 第15个像素段的三个像素为第15像素、第16像素和下一时钟周期的第1像素,第16 个像素段的三个像素为第16像素和下一时钟周期的前两个像素,下一时钟周期的像素数 据可从上一级D触发器的缓存中读取,并将标记点判定条件定义为同一像素段中的三个 像素的灰度值同时大于高阈值Th_H,在同一周期内完成该时钟周期内所有像素段的判别, 当在检测中发现某一像素段满足标记点判定条件后,将该像素段中首像素Pth在当前16 像素中的偏移量△x输出给状态机与地址生成模块,所述偏移量△x为所述像素段中的首像 素Pth与该时钟周期的第1像素在x方向上的差值,状态机与地址生成模块根据△x计算 生成地址后,分别与标记点实时检测模块中的n个标记点位置子模块中,已使能的k个标 记点位置子模块中的标记点位置计算水平方向的欧式距离,判定该像素段所属的标记点区 域,即通过公式(6)判定该像素段所属的标记点区域,所述标记点区域为矩形,其长和 宽分别为a和b,

{PthArea_j||xcurrent+Δx-xj|<a/2}j=1k---(6)

其中,k为大于等于1、且小于n的整数,j为大于等于1且小于等于k的整数,xcurrent为 16个像素的首像素地址;

若该像素段不属满足公式(6),则说明该像素段为新出现的标记点所属区域,此时, 使能第k+1个标记点位置子模块,顺序检测n个标记点位置子模块,将该像素段存入序 号最小且未使用的标记点位置子模块,并发送使能信号Cen[j]使能该标记点位置子模块对 应的目标像素积分模块,记录当前像素段的首像素坐标(xcurrent,ycurrent)和当前像素段偏移 量Δx,计算当前像素段对应的新标记点位置的坐标(xj,yj),同时,根据当前行数ycurrent, 根据公式(7)计算已使能的k个标记点位置坐标中,每个标记点位置坐标yj与当前行数 ycurrent的偏差,如果所述偏差超过阈值b/2,表明当前传输行已超出该标记点位置子模块 对应的标记点区域,此时,将Cen[j]置低关闭该标记点位置子模块,并通过使能信号Aen[j] 关闭与之对应的目标像素积分模块,

{Cen[j]=0,Aen[j]=0||ycurrent-yj|>b/2}j=1k---(7)

其中,ycurrent为16个像素的首像素y方向的地址,每个标记点位置子模块的输出包 括区域使能Aen[j]、像素使能Pen[j]和标记点位置(xj,yj),区域使能Aen[j]表示当前传输的 像素行ycurrent是否满足条件|ycurrent-yi|<b/2,Pen[j]表示在当前输出的像素值是否满足|xcurrent+Δx-xj|<a/2,即当前输出的像素值是否参与标记点位置(xj,yj)的质心计算。

所述的状态机与地址生成模块中的状态机包括以下状态:

IDLE状态:变量初始化,并判断fval是否到达上升沿,如果判断结果为是,跳转到 FVAL_H1状态;否则,跳转回IDLE状态;

FVAL_H1状态:判断是否发现标记点,如果判断结果为是,跳转到FVAL_H2状态; 否则,判断fval是否到达下降沿,如果判断结果为是,跳转到FVAL_L状态;否则,跳 转到FVAL_H1状态;

FVAL_H2状态:判断fval是否到达下降沿,如果判断结果为是,跳转到FVAL_L状 态;否则,跳转回FVAL_H2状态;

FVAL_L状态:判断延时是否结束,如果判断结果为是,跳转到FVAL_WT状态; 否则,跳转回FVAL_L状态;

FVAL_WT状态:判断fval是否到达上升沿,如果判断结果为是,跳转到FVAL_H1 状态;否则,跳转回FVAL_WT状态;

所述的fval为相机输出的帧有效信号。

目标识别与集中运算单元计算获得pi2、xipi2、yipi2等参数的方法为:

同一时钟周期内的16个像素数据即像素灰度Pixel_R1至Pixel_R16从数据缓冲控制 模块输出,进行低阈值Th_L比较,当像素灰度值低于低阈值Th_L时,比较结果为0, 当像素灰度值高于低阈值Th_L时,比较结果为该像素的灰度值,计算16个比较结果的 平方单元,获得pi2,而后求得在此过程中,将整个乘方与求和的过程使用7级流 水线实现,而后延迟到3个流水周期,与的计算方法与相比,多了 一步乘法运算;在获得xipi2和yipi2的过程中,使用pi2的计算过程在第3级流水周期实现, 即:完整的运算单元共使用10级流水线;

地址生成单元将当前像素地址xcurrent和ycurrent转换为缓冲输出端与像素同步的地址, 即将xcurrent延时10个流水周期后输出x_r,ycurrent减去缓冲行数h后输出y_r;

流水延时单元将区域使能Aen[j]延迟10个流水周期后输出Aen_r[j],以保持区域使 能与其他输出的同步。

目标像素积分单元用来完成属于同一标记点,且其像素分布在多行间的与的计算,以获得求和之前,需对当前输入的 数据x_r与y_r是否属于当前目标像素积分单元进行判定,若满足|x_r-xj|<a/2,则将 求和结果输入加法器,当y_r继续增加,导致|y_r-yj|>b/2时,则结束该标记点的积分 过程,此时使能自加加法器后端移位模块,将获得的48位数据转换为64位数据后左移 10位。

本发明所述的用于高速视觉测量的基于合作目标的实时全局搜索方法适用于一台或 多台相机,对相机个数不敏感。图1所示的是应用于两台相机的情况,当有多台相机时, 相应增加相机数据传输与控制模块、数据预处理模块、数据缓存控制模块、标记点实时检 测模块和运算模块的数量即可。当相机分辨率为2048×2048时,相机完成初始化后,经 数据预处理模块,8像素的64位数据分频扩展为16像素的128位数据,来改善时序中对 建立时间和保持时间的限制,提高系统的稳定性。在数据预处理模块中,并行化的数据同 时输出到数据缓冲控制模块和标记点实时检测模块。标记点实时检测模块检测到标记点像 素后,将标记点后续相关数据发送到运算模块,利用FPGA的并行结构的特点,将运算 模块建立为多流水线结构,在图像传输的过程中即时完成多个标记点的搜索与质心计算, 当一帧图像传输结束后,即可输出所有标记点的坐标,经计算得出标记点质心数据并存入 对应缓存,DSP读取缓存中的数据,进行空间坐标解算。通过这种方式,使系统更新率 不再受制于目标的运动速度,后端的DSP等嵌入式处理器可以专注于目标的空间位姿解 算,从而增强了系统的实时处理能力。另外,本实施方式采用的全局搜索方法,避免了领 域搜索带来的标记点遮挡和重现的问题,提高了鲁棒性。基于FPGA的实时处理部分对 图像分辨率并不敏感。当采用更高分辨率、更高帧频的高速相机,只需根据相机数据时钟 更改系统时钟和数据预处理部分即可。

附图说明

图1为实施方式一所述的用于高速视觉测量的基于合作目标的实时全局搜索方法的 FPGA的功能模块框图;

图2为实施方式一中标记点实时检测模块对标记点进行检测的标记点分布图,其中,表示灰度值大于低阈值且小于高阈值的像素,表示第一个搜索到的灰度值大于高阈值的 像素,□表示灰度值大于高阈值的像素,A表示标记点区域1,B表示标记点区域2;

图3为实施方式二中标记点实时检测模块的原理框图;

图4为实施方式二中标记点实时检测模块能够同时处理的标记点的数目分析图;

图5为实施方式五中帧间除法与存储模块的原理图;

图6为实施方式四中目标识别与集中运算单元的乘方运算流水线的结构示意图,其中 Pipeline1至Pipeline10分别表示第一至第十级流水线。

具体实施方式

具体实施方式一:结合图1和图2说明本实施方式,本实施方式所述的用于高速视 觉测量的基于合作目标的实时全局搜索方法中的FPGA内部嵌入有相机数据传输与控制模 块、数据预处理模块、数据缓存控制模块、标记点实时检测模块和运算模块,所述运算模 块通过DSP EMIF数据通信接口与外部的DSP芯片相连;

相机数据传输与控制模块:用于完成相机通讯接口控制,并将高速相机的像素数据并 行输入到数据预处理模块,同时输出相机的同步时钟信号给数据预处理模块;

数据预处理模块:用于保证后续的时钟频率在50MHz以下,该时钟频率来自于相机 数据传输与控制模块输出的同步时钟信号;若该同步时钟信号在50MHz以上,则通过将 数据位宽倍增的方式将该信号二分频;所述的实时全局搜索方法所应用的嵌入式系统,输 入时钟为85MHz,数据预处理模块将二分频后并行的16像素数据同时输出到数据缓存控 制模块和标记点实时检测模块;

数据缓存控制模块:用于对h行像素进行缓冲,为t时刻高阈值搜索到的标记点像素 提供t时刻之前h行的像素数据;

标记点实时检测模块:采用双阈值法对合作目标的标记点进行搜索;

运算模块:用于通过多级流水线实时计算出标记点的质心坐标,所述质心坐标的计算公式为:

x=(Σi=t-mt-1xipi2+Σi=tnxipi2)/(Σi=t-mt-1pi2+Σi=tnpi2)

y=(Σi=t-mt-1yipi2+Σi=tnyipi2)/(Σi=t-mt-1pi2+Σi=tnpi2)---(1)

其中,m是指t时刻之前,属于相同标记点且灰度值大于低阈值的像素的个数,pi是 指第i个像素点的灰度值;

所述运算模块包括目标识别与集中运算单元、n个目标像素积分模块、多目标参数存 储模块和帧间除法与存储模块,n为大于1的整数;

其中,标记点实时检测模块对标记点进行检测基于如下四点假设:

假设一:假设安放在同一目标上的多个标记点在同一帧图像中具有相同尺寸的外切矩 形,且其长宽分别为Dx和Dy

假设二:假设当相邻两帧图像之间,同一标记点的外切矩形面积的差异小于5%,此时 两帧图像中,运动目标上标记点的外切矩形满足公式(2):

|Dx(t)-Dx(t-1)|<e     (2)

|Dy(t)-Dy(t-1)|<e

其中,e为允许偏差;

假设三:在图像中,定义标记点区域为以标记点质心为中心,长和宽分别为a和b的矩形 ,则n个标记点区域之间不重合,即

假设四:在相邻的两个标记点区域中,位于同一行且距离最近的两个标记点的像素之 间的距离L大于12个像素,即L>12pixels;

所述的a和b的取值通过如下方法确定:

标记点区域的长和宽在第t帧图像的取值a(t)和b(t)为:

a(t)=α1Dx(t-1)/2+β1     (4)

b(t)=α2Dy(t-1)/2+β2

当外切矩形为正方形时,则有

Dx(t-1)=Dy(t-1)=Afλzt-1×10-3+c---(5)

其中,α1与α2为比例系数,A为标记点物理尺寸,f为标定后的镜头焦距,λ为图像传 感器的像元尺寸,Zt-1(单位:mm)为上一帧的空间坐标定位中,深度方向计算结果, β1和β2为标记点外切矩形到标记点区域范围补偿值,c为补偿值;当DSP处理完一帧 图像,根据式公式(4)和公式(5)计算后出a(t)和b(t),将a(t)和b(t)的取值写回FPGA作为 公式(6)和公式(7)的判定依据。

本实施方式所述的用于高速视觉测量的基于合作目标的实时全局搜索方法适用于一 台或多台相机,对相机个数不敏感。图1所示的是应用于两台相机的情况,当有多台相机 时,相应增加相机数据传输与控制模块、数据预处理模块、数据缓存控制模块、标记点实 时检测模块和运算模块的数量即可。当相机分辨率为2048×2048时,相机完成初始化后, 经数据预处理模块,8像素的64位数据分频扩展为16像素的128位数据,来改善时序中 对建立时间和保持时间的限制,提高系统的稳定性。在数据预处理模块中,并行化的数据 同时输出到数据缓冲控制模块和标记点实时检测模块。标记点实时检测模块检测到标记点 像素后,将标记点后续相关数据发送到运算模块,利用FPGA的并行结构的特点,将运 算模块建立为多流水线结构,在图像传输的过程中即时完成多个标记点的搜索与质心计 算,当一帧图像传输结束后,即可输出所有标记点的坐标,经计算得出标记点质心数据并 存入对应缓存,DSP读取缓存中的数据,进行空间坐标解算。通过这种方式,使系统更 新率不再受制于目标的运动速度,后端的DSP等嵌入式处理器可以专注于目标的空间位 姿解算,从而增强了系统的实时处理能力。另外,本实施方式采用的全局搜索方法,避免 了领域搜索带来的标记点遮挡和重现的问题,提高了搜索的鲁棒性。

为了准确提取标记点,同时保证质心计算的亚像素精度,对于标记点的搜索采用双阈 值法。双阈值法的核心思想是,通过高阈值Th_H搜索标记点的大致位置,通过低阈值 Th_L搜索该位置附近所有属于该标记点的像素,而后计算加权平均值,从而获得基于亚 像素的质心坐标。

当采用双阈值法按照像素到来顺序搜索时,在t时刻搜索到大于高阈值的像素点Pt后,则 在Pt的邻域中继续使用低阈值搜索。此时,需搜索t时刻之前,属于相同标记点且大于低 阈值的像素Pt-1~Pt-m,和t时刻之后,属于相同标记点且大于低阈值的像素Pt~Pn,而后 对这两项求和进行质心计算,即将质心计算公式变形为公式(1)。

上述过程在FPGA中实现。其中,t时刻之前的像素区域即图2中,h行所在区域。

图2中,h的值为3。在基于双阈值法的标记点检测中,需根据测量范围,统计h的 最大取值hmax,从而将缓存容量设定为hmax行像素的容量。根据实验结果,当调整曝 光时间后,相机镜头焦距为35mm,Th_H=90,Th_L=30,测量距离为0.5m~10m时,取 hmax=8。此时,数据缓存控制模块的缓存大小为2048×8bit,使用8个级联的128bit×128 的双端口RAM。当图像开始传输,写满8行缓冲区后,在缓冲区的输出端每个周期输出 16个像素灰度Pixel_R1~Pixel_R16。

针对每个标记点,系统中共有三个运算处理单元,即标记点实时检测模块,运算模块, 以及执行空间位姿解算算法的DSP。其中,标记点实时检测模块和运算模块均由多级流水 线构成,前者完成像素的检测与识别,后者完成标记点的质心搜索、计算与相关缓存调度。 在整个系统中,FPGA以协处理器的模式完成以定点操作为主的部分算法,由DSP来处理 浮点运算。

本实施方式中,邻域矩形长宽在第t帧的取值a(t)和b(t)分别为标记点外切矩形尺寸 Dx(t)和Dy(t)的函数。由于当前帧的标记点外切矩形尺寸在数据传输时未知,根据假设二, 采用Dx(t-1)、Dy(t-1)代替Dx(t)、Dy(t)。当采用主动式标记点,相关参数保持不变时,且 外切矩形为正方形时,标记点区域的长和宽可被定义为公式(5)。当取f=35mm,A=6mm, λ=5.5μm,设定α1=α2=2.8,β1=β2=2,c=0。当DSP处理完一帧图像,根据公式(4) 和公式(5)计算a(t)和b(t)后,将结果写回FPGA作为公式(6)和公式(7)的判定依据。

通过这种反馈,可以更加精确的估计标记点的成像尺寸,以自适应的方式设定标记点 像素的判定范围,避免因为标记点范围划分不当产生的像素的错误划分。当被测目标沿着 z方向远离相机运动时,图像中的相邻标记点不会因为之间距离的缩小而出现在同一个标 记点范围中。

具体实施方式二:结合图3和图4说明本实施方式,本实施方式是对实施方式一所 述的用于高速视觉测量的基于合作目标的实时全局搜索方法的进一步限定,本实施方式 中,所述的标记点实时检测模块对标记点进行检测的方法为:

每个时钟周期内,进入标记点实时检测模块的并行的16像素数据经过两级D触发器 缓冲后,以高阈值Th_H进行判断:

相邻的三个像素定义为一个像素段,16个像素段的首像素分别分第1至第16像素, 第15个像素段的三个像素为第15像素、第16像素和下一时钟周期的第1像素,第16 个像素段的三个像素为第16像素和下一时钟周期的前两个像素,下一时钟周期的像素数 据可从上一级D触发器的缓存中读取,并将标记点判定条件定义为同一像素段中的三个 像素的灰度值同时大于高阈值Th_H,在同一周期内完成该时钟周期内所有像素段的判别, 当在检测中发现某一像素段满足标记点判定条件后,将该像素段中首像素Pth在当前16 像素中的偏移量△x输出给状态机与地址生成模块,所述偏移量△x为所述像素段中的首像 素Pth与该时钟周期的第1像素在x方向上的差值,状态机与地址生成模块根据△x计算 生成地址后,分别与标记点实时检测模块中的n个标记点位置子模块中,已使能的k个标 记点位置子模块中的标记点位置计算水平方向的欧式距离,判定该像素段所属的标记点区 域,即通过公式(6)判定该像素段所属的标记点区域,所述标记点区域为矩形,其长和 宽分别为a和b,

{PthArea_j||xcurrent+Δx-xj|<a/2}j=1k---(6)

其中,k为大于等于1且小于n的整数,j为大于等于1且小于等于k的整数,xcurrent为 16个像素的首像素地址;

若该像素段不属满足公式(6),则说明该像素段为新出现的标记点所属区域,此时, 使能第k+1个标记点位置子模块,顺序检测n个标记点位置子模块,将该像素段存入序 号最小且未使用的标记点位置子模块,并发送使能信号Cen[j]使能该标记点位置子模块对 应的目标像素积分模块,记录当前像素段的首像素坐标(xcurrent,ycurrent)和当前像素段偏移 量Δx,计算当前像素段对应的新标记点位置的坐标(xj,yj),同时,根据当前行数ycurrent, 根据公式(7)计算已使能的k个标记点位置坐标中,每个标记点位置坐标yj与当前行数 ycurrent的偏差,如果所述偏差超过阈值b/2,表明当前传输行已超出该标记点位置子模块 对应的标记点区域,此时,将Cen[j]置低关闭该标记点位置子模块,并通过使能信号Aen[j] 关闭与之对应的目标像素积分模块,

{Cen[j]=0,Aen[j]=0||ycurrent-yj|>b/2}j=1k---(7)

其中,ycurrent为16个像素的首像素y方向的地址,每个标记点位置子模块的出包括 区域使能Aen[j]、像素使能Pen[j]和标记点位置(xj,yj),区域使能Aen[j]表示当前传输的像 素行ycurrent是否满足条件|ycurrent-yi|<b/2,Pen[j]表示在当前输出的像素值是否满足|xcurrent+Δx-xj|<a/2,即当前输出的像素值是否参与标记点位置(xj,yj)的质心计算。

本实施方式中,在并行的16像素数据进入数据缓存控制模块的同时,另一路数据进 入标记点实时检测模块,经2级D触发器缓冲后,以高阈值Th_H进行判断,如图3所 示。在检测中,为了避免干扰,提高检测的准确性,将相邻的三个像素定义为一个像素段。 每个时钟周期,同时对到来的像素分成图3中的16个像素段,在同一周期内完成所有像 素段的判别。当像素时钟为42.5MHz,忽略帧间曝光等延时的情况下,每秒完成6.8×108 次检测判别。在对第15、第16像素段数据判别时,使用下一个周期中的前两个像素,像 素数据可从上一级D触发器的缓存中读取,如图3中虚线部分所示。

在上述检测过程中,标记点位置子模块(即图3中的Area_1至Area_n)的数量n受 限于视觉测量系统的设计指标和FPGA内部资源的占用,在同一时间段内,能够处理标 记点的个数是有限的。设在像素传输过程中的某时间段ti内,按照标记点所属像素的出 现顺序,有垂直方向上彼此靠近的5个标记点,如图4所示。在同一行像素中,标记点实 时检测模块中检测出的多个像素段可能归属于不同的标记点。在图中m行区域,像素段 可能归属的标记点个数达到最大值,为4点。此时,当在检测中发现第一个搜索到的灰度 值大于高阈值的像素Pth时,需将Pth的列地址同时与4个标记点位置的xj计算欧式距离。 在设计中,可根据系统需求和可用资源设计n个标记点位置子模块及其后续目标像素积分 单元,以满足图4中需同时处理多个标记点区域的情况。本实施方式中,取n=4。

具体实施方式三:本实施方式是对实施方式二所述的用于高速视觉测量的基于合作 目标的实时全局搜索方法的进一步限定,本实施方式中,所述的状态机与地址生成模块中 的状态机包括以下状态:

DLE状态:变量初始化,并判断fval是否到达上升沿,如果判断结果为是,跳转到 FVAL_H1状态;否则,跳转回IDLE状态;

FVAL_H1状态:判断是否发现标记点,如果判断结果为是,跳转到FVAL_H2状态; 否则,判断fval是否到达下降沿,如果判断结果为是,跳转到FVAL_L状态;否则,跳 转到FVAL_H1状态;

FVAL_H2状态:判断fval是否到达下降沿,如果判断结果为是,跳转到FVAL_L状 态;否则,跳转回FVAL_H2状态;

FVAL_L状态:判断延时是否结束,如果判断结果为是,跳转到FVAL_WT状态; 否则,跳转回FVAL_L状态;

FVAL_WT状态:判断fval是否到达上升沿,如果判断结果为是,跳转到FVAL_H1 状态;否则,跳转回FVAL_WT状态;

所述的fval为相机输出的帧有效信号。

本实施方式中,fval为相机输出的帧有效信号,lval为相机输出的行有效信号。在 FVAL_H1状态中,列自加,并根据lval行自加;在FVAL_H2状态中,列自加,根据lval 行自加,计算当前像素段的偏移量,比较与现存的标记点区域的距离并判断是否创建新的 标记点区域,根据当前的行坐标判断已存在的多个标记点区域是否超出区域范围;在 FVAL_L状态中,当前帧传输结束,为帧间的运算提供延时。

具体实施方式四:结合图6说明本实施方式,本实施方式是对实施方式一所述的用 于高速视觉测量的基于合作目标的实时全局搜索方法的进一步限定,本实施方式中,目标 识别与集中运算单元计算获得pi2、xipi2、yipi2等参数的方法为:

同一时钟周期内的16个像素数据即像素灰度Pixel_R1至Pixel_R16从数据缓冲控制 模块输出,进行低阈值Th_L比较,当像素灰度值低于低阈值Th_L时,比较结果为0, 当像素灰度值高于低阈值Th_L时,比较结果为该像素的灰度值,计算16个比较结果的 平方单元,获得pi2,而后求得在此过程中,将整个乘方与求和的过程使用7级流 水线实现,而后延迟到3个流水周期,与的计算方法与相比,多了 一步乘法运算;在获得xipi2和yipi2的过程中,使用pi2的计算过程在第3级流水周期实现, 即:完整的运算单元共使用10级流水线;

地址生成单元将当前像素地址xcurrent和ycurrent转换为缓冲输出端与像素同步的地址, 即将xcurrent延时10个流水周期后输出x_r,ycurrent减去缓冲行数h后输出y_r;

流水延时单元将区域使能Aen[j]延迟10个流水周期后输出Aen_r[j],以保持区域使 能与其他输出的同步。

具体实施方式五:结合图5说明本实施方式,本实施方式是对实施方式一所述的用 于高速视觉测量的基于合作目标的实时全局搜索方法的进一步限定,本实施方式中,目标 像素积分单元用来完成属于同一标记点,且其像素分布在多行间的与 的计算,以获得求和之前,需对当前输入的数据x_r 与y_r是否属于当前目标像素积分单元进行判定,若满足|x_r-xj|<a/2,则将求和结果 输入加法器,当y_r继续增加,导致|y_r-yj|>b/2时,则结束该标记点的积分过程,此 时使能自加加法器后端移位模块,将获得的48位数据转换为64位数据后左移10位。

本实施方式中,将获得的48位数据转换为64位数据后左移10位,目的是解决FPGA 的定点运算无法满足对小数精度要求的问题。

n个目标像素积分单元的使能端同时连接多目标参数的存储模块。当一帧数据到来 后,检测到n个目标像素积分单元中,有积分过程结束时,则将与其对应的求和结果 Acc_p2、Acc_xp2、Acc_yp2分别写入3个RAM中。在当前帧传输结束后,停止对目标像 素积分单元的检测,输出写RAM的当前地址作为该帧的标记点计数值,并输出除法使能 信号。

由于除法运算中的Acc_p2、Acc_xp2、Acc_yp2都具有较高的位宽,计算时需较多周期, 并不适合应用在对实时性要求较高场合。因此,除法运算设计在每幅图像传输完成后,利 用帧间延时执行计算。利用帧间除法与存储模块通过对除法使能信号DivEn的边沿检测 触发状态机,分别从3个RAM中读取当前帧中所有标记点的Acc_p2、Acc_xp2、Acc_yp2数据,依次输入div1和div2两个除法器进行除法运算,如图5所示。除法结果为64位数 据。由于在除法前做了数据移位,在保证计算精度的前提下,舍去余数。完成除法计算后, 将图中的和合并为128位数据存入深度为64的RAM。RAM的数据输出端口调整为16 位,以适应DSP的外部存储器接口的位宽。

具体实施方式六:本实施方式是实施方式一所述的用于高速视觉测量的基于合作目标 的实时全局搜索方法中FPGA的实现方法与性能测试。

1,FPGA的结构实现。在FPGA的实现过程中,平方、乘法、除法等操作使用设计 软件自带的算法IP,数据缓存控制模块中使用的双端口RAM,以及多目标参数的存储模 块、帧间除法存储模块中的双端口RAM,均使用设计软件自带的存储器)IP。将设计通过 Altera FPGA工具QuartusII应用于CycloneIII系列中的EP3C120F780C7器件,进行双相 机合作目标的后端处理。综合后,当标记点位置子模块和目标像素积分单元的并行处理数 目n=4时,基于双相机的算法各部分各功能模块资源占用如表1所示,逻辑单元LE、存 储位、DSP块分别占用了所用FPGA的21%、8%、11%。按照资源余量计算,设计中可 满足并行处理数目n=200的设计,即200个标记点出现在图像同一行中的情况。

表1:基于全局搜索算法的FPGA各模块的资源占用情况

模块名称 模块数量 LE 存储kbit DSP单元 数据缓存控制模块 2 169 131.7 0 标记点实时检测模块 2 578 0 0 目标识别与集中运算模块 2 2695 0.96 32 目标像素积分单元模块 8 280 0 0 多目标参数存储模块 2 482 10.24 0

帧间除法与存储模块 2 7474 11.62 0 总计   25234 307.77 64

2,嵌入式视觉测量平台与全局搜索算法的应用

将基于FPGA的全局搜索算法应用于嵌入式视觉测量系统中。工业相机采用型号为 GZL-CL-41C6的灰度相机。测试时,将光学靶标安装在高精度转台上,先增加相机曝光 时间,通过与嵌入式视觉测量平台VGA接口相连的两台显示器确定视场,而后降低曝光 时间至标记点与背景良好分离,进行系统测试。本实施方式中的嵌入式视觉测量硬件平台 主要由FPGA和DSP组成。在该平台上完成了双目视觉测量功能。FPGA完成接口逻辑 部分,DSP读取图像,经全局搜索初始化后,在后续帧中进行邻域搜索来提升处理速度, 测量数据的更新率达到68.66帧/秒。当DSP采用TMS320C6416时,基于DSP的各部分 耗时如表2“DSP全局”和“DSP邻域”所示。从更新率上看,在基于DSP的全局算法 和邻域算法中,数据读取和质心提取耗时之和分别占总耗时的97.06%和63.19%,成为阻 碍更新率提高的主要因素。

表2:基于质心提取的全局与邻域算法耗时分析

将基于FPGA的全局搜索算法应用后,系统各部分耗时如表2中“FPGA全局”所示。 其中,数据传输部分包括DSP读取标记点质心坐标的读取耗时和空间坐标结果写RS232 缓存耗时。对表中数据进行比较,在采用常用的5点靶标时,由于FPGA对标记点的实 时处理节约了DSP处理中的数据传输和质心提取耗时,在忽略相机帧频限制的情况下, 同为全局搜索,基于FPGA的全局算法的数据更新率提高了33.5倍;即使与速度较快的 DSP邻域方法相比较,数据更新率也提高了2.7倍。

DSP的性能决定了空间坐标解算的耗时,从而决定了视觉测量系统的数据更新率。 在系统中,当亚像素质心提取在FPGA内实现后,这部分耗时成为提升视觉测量系统数 据更新率的主要瓶颈。解决这一问题,可以通过在FPGA中增加浮点运算单元数目来实 现,例如增加内部软核、采用具有硬核CPU的FPGA来完成部分浮点运算,或采用新型 多核DSP。

3,亚像素精度估计

为验证FPGA中基于全局搜索的质心提取重复性,采用35mm镜头,在3m距离下对 5标记点的靶标连续采集100帧,通过DSP读取FPGA质心坐标的输出值,重复性如表3 所示。表中,5点的标准差基本在0.015像素以下,具有较好的稳定性。

表3:标记点重复性验证(单位:Pixels)

标记点 1 2 3 4 5 x标准差 0.0131 0.0133 0.0136 0.0148 0.0118 x标准差 0.0131 0.0133 0.0136 0.0148 0.0118 y标准差 0.0165 0.0142 0.0148 0.0155 0.0167

本实施方式对基于嵌入式平台的视觉测量系统进行改进,将DSP中基于双阈值的搜 索算法向FPGA中的移植,解决了传统方法的全局搜索与邻域搜索中,目标提取准确性 与数据更新率之间的矛盾。通过在FPGA中构建多个并行的关键处理单元,并在每个处 理单元中设计多级流水线,使处理能力大大增加,能够在图像的传输过程中完成多项像素 级算法,如标记点像素检测、像素区域识别、基于10级流水的质心提取、基于多标记点 的并行运算等。经移植后,相比于DSP的全局搜索和邻域搜索,忽略相机帧频限制的情 况下,DSP的处理耗时分别减少了97.06%和63.19%,使视觉测量系统的数据更新率分别 提高了33.5倍和2.7倍。此时,由于使用全局搜索替代系统初始化后的邻域搜索,避免了 高速运动标记点的邻域搜索中,目标丢失、错误识别、帧频降低等问题,使双目视觉测量 系统可以在2048×2048分辨率、5标记点的情况下,数据更新率达到186.33fps。由于所 有的系统耗时消耗在DSP的空间坐标解算中,通过在FPGA中添加软、硬核或更换高性 能的多核DSP,可以使系统工作在更高的数据更新率下。

本实施方式使用的FPGA资源最多可满足图像同一行中出现200个标记点的情况,仅 需在设计中增加目标像素积分单元的并行数量。本实施方式中的基于FPGA的实时处理 部分对图像分辨率并不敏感。当采用更高分辨率、更高帧频的高速相机,只需根据相机数 据时钟更改系统时钟和数据预处理部分即可。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号