日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Mask R-CNN用于目标检测和分割代码实现

發布時間:2023/11/28 生活经验 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mask R-CNN用于目标检测和分割代码实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Mask R-CNN用于目標檢測和分割代碼實現

Mask R-CNN for object detection and instance segmentation on Keras and TensorFlow

代碼鏈接:https://github.com/matterport/Mask_RCNN

這是基于Python 3,Keras和TensorFlow 的Mask R-CNN的實現。該模型為圖像中對象的每個實例生成邊界框和分割masks。基于功能金字塔網絡Feature Pyramid Network(FPN)和ResNet101主干網。

該存儲庫包括:

基于FPN和ResNet101構建的Mask R-CNN的源代碼。
MS COCO的訓練代碼
MS COCO的預訓練權重
Jupyter說明文件電腦可在每個步驟可視化檢測管線
用于多GPU訓練的Parallel Model類
評估MS COCO指標(AP)
自主數據集訓練示例

該代碼已記錄并設計為易于擴展。如果在研究中使用,請考慮引用該存儲庫(下面的bibtex)。如果從事3D視覺工作,可能會發現最近發布的Matterport3D數據集也很有用。該數據集是由客戶捕獲的3D重構空間創建的,這些客戶同意將其公開提供給學術用途。可以在此處看到更多示例。

開始啟動

demo.ipynb是最簡單的啟動方法。顯示了一個示例,該示例使用在MS COCO上進行預訓練的模型來分割自己的圖像中的對象。包括在任意圖像上運行對象檢測和實例分割的代碼。
train_shapes.ipynb顯示了如何在自己的數據集上訓練Mask R-CNN。本說明文件介紹了玩具數據集(形狀),以演示對新數據集的訓練。
(model.py,utils.py,config.py):這些文件包含主要Mask RCNN實現。
inspect_data.ipynb。該說明文件可視化了準備訓練數據的不同預處理步驟。
inspect_model.ipynb本說明文件深入介紹了檢測和分割對象所執行的步驟。提供了管道中每個步驟的可視化。
inspect_weights.ipynb 此說明文件檢查經過訓練的模型的權重,并查找異常和奇數模式。

逐步檢測

為了幫助調試和理解模型,共有3個說明文件(inspect_data.ipynb,inspect_model.ipynb, inspect_weights.ipynb)提供了很多可視化效果,并允許逐步運行模型以檢查每個點的輸出。這里有一些例子:

  1. 錨點排序和過濾

可視化第一階段區域提議網絡的每個步驟,并顯示正錨和負錨以及錨框的細化。

  1. 邊界框優化

這是最終檢測框(虛線)的示例,在第二階段對其進行了改進(實線)。

  1. 遮罩生成

生成的masks示例。然后將縮放并放置在正確位置的圖像上。

  1. 分層激活

通常,檢查不同層的激活以查找故障跡象(全零或隨機噪聲)通常很有用。

  1. 重量直方圖

另一個有用的調試工具是檢查重量直方圖。這些都包含在inspect_weights.ipynb說明文件中。

6.登錄到TensorBoard

TensorBoard是另一個出色的調試和可視化工具。該模型配置為記錄損失并在每個時期結束時節省權重。

7.將不同的部分組合成最終結果

MS COCO訓練

正在為MS COCO提供預訓練的權重,以使其易于啟動。可以將這些權重用作在網絡上訓練自己的變體的起點。訓練和評估代碼在中samples/coco/coco.py。可以在Jupyter說明文件中導入此模塊(有關示例,請參閱提供的說明文件),也可以直接從命令行運行,如下所示:

# Train a new model starting frompre-trained COCO weights

python3 samples/coco/coco.py train
–dataset=/path/to/coco/ --model=coco

# Train a new model starting from ImageNetweights

python3 samples/coco/coco.py train
–dataset=/path/to/coco/ --model=imagenet

# Continue training a model that you hadtrained earlier

python3 samples/coco/coco.py train
–dataset=/path/to/coco/ --model=/path/to/weights.h5

# Continue training the last model you
trained. This will find

# the last trained weights in the model
directory.

python3 samples/coco/coco.py train
–dataset=/path/to/coco/ --model=last

還可以使用以下命令運行COCO評估代碼:

# Run COCO evaluation on the last trained
model

