You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Vertex AI Workbench Jupyter Notebook读取GCS存储桶图片?

Vertex AI Workbench Notebook读取GCS存储桶图片的解决方案

一、先确认权限配置

Vertex AI Notebook访问GCS的前提是拥有对应权限:

  • 检查Notebook实例绑定的服务账号,确保其拥有storage.objectViewer(只读)或storage.admin(读写)权限,可在GCP控制台的IAM页面配置。
  • 测试场景下,可在Notebook中执行gcloud auth application-default login完成临时授权(生产环境推荐使用服务账号)。

二、Keras/TensorFlow直接读取GCS路径

TensorFlow原生支持GCS URI,Keras可直接使用:

批量读取(ImageDataGenerator)

from tensorflow.keras.preprocessing.image import ImageDataGenerator

# 直接传入GCS路径
datagen = ImageDataGenerator(rescale=1./255)
train_ds = datagen.flow_from_directory(
    'gs://your-bucket/train_images/',
    target_size=(224, 224),
    batch_size=32,
    class_mode='categorical'
)

单张图片读取

import tensorflow as tf

image_uri = 'gs://your-bucket/single_image.jpg'
# 读取字节流并解码
image_bytes = tf.io.read_file(image_uri)
image = tf.image.decode_jpeg(image_bytes, channels=3)
# 转换为numpy数组供Keras使用
image_np = image.numpy()

三、OpenCV读取GCS图片的两种方法

OpenCV不原生支持GCS URI,需通过以下方式处理:

方法1:内存读取(推荐)

借助google-cloud-storage库将图片读取到内存,再转成OpenCV可识别的格式:

  1. 安装依赖(若未安装):
!pip install google-cloud-storage
  1. 读取代码:
import cv2
import numpy as np
from google.cloud import storage

client = storage.Client()
bucket = client.get_bucket('your-bucket-name')
blob = bucket.blob('path/to/target_image.jpg')

# 下载字节流并转换为numpy数组
image_bytes = blob.download_as_bytes()
image_np = np.frombuffer(image_bytes, np.uint8)
# 解码为OpenCV格式
image = cv2.imdecode(image_np, cv2.IMREAD_COLOR)

方法2:挂载GCS存储桶到本地

用gcsfuse将GCS存储桶挂载为Notebook VM的本地目录,实现本地路径式访问:

  1. 安装gcsfuse(若未预装):
!echo "deb https://packages.cloud.google.com/apt gcsfuse-bionic main" | sudo tee /etc/apt/sources.list.d/gcsfuse.list
!curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
!sudo apt-get update
!sudo apt-get install gcsfuse -y
  1. 创建挂载目录并挂载存储桶:
!mkdir -p ./gcs-bucket-mount
!gcsfuse your-bucket-name ./gcs-bucket-mount
  1. OpenCV直接读取本地挂载路径:
import cv2
image = cv2.imread('./gcs-bucket-mount/path/to/image.jpg')

注意:挂载操作在Notebook重启后需要重新执行,且会占用VM本地存储,适合批量测试场景。

四、常见问题排查

  • 确认GCS路径格式:必须以gs://开头,例如gs://my-bucket/folder/image.jpg,避免遗漏前缀导致系统识别为本地路径。
  • 检查对象权限:确保GCS存储桶或目标图片的IAM权限配置正确,没有限制访问的条件。

内容的提问来源于stack exchange,提问作者Sagar Patil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 12:51:36