TensorFlow 学习教程(二)Image Recognition

DCNN 可以实现合理的表现在视觉识别任务上。

研究者已经实现了稳定的计算机视觉程序通过在 ImageNet 上验证他们的工作。成功的模型持续进步:QuocNetAlexNetInception(GoogLeNet)BN-Inception-v2。研究者已经公布了论文来描述这些模型但是仍然难以重现。我们现在通过 releasing code 来运行图像识别在我们最新的模型,Inception-v3

Inception-v3 被训练用来 ImageNet 2012 比赛。这是一个标准的计算机视觉任务。模型尝试分类完整的图片到 1000 类中,例如 “Zebra”, “Dalmatian”, and “Dishwasher”。例如,下面是 AlexNet 分类一些图片的结果:

为了比较模型,我们测试模型错误预测正确答案作为5个猜测之一的概率–”top-5 error rate”。AlexNet achieved by setting a top-5 error rate of 15.3% on the 2012 validation data set; Inception (GoogLeNet) achieved 6.67%; BN-Inception-v2 achieved 4.9%; Inception-v3 reaches 3.46%.

人类在 ImageNet 上表现如何呢?Andreh Karpathy 试图分类。达到了5.1% top-5 error rate。

本教程指导如何使用 Inception-v3。这里使用 Python。也讨论了如何从模型中提取更高级的特征,可能会被其他视觉任务所使用。

用Python API

classify_image.pytensorflow.org 上下载训练模型当程序第一次运行。你需要大约 200M 空间。

TensorFlow model repo clone。运行下面命令:

1
2
cd models/tutorials/image/imagenet
python classify_image.py

上述命令会分类一个熊猫图像:

如果模型运行正确,将输出:

1
2
3
4
5
6
7
8
9
10
name: GeForce GTX 1060 6GB major: 6 minor: 1 memoryClockRate(GHz): 1.7335
pciBusID: 0000:01:00.0
totalMemory: 5.93GiB freeMemory: 5.36GiB
2017-12-23 20:51:40.100224: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1120] Creating TensorFlow device (/device:GPU:0) -> (device: 0, name: GeForce GTX 1060 6GB, pci bus id: 0000:01:00.0, compute capability: 6.1)
2017-12-23 20:51:40.406900: W tensorflow/core/framework/op_def_util.cc:334] Op BatchNormWithGlobalNormalization is deprecated. It will cease to work in GraphDef version 9. Use tf.nn.batch_normalization().
giant panda, panda, panda bear, coon bear, Ailuropoda melanoleuca (score = 0.89107)
indri, indris, Indri indri, Indri brevicaudatus (score = 0.00779)
lesser panda, red panda, panda, bear cat, cat bear, Ailurus fulgens (score = 0.00296)
custard apple (score = 0.00147)
earthstar (score = 0.00117)

如果你希望提供另外的 JPEG 图像,你可以设置 --image_file 参数。

如果你下载模型数据到不同的目录中,你需要指定 --model_dir

分享到