# Readme Stockout Cristóbal
### dowload_facings_and_anotations
Descargamos los datos, lo importante:
- `DOWNLOAD_ONLY_WITH_ANNOTATIONS` es una variable global que hace que solo se descarguen los facings y las imagenes de los batches que tienen anotaciones. Lleva el registro de qué sesiones tienen anotaciones usando el `set()` `BATCHES_WITH_ANNOTATIONS`.
- El `CATEGORY_MAP` hay muchas categorias en la base de datos porque cualquier usuario puede crearlas. Entonces, se usa un mapeo que debe asignar para cada categoría un valor o `NaN`. Los `NaN` se ignoran (no se guardan).
Si no existe mapeo para alguna categoría se va a caer el programa.
Descarga los datos a `DATA_ROOT` + `raw_data`.
Por cada batch se genera un directorio que contiene los archivos:
- `[batch_name]_rgb.jpg` (la imagen RGB)
- `[batch_name]_depth.png` (la imagen en profundidad)
- `info_facings.json` (con las detecciones del robot)
- `custom_facings.json` (con las anotaciones)
### select_test_batches
Elige algunos (10\%) batches (pasillos de un supermercado en una fecha específica) para guardar para testear.
Genera un `.pkl` (pickle):
~~~js
{
"train": ["batch_1_train", ...],
"test": ["batch_1_test", ...],
}
~~~
### crop_and_generate_gt
Primero elimina los margenes negros y concatena los canales rgb + d (rgb y profundidad). Luego se sacan *crops* cuadrados que son escalados para que queden de dimensiones `HEIGHT, WIDTH`, y se guardan los crops.
Adicionalmente tambien se escalan las anotaciones que corresponden a cada crop en un archivo pickle `gt.pkl`.
### generate_indices
Es importante que se pueden filtrar sesiones con error usando la lista global `BAD_SESSIONS`.
Genera dos arreglos de *numpy* comprimidos en archivos `.npz` con los indices que corresponden al `gt.pkl` para usarlo para obtener el crop y las anotaciones correspondientes.