Ir al contenido

Cómo contribuir 🚀

Le damos la bienvenida. Estamos encantados de que estés considerando contribuir a Ultralytics de código abierto. Su participación ayuda a mejorar la calidad de nuestros repositorios y beneficia a toda la comunidad de visión por computador.

Directrices completas

Para conocer las directrices completas de contribución, consulte también la Guía oficial de contribución Ultralytics en nuestra documentación principal.

Colaboradores de código abierto Ultralytics

Ver: Contribución a Ultralytics

Guía de inicio rápido 🎯

¿Listo para contribuir? Siga estos pasos:

  1. Lea nuestro Código de conducta - Respeto, amabilidad y profesionalidad
  2. Fork del repositorio al que desea contribuir
  3. Crear una rama con un nombre descriptivo
  4. Realice los cambios siguiendo las normas de codificación
  5. Escribir pruebas para nuevas funcionalidades
  6. Envíe una pull request con una descripción clara
  7. Firme el CLA comentándolo en su PR
  8. Responder a los comentarios de los revisores

Consulte Flujo de trabajo de desarrollo para conocer el proceso detallado de RP.

Directrices de contribución 📋

Código de conducta 🤝

Todos los colaboradores deben cumplir nuestro Código de Conducta, basado en el Pacto entre Colaboradores. Esto garantiza un entorno acogedor e integrador para todos. El respeto, la amabilidad y la profesionalidad están en el corazón de nuestra comunidad.

Acuerdo de licencia de colaborador (CLA) 📝

Antes de que podamos fusionar su RP, debe firmar nuestro CLA. Este acuerdo legal garantiza que las contribuciones están debidamente licenciadas bajo AGPL-3.0protegiéndole a usted y al proyecto.

Tras enviar tu RP, el bot de CLA te guiará. Para firmar, comente:

I have read the CLA Document and I sign the CLA

El CLA cubre:

  • Licencias de derechos de autor y patentes para sus contribuciones
  • Derechos para que Ultralytics utilice y distribuya su trabajo
  • Declaraciones de que posee los derechos de sus contribuciones
  • Exclusión de garantías

Consulte el documento CLA completo para conocer todas las condiciones.

Buenas prácticas ✨

Al aportar código:

  • Evite la duplicación: Reutilizar el código existente siempre que sea posible.
  • Haga cambios más pequeños: Modificaciones focalizadas frente a cambios a gran escala
  • Simplificar: Busque oportunidades de simplificación
  • Tenga en cuenta la compatibilidad: Evitar romper el código existente
  • Utilice un formato coherente: Siga el formato Ruff
  • Añadir pruebas: Incluir pruebas para las nuevas funciones
  • Actualice la documentación: Mantenga actualizada la documentación

Normas de codificación 📐

  • Docstrings: Utiliza docstringsGoogle con los tipos entre paréntesis
  • Ancho de línea: 120 caracteres como máximo
  • Importaciones: Utilice pathlib en lugar de os
  • Pruebas: Todos los RP deben pasar las pruebas de CI
  • Sugerencias de tipo: Utilizar cuando sea beneficioso

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

Formas de contribuir 🌟

Código Contribuciones 💻

  • Nuevas funciones y mejoras para los modelosYOLO
  • Corrección de errores y resolución de problemas
  • Optimización del rendimiento de la formación y la inferencia
  • Soporte de formatos de exportación para varias opciones de despliegue
  • Mejoras en la compatibilidad de plataformas

Documentación 📚

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

Pruebas 🧪

  • Escribir pruebas unitarias para nuevas funcionalidades
  • Probar nuevas funciones en diferentes modelos y tareas
  • Informar de las lagunas en la cobertura de las pruebas
  • Evaluación comparativa del rendimiento entre plataformas

Apoyo comunitario 💬

Informar de errores 🐞

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

Requisitos para los informes de errores

  1. Compruebe los problemas existentes para evitar duplicados
  2. Crear un ejemplo mínimo reproducible (EMR): código pequeño y autónomo que reproduzca el problema.
  3. Describa el entorno: Sistema operativo, versión de Python , versiones de bibliotecas, hardwareCPUGPU)
  4. Explicar el comportamiento esperado frente al real con mensajes de error y rastreos

Cómo debe ser un buen MRE

Un ejemplo mínimo reproducible debería:

  • Aislar el problema: Eliminar el código innecesario
  • Utilizar modelos y conjuntos de datos públicosPor ejemplo yolov8n.pt y coco8.yaml
  • Incluir dependencias: Lista con yolo checks o pip list
  • Proporcionar una descripción clara: Comportamiento esperado frente a comportamiento real
  • Formatee correctamente: Utiliza bloques de código con triple punto y coma
  • Ser comprobable: Que otros puedan ejecutarlo sin modificaciones

