项目地址:https://github.com/weimin17/Object-Detection_HelmetDetection
①删除tensorflow/models/research/slim这个目录下的 BUILD
②然后在这个目录内执行:python setup.py build
③然后在这个目录内执行:python setup.py install
④下载预训练模型:
按照作者的意思,需要到tensorflow下载
https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md
下载的这个
⑤生成tfrecord:
- 首先有一张图片(000377)的标注是‘dog’,(应该是标注人员手误),在其对应的xml文件中修改过来
codes/create_helmet_record.py
注意要把 很多地方的tf.gfile 改成 tf.io.gfile (根据warning 提示来)
另外,Annotation 里面的xml中记录的图片地址是不对的 , 因此create_helmet_record.py中的image_dir 就不应该是直接从xml里读出,这个要具体根据你的图片放在了哪里
还有要自己写一个pbtxt文件,就是类别到id的映射
⑥训练:
- tensorflow/models/research/train.py 给下面两个参数填上地址
train_dir是输出的地址
pipeline-config-path 是config文件的地址
- config文件中也有需要更改的地址,主要是将自己的model.ckpt 还有label_dict的地址填入
- config中修改num_classes
试图启动train的时候遇到了第一个报错
ValueError: First step cannot be zero.
寻找解决办法:https://www.jianshu.com/p/30301ecd6350
它指出的解决办法是 删掉这一段:
7.保存模型:
将上一步训练生成的ckpt转换成pb文件,这里需要用到tensorflow/models/research/object_detection/export_inference_graph.py
填下面三个参数
pipeline_config_path:就是之前模型训练时用的config
trained_checkpoint_prefix:用的ckpt文件,主义这里的路径要加尾号 例如:./model.ckpt-800
output_directory:保存地址
尝试中…