YOLO Vision 2026:

Cómo contribuir 🚀#

¡Bienvenido! Nos encanta que estés considerando 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 computer vision.

Directrices completas

Para ver las pautas de contribución completas, consulta también la Official Ultralytics Contributing Guide en nuestra documentación principal.

Ultralytics open-source contributors

Ver: Contribuir a Ultralytics#

Guía de inicio rápido 🎯#

¿Listo para contribuir? Sigue estos pasos:

  1. Lee nuestro Code of Conduct - Respeto, amabilidad y profesionalidad
  2. Haz un fork del repositorio en el que quieras contribuir
  3. Crea una rama de funcionalidades con un nombre descriptivo
  4. Realiza tus cambios siguiendo los estándares de codificación
  5. Escribe pruebas para la nueva funcionalidad
  6. Envía una pull request con una descripción clara
  7. Firma el CLA comentando en tu PR
  8. Responde a los comentarios de los revisores

Consulta Development Workflow para ver el proceso detallado de PR.

Directrices de contribución 📋#

Código de conducta 🤝#

Todos los colaboradores deben adherirse a nuestro Code of Conduct, basado en el Contributor Covenant. Esto garantiza un entorno acogedor e inclusivo para todos. El respeto, la amabilidad y la profesionalidad son la esencia de nuestra comunidad.

Acuerdo de licencia de colaborador (CLA) 📝#

Antes de que podamos fusionar tu PR, debes firmar nuestro CLA. Este acuerdo legal garantiza que las contribuciones tengan la licencia adecuada bajo AGPL-3.0, protegiéndote tanto a ti como al proyecto.

Después de enviar tu PR, el bot del CLA te guiará. Para firmar, 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

Revisa el CLA Document completo para conocer todos los términos.

Mejores prácticas ✨#

Al contribuir con código:

  • Evita la duplicación: Reutiliza el código existente siempre que sea posible
  • Haz cambios más pequeños: Prioriza modificaciones específicas sobre cambios a gran escala
  • Simplifica: Busca oportunidades de simplificación
  • Considera la compatibilidad: Evita romper el código existente
  • Usa un formato consistente: Sigue Ruff Formatter
  • Añade pruebas: Incluye pruebas para nuevas funciones
  • Actualiza la documentación: Mantén la documentation al día

Estándares de codificación 📐#

  • Docstrings: Usa Google-style docstrings con los tipos entre paréntesis
  • Ancho de línea: 120 caracteres máximo
  • Imports: Usa pathlib en lugar de os
  • Pruebas: Todos los PRs deben superar las CI tests
  • Type hints: Úsalos cuando sean beneficiosos

Consulta Development Workflow para conocer los estándares de código completos.

Formas de contribuir 🌟#

Contribuciones de código 💻#

  • Nuevas funciones y mejoras para YOLO models
  • Corrección de errores y resolución de problemas
  • Optimizaciones de rendimiento para training e inference
  • Compatibilidad con formatos de exportación para varias deployment options
  • Mejoras en la compatibilidad de plataformas

Documentación 📚#

Pruebas 🧪#

  • Escribe pruebas unitarias para nuevas funcionalidades
  • Probar nuevas funciones en diferentes models y tasks
  • Informa sobre lagunas en la cobertura de pruebas
  • Benchmarking de rendimiento en distintas plataformas

Soporte comunitario 💬#

Informar de errores 🐞#

Ayúdanos a mejorar informando de errores a través de GitHub Issues:

Requisitos para informar de errores#

  1. Comprueba las issues existentes para evitar duplicados
  2. Crea un Minimum Reproducible Example (MRE) - Código pequeño y autónomo que reproduzca el problema
  3. Describe el entorno: SO, versión de Python, versiones de librerías, hardware (CPU/GPU)
  4. Explica el comportamiento esperado frente al real con mensajes de error y trazas

Qué hace a un buen MRE#

Un ejemplo mínimo reproducible debería:

  • Aislar el problema: Eliminar código innecesario
  • Usa modelos y datasets públicos: por ejemplo, yolo26n.pt y coco8.yaml
  • Incluye dependencias: Enuméralas con yolo checks o pip list
  • Proporcionar una descripción clara: Comportamiento esperado frente al real
  • Formatear correctamente: Usar bloques de código con triple comilla invertida
  • Ser testable: Que otros puedan ejecutarlo sin modificaciones

