Ir al contenido

Ultralytics Extensión VS Code


Snippet Predicción Previa
¡Ejecute código de ejemplo usando Ultralytics YOLO en menos de 20 segundos! 🚀

Características y ventajas

✅ ¿Eres un científico de datos o un ingeniero de aprendizaje automático que crea aplicaciones de visión por ordenador con Ultralytics?

✅ ¿Desprecias escribir repetidamente los mismos bloques de código?

✅ ¿Olvidas siempre los argumentos o valores por defecto de los métodos export, predict, train, track o val?

✅ ¿Quieres iniciarte en 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 utiliza Visual Studio Code y ha respondido "sí" a alguna de las preguntas anteriores, la extensión Ultralytics-snippets para VS Code está aquí para ayudarle. Siga leyendo para obtener más información sobre la extensión, cómo instalarla y cómo utilizarla.

Inspirado por la Comunidad Ultralytics

La inspiración para crear esta extensión vino de la Comunidad Ultralytics . Las preguntas de la Comunidad sobre temas y ejemplos similares impulsaron el desarrollo de este proyecto. Además, como parte del equipo de Ultralytics también utiliza VS Code, también lo usamos como herramienta para acelerar nuestro trabajo ⚡.

¿Por qué VS Code?

Visual Studio Code es extremadamente popular entre los desarrolladores de todo el mundo y ha sido clasificado como el más popular por la encuesta Stack Overflow Developer Survey en 2021, 2022, 2023 y 2024. Debido al alto nivel de personalización, las funciones integradas, la amplia compatibilidad y la extensibilidad de VS Code, no es de extrañar que tantos desarrolladores lo utilicen. Dada la popularidad en la comunidad de desarrolladores en general y dentro de las comunidades Ultralytics Discord, Discourse, Reddit y GitHub, tenía sentido crear una extensión de VS Code para ayudar a agilizar su flujo de trabajo y aumentar su productividad.

¿Quieres decirnos qué utilizas para desarrollar código? Visita nuestra encuesta de la comunidad Discourse y dínoslo. Mientras estás allí, echa un vistazo a algunos de nuestros memes favoritos sobre visión por ordenador, aprendizaje automático, IA y desarrollo, ¡o incluso publica tu favorito!

Instalación de la extensión

Nota

Cualquier entorno de código que permita instalar extensiones de VS Code debe 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 obtener más información, consulte la página neovim sección de instalación del Léame en el Ultralytics-Repositorio de recortes.

Instalación en VS Code

  1. Vaya al menú Extensiones de VS Code o utilice la combinación de teclas Ctrl+Shift⇑+x y busque Ultralytics-snippets.

  2. Pulse el botón Instalar.


Menú de ampliación de VS Code

Instalación desde VS Code Extension Marketplace

  1. Visite el mercado de extensiones de VS Code y busque Ultralytics-snippets o vaya directamente a la página de la extensión en el mercado de VS Code.

  2. Haga clic en el botón Instalar y permita que su navegador inicie una sesión de VS Code.

  3. Siga las instrucciones para instalar la extensión.


Instalación de la extensión VS Code Marketplace
Página de Visual Studio Code Extension Marketplace para Ultralytics-Retazos

Uso de la extensión Ultralytics-Snippets

  • 🧠 Completado de código inteligente: Escribe código de forma más rápida y precisa con sugerencias avanzadas de completado de código adaptadas a la API Ultralytics .

  • Mayor velocidad de desarrollo: Ahorre tiempo eliminando tareas de codificación repetitivas y aprovechando los fragmentos de bloques de código preconstruidos.

  • 🔬 Mejora de la calidad del código: Escriba código más limpio, coherente y sin errores con la finalización inteligente de código.

  • Flujo de trabajo optimizado: Manténgase centrado en la lógica central de su proyecto mediante la automatización de tareas comunes.

Visión general

