基于机器视觉计算运动物体实际大小的方法、设备及介质与流程

文档序号:24070751发布日期:2021-02-26 15:05阅读:201来源:国知局
基于机器视觉计算运动物体实际大小的方法、设备及介质与流程

[0001]
本发明属于视频监控技术领域,具体涉及一种基于机器视觉计算运动物体实际大小的方法、设备及介质。


背景技术:

[0002]
在视频监控系统中为了能对目标进行识别分类和行为分析理解等,获取图像中目标的尺寸和目标与摄像机的距离等参数是非常重要的。目标的测距与目标尺寸的测量有直接的联系。目前研究中的和应用中的目标测距方法有很多种,主要包括两种技术,一种是双目测量。一种是单目测量,其需要设置参考点,重建三维体系,把二维平面在还原成三维体系。
[0003]
目前研究中的和应用中的目标测距方法有很多种,主要包括两种技术,一种是双目测量,双目计算复杂,而且使用双目,增加了成本。一种是单目测量,单目测量一般技术简单,但需要选定参考点,重建三维体系,预设参考点,在地面比较方便,但在水下困难,一方面,水下透明度差,可视距离有限,而且水下运动物体活动在一定的水层中,上下都是水体,没有地面参考面,参考点无法设置;一方面水下摄像头经常要调整视角,这样就要重新设置参考点,改变算法,重新测量水下固定的参考目标。


技术实现要素:

