国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于計算機視覺的游泳型魚類擺尾頻率提取方法

2019-11-13 05:31:20范繼澤余心杰盧煥達
漁業(yè)現(xiàn)代化 2019年5期
關(guān)鍵詞:魚體曲率魚類

范繼澤,劉 鷹,余心杰,胡 雨,盧煥達

(1 大連海洋大學海洋科技與環(huán)境學院,設(shè)施漁業(yè)教育部重點實驗室,遼寧 大連 116023;2 浙江大學寧波理工學院,浙江 寧波 315000)

動物行為是基因、神經(jīng)功能和環(huán)境相互作用的統(tǒng)一的生物學過程,行為數(shù)據(jù)不僅用于解釋神經(jīng)系統(tǒng)如何工作,還可以系統(tǒng)地將基因和環(huán)境結(jié)合在一起[1],例如躲避捕食、求偶。游泳行為是魚類的基本行為[2],可通過魚類游泳的特征反演魚類的生理狀態(tài),如Ohlberger等[3]用擺尾頻率和體重反演魚類的活躍代謝率,Steinhausen等[4]過擺尾頻率反演魚類的游動速度和耗氧量。在游泳行為的諸多指標中,一分鐘內(nèi)擺尾次數(shù)(即擺尾頻率)是最重要的指標之一,不僅被廣泛用于指示魚類壓力[5-6],也是魚型機器人和仿真模擬的一個重要參數(shù)[7-11]。因此,精確測定魚類游泳行為中的擺尾頻率具有重要的理論和實踐意義。然而,在實際生產(chǎn)實踐中,往往只能通過人工觀測并計數(shù)的方法測定魚類行為數(shù)據(jù),費時費力[12-13]。近幾年,魚類行為的自動測量已成為研究熱點[14-16]。其中,魚類擺尾頻率的自動測量取得了一些進展[17]。

魚類擺尾頻率的測量方法大致可分為3類:(1)基于加速度的測量方法。如Kawabe等[18]將加速度測量器安裝在底棲型魚類的背部,通過水流加速度的變化分析擺尾頻率,但是背部的裝置會影響魚類游動,破壞魚體周邊的水流流場。(2)基于聲學的測量方法。聲學方法可以適應(yīng)多種水質(zhì)條件,可以在水體透明度不高的情況下使用,如Ross等[19-20]使用成像聲吶分析野外洄游魚類的長度和擺尾頻,但是成像聲吶在水體很小、水位很低的實驗室環(huán)境內(nèi)使用限制很大,且設(shè)備昂貴。(3) 基于計算機視覺測量的方法。利用計算機視覺技術(shù)對魚類行為進行分析是一種自動、非入侵式、經(jīng)濟且有效的方法[16],如Terayama等[14]通過分析魚類尾部特征點偏離身體自然狀態(tài)中線的距離分析擺尾頻率;Marques等[21]提取斑馬魚稚魚體脊椎上的特征點,通過計算脊椎彎曲曲率,統(tǒng)計擺尾頻率。然而在環(huán)境背景復(fù)雜多變的情況下,檢測結(jié)果噪音抑制仍然是亟待解決的問題[7]。

本文將魚類擺尾根據(jù)魚體脊椎曲線的曲率劃分為左右半拍,每個半拍是魚體由放松至彎曲再回到放松的過程,通過檢測半拍發(fā)生的次數(shù),最后得到擺尾次數(shù)。針對前景提取中的噪音問題,提出一種消除細化算法結(jié)果中誤差的方法,在特征點提取部分使用harris角點檢測算法[22]提取二值圖像細化后魚體中線的特征點,其中兩個特征點為頭部和尾部標識,最后一個是脊椎曲線的harris角點,計算三個特征點構(gòu)成的圓的曲率,用以表征魚類擺尾狀態(tài)。

1 材料和方法

1.1 試驗材料

試驗使用的大黃魚(Larimichthyscrocea)由象山縣港灣水產(chǎn)苗種有限公司提供,暫養(yǎng)3 d后進行試驗。暫養(yǎng)期間水溫控制在(24.0±1.0)℃,每2 d換水30%,每天吸底一次,正式試驗前禁食24 h,溶氧保持在6.0 mg/L左右。

1.2 試驗系統(tǒng)