Consulte la Guía completa de MRE para obtener instrucciones detalladas.

Revisión de Pull Requests 👀

La revisión de los RP es una contribución valiosa:

  • Compruebe las pruebas unitarias: Verificar las pruebas de las nuevas funciones
  • Revisar la documentación: Asegurarse de que la documentación está actualizada
  • Evalúe el rendimiento: Considerar el impacto en la velocidad/memoria
  • Verifique las pruebas CI: Confirmar que todas las pruebas pasan
  • Proporcione comentarios constructivos: Sea específico y útil
  • Reconocer el esfuerzo: Agradecer a los colaboradores

Información sobre la licencia 📜

Licencia AGPL-3.0

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

Utilizar YOLO en su proyecto

Si utiliza Ultralytics YOLO en su proyecto, AGPL-3.0 AGPL-3.0 exige que todo su trabajo derivado esté también bajo AGPL-3.0.

Por qué es importante el cumplimiento:

  • Software abierto en beneficio de la comunidad
  • Requisito legal al utilizar código AGPL-3.0
  • Fomenta la colaboración y la transparencia

Alternativa: Si prefiere que su proyecto no sea de código abierto, obtenga una licencia de empresa.

Cómo cumplir la AGPL-3.0

Poner a disposición del público el código fuente completo bajo AGPL-3.0:

  1. Elige el punto de partida:

  2. Licencia de su proyecto:

    • Añadir LICENSE archivo completo Texto AGPL-3.0
    • Añadir un aviso de licencia en la parte superior de los archivos fuente
  3. Publicar código fuente incluido:

    • Aplicación/sistema completo
    • Modificaciones del código Ultralytics
    • Guiones de formación/validación/inferencia
    • Ponderación del modelo si se modifica
    • Archivos de configuración y conjuntos de datos utilizados
    • Código backend/frontend
    • Bibliotecas de terceros modificadas
    • Datos de entrenamiento si son redistribuibles
  4. Documentar con claridad:

    • Licencia AGPL-3.0 en README/
    • Incluir instrucciones de instalación
    • Atributo Ultralytics YOLO adecuadamente

Consulte el Repositorio de plantillas deUltralytics para ver un ejemplo de estructura.

Nuestro equipo de desarrollo 👥

No dudes en ponerte en contacto con los miembros del equipo para que te orienten:

Nombre Perfil de GitHub
Abrish Sabri asabri97
Abirami Vina abirami-vina
Alexis Schutzger picsalex
Burhan Qaddoumi Burhan-Q
Fatih Akyon fcakyon
Francesco Mattioli ambicioso-octopus
Giovanni Dal Zillio ultralytics
Glenn Jocher glenn-jocher
Hannah Streif HannahStreif
Jake Qian fengqianjake
Jing Qiu Laughing-q
Joey Tjon NoCodeJoey
Jordan Cooper JCoops1
Kasim Acikbas kayselmecnun
Kirill Viarbitski Kverbitski
Kiryl Oblikau munknex
Kristian Sommer sokrisba
Lakshantha Dissanayake lakshanthad
Marius Keiser Skillnoob
Mohammed Yasin Y-T-G
Muhammad Rizwan Munawar RizwanMunawar
Mykola Boiko mykolaxboiko
Nicolai Nielsen niconielsen32
Nuvola Ladi NLadi
Onuralp Sezer onuralpszr
Pablo Karnbaum pablokarnbaum
Paula Derrenger pderrenger
Prateek Bhatnagar ultralytics
Rick Hou Bovey0809
Ryan Leonel Somali ryanleonels
Sergiu Waxmann sergiuwaxmann
Thomas Chuang chuang091
William Beaven william-beaven
Yogendra Singh yogendrasinghx
Tigran Hakobyan tthakz
Zinnia Pourdad zinnialp
Shuai (Louis) Lyu ShuaiLYU
Abi Anderson UltralíticosAbi
Jin Xu laodouya
Zuzana Kontrikova zkontri
Miles Deans ultralytics
Mengyu (Mason) Liu lmycross

Obtener asistencia 💬

¿Preguntas o necesita ayuda?

¡Gracias! 🎉

Gracias por su interés en contribuir a los proyectos de código abierto Ultralytics . Su participación es esencial para dar forma al futuro de nuestro software y construir una comunidad vibrante de innovación y colaboración.

Nos entusiasma ver cómo sus ideas cobran vida y apreciamos su compromiso con el avance de la tecnología de detección de objetos. Juntos, ¡continuemos creciendo e innovando! 🚀🌟

Recursos 📚



Creado hace 4 días ✏️ Actualizado hace 4 días