[0004]
为了克服上述技术缺陷,本发明提供了一种基于机器视觉计算运动物体实际大小方法,其无需设置参考点便可实现运动物体实际大小的计算。
[0005]
为了解决上述问题,本发明按以下技术方案予以实现的:
[0006]
一种基于机器视觉计算运动物体实际大小方法,包括步骤:
[0007]
在图像像素平面上建立图像坐标系,所述图像坐标系包括像素坐标系和像面坐标系;
[0008]
获取图像中处于运动状态的目标物位置信息和特征信息,所述位置信息包括:位置的像面坐标;
[0009]
选择不同两幅图像,根据所述位置信息和所述特征信息计算得到图像内所述目标物的实际大小。
[0010]
作为本发明的进一步改进,所述在图像像素平面上建立图像坐标系的步骤,包括步骤:
[0011]
在图像像素平面上建立直角坐标系o
f
uv,以图像左上角o
f
点为坐标原点,像素为坐标单位,每一像素点坐标(u,v)表示该图像像素坐标系;
[0012]
像面坐标系oxy以图像的主点o为原点,以公制单位长度为坐标单位,坐标系中的x轴、y轴分别和图像像素坐标系u轴、v轴平行,得到所述像面坐标系。
[0013]
作为本发明的进一步改进,所述获获取处于运动状态的目标物位置信息和特征信息的步骤,包括步骤:
[0014]
对图像进行预处理;
[0015]
将图像中所述目标物和图像背景采用神经网络模型进行分类;
[0016]
对所述目标物和所述图像背景内的小图斑进行剔除或者重新分类;
[0017]
在不同的图像中提取处于运动状态的所述目标物,将不同图像的所述目标物相对应,并计算所述位置信息和所述特征信息。
[0018]
作为本发明的进一步改进,所述对图像进行预处理的步骤,包括步骤:
[0019]
用选定的图像、图形或者物体,对待处理的图像进行掩挡,以控制图像处理的区域;
[0020]
采用二维离散小波变换对图像进行滤波处理;
[0021]
采用直方图均衡化对图像进行增强处理。
[0022]
作为本发明的进一步改进,所述将图像中所述目标物和图像背景采用神经网络模型进行分类的步骤,包括如下步骤:
[0023]
对神经网络模型进行训练;
[0024]
以经过预处理后的图像输入至神经网络模型,对所述目标物和所述图像背景进行分类。
[0025]
作为本发明的进一步改进,所述对神经网络模型进行训练的步骤,包括步骤:
[0026]
神经网络模型网络初始化,根据系统输出序列确定网络输入层节点数、隐含层节点数、输出层节点数、初始化输入层与输出层神经元之间的第一连接权值、隐含层与输出层神经之间的第二连接权值、初始化隐含层阈值、输出层阈值、给定学习速率和神经元激励函数;
[0027]
以所述第一权重、所述输出序列的第一变量、所述初始化隐含层阈值、所述网络输入层节点数、所述隐含层节点数作为隐含层激励函数的输入值,计算得到隐含层输出值;
[0028]
根据所述隐含层输出值、所述第二权重、所述输出层阈值、所述隐含层节点数和所述输出层节点数,计算神经网络预测输出值;
[0029]
根据所述神经网络预测输出值和所述期望输出值计算网络预测误差值;
[0030]
根据所述网络预测误差更新所述第一权重和所述第二权重;
[0031]
根据所述网络预测误差值更新所述初始化隐含层阈值和所述输出层阈值;
[0032]
在迭代没有结束时,返回计算隐含层输出值的步骤。
[0033]
作为本发明的进一步改进,所述在不同的图像中提取处于运动状态的所述目标物,将不同图像的所述目标物相对应,并计算所述位置信息和所述特征信息的步骤,包括步骤:
[0034]
在图像中心区域设置虚拟框;
[0035]
对所述虚拟框内包含的所述目标物和所述图像背景进行二值化处理;
[0036]
采用bolb算法计算得到所述目标物的特征信息;
[0037]
对所述特征信息设置匹配条件;
[0038]
在连续的两帧图像中,所述特性信息的差值满足所述匹配条件时,则判断所述目标物处于运动状态。
[0039]
此外,本发明还提供了一种计算机可读存储介质,其特征在于,所述可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程
序、代码集或指令集由处理器加载并执行以实现上述基于机器视觉计算运动物体实际大小的方法。
[0040]
本发明还提供了一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由所述处理器加载并执行以实现上述基于机器视觉计算运动物体实际大小的方法。
[0041]
与现有技术相比本发明具有以下有益效果;本发明采用单目算法,利用不同时间内的两幅不同图像对目标物进行计算,无需预设参考点,只要有图像信息,便可计算出目标物的大小,水域变化后无需重新设置或者调整参考系,避免适用双目算法,节约成本。
附图说明
[0042]
下面结合附图对本发明的具体实施方式作进一步详细的说明,其中:
[0043]
图1为实施例1所述方法的流程图;
[0044]
图2为实施例1所述方法的原理图。
具体实施方式
[0045]
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
[0046]
实施例1
[0047]
本实施例公开了一种基于机器视觉计算运动物体实际大小的方法,如图1所示,包括步骤:
[0048]
s1、在图像像素平面上建立图像坐标系,图像坐标系包括像素坐标系和像面坐标系,由于视觉成像的过程是三维空间到二维空间平面变换的过程,图像处理是在空间中进行的,为了便于准确描述成像过程和计算机处理,首先,需要建立图像坐标系用以测量图像中目标物大小和目标物之间的距离。
[0049]
s2、获取图像中处于运动状态的目标物位置信息和特征信息,位置信息包括:位置的像面坐标。
[0050]
s3、选择不同两幅图像,根据位置信息和特征信息计算得到图像内目标物的实际大小。
[0051]
在上述实施例中,步骤s1包括步骤:
[0052]
s11、在图像像素平面上建立直角坐标系o
f
uv,以图像左上角o
f
点为坐标原点,像素为坐标单位,每一像素点坐标(u,v)表示该图像像素坐标系,像素坐标系定义了视觉测量图像传感器(ccd)的信号采集过程。
[0053]
s12、像面坐标系oxy以图像的主点(光轴与像平面的交点)o为原点,以公制单位长度为坐标单位,坐标系中的x轴、y轴分别和图像像素坐标系u轴、v轴平行,得到像面坐标系,本实施例中,公制单位长度选取mm作为坐标单位,设o点在o
f
uv坐标系中的坐标为(u0,v0),每一像素在x轴、y轴上对应的物理尺寸为dx,dy,则图像中任意一个像素点在两坐标系下的坐标关系如下:
[0054][0055][0056]
在上述实施例中,步骤s2包括步骤:
[0057]
s21、对图像进行预处理;
[0058]
s22、将图像中目标物和图像背景采用神经网络模型进行分类,水下摄像经过预处理一般只剩下水体和目标物(一般是养殖的鱼种或者其他种);
[0059]
s23、对目标物和图像背景内的小图斑进行剔除或者重新分类,由于分类后会存在一些小图斑,无论从专题制图的角度,还是从实际应用的角度,都有必要对这些小图斑进行剔除或重新分类,目前常用的方法有majority/minority分析、聚类处理(clump)和过滤处理(sieve)。majority/minority分析采用类似于卷积滤波的方法将较大类别中的虚假像元归到该类中,定义一个变换核尺寸,主要分析(majority analysis)用变换核中占主要地位(像元数最多)的像元类别代替中心像元的类别。如果使用次要分析(minority analysis),将用变换核中占次要地位的像元的类别代替中心像元的类别。聚类处理(clump)是运用数学形态学算子(腐蚀和膨胀),将临近的类似分类区域聚类并进行合并。分类图像经常缺少空间连续性(分类区域中斑点或洞的存在)。低通滤波虽然可以用来平滑这些图像,但是类别信息常常会被临近类别的编码干扰,聚类处理解决了这个问题。首先将被选的分类用一个膨胀操作合并到一块,然后用变换核对分类图像进行腐蚀操作。过滤处理(sieve)解决分类图像中出现的孤岛问题。过滤处理使用斑点分组方法来消除这些被隔离的分类像元。类别筛选方法通过分析周围的4个或8个像元,判定一个像元是否与周围的像元同组。如果一类中被分析的像元数少于输入的阈值,这些像元就会被从该类中删除,删除的像元归为未分类的像元(unclassified)。
[0060]
s24、在不同的图像中提取处于运动状态的所述目标物,将不同图像的所述目标物相对应,并计算位置信息和所述特征信息,对不同帧目标进行朝向检测、完整性检测和距离测定,选定正向,完整,距离较远的帧图像目标n个(n>2)。
[0061]
在上述实施例中,步骤s21包括步骤:
[0062]
s211、用选定的图像、图形或者物体,对待处理的图像进行掩挡,以控制图像处理的区域,具体为:首先,提取感兴趣区,用预先制作的感兴趣区掩膜与待处理图像相乘,感兴趣区内图像值保持不变,而区外图像值都为0;其次,用掩膜对图像上某些区域作屏蔽,使其不参加处理或不参加处理参数的计算,或仅对屏蔽区作处理或统计,再次,结构特征提取,用相似性变量或图像匹配方法检测和提取图像中与掩膜相似的结构特征,最后,制作特殊形状图像。
[0063]
s212、由于待处理图像是二维离散数字信号,因此,采用二维离散小波变换对图像进行滤波处理,通过对图像在行方向和列方向分别做一维离散小波变换实现,对图像进行小波分解,生成ll1、lh1、hl1、hh14幅图像,ll1图像表示水平方向进行高通滤波和垂直方向进行高通滤波的结果,其他3幅图像与此相似。在上一层小波分解时,仅仅使用ll1进行小波分解。循环此过程,直到达到最高级图像为止;
[0064]
s213、采用直方图均衡化对图像进行增强处理,直方图均衡化是指通过灰度变换
使图像所有灰度级出现的概率相同,即图像每个灰度级上具有相同的像素数,核心任务是寻找灰度变换函数。设r表示原始的灰度级,r进行归一化后满足0≤r≤1,存在变换函数t
[0065]
s=t(r)
[0066]
且满足下列条件:
[0067]
(1)t(r)在区间[0,1]内单调增加。
[0068]
(2)当0≤r≤1时,0≤s≤1。
[0069]
则t的反变换可表示为
[0070]
r=t-1
(s)
[0071]
由概率论可知,随机变量r的概率密度p
r
(r)已知,由r到s的变换函数t(r)已知,且t(r)满足条件1,则s的概率密度p
s
(s)ds=p
r
(r)dr直方图均衡化要求p
s
(s)为常数,可令p
s
(s)=1,则有ds=p
r
(r)dr两边积分,得式子左边是p
r
(r)的积累分布函数,因此,当变换函数t为r的积累分布函数时,能够达到直方图均衡化。
[0072]
在上述实施例中,步骤s22包括如下步骤:
[0073]
s221、对神经网络模型进行训练,使得神经网络模型具有联想记忆和预测能力;
[0074]
s222、以经过预处理后的图像输入至神经网络模型,对目标物和所述图像背景进行分类。
[0075]
在上述实施例中,步骤s221包括步骤:
[0076]
s2211、神经网络模型网络初始化,根据系统输出序列(x,y)确定网络输入层节点数n、隐含层节点数l、输出层节点数m、初始化输入层与输出层神经元之间的第一连接权值w
ij
、隐含层与输出层神经之间的第二连接权值w
jk
、初始化隐含层阈值a、输出层阈值b、给定学习速率η和神经元激励函数;
[0077]
s2212、以第一权重w
ij
、输出序列的第一变量x、初始化隐含层阈值a、网络输入层节点数n、隐含层节点数l作为隐含层激励函数f(x)的输入值,计算得到隐含层输出值h,本实施例中,隐含层激励函数使用sigmoid函数:
[0078][0079]
此时,隐含层输出值h的计算公式为:
[0080][0081]
s2213、根据隐含层输出值h、第二权重w
jk
、输出层阈值b、隐含层节点数l和输出层节点数m,计算神经网络预测输出值o:
[0082][0083]
s2214、根据神经网络预测输出值o和期望输出值y计算网络预测误差值e,期望输出值y样本训练获得,先采集样本,再选择一部分训练,另一部分验证,验证可行确定:
[0084]
e
k
=y
k-o
k
,k=1,2,

