Extensión de Ultralytics para VS Code#
Watch: How to use Ultralytics Visual Studio Code Extension | Ready-to-Use Code Snippets | Ultralytics YOLO 🎉
Funciones y ventajas#
✅ ¿Eres científico de datos o ingeniero de aprendizaje automático y estás creando aplicaciones de visión artificial con Ultralytics?
✅ ¿Detestas escribir repetidamente los mismos bloques de código?
✅ ¿Olvidas constantemente los argumentos o valores predeterminados de los métodos export, predict, train, track o val?
✅ ¿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 usas 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 usarla.
Run example code using Ultralytics YOLO in under 20 seconds! 🚀
Inspirada en 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 usan VS Code para acelerar su propio trabajo ⚡.
¿Por qué VS Code?#
Visual Studio Code es extremadamente popular entre los desarrolladores de todo el mundo y ha sido la opción más popular según la encuesta para desarrolladores de Stack Overflow en 2021, 2022, 2023 y 2024. Dado el alto nivel de personalización de VS Code, sus funciones integradas, su amplia compatibilidad y su capacidad de ampliación, no es de extrañar que tantos desarrolladores lo utilicen. Teniendo en cuenta su popularidad en la comunidad general de desarrolladores y en las comunidades de Discord, Discourse, Reddit y GitHub de Ultralytics, tenía sentido crear una extensión para VS Code que 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 ¡dínoslo! Ya que estás allí, quizá quieras echar un vistazo a algunos de nuestros memes favoritos sobre visión artificial, aprendizaje automático, AI y desarrollo, ¡o incluso publicar tu favorito!
Instalar la extensión#
Cualquier entorno de código que permita instalar extensiones de VS Code debería ser compatible con la extensión Ultralytics-snippets. Después de publicar la extensión, se descubrió 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 del repositorio Ultralytics-Snippets.
Instalar en VS Code#
-
Ve al menú Extensiones de VS Code o usa el atajo Ctrl+Shift ⇑+x y busca Ultralytics-snippets.
-
Haz clic en el botón Install.
Instalar desde Visual Studio Code Marketplace#
-
Visita VS Code Extension Marketplace y busca Ultralytics-snippets, o ve directamente a la página de la extensión en VS Code Marketplace.
-
Haz clic en el botón Install y permite que tu navegador inicie una sesión de VS Code.
-
Sigue las indicaciones para instalar la extensión.
Visual Studio Code Extension Marketplace page for Ultralytics-Snippets
Usar la extensión Ultralytics-Snippets#
-
🧠 Completado de código inteligente: Escribe código más rápido y con mayor precisión gracias a sugerencias avanzadas de completado 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 prediseñados.
-
🔬 Mejor calidad del código: Escribe código más limpio, coherente y sin errores gracias al completado de código 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 para Python 🐍. Esto evita que se inserten fragmentos al trabajar con cualquier otro tipo de archivo. Todos los fragmentos tienen un prefijo que empieza por ultra; después de instalar la extensión, solo tienes que escribir ultra en el editor para mostrar una lista de posibles fragmentos. También puedes abrir la paleta de comandos de VS Code usando Ctrl+Shift ⇑+p y ejecutar el comando Snippets: Insert Snippet.
Campos de los fragmentos de código#
Muchos fragmentos tienen «campos» con valores o nombres de marcador de posición predeterminados. Por ejemplo, la salida del método predict podría guardarse 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 moverá rápidamente entre los campos. Una vez seleccionado un campo, escribir un nuevo nombre de variable cambiará esa instancia y también todas las demás instancias de la variable en el código del fragmento.
After inserting snippet, renaming model as world_model updates all instances. Pressing Tab ⇥ moves to the next field, which opens a dropdown menu and allows for selection of a model scale, and moving to the next field provides another dropdown to choose either world or worldv2 model variant.
Completados de fragmentos de código#
No es necesario escribir el prefijo completo del fragmento, ni siquiera empezar a escribir desde el principio del fragmento. Consulta el ejemplo de la imagen siguiente.
Los fragmentos tienen nombres lo más descriptivos posible, pero esto significa que puede haber mucho que escribir, lo que sería contraproducente si el objetivo es avanzar 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í acceder a la opción de fragmento deseada. Si el fragmento que buscas era realmente ultra.example-yolo-predict-kwords, solo tienes que usar las flechas del teclado ↑ o ↓ para resaltar el fragmento deseado y pulsar Enter ↵ o Tab ⇥ para insertar el bloque de código correcto.
Typing ex-yolo-p will still arrive at the correct snippet.
Categorías de fragmentos#
Estas son las categorías de fragmentos disponibles actualmente para la extensión Ultralytics-snippets. En el futuro se añadirán más, así que asegúrate de buscar actualizaciones y activar las actualizaciones automáticas de la extensión. También puedes solicitar fragmentos adicionales si crees que falta alguno.
| Categoría | Prefijo inicial | Descripción |
|---|---|---|
| Ejemplos | ultra.examples | Código de ejemplo para aprender o empezar a usar Ultralytics. Los ejemplos son copias de código de las páginas de documentación o código similar. |
| Kwargs | ultra.kwargs | Acelera el desarrollo añadiendo fragmentos para los métodos train, track, predict y val, con todos los argumentos de palabra clave y valores predeterminados. |
| Imports | ultra.imports | Fragmentos para importar rápidamente objetos habituales de Ultralytics. |
| Modelos | ultra.yolo | Inserta bloques de código para inicializar varios modelos (yolo, sam, rtdetr, etc.), incluidas opciones de configuración desplegables. |
| Resultados | ultra.result | Bloques de código para operaciones habituales al trabajar con resultados de inferencia. |
| Utilidades | ultra.util | Proporciona acceso rápido a utilidades habituales integradas en el paquete Ultralytics. Obtén más información sobre ellas en la página de utilidades sencillas. |
Aprender con ejemplos#
Los fragmentos ultra.examples son muy útiles para cualquiera que quiera aprender a empezar a trabajar con los conceptos básicos de Ultralytics YOLO. Los fragmentos de ejemplo están pensados para ejecutarse una vez insertados (algunos también tienen opciones desplegables). Un ejemplo aparece en la animación de la parte superior de esta página: después de insertar el fragmento, se selecciona todo el código y se ejecuta de forma interactiva usando Shift ⇑+Enter ↵.
Al igual que muestra la animación de la parte superior de esta página, puedes usar el fragmento ultra.example-yolo-predict para insertar el siguiente ejemplo de código. Una vez insertado, la única opción configurable es la escala del modelo, que puede ser cualquiera de las siguientes: 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() # uncomment to view each result imageAcelerar el desarrollo#
El objetivo de los fragmentos distintos de ultra.examples es facilitar y acelerar el desarrollo al trabajar con Ultralytics. Un bloque de código habitual en muchos proyectos consiste en iterar la lista de Results devuelta al usar el método predict del modelo. El fragmento ultra.result-loop puede ayudarte con esto.
Al usar 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; aquí es donde los campos de los fragmentos resultan especialmente útiles.
Once tabbed to the boxes field, a dropdown menu appears to allow selection of another attribute as required.
Argumentos de palabras clave#
¡Hay más de 💯 argumentos de palabras clave para las distintas tareas y modalidades de Ultralytics! Son muchos para recordarlos todos, y es fácil olvidar si el argumento es save_frame o save_frames (por cierto, es definitivamente save_frames). ¡Aquí pueden ayudarte los fragmentos ultra.kwargs!
Para insertar el método predict, incluidos todos los argumentos de inferencia, usa ultra.kwargs-predict, que insertará el código siguiente (incluidos los comentarios).
model.predict(
source=src, # (str, optional) source directory for images or videos
imgsz=640, # (int | list) input images size as int or list[h,w] for predict
conf=0.25, # (float) minimum confidence threshold
iou=0.7, # (float) intersection over union (IoU) threshold for NMS
vid_stride=1, # (int) video frame-rate stride
stream_buffer=False, # (bool) buffer incoming frames in a queue (True) or only keep the most recent frame (False)
visualize=False, # (bool) save class activation heatmaps
augment=False, # (bool) apply image augmentation to prediction sources
agnostic_nms=False, # (bool) class-agnostic NMS
classes=None, # (int | list[int], optional) filter results by class, i.e. classes=0, or classes=[0,2,3]
retina_masks=False, # (bool) use high-resolution segmentation masks
embed=None, # (list[int], optional) return feature vectors/embeddings from given layers
show=False, # (bool) show predicted images and videos if environment allows
save=True, # (bool) save prediction results
save_frames=False, # (bool) save predicted individual video frames
save_txt=False, # (bool) save results as .txt file
save_conf=False, # (bool) save results with confidence scores
save_crop=False, # (bool) save cropped images with results
stream=False, # (bool) for processing long videos or numerous images with reduced memory usage by returning a generator
verbose=True, # (bool) enable/disable verbose inference logging in the terminal
)Este fragmento tiene campos para todos los argumentos de palabras clave, así como para model y src, por si has utilizado otra variable en tu código. En cada línea que contiene un argumento de palabra clave se incluye una breve descripción como referencia.
Todos los fragmentos de código#
La mejor forma de descubrir qué fragmentos están disponibles es descargar e instalar la extensión y probarla. Si tienes curiosidad y quieres consultar la lista de antemano, puedes visitar el repositorio o la página de la extensión en VS Code Marketplace para ver las tablas con todos los fragmentos disponibles.
Conclusión#
La extensión Ultralytics-Snippets para VS Code está diseñada para ayudar a científicos de datos e ingenieros de aprendizaje automático a crear aplicaciones de visión artificial con Ultralytics YOLO de forma más eficiente. Al proporcionar fragmentos de código prediseñados y ejemplos útiles, te ayudamos a centrarte en lo más importante: crear soluciones innovadoras. Comparte tus comentarios visitando la página de la extensión en VS Code Marketplace y dejando una reseña. ⭐
Preguntas frecuentes#
Puedes solicitar fragmentos nuevos mediante las incidencias del repositorio de Ultralytics-Snippets.
¡Es 100 % gratuita!
VS Code utiliza la combinación de teclas Ctrl+Space para mostrar u ocultar información en la ventana de vista previa. Si no ves una vista previa del fragmento al escribir su prefijo, esta combinación de teclas debería restaurarla.
Si usas VS Code y has empezado a ver un mensaje que te pide instalar la extensión Ultralytics-snippets, pero no quieres volver a verlo, hay dos formas de desactivar este mensaje.
-
¡Instala Ultralytics-snippets y el mensaje dejará de mostrarse 😆!
-
Puedes usar
yolo settings vscode_msg=Falsepara deshabilitar la visualización del mensaje sin necesidad de instalar la extensión. Puedes obtener más información en la página de Ultralytics Settings si no estás familiarizado.
-
¡Visita el repositorio de Ultralytics-snippets y abre una incidencia o una solicitud de incorporación de cambios!
Al igual que cualquier otra extensión de VS Code, puedes desinstalarla yendo al menú Extensiones de VS Code. Busca la extensión Ultralytics-snippets en el menú, haz clic en el icono de engranaje (⚙) y, a continuación, haz clic en «Uninstall» para eliminarla.