Consulta la MRE Guide completa para obtener instrucciones detalladas.

Revisar Pull Requests 👀#

Revisar PRs es una contribución valiosa:

  • Comprobar pruebas unitarias: Verificar las pruebas para nuevas funcionalidades
  • Revisar documentación: Asegurarse de que la documentación esté actualizada
  • Evaluar rendimiento: Considerar el impacto en velocidad/memoria
  • Verificar pruebas CI: Confirmar que todas las pruebas pasen
  • Proporcionar comentarios constructivos: Sé específico y servicial
  • Reconocer el esfuerzo: Da las gracias a los colaboradores

Información de licencia 📜#

Licencia AGPL-3.0#

Ultralytics utiliza AGPL-3.0 para sus repositorios. Esto promueve 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, la licencia AGPL-3.0 exige que toda tu obra derivada también sea de código abierto bajo AGPL-3.0.

Por qué es importante el cumplimiento:

  • Mantiene el software abierto para beneficio de la comunidad
  • Requisito legal al usar código AGPL-3.0
  • Fomenta la colaboración y la transparencia

Alternativa: Si prefieres no hacer que tu proyecto sea de código abierto, obtén una Enterprise License.

Cómo cumplir con AGPL-3.0#

Haz que el código fuente completo esté disponible públicamente bajo AGPL-3.0:

  1. Elige un punto de partida:

  2. Licencia tu proyecto:

    • Añade el archivo LICENSE con todo el AGPL-3.0 text
    • Añade el aviso de licencia en la parte superior de los archivos fuente
  3. Publica el código fuente incluyendo:

    • La aplicación o el sistema completo
    • Modificaciones al código de Ultralytics
    • Scripts de Training/validation/inference
    • Pesos del modelo si han sido modificados
    • Archivos de configuración y datasets utilizados
    • Código del backend/frontend
    • Bibliotecas de terceros modificadas
    • Datos de entrenamiento si son redistribuibles
  4. Documenta claramente:

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

Consulta el Ultralytics Template Repository para ver una estructura de ejemplo.

Nuestro equipo de desarrollo 👥#

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

NombrePerfil de GitHub
Abi AndersonUltralyticsAbi
Abirami Vinaabirami-vina
Alex WongUltraAlex118
Alexis Schutzgerpicsalex
Altaïr Kabunda-Margaletaltair-jpg
Anastasiia Khrapalnastijakh
Andrei Banicabanica-ultralytics
Antonina PoludenaAntonina2111
Craig Johnstoncraigjohnston1
Darin Kabashidarin-k)
Esat Kalfaogluartest08
Fatih Akyonfcakyon
Francesco Mattioliambitious-octopus
Giovanni Dal Zillioggg-dz-ultralytics
Glenn Jocherglenn-jocher
Hannah StreifHannahStreif
Jake Qianfengqianjake
Javier ChulviJaviChulvi
Jianing Qi (Jalyn)jianing-Jalyn
Jin Xulaodouya
Jing QiuLaughing-q
Joey TjonNoCodeJoey
Joey CheriseaCherisea
Kasim Acikbaskayselmecnun
Kristian Sommersokrisba
Lakshantha Dissanayakelakshanthad
Leo Samsingerlsamsinger
Marius KeiserSkillnoob
Matt Bristowmatt-ultralytics
Mengyu (Mason) Liulmycross
Miles Deansmiles-deans-ultralytics
Mohammed YasinY-T-G
Muhammad Rizwan MunawarRizwanMunawar
Mykola Boikomykolaxboiko
Nicolai Nielsenniconielsen32
Nuvola LadiNLadi
Olivia Wangziyue-olivia
Onuralp Sezeronuralpszr
Pablo Karnbaumpablokarnbaum
Paula Derrengerpderrenger
Rick HouBovey0809
Sergiu Waxmannsergiuwaxmann
Shuai (Louis) LyuShuaiLYU
Thomas Chuangchuang091
Yogendra Singhyogendrasinghx
Tigran Hakobyant-hakobyan
Zinnia Pourdadzinnialp
Zuzana Kontrikovazkontri

Obtén 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 fundamental para dar forma al futuro de nuestro software y construir una comunidad vibrante de innovación y colaboración.

Estamos deseando ver cómo cobran vida tus ideas y agradecemos tu compromiso con el avance de la tecnología de detección de objetos. ¡Sigamos creciendo e innovando juntos! 🚀🌟

Recursos 📚#