馬興錄,唐亞男
(青島科技大學(xué) 信息科學(xué)技術(shù)學(xué)院,山東 青島 266061)
一直以來,各國政府嚴(yán)厲打擊毒品犯罪活動,但全球范圍內(nèi)的毒品犯罪活動仍舊活躍,在某些特定區(qū)域尤為猖獗,甚至以先進(jìn)的科技技術(shù)作為犯罪武器,傳統(tǒng)的犯罪形式逐漸向技術(shù)化、智能化、集團(tuán)化轉(zhuǎn)變[1]。在這種嚴(yán)峻的形勢下,為有效打擊毒品犯罪,各國政府采取了多種新型稽查毒品的方式,其中不乏智能儀器,例如模擬動物嗅覺與視覺器官開發(fā)出的電子眼、電子鼻等[1]。但是,緝毒犬作為傳統(tǒng)緝毒方式之一,不但沒有因現(xiàn)代科技的高度發(fā)展而被社會所拋棄,而且越來越受到各國的重視[2],并將其視為開展緝毒工作中不可或缺的一環(huán)。
較早時期人們訓(xùn)練緝毒犬對傳送帶上行李進(jìn)行搜毒,并取得良好效果。國內(nèi)外對于緝毒犬的訓(xùn)練還沒有采用智能小車進(jìn)行定位跟蹤進(jìn)行輔助訓(xùn)練的先例。機(jī)場緝毒犬的工作場所多在行李箱轉(zhuǎn)盤,因此需要訓(xùn)練緝毒犬在行李箱轉(zhuǎn)盤上進(jìn)行毒物檢查[3-5]。日常訓(xùn)練中訓(xùn)導(dǎo)人員需要時刻陪伴在緝毒犬身邊,并手動記錄緝毒犬每次的訓(xùn)練成果,人工投入成本大,訓(xùn)練效率低。在當(dāng)前的緝毒犬訓(xùn)練工作過程中,存在人力資源有限、任務(wù)完成時限緊迫和訓(xùn)練信息不完全等問題,為有效提高訓(xùn)導(dǎo)人員訓(xùn)練緝毒犬的效率,實時記錄與保存緝毒犬的訓(xùn)練過程并自動導(dǎo)出訓(xùn)練評測結(jié)果,目前亟需一套系統(tǒng)的緝毒犬訓(xùn)練智能化自動解決方案。
這款輔助訓(xùn)練的系統(tǒng),使用樹莓派為核心主板,結(jié)合UWB室內(nèi)定位模塊快速定位跟蹤緝毒犬的位置,搭載USB攝像頭實時向終端傳輸視頻。在提高緝毒犬效率與減少緝毒犬的訓(xùn)練時間成本方面有較好效果。
現(xiàn)如今存在的室內(nèi)定位技術(shù)主要有紅外線定位技術(shù)、超聲波定位技術(shù)、藍(lán)牙定位技術(shù)、WiFi定位技術(shù)、超寬帶(UWB)定位技術(shù)[6-7]、射頻識別定位技術(shù)以及地磁定位技術(shù)[8]。基于輔助設(shè)備的室內(nèi)定位技術(shù)主要是通過在室內(nèi)部署設(shè)備進(jìn)行測距,再由后臺進(jìn)行定位計算[8]。作為首部應(yīng)用了UWB技術(shù)的iPhone手機(jī),iPhone11除了擁有基礎(chǔ)的定位跟蹤功能,還可以檢測物品在現(xiàn)實世界的位置信息。
作為無線載波通信技術(shù)之一的超寬帶(UWB)定位技術(shù)[9],利用極高的射頻頻率達(dá)到高帶寬的效果。超寬帶定位技術(shù)在傳輸信號使產(chǎn)生極短脈沖的信號源,在短時間內(nèi)以極低的功率實現(xiàn)數(shù)據(jù)的高速傳播。
在 UWB定位技術(shù)中,基于距離的定位算法[10]是最常用的,其中包括飛行時間定位算法(TOF)[11]、到達(dá)時間差定位算法(TDOA)以及到達(dá)角定位算法(AOA)。
TOF定位算法利用信號收發(fā)及終端收發(fā)設(shè)備之間的數(shù)據(jù)傳輸時間,基于一定的計算得到收發(fā)設(shè)備之間的距離[12]。TDOA定位算法利用記錄接收同一個發(fā)送設(shè)備的不同信號時間差,計算得到設(shè)備之間的距離。AOA定位算法利用計算同一組發(fā)送設(shè)備和接收設(shè)備之間的相對方位,得到設(shè)備之間的距離。
該系統(tǒng)使用的UWB定位部分采用單邊雙向測距原理,其測距原理如圖1所示。在此基礎(chǔ)上再增加一次通訊,兩次通訊的時間因時鐘偏移引入的誤差可相互彌補(bǔ)[13-14],得到更高的測距精度,如圖2所示。
圖1 單邊雙向測距原理示意圖
圖2 改進(jìn)單邊雙向測距原理示意圖
假設(shè)設(shè)備A和設(shè)備B的時鐘精度是20 ppm,ka和kb分別是設(shè)備A、B時鐘的實際頻率和預(yù)期頻率的比值,那么ka和kb分別是0.999 98或者1.000 02。設(shè)備A和B相距100 m,電磁波的飛行時間是333 ns[15]。
(1)
(2)
根據(jù)公式(1)和公式(2)計算,因時鐘引入的誤差為20*333*10-9s,則測距誤差為2.2 mm,在實際情況下,由于誤差過小,可以對誤差忽略不計。
緝毒犬訓(xùn)練監(jiān)督輔助系統(tǒng)采用樹莓派4 B電腦為核心,以UWB定位模塊為主要定位部件,結(jié)合可見光攝像頭,編寫相關(guān)軟件及算法,實現(xiàn)了攝像機(jī)定位、智能車跟隨、實時視頻回傳、自動警報提醒以及監(jiān)控界面可視化等功能。如圖3所示。
圖3 系統(tǒng)整體結(jié)構(gòu)
其中定位部分采用的是UWB定位模塊,由三個基站模塊與一個標(biāo)簽?zāi)K組成,實現(xiàn)二維平面內(nèi)定位功能[16]。其中一個主基站通過USB線連接到樹莓派4 B上,負(fù)責(zé)定位數(shù)據(jù)的粗處理及傳輸功能。其余兩個基站分別布置在空曠的位置,緝毒犬?dāng)y帶標(biāo)簽活動在基站范圍[17](即以基站為圓心,直徑15 m內(nèi)),如果標(biāo)簽不在基站范圍內(nèi)或者距離基站過近,系統(tǒng)自動發(fā)出警報,提醒工作人員檢查緝毒犬狀態(tài)。實時視頻傳輸部分采用通訊協(xié)議,由樹莓派將視頻實時傳回到客戶終端。
設(shè)計中系統(tǒng)硬件組成結(jié)構(gòu)圖如圖4所示,包括樹莓派4 B、四個D-DWM-PG1.7型UWB定位模塊、三個移動電源、CSI端口攝像頭、115 200 bps串行通訊接口和音箱。
圖4 系統(tǒng)硬件結(jié)構(gòu)
使用樹莓派4 B為核心控制板,其操作系統(tǒng)基于linux,安裝Python運(yùn)行環(huán)境。運(yùn)用樹莓派網(wǎng)絡(luò)探針可以測量吞吐量、延遲以及丟包率[18],通過分析網(wǎng)絡(luò)穩(wěn)定性、可靠性來保障網(wǎng)絡(luò)服務(wù)質(zhì)量。且樹莓派的HDMI高清視頻輸出接口提供1 080 p全高清影像輸出功能。
D-DWM-PG1.7型UWB定位模塊基于 DW1000定位芯片開發(fā),搭載CP2102方案的USB串口,硬件串口更加穩(wěn)定。主基站和樹莓派連接,兩個次基站與主基站呈等邊三角模式,標(biāo)簽活動在等邊三角范圍內(nèi),分布如圖5所示。該設(shè)計測距精度為10 cm,定位精度[19]為30 cm。
圖5 定位模塊放置模擬示意圖
模塊與模塊之間采用標(biāo)準(zhǔn)MODBUS-RTU通訊協(xié)議,通訊步驟如表1所示,且配有電源指示燈與信號指示燈。
表1 定位模塊之間通訊步驟圖
D-DWM-PG1.7型UWB定位模塊與樹莓派之間通過TTL串口進(jìn)行通信。本設(shè)計中定位模塊連接樹莓派需要使用TTL串口轉(zhuǎn)USB的模塊,串口波特率為115 200 bps。四個定位模塊分為三個基站模塊和一個標(biāo)簽?zāi)K,三個基站中以其中一個基站作為主基站[20],與樹莓派通過TTL串口轉(zhuǎn)USB的模塊連接,進(jìn)行模塊之間的數(shù)據(jù)粗處理以及將粗處理的數(shù)據(jù)傳給樹莓派。另外兩個基站由移動電源供電,分別放置在應(yīng)用場景的邊緣,為減少定位誤差需保證周圍30 cm內(nèi)沒有物體遮擋。
視頻傳輸部分?jǐn)z像部分采用MIPI CSI-3協(xié)議,它是一種高速雙向協(xié)議,主要用于多層對等基于UniPro的M-PHY設(shè)備網(wǎng)絡(luò)中攝像機(jī)和主機(jī)之間的圖像和視頻傳輸。攝像頭與樹莓派連接使用常見的USB接口。報警部分選擇的是適配樹莓派4B的基礎(chǔ)音箱,音箱與樹莓派之間使用3.5 mm耳機(jī)接口連接。
采用該方案的最終設(shè)計成品在成品功耗控制方面表現(xiàn)優(yōu)異,在此基礎(chǔ)之上實現(xiàn)了組織架構(gòu)成本的最小化并且具備體積小、易集成、便于攜帶組裝等優(yōu)點(diǎn),能夠應(yīng)用于多種場景。
緝毒犬訓(xùn)練監(jiān)督輔助系統(tǒng)軟件總體架構(gòu)如圖6所示,系統(tǒng)的功能包括實時定位、自動跟隨、語音報警、實時傳輸以及同步顯示五個功能。其中服務(wù)端實現(xiàn)對UWB模塊主基站數(shù)據(jù)解析與處理功能,通過穩(wěn)定的TCP網(wǎng)絡(luò)協(xié)議不間斷獲取主基站發(fā)來的粗?jǐn)?shù)據(jù),并且對數(shù)據(jù)進(jìn)行精處理,分析數(shù)據(jù)變化,將其轉(zhuǎn)換成運(yùn)動指令,控制智能車運(yùn)動,實現(xiàn)自動跟隨功能。
圖6 軟件功能架構(gòu)圖
如圖7所示,硬件設(shè)備上電并自動開機(jī)后,用戶可使用電腦或者移動設(shè)備搜索智能車的熱點(diǎn)。連接該熱點(diǎn)后,進(jìn)入系統(tǒng)界面,開啟攝像,即可看到訓(xùn)練場的畫面。一旦緝毒犬?dāng)y帶標(biāo)簽越出基站覆蓋范圍,系統(tǒng)將自動發(fā)起語音警報。
圖7 總體功能流程圖
3.2.1 定位追蹤流程
系統(tǒng)以定位模塊為輸入點(diǎn),其軟件功能流程圖如圖8所示。當(dāng)攜帶標(biāo)簽的緝毒犬首次出現(xiàn)在基站覆蓋范圍內(nèi)時,三個基站將采用不間斷測量模式,首先計算各自距離標(biāo)簽的距離,主基站在此基礎(chǔ)之上匯總其他兩個基站的數(shù)據(jù)一并發(fā)送給樹莓派,通過樹莓派的數(shù)據(jù)處理驅(qū)動調(diào)整智能車的初始位置,保證緝毒犬時刻處在可攝像范圍內(nèi);隨后主基站不間斷將緝毒犬的位置更新發(fā)送至樹莓派,如果當(dāng)前位置數(shù)據(jù)較前位置數(shù)據(jù)呈增大趨勢,則智能車向左移動相應(yīng)的距離,反之智能車向右移動相應(yīng)的距離,保證緝毒犬時刻處在可攝像范圍內(nèi)。一旦位置數(shù)據(jù)異常,系統(tǒng)自動發(fā)出警報提醒緝毒犬運(yùn)動軌跡偏離工作范圍。
圖8 基于UWB的智能車定位追蹤流程圖
3.2.2 基于移動目標(biāo)的定位追蹤算法
3.2.2.1 定位數(shù)據(jù)獲取
根據(jù)定位模塊的通訊協(xié)議,主機(jī)先向模塊發(fā)送一段定位指令數(shù)據(jù),主基站返回一串8位字符數(shù)據(jù)串表示接收到指令并開始測距定位,然后主機(jī)每隔一段時間發(fā)送一次查詢指令數(shù)據(jù),主基站返回一串31位字符數(shù)據(jù)串表示當(dāng)前測量的數(shù)據(jù)。然后將其中表示三個基站各自與標(biāo)簽的距離相關(guān)的數(shù)據(jù)切分出來,每四個為基站到標(biāo)簽的距離數(shù)據(jù)(每個基站的距離值是由兩個字節(jié)組成,高8位在左,低8位在右),然后將距離數(shù)據(jù)轉(zhuǎn)換成距離。距離的計算公式(3)如下:
L=hex2D(Lh)×256+hex2D(Ll)
(3)
其中:Lh是模塊返回的距離數(shù)據(jù)的高八位,Ll為模塊返回的距離數(shù)據(jù)的低八位,均以16進(jìn)制的形式呈現(xiàn)。使用hex2D函數(shù)(Hex To Decimal)將Lh和Ll轉(zhuǎn)換之后進(jìn)行計算獲得距離值L。三個基站的距離都通過解析運(yùn)算得到,然后存到變量參數(shù)中用于后面的數(shù)據(jù)比較。
3.2.2.2 移動目標(biāo)追蹤校準(zhǔn)算法
該設(shè)計考慮到緝毒犬工作時趨于集中在小范圍活動的特點(diǎn),根據(jù)時間差模型[21],定位模組不間斷測量距離,智能車頻繁的移動嚴(yán)重影響視頻畫面的穩(wěn)定性,因此提出了在此背景環(huán)境下基于移動目標(biāo)的定位追蹤算法。
該算法的思路是:設(shè)備開機(jī)后,首先定位緝毒犬的初始位置,智能車移動到視頻畫面里能看到緝毒犬的位置;然后緝毒犬開始工作,定位模組不斷更新緝毒犬的位置,智能車實時跟隨拍攝,如檢測到定位數(shù)據(jù)異常,則發(fā)起警報,提醒工作人員檢查緝毒犬的工作狀態(tài)及當(dāng)前位置。
算法具體實現(xiàn):
關(guān)于魯迅的短篇小說《藥》,已經(jīng)有不少學(xué)者從影響研究的層面探討了俄蘇作家,如果戈理、契訶夫、屠格涅夫、安特萊夫等對魯迅的影響。老師可以選取一二篇有代表性的學(xué)術(shù)論文,讓學(xué)生閱讀,并體會影響研究的方法和步驟。
設(shè)備在開機(jī)后定位緝毒犬的初始位置,初始化時間內(nèi)將每次的獲取到的距離數(shù)據(jù)進(jìn)行緩慢平均,一次獲取存儲10組距離數(shù)據(jù)點(diǎn),分別進(jìn)行相加之后,除以10獲取到的平均值即作為緝毒犬的初始位置。
初始位置穩(wěn)定后,定位模組不間斷工作,主機(jī)首先間隔0.1 s獲取一組距離數(shù)據(jù),連續(xù)獲得幾次,分別相加,求取平均值作為當(dāng)前的距離數(shù)據(jù)組a,如公式(4),之后每獲取三次距離數(shù)據(jù),加入距離數(shù)據(jù)組a,形成新的求平均組值,得到新的平均值作為新的距離數(shù)據(jù)組a1,如公式(5),如此無限循環(huán)求取am,如公式(6):
(4)
am(LA,LB,LC)=
(5)
am(LA,LB,LC)=
(6)
m=1,m∈∞
其中:LA、LB、LC分別代表不斷更新的三個基站相對標(biāo)簽的距離值,距離單位為cm,a(LA,LB,LC)為初始化之后第一次求取的距離數(shù)據(jù)組。O(LA,LB,LC)為每間隔0.1 s獲取到的距離數(shù)據(jù)。n表示每間隔0.1 s的當(dāng)前獲取次數(shù),m表示當(dāng)前求取的平均距離組值的次數(shù)。計算a與a1的各部分距離值的差值,獲得位置突變組(突變組指在限定一個距離差值閾值后,每超出了這個閾值的距離差值的當(dāng)前距離組即判定為突變組)。獲得突變組之后,就可以判斷緝毒犬的移動軌跡,并且經(jīng)過多次測試,每次連續(xù)間隔0.1 s取4次距離數(shù)據(jù),得到的距離數(shù)據(jù)組計算差值判斷出來的緝毒犬移動軌跡與實際緝毒犬移動軌跡重合率最高。獲得平均距離組值之后,根據(jù)目標(biāo)追蹤校準(zhǔn)算法公式(7)計算位置突變組lisc:
lisc(l,r,s)=am(LA,LB,LC)-am-1(LA,LB,LC)
(7)
得到的位置突變組lisc,里面的l,r,s用來判定智能車的運(yùn)動狀態(tài)。
3.2.3 核心算法偽代碼
Input:當(dāng)前時刻緝毒犬定位數(shù)據(jù)Pist,包含三個基站相對于標(biāo)簽的距離數(shù)據(jù)LA、LB、LC。
Process2:將獲得的初始位置保存,收集三次位置數(shù)據(jù)組,將這三組和初始位置相加求平均值即當(dāng)前校準(zhǔn)后的位置數(shù)據(jù)組,再次保存當(dāng)前校準(zhǔn)后的位置數(shù)據(jù)組,再收集三次位置數(shù)據(jù)組,與上一個校準(zhǔn)后的位置數(shù)據(jù)組相加求平均,無限循環(huán)。
Process3:通過Process2過程中獲得的校準(zhǔn)后的當(dāng)前時刻位置數(shù)據(jù)組。將當(dāng)前的位置數(shù)據(jù)組與前一組校準(zhǔn)的位置數(shù)據(jù)組各部分相減,得到相對距離差值la,lb,lc:
if(LA==0):break;
elif(LA>p):
if(lb*lc==0):Carstop()
elif(lb*lc>0):Carturnleft()
elif(lb*lc<0):Carturnright()
得到一個控制智能車運(yùn)動的指令。
Final Output:智能車運(yùn)動CarRun系列指令。
設(shè)備開機(jī)之后,開啟攝像功能。攝像頭將捕捉到的圖像信息傳回到主機(jī)中進(jìn)行數(shù)據(jù)處理,實時視頻傳輸流程圖如圖9所示。主機(jī)運(yùn)行socket服務(wù)端程序,向終端電腦傳送視頻幀信號;雙方約定好傳輸分辨率,傳輸幀率,傳輸圖片編碼格式,傳輸端口,向服務(wù)器端建立連接,并實時傳輸圖像編碼。終端運(yùn)行socket客戶端程序接收視頻幀,解碼實時展示并保存,然后將圖像由二進(jìn)制數(shù)據(jù),轉(zhuǎn)化成圖像矩陣,并利用openCV庫函數(shù),進(jìn)行展示和保存,方便工作人員查看記錄。
圖9 實時視頻傳輸及保存流程圖
自動報警功能基于定位追蹤算法,主機(jī)處理基站發(fā)送過來的位置數(shù)據(jù)組,一旦發(fā)現(xiàn)數(shù)據(jù)異常,則蜂鳴報警,工作人員查看緝毒犬是否遠(yuǎn)離工作范圍,若數(shù)據(jù)再次正常,則報警停止。
在完成對系統(tǒng)的軟硬件設(shè)計后需要進(jìn)行實地檢測該設(shè)備系統(tǒng)能否完成預(yù)期的功能,以及測試設(shè)備在連續(xù)不間斷的工作狀態(tài)下運(yùn)行的穩(wěn)定性。如圖10所示首先確定兩個次基站的位置,并將其布置在平穩(wěn)的地面,且保證周圍30 cm內(nèi)無障礙物遮擋,兩個基站分別由移動電源供電。然后把主基站插在帶有攝像頭的智能車上,將智能車放置在固定滑軌上,將攜帶標(biāo)簽的緝毒犬牽入場內(nèi)待定。
圖10 系統(tǒng)測試模擬圖
樹莓派創(chuàng)建軟連接,編寫腳本實現(xiàn)開機(jī)自啟動中間件和wifi,進(jìn)入樹莓派系統(tǒng)并自啟動中間件后,會有一個網(wǎng)絡(luò)初始化,通過函數(shù)open_server_socket()實現(xiàn),打開服務(wù)器的socket并且返回新的文件描述符,小車作為客戶端,樹莓派上的中間件為服務(wù)端,中間件通過函數(shù)listen_and_-connect_to_client()實現(xiàn)了對客戶端、端口號的監(jiān)聽。接收到新的連接并且與新連接相連,返回新客戶端連接的socket文件描述符。中間件為實現(xiàn)與小車進(jìn)行數(shù)據(jù)傳送,設(shè)置了兩個線程:接收數(shù)據(jù)線程與發(fā)送數(shù)據(jù)線程。service_client()函數(shù)主要實現(xiàn)創(chuàng)建并啟動發(fā)送數(shù)據(jù)線程,以及向客戶端發(fā)送傳感器數(shù)據(jù),創(chuàng)建和啟動接收數(shù)據(jù)線程來接收來自客戶端的控制小車的命令,當(dāng)線程結(jié)束后再斷開與客戶端的連接,實現(xiàn)樹莓派對智能車的指令控制。
設(shè)備運(yùn)行過程中緝毒犬的運(yùn)動頻率很快,且活動范圍長時間處在較小的一個變化區(qū)間內(nèi),UWB定位模組的定位精度為30 cm,數(shù)據(jù)變化過于頻繁,導(dǎo)致攝像機(jī)拍攝的畫面不穩(wěn)。為了使視頻畫面更加穩(wěn)定可以將原本的取值求平均周期延長至8組,并且后期對核心算法進(jìn)行了調(diào)整,提高了智能車運(yùn)動的靈敏度:參照移動目標(biāo)定位追蹤算法,將原本的突變點(diǎn)閾值M、N調(diào)整為M1、N1,確保緝毒犬運(yùn)動軌跡判斷準(zhǔn)確的同時提高了拍攝畫面的穩(wěn)定性。
算法調(diào)整前后所得到的距離數(shù)據(jù)組變化曲線圖如圖11所示,圖11(a)中為修改平均周期之前,圖11(b)為修改平均周期之后的曲線,可以看出圖11(b)中的曲線較圖11(a)更加能篩選出有效的突變點(diǎn)。
圖11 定位追蹤數(shù)據(jù)穩(wěn)定度分析
對設(shè)備進(jìn)行實際場地布置測試,通過替換移動電源保證設(shè)備正常供電并運(yùn)行,連續(xù)運(yùn)行一周后,系統(tǒng)穩(wěn)定可靠,沒有出現(xiàn)卡機(jī)或崩潰現(xiàn)象,硬件可靠性得到驗證,測試反饋總體效果良好。
該設(shè)計的緝毒犬訓(xùn)練監(jiān)督輔助系統(tǒng)利用樹莓派D-DWM-PG1.7型UWB定位模組,基于移動目標(biāo)的定位追蹤算法實現(xiàn)了在多種應(yīng)用環(huán)境中定位追蹤錄像緝毒犬工作。在設(shè)備開始工作后,緝毒犬?dāng)y帶標(biāo)簽進(jìn)入基站覆蓋范圍內(nèi)可對緝毒犬進(jìn)行自動追蹤錄像并且能夠在緝毒犬遠(yuǎn)離工作區(qū)域時及時發(fā)出警報,準(zhǔn)確率達(dá)99%以上。
后期選擇性能更好,定位精度更高的UWB定位模組,可以實現(xiàn)更精確的定位追蹤。系統(tǒng)后續(xù)可添加更多的功能,通過目標(biāo)檢測算法檢測視頻里緝毒犬和行李的位置,輔助顏色識別技術(shù),系統(tǒng)智能判斷緝毒犬是否識別出攜帶毒品的行李物品,提高訓(xùn)練效率,節(jié)省人力,培訓(xùn)出更多優(yōu)秀的緝毒犬,提高緝毒工作的效率。
綜上該設(shè)計可以實現(xiàn)有效定位跟蹤錄像緝毒犬訓(xùn)練過程,提高訓(xùn)練效率,在緝毒工作領(lǐng)域具有較大應(yīng)用前景。