win10+tensorflow faster-RCNN 訓練自己的數據集

首先,感謝博客上各路大佬的無私奉獻!但是也不得不吐槽下,大佬些寫博客的時候能盡量寫的對小白友好一點嗎?期間遇到各種坑,說多了都是淚啊!話不多說,上正題!

環境:win10+anaconda3+tensorflow1.2.1+python3.6,CPU版本。

源碼地址:https://github.com/dBeker/Faster-RCNN-TensorFlow-Python3.5

一 下載源碼以及源碼環境準備

  1. 肯定是下載源碼,配置好相應的環境!anaconda prompt下激活tensorflow環境,包括但不限于安裝python包(cython,python-opencv,easydict),反正就是提示缺少什么,就install什么就對了!
  2. GitHub上源碼提示有“Checkout this branch”這一步,但我沒懂什么意思!沒照做,但是也訓練成功了,有懂得老哥幫忙解釋一下!
  3. setup.py文件修改

? ? ? ? 在第16行加入以下代碼,(別問我為什么,我只是代碼的搬運工)

?

    Extension('lib.utils.cython_bbox', sources=['E:/python/tensorflow/Faster-RCNN-TensorFlow-Python3.5-master/lib/utils/bbox.c','E:/python/tensorflow/Faster-RCNN-TensorFlow-Python3.5-master/lib/utils/bbox.pyx'],include_dirs = [np.get_include(), 'E:/python/tensorflow/Faster-RCNN-TensorFlow-Python3.5-master/lib/utils'],extra_compile_args=[])
  1. 承接步驟1,進入到源碼的路徑下(cd 自己的路徑\Faster-RCNN-TensorFlow-Python3.5-master\data\coco\PythonAPI);分別執行下列命令:
    python setup.py build_ext --inplace
    python setup.py build_ext install

    提示:安裝VS2015的庫,否則會報錯 “error: Unable to find vcvarsall.bat”

  2. 用VS2015編譯python3.6代碼:這一步對于不是python3.5的小伙伴很關鍵,因為源碼是基于python3.5編譯,而在python3.6下運行就會報錯,所以必須在python3.6環境下重新編譯。編譯步驟如下:

? ? ? ? 1)打開VS2015 X64 本機工具命令提示符;

? ? ? ? ?

? ? ? ? ?2)同樣激活tensorflow環境(activate tensorflow),進入到源碼的路徑下(cd 自己的路徑\Faster-RCNN-TensorFlow-Python3.5-master\data\coco\PythonAPI),運行:

python setup.py build_ext --inplace;

? ? ? ? ? ? ? 會在 “***\Faster-RCNN-TensorFlow-Python3.5-master\data\coco\PythonAPI\lib\utils”目錄下生成cython_bbox.cp36-win_amd64.pyd文件,將該文件復制到“***\Faster-RCNN-TensorFlow-Python3.5-master\lib\utils”下。

? ? ? ? 5. 這里下載模型VGG16?,放入“***\Faster-RCNN-TensorFlow-Python3.5-master\data \ imagenet_weights \ vgg16.ckpt”,記得把文件名從“VGG_16”更改為“VGG16”,這兒坑了我不少時間。再次感謝博主---douminan

二 準備訓練集

1.labelimg標注數據

labelimg的使用:https://cloud.tencent.com/developer/news/325876

注意:注意標注的時候一定不要用大寫,不要有空格,建議全部用小寫字母和數字,感謝博主--beyond_xnsx

2.將自己的數據制作成VOC2007的格式

批量命名文件:https://blog.csdn.net/u011574296/article/details/72956446

制作訓練集:https://blog.csdn.net/gaohuazhao/article/details/60871886

注意:VOC2007的格式生成如下圖所示:

三 源碼修改

