CN114239631A - 二维码识别方法、装置、存储介质及电子设备 - Google Patents

二维码识别方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN114239631A
CN114239631A CN202111400125.XA CN202111400125A CN114239631A CN 114239631 A CN114239631 A CN 114239631A CN 202111400125 A CN202111400125 A CN 202111400125A CN 114239631 A CN114239631 A CN 114239631A
Authority
CN
China
Prior art keywords
modules
dimensional code
pattern
target
feature
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202111400125.XA
Other languages
English (en)
Other versions
CN114239631B (zh
Inventor
刘正保
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202111400125.XA priority Critical patent/CN114239631B/zh
Publication of CN114239631A publication Critical patent/CN114239631A/zh
Application granted granted Critical
Publication of CN114239631B publication Critical patent/CN114239631B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1408Methods for optical code recognition the method being specifically adapted for the type of code
    • G06K7/14172D bar codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1443Methods for optical code recognition including a method step for retrieval of the optical code locating of the code in an image

Abstract

本说明书实施例公开了一种二维码识别方法、装置、存储介质及电子设备,其方法可包括基于电子设备识别目标二维码的第一特征点,并根据第一特征点确定特征图案,其中特征图案可包括多个交替排列的第一模块以及第二模块。当电子设备确定特征图案之后,可根据该特征图案确定目标二维码的版本以及模块大小,并基于该目标二维码的版本以及模块大小对目标二维码进行识别。

Description

二维码识别方法、装置、存储介质及电子设备
技术领域
本说明书实施例属于图案识别技术领域,特别的涉及一种二维码识别方法、装置、存储介质及电子设备。
背景技术
二维码是指在一维条码的基础上扩展出另一维具有可读性的条码,其基于黑白矩形图案表示二进制数据,在被设备扫描后可由设备获取其中所包含的信息。
由于二维码易因图案自身存在畸变、污损而影响终端识别结果的准确性,因此需要提供识别二维码准确性更高的技术方案。
发明内容
本说明书实施例提供了一种二维码识别方法、装置、存储介质及电子设备,其技术方案如下:
第一方面,本说明书实施例提供了一种二维码识别方法,包括:
识别目标二维码的第一特征点,并根据第一特征点确定特征图案;其中,特征图案包括多个交替排列的第一模块以及第二模块,第一模块与第二模块的大小相同,第一模块与第二模块对应的颜色不同,第一特征点对应为定位图案的中心模块,定位图案包括多个按照预设顺序排列的第一模块以及第二模块;
根据特征图案确定目标二维码的版本以及模块大小;
基于目标二维码的版本以及模块大小对目标二维码进行识别。
第二方面,本说明书实施例提供了一种二维码识别装置,包括:
第一处理模块,用于识别目标二维码的第一特征点,并根据第一特征点确定特征图案;其中,特征图案包括多个交替排列的第一模块以及第二模块,第一模块与第二模块的大小相同,第一模块与第二模块对应的颜色不同,第一特征点对应为定位图案的中心模块,定位图案包括多个按照预设顺序排列的第一模块以及第二模块;
第二处理模块,用于根据特征图案确定目标二维码的版本以及模块大小;
第三处理模块,用于基于目标二维码的版本以及模块大小对目标二维码进行识别。
第三方面,本说明书实施例提供了一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的二维码识别方法步骤。
第四方面,本说明书实施例提供了一种电子设备,可包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行上述的二维码识别方法步骤。
本说明书一些实施例提供的技术方案带来的有益效果至少包括:
在本说明书一个或多个实施例中,电子设备可识别目标二维码的第一特征点,并根据第一特征点确定特征图案;根据特征图案确定目标二维码的版本以及模块大小,并基于目标二维码的版本以及模块大小对目标二维码进行识别。在对整个目标二维码的识别过程中,可根据第一特征点确定包括多个交替排列的第一模块以及第二模块的特征图案,基于该特征图案的模块排列方式可提高计算目标二维码的版本以及模块大小的准确性,进而保障了识别目标二维码的准确性。
附图说明
为了更清楚地说明本说明书实施例中的技术方案,下面将对实施例中所需使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书提供的一种二维码的结构示意图;
图2为本说明书实施例提供的一种二维码识别系统的应用场景示意图;
图3为本说明书实施例提供的一种二维码识别方法的流程示意图;
图4为本说明书实施例提供的一种二维码的特征结构示意图;
图5为本说明书实施例提供的又一种二维码识别方法的流程示意图;
图6为本说明书实施例提供的又一种二维码的特征结构示意图;
图7为本说明书实施例提供的又一种二维码识别方法的流程示意图;
图8为本说明书实施例提供的一种特征图案的模块个数示意图;
图9为本说明书实施例提供的又一种特征图案的模块个数示意图;
图10为本说明书实施例提供的一种二维码识别装置的结构示意图;
图11为本说明书实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述。
本说明书中的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
本说明书在结合一个或多个实施例对二维码识别方法进行详细阐述之前,可先介绍二维码的组成结构。
二维码作为一维码的扩展图案,相较于一维码可存储更多适用范围更广的大容量数据,用户可通过电子设备对二维码进行扫描以获取存储于二维码内的数据信息。此处以支付二维码为例,用户可选择安装在电子设备的第三方应用程序对支付二维码进行扫描并完成支付,例如用户可选择安装在电子设备的某一应用程序主界面中的扫一扫控件,通过电子设备的摄像头将支付二维码置于扫描区域中进行识别,并将识别出的支付数据显示在电子设备的当前界面,以便于用户的后续支付操作。
请参阅图1示出的本说明书提供的一种二维码的结构示意图,图1中的1A示出了一种根据存储数据所生成的二维码,用户可通过电子设备扫描该二维码以直接获取该二维码对应的数据。对应于图1中的1A示出的二维码,图1中的1中的1B示出了该二维码的一种特征结构示意图,在该特征结构示意图中示出了图1A示出的二维码的功能图案,包括有空白图案101、定位图案102、特征图案103以及对齐图案104。
具体地,空白图案101可为包裹在该二维码边缘外侧的区域,便于电子设备根据空白图案101确定待识别的二维码。
定位图案102(又称为桩点)可由第一正方形图案、包裹在该第一正方形图案边缘外侧的呈回字结构的第一图案以及包裹在该第一图案边缘外侧的呈回字结构的第二图案组成,其中,第一正方形图案的边长与第一图案的宽度以及第二图案的宽度的比例为3:1:1,且第一正方形图案的颜色与第二图案的颜色相同,与第一图案的颜色不同,例如可参阅图1中的1B中第一正方形图案的颜色为黑色,第一图案的颜色为白色,第二图案的颜色为黑色。可以理解的是,二维码可由多个不同颜色的模块组成,该模块可理解为包括多个像素的正方形图案,基于此上述第一正方形图案、呈回字结构的第一图案以及呈回字结构的第二图案也可由多个模块组成,例如第一正方形图案可由边长为三个模块边长的多个黑色模块组成,呈回字结构的第一图案可由宽度为一个模块边长的多个白色模块组成,呈回字结构的第二图案可由宽度为一个模块边长的多个黑色模块组成。需要注意的是,由图1中的1B示出的特征结构示意图可看出二维码包括三个相同的定位图案102,该三个定位图案102分别位于二维码的三个顶点处,且任意一个二维码均包括有该三个定位图案102。
特征图案103可为任意两个相邻的定位图案102的距离线段图案,此处需要提醒的是,处于二维码中对角的两个定位图案不属于相邻的定位图案102,也可理解为在二维码中包括有两个特征图案103。基于上述提到的二维码可由多个不同颜色的模块组成,此处特征图案103可由多个交替排列的不同颜色的模块组成,例如如图1中的1B示出的由多个交替排列的黑色模块以及白色模块组成,且该特征图案的宽度等于一个模块的边长。需要注意的是,如图1中的1中的1B示出的特征图案103位于任意两个相邻的定位图案距离二维码中心最近的顶点的连线处,便于电子设备在识别二维码的过程中对二维码的扫描校准。
对齐图案104可由第二正方形图案、包裹在该第二正方形图案边缘外侧的呈回字结构的第三图案以及包裹在该第三图案边缘外侧的呈回字结构的第四图案组成。其中,第二正方形图案的边长与第三图案的宽度以及第四图案的宽度的比例为1:1:1,且第二正方形图案的颜色与第四图案的颜色相同,与第三图案的颜色不同,例如可参阅图1中的1B中第二正方形图案的颜色为黑色,第三图案的颜色为白色,第四图案的颜色为黑色。需要说明的是,对齐图案104可以但不局限于为本实施例图1B中示出的图案组成以及位置,其还可在对应于二维码的其他固定区域内由不同形状的图案组成。
可以理解的是,二维码可由多个不同颜色的模块组成,该模块可理解为包括多个像素的正方形图案,基于此上述第二正方形图案、呈回字结构的第三图案以及呈回字结构的第四图案也可由多个模块组成,例如第二正方形图案可由一个黑色模块组成,呈回字结构的第三图案可由宽度为一个模块边长的多个白色模块组成,呈回字结构的第四图案可由宽度为一个模块边长的多个黑色模块组成。
上述提到的模块,其具体可包括M×M个像素点,例如当模块为黑色时,该黑色模块可包括M×M个黑色像素点。需要说明的是,在接下来的本说明书实施例中每个模块的大小可简称为M个像素点。
需要注意的是,由图1中的1B示出的特征结构示意图看出二维码可包括一个处于固定区域的对齐图案104,该固定区域可以但不局限于为本说明书实施例中的二维码右下角区域,例如还可为特征图案103的中心区域或者为二维码的中心区域。
除上述提到的空白图案101、定位图案102、特征图案103以及对齐图案104之外,在二维码中还可包括用多个不同颜色模块组成的格式信息、用多个不同颜色模块组成的版本信息以及用多个不同颜色模块组成的数据码和纠错码等,此处不再过多赘述。
需要说明的是,在生成二维码的填接编码过程中,二维码所包括的所有模块中除组成三个定位图案的模块以及组成两个特征图案的模块的颜色配比相对固定,均可根据编码信息进行不同颜色的填充,此处以编码信息为二进制数据为例,1对应的模块可填充为黑色,0对应的模块可填充为白色。可以理解的是,二维码中还可包括一些颜色固定的呈零散分布的模块,由于不具有特征性此处不举例提出。
当然,二维码除了上述提到的以黑色或白色作为模块颜色之外,还可根据不同需求定义其他不同颜色的模块颜色,本说明书实施例在识别二维码之前,还可先对二维码进行预处理。此处以预处理为二值化处理为例,可先确定二维码中每个模块对应的像素值,并将像素值处于第一预设区间的模块转换为第一预设模块颜色,将像素值处于第二预设区间的模块转换为第二预设模块颜色。例如,每个模块对应的像素值处于[0-255]之间,当像素值处于[0-127]之间时可将与该像素值对应的模块颜色转换为黑色,当像素值处于[128-255]之间时可将与该像素值对应的模块颜色转换为白色。
根据二维码的组成结构可知二维码是由多个不同颜色的模块组成,基于此在识别二维码的过程中可根据模块个数确定二维码的版本号以及模块大小,并根据该版本号以及模块大小对二维码进行模板定位以及二进制采样,进而可将二维码中的编码解析为具有数据信息的字符串。
接下来,请参阅图2示出的本说明书实施例提供的一种二维码识别系统的应用场景示意图。
如图2所示,该二维码识别系统的应用场景中至少可以包括电子设备201以及待识别二维码202,其中:
电子设备201安装有可执行二维码识别功能的第三方应用程序,通过将摄像头对准待识别二维码202实现基于第三方应用程序对待识别二维码202的扫描识别。此处第三方应用程序可以但不局限于浏览器等应用程序,具体以某一应用程序为例,用户可点击电子设备201界面的该应用程序图标,并在相应的主界面中点击扫一扫控件,当电子设备201的界面变为二维码扫描界面时可将电子设备201的摄像头对准待识别二维码202,以使电子设备201的二维码扫描界面出现完整的待识别二维码202并完成对该待识别二维码202的识别。
待识别二维码202可为基于多种应用场景生成的二维码,例如在图2中示出的一种应用于商家扫码支付的二维码,当然还可为设置在共享单车上的二维码或者验证行程健康的二维码等。该待识别二维码202可包括有用于组成定位图案、特征图案以及用于表征编码信息的多个不同颜色的模块。
此处以电子设备201安装有可执行二维码识别功能的某一应用程序为例,用户可在电子设备201的主界面选择该应用程序图标进入相应的主界面,并选择置于界面的扫一扫控件。此时电子设备201的显示界面可参阅如图2所示的电子设备显示界面,该界面中包括有扫描框203,用户需将电子设备201的摄像头对准待识别二维码202,以使扫描框203内出现完整的待识别二维码202。可以理解的是,若电子设备201识别出该待识别二维码202,则可在显示界面显示与识别结果对应的显示界面,例如当待识别二维码202为支付二维码时,电子设备201可显示出相应的支付界面。若电子设备201未识别出该待识别二维码202,则在显示界面一直显示当前扫描界面,且还可生成用于提示用户识别失败的提示信息。
当然,在上述提到的扫描框203下方还可设置有当前进行的扫码控件、可转换的识物控件以及AR控件,用户还可将当前二维码扫描界面切换为其他扫描界面,本说明书不限定于此。
具体地,电子设备201在识别二维码的过程中,可先识别出待识别二维码202的第一特征点,并根据该第一特征点确定特征图案。此处第一特征点可对应为待识别二维码202中定位图案的中心模块,例如为图1中的1B示出的定位图案102中第一正方形图案的中心模块。可以理解的是,组成处于二维码顶点的三个相同的定位图案的多个不同颜色模块为固定排列顺序,基于此可以但不局限于根据不同颜色模块的比例确定待识别二维码的定位图案以及定位图案的中心模块。进一步的,电子设备201在确定待识别二维码202的特征图案之后,还可根据该特征图案确定待识别二维码202的版本以及模块大小,其中待识别二维码202的版本可先根据特征图案确定待识别二维码202的模块个数,再基于该待识别二维码202的模块个数确定待识别二维码202的版本。进一步的,电子设备在确定待识别二维码202的版本以及模块大小之后,可对待识别二维码202进行模板定位以及二进制采样,进而可将待识别二维码202中的编码解析为具有数据信息的字符串,并显示在电子设备201的显示界面。
本说明书实施例中涉及的电子设备201可以是智能手机、平板电脑、桌面型、膝上型、笔记本电脑、超级移动个人计算机(Ultra-mobile Personal Computer,UMPC)、手持计算机、PC设备、个人数字助理(Personal Digital Assistant,PDA)、虚拟现实设备等。
接下来,本说明书的多个实施例将以电子设备为执行体,对二维码识别方法进行详细说明。
请参阅图3,图3示出了本说明书实施例提供的一种二维码识别方法的流程示意图。
如图3所示,该二维码识别方法具体可包括以下步骤:
步骤302、识别目标二维码的第一特征点,并根据第一特征点确定特征图案。
本说明书实施例中电子设备可基于安装的可执行扫描二维码功能的第三方应用程序对二维码进行识别。此处以第三方应用程序为某一应用程序为例,用户可在电子设备的主界面选择该应用程序图标进入相应的主界面,并选择置于界面的扫一扫控件以使电子设备显示二维码扫描界面。电子设备在基于二维码扫描界面对二维码进行扫描的过程中,需先将电子设备的后置摄像头对准完整的目标二维码,以使目标二维码可完整的出现在电子设备的二维码扫描界面中。
可以理解的是,电子设备在扫描目标二维码的过程中,电子设备所在平面与目标二维码所在平面可处于平行关系或者相交关系。
可能的,当电子设备所在平面与目标二维码所在平面处于平行关系时,显示在电子设备的二维码扫描界面中的二维码与目标二维码的模块个数以及模块大小完全相同。
可能的,当电子设备所在平面与目标二维码所在平面处于相交关系时,显示在电子设备的二维码扫描界面中的二维码与目标二维码的模块个数以及模块大小不完全相同。例如相同模块个数的图案在电子设备的二维码扫描界面中的像素个数与目标二维码的模块大小不同。
还可以理解的是,即使电子设备所在平面与目标二维码所在平面处于平行关系,由于目标二维码表明沾有灰尘等原因,显示在电子设备的二维码扫描界面中的二维码与目标二维码的模块个数以及模块大小也会不完全相同。
需要注意的是,当显示在电子设备的二维码扫描界面中的二维码与目标二维码的模块个数以及模块大小不完全相同时,电子设备可能无法准确识别出目标二维码。
具体地,电子设备在识别目标二维码的过程中可识别目标二维码的第一特征点,该第一特征点可对应为目标二维码中定位图案的中心模块。其中,目标二维码可包括三个分别置于顶点处的定位图案,每个定位图案可包括多个按照预设顺序排列的第一模块以及第二模块,该第一模块以及第二模块可组成正方形图案、包裹在该正方形图案边缘外侧的呈回字结构的第一图案以及包裹在该第一图案边缘外侧的呈回字结构的第二图案,且第一模块与第二模块的大小相同、颜色不同。此处以第一模块对应为黑色,第二模块对应为白色为例,正方形图案可由边长为三个模块边长的多个黑色模块组成,呈回字结构的第一图案可由宽度为一个模块边长的多个白色模块组成,呈回字结构的第二图案可由宽度为一个模块边长的多个黑色模块组成。
可以理解的是,电子设备可根据正方形图案对应的第一模块边长与第一图案对应的第二模块宽度以及第二图案对应的第一模块宽度的比例确定定位图案的位置,也即是说当电子设备识别出目标二维码的某处图案中相邻第一模块个数与相邻第二模块个数交替排列的比例为1:1:3:1:1时,可确定该图案为定位图案,并可根据该定位图案将中心模块确定为第一特征点。当然,该第一特征点也可理解为上述正方形图案的中心模块,即电子设备在识别出目标二维码的某处图案中第一模块边长与相邻的第二模块边长交替排列的比例为1:1:3:1:1时,可根据比例中3对应的图案的中心模块确定第一特征点。
进一步的,电子设备在识别出第一特征点之后,可根据该第一特征点确定目标二维码中的特征图案。其中,特征图案可由多个交替排列的第一模块以及第二模块组成,且该特征图案的宽度为一个第一模块或者一个第二模块的边长。此处以第一模块对应为黑色,第二模块对应为白色为例,特征图案可表示为宽度为一个模块的黑模块与白模块相间交替图案。可以理解的是,在二维码中特征图案的位置处于相邻的定位图案之间,基于此可根据相邻的处于定位图案的中心模块的两个第一特征点确定特征图案。
步骤304、根据特征图案确定目标二维码的版本以及模块大小。
具体地,电子设备在确定特征图案之后,可统计出该特征图案对应的模块个数,并结合定位图案边长对应的模块个数可确定目标二维码的版本。其中,参照图1中的1B示出的特征结构示意图可看出二维码的边长可为特征图案对应的模块个数与两个定位图案边长对应的模块个数之和,且每个定位图案边长对应的模块个数固定为7,此处当特征图案对应的模块个数用A表示时,目标二维码边长的模块个数用B表示可参阅下式(1)得到:
B=A+7×2=A+14 (1)
当得到目标二维码边长的模块个数之后,目标二维码的版本用V表示可参阅下式(2)得到:
B=4×V+17 (2)
例如当目标二维码边长的模块个数为25时,通过公式(2)可得到目标二维码的版本为2。此处需要说明的是,二维码可共包括41种版本,可依次用1、2、3、4...进行表示,每一个版本的二维码边长对应的模块个数不同,可以理解的是,当二维码边长对应的模块个数越大,其所存储的编码信息越多。
当电子设备统计出特征图案对应的模块个数之后,还可根据对该特征图案识别的像素点个数以及特征图案对应的模块个数计算出每个模块的模块大小,该模块大小可由像素点个数表示。其中,特征图案的像素点个数可为特征图案对应的多个模块同一边长的总像素点个数。此处以识别出的特征图案的像素点个数用M表示,特征图案对应的模块个数用A表示,每个模块的模块大小用C表示可参阅下式(3)得到:
C=M/A (3)
可以理解的是,特征图案是由多个交替排列的第一模块以及第二模块组成,目标二维码也是由多个第一模块以及第二模块组成,每个第一模块与第二模块的大小相同,当计算出特征图案对应的每个模块的模块大小时,也即相当于得到目标二维码中每个模块的模块大小。
步骤306、基于目标二维码的版本以及模块大小对目标二维码进行识别。
具体地,电子设备在得到目标二维码的版本以及模块大小之后,可根据该目标二维码的版本以及模块大小对目标二维码进行模板定位以及二进制采样,通过将目标二维码中的编码解析为具有数据信息的字符串的方式实现对目标二维码的识别。当电子设备对目标二维码识别成功之后,电子设备的界面可展示对应于字符串的展示界面,例如以目标二维码为支付二维码为例,电子设备在对支付二维码识别成功之后可显示相应的支付界面。
需要说明的是,本实施例提供的二维码识别方法可直接应用在对目标二维码的识别过程中,也可在应用其他二维码识别方法对目标二维码识别失败之后再对目标二维码进行识别。
此处提到的其他二维码识别方法可结合图4示出的本说明书实施例提供的又一种二维码的特征结构示意图作进一步解释说明。
具体地,电子设备可识别目标二维码的第一特征点,该第一特征点对应为目标二维码中定位图案的中心模块。其中,目标二维码可包括三个分别置于顶点处的定位图案,每个定位图案可包括多个按照预设顺序排列的第一模块以及第二模块,该第一模块以及第二模块可组成正方形图案、包裹在该正方形图案边缘外侧的呈回字结构的第一图案以及包裹在该第一图案边缘外侧的呈回字结构的第二图案,且第一模块与第二模块的大小相同、颜色不同。此处以第一模块对应为黑色,第二模块对应为白色为例,正方形图案可由边长为三个模块边长的多个黑色模块组成,呈回字结构的第一图案可由宽度为一个模块边长的多个白色模块组成,呈回字结构的第二图案可由宽度为一个模块边长的多个黑色模块组成。
可以理解的是,电子设备可根据正方形图案对应的第一模块边长与第一图案对应的第二模块宽度以及第二图案对应的第一模块宽度的比例确定定位图案的位置,也即是说当电子设备识别出目标二维码的某处图案中相邻第一模块个数与相邻第二模块个数交替排列的比例为1:1:3:1:1时,可确定该图案为定位图案,并可根据该定位图案将中心模块确定第一特征点。当然,该第一特征点也可理解为对应上述正方形图案的中心模块,即电子设备在识别出目标二维码的某处图案中第一模块边长与相邻的第二模块边长交替排列的比例为1:1:3:1:1时,可根据比例中3对应的图案的中心模块中心点确定第一特征点。
进一步的,此处的其他二维码识别方法在确定第一特征点之后,可利用定位图案边长的模块个数计算出每个模块的大小。具体地,电子设备可根据第一特征点确定该第一特征点到定位图案边缘的模块个数,并根据第一特征点到定位图案边缘的像素点个数以及该第一特征点到定位图案边缘的模块个数计算出每个模块的大小。以图4示出的二维码的特征结构图为例,特征点4a可表示为二维码中一个顶点处的定位图案中处于中心模块中心点的第一特征点,特征点4b为定位图案边缘的中心点,该特征点4a到特征点4b之间的距离等于3.5个模块的边长,基于此电子设备可根据识别出的特征点4a与特征点4b之间的像素点个数以及特征点4a与特征点4b之间的模块个数(固定为3.5)计算出每个模块的模块大小,其计算方式可参阅上述公式(3)。
进一步的,电子设备在计算出每个模块的模块大小之后,还可根据上述确定的第一特征点以及该每个模块的模块大小确定目标二维码的版本。具体地,电子设备可识别出相邻的两个第一特征点之间的像素点个数,并根据每个模块的模块大小得到相邻的两个第一特征点之间的模块个数,再结合定位图案边长的模块个数得到目标二维码边长的模块个数。此处以相邻的两个第一特征点之间的像素点个数用D表示,每个模块的模块大小用C表示,则目标二维码边长的模块个数用B表示可参阅下式(4)得到:
B=D/C+7 (4)
其中,公式(4)可参阅图4示出的二维码的特征结构图进行说明。在图4示出的二维码的特征结构图中,特征点4a可表示为二维码中一个顶点处的定位图案中处于中心模块中心点的第一特征点,特征点4c为可表示为二维码中另一个相邻顶点处的定位图案中处于中心模块中心点的第一特征点,电子设备可识别出特征点4a与特征点4c之间的像素点个数(也即是公式(4)中的D),并可结合上述的每个模块的模块大小得到特征点4a与特征点4c之间的模块个数。可以理解的是,特征点4a到目标二维码边缘的距离为3.5个模块的边长,特征点4c到目标二维码边缘的距离也为3.5个模块的边长,由于目标二维码边长的模块个数等于特征点4a到目标二维码边缘的距离、特征点4a与特征点4c之间的模块个数以及特征点4c到目标二维码边缘的距离之和,基于此可推导出上述公式(4)。
还可以理解的是,由于目标二维码包括三个定位图案,也即对应有三个第一特征点,本实施例可不局限于根据上述在图4中确定的特征点4a与特征点4c得到目标二维码边长的模块个数,例如还可根据图4中特征点4a以及与特征点4a处于同一水平线上的另一定位图案中的特征点得到目标二维码边长的模块个数,本实施例不限定于此。
进一步的,电子设备在得到目标二维码的版本以及模块大小之后,可根据该目标二维码的版本以及模块大小对目标二维码进行模板定位以及二进制采样,通过将目标二维码中的编码解析为具有数据信息的字符串的方式实现对目标二维码的识别。
但需要说明的是,上述提到的其他二维码识别方法抗计算偏差的鲁棒性不强,当目标二维码存在畸变或是污损时,得到二维码的版本可能不准确,进而无法保障二维码的识别准确性。在当提到的其他二维码识别方法无法识别出目标二维码时,可根据本说明书实施例提供的二维码识别方法进行准确识别。
在本说明书实施例中,电子设备可根据第一特征点确定包括多个交替排列的第一模块以及第二模块的特征图案,基于该特征图案的固定模块排列方式可提高计算目标二维码的版本以及模块大小的准确性,进而保障了识别目标二维码的准确性。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
作为本说明书的又一个实施例,请参阅图5示出的本说明书实施例提供的又一种二维码识别方法的流程示意图。
如图5所示,该二维码识别方法具体可包括以下步骤:
步骤502、识别目标二维码的第一特征点,并确定任意两个相邻的第一特征点之间的连线。
具体地,电子设备在识别目标二维码的过程中可识别目标二维码的第一特征点,该第一特征点可对应为目标二维码中定位图案的中心模块。其中,目标二维码可包括三个分别置于顶点处的定位图案,每个定位图案可包括多个按照预设顺序排列的第一模块以及第二模块,该第一模块以及第二模块可组成正方形图案、包裹在该正方形图案边缘外侧的呈回字结构的第一图案以及包裹在该第一图案边缘外侧的呈回字结构的第二图案,且第一模块与第二模块的大小相同、颜色不同。此处以第一模块对应为黑色,第二模块对应为白色为例,正方形图案可由边长为三个模块边长的多个黑色模块组成,呈回字结构的第一图案可由宽度为一个模块边长的多个白色模块组成,呈回字结构的第二图案可由宽度为一个模块边长的多个黑色模块组成。
可以理解的是,电子设备可根据正方形图案对应的第一模块边长与第一图案对应的第二模块宽度以及第二图案对应的第一模块宽度的比例确定定位图案的位置,也即是说当电子设备识别出目标二维码的某处图案中相邻第一模块个数与相邻第二模块个数交替排列的比例为1:1:3:1:1时,可确定该图案为定位图案,并可根据该定位图案将中心模块确定为第一特征点。当然,该第一特征点也可理解为上述正方形图案的中心模块,即电子设备在识别出目标二维码的某处图案中第一模块边长与相邻的第二模块边长交替排列的比例为1:1:3:1:1时,可根据比例中3对应的图案的中心模块确定第一特征点。
进一步的,电子设备在识别出第一特征点之后,可将任意两个相邻的第一特征点进行连接得到两个连线。其中,任意两个相邻的第一特征点所对应的定位图案处于目标二维码中相邻的顶点处,也可以理解为处于对角顶点处的两个第一特征点不为相邻关系。具体地,此处可参阅图6示出的本说明书实施例提供的又一种二维码的特征结构示意图进行说明。
如图6所示,该二维码的特征结构示意图中特征点6a可表示为二维码中一个顶点处的定位图案中处于中心模块中心点的第一特征点,特征点6b可表示为二维码中另一个相邻顶点处的定位图案中处于中心模块中心点的第一特征点,将特征点6a与特征点6b进行连接得到的连线即是任意两个相邻的第一特征点之间的连线。可以理解的是,与特征点6a处于同一水平线上的另一相邻顶点处的定位图案中的第一特征点在图6中并未标识,其与特征点6a进行连接得到的连线即是另一个任意两个相邻的第一特征点之间的连线,此处不过多赘述。
步骤504、根据任意两个相邻的第一特征点之间的连线以及与任意两个相邻的第一特征点各自对应的定位图案确定第二特征点。
具体地,电子设备在确定任意两个相邻的第一特征点的连线之后,可根据连线与该两个相邻的第一特征点各自对应的定位图案边缘的相交处所在模块确定第二特征点。此处可参阅图6示出的二维码的特征结构示意图,其中特征点6a可表示为二维码中一个顶点处的定位图案中处于中心模块中心点的第一特征点,特征点6b可表示为二维码中另一个相邻顶点处的定位图案中处于中心模块中心点的第一特征点,将特征点6a与特征点6b进行连接得到的连线即是任意两个相邻的第一特征点之间的连线,且该连线与特征点6a对应的定位图案边缘相交处所在模块的中心点6c即为该定位图案的一个第二特征点,该连线与特征点6b对应的定位图案边缘相交处所在模块的中心点6d即为该定位图案的一个第二特征点。
当然,目标二维码中每个定位图案可不局限于包括一个第二特征点,此处还可参阅6示出的二维码的特征结构示意图,其中与特征点6a处于同一水平线上的另一相邻顶点处的定位图案中的第一特征点在图6中并未标识,其与特征点6a进行连接得到的连线即是另一个任意两个相邻的第一特征点之间的连线。该连线与特征点6a对应的定位图案边缘可确定有第二特征点,也即是说特征点6a对应的定位图案可包括两个第二特征点。
步骤506、根据第二特征点确定第三特征点。
具体地,电子设备在根据任意两个相邻的第一特征点之间的连线以及与任意两个相邻的第一特征点各自对应的定位图案确定第二特征点之后,还可基于该第二特征点确定处于定位图案与目标二维码的中心距离最小的第三特征点。其中,目标二维码的中心可根据第一特征点确定,例如在目标二维码相邻的三个顶点对应的定位图案中确定各自的第一特征点之后,可根据该三个第一特征点构建正方形,并由该正方形对角连线的交点确定出目标二维码的中心。可以理解的是,以定位图案包括左上顶点、左下顶点、右上顶点以及右下顶点为例,当第一特征点对应的定位图案处于目标二维码的左上顶点时,该定位图案的第三特征点可对应为处于该定位图案的右下顶点模块的中心点。当第一特征点对应的定位图案处于目标二维码的左下顶点时,该定位图案的第三特征点可对应为处于该定位图案的右上顶点模块的中心点。
此处还可参阅图6示出的二维码的特征结构示意图,其中特征点6a可表示为二维码中一个顶点处的定位图案中的第一特征点,特征点6b可表示为二维码中另一个相邻顶点处的定位图案中的第一特征点,将特征点6a与特征点6b进行连接得到的连线即是任意两个相邻的第一特征点之间的连线,且该连线与特征点6a对应的定位图案边缘相交处所在模块的中心点6c即为该定位图案的一个第二特征点,该连线与特征点6b对应的定位图案边缘相交处所在模块的中心点6d即为该定位图案的一个第二特征点。进一步的,可根据中心点6c确定该中心点6c所在定位图案边缘的两个顶点模块,并结合与中心点6c对应的定位图案处于目标二维码的左上顶点处,可确定该中心点6c所在定位图案边缘的两个顶点模块中靠近目标二维码的顶点模块的中心点6e为与中心点6c对应的定位图案的第三特征点。同样的,可根据中心点6d确定该中心点6d所在定位图案边缘的两个顶点模块,并结合与中心点6d对应的定位图案处于目标二维码的左上顶点处,可确定该中心点6d所在定位图案边缘的两个顶点模块中靠近目标二维码的顶点模块的中心点6f为与中心点6d对应的定位图案的第三特征点。
步骤508、将任意两个相邻的第三特征点之间的连线对应的模块作为特征图案。
具体地,电子设备在确定目标二维码中每个定位图案对应的第三个特征点之后,可将任意两个相邻的第三特征点各自对应的模块之间的连线所对应的模块作为特征图案。其中,第三特征点对应的模块可理解为第三特征点在定位图案所处的顶点对应的顶点模块。可以理解的是,特征图案为多个交替排列的第一模块以及第二模块组成,其在二维码中的位置相对固定,基于此可根据任意两个相邻的第三特征点对应的模块来确定目标二维码中的两个特征图案。
此处还可参阅图6示出的二维码的特征结构示意图,其中特征点6a可表示为二维码中一个顶点处的定位图案中的第一特征点,特征点6b可表示为二维码中另一个相邻顶点处的定位图案中的第一特征点,特征点6a与特征点6b进行连接得到的连线即是任意两个相邻的第一特征点之间的连线,且该连线与特征点6a对应的定位图案边缘相交处所在模块的中心点6c即为该定位图案的一个第二特征点,该连线与特征点6b对应的定位图案边缘相交处所在模块的中心点6d即为该定位图案的一个第二特征点。中心点6c所在定位图案边缘的两个顶点模块中靠近目标二维码的顶点模块的中心点6e对应为该定位图案的第三特征点,中心点6d所在定位图案边缘的两个顶点模块中靠近目标二维码的顶点模块的中心点6f对应为该定位图案的第三特征点。进一步的,中心点6e与中心点6f之间的连线所围成的图案6g即为二维码的一个特征图案,且该特征图案是由多个交替排列的第一模块以及第二模块组成。
当然,本说明书实施例可不局限于上述确定特征图案的方式,例如还可根据相邻的两个第二特征点所对应的模块确定特征区域,该特征区域可理解为该两个模块各自对应的顶点之间的连线与该两个模块边缘所围成的区域,并可将该特征区域向目标二维码的中心方向平移,直至该两个模块与各自对应的定位图案的顶点模块重合,此时特征区域所围成的多个模块即可组成特征图案。
步骤510、根据特征图案确定目标二维码的版本以及模块大小。
具体地,步骤510与步骤304一致,此处不过多赘述。
步骤512、基于目标二维码的版本以及模块大小对目标二维码进行识别。
具体地,步骤512与步骤306一致,此处不过多赘述。
在本说明书实施例中,电子设备可通过定位图案的第一特征点先确定处于定位图案边缘中心的第二特征点,再根据第二特征点确定处于定位图案顶点的第三特征点,并可根据第三特征点对应的模块确定出目标二维码的特征图案,进而可根据定位图案计算出目标二维码的版本以及模块大小。由于特征图案为规则排列的多个模块组成,不易受到二维码自身的畸变、污损等影响,在对该特征图案识别时计算出的模块个数以及模块大小准确定更高,进而保障识别的二维码的准确性。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
作为本说明书的又一个实施例,请参阅图7示出的本说明书实施例提供的又一种二维码识别方法的流程示意图。
如图7所示,该二维码识别方法具体可包括以下步骤:
步骤702、识别目标二维码的第一特征点,并根据第一特征点确定特征图案。
具体地,步骤702与步骤302一致,此处不过多赘述。
步骤704、根据每个特征图案的模块颜色分布情况统计对应于每个特征图案在长度方向上的模块个数,并根据特征图案在长度方向上的模块个数以及定位图案在长度方向上的模块个数确定目标二维码的版本。
具体地,电子设备在确定目标二维码的特征图案之后,可根据特征图案的模块颜色分布情况统计对应于该特征图案在长度方向上的模块个数。其中,由上述实施例可知特征图案包括多个交替排列的第一模块以及第二模块,第一模块与第二模块的大小相同,且第一模块与第二模块对应的颜色不同,也即是说可在基于颜色区分第一模块以及第二模块的情况下统计第一模块与第二模块总的模块个数。可以理解的是,以第一模块可表示为黑色,第二模块可表示为白色为例,特征图案又可看作为黑白相间的图案,且每个第一模块可包括有相同个数的黑色像素点,每个第二模块可包括有相同个数的白色像素点,电子设备可在确定出特征图案之后,沿着特征图案的长度方向根据黑色像素点以及白色像素点确定该特征图案的模块个数。
此处可参阅图8示出的本说明书实施例提供的一种特征图案的模块个数示意图。如图8所示,图8中的8a可表示为目标二维码中确定的特征图案,其中第一模块可表示为黑色,第二模块可表示为白色。电子设备可通过识别特征图案在长度方向上连续颜色的像素点来确定模块个数,例如以图8中的8a示出的特征图案中第一个白色模块为例,电子设备可识别出在连续七个白色像素点之后出现连续的黑色像素点,此时可确定该连续七个白色像素点可对应为一个白色模块。同样的,当电子设备识别出在连续多个黑色像素点之后出现连续的白色像素点时,可确定该连续多个黑色像素点可对应为一个黑色模块。可以理解的是,当电子设备确定出每个模块时,可通过标记该模块内任意一个像素点的方式来表示该模块,例如图8中的8b示出的特征图案对应的模块个数示意图,其中每个模块均可由一个处于各自模块内的像素点进行标记。当然,电子设备在标记每个模块的像素点时,也可按照预设的方式选取模块中的标记像素点,例如但不局限于图8中的8c示出的一个模块中可包括有七个像素点,电子设备可将该七个像素点的中心像素点作为标记像素点。
进一步的,电子设备在统计出特征图案所包括的模块个数之后,可结合定位图案在长度方向上的模块个数确定目标二维码的版本。参照上述实施例可知目标二维码的版本与目标二维码边长对应的模块个数相关,即在统计出特征图案所包括的模块个数之后,可先通过与两个定位图案边长对应的模块个数相加得到目标二维码边长对应的模块个数(具体可参阅上述公式(1)得到),再结合上述公式(2)计算出目标二维码的版本。
步骤706、获取特征图案在长度方向上的像素点个数,并根据特征图案在长度方向上的像素点个数以及特征图案在长度方向上的模块个数计算得到模块大小。
具体地,电子设备在统计出特征图案在长度方向上的模块个数之后,可结合识别出的特征图案在长度方向上的像素点个数得到特征图案中每个模块的模块大小,该计算方式可参阅上述公式(3)。可以理解的是,电子设备在统计特征图案在长度方向上的模块个数的过程中,可在标记每个模块对应的像素点时统计每个模块包括的像素点个数,并将每个模块统计的像素点个数相加得到该特征图案在长度方向上的像素点个数。
步骤708、基于目标二维码的版本以及模块大小对目标二维码进行识别。
具体地,步骤708与步骤512、步骤306一致,此处不过多赘述。
作为本说明书的一个可选实施例,根据每个特征图案的模块颜色分布情况统计对应于每个特征图案在长度方向上的模块个数之后,根据特征图案在长度方向上的模块个数以及定位图案在长度方向上的模块个数确定目标二维码的版本之前,还包括:
计算每个模块在长度方向上的像素点个数的平均值,并根据平均值确定像素点阈值区间;
确定每个模块在长度方向上的像素点是否属于像素点阈值区间;
将属于像素点阈值区间的模块的个数作为特征图案的模块个数。
当目标二维码的特征图案处存在污损时,电子设备在对目标二维码识别的过程中无法过滤该污损对应的像素点,进而易导致电子设备统计出的特征图案在长度方向上的模块个数不准确。
具体地,电子设备在对特征图案在长度方向上的每个模块进行像素点标记之后,为降低污损对目标二维码识别的准确性影响,可根据统计的每个模块包括的像素点个数计算出平均值,并根据该平均值确定每个模块所包括的像素点个数的正常阈值区间。此处以特征图案包括五个模块为例,每个模块由电子设备所统计的像素点个数可分别表示为A1、A2、A3、A4以及A5,其对应的像素点平均值
Figure BDA0003364273530000141
可通过下式(5)得到:
Figure BDA0003364273530000142
在得到像素点平均值
Figure BDA0003364273530000143
之后,可根据预设像素点误差个数确定出正常阈值区间,例如以预设像素点误差比例为10%为例,该正常阈值区间可表示为:
Figure BDA0003364273530000144
进一步的,电子设备在得到像素点的正常阈值区间之后,可判断每个模块包括的像素点个数是否处于该正常阈值区间。可以理解的是,当某个模块存在污损时,该污损可对应为一个或多个相同颜色的污损像素点,电子设备识别出该带有污损的模块的个数不为1。此处可参阅图9示出的本说明书实施例提供的又一种特征图案的模块个数示意图。如图9所示,该特征图案的模块个数示意图示出了一个存在污损的白色模块,该污损可对应为三个黑色的污损像素点,电子设备在识别到该白色模块时先识别出连续三个白色像素点,并在识别到第一个黑色像素点时确定该连续三个白色像素点作为一个模块。当电子设备识别出连续三个黑色像素点之后出现白色像素点时,可将该连续三个黑色像素点作为一个模块。当电子设备识别出处于连续三个黑色像素点之后的连续三个白色像素点后面出现黑色像素点时,可将该处于连续三个黑色像素点之后的连续三个白色像素点作为一个模块。也即是说,图9示出的一个存在污损的白色模块在电子设备识别的过程中被统计为三个模块。
可能的,当模块包括的像素点个数处于正常阈值区间时,可表明电子设备当前识别出的该模块为正常模块,并可将所有像素点个数均处于正常阈值区间的模块个数之和作为特征图案的模块个数。
可能的,当模块包括的像素点个数不处于正常阈值区间时,可表明电子设备当前识别出的该模块不为正常模块,并不将该像素点个数不处于正常阈值区间的模块统计为特征图案的模块个数。
作为本说明书的又一可选实施例,根据特征图案在长度方向上的模块个数以及定位图案在长度方向上的模块个数确定目标二维码的版本,包括:
计算两个特征图案在长度方向上的模块个数的平均值;
根据两个特征图案在长度方向上的模块个数的平均值以及定位图案在长度方向上的模块个数确定目标模块个数;
根据目标模块个数确定目标二维码的版本。
电子设备在对目标二维码进行扫描的过程中,可能因扫描的角度倾斜,导致扫描的目标二维码中两个特征图案各自对应的模块个数或者像素点数量不一致。
具体地,为保障目标二维码中两个特征图案的一致性,电子设备可在统计出每个特征图案在长度方向上的模块个数之后,计算两个特征图案在长度方向上的模块个数的平均值,通过平均值来共同表示每个特征图案的模块个数。进一步的,电子设备可根据该特征图案在长度方向上的模块个数的平均值得到目标二维码边长的模块个数以及相应的目标二维码的版本。
当然,本说明书实施例在根据特征图案在长度方向上的像素点个数以及特征图案在长度方向上的模块个数计算得到模块大小时,也可以但不局限于先计算两个特征图案在长度方向上的像素点个数的平均值,再基于该像素点个数的平均值以及模块个数的平均值计算得到模块大小。
在本说明书实施例中,电子设备可根据统计出的特征图案在长度方向上的像素点个数以及模块个数确定目标二维码边长的模块个数以及模块大小,其计算方式可不受目标二维码的倾斜影响,进而通过准确计算出的目标二维码边长的模块个数以及模块大小保障目标二维码的识别准确性以及识别效率。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
需要说明的是,上述多个实施例在得到目标二维码的模块个数之后,根据该目标二维码的模块个数计算出的目标二维码的版本不为整数,进而影响对目标二维码的版本的判断。本说明书多个实施例可在得到目标二维码的模块个数之后,根据该目标二维码的模块个数确定目标模块个数,例如但不局限于当目标二维码的模块个数为22时,由于目标二维码的版本为1时对应的模块个数为21,目标二维码的版本为2时对应的模块个数为25,基于此可确定该目标二维码的目标模块个数为21,并进一步可计算出目标二维码的版本为1。
可以理解的是,本说明书多个实施例在得到目标二维码的模块个数之后,还可根据该目标二维码的模块个数确定目标二维码的初始版本,并基于该目标二维码的初始版本确定目标二维码的目标版本。例如当目标二维码的初始版本为2.3时,可根据四舍五入原则确定目标二维码的目标版本为2,本说明书实施例不限定于此。
请参阅图10示出的本说明书实施例提供的一种二维码识别装置的结构示意图。
如图10所示,该二维码识别装置至少可以包括第一处理模块1001、第二处理模块1002以及识别模块1003,其中:
第一处理模块1001,用于识别目标二维码的第一特征点,并根据第一特征点确定特征图案;其中,特征图案包括多个交替排列的第一模块以及第二模块,第一模块与第二模块的大小相同,第一模块与第二模块对应的颜色不同,第一特征点对应为定位图案的中心模块,定位图案包括多个按照预设顺序排列的第一模块以及第二模块;
第二处理模块1002,用于根据特征图案确定目标二维码的版本以及模块大小;
识别模块1003,用于基于目标二维码的版本以及模块大小对目标二维码进行识别。
在一些可能的实施例中,第一特征点的个数为三个,任意两个相邻的第一特征点各自对应的定位图案分别处于目标二维码的相邻顶点处;
第一处理模块1001,具体包括:
第一处理单元,用于识别目标二维码的第一特征点,并确定任意两个相邻的第一特征点之间的连线;
第二处理单元,用于根据任意两个相邻的第一特征点之间的连线以及与任意两个相邻的第一特征点各自对应的定位图案确定第二特征点;其中,第二特征点对应为定位图案的边缘与任意两个相邻的第一特征点之间的连线交点的模块;
第三处理单元,用于根据第二特征点确定特征图案。
在一些可能的实施例中,第三处理单元具体用于:
根据第二特征点确定第三特征点;其中,第三特征点对应为定位图案与目标二维码的中心距离最小的顶点模块;
将两个第三特征点之间的连线对应的模块作为特征图案;其中,特征图案的个数为两个。
在一些可能的实施例中,第二处理模块1002,具体包括:
第一计算单元,用于根据每个特征图案的模块颜色分布情况统计对应于每个特征图案在长度方向上的模块个数,并根据特征图案在长度方向上的模块个数以及定位图案在长度方向上的模块个数确定目标二维码的版本;
第二计算单元,用于获取特征图案在长度方向上的像素点个数,并根据特征图案在长度方向上的像素点个数以及特征图案在长度方向上的模块个数计算得到模块大小。
在一些可能的实施例中,第二处理模块1002在根据每个特征图案的模块颜色分布情况统计对应于每个特征图案在长度方向上的模块个数之后,根据特征图案在长度方向上的模块个数以及定位图案在长度方向上的模块个数确定目标二维码的版本之前,还包括:
第四处理单元,用于计算每个模块在长度方向上的像素点个数的平均值,并根据平均值确定像素点阈值区间;
第五处理单元,用于确定每个模块在长度方向上的像素点是否属于像素点阈值区间;
第三计算单元,用于将属于像素点阈值区间的模块的个数作为特征图案的模块个数。
在一些可能的实施例中,第二计算单元具体用于:
计算两个特征图案在长度方向上的模块个数的平均值;
根据两个特征图案在长度方向上的模块个数的平均值以及定位图案在长度方向上的模块个数确定目标二维码的版本。
在一些可能的实施例中,第二计算单元具体还用于:
根据两个特征图案在长度方向上的模块个数的平均值以及定位图案在长度方向上的模块个数确定目标模块个数;
根据目标模块个数确定目标二维码的版本。
请参阅图11示出的本说明书实施例提供的一种电子设备的结构示意图。
如图11所示,该电子设备1100可以包括:至少一个处理器1101、至少一个网络接口1104、用户接口1103、存储器1105以及至少一个通信总线1102。
其中,通信总线1102可用于实现上述各个组件的连接通信。
其中,用户接口1103可以包括按键,可选用户接口还可以包括标准的有线接口、无线接口。
其中,网络接口1104可以但不局限于包括蓝牙模块、NFC模块、Wi-Fi模块等。
其中,处理器1101可以包括一个或者多个处理核心。处理器1101利用各种接口和线路连接整个电子设备1100内的各个部分,通过运行或执行存储在存储器1105内的指令、程序、代码集或指令集,以及调用存储在存储器1105内的数据,执行路由设备1100的各种功能和处理数据。可选的,处理器1101可以采用DSP、FPGA、PLA中的至少一种硬件形式来实现。处理器1101可集成CPU、GPU和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1101中,单独通过一块芯片进行实现。
其中,存储器1105可以包括RAM,也可以包括ROM。可选的,该存储器1105包括非瞬时性计算机可读介质。存储器1105可用于存储指令、程序、代码、代码集或指令集。存储器1105可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器1105可选的还可以是至少一个位于远离前述处理器1101的存储装置。如图11所示,作为一种计算机存储介质的存储器1105中可以包括操作系统、网络通信模块、用户接口模块以及二维码识别应用程序。
具体地,处理器1101可以用于调用存储器1105中存储的二维码识别应用程序,并具体执行以下操作:
识别目标二维码的第一特征点,并根据第一特征点确定特征图案;其中,特征图案包括多个交替排列的第一模块以及第二模块,第一模块与第二模块的大小相同,第一模块与第二模块对应的颜色不同,第一特征点对应为定位图案的中心模块,定位图案包括多个按照预设顺序排列的第一模块以及第二模块;
根据特征图案确定目标二维码的版本以及模块大小;
基于目标二维码的版本以及模块大小对目标二维码进行识别。
在一些可能的实施例中,第一特征点的个数为三个,任意两个相邻的第一特征点各自对应的定位图案分别处于目标二维码的相邻顶点处;
处理器1101识别目标二维码的第一特征点,并根据第一特征点确定特征图案时,用于执行:
识别目标二维码的第一特征点,并确定任意两个相邻的第一特征点之间的连线;
根据任意两个相邻的第一特征点之间的连线以及与任意两个相邻的第一特征点各自对应的定位图案确定第二特征点;其中,第二特征点对应为定位图案的边缘与任意两个相邻的第一特征点之间的连线交点的模块;
根据第二特征点确定特征图案。
在一些可能的实施例中,处理器1101根据第二特征点确定特征图案时,用于执行:
根据第二特征点确定第三特征点;其中,第三特征点对应为定位图案与目标二维码的中心距离最小的顶点模块;
将任意两个相邻的第三特征点之间的连线对应的模块作为特征图案;其中,特征图案的个数为两个。
在一些可能的实施例中,处理器1101根据特征图案确定目标二维码的版本以及模块大小时,用于执行:
根据每个特征图案的模块颜色分布情况统计对应于每个特征图案在长度方向上的模块个数,并根据特征图案在长度方向上的模块个数以及定位图案在长度方向上的模块个数确定目标二维码的版本;
获取特征图案在长度方向上的像素点个数,并根据特征图案在长度方向上的像素点个数以及特征图案在长度方向上的模块个数计算得到模块大小。
在一些可能的实施例中,处理器1101在根据每个特征图案的模块颜色分布情况统计对应于每个特征图案在长度方向上的模块个数之后,根据特征图案在长度方向上的模块个数以及定位图案在长度方向上的模块个数确定目标二维码的版本之前,还用于执行:
计算每个模块在长度方向上的像素点个数的平均值,并根据平均值确定像素点阈值区间;
确定每个模块在长度方向上的像素点是否属于像素点阈值区间;
将属于像素点阈值区间的模块的个数作为特征图案的模块个数。
在一些可能的实施例中,处理器1101根据特征图案在长度方向上的模块个数以及定位图案在长度方向上的模块个数确定目标二维码的版本时,用于执行:
计算两个特征图案在长度方向上的模块个数的平均值;
根据两个特征图案在长度方向上的模块个数的平均值以及定位图案在长度方向上的模块个数确定目标二维码的版本。
在一些可能的实施例中,处理器1101根据两个特征图案在长度方向上的模块个数的平均值以及定位图案在长度方向上的模块个数确定目标二维码的版本时,用于执行:
根据两个特征图案在长度方向上的模块个数的平均值以及定位图案在长度方向上的模块个数确定目标模块个数;
根据目标模块个数确定目标二维码的版本。
本说明书实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机或处理器上运行时,使得计算机或处理器执行上述图3或图5或图7或图9所示实施例中的一个或多个步骤。上述电子设备的各组成模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在所述计算机可读取存储介质中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本说明书实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DigitalSubscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字多功能光盘(DigitalVersatile Disc,DVD))、或者半导体介质(例如,固态硬盘(Solid State Disk,SSD))等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可存储程序代码的介质。在不冲突的情况下,本实施例和实施方案中的技术特征可以任意组合。
以上所述的实施例仅仅是本说明书的优选实施例方式进行描述,并非对本说明书的范围进行限定,在不脱离本说明书的设计精神的前提下,本领域普通技术人员对本说明书的技术方案作出的各种变形及改进,均应落入本说明书的权利要求书确定的保护范围内。

