胡嘉航
摘要:災(zāi)區(qū)現(xiàn)場環(huán)境復(fù)雜,救援工作具有極大難度,特別在火場、震區(qū)等情況下,人工搜尋極其不便。設(shè)計了一種基于ARM的嵌入式救援搜尋系統(tǒng),搭配小型飛行器等救援機(jī)器人,利用COFDM調(diào)制技術(shù),實現(xiàn)系統(tǒng)與上位機(jī)的通信,實時傳輸視頻圖像數(shù)據(jù),并采用紅外感應(yīng)及人臉識別等功能,協(xié)助進(jìn)行搜尋工作。實際測試結(jié)果表明,救援搜尋系統(tǒng)具有一定實用價值,在復(fù)雜環(huán)境中能夠有效地進(jìn)行搜救工作。
關(guān)鍵詞:救援搜尋;嵌入式;COFDM;紅外感應(yīng);圖像識別
DOIDOI:10.11907/rjdk.171612
中圖分類號:TP319文獻(xiàn)標(biāo)識碼:A文章編號:16727800(2017)010012303
0引言
在火場、震區(qū)等災(zāi)區(qū)中,救援搜尋工作具有較大難度,如何在保證救援人員安全的情況下進(jìn)行快速的救援搜尋成為一個亟需解決的問題。在這種情況下,使用救援機(jī)器人協(xié)助進(jìn)行搜救已經(jīng)成為一個趨勢,它能夠進(jìn)入人體無法穿越的狹小區(qū)域進(jìn)行快速搜尋,并借助搭載的攝像頭實時傳輸視頻圖像。本文提出了一種基于ARM高級精簡指令集計算機(jī)的救援搜尋系統(tǒng),同時配備紅外感應(yīng)和人臉識別功能,以便于在黑暗中采集視頻圖像協(xié)助進(jìn)行搜救工作,搭載的無線傳輸模塊能夠在較復(fù)雜的環(huán)境中順利進(jìn)行數(shù)據(jù)傳輸。
1系統(tǒng)整體框架
救援搜尋系統(tǒng)主要完成在目標(biāo)環(huán)境中現(xiàn)場視頻圖像的傳輸、存儲及識別,由無線傳輸模塊、視頻圖像采集模塊、64位四核ARM處理器Cortex-A53以及上位機(jī)軟件組成,系統(tǒng)框架如圖1所示。圖像采集模塊采集現(xiàn)場視頻圖像數(shù)據(jù),傳輸給Cortex-A53處理器進(jìn)行編碼處理,處理器通過無線傳輸模塊實時傳輸視頻流數(shù)據(jù)給救援人員所持的上位機(jī)軟件。在上位機(jī)軟件中,設(shè)置有輔助搜救的人臉識別功能,以協(xié)助救援人員進(jìn)行搜救工作。
圖1救援搜尋系統(tǒng)框架
1.1圖像采集模塊
圖像采集模塊由兩部分組成,分別是用于采集接收視頻圖像的攝像頭模塊和用于適應(yīng)救援環(huán)境的紅外感應(yīng)電路模塊。攝像頭模塊可以單獨工作,在紅外感應(yīng)電路模塊中,設(shè)置的可調(diào)節(jié)電阻用于配合光敏電阻設(shè)置該模塊開啟的光照強(qiáng)度閾值,以適應(yīng)實際救援環(huán)境。同時,設(shè)置3W大功率感光紅外燈用于黑暗環(huán)境中的圖像視頻采集工作。
在圖像視頻采集結(jié)束后,需要在主控芯片Cortex-A53中對其進(jìn)行編碼操作,由于H.264編碼標(biāo)準(zhǔn)為現(xiàn)今主流的視頻編解碼標(biāo)準(zhǔn)[1],因此本文選定的圖像編碼方式以H.264為基礎(chǔ)。段書強(qiáng)[2]認(rèn)為,在救援工作中,對單畫面的清晰度要求相對較高,并且MPEG-4能夠在提供較高壓縮比的同時,實現(xiàn)較小的數(shù)據(jù)損失,其采用幀間壓縮,僅存儲連續(xù)幀之間有差別的地方,而H.264的性能通過增加其算法的復(fù)雜度得到提升;陳曦[3]、孫金慶[1]認(rèn)為,在復(fù)雜環(huán)境中,首先需要保證的是數(shù)據(jù)傳輸通暢,而H.264具有較強(qiáng)的網(wǎng)絡(luò)適應(yīng)性,能夠通過增加不同的NAL頭片適應(yīng)網(wǎng)絡(luò)需求,減少碼流傳輸誤差,在網(wǎng)絡(luò)狀況較差的情況下,較其它編碼方式具有極大優(yōu)勢,可保障動作的連貫性與清晰度。通過對比編碼特點,本文采用H.264作為救援搜尋系統(tǒng)的編碼標(biāo)準(zhǔn)。
由于救援環(huán)境較為復(fù)雜,無線傳輸環(huán)境較差,可能導(dǎo)致視頻圖像在傳輸過程中出現(xiàn)傳輸距離受阻以及數(shù)據(jù)丟包現(xiàn)象。為解決該問題,可在對圖像進(jìn)行編碼的同時,進(jìn)行圖像的連續(xù)行檢測。由于拍攝的圖像之間必然存在相同畫面,則可以在上一幀圖像的基礎(chǔ)上對下一幀圖像進(jìn)行編碼處理,識別出靜態(tài)圖像及動態(tài)圖像,分別進(jìn)行編碼傳輸,以減少數(shù)據(jù)丟包帶來的影響。
此處使用0V5647感光芯片,500萬像素的高清攝像頭,具有調(diào)焦功能,傳感器支持的最佳像素為1 080p。
1.2Cortex-A53處理器
Cortex-A53處理器為64位4核處理器,具有較好的性能,其工作頻率為1.2GHZ,能夠輕松運(yùn)行Linux系統(tǒng),可用于各類小型嵌入式功能的開發(fā)與應(yīng)用。
1.3無線傳輸模塊
如今,無線圖像傳輸方式主要有模擬傳輸、數(shù)字電臺傳輸、GPRS/CDMA傳輸、無線局域網(wǎng)傳輸以及多載波COFDM調(diào)制技術(shù)[4]。其中,模擬傳輸技術(shù)無法在阻擋環(huán)境中和移動中使用;數(shù)字電臺、GPRS/CDMA技術(shù)有效傳輸速率較低,一般在100Kbps以下,無法傳輸高質(zhì)量的連續(xù)圖像,并且需要覆蓋式的專用網(wǎng)絡(luò),無法在震區(qū)使用;無線局域網(wǎng)技術(shù)為單載波調(diào)制體制,繞射能力較差;多載波COFDM調(diào)制技術(shù)傳輸速率較高,具有較好的繞射及穿透能力。
綜上所述,在復(fù)雜環(huán)境中,由于無線信號傳輸受到嚴(yán)重干擾,無線傳輸模塊采用COFDM多載波調(diào)制技術(shù)。其中,COFDM需要使用信道編碼和OFDM調(diào)制技術(shù),信道編碼可以使用卷積碼,而OFDM調(diào)制技術(shù)是使調(diào)制的各個子載波間可以相互重疊,且之間具有正交性[5]。其編碼調(diào)制流程如圖2所示。
由于2.4GHZ頻段為公共開放頻段,因此選擇2.4GHZ為無線傳輸模塊的頻率區(qū)域。
其中,卷積碼前后碼組具有相關(guān)性,即卷積碼編碼后的n個碼元不僅與當(dāng)前段的k個信息有關(guān),而且與前面(N-1)(N為編碼約束度)段的信息有關(guān)。其中,k個信息比特也被編成n個比特的碼組,但k和n通常很小,并且可以通過串行或并行方式進(jìn)行傳輸,而且時延很小[6]。
OFDM調(diào)制將高速率的串行數(shù)據(jù)流通過串并轉(zhuǎn)換成N路的并行低速率的子數(shù)據(jù)流,再進(jìn)行IFFT運(yùn)算,并插入循環(huán)前綴即可生成一個OFDM信號。插入保護(hù)間隔是為了分離相鄰碼元,防止碼間干擾。在上位機(jī)獲得傳輸?shù)臄?shù)據(jù)流后,可以通過去除添加的保護(hù)間隔,并對數(shù)據(jù)進(jìn)行并串轉(zhuǎn)換和FFT處理后,還原得到OFDM的調(diào)制信號。
H.264編碼壓縮芯片采用Hi3510,OFDM調(diào)制載波芯片采用LME2980,無線收發(fā)器使用E01-ML01DP5 2.4G無線模塊。endprint
1.4上位機(jī)軟件
上位機(jī)軟件分為兩部分,一部分用于控制搜救機(jī)器人,此處不進(jìn)行討論,另一部分則用于接收視頻圖像并進(jìn)行處理。在上位機(jī)接收到無線傳輸模塊發(fā)送的數(shù)據(jù)包后,需要先對其進(jìn)行編碼解調(diào),獲得所需圖像。
在上位機(jī)軟件中,配置有人臉識別功能用于協(xié)助救援人員搜尋被困人員,以免出現(xiàn)搜救工作的遺漏。使用人臉識別功能需要先進(jìn)行Opencv的安裝,Opencv是一個開源的跨平臺計算機(jī)視覺庫,實現(xiàn)了圖像處理和計算機(jī)視覺方面的很多通用算法,輕量級且高效,十分適合于安裝在微型嵌入式計算機(jī)上。由于人臉識別需要對每一幀圖像進(jìn)行處理,因此使用支持多線程、輕量級的Linux系統(tǒng)對于小型嵌入式系統(tǒng)是最佳選擇。在Linux系統(tǒng)上安裝Opencv的命令如下:
sudo apt-get install python-opencv
人臉識別的內(nèi)容包括[7]:①圖像預(yù)處理,用于消除因救援環(huán)境造成的光照等外界因素對識別精確度的影響;②特征提取,為人臉識別提供幾何特征等基礎(chǔ)信息;③對比識別,將獲得的人臉特征與人臉數(shù)據(jù)庫或人臉識別分類器進(jìn)行對比,若特征相匹配,則認(rèn)為是人臉圖像。其運(yùn)行流程如圖3所示。
在Opencv中,自帶有關(guān)人臉識別的人臉檢測分類器XML文件,因此本文使用其自帶的XML文件進(jìn)行實驗測試。以下為用python實現(xiàn)的人臉識別的關(guān)鍵代碼:
face_cascade = cv2.CascadeClassifier('/home/opencv-2.4.9/data/haarcascades /haarcascade_frontalface_alt.xml')
### Utils ###################
def get_faces( img ):
gray = cv2.cvtColor( img, cv2.COLOR_BGR2GRAY )
faces = face_cascade.detectMultiScale( gray )
def draw_frame( img, faces ):
global xdeg
global ydeg
//在臉的附近畫上矩形框用于輔助識別
for ( x, y, w, h ) in faces:
cv2.rectangle( img, ( x, y ),( x + w, y + h ), ( 200, 255, 0 ), 2 )
tx = x + w/2
ty = y + h/2
//矩形框的大小,代碼省略
### Main ###################
if __name__ == '__main__':
//開啟4個線程池,以提高圖像處理速度
pool = mp.Pool( processes=4 )
fcount = 0
camera.capture( rawCapture, format="bgr" )
r1 = pool.apply_async( get_faces, [ rawCapture.array ] )
r2 = pool.apply_async( get_faces, [ rawCapture.array ] )
r3 = pool.apply_async( get_faces, [ rawCapture.array ] )
r4 = pool.apply_async( get_faces, [ rawCapture.array ] )
f1, i1 = r1.get()
f2, i2 = r2.get()
f3, i3 = r3.get()
f4, i4 = r4.get()
rawCapture.truncate( 0 )
for frame in camera.capture_continuous( rawCapture, format="bgr", resize=(320,240),use_video_port=True ):
image = frame.array
//fcount表示當(dāng)前線程標(biāo)號,輸出當(dāng)前圖像,并獲取下一個線程進(jìn)行繪制
if fcount == 1:
r1 = pool.apply_async( get_faces, [ image ] )
f2, i2 = r2.get()
draw_frame( i2, f2 )
//若fcount為4,則置為0,以上為fcount為1時的代碼,其余情況的代碼省略
fcount += 1
rawCapture.truncate( 0 )
2測試結(jié)果與分析
2.1視頻圖像及人臉識別測試結(jié)果
為驗證提出的嵌入式救援搜尋系統(tǒng)的性能,首先對視頻圖像的采集及處理進(jìn)行測試,測試內(nèi)容分別為正常光照下和黑暗環(huán)境下的視頻圖像采集,以及人臉識別功能的可靠性。
圖4(a)為正常光照條件下的圖像數(shù)據(jù),圖4(b)為黑暗無光條件下采集的圖像數(shù)據(jù)。通過觀察對比圖像,可以發(fā)現(xiàn)在黑暗環(huán)境中,搜尋系統(tǒng)依然能夠采集較清晰的環(huán)境視頻圖像,達(dá)到了搜尋系統(tǒng)的設(shè)計要求。
圖5為人臉檢測的實際效果圖,其中圖5(a)為單獨進(jìn)行人臉檢測的圖片實驗效果,圖5(b)為搜尋系統(tǒng)工作時其中一幀的視頻圖像。觀察實際圖像處理效果可以發(fā)現(xiàn),其人臉檢測精度能夠滿足救援搜尋系統(tǒng)的設(shè)計要求,達(dá)到了輔助搜尋受困人員的目的。endprint
2.2無線傳輸距離測試結(jié)果
由于提出的嵌入式救援搜尋系統(tǒng)主要應(yīng)用于救援工作,因此需要在復(fù)雜環(huán)境下對其進(jìn)行有效傳輸距離的測試。實驗地點設(shè)置為通道狹小、具有多墻面障礙的室內(nèi)環(huán)境,模擬在救援工作中救援人員的操作。由于室內(nèi)面積較小,因此無法測試大范圍內(nèi)的信號傳輸質(zhì)量。經(jīng)初步測試,數(shù)據(jù)有效傳輸距離超過400m,視頻圖像無明顯卡頓、掉幀現(xiàn)象,能夠完成小范圍內(nèi)的救援搜尋工作。
3結(jié)語
本文基于ARM處理器和Linux操作系統(tǒng),使用圖像采集模塊、無線傳輸模塊以及上位機(jī)軟件,實現(xiàn)了基于嵌入式的救援搜尋系統(tǒng)設(shè)計。針對在進(jìn)行救援工作時,由于處于復(fù)雜環(huán)境造成的無線數(shù)據(jù)傳輸困難的情況,使用COFDM多載波調(diào)制技術(shù),強(qiáng)化數(shù)據(jù)信號的繞射及穿透能力,達(dá)到了遠(yuǎn)程實時獲取救援現(xiàn)場環(huán)境視頻圖像數(shù)據(jù)的目的。實驗結(jié)果表明,設(shè)計的救援搜尋系統(tǒng)能夠一定程度上在保障救援人員安全的前提下,完成小范圍內(nèi)的搜尋工作,具有一定實用價值。
參考文獻(xiàn):
[1]孫金慶.火場環(huán)境下視頻編碼與視頻傳輸系統(tǒng)設(shè)計[D].濟(jì)南:山東大學(xué),2016.
[2]段書強(qiáng).井下遠(yuǎn)程數(shù)據(jù)傳輸與處理系統(tǒng)研究[D].西安:西安工程大學(xué),2011.
[3]陳曦.一種井下多媒體無線通信網(wǎng)絡(luò)的開發(fā)[D].西安:西安電子科技大學(xué),2011.
[4]隋虎林,邱巖松.基于多載波調(diào)制技術(shù)的火場圖像傳輸系統(tǒng)[J].消防技術(shù)與產(chǎn)品信息,2007(8):3233,59.
[5]歐陽玉梅,劉盛宇.無人機(jī)數(shù)字圖像傳輸系統(tǒng)設(shè)計[J].科技視界,2016(27):137,161.
[6]何小敏.卷積碼編碼與維特比譯碼加速器設(shè)計[D].北京:北京郵電大學(xué),2010.
[7]劉爽.嵌入式人臉識別系統(tǒng)的設(shè)計與實現(xiàn)[J].微電子學(xué)與計算機(jī),2012(3):174177.
[8]姚東明,馬川,于溪,等.一種高效的人臉馬賽克方法[J].軟件導(dǎo)刊,2017(3):167169.
[9]王道強(qiáng).基于COFDM的無線視頻監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[D].廣州:華南理工大學(xué),2011.
[10]王道強(qiáng),蔡敏,段瀅.基于COFDM的無線視頻監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[J].移動通信,2011(12):6972.
[11]李振華,陳仕敏,唐光波,等.基于無線控制的消防偵察車[J].電子世界,2017(5):4950.
[12]廖廣軍.復(fù)雜條件下的人臉檢測與識別應(yīng)用研究[D].廣州:華南理工大學(xué),2014.
責(zé)任編輯(責(zé)任編輯:黃?。〆ndprint