[0001]
本发明涉及图像处理算法领域,尤其涉及针对脉冲式图像传感器的运动目标探测即一种基于高速脉冲式图像传感器的端点检测算法。
背景技术:[0002]
对高速运动物体的定位和追踪是可应用于无人驾驶、工业测控、机器人控制等领域的关键技术。在各种高速相机中,仿视网膜神经的脉冲式图像传感器因其独特的异步脉冲输出形式,从根源上减小数据量,使其能拍摄的视频帧率大大提高。与传统的逐帧成像的传感器不同,因其输出为间隔不等的脉冲格式数据,不能直接还原所拍摄图像的亮度,需要后续的相关处理算法才能还原出拍摄的视频。在实际应用中,有些不需要还原整帧视频,而只需要完成目标的追踪和定位,即只需要提取视频中的端点信息。这种情况下,如果先逐帧还原出视频再按传统图像处理的方式进行目标的追踪和检测,则需要消耗大量的时间和计算资源,导致高速脉冲式图像传感器丧失自身在数据量和速度上的优势。
[0003]
受到仿生地址-事件传感器的启发,我们将此传感器的脉冲格式的输出加以转化,使之成为带方向的事件数据,再经算法判断处理,找到端点事件,输出这些端点事件流,对后续的物体追踪和形态检测具有重要意义。
技术实现要素:[0004]
针对现有技术存在的问题,本发明一种基于高速脉冲式图像传感器的端点检测算法,对不能直接生成图像的高速脉冲式图像传感器输出信号进行转化,使之成为带方向的事件格式,省去整帧图像还原和处理的过程,通过迭代搜索,只输出对运动检测最有价值的端点事件,可用于高速实时物体检测。
[0005]
一种基于高速脉冲式图像传感器的端点检测算法,具体为:1.将高速脉冲转化为带有方向的事件信号:对一个位置为[x
k
,y
k
]的像素,取一段较小的时间t
s
,统计其脉冲数,与其邻近的t
s
内的脉冲数相减,差值超过阈值p
th
就认为有触发事件,并且保留相减的符号作为事件的极性,如图1所示,高速脉冲信号就转变成了动态事件信号,记做e
k
=[u
kt
,t
k
,p
k
]
t
,其中u
k
=[x
k
,y
k
]
t
,代表事件发生的位置,t
k
代表事件发生的时间,p
k
代表事件的极性,为1或-1;通过事件点的方向和位置,可以判断一系列数据属于一条直线,也就是确定一对端点事件。
[0006]
2.对认定为同一条直线上的点进行方向规划:对每条直l
(i)
,都有两个向量x
k(i)
和y
k(i)
,这两个向量包括了直线上每个像素投射在x轴方向和y轴方向上的运动,用w代表传感器的宽度,h代表传感器的高度;对于脉冲式图像传感器,把单位时间产生脉冲数目做差,其绝对值定义为活跃度a
k(i)
;在长度为l的直线上有事件发生时,每个像素活跃度都会增加;当一个带方向的事件o
k
= [u
kt
,v
kt
, t
k
,p
k
]
t
出现在直线l
(i) 上时,按式(1)(2)更新x
k(i)
和y
k(i)
:
其中x=1,2,
…
,w,y=1,2,
…
,h,l是用来选定活跃度邻近范围的参数。
[0007]
当一个点的活跃度超过设定的阈值a
up(px)
时,像素被标定位活跃点,这种判断也可以应用到x轴、y轴的投影上;当|θ
k (i)
|>π/4时,就认为这条线更接近水平,直线上的每一个点都对应唯一的x坐标,则在x
k(i)
上进行搜索,否则就更接近竖直,在y
k(i)
上搜索,如图2所示。
[0008]
当一个带方向的事件o
k
出现在直线l
(i) 上时,在事件所在的邻域搜索活跃的像素;当|θ
k (i)
|>π/4时,从x
k
开始在x
k(i)
内搜索,否则在y
k(i)
上搜索;端点为每个方向上最远的活动像素,设定最小长度为l/2。
[0009]
通过计算活跃度和分类规划,最终可找到线段上的2个端点,进行平滑处理后,即可输出端点出现的时间和空间位置。
[0010]
一种基于高速脉冲式图像传感器的端点检测算法,该方法将不能直接还原灰度的脉冲传感器信号做了处理,通过脉冲数之差转化为带方向的事件数据,方便后续分析计算;可以在不还原整帧图像的条件下实现对脉冲数据的端点检测,减少计算量,节约时间,能都实现端点事件的实时输出,保留脉冲式图像传感器在速度上的优势。
附图说明
[0011]
图1 脉冲数据转化为带方向事件数据示意图;图2 端点检测方法示意图。
具体实施方式
[0012]
为使本发明的目的、技术方案和优点更加清晰,下面将结合实例给出本发明实施方式的具体描述。
[0013]
在实际操作中,可选ts=0.5ms,p
th
=30,a
up(px) =10,l=5,各个参数根据场景光强和物体运动速度可调整。首先将得到的脉冲数据转化为带方向的事件数据。在|θ
k (i)
|>π/4时,基于事件的端点判断方法如下判断算法如下,对|θ
k (i)
|<π/4的情况,只要将搜索方向换为沿y轴,其他完全相同。以图2为例,算法步骤如下:1. 对直线l
(i)
上的带方向的事件(图中用直线l
(i) 上带方向的箭头表示)o
k
= [u
kt
,v
kt
, t
k
,p
k
]
t
,在|θ
k (i)
|>π/4时,用式(1)(2)更新x
k(i)
和y
k(i)
;2. 判断,如果a
k(i)
>a
up(px)
,使x1=x
k
+1;3.当x1<w且x
k(i)
[x1] )
>a
up(px)
时,使x1=x
k
+1;4. x2=x
k-1。当x2≥0且x
k(i)
[x2] )
>a
up(px)
时,使x2=x
2-1;5. 判断,如果x
1-x2>l/2,则计算:y1=(x1cosθ
k (i)-ρ
k (i)
)/sinθ
k (i) 输出端点事件[x1,y1,t
k
,p
k
]
t
y2=(x2cosθ
k (i)-ρ
k (i)
)/sinθ
k (i) 输出端点事件[x2,y2,t
k
,p
k
]
t
输出2个端点的定位(图中用直线l
(2) 上两个端点表示表示);如果不满足x
1-x2>l/2,返回第4步继续循环计算。