Tensorflow图像识别-3

文章目录

  • 图片及打标数据
    • 文件内容
  • 生成tfrecord
  • 训练开始

tensorflow图像识别-1 labelimg
Tensorflow图像识别-2  试一下识别
Tensorflow图像识别-3  训练,笔记本要退休的感觉
Tensorflow图像识别-4  应用

玩黑苹果,系统搞崩了。又重装了。。因此,我models的路径直接扔到了d盘。

  • D:\projects\models\research
  • 虚拟环境没弄了,tengsorflow直接装了。

图片及打标数据

原博客使用了现成的浣熊数据,https://github.com/datitran/raccoon_dataset,大概40多mb。
先将原博客的内容做完。
我将其提取到了object_detection目录下,路径如下

D:\projects\models\research\object_detection\raccoon_dataset

文件内容

Tensorflow图像识别-3_第1张图片
这里简单的介绍一下.
第一个文件夹中是打标文件,xml格式,包括图片名,路径,打标类别跟位置等信息
第二个文件夹中是打标文件生成的csv,record文件,其中record文件是tensorflow所需要读取的,后面可以了解.
第三个文件夹就是图片.
第四个文件夹中是配置文件,标签文件,冻出来的模型等,实际做的时候看看吧,忘了
后面的零散文件是生成第三个文件夹的一些脚本.
等等,这里原来有readme,忘看了,直接看这个吧

生成tfrecord

开搞,首先用pycharm打开research文件夹
Tensorflow图像识别-3_第2张图片
这里的脚本都全了,可以研究研究

  1. xml_to_csv.py
    这个文件先将xml文件读取,保存为csv.
    先将data文件备份一个吧,再删除data里的文件
    运行脚本,我这提示少了pandas,装一下就好
    生成的位置不太对,剪切到data里面吧
    代码这改掉也行.
def main():
    image_path = os.path.join(os.getcwd(), 'annotations')
    xml_df = xml_to_csv(image_path)
+  xml_df.to_csv('data/raccoon_labels.csv', index=None)
    print('Successfully converted xml to csv.')
  1. split labels.ipynb
    接下来拆分成训练集和测试集csv.
    生成的文件位置还是要改改
train.to_csv('data/train_labels.csv', index=None)
test.to_csv('data/test_labels.csv', index=None)

data里三个csv啦

  1. draw boxes.ipynb
    这个文件也可以看看,opencv读取图片,再读取csv里面的位置信息,画框
    pip install opencv-python
    装cv2

  2. generate_tfrecord.py+test_generate_tfrecord.py
    配置一下,或者命令行输入generate_tfrecord.py开头的代码,自行修改.
    配置如下
    点开在这里插入图片描述下来框的第一个

--csv_input=data/train_labels.csv
--output_path=data/train.record
--image_dir=images

Tensorflow图像识别-3_第3张图片
再将train改成test,生成训练集的record文件

--csv_input=data/test_labels.csv
--output_path=data/test.record
--image_dir=images

record文件包含了xml文件信息和图片信息,差不多就是这样吧

训练开始

train/object-detection.pbtxt文件是类别信息
如果你的样本有多个类别,相应的修改就好.这里就不动了
下个ssd模型
解压到raccoon里
修改traing/ssd_mobilenet_v1_pets.config,就是最后一部分的文件路径
另外开头有个num_class,这个也改一下,具体叫啥忘了

  fine_tune_checkpoint: "D:/projects/models/research/object_detection/raccoon_dataset/ssd_mobilenet_v1_coco_2017_11_17/model.ckpt"
  from_detection_checkpoint: true
  data_augmentation_options {
    random_horizontal_flip {
    }
  }
  data_augmentation_options {
    ssd_random_crop {
    }
  }
}

train_input_reader: {
  tf_record_input_reader {
    input_path: "D:/projects/models/research/object_detection/raccoon_dataset/data/train.record"
  }
  label_map_path: "D:/projects/models/research/object_detection/raccoon_dataset/training/object-detection.pbtxt"
}

eval_config: {
  num_examples: 40
}

eval_input_reader: {
  tf_record_input_reader {
    input_path: "D:/projects/models/research/object_detection/raccoon_dataset/data/test.record"
  }
  label_map_path: "D:/projects/models/research/object_detection/raccoon_dataset/training/object-detection.pbtxt"
  shuffle: false
  num_readers: 1
}

pycharm的设置
D:\projects\models\research\object_detection\legacy\train.py

--logtostderr --pipeline_config_path=raccoon_dataset/training/ssd_mobilenet_v1_pets.config --train_dir=raccoon_dataset/train

Tensorflow图像识别-3_第4张图片

开始训练了,就是不太懂为什么会显示两次.
Tensorflow图像识别-3_第5张图片

在训练的过程中,可以用验证集来看训练效果
在train同目录下创建eval文件夹
D:\projects\models\research\object_detection\legacy\eval.py

这里要下个cocoapi
安装下,
我发现笔记本有点烫.显卡感觉要炸…
pycharm如下

--logtostderr
--pipeline_config_path=raccoon_dataset/training/ssd_mobilenet_v1_pets.config
--checkpoint_dir=raccoon_dataset/train
--eval_dir=raccoon_dataset/eval

Tensorflow图像识别-3_第6张图片

你可能感兴趣的:(tensorflow,图像识别)