Extensión de Ultralytics para VS Code#
Ver: Cómo usar la extensión de Ultralytics para Visual Studio Code | Fragmentos de código listos para usar | Ultralytics YOLO 🎉
Funciones y ventajas#
✅ ¿Eres especialista en ciencia de datos o ingeniería de aprendizaje automático y desarrollas aplicaciones de visión artificial con Ultralytics?
✅ ¿Te molesta escribir repetidamente los mismos bloques de código?
✅ ¿Olvidas a menudo los argumentos o los valores predeterminados de los métodos train, val, predict, export o track?
✅ ¿Quieres empezar a usar Ultralytics y te gustaría tener una forma más sencilla de consultar o ejecutar ejemplos de código?
✅ ¿Quieres acelerar tu ciclo de desarrollo cuando trabajas con Ultralytics?
Si utilizas Visual Studio Code y has respondido «sí» a alguna de las preguntas anteriores, ¡la extensión Ultralytics-snippets para VS Code está aquí para ayudarte! Sigue leyendo para obtener más información sobre la extensión, cómo instalarla y cómo utilizarla.
¡Ejecuta código de ejemplo con Ultralytics YOLO en menos de 20 segundos! 🚀
Inspirada por la comunidad de Ultralytics#
La inspiración para crear esta extensión surgió de la comunidad de Ultralytics. Las preguntas de la comunidad sobre temas y ejemplos similares impulsaron el desarrollo de este proyecto. Además, muchos miembros del equipo de Ultralytics utilizan VS Code para agilizar su propio trabajo ⚡.
¿Por qué VS Code?#
Visual Studio Code es muy popular entre los desarrolladores de todo el mundo y ha ocupado el primer puesto en la encuesta para desarrolladores de Stack Overflow en 2021, 2022, 2023 y 2024. Gracias a su alto nivel de personalización, sus funciones integradas, su amplia compatibilidad y su capacidad de ampliación, no es de extrañar que tantos desarrolladores lo utilicen. Dada su popularidad tanto en la comunidad de desarrolladores en general como en las comunidades de Ultralytics en Discord, Discourse, Reddit y GitHub, tenía sentido crear una extensión para VS Code que te ayudara a agilizar tu flujo de trabajo y aumentar tu productividad.
¿Quieres contarnos qué utilizas para desarrollar código? Visita nuestra encuesta de la comunidad en Discourse y cuéntanoslo. Ya que estás allí, quizá quieras echar un vistazo a algunos de nuestros memes favoritos sobre visión artificial, aprendizaje automático, IA y desarrollo, ¡o incluso publicar tu favorito!
Instalar la extensión#
Cualquier entorno de programación que permita instalar extensiones de VS Code debería ser compatible con Ultralytics-snippets. Tras publicar la extensión, descubrimos que neovim puede hacerse compatible con las extensiones de VS Code. Para obtener más información, consulta la sección de instalación de neovim del Readme en el repositorio de Ultralytics-Snippets.
Instalar en VS Code#
-
Ve al menú Extensiones de VS Code o utiliza el atajo Ctrl+Shift ⇑+x, y busca Ultralytics-snippets.
-
Haz clic en el botón Install.
Instalar desde el Marketplace de extensiones de VS Code#
-
Visita el Marketplace de extensiones de VS Code y busca Ultralytics-snippets, o ve directamente a la página de la extensión en el Marketplace de VS Code.
-
Haz clic en el botón Install y permite que el navegador inicie una sesión de VS Code.
-
Sigue las indicaciones para instalar la extensión.
Página de la extensión Ultralytics-Snippets en el Marketplace de Visual Studio CodeUltralytics-Snippets
Uso de la extensión Ultralytics-Snippets#
-
🧠 Autocompletado inteligente de código: Escribe código con mayor rapidez y precisión gracias a las sugerencias avanzadas de autocompletado adaptadas a la API de Ultralytics.
-
⌛ Mayor velocidad de desarrollo: Ahorra tiempo eliminando tareas de programación repetitivas y aprovechando fragmentos de bloques de código predefinidos.
-
🔬 Mejora de la calidad del código: Escribe código más limpio, coherente y sin errores con el autocompletado inteligente.
-
💎 Flujo de trabajo optimizado: Mantén la concentración en la lógica principal de tu proyecto automatizando las tareas habituales.
Descripción general#
La extensión solo funcionará cuando el modo de lenguaje esté configurado como Python 🐍. Así se evita insertar fragmentos mientras trabajas con cualquier otro tipo de archivo. Todos los fragmentos tienen un prefijo que empieza por ultra; basta con escribir ultra en el editor después de instalar la extensión para que aparezca una lista de fragmentos disponibles. También puedes abrir la paleta de comandos de VS Code con Ctrl+Shift ⇑+p y ejecutar el comando Snippets: Insert Snippet.
Campos de los fragmentos de código#
Muchos fragmentos tienen «campos» con nombres o valores predeterminados de marcador de posición. Por ejemplo, la salida del método predict se podría guardar en una variable de Python llamada r, results, detections, preds o cualquier otro nombre que elija el desarrollador; por eso los fragmentos incluyen «campos». Al pulsar Tab ⇥ en el teclado después de insertar un fragmento, el cursor se desplazará rápidamente entre los campos. Una vez seleccionado un campo, al escribir un nuevo nombre de variable cambiará esa instancia y también todas las demás apariciones de esa variable en el código del fragmento.
Después de insertar el fragmento, al cambiar el nombre de model a world_model se actualizan todas las instancias. Al pulsar Tab ⇥, pasarás al siguiente campo; se abrirá un menú desplegable para seleccionar la escala del modelo. Al pasar al campo siguiente, se abrirá otro menú desplegable para elegir la variante del modelo world o worldv2.
Autocompletado de fragmentos de código#
No hace falta escribir el prefijo completo del fragmento, ni siquiera empezar a escribir desde el principio. Mira el ejemplo de la imagen siguiente.
Los fragmentos tienen nombres lo más descriptivos posible, pero eso puede obligarte a escribir mucho, lo que resultaría contraproducente si lo que buscas es ir más rápido. Por suerte, VS Code permite escribir ultra.example-yolo-predict, example-yolo-predict, yolo-predict o incluso ex-yolo-p y aun así encontrar el fragmento deseado. Si el fragmento que buscas es realmente ultra.example-yolo-predict-kwords, solo tienes que utilizar las teclas de flecha ↑ o ↓ para resaltar el fragmento deseado y pulsar Enter ↵ o Tab ⇥ para insertar el bloque de código correcto.
Si escribes ex-yolo-p, seguirás obteniendo el fragmento correcto.
Categorías de fragmentos#
Estas son las categorías de fragmentos disponibles actualmente en la extensión Ultralytics-snippets. En el futuro se añadirán más, así que no olvides buscar actualizaciones y activar las actualizaciones automáticas de la extensión. Si crees que falta alguno, también puedes solicitar que se añadan más fragmentos.
| Categoría | Prefijo inicial | Descripción |
|---|---|---|
| Ejemplos | ultra.examples | Ejemplos de código para aprender o empezar a utilizar Ultralytics. Los ejemplos son copias de código de las páginas de documentación o versiones similares. |
| Argumentos con nombre | ultra.kwargs | Acelera el desarrollo añadiendo fragmentos para los métodos train, val, predict y track, con todos sus argumentos con nombre y valores predeterminados. |
| Importaciones | ultra.imports | Fragmentos para importar rápidamente objetos habituales de Ultralytics. |
| Modelos | ultra.yolo | Inserta bloques de código para inicializar distintos modelos (yolo, sam, rtdetr, etc.), incluidas opciones de configuración en menús desplegables. |
| Resultados | ultra.result | Bloques de código para operaciones habituales al trabajar con resultados de inferencia. |
| Utilidades | ultra.util | Ofrece acceso rápido a utilidades habituales integradas en el paquete Ultralytics. Obtén más información en la página de utilidades sencillas. |
Aprender con ejemplos#
Los fragmentos ultra.examples son muy útiles para quienes quieran aprender a empezar con los fundamentos del uso de Ultralytics YOLO. Los fragmentos de ejemplo están pensados para ejecutarse nada más insertarlos (algunos también tienen opciones desplegables). Un ejemplo aparece en la parte superior de esta página: al insertar el fragmento, se selecciona todo el código y se ejecuta de forma interactiva con Shift ⇑+Enter ↵.
Como muestra la animación de la parte superior de esta página, puedes utilizar el fragmento ultra.example-yolo-predict para insertar el siguiente ejemplo de código. Una vez insertado, la única opción que puedes configurar es la escala del modelo, que puede ser cualquiera de estas: n, s, m, l o x.
from ultralytics import ASSETS, YOLO
model = YOLO("yolo26n.pt", task="detect")
results = model(source=ASSETS / "bus.jpg")
for result in results:
print(result.boxes.data)
# result.show() # descomenta para ver cada imagen de resultadoAcelerar el desarrollo#
El objetivo de los fragmentos distintos de ultra.examples es facilitar y agilizar el desarrollo con Ultralytics. Un bloque de código habitual en muchos proyectos consiste en recorrer la lista de Results que devuelve el método predict del modelo. El fragmento ultra.result-loop te puede ayudar con esto.
Al utilizar ultra.result-loop, se insertará el siguiente código predeterminado (incluidos los comentarios).
# reference https://docs.ultralytics.com/modes/predict#working-with-results
for result in results:
result.boxes.data # torch.Tensor arraySin embargo, como Ultralytics admite numerosas tareas, al trabajar con resultados de inferencia puede que quieras acceder a otros atributos Results; ahí es donde los campos de fragmento resultan muy útiles.
Una vez que llegues con el tabulador al campo boxes, aparecerá un menú desplegable que te permitirá seleccionar otro atributo según sea necesario.
Argumentos con nombre#
¡Hay más de 💯 argumentos con nombre para las distintas tareas y modalidades de Ultralytics! Son muchos para recordar, y es fácil olvidar si el argumento es save_frame o save_frames (por cierto, sin duda es save_frames). ¡Aquí es donde los fragmentos ultra.kwargs pueden ayudarte!
Para insertar el método predict con todos los argumentos de inferencia, utiliza ultra.kwargs-predict; se insertará el siguiente código (incluidos los comentarios).
model.predict(
source=src, # (str, optional) directorio de origen de las imágenes o los vídeos
imgsz=640, # (int | list) tamaño de las imágenes de entrada como int o list[h,w] para predict
conf=0.25, # (float) umbral mínimo de confianza
iou=0.7, # (float) umbral de intersección sobre unión (IoU) para NMS
vid_stride=1, # (int) paso de la frecuencia de fotogramas del vídeo
stream_buffer=False, # (bool) almacenar los fotogramas entrantes en una cola (True) o conservar solo el fotograma más reciente (False)
visualize=False, # (bool) guardar mapas de activación de clases
augment=False, # (bool) aplicar aumentación de imagen a las fuentes de predicción
agnostic_nms=False, # (bool) NMS independiente de la clase
classes=None, # (int | list[int], optional) filtrar resultados por clase; p. ej., classes=0 o classes=[0,2,3]
retina_masks=False, # (bool) utilizar máscaras de segmentación de alta resolución
embed=None, # (list[int], optional) devolver vectores de características/incrustaciones de las capas indicadas
show=False, # (bool) mostrar imágenes y vídeos con predicciones si el entorno lo permite
save=True, # (bool) guardar los resultados de las predicciones
save_frames=False, # (bool) guardar los fotogramas de vídeo individuales con predicciones
save_txt=False, # (bool) guardar los resultados como archivo .txt
save_conf=False, # (bool) guardar los resultados con puntuaciones de confianza
save_crop=False, # (bool) guardar las imágenes recortadas con los resultados
stream=False, # (bool) procesar vídeos largos o numerosas imágenes con menos uso de memoria devolviendo un generador
verbose=True, # (bool) activar/desactivar el registro detallado de inferencia en el terminal
)Este fragmento incluye campos para todos los argumentos con nombre, además de model y src, por si has utilizado otra variable en tu código. Cada línea que contiene un argumento con nombre incluye una breve descripción a modo de referencia.
Todos los fragmentos de código#
La mejor forma de averiguar qué fragmentos hay disponibles es descargar e instalar la extensión y probarla. Si tienes curiosidad y quieres echar un vistazo a la lista antes, puedes visitar el repositorio o la página de la extensión en el Marketplace de VS Code para consultar las tablas con todos los fragmentos disponibles.
Conclusión#
La extensión Ultralytics-Snippets para VS Code está diseñada para ayudar a especialistas en ciencia de datos e ingeniería de aprendizaje automático a desarrollar aplicaciones de visión artificial con Ultralytics YOLO de forma más eficiente. Al ofrecer fragmentos de código predefinidos y ejemplos útiles, te ayudamos a centrarte en lo que más importa: crear soluciones innovadoras. Comparte tus comentarios visitando la página de la extensión en el Marketplace de VS Code y dejando una reseña. ⭐
Preguntas frecuentes#
Puedes solicitar fragmentos nuevos mediante las incidencias del repositorio de Ultralytics-Snippets.
¡Es 100 % gratis!
VS Code utiliza la combinación de teclas Ctrl+Space para mostrar más o menos información en la ventana de vista previa. Si no ves la vista previa de un fragmento al escribir su prefijo, esta combinación de teclas debería volver a mostrarla.
Si utilizas VS Code y ha empezado a aparecerte un mensaje que te pide instalar la extensión Ultralytics-snippets, pero no quieres volver a verlo, tienes dos formas de desactivarlo.
-
¡Instala Ultralytics-snippets y el mensaje dejará de aparecer 😆!
-
Puedes utilizar
yolo settings vscode_msg=Falsepara evitar que aparezca el mensaje sin tener que instalar la extensión. Si no conoces la página Configuración de Ultralytics, puedes obtener más información en ella.
-
¡Visita el repositorio de Ultralytics-snippets y abre una incidencia o una solicitud de cambios!
Como cualquier otra extensión de VS Code, puedes desinstalarla desde el menú Extensiones de VS Code. Busca la extensión Ultralytics-snippets en el menú, haz clic en el icono del engranaje (⚙) y, a continuación, haz clic en «Desinstalar» para eliminarla.