Claims (16)

1.一种二维码识别方法,包括:
识别目标二维码的第一特征点,并根据所述第一特征点确定特征图案;其中,所述特征图案包括多个交替排列的第一模块以及第二模块,所述第一模块与所述第二模块的大小相同,所述第一模块与所述第二模块对应的颜色不同,所述第一特征点对应为定位图案的中心模块,所述定位图案包括多个按照预设顺序排列的第一模块以及第二模块;
根据所述特征图案确定所述目标二维码的版本以及模块大小;
基于所述目标二维码的版本以及模块大小对所述目标二维码进行识别。
2.根据权利要求1所述的方法,所述第一特征点的个数为三个,任意两个相邻的所述第一特征点各自对应的所述定位图案分别处于所述目标二维码的相邻顶点处;
所述识别目标二维码的第一特征点,并根据所述第一特征点确定特征图案,包括:
识别目标二维码的第一特征点,并确定任意两个相邻的所述第一特征点之间的连线;
根据所述任意两个相邻的所述第一特征点之间的连线以及与所述任意两个相邻的所述第一特征点各自对应的所述定位图案确定第二特征点;其中,所述第二特征点对应为所述定位图案的边缘与所述任意两个相邻的所述第一特征点之间的连线交点的模块;
根据所述第二特征点确定特征图案。
3.根据权利要求2所述的方法,所述根据所述第二特征点确定特征图案,包括:
根据所述第二特征点确定第三特征点;其中,所述第三特征点对应为所述定位图案与所述目标二维码的中心距离最小的顶点模块;
将任意两个相邻的所述第三特征点之间的连线对应的模块作为特征图案;其中,所述特征图案的个数为两个。
4.根据权利要求1-3任一项所述的方法,所述根据所述特征图案确定所述目标二维码的版本以及模块大小,包括:
根据每个所述特征图案的模块颜色分布情况统计对应于每个所述特征图案在长度方向上的模块个数,并根据所述特征图案在长度方向上的模块个数以及所述定位图案在长度方向上的模块个数确定所述目标二维码的版本;
获取所述特征图案在长度方向上的像素点个数,并根据所述特征图案在长度方向上的像素点个数以及所述特征图案在长度方向上的模块个数计算得到模块大小。
5.根据权利要求4所述的方法,所述根据每个所述特征图案的模块颜色分布情况统计对应于每个所述特征图案在长度方向上的模块个数之后,所述根据所述特征图案在长度方向上的模块个数以及所述定位图案在长度方向上的模块个数确定所述目标二维码的版本之前,还包括:
计算每个所述模块在长度方向上的像素点个数的平均值,并根据所述平均值确定像素点阈值区间;
确定每个所述模块在长度方向上的像素点是否属于所述像素点阈值区间;
将属于所述像素点阈值区间的所述模块的个数作为所述特征图案的模块个数。
6.根据权利要求5所述的方法,所述根据所述特征图案在长度方向上的模块个数以及所述定位图案在长度方向上的模块个数确定所述目标二维码的版本,包括:
计算两个所述特征图案在长度方向上的模块个数的平均值;
根据所述两个所述特征图案在长度方向上的模块个数的平均值以及所述定位图案在长度方向上的模块个数确定所述目标二维码的版本。
7.根据权利要求6所述的方法,所述根据所述两个所述特征图案在长度方向上的模块个数的平均值以及所述定位图案在长度方向上的模块个数确定所述目标二维码的版本,包括:
根据所述两个所述特征图案在长度方向上的模块个数的平均值以及所述定位图案在长度方向上的模块个数确定目标模块个数;
根据所述目标模块个数确定所述目标二维码的版本。
8.一种二维码识别装置,包括:
第一处理模块,用于识别目标二维码的第一特征点,并根据所述第一特征点确定特征图案;其中,所述特征图案包括多个交替排列的第一模块以及第二模块,所述第一模块与所述第二模块的大小相同,所述第一模块与所述第二模块对应的颜色不同,所述第一特征点对应为定位图案的中心模块,所述定位图案包括多个按照预设顺序排列的第一模块以及第二模块;
第二处理模块,用于根据所述特征图案确定所述目标二维码的版本以及模块大小;
识别模块,用于基于所述目标二维码的版本以及模块大小对所述目标二维码进行识别。
9.根据权利要求8所述的装置,所述第一特征点的个数为三个,任意两个相邻的所述第一特征点各自对应的所述定位图案分别处于所述目标二维码的相邻顶点处;
所述第一处理模块,具体包括:
第一处理单元,用于识别目标二维码的第一特征点,并确定任意两个相邻的所述第一特征点之间的连线;
第二处理单元,用于根据所述任意两个相邻的所述第一特征点之间的连线以及与所述任意两个相邻的所述第一特征点各自对应的所述定位图案确定第二特征点;其中,所述第二特征点对应为所述定位图案的边缘与所述任意两个相邻的所述第一特征点之间的连线交点的模块;
第三处理单元,用于根据所述第二特征点确定特征图案。
10.根据权利要求9所述的装置,所述第三处理单元具体用于:
根据所述第二特征点确定第三特征点;其中,所述第三特征点对应为所述定位图案与所述目标二维码的中心距离最小的顶点模块;
将两个所述第三特征点之间的连线对应的模块作为特征图案;其中,所述特征图案的个数为两个。
11.根据权利要求8-10任一项所述的装置,所述第二处理模块,具体包括:
第一计算单元,用于根据每个所述特征图案的模块颜色分布情况统计对应于每个所述特征图案在长度方向上的模块个数,并根据所述特征图案在长度方向上的模块个数以及所述定位图案在长度方向上的模块个数确定所述目标二维码的版本;
第二计算单元,用于获取所述特征图案在长度方向上的像素点个数,并根据所述特征图案在长度方向上的像素点个数以及所述特征图案在长度方向上的模块个数计算得到模块大小。
12.根据权利要求11所述的装置,所述第二处理模块在所述根据每个所述特征图案的模块颜色分布情况统计对应于每个所述特征图案在长度方向上的模块个数之后,所述根据所述特征图案在长度方向上的模块个数以及所述定位图案在长度方向上的模块个数确定所述目标二维码的版本之前,还包括:
第四处理单元,用于计算每个所述模块在长度方向上的像素点个数的平均值,并根据所述平均值确定像素点阈值区间;
第五处理单元,用于确定每个所述模块在长度方向上的像素点是否属于所述像素点阈值区间;
第三计算单元,用于将属于所述像素点阈值区间的所述模块的个数作为所述特征图案的模块个数。
13.根据权利要求12所述的装置,所述第二计算单元,具体用于:
计算两个所述特征图案在长度方向上的模块个数的平均值;
根据所述两个所述特征图案在长度方向上的模块个数的平均值以及所述定位图案在长度方向上的模块个数确定所述目标二维码的版本。
14.根据权利要求13所述的装置,所述第二计算单元,具体还用于:
根据所述两个所述特征图案在长度方向上的模块个数的平均值以及所述定位图案在长度方向上的模块个数确定目标模块个数;
根据所述目标模块个数确定所述目标二维码的版本。
15.一种电子设备,包括处理器以及存储器;
所述处理器与所述存储器相连;
所述存储器,用于存储可执行程序代码;
所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行如权利要求1-7任一项所述的方法。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7任一项所述的方法。
CN202111400125.XA 2021-11-19 2021-11-19 二维码识别方法、装置、存储介质及电子设备 Active CN114239631B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111400125.XA CN114239631B (zh) 2021-11-19 2021-11-19 二维码识别方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111400125.XA CN114239631B (zh) 2021-11-19 2021-11-19 二维码识别方法、装置、存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN114239631A true CN114239631A (zh) 2022-03-25
CN114239631B CN114239631B (zh) 2024-03-26

