faster rcnn在自己的數據集上訓練

本文是一個總結,參考了網上的眾多資料,匯集而成,以供自己后續參考。

一般說來,訓練自己的數據,有兩種方法:第一種就是將自己的數據集完全改造成VOC2007的形式,然后放到py-faster-rcnn/data 目錄下,然后相應地改變相應模型的參數,比如種類等。 data目錄下存放的數據如下:

VOCdevkit2007└── VOC2007├── Annotations│   └── *.xml│├── ImageSets│?? └── Main│       ├── train.txt│       └── test.txt└── JPEGImages└── *.jpg
這樣做最省事。


第二種,基本上也是改造成VOC2007的形式,然后放到py-faster-rcnn/data?目錄下,但是允許Annotations不按照xml的形式。可以是自己的形式

YOUR_DATASET_devkit└── data├── Annotations│   └── *.txt│├── ImageSets│       ├── train.txt│       └── test.txt└── JPEGImages└── *.jpg or *.png

關于第二種,可以參考如下文章:

1.?deboc/py-faster-rcnn? 這個代碼是py-faster rcnn的拷貝,實現了二分類模型。里面的data組織如下:

INRIA_Person_devkit/
|-- data/|-- Annotations/|-- *.txt (Annotation files)|-- Images/|-- *.png (Image files)|-- ImageSets/|-- train.txt
按照教程: https://github.com/deboc/py-faster-rcnn/blob/master/help/Readme.md?可以訓練行人檢測。

另外《Fast RCNN 訓練自己數據集 (2修改數據讀取接口)》?也實現了自己的數據讀取。


下面重點說一下第一種。

具體的細節可以參考:?http://blog.csdn.net/Gavin__Zhou/article/details/52052915

需要注意的是 根據文章<解決faster-rcnn中訓練時assert(boxes[:,2]>=boxes[:,0]).all()的問題>? ?我們對lib/datasets/imdb.py,append_flipped_images()函數修改如下:

 def append_flipped_images(self):num_images = self.num_imageswidths = self._get_widths()for i in xrange(num_images):boxes = self.roidb[i]['boxes'].copy()oldx1 = boxes[:, 0].copy()oldx2 = boxes[:, 2].copy()boxes[:, 0] = widths[i] - oldx2 - 1boxes[:, 2] = widths[i] - oldx1 - 1for b in range(len(boxes)):if boxes[b][2]< boxes[b][0]:boxes[b][0] = 0assert (boxes[:, 2] >= boxes[:, 0]).all()entry = {'boxes' : boxes,'gt_overlaps' : self.roidb[i]['gt_overlaps'],'gt_classes' : self.roidb[i]['gt_classes'],'flipped' : True}self.roidb.append(entry)self._image_index = self._image_index * 2


我們說一說其他的,

  • 關于數據標注: ?強烈推薦工具:labelImg :https://github.com/tzutalin/labelImg?這是個圖形化界面操作,可以很方便地標注boundingbox,且生成xml格式。
  • VOC2007數據集地址:?https://pjreddie.com/projects/pascal-voc-dataset-mirror/
  • 圖片重命名像VOC2007那樣:?http://blog.csdn.net/sinat_30071459/article/details/50723212??
  • 根據XML文件生成test.txt(測試集),train.txt(訓練集),val.txt(驗證集),trainval.txt(訓練和驗證集),trainval大概是整個數據集的50%,test也大概是整個數據集的50%;train大概是trainval的50%,val大概是trainval的50%。將這四個txt放在ImageSets\Main中,參考:http://blog.csdn.net/sinat_30071459/article/details/50723212??
  • 另外你不想手動地更改那些參數,可以使用這個:https://github.com/Microos/py-faster-rcnn-data-interface-generator

其他參考文檔:

1.?使用Faster-Rcnn進行目標檢測(實踐篇)

2.?Faster rcnn 安裝、訓練、測試、調試

3.?matlab訓練樣本集的制作

4. ?制作自己的數據集用于faster-rcnn訓練

5.?將數據集做成VOC2007格式用于Faster-RCNN訓練? ?(很重要)

6. Faster-RCNN+ZF用自己的數據集訓練模型(Python版本)

7.?Training'R CNNs'of'various'velocities ? ?訓練faster rcnn的官方文檔1

