绿色检查
链接复制到剪贴板

使用 Streamlit 和Ultralytics YOLO11运行交互式人工智能应用程序

了解如何在 Streamlit 界面中运行YOLO11 推断,并为计算机视觉任务构建交互式人工智能界面,而无需专业编码知识。

计算机视觉模型是极具影响力的人工智能工具,能让机器解释和分析视觉数据,高精度地执行物体检测、图像分类和实例分割等任务。然而,它们有时需要额外的专业技术知识,如网络开发或移动应用程序技能,才能部署并让更多人使用。

Ultralytics YOLO11为例。这是一个支持各种任务的模型,在一系列应用中都非常有用。然而,如果没有一定的前端技术知识,要构建和部署一个友好的用户界面来实现无缝交互,对于一些人工智能工程师来说可能会有点难度。

Streamlit 是一个开源框架,旨在简化这一过程。它是一个Python工具,用于构建交互式应用程序,无需复杂的前端开发。与YOLO11 搭配使用时,用户可以上传图片、处理视频,并以最小的工作量实现实时结果的可视化。

Ultralytics 的实时推理解决方案在此基础上更进一步,使 Streamlit 集成变得更加简单。只需一个命令,用户就可以为YOLO11 启动一个预建的Streamlit 应用程序,无需手动设置和编码。 

在本文中,我们将介绍如何使用Ultralytics的实时推理解决方案和 Streamlit 来设置和运行YOLO11 ,从而使实时人工智能部署更快、更方便。

什么是 Streamlit?

Streamlit 是一个Python 框架,可简化交互式网络应用程序的创建。人工智能开发人员无需处理错综复杂的前端开发工作,即可创建人工智能驱动的应用程序。 

它旨在与人工智能和机器学习模型无缝协作。只需几行Python,开发人员就能创建一个界面,让用户上传图片、处理视频并与人工智能模型进行交互。

图 1.Streamlit 的主要特征。图片由作者提供。

其主要功能之一是动态渲染。当用户进行更改时,应用程序会自动更新,无需手动重新加载页面。

此外,由于 Streamlit 重量轻、易于使用,因此在本地机器和云平台上都能高效运行。这使它成为部署人工智能应用、与他人共享模型以及提供直观的交互式用户体验的最佳选择。

Ultralytics YOLO11:多功能视觉人工智能模型

在深入探讨如何在 Streamlit 应用程序中使用Ultralytics YOLO11 进行实时推断之前,我们先来看看YOLO11 为何如此可靠。

Ultralytics YOLO11 是一款专为实时计算机视觉任务(如物体检测、实例分割和姿态估计)而设计的模型。它具有高速性能和令人印象深刻的准确性。

图 2.使用YOLO11 进行物体检测的示例。

YOLO11最大的优势之一是其易用性。开发人员无需进行复杂的设置,只需安装Ultralytics Python 软件包,编写几行代码即可开始预测。

Ultralytics Python 软件包提供一系列功能,允许用户微调模型和调整检测设置。它还有助于优化不同设备的性能,使部署更加顺畅。

除了灵活性之外,Ultralytics Python 软件包还支持跨平台集成,包括边缘设备、云环境和GPU NVIDIA GPU系统。无论是部署在小型嵌入式设备还是大型云服务器上,YOLO11 都能毫不费力地适应,使高级视觉人工智能比以往任何时候都更易于使用。

使用Streamlit与Ultralytics YOLO11的优势

您可能想知道,我如何知道 Streamlit 是否是适合我的部署选项?如果您正在寻找一种简单、代码效率高的方式来运行YOLO11 ,而无需处理前端开发工作,Streamlit 就是一个不错的选择--尤其是对于原型开发、概念验证(PoC)项目或针对少量用户的部署而言。

它消除了不必要的复杂性,提供了直观的实时交互界面,从而简化了使用YOLO11 流程。以下是其他一些主要优势:

  • 可定制的人工智能控件: 您可以在界面上添加滑块、下拉按钮和按钮,让用户轻松微调检测设置和过滤特定对象。
  • 与其他人工智能工具集成: Streamlit 支持与 NumPy、OpenCV、Matplotlib 和其他机器学习库集成,从而增强了人工智能工作流程的能力。
  • 交互式数据可视化:
  • 便于协作:Streamlit 应用程序可以通过简单的链接与团队成员、利益相关者或客户轻松共享,从而实现即时反馈和迭代。

在 Streamlit 网络应用程序中部署YOLO11 的分步指南

现在,我们已经了解了使用 Streamlit 和YOLO11的好处,下面让我们来看看如何使用 Streamlit 和YOLO11 在浏览器中运行实时计算机视觉任务。

安装Ultralytics Python 软件包

第一步是安装Ultralytics Python 软件包。使用以下命令即可完成:

1# Install the ultralytics package from PyPI
2pip install ultralytics

安装完成后,YOLO11 即可使用,无需任何复杂的设置。如果您在安装所需软件包时遇到任何问题,可以参阅我们的《常见问题指南》,了解故障排除技巧和解决方案。

使用YOLO11启动 Streamlit 应用程序 

通常,您需要使用 Streamlit 组件开发Python 脚本来运行YOLO11。然而,Ultralytics 提供了一种使用Streamlit运行YOLO11 的简单方法。 

运行以下Python 脚本,即可在默认网络浏览器中启动 Streamlit 应用程序:

1from ultralytics import solutions
2
3inf = solutions.Inference(
4    model="yolo11n.pt",  # you can use any model that Ultralytics support, i.e. YOLO11, or custom trained model
5)
6
7inf.inference()
8
9### Make sure to run the file using command `streamlit run <file-name.py>`

