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 🚀
| Acuicultura | Ganadería |
|---|---|
![]() | ![]() |
| Detección de peces con Ultralytics YOLO26 | Detecció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#
Antes de empezar a crear la aplicación, asegúrate de tener instalado el paquete Python de Ultralytics.
pip install ultralyticsyolo solutions inference
yolo solutions inference model="path/to/model.pt"
yolo solutions help # list the available solution commands and argumentsEstos 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:
- Captura fotogramas de tu cámara web, de un archivo de vídeo que hayas subido o de imágenes que hayas subido
- Procesa cada fotograma con el modelo YOLO26
- Aplica la detección de objetos con los umbrales de confianza e IoU que hayas especificado
- Muestra en tiempo real los fotogramas originales y los anotados
- 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 ultralyticsDespués, puedes crear una aplicación básica de Streamlit para ejecutar inferencias en directo:
Aplicación Streamlitfrom 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.pyEste 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:
- Seguridad: supervisión en tiempo real para detectar accesos no autorizados y sistemas de alarma de seguridad.
- Comercio minorista: recuento de clientes, gestión de estanterías y seguimiento del inventario.
- Fauna y agricultura: supervisión de animales y del estado de los cultivos para iniciativas de conservación.
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
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!1Glenn 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(editado) 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(editado) @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(editado) @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(editado) @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(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.
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 <module> solutions.inference() ^^^^^^^^^^^^^^^^^^^ This is the error im getting while running this and i have installed necessary packages.
Paula DerrengerUltralytics(editado) @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.



