一种基于机器视觉的图像追踪定位方法及***
技术领域
本发明涉及图像跟踪领域,具体涉及一种基于机器视觉的图像追踪定位方法及***。
背景技术
图像跟踪技术,是指通过某种方式(如机器视觉、红外、超声波等)将摄像头中拍摄到的物体进行定位,并指挥摄像头对该物体进行跟踪,让该物体一直被保持在摄像头视野范围内的技术。图像跟踪***被广泛应用在教育、会议、医疗、庭审以及安防监控等各个行业。其中,应用于教育以及会议方面的全自动跟踪拍摄方案,更是引领了国内外全自动跟踪拍摄的技术潮流,为精品课程、视频会议的全自动摄制打下了坚实的技术基础。
现有的图像跟踪技术,大多采用机器视觉方法,即运动目标检测。常用的运动目标检测算法有帧间差分法、背景差分法、光流法等等。这些方法都是根据视频帧的上下文信息进行识别与检测。其中,帧间差分法是一种通过对视频图像序列中相邻两帧作差分运算来获得运动目标轮廓的方法。该方法原理简单,而且由于相邻帧的时间间隔比较小,对缓慢变化的环境光不敏感。
目前市面上的相关产品,大多采用将运动目标检测算法运行在嵌入式设备上的方案。但由于检测算法较高的计算复杂度和嵌入式CPU的计算负载瓶颈,运动目标检测算法会有较高的CPU占用率,大大影响了产品的开发成本和产品效果。
不仅如此,如今大多数产品的图像跟踪功能会跟固定的摄像头进行捆绑,用户无法自行选择摄像头型号,产品缺乏一定的可拓展性。
发明内容
鉴于以上现有技术中图像跟踪方法CPU耗费高、产品拓展性差的问题缺陷,本发明提供一种基于机器视觉的图像追踪定位方法及***,可以实现对目标图像进行追踪定位以及跟踪拍摄。
本发明具体通过以下技术方案实现:
一种基于机器视觉的图像追踪定位方法,所述方法具体包括如下步骤:
步骤S01:将拍摄得到的前一帧的灰度图像与当前帧的灰度图像进行帧间差分,获得帧差图像;
步骤S02:对帧差图像用第一内核进行形态学腐蚀,得到腐蚀后的图像,用第二内核对腐蚀后的图像进行形态学膨胀,获得了膨胀后的帧差图像;
所述的内核为图像形态学处理中的概念,一般为一个领域范围,比如3*3的矩形领域范围,8*8的矩形领域范围。
步骤S03:检测膨胀后的帧差图像中所有的外轮廓,得到一系列连续轮廓,取其中最大的轮廓,作为检测出来的运动目标;
步骤S04:取最大的轮廓的外接矩形中心,用坐标转移矩阵对外接矩形中心进行坐标转换,得到所需移动位置;用变焦转移矩阵对外接矩形中心进行转换,得到变焦系数;
步骤S05:将前一帧的灰度图像替换为当前帧的灰度图像,重复步骤S01。
进一步的,于步骤S01中,所述的进行帧间差分,具体如下:
其中,Id(x,y)为帧差图像;thr为差分阈值,abs为取绝对值;Ip(x,y)为前一帧灰度图像;Ic(x,y)为当前帧的灰度图像;所述的差分阈值用于控制算法的敏感度。
进一步的,于步骤S02中,所述的第二内核的大小比第一内核大,也就是说,要结合实际场景进行调试,内核大或小范围需要通过根据实际调试效果进行选取。
所述的形态学腐蚀,具体如下:
所述的形态学膨胀,具体如下:
其中:Idc(x,y)为腐蚀后的图像;Idd(x,y)为膨胀后的帧差图像;进一步的,于步骤S03中,还包括如下轮廓检测的步骤:
步骤S31,逐行扫描膨胀后的帧差图像,直至找到非0点,设置该点为边界起点;
步骤S32,以逆时针方向扫描相邻非0点,将新的非零点作为扫描起点;
步骤S33,重复步骤S32,直至回到边界起点,获得一个完整轮廓。
步骤S34,将膨胀后的帧差图像中所有处于轮廓内的像素置为0,重复步骤S31,直到膨胀后的帧差图像中不存在非0点。
进一步的,于步骤S04中,所述的坐标转移矩阵为3*3的矩阵,设坐标转移矩阵则pm(v,w)的计算公式具体为:
其中:v代表pm的横坐标,w代表pm的纵坐标;
所述的变焦转移矩阵为1*3的矩阵,设变焦转移矩阵S=[s1 s2 s3],则变焦系数β的计算公式具体为:
β=s1*x+s2*v+s3 (6)。
进一步的,于步骤S04中,所述的坐标转移矩阵M和变焦转移矩阵S是通过对全景摄像头和云台摄像头进行标定产生,具体步骤如下:
步骤S41,选取全景摄像头的图像跟踪区域的四个顶点,分别为
pc1(x1,y1),pc2(x2,y2),pc3(x3,y3),pc4(x4,y4);
步骤S42,调整云台摄像头的拍摄位置,分别将拍摄焦点对准pc1,pc2,pc3,pc4,获得对应这四个点的云台拍摄位置pm1(v1,w1),pm2(v2,w2),pm3(v3,w3),pm4(v4,w4)和变焦系数β1,β2,β3,β4;
步骤S43,将图像跟踪区域的四个顶点pc1(x1,y1),pc2(x2,y2),pc3(x3,y3),pc4(x4,y4)和这四个点的云台拍摄位置pm1(v1,w1),pm2(v2,w2),pm3(v3,w3),pm4(v4,w4)代入如下透视变换公式:
可得到线性方程组,求解可得坐标转移矩阵的值;
将变焦系数β1,β2,β3,β4和图像跟踪区域的四个顶点pc1(x1,y1),pc2(x2,y2),pc3(x3,y3),pc4(x4,y4)代入如下变换公式:
可得到线性方程组,求解可得变焦转移矩阵S=[s1 s2 s3]的值。
为实现上述目的,本发明还提供了一种基于机器视觉的图像追踪定位***,所述的***包括:
全景摄像头单元,用于获取拍摄视频图像数据,并传送至控制单元;
所述的全景摄像头单元中设置有全景摄像头,所述的全景摄像头为不可变焦和移动,可进行全景拍摄,并将拍摄得到的视频图像实时传输给控制单元;
云台摄像头单元,用于获取跟踪拍摄目标数据,并进行目标跟踪拍摄;
所述的云台摄像头单元中设置有云台摄像头,所述的云台摄像头为可变焦和移动,由控制***通过控制协议进行控制,进行目标跟踪拍摄;
控制单元,用于获取视频图像数据,并将拍摄得到的前一帧的灰度图像与当前帧的灰度图像进行帧间差分;对帧差图像通过第一内核进行形态学腐蚀,用第二内核对腐蚀后的图像进行形态学膨胀;
检测膨胀后的帧差图像中所有的外轮廓,取其中最大的轮廓的外接矩形中心,用坐标转移矩阵对外接矩形中心进行坐标转换,得到所需移动位置;再通过变焦转移矩阵对外接矩形中心进行转换,得到变焦系数,进而将前一帧的灰度图像替换为当前帧的灰度图像,同时将检测出来的跟踪目标移动位置和变焦系数传输至云台摄像头单元,具体地,控制单元将检测出来的跟踪目标位置和变焦系数通过通信协议,传输至云台摄像头单元,从而让云台摄像头单元对目标进行跟踪拍摄。
也就是说,用于接收全景摄像头单元的视频图像数据,进行图像跟踪,并将检测出来的跟踪目标位置和变焦系数传输给云台摄像头单元,使其进行目标跟踪拍摄。
具体地,通过本发明可具备以下有益效果:
通过本发明方法和***,对跟踪图像目标无特殊要求,图像目标也无需佩戴定位设备即可实现追踪定位;而且本发明的图像跟踪算法计算复杂度低,处理效率高,可在嵌入式CPU计算负载有限的情况下满足实时跟踪定位的需求;通过本发明方法及***,对摄像头的型号与规格也没有特殊要求,大大提高了产品的可拓展性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一种基于机器视觉的图像追踪定位方法流程示意图;
图2为本发明一种基于机器视觉的图像追踪定位方法标定流程示意图;
图3为本发明一种基于机器视觉的图像追踪定位方法图像跟踪流程图示意图;
图4为本发明一种基于机器视觉的图像追踪定位***单元示意图;
图5为本发明一种基于机器视觉的图像追踪定位***图像跟踪***结构图;
本发明目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为便于更好的理解本发明的目的、技术方案和优点更加清楚,下面结合附图和具体的实施方式对本发明作进一步说明,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。
本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。
需要说明,若本发明实施例中有涉及方向性指示(诸如上、下、左、右、前、后……),则该方向性指示仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
另外,若本发明实施例中有涉及“第一”、“第二”等的描述,则该“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。其次,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时,应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
一种基于机器视觉的图像追踪定位方法,所述方法具体包括如下步骤:
步骤S01:将拍摄得到的前一帧的灰度图像与当前帧的灰度图像进行帧间差分,获得帧差图像;
步骤S02:对帧差图像用第一内核进行形态学腐蚀,得到腐蚀后的图像,用第二内核对腐蚀后的图像进行形态学膨胀,获得了膨胀后的帧差图像;
步骤S03:检测膨胀后的帧差图像中所有的外轮廓,得到一系列连续轮廓,取其中最大的轮廓,作为检测出来的运动目标;
步骤S04:取最大的轮廓的外接矩形中心,用坐标转移矩阵对外接矩形中心进行坐标转换,得到所需移动位置;用变焦转移矩阵对外接矩形中心进行转换,得到变焦系数;
步骤S05:将前一帧的灰度图像替换为当前帧的灰度图像,重复步骤S01。
具体地,于步骤S01中,所述的进行帧间差分,具体如下:
其中,Id(x,y)为帧差图像;thr为差分阈值,abs为取绝对值;也就是说abs()在数学公式中代表取绝对值;Ip(x,y)为前一帧灰度图像;Ic(x,y)为当前帧的灰度图像;所述的差分阈值用于控制算法的敏感度。
于步骤S02中,所述的第二内核的大小比第一内核大,也就是说,要结合实际场景进行调试,内核大或小范围需要通过根据实际调试效果进行选取。
所述的形态学腐蚀,具体如下:
所述的形态学膨胀,具体如下:
其中:Idc(x,y)为腐蚀后的图像;Idd(x,y)为膨胀后的帧差图像;
于步骤S03中,还包括如下轮廓检测的步骤:
步骤S31,逐行扫描膨胀后的帧差图像,直至找到非0点,设置该点为边界起点;
步骤S32,以逆时针方向扫描相邻非0点,将新的非零点作为扫描起点;
步骤S33,重复步骤S32,直至回到边界起点,获得一个完整轮廓。
步骤S34,将膨胀后的帧差图像中所有处于轮廓内的像素置为0,重复步骤S31,直到膨胀后的帧差图像中不存在非0点。
于步骤S04中,所述的坐标转移矩阵为3*3的矩阵,设坐标转移矩阵则pm(v,w)的计算公式具体为:
其中:v代表pm的横坐标,w代表pm的纵坐标;
所述的变焦转移矩阵为1*3的矩阵,设变焦转移矩阵S=[s1 s2 s3],则变焦系数β的计算公式具体为:
β=s1*x+s2*y+s3 (6)。
较佳地,于步骤S04中,所述的坐标转移矩阵M和变焦转移矩阵S是通过对全景摄像头和云台摄像头进行标定产生,具体步骤如下:
步骤S41,选取全景摄像头的图像跟踪区域的四个顶点,分别为
pc1(x1,y1),pc2(x2,y2),pc3(x3,y3),pc4(x4,y4);
步骤S42,调整云台摄像头的拍摄位置,分别将拍摄焦点对准pc1,pc2,pc3,pc4,获得对应这四个点的云台拍摄位置pm1(v1,w1),pm2(v2,w2),pm3(v3,w3),
pm4(v4,w4)和变焦系数β1,β2,β3,β4;
步骤S43,将图像跟踪区域的四个顶点pc1(x1,y1),pc2(x2,y2),pc3(x3,y3),pc4(x4,y4)和这四个点的云台拍摄位置pm1(v1,w1),pm2(v2,w2),pm3(v3,w3),pm4(v4,w4)代入如下透视变换公式:
可得到线性方程组,求解可得坐标转移矩阵的值;
将变焦系数β1,β2,β3,β4和图像跟踪区域的四个顶点pc1(x1,y1),pc2(x2,y2),pc3(x3,y3),pc4(x4,y4)代入如下变换公式:
可得到线性方程组,求解可得变焦转移矩阵S=[s1 s2 s3]的值。
也就是说,在进行图像追踪定位之前,需要先获得坐标转移矩阵M和变焦转移矩阵S,如图2所示,本发明的标定流程如下:
步骤S010:选择全景摄像头的图像跟踪区域的四个顶点,分别为:
pc1(x1,y1),pc2(x2,y2),pc3(x3,y3),pc4(x4,y4)
步骤S020:调整云台摄像头的拍摄位置,分别将拍摄焦点对准pc1,pc2,pc3,pc4,获得对应这四个点的云台拍摄位置pm1(v1,w1),pm2(v2,w2),pm3(v3,w3),pm4(v4,w4)和变焦系数β1,β2,β3,β4。
步骤S030:将图像跟踪区域的四个顶点pc1(x1,y1),pc2(x2,y2),pc3(x3,y3),pc4(x4,y4)和这四个点的云台拍摄位置pm1(v1,w1),pm2(v2,w2),pm3(v3,w3),pm4(v4,w4)代入如下透视变换公式:
可得到线性方程组,求解可得坐标转移矩阵
将变焦系数β1,β2,β3,β4和图像跟踪区域的四个顶点pc1(x1,y1),pc2(x2,y2),pc3(x3,y3),pc4(x4,y4)代入如下变焦转移公式:
可得线性方程组,求解可得变焦转移矩阵S=[s1 s2 s3]。
以上所述标定流程只需在***初始化的时候执行一次,以获取变换矩阵。完成摄像头标定后,可以进行图像跟踪。如图3所示,其为本发明的图像跟踪流程图,具体如下:
步骤S001:通过全景摄像头拍摄全景灰度图像(即当前帧的灰度图像)Ic(x,y),并将其发送给控制中心。
步骤S002:控制中心接收到全景灰度图像Ic(x,y)后,对全景灰度图像Ic(x,y执行图像跟踪算法,获取到移动位置pm和变焦系数β,并将其发送给云台摄像头。
步骤S003:云台摄像头接收到移动位置pm和变焦系数β后,即可进行跟踪定位拍摄。
具体的,所述步骤S002中,图像跟踪算法具体步骤如下:
步骤S0021,将全景摄像头拍摄得到的前一帧灰度图像Ip(x,y)与当前帧的灰度图像Ic(x,y)进行帧间差分,获得帧差图像Id(x,y)。采用的帧间差分公式为:
其中thr是差分阈值,用于控制算法的敏感度。
步骤S0022,根据公式
用第一内核ec对帧差图像Id(x,y)进行形态学腐蚀,得到腐蚀后的图像Idc(x,y);根据公式:
用第一内核ed对腐蚀后的图像Idc(x,y)进行形态学膨胀,获得了膨胀后的帧差图像Idd(x,y)。要求第二内核ed的大小比第一内核ec大,具体的大小范围需要根据实际调试效果进行选取。
步骤S0023,检测膨胀后的帧差图像Idd(x,y)中所有的外轮廓,得到一系列连续轮廓。取其中最大的轮廓cmax,作为检测出来的运动目标。其中轮廓检测的步骤包括:
步骤S00231,逐行扫描膨胀后的帧差图像Idd(x,y),直至找到非0点,设置该点为边界起点。
步骤S00232,以逆时针方向扫描相邻非0点,将新的非零点作为扫描起点。
步骤S00233,重复步骤S00232,直至回到边界起点,获得一个完整轮廓ci。
步骤S00234,将膨胀后的帧差图像Idd(x,y)中所有处于轮廓ci内的像素置为0,重复步骤S00231,直到膨胀后的帧差图像Idd(x,y)中不存在非0点。
步骤S0024,取最大的轮廓cmax的外接矩形中心pc(x,y),用坐标转移矩阵对pc(x,y)进行坐标转换,得到云台摄像头的移动位置pm(v,w),计算公式为:
其中:v代表pm的横坐标,w代表pm的纵坐标;
用变焦转移矩阵S=[s1 s2 s3]对pc(x,y)进行转换,得到变焦系数β,计算公式为:
β=s1*x+s2*y+s3 (6)
步骤S0025,将前一帧的灰度图像Ip(x,y)替换为当前帧的灰度图像Ic(x,y),重复步骤S0021。
为实现上述目的,如图4所示,本发明还提供了一种基于机器视觉的图像追踪定位***,所述的***包括:
全景摄像头单元,用于获取拍摄视频图像数据,并传送至控制单元;
所述的全景摄像头单元中设置有全景摄像头,所述的全景摄像头为不可变焦和移动,可进行全景拍摄,并将拍摄得到的视频图像实时传输给控制单元;
云台摄像头单元,用于获取跟踪拍摄目标数据,并进行目标跟踪拍摄;
所述的云台摄像头单元中设置有云台摄像头,所述的云台摄像头为可变焦和移动,由控制***通过控制协议进行控制,进行目标跟踪拍摄;
控制单元,用于获取视频图像数据,并将拍摄得到的前一帧的灰度图像与当前帧的灰度图像进行帧间差分;对帧差图像通过第一内核进行形态学腐蚀,用第二内核对腐蚀后的图像进行形态学膨胀;
检测膨胀后的帧差图像中所有的外轮廓,取其中最大的轮廓的外接矩形中心,用坐标转移矩阵对外接矩形中心进行坐标转换,得到所需移动位置;再通过变焦转移矩阵对外接矩形中心进行转换,得到变焦系数,进而将前一帧的灰度图像替换为当前帧的灰度图像,同时将检测出来的跟踪目标移动位置和变焦系数传输至云台摄像头单元,具体地,控制单元将检测出来的跟踪目标位置和变焦系数通过通信协议,传输至云台摄像头单元,从而让云台摄像头单元对目标进行跟踪拍摄。
也就是说,用于接收全景摄像头单元的视频图像数据,进行图像跟踪,并将检测出来的跟踪目标位置和变焦系数传输给云台摄像头单元,使其进行目标跟踪拍摄。
具体地,如图5所示,其为本发明的一种图像跟踪***结构图:
所述的全景摄像头,具体为不可变焦和移动,可进行全景拍摄,并将拍摄得到的视频图像传输给控制单元***。
所述的云台摄像头,具体为可变焦和移动,由控制***通过控制协议进行控制,进行目标跟踪拍摄。
所述的控制模块,具体为可接收全景摄像头的视频图像,进行图像跟踪,并将检测出来的跟踪目标位置和变焦系数传输给云台摄像头,进行跟踪拍摄。
通过本发明方法和***,可以搭建一个图像跟踪定位***,实现对目标实时跟踪拍摄的功能,而且对跟踪图像目标无特殊要求,图像目标也无需佩戴定位设备即可实现追踪定位;本发明的图像跟踪算法计算复杂度低,处理效率高,可在嵌入式CPU计算负载有限的情况下满足实时跟踪定位的需求;通过本发明方法及***,对摄像头的型号与规格也没有特殊要求,大大提高了产品的可拓展性。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。