邱雅凱里學(xué)院物理與電子工程學(xué)院
基于樹(shù)莓派的車載二維碼掃描識(shí)別系統(tǒng)的設(shè)計(jì)
邱雅
凱里學(xué)院物理與電子工程學(xué)院
樹(shù)莓派Raspberry Pi自推出第一款產(chǎn)品以來(lái),因其支持多語(yǔ)言編程、功能強(qiáng)大,便于攜帶且性價(jià)比高的特點(diǎn),受到了廣大電子發(fā)燒友的青睞。樹(shù)莓派設(shè)計(jì)的初衷是為了激發(fā)學(xué)生學(xué)習(xí)編程的樂(lè)趣,而不僅僅是強(qiáng)調(diào)電子產(chǎn)品的娛樂(lè)功能。產(chǎn)品之所以取名“Raspberry”,是為了向其他以水果命名的電子產(chǎn)品公司致敬,而“Pi”則強(qiáng)調(diào)了最適合該產(chǎn)品編程的語(yǔ)言是Python,除此之外,樹(shù)莓派還支持Java、C等其他編程語(yǔ)言,使學(xué)生體驗(yàn)其開(kāi)發(fā)的高效和語(yǔ)言環(huán)境的多樣性。樹(shù)莓派靈巧的機(jī)身和強(qiáng)大的拓展性,使其可應(yīng)用于多個(gè)領(lǐng)域,樹(shù)莓派掃描二維碼識(shí)別系統(tǒng),就是樹(shù)莓派在公共交通服務(wù)領(lǐng)域上的新實(shí)踐。同樣,二維碼作為物聯(lián)網(wǎng)應(yīng)用領(lǐng)域一項(xiàng)十分重要的技術(shù),現(xiàn)階段的二維碼多用于公共生活服務(wù)領(lǐng)域,例如購(gòu)物信息識(shí)別、身份驗(yàn)證、物品管理、物流追蹤、書(shū)籍借閱等。由于應(yīng)用領(lǐng)域比較單一,其眾多優(yōu)點(diǎn)使其在可預(yù)見(jiàn)的未來(lái)內(nèi)前景寬廣。例如當(dāng)車輛行進(jìn)到某個(gè)區(qū)域時(shí),可通過(guò)該系統(tǒng)掃描識(shí)別噴繪于地面上的二維碼,使用短信API接口通過(guò)服務(wù)器將停車信息發(fā)送到用戶手機(jī),使二維碼發(fā)揮在公共交通服務(wù)領(lǐng)域的功能[1]。
目前樹(shù)莓派推出A、A+、B、B+四個(gè)版本,本設(shè)計(jì)選用B+型,具有512M運(yùn)行內(nèi)存,硬盤(pán)內(nèi)存8G。基于樹(shù)莓派B+型的車載二維碼掃描識(shí)別系統(tǒng),搭載Linux系統(tǒng),使用樹(shù)莓派支持的基礎(chǔ)語(yǔ)言Py?thon進(jìn)行設(shè)計(jì),運(yùn)用于公共交通服務(wù)領(lǐng)域。當(dāng)用戶需要駕駛車輛去公共生活服務(wù)場(chǎng)所時(shí),若在停車場(chǎng)收費(fèi)處或車位地面噴繪二維碼圖案,用戶即可通過(guò)樹(shù)莓派二維碼掃描識(shí)別系統(tǒng),更加便利地獲取停車信息(包含具體停車時(shí)刻,免費(fèi)停車時(shí)長(zhǎng),收費(fèi)情況等),利用短信API接口技術(shù)服務(wù)器將自動(dòng)發(fā)送信息到用戶手機(jī),提醒用戶注意免費(fèi)停車時(shí)長(zhǎng)和收費(fèi)情況,為用戶獲取停車信息提供更加便捷的方式,提高工作效率,避免人工服務(wù)出現(xiàn)的失誤。
2.1硬件環(huán)境搭建
⑴在樹(shù)莓派SD卡上安裝Linux系統(tǒng),使之成為一個(gè)卡片式大小的開(kāi)發(fā)板,為后續(xù)開(kāi)發(fā)提供平臺(tái);⑵裝載路由器,將寬帶接輸入端口(通常標(biāo)識(shí)為WAN),登錄路由器設(shè)置頁(yè)面192.168.1.1,配置路由器后保存信息,注意輸出端口一端接樹(shù)莓派,另一端接操作電腦,該步驟的目的是為了保持樹(shù)莓派和操作電腦位于同一網(wǎng)段;⑶將攝像頭接入U(xiǎn)SB接口,用于該系統(tǒng)實(shí)現(xiàn)二維碼掃描識(shí)別功能。
2.2軟件設(shè)計(jì)
見(jiàn)圖1。
⑴樹(shù)莓派啟動(dòng)配置模塊:①安裝ssh軟件putty.exe用于遠(yuǎn)程登錄樹(shù)莓派,令所有操作都在一個(gè)控制面板中實(shí)現(xiàn),在后續(xù)工作中便于操作電腦對(duì)樹(shù)莓派執(zhí)行命令;②更改樹(shù)莓派原有的鏡像源,原有鏡像源位于國(guó)外,將鏡像源更改為國(guó)內(nèi)地址有助于提升服務(wù)器的下載速度,為在中西部地區(qū)特別是教育網(wǎng)能達(dá)到較理想的速度本設(shè)計(jì)選用重慶大學(xué)鏡像源;③安裝python-imaging圖形處理軟件、二維碼掃描識(shí)別工具zbar-tools及生成二維碼的支持庫(kù)python-py?game,用于支持樹(shù)莓派掃描識(shí)別二維碼的工作;④在操作電腦上安裝VNC軟件遠(yuǎn)程登錄樹(shù)莓派桌面,便于操作。
⑵系統(tǒng)掃描模塊:編寫(xiě)的腳本test.py和qrcode.py能夠使用攝像頭對(duì)二維碼信息進(jìn)行掃描和識(shí)別,test.py文件中說(shuō)明樹(shù)莓派每執(zhí)行一次命令就進(jìn)行一次二維碼識(shí)別,并且該過(guò)程持續(xù)不斷直到識(shí)讀出信息為止。
⑶系統(tǒng)識(shí)別模塊:該模塊是整個(gè)樹(shù)莓派車載二維碼掃描識(shí)別系統(tǒng)的核心,為了在后續(xù)工作中能夠更好地使用,將其編譯成庫(kù)文件。圖像預(yù)處理是對(duì)原始信息經(jīng)遙感器技術(shù)和幾何技術(shù)等前期處理,將QR碼轉(zhuǎn)換為字符數(shù)據(jù)輸出。在此拓展二維碼識(shí)別過(guò)程原理:①原始圖像經(jīng)過(guò)灰度圖像的二值化處理,即像素值只有“0”和“255”的圖像,再由降噪處理過(guò)濾污染的噪聲,注意選取適當(dāng)?shù)拈y值,提高在不同光照條件下的識(shí)別率;②使用邊緣檢測(cè)技術(shù)選取合適的檢測(cè)算子對(duì)圖像信息進(jìn)行分割,再對(duì)數(shù)字圖像的幾何特征獲取使用輪廓檢測(cè)技術(shù),常用方法有Radon變換和Hough變換,最后進(jìn)行畸變矯正處理,使失真圖像信息也可被識(shí)別;③計(jì)算出編碼區(qū)后,就可獲取二維碼版本及格式信息;④按照相關(guān)譯碼標(biāo)準(zhǔn)得出數(shù)據(jù)字符并輸出識(shí)別結(jié)果。
⑷信息傳輸模塊:API(Application Program Interface)應(yīng)用程序接口集合一組程序、定義及協(xié)議,通過(guò)API接口提供通用功能集,可實(shí)現(xiàn)計(jì)算機(jī)軟件相互通信。選擇短信API接口技術(shù)能夠確保信息發(fā)送的準(zhǔn)確性和實(shí)效性,真正做到隨需應(yīng)變,功能強(qiáng)大的開(kāi)發(fā)包也支持多種語(yǔ)言開(kāi)發(fā)和系統(tǒng)操作,使用更加便利。
使用Python語(yǔ)言編寫(xiě)腳本文件,調(diào)用PHP接口文件,向短信服務(wù)器提交企業(yè)ID,企業(yè)賬號(hào),密碼,發(fā)送內(nèi)容及發(fā)送號(hào)碼等信息,當(dāng)系統(tǒng)掃描識(shí)別二維碼時(shí),服務(wù)器將會(huì)自動(dòng)發(fā)送相關(guān)的停車信息到用戶手機(jī)。在本設(shè)計(jì)中使用短信API接口,為系統(tǒng)提供短信服務(wù)支撐,通過(guò)使用開(kāi)發(fā)的API函數(shù)應(yīng)用程序,可減輕編程任務(wù),系統(tǒng)自行調(diào)用,免去復(fù)雜而無(wú)用的中間環(huán)節(jié)實(shí)現(xiàn)不同平臺(tái)的數(shù)據(jù)共享。
圖1 軟件設(shè)計(jì)流程圖
3.1樹(shù)莓派啟動(dòng)配置
⑴插入寫(xiě)有Linux系統(tǒng)的SD卡,接通電源,樹(shù)莓派會(huì)自動(dòng)顯示開(kāi)機(jī)界面。使用ssh客戶端軟件putty.exe遠(yuǎn)程登錄樹(shù)莓派,輸入設(shè)定的IP地址192.168.1.50進(jìn)入樹(shù)莓派的登錄界面,輸入用戶名pi和設(shè)定的密碼。
⑵更換鏡像源根據(jù)樹(shù)莓派官方提供的鏡像源,本設(shè)計(jì)選用重慶大學(xué)鏡像源http://mirrors.cqu.edu.cn/Raspbian/raspbian/;使用na?no命令編輯,鍵入nano/etc/apt/sources.list進(jìn)入編輯界面:①備份源列表,命令cd/etc/apt、cp sources.list sources.list_back;②更改為重慶大學(xué)鏡像源命令deb http://mirrors.cqu.edu.cn/raspbian/raspbi-anwheezymaincontribnon-freerpi;③使用Ctrl+O保存更改鏡像源文件,Ctrl+X退出nano編輯器;④執(zhí)行apt-get update命令更新軟件源,鍵入apt-get up-grade命令進(jìn)行軟件更新。
⑶Raspberry Pi自身支持Python的開(kāi)發(fā)環(huán)境,只需外接攝像頭,就能使用Python對(duì)二維碼圖像進(jìn)行創(chuàng)建和識(shí)別,在此之前,需安裝如下工具:①安裝基于Python語(yǔ)言的圖像處理庫(kù)文件,用于樹(shù)莓派對(duì)識(shí)別的二維碼進(jìn)行圖像處理,鍵入sudo apt-get install py?thon-imaging;②安裝二維碼掃描識(shí)別器,鍵入sudo apt-get install zbar-tools用于對(duì)二維碼圖像的抓取,和二維碼信息的識(shí)別;③安裝生成二維碼的支持庫(kù),鍵入sudo apt-get install python-pygame,用于識(shí)別和創(chuàng)建二維碼。
⑷使用Python語(yǔ)言編寫(xiě)二維碼開(kāi)發(fā)包,創(chuàng)建二維碼生成文件qrcode.py內(nèi)容
創(chuàng)建主文件main.py內(nèi)容如下:
3.2二維碼掃描
⑴重啟樹(shù)莓派鍵入sudo reboot命令;⑵鍵入./StartVNCServer. sh開(kāi)啟VNC遠(yuǎn)程控制樹(shù)莓派桌面的服務(wù);⑶點(diǎn)擊VNC輸入IP地址192.168.1.1和密碼,點(diǎn)擊樹(shù)莓派遠(yuǎn)程桌面上的LXTerrninal圖標(biāo)。
3.3二維碼識(shí)別
將測(cè)試二維碼騰訊新聞手機(jī)客戶端打印出來(lái),置于攝像頭下。調(diào)整周圍環(huán)境的亮度,將二維碼圖像至于掃描框中間位置,輸入zbarcam--raw/dev/video0命令,開(kāi)啟識(shí)別二維碼的程序,在二維碼圖像識(shí)別過(guò)程中可不斷小幅移動(dòng)二維碼圖像至最佳位置,2分鐘左右即可獲取到二維碼信息,測(cè)試結(jié)果如圖2。
圖2 騰訊新聞手機(jī)客戶端測(cè)試結(jié)果
3.4信息傳輸
⑴調(diào)用二次開(kāi)發(fā)PHP接口創(chuàng)建提交短信腳本news.py:
即可在提前設(shè)定的手機(jī)上收到含有停車信息的內(nèi)容如圖3:
圖3 短信測(cè)試結(jié)果
樹(shù)莓派是近幾年興起的新型電子設(shè)備,因?yàn)樾∏?,便捷,性價(jià)比高,功能強(qiáng)大等特點(diǎn)受到廣大電子發(fā)燒友的喜愛(ài)。在當(dāng)代社會(huì)生活中,超市付款、手機(jī)APP推廣、身份識(shí)別二維碼的應(yīng)用都無(wú)處不在,但在車聯(lián)網(wǎng)的應(yīng)用上卻寥寥無(wú)幾。同樣,在公共交通服務(wù)領(lǐng)域中,若能利用其強(qiáng)大的信息儲(chǔ)藏能力,將為車主提供非常便捷的停車信息獲取方式。本設(shè)計(jì)采用Python語(yǔ)言作為基礎(chǔ),實(shí)現(xiàn)二維碼掃描識(shí)別功能是一個(gè)創(chuàng)新之處,并且在獲取二維碼信息之后使用與時(shí)俱進(jìn)的短信API接口技術(shù),服務(wù)器將自動(dòng)發(fā)送停車信息到用戶手機(jī)終端,對(duì)用戶是一種全新的體驗(yàn),其應(yīng)用前景不言而喻。
通過(guò)測(cè)試產(chǎn)生的結(jié)果和實(shí)踐應(yīng)用證明,樹(shù)莓派二維碼掃描識(shí)別系統(tǒng)能夠在短時(shí)間內(nèi)、準(zhǔn)確識(shí)別二維碼信息,并且用戶能夠通過(guò)短信API接口技術(shù)接收到關(guān)于停車信息的短信。但在系統(tǒng)測(cè)試過(guò)程中發(fā)現(xiàn),識(shí)別對(duì)環(huán)境的要求較高如光線亮度、對(duì)比度,且二維碼圖案的復(fù)雜程度也會(huì)影響識(shí)別成功率。若能進(jìn)一步完善功能,該系統(tǒng)可在停車場(chǎng)內(nèi)實(shí)施監(jiān)控,智能家居系統(tǒng)中得到應(yīng)用,或在農(nóng)業(yè)實(shí)踐中記錄作物生長(zhǎng)規(guī)律等領(lǐng)域得到拓展。
[1]楊旭煒,盛曉亮.基于樹(shù)莓派實(shí)現(xiàn)的車載二維碼掃描識(shí)別系統(tǒng)[J].數(shù)字技術(shù)與應(yīng)用,2015(3):16.
The design of raspberry pi vehicle identification system based on two-dimensional code scanning
QIU Ya
School of Physics and Electronic Engineering,Kaili University
對(duì)于二維碼在公共交通服務(wù)領(lǐng)域上使用的問(wèn)題,本設(shè)計(jì)基于嵌入式Linux設(shè)備--樹(shù)莓派設(shè)計(jì)一套車載二維碼掃描識(shí)別系統(tǒng)。創(chuàng)新之處是采用樹(shù)莓派的基礎(chǔ)語(yǔ)言Python進(jìn)行設(shè)計(jì),實(shí)現(xiàn)樹(shù)莓派掃描識(shí)別二維碼信息的功能。當(dāng)用戶駕駛車輛在停車過(guò)程中使用該設(shè)備掃描識(shí)別二維碼時(shí),短信API接口能通過(guò)服務(wù)器自動(dòng)為用戶發(fā)送停車信息提醒用戶注意停車時(shí)長(zhǎng)和收費(fèi)情況。
樹(shù)莓派;二維碼;Python;Linux;嵌入式系統(tǒng);物聯(lián)網(wǎng);車載輔助設(shè)備
Regarding to the problems in using two-dimensional QR code on the public transportation service area,a vehicle two-di?mensional QR code scanning recognition system is designed as a reso?lution.This design is based on Embedded Linux device-raspberry Pi.In this innovation,raspberry Pi uses Python as its basic language, to implement its function-scanning and recognizing two-dimen?sional QR code information.When the user is parking a vehicle in the parking lot,he/she can use the device to scan and identify the two-dimensional QR code.The messenger API interface will auto?matically send the parking information to the user through the server, for reminding the user to pay attention to the parking duration and the charges of the parking lot.
Raspberry Pi;QR code;Python;Linux;Embedded System;IOT;Vehicle mounted auxiliary equipment
邱雅(1993-),女,福建廈門(mén)人,本科在讀,學(xué)生,研究方向:電子技術(shù)。