0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

為什么大多數(shù)流行的目標檢測模型不擅長檢測小目標?

機器視覺自動化 ? 來源:AI公園 ? 作者:AI公園 ? 2021-06-09 17:50 ? 次閱讀

導讀

對小目標檢測進行了分析,并結(jié)合已有的方法給出了一些思路。

機器學習正越來越多地進入我們的日常生活。從個人服務(wù)的廣告和電影推薦,到自動駕駛汽車和自動送餐服務(wù)。幾乎所有的現(xiàn)代自動化機器都能“看”世界,但跟我們不一樣。為了像我們?nèi)祟愐粯涌吹胶妥R別每個物體,它們必須特別地進行檢測和分類。雖然所有現(xiàn)代檢測模型都非常擅長檢測相對較大的物體,比如人、汽車和樹木,但另一方面,小物體仍然給它們帶來一些麻煩。對于一個模型來說,很難在房間的另一邊看到手機,或者在100米之外看到紅綠燈。所以今天我們要講的是為什么大多數(shù)流行的目標檢測模型不擅長檢測小目標,我們?nèi)绾翁岣咚鼈兊男阅?,以及其他已知的解決這個問題的方法。

原因

所有現(xiàn)代目標檢測算法都是基于卷積神經(jīng)網(wǎng)絡(luò)的。這是一種非常強大的方法,因為它能夠創(chuàng)造一些低級的圖像抽象,如線,圓圈,然后將它們“迭代地組合”成我們想要檢測的目標,但這也是它們難以檢測小目標的原因。

上面你可以看到一個通用的圖像分類神經(jīng)網(wǎng)絡(luò)的插圖。我們最感興趣的是隱藏層部分。如你所見,這個網(wǎng)絡(luò)有許多卷積的組合,然后是一個池化層。許多目標檢測網(wǎng)絡(luò),如YOLO, SSD-Inception和Faster R-CNN也使用這些,而且使用得相當多。將圖像的分辨率從600×600降低到約30×30。由于這個事實,他們在第一層提取的小目標特征(一開始就很少)在網(wǎng)絡(luò)中間的某個地方“消失”了,從來沒有真正到達檢測和分類步驟中。我們可以嘗試一些方法來幫助模型更好地查看這些目標,但是在改進性能之前,讓我們先看看它現(xiàn)在的狀態(tài)。

目前流行的目標檢測器的性能

論文SOD-MTGAN在COCO數(shù)據(jù)集上進行實驗并收集了2016年的測試結(jié)果。+++表示F-RCNN的特殊訓練過程。

一些很小改動去提升小目標檢測的方法

使用Focal loss

如果你有很多類要檢測,一個最簡單的方法來提高對小物體和難以檢測的類的檢測是在訓練神經(jīng)網(wǎng)絡(luò)的過程中使用Focal loss。這里的主要直覺是,這種損失對網(wǎng)絡(luò)的“懲罰”不是對它已經(jīng)可以很好地檢測到的類別進行錯誤分類,而是對它現(xiàn)在有問題的類別進行更多分類。因此,為了進一步最小化損失函數(shù),權(quán)值將開始以這樣一種方式改變,使網(wǎng)絡(luò)更好地挑選困難的類別。這很容易從主要論文提供的圖中看到:

將圖像分成小塊

我們自己也遇到過模型不能檢測到相對較小的物體的問題。任務(wù)是檢測足球運動員和比賽場上的足球。游戲的分辨率是2K,所以我們有很多細節(jié)。但我們用來檢測玩家的模型的輸入分辨率要小得多——從300×300到604×604。所以,當我們把圖像輸入網(wǎng)絡(luò)時,很多細節(jié)都丟失了。它仍然能夠找到前景中的球員,但既沒有球也沒有球員在球場的另一邊被檢測到。因為我們有一個大的輸入圖像,我們決定先嘗試我們能想到的最簡單的解決方案 —— 把圖像分割成小塊,然后對它們運行檢測算法。而且效果很好。你可以在下面看到運行測試的結(jié)果。

