远距离识别二维码的方法、存储介质与流程

文档序号:17775503发布日期:2019-05-28 20:03阅读:929来源:国知局
远距离识别二维码的方法、存储介质与流程

本发明涉及二维码识别领域,具体涉及远距离识别二维码的方法、存储介质。



背景技术:

在二维码解码前有个前置步骤必须先处理,即判断图像中是否存在二维码以及它所在位置和大小。目前定位二维码的一般做法是根据其左上、左下和右上的3个定位图案来确定位置和大小。这样就限制了二维码图像要在比较清晰情况下才能识别定位,因为在较远距离拍摄读取的二维码定位点的图形特征基本模糊或不存在了。现有已公开的技术还不能实现在较远距离下识别到二维码的存在。例如现有技术中公开的申请号为201610356177.4,名称为《一种实现远距离扫描二维码的终端》的专利文件,其方案的实现是通过人机交互在手动放大焦距的前提下,对放大后的二维码图像通过插值法优化清晰度来进行远距离解码的过程。也就是说,其方案需要配合人工操作才能实现,需要手动放大焦距,并不能在远距离情况下直接定位二维码所在的位置和大小。

因此有必要提供一种能够有效解决在二维码3个定位点特征均丢失情况下识别定位出二维码的位置及大小的方案来解决上述问题。



技术实现要素:

本发明所要解决的技术问题是:提供远距离识别二维码的方法、存储介质,能准确且高效的识别是否存在二维码。

为了解决上述技术问题,本发明采用的技术方案为:

远距离识别二维码的方法,包括:

获取包含待识别二维码的图像帧;

对图像帧进行二值化处理;

标记二值化处理后的图像帧中黑白间隔的像素点作为特征点;

对所述特征点进行聚类处理,获取至少一个的簇;

依据簇的形状以及簇内特征点与簇内所有像素点的占比,获取所述至少一个的簇中最符合二维码特征的簇。

本发明提供的另一个技术方案为:

一种计算机可读存储介质,其上存储有计算机程序,所述程序在被处理器执行时,能实现上述远距离识别二维码的方法所包含的步骤。

本发明的有益效果在于:获取远距离包含二维码的图像帧后,依次进行二值化处理、提取特征点、特征点聚类获取簇,以及对簇按照二维码特征进行识别,获取最符合二维码特征的簇。由此,即使在由于距离较远而导致二维码的三个定位点特征均无法定位识别到的情况下,也可高效且准确地确定图像帧中二维码所在的位置及大小,从而提升远距离二维码解码的成功率。

附图说明

图1为本发明远距离识别二维码的方法的流程示意图;

图2为本发明实施例一的远距离识别二维码的方法的流程示意图;

图3为本发明实施例一中经过灰度处理的二维码效果示意图;

图4为本发明实施例一中经过降噪滤波处理的二维码效果示意图;

图5为本发明实施例一中经过二值化处理的二维码效果示意图。

具体实施方式

为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。

本发明最关键的构思在于:对远距离获取的图像帧基于其中的特征点进行聚类分析处理,获取最符合二维码特征的簇,针对性的识别该簇以提升远距离二维码解码的成功率。

本发明涉及的技术术语解释:

请参照图1,本发明提供远距离识别二维码的方法,包括:

获取包含待识别二维码的图像帧;

对图像帧进行二值化处理;

标记二值化处理后的图像帧中黑白间隔的像素点作为特征点;

对所述特征点进行聚类处理,获取至少一个的簇;

依据簇的形状以及簇内特征点与簇内所有像素点的占比,获取所述至少一个的簇中最符合二维码特征的簇。

从上述描述可知,本发明的有益效果在于:针对性解决现有技术中不具备变焦功能的设备或者变焦性能不佳的设备在较远距离情况下难以识别出二维码的位置所在和大小的问题。本发明能通过对包含待识别二维码的图像帧基于特征点的聚类处理后获取至少一个的簇,然后识别最符合二维码特征的簇,供用户直接识别,从而有效提升较远距离下二维码的解码成功率。

进一步的,所述对图像帧进行二值化处理,具体为:

对所述图像帧依次进行压缩和灰度化处理;

对灰度化处理后的图像帧进行二值化处理。

由上述描述可知,通过压缩处理能提升图像帧的解析效率;能通过灰度化处理去除色彩数据,而至针对轮廓特征进行图像分析进行进一步提高解析效率。

进一步的,所述对灰度化处理后的图像帧进行二值化处理,具体为:

对灰度化处理后的图像帧进行降噪滤波处理;

对降噪滤波处理后的图像帧进行二值化处理。

