• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 業界動態 > ZLG解析——二維碼識別技術

    ZLG解析——二維碼識別技術

    作者: 時間:2019-09-05 來源:電子產品世界 收藏

    基于二維碼識別相關的應用迅速進入人們的生活,掃二維碼已成為連接線上線下成本最低的網絡接入口之一。二維碼識別技術原理是什么,又因何種優勢能夠改變我們的生活方式?本文將以二維碼使用最廣的QR碼(Quick Response Code)為例,從QR碼的優勢、識別過程、算法、和應用方向等方面闡述二維碼得以廣泛使用的原因。

    本文引用地址:http://www.czjhyjcfj.com/article/201909/404480.htm

    目前,二維碼在中國的最大應用領域就是移動支付。不少人已經習慣了出門不帶現金,手機掃碼走天下。根據第40次《中國互聯網絡發展狀況統計報告》顯示,截至2017年6月,我國手機網民規模達7.24億,移動支付用戶規模達5.02億,4.63億網民在線下消費時使用手機進行支付,而這其中很多都是通過掃二維碼實現的。

    1567663101389903.jpg

    資料來源:CNNIC 前瞻產業研究院整理

        接下來將對二維碼識別技術及應用進行介紹,為了便于整體理解,首先闡述QR碼的特點及優勢,接著介紹QR碼識別過程,并重點介紹圖像預處理算法。然后講述當前二維碼識別技術的應用領域,最后演示ZLG QR碼識別demo。

    1.  QR碼的特點及優勢

    QR碼是由日本Denso公司于1994年9月研制的一種矩陣式二維條碼,它除了具有二維條碼所具有的信息容量大、可靠性高、可表示漢字及圖像多種信息、保密防偽性強等特點外,還具有能高速全方位識讀、能有效表達漢字等主要特點。

    2.  QR碼的識別過程

    QR符合由編碼區域和包括尋像圖形、分隔符、定位圖形和校正圖形在內的功能圖形組成。QR碼結構圖如下所示。

    1567663114789299.jpg

    QR碼結構圖

    QR碼識別常見的方法過程主要有圖像預處理,定位位置探測圖形、定位校正圖形、透視變換、譯碼和糾錯。

    圖像預處理:灰度化、去噪、畸變矯正以及二值化等;

    定位位置探測圖形:通過位置探測圖形1:1:3:1:1的特征查找,允許容差0.5,水平和垂直方向掃描該特征,多次穿透即為候選位置探測圖像,通過一些篩選策略剔除假位置探測圖形確定真圖形,再根據3個該圖形之間的距離和旋轉角度,確定它們的方位,分別為左上角,右上角和左下角。

    2019.9.4.jpg

    位置探測圖形特征

    定位校正圖形:根據3個位置探測圖像估計右下角校正符,類似定位位置探測圖形定位該圖形。

    透視變換:根據3個定位中心點和校正符中心點,和理想4個點的坐標,獲取單應性矩陣,再通過透視變換獲取標準正方形圖像。透視變換公式如下:

    1567663147735154.jpg

    透視變換效果圖如下

    1567663175669071.jpg

    譯碼和糾錯:譯碼是對二維碼版本信息、格式信息、數據和糾錯碼進行解碼和對比。將數據區轉為0和1的比特流,并用 Reed-Solomon 糾錯算法對比特流校驗和糾錯。判斷QR碼編碼格式后譯碼,這樣我們便得到了二維碼包含的數據。

    3.  QR碼圖像預處理

    常規的QR碼識別過程容易受到環境影響而難以識別,往往需要一些預處理改善圖像質量和識別環境。

    圖像灰度化:攝像頭輸出的數據格式很多,黑白攝像頭直接輸出灰度圖,而彩色攝像頭輸出格式有YUV422,YUV410,RGB565, RGB888等,二維碼識別只需要單通道的灰度圖,

    因此需要轉化,以RGB888為例,轉換公式如下:

    image.png

    去噪:噪聲的影響會使1:1:3:1:1的特征定位不準,以及數據階段譯碼錯誤,常見的噪聲主要是高斯噪聲和椒鹽噪聲,可以采用高斯濾波,中值濾波或均值濾波來改善圖像質量。

    畸變矯正:廣角攝像頭或魚眼攝像頭帶有較大的畸變,越靠近視角邊緣圖像形變越大,對于畸變較大的圖像而言,不僅1:1:3:1:1的特征的比例關系失調,數據區的數據沒有標準的模塊大小,會造成無法準確譯碼。對于這種情況,需通過畸變模型矯正,矯正成無畸變的圖像。

    二值化:正常情況下背景和QR碼目標區分明顯,光照均勻,只需要簡單使用全局二值化方法即可,常見的方法有固定閾值法、Otsu法,直方圖雙峰閾值化方法等。對于光照不均勻的情況,則不適用,會造成全局亮度失衡而無法正常識碼,因此需要自適應局部閾值化方法處理,可以采用分塊求閾值再均衡化的方法實現。

    4.  QR碼應用領域

    QR碼是用某種特定的幾何圖形,按一定規律來記錄數據符號信息。主要用途如下表

    1567663445966152.jpg

    1567663474557218.jpg

    5.  QR碼識別效果展示

    ZLG研發的QR碼識別算法目前支持的平臺有:基于AWorks系統的cortex-m7系列M1052-M16F128AWI -T平臺、基于Linux的cortex-a7系列M6Y2C-256F256LI-T平臺和基于Linux的cortex-a8系列M3354-512LI-F1GT平臺。

    基于cortex-a8系列M3354-512LI-F1GT平臺的QR碼識別功能如下視頻所示:

    1567663604566133.jpg

    A8_快速掃描、A8_碎屏識別demo.mp4

    視頻中主要展示了微信支付操作,可以看到劇烈晃動手機的情況下依舊能夠識別。對于單次支付操作,觀察串口打印的信息可以看出,基本實現了無需等待的“閃付”體驗。并且,從視頻中可以看到,針對于手機碎屏問題,ZLG的QR碼算法可以較好的支持。

    此外,考慮到個性化QR碼使用場景,我司QR碼識別算法同樣支持,以微信二維碼名片樣式為例,效果如以下視頻所示

    1567663618252911.jpg

    A8_多樣式demo.mp4

    基于cortex-m7系列M1052-M16F128AWI -T平臺的二維碼識別demo配有4.3寸液晶顯示屏, 以類似于手機掃碼的體驗,快速識別二維碼,顯示識別的結果。效果如下所示:

    1567663659613835.jpg

    M7_快速掃描demo.mp4

    ZLG QR碼算法調用方式簡單,僅需要算法初始化、解碼和內存釋放三個步驟,QR碼算法頭文件“aw_qrcode.h”接口如下

    1567663673336040.jpg

    調用我司的QR碼算法demo程序“QRScanner.c”如下所示

    1567663726105853.jpg

    最后附上M3354-512LI-F1GT產品圖片:

    1567668496522985.jpg

    M1052-M16F128AWI-T產品圖片:

    1567668564162849.jpg

    6.  關于算法庫獲取

    關于算法庫可以聯系ZLG立功科技獲取。




    關鍵詞:

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 依安县| 凌源市| 鹿泉市| 长治县| 公主岭市| 高安市| 麟游县| 剑阁县| 盐津县| 蓬安县| 黄山市| 青浦区| 鹿泉市| 澄迈县| 刚察县| 尚志市| 白河县| 海城市| 都匀市| 余庆县| 河曲县| 会理县| 神农架林区| 临沭县| 扎囊县| 筠连县| 定边县| 清流县| 竹北市| 酒泉市| 余姚市| 铜鼓县| 四川省| 隆回县| 佛冈县| 灵宝市| 长汀县| 吉木萨尔县| 班戈县| 淮南市| 谢通门县|