想尝试搭建图像识别系统?这里有一份TensorFlow速成教程

简介:

2000元阿里云代金券免费领取,2核4G云服务器仅664元/3年,新老用户都有优惠,立即抢购>>>


阿里云采购季(云主机223元/3年)活动入口:请点击进入>>>,


阿里云学生服务器(9.5元/月)购买入口:请点击进入>>>,

本文来自AI新媒体量子位(QbitAI)

640?wx_fmt=png&wxfrom=5&wx_lazy=10?wx_fmt=gif&wxfrom=5&wx_lazy=1

从我们见到的各种图像识别软件来看,机器似乎能认出人脸、猫、狗、花草、各种汽车等等日常生活中出现的物体,但实际上,这有一个前提:你要用这些类别的图像,对它进行过训练。

确切地说,该叫它“图像分类”。

建立一个图像分类器并不复杂,技术博客Source Dexter上最近发表的一篇文章,介绍了该如何快速用TensorFlow实现图像分类。

以下是量子位节选自这篇文章的内容:

在进入正题之前,我们先讲一些基本概念。

图像分类是怎样实现的?

向一个训练过的系统输入图像,我们会得到一组概率值:每个训练过的类别都有一个,然后,系统会将图像归到概率最高的类。

比如说你训练了一个系统,来识别猫和狗。当你输入一张图像时,系统会输出这张图像属于猫的概率和属于狗的概率。

不过,这种分类器也有一个缺陷:如果你输入一张蛇的图片,它也只能判断这张图片包含猫的概率高,还是包含狗的概率高一点。

神经网络和深度神经网络

概括地说,神经网络是计算单元的连接,能够从提供给它的一组数据中进行学习。

把多层神经网络堆叠在一起,我们就得到了深度神经网络。建立、训练和运行深度神经网络的过程,称为深度学习。

量子位之前发布的文章详细介绍了包括神经网络在内的《25个深度学习基础概念》,可以点击查看。

TensorFlow

TensorFlow是一个数学库,也是深度学习领域使用最广的开源框架,由Google开发。

在这篇文章中,我们将用TensorFlow预训练模型来设置我们的分类器。

想要设置这个分类器,还有几个先决条件:

  • 你的机器上安装并设置好了TensorFlow;
  • 你会用Python。

从零开始训练一个深度学习的分类器需要几周、甚至几个月的时间,这取决于你用什么硬件。为了避免这种麻烦,我们将使用预先训练的模型。 Tensorflow预训练的模型通常能够识别大约1000类不同的物体。

接下来,我们开始设置自己的图像分类器:

第1步:下载预训练模型、计算图和脚本

clone这个存储区,并用以下命令进入:

git clone https://github.com/akshaypai/tfClassifier

cd tfClassifier

第2步:运行脚本找到最佳预测

你可以提供要分类的图像,来运行这个脚本。默认情况下,将显示概率最高的结果。

Python classifier.py --image_file file_path_to_image

如果想获得前几个分类结果,可以使用以下参数。

Python classifier.py --image_file file_path_to_image --num_top_predictions number_of_top_results

示例:以下是我们输入石榴图像,获得的结果。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

python classifier.py --image_file ~/Pictures/fruit.jpg

pomegranate (score = 0.98216)

分类器说,这个图像是石榴,可能性是98%。

第3步:运行脚本来获取前n个识别出的类

现在让我们尝试给出一个具有更多属性的图像,如下面的房子的形象:

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

python classifier.py --image_file ~/Pictures/house.jpg --num_top_predictions 5picket fence, paling (score = 0.95750)


worm fence, snake fence, snake-rail fence, Virginia fence (score = 0.03615)

beacon, lighthouse, beacon light, pharos (score = 0.00018)

boathouse (score = 0.00013)

patio, terrace (score = 0.00007)

从上面的结果可以看出,分类器认为这张图片中包含栅栏的可能性是95%,还有可能包含另一个栅栏、庭院/露台等。

用TensorFlow预训练的模型对图像进行分类,就是这么简单。不过,预训练模型能识别的类是有限的,如果你希望分类器来区分你需要的类别,需要重新训练这个模型。

下面,我们再介绍一下如何对模型进行重新训练。

第1步:设置图像文件夹

这一步涉及设置文件夹结构,好让TensorFlow能轻松获取这些类别。比如说你想训练神经网络,识别5种花:玫瑰、郁金香、蒲公英、可可花、万寿菊。

创建文件夹结构时:

为每种花创建一个文件夹,该文件夹的名称是类别的名称(在我们举的例子中,是这种花的名称);

将花的图像添加到其各自的文件夹中。例如把玫瑰的所有图像放进“玫瑰”文件夹。

将所有文件夹添加到另一个父文件夹中,比如说“花”。

添加完之后,你将看到这样的文件夹结构:

~/flowers

~/flowers/roses/img1.jpg

~/flowers/roses/img2.jpg

...

~/flowers/tulips/tulips_img1.jpg

~/flowers/tulips/tulips_img2.jpg

~/flowers/tulips/tulips_img3.jpg

...

所有文件夹都这样设置,文件夹结构就准备好了。

第2步:运行重新训练脚本

用下面的命令来运行脚本:

python retrain.py --model_dir ./inception --image_dir ~/flowers --output_graph ./output --how_many_training_steps 500

命令行参数:

-model_dir:该参数给出了预训练模型的位置。预先训练的模型存储在git存储库的inception文件夹下。

-image_dir:在上一步中创建的图像文件夹的路径。

-output_graph:存储新训练图的位置。

-how_many_training_steps:training steps表示要执行的迭代次数,默认是4000。找到正确的次数需要经过不断试错,一旦找到最好设置,就可以开始用了。

下列参数可以用来提高模型的准确度:

random_crop:随机裁剪能够让你专注于图像的主要部分。

Random_scale:和裁剪类似,但可以随机扩展图像大小。

flip_left_right:翻转。

以上,就是重新训练深度学习模型所需的步骤,这样就可以识别自定义的物体了。

【完】

本文作者:李林 
原文发布时间:2017-05-30 
相关实践学习
基于函数计算实现AI推理
本场景基于函数计算建立一个TensorFlow Serverless AI推理平台。
相关文章
|
1天前
|
机器学习/深度学习 数据采集 传感器
基于深度学习的图像识别技术在自动驾驶系统中的应用
【5月更文挑战第18天】 随着人工智能技术的飞速发展,特别是深度学习在图像识别领域的突破性进展,自动驾驶技术已经从科幻走向现实。本文旨在探讨如何将基于深度学习的图像识别技术集成到自动驾驶系统中,以提升车辆的环境感知能力、决策效率及安全性。文中不仅回顾了当前自动驾驶中图像识别的关键挑战,还介绍了几种前沿的深度学习模型及其在处理复杂交通场景下的有效性。此外,本文还将讨论数据预处理、增强技术以及模型优化策略对提高自动驾驶系统性能的重要性。
|
2天前
|
机器学习/深度学习 人工智能 自动驾驶
探索基于深度学习的图像识别技术在自动驾驶系统中的应用
【5月更文挑战第17天】 随着人工智能技术的飞速发展,尤其是深度学习在图像处理和识别领域的突破性进展,自动驾驶汽车的研发与实现已逐渐成为可能。本文旨在探讨深度学习技术在图像识别中的关键作用,并分析其在自动驾驶系统中的具体应用。通过回顾卷积神经网络(CNN)的基本结构和工作原理,本文阐述了深度学习模型如何从大量数据中学习特征,并在复杂的道路环境中准确识别行人、车辆、交通标志等关键要素。此外,文章还讨论了深度学习技术在提高自动驾驶安全性方面的潜力及面临的挑战。
|
2天前
|
机器学习/深度学习 传感器 自动驾驶
基于深度学习的图像识别技术在自动驾驶系统中的应用
【5月更文挑战第17天】 随着人工智能技术的飞速发展,尤其是深度学习在图像识别领域的突破性进展,自动驾驶汽车逐渐成为现实。本文旨在探讨基于深度学习的图像识别技术如何被集成到自动驾驶系统中,以提供实时、准确的环境感知能力。文中首先介绍了深度学习的基本原理及其在图像处理中的关键作用,随后详细阐述了几种主流的深度学习模型如卷积神经网络(CNN)和递归神经网络(RNN),并讨论了它们在自动驾驶车辆环境感知、决策制定和导航中的实际应用。此外,文章还分析了目前该领域所面临的挑战,包括数据集质量、模型泛化能力和计算资源限制等问题,并对未来的发展趋势进行了展望。
|
2天前
|
机器学习/深度学习 传感器 监控
基于深度学习的图像识别技术在自动驾驶系统中的应用
【5月更文挑战第17天】随着人工智能技术的飞速发展,深度学习已经成为了计算机视觉领域的核心驱动力。特别是在图像识别任务中,卷积神经网络(CNN)已经取得了突破性的进展,为自动驾驶系统提供了强有力的技术支持。本文将探讨深度学习在图像识别领域的最新发展及其在自动驾驶系统中的具体应用,同时分析目前所面临的主要挑战与未来的发展趋势。
|
3天前
|
机器学习/深度学习 传感器 自动驾驶
基于深度学习的图像识别技术在自动驾驶系统中的应用
【5月更文挑战第16天】 随着人工智能技术的突飞猛进,特别是深度学习在图像识别领域的应用,已成为推动自动驾驶技术发展的关键因素。本文旨在探讨基于深度学习的图像识别技术如何被集成到自动驾驶系统中,提高车辆的环境感知能力,确保行车安全。我们将分析卷积神经网络(CNN)和循环神经网络(RNN)等深度学习模型在处理实时交通数据中的优势,同时探讨这些技术面临的挑战和潜在的改进方向。通过实验结果验证,基于深度学习的图像识别系统能够有效提升自动驾驶汽车的导航精度与决策效率,为未来智能交通系统的实现奠定基础。
16 4
|
4天前
|
机器学习/深度学习 自动驾驶 算法
利用深度学习优化图像识别在自动驾驶系统中的应用
【5月更文挑战第15天】 随着自动驾驶技术的不断进步,图像识别作为其核心技术之一,对准确性和实时性的要求日益提高。本文旨在探讨如何通过深度学习算法优化图像识别流程,进而提升自动驾驶系统的整体性能。文中首先回顾了当前自动驾驶领域中图像识别面临的挑战,接着介绍了几种先进的深度学习模型及其在图像处理中的应用,最后提出了一个结合这些模型的优化框架,并对其潜在的改进效果进行了分析。
|
4天前
|
机器学习/深度学习 传感器 人工智能
基于深度学习的图像识别技术在自动驾驶系统中的应用
【5月更文挑战第15天】随着人工智能技术的飞速发展,尤其是深度学习在图像处理领域的突破性进展,自动驾驶系统得以实现更加精准和高效的环境感知。本文章深入探讨了深度学习技术在自动驾驶车辆图像识别中的运用,分析了卷积神经网络(CNN)等模型在车辆、行人以及交通标志识别上的优势与挑战。同时,本文还针对当前自动驾驶系统中存在的数据偏差、实时处理能力及安全性问题提出了潜在的解决策略,并展望了未来发展趋势。
|
4天前
|
机器学习/深度学习 传感器 自动驾驶
基于深度学习的图像识别技术在自动驾驶系统中的应用
【5月更文挑战第14天】 随着人工智能技术的突飞猛进,特别是深度学习在图像处理领域的应用,为自动驾驶汽车的环境感知和决策提供了新的解决方案。本文将探讨基于深度神经网络的图像识别技术如何增强自动驾驶系统的性能,包括车辆检测、行人识别以及交通标志识别等方面。通过分析现有文献和最新研究成果,我们概述了关键技术挑战,并提出了潜在的改进方向。此外,文章还对目前自动驾驶领域中深度学习技术的实际应用情况进行了案例分析,以期为未来研究提供参考。
|
4天前
|
机器学习/深度学习 传感器 自动驾驶
基于深度学习的图像识别技术在自动驾驶系统中的应用
【5月更文挑战第14天】 随着人工智能技术的飞速发展,深度学习已成为推动多个领域革新的关键力量。特别是在图像识别领域,深度学习技术已经实现了巨大的突破,为自动驾驶系统提供了强大的视觉处理能力。本文将探讨深度学习技术如何增强自动驾驶车辆的环境感知能力,以及这些技术是如何被集成到复杂的驾驶决策过程中的。通过对现有文献和最新研究成果的综合分析,我们将概述当前最前沿的算法和架构,并讨论它们在实际道路测试中的表现。
|
4天前
|
机器学习/深度学习 传感器 自动驾驶
基于深度学习的图像识别技术在自动驾驶系统中的应用
【5月更文挑战第14天】 随着人工智能领域的飞速发展,特别是深度学习在图像处理和识别方面取得的重大进展,自动驾驶技术迎来了前所未有的发展机遇。本文旨在探讨基于深度学习的图像识别技术如何被集成到自动驾驶系统中,以及这种集成如何提高车辆的环境感知能力、决策效率和安全性。文中首先回顾了当前自动驾驶技术面临的挑战,随后详细介绍了深度学习技术的核心原理和在图像识别方面的应用,最后通过案例分析展示了该技术在实际自动驾驶场景中的表现和潜力。
21 7
http://www.vxiaotou.com