王龍



摘 ?要:隨著信息技術的飛速發展,傳統的課堂簽到模式已不再適用。二維條碼不僅具有快速識讀、數據容量大、糾錯能力強和可靠性高等優點,還可進行中文編碼,更適合表示漢字,已逐漸被使用作為新的課堂簽到方式。本文基于分布型數據庫的思想設計了二維碼的手機簽到系統,該系統通過任務控制和系統控制的方式支持整個系統的有效運行,為設計出高效、低碳環保的課堂簽到系統提供了有力的保障。
關鍵詞:二維碼;課堂簽到;任務控制;系統控制;環保
中圖分類號:TP274 ? ? 文獻標識碼:A
Abstract:With the rapid development of information technology,the traditional classroom sign-in model is no longer applicable.QR Code not only has the advantages of rapid reading,large data capacity,strong error correction ability and high reliability,but also can be used for Chinese coding,more suitable for the representation of Chinese characters,which has been gradually used as a new way of classroom sign-in.Based on the idea of distributed database,this paper designs a mobile QR Code sign-in system,which supports the effective operation of the whole system through task control and system control,and provides a powerful guarantee for the design of an efficient,low-carbon and environment-friendly classroom sign-in system.
Keywords:QR Code;classroom sign-in;task control;system control;environment-friendly
1 ? 引言(Introduction)
人們日常生活中說的條形碼大多都是指一維條碼,一維條碼是二維條碼出現的基礎,它的誕生使民眾的生活更方便,生產效率更高。然而一維條碼的容量有限,只能用來識別物品,卻不能對物品進行描述,因此,一維碼已經不能滿足生產生活的需求。
隨著計算機自動識別技術和信息技術的發展,二維碼于20世紀80年代出現,由于其優越的特性,使之得到迅速的發展和廣泛的應用。學者對二維碼的加密技術進行研究,通過光學加密等方式對二維碼進行加密[1-3],以便更好地保護個人信息和財產安全。將二維碼設計成動態的形式進行課堂和會議簽到,不僅便于教師后續的查詢統計工作,也有效避免了靜態二維碼容易作弊的問題[4]。
手機簽到系統包括課堂管理、用戶權限管理和二維碼生成等,是一種高效、便捷、環保的簽到方式。因此,以網絡為基礎,創建課前簽到系統成為發展的必然趨勢[5]。本文基于二維碼設計并實現了一種綠色環保又高效的課堂簽到管理系統。
2 ? 條碼技術探析(Analysis of barcode technology)
2.1 ? 一維條碼和二維碼的技術對比
二維碼是為了補足一維條碼的不足而誕生的,一維條碼是由一排寬度不等、排列不一的矩形條紋組成,它們可以代表字母、標點符號和數字。條碼技術將計算機技術、通訊、光電技術融合到一起,是自動化識別領域的重要手段。而一維條碼只能標識物品,不能傳遞圖像和漢字信息,因此很多領域都無法使用。二維條碼的出現輕松解決了這個問題,而且它的容量大,對計算機的依賴更少。信息化技術一直在不斷發展,故二維碼技術也需要繼續發展,以便在有限的空間內表達更多的信息、容納更多的數據,使物品信息盡可能多的被描述[6]。
二維碼可以在有限的空間內表達比一維條碼更多的數據信息,深淺不一的幾何圖形相間在一起按一定的規律進行排布,使用比特流符號“0”“1”表示淺色和深色,將比特流符號進行排列組合就能表達出相關的圖像和文字信息。通過掃描二維碼可將這些排布過的比特流信息識別出來,在橫向和縱向兩個維度同時進行信息表達。
二維碼具有可靠性高、安全性能高、存儲容量大等優點,因此二維碼可以對物品進行描述,而一維條碼只能對物品進行標識[7],一維碼與二維碼的性能比較如表1所示。
從表格中可看出,二維條碼比一維條碼表現出了更多的優點:其一,二維條碼在有限的空間編輯存儲更多的數據,將屏幕上的二維空間充分利用起來,將數據存儲密度提高了幾倍。其二,二維碼較之一維碼有很強的糾錯能力,即使二維碼部分損毀也能被識別。
2.2 ? 二維條碼的種類
不同的領域需要不同形式的二維條碼,即行排式二維碼、矩陣式二維碼和郵政碼[8,9]:
(1)行排式二維條碼
這是一種在識別和讀取都和一維條碼類似的二維條碼,在識別上和一維條碼兼容。與一維條碼的區別是多行排列。
(2)矩陣式二維條碼
這是融合了圖像識別技術和編碼技術的新型圖像自動生成識別術,采用深淺不一的點陣在固定的矩形空間中進行排列,組合方式不同就代表著不同的信息。
(3)郵政碼
郵政碼也屬于二維條碼的一種,通過長度不同的條形排列組合編碼,郵政碼主要用于郵件的編碼,例如BPO 4-State、Post net等。
2.3 ? QR碼概述與特征
QR Code(Quick Response Code)屬于矩陣式二維條碼,通過深淺不一的塊狀結構排列組合進行編碼,由比特流符號“0”“1”組成。QR碼不僅可以快速準確的被識別,也可以描述漢字信息,圖2為QR碼的實例。
QR碼的主要特征:
(1)快速識別
二維的英文為Quick Response Code,顧名思義可以快速識別,也是QR碼的主要特征,使用識讀設備可以快速識別QR碼的信息。比如,使用同樣的識別設備對PDF417碼進行識讀,每秒鐘只能讀出三個;而識別Data Martix碼,每秒也只能識別兩個或三個;對于QR碼,每秒可識別三十個。
(2)描述漢字
QR碼有特定的漢字編碼模式,其他的二維條碼大多沒有這個特征,這也是QR碼在我國得到廣泛使用的原因。QR碼表達一個漢字僅需13 bit,而沒有漢字編碼模式需要16 bit,由此看來,QR碼的漢字表達能力更強。它的其他特征如表2所示。
2.4 ? QR碼的結構
QR碼是一種矩陣圖像,由“點”和“空”排列組合而成,它們分別由二進制中的“1”和“0”表示,還有專門表示漢字信息和圖像信息的編碼,完整的QR碼由編碼區域和功能圖形區域構成[10]。
編碼區由數據糾錯、格式信息和版本信息組成,具體的值由糾錯級別、版本號和輸入信息決定。功能圖形區域由校正信息、定位圖形、位置探測圖像分隔符、位置探測區組成。不同數據和版本的QR碼的大小和形狀是一樣的,是為了識讀QR碼時提供準確的位置信息。
2.5 ? QR碼編碼
QR碼編碼是利用相關的技術對原始數據進行處理后生成二維碼的過程。二維碼編碼流程主要由選擇編碼模式、對數據進行編碼、編碼糾錯、矩陣模塊排列、處理掩模和格式分析組成。圖3為編碼的流程圖。
QR碼通常有四種數據模式:數字、字母數字、8位字節和中國漢字。在這幾種數據模式中,不同的數據模式可生成不同的二進制位流。在編碼時需要改變數據模式時,要加入新的數據模式開始符和終止符,然后將生成的二進制位流每八位一個碼的格式進行編碼,位流數不足的可以按要求進行填充。不同的編碼模式有其對應的編碼規則和字符計算長度、指示符。
為了保證當二維碼部分損壞時,能保留數據信息并被識別出來,最后需要加上糾錯編碼。根據糾錯級別的不同,恢復碼字容量也不同,糾錯級別L、M、Q和H的恢復容量分別為7%、15%、25%和30%。
矩陣形式的模塊排列方式:QR碼是由矩陣模塊排列而成,具體是分隔符、數據碼字、定位圖形、校正區和位置探測圖形。位流有很多的排列方式,一個字碼也可以看成單獨的二進制位流,排列時可從高到低、從左至右,或從上至下進行排列,在末尾改變走向。圖4為有規律的位流模塊排列方式。
為了保證QR碼的可靠性,需要進行掩模處理,總共處理八次,挑出結果最好的一個。掩模處理只用于編碼區域,不能用于功能圖形區,用掩模圖形對編碼區域(版本和格式信息除外)進行XOR操作。
2.6 ? QR碼解碼
QR碼解碼是編碼的逆向過程,包含了QR碼識讀和譯碼兩個過程。QR識讀時比較重要的是圖像預處理,圖像預處理的質量直接影響著解碼結果。圖像預處理由四個步驟組成:圖像灰度化、中值濾波、圖像校正和二值化。QR碼識讀流程圖如圖5所示。
譯碼過程包括深淺模塊的識別、確認版本、確認格式、消除掩模、糾錯過程和數據譯碼,流程如圖6所示。
3 ?課堂簽到系統的分析與設計(Analysis and design of classroom sign-in system)
QR碼簽到是利用二維碼編碼技術將學生的信息生成二維碼,通過網絡將二維碼發送到學生的手機或其他終端設備,簽到時利用二維碼的識別技術,對學生的二維碼進行掃描識別來進行課堂簽到。
3.1 ? 系統設計
系統共由三部分組成,即系統管理、權限管理和二維碼管理。
系統管理分為學生管理和報表統計管理,學生管理包含了上課時間、地點和課程名稱等;報表統計管理是最后對課堂簽到進行統計。
權限管理系統是教師的相關權限,在上課之前先初始化管理員的用戶名和密碼,進入登錄界面,登錄后進入主界面,可以建立新的子賬號、修改密碼和編輯賬號等操作。
二維碼管理系統是整個系統的核心部分,運用到二維碼的編碼和譯碼技術,進行二維碼的生成和識別。基于二維碼的手機簽到系統可以對課堂簽到系統進行有效的簽到和統計,將學生的個人信息生成的二維碼進行掃碼簽到。系統結構如圖7所示。
(1)數據層包含了學生的個人信息,這些信息存儲在數據庫或文本文件中,用這些數據來生成簽到二維碼。
(2)二維碼管理層是主要進行二維碼的生成和識別,是核心部分。將數據層的個人信息生成二維碼;學生到場進行掃碼簽到并同步到服務器中。
(3)服務器層也是存儲層,存儲整個系統的數據,要求有一定的容量、穩定和安全。
(4)數據管理層主要是方便老師進行系統的管理,方便進行簽到數據的統計、查閱和存儲。
3.2 ? 統計工作
課程結束后教師可對到課學生人數進行統計,查看實到人數和名單,該課程應到人數和名單。可形成報表,并支持打印功能。
3.3 ? 學生個人信息管理
為了管理簽到的有效性,很有必要將學生個人信息導入或后期導出設計到系統中。課程信息和學生信息確定后,提前將學生的姓名和手機號等信息生成二維碼導入系統;課程結束后,將學生簽到情況導出備份,以便期末作為成績考核的依據。
3.4 ? 系統數據庫設計
系統數據庫涉及課程的名稱、時間、地點、教師信息、學生個人信息。發送給學生的二維碼根據課程的不同,所生成的二維碼也不同。可根據二維碼查詢到課程的具體信息。不同課程需要不同的教師來進行簽到管理,除了課程ID外,還要相關教師提供個人信息,用于學生簽到出現問題或者有請假這類的情況出現時能及時聯系到教師。
4 ?課堂簽到系統的實現(The realization of the classroom sign-in system)
系統的實現主要有兩點,一是給相關學生發送簽到二維碼信息;二是學生進行課前簽到時,掃描識別二維碼中的信息。這涉及二維碼的編碼和解碼,本設計使用Java程序進行編碼。
4.1 ? QR碼編碼
構造二維碼信息:簽到時二維碼所包含的信息有姓名、身份證號、手機號和課程的名稱。在生成二維碼之前,要先將數據信息構造出來,生成QR碼的方法為GetQRcode(),包含了學生的姓名、電話號碼和課程名稱,這些參數構造成字符串QRCodeinfostr。用于解碼的方法為EncoderQRcode(),這個方法由組成二維碼的字符串和生成二維碼的途徑組成。
QR碼圖像生成:將代表學生信息的字符串構造好后,調用具體編碼程序。首先,預設糾錯等級、編碼模式的確定、版本信息和格式信息的確定;其次,新建畫板,將畫板的顏色、大小等信息選好;最后,調用QRcode Encoder Handler中的calQrcode()來計算碼字。該步驟完成后,進行數組Code Out確認,true或是false,如果是true則為深色,反之則為淺色。將所有的點進行確認,“真”的點即生成黑色或深色,“假”則生成淺色或白色,最后生成二維碼圖像。
4.2 ? QR碼解碼
QR碼解碼是系統設計的關鍵技術之一,掃描設備對二維碼進行掃描,進而識別出其中的信息,并將信息發送到服務器,服務器反饋數據完成簽到。本文主要通過zxing項目來實現解碼,流程為識讀二維碼圖像、轉換為二進制符號、譯碼,最后輸出結果。通過掃描二維碼進行簽到后,在手機簽到系統里顯示出該學生簽到的具體時間、學生姓名和具體課程信息。
4.3 ? 權限管理
教師作為管理員登錄系統后,進入設置頁面,可以添加管理員,比如班長、學習委員或是其他導師。有的教師課時比較多,可以讓其他管理員來做簽到的統計工作。
4.4 ? 系統的測試
為了確保系統的正確性和可靠性,需要對不同的模塊進行審查,在代碼完成后對系統進行測試必不可少。
(1)代碼邏輯測試,代碼的質量決定了模塊運行的持續性。因此,在編寫代碼時,必須嚴格按照測試的要求進行編寫,測試輸出是否符合預期的要求。
(2)功能性測試,為了測試模塊之間的銜接是否緊密,各個功能之間的組合是否符合最初系統設計的要求,有一些細微的功能上的差別是否會影響到系統的運行,本系統雖然還是存在一些細小的誤差,但是不會影響整個系統的運行。
(3)壓力測試,當多個管理員登錄系統進行操作時,測試服務器是否能承載。經過以上測試發現本系統存在一些不足和缺點,一邊測試一邊進行修改,力爭使本系統符合要求。
5 ? 結論(Conclusion)
本文對一維條碼和二維條碼的特點和應用進行了對比分析,著重研究了二維碼的基本原理和應用優勢。結合二維碼在簽到系統研發領域的優勢和廣闊的應用前景,以二維碼手機簽到系統為出發點,對手機簽到系統的需求、功能和數據庫等進行了分析,完成了二維碼課堂簽到系統的設計和測試,為課堂簽到提供了更高效、環保的簽到方式。
參考文獻(References)
[1] P.A.Cheremkhin,V.V.Krasnov,V.G.Rodin,et al.QR code optical encryption using spatially incoherent illumination[J].Laser Physics Letters,2017,14(2):026-202.
[2] P.Y.Li,Y.H.Chen.High payload secret hiding technology for QR codes[J].EURASIP Journal on Image and Video Processing,2017,14(1):2-8.
[3] Z.Fu,Y.Cheng,B.Yu.Rich QR code with three-layer information using visual secret sharing scheme[J].Multimedia Tools and Applications,2019:1-15.
[4] 尚澤宇.動態二維碼簽到系統設計與實現研究[J].福建電腦,2018,3:152-153.
[5] 曹記東,斌濤.二維碼加密的手機簽到系統設計[J].無線互聯科技,2016,5:44-45.
[6] S.H.Unger.Patte detection and recognition[J].Proceeding of the IRE,1959,47(10):1740-1750.
[7] 朱詩兵.信息論與編碼理論[M].北京:科學出版社,2005:30-90.
[8] T.Polidis,J.Swartz,Fundamentals of bar code information theory[J].IEEE computer magazine,1990,23(4):77-86.
[9] 彼德魯,賴劍煌,譯.數字圖像處理疑難解析[M].北京:機械工業出版社,2005:20-30.
[10] 齊金月.二維條碼的生產與識別研究[D].哈爾濱工程大學圖書館,2004:17-23.
作者簡介:
王 ? 龍(1988-),男,碩士,講師.研究領域:軟件工程應用.