Ultralytics YOLO27: Запишись в список ожидания.
Начать

Инференс в реальном времени с приложением Streamlit и Ultralytics YOLO26#

Введение#

Streamlit упрощает создание и развёртывание интерактивных веб-приложений. Интеграция с Ultralytics YOLO26 позволяет выполнять обнаружение объектов и анализировать данные прямо в браузере в реальном времени. Благодаря скорости и точности YOLO26 подходит для обработки видеопотоков в реальном времени в таких сферах, как безопасность и розничная торговля.



Смотри: Как создать приложение для инференса в реальном времени с Ultralytics YOLO26 и Streamlit | Обнаружение и сегментация 🚀
АквакультураЖивотноводство
Обнаружение рыб с помощью Ultralytics YOLO26Обнаружение животных с помощью Ultralytics YOLO26
Обнаружение рыб с помощью Ultralytics YOLO26Обнаружение животных с помощью Ultralytics YOLO26

Преимущества инференса в реальном времени#

  • Обнаружение объектов в реальном времени: Streamlit в сочетании с YOLO26 позволяет обнаруживать объекты в реальном времени прямо в потоке с веб-камеры. Это обеспечивает мгновенный анализ и получение полезных данных, что идеально подходит для приложений, требующих мгновенной обратной связи.
  • Простое развёртывание: интерактивный интерфейс Streamlit позволяет легко развёртывать и использовать приложение без глубоких технических знаний. Чтобы запустить инференс в реальном времени, достаточно одного щелчка мышью, что делает приложение доступнее и удобнее.
  • Эффективное использование ресурсов: оптимизированные алгоритмы YOLO26 обеспечивают высокую скорость обработки при минимальных вычислительных затратах. Благодаря этому инференс с веб-камеры работает плавно и надёжно даже на стандартном оборудовании, открывая доступ к передовым методам компьютерного зрения широкой аудитории.

Код приложения Streamlit#

Установка Ultralytics

Прежде чем приступать к созданию приложения, убедись, что пакет Ultralytics для Python установлен.

pip install ultralytics
Инференс с помощью Streamlit и Ultralytics YOLO
yolo 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 для создания интерактивного интерфейса. После запуска инференса приложение:

  1. Захватывает кадры с веб-камеры, из загруженного видеофайла или загруженных изображений
  2. Обрабатывает каждый кадр с помощью модели YOLO26
  3. Обнаруживает объекты с заданными тобой порогами уверенности и IoU
  4. Отображает исходные и размеченные кадры в реальном времени
  5. При необходимости включает отслеживание объектов, если оно выбрано

Приложение предоставляет понятный и удобный интерфейс с элементами управления параметрами модели и запуска/остановки инференса в любое время.

Заключение#

Следуя этому руководству, ты создал приложение для обнаружения объектов в реальном времени с помощью Streamlit и Ultralytics YOLO26. Приложение запускает YOLO26 для обработки видео с веб-камеры, видеофайла или изображения через простой интерфейс, а остановить поток можно в любой момент.

Чтобы расширить функциональность, можно добавить запись видеопотока, сохранение размеченных кадров или интеграцию с другими библиотеками компьютерного зрения.

Часто задаваемые вопросы#

  • Настроить приложение для обнаружения объектов в реальном времени с помощью Streamlit и Ultralytics YOLO26 просто. Сначала установи пакет Ultralytics для Python с помощью команды:

    pip install ultralytics

    Затем можно создать простое приложение Streamlit для инференса в реальном времени:

    Приложение Streamlit
    from 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

Задай вопрос, поделись результатами или помоги кому-нибудь.

  1. j3dd4hj3dd4hGitHub

    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.

    1
    1. RizwanMunawarRizwanMunawarGitHub

      @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.

  2. NNQHuongNNQHuongGitHub

    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 using from ultralytics import solutions solutions.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
    1. Glenn JocherGlenn 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 ultralytics

      Regarding 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_input

      For detailed examples, check the documentation here. Let me know if additional assistance is required!

      2
    2. RizwanMunawarRizwanMunawarGitHub

      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!

      1
    3. NNQHuongNNQHuongGitHub

      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
  3. Tech-WattTech-WattGitHub

    Is it posible to use different camera index ?. It picks up the default computer webcam and there's no means of changing it.

    1. Glenn JocherGlenn JocherUltralytics(изменено)

      The Inference class has no source argument: selecting "webcam" in the sidebar always opens camera index 0 (self.vid_file_name = 0 in ultralytics/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>.

    1. Glenn JocherGlenn JocherUltralytics(изменено)

      @Vectorvin 您好!Streamlit 方案现在也支持导出的模型格式:除了 .pt,还可以把 .onnx、.torchscript、.mlpackage、.engine(TensorRT)、OpenVINO 或 RKNN 模型路径传给 solutions.Inference(model="yolo26n.engine")。导出步骤请参考导出文档。需要企业级部署支持请访问ultralytics.com/license。

  4. sathyanarayanaRPsathyanarayanaRPGitHub

    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

    1. Glenn JocherGlenn 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.

  5. Cheikh-AhmedandCheikh-AhmedandGitHub

    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!

    1. Glenn JocherGlenn JocherUltralytics(изменено)

      @Cheikh-Ahmedand the Streamlit app has no source argument: choosing "webcam" in the sidebar always opens camera index 0 (self.vid_file_name = 0 in ultralytics/solutions/streamlit_inference.py). To use your external webcam, make it the system's default camera, or change that index to 1 (or the index of your webcam) in the file.

      Run the app with yolo solutions inference, or with streamlit run <file-name.py> for your own script.

    2. Cheikh-AhmedandCheikh-AhmedandGitHub

      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!!!

    3. Glenn JocherGlenn JocherUltralytics(изменено)

      @Cheikh-Ahmedand the Streamlit app has no source argument: choosing "webcam" in the sidebar always opens camera index 0 (self.vid_file_name = 0 in ultralytics/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 with yolo solutions inference, or streamlit run <file-name.py> for your own script. If issues persist, please check your system's camera settings.

    1. Glenn JocherGlenn 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.

  6. ghostghostGitHub

    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()

    1. Glenn JocherGlenn 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-python

      If 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.

    2. ghostghostGitHub

      That was a Quick Replay and Quick fix ,Thanks for your kind support on my issues. The problem is fixed now.

    3. Glenn JocherGlenn 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.

  7. ghostghostGitHub

    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.

    1. Paula DerrengerPaula DerrengerUltralytics(изменено)

      @Charan2128 it looks like you're encountering an AttributeError because solutions.inference is not an attribute of the ultralytics.solutions module. Please ensure you are using the latest version of the Ultralytics package by running pip install --upgrade ultralytics. Then launch the Streamlit app directly from the CLI with yolo solutions inference, or from Python with solutions.Inference(model="yolo26n.pt").inference() run via streamlit run <file-name.py>. For more details, you can refer to our Streamlit Live Inference Guide.