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

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

Info

Publication number
CN110457972A
CN110457972A CN201910718180.XA CN201910718180A CN110457972A CN 110457972 A CN110457972 A CN 110457972A CN 201910718180 A CN201910718180 A CN 201910718180A CN 110457972 A CN110457972 A CN 110457972A
Authority
CN
China
Prior art keywords
pattern
dimensional code
image
contour
identification method
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.)
Pending
Application number
CN201910718180.XA
Other languages
English (en)
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.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network 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 Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN201910718180.XA priority Critical patent/CN110457972A/zh
Publication of CN110457972A publication Critical patent/CN110457972A/zh
Pending legal-status Critical Current

Links

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
    • 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/1452Methods for optical code recognition including a method step for retrieval of the optical code detecting bar code edges
    • 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/146Methods for optical code recognition the method including quality enhancement steps

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Electromagnetism (AREA)
  • General Health & Medical Sciences (AREA)
  • Toxicology (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Image Analysis (AREA)

Abstract

本公开属于图像识别技术领域,涉及一种二维码识别方法及装置、计算机可读存储介质、电子设备。该方法包括:检测并提取目标图像中的图案轮廓,并确定图案轮廓为四边形的第一图案;根据第一预设条件对第一图案进行仿射变换,获取与二维码相对应的第二图案;基于二维码的定位图案,在第二图案中识别出二维码,并进行解码。本公开通过对目标图像中的图案轮廓提取,以获取与二维码对应的第二图案,并实现识别和扫码的功能。不仅流程简单,操作方便,还可以在复杂图像背景下,实现二维码的准确定位和提取并扫描二维码的功能,提升扫码成功率。

Description

二维码识别方法与装置、存储介质、电子设备
技术领域
本公开涉及图像识别技术领域,尤其涉及一种二维码识别方法与二维码识别装置、计算机可读存储介质及电子设备。
背景技术
二维码是人们生活中广泛应用的一种信息编码方式。目前,市面上较为主流的二维码的解析方式有Zxing和Zbar。它们在二维码占有目标图片中的较大比例时,拥有较高的解码成功率。但是,当二维码不是目标图片中的主要内容,甚至是目标图片中的干扰元素过多、场景较为复杂的时候,解析成功率就会大大降低。
鉴于此,本领域亟需开发一种新的二维码识别方法及装置。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种二维码识别方法、二维码识别装置、计算机可读存储介质及电子设备,进而至少在一定程度上克服由于相关技术的限制而导致的扫码成功率低的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一个方面,提供一种二维码识别方法,所述方法包括:检测并提取目标图像中的图案轮廓,并确定所述图案轮廓为四边形的第一图案;根据第一预设条件对所述第一图案进行仿射变换,获取与二维码相对应的第二图案;基于所述二维码的定位图案,在所述第二图案中识别出所述二维码,并进行解码。
在本公开的一种示例性实施例中,所述确定所述图案轮廓为四边形的第一图案,包括:采用多边形逼近算法对所述图案轮廓进行多边形逼近,以确定所述图案轮廓的最小外接多边形;根据四边形的几何特征对所述最小外接多边形进行判断,以确定所述第一图案。
在本公开的一种示例性实施例中,所述根据四边形的几何特征对所述最小外接多边形进行判断,以确定所述第一图案,包括:基于所述四边形的几何特征,在所述图案轮廓中确定出第三图案;根据第二预设条件对所述第三图案进行筛选,以确定所述第一图案。
在本公开的一种示例性实施例中,所述第二预设条件包括预设面积,所述根据第二预设条件对所述第三图案进行筛选,以确定所述第一图案,包括:获取所述第三图案的图案面积,并将所述图案面积与所述预设面积进行比较;基于比较结果,将所述图案面积大于所述预设面积的所述第三图案确定为所述第一图案。
在本公开的一种示例性实施例中,所述检测并提取目标图像中的图案轮廓之前,所述方法还包括:获取待处理图像,并对所述待处理图像进行预处理,以获取待识别图像;采用高斯滤波对所述待识别图像进行去噪处理,以将所述去噪处理后的图像作为所述目标图像。
在本公开的一种示例性实施例中,所述获取待处理图像,并对所述待识别图像进行预处理,以获取待识别图像,包括:获取待处理图像,并对所述待处理图像进行灰度化处理,以获取灰度图像;基于预设的二值化阈值,对所述灰度图像进行二值化处理,以获取所述待识别图像。
在本公开的一种示例性实施例中,所述基于所述二维码的定位图案,在所述第二图案中识别出所述二维码,包括:对所述第二图案进行所述二值化处理,以获取第四图案;根据所述第二图案与所述目标图像确定比例信息,以根据所述比例信息确定所述高斯滤波的模糊半径;基于所述模糊半径,对所述第四图案进行去噪处理,以确定第五图案;若所述第五图案满足所述定位图案的第三预设条件,在所述第二图案中识别出所述二维码。
在本公开的一种示例性实施例中,所述方法还包括:若所述第五图案未满足所述第三预设条件,调整所述二值化阈值;根据调整后的二值化阈值,对所述灰度图像进行二值化处理,以获取所述待识别图像。
在本公开的一种示例性实施例中,所述检测并提取目标图像中的图案轮廓,包括:使用边缘检测算法对所述目标图像进行轮廓识别,以确定所述目标图像中的所述图案轮廓;获取所述图案轮廓的轮廓信息,以提取所述图案轮廓。
根据本公开的一个方面,提供一种二维码识别装置,所述装置包括:轮廓提取模块,被配置为检测并提取目标图像中的图案轮廓,并确定所述图案轮廓为四边形的第一图案;图案获取模块,被配置为根据第一预设条件对所述第一图案进行仿射变换,获取与二维码相对应的第二图案;二维码识别模块,被配置为基于所述二维码的定位图案,在所述第二图案中识别出所述二维码,并进行解码。
根据本公开的一个方面,提供一种电子设备,包括:处理器和存储器;其中,存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现上述任意示例性实施例的二维码识别方法。
根据本公开的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意示例性实施例中的二维码识别方法。
由上述技术方案可知,本公开示例性实施例中的二维码识别方法、二维码识别装置、计算机存储介质及电子设备至少具备以下优点和积极效果:
在本公开的示例性实施例提供的方法及装置中,通过对目标图像中的图案轮廓提取,以获取与二维码对应的第二图案,并实现识别和扫码的功能。不仅流程简单,操作方便,还可以在复杂图像背景下,实现二维码的准确定位和提取并扫描二维码的功能,提升扫码成功率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性示出本公开示例性实施例中一种二维码识别方法的流程图;
图2示意性示出本公开示例性实施例中获取目标图像的方法的流程示意图;
图3示意性示出本公开示例性实施例中获取待识别图像的方法的流程示意图;
图4示意性示出本公开示例性实施例中提取图案轮廓的方法的流程示意图;
图5示意性示出本公开示例性实施例中确定第一图案的方法的流程示意图;
图6示意性示出本公开示例性实施例中对最小外接多边形判断的方法的流程示意图;
图7示意性示出本公开示例性实施例中对第三图案进行筛选的方法的流程示意图;
图8示意性示出本公开示例性实施例中识别出二维码的方法的流程示意图;
图9示意性示出本公开示例性实施例中第五图案未满足第三预设条件时的处理方法的流程示意图;
图10示意性示出现有技术通过Zxing和Zbar成功解析二维码的应用界面示意图;
图11示意性示出一种现有技术无法成功解析二维码的应用界面示意图;
图12示意性示出另一种现有技术无法成功解析二维码的应用界面示意图;
图13示意性示出本公开示例性实施例中构成二维码组成的结构示意图;
图14示意性示出本公开示例性实施例中在应用场景的二维码识别方法的流程示意图;
图15示意性示出本公开示例性实施例中灰度化处理得到灰度图像的应用界面示意图;
图16示意性示出本公开示例性实施例中二值化处理得到待识别图像的应用界面示意图;
图17示意性示出本公开示例性实施例中检测并提取图案轮廓的应用界面示意图;
图18示意性示出本公开示例性实施例中确定第一图案的应用界面示意图;
图19示意性示出本公开示例性实施例中获取到第二图案的应用界面示意图;
图20示意性示出本公开示例性实施例中扫码成功的应用界面示意图;
图21示意性示出本公开示例性实施例中一种二维码识别装置的结构示意图;
图22示意性示出本公开示例性实施例中一种用于实现二维码识别方法的电子设备;
图23示意性示出本公开示例性实施例中一种用于实现二维码识别方法的计算机可读存储介质。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
本说明书中使用用语“一个”、“一”、“该”和“所述”用以表示存在一个或多个要素/组成部分/等;用语“包括”和“具有”用以表示开放式的包括在内的意思并且是指除了列出的要素/组成部分/等之外还可存在另外的要素/组成部分/等;用语“第一”和“第二”等仅作为标记使用,不是对其对象的数量限制。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。
针对相关技术中存在的问题,本公开提出了一种二维码识别方法。图1示出了二维码识别方法的流程图,如图1所示,二维码识别方法至少包括以下步骤:
步骤S110.检测并提取目标图像中的图案轮廓,并确定图案轮廓为四边形的第一图案。
步骤S120.根据第一预设条件对第一图案进行仿射变换,获取与二维码相对应的第二图案。
步骤S130.基于二维码的定位图案,在第二图案中识别出二维码,并进行解码。
在本公开的示例性实施例中,通过对目标图像中的图案轮廓提取,以获取与二维码对应的第二图案,并实现识别和扫码的功能。不仅流程简单,操作方便,还可以在复杂图像背景下,实现二维码的准确定位和提取并扫描二维码的功能,提升扫码成功率。
下面对二维码识别方法的各个步骤进行详细说明。
在步骤S110中,检测并提取目标图像中的图案轮廓,并确定图案轮廓为四边形的第一图案。
在本公开的示例性实施例中,图2示出了获取目标图像的方法的流程示意图,如图2所示,该方法至少包括以下步骤:在步骤S210中,获取待处理图像,并对待处理图像进行预处理,以获取待识别图像。
在可选的实施例中,图3示出了获取待识别图像的方法的流程示意图,如图3所示,该方法至少包括以下步骤:在步骤S310中,获取待处理图像,并对预处理图像进行灰度化处理,以获取灰度图像。待处理图像可以是输入的复杂场景图像,也可以是其他包含二维码,且不易识别的图像,本示例性实施例对此不做特殊限定。对待处理图像的灰度化处理可以采用分量法、最大值法、平均值法和加权平均法等,本示例性实施例对此不做特殊限定。例如,采用最大值法进行灰度化处理,可以将预处理图像中的RGB三分量亮度的最大值作为灰度图像的灰度值;采用平均值法进行灰度化处理,可以将预处理图像的RGB三分量亮度求平均作为灰度图像的灰度值;采用加权平均法进行灰度化处理,可以对RGB三分量亮度进行加权求和作为灰度图像的灰度值。并且,将灰度化处理后的图像确定为待处理图像的灰度图像。灰度图像也可以反映预处理图像的整体和局部的色度和亮度等级的分布和特征。
在步骤S320中,基于预设的二值化阈值,对灰度图像进行二值化处理,以获取待识别图像。在对灰度图像进行二值化处理的时候,可以将处理范围设定为1~254。其中,二值化阈值越大,尝试的二值化处理次数越多,成功率越高;二值化阈值越小,二维码的扫描效率越高。二值化阈值可以根据实际情况设置,一般的,可以设置为50,也可以设置为其他大小,本示例性实施例对此不做特殊限定。基于预设的二值化阈值,可以对灰度图像使用OTSU算法进行二值化处理,并获取待识别图像。
在本示例性实施例中,对待处理图像进行灰度化和二值化的处理,方便操作,简单易用,并且可以有效提高后续识别二维码的准确度。
在步骤S220中,采用高斯滤波对待处理图像进行去噪处理,以将去噪处理后的图像作为目标图像。高斯滤波是一种线性平滑滤波,可以对待处理图像进行加权平均,亦即将待处理图像中的每个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到,以对待处理图像进行去噪处理,确定目标图像。
在本示例性实施例中,通过对待识别图像进行预处理和去噪处理,可以实现去除服从正态分布的噪声,确定目标图像的功能。
在可选的实施例中,图4示出了提取图案轮廓的方法的流程示意图,如图4所示,该方法至少包括以下步骤:在步骤S410中,使用边缘检测算法对目标图像进行轮廓识别,以确定目标图像中的图案轮廓。在图像处理中,轮廓可以是一段相连的像素点组成的。例如,一条直线、一条封闭的曲线、一个像素点都可以是轮廓。对轮廓的边缘检测算法可以是Canny算法,Canny算法可以在保留目标图像的原有图像属性的情况下,显著减少图像的数据规模。除此之外,还可以使用Sobel边缘检测算法,也可以使用其他边缘检测算法,本示例性实施例对此不做特殊限定。在
步骤S420中,获取图案轮廓的轮廓信息,以提取图案轮廓。其中,轮廓信息可以是图案轮廓中的小特征的边缘点的坐标。举例而言,可以是路面图像中的石子轮廓、水渍轮廓等的边缘点的坐标,可以提取这些边缘点的坐标作为图案轮廓。除此之外,还可以是其他轮廓信息,本示例性实施例对此不做特殊限定。并且,可以采用OpenCV中的findContours函数对图案轮廓进行提取,还可以采用其他方式,本示例性实施例对此不做特殊限定。
在本示例性实施例中,给出了一种边缘轮廓的检测和提取的方法,提高了二维码定位图案的识别率,提高了识别的准确度。
由于输入的待处理图像为复杂场景图像或者是干扰元素过多的图像,所以目标图像中的图案轮廓可以包括很多种。但鉴于二维码定位图案的几何特征,可以确定图案轮廓为四边形的第一图案。
在可选的实施例中,图5示出了确定第一图案的方法的流程示意图,如图5所示,该方法至少包括以下步骤:在步骤S510中,采用多边形逼近算法对图案轮廓进行多边形逼近,以确定图案轮廓的最小外接多边形。采用多边拟合函数,例如OpenCV中的approxPolyDP函数,可以对图案轮廓进行多边逼近,得到最小外接多边形。
在步骤S520中,根据四边形的几何特征对最小外接多边形进行判断,以确定第一图案。
在可选的实施例中,图6示出了对最小外接多边形判断的方法的流程示意图,如图6所示,该方法至少包括以下步骤:在步骤S610中,基于四边形的几何特征,在图案轮廓中确定出第三图案。举例而言,四边形的几何特征可以是顶点的数量,三个顶点之间的夹角等,以据此在各种各样的图案轮廓中确定出第三图案。
在步骤S620中,根据第二预设条件对第三图案进行筛选,以确定第一图案。在可选的实施例中,第二预设条件包括预设面积,图7示出了对第三图案进行筛选的方法的流程示意图,如图7所示,该方法至少包括以下步骤:在步骤S710中,获取第三图案的图案面积,并对图案面积与预设面积进行比较。举例而言,预设面积可以是像素尺寸为50*50,也可以是其他大小,本示例性实施例对此不做特殊限定。按照同样的面积确定方法,可以确定第三图案的图案面积。
在步骤S720中,基于比较结果,将图案面积大于预设面积的第三图案确定为第一图案。举例而言,可以将图案面积小于50*50的第三图案排除掉,将图案面积大于等于50*50的第三图案确定为第一图案。
在本示例性实施例中,根据四边形的几何特征和预设条件,可以确定出满足条件的第一图案,在一定程度上排除了不可能作为二维码的图案,节省了二维码识别前的处理流程和处理时间。
在步骤S120中,根据第一预设条件对第一图案进行仿射变换,获取与二维码相对应的第二图案。
在本公开的示例性实施例中,输入的待处理图像可能由于拍摄角度、光线强度等原因会产生一定程度的形变,为方便后续二维码的识别,可以对第一图案进行仿射变换。仿射变换可以是两个向量空间之间的一个仿射变换或者仿射映射,由一个非奇异的线性变换接上一个平移变换组成。举例而言,可以采用OpenCV的仿射变换函数对第一图案进行仿射变换。其中,第一预设条件可以是预设夹角。该预设夹角可以是根据第一图案的形变程度计算出来的最大夹角,举例而言,可以设置为100°±10°,还可以设置为其他角度,本示例性实施例对此不做特殊限定。此时,经过仿射变换的第一图案可以是正方形的正视图,可以确定为与二维码对应的第二图案。
在步骤S130中,基于二维码的定位图案,在第二图案中识别出二维码,并进行解码。
在本公开的示例性实施例中,图8示出了识别出二维码的方法的流程示意图,如图8所示,该方法至少包括以下步骤:在步骤S810中,对第二图案进行二值化处理,以获取第四图案。在对第二图案进行二值化处理的时候,可以将处理范围设定为1~254。其中,二值化阈值越大,尝试的二值化处理次数越多,成功率越高;二值化阈值越小,二维码的扫描效率越高。二值化阈值可以根据实际情况设置,一般的,可以设置为50,也可以设置为其他大小,本示例性实施例对此不做特殊限定。基于预设的二值化阈值,可以对第二图案使用OTSU算法进行二值化处理,并获取第四图案。
在步骤S820中,根据第二图案与目标图像确定比例信息,以根据比例信息确定高斯滤波的模糊半径。高斯滤波是一种线性平滑滤波,可以对待处理图像进行加权平均,亦即将待处理图像中的每个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。但是,由于高斯滤波的模糊半径太大的话,可能会使第四图案太亮,看不清楚。因此,可以根据第二图案与目标图像的比例信息确定高斯滤波的模糊半径。
在步骤S830中,基于模糊半径,对第四图案进行去噪处理,以确定第五图案。根据已经确定的模糊半径,可以使用高斯滤波算法对第四图案进行处理,以获得第五图案。
在步骤S840中,若第五图案满足定位图案的第三预设条件,在第二图案中识别出二维码。第三预设条件可以是根据二维码中的定位图案设定的预设条件,举例而言,该预设条件可以是嵌套层级数大于4。若第五图案的定位图案的嵌套层级数大于4,表明在第二图案中成功识别出二维码,可以进行解码。
在本示例性实施例中,给出了识别出二维码的方法,提高了在复杂场景中有效识别二维码的效率,同时也提高了识别的准确率。
在可选的实施例中,图9示出了第五图案未满足第三预设条件时的处理方法的流程示意图,如图9所示,该方法至少包括以下步骤:在步骤S910中,若第五图案未满足第三预设条件,调整二值化阈值。基于二维码的定位图案,二维码定位图案的定位流程可以是先二值化处理,再提取边缘轮廓,将嵌套层级数大于4的边缘找到,得到对应的输出。因此,在第五图案未满足第三预设条件的时候,可以认为是对二维码的解析失败。此时,可以根据二值化阈值增加其设置,也可以是其他调整方法,本示例性实施例对此不做特殊限定。
在步骤S920中,根据调整后的二值化阈值,对灰度图像进行二值化处理,以获取待识别图像。基于已调整的二值化阈值,可以重新对灰度图像重新进行二值化处理,并继续进行后续处理。若所有的尝试和处理都失败,表明本次二维码扫描失败。
在本示例性实施例中,给出了若二维码识别失败的情况下的处理方式,丰富了在复杂环境下二维码识别的情形,给出了相应的应对方法,使得该二维码识别方法更为完整,实用性更强。
下面结合一应用场景对本公开实施例中的二维码识别方法做出详细说明。
图10示出了现有技术中通过Zxing和Zbar成功解析二维码的应用界面示意图,如图10所示,该二维码显示区域较大,具有较高的成功解析率。
图11示出了一种现有技术无法成功解析二维码的应用界面示意图,如图11所示,该二维码不是目标图片的主要内容,并且目标图片中的干扰元素较多,利用现有技术无法识别和解析。
图12示出了另一种现有技术无法成功解析二维码的应用界面示意图,如图12所示,该二维码不是目标图片的主要内容,并且目标图片中的场景较为复杂,同样利用现有技术无法成功解析二维码。
图13示出了构成二维码组成的结构示意图,如图13所示,二维码是一种确定的编码方式。其中,组成部分中的Position Detection Pattern是二维码的定位图案,分别分布在二维码的左上、左下和右上的位置。传统的扫码方式是通过找到三个定位图案,并结合其他特征信息共同定位二维码的矩阵位置,再进行解码。这种方案在复杂场景的图片中,会对整张图片进行全量的扫描定位,除了效率不高的缺点,也是导致复杂场景图片中扫码成功率低的主要原因。
图14示出了在应用场景中的二维码识别方法的流程示意图,如图14所示,在步骤S1401中,输入待处理图像;在步骤S1402中,对待处理图像进行灰度化处理,得到灰度图像;在步骤S1403中,对灰度图像进行二值化处理,可以得到待识别图像;在步骤S1404和S1405中,可以对待识别图像利用高斯滤波进行去噪处理,然后检测并提取得到目标图像中的图案轮廓;在步骤S1406中,遍历得到的图案轮廓,亦即在步骤S1407中,通过多边拟合函数对图案轮廓进行多边形逼近,得到图案轮廓的最小外接多边形,以根据四边形的几何特征对所有最小外接多边形进行筛选,确定第三图案,再排除掉第三图案中面积过小的四边形,确定出第一图案;在步骤S1408中,将第一图案进行仿射变换到四边形的正视图,再次在步骤S1409使用二值化处理、高斯滤波算法和边缘检测算法提取边缘轮廓,以在步骤S1410中找到符合条件的二维码的定位图案,进行解码。在步骤S1411中,可以对解码结果进行判断,若扫描成功,本次扫描结束;若扫描失败,可以调整二值化阈值,重新回到步骤S1403进行处理,直到所有的处理都失败,表明扫码失败。
其中,图15示出了灰度化处理得到灰度图像的应用界面示意图,如图15所示,该灰度图像可以对应步骤S1402的处理结果。图16示出了二值化处理得到待识别图像的应用界面示意图,如图16所示,该待识别图像对应步骤S1403的处理结果。图17示出了检测并提取图案轮廓的应用界面示意图,如图17所示,该图案轮廓对应步骤S1404和步骤S1405处理后的处理结果。图18示出了确定出第一图案的应用界面示意图,如图18所示,该第一图案对应于步骤S1406和步骤S1407处理后的处理结果。图19示出了获取到与二维码对应的第二图案的应用界面示意图,如图19所示,对应于步骤S1410的处理结果。图20示出了扫码成功的应用界面示意图,如图20所示,对应于步骤S1411中的一种处理结果,亦即扫码成功的结果,可以看出,成功之后在二维码的上方显示一统一资源定位符(Uniform Resource Locator,简称URL)。
在本公开的示例性实施例中,通过对目标图像中的图案轮廓提取,以获取与二维码对应的第二图案,并实现识别和扫码的功能。不仅流程简单,操作方便,还可以在复杂图像背景下,实现二维码的准确定位和提取并扫描二维码的功能,提升扫码成功率。
需要说明的是,虽然以上示例性实施例的实施方式以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或者必须执行全部的步骤才能实现期望的结果。附加地或者备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
此外,在本公开的示例性实施例中,还提供一种二维码识别装置。图21示出了二维码识别装置的结构示意图,如图21所示,二维码识别装置2100可以包括:轮廓提取模块2101、图案获取模块2102、二维码识别模块2103。其中:
轮廓提取模块2101,被配置为检测并提取目标图像中的图案轮廓,并确定图案轮廓为四边形的第一图案;图案获取模块2102,被配置为根据第一预设条件对第一图案进行仿射变换,获取与二维码相对应的第二图案;二维码识别模块2103,被配置为基于二维码的定位图案,在第二图案中识别出二维码,并进行解码。
上述二维码识别装置的具体细节已经在对应的二维码识别方法中进行了详细的描述,因此此处不再赘述。
应当注意,尽管在上文详细描述中提及了二维码识别装置2100的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
此外,在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
下面参照图22来描述根据本发明的这种实施例的电子设备2200。图22显示的电子设备2200仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图22所示,电子设备2200以通用计算设备的形式表现。电子设备2200的组件可以包括但不限于:上述至少一个处理单元2210、上述至少一个存储单元2220、连接不同系统组件(包括存储单元2220和处理单元2210)的总线2230、显示单元2240。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元2210执行,使得所述处理单元2210执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施例的步骤。
存储单元2220可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)2221和/或高速缓存存储单元2222,还可以进一步包括只读存储单元(ROM)2223。
存储单元2220还可以包括具有一组(至少一个)程序模块2225的程序/实用工具2224,这样的程序模块2225包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线2230可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备2200也可以与一个或多个外部设备2400(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备2200交互的设备通信,和/或与使得该电子设备2200能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口2250进行。并且,电子设备2200还可以通过网络适配器2260与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器2240通过总线2230与电子设备2200的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备2200使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施例的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施例中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施例的步骤。
参考图23所示,描述了根据本发明的实施例的用于实现上述方法的程序产品2300,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。

Claims (12)

1.一种二维码识别方法,其特征在于,所述方法包括:
检测并提取目标图像中的图案轮廓,并确定所述图案轮廓为四边形的第一图案;
根据第一预设条件对所述第一图案进行仿射变换,获取与二维码相对应的第二图案;
基于所述二维码的定位图案,在所述第二图案中识别出所述二维码,并进行解码。
2.根据权利要求1所述的二维码识别方法,其特征在于,所述确定所述图案轮廓为四边形的第一图案,包括:
采用多边形逼近算法对所述图案轮廓进行多边形逼近,以确定所述图案轮廓的最小外接多边形;
根据四边形的几何特征对所述最小外接多边形进行判断,以确定所述第一图案。
3.根据权利要求2所述的二维码识别方法,其特征在于,所述根据四边形的几何特征对所述最小外接多边形进行判断,以确定所述第一图案,包括:
基于所述四边形的几何特征,在所述图案轮廓中确定出第三图案;
根据第二预设条件对所述第三图案进行筛选,以确定所述第一图案。
4.根据权利要求3所述的二维码识别方法,其特征在于,所述第二预设条件包括预设面积,
所述根据第二预设条件对所述第三图案进行筛选,以确定所述第一图案,包括:
获取所述第三图案的图案面积,并将所述图案面积与所述预设面积进行比较;
基于比较结果,将所述图案面积大于所述预设面积的所述第三图案确定为所述第一图案。
5.根据权利要求1所述的二维码识别方法,其特征在于,所述检测并提取目标图像中的图案轮廓之前,所述方法还包括:
获取待处理图像,并对所述待处理图像进行预处理,以获取待识别图像;
采用高斯滤波对所述待识别图像进行去噪处理,以将所述去噪处理后的图像作为所述目标图像。
6.根据权利要求5所述的二维码识别方法,其特征在于,所述获取待处理图像,并对所述待识别图像进行预处理,以获取待识别图像,包括:
获取待处理图像,并对所述待处理图像进行灰度化处理,以获取灰度图像;
基于预设的二值化阈值,对所述灰度图像进行二值化处理,以获取所述待识别图像。
7.根据权利要求6所述的二维码识别方法,其特征在于,所述基于所述二维码的定位图案,在所述第二图案中识别出所述二维码,包括:
对所述第二图案进行所述二值化处理,以获取第四图案;
根据所述第二图案与所述目标图像确定比例信息,以根据所述比例信息确定所述高斯滤波的模糊半径;
基于所述模糊半径,对所述第四图案进行去噪处理,以确定第五图案;
若所述第五图案满足所述定位图案的第三预设条件,在所述第二图案中识别出所述二维码。
8.根据权利要求7所述的二维码识别方法,其特征在于,所述方法还包括:
若所述第五图案未满足所述第三预设条件,调整所述二值化阈值;
根据调整后的二值化阈值,对所述灰度图像进行二值化处理,以获取所述待识别图像。
9.根据权利要求1所述的二维码识别方法,其特征在于,所述检测并提取目标图像中的图案轮廓,包括:
使用边缘检测算法对所述目标图像进行轮廓识别,以确定所述目标图像中的所述图案轮廓;
获取所述图案轮廓的轮廓信息,以提取所述图案轮廓。
10.一种二维码识别装置,其特征在于,包括:
轮廓提取模块,被配置为检测并提取目标图像中的图案轮廓,并确定所述图案轮廓为四边形的第一图案;
图案获取模块,被配置为根据第一预设条件对所述第一图案进行仿射变换,获取与二维码相对应的第二图案;
二维码识别模块,被配置为基于所述二维码的定位图案,在所述第二图案中识别出所述二维码,并进行解码。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被发送器执行时实现权利要求1-9中任意一项所述的二维码识别方法。
12.一种电子设备,其特征在于,包括:
发送器;
存储器,用于存储所述发送器的可执行指令;
其中,所述发送器被配置为经由执行所述可执行指令来执行权利要求1-9中任意一项所述的二维码识别方法。
CN201910718180.XA 2019-08-05 2019-08-05 二维码识别方法与装置、存储介质、电子设备 Pending CN110457972A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910718180.XA CN110457972A (zh) 2019-08-05 2019-08-05 二维码识别方法与装置、存储介质、电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910718180.XA CN110457972A (zh) 2019-08-05 2019-08-05 二维码识别方法与装置、存储介质、电子设备

Publications (1)

Publication Number Publication Date
CN110457972A true CN110457972A (zh) 2019-11-15

Family

ID=68484953

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910718180.XA Pending CN110457972A (zh) 2019-08-05 2019-08-05 二维码识别方法与装置、存储介质、电子设备

Country Status (1)

Country Link
CN (1) CN110457972A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110991457A (zh) * 2019-11-26 2020-04-10 北京达佳互联信息技术有限公司 二维码处理方法、装置、电子设备及存储介质
CN111353324A (zh) * 2020-03-30 2020-06-30 深圳市杰普特光电股份有限公司 玻璃内部点阵二维码读取方法
CN111443211A (zh) * 2020-03-04 2020-07-24 重庆大学 一种多血型系统自动检测卡及检测方法
CN111612012A (zh) * 2020-05-25 2020-09-01 信雅达系统工程股份有限公司 健康码的识别方法及装置
CN111611823A (zh) * 2020-05-26 2020-09-01 山东汇贸电子口岸有限公司 一种二维码识别优化方法
CN113822849A (zh) * 2021-06-11 2021-12-21 腾讯科技(深圳)有限公司 识别码检测方法及装置、电子设备和存储介质
CN114548140A (zh) * 2022-04-26 2022-05-27 成都普什信息自动化有限公司 二维码解码方法、数据关联方法、关联装置及使用方法
CN115660933A (zh) * 2022-11-02 2023-01-31 北京奕之宣科技有限公司 一种水印信息的识别方法、装置及设备
CN116071429A (zh) * 2023-03-29 2023-05-05 天津市再登软件有限公司 一种被子图案轮廓识别方法、装置、电子设备及存储介质
CN117574930A (zh) * 2024-01-15 2024-02-20 北京航空航天大学杭州创新研究院 立体条形码信息生成方法、装置、电子设备和可读介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106778440A (zh) * 2016-12-21 2017-05-31 腾讯科技(深圳)有限公司 二维码识别方法及装置
CN109101856A (zh) * 2018-09-25 2018-12-28 广东工业大学 一种二维码图像识别方法及装置
CN109522768A (zh) * 2018-10-22 2019-03-26 清华大学 Qr码的识别方法及装置
CN109993019A (zh) * 2019-04-15 2019-07-09 苏州国芯科技股份有限公司 基于连通域分析的二维码识别方法、系统及设备和介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106778440A (zh) * 2016-12-21 2017-05-31 腾讯科技(深圳)有限公司 二维码识别方法及装置
CN109101856A (zh) * 2018-09-25 2018-12-28 广东工业大学 一种二维码图像识别方法及装置
CN109522768A (zh) * 2018-10-22 2019-03-26 清华大学 Qr码的识别方法及装置
CN109993019A (zh) * 2019-04-15 2019-07-09 苏州国芯科技股份有限公司 基于连通域分析的二维码识别方法、系统及设备和介质

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110991457B (zh) * 2019-11-26 2023-12-08 北京达佳互联信息技术有限公司 二维码处理方法、装置、电子设备及存储介质
CN110991457A (zh) * 2019-11-26 2020-04-10 北京达佳互联信息技术有限公司 二维码处理方法、装置、电子设备及存储介质
CN111443211A (zh) * 2020-03-04 2020-07-24 重庆大学 一种多血型系统自动检测卡及检测方法
CN111443211B (zh) * 2020-03-04 2024-01-26 重庆大学 一种多血型系统自动检测卡及检测方法
CN111353324A (zh) * 2020-03-30 2020-06-30 深圳市杰普特光电股份有限公司 玻璃内部点阵二维码读取方法
CN111612012A (zh) * 2020-05-25 2020-09-01 信雅达系统工程股份有限公司 健康码的识别方法及装置
CN111611823A (zh) * 2020-05-26 2020-09-01 山东汇贸电子口岸有限公司 一种二维码识别优化方法
CN113822849A (zh) * 2021-06-11 2021-12-21 腾讯科技(深圳)有限公司 识别码检测方法及装置、电子设备和存储介质
CN114548140A (zh) * 2022-04-26 2022-05-27 成都普什信息自动化有限公司 二维码解码方法、数据关联方法、关联装置及使用方法
CN114548140B (zh) * 2022-04-26 2022-08-12 成都普什信息自动化有限公司 二维码解码方法、数据关联方法、关联装置及使用方法
CN115660933A (zh) * 2022-11-02 2023-01-31 北京奕之宣科技有限公司 一种水印信息的识别方法、装置及设备
CN116071429A (zh) * 2023-03-29 2023-05-05 天津市再登软件有限公司 一种被子图案轮廓识别方法、装置、电子设备及存储介质
CN116071429B (zh) * 2023-03-29 2023-06-16 天津市再登软件有限公司 一种被子图案轮廓识别方法、装置、电子设备及存储介质
CN117574930A (zh) * 2024-01-15 2024-02-20 北京航空航天大学杭州创新研究院 立体条形码信息生成方法、装置、电子设备和可读介质
CN117574930B (zh) * 2024-01-15 2024-04-12 北京航空航天大学杭州创新研究院 立体条形码信息生成方法、装置、电子设备和可读介质

Similar Documents

Publication Publication Date Title
CN110457972A (zh) 二维码识别方法与装置、存储介质、电子设备
US9607199B2 (en) Decoding machine-readable optical codes with aesthetic component
CN112348815B (zh) 图像处理方法、图像处理装置以及非瞬时性存储介质
CN106485183B (zh) 一种二维码定位方法及系统
CN111435438A (zh) 适于增强现实、虚拟现实和机器人的图形基准标记识别
EP1693782B1 (en) Method for facial features detection
CN110348264B (zh) 一种qr二维码图像校正方法及系统
CN105069394A (zh) 二维码加权平均灰度法解码方法及系统
CN103810478A (zh) 一种坐姿检测方法和装置
CN108734250B (zh) 基于Sobel算子的视觉二维码生成方法
CA2898668A1 (en) Realization method and device for two-dimensional code augmented reality
CN107577979A (zh) DataMatrix型二维码快速识别方法、装置及电子设备
CN115880415A (zh) 三维重建方法、装置、电子设备及存储介质
Han et al. Efficient iris localisation using a guided filter
CN113111674A (zh) Aztec码定位与解码方法、系统、设备及存储介质
CN108304840B (zh) 一种图像数据处理方法以及装置
CN113658195B (zh) 图像分割方法、装置及电子设备
CN112396050A (zh) 图像的处理方法、设备以及存储介质
CN109784248A (zh) 瞳孔定位方法、瞳孔定位装置、电子设备、存储介质
CN114827562A (zh) 投影方法、装置、投影设备及计算机存储介质
JP4533849B2 (ja) 画像処理装置及び画像処理プログラム
CN113538704A (zh) 一种基于光源位置绘制虚拟对象光影的方法及设备
CN111339919B (zh) 一种基于多任务协作的镜子检测方法
Tong et al. QR code detection based on local features
CN116485992A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20191115