周丹丹+楊靜+任楠



摘 要
采用視頻采集模塊對QR二維碼進(jìn)行捕捉,然后傳入到樹莓派中,通過算法和Zbar的結(jié)合對采集到的視頻信息進(jìn)行解碼和轉(zhuǎn)換,并將得到的數(shù)據(jù)信息儲存在數(shù)據(jù)庫中,同時(shí)輸出。利用樹莓派和zbar,順利實(shí)現(xiàn)了對QR二維碼信息的提取,儲存和輸出。測試結(jié)果表明,基于樹莓派的QR二維碼信息獲取的設(shè)計(jì)能夠完成識別、提取,解碼,數(shù)據(jù)庫儲存和顯示輸出。
【關(guān)鍵詞】樹莓派 ZbarQR 二維碼 數(shù)據(jù)庫
隨著計(jì)算機(jī)視覺與人工智能的發(fā)展,信息社會的高速發(fā)展,信息技術(shù)、自動(dòng)化技術(shù)已逐漸滲透進(jìn)人們的日常生活中。信息采集是信息技術(shù)中的重要環(huán)節(jié),條碼技術(shù)是一種常用的自動(dòng)化信息采集技術(shù)。二維碼是在普通一維條碼上擴(kuò)展出另一維具有可讀性的條碼,具有比一維條碼大得多的信息容量,可以不依賴于后臺的數(shù)據(jù)庫或聯(lián)網(wǎng);同時(shí),二維碼有一維條碼沒有的“容錯(cuò)機(jī)制”,即使在條碼被污損或殘缺等情況下,其中的信息仍然可以被正確地還原。QR 碼是常用的矩陣式二維碼的一種,又名快速響應(yīng)矩陣碼(Quick Response Code),于1994 年由日本DENSO WAVE 公司發(fā)明。QR 碼目前主要應(yīng)用在自動(dòng)化文字傳輸、數(shù)字內(nèi)容下載、網(wǎng)址快速鏈接、身份鑒別與商務(wù)交易等方面 本文中,筆者采用微處理器樹莓派對QR二維碼通過算法處理與計(jì)算分析,對QR碼中蘊(yùn)藏的信息進(jìn)行獲取,并將獲取到的信息存放在數(shù)據(jù)庫中。
1 硬件設(shè)計(jì)
本系統(tǒng)的硬件部分主要由視頻采集模塊、顯示輸出模塊和樹莓派B+微處理器及其周邊外設(shè)配置組成。系統(tǒng)在基于樹莓派 B + 微處理器和嵌入式 Linux 系統(tǒng)平臺上,首先通過USB 攝像頭捕獲QR二維碼圖像信息,將圖像信息傳入到樹莓派開發(fā)板內(nèi),通過圖像處理算法程序?qū)ζ溥M(jìn)行數(shù)據(jù)分析、解碼,然后通過顯示器將處理結(jié)果進(jìn)行輸出,并將視頻信息解碼后的內(nèi)容存入到數(shù)據(jù)庫中,系統(tǒng)硬件結(jié)構(gòu)方框圖如圖 1 所示。
在圖像采集方面,視頻采集模塊直接采用免驅(qū)的USB 攝像頭。通過采用Zbar函數(shù)庫的功能可以更方便的提取QR二維碼信息。樹莓派B + ( Rasp-berry Pi Model B + ) 微處理器作為嵌入式開發(fā)平臺,是基于ARM11 核的信用卡大小的微處理器,通過運(yùn)行定制的Linux操作系統(tǒng),實(shí)現(xiàn)了系統(tǒng)的精簡化,在硬件配置方面,512 MbyteRAM,700 MHz 運(yùn)行頻率,支持Open GL ES 2. 0,Open VG 硬件加速,1 080p H. 264 高清解碼,10 /100 以太網(wǎng)接口( RJ-45接口) 可以實(shí)現(xiàn)網(wǎng)絡(luò)連接,支持HDMI 和AV 輸出,同時(shí)樹莓派B +還具有40 Pin GPIO 口可以實(shí)現(xiàn)對外接設(shè)備的自動(dòng)控制。
2 樹莓派外圍電路設(shè)計(jì)
樹莓派電路的外圍設(shè)計(jì)是為了能夠保證電路的正常運(yùn)行和工作,主要分為微處理器樹莓派,電源模塊,網(wǎng)絡(luò)接口模塊,人機(jī)交互(鼠標(biāo)、鍵盤、顯示器)以及視頻采集五個(gè)部分。樹莓派采用裝有Linux系統(tǒng)的樹莓派B+,電源模塊采用5V/1A的電源適配器工作,免去繁瑣的電源設(shè)計(jì),網(wǎng)絡(luò)接口連接是為了方便遠(yuǎn)程操作樹莓派,鍵盤和鼠標(biāo)采用USB接口的普通鍵盤和鼠標(biāo)。AV接口連接顯示屏進(jìn)行輸出。如圖2所示。
3 軟件設(shè)計(jì)
采用python設(shè)計(jì)語言進(jìn)行算法設(shè)計(jì),程序主要分為三個(gè)模塊,實(shí)現(xiàn)對視頻采集輸入的QR二維碼的識別采樣、轉(zhuǎn)換、存儲、輸出,具體的原理圖如圖3所示。
(1)采用Zbar函數(shù)庫對QR碼進(jìn)行采樣,首先建立一個(gè)Zbar工程,對Zbar工程進(jìn)行配置文件,并選取攝像頭設(shè)備,具體的攝像頭文件可根據(jù)根目錄下的設(shè)備號進(jìn)行選擇,(本文實(shí)驗(yàn)中采用的是外接攝像頭)。配置好工程項(xiàng)目后進(jìn)入等待檢測狀態(tài),實(shí)時(shí)檢測攝像頭中是否出現(xiàn)QR二維碼,為了保證代碼的穩(wěn)定性,在函數(shù)中加入一個(gè)異常處理機(jī)制。
(2)建立數(shù)據(jù)庫,并在數(shù)據(jù)庫中加入分類信息用來儲存輸出的二維碼信息和其他信息。本文中特加入了實(shí)時(shí)的時(shí)間模塊,用來實(shí)現(xiàn)所需要的模塊。
(3)主函數(shù)用來完成對Zbar函數(shù)的調(diào)用和對數(shù)據(jù)庫的寫入,以及調(diào)用實(shí)時(shí)時(shí)間模塊。主函數(shù)主要對zbar函數(shù)的數(shù)據(jù)進(jìn)行處理分析,并作出解釋、轉(zhuǎn)換,并將二維碼信息寫入到數(shù)據(jù)庫中保存起來。
因?yàn)檐浖O(shè)計(jì)中采用的zbar函數(shù)庫為國外公司開發(fā)的,因此在對中文的解碼存在一定的問題。本文設(shè)計(jì)中采用強(qiáng)制轉(zhuǎn)換功能,將格式轉(zhuǎn)換為UTF-8格式和gb18030格式,但仍然存在一定的亂碼問題。(為了保證代碼的穩(wěn)定性,在測試中采用英文格式來解碼。)
4 測試結(jié)果
測試正確性的過程中采用草料二維碼生成器生成二維碼作為基礎(chǔ),生成的二維碼信息為Times,視頻采集模塊采用免驅(qū)USB攝像頭。檢測后得到的結(jié)果如圖4、5所示。
5 結(jié)論
本文中所設(shè)計(jì)的二維碼打卡器已與上位機(jī)進(jìn)行了聯(lián)調(diào)。聯(lián)調(diào)顯示,本文中所設(shè)計(jì)的系統(tǒng)能夠?qū)崿F(xiàn)對視頻信息中的QR二維碼的提取,并將提取到的二維碼信息存儲入數(shù)據(jù)庫后再輸出。結(jié)果表明,本文中采用的轉(zhuǎn)換數(shù)據(jù)格式仍存在一定的問題。但是,本文中采用樹莓派微型處理器和免驅(qū)USB攝像頭,大大減少了成本費(fèi)用,是一種便攜式的,易于操作,易于維護(hù)的微型QR碼信息獲取器。
參考文獻(xiàn)
[1]QR code.http://en.wikipedia.org/wiki/QR_code.
[2]高峰,陳雄,陳婉秋.基于《樹莓派B+ 微處理器的視頻檢測跟蹤系統(tǒng)》[J].電視技術(shù),2015.
[3]李婉婉,胡文龍,李宏.基于So PC的 QR二維碼識別系統(tǒng)設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2014(10):80-82,85.
[4]馮藝東,汪國平等.信息可視化[J].工程圖學(xué)學(xué)報(bào),2001.