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

同样放入这个文件夹下 最后是这样的

2019-01-31 window 下训练数据_第1张图片

不对 事实证明了 我的笔记本不支持 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 为种类数

你可能感兴趣的:(2019-01-31 window 下训练数据)