一种实时检测可移动目标物的方法及系统与流程

文档序号:11143240阅读:244来源:国知局
一种实时检测可移动目标物的方法及系统与制造工艺

本发明关于机器学习技术领域,特别是涉及一种实时检测可移动目标物的方法及系统。



背景技术:

增强现实(Augmented Reality,简称AR),是指在真实场景的基础上叠加虚拟信息并在终端上显示出来,以实现现实世界与虚拟世界的无缝连接,形成人机交互,使这两个世界在用户眼中完美的结合在一起。加入AR技术的儿童产品的趣味性和互动性都大大提高,可以增强孩子的沉浸感,有利于培养孩子的专注力,有益于培养孩子对现代科学,未知世界的兴趣,有利于智力的开发,深受大众的欢迎。

AR表现的虚拟世界和真实世界结合的时候需要真实世界的“接口”,这里的“接口”就是现实中某个实际存在的物体的坐标。以这个坐标为参考建立AR的虚拟场景。目前的AR产品中,为了保证虚拟场景的稳定,作为坐标参照物的物体通常是不可移动的,即使有的AR产品的坐标参照物可以移动,也因为考虑到参照物体的识别定位,对应用的场景或者参照物体的亮度颜色有一定的限制,使产品的设计和使用有很大的局限性。



技术实现要素:

为克服上述现有技术存在的不足,本发明之目的在于提供一种实时检测可移动目标物的方法及系统,以实现将可移动目标物作为AR产品的坐标参照物,且适用于室内室外多种光照下的多种场景。

为达上述及其它目的,本发明提出一种实时检测可移动目标物的方法,包括如下步骤:

步骤一,根据拍摄的具有目标物体的图像收集制作样本,对样本进行分类,获得分类器;

步骤二,实时获取目标区域的图像,获得待检测图像;

步骤三,利用一扫描子窗口在待检测的图像或待检测的图像区域中不断滑动,该扫描子窗口每到一个位置计算出该区域的MB-LBP特征,根据该分类对该特征进行分类,判断出满足分类器对目标物检测条件的目标区域,获得目标物。

进一步地,于步骤三之后,还包括如下步骤:

若步骤三中获得多个目标物,则利用canny算子从多个目标物中选出最优解。

进一步地,该利用canny算子从多个目标物中选出最优解的步骤进一步包括:

采用canny算子特征值对多个目标物进行目标物的最初筛选;

根据预先设定的目标物颜色,选择对应颜色面积比例最大的目标物作为最优解。

进一步地,选择白色面积比例最大的目标物作为最优解。

进一步地,步骤三进一步包括:

步骤S1,判断上一帧是否检测到目标物;

步骤S2,若上一帧检测到目标物,则根据上一帧的检测结果确定当前帧目标物的大小及可能出现的位置,确定当前帧的扫描子窗口大小及检测范围,利用该扫描子窗口于检测范围内滑动以获得目标物;

步骤S3,若上一帧未检测到目标物,则利用扫描子窗口于当前帧图像区域中不断滑动以获得目标物。

进一步地,于步骤S2中,利用帧与帧之间的关联性预测当前帧的目标物的大小及可能出现的位置。

为达到上述目的,本发明还提供一种实时检测可移动目标物的系统,包括:

目标物分类器建立单元,用于根据拍摄的具有目标物体的图像收集制作样本,对样本进行分类,获得分类器;

图像获取单元,用于实时获取目标区域的图像,获得待检测图像;

目标跟踪检测单元,利用一扫描子窗口在待检测的图像或待检测的图像区域中不断滑动,该扫描子窗口每到一个位置计算出该区域的MB-LBP特征,根据该分类对该特征进行分类,判定出满足分类器对目标物检测条件的目标区域;

进一步地,该系统还包括最优目标物筛选单元,用于利用canny算子从多个目标物中选出最优解。

进一步地,所述最优目标物筛选单元通过如下步骤获得最优解:

采用canny算子特征值对多个目标物进行目标物的最初筛选;

根据预先设定的目标物颜色,选择对应颜色面积比例最大的目标物作为最优解。

进一步地,所述目标跟踪检测单元对于每一帧待检测图像,首先判断上一帧是否检测到目标物,若上一帧检测到目标物,则根据上一帧的检测结果确定当前帧目标物的大小及可能出现的位置,确定当前帧的扫描子窗口的大小与检测范围,并利用该扫描子窗口于检测范围内滑动以获得目标物,若上一帧未检测到目标物,则利用扫描子窗口于当前帧图像区域中不断滑动以检测到目标物。