由上述描述可知,通过对图像帧整体进行降噪滤波处理,能有效去除摄像头获取的图像噪点,避免过多噪点将二维码模糊化;经过降噪滤波处理能做到只过滤平坦区域噪点而保留二维码边缘特征,使得二值化后的二维码像素的色差明暗对比强烈,从而提高识别准确度。

进一步的,所述依据簇的形状以及簇内特征点与簇内所有像素点的占比,获取所述至少一个的簇中最符合二维码特征的簇,具体为:

获取经过所述灰度化处理后得到的图像帧的副本;

对各个簇对应所述副本的位置进行降噪滤波处理;

对所述降噪滤波处理后的副本进行二值化处理;

标记二值化处理后的副本中黑白间隔的像素点作为副本特征点;

依据簇的形状以及簇内副本特征点与簇内所有像素点的占比,获取所述至少一个的簇中最符合二维码特征的簇。

由上述描述可知,在计算性能欠佳的情况下,可以对灰度化处理后的图像帧副本只进行局部的降噪滤波处理,同样能够获取过滤噪点保留二维码边缘特征的效果,而且还能大大的降低数据运算量,从而显著提高识别效率。

进一步的,还包括:

分别预设一簇内特征点与簇内所有像素点的占比阈值以及一二维码最小识别大小;

依据所述占比阈值与所述最小识别大小,计算获取最小占比特征点数量;

判断所标记的特征点的总数是否少于所述最小占比特征点数量,若是,则结束识别;若否,则继续执行所述对所述特征点进行聚类处理,获取至少一个的簇步骤。

由上述描述可知,通过最小占比特征点数量能判断所获取的图像帧内是否存在待识别的二维码,从而排除无效的图像帧,避免后续做无用功,造成资源浪费。

进一步的,所述依据簇的形状以及簇内特征点与簇内所有像素点的占比,获取所述至少一个的簇中最符合二维码特征的簇,具体为:

获取所述至少一个的簇中由簇的形状为矩形且簇内特征点与簇内所有像素点的占比大于或等于预设的占比阈值的簇所构成的待选簇集。

由上述描述可知,通过判断各个簇的形状和特征点占比,能准确且快速地筛选出最符合二维码特征的待选簇集。

进一步的,还包括:

遍历当前待选簇集内的各个待选簇,获取各个待选簇对应的簇内所有特征点的平均点;

平移各个待选簇的中心点至各自的平均点;

对平移后得到的各个待选簇按照预设倍数进行增量放大处理,获取新的待选簇集;

以所述新的待选簇集为当前待选簇集,返回执行所述遍历步骤和所述平移步骤,直至获取一中心点与平均点重合的簇。

由上述描述可知,通过对待选簇集进行放大后递归重新验证和移动,实现对聚类步骤的容错处理,从而显著提高最后获取的最优簇的准确性。

本发明提供的另一个技术方案为:

一种计算机可读存储介质,其上存储有计算机程序,所述程序在被处理器执行时,能实现上述的远距离识别二维码的方法所包含的步骤。

从上述描述可知,本发明的有益效果在于:同时提供一个能存储有实现上述远距离识别二维码的方法对应的计算机程序的计算机可读存储介质,能被运用在可行的设备中获取本申请即使在由于距离较远而导致二维码的三个定位点特征均无法定位识别到的情况下,也可高效且准确地确定图像帧中二维码所在的位置及大小,从而提升远距离二维码解码的成功率的有益效果。

实施例一

请参照图2至图5,本实施例提供一种远距离识别二维码的方法,能实现在较远距离下仍能够准确定位识别二维码的所在位置和大小,即使二维码的三个定位点特征均丢失。

获取包含待识别二维码的图像帧后(如通过具有摄像功能的智能设备扫描3米远的墙面上的二维码时,摄像头获取的画面),执行包括以下:

(一)对图像帧进行预处理。

1、压缩

对所获取的图像帧进行压缩处理,如压缩到一定比例480p或720p,以提升解析效率。

2、灰度化

对压缩后的图像帧进行灰度化处理,优选保留一份灰度化处理后的图像帧副本。这样去除了色彩数据,而只针对轮廓特征进行图像分析,可以进一步提高解析效率。如图3所示,为远距离下模糊的二维码灰度图。

3、降噪滤波

对灰度化处理后的图像帧进行降噪滤波处理,获取预处理后的图像帧。

一般普通摄像头获取的图像噪点较多。为了避免在过滤噪点的同时把二维码模糊化,本实施例使用表面模糊滤波技术来解决。以下将通过该滤波原理的说明,来解释采用该技术能够做到只过滤平坦区域噪点而保留二维码边缘特征的原因:

首先,根据中心点像素与其相邻一定范围内像素点的色值差与阈值的比例作为权重,色差越大所占权重越小即对要过滤点影响越小,在灰度图下表现为亮度差别;组成二维码像素的黑白间隔明显,其色差明暗对比强烈。所以它只会过滤掉平坦区域色差不明显噪点使区域变得平滑,而不会对二维码的特征造成影响。

该算法公式:设当前像素x,xi是以x为中心点,并且在以内接圆半径为r的矩形内的像素点;y为滤波阈值,则权重wi计算公式为:wi=1-|xi-x|/y。得到权重后利用模糊通用算法加权平均下得出该点滤波后的值:其中关于i取值范围,可以看作是一个正方行范围内包括中心点与其他所有落在这个方形半径r内的所有点。比如半径为r=1个像素距离,那么中心点它的紧邻的上、下、左、右、左上、右上、左下、右下这8个点就是那些其他点,再加上中心点即9个点。r=1代入公式即(2r+1)2=9。如图4所示,为已经过降噪滤波处理后的二维码效果图,对比图3丰富的边缘特征,图4的边缘特征已处理平滑。

在部署设备性能情况优良的情况下,采用上述的全图滤波处理,同样能轻松、快速获取降噪滤波处理后的图像帧。

4、二值化

对降噪滤波处理后的图像帧进行二值化处理,获取黑白像素点组成的图像帧。如图5所示,为二值化后的二维码效果。

至此,完成图像帧的预处理过程。

(二)特征提取

对二值化后的图像帧进行特征点提取,即标记二值化处理后的图像帧中黑白间隔的像素点作为特征点。具体的,可以通过遍历二值化后的图像帧数据,若当前像素与前一个像素比较色值不一样,则当前像素点标记为特征点,以此获取所有的特征点。

(三)特征点聚类

1、判断是否符合识别条件

在一具体实施方式中,在聚类之前,还包括对所提取的特征点是否符合识别条件进行初步判断,这样不仅可以在进行基于特征点进行分析处理步骤之前及时确定所提取的特征点是否有进行继续识别的必要性;而且还能同时作为所获取的图像帧中是否存在可识别二维码的判断。由此提高二维码识别效率。

具体而言,首先设定一簇内特征点与簇内所有像素点的占比阈值,即特征点对矩形簇范围占比的经验阈值t,如0.15,表示100像素点范围内至少包含15特征点。然后再定义出一个二维码最小识别大小,假设宽、高min_l各40像素;依据上述两个参数计算得出最小占比特征点数量:40*40*0.15(t)=240作为最小占比特征点数量min_f_c。如果要求识别距离比较远,则可以将二维码最小识别大小调小点;同理,调大点可提高识别率及速度。

若判断所提取的所有特征点数量少于最小占比特征点数量min_f_c,则结束本次识别,认为所获取的图像帧不符合二维码识别条件;

若大于或等于最小占比特征点数量,则继续后续的特征点聚类步骤。

2、特征点聚类

对所述特征点按照密度程度聚类划分簇,获取至少一个的簇。

在一具体实施方式中,具体通过以下步骤实现:

(1)遍历所有特征点,以当前遍历到的特征点为中心点,设定一个矩形内接圆半径c_r作为其领域半径,优选取值为min_l/4。统计当前特征点对应的领域范围内包含当前特征点的所有特征点数量,如果大于预先设定的领域最少点数目min_pts(2c_r*2c_r*t/3),则标记当前特征点为核心点,并记录其领域内的其他特征点,即关联其领域内的其他特征点与当前特征点。直至所有的特征点都完成遍历。

(2)遍历所有被标记成核心点的特征点,对当前遍历到的被标记为核心点的特征点(后续简称核心点)进行访问,并打上簇标记。簇标记从1开始递增,并对当前遍历到的核心点领域内的其他特征点(即与其关联的特征点)打上相同的簇标记,最后再标记一个已访问状态。

由于一个核心点领域内可能包含其他核心点,所以当遍历到已经被打上簇标记的核心点时,不重新打上新的簇标记,而是用已有的簇标记去标记其领域内其他特征点(已标记成已访问过的其他核心特征点不重复标记)。例如,在遍历已经被标记为簇1的核心点的领域范围时,遍历到新的核心点,则将该核心点标记为簇1,并将该核心点的领域范围内的其他特征点,也都标记为簇1。这样就把两个拥有各自不同领域的核心点及归属它们领域内所有特征点都标记成同一簇归为同一类了。最终密度紧密的特征点都有了各自的簇标记,没有簇标记的点则是孤立的排除掉。通过簇标记可知同一簇的边界位置,即一个簇所在矩形的位置大小信息。

