Ultralytics YOLO27: Únete a la lista de espera.
Get Started

Inferencia en directo con una aplicación Streamlit usando Ultralytics YOLO26#

Introducción#

Streamlit facilita la creación y la implementación de aplicaciones web interactivas. Al combinarlo con Ultralytics YOLO26, puedes realizar detección de objetos y análisis en tiempo real directamente en el navegador. La velocidad y la precisión de YOLO26 lo hacen adecuado para secuencias de vídeo en directo en aplicaciones como la seguridad y el comercio minorista.



Ver: Cómo crear una aplicación de inferencia en directo con Ultralytics YOLO26 y Streamlit | Detección y segmentación 🚀
AcuiculturaGanadería
Detección de peces con Ultralytics YOLO26Detección de animales con Ultralytics YOLO26
Detección de peces con Ultralytics YOLO26Detección de animales con Ultralytics YOLO26

Ventajas de la inferencia en directo#

  • Detección de objetos en tiempo real: Streamlit, combinado con YOLO26, permite detectar objetos en tiempo real directamente desde la señal de tu cámara web. Esto permite obtener análisis e información al instante, por lo que es ideal para aplicaciones que requieren una respuesta inmediata.
  • Despliegue sencillo: La interfaz interactiva de Streamlit facilita el despliegue y el uso de la aplicación sin necesidad de grandes conocimientos técnicos. Los usuarios pueden iniciar la inferencia en directo con un simple clic, lo que mejora la accesibilidad y la facilidad de uso.
  • Uso eficiente de los recursos: Los algoritmos optimizados de YOLO26 garantizan un procesamiento de alta velocidad con un consumo mínimo de recursos informáticos. Esta eficiencia permite realizar inferencias fluidas y fiables con la cámara web, incluso en equipos estándar, y pone la visión artificial avanzada al alcance de más personas.

Código de la aplicación Streamlit#

Instalación de Ultralytics

Antes de empezar a crear la aplicación, asegúrate de tener instalado el paquete Python de Ultralytics.

pip install ultralytics
Inferencia con Streamlit y Ultralytics YOLO
yolo solutions inference

yolo solutions inference model="path/to/model.pt"

yolo solutions help # list the available solution commands and arguments

Estos comandos inician la interfaz predeterminada de Streamlit incluida con Ultralytics.

Esto iniciará la aplicación Streamlit en tu navegador web predeterminado. Verás el título principal, el subtítulo y la barra lateral con opciones de configuración. Selecciona el modelo YOLO26 que quieras, ajusta los umbrales de NMS y haz clic en el botón «Start» para iniciar la detección de objetos en tiempo real.

Cómo funciona#

En segundo plano, la aplicación Streamlit utiliza el módulo solutions de Ultralytics para crear una interfaz interactiva. Al iniciar la inferencia, la aplicación:

  1. Captura fotogramas de tu cámara web, de un archivo de vídeo que hayas subido o de imágenes que hayas subido
  2. Procesa cada fotograma con el modelo YOLO26
  3. Aplica la detección de objetos con los umbrales de confianza e IoU que hayas especificado
  4. Muestra en tiempo real los fotogramas originales y los anotados
  5. Activa opcionalmente el seguimiento de objetos si lo seleccionas

La aplicación ofrece una interfaz sencilla y fácil de usar, con controles para ajustar los parámetros del modelo e iniciar o detener la inferencia en cualquier momento.

Conclusión#

Al seguir esta guía, has creado una aplicación de detección de objetos en tiempo real con Streamlit y Ultralytics YOLO26. La aplicación ejecuta YOLO26 sobre la entrada de tu cámara web, vídeo o imagen mediante una interfaz sencilla, y puedes detener la transmisión cuando quieras.

Para ampliar la aplicación, puedes explorar cómo añadir funciones, como grabar la transmisión de vídeo, guardar los fotogramas anotados o integrarla con otras bibliotecas de visión artificial.

Preguntas frecuentes#

  • Configurar una aplicación de detección de objetos en tiempo real con Streamlit y Ultralytics YOLO26 es sencillo. Primero, asegúrate de tener instalado el paquete Python de Ultralytics con:

    pip install ultralytics

    Después, puedes crear una aplicación básica de Streamlit para ejecutar inferencias en directo:

    Aplicación Streamlit
    from ultralytics import solutions
    
    inf = solutions.Inference(
        model="yolo26n.pt",  # puedes usar cualquier modelo compatible con Ultralytics, por ejemplo, YOLO26 o un modelo entrenado a medida
    )
    
    inf.inference()
    
    # Asegúrate de ejecutar el archivo con el comando `streamlit run path/to/file.py`

    Para obtener más información sobre la configuración práctica, consulta la sección Código de la aplicación Streamlit de la documentación.

  • Usar Ultralytics YOLO26 con Streamlit para la detección de objetos en tiempo real ofrece varias ventajas:

    • Detección en tiempo real: Consigue una detección de objetos en tiempo real y de alta precisión directamente desde las señales de cámaras web.
    • Interfaz fácil de usar: la interfaz intuitiva de Streamlit facilita el uso y el despliegue, sin necesidad de amplios conocimientos técnicos.
    • Uso eficiente de los recursos: los algoritmos optimizados de YOLO26 permiten procesar a gran velocidad con un consumo mínimo de recursos computacionales.

    Descubre más sobre estas ventajas en la sección Ventajas de la inferencia en directo.

  • Después de programar tu aplicación Streamlit con Ultralytics YOLO26, puedes implementarla ejecutando:

    streamlit run path/to/file.py

    Este comando abrirá la aplicación en tu navegador web predeterminado y te permitirá seleccionar modelos YOLO26, establecer umbrales de confianza e IoU e iniciar la detección de objetos en tiempo real con un simple clic.

  • La detección de objetos en tiempo real con Streamlit y Ultralytics YOLO26 puede aplicarse en distintos sectores:

    Para ver casos de uso y ejemplos más detallados, explora Ultralytics Solutions.

  • Ultralytics YOLO26 ofrece varias mejoras con respecto a modelos anteriores, como YOLOv5 y los detectores de la familia R-CNN:

    • Mayor velocidad y precisión: rendimiento mejorado para aplicaciones en tiempo real.
    • Facilidad de uso: interfaces e implementación más sencillas.
    • Uso eficiente de los recursos: optimizado para ofrecer más velocidad con requisitos computacionales mínimos.

Comentarios26

  1. j3dd4hGitHub

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

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

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

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

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

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

  4. VectorvinGitHub

    streamlit 这个解决方案可以使用tensorRT格式或者onnx格式吗?似乎程序被写死了

    1. Glenn JocherUltralytics(editado)

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

  5. sathyanarayanaRPGitHub

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

  6. Cheikh-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 JocherUltralytics(editado)

      @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-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 JocherUltralytics(editado)

      @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 JocherUltralytics(editado)

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

  7. ghostGitHub

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

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

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

  8. ghostGitHub

    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 <module> solutions.inference() ^^^^^^^^^^^^^^^^^^^ This is the error im getting while running this and i have installed necessary packages.

    1. Paula DerrengerUltralytics(editado)

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