8.?訓練faster rcnn的官方文檔2

9.?Faster-RCNN+ZF用自己的數據集訓練模型(Matlab版本)

10. Py-faster-rcnn實現自己的數據train和demo??(很重要)


















本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/258627.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/258627.shtml
英文地址,請注明出處:http://en.pswp.cn/news/258627.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

1001種玩法 | 1001種玩法--數據存儲(2)

新智云www.enncloud.cn第二趴 Flockdb&#xff1a;一個高容錯的分布式圖形數據庫 FlockDB是一個存儲圖數據的分布式數據庫&#xff0c;圖數據庫的存儲對象是數學概念圖論里面的圖&#xff0c;而非圖片。Twitter使用它來存儲人與人之間的關系圖&#xff0c;這些關系包括&#xf…

python邏輯量有什么_Python中的邏輯運算符有什么?

邏輯運算符用于組合多個條件測試語句。假設“我今年18歲”和“我身高2米”這兩個語句&#xff0c;前一個語句是真的&#xff0c;后一個語句是假的&#xff0c;因此&#xff0c;“我今年18歲&#xff0c;并且我身高2米”這個語句是假的。其中&#xff0c;“并且”可以認為是邏輯…

時區日期處理及定時 (NSDate,NSCalendar,NSTimer,NSTimeZone)

NSDate存儲的是世界標準時(UTC)&#xff0c;輸出時需要根據時區轉換為本地時間 Dates NSDate類提供了創建date&#xff0c;比較date以及計算兩個date之間間隔的功能。Date對象是不可改變的。 如果你要創建date對象并表示當前日期&#xff0c;你可以alloc一個NSDate對象并調用in…

Android ListView分頁,動態添加數據

1.ListView分頁的實現&#xff0c;重點在于實現OnScrollListener接口&#xff0c;判斷滑動到最后一項時&#xff0c;是否還有數據可以加載&#xff0c; 我們可以利用listView.addFootView(View v)方法進行提示 自定義一個ListView&#xff08;這里本來想進行一些自定已修改的。…

faster rcnn的測試

當訓練結束后&#xff0c;faster rcnn的模型保存在在py-faster-rcnn/output目錄下&#xff0c;這時就可以用已有的模型對新的數據進行測試。 下面簡要說一下測試流程。 測試的主要代碼是./tools/test_net.py&#xff0c;并且使用到了fast_rcnn中test.py。 主要流程就是&…

python重點知識 鉆石_python——子類對象如何訪問父類的同名方法

1. 為什么只說方法不說屬性關于“子類對象如何訪問父類的同名屬性“是沒有意義的。因為父類的屬性子類都有&#xff0c;子類還有父類沒有的屬性&#xff0c;在初始化時&#xff0c;給子類對象具體化所有的給定屬性&#xff0c;完全沒必要訪問父類的屬性&#xff0c;因為是一樣的…

Android-Universal-Image-Loader 的使用說明

這個圖片異步載入并緩存的類已經被非常多開發人員所使用&#xff0c;是最經常使用的幾個開源庫之中的一個&#xff0c;主流的應用&#xff0c;隨便反編譯幾個火的項目&#xff0c;都能夠見到它的身影。但是有的人并不知道怎樣去使用這庫怎樣進行配置&#xff0c;網上查到的信息…

faster rcnn end2end 訓練與測試

除了前面講過的rpn與fast rcnn交替訓練外&#xff0c;faster rcnn還提供了一種近乎聯合的訓練&#xff0c;姑且稱為end2end訓練。 根據論文所講&#xff0c;end2end的訓練一氣呵成&#xff0c;對于前向傳播&#xff0c;rpn可以作為預設的網絡提供proposal.而在后向傳播中&…

jquery ui動態切換主題的一種實現方式

這兩天看coreservlets上的jQuery教程&#xff0c;雖然比較老了&#xff0c;不過講得還是不錯。最后一部分講jQuery ui 主題切換&#xff0c;用他介紹的方法實現不了。于是自己修改了下&#xff0c;可以了。代碼如下&#xff1a;html部分&#xff1a;<fieldset class"ui…

[學習總結]7、Android AsyncTask完全解析,帶你從源碼的角度徹底理解

