Desarrollo de un algoritmo Eigenfaces: segunda etapa

Autor: | Última modificación: 1 de junio de 2023 | Tiempo de Lectura: 2 minutos
Temas en este post:

En un post anterior iniciamos el desarrollo de un algoritmo Eigenfaces en el cual desarrollamos las dos primeras etapas: la descarga de datos y la carga de imágenes. Para ello, creamos el directorio donde se iban a descargar las imágenes del dataset y, posteriormente, las descargamos. Acto seguido, creamos una matriz que nos enseñara el número de la foto que buscáramos.

En este artículo seguiremos con dicho ejercicio y la siguiente etapa es la transformación de esas imágenes que hemos cargado previamente.

Transformación de imágenes

Convertimos la matriz de todas las imágenes de 250×250 en 1×62500.

Cargamos todas las imágenes de George W. Bush y de otros personajes y las guardamos en un array de N x 62500.

A continuación, dividimos esa matriz en dos, una para entrenamiento y otra para testing.

#Desarrollo de un algoritmo Eigenfaces
img <- rbind (img, img)
dim (img)

2 . 62500

#Desarrollo de un algoritmo Eigenfaces
get all pics for <- function {
i <- 0
list imgs-list()
repeat { 
i <- i + 1
img <- get_pic (name, id = 1, bw = TRUE)}
if (is.null (img)){ 
break

}
dim (img) <- c (1, 250 * 250) 
list_imgs [[i]] <- img

}
do.call ("rbind", list_imgs)

}
name <- 'George W Bush'
pics_bush <- get_all_pics_for (name)
dim (pics_bush)

530 . 62500

#Desarrollo de un algoritmo Eigenfaces
pics_other <- get_all_pics_for ('Ariel Sharon')
for (name in c ('Jose Maria Aznar', 'Hugo Chavez', 'Tony Blair', 'Colin Powell', 'Donald Rumsfeld', 'Vladimir Putin', 'Junichiro Koizumi', 'Arnold Schwarzenegger' )) {
imgs <- get_all_pics_for (name)
pics_other <- rbind (pics_other, imgs)
} d
dim (pics_other)
set.seed(1)
idx_bush <- sample (1 : nrow (pics_bush), 0.7 * nrow (pics_bush),)
train_bush <- pics_bush [idx_bush,]
test_bush <- pics_bush [-idx_bush,]

idx other <- sample (1 : nrow (pics_other), 0.7 * nrow (pics_other),) 
train other <- pics_other [idx_other,]
test_other <- pics_other [-idx_other,]

train matrix <- rbind (train_bush, train_other)
dim (train_matrix)

test matrix <- rbind (test_bush, test_other)
dim (test matrix) 

[Train]

947 . 62500

[Test]

406 . 62500

rownames (train_matrix) <- c (rep ("bush", nrow (train_bush)), rep("other", nrow(train_other)))
rownames (test_matrix) <- c (rep ("bush", nrow (test_bush)), rep ("other", nrow (test_other)))
train_matrix [sample (1 : nrow (train_matrix),10), 1 : 10]
Desarrollo de un algoritmo Eigenfaces: segunda etapa 1
desarrollo de un algoritmo eigenfaces
Resumen del procedimiento
plot_row_image <- function (row) {
img <- matrix (row, ncol = sqrt (length (row)))
plot (1 : 2, type = 'n')
rasterImage (img, 1, 1, 2, 2)
}
plot_row_image (train_matrix [800 , ])
Desarrollo de un algoritmo Eigenfaces: segunda etapa 2

¿Qué sigue?

Así, damos por terminado el desarrollo de un algoritmo Eigenfaces.

Si te ha gustado este ejercicio, recuerda que en nuestro Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp tenemos muchos más. Esta es una formación intensiva en la que aprenderás todo lo necesario para incursionar rápidamente en el mundo laboral y conseguir un mejor empleo. ¡Anímate y solicita más información!

👉 Descubre más del Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp ¡Descarga el temario!

👉 Prueba el Bootcamp Gratis por una Semana ¡Empieza ahora mismo!

👉 Conoce nuestros otros Bootcamps en Programación y Tecnología

[email protected]

Días

Big data, inteligencia artificial & machine learning full stack bootcamp

Fórmate en Big Data y Consigue el Empleo que sueñas

becas | opciones de financiación