雖然該模型的FPS大幅下降,但它給了該模型在玩家檢測上一個非常好的準確性提升。另一方面,球仍然是個問題。稍后我們將更深入地探討我們是如何解決它的。

利用圖像的時間特性

如果我們有一個來自靜止攝像機的視頻,我們需要檢測它上面的移動物體,比如足球,我們可以利用圖像的時間特性。例如,我們可以做背景減法,或者僅僅使用后續(xù)幀之間的差異作為一個(或多個)輸入通道。所以,我們可能有3個RGB通道和一個或多個額外的通道。這確實讓我們改變了一些網(wǎng)絡(luò)的輸入,但仍然不是很多。我們所需要改變的只是第一個輸入層,而網(wǎng)絡(luò)的其他部分可以保持不變,仍然可以利用整個架構(gòu)的力量。

這一變化將預示著網(wǎng)絡(luò)將為移動目標創(chuàng)造更“強大”的特性,而這些特性不會消失在池化和大stride的卷積層中。

改變anchor大小

目前的一些探測器使用所謂的“錨”來探測物體。這里的主要直覺是通過明確地向網(wǎng)絡(luò)提供一些關(guān)于物體大小的信息來幫助網(wǎng)絡(luò)檢測物體,并在圖像中每個預定義的單元格中檢測幾個物體。

因此,改變錨點以適應你的數(shù)據(jù)集是一個很好的主意。對于YOLOv3,有一種簡單的方法可以做到這一點。這里:https://github.com/AlexeyAB/darknet#how-to-improve-object-detection你將發(fā)現(xiàn)一系列改進YOLO體系結(jié)構(gòu)檢測的方法。

為小目標檢測定制模型

上面描述的方法很好,但遠不是最好的,如果你使用專為尋找小目標而設(shè)計的體系結(jié)構(gòu),你很可能會獲得更好的結(jié)果。所以,讓我們開始吧。

特征金字塔網(wǎng)絡(luò) (FPN)

由于其有趣的結(jié)構(gòu),這些類型的網(wǎng)絡(luò)在檢測小目標方面表現(xiàn)得相當有效。雖然像SSD和YOLOv3這樣的網(wǎng)絡(luò)也檢測不同尺度的目標,但是只使用了這些尺度的信息,即所謂的金字塔特征層,而FPN建議將高層特征向下傳播。這一方法“豐富”了抽象的底層,并具有更強的語義特征,這些特征是網(wǎng)絡(luò)在其頭部附近計算出來的,最終幫助探測器拾取小物體。這種簡單而有效的方法表明,可以將目標檢測數(shù)據(jù)集的總體平均精度從47.3提高到56.9。

Finding Tiny Faces

這篇做了大量的工作和研究。我強烈建議你閱讀全文:https://arxiv.org/pdf/1612.04402.pdf,但我們在這里總結(jié)一下:

上下文很重要,利用它更好地找到小物體

建立多個不同尺度的網(wǎng)絡(luò)成本高,但效果好

如果你想要高精度,區(qū)域建議仍然是一個好方法

查看你的骨干網(wǎng)絡(luò)做預訓練的數(shù)據(jù)集,然后嘗試縮放你的圖像,使你需要檢測/分類的目標的大小匹配那些預訓練的數(shù)據(jù)集。這將減少訓練時間和并得到更好的結(jié)果。檢測大小為20×45的目標,使用同樣大小的kernel可能并不一定是最有效的。將圖像放大兩倍并使用40×90的kernel,就可能真正提高性能。大物體的情況則相反。

F-RCNN的改進

因為在幾乎所有你看到的關(guān)于網(wǎng)絡(luò)之間的速度/準確性比較的圖表中,F(xiàn)-RCNN總是在右上角,人們一直在努力提高這種體系結(jié)構(gòu)的速度和準確性。我們將簡要看一下不同的改進方法,以提高其準確性。

