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