柯熙政, 宋云鳳
(1. 西安理工大學(xué)自動化與信息工程學(xué)院,陜西西安710048; 2. 陜西省智能協(xié)同網(wǎng)絡(luò)軍民共建重點(diǎn)實(shí)驗(yàn)室,陜西西安710048)
由于可見光具有資源豐富、無需無線電頻譜證、無電磁干擾、保密性好等優(yōu)點(diǎn)[1,2],有著非常廣闊的應(yīng)用前景?;谝苿咏K端的可見光通信(VLC)技術(shù)的應(yīng)用場景多種多樣。手機(jī)可見光通信技術(shù)可以作為現(xiàn)有無線通信的有效補(bǔ)充。現(xiàn)有研究成果如2012年,日本卡西歐公司[3]研發(fā)了使用屏幕背光進(jìn)行信號發(fā)送,使用攝像頭接收光信號的手機(jī)。2012年,英國愛丁堡大學(xué)工學(xué)的Christos Danakis等[4]研究了使用智能手機(jī)攝像頭捕獲LED閃光燈的快速亮滅變化來接收數(shù)據(jù)。2012年,美國密歇根州立大學(xué)計(jì)算機(jī)科學(xué)與工程系的Tian Hao等[5]研究了彩色條碼流智能手機(jī)系統(tǒng)。2014年,中國電信集團(tuán)北京研究所Zeng Y、Chen Y、Feng S等[6]研究了基于二維碼的移動設(shè)備可見光通信系統(tǒng)。
2014年,諾森比亞大學(xué)工程與環(huán)境學(xué)院的Rayana Boubezari等[7]研究了智能手機(jī)可見光通信數(shù)據(jù)檢測方法。2014年,紐約州立大學(xué)布法羅分校Kui Ren等[8]提出了一種安全的基于快速響應(yīng)二維碼(Quick-Response code,QR)的移動設(shè)備可見光通信系統(tǒng),并在2016年進(jìn)一步優(yōu)化了基于二維碼的可見光通信系統(tǒng)方案。
卡西歐公司使用的是RGB(Red,Green,Blue)三原色進(jìn)行信息編碼,通過攝像頭來識別閃爍的RGB三原色所傳達(dá)的信息,受限于編碼方式,傳輸?shù)臄?shù)據(jù)量比較小。愛丁堡大學(xué)使用的通信方式傳輸?shù)男畔?nèi)容比較少。密歇根州立大學(xué)使用高度定制的條形碼來提高系統(tǒng)吞吐量,但此方案并不實(shí)用。中國電信集團(tuán)北京研究所采用的是結(jié)構(gòu)附加模式生成QR碼,ZXing(生成二維碼庫)的代碼在Mode(模式)類中只是定義了這種模式,并沒有提供結(jié)構(gòu)附加模式的實(shí)現(xiàn),需要通過對ZXing的Java代碼進(jìn)行改寫和擴(kuò)充來實(shí)現(xiàn)這種模式的編解碼功能,但其編解碼牽涉的程序類比較多,編解碼過程比較復(fù)雜。紐約州立大學(xué)采用的是8位二進(jìn)制模式生成二維碼,這種形式的數(shù)據(jù)傳輸是在二維碼的數(shù)據(jù)編碼階段添加一個(gè)序列號的標(biāo)頭,并把每個(gè)序列號和每個(gè)數(shù)據(jù)塊一起封裝成一個(gè)包,然后通過后續(xù)編碼流程生成二維碼。由于二維碼的編碼和解碼牽涉的程序類比較多,其編解碼過程比較復(fù)雜。本文采用的是二維碼編碼中的混合模式生成QR碼,提出的方案是基于ZXing庫開發(fā),通過JSON(JavaScript Object Notation)格式先對數(shù)據(jù)處理再進(jìn)行編碼。基于JSON格式獨(dú)有的結(jié)構(gòu)(鍵值對和數(shù)組結(jié)構(gòu))特點(diǎn),把編碼過程中實(shí)現(xiàn)的對數(shù)據(jù)封裝轉(zhuǎn)變成先對數(shù)據(jù)封裝處理再編碼生成QR碼,這樣大大簡化了編碼和解碼過程。
JSON是種輕量級的數(shù)據(jù)交換格式,使用了完全獨(dú)立于語言的文本格式。JSON有兩種結(jié)構(gòu):①“名稱/值”對的集合;②值的有序列表,通常被理解為數(shù)組。本文采用JSON的這兩種結(jié)構(gòu)實(shí)現(xiàn)了對數(shù)據(jù)的處理。
QR碼[9]又稱快速響應(yīng)矩陣碼,它除了具有二維條碼的共同特點(diǎn)[10]——信息容量大、可讀性高、可表示漢字及圖像等多種格式信息之外,還有以下特點(diǎn)[11]:超高速識讀、全方位識讀、高效表示漢字。這使得QR碼得到迅速發(fā)展,現(xiàn)如今QR碼已成為全球應(yīng)用最為廣泛的一種二維碼,QR碼的基本結(jié)構(gòu)如圖1所示。
圖1 QR碼基本結(jié)構(gòu)圖Fig.1 QR code basic structure diagram
由圖1可知,QR碼由編碼區(qū)域和功能圖形組成。功能圖形是用于符號定位與特征識別的特定圖形,不用于數(shù)據(jù)編碼。符號的四周留有空白區(qū)?;谶@種特殊結(jié)構(gòu)具有完美的定位功能及很好的糾錯(cuò)能力,將其應(yīng)用到移動終端可見光通信系統(tǒng)中。
基于手機(jī)-手機(jī)方式的近距離數(shù)據(jù)傳輸可見光通信系統(tǒng)示意圖,如圖2所示。
圖2 手機(jī)間數(shù)據(jù)傳輸示意圖Fig.2 Schematic diagram of data transmission between mobile phones
手機(jī)可見光通信系統(tǒng)的原理圖如圖3所示。圖3主要包括兩個(gè)模塊,即發(fā)送端和接收端,發(fā)送端包括數(shù)據(jù)源、JSON處理、編碼、產(chǎn)生QR碼圖像;接收端包括手機(jī)攝像頭、解碼、數(shù)據(jù)處理、輸出數(shù)據(jù)。手機(jī)可見光通信系統(tǒng)發(fā)射端的基本思想是將數(shù)據(jù)源(待傳輸?shù)男畔?先進(jìn)行JSON處理,然后將處理后的數(shù)據(jù)編碼,最終生成動態(tài)的QR圖像再發(fā)射出去。接收端是用手機(jī)攝像頭對連續(xù)的二維碼圖像進(jìn)行解碼,再進(jìn)行數(shù)據(jù)重組處理,最后恢復(fù)出原始數(shù)據(jù)。
圖3 手機(jī)通信系統(tǒng)原理示意圖Fig.3 Schematic diagram of the mobile phone communication system
2.2.1系統(tǒng)結(jié)構(gòu)
手機(jī)可見光通信系統(tǒng)結(jié)構(gòu)如圖4所示。圖4中,手機(jī)可見光通信系統(tǒng)由三個(gè)部分組成,分別為顯示屏(發(fā)送端)、攝像頭(接收端)、傳輸軟件。傳輸流程包括待傳輸數(shù)據(jù)、圖像生成、連續(xù)圖像傳輸、圖像識別、轉(zhuǎn)換回待傳輸數(shù)據(jù)5個(gè)步驟。
圖4 手機(jī)可見光通信系統(tǒng)示意圖Fig.4 Mobile phone visible light communication system diagram
2.2.2發(fā)送端
1) 信息輸入
輸入信息的類型可以是數(shù)字、字母、漢字等,數(shù)據(jù)可以按照不同的行數(shù)生成二維碼,但行數(shù)是有限的,行數(shù)的選擇是和每張QR碼容量有關(guān)的,每張QR碼的容量是和QR的版本、糾錯(cuò)級別和編碼模式的選擇有關(guān)的。
2) 生成二維碼
二維碼是一種基于光學(xué)圖像識讀的編碼技術(shù)??捎糜谥悄苁謾C(jī)間多幀通信。手機(jī)可見光通信系統(tǒng)本質(zhì)上是一種光學(xué)圖像直接通信系統(tǒng)?;贏ndroid開發(fā)環(huán)境下,借助二維碼ZXing庫[12]生成二維碼圖像。生成二維碼的流程圖如圖5所示。圖5包含兩部分,即數(shù)據(jù)處理部分和編碼部分,數(shù)據(jù)處理部分主要是基于JSON的兩種結(jié)構(gòu)對待傳輸?shù)臄?shù)據(jù)進(jìn)行處理,以每行最后一個(gè)字符是否是空格為分隔符,將處理后的每組數(shù)據(jù)、添加的每組索引號及分組的總個(gè)數(shù)信息封裝在一起,通過編碼生成QR碼,每個(gè)索引號和每組數(shù)據(jù)是一一對應(yīng)的。這種方式便于解析數(shù)據(jù)。
圖5 生成二維碼的流程圖Fig.5 Flow chart for generating two-dimensional code
2.2.3接收端
接收端采用帶攝像頭的手機(jī),調(diào)節(jié)發(fā)送端每幅QR碼的手機(jī)屏幕停留時(shí)間,使接收端能完整地將QR碼信息解析出來。識別二維碼流程圖如圖6所示。在圖6中,軟件識別過程包含兩部分,即解碼部分和數(shù)據(jù)重組部分。攝像頭將捕獲到的QR碼圖像交由解碼模塊處理,經(jīng)過解碼,恢復(fù)出QR碼所包含的數(shù)據(jù),然后對解碼出的數(shù)據(jù)進(jìn)行JSON處理,解除封裝,取出有效數(shù)據(jù)。由于有效數(shù)據(jù)不是按照順序排列的,但又要保證恢復(fù)出原始數(shù)據(jù),因此要對有效數(shù)據(jù)進(jìn)行快速重組,輸出重組后的數(shù)據(jù)。由于攝像頭的捕獲速率比較低,在進(jìn)行二維碼圖像識別時(shí),會出現(xiàn)某一幀或幾幀二維碼圖像沒有被識別的情況,由于生成的每張QR碼圖像都包含了二維碼圖像總張數(shù),所以在接收端會繼續(xù)對沒有被識別出來的二維碼圖像進(jìn)行識別,直至將所有的二維碼圖像都識別出來,最后重組數(shù)據(jù)。
圖6 識別二維碼的流程圖Fig.6 Flow chart for identifying the QR code
2.2.4結(jié)果驗(yàn)證
在圖7的發(fā)送界面中輸入數(shù)據(jù),如圖8所示。將輸入的數(shù)據(jù)生成二維碼圖像,如圖9所示,之后將生成的二維碼圖像以一定的幀速順序地顯示在手機(jī)屏幕上。
圖7 發(fā)送二維碼圖像的界面Fig.7 Interface for sending QR code images
圖8 數(shù)據(jù)傳輸界面Fig.8 Data transmission interface
接收端識別界面如圖10所示。
二維碼圖像識別的實(shí)驗(yàn)效果圖如圖11所示。最終顯示出原有的數(shù)據(jù),如圖12所示。
圖11是在華為honor8手機(jī)上的實(shí)驗(yàn)效果圖。實(shí)驗(yàn)中發(fā)射端設(shè)定了不同的時(shí)間間隔(時(shí)間分別為3 s、2 s、1 s、…、100 ms,其中1 s至100 ms之間以100 ms為時(shí)間間隔),接收端識別時(shí)間間隔相對發(fā)射端變化而變化。經(jīng)多次實(shí)驗(yàn)對比分析得出,接收端攝像機(jī)解碼花費(fèi)時(shí)間隨著發(fā)射端時(shí)間間隔的縮短而變長(實(shí)驗(yàn)中發(fā)射端最短時(shí)間間隔為100 ms)。
為使相機(jī)捕捉圖像的效率更高,本文采用了自適應(yīng)尺寸的縮略圖(自適應(yīng)尺寸是為了適配手機(jī)屏幕,縮略圖經(jīng)壓縮處理一般較小,不用再次緩存,可加速顯示圖片)來展示不同版本的QR Code,圖9生成的二維碼圖像使用了這種方式。對于相同的文本信息,版本越高,容錯(cuò)性越高,信息量也越大,即二維碼的圖案更復(fù)雜,接收端攝像機(jī)所需解碼的時(shí)間也越長。經(jīng)實(shí)驗(yàn)對比分析,華為honor8在QR Code 版本為13時(shí),接收端攝像機(jī)識別多幀二維碼困難??紤]到手機(jī)攝像頭捕獲率因素,一般選擇QR code版本10。
測試中,在Android開發(fā)環(huán)境下將待傳輸?shù)臄?shù)據(jù)生成二維碼圖像,通過控制每幅QR碼圖像的停留時(shí)間,進(jìn)而控制信息的發(fā)送速率。通過多次測試,定性地分析了影響系統(tǒng)吞吐量的因素:
1) 手機(jī)攝像頭捕獲速率:測試結(jié)果表明,在不同平臺上刷新一幀QR碼花費(fèi)的時(shí)間大致相同,而接收端攝像頭捕獲速率一般較低;
2) 編解碼時(shí)間:由于QR碼并非是針對智能手機(jī)設(shè)計(jì),其編解碼消耗時(shí)間相對于傳統(tǒng)設(shè)備較長;
圖9 生成的QR碼圖像Fig.9 Generated QR code image
圖10 二維碼識別界面 Fig.10 QR code recognition interface
圖11 實(shí)驗(yàn)效果圖Fig.11 Experimental renderings
圖12 識別出的數(shù)據(jù)Fig.12 Recognized data
3) 每張QR碼的存儲容量:考慮到幀刷新率受攝像頭捕獲速率的限制,必須要增加每張二維碼的存儲容量,以提高系統(tǒng)吞吐量。
本文可作為手機(jī)間無需借助WiFi進(jìn)行數(shù)據(jù)傳輸?shù)男路椒?,?shù)據(jù)傳輸不依賴已有的通信網(wǎng)絡(luò)。該系統(tǒng)并沒有對現(xiàn)有移動設(shè)備系統(tǒng)做硬件更改,享有更簡單的結(jié)構(gòu)。本文對提出的使用JSON格式來簡化基于二維碼的可見光通信編解碼技術(shù)進(jìn)行了驗(yàn)證。由于幀刷新速率受攝像頭捕獲速率的影響,所以相同的QR碼有多個(gè)攝像機(jī)幀圖像。因此,要想濾除重復(fù)的QR幀圖像就必須在提交QR幀圖像進(jìn)行解碼之前,構(gòu)建一個(gè)有效的過濾器。在后續(xù)工作中,將分別從提高傳輸速率、編解碼時(shí)間、每張QR碼的存儲容量等三個(gè)方面對該系統(tǒng)進(jìn)行改善性研究,擴(kuò)展手機(jī)可見光通信系統(tǒng)的應(yīng)用范圍。