Faster-RCNN-TensorFlow-Python3.5-master\lib\datasets\pascal_voc.py文件中,將以下代碼中的類別替換為自己數據集的類別,如下圖所示。至于某些博客說不能刪除類別總數,但是經實際測試,刪除了也不影響。

        self._classes = ('__background__',  # always index 0'bird','flower', 'horse')

注意:不要更改'__background__',這個是本身自有的,即你有N類檢測目標,實際是N+1,多出來的1類就是背景,所以不能刪除'__background__'。

Faster-RCNN-TensorFlow-Python3.5-master\lib\config\config.py中修改訓練參數,根據自己情況更改哈,博主也是小白,無法作任何指導。

四 訓練

哈哈,終于到激動人心的一刻,成功還是繼續躺坑里就看這一步了!

繼續在anaconda prompt里,激活tensorflow環境,進入到Faster-RCNN-TensorFlow-Python3.5-master根目錄下(跟上述一樣,用“cd”命令進入哈,根目錄就是能看到一個train.py的文件),執行

python train.py

一般不報錯進入到訓練環節就是對的哈,訓練如下所示。

五 后續測試

由于沒有訓練結束,所以等待后續更新。。。

由于工作方面不再接觸這類事件,所以沒有后續了。。。抱歉!

?

主要引用下列博客,再次感謝博客大佬們的無私奉獻。

https://blog.csdn.net/beyond_xnsx/article/details/79771690

https://blog.csdn.net/weixin_38124357/article/details/80816288

https://blog.csdn.net/douminan/article/details/82223619

https://blog.csdn.net/gaohuazhao/article/details/60871886

https://blog.csdn.net/u011574296/article/details/72956446

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

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

相關文章

matlab simulnk筆記07——模塊(接地模塊group、終止模塊terminal、信號合并mux與分解模塊demux)

1.接地模塊group 2.終止模塊terminal 3.信號合并mux 注意:合并僅僅指的是物理上的合并,數學上真正意義上的合并,只是將多個信號放在同一個管道上統一傳輸給顯示終端,但是每個信號之間互不影響,是相

二叉搜索樹的插入與刪除圖解

一、二叉搜索樹(BSTree)的概念 二叉搜索樹又被稱為二叉排序樹,那么它本身也是一棵二叉樹,那么滿足以下性質的二叉樹就是二叉搜索樹:1、若左子樹不為空,則左子樹上左右節點的值都小于根節點的值2、若它的右子…

AlienVault Ossim各版本鏡像下載地址

AlienVault Ossim各版本鏡像下載地址 OSSIM V5.0.3 ISO網盤下載地址 了解Ossim的架構、工作原理和使用方法可以參考我的新書以及http://edu.51cto.com/course/course_id-1186.html 這里提供的視頻教程。 本文轉自 李晨光 51CTO博客,原文鏈接:http://blo…

面試總結

lru算法:最近最少使用  1.新數據插入到鏈表頭部;  2.每當緩存命中(即緩存數據被訪問),則將數據移到鏈表頭部;  3.當鏈表滿的時候,將鏈表尾部的數據丟棄。 自定義控件: 1.measu…

win10+anaconda安裝tensorflow和keras遇到的坑小結

win10下利用anaconda安裝tensorflow和keras的教程都大同小異(針對CPU版本,我的gpu是1050TI的MAX-Q,不知為啥一直沒安裝成功),下面簡單說下步驟。 一 Anaconda安裝 一般來說,python選擇3.6的,目…

rman備份恢復命令之switch

一 switch 命令 1 switch命令用途 更新數據文件名為rman下鏡像拷貝時指定的數據文件名 更新數據文件名為 set newname 命令指定的名字。 2 switch 命令使用前提條件 rman 必須連接到目標數據庫 當switch tablespaces、datafiles、tempfiles時,這些文件必須離線 當…

服務核心 - 工具類

雖然類名稱為CWHService,我理解更多的是工具函數。 主要接口功能有: 1)SetClipboardString設置字符串到windows剪貼板 2)GetMachineID獲取機器標識,網卡地址MD5加密; 3)GetMachineIDEx獲取機器標…

現代制造工程課堂筆記07——應力應變分析(考點應力莫爾圓)

目錄 選擇判斷題,簡單計算在莫爾圓那里出 一、單向拉伸中的應力應變 手寫筆記 選擇判斷題,簡單計算在莫爾圓那里出 一、單向拉伸中的應力應變 、 手寫筆記

win10+tensorflow CPU 部署CTPN環境

剛弄明白CTPN部署的時候,CTPN作者剛更新了簡易代碼版本,看介紹是把代碼優化了不需要多的配置。。。感覺好憂傷! 源碼地址:https://github.com/eragonruan/text-detection-ctpn/tree/master 新版本地址:https://githu…

css如何實現背景透明,文字不透明?

之前做了個半透明彈層,但設置背景半透明時,子元素包含的字體及其它元素也都變成了半透明。對opacity這個屬性認識的不透徹,在這里做一些總結,方便以后使用。 背景透明,文字不透明的解決方法:為元素添加一個…

SQL Server 使用OPENROWSET訪問ORACLE遇到的各種坑總結

在SQL Server中使用OPENROWSET訪問ORACLE數據庫時,你可能會遇到各種坑,下面一一梳理一下你會遇到的一些坑。 1:數據庫沒有開啟"Ad Hoc Distributed Queries"選項,那么你就會遇到下面坑。 SELECT TOP 10 * FROM OPENROWS…

matlab——FFT傅里葉快速變換

目錄 一、自身的理解與補充 二、其他參考鏈接 一、轉載:https://blog.csdn.net/u013215903/article/details/48091359 FFT是Fast Fourier Transform(快速傅里葉變換)的簡稱,這種算法可以減少計算DFT(離散傅里葉變換,關于此更詳細的說明見后文)的時間,大大提高了運算效…

win10+tensorflow import cv2 bug解決

https://blog.csdn.net/sinat_21591675/article/details/82595812

設計理念 : popup login 在前后臺

popup 意思是一個遮罩層頂在整個網頁最前方,在前臺設計是這樣的,當用戶想在那個界面登入時,就可以有一個遮罩層出現。 在employer或admin(后臺)操作界面是同個理念,在所有的界面都是有control panel為根節點…

input和raw_input

12345678910python 2#!/usr/bin/env python#coding:utf-8nameraw_input("plese input you name") print namepython3#!/usr/bin/env python#coding:utf-8nameinput("plese input you name") print name本文轉自 小小三郎1 51CTO博客,原文鏈接…

MAATLAB GUI——回調函數的設置(Callbacks)

目錄 1.回調函數創建步驟 1)命令窗口中輸入guide,創建一個新的GUI界面窗口

是什么時候開始學習gulp了

轉自:http://www.ydcss.com/archives/18 簡介: gulp是前端開發過程中對代碼進行構建的工具,是自動化項目的構建利器;她不僅能對網站資源進行優化,而且在開發過程中很多重復的任務能夠使用正確的工具自動完成&#xff1…

011——數組(十一)array_merge array_merge_recursive array_change_key_case

<?php /***/ //array_merge() 將多個數組合并&#xff0c;生成新數組。當鍵名相同時&#xff0c;后者覆蓋前者 /*$array1array(weburl>"bbs.blog.com",webname>"博客"); $array2array(db_hot>"localhost",db_user>"root&qu…