Ultralytics YOLO27: 加入候补名单。
获取 YOLO 许可
视觉 AI

使用 Docker 容器化简化模型部署

了解如何通过 Docker 容器化,让部署 Ultralytics YOLO11 等计算机视觉模型变得更高效、更简单。

Abirami VinaAbirami Vina7 分钟阅读
使用 Docker 容器化部署 YOLO11 模型

构建计算机视觉解决方案不仅仅包括训练和测试模型。事实上,构建模型最有成就感的环节之一,就是看到模型在真实环境中发挥作用。利用视觉 AI 解决问题,自然会涉及将你开发的计算机视觉模型部署到生产环境中。

模型部署涉及多个步骤,包括针对不同条件优化模型的可靠性、可扩展性和性能。结构完善的部署工作流能够弥合模型开发与模型产生实际影响之间的差距。

部署 Ultralytics YOLO11 等计算机视觉模型时,通常有多种部署技术和方案可供选择,合适的方案取决于你正在构建的具体应用。例如,容器化等技术可以简化部署流程。

容器化有助于将模型及其依赖项(例如库、框架和配置)打包成一个独立的单元,称为容器。Docker 是实现这一目标最高效、最流行的方式之一。它是一个开源平台,可让容器化应用的构建、交付和运行变得更加简单。

本文将介绍容器化和 Docker 如何简化模型部署,提升真实视觉 AI 应用的可扩展性和效率。

什么是模型部署?#

模型部署是机器学习生命周期的最后一个阶段,即将训练好的模型引入生产环境,使其能够进行真实世界预测。成功部署是模型在实际条件下可靠运行的关键。

例如,设想一个用于自动收费、旨在识别车牌的计算机视觉模型。它在标注完善的数据集和受控环境中可能达到很高的准确率,但将其部署到路边摄像头上,可能会因高分辨率图像处理、网络延迟、硬件限制和实时推理要求等因素而产生延迟问题。

预测速度慢可能导致收费处理延迟、交通拥堵,甚至漏检。恰当的模型部署策略有助于降低延迟、提高效率,并支持模型在真实应用中可靠运行。

使用 Ultralytics YOLO11 检测车牌

图 1. 使用 Ultralytics YOLO11 检测车牌。

此外,部署模型时还需要考虑多个因素。其中之一是可扩展性:模型在训练期间表现良好,但可能难以应对大规模数据。

另一种问题是环境不匹配,例如硬件差异:模型在高性能 GPU(图形处理器)上训练,却部署到处理能力有限的设备上。这些部署环境中的不一致可能导致模型行为出乎预料。容器化等高级解决方案可用于应对这些挑战。

容器化#

容器化可以比作打包午餐盒,把一顿饭所需的所有东西都装进去,例如食物、餐具和调味品。这样无论在哪里,你都可以吃饭,不必担心找不到厨房或特定餐具。

类似地,容器化会将模型及其所有依赖项(例如库、框架和配置)打包成一个称为容器的单元。容器提供相同的依赖项,确保模型能够在任何系统上一致运行,而不受底层环境影响。与包含完整操作系统的虚拟机不同,容器轻量且可移植,是一种高效的替代方案。

三个应用容器共享主机操作系统内核,并在同一硬件上运行的示意图

图 2. 容器化概览。

以下是容器化的一些主要优势:

  • 版本控制:借助容器化,不同版本的模型或软件栈可以共存,从而轻松回滚和更新,而不会干扰生产系统。
  • 安全性:容器将应用与底层系统隔离,降低冲突、漏洞和未经授权访问的风险。
  • 快速部署:预配置的容器映像支持快速、可重复的部署,缩短设置时间并尽量减少部署错误。

Docker:简化容器化#

容器化是在隔离环境中运行应用的好方法,但设置过程可能比较复杂。这时 Docker 就派上用场了。Docker 是一个开源平台,可简化容器化应用的构建、部署和管理。

Docker 提供一致且隔离的环境,以及测试模型所需的工具和框架。具体来说,Docker 以强大的生态系统和易用性而闻名。它简化了流程、可与云平台顺畅协作,还能让 AI 模型在边缘设备上高效运行,从而更轻松地部署 AI 模型并更快获得结果。

许多行业都在积极使用 Docker,高效部署和管理容器化应用。基于 Docker 的模型部署通常包含三个主要组件:

  • Dockerfile:一种基于文本的配置文件,可作为创建 Docker 镜像的蓝图。它包含所有必要的指令,包括基础镜像、所需依赖项、环境设置和运行模型的命令。
  • Docker 镜像:预配置的打包文件,包含运行模型所需的一切内容,例如代码、库、运行时环境和依赖项。这些镜像确保模型在任何系统上都以相同配置运行。
  • Docker 容器:Docker 镜像的运行实例,为模型运行提供隔离且安全的环境。在此环境中,可以训练、测试和微调模型,而不会干扰其他应用或主机系统。

Docker 的关键组件

图 3. 了解 Docker 的关键组件。

探索使用 Docker 构建的计算机视觉应用#

假设一座城市想要使用计算机视觉部署交通监控系统,以实时检测和分类车辆。要在多个地点部署该系统,而每个地点的硬件和网络条件各不相同,这可能颇具挑战。兼容性问题、依赖项冲突和环境不一致都可能导致性能不可靠。

使用 Docker,开发者可以将整个计算机视觉模型及其依赖项(例如 TensorFlow 等AI 框架和自定义脚本)打包到一个容器中。这样可以确保模型在不同环境中一致运行,从本地开发环境到基于云的服务器,乃至安装在交通摄像头上的边缘设备。

