Code Monkey home page Code Monkey logo

breast_cancer_diagnosis's Introduction

Algoritmo de clasificación de cancer de lesiones en exámenes mamográficos.

Este proyecto persigue el objetivo de crear una herramienta que permita clasificar las lesiones presentes en imágenes mamográficas como benignas o malignas.

Para la realización de esta aplicación se han utilizado 4 arquitecturas que componen el estado del arte en tareas de clasificación de imagen como son: VGG16, ResNet50, DenseNet121 y InceptionV3. Las predicciones realizadas por cada arquitectura son combinadas en un Random Forest para obtener la predicción final de cada instancia (probabilidad de que un cáncer sea maligno)

Las bases de datos utilizadas para entrenar cada modelo son:

Este repositorio pretende servir de base para que otras personas puedan aprovechar el trabajo realizado y unirse en la causa para la lucha contra el cáncer de seno. De este modo, a continuación se detallará la estructura del repositorio así como los objetivos de cada módulo o paquete.

  • bin: Contiene los archivos necesarios para crear una interfaz gráfica a partir de la librería Pyqt5. Entre estos destaca la carpeta hooks con las dependencias necesarias a instalar en la aplicación.

  • notebooks: Contiene algunos análisis adhoc para la realización de la herramienta (procesado de imágenes o creación de la combinación secuencial de clasificadores).

  • src: Contiene los paquetes y los scripts principales de ejecución de código. Este paquete se divide en:

    • algoriths: Módulo utilizado para crear las redes neuronales de clasificación y de segmentación (on going). En este módulo se deberían de añadir todas aquellas arquitecturas de red nuevas a incluir. Por otra parte, también existen scripts para la creación secuencial de clasificadores a partir de un Random Forest. La generación de nuevos algorítmos podría introducirse en este script.

    • breast_cancer_dataset: Módulo que contiene los scripts utilizados para realizar el procesado de datos de cada set de datos individual (CBIS, MIAS e INBreast). Estos scripts se encuentran en el paquete databases del módulo, de modo que para cualquier base de datos que se desee añadir, será necesario introducir su procesado en este paquete. Por otra parte, el script database_generator.py crea el set de datos utilizado por los algorítmos de deep learning utilizados uniendo cada base de datos individual contenida en el paquete databases. Asimismo, se aplican técnicas de data augmentation y se realiza el split de datos en entrenamiento y validación.

    • data_viz: módulo utilizado para generar visualizaciones de los resultados obtenidos por las redes.

    • preprocessing: módulo que contiene las funciones de preprocesado genéricas aplicadas a todos los conjuntos de datos. Además, contiene las funcionalidades necesarias para estandarizar las imágenes a formato png o jpg. Cualquier procesado nuevo a añadir, deberá hacerse en este módulo.

    • static: módulo que contiene los archivos estáticos utilizados para la creación de la interfaz gráfica del programa como ficheros .css, .html e imágenes.

    • user_interace: módulo utilizado para crear la aplicación Pyqt5 de clasificación de imágenes de seno.

    • utils: módulo genérico en el cual configurar las rutas de las bases de datos dentro del entorno local desde dónde se esté ejecutando el aplicativo, así como la configuración de los hiperparámetros de las redes neuronales.

    • main_train.py: script utilizado para realizar generar el pipeline de entrenamiento, desde la obtención de datos hasta la creación y el entrenamiento de cada modelo.

    • main.py: script utilizado para lanzar la aplicación final realizada.

Juntamente con los módulos contenidos en esta descripción, se crearán un conjunto de carpetas adicionales. Estas carpetas no están contenidas en el repositorio por motivos de capacidad de almacenaje. A continuación se detallan los módulos y sus objetivos:

  • logging: Carpeta que contendrá los logs de ejecuciones del programa, como por ejemplo los errores producidos durante el procesado de las imagenes.

  • models: Carpeta que contendrá los modelos almacenados juntamente con las predicciones realizadas durante el entrenamiento.

  • data: Carpeta que contendrá las imagenes de cada set de datos convertidas (sub-directorio 01_CONVERTED) y procesadas (sub-directorio 02_PROCESED). Esta carpeta tiene el objetivo de reiterar el proceso de procesado de imagenes una vez realizado.

breast_cancer_diagnosis's People

Contributors

jbustospelegri avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

breast_cancer_diagnosis's Issues

Understanding

Hola, perdoname pero mi castillano no es el mejor entonces puedo ententar de hablerte asi, pero creo que voy a hablar ingles para proseguir. Si no me entiendes, puedo ententar mas xD
I'm on the hunt for a solid repository for my Final year project, doing a BSc CS degree, my topic is, Breast cancer/tumour detection at early stages, hence mammograms. I'm intrigued by your work, it's looks very good, I just would like some guidance as it is all in Spanish, so comments help until a certain point.
So far I only managed to find super-advanced material, e.g., from Adam Yaala or Adam from St. Andrews, the latter has an exquisite dissertation where it explains everything nicely. I suppose you have the same, although I could try to follow it, or very basic projects that 100 people have done, i.e., the Wisconsin data set.

Looking forward to hearing from you

Regards

Gabriele

Csvs y excels necesarios

Hola!

Encontré este repo y me parece muy util para un trabajo de investigación que estoy realizando sobre fantomas mamarios. Estoy hace varios días intentando correr el repositorio pero estoy obteniendo algunos errores, creo que todos se originan a que me faltan los archivos excel y csv que necesitan los datasets. Los de CBIS los descargue de Kaggle pero me estan dando problemas por existencias de Nans an paths de origen, y los de mias e inbreast no se de donde obtenerlos.

Les agradezco cualquier info al respecto, ya sean los csvs y excels necesarios o simplemente los pesos de las redes que me serían de gran utilidad para hacer transfer learning al problema que quiero resolver.

Saludos y muchas gracias!

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.