YOLO11解决方案之使用 Streamlit 应用程序进行实时推理
概述
Ultralytics提供了一系列的解决方案,利用YOLO11解决现实世界的问题,包括物体计数、模糊处理、热力图、安防系统、速度估计、物体追踪等多个方面的应用。
Streamlit 使构建和部署交互式网络应用程序变得简单,将其与Ultralytics YOLO11 结合使用,可以直接在浏览器中进行实时对象检测和分析。YOLO11 的高精度和高速度确保了实时视频流的流畅性能,能够帮助用户快速分析视频流。
Ultralytics提供了CLI和Python例子,展示如何使用实时推理解决方案。
CLI:
yolo solutions inferenceyolo solutions inference model="path/to/model.pt"
Python:
from ultralytics import solutionsinf = solutions.Inference(model="yolo11n.pt", # you can use any model that Ultralytics support, i.e. YOLO11, or custom trained model
)inf.inference()# Make sure to run the file using command `streamlit run path/to/file.py`
运行演示
创建应用程序
我们可以创建python程序,名称为:test_inference.py,然后在命令行中运行:
streamlit run test_inference.py
如果系统中没有安装streamlit,则程序将自动安装。
运行后,streamlit将创建web server,运行在8501端口。程序将自动在浏览器中打开页面:http://localhost:8501
视频源可以是webcam或者视频文件。
打开video文件演示
在左侧菜单video选择"video",则下面会显示出“Browser files”选项,可以点击打开视频文件。
点击下方的“Start“将开始运行。点击运行界面下方的”Stop"将停止运行。
可以修改使用的模型,例如修改成yolo11n-seg:
若要修改检测类别,在Classes中选择即可:
使用自己的模型
当然,也可以使用自己训练的模型进行测试,需要修改代码,然后运行程序:
from ultralytics import solutionsinf = solutions.Inference(model="best.pt",
)inf.inference()
注意事项:如果是用户自行训练的模型,则需要明确指定文件所在的路径,否则将报错。如果是Ultralytics预训练的模型,如果没有在运行目录,程序将自动下载,如果下载失败,将报错。