Está en la página 1de 4

IEEE Photonics Journal

Uso de Redes Neuronales Convolucionales – (CNN)


en la detección de Tuberculosis-(TB), mediante el
uso de imágenes Rayos-X de Tórax

J. C. Fernández, Member, DSRP, Oil and Gas Eng, UNI


A. R. Soriano, Professor, DSRP

DSRP- Data Science Research Peru & Ciencia de Datos e Inteligencia Artificial
Universidad Nacional de Ingeniería - UNI, Lima – Perú

Manuscript received June 10, 2021; revised June 15, 2021. First presentation June 20, 2021.
This research was sponsored by the DSRP - Data Science Research Peru & Universidad Nacional de Ingeniería - UNI Revised June 15, 2021.
First presentation June 20, 2021.

Abstract— La tuberculosis sigue siendo un problema urgente en la agenda de la salud urbana, especialmente en nuestro país
Perú. Ante ello, surge la necesidad de desarrollar e implementar soluciones innovadoras y efectivas en el proceso de diagnóstico
de la tuberculosis. En este artículo, se describe la importancia de la inteligencia artificial como una estrategia para enfrentar el
problema, mediante un diagnóstico oportuno de la enfermedad, donde se aborda la detección de la tuberculosis en imágenes
médicas bidimensionales obtenidas mediante técnicas de rayos X. También, se presenta la transferencia de aprendizaje de modelo
de algoritmos (Transfer Learning), en específico, haciendo el uso de redes neuronales convolucionales

Keywords—Deep Learning, Tuberculosis, Rayos-X, Redes Neuronales, Transfer Learning

junto con imágenes normales, donde están disponibles 7000


I. INTRODUCTION imágenes de rayos X, para los casos Normales (3500
En la actualidad, la tuberculosis (TB) es una enfermedad imágenes) y casos con Tuberculosis. (3500 imágenes)
que no es fácil detectarla, esto se aprecia en la actualidad, la
falta de especialistas y hospitales en el país genera una alta
tasa de mortandad a causa de esta enfermedad. La presente Figura 1. Imágenes Rayos X caso – Tuberculosis
investigación tiene como propósito desarrollar modelos
predictivos para poder detectar la enfermedad utilizando Deep
Learning. 1,2,3,4,5.
En este artículo se presenta los antecedentes del conjunto
de datos utilizado, la metodología de investigación, el diseño
del mismo, la ponderación para poder seleccionar la mejor
metodología, la metodología propuesta y todas las fases que
comprende. También se menciona todas las librerías Python
necesarias para poder realizar el diseño y una futura
implementación, además. Se muestra un prototipo que servirá
de base para futuras investigaciones.

II. BASE DE DATOS


En este trabajo, se utilizaron imágenes de rayos X de tórax
de Kaggle, para ello un equipo de investigadores de la
Universidad de Qatar, Doha, Qatar, y la Universidad de
Dhaka, Bangladesh, junto con sus colaboradores de Malasia
en colaboración con médicos de Hamad Medical Corporation Fuente: Elaboración Propia
y Bangladesh han creado una base de datos de imágenes de
rayos X de tórax para la tuberculosis (TB ) casos positivos
IEEE Photonics Journal

Figura 2. Imágenes Rayos X caso – Normal IV. MECANISMO DE ALGORITMOS


Esta sección describe la formulación del proceso de
registro especializado en imágenes de rayos X del tórax. El
mecanismo del proceso de registro se divide en tres etapas. La
primera etapa es el pre-procesamiento de las imágenes, este
incluye la ecualización de las imágenes y reajuste del tamaño.,
como se muestra en la Figura 4.
Para ello, Keras cuenta con la clase ImageDataGenerator,
que nos permite generar dichos bloques, además de realizar la
técnica llamada data augmentation.

Figura 5. Técnicas de Data Augmentation

Fuente: Elaboración Propia

III. METODOLOGÍA
La metodología usada, consiste en una serie de procesos y
técnicas basadas en otras arquitecturas utilizadas por otros
autores que, en conjunto, forman un flujo de trabajo propio. El
primer paso de esta metodología es la de obtener un conjunto
de datos de Kaggle, donde están disponibles 7000 imágenes
de rayos X (3500 imágenes cada uno para las categorías
Normal y Tuberculosis). Obtenido el conjunto de imágenes
con lo que se va proceder a trabajar, estas deben de dividirse
en tres carpetas: entrenamiento, validación y pruebas (train
set, validation set, test set).
En la investigación seleccionada como base de la
metodología propuesta, se realiza la división de 6000 datos
balanceados que servirá como entrenamiento y validación de Fuente: Elaboración propia
modelo (se recomienda utilizar un 80% para entrenamiento y
20% para validación). Para el desempeño final del modelo, se
utilizaron los 1000 datos restantes. La distribución de datos se Hemos definido la ruta de las imágenes de entrenamiento
aprecia en la siguiente Figura 3. Finalmente, para la y validación. Para las de entrenamiento, le pedimos que las
evaluación de resultados, se utilizaron las métricas errors y normalice y además queremos que, aparte de entrenar la
accuracy. imagen original, entrene con la misma imagen, pero
transformada mediante zoom, rotándola 50 grados, con un
rango de ancho-alto específico de 0.2 y haciendo un flip
Figura 1. Distribución de conjunto de horizontal. Como se muestra en la Figura 5.
datos Imágenes Rayos X Posteriormente definimos un generador de imágenes que
podremos pasar directamente al modelo de entrenamiento. En
la Figura 6 se puede visualizar el código que mediante la
operación flow_from_directory, le especificamos que use el
directorio especificado como base y las etiquetas serán los
nombres de los subdirectorios de la misma.
Además, definimos la resolución específica de las
imágenes y que el entrenamiento será binary. El parámetro
batch_size especifica el número de imágenes a entrenar en
cada bloque.

