TensorFlow与图像识别

来自CloudWiki
跳转至: 导航搜索

我们的大脑识别物体非常简单,他不用费很大的劲,就能够判断出眼前的是一只狮子还是一头老虎,能够识别信号,或者通过识别一个人的脸。但是,这些工作对于一个电脑来说却是个难题,他们对人类看起来非常简单,只是因为我们的大脑,对于识别图像来说非常擅长。

在过去的几年里,机器学习领域,在识别图像方面,取得了非常大的进步。特别是,我们发现有一种叫做CNN的技术,在复杂的图像识别任务中,能够取得很好的表现,甚至在一些领域超过了人类自身的识别程度。

研究者们一般通过在ImageNet上验证他们的成果,这是一个计算机视觉领域的学术标尺。不少成功的模型不断的展示出在该领域的进步,比方说: QuocNet, AlexNet, Inception (GoogLeNet), BN-Inception-v2。谷歌内部和外部的研究人员,已经发表了一些描述这些模型的论文,但是这些结果,仍然很难去重现。我们继续把事情往前推进了一步发布了一个新的图像识别模型,Inception-v3.

Inception-v3.是基于 ImageNet 挑战赛的数据进行训练,使用了2012年的数据。这对于计算机视觉来说是一项标准任务。这个任务的最终目的是,将所有图片分配到一千个类别当中,像斑马,洗碗机,猴子等等。下图所展现的,就是一些图片的分类情况。

Tf1-2.png

为了比较模型,我们检查一下这个模型,有多大的频率,将正确答案排除在他们预测的前五位之中,即我们所说的top-5 error rate"。AlexNet 能够达到15.3%,Inception (GoogLeNet) 能够达到6.67%,BN-Inception-v2能够达到4.9%。而这一数值,Inception-v3 能达到3.46%。

人类在这一挑战赛上做的怎么样呢?有一个博主叫做 Andrej Karpathy,曾经尝试去统计他自己的表现,结果错误率在5.1%。

这篇教程将会教会你如何使用 Inception-v3。你将学习到,如何用python或C++来,将图片分类到一千个类别之中。我们还将讨论,如何从这个模型中提取更高等级的特征,以便他们能够应用到其他的视觉任务之中。

我们非常期待,社区将会用这个模型做出什么事情。


使用Python API

classify_image.py从tensorflow.org 下载了训练好的模型,当程序第一次运行的时候。你需要在你的硬盘上,有200兆的空余空间。

我们通过复制GitHub上的项目:https://github.com/tensorflow/models 来开启这个旅程。运行如下命令:

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

Tf1-100.jpg

以上命令,将会对一个提供的熊猫照片进行分类,如果这个模型训练正确的话,这个脚本将会产生如下的输出。

giant panda, panda, panda bear, coon bear, Ailuropoda melanoleuca (score = 0.88493)
indri, indris, Indri indri, Indri brevicaudatus (score = 0.00878)
lesser panda, red panda, panda, bear cat, cat bear, Ailurus fulgens (score = 0.00317)
custard apple (score = 0.00149)
earthstar (score = 0.00127)

如果你希望,测试其他JPEG的图片的话,你可以编辑这个参数。--image_file

如果你,把模型数据下载到了另外一个文件夹之中,那么你需要重新设置一下,另外一个参数。--model_dir

参考文档:https://www.tensorflow.org/tutorials/image_recognition

返回 人工智能