La extensión sólo funcionará cuando el Modo de idioma está configurado para Python 🐍. Esto es para evitar que se inserten fragmentos cuando se trabaja en cualquier otro tipo de archivo. Todos los fragmentos tienen un prefijo que empieza por ultray simplemente escribiendo ultra en su editor después de instalar la extensión, mostrará una lista de posibles fragmentos a utilizar. También puede abrir VS Code Paleta de comandos utilizando Ctrl+Turno ⇑+p y ejecutando el comando Snippets: Insert Snippet.

Campos del fragmento de código

Muchos fragmentos tienen "campos" con valores o nombres predeterminados. Por ejemplo, la salida de predecir podría guardarse en una variable de Python llamada r, results, detections, preds o cualquier otra cosa que el desarrollador elija, razón por la cual los fragmentos incluyen "campos". Utilización de Pestaña ⇥ en el teclado después de insertar un fragmento, el cursor se moverá rápidamente entre los campos. Una vez seleccionado un campo, si escribe un nuevo nombre de variable, cambiará esa instancia, ¡pero también todas las demás instancias del código del fragmento para esa variable!


Campo y opciones de actualización múltiple
Después de insertar el fragmento, cambiar el nombre model como world_model actualiza todas las instancias. Pulsando Pestaña ⇥ pasa al campo siguiente, que abre un menú desplegable y permite seleccionar una escala de modelo, y al pasar al campo siguiente se obtiene otro menú desplegable para elegir entre world o worldv2 variante de modelo.

Cumplimentación de fragmentos de código

Atajos aún más cortos

No es necesario escribir el prefijo completo del fragmento, ni siquiera empezar a escribir desde el principio del fragmento. Véase el ejemplo de la imagen siguiente.

Los fragmentos se nombran de la forma más descriptiva posible, pero esto significa que podría haber mucho que teclear y eso sería contraproducente si el objetivo es mover más rápido. Por suerte, VS Code permite a los usuarios escribir ultra.example-yolo-predict, example-yolo-predict, yolo-predicto incluso ex-yolo-p y aún así llegar a la opción de fragmento deseada. Si el fragmento deseado era en realidad ultra.example-yolo-predict-kwordsy luego con las flechas del teclado o para resaltar el fragmento deseado y pulsando Entrar ↵ o Pestaña ⇥ insertará el bloque de código correcto.


Ejemplo de fragmento incompleto
Mecanografía ex-yolo-p se todavía llegar al 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 asegúrese de comprobar si hay actualizaciones y de activar las actualizaciones automáticas de la extensión. También puede solicitar que se añadan más fragmentos si cree que falta alguno.

Categoría Prefijo inicial Descripción
Ejemplos ultra.examples Código de ejemplo para ayudar a aprender o para iniciarse en Ultralytics. Los ejemplos son copias o similares de código de páginas de documentación.
Kwargs ultra.kwargs Acelere el desarrollo añadiendo fragmentos para los métodos train, track, predict y val con todos los argumentos de palabras clave y valores por defecto.
Importaciones ultra.imports Fragmentos para importar rápidamente objetos comunes de Ultralytics .
Modelos ultra.yolo Insertar bloques de código para inicializar varios modelos (yolo, sam, rtdetretc.), incluidas las opciones de configuración desplegables.
Resultados ultra.result Bloques de código para operaciones comunes cuando se trabaja con resultados de inferencia.
Servicios ultra.util Proporciona un acceso rápido a las utilidades más comunes integradas en el paquete Ultralytics . Obtenga más información sobre ellas en la página Utilidades sencillas.

Aprender con ejemplos

En ultra.examples son útiles para cualquiera que quiera aprender a trabajar con Ultralytics YOLO . Los fragmentos de ejemplo están pensados para ejecutarse una vez insertados (algunos también tienen opciones desplegables). Un ejemplo de ello se muestra en la animación de la página top de esta página, donde después de insertar el fragmento, se selecciona todo el código y se ejecuta interactivamente utilizando Turno ⇑+Entrar ↵.

Ejemplo

Al igual que los espectáculos de animación de la top de esta página, puede utilizar el fragmento ultra.example-yolo-predict para insertar el siguiente código de ejemplo. Una vez insertado, la única opción configurable es para la escala del modelo que puede ser cualquiera de: n, s, m, lo x.

from ultralytics import ASSETS, YOLO