Small Object Detection in Optical Remote Sensing Images via Modified Faster RCNN

在本文中,作者做了幾件事。首先,他們測試了不同的預訓練骨干網(wǎng)絡(luò)用于F-RCNN的小目標檢測。結(jié)果表明,ResNet-50的效果最好。他們已經(jīng)選擇了最適合他們測試網(wǎng)絡(luò)的數(shù)據(jù)集的最佳錨尺寸。此外,就像之前關(guān)于尋找小人臉的論文一樣,使用物體周圍的背景也顯著有助于檢測。最后,他們采用了從高到低結(jié)合特征的FPN方法。

然而,架構(gòu)并不是他們唯一改變和創(chuàng)新的東西。訓練過程也得到了改進,并對訓練結(jié)果產(chǎn)生了很大的影響。第一個變化是為訓練平衡數(shù)據(jù)集的特定方式。他們通過多次處理一些圖像來平衡數(shù)據(jù)集,而不是讓它保持原樣,然后調(diào)整損失函數(shù)來進行均衡類別的學習。這使得每個時代的階級分布更加均勻。他們改變的第二件事是添加了一個隨機旋轉(zhuǎn)。因此,它們不是將圖像旋轉(zhuǎn)90或180度,而是將圖像旋轉(zhuǎn)一個隨機生成的角度,例如13.53。這需要重新計算邊界框,你可以在原始論文中看到公式。

Small Object Detection with Multiscale Features

本文作者也使用Faster-RCNN作為主要網(wǎng)絡(luò)。他們所做的修改與FPN的想法相似 —— 將高層的特征與低層的特征結(jié)合起來。但是,他們沒有迭代地組合層,而是將它們連接起來,并對結(jié)果運行1×1卷積。這在作者提供的體系結(jié)構(gòu)可視化中得到了最好的體現(xiàn)。

在結(jié)果表中,他們顯示,與普通的Faster-RCNN相比,這種方法使mAP增加了0.1。

SOD-MTGAN: Small Object Detection via Multi-Task Generative Adversarial Network

首先,在讀到這種方法的名稱后,你可能會想:“等等,使用GAN來檢測目標?”。但請耐心等待,這種方法的作者做了一件相當聰明的事情。你可能之前就想到過:“如果物體都很小,為什么我們不放大它們呢?”簡單地使用插值將圖像放大的問題在于,對于原來的5×5的模糊的像素,我們將得到10×10(或20×20,或任何你設(shè)置的倍增因子)甚至更模糊的像素。這在某些情況下可能有所幫助,但通常情況下,這以處理更大的圖像和更長時間的訓練為代價,提供了相對較小的性能提升。但是如果我們有一種方法可以放大圖像同時保留細節(jié)呢?這就是GANs發(fā)揮作用的地方。你可能知道,它們被證明在放大圖像時非常有效。所謂的超分辨率網(wǎng)絡(luò)(SRN)可以可靠地將圖像縮放到x4倍,如果你有時間訓練它們并收集數(shù)據(jù)集的話,甚至可以更高。

但作者們也不僅僅是簡單地使用SRN來提升圖像,他們訓練SRN的目的是創(chuàng)建圖像,使最終的檢測器更容易找到小物體,檢測器與生成器一起訓練。因此,這里的SRN不僅用于使模糊的圖像看起來清晰,而且還用于為小物體創(chuàng)建描述性特征。正如你在之前的圖中看到的,它工作得很好,提供了一個顯著的提高準確性。

總結(jié)

今天我們學到的是:

小目標檢測仍然不是一個完全解決的問題,

上下文問題

放大圖像是個好主意

結(jié)合不同層的輸出

檢查預訓練網(wǎng)絡(luò)的數(shù)據(jù)集,更好地評估其性能和利用它。