python3 samples/coco/coco.py evaluate
–dataset=/path/to/coco/ --model=last

訓練時間表,學習率和其參數應在中設置samples/coco/coco.py。

訓練自己的數據集

首先閱讀有關氣球顏色飛濺示例的博客文章。涵蓋了從注釋圖像到訓練再到在示例應用程序中使用結果的過程。

總之,要在自己的數據集上訓練模型,需要擴展兩個類:

Config 此類包含默認配置。對其進行子類化,然后修改需要更改的屬性。

Dataset 此類提供了使用任何數據集的一致方式。允許使用新的數據集進行訓練,而無需更改模型的代碼。還支持同時加載多個數據集,如果要檢測的對象在一個數據集中并非全部可用,這將很有用。

見例子samples/shapes/train_shapes.ipynb,samples/coco/coco.py,samples/balloon/balloon.py,和samples/nucleus/nucleus.py。

與官方文件的差異

此實現大部分遵循Mask RCNN論文,但是在少數情況下,偏向于代碼簡單和通用化。這些是知道的一些差異。如果遇到其差異,請告訴。

圖像調整大小:為了支持每批訓練多幅圖像,將所有圖像調整為相同大小。例如,在MS COCO上為1024x1024px。保留寬高比,因此,如果圖像不是正方形,則將其填充為零。在本文中,進行了調整大小,以使最小的一面為800像素,最大的一面為1000像素。
邊界框:某些數據集提供邊界框,而某些數據集僅提供masks。為了支持對多個數據集的訓練,選擇忽略數據集隨附的邊界框,而是動態生成。選擇封裝masks所有像素的最小框作為邊界框。這簡化了實現,并且還使圖像增強很容易應用,否則圖像增強將很難應用于邊界框,例如圖像旋轉。

為了驗證這種方法,將計算出的邊界框與COCO數據集提供的邊界框進行了比較。發現?2%的邊界框相差1px或更多,?0.05%的邊界相差5px或更多,只有0.01%的相差10px或更多。

學習率:本文使用的學習率是0.02,但發現該值太高,通常會導致權重爆炸,尤其是在使用小批量時。這可能與Caffe和TensorFlow計算梯度之間的差異(批次與GPU之間的總和與均值)之間的差異有關。或者,也許官方模型使用漸變修剪來避免此問題。確實使用了梯度裁剪,但不要設置得太過激。發現,較小的學習率無論如何都會收斂得更快,因此繼續這樣做。

引文

使用以下bibtex引用此存儲庫:

@misc{matterport_maskrcnn_2017,

title={Mask R-CNN for object detection and instance segmentation on
Keras and TensorFlow},

author={Waleed Abdulla},

year={2017},

publisher={Github},

journal={GitHub repository},

howpublished={\url{https://github.com/matterport/Mask_RCNN}},

}

貢獻

歡迎對該存儲庫做出貢獻。可以做出貢獻的示例:

速度改進。就像在TensorFlow或Cython中重寫一些Python代碼一樣。
訓練其數據集。
精度提高。
可視化和示例。

也可以加入團隊,并幫助建立更多像這樣的項目。

要求

列出了Python 3.4,TensorFlow 1.3,Keras 2.0.8和其常見軟件包requirements.txt。

MS COCO要求:

要對MS COCO進行訓練或測試,還需要:

pycocotools(下面的安裝說明)
MS COCO數據集
下載5K minival 和35K 驗證減去最小值 子集。更多詳細信息,請參見原始的Faster R-CNN實現。

如果使用Docker,則代碼已通過驗證可在此Docker容器上工作 。

安裝

copy此存儲庫
安裝依賴

pip3 install -r requirements.txt

從存儲庫根目錄運行安裝程序

python3 setup.py安裝

從發布頁面下載預訓練的COCO權重(mask_rcnn_coco.h5)。
(可選)pycocotools從這些存儲庫之一中進行MS COCO安裝的訓練或測試。是原始pycocotools的分支,具有針對Python3和Windows的修復(官方倉庫似乎不再處于活動狀態)。

Linux:https://github.com/waleedka/coco
Windows:https://github.com/philferriere/cocoapi。路徑上必須具有Visual C ++ 2015生成工具(有關更多詳細信息,請參見repo)

總結

以上是生活随笔為你收集整理的Mask R-CNN用于目标检测和分割代码实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。