摘 要:介紹一種隱形二維碼技術(shù),將其應(yīng)用于兒童讀物,在不影響紙張視覺效果的前提下,可讀出紙張中每一個(gè)位置隱藏的二維碼數(shù)據(jù),并根據(jù)所獲數(shù)據(jù)播放相應(yīng)的聲音,從而實(shí)現(xiàn)圖、文、聲并茂。但由于普通二維碼都具有明顯的尋邊特征,因此將影響視覺效果。在此提出一種更簡(jiǎn)單的、可用于該技術(shù)的矩陣碼,并闡明它的隱形及定位方法,以及一種可應(yīng)用的低成本實(shí)現(xiàn)方案。經(jīng)實(shí)踐驗(yàn)證,效果良好。
關(guān)鍵詞:隱形二維碼;矩陣碼;兒童讀物;尋邊特征
中圖分類號(hào):TP391文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1004-373X(2010)04-029-03
Application of Invisible Two-dimensional Code in Children′s Books
SHAO Yanqiu
(Anshun College,Anshun,561000,China)
Abstract:An application of invisible two-dimensional code is introduced,which is used in children′s books.The matrix code is hidden on paper and can not weaken the visual effects of publications.Sound is displayed according to the data detected contained in the matrix code that distributed on the paper.However,the traditional two-dimensional code has distinct finder pattern,which can affect the visual effects.This paper mainly introduces a kind of invisible code,illuminates its orientation principle and proposes a kind of low cost,applicable framework of its application.
Keywords:invisible two-dimensional code;matrix code;children′s books;finder pattern
0 引 言
隨著人們對(duì)信息密度要求的提高,二維碼技術(shù)在各個(gè)領(lǐng)域已逐步得到應(yīng)用,主要有PDF417碼、Code49碼、Code 16K碼、Data Matrix碼、MaxiCode碼等,大體分為層排式和矩陣式兩大類[1]。
二維條碼具有龐大的信息攜帶量,能夠把過去使用一維條碼時(shí)存儲(chǔ)于后臺(tái)數(shù)據(jù)庫中的信息全部包含在條碼中,可直接通過閱讀條碼得到相應(yīng)的信息,并且二維條碼還有錯(cuò)誤修正技術(shù)及加密防偽功能,增加了數(shù)據(jù)的安全性[1]。
與其他類型的編碼一樣,二維條形碼也有許多不同碼制。從原理上主要分為:線性堆疊式二維碼、矩陣式二維碼、郵政碼。常用的碼制有:Data Matrix,Maxi Code,Aztec,QR Code,Vericode,PDF417,Ultracode,Code 49,Code 16K等,目前,Data Matrix應(yīng)用廣泛,如Intel的奔騰處理器的背面就印制了這種碼[2]。
在Data Matrix編碼中,采用一定灰度差的明暗相間的等距區(qū)域來表示信息的內(nèi)容,因此要專門開辟空間印刷二維條碼。但它很容易被復(fù)制。從保密性、美觀性的需要出發(fā),人們發(fā)明了隱形二維碼,主要有覆蓋式隱形二維碼和光學(xué)隱形二維碼,而在包裝及印刷行業(yè)較多采用覆蓋式隱形碼。
1 編碼方法
圖1是一種覆蓋式隱形矩陣式子二維碼的應(yīng)用示例,在“黃色”字符區(qū)域內(nèi),覆蓋的是按圖2(a)類型分布的點(diǎn)陣二維碼,而“yellow”字符區(qū)域則被圖2(b)類型的點(diǎn)陣二維碼所覆蓋。這些不同的二維編碼單元以較小的視覺對(duì)比度密集的印刷在紙張的各個(gè)應(yīng)用區(qū),當(dāng)掃讀器掃描到某個(gè)二維碼后,經(jīng)過譯碼過程獲得該單元的序列號(hào),再播放對(duì)應(yīng)編號(hào)的聲音文件。由于編碼單元與紙張背景的視覺對(duì)比度較小,因此人眼很難看到背景下隱藏的碼元,從而實(shí)現(xiàn)隱形。
圖1 覆蓋式隱形二維碼
圖2 隱形二維碼點(diǎn)陣圖示例
在通用的Data Matrix二維碼中,每一個(gè)相同大小的黑色或白色方格稱為一個(gè)數(shù)據(jù)單位。Data Matrix符號(hào)就是由許多改類型的數(shù)據(jù)單位組成(見圖3)。尋邊區(qū)用于定位和定義數(shù)據(jù)單位大小,而不含有任何編碼信息,被尋邊區(qū)包圍的數(shù)據(jù)區(qū)包含著編碼信息[3](見圖4)。在數(shù)據(jù)區(qū)內(nèi),Data Matrix的黑白兩色小方格表示數(shù)據(jù)0和1。
圖3 Data Matrix 符號(hào)說明
圖4 Data Matrix尋邊區(qū)與數(shù)據(jù)區(qū)
從圖4可以看出,該類Data Matrix二維碼有明顯的尋邊區(qū),而且形狀規(guī)則。如果采用該型編碼覆蓋于紙張上,將會(huì)出現(xiàn)明顯的背景花紋,影響閱讀效果,因此兒童讀物上采用的二維檢碼不能有明顯的尋邊特征。所以不適宜采用這種Data Matrix碼。
有人提出采用如下方式實(shí)現(xiàn),在編碼過程加入特定算法,使從任意方向的掃描,只有一種數(shù)據(jù)結(jié)果符合編碼規(guī)范,而這個(gè)結(jié)果就是所需要的編碼。但這樣做將使編碼的復(fù)雜程度增加,同時(shí)增加了掃讀器的譯碼時(shí)間,降低效率,同時(shí)大大減小了碼的信息容量,如圖5所示。
這里采用了一種簡(jiǎn)單的定位方法,取棋盤中的8個(gè)點(diǎn)作為定位基準(zhǔn),亦即已包含了“方位叢”信息的一個(gè)模組。該基準(zhǔn)為掃瞄器提供重要的方位資訊,同時(shí)實(shí)現(xiàn)了定位基準(zhǔn)的“隱身”。定位基準(zhǔn)符之外的其他位元分散在基準(zhǔn)符的周圍,作為主要信息碼。當(dāng)掃讀器識(shí)別到一個(gè)二維碼時(shí),首先確定其定位基準(zhǔn),然后根據(jù)周圍黑白點(diǎn)位的分布,正確的識(shí)讀出二維碼包含的數(shù)據(jù)[4]。
圖6是該隱形碼采用的定位基準(zhǔn)。不對(duì)稱的斜十字架結(jié)構(gòu)確定了惟一的方位信息。但為避免在同一個(gè)二維碼中出現(xiàn)兩個(gè)“方位叢”,必須適當(dāng)降低二維碼的信息密度,同時(shí)為了保證信息識(shí)讀的正確性和可靠性,需要加入驗(yàn)證位元和冗余碼[5]。由于在一本兒童讀物中,所需的代碼一般在1 000個(gè)以下,而多本兒童讀物可在每本的封面加入讀本識(shí)別碼,因此這類隱形二維矩陣碼可以出色地完成任務(wù)。
圖5 一種矩陣碼圖
圖6 “方位叢”示例
2 系統(tǒng)結(jié)構(gòu)及工作原理
該隱形碼的讀取通過光學(xué)掃描裝置完成,如圖7所示,當(dāng)掃讀器獲得矩陣碼后,按照矩陣碼位置的分布,將其轉(zhuǎn)換成一串二進(jìn)制代碼[6]。掃讀器由高性能攝像頭、控制器、圖像處理器組成。
圖7 兒童讀物二維碼掃讀器實(shí)現(xiàn)框圖
2.1 整體原理
當(dāng)移動(dòng)掃讀器(掃描筆)時(shí),掃描器將獲得一個(gè)個(gè)移動(dòng)的圖像,當(dāng)掃描筆放在某個(gè)代碼區(qū)位時(shí),圖像處理器將獲得至少包含一個(gè)完整二維碼的圖像區(qū),同時(shí)可根據(jù)二維碼圖的穩(wěn)定時(shí)間來判斷使用者是否已選擇特定目標(biāo)。如果是,圖像處理器將進(jìn)行譯碼,經(jīng)過譯碼過程得到序列號(hào)之后,控制器將調(diào)用外存中對(duì)應(yīng)的聲音文件,從而實(shí)現(xiàn)多媒體閱讀的功能[7]。
2.2 圖像掃描
采用CCD掃描器作為圖像采集設(shè)備,它利用光電藕合原理,可對(duì)二維條碼圖案進(jìn)行成像,然后再通過圖像處理器以抑制噪聲,由于該隱形碼點(diǎn)陣與紙張背景的視覺對(duì)比度較小,因此在判定使用者選定目標(biāo)后,圖像處理器必須識(shí)別并放大點(diǎn)陣與背景的對(duì)比度信息,然后再進(jìn)行下一步的譯碼過程。該掃描過程無機(jī)械旋轉(zhuǎn)部件,適合體積較小的手持掃讀器使用,同時(shí)可有效地提高使用壽命。
CCD的成像原理類似于照相機(jī),因此景深的處理至關(guān)重要。如果要加大景深,則要相應(yīng)地加大透鏡,從而使CCD體積過大,不適用于掃讀器。因此要設(shè)法提高CCD的分辨率,即增加成像光敏元件的單位元素。選擇高分辨率的CCD能夠解決這個(gè)問題,從而準(zhǔn)確地別出隱藏的二維碼。
2.3 語音電路
在本文的音頻處理電路中,沒有采用專用的語音處理芯片,也無需專門的擴(kuò)寬接口電路,只需要控制器配合外圍功能部件(如D/A、存儲(chǔ)器等),就能完成數(shù)字化信號(hào)的語音處理,在幾乎不增加硬件成本的情況下實(shí)現(xiàn)語音處理功能。其基本思想是由控制器將數(shù)據(jù)從外存中讀出,然后通過數(shù)模轉(zhuǎn)換器D/A 轉(zhuǎn)換成模擬信號(hào),經(jīng)放大后在揚(yáng)聲器上輸出語音[8,9]。
音頻電路子系統(tǒng)結(jié)構(gòu)框圖如圖8所示。
圖8 音頻電路系統(tǒng)框圖
3 結(jié) 語
本文介紹一種實(shí)際應(yīng)用于多媒體兒童讀物的隱形二維碼,并介紹了具體的編碼過程和掃讀取的實(shí)現(xiàn)原理。在實(shí)際應(yīng)用中,需要對(duì)二維碼進(jìn)行容錯(cuò)糾錯(cuò)處理以滿足產(chǎn)品的可靠性要求[10]。在軟件階段也需要考慮軟件與硬件的配合,滿足抗干擾、避免誤動(dòng)作等方面的要求。該技術(shù)已經(jīng)被應(yīng)用于兒童出版物中,經(jīng)實(shí)踐檢驗(yàn)效果令人滿意。
參考文獻(xiàn)
[1]胡俊翹,葉蘇丹.一種高信息密度的二維碼矩陣碼的技術(shù)及應(yīng)用[J].計(jì)算機(jī)工程,1995,21(4):46-48.
[2]唐莉,劉富強(qiáng),錢黎強(qiáng).Data Matrix二維碼圖像處理與應(yīng)用[J].電子技術(shù)應(yīng)用,2004(3):6-8.
[3]胡曉崠,何加銘.Data Matrix碼識(shí)別技術(shù)研究[J].杭州電子科技大學(xué)學(xué)報(bào),2008,28(5):124-126.
[4]余強(qiáng),裴頌文.基于圓檢測(cè)的二維條碼定位方法[J].計(jì)算機(jī)應(yīng)用與軟件,2008,25(12):109-111,155.
[5]付彬,馮宇梁.基于邊沿檢測(cè)的Maxicode邊界定位算法[J].計(jì)算機(jī)工程,2006,32(10):196-197.
[6]陳媛媛,施鵬飛.二維條形碼的識(shí)別及應(yīng)用[J].測(cè)控技術(shù),2006,25(12):17-19.
[7]趙慶陽.三維激光掃描儀數(shù)據(jù)采集系統(tǒng)研制[D].西安:西安科技大學(xué),2008.
[8]Douglas R Frey.Chaotic Digital Encoding:An Approach to Secure Communication[J].IEEE Trans.on CAS Ⅱ,1993,40(10):660-666.
[9]王大方,殷小貢.數(shù)字語音處理軟件及其接口電路設(shè)計(jì)[J].電訊技術(shù),2003,43(2):84-86.
[10]譚進(jìn)懷.語音報(bào)數(shù)示波器控制電路的設(shè)計(jì)與實(shí)現(xiàn)[J].國外電子測(cè)量技術(shù),2007,26(12):34-37.