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

如何在Google Cloud上运行YOLO模型推理?Cloud Run部署问题求助

在Google Cloud上实现YOLOv5视频推理的解决方案

解决Cloud Run容器体积过大的问题

如果因为Ultralytics依赖包导致容器无法上传,可通过以下方式压缩镜像体积:

  • 使用轻量级基础镜像:替换全量Python镜像为slim或Alpine版本,比如FROM python:3.10-slim,能大幅减少基础镜像体积。注意Alpine的musl库可能和部分PyTorch依赖存在兼容问题,需提前测试。
  • 裁剪依赖包:仅安装推理必需的依赖,跳过训练相关的包(如数据集处理、训练优化工具等)。例如手动指定安装torch、torchvision和ultralytics,而非直接安装YOLOv5源码中的完整requirements。
  • 多阶段构建镜像:将依赖安装、模型预下载与运行环境分离,只复制必要文件到最终镜像。示例Dockerfile:
# 构建阶段:安装依赖并预下载模型
FROM python:3.10-slim AS builder
WORKDIR /app
# 安装依赖到用户目录,避免权限问题
RUN pip install --user ultralytics torch torchvision
# 预下载YOLOv5s模型,避免运行时下载
RUN python -c "from ultralytics import YOLO; YOLO('yolov5s.pt')"

# 运行阶段:仅保留必要文件
FROM python:3.10-slim
WORKDIR /app
# 复制构建好的依赖和模型
COPY --from=builder /root/.local/lib/python3.10/site-packages /usr/local/lib/python3.10/site-packages
COPY --from=builder /root/.config/ultralytics /root/.config/ultralytics
# 复制你的推理代码
COPY inference.py .
# 清理缓存
RUN apt-get clean && rm -rf /var/lib/apt/lists/* && pip cache purge

CMD ["python", "inference.py"]
  • 清理镜像缓存:在Dockerfile中添加命令清理apt和pip的缓存文件,减少镜像冗余。

GCP服务选择建议

根据你的场景,不同服务的适配性如下:

  • Cloud Run:优先尝试上述镜像优化方案,它的serverless特性适合按需扩缩容,且能直接对接Pub/Sub触发。如果优化后仍无法满足(比如需要GPU加速推理),再考虑其他服务。
  • Compute Engine:适合需要更强计算资源(如GPU、大内存)或自定义环境的场景。你可以创建带GPU的虚拟机,手动部署YOLOv5环境,或用容器部署到GCE。缺点是需要自行管理实例的启停、扩容,缺乏Cloud Run的自动扩缩容能力。
  • App Engine:不推荐用于视频推理场景,它的资源限制较多,灵活性不足,更适合轻量级Web服务。
  • Cloud Functions:仅适合处理小体积视频或短时长推理任务,因为它有最大9分钟的执行时间限制,大文件处理容易超时。

适配Cloud Storage+Pub/Sub触发流程

无论选择哪种服务,都可以保留现有触发逻辑:

  1. 配置Cloud Storage存储桶的事件通知,当有视频上传时,发送包含文件路径的消息到指定Pub/Sub主题。
  2. 在推理服务中订阅该Pub/Sub主题,接收消息后从Cloud Storage下载视频文件。
  3. 执行YOLOv5推理,将检测结果或处理后的视频写回Cloud Storage或其他存储服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 18:56:11