Family

ID=80750761

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111400125.XA Active CN114239631B (zh) 2021-11-19 2021-11-19 二维码识别方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN114239631B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1492661A (zh) * 2002-07-18 2004-04-28 ������������ʽ���� 2维码读取装置和读取方法、便携终端及数字照相机
US20090078766A1 (en) * 2007-09-26 2009-03-26 Fuji Xerox Co., Ltd. Code reading device, code reading program storage medium and code reading method
WO2011108605A1 (ja) * 2010-03-05 2011-09-09 カラーコード・テクノロジーズ株式会社 2次元カラーコードの作成方法および復号方法
US20170357884A1 (en) * 2014-12-30 2017-12-14 Eyeconit Ltd Machine-readable image encoding data
CN109902527A (zh) * 2019-02-26 2019-06-18 凌云光技术集团有限责任公司 一种qr码自动识读方法和装置
CN109934038A (zh) * 2019-03-18 2019-06-25 阿里巴巴集团控股有限公司 二维码校正方法、装置及设备
CN110197096A (zh) * 2019-06-10 2019-09-03 阿里巴巴集团控股有限公司 二维码校正方法、装置及设备
CN110427794A (zh) * 2019-07-31 2019-11-08 中国工商银行股份有限公司 用于识别二维码的方法、装置、电子设备以及介质
CN111507120A (zh) * 2019-01-31 2020-08-07 北京骑胜科技有限公司 二维码定位框识别方法、装置、电子设备及存储介质
WO2020220388A1 (zh) * 2019-04-28 2020-11-05 上海快仓智能科技有限公司 二维码识别和生成的方法、装置、二维码和小车
CN112215319A (zh) * 2020-08-09 2021-01-12 向天鸽 颜色标记特征图形的二维码及其识别方法

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1492661A (zh) * 2002-07-18 2004-04-28 ������������ʽ���� 2维码读取装置和读取方法、便携终端及数字照相机
US20090078766A1 (en) * 2007-09-26 2009-03-26 Fuji Xerox Co., Ltd. Code reading device, code reading program storage medium and code reading method
WO2011108605A1 (ja) * 2010-03-05 2011-09-09 カラーコード・テクノロジーズ株式会社 2次元カラーコードの作成方法および復号方法
US20170357884A1 (en) * 2014-12-30 2017-12-14 Eyeconit Ltd Machine-readable image encoding data
CN111507120A (zh) * 2019-01-31 2020-08-07 北京骑胜科技有限公司 二维码定位框识别方法、装置、电子设备及存储介质
CN109902527A (zh) * 2019-02-26 2019-06-18 凌云光技术集团有限责任公司 一种qr码自动识读方法和装置
CN109934038A (zh) * 2019-03-18 2019-06-25 阿里巴巴集团控股有限公司 二维码校正方法、装置及设备
WO2020220388A1 (zh) * 2019-04-28 2020-11-05 上海快仓智能科技有限公司 二维码识别和生成的方法、装置、二维码和小车
CN110197096A (zh) * 2019-06-10 2019-09-03 阿里巴巴集团控股有限公司 二维码校正方法、装置及设备
CN110427794A (zh) * 2019-07-31 2019-11-08 中国工商银行股份有限公司 用于识别二维码的方法、装置、电子设备以及介质
CN112215319A (zh) * 2020-08-09 2021-01-12 向天鸽 颜色标记特征图形的二维码及其识别方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张民;郑建立;: "基于符号特征的QR码识别算法", 计算机工程, no. 04, 20 February 2011 (2011-02-20) *