无需额外配置。Streamlit 应用程序界面包括图片和视频上传部分、用于选择感兴趣的YOLO11 型号变体的下拉菜单以及用于调整检测可信度的滑块。一切都井井有条,用户无需编写额外代码即可轻松运行推断。

在 Streamlit 应用程序上使用YOLO11 运行推论

现在,Streamlit 应用程序已在您的网络浏览器中运行,让我们来探索如何使用它来运行YOLO11推论。

例如,假设我们要分析一个视频文件以检测物体。以下是上传文件、选择模型和查看实时结果的步骤:

  • 上传视频文件: 从用户配置下拉菜单中选择 "视频",应用程序就会处理预先录制的文件,而不是网络摄像头馈送。
  • 选择YOLO11 模型:从模型下拉菜单中选择 "YOLO11l",使用大型YOLO11 模型进行物体检测。
  • 开始检测过程:单击 "Start"(开始),YOLO11 即可逐帧分析视频并实时检测物体。
  • 查看处理后的视频:观看屏幕上出现的实时更新视频,显示带有边框的检测对象。
  • 在 Streamlit 中与结果互动:使用界面调整设置或分析检测结果,无需额外设置或编码。
图 3.Ultralytics YOLO Streamlit 应用程序界面。

使用 Streamlit 和YOLO11的用例

我们已经了解了 Streamlit 如何非常适合创建原型、研究工具和中小型应用程序。它提供了一种部署人工智能模型的简单方法,无需复杂的前端开发。

然而,使用 Streamlit 运行YOLO11 并不总是一个开箱即用的解决方案--除非您使用我们在上述步骤中设置的Ultralytics YOLO Streamlit 应用程序。在大多数情况下,需要进行一些开发工作来定制应用程序,以满足特定需求。虽然 Streamlit 简化了部署,但您仍然需要配置必要的组件,以确保YOLO11 顺利运行。

让我们通过两个实际案例来了解Ultralytics YOLO11 如何与 Streamlit 一起在现实世界中进行有效部署。

使用YOLO11计数用于库存检查的对象

跟踪零售店、储藏室或办公用品区的库存既费时又容易出错。使用YOLO11 和 Streamlit,企业可以快速、高效地实现物品清点自动化,是在大规模部署前进行概念验证(PoC)的最佳选择。

通过这种设置,用户可以上传图像或使用实时摄像机馈送,YOLO11 可以帮助即时检测和计数物体。实时计数可显示在 Streamlit 界面上,提供了一种无需手动操作即可轻松监控库存水平的方法。

例如,店主可以扫描货架,立即查看有多少瓶、多少盒或多少包装货物,而无需手动清点。利用YOLO11 和 Streamlit,企业可以减少人工操作,提高准确性,并以最小的投资探索自动化。

图 4.使用YOLO11 检测冰箱中的瓶子。

利用YOLO11 和 Streamlit 提高安全性

要确保办公室、仓库或活动场所等受限区域的安全是一件非常困难的事情,尤其是在人工监控的情况下。使用YOLO11 和 Streamlit,企业可以建立一个简单的人工智能安全系统,实时检测未经授权的访问。

摄像机画面可连接到 Streamlit 界面,YOLO11 可用于识别和跟踪进入禁区的人员。如果检测到未经授权的人员,系统可触发警报或记录事件以供审查。

例如,仓库管理员可以监控高安全级别存储区的进出情况,或者办公室可以跟踪限制区域的移动情况,而无需持续监督。

对于希望在投入更大的全自动系统之前探索 Vision AI 驱动的安全监控的企业来说,这可能是一个大开眼界的项目。通过将YOLO11 与 Streamlit 集成,企业可以增强安全性,最大限度地减少人工监控,并更有效地应对未经授权的访问。

使用 Streamlit 监控交互式人工智能应用程序的技巧

使用 Streamlit 等工具来部署计算机视觉模型,有助于创造交互式的用户友好体验。不过,在设置好实时界面后,确保系统高效运行并长期提供准确结果非常重要。

以下是部署后需要考虑的一些关键因素:

  • 定期监测:跟踪检测准确性、推理速度和资源使用情况。如果性能下降,则调整模型参数或升 级硬件。
  • 管理多用户和可扩展性:随着用户需求的增长,优化基础设施是保持性能的关键。云平台和可扩展的部署解决方案有助于确保平稳运行。
  • 不断更新模型:不断更新模型和程序库可提高准确性、安全性和对新功能的访问。

主要收获

Ultralytics 简化了YOLO11 的部署,它提供了一个随时可用的 Streamlit 实时界面,只需一条命令即可运行,无需编码。这样,用户就可以立即开始使用实时对象检测功能。

界面还包括内置自定义功能,用户可以轻松切换模型、调整检测精度和过滤对象。一切都在一个简单、用户友好的界面中进行管理,无需手动开发用户界面。通过将

利用YOLO11的功能和 Streamlit 的易部署性,企业和开发人员可以快速开发、测试和完善人工智能驱动的应用程序原型。 

加入我们的社区,探索我们的GitHub 存储库,了解有关人工智能的更多信息。查看我们的解决方案页面,了解更多有关制造业中的人工智能医疗保健中的计算机视觉等创新的信息。查看我们的许可选项,立即开始使用!

Facebook 徽标Twitter 徽标LinkedIn 徽标复制链接符号

在此类别中阅读更多内容

让我们共同打造人工智能的未来

开始您的未来机器学习之旅