Visi贸n general de los conjuntos de datos de segmentaci贸n de instancias
Formatos de datos admitidos
Ultralytics YOLO formato
El formato de las etiquetas de los conjuntos de datos utilizados para entrenar los modelos de segmentaci贸n de YOLO es el siguiente:
- Un archivo de texto por imagen: Cada imagen del conjunto de datos tiene su correspondiente archivo de texto con el mismo nombre que el archivo de imagen y la extensi贸n ".txt".
- Una fila por objeto: Cada fila del archivo de texto corresponde a una instancia de objeto en la imagen.
- Informaci贸n del objeto por fila: Cada fila contiene la siguiente informaci贸n sobre la instancia del objeto:
- 脥ndice de clase del objeto: Un n煤mero entero que representa la clase del objeto (por ejemplo, 0 para persona, 1 para coche, etc.).
- Coordenadas de delimitaci贸n del objeto: Las coordenadas de delimitaci贸n alrededor del 谩rea de la m谩scara, normalizadas para estar entre 0 y 1.
El formato de una fila del fichero de datos de segmentaci贸n es el siguiente:
En este formato, <class-index>
es el 铆ndice de la clase del objeto, y <x1> <y1> <x2> <y2> ... <xn> <yn>
son las coordenadas de delimitaci贸n de la m谩scara de segmentaci贸n del objeto. Las coordenadas est谩n separadas por espacios.
He aqu铆 un ejemplo del formato del conjunto de datos YOLO para una sola imagen con dos objetos formados por un segmento de 3 puntos y un segmento de 5 puntos.
0 0.681 0.485 0.670 0.487 0.676 0.487
1 0.504 0.000 0.501 0.004 0.498 0.004 0.493 0.010 0.492 0.0104
Consejo
- La longitud de cada fila no tiene por qu茅 ser igual.
- Cada etiqueta de segmentaci贸n debe tener un m铆nimo de 3 puntos xy:
<class-index> <x1> <y1> <x2> <y2> <x3> <y3>
Conjunto de datos en formato YAML
El marco Ultralytics utiliza un formato de archivo YAML para definir el conjunto de datos y la configuraci贸n del modelo para el entrenamiento de los modelos de detecci贸n. A continuaci贸n se muestra un ejemplo del formato YAML utilizado para definir un conjunto de datos de detecci贸n:
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ../datasets/coco8-seg # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 images
test: # test images (optional)
# Classes (80 COCO classes)
names:
0: person
1: bicycle
2: car
# ...
77: teddy bear
78: hair drier
79: toothbrush
En train
y val
especifican las rutas a los directorios que contienen las im谩genes de entrenamiento y validaci贸n, respectivamente.
names
es un diccionario de nombres de clases. El orden de los nombres debe coincidir con el orden de los 铆ndices de las clases de objetos en los archivos del conjunto de datos YOLO .
Utilizaci贸n
Ejemplo
Conjuntos de datos compatibles
Conjuntos de datos compatibles
- COCO: un completo conjunto de datos para la detecci贸n, segmentaci贸n y subtitulaci贸n de objetos, con m谩s de 200 000 im谩genes etiquetadas de una amplia gama de categor铆as.
- COCO8-seg: Un subconjunto compacto de 8 im谩genes de COCO dise帽ado para probar r谩pidamente el entrenamiento del modelo de segmentaci贸n, ideal para comprobaciones de CI y validaci贸n del flujo de trabajo en el
ultralytics
repositorio. - COCO128-seg: un conjunto de datos m谩s peque帽o para tareas de segmentaci贸n de instancias, que contiene un subconjunto de 128 im谩genes COCO con anotaciones de segmentaci贸n.
- Carparts-seg: Un conjunto de datos especializado centrado en la segmentaci贸n de piezas de autom贸viles, ideal para aplicaciones de automoci贸n. Incluye una variedad de veh铆culos con anotaciones detalladas de los componentes individuales del autom贸vil.
- Crack-seg: Un conjunto de datos adaptado para la segmentaci贸n de grietas en diversas superficies. Esencial para el mantenimiento de infraestructuras y el control de calidad, proporciona im谩genes detalladas para el entrenamiento de modelos de identificaci贸n de debilidades estructurales.
- Package-seg: conjunto de datos dedicado a la segmentaci贸n de distintos tipos de materiales y formas de envases. Es especialmente 煤til para la log铆stica y la automatizaci贸n de almacenes, ya que ayuda a desarrollar sistemas de manipulaci贸n y clasificaci贸n de paquetes.
A帽adir su propio conjunto de datos
Si tiene su propio conjunto de datos y desea utilizarlo para entrenar modelos de segmentaci贸n con el formato Ultralytics YOLO , aseg煤rese de que sigue el formato especificado anteriormente en "Ultralytics YOLO format". Convierta sus anotaciones al formato requerido y especifique las rutas, el n煤mero de clases y los nombres de las clases en el archivo de configuraci贸n YAML.
Portar o convertir formatos de etiquetas
COCO Dataset Format a YOLO Format
Puede convertir f谩cilmente etiquetas del popular formato de conjunto de datos COCO al formato YOLO utilizando el siguiente fragmento de c贸digo:
Ejemplo
Esta herramienta de conversi贸n puede utilizarse para convertir el conjunto de datos COCO o cualquier conjunto de datos en formato COCO al formato Ultralytics YOLO .
No olvide volver a comprobar si el conjunto de datos que desea utilizar es compatible con su modelo y sigue las convenciones de formato necesarias. Los conjuntos de datos formateados correctamente son cruciales para entrenar con 茅xito modelos de detecci贸n de objetos.
Anotaci贸n autom谩tica
La anotaci贸n autom谩tica es una funci贸n esencial que permite generar un conjunto de datos de segmentaci贸n utilizando un modelo de detecci贸n preentrenado. Permite anotar con rapidez y precisi贸n un gran n煤mero de im谩genes sin necesidad de etiquetado manual, lo que ahorra tiempo y esfuerzo.
Generar un conjunto de datos de segmentaci贸n utilizando un modelo de detecci贸n
Para auto-anotar su conjunto de datos utilizando el marco Ultralytics , puede utilizar la funci贸n auto_annotate
como se muestra a continuaci贸n:
Ejemplo
Argumento | Tipo | Descripci贸n | Por defecto |
---|---|---|---|
data |
str |
Ruta a la carpeta que contiene las im谩genes que se van a anotar. | None |
det_model |
str, optional |
Modelo de detecci贸n preentrenado YOLO . Por defecto 'yolo11x.pt' . |
'yolo11x.pt' |
sam_model |
str, optional |
Modelo de segmentaci贸n preentrenado SAM . Por defecto 'sam_b.pt' . |
'sam_b.pt' |
device |
str, optional |
Dispositivo en el que se ejecutar谩n los modelos. Por defecto es una cadena vac铆a (CPU o GPU, si est谩 disponible). | '' |
output_dir |
str or None, optional |
Directorio para guardar los resultados anotados. Por defecto es un 'labels' en el mismo directorio que 'data' . |
None |
En auto_annotate
toma la ruta a sus im谩genes, junto con argumentos opcionales para especificar la detecci贸n preentrenada y SAM modelos de segmentaci贸nel dispositivo en el que se ejecutar谩n los modelos y el directorio de salida en el que se guardar谩n los resultados anotados.
Al aprovechar la potencia de los modelos preentrenados, la anotaci贸n autom谩tica puede reducir significativamente el tiempo y el esfuerzo necesarios para crear conjuntos de datos de segmentaci贸n de alta calidad. Esta funci贸n es especialmente 煤til para investigadores y desarrolladores que trabajan con grandes colecciones de im谩genes, ya que les permite centrarse en el desarrollo y la evaluaci贸n de modelos en lugar de en la anotaci贸n manual.
PREGUNTAS FRECUENTES
驴Qu茅 formatos de conjuntos de datos admite Ultralytics YOLO para la segmentaci贸n de instancias?
Ultralytics YOLO admite varios formatos de conjuntos de datos para la segmentaci贸n de instancias, siendo el principal su propio formato Ultralytics YOLO . Cada imagen de su conjunto de datos necesita un archivo de texto correspondiente con la informaci贸n del objeto segmentada en varias filas (una fila por objeto), que enumere el 铆ndice de clase y las coordenadas de delimitaci贸n normalizadas. Para obtener instrucciones m谩s detalladas sobre el formato del conjunto de datos YOLO , visite la descripci贸n general de los conjuntos de datos de segmentaci贸n de instancias.
驴C贸mo puedo convertir las anotaciones del conjunto de datos COCO al formato YOLO ?
Convertir las anotaciones en formato COCO al formato YOLO es muy sencillo utilizando las herramientas de Ultralytics . Puede utilizar la herramienta convert_coco
de la funci贸n ultralytics.data.converter
m贸dulo:
from ultralytics.data.converter import convert_coco
convert_coco(labels_dir="path/to/coco/annotations/", use_segments=True)
Este script convierte sus anotaciones del conjunto de datos COCO al formato requerido YOLO , haci茅ndolo adecuado para el entrenamiento de sus modelos YOLO . Para m谩s detalles, consulte Portar o Convertir formatos de etiquetas.
驴C贸mo preparo un archivo YAML para entrenar los modelos de Ultralytics YOLO ?
Para preparar un archivo YAML para el entrenamiento de modelos YOLO con Ultralytics, es necesario definir las rutas de los conjuntos de datos y los nombres de las clases. Aqu铆 tienes un ejemplo de configuraci贸n YAML:
path: ../datasets/coco8-seg # dataset root dir
train: images/train # train images (relative to 'path')
val: images/val # val images (relative to 'path')
names:
0: person
1: bicycle
2: car
# ...
Aseg煤rese de actualizar las rutas y los nombres de clase de acuerdo con su conjunto de datos. Para obtener m谩s informaci贸n, consulte la secci贸n Formato YAML del conjunto de datos.
驴Qu茅 es la funci贸n de anotaci贸n autom谩tica en Ultralytics YOLO ?
La anotaci贸n autom谩tica en Ultralytics YOLO le permite generar anotaciones de segmentaci贸n para su conjunto de datos utilizando un modelo de detecci贸n preentrenado. Esto reduce significativamente la necesidad de etiquetado manual. Puede utilizar la funci贸n auto_annotate
de la siguiente manera:
from ultralytics.data.annotator import auto_annotate
auto_annotate(data="path/to/images", det_model="yolo11x.pt", sam_model="sam_b.pt")
Esta funci贸n automatiza el proceso de anotaci贸n, haci茅ndolo m谩s r谩pido y eficaz. Para m谩s detalles, explore la secci贸n de anotaci贸n autom谩tica.