Fuente: Elaboración Propia


IEEE Photonics Journal

Figura 6. Aplicación métodos ImageDataGenerator y Figura 7: Comportamiento del valor de la función objetivo -
flow_from_directory loss, para 25 Epoch

Fuente: Elaboración propia

Figura 8: Comportamiento del valor de la métrica – accuracy


monitoreada, para 25 Epoch

Fuente: Elaboración propia

V. AQUITECTURA DE MODELO
Usaremos el modelo de Keras - InceptionV3. Inicializaremos
el modelo con los pesos de la Imagenet ya preentrenada y,
finalmente, añadiremos las capas de la red neuronal final.
Como se muestra en la Figura 6.
Los resultados del comportamiento del entrenamiento y
validación del modelo se muestran en la Figura 7 y 8, las Fuente: Elaboración propia
cuales están fijados para 25 Epoch.
De las Figuras 5 y 6 podemos que, a partir las 10 épocas,
el modelo presenta estabilidad con Loss aprox. de 0.001 y un
Figura 4: Algoritmo final de modelos de Red Neuronal accuracy de 97.5 %.
preentrenada
VI. OPTIMIZACIÓN DE MODELO
Para optimizar el modelo se ha usado regularización L1 y
L2 para que el modelo generalice un poco mejor y la función
de activación en las capas ocultas es ReLu. Finalmente, como
el entrenamiento es binario, usaremos Sigmoid para la capa
final. Lo siguiente es generar el modelo especificando las
funciones de coste, optimización y las métricas.
Las funciones de callback que vamos a usar son
EarlyStopping, para que el entrenamiento pare si ve que no
mejora la función de coste tras determinados epochs, y
ReduceLROnPlateau, que, si el entrenamiento no mejora tras
unos epochs específicos, reduce el valor de learning rate del
modelo, lo que normalmente obtiene una mejora del
entrenamiento.
Fuente: Elaboración propia
IEEE Photonics Journal

VII. CONCLUSIONES
El objetivo principal de este artículo es mostrar los
resultados alcanzados por el entrenamiento del modelo de
CNN basados en la arquitectura de Inception-v3. Estos
resultados muestran la posibilidad de aplicar el proceso de
transferencia de conocimiento alcanzando resultados de hasta
97.5% de precisión, aplicados en el reconocimiento de
diagnóstico de tuberculosis, sin necesidad de equipos de
cómputo especializados. Por otro lado, respecto al
rendimiento de los algoritmos de clasificación el implementar
redes neuronales convolucionales – CNN en Python, tiene un
alto potencial en aplicaciones específicas médicas.

VIII. REFERENCIAS

[1] P. Chhikara, P. Singh, P. Gupta, and T. Bhatia, ‘‘Deep


convolutional neural network with transfer learning for
detecting pneumonia on chest X-rays,’’ in Advances in
Bioinformatics, Multimedia, and Electronics Circuits and
Signals (Advances in Intelligent Systems and Computing),
vol. 1064, L. Jain, M. Virvou, V. Piuri, and V. Balas, Eds.
Singapore: Springer, 2020, doi: 10.1007/978-981-15-0339-
9_13.
[2] N. Singh and S. Hamde, ‘‘Tuberculosis detection using
shape and texture features of chest X-rays,’’ in Innovations in
Electronics and Communication Engineering (Lecture Notes
in Networks and Systems), vol. 65, H. Saini, R. Singh, G.
Kumar, G. Rather, and K. Santhi, Eds. Singapore: Springer,
2019, doi: 10.1007/978-981-13-3765-9_5.
[3] H. Ravishankar et al., ‘‘Understanding the mechanisms of
deep transfer learning for medical images,’’ in Deep Learning
and Data Labeling for Medical Applications. DLMIA,
LABELS (Lecture Notes in Computer Science), vol. 10008,
G. Carneiro et al., Eds. Cham, Switzerland: Springer, 2016,
doi: 10.1007/978-3-319-46976-8_20.
[4] M. I. Razzak, S. Naz, and A. Zaib, ‘‘Deep learning for
medical image processing: Overview, challenges and the
future,’’ in Classification in BioApps (Lecture Notes in
Computational Vision and Biomechanics), vol. 26, N. Dey, A.
Ashour, and S. Borra, Eds. Cham, Switzerland: Springer,
2018, doi: 10.1007/978-3-319-65981-7_12.
[5] A. Hosny, C. Parmar, J. Quackenbush, L. H. Schwartz, and
H. J. W. L. Aerts, ‘‘Artificial intelligence in radiology,’’
Nature Rev. Cancer, vol. 18, no. 8, pp. 500–510, 2018, doi:
10.1038/s41568-018- 0016-5.

También podría gustarte