Skip to main content

Cómo colaborar 🚀

¡Bienvenido! Nos alegra mucho que estés pensando en colaborar con los proyectos de código abierto de Ultralytics. Tu participación contribuye a mejorar la calidad de nuestros repositorios y beneficia a toda la comunidad de visión artificial.

Guía completa

Para consultar las directrices completas sobre colaboraciones, véase también el Guía oficial de colaboraciones de Ultralytics en nuestra documentación principal.

Colaboradores del proyecto de código abierto Ultralytics

Ver: Contribuir a Ultralytics

Guía de inicio rápido 🎯

¿Estás listo para colaborar? Sigue estos pasos:

  1. Lee nuestro Código de conducta - Respeto, amabilidad y profesionalidad
  2. Crea una bifurcación del repositorio quieres colaborar con
  3. Crear una rama de características con un nombre descriptivo
  4. Realiza los cambios siguiendo las normas de codificación
  5. Escribir pruebas para nuevas funciones
  6. Enviar una solicitud de incorporación de cambios con una descripción clara
  7. Firma el convenio colectivo añadiendo un comentario en tu solicitud de incorporación de cambios
  8. Responder a los comentarios según los críticos

Consulte el Flujo de trabajo de desarrollo para conocer el proceso de relaciones públicas en detalle.

Directrices para colaborar 📋

Código de conducta 🤝

Todos los colaboradores deben cumplir con nuestras Código de conducta, que se basa en el Pacto de Colaboradores. Esto garantiza un ambiente acogedor e inclusivo para todos. Respeto, bondad, y profesionalidad son el corazón de nuestra comunidad.

Acuerdo de licencia para colaboradores (CLA) 📝

Antes de que podamos fusionar tu solicitud de incorporación de cambios, debes firmar nuestro CLA. Este acuerdo legal garantiza que las contribuciones cuenten con la licencia adecuada en virtud de AGPL-3.0, lo que te protege tanto a ti como al proyecto.

Una vez enviada tu solicitud de incorporación de cambios, el bot de CLA te guiará. Para firmar, escribe un comentario:

I have read the CLA Document and I sign the CLA

El CLA incluye:

  • Licencias de derechos de autor y de patentes para tus contribuciones
  • Derechos de Ultralytics para utilizar y distribuir tu obra
  • Declaraciones de que eres el titular de los derechos sobre tus contribuciones
  • Exención de responsabilidad

Consulte el texto completo Documento de la CLA para consultar las condiciones completas.

Buenas 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: Modificaciones específicas en lugar de cambios a gran escala
  • Simplificar: Busca oportunidades de simplificación
  • Ten en cuenta la compatibilidad: Evita alterar el código existente
  • Utiliza un formato coherente: Seguir Ruff Formatter
  • Añadir pruebas: Incluir pruebas para las nuevas funciones
  • Actualizar documentos: Conservar documentación actual

Normas de codificación 📐

  • Cadenas de documentación: Use Docstrings al estilo de Google con los tipos entre paréntesis
  • Ancho de línea: 120 caracteres como máximo
  • Importaciones: Use pathlib en lugar de os
  • Pruebas: Todas las solicitudes de incorporación de cambios deben ser aprobadas Pruebas de CI
  • Indicaciones de tipo: Úsalo cuando sea conveniente

Consulte el Flujo de trabajo de desarrollo para consultar las normas de codificación completas.

Formas de colaborar 🌟

Contribuciones al código 💻

  • Nuevas funciones y mejoras para YOLO
  • Corrección de errores y resolución de problemas
  • Optimizaciones de rendimiento para entrenamiento y inferencia
  • Compatibilidad con diversos formatos de exportación opciones de implementación
  • Mejoras en la compatibilidad con plataformas

Documentación 📚

  • Mejorar lo existente documentación
  • Añadir tutoriales y guías para casos de uso específicos
  • Corregir errores ortográficos y de otro tipo
  • Traducir la documentación a otros idiomas

Pruebas 🦪

  • Escribir pruebas unitarias para las nuevas funcionalidades
  • Prueba las nuevas funciones en diferentes modelos y tareas
  • Informar sobre las lagunas en la cobertura de las pruebas
  • Rendimiento análisis comparativo en todas las plataformas

Asistencia de la comunidad 💬

  • Responde a las preguntas en Debates de GitHub
  • Ayuda a los usuarios en Discord
  • Revisar solicitudes de incorporación de cambios
  • Problemas de triaje

Notificar errores 🐞

Ayúdanos a mejorar informándonos de los errores a través de Incidencias de GitHub:

Requisitos para la notificación de errores

  1. Consultar los problemas existentes para evitar duplicados
  2. Crear Ejemplo mínimo reproducible (MRE) - Código breve y autónomo que reproduce el problema
  3. Describe el entorno: Sistema operativo, Python , versiones de las bibliotecas, hardware (GPU)
  4. Explica la diferencia entre el comportamiento esperado y el real con mensajes de error y trazas de error

