2019-01-31 window 下訓練數據

訓練數據 windows

https://github.com/EdjeElectronics/TensorFlow-Object-Detection-API-Tutorial-Train-Multiple-Objects-Windows-10

https://www.youtube.com/watch?v=Rgpfk6eYxJA

興奮的發現我的電腦也支持GPU 哈哈 可以安裝 GPU版的了。。。

1、安裝TensorFlow-GPU版本

pip install --upgrade --ignore-installed tensorflow-gpu

2、下載models

https://github.com/tensorflow/models/tree/master/research/object_detection

選擇模型下載 這里選擇Faster-Rcnn-Inception-V2-coco

https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md

這個在電腦運行快 解壓 后放入 剛才下載的models中的

models\research\object_detection 下

接著 下載

https://github.com/EdjeElectronics/TensorFlow-Object-Detection-API-Tutorial-Train-Multiple-Objects-Windows-10

同樣放入這個文件夾下 最后是這樣的

不對 事實證明了 我的筆記本不支持 GPU 因為沒有NVIDIA 我曹 我剛才升級了 怎么搞。

更麻煩的事情來了 我的tensorflow 打不開了導入不了了,我曹 一直報錯 奶奶的 這怎么搞 哪里不兼容

還是往下走吧

將 object_detection 中的 training 中的刪除,inference_graph 中刪除 ,images 中的 test_labels.csv train_labels.csv 刪除,test,train中的文件也刪除吧

3、管理員身份打開anaconda prompt

conda create -n tensorflow1 pip python=3.5
#啟動虛擬環境
activate tensorflow1
#安裝tensorflow 
pip install --ignore-installed --upgrade tensorflow
#如果是GPU 
pip install --ignore-installed --upgrade tensorflow-gpu  #由于我出錯了  我只好 不用GPU了

下面安裝

(tensorflow1) C:\> conda install -c anaconda protobuf
(tensorflow1) C:\> pip install pillow
(tensorflow1) C:\> pip install lxml
(tensorflow1) C:\> pip install Cython
(tensorflow1) C:\> pip install jupyter
(tensorflow1) C:\> pip install matplotlib
(tensorflow1) C:\> pip install pandas
(tensorflow1) C:\> pip install opencv-python

添加環境

set PYTHONPATH=D:\work\nerve_network\tensorflow1\models;D:\work\nerve_network\tensorflow1\models\research;D:\work\nerve_network\tensorflow1\models\slim

接著

set PATH=%PATH%;PYTHONPATH
#查看 
echo %PATH%
echo %PYTHONPATH%

修改 protobuff 中 .proto后綴 為 _pb2.py

cd D:\work\nerve_network\tensorflow1\models\research
#執行下面語句
protoc --python_out=. .\object_detection\protos\anchor_generator.proto .\object_detection\protos\argmax_matcher.proto .\object_detection\protos\bipartite_matcher.proto .\object_detection\protos\box_coder.proto .\object_detection\protos\box_predictor.proto .\object_detection\protos\eval.proto .\object_detection\protos\faster_rcnn.proto .\object_detection\protos\faster_rcnn_box_coder.proto .\object_detection\protos\grid_anchor_generator.proto .\object_detection\protos\hyperparams.proto .\object_detection\protos\image_resizer.proto .\object_detection\protos\input_reader.proto .\object_detection\protos\losses.proto .\object_detection\protos\matcher.proto .\object_detection\protos\mean_stddev_box_coder.proto .\object_detection\protos\model.proto .\object_detection\protos\optimizer.proto .\object_detection\protos\pipeline.proto .\object_detection\protos\post_processing.proto .\object_detection\protos\preprocessor.proto .\object_detection\protos\region_similarity_calculator.proto .\object_detection\protos\square_box_coder.proto .\object_detection\protos\ssd.proto .\object_detection\protos\ssd_anchor_generator.proto .\object_detection\protos\string_int_label_map.proto .\object_detection\protos\train.proto .\object_detection\protos\keypoint_box_coder.proto .\object_detection\protos\multiscale_anchor_generator.proto .\object_detection\protos\graph_rewriter.proto

下面執行

python setup.py build
python setup.py install

測試

cd object_detection
jupyter notebook object_detection_tutorial.ipynb

一步步運行代碼 最后出來圖片被識別 需要一段時間等等

4、建立測試數據

圖片越多越好, 每張照片200kb之內,像素720*1280以下,