3、过滤无效簇

获取上一步骤获取的至少一个的簇中簇的形状为矩形且簇内特征点与簇内所有像素点的占比大于或等于预设的占比阈值的簇,由这些簇构成的待选簇集。

在一具体实施方式中,该步骤包括:假设已知簇中心点位置(cx,cy)、簇宽c_w、簇高c_h。定义2个筛选条件:(1)根据宽高比大于2或小于0.5排除非矩形的簇;(2)根据簇内所有特征点数量与簇矩形范围内所有像素的占比是否小于占比阈值t排除无效簇。

通过上述的筛除步骤,在所摄取的图像内不存在两个以上的类似二维码图案的情况下,基本可获取最符合二维码特征的一个簇,该簇对应的即待识别的二维码。由此,便可高效且准确地识别到图像帧中待识别二维码的位置和大小。

在一具体实施方式中,有可能在上一步骤获取至少两个的相邻很近的簇,这时,可以通过下述步骤对所获取的簇进行验证,目的在于对“2、特征点聚类”步骤的容错处理,将相邻很近的簇合并看待,一确保最终获取一个最优簇。

具体的,以上一步骤获取的待选簇集为当前的待选簇集,遍历其内的各个待选簇,获取各个待选簇各自对应的簇内所有特征点的平均点,即平均位置(avg_x,avg_y);以所获取的平均点为目标参数,平移对应的各个待选簇的中心点至各自的平均点,即平移簇使其中心点落在avg_x,avg_y上,使cx=avg_x,cy=avg_y。然后返回符合条件的簇;对返回的簇进行预设倍数(如0.1倍)增量放大处理,获取新的待选簇集;然后以所述新的待选簇集为当前待选簇集,返回执行上述的遍历步骤和上述的平移步骤,即对每一次得到的新的待选簇集进行放大后递归重新验证和平移,直至获取一中心点与平均点重合的簇,这个簇即最优簇,最优簇的位置及大小即待识别二维码的位置及大小。

实施例二

本实施例对应实施例一的技术构思,提供一个针对系统性能欠佳的设备,同样也能高效且准确地实现远距离识别二维码目的的方法。

这是因为,上述实施例一的(一)对图像帧进行预处理中的3、降噪滤波过程是针对图像帧全图滤波的过程,由于该滤波算法在性能不强的设备下会比较耗时,为了提高识别效率,本实施例将实施例一的(一)对图像帧进行预处理中的3、降噪滤波过程移到(三)特征点聚类过程中进行,并且使用局部滤波方式来显著提高性能不强的设备的识别效率。

具体的,与实施例一相同的部分在此不进行复述,区别在于:

删除实施例一的(一)对图像帧进行预处理中的“3、降噪滤波”过程,即删除针对图像帧全图滤波的步骤;

在“4、二值化”步骤,对灰度化后的图像帧直接进行二值化处理,并实行后续的步骤;

在(三)特征点聚类中的“2、特征点聚类”之后,“3、过滤无效簇”之前;增加:

2.1获取灰度化处理后的图像帧的副本;

2.2针对已聚类的至少一个簇各自对应上述的副本的位置进行降噪滤波,即对灰度图副本进行局部降噪滤波,滤除其中噪点形成的簇。具体的滤波过程详见实施例一(一)对图像帧进行预处理中的“3、降噪滤波”的记载。

2.3、对所述降噪滤波处理后的副本进行二值化处理;

2.4、标记二值化处理后的副本中黑白间隔的像素点作为副本特征点;

所述3、过滤无效簇的步骤为:

依据簇的形状以及簇内副本特征点与簇内所有像素点的占比,获取所述至少一个的簇中最符合二维码特征的簇构成待选簇集。

实施例三

本实施例对应实施例一和实施例二,提供一种计算机可读存储介质,其上存储有计算机程序,所述程序在被处理器执行时,能实现上述实施例一或实施例二所述的远距离识别二维码的方法所包含的步骤。具体的步骤内容请分别参与上述的实施例一或实施例二的记载。

对应本领域普通技术人员可以理解实现上述技术方案中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来实现的,所述的程序可存储于一计算机可读取的存储介质中,该程序在执行时,可包括如上述各方法的流程。

其中,所述的存储介质可以是磁盘、光碟、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

综上所述,本发明提供的远距离识别二维码的方法、存储介质,不仅能实现远距离下定位识别二维码的位置和大小;而且还能提升二维码远距离解码的成功率;进一步的,还能针对不同性能的设备采用不同的滤波处理以保证高效识别。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

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