李飛,邱文揚(yáng),郭志幫,李天樂,鄧鋰強(qiáng)
(廣東石油化工學(xué)院 理學(xué)院,廣東 茂名 525000)
渦旋是自然界普遍存在的一種流動(dòng)現(xiàn)象,廣泛存在于工程設(shè)計(jì)、軍事探測、氣候預(yù)測等,因此對(duì)渦旋產(chǎn)生的研究及測量具有重要意義。中國海洋大學(xué)海洋與大氣學(xué)院物理海洋教育部重點(diǎn)實(shí)驗(yàn)室使用旋轉(zhuǎn)平臺(tái)[1]的方法產(chǎn)生渦旋,這樣產(chǎn)生的渦旋是一個(gè)定常的渦旋,只在垂直方向發(fā)生變化,并不能在水平方向移動(dòng)。而自然情況下,渦旋既可水平方向移動(dòng),也可豎直方向移動(dòng),其本質(zhì)為渦旋能量的耗散。流體力學(xué)表明,流體中只要有渦量源存在,就會(huì)產(chǎn)生渦。本實(shí)驗(yàn)緊抓渦旋產(chǎn)生的性質(zhì),采取“搓”的形式產(chǎn)生渦旋,使用舵機(jī)做成一個(gè)類似機(jī)械臂加上一個(gè)船槳,以劃船的形式滑動(dòng)水體。由于流體一層一層之間有體積力(引力、慣性力、電磁力、柯氏力)、表面力的作用,最終形成可觀的流線,在一定程度上形成客觀的渦旋。目前,測量渦旋的主要方法為PIV方法,但PIV系統(tǒng)成本較高且受空間分辨率限制。隨著機(jī)器視覺圖像算法的廣泛應(yīng)用,光流法主要應(yīng)用于目標(biāo)檢測和目標(biāo)跟蹤,早期的光流法采用了Lucas-Kanade 方法[2],2002年Farneback基于圖像恒定假設(shè)提出了Farneback光流法[3],與Lucas-Kanade 方法相比,其準(zhǔn)確率更高。該方法為稠密光流法,可以計(jì)算每個(gè)點(diǎn)的運(yùn)動(dòng)速度?;诖?,本文將該方法推廣到流體渦旋的測量。
實(shí)驗(yàn)裝置如圖1所示,位于下方的水槽為亞克力板材質(zhì),100.0 cm×60.0 cm×25.0 cm(長×寬×高),水槽壁厚0.5 cm,水槽底部為純白色。實(shí)驗(yàn)時(shí)水槽注水深15 cm(水的深度對(duì)渦旋有一定影響,但本實(shí)驗(yàn)重點(diǎn)在于使用光流法測量渦旋,探索光流法測量渦旋的可行性),待液面平穩(wěn),將舵機(jī)控制器連接到計(jì)算機(jī),使用計(jì)算機(jī)的舵機(jī)控制軟件,設(shè)定舵機(jī)的動(dòng)作(主要有舵機(jī)的轉(zhuǎn)動(dòng)角度、轉(zhuǎn)動(dòng)速度、槳的入水深度、傾斜角度)。啟動(dòng)電源后,攝像頭下面將會(huì)形成渦旋并向一個(gè)方向移動(dòng)。本實(shí)驗(yàn)采用的攝像頭像素為100萬,視頻采集幀數(shù)為30 幀/s,攝像頭在B調(diào)節(jié)支架上可以調(diào)節(jié)高度,從而調(diào)整視頻采集區(qū)域。
圖1 實(shí)驗(yàn)裝置
光流場就是用于描述三維空間中的運(yùn)動(dòng)物體表現(xiàn)到二維圖像中的一種方法,所反映的是像素點(diǎn)的運(yùn)動(dòng)向量場。光流法利用圖像序列中的像素在時(shí)間域上的變化、兩幀之間的相關(guān)性來計(jì)算出兩幀之間物體的運(yùn)動(dòng)信息。光流法作出如下假設(shè)[4]:(1)同一個(gè)空間像素灰度值,在各個(gè)圖像固定不變;(2)相鄰幀像素運(yùn)動(dòng)較小;(3)鄰域具有相同光流。假設(shè)圖像序列可表示為
I(X,t),X=[x,y]
(1)
式中:I為像素點(diǎn)光流亮度強(qiáng)度;X為流場位置。
視頻中的每個(gè)前后幀提取出來之后可作為一個(gè)圖像序列。假設(shè)圖像亮度恒定,即圖像亮度沒有變化,則導(dǎo)數(shù)為0。根據(jù)泰勒展開可得
(2)
(3)
在微小時(shí)間內(nèi)的速度,可以記為
(4)
則有:
(5)
得到的方程為光流方程,亦為超定方程。光流法核心是要求解此方程,得到u,v值。求解此方程需要用到Farneback算法。Farneback假設(shè)圖像梯度和局部光流不變。從攝像頭獲得的二維圖像可表示為
I(X)=XTAX+bTX+c
(6)
對(duì)式(6)進(jìn)行系數(shù)化則:
I(x,y)=r1+r2x+r3y+r4x2+r5y2+r6xy
(7)
=XTAX+(b-2Ad)TX+dTAd-bTd+c
(8)
據(jù)光流法基本假設(shè),有:
A1=A,b1=b-2Ad,c1=dTAd-bTd+c
(9)
如果A1非奇異,則由式(9)可得
(10)
理論上有A1=A,但實(shí)際中難以能滿足這一項(xiàng)要求,因此需要通過求平均值來近似真實(shí)值。所作處理如下:
(11)
用空間變化的位移場來替代全局變量d,得到
A′(X)d(X)=Δb(X)
(12)
理論上,式(12)可以逐點(diǎn)求解,但是這樣不利于提高算法的穩(wěn)定性也會(huì)對(duì)計(jì)算成本造成浪費(fèi),這時(shí)需要對(duì)鄰域進(jìn)行估計(jì)。假設(shè)位移場只是緩慢變化的,就可以在每個(gè)像素的鄰域上集成信息,因此需要盡可能地在鄰域中找到最小化領(lǐng)域范圍。
(13)
根據(jù)二維高斯分布確定的鄰域中每個(gè)點(diǎn)的權(quán)函數(shù),利用最小二乘法的原理可得:
d(X)=∑(ωATA)-1∑ωATΔb
(14)
這意味著要先計(jì)算ATA和ATΔb,再通過權(quán)重函數(shù)ω進(jìn)行加權(quán)平均運(yùn)算,最終根據(jù)式(14)求解位移,此解決方案存在并且是唯一的。當(dāng)位移場可以根據(jù)某種運(yùn)動(dòng)模型進(jìn)行參數(shù)化時(shí),就可以提高算法的魯棒性。對(duì)于線性參數(shù)運(yùn)動(dòng)模型來說,一個(gè)具有六個(gè)參數(shù)的運(yùn)動(dòng)模型為
工筆畫花鳥題材。工筆花鳥也是現(xiàn)代皮雕工藝表現(xiàn)的一個(gè)方面。從走刀線到壓邊,起鼓,打陰影,再上色,通過這樣程序來表現(xiàn)傳統(tǒng)工筆花鳥的意蘊(yùn)。這類的皮雕風(fēng)格,對(duì)刀線的要求較高,就和工筆畫里的線條一樣,起落有節(jié)奏,有輕重。沒有太多的裝飾線條,背景紋的處理也是結(jié)合中國工筆畫特有的特點(diǎn),有實(shí)有虛。并且結(jié)合工筆畫暈染技法,用皮雕專用染料進(jìn)行上色暈染,仿佛半立體的工筆畫。
dx(x,y)=a1+a2x+a3y+a4x2+a6xy,dy(x,y)=a1+a2x+a3y+a5y2+a6xy
(15)
此時(shí)
D=SP
(16)
式(16)代入式(13)得到加權(quán)最小二乘法問題為
(17)
式中:i為鄰域內(nèi)各點(diǎn)像素的索引。
此時(shí),式(17)的解為
(18)
通過計(jì)算STATAS和STATΔb,再對(duì)它們進(jìn)行加權(quán)平均,最終計(jì)算得到位移。
由于光流法的三個(gè)基本假設(shè)都是強(qiáng)假設(shè),要求場景本身變化小,像素幀間運(yùn)動(dòng)足夠小,但實(shí)際場景很難滿足。尤其假設(shè)(3),只適合變量較小的情況。因此,該算法還要引進(jìn)金字塔算法。
金字塔算法[5]有效地解決了像素位移較大的問題,其核心是縮小圖片尺寸,縮小像素位移,圖像足夠小時(shí),相鄰兩幀之間圖像的大尺度運(yùn)動(dòng)將會(huì)被縮小,這樣便適用光流法約束條件。該算法設(shè)定I、L相鄰兩時(shí)刻的圖像,Ik、Lk為Ik-1、Lk-1層通過粗采樣得到的較低分辨率的圖像,這里用Ik、Lk層得到的最初估計(jì)光流場gL對(duì)L層作預(yù)平移Ik-1、Lk-1層在gL的基礎(chǔ)上求該層的光流dL,這樣求得的殘余光流向量dL=[dLx,dLy]T就足夠小,因此可以經(jīng)過標(biāo)準(zhǔn)的光流法來求出這個(gè)運(yùn)動(dòng)矢量。再利用獲得的dL與gL,對(duì)L-1層的g(L-1)做估計(jì)。最終所有層的分段光流d疊加得到光流和。使用金字塔圖像計(jì)算光流,對(duì)一個(gè)大的像素偏移的矢量d,可以經(jīng)過計(jì)算幾個(gè)較小的殘余光流來得到。
計(jì)算光流場使用Python-opencv庫提供的Farneback光流法方案,該方法采用文獻(xiàn)[6]基于Gunner Farneback提出的方法,可以得到整個(gè)流場中每個(gè)像素點(diǎn)的位移值。
圖2 攝像頭與運(yùn)動(dòng)場
調(diào)整好裝置可得到圖3所示視場,調(diào)整舵機(jī)轉(zhuǎn)速和槳的角度,使其在產(chǎn)生穩(wěn)定的渦旋之后回到初始位置,并在渦旋產(chǎn)生時(shí)開始采集數(shù)據(jù)。光流算法計(jì)算每一個(gè)像素點(diǎn)的運(yùn)動(dòng)情況,實(shí)際使用python實(shí)時(shí)采集并處理計(jì)算量太大。數(shù)據(jù)采集先按攝像頭可視范圍和實(shí)際流場的邊界對(duì)應(yīng),攝像頭采集到尺寸為1280×720的視頻,將其中270×75個(gè)像素點(diǎn)的數(shù)據(jù)導(dǎo)出到Excel。簡要的算法流程見圖4。
圖3 流場可視化范圍 圖4 算法流程
得到數(shù)據(jù)后,用Matlab處理數(shù)據(jù)。對(duì)數(shù)據(jù)進(jìn)行分析,發(fā)現(xiàn)有部分異常數(shù)據(jù)后,剔除異常值。使用拉依達(dá)法剔除異常數(shù)據(jù),當(dāng)測量值與平均值相差大于標(biāo)準(zhǔn)偏差的3.5倍時(shí),將之剔除。此方法適合大樣本數(shù)據(jù),數(shù)據(jù)剔除效果見圖5。
a 原始數(shù)據(jù) b 剔除異常值后數(shù)據(jù)
(19)
由速度環(huán)量和渦通量的斯托克斯公式,可以計(jì)算渦量,其表示為
(20)
式中:L,S分別為無線小圓的周長和面積。
去除高階小量,平均切向速度為
(21)
式中:a為半徑。
M點(diǎn)渦量的大小是流體微團(tuán)繞該點(diǎn)旋轉(zhuǎn)的平均角速度的兩倍,方向與微團(tuán)的瞬時(shí)轉(zhuǎn)動(dòng)軸線重合。其渦量表示為
(22)
實(shí)驗(yàn)中,相鄰兩幀之間由于時(shí)間極短,相鄰兩幀之間同一個(gè)點(diǎn)的位置的位移偏轉(zhuǎn)角度可以看作這個(gè)點(diǎn)繞無限小的圈轉(zhuǎn)動(dòng)(見圖6)。d1為第K幀某個(gè)位置的一點(diǎn)繞無限小圈轉(zhuǎn)動(dòng),d2為第K+1幀同一個(gè)點(diǎn)繞同一個(gè)無限小圈轉(zhuǎn)動(dòng),相鄰兩幀的角度通過光流法采集。
圖6 相鄰兩幀流體微團(tuán)偏轉(zhuǎn)角度
通過光流法采集的數(shù)據(jù),經(jīng)過處理后得出流場的速度分布(見圖7)和流場渦量分布(見圖8)。
圖7 流場速度分布 圖8 流場渦量分布
由圖7可知,渦旋產(chǎn)生時(shí)的速度很快,但渦旋移動(dòng)速度耗散也很快。由圖8可知,流場幾乎處處都存在渦量,只有漩渦所在的位置渦量較小,甚至沒有,這符合自由渦的理論。這證明了使用光流法可以對(duì)渦旋進(jìn)行測量,其準(zhǔn)確性在一定程度上接近理論值。
本次實(shí)驗(yàn)將機(jī)器視覺光流法用于流體渦旋的測量,實(shí)驗(yàn)證明該方法在二維層面測量流場的速度分布等流體力學(xué)量是可行性的,同樣使用光流法對(duì)海洋大氣流場進(jìn)行測量分析也許可行。但本實(shí)驗(yàn)沒有使用海洋大氣流場進(jìn)行測量分析,這是該實(shí)驗(yàn)的不足之處。另外,光流法適用于二維層面,現(xiàn)實(shí)的流場是復(fù)雜三維的,所以光流法對(duì)三維流場具有一定的局限性,有待進(jìn)一步探索。