桂林電子科技大學(xué)信息科技學(xué)院 朱達(dá)群 馬林博 劉欣然
在這個(gè)安全變得日益重要的社會(huì),公共場(chǎng)合安全更顯的尤為關(guān)鍵,現(xiàn)在市場(chǎng)上保障公共安全的攝像頭存在一定的缺陷。首先在人流較少甚至無(wú)人的環(huán)境下攝像頭依然在把捕捉的畫面反饋給系統(tǒng),這樣就造成了資源的嚴(yán)重消耗;其次傳統(tǒng)監(jiān)控的拍攝角度大多都是固定的,畫面范圍相當(dāng)有限,并且是人工提前設(shè)定好的,不能根據(jù)畫面中活動(dòng)的物體運(yùn)動(dòng)軌跡進(jìn)行跟蹤拍攝,無(wú)法獲取高價(jià)值信息,需要多個(gè)攝像頭進(jìn)行監(jiān)控。
鑒于上述問(wèn)題,我么團(tuán)隊(duì)決定研發(fā)一個(gè)在特定場(chǎng)景能夠自動(dòng)尋找目標(biāo)并自動(dòng)跟蹤錄制的監(jiān)控系統(tǒng),不但可以節(jié)省硬盤的存儲(chǔ)空間,延長(zhǎng)錄制時(shí)間,還可以節(jié)省后期查看錄像資料的人力成本,為人們獲取有價(jià)值信息提供便利。
2001年美國(guó)“9·11”事件,以及后來(lái)馬德里列車連環(huán)爆炸和倫敦地鐵大爆炸等恐怖襲擊后,使全世界范圍內(nèi)對(duì)視頻監(jiān)控系統(tǒng)的需求空前高漲,各國(guó)部署的攝像頭越來(lái)越密集,系統(tǒng)也日益龐大。
由此可見自動(dòng)跟蹤這種智能監(jiān)控在未來(lái)的重要性與前景,目前國(guó)內(nèi)外已經(jīng)有不少自動(dòng)跟蹤攝像機(jī),主要是一些傳統(tǒng)的監(jiān)控廠商在傳統(tǒng)攝像頭上增加智能監(jiān)控功能,并沒(méi)有特定品牌專門做目標(biāo)跟蹤。
通過(guò)查詢資料,大多數(shù)都是針對(duì)特定場(chǎng)景下的跟蹤方案,并沒(méi)有一款產(chǎn)品能夠適用于任意場(chǎng)景。本項(xiàng)目組研發(fā)運(yùn)動(dòng)物體跟蹤雖然不能沖擊市場(chǎng),但是可以作為一種對(duì)現(xiàn)有方案的補(bǔ)充,針對(duì)某一場(chǎng)景提供廉價(jià)可靠的監(jiān)控服務(wù)。運(yùn)動(dòng)物體跟蹤平臺(tái)不需要復(fù)雜的硬件和算法,簡(jiǎn)單的運(yùn)動(dòng)物體跟蹤錄制功能足以滿足一般要求,這樣可以大量減少成本,提高市場(chǎng)競(jìng)爭(zhēng)力。
S3C6410:S3C6410 是一個(gè)16/32 位RISC 微處理器,目的是提供一個(gè)具有成本效益、功耗低,可以提供優(yōu)化的H /W 性能。3C6410 采用了64/32 位內(nèi)部總線架構(gòu)。借助S3C6410其強(qiáng)大的處理能力,運(yùn)行嵌入式Linux系統(tǒng),調(diào)度整個(gè)控制系統(tǒng)的運(yùn)行,適合作為我們項(xiàng)目的圖像識(shí)別跟蹤主控芯片。
STM32F407ZGT6:帶有FPU的ARM 32位Cortex?-M4 CPU,具有DSP 指令集。其具備低功耗特性,有睡眠、停機(jī)和待機(jī)三種模式。2 個(gè)CAN(2.0B主動(dòng))以及 SDIO 接口。豐富的定時(shí)器資源和通信接口,很適合作為云臺(tái)控制芯片,也很方便進(jìn)行后期的功能升級(jí)和改進(jìn)。
項(xiàng)目組的運(yùn)動(dòng)物體跟蹤平臺(tái)由于需要對(duì)目標(biāo)進(jìn)行跟蹤,所以控制攝像頭運(yùn)動(dòng)的云臺(tái)設(shè)計(jì)成了兩自由度,可以控制攝像頭的橫向轉(zhuǎn)動(dòng)和縱向轉(zhuǎn)動(dòng)??紤]到攝像頭的體積和重量較大,云臺(tái)的轉(zhuǎn)動(dòng)所需要的扭矩較大,所以采用帶減速箱的步進(jìn)電機(jī)作為驅(qū)動(dòng)力,經(jīng)過(guò)理論計(jì)算和實(shí)際測(cè)試,將步進(jìn)電機(jī)減速箱的減速比定為1:100。云臺(tái)設(shè)計(jì)圖如圖2-2、圖2-3所示。
圖2 -2 云臺(tái)部分設(shè)計(jì)圖1
圖 2-3 云臺(tái)部分設(shè)計(jì)圖2
步進(jìn)電動(dòng)機(jī)是一種將電脈沖信號(hào)轉(zhuǎn)換成角位移或線位移的機(jī)電元件。它每轉(zhuǎn)一周具有固定的步數(shù);做連續(xù)步進(jìn)運(yùn)動(dòng)時(shí),其旋轉(zhuǎn)轉(zhuǎn)速與輸入脈沖的頻率保持嚴(yán)格的對(duì)應(yīng)關(guān)系,不受電壓波動(dòng)和負(fù)載變化的影響。云臺(tái)由STM32產(chǎn)生脈沖控制步進(jìn)電機(jī)驅(qū)動(dòng)板進(jìn)而控制步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)。
我們采用AutoCAD設(shè)計(jì)云臺(tái)外殼的圖紙并用激光切割亞克力板拼裝整個(gè)外殼。如圖2-4、圖2-5所示。
圖2 -4 云臺(tái)外殼整體外觀設(shè)計(jì)
圖2 -5 云臺(tái)電機(jī)支架設(shè)計(jì)圖
OpenCV于1999年由Intel建立,是一個(gè)基于BSD許可(開源)發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺庫(kù),可以運(yùn)行在Linux、Windows和Mac OS操作系統(tǒng)上。OpenCV 擁有包括 500 多個(gè)C函數(shù)的跨平臺(tái)的中、高層 API。雖然還有一些其他的視覺庫(kù),但是基于開發(fā)移植難度、成本、通用性、處理速度、學(xué)習(xí)資料豐富度等方面考慮,我們決定采用OpenCV庫(kù)作為本組項(xiàng)目的開發(fā)基礎(chǔ)。
由于系統(tǒng)中使用了較多的模塊,所以一個(gè)穩(wěn)定可靠的電源是保證整個(gè)系統(tǒng)穩(wěn)定運(yùn)行的前提,我們選擇進(jìn)行集中供電,
項(xiàng)目組決定采用12V/60W規(guī)格的開關(guān)電源將220V交流電壓轉(zhuǎn)為12V直流電壓,再使用DC-DC降壓模塊將12V轉(zhuǎn)為5V 。
1)使用S3C6410處理器運(yùn)行Linux操作系統(tǒng);
2)使用網(wǎng)絡(luò)攝像頭通過(guò)RTSP協(xié)議傳輸圖像;
3)通過(guò)PC客戶端查看實(shí)時(shí)畫面;
4)PC客戶端支持手動(dòng)控制云臺(tái),支持手動(dòng)錄像。
1)跟蹤距離:大于5米;
2)跟蹤范圍:180°。
4.1.1 圖像傳輸部分
嵌入式Linux系統(tǒng)和網(wǎng)和網(wǎng)絡(luò)攝像頭同時(shí)接入同一熱點(diǎn),網(wǎng)絡(luò)攝像頭開啟RTSP協(xié)議,Linux系統(tǒng)通過(guò)RTSP協(xié)議訪問(wèn)攝像頭數(shù)據(jù),并對(duì)圖像數(shù)據(jù)進(jìn)行處理。
4.1.2 云臺(tái)控制部分
云臺(tái)由兩個(gè)步進(jìn)電機(jī)分別實(shí)現(xiàn)垂直轉(zhuǎn)動(dòng)和水平轉(zhuǎn)動(dòng)。步進(jìn)電動(dòng)機(jī)的輸入量是脈沖序列,輸出量則為相應(yīng)的增量位移或步進(jìn)運(yùn)動(dòng)。脈沖序列由STM32F407ZGT6芯片的定時(shí)器輸出,頻率1000Hz,在步進(jìn)電機(jī)驅(qū)動(dòng)器部分再次對(duì)頻率進(jìn)行分頻。STM32嵌入式主控板通過(guò)串口相連,Linux系統(tǒng)處理圖像后向STM32控制板發(fā)出控制指令來(lái)控制云臺(tái)運(yùn)動(dòng)。
PC客戶端的界面由MFC創(chuàng)建,編程環(huán)境是Visual Studio 2015。PC客戶端具有查看攝像頭畫面、錄像、控制云臺(tái)、模式選擇功能。
4.2.1 錄像
錄像的前提是獲取到圖像,獲取圖像與查看攝像頭畫面方法一致,只是通過(guò)按鈕菜單控制是否錄像。
4.2.2 手動(dòng)控制云臺(tái)
PC機(jī)通過(guò)藍(lán)牙與STM32控制板建立連接,不通過(guò)嵌入式Linux系統(tǒng),而是直接發(fā)送指令給STM32控制板控制云臺(tái)的。
本項(xiàng)目組采用OpenCV作為編程基礎(chǔ),從獲取圖像到圖像分析,再到運(yùn)動(dòng)跟蹤,都是使用OpenCV實(shí)現(xiàn)的。本項(xiàng)目組采用的方案為:先對(duì)隔幀圖像進(jìn)行特征點(diǎn)匹配,然后做運(yùn)動(dòng)量估計(jì),經(jīng)過(guò)配準(zhǔn)之后再進(jìn)行幀差運(yùn)算,最后得出運(yùn)動(dòng)目標(biāo)。
圖4 -3 運(yùn)動(dòng)跟蹤處理流程圖
獲取映射矩陣是整個(gè)方案中比較關(guān)鍵的一步,我們使用了OpenCV提供的仿射變換相關(guān)算法。仿射變換代表的是兩幅圖之間的一種映射關(guān)系。
考慮到我們要使用矩陣 A 和 B 對(duì)二維向量做變換, 所以也能表示為下列形式:
LM2596開關(guān)電壓調(diào)節(jié)器是降壓型電源管理單片集成電路,能夠輸出3A的驅(qū)動(dòng)電流。
1)獨(dú)立自主設(shè)計(jì)的兩自由度云臺(tái);
2)大扭矩步進(jìn)電機(jī),滿足體積較大的攝像機(jī)安裝;
3)獨(dú)立電源,穩(wěn)定性高;
4)結(jié)構(gòu)簡(jiǎn)單,維護(hù)簡(jiǎn)單,節(jié)省費(fèi)用。
圖5 -1 主控硬件框圖
圖5 -2 云臺(tái)控制板硬件框圖
1)算法針對(duì)性強(qiáng),滿足特定場(chǎng)景的需求;
2)結(jié)合PC控制,方便實(shí)時(shí)監(jiān)控運(yùn)行狀態(tài);
3)基于最新的計(jì)算機(jī)視覺庫(kù)版本,算法魯棒性較高;
4)多模式控制,滿足不同操作需求。
項(xiàng)目組研發(fā)的運(yùn)動(dòng)物體跟蹤平臺(tái)在項(xiàng)目組成員的不懈努力和指導(dǎo)老師的監(jiān)督下完成了項(xiàng)目初期設(shè)想的所有功能。項(xiàng)目組選擇的研發(fā)方向雖然在市場(chǎng)上已經(jīng)有產(chǎn)品,但是我們根據(jù)市場(chǎng)產(chǎn)品所針對(duì)的場(chǎng)景進(jìn)行分類總結(jié),發(fā)現(xiàn)我們可以針對(duì)廠商遺漏的場(chǎng)景進(jìn)行針對(duì)性開發(fā),而不是做一個(gè)全功能、全場(chǎng)景的方案,我們只做一個(gè)特定方案。由于項(xiàng)目組的水平有限,在研發(fā)前期遇到了很多的問(wèn)題,我們查閱了大量的資料,做過(guò)許多方案測(cè)試,經(jīng)過(guò)多次方案改進(jìn),最終形成了目前使用的方案。相信在未來(lái)圖像處理技術(shù)會(huì)出現(xiàn)巨大的飛躍,在動(dòng)態(tài)背景下的運(yùn)動(dòng)目標(biāo)跟蹤方面,也會(huì)有新的更加優(yōu)秀和智能的算法。最后,感謝本次大賽組委會(huì)提供一個(gè)優(yōu)秀的比賽平臺(tái),本項(xiàng)目組得以在此平臺(tái)上發(fā)揮我們的創(chuàng)意,展示我們的作品。
附錄:
附圖2 運(yùn)動(dòng)物體跟蹤平臺(tái)運(yùn)行畫面
附圖1 運(yùn)動(dòng)物體跟蹤平臺(tái)實(shí)物圖
[1]Adrian Kaehler & Gary Bradski.Learning OpenCV 3[M].O’Reilly Media,Inc., 2016,12.
[2](美)布拉德斯基.學(xué)習(xí)OpenCV(中文版)[M].清華大學(xué)出版社,2009,10.
[3]劉火良,楊森.STM32庫(kù)開發(fā)實(shí)戰(zhàn)指南[M].機(jī)械工業(yè)出版社,2013,07.
[4][美]Stephen Prata.C++ Primer Plus(第6版中文版)[M].人民郵電出版社,2012,06.
[5]李長(zhǎng)俊.模擬電子技術(shù)[M].科學(xué)出版社,2011,7.
[6]弓雷.ARM嵌入式Linux系統(tǒng)開發(fā)詳解(第2版)[M].清華大學(xué)出版社,2014,02.