周曉林,馬 超,王兆平,楊 慧,王延暉,張開松,穆 林,張 芹,楊興麗,李治勛
(河南省水產(chǎn)科學研究院,河南鄭州,450044)
無論是進行魚類經(jīng)濟性狀的遺傳解析,還是進行現(xiàn)代育種技術如全基因組選擇等[1],都需要大規(guī)模群體的表型信息的動態(tài)化和定量化分析的支持,而高通量表型信息采集是滿足這一需求的關鍵技術。作為表型信息最基礎的數(shù)據(jù)采集之一魚類的性狀參數(shù)測量,一直以來沿用著傳統(tǒng)方法:尺子量、秤稱、肉眼數(shù)、人工記,費時費力,尤其是對活魚測量時,測量時間長,對魚體傷害大,測量精度低,速度慢,效率低,難以滿足魚類高通量表型信息采集的需求。
機器視覺是近年來快速發(fā)展的技術之一,是用機器替代人眼來完成觀測和判斷[2],也稱計算機視覺,其本質(zhì)是數(shù)字圖像處理,主要應用為圖像識別、檢測、測量及位置引導等,其優(yōu)勢體現(xiàn)在自動化程度高、速度快、準確性高,方便信息集成,不受人為因素干擾等。
目前,在漁業(yè)領域,應用機器視覺的圖像識別技術,研究人員對魚類品種識別[3-10]、胚胎發(fā)育[11]、游泳行為[12]、攝食行為[13-16]、分級[17-18]、魚苗計數(shù)[19-20]等多個方向進行相關研究,取得了長足進展,提升了研究的信息化、智能化、自動化、精細化水平。應用機器視覺技術的圖像識別及測量技術進行魚類性狀測量,多位學者做了多種方法的探索,如楊杰超等[21]和Sanchez等[22]采用管道誘導方式獲取魚體側(cè)面圖像進行性狀測量;余心杰等[23]采用透明秤盤從魚體下方采集圖像及體質(zhì)量進行測量; 李艷君等[24]采用雙目相機立體視覺在水下進行魚體圖像采集及測量;房舒[25]采用側(cè)面和上面兩部相機對放在裝有水的收納盒中斑點叉尾鮰進行兩個方向圖像采集并進行特征點位識別及性狀測量;歐利國等[26]對金槍魚圖像進行較為準確的處理及定位測量;李振波等[27]、段延娥等[28]、HAO等[29]對魚體性狀測量進行了較為詳細的綜述。
采用上述文獻中的單目相機方法,對靜止平放在平臺上的魚體進行圖像采集,簡單有效,獲取的圖像清晰準確,平臺還可以增加體質(zhì)量測量、植入式芯片(PIT)掃碼等功能,能較好地滿足高通量魚類表型信息采集集成化快速、精確、輕便的要求,但在采用該方式進行性狀測量研究時發(fā)現(xiàn)兩個問題。首先是像素校準(每像素代表的實際尺寸)位置不準確,校準是所有測量的基礎,同樣,在機器視覺測量中,不準確的像素校準位置就出現(xiàn)誤差,現(xiàn)有的像素校準方法是采用與相機鏡頭固定距離的平面上進行校準,放置在該平面的平面物體進行測量沒有問題,但放置在該平面上的魚體,隨著魚體體厚的增加,測量誤差同時增大,其原因是魚體輪廓面即測量平面與校準平面偏離增大造成的。其次是沒有合適的測量模板,常規(guī)的機器視覺測量,測量點位較少,不需要模板,采用兩點一線標記即可,但魚類性狀測量需要對魚體圖像輪廓外接4個點和魚體輪廓內(nèi)的眼徑、鰓蓋、肛門、尾柄前后、尾柄高低和叉尾等9個點進行標記定位,這些點位既獨立,又相互有聯(lián)系,采用常規(guī)的點線標記方法,難以準確表達各點位之間的聯(lián)系,機器視覺軟件就無法對這些關聯(lián)點進行自動處理,人機交互也不夠友好。
本研究設計了一種隨魚體體厚變化的像素校準新方法和一種魚類性狀測量新模板,研發(fā)了實現(xiàn)集魚體圖像采集分析、性狀測量、稱重、PIT芯片標記掃碼為一體的集成裝置及軟件,為研究人員對魚類進行快速、準確、批量的性狀測量提供一種新手段,為探索構建具有通用性的魚類表型信息自動化獲取平臺提供參考。
為能夠精確采集魚體圖像及魚體質(zhì)量,系統(tǒng)采用單目相機采集靜態(tài)魚體側(cè)面圖像模式??傮w架構如圖1所示,系統(tǒng)由相機、激光距離傳感器、稱量盤、稱重傳感器及其變送器、A/D轉(zhuǎn)換器、光源、背光板、計算機等組成,增加PIT芯片標記掃碼器、兩只腳踏開關等輔助設備。相機連接到計算機,稱重傳感器及其變送器和激光距離傳感器通過A/D轉(zhuǎn)換器連接到計算機,PIT芯片掃碼器和兩個腳踏開關連接到計算機,光源和背光板連接到電源,兩只腳踏開關其中一只用于觸發(fā)圖像采集,另一只用于稱重清零。為使魚體圖像輪廓更加清晰,稱量盤采用透明材料,其下面有背光板光線向上照射,稱重傳感器分布在稱量盤下面四周。
圖1 系統(tǒng)架構示意圖
相機采集圖像,表現(xiàn)為遠小近大,通過圖像對對象進行測量必須進行像素校準,即得到每像素所代表的實際尺寸?,F(xiàn)有的機器視覺測量校準方法為,相機對確定大小的黑白相間的正方形、圓形、刻度尺等平面圖案拍攝后,機器視覺軟件對其圖像分析處理,得到在該狀態(tài)下(相機鏡頭與被測物距離確定)像素校準參數(shù),然后對被測對象拍攝采集圖像,機器視覺軟件依據(jù)該狀態(tài)下像素校準參數(shù),計算出測量對象的實際大小,完成測量。但該方案有其限定性,即被測對象平面必須與校準平面一致或接近,才能獲得較為準確的測量結(jié)果,當校準平面與被測對象平面距離偏離較大時,計算出的被測對象尺寸偏差就會變大,達不到測量要求。采用現(xiàn)有的機器視覺技術對魚體進行拍照測量時,校準平面只有一個,當魚體一側(cè)平放在平臺上,每條魚體體厚不同,距離相機鏡頭距離就不同,當魚體體厚較小,采集的魚體側(cè)面圖像與校準平面接近,誤差較小,當魚體側(cè)面與校準平面偏離較大時,其誤差將超出可接受范圍,導致測量失敗。為此,需要設計一種校準模塊及方法,對不同高度的平面分別進行校準,使得不同體厚的魚體都能得到較為準確的測量。
根據(jù)上述要求,設計了一種階梯形校準模塊[30](圖2)及方法,每個階梯高度確定,每個階梯平面上設置有黑白相間的確定尺寸的正方形,在其一端標注有該階梯平面的高度。
圖2 階梯校準模塊
把階梯校準模塊平放在圖像采集平臺上,黑白相間圖案朝向相機進行拍照,得到階梯校準模塊圖像,如圖3所示(上圖為階梯模塊圖像,下圖為校正值顯示)為高度為0,每個正方形邊長25 mm,校準距離100 mm,像素校準值為0.404 858 mm/pix。機器視覺軟件根據(jù)每個階梯黑白圖進行像素距離參數(shù)校準,階梯高度系列分別為0、20、40、60、80 mm,每個階梯高度得到一個像素距離校準參數(shù),通過擬合,得到一個與階梯高度相關的擬合方程(如圖4所示),即把一個確定高度代入方程,可得到該高度下的像素距離參數(shù)。
圖3 高度為0 mm的階梯校正的軟件截圖
圖4 不同高度的像素校正值及其擬合方程
根據(jù)魚類性狀測量標準[31],結(jié)合計算機測量要求,設計了一個測量模板[32],如圖5所示,模板包含一個矩形,為魚體示意圖[31]輪廓外接矩形,其上下寬ak為魚體體高,左右長aj為魚體全長,在測量矩形中設置b、c、d、e、f、g、h、i等8條豎線,在g豎線上設置兩個點M、N,M為尾柄高高點,N為尾柄高低點。這些點及線均可用鼠標拖動放置在魚體圖像的特征測量位置,即可得出該魚體可量性狀指標:aj-全長、ai-叉長、ah-體長、ad-頭長、ab-吻長、bc-眼徑、cd-眼后頭長、ak-體高、ae-肛前體長、fh-尾柄長、MN-尾柄高。
圖5 魚類可量性狀測量示意圖
系統(tǒng)總體流程分四部分,分別為校準、現(xiàn)場采集、后期測量和數(shù)據(jù)輸出。
校準流程包括重量校準、高度校準、像素方程校準,流程如圖6所示,每次現(xiàn)場采集之前需要做一次校準流程。
圖6 校準流程圖
現(xiàn)場采集流程如圖7所示,其中的激光點為激光距離傳感器發(fā)射,該流程循環(huán)直至采集完所有魚體圖像及其數(shù)據(jù)。
圖7 現(xiàn)場采集流程圖
后期測量流程是為在現(xiàn)場采集時圖像識別算法計算出的測量模板中外接矩形其各豎線位置與魚體圖像的測量特征位置的偏差而進行人工調(diào)整,以獲取更為準確的性狀數(shù)據(jù)。其流程如圖8所示,該流程循環(huán)直至所有魚體圖像處理完成。
圖8 圖像測量流程圖
當完成后期測量流程后,即可進行數(shù)據(jù)輸出,輸出格式為表格數(shù)據(jù)。流程如圖9所示。
圖9 數(shù)據(jù)輸出流程圖
根據(jù)系統(tǒng)架構設計要求,設計研制了魚類性狀測量系統(tǒng)平臺樣機,如圖10所示。試驗平臺底座、立柱、懸臂均采用30×30歐標鋁合金型材;相機采用Basler的acA800-510uc,分辨率為800×600,可進行曝光時間、增益、AOI(圖像采集區(qū)域)等參數(shù)設置,接口為USB3.0;鏡頭為Computar的5 mm定焦鏡頭;激光距離傳感器采用松下HG-C1400,測量中心距離400 mm,測量范圍±200 mm,重復精度為0.8 mm,模擬輸出為0~5 V;稱重傳感器采用金諾懸臂式稱重傳感器JHBL-1,量程為5 kg,整個平臺采用4個,稱重范圍為0~20 kg,變送器采用4合1的金諾多通道信號處理器BSQ-12,輸出為0~5 V;A/D轉(zhuǎn)換器采用NI的DAQ模塊USB6002,有4個差分模擬端口,與計算機接口為USB2.0;電源采用12V15000mA聚合物鋰電池;定制可調(diào)光的背光板及光源;PIT芯片掃碼器為帶有藍牙的靈瑞科技的AH03;兩只腳踏開關為一諾電器的可自定義鍵USB接口的EN(TFS)-1;USB集線器采用聯(lián)想的USB3.0一拖四集分線器高速轉(zhuǎn)換器接頭。
圖10 魚類性狀測量系統(tǒng)樣機
連接方式為:4個稱重傳感器通過4合1變送器連接到USB6002的一個差分模擬端口;激光位移傳感器連接到USB6002一個差分端口;相機、USB6002通過USB集線器連接到計算機USB3.0接口;腳踏開關通過USB集線器或直接連接到計算機;掃碼器通過藍牙連接到計算機。
為方便實際應用,根據(jù)系統(tǒng)設計中的階梯校準原理及方法,設計了帶有階梯校準工具的稱重盤(如圖11所示)。該稱重盤由透明材料制成,為長方形槽,長450 mm,寬225 mm,可滿足全長小于450 mm、體高小于225 mm的常規(guī)淡水養(yǎng)殖魚類,在槽底表面靠近較高邊附近設置有與槽邊平行的槽底表面刻度尺1,為高度0 mm校準尺,較高的一邊高度為80 mm,表面設置有較高邊上刻度尺2。像素方程校準時,采集圖像中有上下兩個標尺,分別對兩個平面的每像素距離值校準,采用兩點擬合,生成與物體厚度相關的像素距離校準方程。如圖11所示,相機在魚體上方,在對魚體進行測量時,魚體為紡錘型,魚體體厚測量位置為C’,測量的魚體厚度是C-C’,其輪廓在魚體厚度的1/2處,即B-B’輪廓平面,所以,采用魚體體厚C-C’的1/2值,代入像素校準方程,得到該條魚輪廓面B-B’的每像素距離校準值,作為該魚體的像素測量校準值。
圖11 稱重盤示意圖
計算機操作系統(tǒng)為Windows10,軟件開發(fā)環(huán)境為VS2015版的C++,機器視覺庫為OPENCV3.2.0,相機控制軟件開發(fā)采用廠家提供的PYLON SDK5.x,USB6002采集控制軟件開發(fā)采用NI-DAQmx SDK。
根據(jù)系統(tǒng)總體流程,軟件設置6個模塊,分別是稱重校準、高度校準、相機參數(shù)設定及像素方程校準、實時圖像及數(shù)據(jù)采集、圖像處理、圖像查看及數(shù)據(jù)輸出。
根據(jù)像素方程校準流程編制的相機參數(shù)及圖像像素校準功能模塊截圖如圖12所示,左邊為數(shù)據(jù)顯示窗口,右邊為相機實時顯示的帶有階梯校準工具的槽型稱量盤圖像的顯示窗口。在調(diào)整好光源后,根據(jù)顯示圖像進行曝光時間、增益調(diào)整,同時調(diào)整焦距、光圈,使稱重盤上兩個校正刻度尺在視野范圍且圖像清晰;在相機實時圖像顯示窗口中,設置有兩個校準線段和一個AOI矩形,把0 mm高度的校準線段CAL0放置在稱量盤槽底平面刻度尺1上,拉伸校準長度至刻度尺150~350 mm處,得到0 mm高度時校準距離200 mm的像素429,把80 mm高度的校準線段CAL1放置在稱重盤較高邊上刻度尺2上,拉伸校準長度至刻度尺150~350 mm處,得到80 mm高度時校準距離200 mm的像素513,對這兩組數(shù)據(jù)擬合,即可得到像素距離與高度的線性方程;調(diào)整圖像上的AOI矩形左上頂點為(16,150),高度402像素,寬度為768像素,矩形大小適合采集對象,保存并退出該模塊。
圖12 相機參數(shù)及圖像像素校正的軟件截圖
根據(jù)現(xiàn)場采集流程編制的實時圖像及數(shù)據(jù)采集模塊流程,把魚體平放在稱重盤上,如有芯片標記,進行掃碼,調(diào)整魚體位置,使激光光斑照射在魚體體厚位置,質(zhì)量穩(wěn)定后,按圖像采集功能鍵或踩踏腳踏開關,自動分析并保存圖像及數(shù)據(jù)文件,完成魚體圖像、體厚、質(zhì)量、芯片標記碼采集功能。
根據(jù)后期測量流程編制的圖像處理功能模塊流程,調(diào)整每條魚圖像測量模板上的各條線位置到魚體各特征部位的準確位置,即可得到全長、叉長、體長、頭長、吻長、眼徑、眼后頭長、體高、肛前體長、尾柄長、尾柄高等11個可量性狀參數(shù),與該條魚的編號、體厚、體質(zhì)量、PIT芯片標記碼等保存到數(shù)據(jù)文件。在完成圖像處理后,調(diào)用數(shù)據(jù)輸出功能模塊,可對每條魚的測量圖像及測量數(shù)據(jù)進行查看,無誤后,輸出所有測量參數(shù)的表格數(shù)據(jù),完成整批魚體性狀測量。
由于無法找到和魚體相似的紡錘型物體,而圓柱體的直徑輪廓在其高度的1/2處,與魚體輪廓相仿,所以采用4個直徑依次增加的木制圓柱體進行直徑測量驗證,同時進行高度、重量測量驗證。
圓柱體直徑人工測量采用游標卡尺,精確到0.01 mm,質(zhì)量人工測量采用奧豪斯Scout天平,精確到0.1 g。軟件測量時,把圓柱體平放在平臺稱重盤上,激光光斑照射在圓柱體最高處,測量圓柱體的高度(也是圓柱體直徑),圓柱體左右和前后方向擺放,各采集測量一次圓柱體直徑輪廓,以驗證相機水平方向和垂直方向的測量準確度。
啟動軟件,采集圓柱體圖像、圓柱體的高度(也是圓柱體的直徑)及重量等數(shù)據(jù),用軟件對其直徑輪廓進行測量,精確到1 mm,高度測量精確到1 mm,質(zhì)量測量精確到1 g。圖13為直徑20 mm圓柱體左右擺放測量截圖,其圖右部為圓柱體圖像及測量模板,圖左部為測量值顯示,其中body_thick為圓柱體的高度,body_D為圓柱體直徑輪廓,body_W為圓柱體質(zhì)量,fish_Cal_x為物體高度20 mm的1/2高度截面時的像素校正值。
圖13 圓柱體測量截圖
表1所示為直徑依次增加的4個圓柱體人工測量與軟件測量結(jié)果,以人工測量為對照,隨著圓柱體直徑的增加,軟件測量的圓柱體直徑輪廓在水平方向、垂直方向及高度的絕對誤差均小于±1 mm;質(zhì)量測量中,絕對誤差均小于±1 g。軟件在水平、垂直兩個方向的測量精度及質(zhì)量測量精度均滿足設計要求。
表1 圓柱體測量結(jié)果
選取5條鯽魚及5條鯉魚進行測量驗證。按魚類性狀測量標準進行人工測量,鯉魚體長采用直尺測量,精確到1 mm,其他可量參數(shù)采用游標卡尺測量,精確到0.01 mm,重量采用奧豪斯Scout天平,精確到0.1g。
圖14為軟件測量表2中鯉6的界面截圖。軟件測量及人工測量選取體長、體高、尾柄長、尾柄高、頭長、魚體體厚和體質(zhì)量等主要性狀參數(shù)對比結(jié)果如表2所示。從表2中看出,以人工測量為對照,隨著魚體體厚的增加,體長、體高、頭長、尾柄長、尾柄高、體厚等參數(shù)的相對誤差沒有顯著增大;體高和體長相對誤差最大值為1.05%、-1.39%,頭長、尾柄高、尾柄長和體厚等相對誤差最大值分別為1.73%、-2.79%、-2.88%、-2.1%,絕對誤差值均小于1 mm;體質(zhì)量相對誤差最大值為-0.36%;系統(tǒng)總體誤差水平滿足測量要求。
表2 鯽、鯉測量結(jié)果
圖14 鯉測量截圖
在圖12的圖像像素校準的軟件截圖中可以看到,同樣200 mm長的刻度尺,在高度為0 mm的槽型稱量盤底部,像素為429,而在高度為80 mm的槽型稱量盤較高邊上,像素為513,高低兩個平面在一幅圖像上像素值差別很大,這是單目相機采用固定平面像素校準值測量不同體厚的魚體性狀參數(shù)出現(xiàn)誤差的根本原因。在采用可變高度的像素校準平面的方法后,對直徑從20.64 mm到85.34 mm 的4個階梯高度的平放圓柱體進行直徑輪廓測量,結(jié)果絕對誤差均不超過1 mm,驗證了該方法的準確性和有效性。采用體厚較小的鯽魚和較厚的鯉魚進行測量對比,魚體體厚從39.25 mm到63.61 mm,測量結(jié)果均符合要求,驗證了該方法的實用性。
魚體平放到稱量盤上,魚體各部位體厚不同,而體厚測量點只有一個,在魚體最厚部位,像素校準平面在魚體的最厚部位的1/2處,其他部位的體厚的1/2均低于該平面,當魚體體厚增大,其他部位的體厚與測量點體厚差值增加,部分參數(shù)誤差就會有所增加,這種趨勢在表2的測量結(jié)果中有所表現(xiàn),體厚的測量位置和體高的測量位置重合,校準平面始終與體高的測量平面一致,體高的相對誤差隨體厚增加而趨于平穩(wěn),而體長、尾柄長等的測量平面有部分低于校準平面,隨著體厚增加,其相對誤差趨勢向負的方向增加。在本系統(tǒng)的魚體大小測量范圍內(nèi),魚體各部位體厚相差較小,其誤差水平符合測量要求,如果需要對體厚更大的魚體進行測量,就需要考慮這個潛在的誤差因素對測量的影響。
本系統(tǒng)在現(xiàn)場采集魚體圖像時,自動掃碼,獲取該條魚的唯一編碼信息,同時采集魚體體厚及體質(zhì)量2個性狀參數(shù),根據(jù)體厚確定魚體圖像的像素校準參數(shù),采用圖形識別技術自動獲取魚體外接矩形,根據(jù)測量魚的種類確定的眼徑、鰓蓋、肛門、尾柄、體長、叉長的位置比例,自動計算測量模板中各豎線的位置,后期人工微調(diào)到魚體各特征部位,得到魚體的11個可量性狀參數(shù),現(xiàn)場單人采集每條魚僅需5 s左右,實現(xiàn)了魚類性狀的快速、準確的測量及數(shù)據(jù)的信息化集成,基本滿足了魚類高通量表型信息中性狀數(shù)據(jù)的采集要求。采用機器視覺技術中的圖像自動識別技術獲取魚體圖像的外接矩形,而在魚體上眼徑、鰓蓋、尾柄、體長、叉長等特征位置以及側(cè)線鱗等可數(shù)性狀的圖形自動識別技術方面沒有涉及,是本系統(tǒng)的不足之處。今后將對該方面進行更深入的研究,以期提高本系統(tǒng)的自動測量水平。
□