徐 進 陳姚節
(武漢科技大學計算機科學與技術學院 湖北 武漢 430081)
近些年海洋爭端越發激烈,水炮因其殺傷性較低、不容易造成傷亡的特點,成為海警船以及消防船必備的防護打擊和救援裝置。現有的水炮主要通過手動控制,其操作緩慢、人工強度大、且打擊準確率低。因此實現水炮的智能打擊對于進一步維護國家海洋權益至關重要。智能打擊的主要方法是通過光電系統對目標進行跟蹤[1-3]、提供圖像坐標信息并根據坐標系轉換獲得實際環境中目標的位置信息,水炮根據目標在水炮坐標系中的位置信息來調整水炮的水平角和俯仰角,實現對目標的持續打擊。水炮水平方位角易通過幾何模型運算實現,但俯仰角受到水炮內部參數和多種外部因素影響,最主要的是水炮的壓力,彈道截面積、安裝位置、風向、空氣密度等影響因素。目前實現水炮準確打擊主要有兩種方式:基于質點運動規律的射流軌跡定位方式、基于計算機視覺的調整方式。
基于質點運動規律的射流軌跡定位方式是根據物理質點運動學和彈道學等理論,對射流影響因素進行分析模擬,根據質點做拋物運動的軌跡來推測射流的運動軌跡。閔永林等[4]提出了一種根據不同俯仰角來建立射流軌跡模型,并根據目標位置反推俯仰角的方法來提升定位精度。廖小東等[5]通過對射流微元體進行受力分析,建立了參數化的射流軌跡運動化方程。朱蓓麗等[6]對射流微元體的受力情況和水炮的結構參數、工作壓力和工作流量進行分析,通過Simulink平臺實現對射流軌跡仿真。陳學軍等[7]在僅考慮空氣阻力下建立射流運動軌跡模型,并提出一種定位補償方法來調整射流角度。但現實中這些影響因素很難獲取到,難以通過單純地質點運動規律和數學計算來實現對射流軌跡的定位,且大多數都是單純地進行定點打擊,定位準確性不高,打擊效果不好。
基于計算機視覺的調整方式則可以在圖像中提取射流并確定射流軌跡落點,通過落點位置與目標位置差來判斷是否準確打中目標,若沒有準確打中目標則根據位置偏差來調整水炮的角度參數,實現水炮閉環控制。該方法受到越來越多學者的關注。陳靜[8]提出了一種對初次射流識別結果建立模板,結合射流軌跡的運動特點使用模板匹配射流起始點,從起始點開始單向依次搜索后續射流軌跡的方法。孫維祿等[9]提出一種在彩色圖像中,利用RGB三色法,對射流軌跡進行提取并確定射流落點位置的方法。蘇浩等[10]提出了一種分步對篩選后的射流軌跡進行擇優選擇方法,該方法具有一定的穩定性。
本文將質點運動規律的射流軌跡定位方式與計算機視覺的調整方式結合在一起,在僅考慮重力和空氣阻力對射流軌跡的影響下,建立射流軌跡模型,并通過圖像處理技術計算射流落點和目標之間的位置差,來進行判斷是否命中目標,再進一步調整打擊角度,實現閉環控制。
系統主要原理為通過已標定的攝像頭[11-12]來采集圖像信息,并對目標進行實時跟蹤。在跟蹤過程中,攝像頭中心始終瞄準目標中心(即矩形框的中心位置)。通過空間坐標轉換,計算目標位置信息;同時根據水炮和攝像頭的相對位置,來計算水炮的水平偏轉角。通過質點運動規律來建立射流軌跡模型,計算射流俯仰角,對目標進行打擊。通過圖像處理技術來對射流落點進行識別,計算射流落點與目標矩形框的偏差,判斷是否打中目標。若未擊中目標,則根據落點位置設置提前運動角度來對射流的水平角和俯仰角進行二次調整,實現對射流的閉環控制,對目標進行打擊。若擊中目標,則去下一幀視頻繼續。系統流程如圖1所示。

圖1 系統流程
首先調整水平回轉角,然后再調整俯仰角。以攝像頭與地面的垂直投影作為坐標原點,建立空間坐標系,如圖2所示。其中:A(x1,y1,z1)、B(x2,y2,z2)、C(x3,y3,z3)分別表示攝像頭、射流起始點、目標在空間坐標系中位置;α和γ分別為攝像頭對準目標中心位置需要的水平偏移角和豎直俯仰角;θ和β分別為水炮打擊目標的初始水平偏移角和水炮垂直定位目標與y軸方向的夾角。

圖2 空間坐標系
攝像頭與射流起始點之間的水平偏移量為:
已知攝像頭的相對目標的高度AD和水炮相對目標的高度BB′。根據三角幾何原理,可得:
可知目標與水炮之間的距離在x軸、y軸上面的分量為:

