CN111767752A - 一种二维码识别方法及装置 - Google Patents
一种二维码识别方法及装置 Download PDFInfo
- Publication number
- CN111767752A CN111767752A CN202010529368.2A CN202010529368A CN111767752A CN 111767752 A CN111767752 A CN 111767752A CN 202010529368 A CN202010529368 A CN 202010529368A CN 111767752 A CN111767752 A CN 111767752A
- Authority
- CN
- China
- Prior art keywords
- abscissa
- ordinate
- position detection
- central point
- determining
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods 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/1404—Methods for optical code recognition
- G06K7/1408—Methods for optical code recognition the method being specifically adapted for the type of code
- G06K7/1417—2D bar codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods 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/1404—Methods for optical code recognition
- G06K7/1439—Methods for optical code recognition including a method step for retrieval of the optical code
- G06K7/1443—Methods for optical code recognition including a method step for retrieval of the optical code locating of the code in an image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods 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/1404—Methods for optical code recognition
- G06K7/146—Methods 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)
- Length Measuring Devices By Optical Means (AREA)
Abstract
本申请涉及信息技术领域,尤其涉及一种二维码识别方法及装置,获取扫描的当前帧二维码图像;根据预设的位置探测图形的图像特征,检测所述二维码图像中的位置探测图形,其中,所述位置探测图形表征二维码的定位图案,用于定位二维码的位置;根据位置探测图形的检测结果,确定对焦区域,并调整所述对焦区域的对焦优先级;根据所述对焦区域和所述位置探测图形的检测结果,并按照调整后的对焦优先级对所述二维码图像进行调焦处理,并对调焦处理后的二维码图像进行解析,这样,可以提高二维码识别成功率。
Description
技术领域
本申请涉及信息技术领域,尤其涉及一种二维码识别方法及装置。
背景技术
目前,二维码以其信息传递的有效性和快捷性,是移动互联网时代信息传递中重要的载体,广泛应用于各种场景中,例如通过二维码进行移动支付等,对二维码识别主要依赖于二维码原始黑色、白色像素点信息的采集,但是在实际的使用场景中,进行扫描的摄像头设备与展示的二维码图案之间的相对位置、距离角度等因素复杂多变,摄像头与原始二维码位置的因素让像素的边界区分变得复杂,进而让信息的采集变得困难,导致无法快速解码识别,降低了识别成功率,因此,对于复杂使用场景中,如何提升二维码识别的成功率是目前亟待解决的问题。
发明内容
本申请实施例提供一种二维码识别方法及装置,以提高二维码识别成功率。
本申请实施例提供的具体技术方案如下:
一种二维码识别方法,包括:
获取扫描的当前帧二维码图像;
根据预设的位置探测图形的图像特征,检测所述二维码图像中的位置探测图形,其中,所述位置探测图形表征二维码的定位图案,用于定位二维码的位置;
根据位置探测图形的检测结果,确定对焦区域,并调整所述对焦区域的对焦优先级;
根据所述对焦区域和所述位置探测图形的检测结果,并按照调整后的对焦优先级对所述二维码图像进行调焦处理,并对调焦处理后的二维码图像进行解析。
可选的,根据预设的位置探测图形的图像特征,检测所述二维码图像中的位置探测图形,包括:
将所述二维码图像对应的二进制数据,转换到图像采集设备中显示屏的坐标系下;
将转换后的二进制数据进行二值化处理;
根据预设的位置探测图形的图像特征,并基于二值化处理后的二进制数据,检测所述二维码图像中的位置探测图形。
可选的,将所述二维码图像对应的二进制数据,转换到图像采集设备中显示屏的坐标系下,具体包括:
根据图像采集设备中显示屏的宽度和高度,按照第一转换映射关系,将所述二维码图像对应的二进制数据,转换到所述图像采集设备中显示屏的坐标系下。
可选的,根据预设的位置探测图形的图像特征,检测所述二维码图像中的位置探测图形,具体包括:
依次遍历二值化处理后的二进制数据中的各个数值;
若确定检测到连续的数值符合位置探测图形的颜色排列规则和颜色比例,则确定检测到位置探测图形,并记录检测到的位置探测图形的数量增加1。
可选的,根据预设的位置探测图形的图像特征,检测所述二维码图像中的位置探测图形,具体包括:
按照行方向依次遍历二值化处理后的二进制数据中的各个数值,若确定检测到连续的数值符合位置探测图形的颜色排列规则和颜色比例,则确定符合位置探测图形的颜色排列规则和颜色比例的数值对应的第一区域,并确定所述第一区域对应的第一中心点坐标;
以所述第一中心点坐标为中心,按照列方向依次遍历二值化处理后的二进制数据中的各个数值,并若确定检测到连续的数值符合位置探测图形的颜色排列规则和颜色比例,则根据所述第一区域,以及按照列方向遍历时符合位置探测图形的颜色排列规则和颜色比例的数值对应的第二区域,确定对应的第二中心点坐标;
以所述第二中心点坐标为中心,按照对角线方向依次遍历二值化处理后的二进制数据中的各个数值,并若确定仍检测到连续的数值符合位置探测图形的颜色排列规则和颜色比例,则确定检测到位置探测图形,并记录检测到的位置探测图形的数量增加1。
可选的,若位置探测图形的检测结果中所述位置探测图形的数量为0或1,则根据位置探测图形的检测结果,确定对焦区域,具体包括:
根据图像采集设备中显示屏的宽度和预设宽度比例值,确定所述对焦区域的宽度,并根据所述图像采集设备中显示屏的高度和预设高度比例值,确定所述对焦区域的高度;
根据所述图像采集设备中显示屏的宽度和所述对焦区域的宽度,确定所述对焦区域的左上角横坐标,并根据所述图像采集设备中显示屏的高度和所述对焦区域的高度,确定所述对焦区域的左上角纵坐标;
根据所述左上角横坐标、所述左上角纵坐标以及所述对焦区域的宽度和高度,确定所述对焦区域的右下角横坐标和右下角纵坐标;
根据所述左上角横坐标、所述左上角纵坐标、所述右下角横坐标和所述右下角纵坐标,确定所述对焦区域。
可选的,若位置探测图形的检测结果中所述位置探测图形的数量为2,则根据位置探测图形的检测结果,确定对焦区域,具体包括:
分别获取检测到的两个位置探测图形对应的第三中心点和第四中心点的横坐标和纵坐标;
比较所述第三中心点和所述第四中心点的横坐标的差值大小,以及所述第三中心点和所述第四中心点的纵坐标的差值大小;
根据横坐标的差值大小和纵坐标的差值大小的比较结果,确定对焦区域。
可选的,根据横坐标的差值大小和纵坐标的差值大小的比较结果,确定对焦区域,具体包括:
若确定所述第三中心点和所述第四中心点的横坐标的差值在误差范围内,则当所述第三中心点的纵坐标小于所述第四中心点的纵坐标,则确定所述对焦区域的左上角横坐标为所述第三中心点的横坐标,左上角纵坐标为所述第三中心点的纵坐标,左下角横坐标为所述第四中心点的横坐标,左下角纵坐标为所述第四中心点的纵坐标;当所述第三中心点的纵坐标不小于所述第四中心点的纵坐标,则确定所述对焦区域的左上角横坐标为所述第四中心点的横坐标,左上角纵坐标为所述第四中心点的纵坐标,左下角横坐标为所述第三中心点的横坐标,左下角纵坐标为所述第三中心点的纵坐标;
若确定所述第三中心点和所述第四中心点的横坐标的差值不在误差范围内,并确定所述第三中心点和所述第四中心点的纵坐标的差值在误差范围内,则当所述第三中心点的横坐标小于所述第四中心点的横坐标,则确定所述对焦区域的左上角横坐标为所述第三中心点的横坐标,左上角纵坐标为所述第三中心点的纵坐标,右上角横坐标为所述第四中心点的横坐标,右上角纵坐标为所述第四中心点的纵坐标;当所述第三中心点的横坐标不小于所述第四中心点的横坐标,则确定所述对焦区域的左上角横坐标为所述第四中心点的横坐标,左上角纵坐标为所述第四中心点的纵坐标,右上角横坐标为所述第三中心点的横坐标,右上角纵坐标为所述第三中心点的纵坐标;
若确定所述第三中心点和所述第四中心点的横坐标的差值不在误差范围内,并确定所述第三中心点和所述第四中心点的纵坐标的差值不在误差范围内,则当所述第三中心点的横坐标小于所述第四中心点的横坐标,则确定所述对焦区域的左下角横坐标为所述第三中心点的横坐标,左下角纵坐标为所述第三中心点的纵坐标,右上角横坐标为所述第四中心点的横坐标,右上角纵坐标为所述第四中心点的纵坐标;当所述第三中心点的横坐标不小于所述第四中心点的横坐标,则确定所述对焦区域的左下角横坐标为所述第四中心点的横坐标,左下角纵坐标为所述第四中心点的纵坐标,右上角横坐标为所述第三中心点的横坐标,右上角纵坐标为所述第三中心点的纵坐标;
根据确定出的所述对焦区域对应的横坐标和纵坐标,确定所述对焦区域。
可选的,若位置探测图形的检测结果中所述位置探测图形的数量为3,则根据位置探测图形的检测结果,确定对焦区域,具体包括:
分别获取检测到的三个位置探测图形对应的第五中心点、第六中心点和第七中心点的横坐标和纵坐标;
比较所述第五中心点和所述第六中心点的横坐标的差值大小,以及所述第五中心点和所述第六中心点的纵坐标的差值大小;
根据横坐标的差值大小和纵坐标的差值大小的比较结果,以及所述第七中心点的横坐标和纵坐标,确定对焦区域。
可选的,根据横坐标的差值大小和纵坐标的差值大小的比较结果,以及所述第七中心点的横坐标和纵坐标,确定对焦区域,具体包括:
若确定所述第五中心点和所述第六中心点的横坐标的差值在误差范围内,则当所述第五中心点的纵坐标小于所述第六中心点的纵坐标,则确定所述对焦区域的左上角横坐标为所述第五中心点的横坐标,左上角纵坐标为所述第五中心点的纵坐标,左下角横坐标为所述第六中心点的横坐标,左下角纵坐标为所述第六中心点的纵坐标,右上角横坐标为所述第七中心点的横坐标,右上角纵坐标为所述第七中心点的纵坐标;当所述第五中心点的纵坐标不小于所述第六中心点的纵坐标,则确定所述对焦区域的左上角横坐标为所述第六中心点的横坐标,左上角纵坐标为所述第六中心点的纵坐标,左下角横坐标为所述第五中心点的横坐标,左下角纵坐标为所述第五中心点的纵坐标,右上角横坐标为所述第七中心点的横坐标,右上角纵坐标为所述第七中心点的纵坐标;
若确定所述第五中心点和所述第六中心点的横坐标的差值不在误差范围内,并确定所述第五中心点和所述第六中心点的纵坐标的差值在误差范围内,则当所述第五中心点的横坐标小于所述第六中心点的横坐标,则确定所述对焦区域的左上角横坐标为所述第五中心点的横坐标,左上角纵坐标为所述第五中心点的纵坐标,左下角横坐标为所述第七中心点的横坐标,左下角纵坐标为所述第七中心点的纵坐标,右上角横坐标为所述第六中心点的横坐标,右上角纵坐标为所述第六中心点的纵坐标;当所述第五中心点的横坐标不小于所述第六中心点的横坐标,则确定所述对焦区域的左上角横坐标为所述第六中心点的横坐标,左上角纵坐标为所述第六中心点的纵坐标,左下角横坐标为所述第七中心点的横坐标,左下角纵坐标为所述第七中心点的纵坐标,右上角横坐标为所述第五中心点的横坐标,右上角纵坐标为所述第五中心点的纵坐标;
若确定所述第五中心点和所述第六中心点的横坐标的差值不在误差范围内,并确定所述第五中心点和所述第六中心点的纵坐标的差值不在误差范围内,则当所述第五中心点的横坐标小于所述第六中心点的横坐标,则确定所述对焦区域的左上角横坐标为所述第七中心点的横坐标,左上角纵坐标为所述第七中心点的纵坐标,左下角横坐标为所述第五中心点的横坐标,左下角纵坐标为所述第五中心点的纵坐标,右上角横坐标为所述第六中心点的横坐标,右上角纵坐标为所述第六中心点的纵坐标;当所述第五中心点的横坐标不小于所述第六中心点的横坐标,则确定所述对焦区域的左上角横坐标为所述第七中心点的横坐标,左上角纵坐标为所述第七中心点的纵坐标,左下角横坐标为所述第六中心点的横坐标,左下角纵坐标为所述第六中心点的纵坐标,右上角横坐标为所述第五中心点的横坐标,右上角纵坐标为所述第五中心点的纵坐标;
根据确定出的左上角横坐标、左上角纵坐标、左下角横坐标、左下角纵坐标、右上角横坐标和右上角纵坐标,以及预设误差调节值,确定所述对焦区域。
可选的,根据位置探测图形的检测结果,确定对焦区域之后,进一步包括:
根据图像采集设备中显示屏的宽度和高度,以及图像采集设备中摄像头坐标系下的最大坐标值,按照第二转换映射关系,将所述对焦区域对应的坐标,转换到所述摄像头坐标系下,并根据转换后的对焦区域对应的坐标,执行所述调整所述对焦区域的对焦优先级的步骤。
可选的,调整所述对焦区域的对焦优先级,具体包括:
按照预设放大单位权重值,确定所述对焦区域对应的单位权重值;
确定所述对焦区域内像素总数量;
根据所述对焦区域对应的单位权重值和像素总数量,确定所述对焦区域的对焦优先级。
可选的,对调焦处理后的二维码图像进行解析之后,进一步包括:
若确定解析失败,则确定当前累积扫描时间,并根据所述当前累积扫描时间,以及时间和摄像头模式的映射关系,确定当前的摄像头模式;
根据所述当前的摄像头模式和所述位置检测图形的检测结果,调整摄像头的放大系数;
在调整摄像头的放大系数后,结束当前帧扫描,并开始下一帧扫描,获得扫描的下一帧二维码图像。
可选的,根据所述当前累积扫描时间,以及时间和摄像头模式的映射关系,确定当前的摄像头模式,具体包括:
若所述当前累积扫描时间小于第一时间阈值,则确定当前的摄像头模式为正常模式;
若所述当前累积扫描时间大于等于第一时间阈值并小于第二时间阈值,则确定当前的摄像头模式为两点模式;
若所述当前累积扫描时间大于等于第二时间阈值并小于第三时间阈值,则确定当前的摄像头模式为一点模式;
若所述当前累积扫描时间大于等于第三时间阈值,并从第一帧开始位置探测图形的检测结果中所述位置探测图形的数量均小于2,则确定当前的摄像头模式为自由模式,其中,所述正常模式、所述两点模式、所述一点模式以及所述自由模式,与所述当前累积扫描时间关联,表征需要调整摄像头的放大系数的程度,并所述正常模式、所述两点模式、所述一点模式以及所述自由模式对应的需要调整摄像头的放大系数的程度依次升高,所述第三时间阈值大于所述第二时间阈值,所述第二时间阈值大于所述第一时间阈值。
可选的,根据所述当前的摄像头模式和所述位置检测图形的检测结果,调整摄像头的放大系数,具体包括:
若位置探测图形的检测结果中所述位置探测图形的数量为3,或者位置探测图形的检测结果中所述位置探测图形的数量为2,并所述当前的摄像头模式为除正常模式之外的其它模式,则根据检测到的两个位置探测图形的中心点坐标,确定所述二维码图像中二维码的宽度;
若确定所述二维码的宽度小于等于设定值,则以第一步长调整摄像头的放大系数,其中,所述设定值为摄像头的识别宽度与预设常量的比值。
可选的,根据所述当前的摄像头模式和所述位置检测图形的检测结果,调整摄像头的放大系数,具体包括:
若位置探测图形的检测结果中所述位置探测图形的数量为1,并所述当前的摄像头模式为一点模式或自由模式,则以第二步长调整摄像头的放大系数,其中,所述第二步长大于第一步长。
可选的,根据所述当前的摄像头模式和所述位置检测图形的检测结果,调整摄像头的放大系数,具体包括:
若位置探测图形的检测结果中所述位置探测图形的数量为0,并所述当前的摄像头模式为自由模式,则确定当前时刻与上次自由模式切换时刻的差值大于等于自由模式常态持续时间时,调整摄像头的放大系数为第一步长的预设倍数;
确定当前时刻与上次自由模式切换时刻的差值大于等于自由模式放大状态持续时间时,调整摄像头的放大系数为进入自由模式之前的放大系数。
可选的,根据所述当前的摄像头模式和所述位置检测图形的检测结果,调整摄像头的放大系数之前,进一步包括:
确定所述当前累积扫描时间和上一次调整摄像头的放大系数的时间之间的差值大于预设冷却时间,并确定当前不处于对焦周期内。
一种二维码识别装置,包括:
获取模块,用于获取扫描的当前帧二维码图像;
检测模块,用于根据预设的位置探测图形的图像特征,检测所述二维码图像中的位置探测图形,其中,所述位置探测图形表征二维码的定位图案,用于定位二维码的位置;
确定模块,用于根据位置探测图形的检测结果,确定对焦区域;
调整模块,用于调整所述对焦区域的对焦优先级;
解码模块,用于根据所述对焦区域和所述位置探测图形的检测结果,并按照调整后的对焦优先级对所述二维码图像进行调焦处理,并对调焦处理后的二维码图像进行解析。
可选的,根据预设的位置探测图形的图像特征,检测所述二维码图像中的位置探测图形时,检测模块具体用于:
将所述二维码图像对应的二进制数据,转换到图像采集设备中显示屏的坐标系下;
将转换后的二进制数据进行二值化处理;
根据预设的位置探测图形的图像特征,并基于二值化处理后的二进制数据,检测所述二维码图像中的位置探测图形。
可选的,将所述二维码图像对应的二进制数据,转换到图像采集设备中显示屏的坐标系下时,检测模块具体用于:
根据图像采集设备中显示屏的宽度和高度,按照第一转换映射关系,将所述二维码图像对应的二进制数据,转换到所述图像采集设备中显示屏的坐标系下。
可选的,根据预设的位置探测图形的图像特征,检测所述二维码图像中的位置探测图形时,检测模块具体用于:
依次遍历二值化处理后的二进制数据中的各个数值;
若确定检测到连续的数值符合位置探测图形的颜色排列规则和颜色比例,则确定检测到位置探测图形,并记录检测到的位置探测图形的数量增加1。
可选的,根据预设的位置探测图形的图像特征,检测所述二维码图像中的位置探测图形时,检测模块具体用于:
按照行方向依次遍历二值化处理后的二进制数据中的各个数值,若确定检测到连续的数值符合位置探测图形的颜色排列规则和颜色比例,则确定符合位置探测图形的颜色排列规则和颜色比例的数值对应的第一区域,并确定所述第一区域对应的第一中心点坐标;
以所述第一中心点坐标为中心,按照列方向依次遍历二值化处理后的二进制数据中的各个数值,并若确定检测到连续的数值符合位置探测图形的颜色排列规则和颜色比例,则根据所述第一区域,以及按照列方向遍历时符合位置探测图形的颜色排列规则和颜色比例的数值对应的第二区域,确定对应的第二中心点坐标;
以所述第二中心点坐标为中心,按照对角线方向依次遍历二值化处理后的二进制数据中的各个数值,并若确定仍检测到连续的数值符合位置探测图形的颜色排列规则和颜色比例,则确定检测到位置探测图形,并记录检测到的位置探测图形的数量增加1。
可选的,若位置探测图形的检测结果中所述位置探测图形的数量为0或1,则根据位置探测图形的检测结果,确定对焦区域时,确定模块具体用于:
根据图像采集设备中显示屏的宽度和预设宽度比例值,确定所述对焦区域的宽度,并根据所述图像采集设备中显示屏的高度和预设高度比例值,确定所述对焦区域的高度;
根据所述图像采集设备中显示屏的宽度和所述对焦区域的宽度,确定所述对焦区域的左上角横坐标,并根据所述图像采集设备中显示屏的高度和所述对焦区域的高度,确定所述对焦区域的左上角纵坐标;
根据所述左上角横坐标、所述左上角纵坐标以及所述对焦区域的宽度和高度,确定所述对焦区域的右下角横坐标和右下角纵坐标;
根据所述左上角横坐标、所述左上角纵坐标、所述右下角横坐标和所述右下角纵坐标,确定所述对焦区域。
可选的,若位置探测图形的检测结果中所述位置探测图形的数量为2,则根据位置探测图形的检测结果,确定对焦区域时,确定模块具体用于:
分别获取检测到的两个位置探测图形对应的第三中心点和第四中心点的横坐标和纵坐标;
比较所述第三中心点和所述第四中心点的横坐标的差值大小,以及所述第三中心点和所述第四中心点的纵坐标的差值大小;
根据横坐标的差值大小和纵坐标的差值大小的比较结果,确定对焦区域。
可选的,根据横坐标的差值大小和纵坐标的差值大小的比较结果,确定对焦区域时,确定模块具体用于:
若确定所述第三中心点和所述第四中心点的横坐标的差值在误差范围内,则当所述第三中心点的纵坐标小于所述第四中心点的纵坐标,则确定所述对焦区域的左上角横坐标为所述第三中心点的横坐标,左上角纵坐标为所述第三中心点的纵坐标,左下角横坐标为所述第四中心点的横坐标,左下角纵坐标为所述第四中心点的纵坐标;当所述第三中心点的纵坐标不小于所述第四中心点的纵坐标,则确定所述对焦区域的左上角横坐标为所述第四中心点的横坐标,左上角纵坐标为所述第四中心点的纵坐标,左下角横坐标为所述第三中心点的横坐标,左下角纵坐标为所述第三中心点的纵坐标;
若确定所述第三中心点和所述第四中心点的横坐标的差值不在误差范围内,并确定所述第三中心点和所述第四中心点的纵坐标的差值在误差范围内,则当所述第三中心点的横坐标小于所述第四中心点的横坐标,则确定所述对焦区域的左上角横坐标为所述第三中心点的横坐标,左上角纵坐标为所述第三中心点的纵坐标,右上角横坐标为所述第四中心点的横坐标,右上角纵坐标为所述第四中心点的纵坐标;当所述第三中心点的横坐标不小于所述第四中心点的横坐标,则确定所述对焦区域的左上角横坐标为所述第四中心点的横坐标,左上角纵坐标为所述第四中心点的纵坐标,右上角横坐标为所述第三中心点的横坐标,右上角纵坐标为所述第三中心点的纵坐标;
若确定所述第三中心点和所述第四中心点的横坐标的差值不在误差范围内,并确定所述第三中心点和所述第四中心点的纵坐标的差值不在误差范围内,则当所述第三中心点的横坐标小于所述第四中心点的横坐标,则确定所述对焦区域的左下角横坐标为所述第三中心点的横坐标,左下角纵坐标为所述第三中心点的纵坐标,右上角横坐标为所述第四中心点的横坐标,右上角纵坐标为所述第四中心点的纵坐标;当所述第三中心点的横坐标不小于所述第四中心点的横坐标,则确定所述对焦区域的左下角横坐标为所述第四中心点的横坐标,左下角纵坐标为所述第四中心点的纵坐标,右上角横坐标为所述第三中心点的横坐标,右上角纵坐标为所述第三中心点的纵坐标;
根据确定出的所述对焦区域对应的横坐标和纵坐标,确定所述对焦区域。
可选的,若位置探测图形的检测结果中所述位置探测图形的数量为3,则根据位置探测图形的检测结果,确定对焦区域时,确定模块具体用于:
分别获取检测到的三个位置探测图形对应的第五中心点、第六中心点和第七中心点的横坐标和纵坐标;
比较所述第五中心点和所述第六中心点的横坐标的差值大小,以及所述第五中心点和所述第六中心点的纵坐标的差值大小;
根据横坐标的差值大小和纵坐标的差值大小的比较结果,以及所述第七中心点的横坐标和纵坐标,确定对焦区域。
可选的,根据横坐标的差值大小和纵坐标的差值大小的比较结果,以及所述第七中心点的横坐标和纵坐标,确定对焦区域时,确定模块具体用于:
若确定所述第五中心点和所述第六中心点的横坐标的差值在误差范围内,则当所述第五中心点的纵坐标小于所述第六中心点的纵坐标,则确定所述对焦区域的左上角横坐标为所述第五中心点的横坐标,左上角纵坐标为所述第五中心点的纵坐标,左下角横坐标为所述第六中心点的横坐标,左下角纵坐标为所述第六中心点的纵坐标,右上角横坐标为所述第七中心点的横坐标,右上角纵坐标为所述第七中心点的纵坐标;当所述第五中心点的纵坐标不小于所述第六中心点的纵坐标,则确定所述对焦区域的左上角横坐标为所述第六中心点的横坐标,左上角纵坐标为所述第六中心点的纵坐标,左下角横坐标为所述第五中心点的横坐标,左下角纵坐标为所述第五中心点的纵坐标,右上角横坐标为所述第七中心点的横坐标,右上角纵坐标为所述第七中心点的纵坐标;
若确定所述第五中心点和所述第六中心点的横坐标的差值不在误差范围内,并确定所述第五中心点和所述第六中心点的纵坐标的差值在误差范围内,则当所述第五中心点的横坐标小于所述第六中心点的横坐标,则确定所述对焦区域的左上角横坐标为所述第五中心点的横坐标,左上角纵坐标为所述第五中心点的纵坐标,左下角横坐标为所述第七中心点的横坐标,左下角纵坐标为所述第七中心点的纵坐标,右上角横坐标为所述第六中心点的横坐标,右上角纵坐标为所述第六中心点的纵坐标;当所述第五中心点的横坐标不小于所述第六中心点的横坐标,则确定所述对焦区域的左上角横坐标为所述第六中心点的横坐标,左上角纵坐标为所述第六中心点的纵坐标,左下角横坐标为所述第七中心点的横坐标,左下角纵坐标为所述第七中心点的纵坐标,右上角横坐标为所述第五中心点的横坐标,右上角纵坐标为所述第五中心点的纵坐标;
若确定所述第五中心点和所述第六中心点的横坐标的差值不在误差范围内,并确定所述第五中心点和所述第六中心点的纵坐标的差值不在误差范围内,则当所述第五中心点的横坐标小于所述第六中心点的横坐标,则确定所述对焦区域的左上角横坐标为所述第七中心点的横坐标,左上角纵坐标为所述第七中心点的纵坐标,左下角横坐标为所述第五中心点的横坐标,左下角纵坐标为所述第五中心点的纵坐标,右上角横坐标为所述第六中心点的横坐标,右上角纵坐标为所述第六中心点的纵坐标;当所述第五中心点的横坐标不小于所述第六中心点的横坐标,则确定所述对焦区域的左上角横坐标为所述第七中心点的横坐标,左上角纵坐标为所述第七中心点的纵坐标,左下角横坐标为所述第六中心点的横坐标,左下角纵坐标为所述第六中心点的纵坐标,右上角横坐标为所述第五中心点的横坐标,右上角纵坐标为所述第五中心点的纵坐标;
根据确定出的左上角横坐标、左上角纵坐标、左下角横坐标、左下角纵坐标、右上角横坐标和右上角纵坐标,以及预设误差调节值,确定所述对焦区域。
可选的,根据位置探测图形的检测结果,确定对焦区域之后,包括转换模块,用于:
根据图像采集设备中显示屏的宽度和高度,以及图像采集设备中摄像头坐标系下的最大坐标值,按照第二转换映射关系,将所述对焦区域对应的坐标,转换到所述摄像头坐标系下,并以使所述调整模块根据转换后的对焦区域对应的坐标,执行所述调整所述对焦区域的对焦优先级的步骤。
可选的,调整所述对焦区域的对焦优先级时,调整模块具体用于:
按照预设放大单位权重值,确定所述对焦区域对应的单位权重值;
确定所述对焦区域内像素总数量;
根据所述对焦区域对应的单位权重值和像素总数量,确定所述对焦区域的对焦优先级。
可选的,对调焦处理后的二维码图像进行解析之后,进一步包括处理模块,用于:
若确定解析失败,则确定当前累积扫描时间,并根据所述当前累积扫描时间,以及时间和摄像头模式的映射关系,确定当前的摄像头模式;
根据所述当前的摄像头模式和所述位置检测图形的检测结果,调整摄像头的放大系数;
在调整摄像头的放大系数后,结束当前帧扫描,并开始下一帧扫描,获得扫描的下一帧二维码图像。
可选的,根据所述当前累积扫描时间,以及时间和摄像头模式的映射关系,确定当前的摄像头模式时,处理模块具体用于:
若所述当前累积扫描时间小于第一时间阈值,则确定当前的摄像头模式为正常模式;
若所述当前累积扫描时间大于等于第一时间阈值并小于第二时间阈值,则确定当前的摄像头模式为两点模式;
若所述当前累积扫描时间大于等于第二时间阈值并小于第三时间阈值,则确定当前的摄像头模式为一点模式;
若所述当前累积扫描时间大于等于第三时间阈值,并从第一帧开始位置探测图形的检测结果所述位置探测图形的中数量均小于2,则确定当前的摄像头模式为自由模式,其中,所述正常模式、所述两点模式、所述一点模式以及所述自由模式,与所述当前累积扫描时间关联,表征需要调整摄像头的放大系数的程度,并所述正常模式、所述两点模式、所述一点模式以及所述自由模式对应的需要调整摄像头的放大系数的程度依次升高,所述第三时间阈值大于所述第二时间阈值,所述第二时间阈值大于所述第一时间阈值。
可选的,根据所述当前的摄像头模式和所述位置检测图形的检测结果,调整摄像头的放大系数时,处理模块具体用于:
若位置探测图形的检测结果中所述位置探测图形的数量为3,或者位置探测图形的检测结果中所述位置探测图形的数量为2,并所述当前的摄像头模式为除正常模式之外的其它模式,则根据检测到的两个位置探测图形的中心点坐标,确定所述二维码图像中二维码的宽度;
若确定所述二维码的宽度小于等于设定值,则以第一步长调整摄像头的放大系数,其中,所述设定值为摄像头的识别宽度与预设常量的比值。
可选的,根据所述当前的摄像头模式和所述位置检测图形的检测结果,调整摄像头的放大系数时,处理模块具体用于:
若位置探测图形的检测结果中所述位置探测图形的数量为1,并所述当前的摄像头模式为一点模式或自由模式,则以第二步长调整摄像头的放大系数,其中,所述第二步长大于第一步长。
可选的,根据所述当前的摄像头模式和所述位置检测图形的检测结果,调整摄像头的放大系数时,处理模块具体用于:
若位置探测图形的检测结果中所述位置探测图形的数量为0,并所述当前的摄像头模式为自由模式,则确定当前时刻与上次自由模式切换时刻的差值大于等于自由模式常态持续时间时,调整摄像头的放大系数为第一步长的预设倍数;
确定当前时刻与上次自由模式切换时刻的差值大于等于自由模式放大状态持续时间时,调整摄像头的放大系数为进入自由模式之前的放大系数。
可选的,根据所述当前的摄像头模式和所述位置检测图形的检测结果,调整摄像头的放大系数之前,处理模块还用于:
确定所述当前累积扫描时间和上一次调整摄像头的放大系数的时间之间的差值大于预设冷却时间,并确定当前不处于对焦周期内。
一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一种二维码识别方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种二维码识别方法的步骤。
本申请实施例中,获取扫描的当前帧二维码图像,根据位置探测图形的图像特征,检测二维码图像中的位置探测图形,并根据位置探测图形的检测结果,确定对焦区域,调整对焦区域的对焦优先级,进而对二维码图像进行调焦处理,并对调焦处理后的二维码图像进行解析,这样,通过位置探测图形的检测结果,自适应进行对焦调整,确定出更加准确的对焦区域,并提升对该对焦区域的对焦优先级,从而可以提高二维码识别成功率。
附图说明
图1为本申请实施例中二维码图像中位置探测图形的示意图;
图2为本申请实施例中一种二维码识别方法流程图;
图3为本申请实施例中位置探测图形三遍检测过程示意图;
图4为本申请实施例中对焦区域的对焦优先级比较示意图;
图5为本申请实施例中摄像头模式示意图;
图6为本申请实施例中周期同步原理示意图;
图7为本申请实施例中另一种二维码识别方法流程图;
图8为本申请实施例中二维码识别装置结构示意图;
图9为本申请实施例中电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,并不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为便于对本申请实施例的理解,下面先对几个概念进行简单介绍:
二维码:本申请实施例中指快速响应二维码(Quick Response Code,QR Code),是按照一定规则生成的,并由多个黑、白色点组成的矩形图样。目前,二维码共有40个尺寸版本(Version),Version 1是21x21的矩阵,Version 2是25x25的矩阵,每增加一个尺寸,矩阵每个维度增加4,具体公式是:(V-1)*4+21(V是版本号),最高Version 40的尺寸是177x 177的正方形,本申请实施例中对于二维码的尺寸并不进行限制,均是可以适用的。
摄像头:通常共有两层含义,第一层含义:在硬件层面,指能够将二维码图案信息对应的模拟信号转换成数字信号的设备;第二层含义:在软件层面,指一套处理二维码图案对应的数字信息的应用程序接口(Application Programming Interface)。本申请实施例中主要是通过对软件层面摄像头的优化,提升了硬件层面使用摄像头识别二维码的成功率。
位置探测图形(Position Detection Pattern):表示二维码基本的定位图案,例如参阅图1所示,为本申请实施例中二维码图像中位置探测图形的示意图,由宽度比例为1:1:3:1:1,并从左往右排列的黑色、白色、黑色、白色、黑色区域组成,形如“回”字形的特定图案,其中,每个位置探测图形有两边呈白色条状区域,称为位置探测图形分割线(Separators for Position Detection Patterns)。快速响应二维码有三个位置探测图形,位于二维码的左上角、右上角和左下角。
目前,二维码以其信息传递的有效性和快捷性,是移动互联网时代信息传递中重要的载体,广泛应用于各种场景中,但是在实际的使用场景中,进行扫描的摄像头设备与展示的二维码图案之间的相对位置、距离角度等因素复杂多变,摄像头与原始二维码位置的因素让像素的边界区分变得复杂,进而让信息的采集变得困难,导致无法快速解码识别,降低了识别成功率,例如,在公司大会议室内进行互联网技术知识分享,可能会以二维码形式展示参考资料的分享地址,全场人员可能需要使用智能手机识别二维码,此时会议室中参会人员与二维码的距离、角度等情况比较复杂,尤其是大会议室后面的人员可能会识别不出二维码;又例如,路边有一家火爆的外送店,人们排队等待的同时提前拿出手机扫描收款二维码进行支付,支付场景比较复杂,摄像头与二维码的距离、角度等是影响最终识别成功率较为重要的因素,因此,对于复杂使用场景中,如何提升二维码识别的成功率是目前亟待解决的问题。
针对上述问题,本申请实施例中提供了一种二维码识别方法,可以实现摄像头自适应对焦,获取扫描的当前帧二维码图像,根据预设的位置探测图形的图像特征,检测二维码图像中的位置探测图像,并根据位置探测图形的检测结果,确定对焦区域,并调整对焦区域的对焦优先级,进而可以根据对焦区域和位置探测图形的检测结果,按照调整后的对焦优先级对二维码图像进行调焦处理,实现对二维码图像进行解析,这样,基于位置探测图形的检测结果,进行自适应对焦,确定出合适的对焦区域和对焦优先级,对当前帧二维码图像进行解析,可以提高识别率,本申请实施例中的二维码识别方法属于二进制数据采样、解码优化技术中的摄像头端优化技术,能够充分利用摄像头端对二维码图像的处理能力,可以适用于二维码图像与摄像头距离较远、角度复杂等应用场景,可以提高识别成功率。
基于上述实施例,下面对本申请实施例中的二维码识别方法进行说明,参阅图2所示,为本申请实施例中一种二维码识别方法流程图,该方法包括:
步骤200:获取扫描的当前帧二维码图像。
通常用户可以采用智能手机等设备扫描二维码,开始扫描后,可以获取到各帧扫描到的二维码图像,直至确定出最终的扫描结果,例如扫描成功或扫描失败等,本申请实施例中可以针对每帧二维码图像进行处理,并且当前帧识别失败后,还可以将已有的扫码定位结果,传递给下一帧扫描,有效提高下一帧的识别成功率,从而可以提升整体二维码识别的成功率。
步骤210:根据预设的位置探测图形的图像特征,检测二维码图像中的位置探测图形,其中,位置探测图形表征二维码的定位图案,用于定位二维码的位置。
实际中,通常扫描获取到的一帧二维码图像是一个一维二进制数组,且以行为主轴存储信息,而后续的处理均建立在图像采集设备中显示屏的垂直方向为主轴的一个坐标系之上,其中坐标系原点位于图像采集设备左上角,因此,本申请实施例中需要将以行为主轴的二进制数据转换为以列为主轴,便于后续摄像头的识别。
本申请实施例中提供了一种可能的实施方式,具体执行步骤210时,包括:
S1、将二维码图像对应的二进制数据,转换到图像采集设备中显示屏的坐标系下。
具体包括:根据图像采集设备中显示屏的宽度和高度,按照第一转换映射关系,将二维码图像对应的二进制数据,转换到图像采集设备中显示屏的坐标系下。
例如,假设显示屏宽6像素,高2像素,获取的原始一帧二维码图像对应的二进制数据(一维数组)为[a,b,c,d,e,f,g,h,i,j,k,l],即这个数组就是以行为主轴的,其实际上代表的二维码图像数据如下:
进行转换后,转换后的二进制数据以列为主轴,其实际代表的二维码图像数据为:
对应的一维数组也即[g,a,h,b,i,c,j,d,k,e,l,f]。
也就是说,[a,b,c,d,e,f,g,h,i,j,k,l]和[g,a,h,b,i,c,j,d,k,e,l,f]分别就是以行为主轴和以列为主轴的一维数组,前者是摄像头获取的原始二维码图像数据,后者是本申请实施例中转换到显示屏的坐标系下的二维码图像数据。
具体第一转换映射关系,本申请实施例中可以根据实际摄像头设置的旋转角度D不同来设置,例如,以取值为正代表顺时针,有意义的取值包括90、180、270,以row()代表原始一维数组,column()代表转换后竖直方向一维数组,width表示图像采集设备中显示屏的宽度,height表示显示屏的高度,则具体可以分为以下几种情况:
第一种情况:若旋转角度D=90,则第一转换映射关系为:
column(x*height+height-y-1)=row(x+y*width)
其中x∈[0,width)、y∈[0,height),x和y为正整数,与二维码图像的总像素数量有关。
第二种情况:若旋转角度D=180,则第一转换映射关系为:
column(x+y*width)=row(width*height-1-x-y*width)
其中,x∈[0,width)、y∈[0,height)。
第三种情况:若旋转角度D=270,则第一转换映射关系为:
column(y-x*height+width*height-height)=row(x+y*width)
其中,x∈[0,width)、y∈[0,height)。
这样,可以根据摄像头的旋转角度,确定不同的第一转换映射关系,进而将获取的原始二维码图像对应的二维码数据,转换到显示屏的坐标系下,例如,取D=90,即顺时针旋转90度,基于第一种情况中的公式计算,就可以得到竖直方向坐标系即显示屏的坐标系下的一维数组。
S2、将转换后的二进制数据进行二值化处理。
本申请实施例中,转换后的二进制数据包含了扫描到的二维码图像的所有信息,而实际中二维码可能会有多种装饰图样,在进行二维码识别时最终的有效信息是白色和黑色像素点的排列,因此需要将二维码图像进行二值化处理,最终获得仅仅只包含黑/白点信息的一维数组,具体地,可以使用任意合适的图像二值化算法,本申请实施例中并不进行限制,二值化处理后得到一个一维二进制数组。
S3、根据预设的位置探测图形的图像特征,并基于二值化处理后的二进制数据,检测二维码图像中的位置探测图形。
进而转换坐标系并二值化处理后,可以进行检测二维码图像中的位置探测图形,具体本申请实施例中提供了两种可能的实施方式:
第一种实施方式:一遍遍历,具体包括:
1)依次遍历二值化处理后的二进制数据中的各个数值。
2)若确定检测到连续的数值符合位置探测图形的颜色排列规则和颜色比例,则确定检测到位置探测图形,并记录检测到的位置探测图形的数量增加1。
其中,位置探测图像的颜色排列规则为黑色、白色、黑色、白色、黑色,并各色块区域对应的颜色比例为1:1:3:1:1。
这样,遍历并逐个检测二进制数据中的各个数值,当检测到连续的数值符合黑色、白色、黑色、白色、黑色排列规则,并颜色比例为1:1:3:1:1,当然并不需要严格为1:1:3:1:1,只需要颜色比例在一定误差范围内即可,则确定检测到位置探测图形,位置探测图形的数量加1,并且进一步地还可以标记该位置探测图形区域的中心点坐标。
第二种实施方式:三遍遍历,具体包括:
1)按照行方向依次遍历二值化处理后的二进制数据中的各个数值,若确定检测到连续的数值符合位置探测图形的颜色排列规则和颜色比例,则确定符合位置探测图形的颜色排列规则和颜色比例的数值对应的第一区域,并确定第一区域对应的第一中心点坐标。
2)以第一中心点坐标为中心,按照列方向依次遍历二值化处理后的二进制数据中的各个数值,并若确定检测到连续的数值符合位置探测图形的颜色排列规则和颜色比例,则根据第一区域,以及按照列方向遍历时符合位置探测图形的颜色排列规则和颜色比例的数值对应的第二区域,确定对应的第二中心点坐标。
3)以第二中心点坐标为中心,按照对角线方向依次遍历二值化处理后的二进制数据中的各个数值,并若确定仍检测到连续的数值符合位置探测图形的颜色排列规则和颜色比例,则确定检测到位置探测图形,并记录检测到的位置探测图形的数量增加1。
这样,分别按照行方向、列方向和对角线方向,进行三遍遍历,可以提高位置探测图形检测的准确性,例如,参阅图3所示,为本申请实施例中位置探测图形三遍检测过程示意图,如图3中第一个图所示,为按照行方向遍历结果,检测到颜色排列规则和颜色比例符合黑色、白色、黑色、白色、黑色排列规则,并颜色比例为1:1:3:1:1,则获得该区域中间元素的行坐标,即第一中心点坐标的行坐标,进而如图3中第二个图所示,以第一中心点坐标为中心,按照列方向进行遍历,若仍然满足该颜色排列规则和颜色比例,则计算两次遍历扫描的中心点位置,即第一区域和第二区域确定出的第二中心点坐标,最后如图3中第三个图所示,以第二中心点坐标为中心,按照对角线方向进行遍历,若在误差允许范围内三个方向的颜色排列规则和颜色比例均符合上述要求,则确定位置探测图形检测成功,位置探测图形的数量加1。
进一步地,若是按照三遍遍历检测到位置探测图形,此时位置探测图形的中心点坐标可以是三次检测到符合颜色排列规则和颜色比例对应的三个区域各自的中心点的平均值。
步骤220:根据位置探测图形的检测结果,确定对焦区域,并调整对焦区域的对焦优先级。
执行步骤220时,具体包括:
S1、根据位置探测图形的检测结果,确定对焦区域。
本申请实施例中,根据位置探测图形的检测结果,确定出对焦区域,对焦区域随着位置探测图形的检测结果(例如数量、具体位置数值等)的变化而变化,实现动态自适应的对焦。
S2、调整对焦区域的对焦优先级。
进一步地,由于本申请实施例中将二维码图像对应的二进制数据进行转换后,转换到显示屏的坐标系下,该显示屏的坐标系CS2最小值为0,最大值分别是图像采集设备中显示屏的宽和高,而针对部分平台的摄像头应用程序接口,对焦区域使用的坐标系CS1与当前使用的显示屏的坐标系CS2并不兼容,例如包括坐标系是否包含负值、坐标系的最大值等因素,因此,为了使用摄像头接口进行精准对焦,需要进行这两个坐标系的映射,即输入确定出的对焦区域rect,经过映射函数f后,得到与摄像头接口适配的对焦区域rect′。
具体根据位置探测图形的检测结果,确定对焦区域之后,进一步包括:根据图像采集设备中显示屏的宽度和高度,以及图像采集设备中摄像头坐标系下的最大坐标值,按照第二转换映射关系,将对焦区域对应的坐标,转换到摄像头坐标系下,并根据转换后的对焦区域对应的坐标,执行调整对焦区域的对焦优先级的步骤。
例如,定义rect(l,t,r,b)与rect′(l′,t′,r′,b′),则第二转换映射关系如下:
l′=l*MAX/w-MAX/2
t′=t*MAX/h-MAX/2
r′=r*MAX/w-MAX/2
b′=b*MAX/h-MAX/2
其中w、h分别代表显示屏的宽、高,MAX是图像采集设备中摄像头接口所用的坐标系下的最大坐标值,需要说明的是,若摄像头应用程序接口所用坐标系中同样不包含负值,则可以去掉MAX/2这一项。
这样,基于第二转换映射关系得到rect′后,对该对焦区域的对焦优先级进行调整,则针对调整对焦区域的对焦优先级,本申请实施例中提供了一种可能的实施方式,具体包括:
S2.1、按照预设放大单位权重值,确定对焦区域对应的单位权重值。
本申请实施例中,针对确定出的对焦区域,可以放大对焦区域的对焦优先级,相应地可以先放大对焦区域的单位权重值。
S2.2、确定对焦区域内像素总数量。
S2.3、根据对焦区域对应的单位权重值和像素总数量,确定对焦区域的对焦优先级。
例如,根据单位权重值和像素总数量,可以确定对焦区域的总的权重值:
w=n*w1
其中,n是对焦区域内像素总数量,w1是对焦区域的单位权重值,总的权重值越高说明对焦优先级越高,最终摄像头将按照总的权重值对应的对焦优先级对区域内容进行对焦。
例如,参阅图4所示,为本申请实施例中对焦区域的对焦优先级比较示意图,图4中示例了三个区域,分别为r1、r2、r3,其中,r1的单位权重值为200,r2的单位权重值为1,r3的单位权重值为1000,然后,确定r1、r2、r3内像素总数量,对应相乘后,确定出总的权重值的大小为r1>r3>r2,则这三个区域的对焦优先级为r1>r3>r2。
这样,确定出对焦区域后,可以通过摄像头应用程序接口提升该对焦区域的单位权重值,进而提升该对焦区域的对焦优先级,能显著提升该对焦区域识别成功可能性。
步骤230:根据对焦区域和位置探测图形的检测结果,并按照调整后的对焦优先级对二维码图像进行调焦处理,并对调焦处理后的二维码图像进行解析。
这样,摄像头可以按照调整后的对焦优先级,优先对对焦区域的内容进行对焦,调焦处理后,对二维码图像中二维码进行识别和解析,即解析出二维码的内容。
本申请实施例中,获取扫描的当前帧二维码图像,检测二维码图像中的位置探测图形,并根据位置探测图形的检测结果,确定对焦区域,以及调整对焦区域的对焦优先级,进而根据对焦区域和位置探测图形的检测结果,并按照调整后的对焦优先级对二维码图像进行调焦处理,并对调焦处理后的二维码图像进行解析,这样,通过位置探测图形的检测结果,自适应进行对焦调整,确定出更加准确的对焦区域,并提升对该对焦区域的对焦优先级,从而可以提高二维码解析和识别成功率。
基于上述实施例,下面对上述步骤220中根据位置探测图形的检测结果,确定对焦区域的具体方式进行介绍,基于不同的位置探测图形的检测结果,对应不同的实现方式,无论位置探测图形的检测结果中位置探测图形的数量n为多少,最终会获得一个当前坐标系下的矩形(即对焦区域),具体可以分为以下几种情况:
第一种情况:若位置探测图形的检测结果中所述位置探测图形的数量为0或1,采用算法A1,输入为:图像采集设备中显示屏的宽度w和高度h,输出为:对焦区域rect。
算法A1:根据位置探测图形的检测结果,确定对焦区域,具体包括:
S1、根据图像采集设备中显示屏的宽度和预设宽度比例值,确定对焦区域的宽度,并根据图像采集设备中显示屏的高度和预设高度比例值,确定对焦区域的高度。
例如,对焦区域rect的宽度为wr:
wr=w*Pw
其中,Pw是预设宽度比例值,表示图像采集设备中显示屏的最佳展示区域宽度占显示屏宽度的比例值,较佳的Pw可以位于[0.6,0.75]之间,本申请实施例中并不进行限制。
对焦区域rect的高度为hr:
hr=w*Ph
其中,Ph是预设高度比例值,表示图像采集设备中显示屏的最佳展示区域高度占显示屏高度的比例值,较佳的Ph可以位于[0.6,0.75]之间,本申请实施例中并不进行限制。
S2、根据图像采集设备中显示屏的宽度和对焦区域的宽度,确定对焦区域的左上角横坐标,并根据图像采集设备中显示屏的高度和对焦区域的高度,确定对焦区域的左上角纵坐标。
例如,对焦区域rect的左上角横坐标为xr:
xr=(w-wr)/2
对焦区域rect的左上角纵坐标为yr:
yr=(h-hr)/2
S3、根据左上角横坐标、左上角纵坐标以及对焦区域的宽度和高度,确定对焦区域的右下角横坐标和右下角纵坐标。
实际中,由于对焦区域为矩形,而矩形是上下以及左右的边是平行的,因此,左上角横坐标和对焦区域的宽度的和即为右下角横坐标,左上角纵坐标和对焦区域的高度的和即为右下角纵坐标。
例如,对焦区域rect的右下角横坐标为:xr+wr。
对焦区域rect的右下角纵坐标为:yr+hr。
S4、根据左上角横坐标、左上角纵坐标、右下角横坐标和右下角纵坐标,确定对焦区域。
对焦区域为矩形,因此只需采用对角的两个点的坐标来表示即可,例如,输出的对焦区域为:rect(xr,yr,xr+wr,yr+hr)。
第二种情况:若位置探测图形的检测结果中位置探测图形的数量为2,采用算法A2,输入为:检测到的两个位置探测图形,对应的第三中心点的坐标和第四中心点的坐标分别是(x1,y1)、(x2,y2),输出为:对焦区域rect。
算法A2:根据位置探测图形的检测结果,确定对焦区域,具体包括:
S1、分别获取检测到的两个位置探测图形对应的第三中心点和第四中心点的横坐标和纵坐标。
S2、比较第三中心点和第四中心点的横坐标的差值大小,以及第三中心点和第四中心点的纵坐标的差值大小。
即分别比较检测到的两个位置探测图形的x1和x2,以及y1和y2的差值大小,从而基于不同的比较结果,采用相应的方式确定对焦区域。
S3、根据横坐标的差值大小和纵坐标的差值大小的比较结果,确定对焦区域。
具体地,执行该S3确定对焦区域时,包括:
S3.1、确定对焦区域对应的横坐标和纵坐标。
基于不同的比较结果,可以分为以下几种实施方式:
第一种方式:若确定第三中心点和第四中心点的横坐标的差值在误差范围内,则:
1)当第三中心点的纵坐标小于第四中心点的纵坐标,则确定对焦区域的左上角横坐标为第三中心点的横坐标,左上角纵坐标为第三中心点的纵坐标,左下角横坐标为第四中心点的横坐标,左下角纵坐标为所述第四中心点的纵坐标。
2)当第三中心点的纵坐标不小于第四中心点的纵坐标,则确定对焦区域的左上角横坐标为第四中心点的横坐标,左上角纵坐标为第四中心点的纵坐标,左下角横坐标为所述第三中心点的横坐标,左下角纵坐标为第三中心点的纵坐标。
例如,比较第三中心点的横坐标x1和第四中心点的横坐标x2,若x1和x2的差值在误差范围内,即可以理解为在一定误差范围内近似相等,则计算对焦区域rect的左上角坐标(xlt,ylt)、左下角坐标(xlb,ylb)。
1)当第三中心点的纵坐标小于第四中心点的纵坐标y1<y2,则xlt=x1,ylt=y1;xlb=x2,ylb=y2。
2)当第三中心点的纵坐标不小于第四中心点的纵坐标y1≥y2,则xlt=x2,ylt=y2;xlb=x1,ylb=y1。
第二种方式:若确定第三中心点和第四中心点的横坐标的差值不在误差范围内,并确定第三中心点和第四中心点的纵坐标的差值在误差范围内,则:
1)当第三中心点的横坐标小于第四中心点的横坐标,则确定对焦区域的左上角横坐标为第三中心点的横坐标,左上角纵坐标为第三中心点的纵坐标,右上角横坐标为第四中心点的横坐标,右上角纵坐标为第四中心点的纵坐标。
2)当第三中心点的横坐标不小于第四中心点的横坐标,则确定对焦区域的左上角横坐标为第四中心点的横坐标,左上角纵坐标为第四中心点的纵坐标,右上角横坐标为第三中心点的横坐标,右上角纵坐标为第三中心点的纵坐标。
例如,比较第三中心点的横坐标x1和第四中心点的横坐标x2,若x1和x2的差值不在误差范围内,则进一步比较第三中心点的纵坐标y1和第四中心点的纵坐标y2,若y1和y2的差值在误差范围内,即满足在一定误差范围内近似相等,则计算对焦区域rect的左上角坐标(xlt,ylt)、右上角坐标(xrt,yrt)。
1)当第三中心点的横坐标小于第四中心点的横坐标x1<x2,则xlt=x1,ylt=y1;xrt=x2,yrt=y2。
2)当第三中心点的横坐标不小于第四中心点的横坐标x1≥x2,则xlt=x2,ylt=y2;xrt=x1,yrt=y1。
第三种方式:若确定第三中心点和第四中心点的横坐标的差值不在误差范围内,并确定第三中心点和第四中心点的纵坐标的差值不在误差范围内,则:
1)当第三中心点的横坐标小于第四中心点的横坐标,则确定对焦区域的左下角横坐标为第三中心点的横坐标,左下角纵坐标为第三中心点的纵坐标,右上角横坐标为第四中心点的横坐标,右上角纵坐标为第四中心点的纵坐标。
2)当第三中心点的横坐标不小于第四中心点的横坐标,则确定对焦区域的左下角横坐标为第四中心点的横坐标,左下角纵坐标为第四中心点的纵坐标,右上角横坐标为第三中心点的横坐标,右上角纵坐标为第三中心点的纵坐标。
例如,比较第三中心点的横坐标x1和第四中心点的横坐标x2,若x1和x2的差值不在误差范围内,则进一步比较第三中心点的纵坐标y1和第四中心点的纵坐标y2,若y1和y2的差值也不在误差范围内,则计算对焦区域rect的右上角坐标(xrt,yrt)、左下角坐标(xlb,ylb)。
1)当第三中心点的横坐标小于第四中心点的横坐标x1<x2,则xlb=x1,ylb=y1;xrt=x2,yrt=y2。
2)当第三中心点的横坐标不小于第四中心点的横坐标x1≥x2,则xlb=x2,ylb=y2;xrt=x1,yrt=y1。
S3.2、根据确定出的对焦区域对应的横坐标和纵坐标,确定对焦区域。
本申请实施例中,对焦区域为矩形,确定出横坐标和纵坐标后,就可以唯一确定出该对焦区域,根据上述不同方式中获得的对焦区域的不同点的横坐标和纵坐标,可以对应采用不同方式确定出对焦区域。
1)上述第一种方式中确定出左上角和左下角的横坐标、纵坐标,则计算出原始输出矩形r1:
r1=(min(xlt,xlb),ylt,max(xlt,xlb)+abs(ylb-ylt),ylb)
其中,min表示取最小值,abs表示取绝对值。
上述第二种方式中确定出左上角和右下角的横坐标、纵坐标,则计算出原始输出矩形r1:
r1=(xlt,min(ylt,yrt),xrt,max(ylt,yrt)+abs(xrt-xlt)
上述第三种方式中确定出右上角和左下角的横坐标、纵坐标,则计算出原始输出矩形r1:
r1=(xlb,yrt,xrt,ylb)
2)为进一步提高准确性,计算出r1后,可以采用误差调节值确定出最终的对焦区域rect,例如:
rect(l-m,t-m,r+m,b+m)=r1(l,t,r,b)
其中,m是一个误差调节值。
这样,通过误差调节值,可以保证最终输出对焦区域稍大于实际的二维码区域,可以提高识别准确性。
第三种情况:若位置探测图形的检测结果中位置探测图形的数量为3,采用算法A3,输入为:检测到的三个位置探测图形,对应的第五中心点的坐标、第六中心点的坐标和第七中心点的坐标分别是(x1,y1)、(x2,y2)、(x3,y3),输出为:对焦区域rect。
算法A3:根据位置探测图形的检测结果,确定对焦区域,具体包括:
S1、分别获取检测到的三个位置探测图形对应的第五中心点、第六中心点和第七中心点的横坐标和纵坐标。
S2、比较第五中心点和第六中心点的横坐标的差值大小,以及第五中心点和第六中心点的纵坐标的差值大小。
S3、根据横坐标的差值大小和纵坐标的差值大小的比较结果,以及第七中心点的横坐标和纵坐标,确定对焦区域。
具体执行该步骤S3时,具体包括:
S3.1、确定对焦区域的横坐标和纵坐标。
同样基于不同的比较结果,可以分为以下几种实施方式:
第一种方式:若确定第五中心点和第六中心点的横坐标的差值在误差范围内,则:
1)当第五中心点的纵坐标小于第六中心点的纵坐标,则确定对焦区域的左上角横坐标为第五中心点的横坐标,左上角纵坐标为第五中心点的纵坐标,左下角横坐标为第六中心点的横坐标,左下角纵坐标为第六中心点的纵坐标,右上角横坐标为第七中心点的横坐标,右上角纵坐标为第七中心点的纵坐标。
2)当第五中心点的纵坐标不小于第六中心点的纵坐标,则确定对焦区域的左上角横坐标为第六中心点的横坐标,左上角纵坐标为第六中心点的纵坐标,左下角横坐标为第五中心点的横坐标,左下角纵坐标为第五中心点的纵坐标,右上角横坐标为第七中心点的横坐标,右上角纵坐标为第七中心点的纵坐标。
例如,第五中心点为(x1,y1)、第六中心点为(x2,y2)、第七中心点为(x3,y3),比较第五中心点的横坐标x1和第六中心点的横坐标x2,若x1和x2的差值在误差范围内,即可以理解为在一定误差范围内近似相等,则计算对焦区域rect的左上角坐标(xlt,ylt)、左下角坐标(xlb,ylb)、右上角坐标(xrt,yrt)。
则xrt=x3,yrt=y3。
并当第五中心点的纵坐标小于第六中心点的纵坐标y1<y2,则xlt=x1,ylt=y1;xlb=x2,ylb=y2。
当第五中心点的纵坐标不小于第六中心点的纵坐标y1≥y2,则xlt=x2,ylt=y2;xlb=x1,ylb=y1。
第二种方式:若确定第五中心点和第六中心点的横坐标的差值不在误差范围内,并确定第五中心点和第六中心点的纵坐标的差值在误差范围内,则:
1)当第五中心点的横坐标小于第六中心点的横坐标,则确定对焦区域的左上角横坐标为第五中心点的横坐标,左上角纵坐标为第五中心点的纵坐标,左下角横坐标为第七中心点的横坐标,左下角纵坐标为第七中心点的纵坐标,右上角横坐标为第六中心点的横坐标,右上角纵坐标为第六中心点的纵坐标。
2)当第五中心点的横坐标不小于第六中心点的横坐标,则确定对焦区域的左上角横坐标为第六中心点的横坐标,左上角纵坐标为第六中心点的纵坐标,左下角横坐标为第七中心点的横坐标,左下角纵坐标为第七中心点的纵坐标,右上角横坐标为第五中心点的横坐标,右上角纵坐标为第五中心点的纵坐标。
例如,比较第五中心点的横坐标x1和第六中心点的横坐标x2,若x1和x2的差值不在误差范围内,则进一步比较第五中心点的纵坐标y1和第六中心点的纵坐标y2,若y1和y2的差值在误差范围内,即满足在一定误差范围内近似相等,则计算对焦区域rect的左上角坐标(xlt,ylt)、左下角坐标(xlb,ylb)、右上角坐标(xrt,yrt)。
则xlb=x3,ylb=y3。
并当第五中心点的横坐标小于第六中心点的横坐标x1<x2,则xlt=x1,ylt=y1;xrt=x2,yrt=y2。
当第五中心点的横坐标不小于第六中心点的横坐标若x1≥x2,则xlt=x2,ylt=y2;xrt=x1,yrt=y1。
第三种方式:若确定第五中心点和第六中心点的横坐标的差值不在误差范围内,并确定第五中心点和第六中心点的纵坐标的差值不在误差范围内,则:
1)当第五中心点的横坐标小于第六中心点的横坐标,则确定对焦区域的左上角横坐标为第七中心点的横坐标,左上角纵坐标为第七中心点的纵坐标,左下角横坐标为第五中心点的横坐标,左下角纵坐标为第五中心点的纵坐标,右上角横坐标为第六中心点的横坐标,右上角纵坐标为第六中心点的纵坐标。
2)当第五中心点的横坐标不小于第六中心点的横坐标,则确定对焦区域的左上角横坐标为第七中心点的横坐标,左上角纵坐标为第七中心点的纵坐标,左下角横坐标为第六中心点的横坐标,左下角纵坐标为第六中心点的纵坐标,右上角横坐标为第五中心点的横坐标,右上角纵坐标为第五中心点的纵坐标。
例如,比较第五中心点的横坐标x1和第六中心点的横坐标x2,若x1和x2的差值不在误差范围内,则进一步比较第五中心点的纵坐标y1和第六中心点的纵坐标y2,若y1和y2的差值也不在在误差范围内,则计算对焦区域rect的左上角坐标(xlt,ylt)、左下角坐标(xlb,ylb)、右上角坐标(xrt,yrt)。
则xlt=x3,ylt=y3。
当第五中心点的横坐标小于第六中心点的横坐标x1<x2,则xlb=x1,ylb=y1;xrt=x2,yrt=y2。
当第五中心点的横坐标不小于第六中心点的横坐标x1≥x2,则xlb=x2,ylb=y2;xrt=x1,yrt=y1。
S3.2、根据确定出的左上角横坐标、左上角纵坐标、左下角横坐标、左下角纵坐标、右上角横坐标和右上角纵坐标,以及预设误差调节值,确定对焦区域。
具体地,可以根据对焦区域对应的各点的坐标,确定出对焦区域,1)计算出原始输出矩形r1:
r1=(min(xlt,xlb),min(ylt,yrt),xrt,ylb)
其中,min表示取最小值。
2)并为提高准确性,根据预设误差调节值m,计算最终对焦矩形rect:
rect(l-m,t-m,r+m,b+m)=r1(l,t,r,b)
这样,也可以保证最终输出对焦区域稍大于实际的二维码区域,提高识别准确率和速度。
本申请实施例中,可以根据位置探测图形的数量和位置的不同,采用不同算法计算出更加合适的并更加准确的局部对焦区域。
进一步地,本申请实施例中对调焦处理后的二维码图像进行解析时,若解析成功,即可以成功识别出二维码,进而可以展示二维码对应的界面等后续操作,若解析失败,本申请实施例中针对解析失败的情况,还提供了图形变换算法,将当前帧中确定出的位置探测图形的检测数量、位置等信息可以传递给下一帧,进而提高下一帧识别成功率,具体地,本申请实施例中提供了一种可能的实施方式:对调焦处理后的二维码图像进行解析之后,进一步包括:
S1、若确定解析失败,则确定当前累积扫描时间,并根据当前累积扫描时间,以及时间和摄像头模式的映射关系,确定当前的摄像头模式。
本申请实施例中,根据当前累积扫描时间和位置探测图形的数量,定义了几种摄像头的摄像头模式,分别为正常模式、两点模式、一点模式和自由模式,其中,正常模式、两点模式、一点模式以及自由模式,与当前累积扫描时间关联,表征需要调整摄像头的放大系数的程度,并正常模式、两点模式、一点模式以及自由模式对应的需要调整摄像头的放大系数的程度依次升高。
例如,参阅图5所示,为本申请实施例中摄像头模式示意图,如图5所示,由于位置检测图形的检测会有各种不同的检测结果,为了对不同检测结果可以有更加合适的处理,因此,本申请实施例中建立了一套针对位置探测图形数量,并与时间相关的摄像头模式,不同摄像头模式下不同的检测结果都会有各自的处理逻辑,其中,M1为正常模式、M2为两点模式、M3为一点模式、M4为自由模式,t1为第一时间阈值、t2为第二时间阈值、t3为第三时间阈值,其中,第三时间阈值大于第二时间阈值,第二时间阈值大于第一时间阈值。
则具体地,执行该S1确定当前的摄像头模式,包括:
1)若当前累积扫描时间小于第一时间阈值,则确定当前的摄像头模式为正常模式。
例如,如图5所示,当前累积扫描时间t<t1,则摄像头为M1,进入正常模式。
2)若当前累积扫描时间大于等于第一时间阈值并小于第二时间阈值,则确定当前的摄像头模式为两点模式。
例如,如图5所示,若当前累积扫描时间t1≤t<t2,则摄像头为M2,进入两点模式。
3)若当前累积扫描时间大于等于第二时间阈值并小于第三时间阈值,则确定当前的摄像头模式为一点模式。
例如,如图5所示,若当前累积扫描时间t2≤t<t3,则摄像头为M3,进入一点模式。
4)若当前累积扫描时间大于等于第三时间阈值,并从第一帧开始位置探测图形的检测结果中位置探测图形的数量均小于2,则确定当前的摄像头模式为自由模式。
例如,如图5所示,若当前累积扫描时间t≥t3,且从第一帧开始,即历史位置探测图形的检测结果中位置探测图形的数量n<2,则摄像头为M4,进入自由模式。
这样,本申请实施例中,开始识别时处于正常模式,随着累积扫描时间的增加,当前的摄像头模式依次切换为两点模式、一点模式,并且如果同时还满足探测图形数量从未达到2个或以上,则达到一定的累积扫描时间后切换为自由模式,进而可以基于不同摄像头模式下,执行后续不同的操作,提高下一帧识别的成功率。
S2、根据当前的摄像头模式和位置检测图形的检测结果,调整摄像头的放大系数。
本申请实施例中,针对位置探测图形的检测数量,以及当前的摄像头模式,设计了一种图形变换算法,该图形变换算法的输入为当前的摄像头模式(M1:正常模式、M2:两点模式、M3:一点模式、M4:自由模式),检测到的位置探测图形的中心点的坐标,例如,若检测到三个位置探测图形,其对应的中心点坐标分别为P1(x1,y1)、P2(x2,y2)、P3(x3,y3)。
进一步地,为了提高计算效率,针对图形变换算法和对焦调整,本申请实施例中提供了一个周期同步方法,具体地提供了一种可能的实施方式:根据当前的摄像头模式和位置检测图形的检测结果,调整摄像头的放大系数之前,还包括:确定当前累积扫描时间和上一次调整摄像头的放大系数的时间之间的差值大于预设冷却时间,并确定当前不处于对焦周期内。
也就是说,本申请实施例中,判断当前帧二维码识别失败时,判断当前是否处于变换冷却期内,变换冷却期的判断为tnow-tprevious≤T,其中,tnow是当前累积扫描时间,tprevious是上一次调整摄像头的放大系数的时间(即上一次变换的时间),T是预设冷却时间;若是处于变换冷却期,即差值不大于预设冷却时间,则结束,不执行后续操作,若不处于变换冷却期,即差值大于预设冷却时间,则进一步判断当前是否处于对焦同步周期内,若是则结束,若否则执行后续操作步骤。
例如,参阅图6所示,为本申请实施例中周期同步原理示意图,对焦同步周期指的是一个针对摄像头对焦和图形变换的一个同步机制,如图6所示,摄像头的对焦是一个周期性的行为,而图形变换也具有一定的周期性,因此,有必要对两者的周期进行同步,在对焦过程中不允许图形变换,避免在对焦尚未完成时执行图形变换操作,这样既浪费了摄像头资源,又得不到优化的效果,从而通过周期同步能够避免不必要的图形变换,充分利用对焦优化后的结果。
S3、在调整摄像头的放大系数后,结束当前帧扫描,并开始下一帧扫描,获得扫描的下一帧二维码图像。
本申请实施例中,开始下一帧扫描后,即可以重复执行本申请实施例中的二维码识别方法,例如检测位置探测图形、调焦、图形变换等,这样不断识别处理,可以充分利用已有的扫描结果,从下一帧开始,摄像头识别二维码的能力提升显著,尤其是1.5米到2米的超远距离识别,尤其是自由模式的引入使得原本无法识别任何位置探测图形的场景,也转换为可以适用于一点模式、两点模式甚至三点模式的情况,再经过图形变换后,提升下一帧扫描时的成功率,还进一步提高了远距离场景下的识别成功率。
下面对上述步骤S2中根据当前的摄像头模式和位置检测图形的检测结果,调整摄像头的放大系数的具体实施方式进行说明,则根据不同的摄像头模式和位置探测图形的检测结果,具体可以分为以下几种实施方式:
第一种实施方式:若位置探测图形的检测结果中位置探测图形的数量为3,或者位置探测图形的检测结果中位置探测图形的数量为2,并当前的摄像头模式为除正常模式之外的其它模式,则:
1)根据检测到的两个位置探测图形的中心点坐标,确定二维码图像中二维码的宽度。
例如,若位置探测图形的数量为3,或者位置探测图形的数据为2并为除正常模式之外的其它模式,则计算二维码的宽度为:
也就是说,位置探测图形的数量为3时,不管摄像头模式是什么,二维码的宽度均为该w,并且,若位置探测图形的数量为2时,则需要判断摄像头模式,若为正常模式则结束,若为其它摄像头模式,则二维码的宽度为该w。
2)若确定二维码的宽度小于等于设定值,则以第一步长调整摄像头的放大系数,其中,设定值为摄像头的识别宽度与预设常量的比值。
例如,若宽度小于设定值,即w≤wframe/P,则以第一步长S1调整摄像头的放大系数,即增大摄像头的放大系数。
其中,wframe是摄像头的识别宽度,P是一个可配置的预设常量,P越大,则触发摄像头图形变换需要的扫码距离越远,反之越近,需要根据实际情况进行配置,第一步长S1为整数值。
第二种实施方式:若位置探测图形的检测结果中位置探测图形的数量为1,并当前的摄像头模式为一点模式或自由模式,则以第二步长调整摄像头的放大系数,其中,第二步长大于第一步长。
也就是说,若位置探测图形数量n=1,并若位于M1或M2模式下,则结束,若为其他摄像头模式,则以第二步长S2调整摄像头的放大系数,第一步长S1小于第二步长S2,例如,S1=S2/2,本申请实施例中并不进行限制。
第三种实施方式:若位置探测图形的检测结果中位置探测图形的数量为0,并当前的摄像头模式为自由模式,则:
1)确定当前时刻与上次自由模式切换时刻的差值大于等于自由模式常态持续时间时,调整摄像头的放大系数为第一步长的预设倍数。
2)确定当前时刻与上次自由模式切换时刻的差值大于等于自由模式放大状态持续时间时,调整摄像头的放大系数为进入自由模式之前的放大系数。
本申请实施例中,若位置探测图形数量n=0,且位于M4模式下,即从始至终位置探测图形的数量都没有超过1,则开始自由模式下的探测机制,并且为了更好的描述说明,本申请实施例中在这种情况下,还定义了两种状态,例如,自由模式放大状态s1和自由模式常态s2,tn为当前时刻,tp为上次自由模式切换时刻,T1为自由模式放大状态持续时间,T2为自由模式常态持续时间。
则若当前处于s2,且tn-tp≥T2,则直接调整摄像头放大系数为第一步长的预设倍数,例如4*S1;否则若当前处于s1,且tn-tp≥T1,则调整摄像头放大系数为进入自由模式之前的放大系数。
这样,调整完摄像头的放大系数后,结束当前帧的扫描,开始下一帧扫描,由于下一帧扫描时综合了上一帧扫描的更多的信息,调整了放大系数,可以使得下一帧扫描时二维码的扫描区域变大,因此,从下一帧开始,摄像头识别二维码的能力可以显著提升,并适用于各种复杂的扫描场景,提高扫描时的成功率。
基于上述实施例,下面采用具体应用场景,对本申请实施例中二维码识别方法整体流程进行简单说明,参阅图7所示,为本申请实施例中另一种二维码识别方法流程图,具体包括:
步骤700:获取扫描的当前帧二维码图像,将二维码图像对应的二进制数据,转换到图像采集设备中显示屏的坐标系下。
步骤701:将转换后的二进制数据进行二值化处理。
本申请实施例中,对于二维码图案,开始扫描后,首先会获取一帧图像对应的二进制数据,以一维字节数组的数据结构进行存储,并且为了后续二值化的精确度,每个像素信息通过8位二进制数据表示,然后考虑实际扫码场景方向的不同,为了后续坐标系的建立,先将二维码图像的一维数组的二进制数据进行坐标系转换,获得图像采集设备中显示屏的坐标系下的一维数组,最后再进行二值化处理,方便后续摄像头的识别。
步骤702:根据预设的位置探测图形的图像特征,并基于二值化处理后的二进制数据,检测二维码图像中的位置探测图形。
步骤703:确定当前的摄像头模式。
具体地,确定当前累积扫描时间,并根据当前累积扫描时间,以及时间和摄像头模式的映射关系,确定当前的摄像头模式。
步骤704:根据位置探测图形的检测结果,确定对焦区域。
步骤705:调整对焦区域的对焦优先级。
即提升摄像头对该对焦区域的优先级,以提高对焦精准度。
步骤706:若确定当前帧解析失败,则根据当前的摄像头模式和位置检测图形的检测结果,调整摄像头的放大系数,并在调整摄像头的放大系数后,结束当前帧扫描,并开始下一帧扫描,获得扫描的下一帧二维码图像。
即开始执行摄像头的图形变换算法,调整放大系数,以提高下一帧的扫描识别成功率。
步骤707:针对摄像头放大系数调整和对焦方案,同时执行同步机制。
具体地,确定当前累积扫描时间和上一次调整摄像头的放大系数的时间之间的差值大于预设冷却时间,并确定当前不处于对焦周期内时,才会执行调整摄像头的放大系数,这样,可以提高计算效率和速度。
另外需要说明的是,本申请实施例中上述步骤的执行顺序并不进行限制,例如步骤703可以再步骤705后,确定当前帧解析失败后再执行,步骤707和步骤706的执行顺序也不进行限制,并且,开始下一帧扫描后(即在步骤707后),再返回步骤700开始重复执行上述过程,直至确定解析成功,识别出二维码。
这样,本申请实施例中基于摄像头在软件层面提出了一种提高二维码二进制数据采样、识别成功率的方法,对二维码图像的二进制数据进行处理,提高了二进制数据的精确度,并进行对焦调整和下一帧摄像头放大系数的调整,可以显著提升摄像头与展示的二维码图案之间的相对位置较远场景中的二维码识别成功率,提升了扫码用户的体验。
基于同一发明构思,本申请实施例中还提供了一种二维码识别装置,基于上述实施例,参阅图8所示,本申请实施例中二维码识别装置,具体包括:
获取模块80,用于获取扫描的当前帧二维码图像;
检测模块81,用于根据预设的位置探测图形的图像特征,检测所述二维码图像中的位置探测图形,其中,所述位置探测图形表征二维码的定位图案,用于定位二维码的位置;
确定模块82,用于根据位置探测图形的检测结果,确定对焦区域;
调整模块83,用于调整所述对焦区域的对焦优先级;
解码模块84,用于根据所述对焦区域和所述位置探测图形的检测结果,并按照调整后的对焦优先级对所述二维码图像进行调焦处理,并对调焦处理后的二维码图像进行解析。
可选的,根据预设的位置探测图形的图像特征,检测所述二维码图像中的位置探测图形时,检测模块81具体用于:
将所述二维码图像对应的二进制数据,转换到图像采集设备中显示屏的坐标系下;
将转换后的二进制数据进行二值化处理;
根据预设的位置探测图形的图像特征,并基于二值化处理后的二进制数据,检测所述二维码图像中的位置探测图形。
可选的,将所述二维码图像对应的二进制数据,转换到图像采集设备中显示屏的坐标系下时,检测模块81具体用于:
根据图像采集设备中显示屏的宽度和高度,按照第一转换映射关系,将所述二维码图像对应的二进制数据,转换到所述图像采集设备中显示屏的坐标系下。
可选的,根据预设的位置探测图形的图像特征,检测所述二维码图像中的位置探测图形时,检测模块81具体用于:
依次遍历二值化处理后的二进制数据中的各个数值;
若确定检测到连续的数值符合位置探测图形的颜色排列规则和颜色比例,则确定检测到位置探测图形,并记录检测到的位置探测图形的数量增加1。
可选的,根据预设的位置探测图形的图像特征,检测所述二维码图像中的位置探测图形时,检测模块81具体用于:
按照行方向依次遍历二值化处理后的二进制数据中的各个数值,若确定检测到连续的数值符合位置探测图形的颜色排列规则和颜色比例,则确定符合位置探测图形的颜色排列规则和颜色比例的数值对应的第一区域,并确定所述第一区域对应的第一中心点坐标;
以所述第一中心点坐标为中心,按照列方向依次遍历二值化处理后的二进制数据中的各个数值,并若确定检测到连续的数值符合位置探测图形的颜色排列规则和颜色比例,则根据所述第一区域,以及按照列方向遍历时符合位置探测图形的颜色排列规则和颜色比例的数值对应的第二区域,确定对应的第二中心点坐标;
以所述第二中心点坐标为中心,按照对角线方向依次遍历二值化处理后的二进制数据中的各个数值,并若确定仍检测到连续的数值符合位置探测图形的颜色排列规则和颜色比例,则确定检测到位置探测图形,并记录检测到的位置探测图形的数量增加1。
可选的,若位置探测图形的检测结果中所述位置探测图形的数量为0或1,则根据位置探测图形的检测结果,确定对焦区域时,确定模块82具体用于:
根据图像采集设备中显示屏的宽度和预设宽度比例值,确定所述对焦区域的宽度,并根据所述图像采集设备中显示屏的高度和预设高度比例值,确定所述对焦区域的高度;
根据所述图像采集设备中显示屏的宽度和所述对焦区域的宽度,确定所述对焦区域的左上角横坐标,并根据所述图像采集设备中显示屏的高度和所述对焦区域的高度,确定所述对焦区域的左上角纵坐标;
根据所述左上角横坐标、所述左上角纵坐标以及所述对焦区域的宽度和高度,确定所述对焦区域的右下角横坐标和右下角纵坐标;
根据所述左上角横坐标、所述左上角纵坐标、所述右下角横坐标和所述右下角纵坐标,确定所述对焦区域。
可选的,若位置探测图形的检测结果中所述位置探测图形的数量为2,则根据位置探测图形的检测结果,确定对焦区域时,确定模块82具体用于:
分别获取检测到的两个位置探测图形对应的第三中心点和第四中心点的横坐标和纵坐标;
比较所述第三中心点和所述第四中心点的横坐标的差值大小,以及所述第三中心点和所述第四中心点的纵坐标的差值大小;
根据横坐标的差值大小和纵坐标的差值大小的比较结果,确定对焦区域。
可选的,根据横坐标的差值大小和纵坐标的差值大小的比较结果,确定对焦区域时,确定模块82具体用于:
若确定所述第三中心点和所述第四中心点的横坐标的差值在误差范围内,则当所述第三中心点的纵坐标小于所述第四中心点的纵坐标,则确定所述对焦区域的左上角横坐标为所述第三中心点的横坐标,左上角纵坐标为所述第三中心点的纵坐标,左下角横坐标为所述第四中心点的横坐标,左下角纵坐标为所述第四中心点的纵坐标;当所述第三中心点的纵坐标不小于所述第四中心点的纵坐标,则确定所述对焦区域的左上角横坐标为所述第四中心点的横坐标,左上角纵坐标为所述第四中心点的纵坐标,左下角横坐标为所述第三中心点的横坐标,左下角纵坐标为所述第三中心点的纵坐标;
若确定所述第三中心点和所述第四中心点的横坐标的差值不在误差范围内,并确定所述第三中心点和所述第四中心点的纵坐标的差值在误差范围内,则当所述第三中心点的横坐标小于所述第四中心点的横坐标,则确定所述对焦区域的左上角横坐标为所述第三中心点的横坐标,左上角纵坐标为所述第三中心点的纵坐标,右上角横坐标为所述第四中心点的横坐标,右上角纵坐标为所述第四中心点的纵坐标;当所述第三中心点的横坐标不小于所述第四中心点的横坐标,则确定所述对焦区域的左上角横坐标为所述第四中心点的横坐标,左上角纵坐标为所述第四中心点的纵坐标,右上角横坐标为所述第三中心点的横坐标,右上角纵坐标为所述第三中心点的纵坐标;
若确定所述第三中心点和所述第四中心点的横坐标的差值不在误差范围内,并确定所述第三中心点和所述第四中心点的纵坐标的差值不在误差范围内,则当所述第三中心点的横坐标小于所述第四中心点的横坐标,则确定所述对焦区域的左下角横坐标为所述第三中心点的横坐标,左下角纵坐标为所述第三中心点的纵坐标,右上角横坐标为所述第四中心点的横坐标,右上角纵坐标为所述第四中心点的纵坐标;当所述第三中心点的横坐标不小于所述第四中心点的横坐标,则确定所述对焦区域的左下角横坐标为所述第四中心点的横坐标,左下角纵坐标为所述第四中心点的纵坐标,右上角横坐标为所述第三中心点的横坐标,右上角纵坐标为所述第三中心点的纵坐标;
根据确定出的所述对焦区域对应的横坐标和纵坐标,确定所述对焦区域。
可选的,若位置探测图形的检测结果中所述位置探测图形的数量为3,则根据位置探测图形的检测结果,确定对焦区域时,确定模块82具体用于:
分别获取检测到的三个位置探测图形对应的第五中心点、第六中心点和第七中心点的横坐标和纵坐标;
比较所述第五中心点和所述第六中心点的横坐标的差值大小,以及所述第五中心点和所述第六中心点的纵坐标的差值大小;
根据横坐标的差值大小和纵坐标的差值大小的比较结果,以及所述第七中心点的横坐标和纵坐标,确定对焦区域。
可选的,根据横坐标的差值大小和纵坐标的差值大小的比较结果,以及所述第七中心点的横坐标和纵坐标,确定对焦区域时,确定模块82具体用于:
若确定所述第五中心点和所述第六中心点的横坐标的差值在误差范围内,则当所述第五中心点的纵坐标小于所述第六中心点的纵坐标,则确定所述对焦区域的左上角横坐标为所述第五中心点的横坐标,左上角纵坐标为所述第五中心点的纵坐标,左下角横坐标为所述第六中心点的横坐标,左下角纵坐标为所述第六中心点的纵坐标,右上角横坐标为所述第七中心点的横坐标,右上角纵坐标为所述第七中心点的纵坐标;当所述第五中心点的纵坐标不小于所述第六中心点的纵坐标,则确定所述对焦区域的左上角横坐标为所述第六中心点的横坐标,左上角纵坐标为所述第六中心点的纵坐标,左下角横坐标为所述第五中心点的横坐标,左下角纵坐标为所述第五中心点的纵坐标,右上角横坐标为所述第七中心点的横坐标,右上角纵坐标为所述第七中心点的纵坐标;
若确定所述第五中心点和所述第六中心点的横坐标的差值不在误差范围内,并确定所述第五中心点和所述第六中心点的纵坐标的差值在误差范围内,则当所述第五中心点的横坐标小于所述第六中心点的横坐标,则确定所述对焦区域的左上角横坐标为所述第五中心点的横坐标,左上角纵坐标为所述第五中心点的纵坐标,左下角横坐标为所述第七中心点的横坐标,左下角纵坐标为所述第七中心点的纵坐标,右上角横坐标为所述第六中心点的横坐标,右上角纵坐标为所述第六中心点的纵坐标;当所述第五中心点的横坐标不小于所述第六中心点的横坐标,则确定所述对焦区域的左上角横坐标为所述第六中心点的横坐标,左上角纵坐标为所述第六中心点的纵坐标,左下角横坐标为所述第七中心点的横坐标,左下角纵坐标为所述第七中心点的纵坐标,右上角横坐标为所述第五中心点的横坐标,右上角纵坐标为所述第五中心点的纵坐标;
若确定所述第五中心点和所述第六中心点的横坐标的差值不在误差范围内,并确定所述第五中心点和所述第六中心点的纵坐标的差值不在误差范围内,则当所述第五中心点的横坐标小于所述第六中心点的横坐标,则确定所述对焦区域的左上角横坐标为所述第七中心点的横坐标,左上角纵坐标为所述第七中心点的纵坐标,左下角横坐标为所述第五中心点的横坐标,左下角纵坐标为所述第五中心点的纵坐标,右上角横坐标为所述第六中心点的横坐标,右上角纵坐标为所述第六中心点的纵坐标;当所述第五中心点的横坐标不小于所述第六中心点的横坐标,则确定所述对焦区域的左上角横坐标为所述第七中心点的横坐标,左上角纵坐标为所述第七中心点的纵坐标,左下角横坐标为所述第六中心点的横坐标,左下角纵坐标为所述第六中心点的纵坐标,右上角横坐标为所述第五中心点的横坐标,右上角纵坐标为所述第五中心点的纵坐标;
根据确定出的左上角横坐标、左上角纵坐标、左下角横坐标、左下角纵坐标、右上角横坐标和右上角纵坐标,以及预设误差调节值,确定所述对焦区域。
可选的,根据位置探测图形的检测结果,确定对焦区域之后,包括转换模块85,用于:
根据图像采集设备中显示屏的宽度和高度,以及图像采集设备中摄像头坐标系下的最大坐标值,按照第二转换映射关系,将所述对焦区域对应的坐标,转换到所述摄像头坐标系下,并以使所述调整模块83根据转换后的对焦区域对应的坐标,执行所述调整所述对焦区域的对焦优先级的步骤。
可选的,调整所述对焦区域的对焦优先级时,调整模块83具体用于:
按照预设放大单位权重值,确定所述对焦区域对应的单位权重值;
确定所述对焦区域内像素总数量;
根据所述对焦区域对应的单位权重值和像素总数量,确定所述对焦区域的对焦优先级。
可选的,对调焦处理后的二维码图像进行解析之后,进一步包括处理模块86,用于:
若确定解析失败,则确定当前累积扫描时间,并根据所述当前累积扫描时间,以及时间和摄像头模式的映射关系,确定当前的摄像头模式;
根据所述当前的摄像头模式和所述位置检测图形的检测结果,调整摄像头的放大系数;
在调整摄像头的放大系数后,结束当前帧扫描,并开始下一帧扫描,获得扫描的下一帧二维码图像。
可选的,根据所述当前累积扫描时间,以及时间和摄像头模式的映射关系,确定当前的摄像头模式时,处理模块86具体用于:
若所述当前累积扫描时间小于第一时间阈值,则确定当前的摄像头模式为正常模式;
若所述当前累积扫描时间大于等于第一时间阈值并小于第二时间阈值,则确定当前的摄像头模式为两点模式;
若所述当前累积扫描时间大于等于第二时间阈值并小于第三时间阈值,则确定当前的摄像头模式为一点模式;
若所述当前累积扫描时间大于等于第三时间阈值,并从第一帧开始位置探测图形的检测结果所述位置探测图形的中数量均小于2,则确定当前的摄像头模式为自由模式,其中,所述正常模式、所述两点模式、所述一点模式以及所述自由模式,与所述当前累积扫描时间关联,表征需要调整摄像头的放大系数的程度,并所述正常模式、所述两点模式、所述一点模式以及所述自由模式对应的需要调整摄像头的放大系数的程度依次升高,所述第三时间阈值大于所述第二时间阈值,所述第二时间阈值大于所述第一时间阈值。
可选的,根据所述当前的摄像头模式和所述位置检测图形的检测结果,调整摄像头的放大系数时,处理模块86具体用于:
若位置探测图形的检测结果中所述位置探测图形的数量为3,或者位置探测图形的检测结果中所述位置探测图形的数量为2,并所述当前的摄像头模式为除正常模式之外的其它模式,则根据检测到的两个位置探测图形的中心点坐标,确定所述二维码图像中二维码的宽度;
若确定所述二维码的宽度小于等于设定值,则以第一步长调整摄像头的放大系数,其中,所述设定值为摄像头的识别宽度与预设常量的比值。
可选的,根据所述当前的摄像头模式和所述位置检测图形的检测结果,调整摄像头的放大系数时,处理模块86具体用于:
若位置探测图形的检测结果中所述位置探测图形的数量为1,并所述当前的摄像头模式为一点模式或自由模式,则以第二步长调整摄像头的放大系数,其中,所述第二步长大于第一步长。
可选的,根据所述当前的摄像头模式和所述位置检测图形的检测结果,调整摄像头的放大系数时,处理模块86具体用于:
若位置探测图形的检测结果中所述位置探测图形的数量为0,并所述当前的摄像头模式为自由模式,则确定当前时刻与上次自由模式切换时刻的差值大于等于自由模式常态持续时间时,调整摄像头的放大系数为第一步长的预设倍数;
确定当前时刻与上次自由模式切换时刻的差值大于等于自由模式放大状态持续时间时,调整摄像头的放大系数为进入自由模式之前的放大系数。
可选的,根据所述当前的摄像头模式和所述位置检测图形的检测结果,调整摄像头的放大系数之前,处理模块86还用于:
确定所述当前累积扫描时间和上一次调整摄像头的放大系数的时间之间的差值大于预设冷却时间,并确定当前不处于对焦周期内。
基于上述实施例,参阅图9所示为本申请实施例中电子设备的结构示意图。
本申请实施例提供了一种电子设备,该电子设备可以包括处理器910(CenterProcessing Unit,CPU)、存储器920、输入设备930和输出设备940等,输入设备930可以包括键盘、鼠标、触摸屏等,输出设备940可以包括显示设备,如液晶显示器(Liquid CrystalDisplay,LCD)、阴极射线管(Cathode Ray Tube,CRT)等。
存储器920可以包括只读存储器(ROM)和随机存取存储器(RAM),并向处理器910提供存储器920中存储的程序指令和数据。在本申请实施例中,存储器920可以用于存储本申请实施例中任一种二维码识别方法的程序。
处理器910通过调用存储器920存储的程序指令,处理器910用于按照获得的程序指令执行本申请实施例中任一种二维码识别方法。
基于上述实施例,本申请实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任意方法实施例中的二维码识别方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种二维码识别方法,其特征在于,包括:
获取扫描的当前帧二维码图像;
根据预设的位置探测图形的图像特征,检测所述二维码图像中的位置探测图形,其中,所述位置探测图形表征二维码的定位图案,用于定位二维码的位置;
根据位置探测图形的检测结果,确定对焦区域,并调整所述对焦区域的对焦优先级;
根据所述对焦区域和所述位置探测图形的检测结果,并按照调整后的对焦优先级对所述二维码图像进行调焦处理,并对调焦处理后的二维码图像进行解析。
2.如权利要求1所述的方法,其特征在于,若位置探测图形的检测结果中所述位置探测图形的数量为0或1,则根据位置探测图形的检测结果,确定对焦区域,具体包括:
根据图像采集设备中显示屏的宽度和预设宽度比例值,确定所述对焦区域的宽度,并根据所述图像采集设备中显示屏的高度和预设高度比例值,确定所述对焦区域的高度;
根据所述图像采集设备中显示屏的宽度和所述对焦区域的宽度,确定所述对焦区域的左上角横坐标,并根据所述图像采集设备中显示屏的高度和所述对焦区域的高度,确定所述对焦区域的左上角纵坐标;
根据所述左上角横坐标、所述左上角纵坐标以及所述对焦区域的宽度和高度,确定所述对焦区域的右下角横坐标和右下角纵坐标;
根据所述左上角横坐标、所述左上角纵坐标、所述右下角横坐标和所述右下角纵坐标,确定所述对焦区域。
3.如权利要求1所述的方法,其特征在于,若位置探测图形的检测结果中所述位置探测图形的数量为2,则根据位置探测图形的检测结果,确定对焦区域,具体包括:
分别获取检测到的两个位置探测图形对应的第三中心点和第四中心点的横坐标和纵坐标;
比较所述第三中心点和所述第四中心点的横坐标的差值大小,以及所述第三中心点和所述第四中心点的纵坐标的差值大小;
根据横坐标的差值大小和纵坐标的差值大小的比较结果,确定对焦区域。
4.如权利要求1所述的方法,其特征在于,若位置探测图形的检测结果中所述位置探测图形的数量为3,则根据位置探测图形的检测结果,确定对焦区域,具体包括:
分别获取检测到的三个位置探测图形对应的第五中心点、第六中心点和第七中心点的横坐标和纵坐标;
比较所述第五中心点和所述第六中心点的横坐标的差值大小,以及所述第五中心点和所述第六中心点的纵坐标的差值大小;
根据横坐标的差值大小和纵坐标的差值大小的比较结果,以及所述第七中心点的横坐标和纵坐标,确定对焦区域。
5.如权利要求1所述的方法,其特征在于,调整所述对焦区域的对焦优先级,具体包括:
按照预设放大单位权重值,确定所述对焦区域对应的单位权重值;
确定所述对焦区域内像素总数量;
根据所述对焦区域对应的单位权重值和像素总数量,确定所述对焦区域的对焦优先级。
6.如权利要求1-5任一项所述的方法,其特征在于,对调焦处理后的二维码图像进行解析之后,进一步包括:
若确定解析失败,则确定当前累积扫描时间,并根据所述当前累积扫描时间,以及时间和摄像头模式的映射关系,确定当前的摄像头模式;
根据所述当前的摄像头模式和所述位置检测图形的检测结果,调整摄像头的放大系数;
在调整摄像头的放大系数后,结束当前帧扫描,并开始下一帧扫描,获得扫描的下一帧二维码图像。
7.如权利要求6所述的方法,其特征在于,根据所述当前累积扫描时间,以及时间和摄像头模式的映射关系,确定当前的摄像头模式,具体包括:
若所述当前累积扫描时间小于第一时间阈值,则确定当前的摄像头模式为正常模式;
若所述当前累积扫描时间大于等于第一时间阈值并小于第二时间阈值,则确定当前的摄像头模式为两点模式;
若所述当前累积扫描时间大于等于第二时间阈值并小于第三时间阈值,则确定当前的摄像头模式为一点模式;
若所述当前累积扫描时间大于等于第三时间阈值,并从第一帧开始位置探测图形的检测结果中所述位置探测图形的数量均小于2,则确定当前的摄像头模式为自由模式,其中,所述正常模式、所述两点模式、所述一点模式以及所述自由模式,与所述当前累积扫描时间关联,表征需要调整摄像头的放大系数的程度,并所述正常模式、所述两点模式、所述一点模式以及所述自由模式对应的需要调整摄像头的放大系数的程度依次升高,所述第三时间阈值大于所述第二时间阈值,所述第二时间阈值大于所述第一时间阈值。
8.一种二维码识别装置,其特征在于,包括:
获取模块,用于获取扫描的当前帧二维码图像;
检测模块,用于根据预设的位置探测图形的图像特征,检测所述二维码图像中的位置探测图形,其中,所述位置探测图形表征二维码的定位图案,用于定位二维码的位置;
确定模块,用于根据位置探测图形的检测结果,确定对焦区域;
调整模块,用于调整所述对焦区域的对焦优先级;
解码模块,用于根据所述对焦区域和所述位置探测图形的检测结果,并按照调整后的对焦优先级对所述二维码图像进行调焦处理,并对调焦处理后的二维码图像进行解析。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-7任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1-7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010529368.2A CN111767752B (zh) | 2020-06-11 | 2020-06-11 | 一种二维码识别方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010529368.2A CN111767752B (zh) | 2020-06-11 | 2020-06-11 | 一种二维码识别方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111767752A true CN111767752A (zh) | 2020-10-13 |
CN111767752B CN111767752B (zh) | 2022-09-23 |
Family
ID=72720790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010529368.2A Active CN111767752B (zh) | 2020-06-11 | 2020-06-11 | 一种二维码识别方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111767752B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112541369A (zh) * | 2020-12-14 | 2021-03-23 | 合肥高维数据技术有限公司 | 一种信息码识别方法及系统 |
CN112733834A (zh) * | 2021-03-30 | 2021-04-30 | 恒银金融科技股份有限公司 | 一种基于非矩阵窗方式的字符区域定位方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102170521A (zh) * | 2010-06-22 | 2011-08-31 | 上海盈方微电子有限公司 | 一种数码相机基于非均匀采样窗口的自动对焦方法 |
CN103729610A (zh) * | 2013-12-24 | 2014-04-16 | 北京握奇智能科技有限公司 | 一种二维码聚焦显示方法及系统 |
CN106303044A (zh) * | 2016-08-18 | 2017-01-04 | 努比亚技术有限公司 | 一种移动终端和获取对焦值的方法 |
JP2017102841A (ja) * | 2015-12-04 | 2017-06-08 | 共同印刷株式会社 | 二次元コード、二次元コードの解析方法、二次元コードの解析装置及び二次元コードを解析するプログラム |
CN107220578A (zh) * | 2017-05-31 | 2017-09-29 | 维沃移动通信有限公司 | 一种二维码扫描识别方法、装置、移动终端及存储介质 |
CN108629220A (zh) * | 2018-03-23 | 2018-10-09 | 阿里巴巴集团控股有限公司 | 一种二维码识读方法、装置及设备 |
CN109711223A (zh) * | 2018-12-28 | 2019-05-03 | 福州符号信息科技有限公司 | 一种提升qr码解码率方法及设备 |
CN110661977A (zh) * | 2019-10-29 | 2020-01-07 | Oppo广东移动通信有限公司 | 主体检测方法和装置、电子设备、计算机可读存储介质 |
-
2020
- 2020-06-11 CN CN202010529368.2A patent/CN111767752B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102170521A (zh) * | 2010-06-22 | 2011-08-31 | 上海盈方微电子有限公司 | 一种数码相机基于非均匀采样窗口的自动对焦方法 |
CN103729610A (zh) * | 2013-12-24 | 2014-04-16 | 北京握奇智能科技有限公司 | 一种二维码聚焦显示方法及系统 |
JP2017102841A (ja) * | 2015-12-04 | 2017-06-08 | 共同印刷株式会社 | 二次元コード、二次元コードの解析方法、二次元コードの解析装置及び二次元コードを解析するプログラム |
CN106303044A (zh) * | 2016-08-18 | 2017-01-04 | 努比亚技术有限公司 | 一种移动终端和获取对焦值的方法 |
CN107220578A (zh) * | 2017-05-31 | 2017-09-29 | 维沃移动通信有限公司 | 一种二维码扫描识别方法、装置、移动终端及存储介质 |
CN108629220A (zh) * | 2018-03-23 | 2018-10-09 | 阿里巴巴集团控股有限公司 | 一种二维码识读方法、装置及设备 |
CN109711223A (zh) * | 2018-12-28 | 2019-05-03 | 福州符号信息科技有限公司 | 一种提升qr码解码率方法及设备 |
CN110661977A (zh) * | 2019-10-29 | 2020-01-07 | Oppo广东移动通信有限公司 | 主体检测方法和装置、电子设备、计算机可读存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112541369A (zh) * | 2020-12-14 | 2021-03-23 | 合肥高维数据技术有限公司 | 一种信息码识别方法及系统 |
CN112541369B (zh) * | 2020-12-14 | 2022-08-05 | 合肥高维数据技术有限公司 | 一种信息码识别方法及系统 |
CN112733834A (zh) * | 2021-03-30 | 2021-04-30 | 恒银金融科技股份有限公司 | 一种基于非矩阵窗方式的字符区域定位方法 |
CN112733834B (zh) * | 2021-03-30 | 2021-07-06 | 恒银金融科技股份有限公司 | 一种基于非矩阵窗方式的字符区域定位方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111767752B (zh) | 2022-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11430103B2 (en) | Method for image processing, non-transitory computer readable storage medium, and electronic device | |
EP3309703B1 (en) | Method and system for decoding qr code based on weighted average grey method | |
US7149355B2 (en) | Image processing apparatus, image processing method, image processing program, and computer-readable record medium storing image processing program | |
US20110211233A1 (en) | Image processing device, image processing method and computer program | |
CN105740876B (zh) | 一种图像预处理方法及装置 | |
CN109871841B (zh) | 图像处理方法、装置、终端及存储介质 | |
CN112037129A (zh) | 图像超分辨率重建方法、装置、设备及存储介质 | |
CN111767752B (zh) | 一种二维码识别方法及装置 | |
CN111353961A (zh) | 一种文档曲面校正方法及装置 | |
CN110909665A (zh) | 一种多任务的图像处理方法、装置、电子设备及存储介质 | |
CN110490196A (zh) | 主体检测方法和装置、电子设备、计算机可读存储介质 | |
JP4335229B2 (ja) | Qrコード認識装置、qrコード認識装置の制御方法、qrコード認識装置制御プログラムおよびそれを記録したコンピュータ読み取り可能な記録媒体 | |
CN113840135A (zh) | 色偏检测方法、装置、设备及存储介质 | |
CN113822927A (zh) | 一种适用弱质量图像的人脸检测方法、装置、介质及设备 | |
CN111080683B (zh) | 图像处理方法、装置、存储介质及电子设备 | |
CN112532884A (zh) | 识别方法、装置及电子设备 | |
US6650362B1 (en) | Movement detecting apparatus with feature point extractor based on luminance gradient in current frame | |
CN114255493A (zh) | 图像检测方法、人脸检测方法及装置、设备及存储介质 | |
JP4970385B2 (ja) | 2次元コード読取装置とそのプログラム | |
CN116403200A (zh) | 基于硬件加速的车牌实时识别系统 | |
CN114998347B (zh) | 一种半导体面板角点定位方法及装置 | |
CN115802001A (zh) | 一种摄像头图像数据处理方法、装置及终端 | |
CN111091513B (zh) | 图像处理方法、装置、计算机可读存储介质及电子设备 | |
CN114025089A (zh) | 一种视频图像采集抖动处理方法及系统 | |
CN109727193B (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 |