Skip to content

Latest commit

 

History

History
104 lines (79 loc) · 6.71 KB

README.md

File metadata and controls

104 lines (79 loc) · 6.71 KB

Prototipo inteligente para la identificación de imágenes falsificadas en el contexto panameño 🥸📷🚫🐍

Resumen 📖

El proyecto implica la construcción de una aplicación basada en Python que utiliza el modelo pre-entrenado Mobilenetv2 para identificar imágenes falsas, específicamente DeepFakes, en el contexto panameño. A través de este proyecto, se busca generar conciencia sobre la importancia de la ciberseguridad, el cuidado de los datos personales y la lucha contra la desinformación, con el objetivo de proteger a las personas y las instituciones de los posibles riesgos asociados a la manipulación de imágenes.

Pre-requisitos e Instalación 💻

¿Qué necesitas para probar el prototipo?

  1. Si no eres Programador (Método Fácil) (Video Tutorial incluido):
  • Descarga el ejecutable .exe del prototipo desde Mega.
  • Ver tutorial explicativo para probar el prototipo Youtube
  1. Si eres Programador:
  • Clona el repositorio en tu computador.
git clone https://github.com/OmarFloresPTY/detector_deepfake_JIC.git
  • Crea un entorno virtual desde cero.
py -m <nombre-del-entorno> venv
.\<nombre-del-entorno>\Scripts\activate
  • Instala las dependencias en tu entorno virtual.
pip install -r requirements.txt
  • Ejecuta el programa.

Construido con 🛠️

A continuación se muestran las herramientas utilizadas para crear el proyecto.

Tecnolog-as-Indentificadas-librer-as-principales

Documentación oficial de cada herramienta:

Diseño Conceptual de la construcción del prototipo 🗺️🧑‍💻

Para entender un poco el flujo de preparación o elaboración del prototipo se presenta el siguiente gráfico: Diagrama-Conceptual

Algunas Características adicionales del prototipo:

  • El proyecto es compatible con la versión actual de Python 3.11.3, lo cual garantiza su compatibilidad con las últimas versiones de la herramienta.
  • Está disponible para ser ejecuta desde un .exe en Windows 10 y 11.
  • El programa fue desarrollado para funcionar en una interfaz gráfica, lo que permite una interacción más amigable y visual con el usuario.
  • La programación de la interfaz está bajo el paradigma de la programación orientada a objetos.

Librerías utilizadas en el proyecto:

  • filedialog: filedialog es un módulo de la librería tkinter que proporciona funciones para interactuar con el sistema de archivos del usuario, permitiendo seleccionar archivos o directorios a través de cuadros de diálogo.

  • customtkinter: customtkinter es una librería personalizada (probablemente creada por el usuario o alguien más) que extiende las funcionalidades de tkinter y ofrece componentes de interfaz gráfica adicionales o personalizados. Al importarla como ctk, se renombra para facilitar su uso en el código.

  • PIL: PIL (Python Imaging Library) es una librería muy popular para el procesamiento de imágenes en Python. Al importar Image y ImageTk, podemos utilizar las funciones y clases proporcionadas por PIL para cargar y manipular imágenes.

  • requests: requests es una librería de Python que simplifica el envío de solicitudes HTTP. Proporciona una interfaz fácil de usar para interactuar con servicios web y realizar solicitudes GET, POST, etc.

  • io: io es un módulo de Python que proporciona clases y funciones para manejar la entrada y salida de datos. Se utiliza en este caso para trabajar con datos binarios.

  • BytesIO: BytesIO es una clase en el módulo io que permite tratar datos binarios como si fueran archivos en memoria. Es útil para leer y escribir datos binarios, como imágenes, en un entorno de memoria.

  • cv2: cv2 es una librería de código abierto para el procesamiento de imágenes y visión por computadora en Python. Proporciona funciones para cargar, manipular y analizar imágenes y videos.

  • urllib.request: urllib es un módulo de Python que proporciona funciones para trabajar con URL y realizar solicitudes web. urllib.request se utiliza en este caso para cargar imágenes desde una URL.

  • numpy: numpy es una librería de Python ampliamente utilizada para realizar cálculos numéricos y manipulación de matrices. Proporciona una estructura de datos de matriz multidimensional y funciones matemáticas para realizar operaciones eficientes en matrices.

  • tensorflow: tensorflow es una librería de aprendizaje automático de código abierto desarrollada por Google. Permite la creación y entrenamiento de redes neuronales y se utiliza ampliamente en tareas de procesamiento de imágenes, reconocimiento de voz, procesamiento de lenguaje natural y más. Al importarla como tf, se renombra para facilitar su uso en el código.

Capturas de Pantalla 📷

A continuación se presentarán las diferentes salidas que otorga el sistema al usuario.

Ventana Principal

Titulo y botones principales

widget01

Frame No.1 para insertar URL, label, textbox y boton para evaluar

widget02

Frame No.2 para insertar IMG, label,boton para buscar imagen y boton para evaluar

widget03

Frame No.3 salida de la evaluación al usuario, label e imagen

Prototipo-1

Autores ✒️

En el proyecto participaron los siguientes autores.

Licencia 📎

Este proyecto está bajo la Licencia MIT License Copyright (c) 2023 Omar Flores


⌨️ con ❤️ por Omar Flores 😊