Grupo #45
- Integrantes
Nombre | Carnet |
---|---|
Asunción Mariana Sic Sor | 201504051 |
Elba María Alvarez Domínguez | 201408549 |
Se desarrolló una aplicación web similar a un aplicación para almacenamiento de fotos, esta permite subir todo tipo de fotos. Utilizar servicios de Machine Learning.
- Aplicación creada con Bootstrap, Javascript, CSS y HTML
- Para el desarrollo de este servidor, se hizo uso de Flask para poder crear la respectica API RESTFul, así como librerías en la integración de toda la práctica: flask_cors, boto3
- Se utilizó AWS S3 para el alojamiento de las imágenes tanto las de perfil como la de los diferentes álbumes, así como para alojar la página web.
- Para la base de datos de este proyecto se utilizó el servicio de DynamoDB (NoSQL)
- Se han agregado funciones como reconocimiento facial, características que posee una persona en su foto de perfil y los álbumes de han categorizado según las fotos que se deseen subir.
- La descripción de cada fotografía tiene la opción de traducir a tres diferentes idiomas. Estos son: Inglés, Ruso y Portugués. El idioma de origen puede ser cualquiera.
Se crearon usuarios por cada uno de los servicios de AWS utilizados en la arquitectura de la aplicación, usuarios para administrar:
-
Vista desde consola de administrador
Vista desde consola de usuario
s3-sicmmar
Políticas para grupo
s3-group
al cual perteneces3-sicmmar
-
Vista desde consola de administrador
Vista desde consola de usuario
ec2-sicmmar
-
Vista desde consola de administrador
Vista desde consola de usuario
dynamo-sicmmar
-
Vista desde consola de administrador
-
Vista desde consola de administrador
-
Vista desde consola de administrador
-
Bucket
practica2-g45-imagenes
, este contiene dos carpetas (fotos_perfil
yfotos_publicadas
) en las cuáles se almacenan todas las imágenes a almacenar en Ugram.Bucket
practica2-g45-paginaweb
, este contiene alojado el sitio web estático para la visualización de Ugram. -
Máquina Virtual con Ubuntu para servidor de Python con IP privada de
172.31.26.177
e IP pública3.15.161.46
. -
Para el almacenamiento de los datos de Ugram, se utilizó una tabla llamada
usuario
, la cual cada registro en ella contiene la siguiente estructua{ "username":"usuario1", "nombre":"Nombre Usuario", "nFoto":"perfil.png", "foto_perfil":"https://url-bucket-img/perfil-47450104.png", "contrasena":"contrasenaenMD5", "etiquetas": [ { "edad":"21-35 años" }, { "barba":"No tiene barba" }, { "lentes" :"Usa lentes" }, { "ojos":"Ojos Abiertos" }, { "genero":"Femenino" }, { "sonrisa":"No esta sonriendo" }, { "sentimiento":"Feliz" } ], "album": [ [ { "nombre_album":"Perfil", [ Lista de Fotos ... ] }, { "nombre_album":"Album1", [ { "nombre_foto":"Foto1", "descripcion":"Descripcion Foto 1", "enlace_foto":"http://practica2-g45-paginaweb.s3-website.us-east-2.amazonaws.com/fotos_publicadas/foto1-4778914.jpg" }, Lista de Foto de cualquier Album ... ] } ], Lista de Albumes ... ] }
Por ejemplo, se puede observar la estructura anterior en un registro para el usuario
sicmmar
Estas funciones están descritas para el SDK de AWS para Python (boto3)
Método | Parámetro | Descripción |
compare_faces() |
SourceImage={
'S3Object':{
'Bucket':BUCKET_NAME,
'Name': nombre_foto
}
},
TargetImage={
'Bytes':base64.b64decode(imagen)
},
SimilarityThreshold=81 |
Método utilizado para comparar similitud de dos rostros entre dos imágenes dadas con un número dado de aprobación de similitud. Para este caso, la imagen origen será la foto de perfil publicada en un bucket de S3 y la imagen destino será la imagen que sea tomada en el instante con cámara web y enviada en base64 |
detect_faces() |
Image={
'S3Object':{
'Bucket':BUCKET_NAME,
'Name': ubicacion
}
},
Attributes=['ALL'] |
Método utilizado para detectar rostros en una imagen dada, la imágen de origen será la foto de perfil del usuario publicada en un bucket de S3 y se manda como parámetro 'ALL' para que retorne todos los aspectos sobre los rostros detectados. |
detect_labels() |
Image={
'S3Object':{
'Bucket':BUCKET_NAME,
'Name': ubicacion
}
},
MaxLabels=3 |
Método que analiza imágenes y en base a este proceso genera y devuelve una serie de tags relacionados al contenido de las imágenes. |
detect_text() |
Image={
'Bytes':base64.b64decode(imagen)
} |
Método que analiza imágenes y mediante inteligencia artificial logra capturar el texto contenido en ella |
Inicio de sesión con reconocimiento facial
Página de Registro
Página principal donde el usuario puede observar y gestionar sus datos
Editar datos de perfil
Función de Extraer Texto
Cargar una nueva foto
Manejo de Álbum
ChatBot