与现有技术相比,本发明一种实时检测可移动目标物的方法及系统通过采集训练样本,得到目标物分类器,利用目标物分类器对实时检测的图像中的目标区域确定是否为目标物,并从多个目标物中筛选出最优目标物,实现了实时检测可移动目标物的目的,可为AR产品提供可移动的与现实结合的坐标,本发明利用机器学习技术,可将识别到的目标物的位置信息提供给上层软件做AR场景的建筑处理,本发明基于机器学习的目标物的识别防风鲁棒性高,适用于室内室外多种光照下的多种场景,相比与不可移动及限制背景的同类AR产品更具有灵活性。

附图说明

图1为本发明一种实时检测可移动目标物的方法的步骤流程图;

图2为本发明具体实施例中步骤101的细部流程图;

图3为本发明具体实施例中步骤S11中选取目标物体最小矩形部分的示意图;

图4为本发明具体实施例中所需的一个样本的示意图;

图5为本发明具体实施例中移动终端获得的原点坐标为左下角的图像示意图;

图6为本发明具体实施例中将图5图像上下翻转后的图像示意图;

图7为本发明具体实施例中检测到多个区域满足分类器的示意图;

图8为本发明具体实施例中canny算子边缘检测结果示意图;

图9为本发明具体实施例中检测到的目标区域的canny算子边缘检测图的平均值示意图;

图10为本发明具体实施例中初步筛选后目标区域示意图;

图11为本发明具体实施例中获得最优解示意图;

图12-图14为本发明具体实施例中移动终端提供的视频图像的连续帧;

图15为本发明具体实施例根据上一帧检测结果确定当前帧目标位置的示意图;

图16为本发明具体实施例中对目标物的检测过程流程图;

图17为本发明一种实时检测可移动目标物的系统的系统架构图;

图18为本发明具体实施例中目标物分类器建立单元170的细部结构图。

具体实施方式

以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。

图1为本发明一种实时检测可移动目标物的方法的步骤流程图。如图1所示,本发明一种实时检测可移动目标物的方法,包括如下步骤:

步骤101,根据拍摄的具有目标物体的图像收集制作样本,对样本进行分类,获得训练样本的分类器。

图2为本发明具体实施例中步骤101的细部流程图。如图2所示,步骤101具体包括:

步骤S11,根据拍摄的具有目标物体的图像收集制作样本。在本发明具体实施例中,步骤S11进一步包括:

Step1,拍摄具有目标物的图像,于所拍摄的具有目标物体的图像中选取可以框住整个目标物体的最小矩形部分,如图3所示。

Step2,将选取的图像转换为n×n像素的图像,转换后的图像即是所要获得的一个样本。在本发明具体实施例中,将选取的图像(即图3中的矩形大小的图像)转换为30×30像素的图像,如图4所示,图4所示的图像即是所得到的一个样本。

Step3,重复Step 1,Step 2,直至得到所需的样本数,通常要用2000个以上的样本训练才能得到较理想的分类器文件。

步骤S12,对样本进行特征提取,选取用于训练样本的特征。

由于MB-LBP特征(Muti-Block Local Binary Pattern)具有灰度不变性和旋转不变性的优点,且训练速度比其他特征(例如Haar和HOG)都要快很多,因此本发明选择MB-LBP特征作为训练样本的特征。

MB-LBP算子是对3×3的大方块,通过比较其中心子块的平均灰度gm与该中心子块周围八邻域子块的平均灰度{g1,g2,...,g8}计算特征值。具体计算公式如下:

其中

步骤S13,利用提取的特征进行样本训练,对样本进行分类,获得目标物的分类器。

在本发明中,选取任一模式分类算法(包括且不限于诸如决策树、贝叶斯网络、人工神经网络、K-近邻、支持向量机、Adaboost算法、Boosting算法等)对样本进行分类。

在本发明具体实施例中,选取Adaboost(Adaptive Boosting)算法进行说明样本分类说明,Adaboost算法可以将前一个基本分类器分错的样本的权重加强,加权后的全部样本再次被用来训练下一个基本分类器,同时,在每一轮中加入一个新的弱分类器,直到达到某个预定的足够小的错误率或者达到预先指定的最大迭代次数而终止。

假定训练数据集为T={(x1,y1),(x2,y2),…(xn,yn)},其中xi是样本实例,yi为标记,正样本标记为+1,负样本标记为-1,i=1,2,...,n。其中正样本为下面Step 1,Step 2中制作的目标截图的样本,负样本为不包含目标的任意图象。具体分类步骤如下:

Step 1,初始化训练样本的权值,每一个训练样本最开始都被赋予相同的权重:具体地,

D1(i)=1/n (式3)

Step 2,训练使用按照D1(i)采样的弱分类器C1。这里的弱分类器C1的输入为训练样本,分类器分类结果为正样本时输出+1,分类器分类结果为负样本时输出为-1。

Step 3,计算C1的误差。

E1=∑D1(i)I[C1(xi)≠yi] (式4)

Step 4,根据C1的误差计算C1对应的权重

Step 5,更新训练样本权重

Step 6,计算第k次迭代的样本权重,弱分类器Ck的误差,进而获得弱分类器Ck对应的权重。

其中,第k次迭代的样本权重为:

弱分类器Ck的误差为:

Ek=∑Dk(i)I[Ck(xi)≠yi] (式8)

弱分类器Ck对应的权重为:

其中k=1,2,...,m。

Step8,根据弱分类器Ck及其权重,获得分类器。在本发明具体实施例中,最终得到分类样本x的函数:

样本的分类结果为:

步骤102,实时获取目标区域的图像,获得待检测图像。

在本发明具体实施例中,利用移动设备的后置摄像头实时获取目标区域的图像。由于移动终端的系统默认图像的原点坐标为左下角,而一般图像识别工具(例如opencv)中图像的坐标原点是左上角,所以在opencv端看到的图像是图5所示的上下倒置的样子,识别前需要将图5的图像上下翻转成图6所示。

步骤103,利用一个扫描子窗口在待检测的图像或待检测的图像区域中不断地滑动,该扫描子窗口每到一个位置则计算出该区域的MB-LBP特征,然后根据步骤101训练好的分类器g(x)对该特征进行分类,判定该区域是否满足分类器对目标物的检测条件。

在本发明具体实施例中,扫描子窗口的长宽比和训练样本的长宽比一致,对应从设置的最小窗口大小到最大窗口大小的每一个尺寸都要创建相应的子窗口,对待检测图像区域进行遍历,因此控制扫描子窗口尺寸范围及事先判断目标可能出现的区域会减少扫描次数,提高检测速度。

步骤104,从多个目标物中选出最优解。

如图7所示,有时一幅图像会有多个区域满足分类器对目标的检测条件,而此应用中已知只有一个目标,所以需要在检测到的多个区域中找出真正要检测到的目标物体。

具体地,步骤104进一步包括如下步骤:

Step 1,采用canny算子特征值进行目标物的最初筛选。

在本发明具体实施例中,由于要检测的目标物是绝大部分为白色的类圆形物体,在目标所占矩形区域做canny算子的边缘检测而得到的均值会在一个固定的区域内,根据之前实验结果,可以知道,通常此数值在[30,60]的区间内。如图8中,j到r分别是a到i的canny算子边缘检测结果。

图9中显示的数字分别是检测到的目标区域的canny算子边缘检测图的平均值。其中,均值为26.2、60.7、63.7、64.9、85.1的区域为初步筛选中排除掉的区域。

Step 2,选择白色面积比例最大的目标物作为最优解。

经过Step 1的筛选之后,还有图10中所示a,c,e,g四个区域。根据HSV色彩空间中三个变量对候选区域做二值化。

v=max (式14)

其中,(r,g,b)是一个彩色图像某一个坐标对应的RGB色彩空间对应的三个值,max和min分别等价于r,g,b中的最大值和最小值。(h,s,v)是相对应的HSV空间表示颜色的三个值。上式中r,g,b∈[0,255],h∈[0,360),h,s∈[0,1]。

在opencv中,H∈范围[0,179],H,S∈[0,255],我们把S值在[0,30],V值在[200,255]之间的部分过滤出来,结果是b,d,f,h中的白色部分。其中白色区域所占该区域的比例分别是0%,25.3%,50.9%,0%。综上所述,最优解是区域e。即图11所示的球体实线框的区域e。

较佳地,步骤103进一步包括如下步骤:

步骤S31,判断上一帧是否检测到目标物;

步骤S32,若上一帧检测到目标物,则根据上一帧的检测结果确定当前帧的扫描子窗口大小及检测范围,并利用该扫描子窗口于检测范围内进行滑动检测,以获得目标物;

步骤S33,若上一帧未检测到目标物,则利用扫描子窗口于当前帧图像区域中不断滑动,以获得目标物。

