Link to this sectionExtensión de Ultralytics para VS Code#
Watch: How to use Ultralytics Visual Studio Code Extension | Ready-to-Use Code Snippets | Ultralytics YOLO 🎉
Link to this sectionCaracterísticas y beneficios#
✅ ¿Eres científico de datos o ingeniero de machine learning y desarrollas aplicaciones de visión artificial con Ultralytics?
✅ ¿Te molesta tener que escribir los mismos bloques de código una y otra vez?
✅ ¿Siempre olvidas los argumentos o valores predeterminados para los métodos export, predict, train, track o val?
✅ ¿Quieres empezar con Ultralytics y ojalá tuvieras una forma más fácil de consultar o ejecutar ejemplos de código?
✅ ¿Quieres acelerar tu ciclo de desarrollo al trabajar con Ultralytics?
Si utilizas Visual Studio Code y has respondido "sí" a cualquiera de estas preguntas, ¡la extensión Ultralytics-snippets para VS Code está aquí para ayudarte! Sigue leyendo para saber más sobre la extensión, cómo instalarla y cómo utilizarla.
Run example code using Ultralytics YOLO in under 20 seconds! 🚀
Link to this sectionInspirado 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 acelerar su propio trabajo ⚡.
Link to this section¿Por qué VS Code?#
Visual Studio Code is extremely popular with developers worldwide and has ranked most popular by the Stack Overflow Developer Survey in 2021, 2022, 2023, and 2024. Due to VS Code's high level of customization, built-in features, broad compatibility, and extensibility, it's no surprise that so many developers are using it. Given the popularity in the wider developer community and within the Ultralytics Discord, Discourse, Reddit, and GitHub Communities, it made sense to build a VS Code extension to help streamline your workflow and boost your productivity.
¿Quieres contarnos qué utilizas para desarrollar código? ¡Visita nuestra encuesta comunitaria de Discourse y cuéntanoslo! Mientras estás allí, quizá quieras echar un vistazo a algunos de nuestros memes favoritos sobre visión artificial, machine learning, IA y desarrollo, ¡o incluso publicar el tuyo!
Link to this sectionInstalación de 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. Tras publicar la extensión, se descubrió que neovim puede hacerse compatible con las extensiones de VS Code. Para saber más, consulta la sección de instalación de neovim en el archivo Readme del repositorio Ultralytics-Snippets.
Link to this sectionInstalación en VS Code#
-
Navega al menú de extensiones en VS Code o utiliza el atajo Ctrl+Shift ⇑+x, y busca Ultralytics-snippets.
-
Haz clic en el botón Install.
Link to this sectionInstalación desde el marketplace de extensiones de VS Code#
-
Visita el VS Code Extension Marketplace y busca Ultralytics-snippets o dirígete 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 tu navegador inicie una sesión de VS Code.
-
Sigue las instrucciones para instalar la extensión.
Visual Studio Code Extension Marketplace page for Ultralytics-Snippets
Link to this sectionUso de la extensión Ultralytics-Snippets#
-
🧠 Finalización inteligente de código: Escribe código de forma más rápida y precisa con sugerencias avanzadas adaptadas a la API de Ultralytics.
-
⌛ Mayor velocidad de desarrollo: Ahorra tiempo eliminando tareas de programación repetitivas y aprovechando bloques de código predefinidos.
-
🔬 Mejora de la calidad del código: Escribe código más limpio, consistente y sin errores gracias a la finalización inteligente de código.
-
💎 Flujo de trabajo optimizado: Mantén el enfoque en la lógica principal de tu proyecto automatizando las tareas comunes.
Link to this sectionDescripción general#
La extensión solo funcionará cuando el modo de lenguaje esté configurado para Python 🐍. Esto es para evitar que los snippets se inserten al trabajar con cualquier otro tipo de archivo. Todos los snippets tienen un prefijo que comienza con ultra, y simplemente al escribir ultra en tu editor tras instalar la extensión, se mostrará una lista de posibles snippets a utilizar. También puedes abrir la paleta de comandos de VS Code utilizando Ctrl+Shift ⇑+p y ejecutando el comando Snippets: Insert Snippet.
Link to this sectionCampos de los snippets de código#
Muchos snippets tienen "campos" con valores de marcador de posición o nombres predeterminados. Por ejemplo, el resultado del método predict podría guardarse en una variable de Python llamada r, results, detections, preds o lo que prefiera el desarrollador; por eso los snippets incluyen "campos". Si usas Tab ⇥ en tu teclado después de insertar un snippet, el cursor se moverá rápidamente entre los campos. Una vez seleccionado un campo, al escribir un nuevo nombre de variable, se cambiará esa instancia, ¡pero también todas las demás instancias de esa variable en el código del snippet!
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.
Link to this sectionFinalizaciones de snippets de código#
No es obligatorio escribir el prefijo completo del snippet, ni siquiera empezar a escribir desde el principio del mismo. Mira el ejemplo en la imagen inferior.
Los snippets tienen nombres lo más descriptivos posible, pero eso significa que podría haber mucho que escribir y sería contraproducente si el objetivo es ir más rápido. Afortunadamente, VS Code permite a los usuarios escribir ultra.example-yolo-predict, example-yolo-predict, yolo-predict o incluso ex-yolo-p y aun así acceder a la opción de snippet deseada. Si el snippet que buscabas era en realidad ultra.example-yolo-predict-kwords, simplemente usa las flechas de tu teclado ↑ o ↓ para resaltar el snippet deseado y pulsa Enter ↵ o Tab ⇥ para insertar el bloque de código correcto.
Typing ex-yolo-p will still arrive at the correct snippet.
Link to this sectionCategorías de snippets#
Estas son las categorías de snippets actuales disponibles en la extensión Ultralytics-snippets. Se añadirán más en el futuro, así que asegúrate de comprobar si hay actualizaciones y de habilitar las actualizaciones automáticas para la extensión. También puedes solicitar la adición de snippets adicionales si consideras que falta alguno.
| Categoría | Prefijo inicial | Descripción |
|---|---|---|
| Ejemplos | ultra.examples | Código de ejemplo para ayudar a aprender o para empezar con Ultralytics. Los ejemplos son copias o similares al código de las páginas de documentación. |
| Kwargs | ultra.kwargs | Acelera el desarrollo añadiendo snippets para los métodos train, track, predict y val con todos los argumentos de palabras clave y valores predeterminados. |
| Imports | ultra.imports | Snippets para importar rápidamente objetos comunes de Ultralytics. |
| Models | ultra.yolo | Inserta bloques de código para inicializar varios modelos (yolo, sam, rtdetr, etc.), incluyendo opciones de configuración desplegables. |
| Resultados | ultra.result | Bloques de código para operaciones comunes al trabajar con resultados de inferencia. |
| Utilidades | ultra.util | Proporciona acceso rápido a utilidades comunes integradas en el paquete Ultralytics; aprende más sobre ellas en la página de utilidades simples. |
Link to this sectionAprendizaje con ejemplos#
Los snippets ultra.examples son muy útiles para cualquiera que busque aprender a empezar con los fundamentos de Ultralytics YOLO. Los snippets de ejemplo están pensados para ejecutarse una vez insertados (algunos tienen opciones desplegables). Un ejemplo de esto se muestra en la animación en la parte superior de esta página, donde tras insertar el snippet, todo el código se selecciona y ejecuta de forma interactiva utilizando Shift ⇑+Enter ↵.
Al igual que muestra la animación en la parte superior de esta página, puedes utilizar el snippet 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 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() # uncomment to view each result imageLink to this sectionAceleración del desarrollo#
El objetivo de los snippets, aparte de los ultra.examples, es hacer que el desarrollo sea más fácil y rápido al trabajar con Ultralytics. Un bloque de código común en muchos proyectos es iterar la lista de Results devuelta al utilizar el método predict del modelo. El snippet ultra.result-loop puede ayudar con esto.
Al utilizar ultra.result-loop se insertará el siguiente código predeterminado (incluyendo comentarios).
# reference https://docs.ultralytics.com/modes/predict/#working-with-results
for result in results:
result.boxes.data # torch.Tensor arraySin embargo, dado que Ultralytics admite numerosas tareas, al trabajar con resultados de inferencia hay otros atributos de Results a los que quizás quieras acceder, y es ahí donde los campos de los snippets resultarán potentes.
Once tabbed to the boxes field, a dropdown menu appears to allow selection of another attribute as required.
Link to this sectionArgumentos de palabras clave#
¡Hay más de 💯 argumentos de palabras clave para todas las distintas tareas y modos de Ultralytics! Es mucho para recordar y puede ser fácil olvidar si el argumento es save_frame o save_frames (por cierto, es definitivamente save_frames). ¡Aquí es donde pueden ayudar los snippets ultra.kwargs!
Para insertar el método predict, incluyendo todos los argumentos de inferencia, utiliza ultra.kwargs-predict, que insertará el siguiente código (incluyendo 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) visualize model features
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 snippet tiene campos para todos los argumentos de palabras clave, pero también para model y src en caso de que hayas utilizado una variable distinta en tu código. En cada línea que contiene un argumento de palabra clave, se incluye una breve descripción como referencia.
Link to this sectionTodos los snippets de código#
¡La mejor forma de averiguar qué snippets están disponibles es descargar e instalar la extensión y probarla! Si tienes curiosidad y quieres echar un vistazo a la lista de antemano, puedes visitar el repositorio o la página de la extensión en el marketplace de VS Code para ver las tablas de todos los snippets disponibles.
Link to this sectionConclusión#
La extensión Ultralytics-Snippets para VS Code está diseñada para capacitar a los científicos de datos e ingenieros de machine learning para construir aplicaciones de visión artificial utilizando Ultralytics YOLO de forma más eficiente. Proporcionando snippets de código predefinidos y ejemplos útiles, te ayudamos a concentrarte en lo más importante: crear soluciones innovadoras. Por favor, comparte tus comentarios visitando la página de la extensión en el marketplace de VS Code y dejando una reseña. ⭐
Link to this sectionFAQ#
Link to this section¿Cómo puedo solicitar un nuevo snippet?#
Se pueden solicitar nuevos snippets utilizando los Issues en el repositorio de Ultralytics-Snippets.
Link to this section¿Cuánto cuesta la extensión de Ultralytics?#
¡Es 100% gratuita!
Link to this section¿Por qué no veo una vista previa del snippet de código?#
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 una vista previa del snippet al escribir un prefijo de snippet de código, esta combinación debería restaurar la vista previa.
Link to this section¿Cómo deshabilito la recomendación de la extensión en Ultralytics?#
Si utilizas VS Code y has empezado a ver un mensaje que te pide instalar la extensión Ultralytics-snippets, y no quieres volver a ver el mensaje, hay dos formas de deshabilitarlo.
-
¡Instala Ultralytics-snippets y el mensaje ya no se mostrará 😆!
-
Puedes usar
yolo settings vscode_msg=Falsepara evitar que aparezca el mensaje sin tener que instalar la extensión. Puedes aprender más sobre la configuración de Ultralytics en la página de inicio rápido si no estás familiarizado con ella.
Link to this sectionTengo una idea para un nuevo snippet de código de Ultralytics, ¿cómo puedo hacer que se añada?#
¡Visita el repositorio de Ultralytics-snippets y abre un Issue o Pull Request!
Link to this section¿Cómo desinstalo la extensión Ultralytics-Snippets?#
Como cualquier otra extensión de VS Code, puedes desinstalarla navegando al menú de extensiones en VS Code. Encuentra la extensión Ultralytics-snippets en el menú, haz clic en el icono del engranaje (⚙) y después haz clic en "Uninstall" para eliminar la extensión.