張融,鄭宏遠,李錄,饒凱峰
1.北京航空航天大學(xué)機械工程及自動化學(xué)院,北京 100191 2.中國石油集團長城鉆探工程有限公司博士后工作站與中國石油大學(xué)(北京)博士后流動站,北京 100101 3.北京機電工程研究所,北京 100074 4.中國科學(xué)院生態(tài)環(huán)境研究中心,北京 100191
一種計量青鳉魚胸鰭和尾鰭擺動頻率和幅值的計算機視覺算法
張融1,鄭宏遠2,*,李錄3,饒凱峰4
1.北京航空航天大學(xué)機械工程及自動化學(xué)院,北京 100191 2.中國石油集團長城鉆探工程有限公司博士后工作站與中國石油大學(xué)(北京)博士后流動站,北京 100101 3.北京機電工程研究所,北京 100074 4.中國科學(xué)院生態(tài)環(huán)境研究中心,北京 100191
青鳉魚在飲用水安全領(lǐng)域具有很高的應(yīng)用價值,其魚鰭的活動狀態(tài)可以反映水質(zhì)的污染狀況。但由于技術(shù)條件的限制,傳統(tǒng)的方法無法實時而有效地提取到這些特征。針對這個問題,提出了一種可以高效識別并測量青鳉魚胸、尾鰭擺動頻率和幅值的計算機視覺算法。其中,為了快速地提取到這2個細節(jié),自動閾值分割、幀差法、背景差分法、重心法、圖像卷積和骨架細化等耗時極短的圖像處理方法被應(yīng)用到這項研究當中。初步試驗顯示這種算法在應(yīng)用過程中是高效而可行的。它可以被廣泛地應(yīng)用到水環(huán)境監(jiān)測領(lǐng)域,如研究有毒物質(zhì)對青鳉魚行為特性的影響和評估水環(huán)境的危險程度。
青鳉魚;魚鰭;計算機視覺算法;在線監(jiān)測;水質(zhì)預(yù)警
由于魚類作為水生態(tài)系統(tǒng)中的重要一環(huán),它們可以充當環(huán)境監(jiān)測領(lǐng)域理想的“哨兵”和測量水體中有毒化學(xué)物質(zhì)的典型有機體[1]。在它們當中,青鳉魚的行為突變可用于生物預(yù)警、水體綜合毒性評估和預(yù)測危險化學(xué)品對生物種群的影響[2]。而其胸鰭和尾鰭的擺動頻率和幅度值的變化往往是魚體出現(xiàn)各種異常行為的早期反應(yīng),所以它們的這2項特征可以作為分析水環(huán)境質(zhì)量的一種有力工具。然而在實際應(yīng)用中,盡管已有一些學(xué)者和機構(gòu)對一些特殊魚種進行了相似的研究并提出了一些解決方案[4-11],但由于青鳉魚游動速度快,活躍性高、外表顏色過淺(往往邊界部分和背景顏色相近)、且體型微小(成魚僅有30~40 mm長),所以很難實時而有效的提取到這2項特征。
目前解決類似問題的主流方法是借助計算機視覺技術(shù)來分割出每幀圖像當中魚類的外輪廓,進而提取骨架并推算出部分魚鰭的活動規(guī)律[4-11]。如應(yīng)曉芳[4]借助二維Otsu分割、顏色聚類、輪廓搜索方法和質(zhì)心法實現(xiàn)了對某些魚類骨架的提取和魚尾的實時定位。文聞[5]使用圖像金子塔和圖像卷積算法建立了斑馬魚的骨架模型。張偉濤[6]使用圖像增強、背景差分、顏色閾值、距離變換等圖像處理算法建立了部分魚種的骨架模型。但上述方案均存在較大的局限性,實驗表明目前尚不存在通用的有效方法,無法應(yīng)用于青鳉魚這種外表顏色偏淡且各部分顏色不一致的場合,而且很少有關(guān)于魚類胸鰭特征的識別。
為了實現(xiàn)識別青鳉魚胸鰭和尾鰭并記錄其活動規(guī)律的功能,一套專門的計算機視覺算法被提出,主體思想是借助試驗臺和工業(yè)相機實時而連續(xù)地捕捉包含青鳉魚的圖像;再使用二維OTSU、幀差法和背景差分法濾除每幀圖像中的背景并進行二值化處理;然后結(jié)合顏色分類表、重心法、距離變換和圖像卷積等算法獲得青鳉魚魚鰓的重心和魚體的骨架的詳細幾何模型,最后結(jié)合多幀圖像的提取結(jié)果獲取青鳉魚胸鰭和尾鰭的擺動頻率和幅值。
1.1 實驗平臺
實驗平臺的主要作用為將青鳉魚限制在特定的范圍和環(huán)境中并連續(xù)獲得包含青鳉魚各種信息的彩色圖像。其主要作用元件為德國TIS公司生產(chǎn)的DXK 23G618型工業(yè)CCD相機(見圖1a)和一個嵌套式的超白玻璃容器(用于盛裝待觀察的青鳉魚,見圖1c)。其中相機的分辨率為640×480;曝光時間小于1/1000 s;每分鐘捕獲至少30幀圖像并使用千兆網(wǎng)線將其傳輸給計算機。圖1d為通過試驗臺獲得的一幀RGB格式的彩色圖像。實驗中所用計算機的主要配置為i7六核處理器(主頻3.2 GHz)和32 G高速內(nèi)存。
1.2 方法
實驗方法使用了新的計算機視覺算法。
圖1 實驗平臺:(a)攝像機,(b)實驗臺整體,(c)目標容器,(d)相機捕獲的一幀彩色圖像
1.2.1 二維閾值分割(OTSU)
由于實驗臺的光線不完全均勻,所以青鳉魚在不同的姿態(tài)下活動時所呈現(xiàn)的顏色均不同,且這種魚的身體顏色很淡,與邊框顏色十分接近,導(dǎo)致無法使用固定的閾值進行分割,所以這里引入了二維OTSU算法。
在將源圖像轉(zhuǎn)化為灰度圖后,令圖像的灰度等級數(shù)量為L份;S,T為區(qū)分目標像素點的閾值;角標0和1分別代表青鳉魚和背景。
(1)
(2)
(3)
(4)
(5)
(6)
最優(yōu)閾值S和T由公式(7)決定(α和β為修正系數(shù)):
(7)
圖2為經(jīng)過OTSU算法處理后的一幀二值圖,可以發(fā)現(xiàn)仍有很多背景存在,當青鳉魚游至容器邊界時,算法將無法分辨出目標,所以在算法中加入了背景差分法和幀差法思想。
1.2.2 融合了幀差法的背景差分算法
圖3為幀差法的核心思想,經(jīng)分析發(fā)現(xiàn),其中的拖影區(qū)(ghosting)的像素可用于更新背景差分法中的背景。
圖2 經(jīng)過OTSU算法處理后的圖像
圖3 兩連續(xù)幀圖像間的幀差模型
公式(9)為背景差分法中背景區(qū)域的更新方程,
(8)
(9)
公式(10)為背景差分法的核心方程,圖4為去除目標背景的整體過程,最后的處理效果見圖5。
事實上由于青鳉魚的活躍性很高且游動速度很快,算法往往在啟動10 s內(nèi)便可以得到理想的前景圖像。
INf=IN-BN
(10)
圖4 提取青鳉魚(前景)的整體流程圖
圖5 經(jīng)過幀差法和背景差分法處理后的圖像
1.2.3 青鳉魚骨架的提取
為了在短時間內(nèi)準確的求得青鳉魚的骨架數(shù)據(jù),算法融入了對距離變換求卷積的方法,其核心思想基于中軸變換。首先計算二值圖像的距離變換圖。令二值圖像中白色代表目標,像素值為1,黑色代表背景,像素值為0。而距離變換圖是一幅新的圖像,它把二值圖像重新變換為灰度圖像,該圖像的每個輸出像素被設(shè)置成與輸入圖像中0像素最近的距離。
隨后對距離變換圖做4次卷積運算,所用的卷積核分別為:
定義圖像為I(x,y),卷積核為G(x,y)(其中0
再將4幅卷積圖像進行合成運算,新圖像每一點的像素值為4幅卷積圖像中對應(yīng)點灰度值的最大值。最后把獲得的新圖像通過閾值分割轉(zhuǎn)換為二值圖像,即獲得了骨架(見圖6)。
圖6 經(jīng)過卷積運算得到的青鳉魚骨架
上述方法獲得的骨架并不連續(xù),骨架寬度也不是單像素的,同時存在很多毛刺以及獨立的分支。為了得到一個單像素寬度的連續(xù)骨架,引入了骨架細化算法,其過程為依次對前面所得圖像進行開運算,膨脹,腐蝕,細化等處理(效果見圖7)。
遍歷骨架中所有像素點,去除其中所有相鄰像素點超過2個的圖像像素和連續(xù)個數(shù)小于一定數(shù)量的點。并對剩下的像素點進行編號(見圖8)。
1.2.4 青鳉魚魚鰓的識別及其重心坐標的確定
為了定位骨架中魚尾末端的坐標以及胸鰭根部和末梢的坐標,魚鰓的重心被提取出來作為判定方向的參照,其中我們發(fā)明了顏色分類表算法并使用了濾波和一階重心矩方法。分類表的使用方法為只要判定每幀圖像中像素點的R、G、B同時滿足表中任何一行的條件且相鄰非零點的數(shù)量大于一定值便可判定該點屬于青鳉魚的魚鰓組織(見圖9)。
圖7 經(jīng)過骨架細化處理得到的青鳉魚骨架
圖8 經(jīng)過深度細化處理得到的青鳉魚骨架
(12)
(13)
(14)
魚鰓區(qū)域的重心為:
(15)
1.2.5 青鳉魚胸鰭和尾鰭骨架端點的確定
通過觀察發(fā)現(xiàn)青鳉魚胸鰭的根部和魚頭部分離魚鰓重心最近;胸鰭末梢次之;而魚尾最短;且胸鰭的骨架長度遠小于魚體主軀干的長度。據(jù)此可以定位出每幀圖像中魚尾末端的坐標以及胸鰭根部和末梢的坐標(見圖10和圖11)。
圖9 經(jīng)過顏色分類表和過濾算法處理后的圖像
圖10 魚尾端點的定位(骨架被加粗標記)
表1 顏色分類表Table 1 Color distribution table
圖11 青鳉魚胸鰭內(nèi)特征的定位
1.2.6 青鳉魚胸鰭和尾鰭的擺動頻率和幅值
通過前面的步驟,可以建立起整個青鳉魚身體的骨架模型(見圖12)。其中的魚尾參照點由以魚鰓重心為原點的一段圓弧(其半徑根據(jù)魚體的大小和魚尾的擺動圓心來決定)與魚體尾部方向骨架的交點來確定。
青鳉魚胸鰭和尾鰭擺動頻率計算方程:
(16)
其中n代表一定時間內(nèi)青鳉魚胸鰭(只計量其左胸鰭的活動數(shù)據(jù))或尾鰭的往復(fù)擺動次數(shù),t代表所經(jīng)過的時間。
青鳉魚胸鰭(只計量其左胸鰭的活動數(shù)據(jù))和尾鰭擺動幅值計算方程:
其中φ取α或β,φimax和φimin分別代表每個擺動周期內(nèi)青鳉魚胸鰭或尾鰭擺動的最大角度和最小角度。
為了驗證算法的有效性,一條健康的成年青鳉魚(3.5 cm長)在曝氣48 h后被置于目標容器內(nèi)并借助這套算法對其連續(xù)觀察了12 h。整個過程的所有幀圖像被保存為AVI視頻格式,這樣通過對視頻的慢鏡頭回放便可借助人眼完成對算法有效性的驗證工作。但由于技術(shù)條件限制目前還無法通過人眼驗證算法中計量擺動幅值部分的精確驗證。
圖13和圖14分別為通過算法和人眼得到的12 h內(nèi)青鳉魚胸鰭和尾鰭平均擺動頻率的對比走勢圖,我們可以發(fā)現(xiàn)兩種方式得到的數(shù)據(jù)幾乎一致,誤差小于1%。
圖13 分別通過算法和人眼得到的12 h內(nèi)青鳉魚胸鰭平均擺動頻率的對比圖
圖12 青鳉魚胸鰭和尾鰭的骨架模型
圖14 分別通過算法和人眼得到的12 h內(nèi)青鳉魚尾鰭平均擺動頻率的對比圖
圖15和圖16分別為12 h內(nèi)算法對胸鰭和尾鰭平均擺動頻率走勢圖,通過對視頻的慢鏡頭回放,可以發(fā)現(xiàn)青鳉魚的這2項特征值總體偏低,且隨著胸鰭和尾鰭擺動頻率的增加,其平均擺動幅度也會上升,這與算法得出的趨勢相一致。整個算法耗時很短,完成每幀圖像的運算只需要21 ms。
由于青鳉魚的活性很高,往往10 s內(nèi)便可完全游離原始區(qū)域,所以后續(xù)算法可完全在攝像機開始啟動1 min后開始工作。
圖15 通過算法得到的胸鰭平均擺動幅值走勢圖
圖16 通過算法得到的尾鰭平均擺動幅值走勢圖
算法中采用了將青鳉魚的魚鰓重心作為魚體方向的參照點,其主要是由于以往的方法中以整個魚體的重心作為參照的方法過于費時,需要遍歷整個魚體的像素點,且魚的重心往往位于靠中間的位置,不易判斷方向。而青鳉魚的魚鰓組織偏紅;與其身體其他部分像素點的R、G、B比例差異明顯;且整個組織的位置在任何情況下都位于魚頭內(nèi);甚至在重心識別產(chǎn)生偏差情況下都不會對方向的判定產(chǎn)生影響,所以最終采用以魚鰓的重心作為方向參考點。
也因為這個因素,實驗平臺中主攝像機的布置區(qū)別于其他傳統(tǒng)的形式,主要是考慮到采用從容器下方觀測青鳉魚時,不僅可以看到整個魚鰓組織,而且可以觀察到魚體大部分細節(jié)特征。
算法中采用了以青鳉魚左側(cè)胸鰭的數(shù)據(jù)作為最終結(jié)果,其主要是由于通過大量觀察,發(fā)現(xiàn)青鳉魚兩側(cè)的胸鰭總是以交替的形式擺動,所以每一次只能從缸底看到其一側(cè)的胸鰭,所以在計量其頻率和幅值時只選擇對魚體的左胸鰭進行計數(shù)。
在實驗中我們發(fā)現(xiàn),青鳉魚在未中毒狀況下胸鰭和尾鰭的平均擺動頻率總體趨于平緩,主要因為它們是在固定的簡單環(huán)境中活動,這種活動存在一定的規(guī)律性,如繞圈和“親吻”魚缸等。其小幅度波動主要是由于其每隔一段時間便會劇烈跳動的生理過程所引起。
算法得出的數(shù)據(jù)與人眼的觀測結(jié)果趨于一致;準確率很高;且耗時極短,所以有理由相信本算法是可靠而有效的。
綜上可知: 1.圖像經(jīng)過二維OTSU和融合幀差法的背景差分法后可以很好的提取到完整而干凈的青鳉魚圖像,且整個過程小于1 min。
2.基于距離變換、圖像卷積和形態(tài)學(xué)算法的處理過程可以很好提取出每幀圖像中包括胸鰭在內(nèi)的單像素魚體骨架。
3.基于魚鰓重心定位魚尾方向和胸鰭根部點的方法十分有效。
4.經(jīng)過驗證,整個算法的準確率大于99%,且處理每幀圖像的時間不超過21 s,完全滿足實時性和有效性的要求。
5.整套算法可廣泛應(yīng)用于生物預(yù)警、水體綜合毒性評估與預(yù)測等相關(guān)領(lǐng)域的研究。
[1] Little E E,Archeski R D,Flerov B A,et al.Behavioral indicators of sublethal toxicity in rainbow trout [J].Archives of Environmental Contamination and Toxicology,1990,19(3): 380-385
[2] ASTM.ASTM E1711-12,Standard Guide for Measurement of Behavior during Fish Toxicity Tests [S].West Conshohocken: ASTM International,2012
[3] Israeli-Weinstein D,Kimmel E.Behavioral response of carp (Cyprinus carpio) to ammonia stress [J].Aquaculture,1998,165(1-2): 81-93
[4] 應(yīng)曉芳.基于機器視覺的魚體運動模型研究[D].杭州: 浙江工業(yè)大學(xué),2009
[5] 文聞.斑馬魚標志物圖像信息獲取與處理方法研究[D].北京: 北京航空航天大學(xué),2011
[6] 張偉濤.基于視頻的魚類運動狀態(tài)監(jiān)測研究[D].秦皇島: 燕山大學(xué),2012
[7] Heng M,Tsai T F,Liu C C,et al.Real time monitoring of water quality using temporal trajectory of live fish [J].Expert Systems with Applications,2010,37(7): 5158-5171
[8] 陳勇.基于機器視覺的魚體運動模型研究[D].杭州: 浙江工業(yè)大學(xué),2010
[9] Israeli D,Kimmel E.Monitoring the behavior of hypoxia-stressed Carassius acuratus using computer vision [J].Aquacultural Engineering,1996,15(6): 423-440
[10] Kato S,Nakagawa T,Ohkawa M,et al.A computer image processing system for quantification of zebra fish behavior [J].Journal of Neuroscience Methods,2004,134: 1-7
[11] Migliore D A,Matteucci M,Naccari M,et al.A Revaluation of Frame Difference in Fast and Robust Motion Detection [C].The Fourth ACM International Workshop on Video Surveillance and Sensor Networks,2006,6: 215-218
[12] Minhan Z,Dayong L.Moving objects detection and tracking based on two consecutive frames subtraction background model [J].Computer Measurement and Control,2006,14(8): 1004-1006
[13] Stauffer C,Grimson W E L.Adaptive Background Mixture Models for Real-Time Tracking [C].IEEE Computer Society Conference on Computer Vision and Pattern Recognition,1999,2: 23-25
[14] Abdelkader M F,Chellappa R,Zheng Q,et al.Integrated Motion Detection and Tracking for Visual Surveillance [C].The Fourth IEEE International Conference on Computer Vision Systems,2006
[15] Shuan W,Haizhou A,Kezhong H,et al.Difference image based multiple motion targets detection and tracking [J].Journal of Image and Graphics,1999,4 (6): 470-475
[16] Otsu N.A threshold selection method from gray-level histograms [J].IEEE Transactions on Systems Man,and Cybernet,1979,9(1): 62-66
[17] Kato S,Nakagawa T,Ohkawa M,et al.A computer image processing system for quantification of zebrafish behavior [J].Journal of Neuroscience Methods,2004,134(1): 1-7
◆
A Computer Vision Algorithm Which Was Used for Measuring the Oscillation Frequency of the Japanese Medaka’s Pectoral Fin and Caudal Fin
Zhang Rong1,Zheng Hongyuan2,*,Li Lu3,Rao Kaifeng4
1.School of Mechanical Engineering and Automation,BeiHang University,Beijing 100191,China 2.The Postdoctoral Workstation of Great Wall Oil Drilling Engineering Company Limited of China Petroleum Corporation and China Petroleum University (Beijing) Post Doctoral Flow Station,Beijing 100101,China 3.Beijing Research Institute of Mechanical and Electrical Engineering,Beijing 100191,China 4.Research Center for Eco-Environmental Science,Chinese Academy of Science,Beijing 100191,China
28 January 2015 accepted 5 May 2015
Japanese medaka (Oryzias latipes) has high value of application in the field of drinking water safety.The active state of fins can reflect the pollution status of waters.However,due to the limitation of technical conditions,the traditional methods cannot effectively extract these features in real time.To address this issue,this paper proposed an efficient method based on the computer vision to efficiently identify and measure the swing frequency and amplitude of pectoral and tail fins.Several image processing algorithms,such as automatic threshold segmentation,frame difference,background subtraction,gravity method,image convolution and skeleton thinning,were employed in this paper to extract the details quickly.The preliminary results demonstrated that the proposed method is effective and feasible,and can be widely applied to the field of water environment monitoring,such as the research of toxic substances on the behavior characteristic of medaka,and evaluation of the risk levels of the water environment.
medaka; fins; computer vision; online monitoring; early warning
國家自然科學(xué)基金(61071158)
張融(1971-),女,講師,研究方向為生態(tài)毒理學(xué),E-mail: Rongzhangb507@163.com;
*通訊作者(Corresponding author),E-mail: 23778507@qq.com
10.7524/AJE.1673-5897.20150128001
2015-01-28 錄用日期:2015-05-05
1673-5897(2015)4-154-08
X171.5
A
鄭宏遠(1981-),男,機械工程自動化方向博士,主要研究方向為環(huán)境污染和計算機視覺,發(fā)表學(xué)術(shù)論文8篇。
張融,鄭宏遠,李錄,等.一種計量青鳉魚胸鰭和尾鰭擺動頻率和幅值的計算機視覺算法[J].生態(tài)毒理學(xué)報,2015,10(4): 154-161
Zhang R,Zheng H Y,Li L,et al.A computer vision algorithm which was used for measuring the oscillation frequency of the Japanese medaka’s pectoral fin and caudal fin [J].Asian Journal of Ecotoxicology,2015,10(4): 154-161 (in Chinese)