• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于斑馬魚圖像特征的魚群檢測(cè)算法

      2022-04-25 07:36:14郭貴松張小虎
      應(yīng)用光學(xué) 2022年2期
      關(guān)鍵詞:魚頭魚群斑馬魚

      郭貴松,林 彬,楊 夏,張小虎

      (中山大學(xué) 航空航天學(xué)院,廣東 廣州 510006)

      引言

      生物集群運(yùn)動(dòng)一直是自然科學(xué)研究中的熱門領(lǐng)域,其包含豐富的社會(huì)學(xué)信息,可用于理解群體智能的機(jī)理,啟發(fā)新一代的人工智能的發(fā)展。近年來,計(jì)算機(jī)硬件的提升和計(jì)算機(jī)視覺技術(shù)的發(fā)展為群體動(dòng)物檢測(cè)與跟蹤提供了重要的技術(shù)支撐[1]。斑馬魚作為一種經(jīng)典的模式生物,由于其結(jié)構(gòu)簡(jiǎn)單、容易喂養(yǎng)等特點(diǎn),被廣泛用作研究群體行為的對(duì)象[2]。國內(nèi)外有一些關(guān)于用計(jì)算機(jī)視覺方式檢測(cè)斑馬魚的工作,可以分為兩類,傳統(tǒng)的檢測(cè)方法與深度學(xué)習(xí)檢測(cè)方法。

      早期的斑馬魚檢測(cè)主要通過人工標(biāo)注獲取斑馬魚位置[3-4],但是該方法存在效率低、易出錯(cuò)的問題。朱佩儒[1]等人提出了基于統(tǒng)計(jì)學(xué)習(xí)的魚頭檢測(cè)器,算法利用魚頭與魚眼的特征來檢測(cè)魚頭,無需減除背景,魯棒性較好,但易出現(xiàn)錯(cuò)檢,需要對(duì)檢測(cè)結(jié)果進(jìn)行過濾處理。Qian 等[5]提出一種魚頭檢測(cè)算法,通過AFMM[6](augmented fast marching method)算法提取目標(biāo)骨架線,結(jié)合魚體形態(tài)信息及Hessian 矩陣多尺度分析法獲取到魚頭位置,結(jié)合極值檢測(cè)及橢圓擬合方法完成魚運(yùn)動(dòng)方向的檢測(cè),該方法可有效實(shí)現(xiàn)對(duì)魚群的檢測(cè)與跟蹤,但受方法特性限制,需要手動(dòng)設(shè)置多項(xiàng)參數(shù)。針對(duì)簡(jiǎn)單遮擋情況下的斑馬魚檢測(cè),Kato 等[7]提出了用形態(tài)學(xué)腐蝕和膨脹算法分割靠近的魚,但當(dāng)遮擋嚴(yán)重時(shí),該算法不能有效地將目標(biāo)分割,因此只能把不能分開的區(qū)域當(dāng)成個(gè)體處理,這對(duì)檢測(cè)與跟蹤的準(zhǔn)確性和完整性影響很大。

      隨著計(jì)算機(jī)視覺的不斷發(fā)展,基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法由于其突出的學(xué)習(xí)和表征能力,已經(jīng)廣泛應(yīng)用于各類目標(biāo)檢測(cè)任務(wù)中[8]。目標(biāo)檢測(cè)速度較快的是one-stage 法,如:SSD[9](single shot multibox detector)和YOLO[10](you only look once)都是在圖片不同位置采用多種尺度和長寬比進(jìn)行抽樣,通過卷積神經(jīng)網(wǎng)絡(luò)提取特征,然后進(jìn)行分類和回歸[11]。Liu[12]等人提出一種多尺度輸入的快速目標(biāo)檢測(cè)網(wǎng)絡(luò),對(duì)YOLOv4 的主干網(wǎng)絡(luò)進(jìn)行修改,提高了網(wǎng)絡(luò)針對(duì)魚群的檢測(cè)準(zhǔn)確率。Liu[13]等人提出一種基于并行雙分支結(jié)構(gòu)的YOLOv4 網(wǎng)絡(luò),實(shí)現(xiàn)對(duì)魚類的實(shí)時(shí)檢測(cè)與跟蹤,檢測(cè)網(wǎng)絡(luò)能夠在復(fù)雜顯示海洋環(huán)境下提供較好的檢測(cè)性能。Romero等[14]提出一種自動(dòng)標(biāo)注的深度學(xué)習(xí)檢測(cè)跟蹤方法IdtrackerAI,利用閾值分割法檢測(cè)目標(biāo),并用CNN(convolutional neural network)分類網(wǎng)絡(luò)標(biāo)記斑馬魚,但其在魚群遮擋頻繁的情況下表現(xiàn)不佳,需要提高遮擋情況下的魚群檢測(cè)與跟蹤能力。

      上述方法存在一定不足,主要有:1)傳統(tǒng)檢測(cè)方法檢測(cè)率低,魚群遮擋情況下漏檢高,深度學(xué)習(xí)檢測(cè)方法雖比傳統(tǒng)方法檢測(cè)能力強(qiáng),但對(duì)目標(biāo)整體檢測(cè)時(shí)忽略了目標(biāo)特征;2)深度學(xué)習(xí)檢測(cè)方法制作訓(xùn)練集費(fèi)時(shí)費(fèi)力,人工成本高?;谝陨蠁栴},本文提出了基于斑馬魚圖像特征的魚群檢測(cè)算法,該算法包括兩部分:1)基于目標(biāo)圖像特征的自動(dòng)標(biāo)注算法,自動(dòng)提取目標(biāo)圖像數(shù)據(jù),用于生成訓(xùn)練數(shù)據(jù)集;2)利用Yolo v4 檢測(cè)器檢測(cè)實(shí)現(xiàn)魚群的檢測(cè),相較于現(xiàn)有的魚群檢測(cè)算法,取得了更好的實(shí)驗(yàn)效果。

      1 目標(biāo)形體特征及成像特性分析

      魚群檢測(cè)任務(wù)中,數(shù)量巨大且具有高度相似性的個(gè)體密集分布在圖像中,目標(biāo)間常常存在局部遮擋問題,如圖1所示。若以目標(biāo)整體作為檢測(cè)目標(biāo),往往會(huì)導(dǎo)致漏檢和錯(cuò)檢。因此,本文以圖1所示斑馬魚為例,針對(duì)其形體及成像特性進(jìn)行分析以設(shè)計(jì)相應(yīng)的檢測(cè)方法。

      以某只斑馬魚為目標(biāo),如圖2所示,圖2(a)為斑馬魚原圖,圖2(b)、2(c)、2(d)分別為目標(biāo)的灰度梯度圖、成像灰度正視圖與成像灰度側(cè)視圖,圖2(b)與2(d)使用加粗紅圈標(biāo)注出魚頭位置,黑圈標(biāo)注出魚尾的位置。針對(duì)目標(biāo)進(jìn)行形體及成像特性分析,可得到如下結(jié)論:1)魚頭輪廓呈橢圓形,魚尾輪廓呈尖狀;2)魚頭相較于魚尾通常具有較低的灰度值與較高的梯度值。

      根據(jù)上述分析得出目標(biāo)不同部位在圖像中存在一定的差異性,因此本文采用局部檢測(cè)及骨架約束的方式實(shí)現(xiàn)目標(biāo)整體的檢測(cè)。相較于整體檢測(cè)方式,該方法有3 個(gè)優(yōu)點(diǎn):

      1)降低目標(biāo)間的遮擋率。圖3 中展示了斑馬魚在圖像中相互遮擋的不同階段,圖3(a)~圖3(d)為兩個(gè)斑馬魚在游動(dòng)過程中出線遮擋事件的情況,圖中加粗紅圈代表魚頭,黑圈代表魚尾。圖3(a)為遮擋事件發(fā)生前,目標(biāo)分離;圖3(b)與3(c)為遮擋事件發(fā)生中,目標(biāo)交叉遮擋;圖3(d)為遮擋事件發(fā)生后,目標(biāo)分離??梢钥闯?,頭尾相比于整個(gè)魚體具有更小的粒度,因此其被遮擋的概率低,對(duì)于檢測(cè)的影響較小。

      2)保證目標(biāo)特征的穩(wěn)定性。圖4 展示了斑馬魚在游動(dòng)過程中的不同姿態(tài),目標(biāo)在游動(dòng)過程魚體和魚尾形變較大,而圖中紅框框出的頭部更為穩(wěn)定,針對(duì)其的檢測(cè)具有更好的魯棒性。

      3)提供更多的信息。例如,魚頭方向能夠?yàn)樗惴ㄌ峁~的前進(jìn)方向;利用頭尾之間的距離信息能夠使魚群跟蹤算法更加魯棒。

      2 YOLOv4 檢測(cè)網(wǎng)絡(luò)

      針對(duì)圖像中魚群在分布密集且各個(gè)體在運(yùn)動(dòng)過程中存在姿態(tài)、位置動(dòng)態(tài)變化的問題,深度學(xué)習(xí)檢測(cè)方法相比于傳統(tǒng)方法具有更高的魯棒性。YOLOv4[15]在目標(biāo)檢測(cè)中展現(xiàn)了強(qiáng)大而高效的檢測(cè)能力,且其結(jié)構(gòu)簡(jiǎn)單、易于優(yōu)化,在單個(gè)GPU 上便能滿足訓(xùn)練要求。因此,本文采用了基于YOLOv4的檢測(cè)網(wǎng)絡(luò)對(duì)目標(biāo)進(jìn)行檢測(cè),整體網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。

      YOLOv4 的頭部模塊(head)由多個(gè)密集模塊(dense block)與卷積池化層(pooling)組合而成,其中每個(gè)密集模塊包含多個(gè)卷積層。每一卷積層的輸入包含前一層的輸入、之前所有層的輸出和原始輸入。主干網(wǎng)絡(luò)(Backbone)采用了具有CSP(cross-stage partial connections)結(jié)構(gòu)的Darknet53。

      頸部(Neck)模塊用于連接特征提取網(wǎng)絡(luò)的主干網(wǎng)絡(luò)和頭部模塊,使網(wǎng)絡(luò)能夠識(shí)別不同尺度的目標(biāo)。YOLOv4 的頸部部分采用了空間金字塔池化層(spatial pyramid pooling,SPP)和路徑聚合網(wǎng)絡(luò)(path aggregation network,PANet)結(jié)構(gòu)[16]??臻g金字塔池化層替代了YOLOv4 中的池化層,保留了輸出的空間尺寸大小,通過對(duì)尺度不同的滑動(dòng)卷積核進(jìn)行了最大池化,將來自不同尺度大小的核的特征圖連接起來作為輸出[17]。YOLOv4 中的空間金字塔池化層實(shí)現(xiàn)了局部與全局特征的融合,提高了目標(biāo)分類的準(zhǔn)確率。路徑聚合網(wǎng)絡(luò)采用了自底向上的思路在較低層中進(jìn)行信息增強(qiáng),同時(shí)通過使用微小的全連接層增加掩膜預(yù)測(cè),進(jìn)而提高信息的多樣性,達(dá)到更好的特征傳遞效果。

      YOLOv4 通過雙線性插值將不同尺寸的圖片統(tǒng)一到固定大小(608×608像素)作為輸入,采用了Mosaic 數(shù)據(jù)增強(qiáng)的方式,將隨機(jī)選取4 張訓(xùn)練圖像通過縮放后進(jìn)行組合拼接,生成新的訓(xùn)練圖像,提高了訓(xùn)練樣本的多樣性。

      特征檢測(cè)層采用像素大小為19×19、38×38和76×76的三尺度檢測(cè)方式,用3 個(gè)不同尺度檢測(cè)層搭配檢測(cè)不同大小的目標(biāo),根據(jù)實(shí)際目標(biāo)大小確定使用哪個(gè)檢測(cè)層來檢測(cè)。

      3 基于斑馬魚特征的頭尾自動(dòng)標(biāo)注算法

      YOLOv4 檢測(cè)有一個(gè)必不可少的步驟是標(biāo)注訓(xùn)練集,采用手動(dòng)標(biāo)注數(shù)據(jù),會(huì)耗費(fèi)大量精力。針對(duì)以上問題,提出一種基于目標(biāo)形體特性的自動(dòng)標(biāo)注算法,從而高效穩(wěn)定地生成訓(xùn)練集。

      圖6 為斑馬魚訓(xùn)練集,如圖6(a)與6(b)所示,斑馬魚訓(xùn)練集包含兩種情況:個(gè)體(未交叉)與交叉。由于斑馬魚交叉情況復(fù)雜,通過傳統(tǒng)圖像算法難以魯棒地提取交叉情況的頭尾位置,而個(gè)體魚外觀特征(像素面積、輪廓等)穩(wěn)定,更易于定位魚頭尾,所以本文使用頭尾提取算法自動(dòng)獲取個(gè)體魚的頭尾位置,用于制作訓(xùn)練集,如圖6(c)所示,綠色方框?yàn)轸~頭位置,紅色加粗方框?yàn)轸~尾位置。由于斑馬魚游動(dòng)過程中存在個(gè)體與交叉兩種情況,單獨(dú)的個(gè)體魚訓(xùn)練集難以滿足訓(xùn)練集的多樣性要求,可以結(jié)合平移目標(biāo)算法,將兩個(gè)個(gè)體魚平移到同一位置,模擬斑馬魚交叉場(chǎng)景,如圖6(d)所示,為將兩個(gè)個(gè)體斑馬魚平移進(jìn)行模擬交叉。將圖6(c)和6(d)訓(xùn)練集用于訓(xùn)練YOLOv4 網(wǎng)絡(luò),借助YOLOv4 網(wǎng)絡(luò)來檢測(cè)自動(dòng)標(biāo)注算法難以有效解決的復(fù)雜交叉數(shù)據(jù)。

      自標(biāo)注流程如圖7所示,主要為步驟如下:

      1)目標(biāo)自動(dòng)分割 采用Otsu 自適應(yīng)分割算法分割目標(biāo);

      2)個(gè)體提取 通過像素面積過濾獲得個(gè)體斑馬魚;

      3)輪廓提取 獲取目標(biāo)輪廓,通過目標(biāo)輪廓曲率判斷斑馬魚頭尾點(diǎn)位置;

      4)骨架提取 獲取目標(biāo)骨架,簡(jiǎn)化目標(biāo)模型;

      5)頭尾提取 通過骨架并結(jié)合斑馬魚頭尾占比,獲取頭尾圖像;

      6)訓(xùn)練數(shù)據(jù)增強(qiáng) 將個(gè)體魚進(jìn)行算法合成,形成仿真的交叉魚圖像,并將合成的交叉魚圖像作為訓(xùn)練集,提高訓(xùn)練集的多樣性。

      3.1 目標(biāo)自動(dòng)分割

      本文的測(cè)試視頻中僅包含魚體游動(dòng)的目標(biāo)及靜止的背景,且目標(biāo)在一定區(qū)域內(nèi)停留時(shí)間較短(當(dāng)運(yùn)動(dòng)目標(biāo)經(jīng)過某一像素點(diǎn)時(shí),該點(diǎn)的像素值會(huì)發(fā)生顯著變化)。因此,本文采用背景差分法檢測(cè)目標(biāo)。背景差分法首先選取背景中的一幅或幾幅圖像的平均作為背景圖像,然后把后面的序列圖像當(dāng)前幀和背景圖像相減,進(jìn)行背景消去。若所得到的像素?cái)?shù)大于某一圖像分割閾值T,則為運(yùn)動(dòng)目標(biāo)區(qū)域,反之則為背景區(qū)域[18]。本文采用Otsu自適應(yīng)分割算法[19]確定圖像分割閾值T。目標(biāo)檢測(cè)流程如圖8所示,圖8(a)為目標(biāo)原圖,圖8(b)為背景重建圖,圖8(c)為原圖與背景圖差分之后并通過閾值分割后得到的結(jié)果圖。

      3.2 個(gè)體提取

      通過3.1 節(jié)的目標(biāo)分割算法,獲取的目標(biāo)可分為兩種情況,如圖9所示。個(gè)體魚為單個(gè)斑馬魚像素集合,交叉魚為兩個(gè)及以上的斑馬魚像素集合。由于個(gè)體魚外觀特征(像素面積、輪廓等)穩(wěn)定,相比于交叉魚更易于提取魚頭尾,所以本文使用個(gè)體魚提取頭尾。個(gè)體魚與交叉魚的分類可以通過像素面積判斷。

      首先計(jì)算個(gè)體魚的平均像素面積,設(shè)第m幀中經(jīng)過目標(biāo)分割后得到的目標(biāo)總數(shù)等于魚群數(shù)量,此時(shí)可以保證每個(gè)圖像塊為個(gè)體塊,計(jì)算獲取個(gè)體塊的平均像素面積amean:

      式中:amean為個(gè)體魚平均像素面積;amj為第m幀圖像中,通過背景減除法獲取得到的j個(gè)圖像塊的像素面積;n為魚群數(shù)量。

      通過個(gè)體魚平均像素面積區(qū)分個(gè)體塊與交叉塊,如(2)式:

      式中:amean為平均像素面積;aij為第i幀圖像中,通過背景減除法獲取得到的j個(gè)圖像塊的像素面積;Tm為面積差閾值;Jij為0 時(shí)為個(gè)體塊,否則為交叉塊。

      3.3 輪廓提取

      如圖10所示,魚頭通常呈現(xiàn)為寬圓形( U形),而尾巴部分顯示一個(gè)銳利的尖端( V形)。由于曲率代表曲線彎曲程度,曲率越大代表越彎曲,因此尾部節(jié)點(diǎn)曲率最大,頭部節(jié)點(diǎn)曲率次大。

      對(duì)于個(gè)體魚,設(shè)輪廓為點(diǎn)集合P,點(diǎn)集能形成一個(gè)曲線,曲率的倒數(shù)就是曲率半徑:

      式中:k為曲率;Δθ為切線方向角的變化;l為弧長;r為曲率半徑。

      設(shè)輪廓上某點(diǎn)為p,那么點(diǎn)p的曲率k的表達(dá)式為

      式中:xi與yi為p點(diǎn)的x與y坐標(biāo);xi+1與yi+1、xi+2與分別為p點(diǎn)左右臨近點(diǎn)的x與y坐標(biāo);為兩點(diǎn)之間的距離;arctan為切線方向角之差。設(shè)K為目標(biāo)輪廓的曲率集合,設(shè)k1為輪廓上最大的曲率,對(duì)應(yīng)點(diǎn)p1即為目標(biāo)尾部點(diǎn),設(shè)k2為輪廓上次大的曲率,對(duì)應(yīng)點(diǎn)p2即為目標(biāo)頭部點(diǎn)。

      根據(jù)上述輪廓曲率法計(jì)算頭尾節(jié)點(diǎn)位置,算法提取效果如圖11所示,圖11(a)為經(jīng)過目標(biāo)提取后得到的個(gè)體魚,圖11(b)為個(gè)體魚經(jīng)過輪廓曲率法后得到的結(jié)果圖,其中左下方紅色點(diǎn)為魚頭位置,右上方藍(lán)色點(diǎn)為魚尾位置。

      3.4 骨架提取

      斑馬魚主干由頭、身、尾3 部分肢體構(gòu)成,可以將魚的拓?fù)浣Y(jié)構(gòu)簡(jiǎn)化為“兩點(diǎn)一線”,即頭部和尾部兩點(diǎn)以及骨架線。選用骨架線來簡(jiǎn)化目標(biāo),骨架線在保持目標(biāo)的長短、彎曲、姿態(tài)等信息的前提下實(shí)現(xiàn)了模型的簡(jiǎn)化,使得表示更加簡(jiǎn)單、清晰。本文選取基于距離變換的骨架提取方法[20],通過以上算法提取個(gè)體魚骨架,并使用曲線擬合骨架點(diǎn),結(jié)果如圖12所示。

      3.5 頭尾提取

      提取骨架后,將骨架信息結(jié)合個(gè)體與頭尾部點(diǎn)位置信息,可以獲取頭尾部圖像。將魚分為3 個(gè)部分,以魚的魚鰓后緣為頭部分界線,腹部靠近尾部的魚鰭為尾部分界線,中間部分為腹部[21]。對(duì)魚進(jìn)行切線分析可測(cè)得魚體各個(gè)部分的長度比例,如表1所示。

      表1 魚體各部分比例表Table 1 Proportion of each part of fish body

      利用比例信息,結(jié)合魚體骨架線的長度信息,可獲取得到頭尾部圖像,如圖13所示。

      3.6 訓(xùn)練數(shù)據(jù)增強(qiáng)

      為了保證訓(xùn)練數(shù)據(jù)的多樣性以及網(wǎng)絡(luò)在交叉魚檢測(cè)上的泛化能力,本文將目標(biāo)提取獲取個(gè)體魚進(jìn)行算法合成,形成仿真的交叉魚圖像,并將合成的交叉魚圖像作為訓(xùn)練集,提高訓(xùn)練集的多樣性,有利于后續(xù)訓(xùn)練。算法流程如下所示:

      1)質(zhì)點(diǎn)計(jì)算:計(jì)算個(gè)體塊fishi,j與fishi,j+1的像素質(zhì)心,記為(xi,j,yi,j)與(xi,j+1,yi,j+1),其中fishi,j表示第i幀圖像中使用目標(biāo)檢測(cè)獲取到的第j個(gè)個(gè)體魚圖像塊;

      2)移動(dòng)量計(jì)算:將(xi,j+1,yi,j+1)移動(dòng)至與(xi,j,yi,j)重合,計(jì)算移動(dòng)量xmov和ymov,如(5)式所示:

      3)掩膜運(yùn)算:將fishi,j+1個(gè)體塊二值化,取反后(0 變1,1 變0)作為掩膜,將掩膜加上為位移量(xmov,ymov),與fishi,j進(jìn)行按位與運(yùn)算,將fishi,j+1移動(dòng)到fishi,j上的像素值提前置為0,方便后續(xù)像素疊加操作;

      4)移動(dòng)并疊加:根據(jù)移動(dòng)量,將fishi,j+1個(gè)體塊的所有像素加上為位移量(xmov,ymov),將fishi,j+1疊加到fishi,j上;

      如圖14所示,圖14(a)與14(b)使用目標(biāo)檢測(cè)算法獲取得到的個(gè)體魚fish1與fish2,通過以上算法將fish1移動(dòng)到fish2上,即可得到圖14(d)所示的交叉數(shù)據(jù)塊,圖14(c)為交叉塊的三維圖,圖14(c)和14(d)中加粗紅圈為fish1,黃圈為fish2。

      5)計(jì)算移動(dòng)后的頭尾位置:設(shè)移動(dòng)前fishi,j頭部bounding box 坐標(biāo)為(xhi,j,yhi,j,whi,j,hhi,j),尾部為(xti,j,yti,j,wti,j,hti,j),fishi,j+1頭部bounding box 坐標(biāo)為(xhi,j+1,yhi,j+1,whi,j+1,hhi,j+1),尾部為(xti,j+1,yti,j+1,wti,j+1,hti,j+1),fishi,j+1的移動(dòng)量為xmov和ymov,將fishi,j+1移動(dòng)到fishi,j上。移動(dòng)后fishi,j頭尾部位置不變,fishi,j+1尾部bounding box 坐標(biāo)為(xti,j,yti,j,wti,j,hti,j)和(xti,j+1+xmov,yti,j+1+ymov,wti,j+1,hti,j+1)。

      經(jīng)過上述算法,獲取得到斑馬魚頭尾對(duì)應(yīng)的bounding box 坐標(biāo)信息,利用坐標(biāo)信息即可用于構(gòu)建深度學(xué)習(xí)訓(xùn)練集。

      4 實(shí)驗(yàn)驗(yàn)證

      4.1 實(shí)驗(yàn)系統(tǒng)與數(shù)據(jù)集

      實(shí)驗(yàn)系統(tǒng)圖主要由5 部分組成:遮光簾、LED燈條、外框支架、器皿及拍攝裝置,如圖15所示。圖中:1 為遮光簾,用于防止外界光照的影響;2 為LED 燈條,用于提供穩(wěn)定的照明;3 為支架,外框支架用于固定遮光簾,拍攝裝置用于固定相機(jī)拍攝圖像;4 為器皿,大小為65 cm × 45 cm,用于放置魚群;5 為實(shí)驗(yàn)使用的高速相機(jī)Basler acA1440-220uc,其分辨率為1 440×1 080像素,幀率為100 幀/s,鏡頭FL-CC0614A-2M - F1.4 / 6 mm),相機(jī)固定于容器上方,垂直于水面。

      實(shí)驗(yàn)計(jì)算機(jī)處理器為Intel i7,內(nèi)存大小為32 G,實(shí)驗(yàn)拍攝目標(biāo)為20 條斑馬魚。為了驗(yàn)證算法真實(shí)檢測(cè)數(shù)據(jù)的獲取是通過人工標(biāo)注在每幀的位置,標(biāo)注過程通過自動(dòng)標(biāo)注軟件輔助完成。利用上述設(shè)備采集4 組數(shù)據(jù)集,結(jié)果如表2所示。

      表2 魚群檢測(cè)結(jié)果Table 2 Detection results of fish stock

      4.2 頭尾自動(dòng)標(biāo)注算法驗(yàn)證

      圖16 為頭尾自動(dòng)標(biāo)注算法標(biāo)注結(jié)果圖,圖16(a)與16(b)分別為自動(dòng)標(biāo)注算法獲取到的魚頭與魚尾訓(xùn)練集??梢钥闯?,自動(dòng)標(biāo)注算法獲取到的魚頭尾訓(xùn)練集標(biāo)注結(jié)果精度高。

      為驗(yàn)證自動(dòng)標(biāo)注算法對(duì)斑馬魚魚頭尾檢測(cè)的有效性,選用500 條斑馬魚作為測(cè)試數(shù)據(jù),使用傳統(tǒng)檢測(cè)算法和自動(dòng)標(biāo)注算法進(jìn)行對(duì)比,實(shí)驗(yàn)結(jié)果如表3所示。質(zhì)點(diǎn)距離法[22]依賴于頭和尾的完整性,因此對(duì)目標(biāo)分割要求較高,易受環(huán)境亮度的影響,并且計(jì)算過程需要遍歷輪廓節(jié)點(diǎn),時(shí)間復(fù)雜度高。由于魚頭的穩(wěn)定性,模板匹配針對(duì)魚頭標(biāo)注率高于本文標(biāo)注算法2.00%,但對(duì)于形變大的魚尾標(biāo)注率低,并且模板匹配涉及到遍歷搜索,時(shí)間復(fù)雜度高。本文自動(dòng)標(biāo)注算法有效地利用了斑馬魚目標(biāo)的外形特征,相比于質(zhì)點(diǎn)距離法和模板匹配法,在總標(biāo)注率上分別提升了1.40%和3.00%。因此從算法魯棒性與性能上衡量,本文自動(dòng)標(biāo)注算法性能更佳。

      表3 頭尾自動(dòng)標(biāo)注算法標(biāo)注效果對(duì)比Table 3 Comparison of annotation effects between head and tail automatic annotation algorithms %

      為了對(duì)比自動(dòng)標(biāo)注算法生成的訓(xùn)練集訓(xùn)練YOLO v4 模型的效果,針對(duì)同一個(gè)數(shù)據(jù)集,選用4 種標(biāo)注方法獲取規(guī)格大小接近的4 組訓(xùn)練集,分別訓(xùn)練YOLOv4 網(wǎng)絡(luò),并使用mAP(mean average precision)作為衡量YOLOv4 模型好壞的評(píng)價(jià)指標(biāo)。圖17 為YOLOv4 模型的訓(xùn)練效果對(duì)比圖,圖17(a)~17(d)分別為4 種標(biāo)注方法獲取的訓(xùn)練集訓(xùn)練Yolo v4 的結(jié)果。

      表4 為4 種標(biāo)注方法的結(jié)果對(duì)比。可以看出,雖然人工標(biāo)注方法mAP 值最高,但是標(biāo)注時(shí)間遠(yuǎn)大于其他三者。含個(gè)體數(shù)據(jù)和模擬交叉數(shù)據(jù)的訓(xùn)練集比只含個(gè)體數(shù)據(jù)的訓(xùn)練集mAP 高7.10%,這是由于模擬交叉數(shù)據(jù)提高了網(wǎng)絡(luò)對(duì)斑馬魚交叉情況下的檢測(cè)能力。由于自動(dòng)標(biāo)注算法存在標(biāo)注錯(cuò)誤(如標(biāo)注類別錯(cuò)誤、標(biāo)注框位置不準(zhǔn))的情況,加入人工校正(先校正個(gè)體的標(biāo)注錯(cuò)誤,再由校正后的個(gè)體數(shù)據(jù)生成模擬交叉數(shù)據(jù))后,網(wǎng)絡(luò)mAP 提高了6.90%。相比于人工標(biāo)注方法,自動(dòng)標(biāo)注(真實(shí)個(gè)體+模擬交叉)結(jié)合人工校正方法在犧牲1.00%mAP 的基礎(chǔ)上,標(biāo)注時(shí)間減少了93.11%。綜上所述,本文設(shè)計(jì)的自動(dòng)標(biāo)注算法結(jié)合人工校正的方法能夠有效提升標(biāo)注效率,且標(biāo)注數(shù)據(jù)訓(xùn)練模型具備良好的mAP。

      表4 標(biāo)注方法訓(xùn)練效果對(duì)比Table 4 Comparison of training effects of annotation methods

      4.3 檢測(cè)實(shí)驗(yàn)效果與分析

      為了進(jìn)一步驗(yàn)證本文提出算法的檢測(cè)性能,與經(jīng)典的閾值分割算法與深度學(xué)習(xí)檢測(cè)跟蹤算法IdtrackerAI算法進(jìn)行對(duì)比。

      在魚群目標(biāo)檢測(cè)過程中,需要量化提出的檢測(cè)方法性能,采用準(zhǔn)確率P與召回率R衡量魚群檢測(cè)效果[23]。定義如下:

      式中:TP為被正確檢測(cè)的個(gè)體魚目標(biāo)總數(shù);FP為被錯(cuò)檢為魚體的目標(biāo)個(gè)數(shù);FN代表未檢測(cè)到的魚目標(biāo)總數(shù)。

      此外,為了更好地評(píng)估在魚體發(fā)生遮擋情況下的檢測(cè)性能,采用遮擋率OR、遮擋檢測(cè)率ODR這2 個(gè)評(píng)估標(biāo)準(zhǔn)進(jìn)行評(píng)價(jià)[24]。定義分別如下:

      式中:NoT代表目標(biāo)總數(shù);NoO代表重疊事件發(fā)生的目標(biāo)個(gè)數(shù);NoSD代表重疊事件發(fā)生后成功檢測(cè)的目標(biāo)個(gè)數(shù)。

      圖18 為魚群檢測(cè)結(jié)果對(duì)比圖,其中:圖18(a1)測(cè)試圖1 來自于數(shù)據(jù)集4,目標(biāo)分散;圖18(a2)測(cè)試圖2 來自于數(shù)據(jù)集1,目標(biāo)遮擋;圖18(b1)、18(c1)、18(d1)與18(e1)為各種算法檢測(cè)(a1)的檢測(cè)結(jié)果;圖18(b2)、18(c2)、18(d2)與18(e2)為各種算法檢測(cè)(a2)的檢測(cè)結(jié)果。

      表5 為本文算法與其他檢測(cè)算法檢測(cè)率結(jié)果。測(cè)試圖1 中目標(biāo)分散情況下,IdtrackerAI 檢測(cè)與閾值分割均達(dá)到了90% 的檢測(cè)率,YOLOv4 檢測(cè)魚頭尾可以達(dá)到97.5%的檢測(cè)率。測(cè)試圖2 中目標(biāo)遮擋的情況下,YOLOv4 檢測(cè)魚頭尾可以達(dá)到72.5%的檢測(cè)率,在檢測(cè)率方面相比于IdtrackerAI檢測(cè)與閾值分割分別提高了42.5%與52.5%,驗(yàn)證了YOLOv4 頭尾檢測(cè)器的可行性與魯棒性?;诎唏R魚圖像特征的魚群檢測(cè)算法,由于使用頭尾檢測(cè)魚群,通過細(xì)粒度的檢測(cè)來降低目標(biāo)(魚頭、魚尾)被完全遮擋的概率,因此在遮擋情況下具有更好的檢測(cè)效果。

      表5 本文算法與其他檢測(cè)算法檢測(cè)率結(jié)果Table 5 Detection rate results of proposed algorithm and other detection algorithms

      表6 為本文檢測(cè)算法與IdtrackerAI算法的檢測(cè)效果對(duì)比。實(shí)驗(yàn)證明,無論是在目標(biāo)遮擋還是目標(biāo)分散的情況下,本文檢測(cè)算法具有更高的召回率R、遮擋檢測(cè)率ODR。以數(shù)據(jù)1 為例,目標(biāo)遮擋率OR為42.72%,本文算法相比于IdtrackerAI 在召回率R、遮擋檢測(cè)率ODR方面提高了8.04%與18.8%。圖19 為數(shù)據(jù)集1 中連續(xù)幀下本文算法檢測(cè)結(jié)果,驗(yàn)證了本文在遮擋下檢測(cè)方法的可行性。YOLO檢測(cè)存在錯(cuò)檢,而IdtrackerAI 檢測(cè)基于閾值分割方法,錯(cuò)檢概率更低,在準(zhǔn)確率P上IdtrackerAI 相比于本文算法高出5.52%,但錯(cuò)檢的問題可以簡(jiǎn)單地通過目標(biāo)在的連續(xù)性來校正。

      表6 魚群檢測(cè)結(jié)果Table 6 Fish stock detection results

      總體而言,本文算法大幅度提升了在遮擋情況下的遮擋檢測(cè)率ODR;同時(shí),對(duì)于不同背景下的目標(biāo)具有較高的魯棒性,相比于傳統(tǒng)斑馬魚檢測(cè)算法,具有較為明顯的優(yōu)勢(shì)。

      5 結(jié)論

      為了解決深度學(xué)習(xí)對(duì)目標(biāo)整體的檢測(cè)忽略了目標(biāo)的特征且制作訓(xùn)練集人工成本高的問題,本文提出了基于斑馬魚圖像特征的自動(dòng)標(biāo)注算法,用于自動(dòng)生成YOLOv4 訓(xùn)練集,通過實(shí)驗(yàn)表明自動(dòng)標(biāo)注算法標(biāo)注正確率達(dá)到87%以上,并且自動(dòng)標(biāo)注算法結(jié)合人工校正方法能夠在只犧牲1.00% mAP的基礎(chǔ)上,在標(biāo)注時(shí)間上減少93.11%。為了解決魚群密集目標(biāo)檢測(cè)中目標(biāo)存在局部遮擋導(dǎo)致的漏檢問題,本文利用YOLOv4 網(wǎng)絡(luò)進(jìn)行魚頭尾檢測(cè),該檢測(cè)器能快速、準(zhǔn)確檢測(cè)魚頭尾的位置,即使在魚體遮擋情況下,也能很好地工作。通過實(shí)驗(yàn)對(duì)本文算法進(jìn)行了驗(yàn)證,在目標(biāo)遮擋率為42.72%的情況下,相比于IdtrackerAI,本文算法的召回率R、遮擋檢測(cè)率ODR分別提高了8.04%與18.8%,對(duì)比實(shí)驗(yàn)結(jié)果表明本文提出的算法具有更優(yōu)的性能。

      猜你喜歡
      魚頭魚群斑馬魚
      魚頭星云
      斑馬魚天生就能辨別數(shù)量
      小斑馬魚歷險(xiǎn)記
      小貓“魚頭”
      魚群漩渦
      中外文摘(2017年19期)2017-10-10 08:28:41
      瓜蔞不同部位對(duì)斑馬魚促血管生成及心臟保護(hù)作用
      中成藥(2017年6期)2017-06-13 07:30:35
      基于改進(jìn)魚群優(yōu)化支持向量機(jī)的短期風(fēng)電功率預(yù)測(cè)
      基于人工魚群算法的光伏陣列多峰MPPT控制策略
      吃魚頭
      多子群并行人工魚群算法的改進(jìn)研究
      古蔺县| 揭西县| 新津县| 常宁市| 股票| 邓州市| 海盐县| 酉阳| 青川县| 上虞市| 巍山| 阿克| 东兰县| 濉溪县| 上犹县| 芒康县| 年辖:市辖区| 太湖县| 淮滨县| 昂仁县| 车险| 蓝山县| 于田县| 清镇市| 龙山县| 扶绥县| 望江县| 左权县| 页游| 青冈县| 陇川县| 施甸县| 同德县| 常熟市| 剑河县| 丰原市| 渝中区| 鱼台县| 青神县| 贵阳市| 新宾|