袁小平,鮑 捷,張明濤,鄭向剛
(中國(guó)礦業(yè)大學(xué)信息與電氣工程學(xué)院,江蘇徐州 221008)
近來(lái)年,煤礦事故頻發(fā),國(guó)家越來(lái)越重視煤礦安全并加大了監(jiān)管力度。因此,需要及時(shí)了解煤礦井下的情況,例如工作面、傳送帶、通風(fēng)機(jī)和人員等相關(guān)的信息,只有進(jìn)一步加強(qiáng)井下監(jiān)控,才能保證在對(duì)短的時(shí)間內(nèi)對(duì)煤礦井下突發(fā)的狀況做出相應(yīng)的補(bǔ)救措施,從而減少人員的傷亡和財(cái)產(chǎn)的損失。
本文提出一種基于嵌入式Web服務(wù)器的井下人員視頻監(jiān)控系統(tǒng),相比傳統(tǒng)的視頻監(jiān)控系統(tǒng),本系統(tǒng)具有井下人員跟蹤功能,并且結(jié)構(gòu)簡(jiǎn)單,成本低,易于維護(hù)。系統(tǒng)采用服務(wù)器-瀏覽器模式,使系統(tǒng)的靈活性大大加強(qiáng),只要用戶PC機(jī)上有瀏覽器就能進(jìn)行井下視頻監(jiān)控。
本系統(tǒng)可分為視頻采集、網(wǎng)絡(luò)通信、Web服務(wù)器和客戶端四大部分[1]。
視頻采集部分主要由攝像頭采集數(shù)據(jù),由模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)并進(jìn)行數(shù)據(jù)壓縮。
網(wǎng)絡(luò)通信部分負(fù)責(zé)通過(guò)RTP/RTCP/RTSP協(xié)議將視頻數(shù)據(jù)傳送給客戶端。
Web服務(wù)器部分負(fù)責(zé)與客戶端之間建立連接,接受客戶端的請(qǐng)求并最終將處理的結(jié)果反饋回客戶端。
客戶端部分提供登錄服務(wù)器權(quán)限設(shè)置,以合法的身份驗(yàn)證成功后才能登陸。
系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)總體框架
Video4Linux是Linux專門(mén)針對(duì)視頻設(shè)備提供的應(yīng)用程序接口,是Linux對(duì)視頻設(shè)備的內(nèi)核級(jí)驅(qū)動(dòng)[2]。它為L(zhǎng)inux下的視頻設(shè)備提供API接口,使用分層的方法提供了一套清晰的模型和一致的接口,使得應(yīng)用程序可以使用一系列統(tǒng)一的API函數(shù)操作不同的視頻設(shè)備,為視頻系統(tǒng)的開(kāi)發(fā)和維護(hù)提供方便。Linux中視頻設(shè)備主要依賴Video4Linux的支持,在編譯內(nèi)核時(shí)選擇Multimedia Devices下的 Video4Linux選項(xiàng),就可以進(jìn)行基于 Video4Linux的程序編寫(xiě)。
本文采用ITU-T/ISO公布的H.264視頻壓縮標(biāo)準(zhǔn)。采用H.264視頻編碼標(biāo)準(zhǔn)后,圖像質(zhì)量有很大程度的提高,這主要是H.264采用了Intra幀內(nèi)預(yù)測(cè)編碼技術(shù)。
H.264編碼器采用的依然是變換和預(yù)測(cè)的混合編碼法。輸入的幀或場(chǎng)Fn以宏塊為單位被編碼器處理。首先在當(dāng)前幀圖像中取出帶編碼的宏塊Fn,生成預(yù)測(cè)塊P。其中,幀內(nèi)模式下,P是由μF'n經(jīng)幀間預(yù)測(cè)得到;幀間模式下,P由多個(gè)幀圖像進(jìn)行運(yùn)動(dòng)補(bǔ)償?shù)玫?。殘差塊Dn=Fn-P,Dn經(jīng)過(guò)整數(shù)變換、量化后得到系數(shù)X。再對(duì)X進(jìn)行重排序和熵編碼,就完成一次宏塊的編碼過(guò)程。圖2為H.264編碼器結(jié)構(gòu)。
圖2 H.264編碼器結(jié)構(gòu)
流媒體傳輸協(xié)議[3]主要包括實(shí)時(shí)傳輸協(xié)議(RTP)、實(shí)時(shí)傳輸控制協(xié)議(RTCP)、實(shí)時(shí)流協(xié)議(RTSP)。
RTP是用于Internet上針對(duì)多媒體數(shù)據(jù)流的一種傳輸協(xié)議,可以在一對(duì)一或者一對(duì)多的傳輸情況下工作,目的在于實(shí)現(xiàn)流同步和負(fù)載實(shí)時(shí)性的多媒體數(shù)據(jù)信息。當(dāng)開(kāi)始進(jìn)行會(huì)話時(shí)會(huì)建立兩個(gè)端口分別分配給RTP和RTCP。RTP并不能為順序發(fā)送的數(shù)據(jù)包提供可靠的傳送機(jī)制,也不能提供流量控制和阻塞控制,這些都需要RTCP協(xié)議提供。
RTCP傳輸控制協(xié)議作為RTP協(xié)議的一部分主要用于周期性的傳送RTCP包,以便監(jiān)視RTP傳輸?shù)馁|(zhì)量。在建立會(huì)話期間,RTCP會(huì)在整個(gè)會(huì)話期內(nèi)周期性的發(fā)送控制報(bào)文完成網(wǎng)絡(luò)的監(jiān)聽(tīng)和交換會(huì)話用戶信息等功能。
RTSP[4]是實(shí)時(shí)流協(xié)議,目的是控制多媒體數(shù)據(jù)流傳輸,具有VCR控制的所有功能,能夠遠(yuǎn)程控制網(wǎng)絡(luò)流媒體服務(wù)器。
本文采用的是B/S(瀏覽器/服務(wù)器)架構(gòu),用戶通過(guò)瀏覽器向服務(wù)器發(fā)送請(qǐng)求,Web服務(wù)器響應(yīng)客戶端的請(qǐng)求,建立連接后客戶端可以通過(guò)瀏覽器進(jìn)行實(shí)時(shí)監(jiān)控。
嵌入式Web服務(wù)器是以TCP/IP協(xié)議棧為基礎(chǔ)實(shí)現(xiàn)Web客戶端和服務(wù)器之間的HTTP通信協(xié)議[5]。工作原理如圖3所示。
嵌入式Web服務(wù)器主要完成以下工作:
1)完成初始化工作。包括創(chuàng)建socket套接字,設(shè)置環(huán)境變量,開(kāi)始監(jiān)聽(tīng)并等待客戶端瀏覽器的連接請(qǐng)求。
2)建立連接。當(dāng)Web服務(wù)器接收到來(lái)自客戶端的請(qǐng)求時(shí),會(huì)保存相關(guān)的請(qǐng)求信息。
圖3 Web服務(wù)器工作原理
3)解析請(qǐng)求。在接到客戶端的請(qǐng)求時(shí),Web服務(wù)器會(huì)對(duì)其進(jìn)行解析,比如表單信息、URL目標(biāo)等,并作出相應(yīng)的處理。
4)響應(yīng)請(qǐng)求。對(duì)于不同的請(qǐng)求做出不同的處理。如果請(qǐng)求是靜態(tài)Web,則讀取相應(yīng)文件后返回給Web客戶端;如果是CGI頁(yè)面,則運(yùn)行CGI程序讀取本地?cái)?shù)據(jù),最后返回給Web服務(wù)器。
2.5.1 CamShift算法
CamShift算法是MeanShift算法的擴(kuò)展,是一種基于顏色特征匹配的跟蹤算法。它解決了MeanShift算法由于不能自動(dòng)更新目標(biāo)模型致使核函數(shù)的窗口始終保持不變的問(wèn)題。當(dāng)目標(biāo)大小發(fā)生變化時(shí),尤其是非剛體目標(biāo),會(huì)導(dǎo)致目標(biāo)跟蹤丟失。
CamShift算法由反向投影、MeanShift算法和CamShift算法3部分構(gòu)成[6]。具體實(shí)現(xiàn)過(guò)程如下:
1)初始化窗口的位置和大小。假設(shè)窗口區(qū)域的零階矩為M00,水平方向和垂直方向的一階矩為M10,M01
則質(zhì)心(Xc,Yc)坐標(biāo)為
2)計(jì)算反向投影。由于RGB模型受亮度的影響比較明顯,故把RGB模型轉(zhuǎn)化為HSV模型,并提取其中的Cr,Cb分量。根據(jù)得到的顏色直方圖進(jìn)行色彩概率統(tǒng)計(jì)。其中,P(x,y)代表在概率分布圖像中像素點(diǎn)P(x,y)位置處的顏色概率分布值。
3)更新質(zhì)心位置。通過(guò)MeanShift算法獲得下一時(shí)刻圖像的搜索窗口的位置和大小。其中,窗口的寬度S和長(zhǎng)度L為
通過(guò)以上三步,不斷迭代,直到質(zhì)心的變化小于預(yù)先給定的閾值時(shí),最終完成搜索過(guò)程。
2.5.2 改進(jìn)的CamShift算法
但是當(dāng)目標(biāo)運(yùn)動(dòng)過(guò)快,會(huì)使得上一幀和當(dāng)前幀中心位置相差很大,導(dǎo)致使用上一幀初始化窗口時(shí),增加搜索運(yùn)動(dòng)目標(biāo)的次數(shù),甚至丟失跟蹤目標(biāo)。故通過(guò)Kalman濾波器計(jì)算前幾幀的質(zhì)心位置,預(yù)測(cè)出運(yùn)動(dòng)目標(biāo)當(dāng)前質(zhì)心位置,并作為搜索目標(biāo)的初始位置。這樣不僅可以減少當(dāng)前幀搜索目標(biāo)的次數(shù),而且即使目標(biāo)具有較大速度時(shí),也能準(zhǔn)確進(jìn)行跟蹤。算法如下:
1)對(duì)初始幀圖像i0中的搜索窗位置和大小進(jìn)行初始化,使得窗口的大小稍大于運(yùn)動(dòng)目標(biāo);提取目標(biāo)區(qū)域中目標(biāo)的顏色直方圖,計(jì)算顏色概率分布圖像,并得到目標(biāo)的質(zhì)心坐標(biāo)(xi,yi)。
5)更新模型。獲取下一幀的運(yùn)動(dòng)目標(biāo)圖像,從第2)步重新開(kāi)始,直到整個(gè)跟蹤目標(biāo)過(guò)程結(jié)束。
在系統(tǒng)上電后,客戶端用戶在瀏覽器中輸入相應(yīng)的IP地址,進(jìn)入Web服務(wù)器的權(quán)限驗(yàn)證界面,如圖4所示。輸入驗(yàn)證信息后,即可顯示圖5所示的煤礦井下監(jiān)控畫(huà)面。實(shí)驗(yàn)證明,每幀圖像十幾千字節(jié)左右,壓縮比高;監(jiān)控畫(huà)面清晰流暢,能夠很好地跟蹤井下人員,具有很好的實(shí)時(shí)性。
圖4 用戶登錄界面(截圖)
圖5 視頻監(jiān)控界面(截圖)
本文的嵌入式網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)構(gòu)建了Web視頻服務(wù)器和監(jiān)控前端,實(shí)現(xiàn)了分布式的管理方式并對(duì)井下人員進(jìn)行跟蹤。系統(tǒng)還具有遠(yuǎn)程訪問(wèn)、可擴(kuò)展、靈活性強(qiáng)、成本低以及便于管理等特點(diǎn),非常適合煤礦井下視頻監(jiān)控。但系統(tǒng)還需要在一些方面進(jìn)一步完善,比如圖像質(zhì)量?jī)?yōu)化處理、無(wú)線傳輸、人員定位等,使得系統(tǒng)監(jiān)控效果得到更大的提升。
:
[1]湯文兵.基于流媒體技術(shù)的煤礦視頻監(jiān)控系統(tǒng)的研究[J].工礦自動(dòng)化,2006(6):59-62.
[2]張哲玉.基于ARM-Linux的視頻監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京交通大學(xué),2009.
[3]李世銀,劉富強(qiáng),劉洪彥.流媒體技術(shù)在電視監(jiān)控系統(tǒng)中的應(yīng)用[J].電視技術(shù),2002,26(11):86-88.
[4]RFC2326,Real Time Streaming Protocol(RTSP)[S].1998.
[5]楊琨.基于嵌入式Web技術(shù)的電力線載波通信網(wǎng)絡(luò)遠(yuǎn)程監(jiān)控系統(tǒng)開(kāi)發(fā)研究[D].上海:上海交通大學(xué),2006.
[6]梁娟.基于CamShift和Kalman濾波的自動(dòng)跟蹤算法[J].微型機(jī)與應(yīng)用,2011(30):28-31.