Code Monkey home page Code Monkey logo

ia-tp3's Introduction

Implementación del Modelo de Hopfield para Identificación de Imágenes

Este repositorio contiene una implementación de un modelo de red neuronal de Hopfield en Python, utilizado para identificar y recuperar patrones en imágenes en el contexto de un caso de estudio específico.

Autor

Materia

  • Inteligencia Artificial

Año

  • 2024

Contenido del repositorio

Archivos principales

  1. main.py: Contiene la implementación del modelo de Hopfield, funciones de preprocesamiento y visualización de imágenes, y pruebas del prototipo.

Ejecución

Para ejecutar el prototipo de identificación de imágenes utilizando el modelo de Hopfield, simplemente ejecute el archivo main.py desde la línea de comandos o desde su IDE preferido. Asegúrese de tener Python y las dependencias necesarias instaladas en su sistema.

Dependencias

Asegúrese de tener instaladas las siguientes dependencias antes de ejecutar el código:

pip install numpy
pip install matplotlib
pip install opencv-python

Cálculo de la Distancia en el Algoritmo

El algoritmo de identificación de imágenes utilizando el modelo de Hopfield incluye un cálculo de la distancia entre los patrones recuperados y los patrones de referencia para evaluar la precisión del modelo. Se utilizan las siguientes métricas de distancia:

  1. Distancia Euclidiana:

    • Calcula la distancia directa entre dos puntos en un espacio bidimensional, que representan los centros de los patrones en las imágenes.
    • Fórmula: $\text{Distancia Euclidiana} = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2}$
    • Esta métrica proporciona una medida de cuán lejos están los centros de los patrones recuperados de los centros de los patrones de referencia.
  2. Distancia en X y en Y:

    • Calcula la distancia en los ejes X e Y entre los centros de los patrones.
    • Fórmulas:
      • $ \text{Distancia en X} = x_2 - x_1$
      • $ \text{Distancia en Y} = y_2 - y_1$
    • Estas métricas proporcionan una medida más específica de cuánto se deben desplazar los centros de los patrones recuperados en cada eje para coincidir con los centros de los patrones de referencia.

Ejemplo de Ejecución

Al ejecutar el archivo main.py, el algoritmo entrenará la red de Hopfield con varios patrones desplazados y luego recuperará patrones desde imágenes de prueba. Los resultados incluirán la visualización de las imágenes recuperadas y la impresión de las coordenadas del centro, junto con las distancias calculadas en X, Y y euclidiana.

Test 0: Centro recuperado: (4.5, 4.5), Centro de referencia: (4.5, 4.5), Distancia euclidiana: 0.0, Desplazamiento en X: 0.0, Desplazamiento en Y: 0.0
Test 1: Centro recuperado: (5.5, 5.5), Centro de referencia: (4.5, 4.5), Distancia euclidiana: 1.4142135623730951, Desplazamiento en X: 1.0, Desplazamiento en Y: 1.0
Test 2: Centro recuperado: (3.5, 3.5), Centro de referencia: (4.5, 4.5), Distancia euclidiana: 1.4142135623730951, Desplazamiento en X: -1.0, Desplazamiento en Y: -1.0
Test 3: Centro recuperado: (6.5, 4.5), Centro de referencia: (4.5, 4.5), Distancia euclidiana: 2.0, Desplazamiento en X: 2.0, Desplazamiento en Y: 0.0
Test 4: Centro recuperado: (4.5, 2.5), Centro de referencia: (4.5, 4.5), Distancia euclidiana: 2.0, Desplazamiento en X: 0.0, Desplazamiento en Y: -2.0

Resumen

Este repositorio proporciona una implementación completa del modelo de Hopfield para la identificación de imágenes, incluyendo el cálculo de distancias para evaluar la precisión del modelo. La utilización de distancias euclidianas y en los ejes X e Y permite una evaluación detallada de los resultados.

ia-tp3's People

Contributors

msebastiao-maxcapital avatar

Watchers

Matias Sebastiao avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.