柴世杰 馬佳琳
(沈陽師范大學(xué)軟件學(xué)院 遼寧省沈陽市 110000)
隨著數(shù)字化校園的逐漸普及,傳統(tǒng)紙質(zhì)化的校園證件出現(xiàn)易丟失,個人信息泄露,使用不便且繁瑣,應(yīng)用范圍狹窄等問題。其中校園ID 卡是“數(shù)字化校園系統(tǒng)”中的重要組成部分,可以做到資源整合。
隨之應(yīng)運(yùn)而生了一款基于QR code 技術(shù)的校園ID 的身份生成識別系統(tǒng),基于智能化、虛擬化、開放服務(wù)、云計(jì)算、虛擬化技術(shù)的校園身份建設(shè),為提高學(xué)校的整體管理水平和綜合實(shí)力,按照標(biāo)準(zhǔn)整合數(shù)據(jù),并對其實(shí)時更新,保證信息的一致性和準(zhǔn)確性為傳統(tǒng)校園空間建設(shè)提供了基礎(chǔ)。數(shù)字化校園提高了傳統(tǒng)校園的運(yùn)行效率,拓展了傳統(tǒng)校園的功能,增強(qiáng)了的核心競爭力。
系統(tǒng)采用Visual Studio 進(jìn)行開發(fā),可以在多種操作系統(tǒng)性下運(yùn)行,借用jquery-qrcode 開源第三方庫,VS 不僅支持測試,而且有內(nèi)置Git 版本控制等功能,同時也具備開發(fā)環(huán)境功能。程序使用C#語言編寫,編碼結(jié)合 ZXing.NET 庫完成。
3.1.1 校園師生人員系統(tǒng)相關(guān)信息的錄入模塊
首先把各個學(xué)院的學(xué)生信息數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫,學(xué)號作為唯一標(biāo)識,根據(jù)學(xué)號和個人信息生成QR 二維碼,根據(jù)統(tǒng)一的標(biāo)準(zhǔn),最后再打印出來。校園ID 二維碼的打印一般在新生錄取完成后就開始進(jìn)行,打印數(shù)量龐大,為使用方便可開發(fā)獨(dú)立的應(yīng)用程序,數(shù)據(jù)庫則采用記事本的方式,這樣有助于程序的布置和挪動。
QR 碼可以存儲大量的信息,在校園ID 系統(tǒng)中主要以學(xué)生學(xué)號作為主碼即關(guān)聯(lián)的依據(jù),所以內(nèi)容主要以學(xué)號作為唯一標(biāo)識,其余內(nèi)容從服務(wù)器端調(diào)取。QR 碼打印出來圖片的尺寸比例要經(jīng)過各種測試,達(dá)到既不影響掃描二維碼的識別又不影響美觀和實(shí)用型。QR 碼帶有學(xué)校標(biāo)識,且彩色美觀一般打印在中上部,中間則顯示學(xué)號,這樣版面會直觀又美觀,在無法識別的情況下也可以通過中間的數(shù)字進(jìn)行手動輸入號碼來查找相關(guān)信息。
3.1.2 錄入編碼版本和糾錯等級功能模塊
根據(jù)自身的需求,將碼字按順序分塊,根據(jù)糾錯等級和分塊的碼字,產(chǎn)生糾錯碼字,接著將糾錯碼字加到數(shù)據(jù)碼字序列的前面成為一個新的序列分塊[1]。
3.1.3 根據(jù)錄入信息后臺進(jìn)行QR 編碼功能模塊
借用jquery-qrcode 第三方開源庫生成二維碼,jquery.qrcode.js 是把它用jquery 方式封裝起來的,用來實(shí)現(xiàn)圖形的渲染。采用尋像圖形和定位圖形用來使解碼程序確定圖形中具體符號的坐標(biāo)位置。也將編碼的數(shù)據(jù)內(nèi)容以及糾錯信息保存在二維碼中[2]。
3.1.4 初步顯示QR-Code 碼圖形功能模塊
依照上述步驟形成的碼序列以深色和淺色的模塊布置,以此生成的彩色二維碼又調(diào)用了jQuery 實(shí)現(xiàn)圖形渲染,還在二維碼上添加文字的方法,形成最終的QR-Code 碼圖形將以原始比例顯示于編碼界面中供用戶參考,這樣,用戶可以適當(dāng)?shù)卣{(diào)整版本和糾錯級別。
圖1:掃描內(nèi)容
圖2:編碼實(shí)現(xiàn)過程
3.1.5 生成圖形QR-Code 碼的功能模塊
將二維碼轉(zhuǎn)換為圖片的格式,存儲格式為JPG 文件格式,默認(rèn)存儲位置為文檔錄音模塊。
3.1.6 從本地載入QR-Code 碼功能模塊
解碼界面上可以載入QR 二維碼進(jìn)行解碼,默認(rèn)目錄為文檔錄音。
3.1.7 進(jìn)行QR 解碼功能模塊
圖3:圖像識別過程
圖4:編碼過程
在解碼系統(tǒng)中錄入二維碼,然后根據(jù)不同的功能對QR 碼圖形識別和讀取依據(jù)糾錯碼輸出原始的數(shù)據(jù)信息。
3.1.8 重新載入的QR-Code 碼功能模塊
在QR 碼的解碼過程中,采用了基于QR 碼的分步解碼方式。
3.1.9 將解碼信息進(jìn)行顯示的功能模塊
解碼后,頁面會彈出原始信息顯示于用戶。如圖1 所示。
編碼是從原始數(shù)據(jù)生成二維碼的過程。通過相關(guān)技術(shù),將二維碼進(jìn)行編碼的主要流程步驟分為編碼模式選擇,數(shù)據(jù)編碼,糾錯編碼,布置矩陣模塊,掩模處理和格式版本分析[3]。在校園ID 身份生成識別系統(tǒng)中,QR 碼在 PC 端生成,利用 Visual Studio 結(jié)合 ZXing.NET 庫進(jìn)行開發(fā)。創(chuàng)建DOM 元素生成qr 碼,最后添加在qrcode 中。
您可以通過輸入二維碼的寬度和高度來生成指定的二維碼的大小,根據(jù)自己的想法輸入就可以指定生成的二維碼的顏色模式。div 重新調(diào)用會使qrcode 進(jìn)行更新。二維碼的中間加文字圖像css設(shè)置個div 浮動層,讓它浮在二維碼上居中。qrcode 其實(shí)是通過使用jQuery 實(shí)現(xiàn)圖形渲染,畫圖,支持canvas(HTML5)和table 兩種方式。jquery-qrcode 通常采用charCodeAt()進(jìn)行編碼,默認(rèn)獲取Unicode 類型的編碼,然而我們需要錄入中文,則還應(yīng)該在把字符串轉(zhuǎn)換成UTF-8 編碼。編碼實(shí)現(xiàn)過程如圖2 所示。
圖像識別過程如圖3 所示,編碼過程如圖4 所示。
3.3.1 圖像識別
機(jī)器的圖像識別和人類的識別是相似的,通過分類提取其中的重要特征,在進(jìn)行掃描排除多余其他的信息去識別圖像,對于二維碼的識別,所用到的機(jī)器設(shè)備對于色塊的辨別能力是很強(qiáng)的,二維碼來說就是由不同顏色的色塊組成的。只要把原來的文字信息編譯成色塊,就可以方便機(jī)器的識別,在通過機(jī)器的掃描,存儲記憶下來。
3.3.2 矯正圖形
當(dāng)我們用機(jī)器對二維碼進(jìn)行掃描的時候,不可能絕對的平行正對要掃描的內(nèi)容,所以我們把圖片中的二維碼尋找其中的直線定義為對極線,若掃描的圖像標(biāo)準(zhǔn)則對極線都是平行的,若所有線匯聚一點(diǎn),則說明在非垂直監(jiān)督進(jìn)行拍攝的,則對于我們接下來的識別造成困難,我們要盡可能恢復(fù)平面狀態(tài),如何從不平行的對極線轉(zhuǎn)換成為平行的。QR code 采用一種方法,就是設(shè)計(jì)一個固定比例的圖形和我們所掃描識別的圖像進(jìn)行對比,計(jì)算其變換矩陣,在求出逆矩陣根據(jù)圖像和逆矩陣進(jìn)行比對,作出調(diào)整。
3.3.3 格式信息、版本信息
編譯則采用計(jì)算機(jī)的二進(jìn)制,把每一個文字或者符號轉(zhuǎn)換成0和1 的形式的不同字符串,而轉(zhuǎn)換的過程我們稱它為編碼和解碼。然后可以采用黑色為0,白色為1。按照特定的規(guī)律對黑白方塊進(jìn)行排列,最終就形成了二維碼。
3.3.4 數(shù)據(jù)和糾錯碼
對于圖像的識別,由于識別機(jī)器的性能不同,掃描的圖像完整度不同,必然存在一定的錯誤率,那么如何來減少或者降低掃描出來的錯誤率呢,就需要QR code 系統(tǒng)中設(shè)定的糾錯碼,設(shè)定不同的糾錯等級來滿足不同用戶的需求。對于二進(jìn)制來說,我們把信息轉(zhuǎn)換成二進(jìn)制字符串的形式,產(chǎn)生的數(shù)據(jù)很大,需要校驗(yàn)位來確保傳輸信息的準(zhǔn)確性,一般信噪比越高的需要校驗(yàn)位越少,對所有校驗(yàn)位進(jìn)行再次校驗(yàn),遇到有問題的就重新傳輸。
基于QRcode 技術(shù)的校園ID 的身份生成識別系統(tǒng),采用SOA面向體系的架構(gòu)設(shè)計(jì),應(yīng)用移動端和桌面端交互設(shè)計(jì)方式,通過設(shè)置教務(wù)端支持信息庫、校園食堂、交寢室電費(fèi)還有校園其他商戶等功能模塊控制關(guān)鍵環(huán)節(jié),保證師生信息的真實(shí)性、準(zhǔn)確性、完整性和安全保障性[4],可實(shí)現(xiàn)圖書館借書、各大教學(xué)樓以及宿舍門禁、統(tǒng)一繳費(fèi)等校園一體化功能。采用電子二維碼方式的校園ID 有助于防止學(xué)生個人信息的泄露,避免以往校園卡丟失的情況,還可以做到資源整合,方便師生的使用。
利用本學(xué)期課程掌握了條碼技術(shù)的基本原理,并通過自己的不斷摸索,在老師的支持幫助下完成了此次系統(tǒng)設(shè)計(jì),基于QRcode技術(shù)的校園ID 的身份生成識別系統(tǒng)實(shí)現(xiàn)了基本的功能,以后可以在不斷學(xué)習(xí)完善這個系統(tǒng)。