Ultralytics YOLO27:
Get Started

Cómo contribuir 🚀#

¡Te damos la bienvenida! Nos alegra mucho que te plantees contribuir a los proyectos de código abierto de Ultralytics. Tu participación ayuda a mejorar la calidad de nuestros repositorios y beneficia a toda la comunidad de visión artificial.

Directrices completas

Para consultar directrices de contribución completas, echa un vistazo también a la Guía oficial de contribución de Ultralytics en nuestra documentación principal.

Colaboradores de código abierto de Ultralytics

Ver: Cómo contribuir a Ultralytics#

Guía de inicio rápido 🎯#

¿Quieres contribuir? Sigue estos pasos:

  1. Lee nuestro Código de conducta - Respeto, amabilidad y profesionalidad
  2. Haz un fork del repositorio al que quieras contribuir
  3. Crea una rama para la funcionalidad con un nombre descriptivo
  4. Haz los cambios siguiendo las normas de programación
  5. Escribe pruebas para la nueva funcionalidad
  6. Envía una solicitud de cambios con una descripción clara
  7. Firma el CLA dejando un comentario en tu PR
  8. Responde a los comentarios de quienes revisen el código

Consulta el Flujo de trabajo de desarrollo para ver el proceso detallado de PR.

Directrices de contribución 📋#

Código de conducta 🤝#

Todos los colaboradores deben cumplir nuestro Código de conducta, que se basa en el Pacto del colaborador. Así se garantiza un entorno acogedor e inclusivo para todo el mundo. El respeto, la amabilidad y la profesionalidad son los pilares de nuestra comunidad.

Acuerdo de licencia de colaborador (CLA) 📝#

Antes de poder integrar tu PR, debes firmar nuestro CLA. Este acuerdo legal garantiza que las contribuciones se licencien correctamente bajo AGPL-3.0, lo que os protege tanto a ti como al proyecto.

Después de enviar tu PR, el bot del CLA te guiará. Para firmarlo, comenta:

I have read the CLA Document and I sign the CLA

El CLA cubre:

  • Licencias de derechos de autor y patentes para tus contribuciones
  • Derechos de Ultralytics para usar y distribuir tu trabajo
  • Declaraciones de que posees los derechos de tus contribuciones
  • Exención de garantías

Consulta el documento completo del CLA para ver todas las condiciones.

Buenas prácticas ✨#

Al contribuir código:

  • Evita las duplicaciones: Reutiliza el código existente siempre que sea posible
  • Haz cambios más pequeños: Prioriza modificaciones concretas frente a cambios a gran escala
  • Simplifica: Busca oportunidades para simplificar
  • Ten en cuenta la compatibilidad: Evita romper el código existente
  • Usa un formato coherente: Sigue Ruff Formatter
  • Añade pruebas: Incluye pruebas para las nuevas funcionalidades
  • Actualiza la documentación: Mantén al día la documentación

Normas de programación 📐#

  • Docstrings: Usa docstrings al estilo de Google con los tipos entre paréntesis
  • Longitud de línea: Máximo de 120 caracteres
  • Importaciones: Usa pathlib en lugar de os
  • Pruebas: Todas las PR deben superar las pruebas de CI
  • Anotaciones de tipos: Úsalas cuando aporten valor

Consulta el Flujo de trabajo de desarrollo para ver todas las normas de programación.

Formas de contribuir 🌟#

Contribuciones de código 💻#

  • Nuevas funcionalidades y mejoras para los modelos YOLO
  • Corrección de errores y resolución de problemas
  • Optimizaciones del rendimiento del entrenamiento y la inferencia
  • Compatibilidad con formatos de exportación para distintas opciones de despliegue
  • Mejoras de compatibilidad con plataformas

Documentación 📚#

Pruebas 🧪#

  • Escribe pruebas unitarias para las nuevas funcionalidades
  • Prueba las nuevas funcionalidades con distintos modelos y tareas
  • Informa de las carencias en la cobertura de pruebas
  • Evaluación comparativa del rendimiento en distintas plataformas

Ayuda a la comunidad 💬#

  • Responde a preguntas en GitHub Discussions
  • Ayuda a los usuarios en Discord
  • Revisa las solicitudes de cambios
  • Clasifica y prioriza las incidencias

Informar de errores 🐞#

Ayúdanos a mejorar comunicando errores mediante GitHub Issues:

Requisitos para informar de errores#

  1. Comprueba las incidencias existentes para evitar duplicados
  2. Crea un ejemplo mínimo reproducible (MRE) - Código breve y autónomo que reproduce el problema
  3. Describe el entorno: sistema operativo, versión de Python, versiones de las bibliotecas y hardware (CPU/GPU)
  4. Explica el comportamiento esperado y el real con los mensajes de error y las trazas de ejecución

Qué caracteriza a un buen MRE#

Un ejemplo mínimo reproducible debe:

  • Aislar el problema: Elimina el código innecesario
  • Usar modelos y conjuntos de datos públicos: por ejemplo, yolo26n.pt y coco8.yaml
  • Incluir las dependencias: Enuméralas con yolo checks o pip list
  • Ofrecer una descripción clara: comportamiento esperado y comportamiento real
  • Dar el formato adecuado: Usa bloques de código con tres acentos graves
  • Permitir su prueba: Otras personas pueden ejecutarlo sin modificaciones