原文標題:小目標檢測的一些問題,思路和方案

文章出處:【微信公眾號:機器視覺自動化】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

責任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 神經(jīng)網(wǎng)絡(luò)

    關(guān)注

    42

    文章

    4771

    瀏覽量

    100778
  • 網(wǎng)絡(luò)
    +關(guān)注

    關(guān)注

    14

    文章

    7568

    瀏覽量

    88796
  • 機器學習
    +關(guān)注

    關(guān)注

    66

    文章

    8418

    瀏覽量

    132655

原文標題:小目標檢測的一些問題,思路和方案

文章出處:【微信號:jiqishijue2020,微信公眾號:機器視覺自動化】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    AI模型部署邊緣設(shè)備的奇妙之旅:目標檢測模型

    以及邊緣計算能力的增強,越來越多的目標檢測應用開始直接在靠近數(shù)據(jù)源的邊緣設(shè)備上運行。這不僅減少了數(shù)據(jù)傳輸延遲,保護了用戶隱私,同時也減輕了云端服務(wù)器的壓力。然而,在邊緣端部署高效且準確的目標
    發(fā)表于 12-19 14:33

    YOLOv10自定義目標檢測之理論+實踐

    概述 YOLOv10 是由清華大學研究人員利用 Ultralytics Python 軟件包開發(fā)的,它通過改進模型架構(gòu)并消除非極大值抑制(NMS)提供了一種新穎的實時目標檢測方法。這些優(yōu)化使得
    的頭像 發(fā)表于 11-16 10:23 ?469次閱讀
    YOLOv10自定義<b class='flag-5'>目標</b><b class='flag-5'>檢測</b>之理論+實踐

    在樹莓派上部署YOLOv5進行動物目標檢測的完整流程

    卓越的性能。本文將詳細介紹如何在性能更強的計算機上訓練YOLOv5模型,并將訓練好的模型部署到樹莓派4B上,通過樹莓派的攝像頭進行實時動物目標檢測。 一、在電腦上訓練YOLOv5
    的頭像 發(fā)表于 11-11 10:38 ?1009次閱讀
    在樹莓派上部署YOLOv5進行動物<b class='flag-5'>目標</b><b class='flag-5'>檢測</b>的完整流程

    目標檢測中大物體的重要性

    導讀實驗表明,對大型物體賦予更大的權(quán)重可以提高所有尺寸物體的檢測分數(shù),從而整體提升目標檢測器的性能(在COCOval2017數(shù)據(jù)集上使用InternImage-T模型,小物體
    的頭像 發(fā)表于 10-09 08:05 ?474次閱讀
    在<b class='flag-5'>目標</b><b class='flag-5'>檢測</b>中大物體的重要性

    圖像分割與目標檢測的區(qū)別是什么

    圖像分割與目標檢測是計算機視覺領(lǐng)域的兩個重要任務(wù),它們在許多應用場景中都發(fā)揮著關(guān)鍵作用。然而,盡管它們在某些方面有相似之處,但它們的目標、方法和應用場景有很大的不同。本文將介紹圖像分割與目標
    的頭像 發(fā)表于 07-17 09:53 ?1337次閱讀

    目標檢測與圖像識別的區(qū)別在哪

    目標檢測與圖像識別是計算機視覺領(lǐng)域中的兩個重要研究方向,它們在實際應用中有著廣泛的應用,如自動駕駛、智能監(jiān)控、醫(yī)療診斷等。盡管它們在某些方面有相似之處,但它們之間存在一些關(guān)鍵的區(qū)別。 基本概念 目標
    的頭像 發(fā)表于 07-17 09:51 ?892次閱讀

    目標檢測與識別技術(shù)有哪些

    目標檢測與識別技術(shù)是計算機視覺領(lǐng)域的重要研究方向,廣泛應用于安全監(jiān)控、自動駕駛、醫(yī)療診斷、工業(yè)自動化等領(lǐng)域。 目標檢測與識別技術(shù)的基本概念 目標
    的頭像 發(fā)表于 07-17 09:40 ?610次閱讀

    目標檢測與識別技術(shù)的關(guān)系是什么

    目標檢測與識別技術(shù)是計算機視覺領(lǐng)域的兩個重要研究方向,它們之間存在著密切的聯(lián)系和相互依賴的關(guān)系。 一、目標檢測與識別技術(shù)的概念 目標
    的頭像 發(fā)表于 07-17 09:38 ?611次閱讀

    目標檢測識別主要應用于哪些方面

    目標檢測識別是計算機視覺領(lǐng)域的一個重要研究方向,它主要關(guān)注于從圖像或視頻中識別和定位目標物體。隨著計算機視覺技術(shù)的不斷發(fā)展,目標檢測識別已經(jīng)
    的頭像 發(fā)表于 07-17 09:34 ?1076次閱讀

    慧視小目標識別算法 解決目標檢測中的老大難問題

    隨著深度學習和人工智能技術(shù)的興起與技術(shù)成熟,一大批如FasterR-CNN、RetinaNet、YOLO等可以在工業(yè)界使用的目標檢測算法已逐步成熟并進入實際應用,大多數(shù)場景下的目標
    的頭像 發(fā)表于 07-17 08:29 ?497次閱讀
    慧視小<b class='flag-5'>目標</b>識別算法   解決<b class='flag-5'>目標</b><b class='flag-5'>檢測</b>中的老大難問題

    基于深度學習的小目標檢測

    在計算機視覺領(lǐng)域,目標檢測一直是研究的熱點和難點之一。特別是在小目標檢測方面,由于小目標在圖像中所占比例小、特征不明顯,使得
    的頭像 發(fā)表于 07-04 17:25 ?890次閱讀

    深入了解目標檢測深度學習算法的技術(shù)細節(jié)

    本文將討論目標檢測的基本方法(窮盡搜索、R-CNN、FastR-CNN和FasterR-CNN),并嘗試理解每個模型的技術(shù)細節(jié)。為了讓經(jīng)驗水平各不相同的讀者都能夠理解,文章不會使用任何公式來進行講解
    的頭像 發(fā)表于 04-30 08:27 ?347次閱讀
    深入了解<b class='flag-5'>目標</b><b class='flag-5'>檢測</b>深度學習算法的技術(shù)細節(jié)

    OpenVINO? C# API部署YOLOv9目標檢測和實例分割模型

    YOLOv9模型是YOLO系列實時目標檢測算法中的最新版本,代表著該系列在準確性、速度和效率方面的又一次重大飛躍。
    的頭像 發(fā)表于 04-03 17:35 ?899次閱讀
    OpenVINO? C# API部署YOLOv9<b class='flag-5'>目標</b><b class='flag-5'>檢測</b>和實例分割<b class='flag-5'>模型</b>

    深度學習檢測目標常用方法

    深度學習的效果在某種意義上是靠大量數(shù)據(jù)喂出來的,小目標檢測的性能同樣也可以通過增加訓練集中小目標樣本的種類和數(shù)量來提升。
    發(fā)表于 03-18 09:57 ?726次閱讀
    深度學習<b class='flag-5'>檢測</b>小<b class='flag-5'>目標</b>常用方法

    AI驅(qū)動的雷達目標檢測:前沿技術(shù)與實現(xiàn)策略

    傳統(tǒng)的雷達目標檢測方法,主要圍繞雷達回波信號的統(tǒng)計特性進行建模,進而在噪聲和雜波的背景下對目標存在與否進行判決,常用的典型算法如似然比檢測(LRT)、
    發(fā)表于 03-01 12:26 ?2868次閱讀
    AI驅(qū)動的雷達<b class='flag-5'>目標</b><b class='flag-5'>檢測</b>:前沿技術(shù)與實現(xiàn)策略