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

使用Google Cloud Vision离线批量标注WebP图片时遇“Bad image data”错误

解决Google Cloud Vision异步批量处理WebP图片的“Bad image data”错误

针对你遇到的异步批量标注WebP图片报错,但单张同步请求正常的问题,可尝试以下几种解决思路:

1. 重新编码WebP图片(排除格式兼容性问题)

异步批量处理对WebP的编码兼容性要求可能比单张请求更严格,部分带有动画、特殊元数据或非标准编码的WebP可能无法被批量流程识别。可以将图片重新编码为标准静态WebP格式,或转换为PNG/JPG后再进行批量处理。

示例Python代码(使用PIL重新编码WebP):

from PIL import Image
import io
from google.cloud import storage

# 从GCS下载图片
storage_client = storage.Client("your-GCP-project-here")
bucket = storage_client.bucket("platform-storage-prod")
blob = bucket.blob("image/f32d82295d744974b15ecfbcba7eb707/73a2d4f550b04fc3a1b097cc3a9b9428.webp")
image_bytes = blob.download_as_bytes()

# 重新编码为静态WebP
with Image.open(io.BytesIO(image_bytes)) as img:
    output_bytes = io.BytesIO()
    # 保存为静态WebP,禁用动画
    img.save(output_bytes, format="WEBP", lossless=False, quality=80)
    output_bytes.seek(0)

# 上传回GCS
new_blob = bucket.blob("image/processed/73a2d4f550b04fc3a1b097cc3a9b9428_processed.webp")
new_blob.upload_from_file(output_bytes, content_type="image/webp")

之后用新的GCS路径发起异步批量请求。

2. 验证GCS文件完整性与权限

  • 检查WebP文件是否在上传到GCS时损坏:下载文件到本地,用图片查看器确认能正常打开,对比本地文件和GCS文件的MD5哈希值。
  • 确保Vision服务账号有GCS文件的读取权限:给cloud-vision@system.gserviceaccount.com添加Storage Object Viewer角色到目标存储桶或文件。

3. 调整批量参数

尝试减小batch_size(比如从100改为10),部分情况下大批次处理可能触发服务端的格式校验逻辑异常。修改代码中的batch_size值后重新测试:

batch_size = 10  # 减小批量大小
output_config = {'gcs_destination': gcs_destination, 'batch_size': batch_size}

4. 提交GCP支持工单

如果以上方法都无效,这大概率是Google Cloud Vision异步批量服务的兼容性bug(毕竟单张请求正常)。可以通过GCP控制台提交支持工单,提供以下信息:

  • 报错的异步请求ID
  • 问题WebP图片的GCS路径
  • 单张请求成功的示例请求细节
    官方团队会排查服务端的批量处理逻辑问题。

内容的提问来源于stack exchange,提问作者Pedro Henrique Gomes Venturott

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 05:15:33