<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          使用Mask-RCNN在實例分割應(yīng)用中克服過擬合

          共 3314字,需瀏覽 7分鐘

           ·

          2020-12-23 16:42

          點擊上方小白學(xué)視覺”,選擇加"星標"或“置頂

          重磅干貨,第一時間送達

          本文轉(zhuǎn)自AI公園

          作者:Kayo Yin

          編譯:ronghuaiyang

          導(dǎo)讀

          只使用1349張圖像訓(xùn)練Mask-RCNN,有代碼。

          代碼:https://github.com/kayoyin/tiny-inst-segmentation

          介紹

          計算機視覺的進步帶來了許多有前途的應(yīng)用,如自動駕駛汽車或醫(yī)療診斷。在這些任務(wù)中,我們依靠機器的能力來識別物體。

          我們經(jīng)??吹降呐c目標識別相關(guān)的任務(wù)有4個:分類和定位、目標檢測、語義分割和實例分割。

          分類和定位中,我們感興趣的是為圖像中目標的分配類標簽,并在目標周圍繪制一個包圍框。在這個任務(wù)中,要檢測的目標數(shù)量是固定的。

          物體檢測不同于分類和定位,因為這里我們沒有預(yù)先假設(shè)圖像中物體的數(shù)量。我們從一組固定的目標類別開始,我們的目標是分配類標簽,并在每次這些類別中的一個目標出現(xiàn)在圖像中時繪制邊界框。

          語義分割中,我們?yōu)?strong>每個圖像像素分配一個類標簽:所有屬于草的像素被標記為“grass”,屬于羊的像素被標記為“sheep”。值得注意的是,例如,這個任務(wù)不會對兩只羊產(chǎn)生區(qū)別。

          我們的任務(wù)是實例分割,它建立在目標檢測和語義分割之上。在目標檢測中,我們的目標是在預(yù)定義的類別中標記和定位目標的所有實例。但是,我們沒有為檢測到的目標生成邊界框,而是進一步識別哪些像素屬于該目標,就像語義分割一樣。與語義分割不同的是,實例分割為每個目標實例繪制一個單獨的掩碼,而語義分割將為同一類的所有實例使用相同的掩碼。

          在本文中,我們將在一個很小的Pascal VOC數(shù)據(jù)集上訓(xùn)練一個實例分割模型,其中只有1349張圖像用于訓(xùn)練,100張圖像用于測試。這里的主要挑戰(zhàn)是在不使用外部數(shù)據(jù)的情況下防止模型過擬合。

          數(shù)據(jù)處理

          標注采用COCO格式,因此我們可以使用pycocotools中的函數(shù)來檢索類標簽和掩碼。在這個數(shù)據(jù)集中,共有20個類別。

          下面是一些訓(xùn)練圖像和相關(guān)mask的可視化顯示。mask的不同陰影表示同一目標類別的多個實例的不同掩碼。

          圖像的大小和長寬比各不相同,因此在將圖像輸入模型之前,我們調(diào)整每個圖像的尺寸500x500。當圖像尺寸小于500時,我們對圖像進行優(yōu)化,使最大邊的長度為500,并添加必要的零以獲得正方形圖像。

          為了使模型能夠很好地泛化,特別是在這樣一個有限的數(shù)據(jù)集上,數(shù)據(jù)增強是克服過擬合的關(guān)鍵。對于每一個圖像,以0.5的概率水平翻轉(zhuǎn),以0.9到1倍的尺度進行隨機剪裁,以0.5的概率進行高斯模糊,標準差為隨機,對比度隨機調(diào)整尺度為0.75和1.5之間,亮度隨機調(diào)整尺度在0.8和1.2之間,以及一系列隨機仿射變換如縮放、平移、旋轉(zhuǎn),剪切。

          Mask-RCNN

          我們使用matterport實現(xiàn)的Mask-RCNN進行訓(xùn)練。雖然結(jié)果可能會很好看,但我們不會用MS COCO的預(yù)訓(xùn)練權(quán)重來展示我們?nèi)绾沃挥?349張訓(xùn)練圖像就能得到好的結(jié)果。

          Mask-RCNN是在2017年Mask-RCNN論文中提出的,是同一作者對Faster-RCNN的擴展。Faster-RCNN被廣泛應(yīng)用于目標檢測,模型在被檢測物體周圍生成包圍盒。Mask-RCNN進一步生成了目標的mask 。

          我將在下面簡要介紹模型體系結(jié)構(gòu)。

          首先,我們使用一個主干模型從輸入圖像中提取相關(guān)的特征。在這里,我們使用ResNet101架構(gòu)作為骨干。圖像由張量(500,500,3)轉(zhuǎn)換為特征圖(32,32,2048)。

          然后將之前獲得的特征輸入到一個區(qū)域建議網(wǎng)絡(luò)(RPN)中。RPN掃描feature map的區(qū)域,稱為anchors,并嘗試確定包含目標的區(qū)域。這些anchor的尺寸和縱橫比各不相同。RPN為每個anchor分配一個類別:前景(正樣本anchor)或背景(負樣本anchor)。中性anchor是指不影響訓(xùn)練的anchor。

          正樣本anchors(左),中性anchors(中),負樣本anchors(右)

          建議層然后挑選最有可能包含目標的anchor,并優(yōu)化anchor框以更接近目標。當太多anchor點重疊時,只保留前景分數(shù)最高的那個(非最大抑制)。這樣,我們就得到了感興趣的區(qū)域 (ROI)。

          對于每個由ROI分類器選中的目標區(qū)域,模型生成28x28的mask。在訓(xùn)練過程中,將 ground truth mask縮小,用預(yù)測的mask計算損失,在推理過程中,將生成的mask放大到ROI的邊界框大小。

          遷移學(xué)習

          特別是在數(shù)據(jù)有限的情況下,更快更好地訓(xùn)練模型的關(guān)鍵是遷移學(xué)習。Imagenet數(shù)據(jù)集是一個巨大的自然圖像語料庫,類似于我們的圖像。因此,我們可以將Resnet101骨干模型的權(quán)值初始化為在Imagenet上預(yù)先訓(xùn)練的權(quán)值。這將提高我們得到的特征圖的準確性,從而提高整個模型。

          為了微調(diào)在Imagenet上預(yù)訓(xùn)練的模型,我們首先只訓(xùn)練model heads。然后我們在剩下的epochs中訓(xùn)練從ResNet level 4和以上的層。這個訓(xùn)練方案也有助于最小化過擬合。我們可以不去微調(diào)第一層,因為我們可以重用模型從自然圖像中提取特征的權(quán)重。

          結(jié)果 & 檢測pipeline可視化

          我們的測試集上獲得的mAP為0. 53650。下面是隨機選擇測試圖像的模型輸出的一些可視化結(jié)果:

          我們還可以看到算法不同步驟的輸出。下面,我們有在邊界框細化之前的top anchors的得分。

          接下來,我們有了細化的邊界框和非最大抑制后的輸出。這些建議然后被輸入分類網(wǎng)絡(luò)。注意,在這里,我們有一些框框住了一些目標,比如標志,這些目標不屬于我們定義的目標類別。

          在建議區(qū)域上運行分類網(wǎng)絡(luò),得到正樣本的檢測,生成類概率和邊界框回歸。

          在得到邊界框并對其進行細化后,實例分割模型為每個檢測到的目標生成mask。mask是soft masks(具有浮點像素值),在訓(xùn)練時大小為28x28。

          最后,預(yù)測的mask被調(diào)整為邊界框的尺寸,我們可以將它們覆蓋在原始圖像上以可視化最終的輸出。


          END

          英文原文:https://towardsdatascience.com/overcome-overfitting-during-instance-segmentation-with-mask-rcnn-32db91f400bc

          下載1:OpenCV-Contrib擴展模塊中文版教程
          在「小白學(xué)視覺」公眾號后臺回復(fù):擴展模塊中文教程,即可下載全網(wǎng)第一份OpenCV擴展模塊教程中文版,涵蓋擴展模塊安裝、SFM算法、立體視覺、目標跟蹤、生物視覺、超分辨率處理等二十多章內(nèi)容。

          下載2:Python視覺實戰(zhàn)項目31講
          小白學(xué)視覺公眾號后臺回復(fù):Python視覺實戰(zhàn)項目31講,即可下載包括圖像分割、口罩檢測、車道線檢測、車輛計數(shù)、添加眼線、車牌識別、字符識別、情緒檢測、文本內(nèi)容提取、面部識別等31個視覺實戰(zhàn)項目,助力快速學(xué)校計算機視覺。

          下載3:OpenCV實戰(zhàn)項目20講
          小白學(xué)視覺公眾號后臺回復(fù):OpenCV實戰(zhàn)項目20講,即可下載含有20個基于OpenCV實現(xiàn)20個實戰(zhàn)項目,實現(xiàn)OpenCV學(xué)習進階。

          下載4:leetcode算法開源書
          小白學(xué)視覺公眾號后臺回復(fù):leetcode,即可下載。每題都 runtime beats 100% 的開源好書,你值得擁有!



          交流群


          歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器自動駕駛、計算攝影、檢測、分割、識別、醫(yī)學(xué)影像、GAN算法競賽等微信群(以后會逐漸細分),請掃描下面微信號加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三?+?上海交大?+?視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進入相關(guān)微信群。請勿在群內(nèi)發(fā)送廣告,否則會請出群,謝謝理解~



          瀏覽 52
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  www.91搞搞 | 肏屄视频在线免费观看 | 亚洲精品操逼 | 国产播放在线 | 免费成人欧美 |