Also Published As

Publication number Publication date
CN114239631B (zh) 2024-03-26

Similar Documents

Publication Publication Date Title
US9020266B2 (en) Methods and devices for processing handwriting input
CN110866495A (zh) 票据图像识别方法及装置和设备、训练方法和存储介质
JP2017516204A (ja) 美的要素を備える機械読み取り可能な光学式コードの生成および復号化
CN110502985B (zh) 表格识别方法、装置及表格识别设备
CN106529635B (zh) 一种编码图案的生成、识别方法及装置
EP2905727A1 (en) Dot pattern, dot-pattern-forming medium, program for generating image data for dot pattern, dot pattern forming apparatus, optical device, optical device reader, information i/o device, dot pattern reader
US20170372156A1 (en) Table data recovering in case of image distortion
CN108876871A (zh) 基于圆拟合的图像处理方法、装置与计算机可读存储介质
CN111583381B (zh) 游戏资源图的渲染方法、装置及电子设备
CN111161339B (zh) 一种间距测量方法、装置、设备以及计算机可读介质
TWI439943B (zh) 點圖像編碼結構、其解碼方法與電子裝置
CN106570549A (zh) 一种编码图案的生成、识别方法及装置
CN111899237A (zh) 标尺精度测量方法、装置、计算机设备和存储介质
CN112215811A (zh) 一种图像检测方法、装置、电子设备及存储介质
CN111507120A (zh) 二维码定位框识别方法、装置、电子设备及存储介质
CN114239631B (zh) 二维码识别方法、装置、存储介质及电子设备
US9129171B2 (en) Code reading device and code reading method
CN115031635A (zh) 测量方法及装置、电子设备及存储介质
CN111222613A (zh) 一种处理二维码的方法、装置和计算机存储介质
CN109598683A (zh) 影像截取方法、装置及计算机可读存储介质
CN110909816A (zh) 图片识别方法和装置
JP5712859B2 (ja) 画像認識装置および画像認識方法
CN110928441B (zh) 一种触摸物识别方法、系统、终端设备及存储介质
CN114926429A (zh) 一种线迹长度检测方法、装置、设备及可读存储介质
CN114611540A (zh) 基于数字图像处理的一维码图像区域识别方法、电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant