ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Google Cloud Vision API Python 快速入门:基于 ImageAnnotatorClient 实现图片标签识别(Label Detection)

Google Cloud Vision API Python 快速入门:基于 ImageAnnotatorClient 实现图片标签识别(Label Detection) 示例工程【免费下载链接】python-docs-samplesCode samples used on cloud.google.com项目地址https://gitcode.com/GitHub_Trending/py/python-docs-samples点击查看免费下载导读本文围绕 python-docs-samples 仓库中 vision/snippets/quickstart 目录下的快速入门示例展开系统讲解如何用 Python 调用 Google Cloud Vision API 完成图片标签识别Label Detection从环境认证、依赖安装、运行命令到核心代码ImageAnnotatorClient的调用链逐行拆解并结合同目录的测试与detect模块源码补充本地文件识别、错误处理与扩展用法帮助读者快速上手并真正理解该 API 的底层调用方式。一、快速入门示例是什么vision/snippets/quickstart目录是 Cloud Vision API 的官方 Python 快速入门样例其入口文档 README.rst 对 Cloud Vision API 的能力做了如下概括允许开发者将视觉检测功能轻松集成到应用程序中包括图像标签识别image labeling人脸检测与地标检测face and landmark detection光学字符识别OCR敏感内容标注tagging of explicit content该目录内的示例专注于其中最简单、最能体现 API 用法的图片标签识别对一张给定的图片返回一组描述图片内容的标签如 cat、pet、animal 等并打印到终端。这也是进入 Cloud Vision API 生态最直接的起点。目录结构如下文件作用quickstart.py快速入门核心示例代码执行标签识别README.rst官方自动生成的文档由 README.rst.in 模板生成quickstart_test.py对该示例的集成测试requirements.txt运行示例所需的依赖google-cloud-vision3.8.1requirements-test.txt运行测试所需的依赖pytest说明README 模板中声明的文件夹路径为vision/cloud-client/quickstart历史路径在当前仓库中该示例的实际位置是vision/snippets/quickstart。二、环境准备与认证2.1 认证是前提Cloud Vision API 是云端托管服务调用前必须先完成应用认证Authentication。官方要求参照 Google Cloud 的认证入门指南配置凭据即通过设置环境变量GOOGLE_APPLICATION_CREDENTIALS指向服务账号 JSON 密钥文件或使用gcloud auth application-default login生成应用默认凭据。客户端库google-cloud-vision在实例化时会自动读取应用默认凭据ADC因此示例代码中看不到任何显式的密钥传入逻辑。2.2 安装依赖按照 README 给出的标准流程运行示例前需要完成四步# 1. 克隆 python-docs-samples 仓库并进入示例目录 $ git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git # 2. 创建虚拟环境并激活示例兼容 Python 2.7 与 3.4但当前依赖版本实际要求更高版本 Python见下文 $ virtualenv env $ source env/bin/activate # 3. 安装示例依赖 $ pip install -r requirements.txt当前仓库的 requirements.txt 内容为google-cloud-vision3.8.1这是被锁定的客户端库版本保证示例在固定版本下行为一致。需要说明的是虽然历史 README 声称兼容 Python 2.7/3.4但从测试依赖 requirements-test.txt 中pytest9.0.3; python_version 3.10的标记可以推断当前示例与测试实际面向Python 3.10运行建议读者使用较新的 Python 版本。三、运行快速入门示例认证与依赖就绪后在示例目录下直接执行$ python quickstart.py程序会对一张位于 Google Cloud Storage 上的公开样例图片gs://cloud-samples-data/vision/label/wakeupcat.jpg一张醒来的猫的图片执行标签检测并在终端输出识别结果形如Labels: cat pet animal ...如需在 Cloud Shell 中一键打开并运行README 也提供了对应的 Cloud Shell 快捷入口按钮指向quickstart.py与README.rst的编辑器视图。四、核心代码逐行拆解quickstart.py 全文仅 50 行左右却完整展示了 Cloud Vision API 的全部关键调用链逐段拆解如下。4.1 导入客户端库from google.cloud import vision这是google-cloud-vision客户端库的统一入口模块其中vision.ImageAnnotatorClient是调用标注annotation类 API 的客户端类代码中用# [START vision_python_migration_import]/# [END vision_python_migration_import]标注片段供官方文档站点做代码片段嵌入。4.2 实例化客户端def run_quickstart() - vision.EntityAnnotation: Provides a quick start example for Cloud Vision. client vision.ImageAnnotatorClient()ImageAnnotatorClient()构造函数不传任何参数完全依赖应用默认凭据ADC完成鉴权。函数返回类型标注为vision.EntityAnnotation即单个标签实体的类型。4.3 构造图片对象# The URI of the image file to annotate file_uri gs://cloud-samples-data/vision/label/wakeupcat.jpg image vision.Image() image.source.image_uri file_uri这里展示了 Cloud Vision 的图片引用方式vision.Image对象通过source.image_uri指定图片位置支持gs://开头的 GCS 对象 URI 或https://公网图片地址。图片本身不随请求上传API 服务端直接读取该 URI因此调用方无需下载图片字节流。对比若要识别本地文件则使用vision.Image(contentimage_bytes)将图片二进制内容直接放入请求体详见下文detect.py的detect_labels函数。4.4 执行标签检测# Performs label detection on the image file response client.label_detection(imageimage) labels response.label_annotations这是整个示例的核心调用client.label_detection(imageimage)发起同步 RPC 请求返回AnnotateImageResponse响应对象response.label_annotations是EntityAnnotation的列表按置信度从高到低排列每项含description标签文本、score置信度、mid实体 ID等字段。4.5 输出结果print(Labels:) for label in labels: print(label.description) return labels遍历标签列表并打印每个标签的description字段最后将labels返回给调用方——这也是测试代码复用的关键见第六章。五、源码级纵深错误处理与本地文件识别快速入门只覆盖了通过 GCS URI 识别这一条路径。同目录仓库中的 detect.py位于vision/snippets/detect/提供了标签检测的更完整实现可作为生产化扩展参考。5.1 本地图片文件识别detect.py中的detect_labels(path)展示了本地文件的识别方式with open(path, rb) as image_file: content image_file.read() image vision.Image(contentcontent) response client.label_detection(imageimage) labels response.label_annotations其命令行用法为python detect.py labels ./resources/landmark.jpg。与快速入门相比差异仅在Image对象的构造方式本地文件用Image(content...)携带二进制内容远程文件用Image(source.image_uri...)携带 URI。5.2 响应错误检查快速入门示例省略了错误处理而detect.py中的生产级写法会在每次调用后检查响应中的错误信息if response.error.message: raise Exception( {}\nFor more info on error messages, check: https://cloud.google.com/apis/design/errors.format(response.error.message) )即即使 HTTP 层调用成功API 也可能在响应体内返回error字段如图片损坏、URI 不可访问等应显式检查并抛出异常这是可移植到快速入门代码中的重要实践。5.3 迁移背景README 中特别提及了迁移指南官方文档说明该示例已迁移到 Python 客户端库 v0.25.1 的新 API 风格。从代码可见当前示例使用的是现代化写法ImageAnnotatorClientlabel_detection方法# [START vision_python_migration_*]系列标注正是迁移前后代码对照的片段标记新老版本在客户端类名与方法命名上存在差异。六、测试如何验证示例quickstart_test.py 展示了该示例的自动化验证方式import quickstart def test_quickstart() - None: labels quickstart.run_quickstart() for label in labels: assert len(label.description) 0测试逻辑非常简洁直接导入quickstart模块并调用run_quickstart()断言返回的每个标签description字段非空。这属于真实调用云服务的集成测试运行前提是环境已配置好有效凭据且可访问公网/GCS。requirements-test.txt指定pytest9.0.3; python_version 3.10因此测试应在 Python 3.10 环境下通过pytest运行。七、依赖版本与运行环境小结文件内容说明requirements.txtgoogle-cloud-vision3.8.1客户端库版本锁定requirements-test.txtpytest9.0.3; python_version 3.10测试框架要求 Python ≥ 3.10运行命令python quickstart.py需先完成认证与依赖安装测试命令pytest需真实凭据属于集成测试八、继续深入仓库内的相邻示例vision/snippets目录下还提供了多个同主题的扩展样例可作为标签识别之外的学习路径vision/snippets/detect人脸检测、OCR、Web 检测、物体定位等完整能力集合detect.py入口vision/snippets/face_detection人脸检测专项示例vision/snippets/document_text文档文字识别OCR专项vision/snippets/webWeb 实体与相似图片检索vision/snippets/product_search商品搜索vision/snippets/crop_hints构图裁剪提示。九、总结从vision/snippets/quickstart这份快速入门可以提炼出使用 Cloud Vision API 的最小可行套路配置应用默认凭据 → 实例化ImageAnnotatorClient→ 构造Image本地字节或远程 URI→ 调用label_detection→ 遍历label_annotations输出结果。基于 quickstart.py 及其测试、detect.py扩展实现读者既能立刻跑通首个示例也能在此基础上按需补充错误检查、切换本地图片输入、或扩展到人脸、OCR 等其他标注能力是进入视觉识别应用开发的可靠起点。赞分享示例工程【免费下载链接】python-docs-samplesCode samples used on cloud.google.com项目地址https://gitcode.com/GitHub_Trending/py/python-docs-samples点击查看免费下载相关推荐python-docs-samples 实战用 Google Cloud Vision API 实现图片 Web 检测Web Detectionpython docs samples 实战用 Google Cloud Vision API 实现图片 Web 检测Web Detection 导读 本示例工程10分钟上手图像识别用google-api-php-client实现Google Cloud Vision API全流程10分钟上手图像识别用google api php client实现Google Cloud Vision API全流程 你是否还在为图像识别功能开发繁琐的算后端python-docs-samples 实践指南用 Google Cloud Vision API 与 detect.py 实现 20 余种图像识别检测python docs samples 实践指南用 Google Cloud Vision API 与 detect.py 实现 20 余种图像识别检测 本指示例工程上一篇Mago高级用户技巧资深PHP开发者的代码优化技巧下一篇Koel 环境变量完全指南存储、扫描、流媒体、集成与 SSO 配置参考创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表