陳朋誼,房宇佳,甘偉鵬,邵萬(wàn)鵬,王 燕,夏思雨,阮偉華,王海鵬
(三江學(xué)院 電子信息工程學(xué)院,江蘇 南京210012)
近年來(lái)隨著人工智能的火熱,在圖像識(shí)別的方向也有了長(zhǎng)足的進(jìn)步,有越來(lái)越多的成熟物體檢測(cè)和識(shí)別的模型。而對(duì)于微控制器這種級(jí)別的芯片如果想要實(shí)現(xiàn)復(fù)雜的識(shí)別和大量的計(jì)算,目前來(lái)說(shuō)很難實(shí)現(xiàn),但是通過(guò)圖像無(wú)線傳輸?shù)姆椒▽⑽⒖刂破骱陀?jì)算能力強(qiáng)大的設(shè)備結(jié)合起來(lái),即由本地采集圖像,然后通過(guò)無(wú)線Wi-Fi將圖像數(shù)據(jù)傳輸給計(jì)算機(jī)[1],在計(jì)算機(jī)端進(jìn)行復(fù)雜的識(shí)別運(yùn)算算法,再將算法處理結(jié)果通過(guò)無(wú)線網(wǎng)絡(luò)傳輸?shù)轿⒖刂破?,最后再由微控制器做出決策。在這種拓?fù)浣Y(jié)構(gòu)中,圖像的傳輸具有極其重要的作用:第一,圖像的傳輸技術(shù)能夠采集具有高清晰度的圖像,這樣可以提高識(shí)別的準(zhǔn)確度;第二,更快的傳輸速度可以使計(jì)算終端接收幀率更高的圖像,提升識(shí)別速度和實(shí)時(shí)性。所以圖像傳輸和人工智能的結(jié)合在未來(lái)將大有潛力。
在無(wú)人機(jī)中經(jīng)常可以看到圖像傳輸(簡(jiǎn)稱“圖傳”)系統(tǒng)的身影[2],而圖傳系統(tǒng)在安防系統(tǒng)中的地位更是舉足輕重。在移動(dòng)的嵌入式設(shè)備上很多時(shí)候也需要將圖像傳輸?shù)狡渌K端上,以便觀察或者完成其他的操作[3-10],本文提出并設(shè)計(jì)一種基于Wi-Fi無(wú)線傳輸?shù)牡统杀緢D傳系統(tǒng)。
圖1 所示為整個(gè)原型系統(tǒng)框圖,主要包括兩端,是圖像的采集和發(fā)送端,其中包含攝像頭模塊(OV2640),負(fù)責(zé)圖像的采集和壓縮。微控制MCU(STM32F407ZGT6)用來(lái)接收攝像頭模塊發(fā)送過(guò)來(lái)的數(shù)據(jù)[6],并將數(shù)據(jù)通過(guò)SPI接口傳輸?shù)絎i-Fi模塊。Wi-Fi模塊(ALK8266)轉(zhuǎn)發(fā)數(shù)據(jù)到圖像的接收端,也可轉(zhuǎn)發(fā)另一端消息MCU,另一端圖像接收端用來(lái)查看Wi-Fi發(fā)送過(guò)來(lái)的圖像,這一端是終端接收設(shè)備,可以是一臺(tái)電腦或者手機(jī),并運(yùn)行上位機(jī)軟件或者瀏覽器。
圖1 基于STM32微控制器的Wi-Fi圖傳原型系統(tǒng)框圖
整個(gè)系統(tǒng)采用由下而上開(kāi)發(fā)的順序,如圖2所示。軟件開(kāi)發(fā)總體分成四層結(jié)構(gòu),首先要確定最底層的硬件接口,保證所有接口合理分配并和MCU資源接口匹配,例如Wi-Fi模塊需要串行外設(shè)接口(SPI)方式通信,不可以隨意分配端口。上一層需要完成底層驅(qū)動(dòng)的編寫,初始化所有外設(shè),使MCU控制所有外設(shè)模塊。再上一層就需要完成2個(gè)部分的內(nèi)容,一個(gè)是對(duì)于Wi-Fi模塊中TCP/IP協(xié)議棧配置[7],另一個(gè)是對(duì)于圖像數(shù)據(jù)的采集和存儲(chǔ)。頂層為應(yīng)用層,主要負(fù)責(zé)完成發(fā)送圖像到其他終端,由于需要發(fā)送圖像到瀏覽器,所以包含WEB服務(wù)器的實(shí)現(xiàn)。
圖2 基于STM32微控制器的圖傳原型系統(tǒng)軟件開(kāi)發(fā)順序框圖
首先對(duì)核心板通電,燒錄測(cè)試代碼,觀察到核心板上綠色LED燈進(jìn)行閃爍。實(shí)物效果如圖3所示,通過(guò)串口查看獲取到的圖像數(shù)據(jù)。最終檢測(cè)Wi-Fi模塊,通電啟動(dòng)后查看Wi-Fi模塊狀態(tài)指示燈是否正常,供電電壓是否達(dá)到3.3V,通過(guò)連接熱點(diǎn)進(jìn)行數(shù)據(jù)的發(fā)送,串口打印接收到的數(shù)據(jù)。
圖3 圖傳系統(tǒng)整體實(shí)物圖
連接好各模塊后,就可以將圖像數(shù)據(jù)通過(guò)TCP服務(wù)器發(fā)送到連接上的客戶端。圖像發(fā)送的格式為JPEG格式,這是一種壓縮后的圖像格式,JPEG圖像以二進(jìn)制打開(kāi)會(huì)看到編碼是以0XFF、0XD8開(kāi)頭,以0XFF、0XD9結(jié)尾,通過(guò)編寫函數(shù)來(lái)查找特定開(kāi)頭和結(jié)尾的十六進(jìn)制數(shù),就可以得到寫入SRAM中一幅完整JPEG圖像的開(kāi)頭地址和數(shù)據(jù)的長(zhǎng)度,特別需要注意的是在向?yàn)g覽器每次發(fā)送圖片之前都要加入如下幀頭:
" --camera "
"Content-Type:image/jpeg "
"Content-Length:"+ "jpeg_data_len"+" "
需要注意參數(shù)“jpeg_data_len”是圖片大小,發(fā)送是需要將整型轉(zhuǎn)化為字符串,這樣瀏覽器就可以一直顯示視頻流直到關(guān)閉瀏覽器。圖像的發(fā)送核心的代碼如圖4所示:
圖4 圖像的發(fā)送核心的代碼截圖
搭建好原型系統(tǒng)之后,運(yùn)行調(diào)試程序,攝像頭會(huì)采集圖像信息,傳輸?shù)絊TM32微控制器開(kāi)發(fā)平臺(tái)中進(jìn)行處理,調(diào)用圖像發(fā)送函數(shù),經(jīng)過(guò)Wi-Fi傳輸?shù)缴衔粰C(jī)和瀏覽器中,打開(kāi)圖像接收上位機(jī)軟件,輸入代碼中設(shè)置的IP地址和端口號(hào),然后點(diǎn)擊啟動(dòng)。實(shí)驗(yàn)現(xiàn)象如圖5所示,上位機(jī)程序接收?qǐng)D像。瀏覽器接收到的圖像如圖6所示。
圖5 上位機(jī)接收?qǐng)D像
圖6 瀏覽器接收到的圖像
本論文設(shè)計(jì)實(shí)現(xiàn)了一套基于微控制器的低成本無(wú)線圖傳系統(tǒng),可通過(guò)Wi-Fi技術(shù)實(shí)現(xiàn)較高幀率的無(wú)線圖像傳輸,利用成本較低、在資源有限的微控制器上實(shí)現(xiàn)攝像頭數(shù)據(jù)的采集和發(fā)送,Wi-Fi模塊可以讓嵌入式設(shè)備連接網(wǎng)絡(luò),并且可以通過(guò)瀏覽器直接查看視頻,整套系統(tǒng)成本約為150元。傳輸?shù)乃俣瘸^(guò)許多同類原型系統(tǒng),為后來(lái)此類圖傳問(wèn)題提供了一種可行的解決思路。