桂林電子科技大學信息科技學院 朱達群 馬林博 劉欣然
在這個安全變得日益重要的社會,公共場合安全更顯的尤為關鍵,現在市場上保障公共安全的攝像頭存在一定的缺陷。首先在人流較少甚至無人的環境下攝像頭依然在把捕捉的畫面反饋給系統,這樣就造成了資源的嚴重消耗;其次傳統監控的拍攝角度大多都是固定的,畫面范圍相當有限,并且是人工提前設定好的,不能根據畫面中活動的物體運動軌跡進行跟蹤拍攝,無法獲取高價值信息,需要多個攝像頭進行監控。
鑒于上述問題,我么團隊決定研發一個在特定場景能夠自動尋找目標并自動跟蹤錄制的監控系統,不但可以節省硬盤的存儲空間,延長錄制時間,還可以節省后期查看錄像資料的人力成本,為人們獲取有價值信息提供便利。
2001年美國“9·11”事件,以及后來馬德里列車連環爆炸和倫敦地鐵大爆炸等恐怖襲擊后,使全世界范圍內對視頻監控系統的需求空前高漲,各國部署的攝像頭越來越密集,系統也日益龐大。
由此可見自動跟蹤這種智能監控在未來的重要性與前景,目前國內外已經有不少自動跟蹤攝像機,主要是一些傳統的監控廠商在傳統攝像頭上增加智能監控功能,并沒有特定品牌專門做目標跟蹤。
通過查詢資料,大多數都是針對特定場景下的跟蹤方案,并沒有一款產品能夠適用于任意場景。本項目組研發運動物體跟蹤雖然不能沖擊市場,但是可以作為一種對現有方案的補充,針對某一場景提供廉價可靠的監控服務。運動物體跟蹤平臺不需要復雜的硬件和算法,簡單的運動物體跟蹤錄制功能足以滿足一般要求,這樣可以大量減少成本,提高市場競爭力。
S3C6410:S3C6410 是一個16/32 位RISC 微處理器,目的是提供一個具有成本效益、功耗低,可以提供優化的H /W 性能。3C6410 采用了64/32 位內部總線架構。借助S3C6410其強大的處理能力,運行嵌入式Linux系統,調度整個控制系統的運行,適合作為我們項目的圖像識別跟蹤主控芯片。
STM32F407ZGT6:帶有FPU的ARM 32位Cortex?-M4 CPU,具有DSP 指令集。其具備低功耗特性,有睡眠、停機和待機三種模式。2 個CAN(2.0B主動)以及 SDIO 接口。豐富的定時器資源和通信接口,很適合作為云臺控制芯片,也很方便進行后期的功能升級和改進。
項目組的運動物體跟蹤平臺由于需要對目標進行跟蹤,所以控制攝像頭運動的云臺設計成了兩自由度,可以控制攝像頭的橫向轉動和縱向轉動。考慮到攝像頭的體積和重量較大,云臺的轉動所需要的扭矩較大,所以采用帶減速箱的步進電機作為驅動力,經過理論計算和實際測試,將步進電機減速箱的減速比定為1:100。云臺設計圖如圖2-2、圖2-3所示。

圖2 -2 云臺部分設計圖1

圖 2-3 云臺部分設計圖2
步進電動機是一種將電脈沖信號轉換成角位移或線位移的機電元件。它每轉一周具有固定的步數;做連續步進運動時,其旋轉轉速與輸入脈沖的頻率保持嚴格的對應關系,不受電壓波動和負載變化的影響。云臺由STM32產生脈沖控制步進電機驅動板進而控制步進電機的轉動。
我們采用AutoCAD設計云臺外殼的圖紙并用激光切割亞克力板拼裝整個外殼。如圖2-4、圖2-5所示。

圖2 -4 云臺外殼整體外觀設計

