天津職業(yè)技術(shù)師范大學(xué)工程實(shí)訓(xùn)中心 戴健雄 王自有 劉衛(wèi)華
目前市場上室內(nèi)檢測人員的熱釋電傳感器只能探測或感應(yīng)移動體溫人體的熱源,必須要移動才能感知到有人的存在或者有人經(jīng)過(自動門和紅外放到就是運(yùn)用了這個原理)。因此運(yùn)用這種傳感器做出來的探測器只能探測到移動的人,而難以判別其偵測范圍是否有人的存在(靜止不動的人),因此無法直接使用這種傳感器作為進(jìn)行有人判定。隨著電子技術(shù)的發(fā)展和電路集成度及工藝的提高,基于嵌入式系統(tǒng)的圖像采集處理平臺的開發(fā)日益增多,它具有成本低廉、結(jié)構(gòu)緊湊、功耗低的優(yōu)點(diǎn)。STM32為ST公司生產(chǎn)的基于ARM Cortex-M3內(nèi)核的32位微控制器,主頻72MHz。OV7670是Omni Vision公司生產(chǎn)的一款1/6寸、有效像素30萬的互補(bǔ)金屬氧化物半導(dǎo)體(CMOS)圖像傳感器,它通過美國Omni Vision公司定制的2線/3線制串行攝像頭控制總線(serial camera control bus,SCCB)進(jìn)行控制,輸出并行的8位圖像數(shù)據(jù),VGA圖像輸出最高可達(dá)30幀/s。
本設(shè)計以室內(nèi)檢測人員為應(yīng)用背景設(shè)計,因此考慮便于實(shí)現(xiàn)把系統(tǒng)劃分由微處理器單元、圖像采集設(shè)備、圖像顯示設(shè)備組成。其中STM32微控制器是整個系統(tǒng)的核心單元,負(fù)責(zé)圖像數(shù)據(jù)的處理和各單元模塊的控制等;OV7670圖像傳感器為檢測元件,負(fù)責(zé)室內(nèi)圖像數(shù)據(jù)的采集;由于圖像傳感器的時鐘達(dá)24MHz,通過STM32的IO口來直接讀取采集數(shù)據(jù)比較困難,容易造成數(shù)據(jù)丟失,且對CPU會造成較大的負(fù)擔(dān),所以使用 AL422B作為先入先出(FIFO),當(dāng)一幀圖像緩存完后,STM32才將這一幀圖像寫入顯存或暫存到內(nèi)存中。2.8寸320×240分辨率的TFTLCD實(shí)現(xiàn)圖像顯示和數(shù)據(jù)處理結(jié)果,由于一幀RGB565格式(320×240)尺寸的圖像達(dá)150 KB,而STM32的內(nèi)部SRAM只有64 KB,故外擴(kuò)1MB的SRAM實(shí)現(xiàn)圖像處理。如圖1所示。
圖1 STM32人員定位檢測系統(tǒng)框圖
本系統(tǒng)使用IO口模擬SCCB總線控制OV7670,使其可以輸出整幀、子采樣、取窗口等方式的各種分辨率8位影像數(shù)據(jù)。因?yàn)镺V7670的像素時鐘(PCLK)最高可達(dá)24Mhz,用STM32F103的IO口直接抓取困難,也占CPU資源。所以不是采取直接抓取來OV7670的數(shù)據(jù),而是單片機(jī)通過讀取FIFO暫存數(shù)據(jù)實(shí)現(xiàn)OV7670的圖像采集功能,F(xiàn)IFO芯片的容量是384K字節(jié),足夠存儲2幀QVGA的圖像數(shù)據(jù)。OV7670圖像采集電路通過一個的雙排排針與外部通信,與外部的通信信號如圖2所示:
圖2 OV7670接口
本設(shè)計采用SCCB來實(shí)現(xiàn)對OV7670的控制,stm32中的PD3配置為推挽輸出,連接OV7670的OV_SCL管腳,PG13配置為為上拉輸入、寫數(shù)據(jù)時配置為推挽輸出,連接OV7670的OV_SDA管腳,然后根據(jù) SCCB時序圖來編寫驅(qū)動程序。寫操作:起始信號→器件地址(0x42)→Ack→寄存器地址→Ack→寫入數(shù)據(jù)→Ack→停止信號。讀操作:起始信號→器件地址(0x42)→Ack→寄存器地址→Ack→停止信號→起始信號→器件地址(0x43)→Ack→讀出數(shù)據(jù)→No Ack→停止信號。
本文采用一個外部中斷,來捕捉幀同步信號(VSYNC),然后在中斷里面啟動 OV7670的圖像數(shù)據(jù)存儲,等待下一次VSHNC信號到來,我們就關(guān)閉數(shù)據(jù)存儲,然后一幀數(shù)據(jù)就存儲完成了,在主函數(shù)里面就可以對這一幀圖像數(shù)據(jù)處理(如送到LCD顯示),同時開始第二幀數(shù)據(jù)的存儲與處理,如此循環(huán),實(shí)現(xiàn)攝像頭功能。
圖3 TFT接口
Stm32與TFT液晶模塊連接時,僅需將該電路考慮成一個SRAM模式即可,具體連接方式見圖3所示。連接中需要注意的是,液晶模塊與STM32的FSMC控制器的連接,本系統(tǒng)中LCD_BL(背光控制)對應(yīng)PB0,LCD_CS對應(yīng)PG12即 FSMC_NE4,LCD _RS對應(yīng)PG0即FSMC_A10,LCD _WR對應(yīng)PD5即FSMC_NWE,LCD _RD 對應(yīng)PD4即FSMC_NOE,LCD _D[15:0]則直接連接在FSMC_D15~FSMC_D0,這些連接直接關(guān)系到軟件初始化時相關(guān)寄存器地址設(shè)置。
本系統(tǒng)的軟件設(shè)計在查閱攝像頭及LCD等模塊控制時序的基礎(chǔ)上, 對模塊進(jìn)行驅(qū)動代碼編寫。系統(tǒng)使用一個外部中斷來捕捉圖像場幀同步信號(VSYNC),幀中斷時啟動圖像數(shù)據(jù)幀緩存,待到數(shù)據(jù)存儲同時將這幀數(shù)據(jù)讀出并在LCD上進(jìn)行顯示,完成后清除幀標(biāo)志等待下一幀圖像的處理,如此循環(huán)。
圖4 測試畫面
視頻中的運(yùn)動目標(biāo)只有在連續(xù)的變化圖像數(shù)據(jù)中才能體現(xiàn)出來,故運(yùn)動目標(biāo)檢測過程其實(shí)就是在連續(xù)圖像序列中尋找差異,并將其特征提取出來。主要圖像處理:提取視頻圖像轉(zhuǎn)灰度;圖像處理;圖像分割;提取相關(guān)數(shù)據(jù)。
系統(tǒng)利用STM32平臺上實(shí)現(xiàn)了OV7670圖像傳感器采集教室場景圖像并圖像數(shù)據(jù)顯示到TFT LCD上,同時具有抓拍功能。測試過程中,圖像畫面顯示流暢準(zhǔn)確,從圖片中可以清晰地看出抓圖過程中因抖動形成的重影的圖像數(shù)據(jù)但是不影響檢測。LCD畫面如圖6所示。由圖4的圖像數(shù)據(jù),經(jīng)過單片機(jī)對圖像數(shù)據(jù)進(jìn)行分割成(以分割成3X3為例)數(shù)據(jù)從串口發(fā)出至上位機(jī),數(shù)據(jù)如下:0,0,76,9,123,499,0,0,15。其代表:第一行區(qū)域數(shù)據(jù):0,0,76;第二行區(qū)域數(shù)據(jù):9,123,499;第三行區(qū)域數(shù)據(jù):0,0,15。
本文設(shè)計的基于STM32和OV7670的圖像采集與顯示系統(tǒng)能實(shí)時采集并顯示現(xiàn)場圖像,同時實(shí)現(xiàn)教室人員檢測功能。該系統(tǒng)具有低成本、低功耗、小體積等優(yōu)點(diǎn),可方便地應(yīng)用到圖像處理與數(shù)據(jù)融合控制等項(xiàng)目中,同時,本系統(tǒng)在教室特定的場所取得很好的效果,為后續(xù)的圖像處理和識別打下基礎(chǔ)。系統(tǒng)整體不完善的地方還有很多,在今后的研究中,繼續(xù)改進(jìn)圖像算法。