,m
[0085]
s2215、根据网络预测误差e更新第一权重w
ij
和第二权重w
jk

[0086][0087]
w
jk
=w
jk
+ηh
j
e
k
,j=1,2,

,l;k=1,2,

,m
[0088]
s2216、根据网络预测误差值e更新初始化隐含层阈值a和输出层阈值b;
[0089][0090]
b
k
=b
k
+e
k
,k=1,2,

,n
[0091]
s2217、在迭代没有结束时,返回步骤s2212。
[0092]
在上述实施例中,步骤s24包括步骤:
[0093]
s241、在图像中心区域设置虚拟框,由于摄像机中存在近景和远景,其远景缩小倍数大,测量误差大,而且远处的目标,往往会被近景所遮挡,因此在计算个体大小的时候最优的选择是位于图像前景中心区域展开,所以需要在图像中心区域设置虚拟框,对其中范围内的目标进行计算。
[0094]
s242、对虚拟框内包含的目标物和图像背景进行二值化处理,在虚拟框中,对上述的神经网路分类后的结果进行后处理后,图像中包括目标物和背景,对其二值化处理后,得到的图像0代表目标物,1代表背景即水体。
[0095]
s243、采用bolb算法计算得到目标物的特征信息,特征信息包括:质心,面积,周长等参数。应用bolb算法进行质心标注。bolb是指图像中具有相同逻辑状态的像素连通区域,blob算法建立在成功区分前景和背景基础上,自动识别连通的前景区域,计算他们的基本特征。通过bolb算法能够质心,面积,周长等。bolb采用边缘检测法,即采用边缘检测算子对图像进行卷积运算,检测出图像灰度变化显著的位置,进而识别像素连通区域,进而得到质心及边缘,边缘提取出来后,对边缘和纹理进行分析,得到质心位置z(x,y),鱼嘴夹角α,鱼眼圆边o,鱼鳍夹角β,纹理(熵)e;
[0096]
s244、对特征信息设置匹配条件:
[0097]
质心位置z(x,y),质心距离
[0098]
鱼嘴夹角α,α
1-α2<α
ε

[0099]
鱼眼圆边o,应用圆拟合;
[0100]
鱼鳍夹角β,β
1-β2<β
ε

[0101]
纹理(熵)e,e
1-e2<ε;
[0102]
s245、通过步骤s243得到目标物的特征信息后,在连续的两帧图像中,特性信息的差值满足匹配条件时,则判断目标物处于运动状态。
[0103]
通过上述步骤,检测到运动的目标物并且获取到物体的特征信息后,便可对物体实际大小进行计算,如图2所示,具体为:提取出同一目标物在不同图像中的坐标信息,计算出两者之间的距离d。计算出目标物面积v1和v2,根据成像公式计算不同时间目标物的物距w1,w2以及物体实际大小u,计算公式如下:
[0104][0105][0106][0107]
求解出多个u值进行平均计算,便计算出目标物的实际大小。
[0108]
实施例2
[0109]
本实施例公开了一种计算机可读存储介质,可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现实施例1的方法。
[0110]
实施例3
[0111]
一种计算机设备,计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由所述处理器加载并执行以实现实施例1的方法。
[0112]
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,故凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1