試驗使用的是直徑120 cm白色半透明水桶和長寬高為50 cm、22 cm、40 cm藍色封閉水槽。選擇大黃魚叉長為(9.2±0.8)cm。將試驗魚放置于水桶內(nèi)適應(yīng)30 min后進行試驗。每一次錄制視頻8 h,試驗持續(xù)7 d,白天采用自然光,晚上使用紅外光。試驗裝置的頂部放置紅外攝像頭記錄試驗魚的游泳行為。攝像頭型號為海康威視高清攝像機(DS-2CD7A46F-IZS),攝像機安裝在水桶正上方,距水面1.2 m;其采集圖像為24 bit RGB 1080× 1920真彩圖像,采集速率25幀/s。試驗裝置如圖1所示。試驗進行過程中用透光率50%遮光布將試驗水槽四周圍住,禁止在試驗水槽周圍活動,避免聲音的干擾。每條魚選擇5個1 min視頻片段,共35個,分別采用人工計數(shù)、程序計數(shù)方法采集魚類游泳過程中的擺尾頻率。

圖1 試驗系統(tǒng)

1.3 魚類擺尾半拍定義

根據(jù)魚體脊椎曲線的曲率,將魚類擺尾劃分為左右半拍,每個半拍是魚體由放松至彎曲再回到放松的過程(圖2)。

圖2 半拍定義

1.4 擺尾頻率提取

為了對魚類的擺尾次數(shù)進行人工統(tǒng)計,每秒截取五幀,對300幅質(zhì)量較好的圖片其進行標記。算法首先利用均值背景建模生成沒有魚類的背景圖片,然后通過背景減法提取出前景目標魚體,再把前景圖形細化處理,消除細化算法不完美導(dǎo)致的分叉,提取魚體首尾和脊椎曲線上的特征點,最后計算曲率,得到擺尾次數(shù)。算法流程如圖3所示。

圖3 擺尾次數(shù)統(tǒng)計算法流程圖

1.4.1 前景提取

利用數(shù)學建模的方法建立一幅背景圖像幀與當前圖像幀的數(shù)學關(guān)系,將兩幀圖像對應(yīng)像素點的灰度值進行相減,并取其絕對值,得到差分圖。

Dn=|fn(x,y)-B(x,y)|

(1)

式中:Dn為前景提取的結(jié)果;fn(x,y)為當前圖像幀;B(x,y)為背景圖像幀。

逐個對像素點進行二值化處理,得到二值化圖像Rn。其中,灰度值255的點即為前景(運動目標)點,灰度值為0的點即為背景點。

(2)

式中:Rn為二值化圖像;Dn為前景提取的結(jié)果;T為圖像亮度閾值。對圖像Rn進行連通性分析,選取一個前景像素點作為種子,然后根據(jù)連通區(qū)域的兩個基本條件(像素值相同、位置相鄰)將與種子相鄰的前景像素合并到同一個像素集合中,最后得到的該像素集合則為一個連通區(qū)域。取最大連通域,得到含有完整運動目標的圖像。

1.4.2 圖像細化

得到前景圖像的掩模,使用二值圖像細化算法[23],提取魚體的中線。細化結(jié)果是原曲線的中心線,本文使用基于索引表的二值圖像細化算法,根據(jù)邊緣點的八連通域情況查找索引表,以確定該邊緣點是否能夠被刪除。

1.4.3 分叉消除

背景減法得到的圖像是很細致的,魚的尾鰭、胸鰭也會被提取。使用二值圖像細化的結(jié)果會因為算法連通性的要求出現(xiàn)分支,對后來的特征點檢測和曲率計算造成很大的影響。細化后圖像使用3×3的值全為1的算子進行卷積(圖4),若卷積結(jié)果為2,則在圖中是線的端點,若值為3則是點在直線上,若值為4則是分叉的三叉節(jié)點,從端點開始遍歷細線上的像素點,若小于固定閾值,則刪除相應(yīng)游程,得到無分叉的魚體中線。

圖4 細化后圖像的三種圖像結(jié)構(gòu)

1.4.4 特征點檢測

算法基本思想是使用一個固定窗口在圖像上進行任意方向上的滑動,比較滑動前、后兩種情況和窗口中像素灰度變化程度,如果存在任意方向上的滑動,都有著較大灰度變化,則該窗口中存在特征點。當窗口向[u,v]方向移動時,那么滑動前、后對應(yīng)的窗口中的像素點灰度變化描述如下:

(3)

式中:E(u,v)是灰度變化描述函數(shù);x,y是窗口內(nèi)所對應(yīng)的像素坐標位置;(u,v)分別是窗口的偏移量;w(x,y)是窗口權(quán)重函數(shù)。

