本發(fā)明涉及計(jì)算機(jī)視覺(jué)、圖像識(shí)別、漁業(yè)研究領(lǐng)域,具體是一種基于卷積神經(jīng)網(wǎng)絡(luò)的淡水魚(yú)側(cè)線鱗識(shí)別方法。
背景技術(shù):
在漁業(yè)養(yǎng)殖和漁業(yè)研究中,魚(yú)類的表形特征,又稱視覺(jué)屬性,包括魚(yú)的長(zhǎng)寬尺寸、表面積、形狀、顏色、側(cè)線鱗數(shù)目等,是漁業(yè)研究者對(duì)魚(yú)進(jìn)行喂養(yǎng)、用藥、分級(jí)、選別和水環(huán)境監(jiān)測(cè)的主要信息依據(jù)。
目前,機(jī)器視覺(jué)在魚(yú)類表形上的研究應(yīng)用主要集中于魚(yú)的尺寸測(cè)量、表面積測(cè)量、顏色獲取等,對(duì)魚(yú)類的側(cè)線鱗檢測(cè)的應(yīng)用研究卻罕見(jiàn)報(bào)道。而側(cè)線鱗數(shù)目作為漁業(yè)研究者對(duì)魚(yú)進(jìn)行分門(mén)別類的重要數(shù)據(jù)指標(biāo),長(zhǎng)期以來(lái),一直靠人工數(shù)數(shù)的方式進(jìn)行,一方面,自動(dòng)化程度較低,耗時(shí)耗力,另一方面,長(zhǎng)此以往,易導(dǎo)致疲勞出錯(cuò)等問(wèn)題。而機(jī)器視覺(jué)在側(cè)線鱗計(jì)數(shù)上的應(yīng)用卻罕見(jiàn)報(bào)到。
究其原因,主要存在以下兩個(gè)難點(diǎn):第一,要實(shí)現(xiàn)自動(dòng)化的側(cè)線鱗精確計(jì)數(shù),首先必須讓機(jī)器自己知道側(cè)線鱗在魚(yú)身上的確切位置,即用機(jī)器視覺(jué)的方法在魚(yú)體身上眾多的魚(yú)鱗片中準(zhǔn)確地找到側(cè)線鱗所在的位置,也就是準(zhǔn)確區(qū)分側(cè)線鱗與非側(cè)線鱗。而側(cè)線鱗與非側(cè)線鱗本身在顏色形狀上差異并不是很明顯,用傳統(tǒng)的機(jī)器視覺(jué)圖像處理方法難以對(duì)其加以區(qū)分。并且,鱗片與鱗片之間通常都會(huì)有狹小縫隙,縫隙呈現(xiàn)深黑色,給側(cè)線鱗的位置識(shí)別增加了難度。第二,找到側(cè)線鱗的具體區(qū)域位置之后,還需對(duì)區(qū)域內(nèi)的鱗片數(shù)進(jìn)行逐個(gè)累加計(jì)算,而側(cè)線鱗片之間存在邊緣不明顯的情況,這給側(cè)線鱗的精確計(jì)數(shù)帶來(lái)不小的挑戰(zhàn)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明針對(duì)側(cè)線鱗自動(dòng)計(jì)數(shù)中的第一個(gè)難點(diǎn)問(wèn)題,即側(cè)線鱗的識(shí)別問(wèn)題,提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)的側(cè)線鱗識(shí)別方法,通過(guò)此方法可實(shí)現(xiàn)對(duì)淡水魚(yú)側(cè)線鱗的精確識(shí)別。
技術(shù)方案:一種基于卷積神經(jīng)網(wǎng)絡(luò)的側(cè)線鱗識(shí)別方法,包括以下步驟:
步驟1:構(gòu)建側(cè)線鱗識(shí)別的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),依次為輸入層、多個(gè)卷積層、多個(gè)下采樣層、輸出層;
步驟2:圖像采集,即原始魚(yú)體圖像的采集,并將采集到的圖像分為學(xué)習(xí)圖像記為學(xué)習(xí)數(shù)據(jù)集、測(cè)試圖像記為測(cè)試數(shù)據(jù)集;
步驟3:樣本采集,用方形采樣方塊對(duì)學(xué)習(xí)圖像進(jìn)行樣本采集,側(cè)線鱗部分居于采樣方塊中間位置的的樣本作為正樣本,其它非側(cè)線鱗部分作為負(fù)樣本;
步驟4:將在學(xué)習(xí)圖像上采集到的正負(fù)樣本進(jìn)行歸一化處理,并分為訓(xùn)練集與驗(yàn)證集;
步驟5:將步驟4中的訓(xùn)練集和驗(yàn)證集輸入步驟1的卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行迭代訓(xùn)練,直至在驗(yàn)證集上的識(shí)別準(zhǔn)確率達(dá)到預(yù)期目標(biāo)或者卷積神經(jīng)網(wǎng)絡(luò)在驗(yàn)證集上的目標(biāo)函數(shù)損失值開(kāi)始收斂為止,保存模型m;
步驟6:用步驟1的網(wǎng)絡(luò)結(jié)構(gòu)加載步驟5中保存的網(wǎng)絡(luò)模型,對(duì)測(cè)試集中的完整的魚(yú)體圖像上的側(cè)線鱗進(jìn)行識(shí)別檢測(cè);
步驟7:對(duì)魚(yú)體上識(shí)別出的側(cè)線鱗進(jìn)行擬合,得到完整的側(cè)線鱗曲線,完成側(cè)線鱗的精確識(shí)別。
優(yōu)選的,所述卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)共七層:第一層、第二層c1、第三層s2、第四層c3、第五層s4、第六層f5、第七層;其中:第一層為輸入層,接收3×28×28的彩色圖像輸入;第二層c1和第四層c3為卷積層,對(duì)圖像進(jìn)行特征學(xué)習(xí)提??;第三層s2和第五層s4為下采樣層,對(duì)卷積層學(xué)習(xí)到的圖像特征進(jìn)行最大值下采樣;第六層f5為全連接的一維網(wǎng)絡(luò);第七層是輸出層。
優(yōu)選的,步驟4中通過(guò)雙線性插值方法進(jìn)行歸一化處理。
優(yōu)選的,步驟3中所述方形采樣方塊為64×64的采樣方塊。
更優(yōu)的,步驟6中完整的測(cè)試過(guò)程如下:
6-1:從測(cè)試集中選取一張圖片作為測(cè)試圖t,從測(cè)試圖的左上角開(kāi)始,設(shè)一64×64的滑動(dòng)窗口w,以步長(zhǎng)s遍歷整張圖像,每滑動(dòng)一次,都記錄下滑動(dòng)窗口內(nèi)的圖像i,這樣,當(dāng)遍歷完整張圖像之后,便得到n張64×64的圖像,記為i1,i2,...,in,并且記下每張小圖在原圖中的中心點(diǎn)坐標(biāo)(ci,ri)(i=1,2,...,n);
6-2:搭建相同的網(wǎng)絡(luò)結(jié)構(gòu)n,并加載模型m;
6-3:依次將圖像ii(i=1,2,...,n)歸一化為28×28后,輸入網(wǎng)絡(luò)結(jié)構(gòu)n進(jìn)行識(shí)別預(yù)測(cè);
6-4:若預(yù)測(cè)為正樣本,即為側(cè)線鱗,則按圖索引到圖像坐標(biāo)后在原圖中將該區(qū)域用64×64的紅色矩形標(biāo)注出來(lái),并執(zhí)行下一張;否則,什么都不干,繼續(xù)執(zhí)行下一張;
6-5:從測(cè)試集中選取另一張圖像進(jìn)行測(cè)試,重復(fù)執(zhí)行6-1~6-5。
更優(yōu)的,步驟7中側(cè)線鱗的精確識(shí)別具體步驟為是結(jié)合用支持向量機(jī)回歸算法對(duì)識(shí)別出來(lái)的側(cè)線鱗區(qū)域進(jìn)行回歸擬合:根據(jù)測(cè)試結(jié)果找到每個(gè)64×64方塊的中心點(diǎn)坐標(biāo),并在圖中標(biāo)記出來(lái),接著使用svr算法設(shè)置svr核函數(shù)為徑向基函數(shù)rbf,核函數(shù)系數(shù)gamma=1e-6,目標(biāo)函數(shù)的懲罰系數(shù)c=1e-3,對(duì)這些坐標(biāo)點(diǎn)進(jìn)行回歸擬合。
本發(fā)明的有益效果
本發(fā)明方法是一種基于卷積神經(jīng)網(wǎng)絡(luò)的側(cè)線鱗識(shí)別方法,它與傳統(tǒng)的基于手工特征提取的識(shí)別方法不同,直接使用二維圖像作為輸入,避免了人為設(shè)計(jì)特征帶來(lái)的不確定性。使用該方法在最終的驗(yàn)證集上的識(shí)別準(zhǔn)確率為99.09%,目標(biāo)函數(shù)損失值0.0349。在測(cè)試集上能夠準(zhǔn)確的識(shí)別出側(cè)線鱗區(qū)域。最后,通過(guò)回歸擬合算法實(shí)現(xiàn)了側(cè)線鱗的精確定位。
附圖說(shuō)明
圖1是本發(fā)明基于卷積神經(jīng)網(wǎng)絡(luò)的側(cè)線鱗識(shí)別流程示意圖
圖2是本發(fā)明所述卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖
圖3是側(cè)線鱗識(shí)別的網(wǎng)絡(luò)結(jié)構(gòu)在測(cè)試圖上的識(shí)別結(jié)果示意圖
圖4側(cè)線鱗回歸擬合后的結(jié)果示意圖
具體實(shí)施方式
下面結(jié)合實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明,但本發(fā)明的保護(hù)范圍不限于此:
如圖1所示本發(fā)明基本流程圖包含以下步驟:
步驟1:構(gòu)建側(cè)線鱗識(shí)別的網(wǎng)絡(luò)結(jié)構(gòu)n。如圖2所示,網(wǎng)絡(luò)共有七層:第一層為輸入層,接收3×28×28的彩色圖像輸入,第二層c1和第四層c3為卷積層,第三層s2和第五層s4為下采樣層,第六層f5為全連接的一維網(wǎng)絡(luò),第七層是輸出層。卷積層對(duì)圖像進(jìn)行特征學(xué)習(xí)提取,該層有多少卷積核就有多少特征;下采樣層對(duì)卷積層學(xué)習(xí)到的圖像特征進(jìn)行最大值下采樣,降低圖像特征復(fù)雜度,同時(shí)提高網(wǎng)絡(luò)模型的魯棒性。
步驟2:圖像采集,將采集到的完整的200張魚(yú)體圖像分為學(xué)習(xí)數(shù)據(jù)集與測(cè)試數(shù)據(jù)集,學(xué)習(xí)數(shù)據(jù)集150張,測(cè)試數(shù)據(jù)集50張。
步驟3:樣本采集,以64×64的采樣方塊對(duì)步驟2中的學(xué)習(xí)數(shù)據(jù)集進(jìn)行采樣。具體采樣方法是,側(cè)線鱗居于采樣方塊中間位置的為正樣本,其它的非側(cè)線區(qū)域?yàn)樨?fù)樣本。共采集2240張樣本,正負(fù)樣本各1120張。
步驟4:將采集到的2240張64×64的樣本用雙線性插值方法歸一化至28×28;
將經(jīng)過(guò)歸一化處理后的樣本集分為訓(xùn)練集與驗(yàn)證集,訓(xùn)練集1800張,正負(fù)樣本各900張;驗(yàn)證集440張,正負(fù)樣本各220張。
步驟5:用步驟1中構(gòu)建的卷積神經(jīng)網(wǎng)絡(luò)模型對(duì)步驟4中的數(shù)據(jù)集進(jìn)行訓(xùn)練學(xué)習(xí)直至網(wǎng)絡(luò)收斂后,保存模型m;得到的模型在驗(yàn)證集上的識(shí)別準(zhǔn)確率為99.09%,目標(biāo)函數(shù)損失值為0.0349。
步驟6:用步驟5中得到的網(wǎng)絡(luò)模型m對(duì)測(cè)試集中完整的魚(yú)體圖像上的側(cè)線鱗位置進(jìn)行識(shí)別測(cè)試。測(cè)試結(jié)果如圖3所示;
進(jìn)一步的,在測(cè)試集上的完整的測(cè)試過(guò)程如下:
6-1:從測(cè)試集中選取一張圖片作為測(cè)試圖t,從測(cè)試圖的左上角開(kāi)始,設(shè)一64×64的滑動(dòng)窗口w,以步長(zhǎng)s遍歷整張圖像,每滑動(dòng)一次,都記錄下滑動(dòng)窗口內(nèi)的圖像i,這樣,當(dāng)遍歷完整張圖像之后,便得到n張64×64的圖像,記為i1,i2,...,in,并且記下每張小圖在原圖中的中心點(diǎn)坐標(biāo)(ci,ri)(i=1,2,...,n);
6-2:搭建相同的網(wǎng)絡(luò)結(jié)構(gòu)n,并加載模型m;
6-3:依次將圖像ii(i=1,2,...,n)歸一化為28×28后,輸入網(wǎng)絡(luò)結(jié)構(gòu)n進(jìn)行識(shí)別預(yù)測(cè);
6-4:若預(yù)測(cè)為正樣本,即為側(cè)線鱗,則按圖索引到圖像坐標(biāo)后在原圖中將該區(qū)域用64×64的紅色矩形標(biāo)注出來(lái),并執(zhí)行下一張;否則,什么都不干,繼續(xù)執(zhí)行下一張;
6-5:從測(cè)試集中選取另一張圖像進(jìn)行測(cè)試,重復(fù)執(zhí)行6-1~6-5;
步驟7:結(jié)合用支持向量機(jī)回歸算法(supportvectorregression,svr)對(duì)識(shí)別出來(lái)的側(cè)線鱗區(qū)域進(jìn)行回歸擬合。具體操作是:根據(jù)測(cè)試結(jié)果找到每個(gè)64×64方塊的中心點(diǎn)坐標(biāo),并在圖中標(biāo)記出來(lái),接著使用svr算法,設(shè)置svr核函數(shù)為徑向基函數(shù)(rbf),核函數(shù)系數(shù)gamma=1e-6,目標(biāo)函數(shù)的懲罰系數(shù)c=1e-3,對(duì)這些坐標(biāo)點(diǎn)進(jìn)行回歸擬合。擬合結(jié)果如圖4所示。
本文中所描述的具體實(shí)施例僅僅是對(duì)本發(fā)明精神做舉例說(shuō)明。本發(fā)明所屬技術(shù)領(lǐng)域的技術(shù)人員可以對(duì)所描述的具體實(shí)施例做各種各樣的修改或補(bǔ)充或采用類似的方式替代,但并不會(huì)偏離本發(fā)明的精神或者超越所附權(quán)利要求書(shū)所定義的范圍。