datos de detección de diana voc pascal establecidos en el siguiente formato:
donde:
- Anotaciones para el archivo de información XML Anotación de imagen
- ImageSets conjunto de entrenamiento, equipo de prueba, verificación, validación conjunto de imágenes de entrenamiento nombre del archivo txt
- JPEGImages a la imagen original
voc Pascal o Yolo formato de datos pueden ser utilizados para labelimg etiquetado: Descargar:
Link: https: //pan.baidu.com/s/1r8x7tu0sdO_UUuCXKVfELQ
código de extracción: L325
Muy simple operación, no se presentó.
Marcado buen archivo XML similar al siguiente:
< Anotación > < carpeta > JPEGImages </ carpeta > < nombre de archivo > test_00000002.jpg </ nombre > < ruta > E: \ detección \ Pascal voc \ maskornot \ JPEGImages \ test_00000002.jpg </ ruta > < fuente > < base de datos > Desconocido </ base de datos > </ fuente > < tamaño > < anchura > 480 </ anchura > <altura > 600 </ altura > < profundidad > 3 </ profundidad > </ tamaño > < segmentado > 0 </ segmentado > < objeto > < nombre > máscara </ nombre > < pose > Unspecified </ plantear > < truncada > 0 </ truncado > < difícil > 0 </ difíciles> < Bndbox > < xmin > 112 </ xmin > < ymin > 7 </ ymin > < xmax > 352 </ xmax > < ymax > 325 </ ymax > </ bndbox > </ objeto > </ anotación >
Una imagen correspondiente sigue:
A continuación, dividir el conjunto de entrenamiento, equipo de prueba, conjunto de validación, conjunto de validación de la formación: centrado en los datos VOC2007 original, cuentas trainval representa aproximadamente el 50% de todo el conjunto de datos, prueba de alrededor del 50% de todo el conjunto de datos; tren de alrededor del 50% trainval, val de aproximadamente 50% trainval
importación os importan al azar trainval_percent = 0,5 train_percent = 0,5 xmlfilepath = ' / content / unidad / Mi unidad / pytorch_ssd / datos / maskornot / Anotaciones ' txtsavepath = ' / content / unidad / Mi unidad / pytorch_ssd / datos / maskornot / ImageSets / Main ' total_xml = os.listdir (xmlfilepath) num = len (total_xml) lista = rango (num) tv = int (* num trainval_percent) tr = int (tv * train_percent) trainval = random.sample (lista, tv) tren =random.sample (trainval, tr) ftrainval = abierto (txtsavepath + ' /trainval.txt ' , ' w ' ) prueba F = abierto (txtsavepath + ' /test.txt ' , ' w ' ) FTrain = abierto (txtsavepath + ' /train.txt ' ' w ' ) FVAL = (txtsavepath + abierto ' /val.txt ' ' w ' ) para i en la lista: nombre = total_xml [i] [:-4] +' \ N ' si i en trainval: ftrainval.write (nombre) si i en tren: ftrain.write (nombre) otra cosa : fval.write (nombre) otra cosa : ftest.write (nombre) ftrainval.close () ftrain.close () fval.close () ftest.close ()
Después de ejecutar:
En donde tranval.txt resultado parcial es:
test_00000002
test_00000003
test_00000006
test_00000009
test_00000008
test_00000012
test_00000013
test_00000014
test_00000020
En este punto, crear objetivo conjunto de datos de detección es completa.
En la siguiente sección, utilizando la formación pytorch-SSD para crear sus propios conjuntos de datos.