將w(x,y)函數(shù)設(shè)定為以窗口中心為原點的二元正態(tài)分布。如果窗口中心點是特征點時,移動前、后該點的灰度變化應(yīng)該最為劇烈,所以該點權(quán)重系數(shù)設(shè)定較大,而離窗口中心(特征點)較遠的點,這些點的權(quán)重系數(shù)可以設(shè)定較小,以示該點對灰度變化貢獻較小,則使用二元高斯函數(shù)來表示窗口函數(shù),最終得到:

(4)

式中:E(u,v)是灰度變化描述函數(shù);w(w,y)為權(quán)重窗口;I(x,y)圖像灰度值;Ix,Iy分別為x,y方向的導(dǎo)數(shù);u,v分別為x,y方向的偏移量。

求出(4)中矩陣特征值記為λx、λy。通過判斷特征值的情況可以區(qū)分出這三種特征點的類型,轉(zhuǎn)角點:在水平、豎直兩個方向上變化均較大的點,即λx、λy都較大;直線上的點:僅在水平或豎直方向變化較大的點,即λx和λy只有其一較大;平滑區(qū)域:在水平、豎直方向的變化量均較小的點,即λx、λy都較小。圖5為特征點檢測算法的結(jié)果。

1.4.5 曲率計算和半拍統(tǒng)計

在魚體中線(圖6圓中不規(guī)則實線)上提取三個特征點,如圖6中A、B、C三點,計算三點構(gòu)成的圓的曲率,用以表征魚體的彎曲程度,使用余弦定理求角BAC的角度,化為正弦后帶入下圖公式:

(5)

式中:A為角BAC的角度;a為角BAC的對邊;R是圓的半徑。

圖5 特征點提取的結(jié)果

圖6 曲率計算

每當魚體中線由直線變彎曲再變回直線,記為一個半拍,表現(xiàn)在曲率序列上則是峰的形狀,通過計算魚體曲率變化的序列,使用1×5的均值濾波器時間序列上平滑原始尾部曲率,濾除由于跟蹤噪聲引起的小波動。統(tǒng)計最大值大于閾值峰的數(shù)量,即可得到魚類擺尾的半拍數(shù)量,圖像的時間尺度是0.125 s,統(tǒng)計得到的擺尾數(shù)目與總時間相除,得到最終的擺尾頻率。

2 結(jié)果

使用絕對誤差評估算法的準確性。絕對誤差是測量值和真實值之間差的絕對值,手動跟蹤魚類并統(tǒng)計其擺尾次數(shù),并將結(jié)果與本方法估計的結(jié)果進行比較。

2.1 系統(tǒng)誤差

系統(tǒng)誤差是與分析過程中某些固定的原因引起的一類誤差,它具有重復(fù)性、單向性、可測性。即在相同的條件下,重復(fù)測定時會重復(fù)出現(xiàn),使測定結(jié)果系統(tǒng)偏高或系統(tǒng)偏低,其數(shù)值大小也有一定的規(guī)律。本文提出的算法誤差來源為前景提取中復(fù)雜的背景導(dǎo)致的魚體不完整,相鄰幀脊椎曲線上特征點的不匹配。當視頻中的魚類身體中線曲率為零時,測量的魚類身體曲率會有小幅波動,所以需要設(shè)定一個閾值用于過濾系統(tǒng)誤差。從數(shù)據(jù)集中選取300張曲率接近零的圖片,使用本算法統(tǒng)計曲率大小,計算絕對誤差。選擇不在擺尾狀態(tài)圖片的原因是其身體曲率真實測量值是零,測量值可以直接轉(zhuǎn)化為誤差值,用時更短。算法計算曲率的系統(tǒng)誤差在(0.001 4±0.000 62)。

2.2 閾值和正確率

算法使用魚體脊椎方向中線的曲率周期變化來計算擺尾頻率,每一次曲率由零到極大值再變?yōu)榱愕倪^程記為一次半拍。在統(tǒng)計過程中噪聲引起的小波動影響算法的正確性,設(shè)定閾值過濾誤差,即波峰數(shù)值小于閾值時不納入統(tǒng)計,使用系統(tǒng)誤差統(tǒng)計的均值加三倍標準差0.003和經(jīng)驗數(shù)值0.005分別統(tǒng)計結(jié)果(表1)。

表1 絕對誤差統(tǒng)計

3 討論

3.1 對比分析