¿Qué hace que una ración de combate sea buena?

Un ejemplo mínimo reproducible debe:

  • Aislar el problema: Eliminar el código innecesario
  • Utiliza modelos y conjuntos de datos públicos: p. ej., yolo26n.pt y coco8.yaml
  • Incluir dependencias: Lista con yolo checks o pip list
  • Proporcione una descripción clara: Comportamiento esperado frente al real
  • Formatea correctamente: Utiliza bloques de código con tres comillas invertidas
  • Que sea comprobable: Otros pueden ejecutarlo sin modificaciones

Consulte la lista completa Guía de raciones de combate para obtener instrucciones detalladas.

Revisión de solicitudes de incorporación de cambios 👀

Revisar las solicitudes de incorporación de cambios es una valiosa contribución:

  • Comprobar las pruebas unitarias: Comprobar las pruebas de las nuevas funciones
  • Revisar la documentación: Asegúrate de que la documentación esté actualizada
  • Evaluar el rendimiento: Ten en cuenta el impacto en la velocidad y la memoria
  • Verificar las pruebas de integración continua: Comprobar que todas las pruebas se superan
  • Ofrece comentarios constructivos: Sé concreto y útil
  • Valorar el esfuerzo: Agradecimiento a los colaboradores

Información sobre la licencia 📜

AGPL-3.0

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

Cómo utilizar YOLO tu proyecto

Si utilizas Ultralytics YOLO modelos o código en tu proyecto, AGPL-3.0 toda tu obra derivada también sea de código abierto bajo AGPL-3.0.

Por qué es importante el cumplimiento normativo:

  • Mantiene el software abierto en beneficio de la comunidad
  • Requisitos legales para el uso de AGPL-3.0
  • Fomenta la colaboración y la transparencia

Alternativa: Si prefieres no publicar tu proyecto como código abierto, obtén un Licencia Empresarial.

Cómo cumplir con AGPL-3.0

Publicar el código fuente completo bajo AGPL-3.0:

  1. Elige el punto de partida:

  2. Otorga una licencia a tu proyecto:

    • Añadir LICENSE archivo con el contenido completo AGPL-3.0
    • Añadir el aviso de licencia al principio de los archivos fuente
  3. Publicar el código fuente entre otras cosas:

    • Aplicación/sistema completo
    • Modificaciones en el código Ultralytics
    • Entrenamiento/validación/inferencia guiones
    • Ponderaciones del modelo, si se han modificado
    • Archivos de configuración y conjuntos de datos usado
    • Código de backend/frontend
    • Bibliotecas de terceros modificadas
    • Datos de entrenamiento, si son redistribuibles
  4. Documentar claramente:

    • AGPL-3.0 en README.md
    • Incluir instrucciones de configuración
    • Asigna el atributo Ultralytics a YOLO

Consulte el Repositorio de plantillas Ultralytics por ejemplo, estructura.

Nuestro equipo de desarrollo 👥

No dudes en ponerte en contacto con los miembros del equipo si necesitas ayuda:

NombrePerfil de GitHub
Abi AndersonUltralyticsAbi
Abirami Vinaabirami-vina
Alex WongUltraAlex118
Alexis Schutzgerpicsalex
Altaïr Kabunda-Margaletaltair-jpg
Anastasiia Khrapalnastijakh
Andrei Banicaultralytics
Antonina PoludenaAntonina2111
Burhan QaddoumiBurhan-Q
Craig Johnstoncraigjohnston1
Craig Maxwellcraig-ships-it
Esat Kalfaogluartest08
Fatih Akyonfcakyon
Francesco Mattioliambitious-octopus
Giovanni Dal Zillioultralytics
Glenn Jocherglenn-jocher
Hannah StreifHannah Streif
Jake Qianfengqianjake
Jianing Qi (Jalyn)Jianing-Jalyn
Jin XuLaodouya
Jing QiuLaughing-q
Joey TjonNoCodeJoey
Kasim Acikbaskayselmecnun
Kirill VerbitskyKverbitski
Kristian Sommersokrisba
Lakshantha Dissanayakelakshanthad
Leo Samsingerlsamsinger
Marius KeiserSkillnoob
Matt Bristowultralytics
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
Prateek Bhatnagarultralytics
Rick HouBovey0809
Sergiu Waxmannsergiuwaxmann
Shuai (Louis) LyuShuaiLYU
Thomas Chuangchuang091
Yogendra Singhyogendrasinghx
Tigran Hakobyant-hakobyan
Zinnia Pourdadzinnialp
Zuzana Kontrikovazkontri

Solicita ayuda 💬

¿Tienes alguna pregunta o necesitas ayuda?

¡Gracias! 🎉

Gracias por tu interés en colaborar con 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 dinámica basada en la innovación y la colaboración.

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

Recursos 📚