我們都知道&#xff0c;Android UI是線程不安全的&#xff0c;如果想要在子線程里進行UI操作&#xff0c;就需要借助Android的異步消息處理機制。之前我也寫過了一篇文章從源碼層面分析了Android的異步消息處理機制&#xff0c;感興趣的朋友可以參考 Android Handler、Message完…

python字頻統計軟件_python結巴分詞以及詞頻統計實例

python結巴分詞以及詞頻統計實例發布時間&#xff1a;2018-03-20 14:52,瀏覽次數&#xff1a;773, 標簽&#xff1a;python# codingutf-8Created on 2018年3月19日author: chenkai結巴分詞支持三種分詞模式&#xff1a;精確模式: 試圖將句子最精確地切開&#xff0c;適合文…

html從入門到賣電腦(三)

CSS3中和動畫有關的屬性有三個 transform、 transition 和 animation。下面來一一說明: transform 從字面來看transform的釋義為改變&#xff0c;使…變形&#xff1b;轉換 。這里我們就可以理解為變形。那都能怎么變呢&#xff1f; none 表示不進行變換&#xff1b; rotat…

visual studio 2015安裝 無法啟動程序,因為計算機丟失D3DCOMPILER_47.dll 的解決方法

對于題目中的解決方法&#xff0c;我查到了微軟提供的一個方案&#xff1a;https://support.microsoft.com/en-us/help/4019990/update-for-the-d3dcompiler-47-dll-component-on-windows 進入如下頁面&#xff1a;http://www.catalog.update.microsoft.com/Search.aspx?qKB4…

UI1_UIView層操作

// // ViewController.m // UI1_UIView層操作 // // Created by zhangxueming on 15/7/1. // Copyright (c) 2015年 zhangxueming. All rights reserved. //#import "ViewController.h"interface ViewController ()endimplementation ViewController- (void)view…

JavaScript Patterns 1 Introduction

1.1 Pattern "theme of recurring events or objects… it can be a template or model which can be used to generate things" (http://en.wikipedia.org/wiki/Pattern). ? Design patterns - Elements of Reusable Object-Oriented Software. ? Coding patte…

基于像素聚類的分割方法基于slic的方法_博士論文摘要 | 張榮春:數碼影像與TLS點云數據融合提取地質結構面方法研究...

《測繪學報》構建與學術的橋梁 拉近與權威的距離數碼影像與TLS點云數據融合提取地質結構面方法研究張榮春1,21.南京郵電大學地理與生物信息學院, 江蘇 南京 210023;2.河海大學地球科學與工程學院, 江蘇 南京 211100收稿日期&#xff1a;2019-03-27基金項目&#xff1a;國家自然…

制作IOS 后臺極光推送時,遇到的小問題

推送廣義上分為兩種&#xff0c; 一種是 程序在前臺的時候&#xff0c;不想在任務欄里面顯示通知&#xff0c;直接在app中進行某種操作。這個叫做自定義消息。這個是在前臺時&#xff0c;app與極光后臺建立了一個長鏈接。 另一種是 程序處于前、后臺 或者殺死狀態的時候&…

Visual Studio 2008 環境變量的配置(參考設置VS2010)

本文轉載自&#xff1a;http://blog.csdn.net/tracyliang223/article/details/21539361COPY FROM&#xff1a;http://www.cnblogs.com/waterlin/archive/2011/10/31/2230341.html 在調試 Visual Studio 2008 程序時&#xff0c;經常有一些動態鏈接庫&#xff08;即 dll 文件&am…

Linq 中 Any與All

昨天突然看到之前寫的一個積累文檔&#xff0c;其中文檔中有一個Linq Any和All的注意事項&#xff1a;注意Any 和 All var list new List<int>(); var aa list.All(n > n > 1); var bb list.Any(n > n > 1); // aa: true bb: false其中List是一個元…

jaxb轉xml空值雙標簽_單品運營思維:標簽-詞路-聚焦-直搜-超直

非標品標簽思維&#xff1a;針對非標品 主要是2.0為主的打法根據搜索入池的關鍵詞&#xff0c;有什么詞做什么詞。有個細節&#xff1a;不一定進什么詞做什么詞&#xff0c;這個維度當中加入3.0的思維3.0入手 轉2.0再切3.0(檢測詞路健康度&#xff0c;非嚴格意義估算單量)舉例&…