燕雨薇 余粟
摘 要:隨著移動(dòng)互聯(lián)網(wǎng)時(shí)代的飛速發(fā)展,二維碼在改變?nèi)藗兩罘绞街邪l(fā)揮了重要的作用。二維碼以其存儲(chǔ)容量大、無需依賴數(shù)據(jù)庫(kù)等優(yōu)點(diǎn)而廣泛應(yīng)用于網(wǎng)絡(luò)通訊。為了加深人們對(duì)二維碼的了解,使得二維碼更好地應(yīng)用于生活、發(fā)揮其更大的價(jià)值,本文對(duì)二維碼的基本概念進(jìn)行了詳細(xì)介紹,包括二維碼的分類和編碼過程。并以QR二維碼為例,分析其編解碼的重點(diǎn)原理,在此基礎(chǔ)上簡(jiǎn)要介紹了其在當(dāng)前幾個(gè)主要領(lǐng)域的應(yīng)用,并結(jié)合其編解碼過程分析尚存在的問題,為今后的研究提供指向。
關(guān)鍵詞: 二維碼;QR碼;編碼;解碼;應(yīng)用
【Abstract】 With the rapid development of mobile Internet era, two-dimensional code plays an important role in changing people's lifestyle. Two-dimensional code is widely used in network communication because of its large storage capacity and no need to rely on database.In order to deepen people's knowledge of the QR code, to make the QR Code more useful to life and more valuable, in this paper, the basic concept of two-dimensional code is introduced in detail, and taking the QR code as an example, the key principles of its coding and decoding are analyzed. After that, the paper briefly discusses the application of QR code in several main fields at present, and analyzes the existing problems in combination with its encoding and decoding process, so as to provide the direction for future research.
【Key words】 ?two-dimensional code; QR Code; coding; decoding; application
0 引 言
二維碼是在一維碼基礎(chǔ)上演變而來的,在設(shè)計(jì)上改善了一維條碼低密度信息、存儲(chǔ)容量較小、必須依賴數(shù)據(jù)庫(kù)和通信網(wǎng)絡(luò)等缺點(diǎn),而且其自動(dòng)識(shí)讀技術(shù)及低廉的成本即使得二維碼現(xiàn)已廣泛應(yīng)用于生活的各個(gè)方面,如生產(chǎn)系統(tǒng)、醫(yī)療系統(tǒng)、稅務(wù)系統(tǒng)等等。二維碼種類很多,編解碼方式也是各不相同,因此不同種類二維碼的應(yīng)用領(lǐng)域也存在差異。當(dāng)前熱門流行的當(dāng)屬Q(mào)R二維碼,對(duì)二維碼的研究也主要集中在該類二維碼上。下文將論述二維碼的基本概念,并以QR碼為例詳細(xì)分析其編解碼過程及原理。
1 二維碼的基本概念
20世紀(jì)以來,二維碼以其成本低廉、存儲(chǔ)容量大、識(shí)別速度快等優(yōu)點(diǎn)被廣泛應(yīng)用于各領(lǐng)域,移動(dòng)通信技術(shù)的迅速發(fā)展將二維碼技術(shù)應(yīng)用推向了一個(gè)新高潮,極大地改善了人們的生活方式。接下來,將簡(jiǎn)要闡述二維碼的分類及其編碼的概念。
1.1 二維碼分類
有2種類型的二維碼,分別是行排式二維碼和矩陣式二維碼[1]。對(duì)此可做分析表述如下。
(1)行排式二維碼:該類二維碼由一維條碼組成,在編碼原理上類似于一維條碼,并且通常不具備糾錯(cuò)能力。其中頗具代表性的有:Code49碼、Code16K碼、PDF417碼。
(2)矩陣式二維碼:該類二維碼以矩陣形式組成,具有自動(dòng)識(shí)別的能力,且通常都有糾錯(cuò)功能。其中頗具代表性的有:Data Matrix碼、Code One碼、Quick Response碼(簡(jiǎn)稱QR碼)、漢信碼。
上述各類型二維碼參數(shù)對(duì)比詳見表1。研究可知,表1中的QR二維碼是當(dāng)前最受歡迎的二維碼類型之一,而且因?yàn)槟軐?duì)漢字進(jìn)行編碼,在國(guó)內(nèi)的應(yīng)用尤為廣泛。
1.2 二維碼編碼
根據(jù)編碼的對(duì)象和功能,二維碼編碼一般包括信息編碼、糾錯(cuò)編碼和加密編碼三種。研究可得闡釋總述如下。
(1)信息編碼:是指根據(jù)不同的規(guī)則將不同的數(shù)據(jù)信息編碼成二進(jìn)制數(shù)據(jù)流的過程,具體流程如圖1所示。
(2)糾錯(cuò)編碼:是形成二維碼糾錯(cuò)碼的過程,使得生成的二維碼具有一定的糾錯(cuò)功能。通常行排式二維碼不具備糾錯(cuò)功能,大多數(shù)矩陣式二維碼具有糾錯(cuò)功能。
(3)加密編碼:為保障二維碼存儲(chǔ)信息的安全,還需對(duì)信息進(jìn)行加密,這樣就可以避免傳輸過程中信息的泄露。
2 QR碼編解碼
快速響應(yīng)碼,簡(jiǎn)稱QR碼,由于具有糾錯(cuò)和快速識(shí)別的能力、能夠?qū)h字進(jìn)行編碼,已成為中國(guó)當(dāng)前應(yīng)用最為廣泛的一種矩陣式二維碼。QR碼共有40種版本,4個(gè)糾錯(cuò)等級(jí),其圖像由黑白塊組成,存儲(chǔ)著數(shù)據(jù)信息、糾錯(cuò)碼字、版本信息等。在此,擬展開研究論述如下。
2.1 QR碼編碼
QR碼的編碼過程包括3個(gè)重要部分,即:數(shù)據(jù)編碼、糾錯(cuò)碼字構(gòu)造和掩膜技術(shù)[2]。這里,對(duì)每一部分,將給出研究詳述如下。
2.1.1 數(shù)據(jù)編碼
數(shù)據(jù)編碼是指將原始數(shù)據(jù)通過數(shù)據(jù)分析,并按照該數(shù)據(jù)類型對(duì)應(yīng)的編碼模式,轉(zhuǎn)換為二進(jìn)制數(shù)據(jù)流的過程。其中,數(shù)據(jù)可能包括數(shù)字、字母、字符集或者漢字,不同數(shù)據(jù)形式的編碼模式也不相同,下面以數(shù)字模式的編碼為例說明數(shù)據(jù)編碼的大致過程。輸入數(shù)據(jù)00301001105,研究步驟內(nèi)容具體如下。
2.1.2 糾錯(cuò)碼字構(gòu)造
QR碼使用RS(Reed-Solomon)糾錯(cuò)碼,該糾錯(cuò)碼具有強(qiáng)大的糾錯(cuò)能力,主要用于糾正突發(fā)錯(cuò)誤。RS碼的編碼原理[3]如下:
RS碼生成的多項(xiàng)式為:C(X)=m(X)+r(X)=C0+C1X+...+Cn-1Xn-1 ,其中m(X)=C2tX2t+C2t+1X2t+1+...+Cn-1Xn-1為信息多項(xiàng)式,且r(X)=C0+C1X+...+C2t-1X2t-1為校驗(yàn)多項(xiàng)式。當(dāng)C(X)是合法碼字時(shí),就必須是生成多項(xiàng)式g(X)的倍數(shù),即C(X)=q(X)g(X),此時(shí)m(X)=q(X)g(X)+p(X),其中p(X)為本原多項(xiàng)式。
研究時(shí),根據(jù)上述原理來對(duì)RS碼進(jìn)行編碼,從而生成糾錯(cuò)碼字。
2.1.3 掩膜技術(shù)
在編排好QR碼圖像后增加掩膜技術(shù)[4],其目的旨在使得二維碼圖像中黑白塊的分布更加均衡,避免出現(xiàn)圖像結(jié)構(gòu)相同的情況,從而提高二維碼的可讀性。對(duì)QR碼進(jìn)行掩膜操作的步驟見如下:
(1)通過不同的掩膜方案生成相應(yīng)的掩膜圖形。
(2)將QR碼圖像與不同的掩膜圖形分別進(jìn)行異或操作。
(3)對(duì)生成的圖像進(jìn)行評(píng)估,選出最適合的掩膜方案。目前使用的評(píng)估方法包括加權(quán)計(jì)分評(píng)估和基于數(shù)學(xué)統(tǒng)計(jì)思想的評(píng)估。
2.2 QR碼解碼
在QR碼的解碼算法中,目前更多地使用基于圖像處理的二維碼解碼算法,解碼算法的流程即如圖2所示[5]。這里,對(duì)該流程中的核心設(shè)計(jì)內(nèi)容可做重點(diǎn)解析論述如下。
(3)圖像分割。是指將圖像分為若干特定的區(qū)域以便進(jìn)行研究,QR碼由黑、白塊組成,所以一般使用二值化方法進(jìn)行圖像分割.也就是說,通過所選定的閾值,將圖像中所有像素點(diǎn)與該閾值進(jìn)行比較,若像素點(diǎn)的灰度值大于等于該閾值則將該像素點(diǎn)的灰度值改為255,反之則用0代替該像素點(diǎn)的灰度值。該方法速度較快,且易于實(shí)現(xiàn)。
2.2.2 定位與校正
在對(duì)QR碼圖像進(jìn)行預(yù)處理后,即涉及到圖像的定位及校正。探討后可得分析表述如下。
定位實(shí)際就是確定二維碼矩陣4個(gè)頂點(diǎn)的坐標(biāo),由矩形的特點(diǎn)分為2種定位方法。其一是,QR碼的3個(gè)頂點(diǎn)均有位置探測(cè)圖形,可以通過掃描確定這3個(gè)位置探測(cè)圖形的中心坐標(biāo),然后計(jì)算得到第四個(gè)頂點(diǎn)的坐標(biāo);其二是,QR碼的4條邊由邊緣檢測(cè)確定,4條邊的交點(diǎn)即為4個(gè)頂點(diǎn)。受光照、拍攝角度等環(huán)境問題的影響,傳統(tǒng)的方法對(duì)二維碼并不能獲得較好的定位效果。近年來,學(xué)者們提出多種優(yōu)化方法。例如,基于凸包及最小面積外接矩形的定位算法[8],該算法通過獲取圖像邊緣的系列點(diǎn)集來計(jì)算其凸包及最小外接矩形,從而確定位置及角度信息,實(shí)驗(yàn)證明該方法比傳統(tǒng)方法占用更少資源,節(jié)約更多時(shí)間;基于最小二乘的定位算法[9],該算法通過識(shí)別到的位置探測(cè)圖形提取其中心坐標(biāo),進(jìn)行間接調(diào)整,實(shí)現(xiàn)校正和定位;基于卷積神經(jīng)網(wǎng)絡(luò)的定位算法[10],該算法即運(yùn)用滑動(dòng)窗口技術(shù)將二值圖像分為若干候選塊,再通過訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)識(shí)別和分類這些候選塊,以找出屬于QR碼位置探測(cè)圖形的候選塊,與此同時(shí)還將基于探測(cè)圖形的比例特征,快速并精確地進(jìn)行定位。
2.2.3 數(shù)據(jù)糾錯(cuò)
QR碼成功定位后能夠確定并提取對(duì)應(yīng)位置的信息,對(duì)于所接收的數(shù)據(jù)使用Reed-Solomon糾錯(cuò)算法進(jìn)行糾錯(cuò)。Reed-Solomon糾錯(cuò)過程如下:
(1)計(jì)算校正子:校正子由信息多項(xiàng)式和校驗(yàn)碼通過運(yùn)算所得。
(2)計(jì)算錯(cuò)誤位置:根據(jù)校正子的值判斷、計(jì)算錯(cuò)誤位置。
(3)修改錯(cuò)誤值:找到錯(cuò)誤的位置以更正此位置的值。
至此,可將通過數(shù)據(jù)糾錯(cuò)后所獲的數(shù)據(jù)流傳入譯碼器進(jìn)行譯碼,最終會(huì)得到初始數(shù)據(jù),完成二維碼的數(shù)據(jù)傳輸工作。
3 二維碼的應(yīng)用
二維碼以其快速識(shí)別、存儲(chǔ)信息等優(yōu)勢(shì)應(yīng)用于生活的方方面面,例如移動(dòng)支付、網(wǎng)頁(yè)導(dǎo)航、票務(wù)系統(tǒng)、公共交通等等,給人們的生活帶來諸多便利。除此之外,二維碼可以和其它的眾多學(xué)科領(lǐng)域相結(jié)合,研究可得分析綜述如下。
(1)醫(yī)學(xué)領(lǐng)域:將二維碼應(yīng)用于藥品流通監(jiān)管中,如中藥材的流通監(jiān)管,中藥材種類繁多,監(jiān)管難度較大。通過實(shí)驗(yàn)獲取每種藥材的DNA序列,選取其中一段標(biāo)準(zhǔn)且相對(duì)短的序列作為序列號(hào)進(jìn)行編碼,生成二維碼圖像,這樣就將便于對(duì)藥材實(shí)施有效監(jiān)管[12]。與此相似的應(yīng)用還有很多,如樣片檢測(cè)、患者信息等等。
(2)工農(nóng)業(yè):現(xiàn)在很多產(chǎn)品包裝上都會(huì)印刷二維碼。這些二維碼不僅能提取廠商網(wǎng)址信息,還能提供產(chǎn)品的生產(chǎn)、質(zhì)量信息,尤其是與農(nóng)產(chǎn)品相關(guān)的一系列信息的追蹤溯源。這樣一來,消費(fèi)者能夠通過智能終端掃描,追溯到選購(gòu)產(chǎn)品質(zhì)量安全的全部信息[13]。
(3)安全技術(shù)領(lǐng)域:在網(wǎng)絡(luò)通信過程中,信息的安全傳輸尤為重要。二維碼具備存儲(chǔ)信息的功能,加上其獨(dú)特的編碼模式,將信息放入二維碼中成為一種保障信息安全的簡(jiǎn)單、且有效的方式[14]。同時(shí),二維碼本身也能作為一種防偽標(biāo)識(shí),幫助消費(fèi)者有效地辨別產(chǎn)品的真假。
4 結(jié)束語(yǔ)
移動(dòng)終端的發(fā)展促進(jìn)了二維碼的大規(guī)模應(yīng)用,在對(duì)二維碼的編碼和解碼過程進(jìn)行了詳盡討論后,研究發(fā)現(xiàn)二維碼的探索應(yīng)用上仍存在廣闊的研發(fā)創(chuàng)新空間。例如,在編碼階段,可以對(duì)糾錯(cuò)算法進(jìn)行優(yōu)化升級(jí),提升糾錯(cuò)能力;改進(jìn)掩膜評(píng)估方法,以便找出更加合適的掩膜圖形,最大程度避免圖像的重復(fù)。在解碼階段,對(duì)于圖像的定位和校正,因受環(huán)境影響傳統(tǒng)定位方法不能進(jìn)行正確定位操作,如何有效定位則是下一步的研究方向;對(duì)于圖像扭曲、破損的情況,需要融合圖像處理和二維碼技術(shù)來對(duì)圖像進(jìn)行復(fù)原。目前,二維碼大多仍是用于信息的存儲(chǔ),在網(wǎng)絡(luò)通信中,信息安全始終都是當(dāng)前學(xué)界密切關(guān)注的研究課題,時(shí)下已有很多加強(qiáng)二維碼安全的研究,但卻仍需加大研究投入力度,致力于解決二維碼應(yīng)用中現(xiàn)存的各種安全隱患,從而優(yōu)化、及改進(jìn)二維碼應(yīng)用的總體安全性能。
參考文獻(xiàn)
[1]于英政. QR二維碼相關(guān)技術(shù)的研究[D].北京:北京交通大學(xué),2014.
[2]蒲策. QR二維碼編碼譯碼算法研究及應(yīng)用[D]. 成都:成都理工大學(xué),2016.
[3]康偉慈,曹民. QR二維碼糾錯(cuò)改進(jìn)算法[J].電子科技,2016,29(12):101-103.
[4]曾子劍. 基于QR二維碼編解碼技術(shù)的研究與實(shí)現(xiàn)[D]. 成都:電子科技大學(xué),2010.
[5]段茵.基于QR二維碼的識(shí)別技術(shù)研究與實(shí)現(xiàn)[D]. 西安:西安理工大學(xué),2018.
[6]劉美,薛新松,劉廣文,等.對(duì)比度增強(qiáng)的彩色圖像灰度化算法[J].長(zhǎng)春理工大學(xué)學(xué)報(bào)(自然科學(xué)版),2018,41(5):70-74.
[7]WU Changdong, JIANG Hua,QIU Xiaochu.A denoising mixed noise method based on multistage median filter and lifting wavelet technology[J].Laser Journal,2010,31(6):23-24.
[8]張勇,楊傲雷. 基于凸包及最小面積外接矩形的QR碼定位[J].電子測(cè)量技術(shù),2017,40(4):152-156.
[9]馮瑋,方春. 一種基于最小二乘的QR碼定位的穩(wěn)定算法[J].計(jì)算機(jī)應(yīng)用研究,2018,35(3):957-960.
[10]程曙光. 基于卷積神經(jīng)網(wǎng)絡(luò)的QR碼定位算法研究[D].杭州:浙江大學(xué),2016.
[11]王雄華,張昕,朱同林.快速定位的QR碼校正方法[J].計(jì)算機(jī)工程與設(shè)計(jì),2015,36(8):2185-2190.
[12]辛天怡,李西文,姚輝,等.中藥材二維DNA條形碼流通監(jiān)管體系研究[J].中國(guó)科學(xué):生命科學(xué),2015,45(7):695-702.
[13]董玉德,丁保勇,張國(guó)偉,等.基于農(nóng)產(chǎn)品供應(yīng)鏈的質(zhì)量安全可追溯系統(tǒng)[J].農(nóng)業(yè)工程學(xué)報(bào),2016,32(1):280-285.
[14]王斯琴. 結(jié)合QR碼應(yīng)用的多信息隱藏技術(shù)研究[D].南昌:南昌大學(xué),2017.
[15]周娣.淺談二維碼的應(yīng)用[J].山東輕工業(yè)學(xué)院學(xué)報(bào)(自然科學(xué)版),2011,25(2):62-64.
[16]NISHANT G, SHARMA A, GOSWAMI S.A way to secure a QR code:SQR[C]//2017 International Conference on Computing, Communication and Automation (ICCCA). Greater Noida, India:IEEE,2017:494-497.
[17]齊年強(qiáng).RSA算法在二維碼防偽技術(shù)中的應(yīng)用研究[D].南京:南京郵電大學(xué),2017.
[18]劉永俊,秦立浩.二維碼水印加密并行化嵌入及提取方法[J].常熟理工學(xué)院學(xué)報(bào)(自然科學(xué)),2017,31(2):39-42.
[19]朱小蘭,駱新蘭,武鴻美,等. 二維碼在常規(guī)病理制片技術(shù)中的應(yīng)用[J].臨床與實(shí)驗(yàn)病理學(xué)雜志,2018,34(12):1401-1402.
[20]劉麗. 基于二維碼數(shù)字水印的產(chǎn)品防偽研究與應(yīng)用[D]. 北京:北京郵電大學(xué),2013.
[21]李國(guó)和,陳晨,吳衛(wèi)江,等.面向二維碼的數(shù)字水印置入與提取方法[J].計(jì)算機(jī)工程與應(yīng)用,2019,55(10):103-107,114.
[22]HUANG Pengcheng,CHANG C C,LI Y H,et al.Efficient access control system based on aesthetic QR Code[J].Personal and Ubiquitous Computing,2018,22:81-91.