使用resizer.py 修改照片大小

照片準備好了后,將20%放入\object_detection\images\test ,

80%放入\object_detection\images\ train

標注圖片生成 xml 文件 每一個標注

python sizeChecker.py --move
#檢測 標注是否正確
python xml_to_csv.py
#生成CSV文件

打開 generate_tfrecord.py 修改 31行

# TO-DO replace this with label map
def class_text_to_int(row_label):
    if row_label == 'nine':
        return 1
    elif row_label == 'ten':
        return 2
    elif row_label == 'jack':
        return 3
    elif row_label == 'queen':
        return 4
    elif row_label == 'king':
        return 5
    elif row_label == 'ace':
        return 6
    else:
        return None

下面生成 TFRecord 文件

python generate_tfrecord.py --csv_input=images\train_labels.csv --image_dir=images\train --output_path=train.record
python generate_tfrecord.py --csv_input=images\test_labels.csv --image_dir=images\test --output_path=test.record

5、創建 label map 設置training

cd data 查看pbtxt格式 將下面數據保存到 training文件中
#新建 labelmap.pbtxt
#添加下面數據
item {
  id: 1
  name: 'nine'
}

item {
  id: 2
  name: 'ten'
}

item {
  id: 3
  name: 'jack'
}

item {
  id: 4
  name: 'queen'
}

item {
  id: 5
  name: 'king'
}

item {
  id: 6
  name: 'ace'
}

最后配置

進入 object_detection\samples\con figs 中 將

faster_rcnn_inception_v2_pets.config 復制到

\object_detection\training 中 接著打開

#注意 / 與 \不同 tensorflow 識別的是forward slash /,
#9行 class  改成你的幾類數字
#110行  修改地址
fine_tune_checkpoint : "D:/work/neerve_network/tensorflow1/models/research/object_detection/faster_rcnn_inception_v2_coco_2018_01_28/model.ckpt"
#126行 
input_path:"D:/work/neerve_network/tensorflow1/models/research/object_detection/train.record"
#128行
label_map_path: "D:/work/neerve_network/tensorflow1/models/research/object_detection/training/labelmap.pbtxt"
#132行
num_examples  是\images\test 中的test圖片數量
#140行
input_path : "D:/work/neerve_network/tensorflow1/models/research/object_detection/test.record"
#142行
label_map_path: "D:/work/neerve_network/tensorflow1/models/research/object_detection/training/labelmap.pbtxt"

6、訓練

python train.py --logtostderr --train_dir=training/ --pipeline_config_path=training/faster_rcnn_inception_v2_pets.config 

這里又出錯了 兩個,第一個沒有train.py 文件 我找到原文 下面很多評論 在legacy 中,于是復制到了上一層;接著又出現nets找不到,于是又到處找,最后在下面 找到辦法,就行復制slim/nets 與employment 到 sitepackages中即可。


Follow these steps to solve your problem:
1)Go to your "C:\tensorflow1\models\research\slim" 
2) Copy files that are called 'nets' and 'deployment'.
3) Paste them at your 'site-packages'. To know where "site-packages" is, go back to your CMD and see the error.  The error shows a path that looks like this "C:\Users\ .....(you might have something different here)..... \tensorflow1\lib\site-packages\.....(bla bla bla)....". Copy it until '\site-packages' ONLY.
4) Paste the copied path to your File Explorer. This will bring you to the '\site-packages'
5) Paste your 'nets'  and 'deployment' files there. DONE.

查看 新建一個prompt 后臺

cd research\object_detection 
tensorboard --logdir=training
ip:6006 #查看

三個小時過去了

7、生成 inference graph

python export_inference_graph.py --input_type image_tensor --pipeline_config_path training/faster_rcnn_inception_v2_pets.config --trained_checkpoint_prefix training/model.ckpt-XXXX --output_directory inference_graph

#其中 XXX是 training中的highest-numbered.ckpt
這里生成 a frozen_inference_graph.pb  在文件夾\object_detection\inference_graph 中,里面包含著檢測分類器 classifier

8、如何使用了

#調查后臺
idle
#修改 object_detection_webcam 中的num_class 為種類數
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,908評論 6 541
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,324評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,018評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,675評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,417評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,783評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,779評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,960評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,522評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,267評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,471評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,009評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,698評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,099評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,386評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,204評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,436評論 2 378