kaix

  • 495 主题
  • 542 帖子
  • 5026 积分
  • 身份:LV6 初级工程师
  • E币:1963

二维码识别技术的原理和识别

2019-9-3 16:47:11 显示全部楼层
基于二维码识别相关的应用迅速进入人们的生活,扫二维码已成为连接线上线下成本最低的网络接入口之一。二维码识别技术原理是什么,又因何种优势能够改变我们的生活方式?本文将以二维码使用最广的QR码(Quick Response Code)为例,从QR码的优势、识别过程、算法、和应用方向等方面阐述二维码得以广泛使用的原因。

目前,二维码在中国的最大应用领域就是移动支付。不少人已经习惯了出门不带现金,手机扫码走天下。根据第40次《中国互联网络发展状况统计报告》显示,截至2017年6月,我国手机网民规模达7.24亿,移动支付用户规模达5.02亿,4.63亿网民在线下消费时使用手机进行支付,而这其中很多都是通过扫二维码实现的。
         

        资料来源:CNNIC 前瞻产业研究院整理

接下来将对二维码识别技术及应用进行介绍,为了便于整体理解,首先阐述QR码的特点及优势,接着介绍QR码识别过程,并重点介绍图像预处理算法。然后讲述当前二维码识别技术的应用领域,最后演示我司QR码识别demo。

QR码的特点及优势

QR码是由日本Denso公司于1994年9月研制的一种矩阵式二维条码,它除了具有二维条码所具有的信息容量大、可靠性高、可表示汉字及图像多种信息、保密防伪性强等特点外,还具有能高速全方位识读、能有效表达汉字等主要特点。

QR码的识别过程

QR符合由编码区域和包括寻像图形、分隔符、定位图形和校正图形在内的功能图形组成。QR码结构图如下所示。
1.jpg
QR码结构图

QR码识别常见的方法过程主要有图像预处理,定位位置探测图形、定位校正图形、透视变换、译码和纠错。图像预处理:灰度化、去噪、畸变矫正以及二值化等;定位位置探测图形:通过位置探测图形1:1:3:1:1的特征查找,允许容差0.5,水平和垂直方向扫描该特征,多次穿透即为候选位置探测图像,通过一些筛选策略剔除假位置探测图形确定真图形,再根据3个该图形之间的距离和旋转角度,确定它们的方位,分别为左上角,右上角和左下角。         

位置探测图形特征

定位校正图形:根据3个位置探测图像估计右下角校正符,类似定位位置探测图形定位该图形。

透视变换:根据3个定位中心点和校正符中心点,和理想4个点的坐标,获取单应性矩阵,再通过透视变换获取标准正方形图像。透视变换公式如下:         

透视变换效果图如下:



译码和纠错:译码是对二维码版本信息、格式信息、数据和纠错码进行解码和对比。将数据区转为0和1的比特流,并用Reed-Solomon纠错算法对比特流校验和纠错。判断QR码编码格式后译码,这样我们便得到了二维码包含的数据。

QR码图像预处理

常规的QR码识别过程容易受到环境影响而难以识别,往往需要一些预处理改善图像质量和识别环境。

图像灰度化:摄像头输出的数据格式很多,黑白摄像头直接输出灰度图,而彩色摄像头输出格式有YUV422,YUV410,RGB565,RGB888等,二维码识别只需要单通道的灰度图,因此需要转化,以RGB888为例,转换公式如下:

去噪:噪声的影响会使1:1:3:1:1的特征定位不准,以及数据阶段译码错误,常见的噪声主要是高斯噪声和椒盐噪声,可以采用高斯滤波,中值滤波或均值滤波来改善图像质量。

畸变矫正:广角摄像头或鱼眼摄像头带有较大的畸变,越靠近视角边缘图像形变越大,对于畸变较大的图像而言,不仅1:1:3:1:1的特征的比例关系失调,数据区的数据没有标准的模块大小,会造成无法准确译码。对于这种情况,需通过畸变模型矫正,矫正成无畸变的图像。

二值化:正常情况下背景和QR码目标区分明显,光照均匀,只需要简单使用全局二值化方法即可,常见的方法有固定阈值法、Otsu法,直方图双峰阈值化方法等。对于光照不均匀的情况,则不适用,会造成全局亮度失衡而无法正常识码,因此需要自适应局部阈值化方法处理,可以采用分块求阈值再均衡化的方法实现。

QR码应用领域

QR码是用某种特定的几何图形,按一定规律来记录数据符号信息。主要用途如下表:



来源:ZLG立功科技一致远电子

最新评论

楼层直达:

法师

  • 127 主题
  • 276 帖子
  • 1974 积分
  • 身份:版主
  • E币:1246
法师 2019-9-3 21:01:45 显示全部楼层
很深,对软件了解比较少.

FPFA兔兔爸

  • 0 主题
  • 127 帖子
  • 526 积分
  • 身份:实习版主
  • E币:365
FPFA兔兔爸 2019-9-4 10:02:20 显示全部楼层
扫描 镜子里的 二维码  ....  其实是 相当于逆时针 旋转90度 了....

SimonC

  • 0 主题
  • 25 帖子
  • 370 积分
  • 身份:LV2 初级技术员
  • E币:255
SimonC 2019-9-9 11:55:35 显示全部楼层
FPFA兔兔爸 发表于 2019-9-4 10:02
扫描 镜子里的 二维码  ....  其实是 相当于逆时针 旋转90度 了....

你是来搞笑的吗?
广告

FPFA兔兔爸

  • 0 主题
  • 127 帖子
  • 526 积分
  • 身份:实习版主
  • E币:365
FPFA兔兔爸 2019-9-10 11:26:01 显示全部楼层
扫描 镜子里的 二维码  .... 从 三个角的定位符号来看,是 相当于把二维条码的全部内筒 逆时针 旋转90度 了......行的编码信息当作了列,而列的编码信息当作了行.... ......  所以 从识别 原理上来看, 一定会识别错误, 除非原始信息就是 全0全1 那样的不怕 倒置的信息。 ------------哪个地方搞笑了??
我要评论
4
15
广告
关闭 热点推荐上一条 /3 下一条
快速回复 返回列表