{"id":25811489,"url":"https://github.com/techatlasdev/iadira","last_synced_at":"2025-02-28T00:52:47.202Z","repository":{"id":216664272,"uuid":"741472381","full_name":"TechAtlasDev/IADIRA","owner":"TechAtlasDev","description":"Este proyecto se enfoca en el desarrollo de una inteligencia artificial entrenada con tensorflow, que tiene la capacidad de detectar neumonía usando radiografías de torax, escrita en Python, usando el framework Flask para ejecutar de manera local, una pagina web para la interacción con el sistema.","archived":false,"fork":false,"pushed_at":"2024-08-09T01:53:41.000Z","size":64374,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-08-09T03:02:14.579Z","etag":null,"topics":["ai","castellano","espanol","flask","framework","ia","keras","pneumonia-detection","python","research","tensorfl"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TechAtlasDev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2024-01-10T13:18:54.000Z","updated_at":"2024-08-09T01:53:45.000Z","dependencies_parsed_at":"2024-01-24T12:14:26.561Z","dependency_job_id":null,"html_url":"https://github.com/TechAtlasDev/IADIRA","commit_stats":{"total_commits":6,"total_committers":2,"mean_commits":3.0,"dds":"0.16666666666666663","last_synced_commit":"def3f44270af0525ecba5da350d6a8c3886376b7"},"previous_names":["techatlasdev/iadira"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TechAtlasDev%2FIADIRA","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TechAtlasDev%2FIADIRA/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TechAtlasDev%2FIADIRA/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TechAtlasDev%2FIADIRA/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TechAtlasDev","download_url":"https://codeload.github.com/TechAtlasDev/IADIRA/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241081198,"owners_count":19906462,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","castellano","espanol","flask","framework","ia","keras","pneumonia-detection","python","research","tensorfl"],"created_at":"2025-02-28T00:52:46.527Z","updated_at":"2025-02-28T00:52:47.152Z","avatar_url":"https://github.com/TechAtlasDev.png","language":"Python","readme":"![Captura de pantalla - Dashboard](imagen_gui.png)\n---\n\n# IADIRA 🤖 - Inteligencia artificial detectora de infecciones respiratorias agudas.\n\n## 🗞️ Introducción\nEste proyecto es un prototipo de inteligencia artificial enfocado a la detección de neumonía mediante radiografías de tórax. Representa una herramienta valiosa en el ámbito médico, ofreciendo precisión y velocidad en el diagnóstico.\n\n## Planteamiento del Problema 💪\nEn diversas partes del mundo, las bajas temperaturas pueden desencadenar infecciones respiratorias agudas como la neumonía. Las personas, a menudo, evitan \u003cb\u003eacudir a centros médicos\u003c/b\u003e por temor a costos, demoras o posibles incomodidades. Este proyecto busca abordar estos problemas al proporcionar una herramienta rápida y precisa para la detección de neumonía para brindar una mejor asistencia al médico profesional, para \u003cb\u003eoptimizar\u003c/b\u003e los tiempos de demora y una segunda fuente en el que puede guiarse para confirmar sus diagnósticos.\n\n## Investigación Propuesta 🔍\nDurante la investigación, se comparó el tiempo y la precisión de la detección de neumonía entre médicos radiólogos y la inteligencia artificial (IA). Algunos resultados incluyen:\n\n\u003cul\u003e\n  \u003cli\u003e⚕️ \u003cb\u003eComparación de tiempo estimado en la detección de neumonía con radiografías con radiologos certificados:\u003c/b\u003e\u003c/li\u003e\n  \u003cp\u003eDurante la investigación, el primer objetivo de investigación fué el tiempo que una radiólogo demora en detectar este tipo de patologías, y cuánto tiempo demora en hacerlo una IA, y los resultados fueron los siguientes:\u003cp\u003e\n  \u003ctable\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eEntorno de prueba\u003c/td\u003e\n      \u003ctd\u003eMédico radiólogo\u003c/td\u003e\n      \u003ctd\u003eInteligencia Artificial\u003c/td\u003e\n      \u003ctd\u003eResultado comparativo\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eClínica privada\u003c/td\u003e\n      \u003ctd\u003e1,5 horas\u003c/td\u003e\n      \u003ctd\u003e30 segundos\u003c/td\u003e\n      \u003ctd\u003eLa IA es más rápida\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eCentro de seguros\u003c/td\u003e\n      \u003ctd\u003e15 minutos\u003c/td\u003e\n      \u003ctd\u003e30 segundos\u003c/td\u003e\n      \u003ctd\u003eLa IA es más rápida\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eEntrevista de Técnico Radiólogo\u003c/td\u003e\n      \u003ctd\u003e1 hora\u003c/td\u003e\n      \u003ctd\u003e30 egundos\u003c/td\u003e\n      \u003ctd\u003eLa IA es más rápida\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/table\u003e\n  \u003cli\u003e\u003cb\u003e🥇 Comparación de precisión en el momento del análisis en radiografías:\u003c/b\u003e\u003c/li\u003e\n  \u003cp\u003eDurante la investigación, una de las mayores prioridades es aumentar el nivel de precisión en la IA, para así tener un alto grado de confiabilidad, para lo cual, se obtuvo los siguientes resultados:\u003cp\u003e\n  \u003ctable\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eEtapa del proyecto\u003c/td\u003e\n      \u003ctd\u003eMédico radiólogo\u003c/td\u003e\n      \u003ctd\u003eInteligencia Artificial\u003c/td\u003e\n      \u003ctd\u003eResultado comparativo\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e1ra Etapa\u003c/td\u003e\n      \u003ctd\u003e99,70% de confiabilidad\u003c/td\u003e\n      \u003ctd\u003e68% de confiabilidad\u003c/td\u003e\n      \u003ctd\u003eEl médico radiologo es más preciso\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e2da Etapa\u003c/td\u003e\n      \u003ctd\u003e99,70% de confiabilidad\u003c/td\u003e\n      \u003ctd\u003e88% de confiabilidad\u003c/td\u003e\n      \u003ctd\u003eEl médico radiologo es más preciso\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e3ra Etapa\u003c/td\u003e\n      \u003ctd\u003e99,70% de confiabilidad\u003c/td\u003e\n      \u003ctd\u003e94% de confiabilidad\u003c/td\u003e\n      \u003ctd\u003eEl médico radiologo es más preciso\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/table\u003e\n  \u003cli\u003e\u003cb\u003e✅ Estudio de resultados en entornos reales con radiografías reales:\u003c/b\u003e\u003c/li\u003e\n  \u003cp\u003eGracias a la ayuda de una clínica privada, nos proporcionaron 5 radiografías de torax, 2 con \u003cb\u003eNEUMONÍA\u003c/b\u003e y 3 \u003cb\u003eSIN NEUMONÍA\u003c/b\u003e, por lo que, logramos obtener los resultados:\u003c/p\u003e\n  \u003cul\u003e\n    \u003cli\u003eComparación de resultados de predicciones de la IA con radiografías de tórax con la IA en su primer etapa:\u003c/li\u003e\n    \u003ctable\u003e\n      \u003ctr\u003e\n        \u003ctd\u003eN° de Paciente\u003c/td\u003e\n        \u003ctd\u003eDiagnóstico médico\u003c/td\u003e\n        \u003ctd\u003ePredicción de la IA\u003c/td\u003e\n        \u003ctd\u003eResultado comparativo\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n        \u003ctd\u003e1\u003c/td\u003e\n        \u003ctd\u003eNo tiene Neumonía\u003c/td\u003e\n        \u003ctd\u003eSi tiene neumonía\u003c/td\u003e\n        \u003ctd\u003eFallido\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n        \u003ctd\u003e2\u003c/td\u003e\n        \u003ctd\u003eNo tiene Neumonía\u003c/td\u003e\n        \u003ctd\u003eSi tiene neumonía\u003c/td\u003e\n        \u003ctd\u003eFallido\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n        \u003ctd\u003e3\u003c/td\u003e\n        \u003ctd\u003eSi tiene Neumonía\u003c/td\u003e\n        \u003ctd\u003eSi tiene neumonía\u003c/td\u003e\n        \u003ctd\u003eAcertado\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n        \u003ctd\u003e4\u003c/td\u003e\n        \u003ctd\u003eSi tiene Neumonía\u003c/td\u003e\n        \u003ctd\u003eSi tiene neumonía\u003c/td\u003e\n        \u003ctd\u003eAcertado\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n        \u003ctd\u003e5\u003c/td\u003e\n        \u003ctd\u003eNo tiene Neumonía\u003c/td\u003e\n        \u003ctd\u003eSi tiene neumonía\u003c/td\u003e\n        \u003ctd\u003eFallido\u003c/td\u003e\n      \u003c/tr\u003e\n    \u003c/table\u003e\n\u003c/ul\u003e\n\n## 🔨 Estructura de la IA\nPara llevar a cabo el entrenamiento de este proyecto, usamos \u003cb\u003eREDES NEURONALES CONVOLUCIONALES\u003c/b\u003e, que nos permite usar diferentes tipos de filtros en imágenes para encontrar características en los datos.\n    \u003ctable\u003e\n      \u003ctr\u003e\n        \u003ctd\u003eN° de capa\u003c/td\u003e\n        \u003ctd\u003eTipo de capa\u003c/td\u003e\n        \u003ctd\u003eFunción de la capa\u003c/td\u003e\n        \u003ctd\u003eN° de unidades\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n        \u003ctd\u003e1\u003c/td\u003e\n        \u003ctd\u003eConvolución\u003c/td\u003e\n        \u003ctd\u003eUsa diferentes filtros para encontrar características\u003c/td\u003e\n        \u003ctd\u003e32 mapas\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n        \u003ctd\u003e2\u003c/td\u003e\n        \u003ctd\u003eMaxPooling\u003c/td\u003e\n        \u003ctd\u003eSaca un valor máximo en una matriz de 2x2\u003c/td\u003e\n        \u003ctd\u003e1 vez\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n        \u003ctd\u003e3\u003c/td\u003e\n        \u003ctd\u003eConvolución\u003c/td\u003e\n        \u003ctd\u003eUsa diferentes filtros para encontrar características\u003c/td\u003e\n        \u003ctd\u003e64 mapas\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n        \u003ctd\u003e4\u003c/td\u003e\n        \u003ctd\u003eMaxPooling\u003c/td\u003e\n        \u003ctd\u003eSaca un valor máximo en una matriz de 2x2\u003c/td\u003e\n        \u003ctd\u003e1 vez\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n        \u003ctd\u003e5\u003c/td\u003e\n        \u003ctd\u003eConvolución\u003c/td\u003e\n        \u003ctd\u003eUsa diferentes filtros para encontrar características\u003c/td\u003e\n        \u003ctd\u003e128 mapas\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n        \u003ctd\u003e6\u003c/td\u003e\n        \u003ctd\u003eMaxPooling\u003c/td\u003e\n        \u003ctd\u003eSaca un valor máximo en una matriz de 2x2\u003c/td\u003e\n        \u003ctd\u003e1 vez\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n        \u003ctd\u003e7\u003c/td\u003e\n        \u003ctd\u003eDropout\u003c/td\u003e\n        \u003ctd\u003eSe usa solo un porcentaje de cantidad de neuronas existentes\u003c/td\u003e\n        \u003ctd\u003e50%\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n        \u003ctd\u003e8\u003c/td\u003e\n        \u003ctd\u003eFlatten\u003c/td\u003e\n        \u003ctd\u003eSe realiza un aplanamiento de los datos luego de la convolución\u003c/td\u003e\n        \u003ctd\u003e1 vez\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n        \u003ctd\u003e9\u003c/td\u003e\n        \u003ctd\u003eDensa\u003c/td\u003e\n        \u003ctd\u003eLa parte principal que la IA para realizar el cálculo con la función de activación Relu\u003c/td\u003e\n        \u003ctd\u003e64 neuronas\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n        \u003ctd\u003e10\u003c/td\u003e\n        \u003ctd\u003eDensa\u003c/td\u003e\n        \u003ctd\u003eLa parte principal que la IA para realizar el cálculo con la función de activación Relu\u003c/td\u003e\n        \u003ctd\u003e128 neuronas\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n        \u003ctd\u003e11\u003c/td\u003e\n        \u003ctd\u003eDensa\u003c/td\u003e\n        \u003ctd\u003eLa parte principal que la IA para realizar el cálculo con la función de activación Relu\u003c/td\u003e\n        \u003ctd\u003e64 neuronas\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n        \u003ctd\u003e12\u003c/td\u003e\n        \u003ctd\u003eDensa\u003c/td\u003e\n        \u003ctd\u003eLa parte principal que la IA para realizar el cálculo con la función de activación Sigmoidal\u003c/td\u003e\n        \u003ctd\u003e1 neurona\u003c/td\u003e\n      \u003c/tr\u003e\n    \u003c/table\u003e\n\n## 📓 Fuente de radiografías para el análisis\nPara elaborar el proyecto, he entrenado a la IA usando un set de datos de la plataforma \u003ca href=\"https://kaggle.com/\"\u003eKaggle\u003c/a\u003e que me permitió tener a mi disposición una gran cantidad de \u003cb\u003eradiografías para el análisis\u003c/b\u003e y segmentación de datos importantes.\n\n## Conceptos a tener en cuenta ⚠️\nDurante el desarrollo del proyecto, se tuvo la idea de que, este proyecto es puramente experimental, y que, de ninguna manera se podría \u003cb\u003ereemplazar\u003c/b\u003e el puesto de un médico certificado y con experiencia, ya que, esta IA tiende a fallar aveces, y, a pesar de que su precisión puede ser aumentada a más de un 99.3%, no garantiza los mejores resultados con lujos de datalle, por lo que, se recomienda usarlo \u003cb\u003ecomo un asistente o una herramienta secundaria.\u003c/b\u003e\n\n## Requisitos para usarla 🔨\nDurante su entrenamiento, el modelo fué entrenado con las capas indicadas anteriormente usando una GPU de Google (Tesla T4) por medio de \u003ca href=\"https://colab.research.google.com\"\u003eGoogle Colab\u003c/a\u003e, pero el modelo puede ser ejecutado en una máquina cuya memoria RAM sea mayor a la de 4 GB, y una CPU estable.\n\n## :handshake: Agradecimientos\nQuiero dar las gracias en especial a mi amigo \u003cb\u003eAndre Rafael Apaza Chura\u003c/b\u003e por apoyarme a desarrollar el proyecto, a la clínica \u003cb\u003eMonte Sinaí\u003c/b\u003e, por brindarme las radiografías físicas sin ánimos de lucro para llevar a cabo mi investigación, a la clínica \u003cb\u003eAmericana\u003c/b\u003e, por darme asistencia en el análisis de las placas radiográficas, y a la clínica del \u003cb\u003eDr. Willy Pari\u003c/b\u003e especializada en el diagnóstico por imágenes, por darnos asistencia en el análisis de las placas radiográficas.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftechatlasdev%2Fiadira","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftechatlasdev%2Fiadira","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftechatlasdev%2Fiadira/lists"}