CN111435414A - 识别二维码的方法、系统、设备及储存介质 - Google Patents
识别二维码的方法、系统、设备及储存介质 Download PDFInfo
- Publication number
- CN111435414A CN111435414A CN201910033425.5A CN201910033425A CN111435414A CN 111435414 A CN111435414 A CN 111435414A CN 201910033425 A CN201910033425 A CN 201910033425A CN 111435414 A CN111435414 A CN 111435414A
- Authority
- CN
- China
- Prior art keywords
- decoding
- dimensional code
- unit
- decoding unit
- gpu
- 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
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000004422 calculation algorithm Methods 0.000 claims description 78
- 230000004888 barrier function Effects 0.000 claims description 35
- 238000004806 packaging method and process Methods 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 7
- 238000012544 monitoring process Methods 0.000 claims description 4
- 238000012856 packing Methods 0.000 claims 1
- 230000008901 benefit Effects 0.000 abstract description 6
- 230000007547 defect Effects 0.000 abstract description 5
- 238000013479 data entry Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 239000002699 waste material Substances 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
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/146—Methods for optical code recognition the method including quality enhancement steps
Abstract
本发明公开了一种识别二维码的方法、系统、设备及储存介质。所述方法包括下述步骤:S1.获取待识别二维码的图像数据;S2.将所述图像数据传输至GPU解码单元和CPU解码单元进行解码;S3.判断所述GPU解码单元和所述CPU解码单元是否有至少一个解码成功,若是则执行步骤S4,若否则执行步骤S3;S4.输出解码成功后的解码结果。本发明克服了现有技术中识别二维码时无法兼顾高速与准确度的缺陷,能使复杂的标准二维码被快速识别出,又同时能支持非标准化的二维码的准确识别。最大限度发挥CPU和GPU的优势,提高了系统资源的利用效率,规避了CPU和GPU各自的缺陷使扫码更高效。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种识别二维码的方法、系统、设备及储存介质。
背景技术
随着计算机技术的发展,人们与计算机的交互越来越密切。人们向计算机输入信息的场景变得越来越频繁,信息也变得越来越复杂,在人们向计算机输入信息的过程中就难免会出现错误。为了提高输入效率和输入信息的准确率,人们需要一种机制将信息快速准确的输入到计算机中。
基于以上需求,人们需要一种信息组织的解决方案,也就是利用一定的科学规则和方法,通过对信息外在特征与内容特征的表征和排序,实现无序信息流向有序信息的转换。
由此人们发明了条形码技术,条形码是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符。通过这个标识符计算机就能快速地获取其中的信息。但条形码所能表达的信息比较有限,不能够承载日益增长的信息量,人们又在条形码的技术基础上发明了二维码。二维码是一种黑白相间的图形,用某种特定的几何图形按一定的规律在平面分布来记录数据信息。二维码具有更高的信息容量,而且成本和易用性跟条形码相当。所以成为现在主流的信息承载媒介之一。
目前手机识别二维码主要有两种方法,第一种通过设备操作系统自带的二维码识别方法进行识别,其可直接在编程人员编写的APP(应用程序)中使用;第二种方法由编程人员自己编写图像识别算法和解码规则。第一种方法称之为硬解码,通过GPU(图形处理器)系统底层硬件直接支持;第二种方法称之为软解码,通过编程人员自己编写的解码规则,再利用CPU(中央处理器)来进行计算与解码。使用GPU进行硬解码,由于直接通过底层硬件支持,所以其具有速度快的优势,但由于解码规则是直接定制在系统中的,目前手机系统支持的格式有限,其他格式的图像码(如福利彩票二维码)识别不出来,编程人员也无法对系统定义的扫码方法进行修改;使用CPU进行软解码的优势在于其高度的灵活性,能根据需求来更改计算规则从而识别特殊的二维码,但其的缺点在于识别速度慢,越复杂的二维码识别速度就越慢。
发明内容
本发明实施例要解决的技术问题是为了克服现有技术中二维码的识别方式无法兼顾识别速度和对非标准化二维码的识别准确度的缺陷,提供一种识别二维码的方法、系统、设备及储存介质。
本发明实施例是通过下述技术方案来解决上述技术问题:
本发明实施例提供了一种识别二维码的方法,包括:
步骤S1.获取待识别二维码的图像数据;
其中,可以但不限于通过终端设备上的摄像头获取待识别二维码的图像数据;
步骤S2.将所述图像数据传输至GPU解码单元和CPU解码单元进行解码;
步骤S3.判断所述GPU解码单元和所述CPU解码单元是否有至少一个解码成功,若是则执行步骤S4,若否则执行步骤S3;
其中,步骤S3可以但不限于与步骤S4同时进行;
步骤S4.输出解码成功后的解码结果。
较佳地,所述GPU解码单元包括操作系统定制的识别算法,所述操作系统定制的识别算法支持的解码格式包括EAN13Code(一种二维码编码规则)、EAN8Cod(一种二维码编码规则)及QRCode(一种二维码编码规则)中的至少一种;所述CPU解码单元包括zxing(一种开源的算法)识别算法、zbar(一种开源的算法)识别算法和/或其它自行编写的识别图像的算法。
较佳地,步骤S4包括以下步骤:
统一所述解码结果的格式;
将统一格式后的所述解码结果封装后输出。
较佳地,步骤S3包括以下步骤:
设置栅栏;
所述栅栏监听所述GPU解码单元和所述CPU解码单元解码后的解码信息并判断是否解码成功,若是,则停止所述GPU解码单元和所述CPU解码单元继续解码并执行步骤S4,若否则执行步骤S3。
较佳地,所述栅栏通过独立线程监听所述解码后的解码信息。
其中,所述栅栏可以但不限于通过以下方式监听:
当有一个成功解码的信息传入所述栅栏,所述栅栏会关闭对应的数据入口不再接收所述解码后的解码信息。
本发明实施例还提供了一种识别二维码的方法,包括:
步骤T1.获取待识别二维码的图像数据;
其中,可以但不限于通过终端设备上的摄像头获取待识别二维码的图像数据;
步骤T2.判断所述图像数据是否为标准二维码,若是则执行步骤T3,若否则执行步骤T4;
步骤T3.将所述图像数据传输至GPU解码单元进行解码,执行步骤T5;
步骤T4.将所述图像数据传输至CPU解码单元进行解码,执行步骤T5;
步骤T5.解码完成后输出解码结果。
较佳地,所述GPU解码单元包括操作系统定制的识别算法,所述操作系统定制的识别算法支持的解码格式为标准二维码格式,包括EAN13Code或EAN8Code或QRCode中的至少一种;所述CPU解码单元包括zxing识别算法、zbar识别算法和/或其它自行编写的识别图像的算法。
较佳地,所述判断所述图像数据是否为标准二维码包括:
对所述图像数据进行裁剪,以得到第一数据;
对所述第一数据进行图像二值化处理,以得到第二数据;
使用图像模糊算法判断所述第二数据的模糊程度是否小于或等于预定值,若是,则所述图像数据为标准二维码。
较佳地,步骤T5包括以下步骤:
统一所述解码结果的格式;
将统一格式后的所述解码结果封装并输出。
较佳地,所述方法还包括以下步骤:
设置栅栏;
所述栅栏监听所述GPU解码单元和所述CPU解码单元解码后的解码信息并判断是否解码成功,若是,则停止所述GPU解码单元和所述CPU解码单元继续解码并执行步骤T5。
较佳地,所述栅栏通过独立线程监听所述解码后的解码信息。
其中,所述栅栏可以但不限于通过以下方式监听:
当有一个成功解码的信息传入所述栅栏,所述栅栏会关闭对应的数据入口不再接收所述解码后的解码信息。
本发明实施例还提供了一种识别二维码的系统,包括:第一图像获取模块,解码模块,第一判断模块,第一输出模块;
所述第一图像获取模块用于获取待识别二维码的图像数据。
所述解码模块用于将所述图像数据传输至GPU解码单元和CPU解码单元进行解码。
所述第一判断模块用于判断所述GPU解码单元和所述CPU解码单元是否有至少一个解码成功,若是则执行第一输出模块。
其中,所述解码模块可以但不限于与所述判断模块同时执行。
所述第一输出模块用于输出解码成功后的解码结果。
较佳地,所述GPU解码单元包括操作系统定制的识别算法,所述操作系统定制的识别算法支持的解码格式包括EAN13Code、EAN8Code及QRCode中的至少一种;所述CPU解码单元包括zxing识别算法、zbar识别算法和/或其它自行编写的识别图像的算法。
较佳地,所述第一输出模块包括第一格式统一单元及第一封装单元。
所述第一格式统一单元用于统一所述解码结果的格式。
所述第一封装单元用于将统一格式后的所述解码结果封装后输出。
较佳地,所述第一判断模块包括第一设置单元。
所述第一设置单元用于设置栅栏;
所述栅栏用于监听所述GPU解码单元和所述CPU解码单元解码后的解码信息并判断是否解码成功,若是,则停止所述GPU解码单元和所述CPU解码单元继续解码并调用所述第一输出模块。
较佳地,所述栅栏通过独立线程监听所述解码后的解码信息。
其中,所述栅栏可以但不限于通过以下方式监听:
当有一个成功解码的信息传入所述栅栏,所述栅栏会关闭对应的数据入口不再接收所述解码后的解码信息。
本发明实施例还提供了一种识别二维码的系统,包括:第二图像获取模块,第二判断模块,第一解码模块,第二解码模块,第二输出模块。
所述第二图像获取模块用于获取待识别二维码的图像数据。
所述第二判断模块用于判断所述图像数据是否为标准二维码,若是则执行第一解码模块,若否则执行第二解码模块。
所述第一解码模块用于将所述图像数据传输至GPU解码单元进行解码,调用所述第二输出模块。
所述第二解码模块用于将所述图像数据传输至CPU解码单元进行解码,调用所述第二输出模块。
所述第二输出模块用于解码完成后输出解码结果。
较佳地,所述GPU解码单元包括操作系统定制的识别算法,所述操作系统定制的识别算法支持的解码格式为标准二维码格式,包括EAN13Code或EAN8Code或QRCode中的至少一种;所述CPU解码单元包括zxing识别算法、zbar识别算法和/或其它自行编写的识别图像的算法。
较佳地,所述第二判断模块包括第一数据单元、第二数据单元及确定单元。
所述第一数据单元用于对所述图像数据进行裁剪,以得到第一数据。
所述第二数据单元用于对所述第一数据进行图像二值化处理,以得到第二数据。
所述确定单元用于使用图像模糊算法判断所述第二数据的模糊程度是否小于或等于预定值,若是,则确定所述图像数据为标准二维码。
较佳地,所述第二输出模块包括第二格式统一单元及第二封装单元。
所述第二格式统一单元用于统一所述解码结果的格式。
所述第二封装单元用于将统一格式后的所述解码结果封装并输出。
较佳地,所述系统还包括第二设置单元。
所述第二设置单元用于设置栅栏;
所述栅栏监听所述GPU解码单元和所述CPU解码单元解码后的解码信息并判断是否解码成功,若是,则停止所述GPU解码单元和所述CPU解码单元继续解码并执行输出模块。
较佳地,所述栅栏通过独立线程监听所述解码后的解码信息。
其中,所述栅栏可以但不限于通过以下方式监听:
当有一个成功解码的信息传入所述栅栏,所述栅栏会关闭对应的数据入口不再接收所述解码后的解码信息。
本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述识别二维码的方法。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述识别二维码的方法的步骤。
本发明实施例的积极进步效果在于:本发明实施例提供的识别二维码的方法、系统、设备及储存介质能够兼顾识别速度和和识别准确度对标准二维码以及非标准二维码进行解码,本发明实施例通过结合GPU硬解码与CPU软解码、通过对标准二维码的预判实现高效、准确的解码过程,本发明实施例克服现有技术中识别二维码时无法兼顾高速与准确度的缺陷,使复杂的标准二维码能够被快速识别出,又同时对非标准化的二维码进行动态支持。最大限度发挥CPU和GPU的优势,同时又规避了各自的缺陷使扫码更高效。
附图说明
图1为本发明实施例1的识别二维码的方法的流程图。
图2为本发明实施例2的识别二维码的方法的流程图。
图3为本发明实施例2的识别二维码的方法中步骤S2的流程图。
图4为本发明实施例3的识别二维码的系统的模块示意图。
图5为本发明实施例3的识别二维码的系统的第一输出模块的模块示意图。
图6为本发明实施例4的识别二维码的系统的模块示意图。
图7为本发明实施例4的识别二维码的系统中第二判断模块的模块示意图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例1
如图1所示,本实施例提供了一种识别二维码的方法,包括:
步骤S11.获取待识别二维码的图像数据。
本实施例中,通过调用摄像头,控制摄像头的开关获取待识别二维码的图像数据,在实际中,还可能有其它的方式来获取待识别二维码的图像数据。上述图像数据包括静态图像数据、视频图像数据。
步骤S12.将所述图像数据传输至GPU解码单元和CPU解码单元进行解码。
本实施例中,上述两种解码方式同时进行。GPU解码单元主要负责解析传统二维码以及复杂度较高的二维码,保证图像识别速度;CPU解码单元则负责辅助GPU硬解码,主要负责解析GPU解码单元所不能识别的图像数据,提高图像识别率。
步骤S13.判断所述GPU解码单元和所述CPU解码单元是否有至少一个解码成功,若是则执行步骤S14,若否则执行步骤S13。
本实施例中,步骤S13与步骤S12同时执行。在实际中,步骤S13与步骤S12可以但不限于同时执行。
步骤S14.输出解码成功后的解码结果。
其中,GPU解码单元包括操作系统定制的识别算法,操作系统定制的识别算法支持的解码格式包括EAN13Code、EAN8Code及QRCode中的至少一种;所述CPU解码单元包括zxing识别算法、zbar识别算法和/或其它自行编写的识别算法。
其中,对一些特殊的二维码,如福利彩票二维码,可以有针对性地开发CPU解码算法来支持该二维码。
其中,步骤S14具体包括以下步骤:
统一所述解码结果的格式;
将统一格式后的所述解码结果封装后输出。
其中,由于解码过程使用了不同的解码算法,解码成功后数据传输的形式各有不同,因此上述步骤主要用于将不同的数据格式统一起来,提高组件的易用性和健壮性。本实施例中,通过数据处理接口统一该解码结果的格式,在实际中,还可以采用其它的方式统一格式。
本实施例中,通过判断图像数据种类,通过将解码成功后的数据转换成可阅读的字符串,再通过将将解码结果向外部输出,从而完成整个解码流程。
其中,步骤S13包括以下步骤:
设置栅栏;
该栅栏监听GPU解码单元和上述CPU解码单元解码后的解码信息并判断是否解码成功,若是,则停止GPU解码单元和CPU解码单元继续解码并执行步骤S14,若否则执行步骤S13。
本实施例中,该栅栏通过独立线程监听所述解码后的解码信息。在实际中,该栅栏可以但不限于通过独立线程监听。
本实施例中,该栅栏可以通过以下方式监听:
当有一个成功解码的信息传入该栅栏,该栅栏会关闭对应的数据入口不再接收所述解码后的解码信息。在实际中,该栅栏还可以通过其他方式监听。
本实施例中,通过设置栅栏,避免重复识别或者重复输出相同的结果,避免造成逻辑的重复执行和硬件资源的浪费。
本实施例中,通过将获取的图像数据同时传输至GPU解码单元和CPU解码单元进行解码,改进了传统手机二维码识别中存在的缺陷,即CPU软解码效率低识别速度不够快,影响体验;GPU硬解码只能识别标准二维码,不能扩展识别能力,通过巧妙的整合CPU解码单元和GPU解码单元,让两种解码方式相互配合,互不干预,最大限度的发挥各自的优势。既保证了复杂二维码的识别速度,又能支持非标准化的二维码识别。从而达到提升扫码体验,让应用程序功能更加完善的目的。
实施例2
如图2所示,本实施例提供了一种识别二维码的方法,该方法包括:
步骤S21.获取待识别二维码的图像数据。
本实施例中,通过调用摄像头,控制摄像头的开关获取待识别二维码的图像数据,在实际中,还可能有其它的方式来获取待识别二维码的图像数据。上述图像数据包括静态图像数据、视频图像数据。
步骤S22.判断所述图像数据是否为标准二维码,若是则执行步骤S23,若否则执行步骤S24。
步骤S23.将图像数据传输至GPU解码单元进行解码,执行步骤S25。
步骤S24.将图像数据传输至CPU解码单元进行解码,执行步骤S25。
步骤S25.解码完成后输出解码结果。
其中,步骤S25包括以下步骤:
统一所述解码结果的格式;
将统一格式后的所述解码结果封装并输出。
其中,所述方法还具体包括以下步骤:
设置栅栏。
其中,该栅栏监听GPU解码单元和CPU解码单元解码后的解码信息并判断是否解码成功,若是,则停止GPU解码单元和CPU解码单元继续解码并执行步骤S25。
本实施例中,该栅栏通过独立线程监听所述解码后的解码信息。在实际中,该栅栏可以但不限于通过独立线程监听。
本实施例中,该栅栏可以通过以下方式监听:
当有一个成功解码的信息传入该栅栏,该栅栏会关闭对应的数据入口不再接收所述解码后的解码信息。在实际中,该栅栏还可以通过其他方式监听。
本实施例中,通过设置栅栏,避免重复识别或者重复输出相同的结果,造成逻辑的重复执行和硬件资源的浪费。
其中,GPU解码单元包括操作系统定制的识别算法,操作系统定制的识别算法支持的解码格式包括EAN13Code、EAN8Code及QRCode中的至少一种;CPU解码单元包括zxing识别算法、zbar识别算法和/或其它自行编写的识别图像的算法。
本实施例中,操作系统定制的识别算法为信息技术公司如谷歌公司、苹果公司在手机操作系统中加入的自己研发的有图像识别功能的算法。上述公司为开发人员提供了相应的图像识别框架,通过这个框架,开发人员能够方便的引用上述有图像识别功能的算法并实现二维码的解码功能。该算法通过系统底层硬件直接支持,具有高度的定制性,能够对硬件进行快速地调度,从而大幅提高识别速度。
其中,CPU解码单元包括zxing识别算法、zbar识别算法和/或其它自定义的算法。CPU解码单元通过自己来编写算法,利用CPU进行计算来识别二维码,该算法的优势是其高度的灵活性,能够根据自己的需求来更改计算规则,从而识别特殊规则的二维码,能够随时扩展识别的图形。
本实施例中,CPU解码单元通过自己编写的算法识别二维码实现解码,通过从摄像头获取图像数据,再将每一帧的图像转换为RGB(工业界的一种颜色标准)数据字符串或灰度图像数据字符串。通过自己编写的计算规则,使用CPU对数据字符串进行计算,最终从计算结果中得到二维码所表达的信息。
如图3所示,实施例2中的步骤S22的流程图,其具体包括:
步骤S221.对所述图像数据进行裁剪,以得到第一数据;
步骤S222.对所述第一数据进行图像二值化处理,以得到第二数据;
步骤S223.使用图像模糊算法判断所述第二数据的模糊程度是否小于或等于预定值,若是,则执行步骤S224.所述图像数据为标准二维码,若否,则执行步骤S225.所述图像数据为非标准二维码。
本实施例通过步骤S22判断获取的图像数据是否为标准二维码,若为标准二维码,则将图像数据传入GPU解码单元进行解码,若为非标准二维码,则将上述图像传入CPU解码单元进行解码,从而避免将获取的图像数据同时传输至GPU解码单元和CPU解码,使系统资源利用率更高,既保证二维码识别的速度,又保证二维码识别的准确度,同时也避免系统资源的浪费,从而大大提升了用户的扫码体验。
实施例3
如图4所示,本实施例提供了一种识别二维码的系统1,具体包括:第一图像获取模块11,解码模块12,第一判断模块13,第一输出模块14。
第一图像获取模块11用于获取待识别二维码的图像数据。
本实施例中,通过调用摄像头,控制摄像头的开关获取待识别二维码的图像数据,在实际中,还可能有其它的方式来获取待识别二维码的图像数据。上述图像数据包括静态图像数据、视频图像数据。
解码模块12用于将所述图像数据传输至GPU解码单元和CPU解码单元进行解码。
本实施例中,GPU解码单元与CPU解码单元同时进行解码。GPU解码单元主要负责解析传统二维码以及复杂度较高的二维码,保证图像识别速度;CPU解码单元则负责辅助GPU硬解码,主要负责解析GPU解码单元所不能识别的图像数据,提高图像识别率。
第一判断模块13用于判断上述GPU解码单元和上述CPU解码单元是否有至少一个解码成功,若是则调用第一输出模块14,若否则继续继续调用第一判断模块13。
本实施例中,解码模块12与第一判断模块13并行执行,但实践中,也可以存在其他序列的执行方式,如解码模块先执行,第一判断模块再执行。
第一输出模块14用于输出解码成功后的解码结果。
其中,GPU解码单元包括操作系统定制的识别算法,操作系统定制的识别算法支持的解码格式包括EAN13Code、EAN8Code及QRCode中的至少一种;CPU解码单元包括zxing识别算法、zbar识别算法和/或其它自行编写的识别算法。
其中,对一些特殊的二维码,如福利彩票二维码,可以有针对性地开发CPU解码算法来支持该二维码。
图5为本实施中的第一输出模块14的模块示意图,具体包括第一格式统一单元141及第一封装单元142,第一格式统一单元141用于统一所述解码结果的格式,第一封装单元142用于将统一格式后的所述解码结果封装后输出。
其中,判断模块13具体包括第一设置单元,第一设置单元用于设置栅栏,该栅栏用于监听GPU解码单元和CPU解码单元解码后的解码信息并判断是否解码成功,若是,则停止GPU解码单元和CPU解码单元继续解码并调用所述第一输出模块14,若否,则继续进行监听并判断是否解码成功。
其中,该栅栏通过关闭对应的数据入口不再接收所述解码后的解码信息来停止继续解码的过程。
本实施例中,通过识别二维码的系统控制摄像头采集图像数据,协调CPU解码单元和GPU解码单元并行工作,对上述图像数据进行解码,最终将解码结果向外传输。本发明利用CPU和GPU的解码过程相互独立,互不干预的特点,利用在实践中GPU硬解码时,CPU处于空闲的状态,在使用CPU软解码时,GPU也没有工作的资源浪费现象,使GPU与CPU同时进行解码,从而提高系统资源的利用率,使解码兼顾准确性与高效性的特点。
实施例4
如图6所示,本实施例提供了一种识别二维码的系统,该系统具体包括第二图像获取模块21,第二判断模块22,第一解码模块23,第二解码模块24,第二输出模块25。
第二图像获取模块21用于获取待识别二维码的图像数据。
本实施例中,通过调用摄像头,控制摄像头的开关获取待识别二维码的图像数据,在实际中,还可能有其它的方式来获取待识别二维码的图像数据。上述图像数据包括静态图像数据、视频图像数据。
第二判断模块22用于判断所述图像数据是否为标准二维码,若是则调用第一解码模块23,若否则调用第二解码模块24。
第一解码模块23用于将上述图像数据传输至GPU解码单元进行解码,执行第二输出模块25。
第二解码模块24用于将上述图像数据传输至CPU解码单元进行解码,执行第二输出模块25。
第二输出模块25用于解码完成后输出解码结果。
其中,GPU解码单元包括操作系统定制的识别算法,该操作系统定制的识别算法支持的解码格式为标准二维码格式,包括EAN13Code或EAN8Code或QRCode中的至少一种;CPU解码单元包括zxing识别算法、zbar识别算法和/或其它自行编写的识别图像的算法。
其中,第二输出模块25还包括第二设置单元,第二设置单元用于设置栅栏,该栅栏用于监听所述GPU解码单元和所述CPU解码单元解码后的解码信息并判断是否解码成功,若是,则停止所述GPU解码单元和所述CPU解码单元继续解码并执行第二输出模块25,若否,则继续并判断是否解码成功。
本实施例中,该栅栏通过独立线程监听所述解码后的解码信息。在实际中,该栅栏可以但不限于通过独立线程监听。
本实施例中,该栅栏可以通过以下方式监听:
当有一个成功解码的信息传入所述栅栏,所述栅栏会关闭对应的数据入口不再接收所述解码后的解码信息。在实际中,该栅栏还可以通过其他方式监听。
本实施例中,通过设置栅栏,避免重复识别或者重复输出相同的结果,造成逻辑的重复执行和硬件资源的浪费。
图7出示了本实施例中的第二判断模块22的模块示意图,具体包括,第一数据单元221、第二数据单元222及确定单元223。
其中,第一数据单元用于对所述图像数据进行裁剪,以得到第一数据,第二数据单元用于述第一数据进行图像二值化处理,以得到第二数据,确定单元用于使用图像模糊算法判断所述第二数据的模糊程度是否小于或等于预定值,若是,则确定图像数据为标准二维码,若否,则图像数据不为标准二维码。
本实施例通过第二判断模块22判断获取的图像数据是否为标准二维码,通过将标准二维码传输至第一解码模块解码23,将非标准二维码传输给第二解码模块解码24,从而避免同时向CPU解码单元与GPU解码单元传入上述图像数据导致的资源浪费,也解决了二维码解码过程的效率性与准确性问题。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (23)
1.一种识别二维码的方法,其特征在于,包括下述步骤:
S1.获取待识别二维码的图像数据;
S2.将所述图像数据传输至GPU解码单元和CPU解码单元进行解码;
S3.判断所述GPU解码单元和所述CPU解码单元是否有至少一个解码成功,若是则执行步骤S4;
S4.输出解码成功后的解码结果。
2.如权利要求1所述的识别二维码的方法,其特征在于,所述GPU解码单元包括操作系统定制的识别算法,所述操作系统定制的识别算法支持的解码格式包括EAN13Code、EAN8Code及QRCode中的至少一种;所述CPU解码单元包括zxing识别算法和/或zbar识别算法。
3.如权利要求1所述的识别二维码的方法,其特征在于,步骤S4包括以下步骤:
统一所述解码结果的格式;
将统一格式后的所述解码结果封装后输出。
4.如权利要求1所述的识别二维码的方法,其特征在于,步骤S3包括以下步骤:
设置栅栏;
所述栅栏监听所述GPU解码单元和所述CPU解码单元解码后的解码信息并判断是否解码成功,若是,则停止所述GPU解码单元和所述CPU解码单元继续解码并执行步骤S4。
5.如权利要求4所述的识别二维码的方法,其特征在于,所述栅栏通过独立线程监听所述解码后的解码信息。
6.一种识别二维码的方法,其特征在于,包括下述步骤:
T1.获取待识别二维码的图像数据;
T2.判断所述图像数据是否为标准二维码,若是则执行步骤T3,若否则执行步骤T4;
T3.将所述图像数据传输至GPU解码单元进行解码,执行步骤T5;
T4.将所述图像数据传输至CPU解码单元进行解码,执行步骤T5;
T5.解码完成后输出解码结果。
7.如权利要求6所述的识别二维码的方法,其特征在于,所述GPU解码单元包括操作系统定制的识别算法,所述操作系统定制的识别算法支持的解码格式为标准二维码格式,包括EAN13Code或EAN8Code或QRCode中的至少一种;所述CPU解码单元包括zxing识别算法和/或zbar识别算法。
8.如权利要求6所述的识别二维码的方法,其特征在于,所述判断所述图像数据是否为标准二维码包括:
对所述图像数据进行裁剪,以得到第一数据;
对所述第一数据进行图像二值化处理,以得到第二数据;
使用图像模糊算法判断所述第二数据的模糊程度是否小于或等于预定值,若是,则所述图像数据为标准二维码。
9.如权利要求6所述的识别二维码的方法,其特征在于,步骤T5包括以下步骤:
统一所述解码结果的格式;
将统一格式后的所述解码结果封装并输出。
10.如权利要求6所述的识别二维码的方法,其特征在于,所述方法还包括以下步骤:
设置栅栏;
所述栅栏监听所述GPU解码单元和所述CPU解码单元解码后的解码信息并判断是否解码成功,若是,则停止所述GPU解码单元和所述CPU解码单元继续解码并执行步骤T5。
11.如权利要求10所述的识别二维码的方法,其特征在于,所述栅栏通过独立线程监听所述解码后的解码信息。
12.一种识别二维码的系统,其特征在于,包括:第一图像获取模块,解码模块,第一判断模块,第一输出模块;
所述第一图像获取模块用于获取待识别二维码的图像数据;
所述解码模块用于将所述图像数据传输至GPU解码单元和CPU解码单元进行解码;
所述第一判断模块用于判断所述GPU解码单元和所述CPU解码单元是否有至少一个解码成功,若是则调用所述第一输出模块;
所述第一输出模块用于输出解码成功后的解码结果。
13.如权利要求12所述的识别二维码的系统,其特征在于,所述GPU解码单元包括操作系统定制的识别算法,所述操作系统定制的识别算法支持的解码格式包括EAN13Code、EAN8Code及QRCode中的至少一种;所述CPU解码单元包括zxing识别算法和/或zbar识别算法。
14.如权利要求12所述的识别二维码的系统,其特征在于,所述第一输出模块包括第一格式统一单元及第一封装单元;
所述第一格式统一单元用于统一所述解码结果的格式;
所述第一封装单元用于将统一格式后的所述解码结果封装后输出。
15.如权利要求12所述的识别二维码的系统,其特征在于,所述第一判断模块包括第一设置单元;
所述第一设置单元用于设置栅栏;
所述栅栏用于监听所述GPU解码单元和所述CPU解码单元解码后的解码信息并判断是否解码成功,若是,则停止所述GPU解码单元和所述CPU解码单元继续解码并调用所述第一输出模块。
16.如权利要求15所述的识别二维码的系统,其特征在于,所述栅栏用于通过独立线程监听所述解码后的解码信息。
17.一种识别二维码的系统,其特征在于,包括:第二图像获取模块,第二判断模块,第一解码模块,第二解码模块,第二输出模块;
所述第二图像获取模块用于获取待识别二维码的图像数据;
所述第二判断模块用于判断所述图像数据是否为标准二维码,若是则调用所述第一解码模块,若否则调用所述第二解码模块;
所述第一解码模块用于将所述图像数据传输至GPU解码单元进行解码,调用所述第二输出模块;
所述第二解码模块用于将所述图像数据传输至CPU解码单元进行解码,调用所述第二输出模块;
所述第二输出模块用于解码完成后输出解码结果。
18.如权利要求17所述的识别二维码的系统,其特征在于,所述GPU解码单元包括操作系统定制的识别算法,所述操作系统定制的识别算法支持的解码格式为标准二维码格式,包括EAN13Code或EAN8Code或QRCode中的至少一种;所述CPU解码单元包括zxing识别算法和/或zbar识别算法。
19.如权利要求17所述的识别二维码的系统,其特征在于,所述第二判断模块包括第一数据单元、第二数据单元及确定单元;
所述第一数据单元用于对所述图像数据进行裁剪,以得到第一数据;
所述第二数据单元用于对所述第一数据进行图像二值化处理,以得到第二数据;
所述确定单元用于使用图像模糊算法判断所述第二数据的模糊程度是否小于或等于预定值,若是,则确定所述图像数据为标准二维码。
20.如权利要求17所述的识别二维码的系统,其特征在于,所述第二输出模块包括第二格式统一单元及第二封装单元,
所述第二格式统一单元用于统一所述解码结果的格式,
所述第二封装单元用于将统一格式后的所述解码结果封装并输出。
21.如权利要求17所述的识别二维码的系统,其特征在于,所述系统还包括第二设置单元;
所述第二设置单元用于设置栅栏;
所述栅栏用于监听所述GPU解码单元和所述CPU解码单元解码后的解码信息并判断是否解码成功,若是,则停止所述GPU解码单元和所述CPU解码单元继续解码并调用所述第二输出模块。
22.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至11任一项所述的识别二维码的方法。
23.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至11任一项所述的识别二维码的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910033425.5A CN111435414B (zh) | 2019-01-14 | 2019-01-14 | 识别二维码的方法、系统、设备及储存介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910033425.5A CN111435414B (zh) | 2019-01-14 | 2019-01-14 | 识别二维码的方法、系统、设备及储存介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111435414A true CN111435414A (zh) | 2020-07-21 |
CN111435414B CN111435414B (zh) | 2024-04-05 |
Family
ID=71579956
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910033425.5A Active CN111435414B (zh) | 2019-01-14 | 2019-01-14 | 识别二维码的方法、系统、设备及储存介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111435414B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101840492A (zh) * | 2010-05-25 | 2010-09-22 | 福建新大陆电脑股份有限公司 | 一种支持多码制并行处理的条码解码装置 |
CN105824701A (zh) * | 2016-02-01 | 2016-08-03 | 乐视移动智能信息技术(北京)有限公司 | 识别码扫码方法和系统 |
US20170163990A1 (en) * | 2015-12-07 | 2017-06-08 | Le Holdings (Beijing) Co., Ltd. | Video transcoding method and system |
CN108520188A (zh) * | 2018-03-02 | 2018-09-11 | 阿里巴巴集团控股有限公司 | 一种识别条码的方法、装置及设备 |
-
2019
- 2019-01-14 CN CN201910033425.5A patent/CN111435414B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101840492A (zh) * | 2010-05-25 | 2010-09-22 | 福建新大陆电脑股份有限公司 | 一种支持多码制并行处理的条码解码装置 |
US20170163990A1 (en) * | 2015-12-07 | 2017-06-08 | Le Holdings (Beijing) Co., Ltd. | Video transcoding method and system |
CN105824701A (zh) * | 2016-02-01 | 2016-08-03 | 乐视移动智能信息技术(北京)有限公司 | 识别码扫码方法和系统 |
CN108520188A (zh) * | 2018-03-02 | 2018-09-11 | 阿里巴巴集团控股有限公司 | 一种识别条码的方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111435414B (zh) | 2024-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107516090B (zh) | 一体化人脸识别方法和系统 | |
WO2020038127A1 (zh) | 解码方法、装置、电子设备以及存储介质 | |
US10768947B2 (en) | Method for interface refresh synchronization,terminal device, and non-transitory computer-readable storage medium | |
CN109151966A (zh) | 终端控制方法、装置、终端设备及存储介质 | |
CN109889894A (zh) | 媒体文件解码方法、装置及存储介质 | |
CN109828859B (zh) | 移动终端内存分析方法、装置、存储介质及电子设备 | |
US10496423B2 (en) | Method for opening up data and functions of terminal application based on reconstruction technology | |
CN111131403A (zh) | 一种物联网设备的消息编解码方法及装置 | |
US20220374219A1 (en) | Deployment of service | |
JP2022509191A (ja) | 映像デコーディング制御方法、装置、電子機器及び記憶媒体 | |
CN111435414B (zh) | 识别二维码的方法、系统、设备及储存介质 | |
CN115358914B (zh) | 用于视觉检测的数据处理方法、装置、计算机设备及介质 | |
WO2019165870A1 (zh) | 一种识别条码的方法、装置及设备 | |
CN109379626A (zh) | 视频处理方法、装置、电子设备及存储介质 | |
CN111552606A (zh) | 数据处理方法、装置及电子设备 | |
CN114428747A (zh) | 一种用户界面测试方法、装置、服务器及存储介质 | |
CN114390307A (zh) | 图像画质增强方法、装置、终端及可读存储介质 | |
CN112819030A (zh) | 图像识别模型训练方法、装置、存储介质及终端 | |
CN110502439B (zh) | 调试方法、装置、电子设备以及存储介质 | |
CN107809643B (zh) | 一种图像的解码方法、装置及介质 | |
CN114116418A (zh) | 信息处理方法及装置、计算机存储介质、电子设备 | |
CN104519359B (zh) | 进行视频码流处理的设备及方法 | |
TWI669947B (zh) | 圖片轉碼方法、計算設備及儲存介質 | |
CN113747195A (zh) | 视频数据处理方法、装置、设备及存储介质 | |
CN117435259B (zh) | Vpu的配置方法、装置、电子设备及计算机可读存储介质 |
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 |