Google 将其机器学习模型封装为一个 API,便于开发者使用他们的视觉技术。Vision API 可以快速将图像分类到数千个类别,并为其分配合理的标签。它甚至可以检测图像中的单个物体、面部和文本。
从更高层面来看,Google 的 Vision API 让您可以做两件事:
直接在代码中使用该 API,以规模化地进行强大的图像分析。
使用该 API 构建自定义模型,以满足您特定用例的更高灵活性。
这个 API 特别实用,因为在当下,“全栈”从业者的需求正在快速增长。设想这样一个场景:一名全栈 Web 开发者(也就是既掌握前端又掌握后端相关技术)被要求构建一个网站,接收图像并检测其类别。这显然需要相当的计算机视觉知识(如果他/她还不具备的话),因为开发者必须编写后端代码,以便准确识别给定图像。同时,假设截止日期也不宽裕。
在这种情况下,如果开发者从零开始学习计算机视觉,再去实现所需功能,很可能会错过截止日期。相反,如果他/她使用一些预训练的计算机视觉模型,并在开发过程中逐步学习其背后的概念,就更为务实。这正是 Vision API 派上用场的典型情境。该 API 提供了许多最先进的预训练模型,可服务于大量真实的商业用例。
“全栈”一词也正逐渐与 机器学习工程师、数据科学家 等角色相关联。一名全栈机器学习从业者/数据科学家应当能够设计与开发,或至少了解端到端的业务流程。其中“让模型达到可用于生产”的步骤至关重要,即由相关人员/团队将已开发的模型封装为一个或一组 API,并部署到生产环境。当然,生产的含义会随用例而异,但流程的总体思想/框架保持一致。借助 AutoML Vision BETA,Vision API 可帮助您高效训练自定义视觉模型。
很好!现在,您应该已经对 Vision API 有了相当不错的整体认识。在 Vision 主页 上,您可以做一个小实验:分析您最喜欢的图片,并借助 Vision 获得有用洞见。步骤如下:
response = client.image_properties(image=image)
props = response.image_properties_annotation
print('Properties of the image:')for color in props.dominant_colors.colors:print('Fraction: {}'.format(color.pixel_fraction))print('\tr: {}'.format(color.color.red))print('\tg: {}'.format(color.color.green))print('\tb: {}'.format(color.color.blue))技术支持
如果您尚未为应用启用 Vision API,可能还会再次遇到错误。启用该 API 非常容易,错误堆栈中也会提供操作说明,便于您快速开启。
启用 API 之后,您还需要启用 Billing 才能使用 Vision API。图像属性检测工具仅需 $0.60。完成这些后,代码即可成功执行并产生输出。
恭喜!
您已经看到使用 Vision API 是多么容易,以及它以相当低的成本提供的各种实用功能。如今,许多公司和组织都从该 API 中受益,无论是用于商业目的还是科研。本教程只是对 Vision API 的入门,但应能作为您在应用中使用机器学习 API 的良好起点。
自从 Google 发布专门用于执行计算机视觉相关任务的 Vision API 以来,已经过去了相当一段时间。计算机视觉关注的是计算机如何处理图像。对我们人类来说,从一张图片中获取有用信息很容易,但计算机是如何做到的呢?
举个例子,假设您向计算机提供了一张狗的图片,通过某个软件,计算机告诉您这是一张狗的图片。这正是计算机视觉发挥作用的地方。计算机视觉本身是一个完整的研究领域,而 Vision API 提供了许多实用工具,让您能够非常轻松地执行与计算机视觉相关的任务。最棒的是,即使开发者完全没有计算机视觉方面的经验,也可以通过阅读其文档来使用 Vision API。
本教程旨在向您介绍 Vision API,以及如何从 Python 代码中调用它。
注意:如果在开始本教程之前,您希望从 Python 和机器学习的角度更多了解 API,以下是一些非常优秀的资源:
什么是 Google 的 Vision API?更详细的介绍
Google 将其机器学习模型封装为一个 API,便于开发者使用他们的视觉技术。Vision API 可以快速将图像分类到数千个类别,并为其分配合理的标签。它甚至可以检测图像中的单个物体、面部和文本。
从更高层面来看,Google 的 Vision API 让您可以做两件事:
这个 API 特别实用,因为在当下,“全栈”从业者的需求正在快速增长。设想这样一个场景:一名全栈 Web 开发者(也就是既掌握前端又掌握后端相关技术)被要求构建一个网站,接收图像并检测其类别。这显然需要相当的计算机视觉知识(如果他/她还不具备的话),因为开发者必须编写后端代码,以便准确识别给定图像。同时,假设截止日期也不宽裕。
在这种情况下,如果开发者从零开始学习计算机视觉,再去实现所需功能,很可能会错过截止日期。相反,如果他/她使用一些预训练的计算机视觉模型,并在开发过程中逐步学习其背后的概念,就更为务实。这正是 Vision API 派上用场的典型情境。该 API 提供了许多最先进的预训练模型,可服务于大量真实的商业用例。
“全栈”一词也正逐渐与 机器学习工程师、数据科学家 等角色相关联。一名全栈机器学习从业者/数据科学家应当能够设计与开发,或至少了解端到端的业务流程。其中“让模型达到可用于生产”的步骤至关重要,即由相关人员/团队将已开发的模型封装为一个或一组 API,并部署到生产环境。当然,生产的含义会随用例而异,但流程的总体思想/框架保持一致。借助 AutoML Vision BETA,Vision API 可帮助您高效训练自定义视觉模型。
很好!现在,您应该已经对 Vision API 有了相当不错的整体认识。在 Vision 主页 上,您可以做一个小实验:分析您最喜欢的图片,并借助 Vision 获得有用洞见。步骤如下:
想象一下,如果需要对数十亿张图片执行这一任务,使用这样的 API 显然会非常有价值。现在,让我们了解 Vision API 的具体功能,并看看该 API 在一些真实用例中的表现。
Vision API 提供了什么功能——一些细分用例
Vision API 以其准确的结果而著称。Vision API 的文档提供了出色的教程合集,帮助您深入了解该 API。但初看之下,可能会觉得内容有些繁多。为求简明,下面介绍一些 Vision API 已经服务过的用例。
以上是 Vision API 表现出色的一些用例,您可以在很短时间内将其集成到应用中。若想了解更多类似用例,请务必查看这些教程。
Vision API 支持多种语言,如
Go、C#、Java、PHP、Node.js、Python、Ruby。接下来,您将看到如何在 Python 中使用 Vision API。Python 版 Vision API 客户端库
要在 Python 中使用 Vision API,首先需要安装它。最好的安装方式是通过
pip。安装成功后,下一步是验证是否安装成功。
如果上述代码行能够成功执行,说明您已准备就绪。Google 提供了一系列关于在 Python 中使用 Vision API的精彩教程。
现在,您将用 Python 构建一个简单应用,用于检测图像的一些一般属性,例如主色调。
Vision API 在 Python 中的一个案例研究
您的应用将接收图像路径作为输入,并显示相应图像的一般属性。这在图像位于将要运行应用的计算机上时很有用。但如果需要从互联网上读取图像怎么办?Vision API 同样支持从互联网读取图像。
在本案例中,您将学习如何处理第一种情形。而要支持互联网版本,只需改一行代码即可。
照例,先从
google.cloud模块中导入vision。下一步调用
ImageAnnotatorClient(),其中包含用于提取图像属性的工具。如果未设置
GOOGLE_APPLICATION_CREDENTIALS环境变量,您很可能会遇到错误。原因在于这些库使用应用默认凭据(ADC)来定位您的应用凭据。当您的代码使用这类库时,该机制会检查您的凭据。请按照此链接了解如何生成
GOOGLE_APPLICATION_CREDENTIALS。您的目标是生成一个client_secrets.json文件,用于认证。获得
client_secrets.json后,执行以下代码以设置GOOGLE_APPLICATION_CREDENTIALS环境变量。现在再次运行下面的代码,应该不会再报错。
接下来编写代码,通过给定路径读取图像。
图片来源
您已成功将图像加载到工作区。现在,将实例化一个
vision.types.Image类型的对象,并将content=content作为其参数。距离完成图像属性检测应用只剩最后几步了。在这些步骤中,您将:
(image=image)为参数调用client.image_properties。image_properties()的响应存储在变量response中,并通过访问response的image_properties_annotation提取图像属性。如果您尚未为应用启用 Vision API,可能还会再次遇到错误。启用该 API 非常容易,错误堆栈中也会提供操作说明,便于您快速开启。
启用 API 之后,您还需要启用
Billing才能使用 Vision API。图像属性检测工具仅需 $0.60。完成这些后,代码即可成功执行并产生输出。恭喜!
您已经看到使用 Vision API 是多么容易,以及它以相当低的成本提供的各种实用功能。如今,许多公司和组织都从该 API 中受益,无论是用于商业目的还是科研。本教程只是对 Vision API 的入门,但应能作为您在应用中使用机器学习 API 的良好起点。
务必查看 Google 提供的整套机器学习 API,即 CloudML。
借助这些易于调用的 API,您可以构建许多有趣的应用。Vision API 和 CloudML 的链接提供了精彩的教程合集,方便您上手尝试。祝您好运!
如果您对图像处理感兴趣,欢迎学习 DataCamp 的 用于图像处理的卷积神经网络 课程。