根據三角幾何原理可得:
故水炮打擊目標需要的回轉角為:
為了研究射流軌跡,這里將射流分割成單位體積流量的水微團。射流軌跡主要受壓力、流量、高度、空氣密度以及水炮射流俯仰角的影響[13],因為空氣密度遠遠小于水密度,故空氣浮力相對于水的重力顯得非常微小。水炮的壓力、流量、高度等因素在穩定情況下對射流的影響也可忽略不計,因此主要考慮重力和空氣阻力對射流軌跡的影響,其受力分析如圖3所示。

圖3 射流水微團在空中受力分析圖
根據牛頓第二運動定律對某一時刻t進行受力分解,分別建立射流水微團在x軸方向和y軸方向的動力學方程。
式中:k為空氣阻力系數;ω為水微團運動速度與x軸方向的夾角;vx和vy分別為水微團運動速度在x軸和y軸上的速度分量,vx=v·cosω,vy=v·sinω。根據式(6)消去變量vx和vy可得式(7)。
假設射流水微團初始俯仰角為ω0,初始高度為z1,初始速度為v0;根據分離變量求解式(7),可得:
消去時間變量t,可得射流軌跡方程:
(9)

(10)
即可求出θ的近似解為:


圖4 水炮垂直定位目標示意圖
同時根據式(2)和式(3)可得:
即可求得水炮打擊需要的俯仰角為:
(13)
通過以上方法對水炮水平角和俯仰角進行調整,可以使水炮較為準確地對準目標。但考慮到現實環境的復雜性、目標的運動速度以及光電本身存在的穩定誤差等因素,使得水炮的實際打擊點與射流模型得到的水炮俯仰角和水平角存在一定誤差,因而必須對水炮打擊角度進行二次調整。
由于射流軌跡識別技術[14-15]以及目標檢測[16-17]的算法已經比較成熟,通過圖像處理技術檢測出射流的落點(xl,yl)以及目標中心點位置(xr,yr),二者之間的位置之差為

圖5 落點檢測圖片
在圖像坐標系中,圖像左上角為坐標原點,水平向右為x方向,垂直向下為y軸方向。對于圖5而言,Δx>0,Δy>0,水炮此刻的轉動方向應為:水平逆時針轉動,垂直向下轉動。根據Δx和Δy的正負來對水炮的轉動方向進行調整,如表1所示。

表1 水炮與攝像頭的位置差異及水炮轉動方向的對應關系
對水炮角度進行二次調整,設置調整像素的臨界值ε1、ε2。若像素位置差小于ε1,則默認水炮打中目標,不進行調整。若像素位置差在[ε1,ε2]中,則在原有的角度轉動角度上增加二次調整角度偏差值。若像素位置差大于ε2,則給予一個恒定的二次調整角度。以此不斷迭代調整,直至將像素位置差控制在ε1內,使得水炮的打擊相對準確。位置差與水炮角加速度λ的關系如圖6所示。

圖6 位置差與水炮角速度關系圖
結合式(5)可得二次調整后水炮水平角為:
同理,結合式(13),最終的水炮俯仰角為:
水炮采取的是步進式電機進行控制,水平方向和垂直方向細分數都為32加速度為32 000,射流速度為恒定值v0=4.2 m/s。水炮與攝像頭之間的x軸相對距離為0.40 m,y軸相對距離為0.35 m,z軸相對距離為1.10 m。攝像頭高度z1=2.09 m,水炮高度z2=0.99 m,本文選擇1 600×900的分辨率,即目標中心點坐標為(800,450)。
如圖7所示,在第12幀時,目標中心點坐標為(799,450),落點坐標為(885,514),Δx=86,Δy=64,故判斷目標未打中,即從垂直向下、水平逆時針方向運動。在后續幀中不斷對水炮角度進行調整,一次次靠近向目標靠近。第19幀時,目標中心點坐標為(802,464),檢測到的落點坐標(845,463),此時系統判斷打中目標。在后續的第23幀、38幀、52幀、73幀持續對目標進行打擊,打擊效果良好。

圖7 閉環控制打擊效果圖
本文提出了一種基于圖像視覺處理的射流閉環控制方法,對水炮的俯仰角和水平角進行二次調整對目標進行準確且持續性打擊。主要有以下貢獻:1) 根據目標測距和攝像頭轉動的角度,建立了一種幾何模型,對水炮回轉角進行計算。2) 在受壓力、流量、高度等都固定的情況下,建立了一種基于射流運動的俯仰角偏轉模型,對水炮偏轉角進行計算。3) 將射流檢測、光電轉動角度和水炮控制結合起來,提出一種水炮閉環控制方式,持續對目標進行打擊。
由于時間、經歷以及實驗條件上的限制,本文的研究仍然存在可以完善和改進的空間,以下幾個方面可以進一步完善。1) 主要考慮重力和空氣阻力的因素,沒有綜合考慮對壓力、流量、高度、空氣密度以及風力等因素對射流運動軌跡模型的影響。2) 水炮射流末端存在明顯的發散等問題,對射流落點的檢測和打擊的準確性造成一定的干擾。3) 當前水炮架設高度低且流量小。