Spaces:
Runtime error
Runtime error
| from core.controllers.pages_controller import Page | |
| class Teoria(Page): | |
| variables_globales = { | |
| } | |
| archivos_css = ["main", | |
| "teoria"] | |
| avances = [ | |
| {"fecha": 1960, | |
| "texto": "Aparece 1"}, | |
| {"fecha": 1970, | |
| "texto": "Aparece 2"}, | |
| {"fecha": 1980, | |
| "texto": "Aparece 3"}, | |
| {"fecha": 1990, | |
| "texto": "Aparece 4"}, | |
| {"fecha": 2000, | |
| "texto": "Aparece 5"}, | |
| {"fecha": 2010, | |
| "texto": "Aparece 6"}, | |
| {"fecha": 2020, | |
| "texto": "Aparece 7"} | |
| ] | |
| fuentes = [ | |
| {"titulo": "Analysis of Classification by Supervised and Unsupervised Learning", | |
| "url": "https://www.computer.org/csdl/proceedings-article/iccima/2007/30500280/12OmNzxyiHV"}, | |
| {"titulo": "Implementation of Interval Arithmetic Algorithms on FPGAs", | |
| "url": "https://dl.acm.org/doi/10.1109/ICCIMA.2007.237"}, | |
| {"titulo": "La Noticia 3", | |
| "url": "https://enlace3.com"}, | |
| {"titulo": "La Noticia 4", | |
| "url": "https://enlace4.com"}, | |
| {"titulo": "La Noticia 5", | |
| "url": "https://enlac5.com"}, | |
| {"titulo": "La Noticia 6", | |
| "url": "https://enlace6.com"}, | |
| ] | |
| def __init__(self, title=str("Teoría"), icon=str("🖼️"), init_page=False): | |
| super().__init__() | |
| if init_page: | |
| self.new_page(title=title, icon=icon) | |
| self.new_body(True) | |
| self.init_globals(globals=self.variables_globales) | |
| for archivo in self.archivos_css: | |
| self.cargar_css(archivo_css=archivo) | |
| def agregar_card_fundamentos(self, columna): | |
| card_fundamentos = columna.container() | |
| card_fundamentos.markdown( | |
| unsafe_allow_html=False, | |
| help=None, | |
| body=""" | |
| ## Sobre el origen de la tecnología | |
| """) | |
| expander = card_fundamentos.expander( | |
| expanded=False, | |
| label="Aspectos básicos y fundamentales de la clasificación de imágenes." | |
| ) | |
| expander.markdown( | |
| unsafe_allow_html=False, | |
| help=None, | |
| body=""" | |
| La **visión artificial** es un **campo interdisciplinario** que busca **emular la percepción visual humana** utilizando **sistemas computacionales**. | |
| La **clasificación de imágenes**, es una rama esencial de la **visión artificial**, se refiere a la **capacidad de las computadoras** para **identificar y categorizar** objetos y patrones en **imágenes visuales.** | |
| """) | |
| imagen_intro1, imagen_intro2, imagen_intro3 = expander.columns( | |
| 3, gap="small") | |
| src_imgI_1 = self.imgg.open("core/imagenes/shiba.png") | |
| src_imgI_2 = self.imgg.open("core/imagenes/shiba.png") | |
| src_imgI_3 = self.imgg.open("core/imagenes/shiba.png") | |
| imagen_intro1.image( | |
| src_imgI_1, | |
| use_column_width="auto" | |
| ) | |
| imagen_intro2.image( | |
| src_imgI_2, | |
| use_column_width="auto" | |
| ) | |
| imagen_intro3.image( | |
| src_imgI_3, | |
| use_column_width="auto" | |
| ) | |
| expander.markdown( | |
| unsafe_allow_html=False, | |
| help=None, | |
| body=""" | |
| La **clasificación de imágenes** tuvo sus inicios en las **décadas de 1960 y 1970**, cuando los **investigadores** comenzaron a explorar **métodos** para la **detección** de bordes y formas elementales en **imágenes** [Roberts, 1973]. Fue en este **período** cuando se sentaron las **bases** para la **comprensión** computacional del **contenido visual**. | |
| Las **primeras aplicaciones** de la **clasificación de imágenes** se centraron en la **detección y reconocimiento** de patrones básicos en **imágenes**, con **aplicaciones** en campos como la **industria manufacturera** y la **inspección de calidad**. | |
| A lo largo de su **evolución**, la **clasificación de imágenes** por computadora ha experimentado **avances** notables. | |
| """) | |
| imagen_outro1, imagen_outro2 = expander.columns(2, gap="small") | |
| src_imgO_1 = self.imgg.open("core/imagenes/shiba.png") | |
| src_imgO_2 = self.imgg.open("core/imagenes/shiba.png") | |
| imagen_outro1.image( | |
| src_imgO_1, | |
| use_column_width="auto" | |
| ) | |
| imagen_outro2.image( | |
| src_imgO_2, | |
| use_column_width="auto" | |
| ) | |
| expander.markdown( | |
| unsafe_allow_html=False, | |
| help=None, | |
| body=""" | |
| Desde su **descubrimiento** en la década de **1960**, la introducción de **redes neuronales convolucionales** (CNN) en los **90's**, incluyendo la última década, marcada por la adopción de **modelos** pre-entrenados con **transformers**, como el **Vision Transformer** (ViT) en **2021** y el **Swin Transformer** en el mismo año, se ha presenciado una **transición significativa** en la **capacidad** de las **computadoras** para **comprender y categorizar contenido visual**, impulsando la **visión artificial** hacia nuevas fronteras de **eficiencia y precisión** en la **clasificación de imágenes**. | |
| """) | |
| card_fundamentos.markdown( | |
| unsafe_allow_html=False, | |
| help=None, | |
| body=""" | |
| ##### La **clasificación de imágenes**, esencial en **visión artificial**, implica que las **computadoras identifiquen objetos en imágenes.** | |
| """) | |
| def agregar_card_avances(self, columna): | |
| card_avances = columna.container() | |
| card_avances.markdown( | |
| unsafe_allow_html=False, | |
| help=None, | |
| body=""" | |
| ## Línea de tiempo. | |
| """) | |
| expander = card_avances.expander( | |
| expanded=False, | |
| label="Avances, desarrollos y aplicaciones a través de la historia." | |
| ) | |
| expander.markdown( | |
| unsafe_allow_html=False, | |
| help=None, | |
| body=""" | |
| Desde la **década de 1960** hasta la **actualidad**, la **clasificación de imágenes** por **visión artificial** ha tenido **grandes avances**. | |
| A continuación puede **ver** de forma **interactiva** algunos de estos **avances**. | |
| """) | |
| a_inicio, a_fin = expander.select_slider( | |
| label='Seleccione un rango de fecha', | |
| options=[avance.get('fecha') for avance in self.avances], | |
| value=(self.avances[1].get('fecha'), self.avances[2].get('fecha'))) | |
| expander.markdown( | |
| unsafe_allow_html=False, | |
| help=None, | |
| body=f""" | |
| ##### Algunos acontecimientos desde {a_inicio} hasta {a_fin} incluyen: | |
| """ | |
| ) | |
| for fecha in range(a_inicio, a_fin+1): | |
| for avance in self.avances: | |
| if fecha == avance.get('fecha'): | |
| expander.markdown( | |
| unsafe_allow_html=False, | |
| help=None, | |
| body=f""" | |
| ###### **{avance.get('fecha')}** : *{avance.get('texto')}* | |
| """ | |
| ) | |
| card_avances.markdown( | |
| unsafe_allow_html=False, | |
| help=None, | |
| # Esto se logra mediante el entrenamiento de **algoritmos de aprendizaje profundo**, como las **redes neuronales convolucionales (CNN)** o modelos basados en **Transformers**. Estos algoritmos se entrenan utilizando un **amplio conjunto de datos** de imágenes etiquetadas, donde cada imagen tiene una **etiqueta que describe** su contenido (por ejemplo, "gato" o "árbol"). | |
| # A continuación veremos cómo la librería Transformers utiliza el **modelo pre-entrenado Google/ViT**, entrenado con un conjunto de datos de más de 14 millones de imágenes, etiquetadas en más de 21,000 clases diferentes, todas con una resolución de 224x224. | |
| body=""" | |
| ##### Desde sus **orígenes** hasta la **actualidad**, la **clasificación de imágenes** ha tenido **grandes avances** en el campo de la **automatización e inteligencia artificial**. | |
| """) | |
| def agregar_card_fuentes(self, columna): | |
| card_fuentes = columna.container() | |
| card_fuentes.markdown( | |
| unsafe_allow_html=False, | |
| help=None, | |
| body=""" | |
| ## Fuentes | |
| """) | |
| expander = card_fuentes.expander( | |
| expanded=False, | |
| label="Enlaces de referencia." | |
| ) | |
| for fuente in self.fuentes: | |
| expander.markdown( | |
| unsafe_allow_html=False, | |
| help=None, | |
| body=f""" | |
| ###### * **{fuente.get('titulo')}:** | |
| *Enlace: {fuente.get('url')}* | |
| """ | |
| ) | |
| card_fuentes.markdown( | |
| unsafe_allow_html=False, | |
| help=None, | |
| body=""" | |
| ###### Es **importante** mencionar que esta **compilación** se encuentra en proceso de **construcción**. | |
| *Si deseas **participar**, eres **bienvenido** de aportar en el repositorio oficial:* | |
| https://github.com/coder160/demos/ | |
| """) | |
| def build(self): | |
| # secciones | |
| columna_principal = self.get_body().columns(1, gap="small")[0] | |
| self.agregar_card_fundamentos(columna_principal) | |
| self.agregar_card_avances(columna_principal) | |
| self.agregar_card_fuentes(columna_principal) | |
| if __name__ == "__main__": | |
| Teoria(init_page=True).build() | |