Consulta la guía completa de MRE para obtener instrucciones detalladas.

Revisión de solicitudes de cambios 👀#

Revisar PR es una contribución valiosa:

  • Comprueba las pruebas unitarias: Verifica las pruebas de las nuevas funcionalidades
  • Revisa la documentación: Asegúrate de que la documentación esté actualizada
  • Evalúa el rendimiento: Ten en cuenta el impacto en la velocidad y la memoria
  • Verifica las pruebas de CI: Confirma que todas las pruebas se superen
  • Ofrece comentarios constructivos: Sé concreto y útil
  • Reconoce el esfuerzo: Da las gracias a quienes contribuyen

Información sobre la licencia 📜#

Licencia AGPL-3.0#

Ultralytics utiliza AGPL-3.0 para sus repositorios. Esto fomenta la apertura, la transparencia y la mejora colaborativa.

Usar YOLO en tu proyecto#

Si utilizas modelos o código de Ultralytics YOLO en tu proyecto, AGPL-3.0 exige que toda tu obra derivada también se publique con la licencia AGPL-3.0.

Por qué es importante cumplirla:

  • Mantiene el software abierto para beneficio de la comunidad
  • Es un requisito legal cuando se utiliza código con licencia AGPL-3.0
  • Fomenta la colaboración y la transparencia

Alternativa: Si prefieres no publicar tu proyecto como código abierto, obtén una licencia Enterprise.

Cómo cumplir con AGPL-3.0#

Pon a disposición del público el código fuente completo con licencia AGPL-3.0:

  1. Elige un punto de partida:

  2. Aplica una licencia a tu proyecto:

    • Añade el archivo LICENSE con el texto completo de la licencia AGPL-3.0
    • Añade un aviso de licencia al principio de los archivos de código fuente
  3. Publica el código fuente, incluidos:

    • La aplicación o el sistema completos
    • Las modificaciones del código de Ultralytics
    • Entrenamiento/validación/inferencia: los scripts
    • Los pesos del modelo, si se han modificado
    • Los archivos de configuración y los conjuntos de datos utilizados
    • El código del backend y del frontend
    • Las bibliotecas de terceros modificadas
    • Los datos de entrenamiento, si se pueden redistribuir
  4. Documenta claramente:

    • Indica la licencia AGPL-3.0 en README.md
    • Incluye instrucciones de instalación
    • Atribuye correctamente Ultralytics YOLO

Consulta el repositorio de plantillas de Ultralytics para ver un ejemplo de estructura.

Nuestro equipo de desarrollo 👥#

No dudes en contactar con los miembros del equipo para pedir orientación:

NombrePerfil de GitHub
Abi AndersonUltralyticsAbi
Alex WongUltraAlex118
Alexis Schutzgerpicsalex
Altaïr Kabunda-Margaletaltair-jpg
Anastasiia Khrapalnastijakh
Anthony Evansantevansultralytics
Antonina PoludennaAntonina2111
Craig Johnstoncraigjohnston1
Darin Kabashidarin-k
Ed Crooked-yolo
Emilia Fariftehemilia-fari
Esat Kalfaogluartest08
Fatih Akyonfcakyon
Giovanni Dal Zilioggg-dz-ultralytics
Glenn Jocherglenn-jocher
Hannah StreifHannahStreif
Irene Calatravaicalatrava
Jake Qianfengqianjake
Javier ChulviJaviChulvi
Jianing Qi (Jalyn)jianing-Jalyn
Jillian Rubenoffjillian-rubenoff
Jin Xulaodouya
Jing QiuLaughing-q
Joey CheriseaCherisea
Joey TjonNoCodeJoey
Josh GoldenbergJoshyG-Ultralytics
Kasim Acikbaskayselmecnun
Kristian Sommersokrisba
Lakshantha Dissanayakelakshanthad
Leo Samsingerlsamsinger
Manuel CalveManuelCalve96
Marius KeiserSkillnoob
Matt Bristowmatt-ultralytics
Maxim Sokolovsomal
Mengyu (Mason) Liulmycross
Mihai Pricochimihai-ultralytics
Miles Deansmiles-deans-ultralytics
Mohammed YasinY-T-G
Muhammad Rizwan MunawarRizwanMunawar
Murat Raimbekovraimbekovm
Nuvola LadiNLadi
Olivia Wangziyue-olivia
Onuralp Sezeronuralpszr
Pablo Karnbaumpablokarnbaum
Paula Derrengerpderrenger
Rick HouBovey0809
Sergiu Waxmannsergiuwaxmann
Shuai (Louis) LyuShuaiLYU
Thomas Chuangchuang091
Tianshu Litianshu-Li715
Yogendra Singhyogendrasinghx
Zinnia Pourdadzinnialp
Zuzana Kontrikovazkontri

Obtener ayuda 💬#

¿Tienes preguntas o necesitas ayuda?

¡Gracias! 🎉#

Gracias por tu interés en contribuir a los proyectos de código abierto de Ultralytics. Tu participación es esencial para dar forma al futuro de nuestro software y crear una comunidad dinámica de innovación y colaboración.

Nos entusiasma ver cómo tus ideas se hacen realidad y agradecemos tu compromiso con el avance de la tecnología de detección de objetos. ¡Sigamos creciendo e innovando juntos! 🚀🌟

Recursos 📚#