Инференс в реальном времени с приложением Streamlit и Ultralytics YOLO26#
Введение#
Streamlit упрощает создание и развёртывание интерактивных веб-приложений. Интеграция с Ultralytics YOLO26 позволяет выполнять обнаружение объектов и анализировать данные прямо в браузере в реальном времени. Благодаря скорости и точности YOLO26 подходит для обработки видеопотоков в реальном времени в таких сферах, как безопасность и розничная торговля.
Смотри: Как создать приложение для инференса в реальном времени с Ultralytics YOLO26 и Streamlit | Обнаружение и сегментация 🚀
| Аквакультура | Животноводство |
|---|---|
![]() | ![]() |
| Обнаружение рыб с помощью Ultralytics YOLO26 | Обнаружение животных с помощью Ultralytics YOLO26 |
Преимущества инференса в реальном времени#
- Обнаружение объектов в реальном времени: Streamlit в сочетании с YOLO26 позволяет обнаруживать объекты в реальном времени прямо в потоке с веб-камеры. Это обеспечивает мгновенный анализ и получение полезных данных, что идеально подходит для приложений, требующих мгновенной обратной связи.
- Простое развёртывание: интерактивный интерфейс Streamlit позволяет легко развёртывать и использовать приложение без глубоких технических знаний. Чтобы запустить инференс в реальном времени, достаточно одного щелчка мышью, что делает приложение доступнее и удобнее.
- Эффективное использование ресурсов: оптимизированные алгоритмы YOLO26 обеспечивают высокую скорость обработки при минимальных вычислительных затратах. Благодаря этому инференс с веб-камеры работает плавно и надёжно даже на стандартном оборудовании, открывая доступ к передовым методам компьютерного зрения широкой аудитории.
Код приложения Streamlit#
Прежде чем приступать к созданию приложения, убедись, что пакет Ultralytics для Python установлен.
pip install ultralyticsyolo solutions inference
yolo solutions inference model="path/to/model.pt"
yolo solutions help # list the available solution commands and argumentsЭти команды запускают стандартный интерфейс Streamlit, поставляемый с Ultralytics.
Так приложение Streamlit откроется в браузере по умолчанию. Ты увидишь заголовок, подзаголовок и боковую панель с параметрами конфигурации. Выбери нужную модель YOLO26, задай пороги уверенности и NMS, затем нажми кнопку «Start», чтобы начать обнаружение объектов в реальном времени.
Как это работает#
Внутри приложение Streamlit использует модуль решений Ultralytics для создания интерактивного интерфейса. После запуска инференса приложение:
- Захватывает кадры с веб-камеры, из загруженного видеофайла или загруженных изображений
- Обрабатывает каждый кадр с помощью модели YOLO26
- Обнаруживает объекты с заданными тобой порогами уверенности и IoU
- Отображает исходные и размеченные кадры в реальном времени
- При необходимости включает отслеживание объектов, если оно выбрано
Приложение предоставляет понятный и удобный интерфейс с элементами управления параметрами модели и запуска/остановки инференса в любое время.
Заключение#
Следуя этому руководству, ты создал приложение для обнаружения объектов в реальном времени с помощью Streamlit и Ultralytics YOLO26. Приложение запускает YOLO26 для обработки видео с веб-камеры, видеофайла или изображения через простой интерфейс, а остановить поток можно в любой момент.
Чтобы расширить функциональность, можно добавить запись видеопотока, сохранение размеченных кадров или интеграцию с другими библиотеками компьютерного зрения.
Часто задаваемые вопросы#
Настроить приложение для обнаружения объектов в реальном времени с помощью Streamlit и Ultralytics YOLO26 просто. Сначала установи пакет Ultralytics для Python с помощью команды:
pip install ultralyticsЗатем можно создать простое приложение Streamlit для инференса в реальном времени:
Приложение Streamlitfrom ultralytics import solutions inf = solutions.Inference( model="yolo26n.pt", # можно использовать любую модель, поддерживаемую Ultralytics, например YOLO26 или модель, обученную на собственных данных ) inf.inference() # Обязательно запусти файл командой `streamlit run path/to/file.py`Подробнее о практической настройке см. в разделе документации Код приложения Streamlit.
Использование Ultralytics YOLO26 со Streamlit для обнаружения объектов в реальном времени дает несколько преимуществ:
- Обнаружение в реальном времени: Обнаруживай объекты с высокой точностью прямо в потоке с веб-камеры в реальном времени.
- Удобный интерфейс: Интуитивно понятный интерфейс Streamlit упрощает использование и развертывание без глубоких технических знаний.
- Эффективное использование ресурсов: Оптимизированные алгоритмы YOLO26 обеспечивают высокую скорость обработки при минимальных вычислительных затратах.
Подробнее об этих преимуществах читай в разделе Преимущества инференса в реальном времени.
После написания приложения Streamlit с интеграцией Ultralytics YOLO26 запусти его командой:
streamlit run path/to/file.pyЭта команда запустит приложение в браузере по умолчанию. Ты сможешь выбрать модели YOLO26, задать пороги уверенности и IoU, а затем одним нажатием запустить обнаружение объектов в реальном времени.
Обнаружение объектов в реальном времени с помощью Streamlit и Ultralytics YOLO26 можно применять в разных сферах:
- Безопасность: Мониторинг несанкционированного доступа в реальном времени и системы охранной сигнализации.
- Розничная торговля: Подсчет покупателей, управление полками и отслеживание запасов.
- Природа и сельское хозяйство: Мониторинг животных и состояния посевов для мер по сохранению природы.
Больше примеров и сценариев применения см. в разделе Решения Ultralytics.
Ultralytics YOLO26 предлагает ряд улучшений по сравнению с предыдущими моделями, такими как YOLOv5, и детекторами семейства R-CNN:
- Выше скорость и точность: Повышенная производительность для приложений реального времени.
- Простота использования: Упрощенные интерфейсы и развертывание.
- Эффективное использование ресурсов: Оптимизация для более высокой скорости при минимальных вычислительных требованиях.
Комментарии26
Задай вопрос, поделись результатами или помоги кому-нибудь.
j3dd4h
the manual execution using rknn model (yolo predict model='./best_rknn_model' source='ppe.jpg') is working but got an error when running under Streamlit.
TypeError: model='best_rknn_model/best-rk3588.rknn' is not a supported model format. Ultralytics supports: ('PyTorch', 'TorchScript', 'ONNX', 'OpenVINO', 'TensorRT', 'CoreML', 'TensorFlow SavedModel', 'TensorFlow GraphDef', 'TensorFlow Lite', 'TensorFlow Edge TPU', 'TensorFlow.js', 'PaddlePaddle', 'MNN', 'NCNN', 'IMX', 'RKNN') See https://docs.ultralytics.com/modes/predict for help.
1RizwanMunawar
@j3dd4h Hi, thanks for sharing the details. We currently don't support the rknn model, but you can adjust this check in code to make the application work for rknn models. We will add support for this soon.
j3dd4h
Ok, got it
RizwanMunawar
@j3dd4h opened the Pull request here: https://github.com/ultralytics/ultralytics/pull/22212
NNQHuong
AttributeError: module 'torch' has no attribute '__version__' Traceback: File "C:\Users\myname\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\streamlit\runtime\scriptrunner\exec_code.py", line 88, in exec_func_with_error_handling result = func() ^^^^^^ File "C:\Users\myname\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\streamlit\runtime\scriptrunner\script_runner.py", line 579, in code_to_exec exec(code, module.__dict__) File "C:\WasteSegregation\app.py", line 1, in <module> from ultralytics import solutions File "C:\Users\myname\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\ultralytics\__init__.py", line 11, in <module> from ultralytics.models import NAS, RTDETR, SAM, YOLO, FastSAM, YOLOWorld File "C:\Users\myname\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\ultralytics\models\__init__.py", line 3, in <module> from .fastsam import FastSAM File "C:\Users\myname\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\ultralytics\models\fastsam\__init__.py", line 3, in <module> from .model import FastSAM File "C:\Users\myname\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\ultralytics\models\fastsam\model.py", line 5, in <module> from ultralytics.engine.model import Model File "C:\Users\myname\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\ultralytics\engine\model.py", line 11, in <module> from ultralytics.cfg import TASK2DATA, get_cfg, get_save_dir File "C:\Users\myname\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\ultralytics\cfg\__init__.py", line 12, in <module> from ultralytics.utils import ( File "C:\Users\myname\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\ultralytics\utils\__init__.py", line 51, in <module> TORCH_VERSION = torch.__version__ ^^^^^^^^^^^^^^^^^This is the error I encountered when usingfrom ultralytics import solutionssolutions.inference(model =r'C:path\to\my\model.pt')method (VSCode), can you please explain it to me? For further information, I've tried using the method for CLI and it works, but not with VSCode. I wonder if there's any method for CLI that allows me to use my custom trained model? It's YOLO11n-cls version. Thank you for reading this!1
Glenn JocherUltralytics@NNQHuong the error you're encountering suggests a possible issue with your PyTorch installation. Please verify that PyTorch is properly installed and compatible with your Python version by running:
import torch print(torch.__version__)If the error persists, ensure you're using the latest version of PyTorch and Ultralytics with:
pip install --upgrade torch ultralyticsRegarding your CLI query, you can use your custom-trained YOLO11 model by specifying the model path directly, like so:
yolo predict model=path/to/your/model.pt source=your_inputFor detailed examples, check the documentation here. Let me know if additional assistance is required!
2RizwanMunawar
Hi @NNQHuong, thank you for sharing the error log! It appears that the issue might be related to your PyTorch version. You may need to upgrade or downgrade it to ensure everything works correctly.
However, if this still doesn't resolve the issue, please share your code here for further testing.
Thanks, Ultralytics Team!
1NNQHuong
Thanks for your infomative reply, it worked smoothly! I'm kind of new to this field anyway, about 6 months , I bet you can see it in my words haha, so thanks for your patience too!
1
Tech-Watt
Is it posible to use different camera index ?. It picks up the default computer webcam and there's no means of changing it.
Glenn JocherUltralytics(изменено)The
Inferenceclass has nosourceargument: selecting "webcam" in the sidebar always opens camera index0(self.vid_file_name = 0inultralytics/solutions/streamlit_inference.py). To use a different camera, make it your system's default camera or change that index in the file:inf = solutions.Inference(model="yolo26n.pt") inf.inference()Run it with
streamlit run <file-name.py>.
Vectorvin
streamlit 这个解决方案可以使用tensorRT格式或者onnx格式吗?似乎程序被写死了
Glenn JocherUltralytics(изменено)@Vectorvin 您好!Streamlit 方案现在也支持导出的模型格式:除了
.pt,还可以把.onnx、.torchscript、.mlpackage、.engine(TensorRT)、OpenVINO 或 RKNN 模型路径传给solutions.Inference(model="yolo26n.engine")。导出步骤请参考导出文档。需要企业级部署支持请访问ultralytics.com/license。
sathyanarayanaRP
how does the streamlit gets is input , is it possible to push frames or is it possible to integrate machine vision cameras that does not support RTSP protocals. i need comprehensive knowledge how does it work as a streaming device
Glenn JocherUltralytics@sathyanarayanaRP streamlit can receive input directly from a webcam or video file. For cameras that don't support RTSP, you can use USB or other compatible connections. The Streamlit app processes frames in real-time, allowing for seamless integration with various camera types. For more details, please refer to the Streamlit documentation.
Cheikh-Ahmedand
hey!
Once I run the app my Laptop camera turns on, instead of My webcam. How to use my external webcam instead of my LAPTOP camera?
Best Regards!
Glenn JocherUltralytics(изменено)@Cheikh-Ahmedand the Streamlit app has no
sourceargument: choosing "webcam" in the sidebar always opens camera index0(self.vid_file_name = 0inultralytics/solutions/streamlit_inference.py). To use your external webcam, make it the system's default camera, or change that index to1(or the index of your webcam) in the file.Run the app with
yolo solutions inference, or withstreamlit run <file-name.py>for your own script.Cheikh-Ahmedand
Hey ! Thanks lot for your response, but the code couldn't work with streamlit code. I pasted the following code on my Laptop anconda PowerShell Prompt:
yolo streamlit-predict solutions.inference(source=1)
Still, my Webcam can't run, but my Laptop 's Camera.
Also, I tried the below code in jupyter notebook, but the problem still persists.
from ultralytics import solutions
solutions.inference() solutions.inference(source=1)
Make sure to run the file using command
streamlit run <file-name.py>Any help either from the Respectful Staff or others would be appreciated!!!
Glenn JocherUltralytics(изменено)@Cheikh-Ahmedand the Streamlit app has no
sourceargument: choosing "webcam" in the sidebar always opens camera index0(self.vid_file_name = 0inultralytics/solutions/streamlit_inference.py). To use an external webcam, set it as your system's default camera or change that index in the file. Run the app withyolo solutions inference, orstreamlit run <file-name.py>for your own script. If issues persist, please check your system's camera settings.
AdadAlShabab
Can you please provide the stramlit .py file that we need to run?
Glenn JocherUltralytics(изменено)@AdadAlShabab you can use the following code to run the Streamlit application for live inference:
from ultralytics import solutions inf = solutions.Inference(model="yolo26n.pt") inf.inference()Run the file with the command
streamlit run <file-name.py>. For more details, please refer to the Streamlit Live Inference Guide.
ghost
Thank you for your quick and kind response and the problem is sorted. But there is another issue while switching model to different task like pose,seg or cls and getting error of open cv not having func()
Glenn JocherUltralytics@Charan2128 i'm glad to hear the initial issue is resolved. Regarding the error with OpenCV when switching tasks (pose, seg, cls), please ensure you have the latest versions of both the Ultralytics package and OpenCV. You can update them using:
pip install --upgrade ultralytics opencv-pythonIf the issue persists, please provide more details about the error message and the specific function that is causing the problem. This will help us diagnose and address the issue more effectively. For further guidance, you can also refer to our Streamlit Live Inference Guide.
ghost
That was a Quick Replay and Quick fix ,Thanks for your kind support on my issues. The problem is fixed now.
Glenn JocherUltralytics@Charan2128 i'm glad to hear the initial issue is resolved. For the new issue with switching tasks and encountering OpenCV errors, please ensure you have the latest versions of both the Ultralytics package and OpenCV installed. You can update them using
pip install --upgrade ultralytics opencv-python. If the problem persists, please provide the specific error message and function causing the issue so we can assist you further. For more detailed guidance, you can refer to our Streamlit Live Inference Guide.
ghost
AttributeError: module 'ultralytics.solutions' has no attribute 'inference' Traceback: File "C:\Users\DELL\AppData\Local\Programs\Python\Python312\Lib\site-packages\streamlit\runtime\scriptrunner\exec_code.py", line 75, in exec_func_with_error_handling result = func() ^^^^^^ File "C:\Users\DELL\AppData\Local\Programs\Python\Python312\Lib\site-packages\streamlit\runtime\scriptrunner\script_runner.py", line 574, in code_to_exec exec(code, module.dict) File "D:\YOLO\infer.py", line 3, in solutions.inference() ^^^^^^^^^^^^^^^^^^^ This is the error im getting while running this and i have installed necessary packages.
Paula DerrengerUltralytics(изменено)@Charan2128 it looks like you're encountering an
AttributeErrorbecausesolutions.inferenceis not an attribute of theultralytics.solutionsmodule. Please ensure you are using the latest version of the Ultralytics package by runningpip install --upgrade ultralytics. Then launch the Streamlit app directly from the CLI withyolo solutions inference, or from Python withsolutions.Inference(model="yolo26n.pt").inference()run viastreamlit run <file-name.py>. For more details, you can refer to our Streamlit Live Inference Guide.

