楊瑤 劉波 裴娟 陸毅 季美 賀乃寶
摘要:隨著城市化進(jìn)程的發(fā)展,城市人口的不斷增加,對于把控社會治安環(huán)境,智能化的監(jiān)控設(shè)備開發(fā)與應(yīng)用,未來將逐步成為安防管理的有效手段。本文初步探索了一種監(jiān)控圖像跟蹤系統(tǒng),本系統(tǒng)采用ARM-Cortex M4架構(gòu)的高性能處理器,配以數(shù)字化圖像傳感器,運用二自由度云臺,最終在TFT高色彩液晶顯示器上實時動態(tài)顯示和跟蹤監(jiān)控物體。硬件設(shè)計上采用了意法半導(dǎo)體公司的高性能微處理器STM32F407作為處理控制核心,數(shù)字?jǐn)z像頭采用基于Omni Vision圖像傳感的CMOS數(shù)字?jǐn)z像頭OV7670。本系統(tǒng)以STM32微處理器為控制核心,將攝像頭采集的圖像送至LCD顯示,并分析獲取圖像的數(shù)據(jù),計算出目標(biāo)物體的坐標(biāo)和大小,控制云臺轉(zhuǎn)動,使目標(biāo)處于攝像頭視野中央,解決了單片機(jī)在圖像識別上內(nèi)存不足,速度慢的問題,以較低的功耗和成本實現(xiàn)視頻目標(biāo)的跟蹤。
關(guān)鍵詞:ARM;STM32;圖像跟蹤;圖像監(jiān)控;數(shù)字?jǐn)z像頭
中圖分類號:TP277.2 文獻(xiàn)標(biāo)識碼:A 文章編號:2095-7394(2016)02-0049-06
進(jìn)入21世紀(jì),圖像傳感技術(shù)工藝得到了大幅的提升,使得圖像技術(shù)得到了空前的發(fā)展,將高分辨率的圖像傳感技術(shù)融入VLSI技術(shù)后,能夠大幅提升圖像處理的性能,在國民經(jīng)濟(jì)、社會安防和軍事領(lǐng)域等應(yīng)用廣泛。對于連續(xù)不斷的一幀幀圖像的識別和跟蹤,是動態(tài)圖像分析的一大難題。目前國內(nèi)圖像識別、跟蹤系統(tǒng)的硬件平臺常常選用處理性能優(yōu)越的DSP、FPGA等高性能的處理器平臺,有些甚至直接采用PC機(jī)仿真顯示,而實際應(yīng)用中往往采用DSP和FPGA相結(jié)合的方法來實現(xiàn)動態(tài)圖像分析。這些方法運用在監(jiān)控圖像跟蹤系統(tǒng)上,往往投入較大的硬件和開發(fā)成本,且存在開發(fā)周期長,量產(chǎn)應(yīng)用后不便維修和固件升級不易等問題。近兩年來單片機(jī)技術(shù)的飛速崛起,由于其性能越來越強(qiáng),而功耗大幅降低,加之其價格不斷下降,使得單片機(jī)應(yīng)用越來越普遍。本設(shè)計采用32位單片機(jī)為控制處理核心,將單片機(jī)運用到圖像跟蹤系統(tǒng)是一種大膽的創(chuàng)新和嘗試。
1 系統(tǒng)方案設(shè)計
本設(shè)計采用基于Cortex M4架構(gòu)的ARM處理器STM32F407,配合COMS數(shù)字?jǐn)z像頭0v7670,實現(xiàn)實時動態(tài)的圖像采集。對采集的圖像信息由STM32F4單片機(jī)進(jìn)行圖像識別算法處理后鎖定目標(biāo),并實時動態(tài)的送入高色彩的TFT顯示設(shè)備,進(jìn)行監(jiān)控視頻顯示。根據(jù)鎖定的目標(biāo)位置,通過二自由度云臺,轉(zhuǎn)動攝像頭實時跟蹤鎖定的目標(biāo)。系統(tǒng)設(shè)計框架如圖1所示,ARM作為核心處理控制單元,實時采集OV7670攝像頭的數(shù)字圖像信息,算法處理后控制二自由度云臺轉(zhuǎn)動,使得攝像頭跟蹤目標(biāo)物體,該方式是一種實時動態(tài)有效的閉環(huán)控制模型。
2 單元電路分析與設(shè)計
2.1 STM32主控模塊設(shè)計
本設(shè)計采用了基于ARM?;CortexTM-M4為內(nèi)核的STM32F407的高性能微處理器,其采用了90nm的NVM工藝和ART(自適應(yīng)實時存儲器加速器,Adaptive Real-Time Memo~AcceleratorTM)。ART技術(shù)的應(yīng)用,將Cortex-M4的性能發(fā)揮到了極致,通過ART技術(shù)使得指令的等待執(zhí)行時間趨近于零,可謂大大提升了程序執(zhí)行效率。STM32F407的處理能力可以達(dá)到210DMIPS@168MHz,也就是說在168MHz主頻下,可以每秒執(zhí)行2100萬條指令,這種處理能力融入ART技術(shù),大幅提升了STM32F4系列的處理性能,完全可以勝任對實時動態(tài)圖像的分析處理。再者,STM32F4的指令集采用了ARMv7-M體系的32位標(biāo)準(zhǔn)RISC(精簡指令集),具備了較高的代碼執(zhí)行效率,易于IDE的開發(fā)、仿真和調(diào)試。不僅如此,其還具備低成本、低系統(tǒng)功耗、卓越的計算性能和先進(jìn)的中斷響應(yīng)系統(tǒng)等特點,所以綜合考慮,選用了32位ST microcontroller的F4系列中的STM32F407VG作為主控芯片。
基于該款處理芯片,搭建了STM32主控模塊,該模塊包括了STM32F407VG、復(fù)位電路、時鐘電路和JTAG電路組成。設(shè)計了穩(wěn)定的按鍵復(fù)位電路,保障了上電復(fù)位和Reset Input Signal的事件的發(fā)生。時鐘電路采用了精度較高的8M無源晶振電路,內(nèi)部高頻時鐘可以PLL倍頻器獲得。預(yù)留了JTAG接口,方便了在線仿真和Debug調(diào)試。
2.2 圖像傳感模塊設(shè)計
圖像傳感器模塊采用了著名的OV(Omni Vi-sion)公司生產(chǎn)的COMS圖像傳感器OV7670,該傳感器是一顆1/6寸的VGA圖像傳感器,可實現(xiàn)影像處理器和單片式的VGA攝像功能。OV7670具備低工作電壓的電氣特性,結(jié)構(gòu)上體積小適合各種結(jié)構(gòu)件的安裝,單片機(jī)通過SCCB總線,進(jìn)行相應(yīng)的寄存器配置,可實現(xiàn)子采樣、窗口大小調(diào)整、整幀輸出的8位分辨率的影像數(shù)據(jù)包。該圖像傳感器實測最高可輸出30幀,秒的VGA圖像數(shù)據(jù),使用者可以通過改變圖像傳感器內(nèi)部的寄存器值,實現(xiàn)對輸出圖像質(zhì)量、傳輸方式和數(shù)據(jù)格式的控制。對于圖像數(shù)據(jù)的白平衡度、色彩度和伽馬曲線等都可以通過SCCB接口編程控制,OmniVision公司的圖像傳感器具有自己的調(diào)校風(fēng)格,通過對光學(xué)或者電子缺陷等因素的調(diào)校,使得固定圖案噪聲、拖尾和浮散得到有效的控制,提高了圖像采集的質(zhì)量,從而使色彩圖像清晰而又穩(wěn)定。
如圖2所示為OV7670的功能框架圖,主要包括了感光整列(Image Array)、模擬信號處理(Aha-log Processing)、數(shù)字處理器(DsP)、數(shù)字視頻接口(Digital Video Port)、SCCB接口(SCCB Interface)、LED和閃光燈的輸出控制(LED and Strobe FlashControl Output)等模塊組成。由于OV7670的像素采集時鐘具備高速的特點,最高振蕩時鐘可達(dá)24MHz,這么高的數(shù)據(jù)傳輸,若單片機(jī)直接I/O去讀取數(shù)據(jù),十分困難,也非常的占用單片機(jī)的內(nèi)部資源。所以,設(shè)計時并不使用I/O去直接讀取OV7670的圖像數(shù)據(jù),而是通過加入一個FIFO(First Input First Output)的芯片,起到數(shù)據(jù)緩沖的作用,攝像頭高速采集的圖像信息暫存于FIFO芯片中,單片機(jī)可以很方便的讀取圖像數(shù)據(jù)。這樣的緩沖機(jī)制,使得單片機(jī)并不一定要具備高速的I/O口,也不一定要具備高速的CPU運算能力,就可以輕松的抓去圖像信息,進(jìn)一步的提升了采集效率。圖像傳感器模塊原理圖如圖3所示:
從圖3中可以看出,攝像頭模塊自帶了有源晶振,用于產(chǎn)生12M時鐘作為OV7670的XCLK輸入。同時自帶了穩(wěn)壓芯片,用于提供OV7670穩(wěn)定的2.8V工作電壓,并帶有一個FIFO芯片(AIA22B),該FIFO芯片提供384K字節(jié)的FLASH空間,足夠存儲2幀QVGA的圖像數(shù)據(jù)。
2.3 云臺模塊設(shè)計
圖像跟蹤系統(tǒng)的執(zhí)行機(jī)構(gòu),采用了二自由度舵機(jī)云臺,顧名思義,其可在水平和垂直兩個方向上做一定角度的自由運動,采用高性能的線圈驅(qū)動,可獲得較大的轉(zhuǎn)動扭矩。云臺結(jié)構(gòu)上為方便安裝攝像頭等傳感器設(shè)備,在云臺頂層預(yù)留了兩個安裝孔位,安裝完成后能夠?qū)崿F(xiàn)圖像監(jiān)控、圖像識別和跟蹤功能。也可以在云臺上加裝其他的傳感器設(shè)備,如紅外傳感器或者超聲波傳感器,實現(xiàn)一個簡易的一體化探測儀器。加裝紅外傳感器或者超聲波傳感器后能夠感知周圍障礙物,從而為某一功能性提供了探測感知的功能;也可加裝數(shù)字?jǐn)z像頭,實現(xiàn)水平和垂直兩個方向上定位和跟蹤鎖定的目標(biāo)。
(1)舵機(jī)的工作原理
舵機(jī)具備一個控制信號接口,通過該接口獲得單片機(jī)的控制信號,將控制信號送人調(diào)制芯片中,轉(zhuǎn)換成相應(yīng)的直流偏置電壓或偏置電流,而此時舵機(jī)內(nèi)部具備一個基準(zhǔn)信號發(fā)生器,實時產(chǎn)生一個周期為20ms,脈寬為1.5ms的基礎(chǔ)脈沖信號,將此前轉(zhuǎn)換的偏置電壓和該基準(zhǔn)脈沖比較,輸出對應(yīng)的電壓差信號。電壓差信號可驅(qū)動電機(jī)決定了電機(jī)的轉(zhuǎn)動角度,當(dāng)?shù)竭_(dá)轉(zhuǎn)動角度極限時,通過內(nèi)部的減速齒輪可帶動內(nèi)部的電位器滑動,使得電壓差為0,此時電機(jī)停止轉(zhuǎn)動。了解它的具體工作原理后,我們就可以通過單片機(jī)輸出相應(yīng)的脈沖信號進(jìn)行轉(zhuǎn)動角度的控制了。
(2)舵機(jī)的控制
舵機(jī)的控制需要一個20ms的時基脈沖,該信號由內(nèi)部的時基電路產(chǎn)生,該時基脈沖的高電平部分是一個0.5-2.5ms范圍內(nèi)部的脈寬,那可以看出,其對應(yīng)的控制關(guān)系是這樣的:0.5ms對應(yīng)0度、1.0ms對應(yīng)45度、1.5ms對應(yīng)90度、2.0ms對應(yīng)135度和2.5ms對應(yīng)180度,如圖4所示:
MG995舵機(jī)的工作電壓是4.8~6V,本設(shè)計供電電壓為5V,舵機(jī)在空載的時候電流幾乎為0,而在正常負(fù)載的情況下,電流在0.5A左右。設(shè)計中采用兩個MG995舵機(jī),并運用支架和底座等結(jié)構(gòu)件,組裝出了可水平和垂直角度轉(zhuǎn)動的二自由度云臺。設(shè)計中注意到如果電源功率不夠會影響舵機(jī)的性能,最常見的現(xiàn)象是,當(dāng)一個舵機(jī)負(fù)載的時候,其他舵機(jī)會出現(xiàn)混亂,無規(guī)律的亂擺。所以設(shè)計了穩(wěn)定而又高效的電源模塊,充分保障了舵機(jī)云臺運作中的穩(wěn)定性。
2.4 液晶顯示模塊設(shè)計
液晶顯示模塊采用了TFT(Thin Film Transis-tor)液晶顯示器,TFT是薄膜晶體管,即每個液晶的像素點都由采用貼合工藝的薄膜晶體管來驅(qū)動,這種方式可以得到較高的屏幕亮度,并且屏幕的對比度和響應(yīng)速度都很理想,所以該顯示液晶技術(shù)是目前主流LCD技術(shù)之一。相對應(yīng)老式的CRT顯示器,具備了體積小,畫面色彩度高的特點,目前筆記本電腦都采用該顯示屏。由于采用了薄膜晶體管驅(qū)動的特點,所以必須有一定的主控邏輯單元,TFT是一種有源像素點的顯示方式,所以在屏幕的色彩飽和度和響應(yīng)速度上都有了大幅的提高,并且分辨率也可以輕松比肩CRT等顯示器。
本設(shè)計采用了2.4寸320×240分辨率的18色真彩液晶顯示屏TFT-LCD作為顯示模塊,其主控芯片為ILI9341,并且液晶顯示器具備172.8k Byte的自帶顯存,可以完整的保存二幀RGB圖像數(shù)據(jù),顯示的主控芯片預(yù)留了16位的并行接口與單片機(jī)進(jìn)行數(shù)據(jù)傳輸,也可以通過串口方式進(jìn)行數(shù)據(jù)通信。微處理器STM32將采集處理后的圖像信息,實時的送入該TFT液晶顯示模塊,實時動態(tài)的顯示攝像頭捕捉的畫面。
3 軟件設(shè)計及算法實現(xiàn)
3.1 圖像采集與顯示程序
由于采用了FIFO技術(shù)方式,所以O(shè)V7670采集的圖像數(shù)據(jù)會被暫時存放在FIFO芯片中,這樣做的好處是可以幫助STM32處理器省出更多的內(nèi)存空間和時間去處理其他算法任務(wù)。單片機(jī)通過連續(xù)不斷的讀取FIFO中的一幀幀的圖像數(shù)據(jù)后,送入LCD的顯示內(nèi)存中,圖像就會顯示在TFF屏幕上了。其流程圖如圖5所示:
3.2 圖像識別算法處理程序
圖像識別算法的程序流程圖如圖6所示,對于數(shù)字?jǐn)z像頭采集的RGB格式的圖像信息,進(jìn)行HSL處理,即得出圖像的H(色調(diào))、S(飽和度)、L(亮度)數(shù)據(jù),通過與設(shè)定的HSL閾值做比較,若實際的像素塊的HSL值介于某設(shè)定的物體基準(zhǔn)值的范圍內(nèi),即可已鎖定目標(biāo),實現(xiàn)圖像的識別功能,如果想跟蹤識別其他物體,只需要改變設(shè)定的HSL的范圍值。
對于圖像識別的算法流程,首先開始搜素識別像素塊的中心點,即按照預(yù)先設(shè)定的識別規(guī)則尋找攝像頭采集圖像的各個區(qū)域,找都一個滿足識別規(guī)則的區(qū)域,以該區(qū)域的幾何中心點為目標(biāo)圖像的中心,然后以此基點向周圍尋找滿足要求的像素點,在某一方向上搜素的像素點的不匹配率超過容錯率,即可認(rèn)為此時為物體的邊緣。同理可得,目標(biāo)物理的其他邊緣,最終得到目標(biāo)物體的大小和中心坐標(biāo)。
3.3 云臺跟蹤程序
云臺跟蹤的實現(xiàn),通過單片機(jī)產(chǎn)生兩個毫秒級的PWM波,進(jìn)行二自由度方向的舵機(jī)轉(zhuǎn)動,其轉(zhuǎn)動角度可以PWM的脈沖寬度控制,其PWM的脈沖周期為20ms,占空比的范圍為2.5%~12.5%,不同的占空比對應(yīng)的轉(zhuǎn)動角度為0~180度。單片機(jī)通過定時器產(chǎn)生PWM,改變定時器的初值,即可改變輸出PWM波的占空比值,實現(xiàn)舵機(jī)目標(biāo)角度的轉(zhuǎn)動。
對于320×240的屏幕而言,其中心顯示位置坐標(biāo)為(120,160),根據(jù)上述的圖像識別程序得到的目標(biāo)物體的中心坐標(biāo)值,分析其和屏幕中心位置坐標(biāo)的差值,驅(qū)動舵機(jī)進(jìn)行相應(yīng)的角度轉(zhuǎn)動。為了得到穩(wěn)定的轉(zhuǎn)動控制,避免不必要的小范圍顫抖式的轉(zhuǎn)動,故設(shè)定了死區(qū)閾值,即目標(biāo)物體的中心坐標(biāo)值與屏幕中心坐標(biāo)值差值不大時,舵機(jī)不動作。
云臺跟蹤程序流程圖如圖7所示:
4 實驗結(jié)果和分析
系統(tǒng)設(shè)計完善后,通過Debug程序后,優(yōu)化后的圖像識別算法,能夠高效率的完成圖像識別操作,經(jīng)過圖像識別算法得出目標(biāo)物體的中心點和區(qū)域,通過對比顯示屏幕的中心值,輸出一定比例的控制信號,轉(zhuǎn)動舵機(jī)使得跟蹤的目標(biāo)時鐘顯示在監(jiān)控屏幕的中心位置。實驗表明運用STM32F407,并結(jié)合FIFO技術(shù)的VO7670圖像傳感器技術(shù),能夠有效的跟蹤動態(tài)物體,達(dá)到了每秒15到20幀的圖像顯示。實驗中,采用紅色小球以1cm/s的速度運動,攝像頭能在二自由度云臺的轉(zhuǎn)動下,實現(xiàn)對紅色小球的跟蹤,使其顯示在屏幕的中心位置。
5 結(jié)語
采用STM 32單片機(jī)實現(xiàn)的圖像跟蹤系統(tǒng),以較高的性價比實現(xiàn)監(jiān)控物體的簡單跟蹤,本系統(tǒng)設(shè)計具備成本低廉、擴(kuò)展性好的特點,非常適合監(jiān)控跟蹤速度不高和監(jiān)控環(huán)境良好的應(yīng)用場合。采用FIFO技術(shù)圖像跟蹤系統(tǒng),依托STM32的ARM處理性能能夠?qū)Φ退偾倚螤钸吔缜逦奈矬w進(jìn)行跟蹤,整個系統(tǒng)硬件設(shè)計明朗簡潔,軟件算法框架邏輯性強(qiáng),效率高。不過由于單片機(jī)的處理速度,使得整機(jī)運行中出現(xiàn)偶爾跟丟的問題,特別是惡劣環(huán)境下,識別跟蹤的錯誤率變大,這些問題將進(jìn)一步的通過優(yōu)化軟件算法和結(jié)構(gòu)來解決。
責(zé)任編輯 祁秀春