圖2 -5 云臺電機支架設計圖
OpenCV于1999年由Intel建立,是一個基于BSD許可(開源)發行的跨平臺計算機視覺庫,可以運行在Linux、Windows和Mac OS操作系統上。OpenCV 擁有包括 500 多個C函數的跨平臺的中、高層 API。雖然還有一些其他的視覺庫,但是基于開發移植難度、成本、通用性、處理速度、學習資料豐富度等方面考慮,我們決定采用OpenCV庫作為本組項目的開發基礎。
由于系統中使用了較多的模塊,所以一個穩定可靠的電源是保證整個系統穩定運行的前提,我們選擇進行集中供電,
項目組決定采用12V/60W規格的開關電源將220V交流電壓轉為12V直流電壓,再使用DC-DC降壓模塊將12V轉為5V 。
1)使用S3C6410處理器運行Linux操作系統;
2)使用網絡攝像頭通過RTSP協議傳輸圖像;
3)通過PC客戶端查看實時畫面;
4)PC客戶端支持手動控制云臺,支持手動錄像。
1)跟蹤距離:大于5米;
2)跟蹤范圍:180°。
4.1.1 圖像傳輸部分
嵌入式Linux系統和網和網絡攝像頭同時接入同一熱點,網絡攝像頭開啟RTSP協議,Linux系統通過RTSP協議訪問攝像頭數據,并對圖像數據進行處理。
4.1.2 云臺控制部分
云臺由兩個步進電機分別實現垂直轉動和水平轉動。步進電動機的輸入量是脈沖序列,輸出量則為相應的增量位移或步進運動。脈沖序列由STM32F407ZGT6芯片的定時器輸出,頻率1000Hz,在步進電機驅動器部分再次對頻率進行分頻。STM32嵌入式主控板通過串口相連,Linux系統處理圖像后向STM32控制板發出控制指令來控制云臺運動。
PC客戶端的界面由MFC創建,編程環境是Visual Studio 2015。PC客戶端具有查看攝像頭畫面、錄像、控制云臺、模式選擇功能。
4.2.1 錄像
錄像的前提是獲取到圖像,獲取圖像與查看攝像頭畫面方法一致,只是通過按鈕菜單控制是否錄像。
4.2.2 手動控制云臺
PC機通過藍牙與STM32控制板建立連接,不通過嵌入式Linux系統,而是直接發送指令給STM32控制板控制云臺的。
本項目組采用OpenCV作為編程基礎,從獲取圖像到圖像分析,再到運動跟蹤,都是使用OpenCV實現的。本項目組采用的方案為:先對隔幀圖像進行特征點匹配,然后做運動量估計,經過配準之后再進行幀差運算,最后得出運動目標。

圖4 -3 運動跟蹤處理流程圖
獲取映射矩陣是整個方案中比較關鍵的一步,我們使用了OpenCV提供的仿射變換相關算法。仿射變換代表的是兩幅圖之間的一種映射關系。

考慮到我們要使用矩陣 A 和 B 對二維向量做變換, 所以也能表示為下列形式:

LM2596開關電壓調節器是降壓型電源管理單片集成電路,能夠輸出3A的驅動電流。
1)獨立自主設計的兩自由度云臺;
2)大扭矩步進電機,滿足體積較大的攝像機安裝;
3)獨立電源,穩定性高;
4)結構簡單,維護簡單,節省費用。

圖5 -1 主控硬件框圖

圖5 -2 云臺控制板硬件框圖
1)算法針對性強,滿足特定場景的需求;
2)結合PC控制,方便實時監控運行狀態;
3)基于最新的計算機視覺庫版本,算法魯棒性較高;
4)多模式控制,滿足不同操作需求。
項目組研發的運動物體跟蹤平臺在項目組成員的不懈努力和指導老師的監督下完成了項目初期設想的所有功能。項目組選擇的研發方向雖然在市場上已經有產品,但是我們根據市場產品所針對的場景進行分類總結,發現我們可以針對廠商遺漏的場景進行針對性開發,而不是做一個全功能、全場景的方案,我們只做一個特定方案。由于項目組的水平有限,在研發前期遇到了很多的問題,我們查閱了大量的資料,做過許多方案測試,經過多次方案改進,最終形成了目前使用的方案。相信在未來圖像處理技術會出現巨大的飛躍,在動態背景下的運動目標跟蹤方面,也會有新的更加優秀和智能的算法。最后,感謝本次大賽組委會提供一個優秀的比賽平臺,本項目組得以在此平臺上發揮我們的創意,展示我們的作品。
附錄:

附圖2 運動物體跟蹤平臺運行畫面

附圖1 運動物體跟蹤平臺實物圖
[1]Adrian Kaehler & Gary Bradski.Learning OpenCV 3[M].O’Reilly Media,Inc., 2016,12.
[2](美)布拉德斯基.學習OpenCV(中文版)[M].清華大學出版社,2009,10.
[3]劉火良,楊森.STM32庫開發實戰指南[M].機械工業出版社,2013,07.
[4][美]Stephen Prata.C++ Primer Plus(第6版中文版)[M].人民郵電出版社,2012,06.
[5]李長俊.模擬電子技術[M].科學出版社,2011,7.
[6]弓雷.ARM嵌入式Linux系統開發詳解(第2版)[M].清華大學出版社,2014,02.