六个容器化应用运行在 Docker 上,并分层部署于主机操作系统和基础设施之上的示意图

图 4. Docker 的工作原理。

例如,在多个十字路口部署 Docker 化的计算机视觉模型后,城市可以分析交通流量、检测违规行为并优化交通信号。由于 Docker 为所有地点提供标准化环境,维护更轻松,更新更简单,性能也能保持一致。

使用 Docker 部署 Ultralytics YOLO11#

Ultralytics YOLO11 能够执行复杂的计算机视觉任务,可应用于制造业、医疗保健、自动驾驶和农业等多个行业。

例如,Ultralytics YOLO11 可以在健身应用中处理视频流,利用姿势估计来追踪锻炼动作,例如俯卧撑。通过实时检测身体动作并统计重复次数,它有助于改进锻炼追踪和表现分析。

使用 Ultralytics YOLO11 姿势估计监测锻炼

图 5. 使用 Ultralytics YOLO11 监测锻炼。

如果要将此类模型部署到真实应用中,就需要管理依赖项、优化硬件,并确保模型在不同环境中保持一致的性能。Docker 会将 Ultralytics YOLO11 与所有必需的库和配置打包,从而简化这一流程,让部署更加高效、可扩展且可靠。

以下快速介绍使用 Docker 部署 Ultralytics YOLO11的优势:

  • 简化维护:Docker 简化了 Ultralytics YOLO11 及其依赖项的更新和维护流程。你可以在不影响主机系统的情况下更新容器镜像,从而确保模型管理顺畅高效。
  • 简化协作:开发者和研究人员可以轻松共享预配置的 Docker 容器,确保团队使用相同的环境,避免兼容性问题。
  • 资源效率:与传统虚拟机不同,Docker 容器共享主机操作系统,可减少开销并提高资源利用率,这对于实时推理任务至关重要。

可使用 Docker 部署的 Ultralytics YOLO11 应用#

下面来看几个使用 Ultralytics YOLO11 和 Docker 构建的计算机视觉应用示例。

使用 Ultralytics YOLO11 监测交通#

前面我们讨论了使用计算机视觉监测交通。有趣的是,Ultralytics YOLO11 对目标跟踪的支持有助于构建全面的交通管理系统。这是如何实现的?

Ultralytics YOLO11 可以分析交通摄像头的实时视频流,从而实时检测和跟踪车辆。通过持续识别车辆的位置、速度和移动模式,系统可以监测拥堵程度、检测交通违规行为(例如闯红灯或违规转弯),并根据实时数据优化交通信号。

此外,借助 Docker 将 Ultralytics YOLO11 部署到边缘设备或云平台,可确保高效处理和可扩展性,使其成为智能城市交通管理的实用工具。

使用 Ultralytics YOLO11 跟踪和统计车辆

图 6. 使用 YOLO11 跟踪和统计车辆。

使用 Ultralytics YOLO11 改进物理治疗#

在医疗保健领域,物理治疗对康复至关重要,正确的姿势和动作对成功恢复十分重要。基于视觉的患者监测系统提供实时反馈,帮助治疗师发现关节角度不正确或肌肉失衡等问题。

例如,如果患者在做肩部上举动作时手臂没有抬到正确高度,或者用不正确的姿势代偿,系统就能检测到这些错误并立即给出纠正建议。这使治疗师能够实时调整治疗方案。

Ultralytics YOLO11 的姿势估计功能可用于检测身体关键点并分析关节动作。它可以处理实时视频流并即时提供反馈,帮助治疗师纠正姿势、提高动作准确性并预防受伤。这样,治疗师就能根据每位患者的康复进展,更轻松地制定个性化治疗计划。

使用 Ultralytics YOLO11 姿势估计监测物理治疗

图 7. 使用 Ultralytics YOLO11 监测物理治疗的示例。

部署此类解决方案时,使用 Docker 可以确保系统在不同环境中顺畅运行,无论是在诊所还是用于远程患者监测。Docker 简化部署、增强可扩展性并维持系统一致性,让 AI 驱动的物理治疗工具更加可靠、易于使用。

要点#

部署计算机视觉模型是将模型从开发阶段推向真实应用的关键步骤。顺畅的部署流程能确保训练好的模型在实际应用中可靠运行。Docker 和容器化等工具消除了许多传统挑战,让这一流程变得更加简单。

这些技术轻量、可移植且可扩展,正在改变 Ultralytics YOLO11 等模型的构建和部署方式。借助容器化,企业可以节省时间、降低成本并提高效率,同时确保模型在不同环境中一致运行。

加入我们的社区,并查看我们的 GitHub repository,了解更多 AI 相关信息。阅读医疗保健领域的计算机视觉和AI 在制造业中的应用等各种应用案例。探索我们的 YOLO 许可选项,开始使用视觉 AI。

作者

Abirami Vina
Abirami Vina

内容创作者 · Ultralytics

Abirami Vina 职业生涯始于计算机视觉工程师,由此在视觉 AI 和机器学习领域打下了坚实基础。她是 Ultralytics 的内容创作者,也是 Scribe of AI 的创始人兼首席撰稿人,为专注 AI 的公司撰写高质量技术内容。她热衷于让 AI 更易理解、更具吸引力,通过自己的作品连接前沿技术与现实影响。

评论

提出问题、分享你的结果,或帮助其他人。

探索解决方案

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

使用 Ultralytics YOLO 将无人机和航空影像转化为农业、水产养殖、保护工作和地理空间分析的实时洞察。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 将计算机视觉应用于航空航天领域,包括飞机检查、跑道 FOD 检测、机场地面作业和复合材料缺陷检测。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来