分別利用擺尾頻率統(tǒng)計算法和Terayama等[14]的算法在本數(shù)據(jù)集上做驗證,結(jié)果如圖7所示。基于距離的算法在數(shù)值較小時表現(xiàn)得更穩(wěn)定,歸一化后數(shù)據(jù)的標準差為0.021,而基于曲率算法的標準差0.055?;谇仕惴ㄔ隰~體彎曲時表現(xiàn)得更好,測量錯誤的情況更少,基于距離的算法錯誤點數(shù)為5個,而基于曲率算法的錯誤點數(shù)為3個。算法的目的是標記擺尾的次數(shù),測量魚體中線曲率較大的圖像序列時波動劇烈會導(dǎo)致統(tǒng)計擺尾比實際值大,測量魚體中線曲率較小的圖像序列時會導(dǎo)致曲率參數(shù)候選區(qū)域變小。兩種方法都需要完整的提取圖像中魚的輪廓,不完整圖像會影響本文算法的特征點提取,也會影響魚類輪廓的質(zhì)心,影響距離測量。

圖7 算法結(jié)果對比

3.2 誤差傳播

算法由很多步驟組成,任何一個步驟出現(xiàn)誤差都會導(dǎo)致測量結(jié)果的偏差(表2),所以設(shè)計算法過程中需要不斷查看中間結(jié)果,以確保最終結(jié)果的正確率。

表2 各步驟錯誤率

分析每個步驟的誤差對最終結(jié)果的影響,對后續(xù)算法的分析和改進至關(guān)重要。前景提取的完整性是對算法結(jié)果影響最大的一種錯誤,輪廓不完整會導(dǎo)致細化結(jié)果出現(xiàn)分叉,而角點提取算法會優(yōu)先提取線條端點,使基于特征點的曲率計算結(jié)果出現(xiàn)波動,導(dǎo)致擺尾次數(shù)統(tǒng)計結(jié)果偏大,后續(xù)算法很難彌補(圖8)。胸鰭和尾鰭導(dǎo)致的細化結(jié)果分叉,也同樣會導(dǎo)致結(jié)果偏大。半拍統(tǒng)計中,閾值的選取過大會導(dǎo)致擺尾幅度較小的擺動不納入計算,使統(tǒng)計結(jié)果偏??;閾值選取過小會導(dǎo)致由誤差導(dǎo)致的曲率波動被計入擺尾次數(shù),導(dǎo)致統(tǒng)計結(jié)果偏大。

3.3 算法應(yīng)用

使用算法統(tǒng)計白天和夜間魚類擺尾次數(shù),結(jié)果如圖9所示,魚類在白天單位時間的擺尾次數(shù)較多。使用單因素方差分析結(jié)果具有顯著性差異(F=7.361,P<0.05)。

圖8 誤差傳播

圖9 不同時段擺尾次數(shù)統(tǒng)計

4 結(jié)論

提出一種基于計算機視覺的擺尾頻率測量方法。擺尾頻率不僅可以用于魚類生理的無接觸測量,也適用于水質(zhì)污染的生物判別和生物預(yù)警。使用算法估算擺尾次數(shù)的正確率為91.7%,正確率達到使用要求。本研究的未來發(fā)展方向是使用更魯棒的方法提取魚類輪廓,如使用全卷積神經(jīng)網(wǎng)絡(luò)做圖像的語義分割,將魚類和背景完整分離;使用多目標跟蹤方法測量魚群中多條魚的擺尾次數(shù)。

猜你喜歡
魚體曲率魚類
大曲率沉管安裝關(guān)鍵技術(shù)研究
一類雙曲平均曲率流的對稱與整體解
基于MFCC和ResNet的魚類行為識別
軸流泵內(nèi)魚體的運動行為與撞擊損傷分析
淡水魚水平往復(fù)振動頭尾定向輸送方法
淡水魚腹背定向裝置設(shè)計及試驗
半正迷向曲率的四維Shrinking Gradient Ricci Solitons
奇妙的古代動物 泥盆紀的魚類
探索科學(2017年5期)2017-06-21 21:16:16
魚類是怎樣保護自己的
魚類怎樣呼吸
平舆县| 如东县| 浏阳市| 鄂州市| 农安县| 同德县| 津市市| 平山县| 自贡市| 衡南县| 临猗县| 芮城县| 黎川县| 英吉沙县| 通化市| 惠来县| 九台市| 兴隆县| 维西| 土默特右旗| 江达县| 晴隆县| 重庆市| 苍山县| 胶南市| 武宁县| 元江| 安乡县| 乌兰浩特市| 阿拉善盟| 阿合奇县| 商丘市| 华池县| 肥东县| 盐源县| 容城县| 耒阳市| 北流市| 洪雅县| 正阳县| 谷城县|