model = YOLO("yolo11n.pt", task="detect")
results = model(source=ASSETS / "bus.jpg")

for result in results:
    print(result.boxes.data)
    # result.show()  # uncomment to view each result image

Acelerar el desarrollo

El objetivo de los fragmentos distintos del ultra.examples sirven para facilitar y agilizar el desarrollo cuando se trabaja con Ultralytics. Un bloque de código común que se utiliza en muchos proyectos, es iterar la lista de Results devuelto por utilizar el modelo predecir método. En ultra.result-loop puede ayudar con esto.

Ejemplo

Utilización de la ultra.result-loop insertará el siguiente código por defecto (incluidos los comentarios).

# reference https://docs.ultralytics.com/modes/predict/#working-with-results

for result in results:
    result.boxes.data  # torch.Tensor array

Sin embargo, dado que Ultralytics admite numerosas tareascuando trabajar con los resultados de la inferencia hay otros Results a los que puede que desee acceder, que es donde el campos de recorte será poderoso.


Opciones del bucle de resultados
Una vez en la pestaña boxes aparece un menú desplegable que permite seleccionar otro atributo según sea necesario.

Palabras clave Argumentos

Hay más de 💯 argumentos de palabras clave para todos los diversos Ultralytics tareas y modos¡! Es mucho que recordar y puede ser fácil olvidarlo si el argumento es save_frame o save_frames (es definitivamente save_frames por cierto). Aquí es donde el ultra.kwargs los fragmentos pueden ayudar

Ejemplo

Para insertar el predecir incluyendo todos los argumentos de inferenciaUtilice ultra.kwargs-predictque insertará el siguiente código (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[w,h] 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 fragmento tiene campos para todos los argumentos de palabras clave, pero también para model y src en caso de que haya utilizado una variable diferente en su 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 manera de saber qué fragmentos 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 fragmentos disponibles.

Conclusión

La extensión Ultralytics-Snippets para VS Code está diseñada para que los científicos de datos y los ingenieros de aprendizaje automático puedan crear aplicaciones de visión por ordenador utilizando Ultralytics YOLO de forma más eficiente. Al proporcionar fragmentos de código predefinidos y ejemplos útiles, le ayudamos a centrarse 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. ⭐

PREGUNTAS FRECUENTES

¿Cómo solicito un nuevo fragmento?

Puede solicitar nuevos fragmentos de código a través de la sección Issues del repositorio Ultralytics-Snippets.

¿Cuánto cuesta la ampliación de Ultralytics?

Es 100% gratis.

¿Por qué no veo una vista previa del fragmento de código?

VS Code utiliza la combinación de teclas Ctrl+Espacio para mostrar más/menos información en la ventana de vista previa. Si no ve una vista previa del fragmento cuando escribe un prefijo de fragmento de código, el uso de esta combinación de teclas debería restaurar la vista previa.

¿Cómo desactivo la recomendación de extensiones en Ultralytics?

Si utiliza VS Code y ha empezado a ver un mensaje que le pide que instale la extensión Ultralytics-snippets, y no quiere volver a ver el mensaje, hay dos formas de desactivar este mensaje.

  1. ¡Instala Ultralytics-snippets y ya no aparecerá el mensaje 😆!

  2. Puede utilizar yolo settings vscode_msg False para desactivar la visualización del mensaje sin tener que instalar la extensión. Puede obtener más información sobre la extensión Ultralytics Ajustes en el inicio rápido si no está familiarizado.

Tengo una idea para un nuevo fragmento de código Ultralytics , ¿cómo puedo conseguir que se añada?

Visite el repositorio Ultralytics-snippets y abra una incidencia o Pull Request.

¿Cómo desinstalo la extensión Ultralytics-Snippets?

Como cualquier otra extensión de VS Code, puede desinstalarla accediendo al menú Extensiones de VS Code. Busque la extensión Ultralytics-snippets en el menú y haga clic en el icono de engranaje (⚙) y, a continuación, en "Desinstalar" para eliminar la extensión.


Menú de ampliación de VS Code

Creado hace 3 meses ✏️ Actualizado hace 2 meses

Comentarios