使用Inception V3
进行狗狗图片分类,祝大家狗年大吉!
数据集来自Stanford Dog Dataset
http://vision.stanford.edu/aditya86/ImageNetDogs/images.tar
共包括120种狗狗的20580张图片,下载后解压得到Images
文件夹,其中包括120个子文件夹,每个子文件夹对应一种狗狗
使用Inception V3
和狗狗数据进行迁移训练,得到能够识别狗狗类别的图片分类模型
迁移训练的代码来自TensorFlow
官方Github
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/image_retraining/retrain.py
使用以下命令即可进行训练,当然也可以直接使用我训练好的模型
python retrain.py --image_dir Images/ --output_graph dog_inception_v3_graph.pb --output_labels dog_inception_v3_labels.txt --summaries_dir summaries_dir --model_dir . --bottleneck_dir bottleneck_dir
迁移训练得到两个文件
dog_inception_v3_graph.pb
:狗狗图片分类模型dog_inception_v3_labels.txt
:全部的狗狗类别
使用classify_single_dog.py
即可进行单张图片的分类,其中最后一行的test.jpg
即为待分类图片的路径,这里提供了一张京巴犬的图片
classify_all_dogs.py
:将Images
文件夹中的20580张图片全部分类,并将正确标签以及概率前五的分类结果和对应概率写入results.txt
,便于后续统计results.txt
:即上面提到的分类结果文件stats.py
:根据results.txt
进行一些简单的统计,包括每种狗狗的分类正确率、不同狗狗之间的关联和对比等sample.py
:从每类狗狗中随机抽取一张,共120张图片并生成一张拼图