具体地说,该扫描子窗口每扫描到一个位置计算出该区域的MB-LBP特征,根据该分类对该特征进行分类,判断出满足分类器对目标物检测条件的目标区域,以获得目标物。

在本发明具体实施例中,由于应用场景是实时场景,如下图12-14所示为移动终端提供的图像是视频的连续帧,帧与帧之间有很高的相似度,因此可以从上一帧的检测结果确定当前帧目标的大小及可能出现的位置,这样可以避免在整个图像范围内的扫描,降低检测时间,实现目标跟踪。

以图15为例,假设检测到当前帧里目标的位置是实线框所示的宽为w,高为h的矩形区域。考虑到帧与帧之间的关联性,同时目标物体及手持终端会迅速移动,可以把下一帧的检测范围设在以当前帧的中心为中心,高为代表当前帧检测到目标的矩形区域高h的三倍,同样,宽为此矩形区域宽w的三倍,如图15所示的虚线矩形区域。

这样,本发明利用帧与帧之间的关联性预测下一帧目标物体可能出现的位置可以大大的节省检测所需要的时间,提高检测率。举例来说,本发明的扫描子窗口的大小是变化的。例如设置的最小子窗口大小为20*20,最大为200*200,扫描窗口每次变化的倍数为2,则对某一待测图像第一个窗口扫描时扫描子窗口大小为20*20,从图像的左上角扫描到图像的右下角,若待测图像大小480*640,则此次扫描次数为(480-20+1)*(640-20+1)=286281次;第二个窗口扫描时窗口大小变为40*40,此次扫描次数为(480-40+1)*(640-40+1)=265041次;第三次窗口大小为80*80……依次类推,最后一次窗口大小为200*200,扫描次数为(480-200+1)*(640-200+1)=123921,这样总扫描次数为286281+265041+…+123921次;而若上一帧检测出的目标大小为80*80,且知道所在位置,则对当前帧的扫描可以把最小尺寸设为40*40,最大尺寸设为160*160,检测范围设为(80*3)*(80*3),则只需要用40*40,80*80,160*160三个扫描窗口。40*40窗口时,扫描次数为(240-40+1)*(240-40+1)=40401;80*80窗口时,扫描次数为(240-80+1)*(240-80+1)=25921;160*160窗口时,扫描次数为(240-160+1)*(240-160+1)=6561,这样总的扫描次数40401+25921+6561则远小于286281+265041+…+123921,大大节省了检测所需要的时间。

图16为本发明具体实施例中对目标物的检测过程流程图。首先,初始化,加载目标分类器,设置相关参数,例如包括检测目标的最大尺寸,最小尺寸,扫描窗口每次的变化倍数,分类器文件位置;判断上一帧是否检测到了目标物;若已检测到,从上一帧的结果估算出当前帧中目标可能出现的位置范围,并根据估算结果确定扫描子窗口的大小和扫描的范围;利用扫描子窗口在待检测的图像或待检测的图像区域中不断地滑动,该扫描子窗口每到一个位置则计算出该区域的MB-LBP特征,然后根据训练好的分类器对该特征进行分类,判定该区域是否满足分类器对目标物的检测条件,以检测到目标物;检测到的目标物是否为多个;若为多个,则筛选符合纹理条件的目标,选出白色面积最多的目标,并返回至目标位置,直至视频帧读取完毕。

图17为本发明一种实时检测可移动目标物的系统的系统架构图。如图17所示,本发明一种实时检测可移动目标物的系统,包括:目标物分类器建立单元170、图像获取单元171、目标跟踪检测单元172以及最优目标物筛选单元173。

目标物分类器建立单元170,用于根据拍摄的具有目标物体的图像收集制作样本,对样本进行分类,获得训练样本的分类器。

图18为本发明具体实施例中目标物分类器建立单元170的细部结构图。如图18所示,目标物分类器建立单元170具体包括:

样本收集单元1701,用于根据拍摄的具有目标物体的图像收集制作样本。在本发明具体实施例中,样本收集单元1701通过如下步骤收集样本:

Step1,拍摄具有目标物的图像,于所拍摄的具有目标物体的图像中选取可以框住整个目标物体的最小矩形部分。

Step2,将选取的图像转换为n×n像素的图像,转换后的图像即是所要获得的一个样本。在本发明具体实施例中,将选取的图像转换为30×30像素的图像,即得到所需的一个样本。

Step3,重复Step 1,Step 2,直至得到所需的样本数,通常要用2000个以上的样本训练才能得到较理想的分类器文件。

特征提取单元1702,用于对样本进行特征提取,选取用于训练样本的特征。

