利用TensorFlow对车辆图像分类
参考http://lijiancheng0614.github.io/2017/06/29/2017_06_29_TensorFlow-Slim-image-classification/
1.准备
2.训练
3.验证
参考 https://github.com/tensorflow/models/tree/master/research/slim
准备
1.安装TensorFlow
参考 https://www.tensorflow.org/install/
如在Ubuntu下安装TensorFlow with GPU support, python 2.7版本
【1】wget https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.2.0-cp27-none-linux_x86_64.whl
【2】pip install tensorflow_gpu-1.2.0-cp27-none-linux_x86_64.whl
2.数据准备
选择斯坦福公开的车辆数据集:http://ai.stanford.edu/~jkrause/cars/car_dataset.html
提取训练集和测试集的标签,在list_train.txt和list_val.txt文件中表示图片路径与标签的关系
3.生成TFRecord数据
利用convert_FTrecord.py生成数据
4.(可选)下载模型
官方提供了不少预训练模型,这里以Inception-ResNet-v2以例。
训练
1.finetune 训练
训练时执行以下命令即可:
python train_image_classifier.py \
--train_dir=train_logs \
--dataset_dir=../../data/train \
--num_samples=8144 \
--num_classes=196 \
--labels_to_names_path=../../data/labels.txt \
--model_name=inception_resnet_v2 \
--checkpoint_path=../../checkpoints/inception_resnet_v2_2016_08_30.ckpt \
--checkpoint_exclude_scopes=InceptionResnetV2/Logits,InceptionResnetV2/AuxLogits \
--trainable_scopes=InceptionResnetV2/Logits,InceptionResnetV2/AuxLogit
数据集和标签路径根据自己的路径进行修改。
2,可视化log
可一边训练一边可视化训练的log,可看到Loss趋势。
tensorboard --logdir train_logs/
验证
1.验证时执行以下命令即可:
python eval_image_classifier.py \
--checkpoint_path=train_logs \
--eval_dir=eval_logs \
--dataset_dir=../../data/val \
--num_samples=8044\
--num_classes=196 \
--model_name=inception_resnet_v2
同样,根据自身修改测试集路径和checkpoint的路径。