image-processing - tutorial - net forward
Una guía para convert_imageset.cpp (1)
Soy relativamente nuevo en machine learning / python / ubuntu.
Tengo un conjunto de imágenes en formato .jpg donde la mitad contiene una función que quiero que aprenda cafe y la otra mitad no. Tengo problemas para encontrar una manera de convertirlos al formato lmdb requerido.
Tengo los archivos de entrada de texto necesarios.
Mi pregunta es ¿alguien puede proporcionar una guía paso a paso sobre cómo usar
convert_imageset.cpp
en el terminal de ubuntu?
Gracias
Una guía rápida para
convert_imageset
de Caffe
Construir
Lo primero que debe hacer es crear caffe y las herramientas de caffe (
convert_imageset
es una de estas herramientas).
Después de instalar caffe y
make
, asegúrese de ejecutar también
make tools
.
Verifique que se haya creado un archivo binario
convert_imageset
en
$CAFFE_ROOT/build/tools
.
Prepara tus datos
Imágenes:
coloque todas las imágenes en una carpeta (lo llamaré aquí
/path/to/jpegs/
).
Etiquetas:
cree un archivo de texto (por ejemplo,
/path/to/labels/train.txt
) con una línea por imagen de entrada.
Por ejemplo:
img_0000.jpeg 1
img_0001.jpeg 0
img_0002.jpeg 0
En este ejemplo, la primera imagen está etiquetada como
1
mientras que las otras dos están etiquetadas como
0
.
Convertir el conjunto de datos
Ejecute el binario en shell
~$ GLOG_logtostderr=1 $CAFFE_ROOT/build/tools/convert_imageset /
--resize_height=200 --resize_width=200 --shuffle /
/path/to/jpegs/ /
/path/to/labels/train.txt /
/path/to/lmdb/train_lmdb
Línea de comando explicada:
-
GLOG_logtostderr
indicadorGLOG_logtostderr
se establece en 1 antes de llamar aconvert_imageset
indica el mecanismo de registro para redirigir los mensajes de registro a stderr. -
--resize_height
y--resize_width
redimensionan todas las imágenes de entrada al mismo tamaño200x200
. -
--shuffle
cambia aleatoriamente el orden de las imágenes y no conserva el orden en el archivo/path/to/labels/train.txt
. -
Los siguientes son la ruta a la carpeta de imágenes, el archivo de texto de las etiquetas y el nombre de salida.
Tenga en cuenta que el nombre de salida no debería existir antes de llamar a
convert_imageset
contrario, recibirá un mensaje de error aterrador.
Otras banderas que pueden ser útiles:
-
--backend
- le permite elegir entre un conjunto de datoslevelDB
olevelDB
. -
--gray
- convierte todas las imágenes a escala de grises. -
--encoded
y--encoded_type
- mantiene los datos de la imagen en forma comprimida codificada (jpg / png) en la base de datos. -
--help
- muestra algo de ayuda, vea todas las banderas relevantes en Banderas desde tools / convert_imageset.cpp
Puede consultar
$CAFFE_ROOT/examples/imagenet/convert_imagenet.sh
para ver un ejemplo de cómo usar
convert_imageset
.