由于MB-LBP特征(Muti-Block Local Binary Pattern)具有灰度不变性和旋转不变性的优点,且训练速度比其他特征(例如Haar和HOG)都要快很多,因此本发明选择MB-LBP特征作为训练样本的特征。

MB-LBP算子是对3×3的大方块,通过比较中心子块的平均灰度gm与其周围八邻域子块的平均灰度{g1,g2,...,g8}计算特征值。具体计算公式如下:

其中

分类单元1703,利用提取的特征进行样本训练,对样本进行分类,获得分类器。

在本发明中,选取任一模式分类算法(包括且不限于诸如决策树、贝叶斯网络、人工神经网络、K-近邻、支持向量机、Adaboost算法、Boosting算法等)对样本进行分类。

在本发明具体实施例中,选取Adaboost(Adaptive Boosting)算法进行说明样本分类说明,Adaboost算法可以将前一个基本分类器分错的样本的权重加强,加权后的全部样本再次被用来训练下一个基本分类器,同时,在每一轮中加入一个新的弱分类器,直到达到某个预定的足够小的错误率或者达到预先指定的最大迭代次数而终止。

图像获取单元171,用于实时获取目标区域的图像,获得待检测图像。

在本发明具体实施例中,利用移动设备的后置摄像头实时获取目标区域的图像。由于移动终端的系统默认图像的原点坐标为左下角,而一般图像识别工具(例如opencv)中图像的坐标原点是左上角,因此识别前需要将图像上下翻转成。

目标跟踪检测单元172,利用一个扫描子窗口在待检测的图像或待检测的图像区域中不断地滑动,该扫描子窗口每到一个位置则计算出该区域的MB-LBP特征,然后根据目标物分类器建立单元170训练好的分类器对该特征进行分类,判定该区域是否满足分类器对目标物的检测条件。

在本发明具体实施例中,扫描子窗口的长宽比和训练样本的长宽比一致,对应从设置的最小窗口大小到最大窗口大小的每一个尺寸都要创建相应的子窗口,对待检测图像区域进行遍历,因此控制扫描子窗口尺寸范围及事先判断目标可能出现的区域会减少扫描次数,提高检测速度。

在本发明具体实施例中,由于应用场景是实时场景,帧与帧之间有很高的相似度,因此可以从上一帧的检测结果确定当前帧目标的大小及可能出现的位置,这样可以避免在整个图像范围内的扫描,降低检测时间,实现目标跟踪。因此目标跟踪检测单元172对于每一帧图像,首先会判断上一帧是否检测到目标物,若上一帧检测到目标物,则根据上一帧的检测结果确定当前帧目标物的大小及可能出现的位置,并确定当前帧的扫描子窗口大小及检测范围,利用扫描子窗口于当前帧图像区域中不断滑动,该扫描子窗口每到一个位置计算出该区域的MB-LBP特征,根据该分类对该特征进行分类,判断出满足分类器对目标物检测条件的目标区域。本发明利用帧与帧之间的关联性预测下一帧目标物体可能出现的位置可以大大的节省检测所需要的时间,提高检测率。

最优目标物筛选单元173,用于从目标跟踪检测单元172检测出的多个目标物中选出最优解。

有时一幅图像会有多个区域满足分类器对目标的检测条件,而此应用中已知只有一个目标,所以需要在检测到的多个区域中找出真正要检测到的目标物体。

具体地,最优目标物筛选单元173通过如下步骤进行最优目标物筛选:

Step 1,采用canny算子特征值进行目标物的最初筛选。

在本发明具体实施例中,由于要检测的目标物是绝大部分为白色的类圆形物体,在目标所占矩形区域做canny算子的边缘检测而得到的均值会在一个固定的区域内,根据之前实验结果,可以知道,通常此数值在[30,60]的区间内。

Step 2,选择白色面积比例最大的目标物作为最优解。

综上所述,本发明一种实时检测可移动目标物的方法及系统通过采集训练样本,得到目标物分类器,利用目标物分类器对实时检测的图像中的目标区域确定是否为目标物,并从多个目标物中筛选出最优目标物,实现了实时检测可移动目标物的目的,可为AR产品提供可移动的与现实结合的坐标,本发明利用机器学习技术,可将识别到的目标物的位置信息提供给上层软件做AR场景的建筑处理,本发明基于机器学习的目标物的识别防风鲁棒性高,适用于室内室外多种光照下的多种场景,相比与不可移动及限制背景的同类AR产品更具有灵活性。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1