---
# System prepended metadata

title: Readme Stockout Cristóbal

---

# 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.
