# HoG + SIFT
# HoG: histogram of gradings
Se sacan derivadas direccionales (gradientes) con los pixeles

Se piuede calcular R: magnitud y A: ángulo

Se establece un histograma en 8 direcciones (una de cada gradiente):
A partir de lo anterior se calcula un histograma

Dir 1: desde -22.5 a 22.5 (45), y se ve en la imagen cuales gradientes (pixeles) estan en ese ángulo
Se define un ángulo, se busca los ángulos que están en ese rango y los gradientes que estén marcados como que estan en ese angulo y eso se suma

Esto me está dando información de los gradientes
Lo que se propone es una partición de la imagen y se saca el HoG por cada parte de la imagen, para obtener un historgrama por cada parte
Luego se concatenan
bins son la cantidad de direcciones en las que se evalua por celda

El gradiente se calcula como la diferencia con el pixel contiguo
## Detección de peatones
Se usa sliding windows, en donde en cada parte se aplica un calsificador de si es o no un peatón

# SIFT: scale invariant feature transform
los keypoints son de 128 elementos


Toma key points, de ciertos puntos, y la gracia es que el valor para imagenes similares en el mismo punto van a tener valores similares, es decir un SIFT parecido
Son invariantes a:
- escala: debido a que se pasan por el kernels y que se cambia el sigma, mientras que tambien se ajusta la ventana x1.5
- rotación: porque se usa la matriz de rotación y que se alinea a la dirección 1
- invariante a la iluminación: al calcular los gradientes, se mantienens (mas o menos) igual para toda la imagen proporcionalmente y la normalización
- invariante al punto de vista, siempre y cuando no sea un cambio taaaan drástico (hata 20 grados): po rel punto clave y las particiones y la concatenación
SIFT de diferentes puntos son muy dstintos
## Detección de puntos
Consideremos la siguiente imagen

Se usa la máscara DoG (Gaussianas de diferente ancho)

Se hace una convolución de la máscara con la imagen y se hace para diferentes sigma, los resultados es que el punto blanco es más intenso
La máscara me da la escala


SIFT le pasa las convoluciones y donde encuentra los máximos los usa como puntos, es decir el punto es similar en la imagen y la máscara
La máscara es más chica que la foto
## Cómo construir el descriptor
Son 8 pasos
1. Encontrar keypoint, k(x,y , sigma^2)
2. Encontrar el ángulo A(x,y) de la matriz A (de la parte anterior)
3. Encontrar una ventana centrada en el punto clave de tamaño 1.5 signa centrada en el punto clave

4. ALinear el vector a la orientación 1

5. Definir 16 particiones para esa subparte
6. Hacerle un histograma de gradietnes para cada partición

7. Concatener todos los histogramas (16x128)
8. Normalizar

Al tener dos fotos, buscamos cuáles pares de descriptores SIFT son parecidos

Por ejemplo el 13 es un match falso, mientras que los otro no
Para el match lo que se hace es minimizar la distancia (de algun tipo, no necesariamente euclidiana)