Está en la página 1de 24

Fase 3 – Implementar clasificadores y entrenamiento de

máquinas

Willman Fabián Celis Castellanos – Cód. 1.098.619.117

Grupo: 208054_32

Presentado a:

Sandra Milena García (Tutor)

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD


ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
TRATAMIENTO DE IMÁGENES Código: 208054A_474
Diciembre de 2018
1. Investigación de las siguientes preguntas:

a. ¿Qué es extracción de características en una imagen?

La extracción de características hace posible la reducción de la


complejidad (dimensionalidad) de una imagen mediante la
transformación de los datos de entrada en un conjunto de rasgos
que representan las características esenciales de la imagen.
Una vez segmentada la imagen, puede ser necesario extraer
características de las distintas regiones de interés (ROI)
seleccionadas para determinar con mayor precisión el nivel de
sospecha. El espacio de características puede ser muy grande y
complejo, debido a la gran variabilidad que puede darse tanto en el
tejido sano como en el canceroso. Sin embargo, no todas las
características obtenidas son igualmente significativas. Usar un
número excesivo de características puede incrementar la
complejidad del clasificador y degradar el rendimiento del mismo.
La extracción y selección de características es una etapa clave para
la correcta detección de tumores, ya que el rendimiento del sistema
de CAD depende más de la optimización de la extracción y selección
de características que del método de clasificación. Dependiendo del
tipo de características que se extraigan de la imagen, el espacio de
características puede dividirse en tres categorías: características de
intensidad, características geométricas y características de textura.
a) Las características de intensidad es la aproximación más simple.
Básicamente consiste en utilizar los valores de niveles de gris de
cada ROI para caracterizar la misma. Otras aproximaciones utilizan
características que representen la diferencia entre el nivel de gris
medio de la ROI y el nivel de gris medio de los píxeles que circundan
la ROI. b) Las características geométricas o morfológicas se basan
en la forma de la ROI, calculándose a partir del área y borde de la
misma (área, perímetro, convexidad, momentos de primer,
segundo y tercer orden, oblicuidad, etc.).
c) Las características de textura pueden obtenerse a partir de
técnicas muy diversas, entre las que cabe destacar las matrices de
concurrencia, también llamadas Matrices de Dependencia de
Niveles de Gris o Space Gray Level Dependence Matrices (SGLDM),
los vectores de estadísticas de diferencia de nivel de gris (GLDS) o
las características de Run Length Statistics (RLS).
Independientemente del tipo de características obtenidas en
primera instancia, se puede aplicar el Análisis de Componentes
Principales (PCA) para decorrelar las distintas características y
reducir su número. En este sentido, las técnicas más utilizadas son
la selección de características por etapas mediante el Análisis Lineal
Discriminante y los Algoritmos Genéticos.

b. ¿Qué es un clasificador de umbral?

El punto clave es la elección del valor umbral más adecuado. Esto


se puede realizar bastante bien de manera manual, pero dado que
con las variantes local y dinámica del método se deben establecer
muchos valores umbral, se necesita un método que permita calcular
el mejor valor umbral automáticamente. Hay un gran número de
métodos para la elección del valor.
Tanto si optamos por calcular el umbral manualmente o mediante
un programa, el histograma sigue siendo el elemento más
importante. Los máximos locales se corresponden con los objetos
de la imagen. En el mejor de los casos el histograma será "bimodal",
es decir, en el histograma se podrán reconocer dos picos
claramente. Una técnica sencilla, pero también propensa a errores
es elegir como valor umbral la media entre los dos picos del
histograma. Otra técnica sencilla es elegir como umbral el valor más
bajo entre los dos picos. Con este método seguramente se
conseguiría una segmentación algo mejor.
Un método todavía mejor para calcular el valor de umbral
automáticamente es el método de Otsu que se ha establecido como
estándar.
El método de Otsu calcula el valor umbral de forma que la dispersión
dentro de cada segmento sea lo más pequeña posible, pero al
mismo tiempo la dispersión sea lo más alta posible entre segmentos
diferentes. Para ello se calcula el cociente entre ambas variancias y
se busca un valor umbral para el que este cociente sea máximo.

c. ¿Qué es un clasificador supervisado y no supervisado en


imágenes?

Los sistemas de clasificación supervisados son aquellos en los que,


a partir de un conjunto de ejemplos clasificados (conjunto de
entrenamiento), intentamos asignar una clasificación a un segundo
conjunto de ejemplos. En contra, los sistemas de clasificación no
supervisados son aquellos en los que no disponemos de una batería
de ejemplos previamente clasificados, sino que únicamente a partir
de las propiedades de los ejemplos intentamos dar una agrupación
(clasificación, clustering) de los ejemplos según su similaridad.
d. ¿Qué es máquina de soporte vectorial?

Máquinas de soporte Vectorial, Suporter Vector Machine en inglés,


son una moderna y efectiva técnica de IA, aplicada
fundamentalmente al procesamiento de grandes cantidades de
información, son una moderna y efectiva técnica de IA, que ha
tenido un formidable desarrollo en los últimos años, a continuación
se presentarán los fundamentos teóricos que definen estos sistemas
de aprendizaje.
Uno de los conceptos fundamentales en esta técnica es el algoritmo
Vector de Soporte (VS) es una generalización no-lineal del algoritmo
Semblanza Generalizada, desarrollado en la Rusia en los años
sesenta. El desarrollo de los VS trae consigo el surgimiento de las
Máquinas de Soporte Vectorial. Estas son sistemas de aprendizaje
que usan un espacio de hipótesis de funciones lineales en un espacio
de rasgos de mayor dimensión, entrenadas por un algoritmo
proveniente de la teoría de optimización.
La Minimización del Riesgo Empírico y la Dimensión de Vapnik-
Chervonenkis son fundamentales en las Máquinas de Soporte
Vectorial. Dicho de manera más sencilla el algoritmo se enfoca en
el problema general de aprender a discriminar entre miembro
positivos y negativos de una clase de vectores de n-dimensional
dada. Las MSV pertenecen a la familia de clasificadores lineales.
Mediante una función matemática denominada kernel, los datos
originales se redimensionan para buscar una separabilidad lineal de
los mismos. Una característica de las MSV es que realiza un mapeo
de los vectores de entrada para determinar la linealidad o no de los
casos los cuales serán integrados a los Multiplicadores de Lagrange
para minimizar el Riesgo Empírico y la Dimensión de Vapnik-
Chervonenkis. De manera general, las Máquinas de Soporte
Vectorial permiten encontrar un hiperplano óptimo que separe las
clases.
e. ¿Qué y cuáles tipos de kermes tiene una SVM?

Las funciones kernel son funciones matemáticas que se emplean en


las Máquinas de Soporte Vectorial. Estas funciones son las que le
permiten convertir lo que sería un problema de clasificación no-
lineal en el espacio dimensional original, a un sencillo problema de
clasificación lineal en un espacio dimensional mayor.

Máquina de Soporte Vectorial para Clasificación


Entre las aplicaciones más relevantes de las MSV se encuentra la
Clasificación, el problema de la clasificación puede reducirse a
examinar dos clases sin pérdida de generalidad. La tarea es
encontrar un clasificador que funcione bien en datos futuros, es
decir que generalice bien la clasificación.

Tipos de Máquinas de Soporte Vectorial para la clasificación


Dentro de las máquinas de soporte vectorial para la clasificación se
encuentran:
- C_SVC.
- nu-SVC.
- one_class.

Máquina de Soporte Vectorial para Regresión


Las MSV se desarrollaron inicialmente para solucionar problemas de
clasificación, pero se han ampliado para problemas de regresión.
Los resultados finales a los que se puede arribar luego del empleo
de las MSV pueden ser cualitativos o cuantitativos, para el análisis
cuantitativo se emplean MSV para regresión. Dicho método es una
extensión del anteriormente explicado donde se incluyen los
estimadores de rangos. El empleo de estos determinan los valores
que tienen ruido dentro de la predicción a través de funciones de
pérdida, donde los primeros pasos en este sentido se dieron por
Tuckey quien demostró que, en situaciones reales, se desconoce el
modelo del ruido y dista de las distribuciones supuestas. A raíz de
esto, Huber crea el concepto de estimadores robustos los cuales
están determinados por funciones de pérdida. En la actualidad, las
más utilizadas son: las funciones de pérdida cuadrática y lineal, y
la de Huber, entre otras. En este tipo de técnicas, su estructura se
determina sobre la base del conjunto de entrenamiento
necesitándose pocos parámetros para el mismo. Dicho
entrenamiento se reduce a la solución de un problema de
optimización que se reduce a un problema de programación
cuadrática. Al mismo tiempo, el uso de las funciones Kernels
muestra una gran eficiencia en el resultado de la predicción.
Tipos de Máquinas de Soporte Vectorial para la regresión
- Epsilon_SVR.
- NU_SVR

2. Implementación de los siguientes códigos

Procedimiento (Experimento) – Parte Individual:


2.1 Desarrolle el siguiente código en el script de Matlab. (Asegúrese
de estar trabajando en la carpeta que ya se ha creado). Para
esta unidad el estudiante debe seleccionar 3 imágenes enfermas
y 3 imágenes sanas (la base de datos será proporcionada por el
tutor, por favor, solicitarla por correo interno)

El código a utilizar es el que ya se implementó en la fase 2, en el


ejercicio 2.1. La combinación de numpixel y umbral, debe ser única
para las 6 imágenes y debe ser la que detecte por lo menos el 70%
del “tumor” en las 3 imágenes enfermas. Es decir, el estudiante no
debe hacer un código por cada imagen, sino un código para todas las
imágenes proporcionadas por el tutor.

Nota: Si no está trabajando en la carpeta donde se encuentra la imagen


guardada, al realizar el código le saldrá error.

En vista de las circunstancias de la presentación del trabajo, las imágenes


con las que se va a trabajar son las siguientes:

Cerebro Enfermo 1
Cerebro Enfermo 2

Cerebro Enfermo 3

Cerebro Sano 1
Cerebro Sano 2

Cerebro Sano 3

El código desarrollado fue el siguiente:

clc
clear all
close all
Cerebro=imread('Enferma1.jpg');
Cerebro=im2double(Cerebro);
figure;
imshow(Cerebro)
umbral=0.7;
binCerebro=im2bw(Cerebro,umbral);
figure;
imshow(binCerebro)
numpixels=60;
Filtro1=bwareaopen(binCerebro,numpixels);
figure;
imshow(Filtro1)

se3=strel('line',8,3);
dilatacion1=imdilate(Filtro1,se3);
figure;
imshow(dilatacion1)

[Lo num]=bwlabel(dilatacion1);
prop=regionprops(Lo);
figure;
imshow(Lo)

subplot(3,2,1),subimage(Cerebro),title('Imagen original');
subplot(3,2,2),subimage(binCerebro),title('Imagen con umbral 0.7');
subplot(3,2,3),subimage(Filtro1),title('Imagen con Filtro 60 pixel');
subplot(3,2,4),subimage(dilatacion1),title('Imagen con dilatacion');
subplot(3,2,5),subimage(Lo),title('Imagen con regionprops');

Este mismo código se aplica para todas las imágenes, tanto enfermas
como sanas. Se escoge el umbral 0.7 y el numpixel de 60 por ser las
variables que mejor identifican el tumor en las imágenes enfermas.
Captura código utilizado para todas las imágenes

Imágenes resultantes Enferma1


Imágenes resultantes Enferma2

Imágenes resultantes Enferma3


Imágenes resultantes Sano1

Imágenes resultantes Sano2


Imágenes resultantes Sano3

a. ¿Cómo funciona y que datos obtienen de la función


“bwlabel”?
El comando bwlabel funciona parecido a un conector de una imagen
con un objeto y dato donde se obtiene un matriz con la información
y cuando se encuentra un objeto en la imagen este se etiqueta con
el valor de 1 todos los pixeles que la conforman y en el próximo
objeto encontrado esta toma el valor de 2 y así sucesivamente
cuando se van encontrando los objetos estos toman un valor
ascendente según como sean hallados.

b. ¿Qué valor se obtiene en las variables “Lo” y en “num”?

Lo: Es una matriz la cual nos permite representar pixel a pixel toda
la imagen con la que se está trabajando y donde se encuentre un
objeto esta matriz toma el valor correspondiente según sea su
orden de hallazgo es decir puede tomar valor de uno todos los
pixeles que conforman el objeto 1 y así sucesivamente con los
diferentes pixeles que conforman los demás objetos de la imagen.
Núm: este valor que se obtiene es numérico lo que quiere decir que
es la cantidad de objetos que hay en mi imagen y esta varía de
acuerdo a la cantidad de objetos que tenga la misma.

c. ¿Cómo funciona y que datos obtienen de la función


“regionprops”?

Nos permite obtener una estructura de acuerdo a una serie de


características de la imagen, por ejemplo, para el presente caso
regionprops obtiene la estructura de acuerdo a los siguientes datos:
el Área, Centroid, BoundingBox
Nota: El filtro utilizado para este experimento es el generado después de
la binarización (fase 2, ejercicio 2.1), si el estudiante utiliza el filtro que
se obtuvo después de la dilatación no obtendrá el puntaje correcto de este
experimento.

2.2. Cada estudiante debe obtener las siguientes características de cada


una de 3 imágenes enfermas y de las 3 imágenes sanas. Las
características las debe guardar en una matriz de Excel donde se
tenga la siguiente información:

Cantidad de Área Área Clasificación


objetos en máxima mínima
la imagen
Imagen
1 1671 1671 1
enferma 1
Imagen
1 1846 1846 1
enferma 2
Imagen
4 1584 197 1
enferma 3
Imagen
2 30264 218 0
sana 1
Imagen
2 5184 3286 0
sana 2
Imagen
9 23876 171 0
sana 3
El estudiante debe anexar el resultado de cada imagen procesada con un
pantallazo de toda la ventana de Matlab, donde se observe:
ComandWindows, Workspace, y Current Folder.

Imagen resultante Enferma 1

Pantallazo Matlab Enferma1


Imágenes resultantes Enferma2

Pantallazo Matlab Enferma2


Imágenes resultantes Enferma3

Pantallazo Matlab Enferma3


Imágenes resultantes Sano1

Pantallazo Matlab Sano1


Imágenes resultantes Sano2

Pantallazo Matlab Sano2


Imágenes resultantes Sano3

Pantallazo Matlab Sano3


De acuerdo a la investigación que usted ha realizado sobre máquinas de
soporte vectorial, sabe que la clasificación está dada en binario, por lo
tanto, 1 será nuestra clasificación para la imagen enferma y 0 para la
imagen sana.

 Guarde la tabla anterior como “datos.xlsx”

2.3 Desarrolle el siguiente código en el script de Matlab. (Asegúrese de


estar trabajando en la carpeta que ya se ha creado).

Nota: Si no está trabajando en la carpeta donde se encuentra la


imagen guardada, al realizar el código le saldrá error.

donde datos.xlsx es la tabla anteriormente creada y prueba.xlsx es


una tabla que contiene nuevas características con imágenes diferentes
a las 3 enfermas y las 3 sanas del punto anterior, ya que estas son
con las que se entrenó la máquina (solicitar por correo interno a su
tutor, la base de datos de las imágenes de prueba).

 El estudiante debe incluir en el documento de entrega tanto la tabla


de las características con las que entreno la máquina, es decir las
contenidas en datos.xlsx y la tabla que contiene las características
nuevas contenidas en prueba.xlsx.
 Explique cada línea del código.
En vista de las circunstancias en las que se entrega este documento, no
se pudo realizar este punto, ya que no tenemos la disposición de la base
de datos de las imágenes de prueba.
CONCLUSIONES

Con el desarrollo de esta actividad se identificaron las características


más relevantes del procesamiento de la imagen para realizar y obtener la
mejor clasificación con una precisión y exactitud adecuada de verdaderos
positivos. Se clasificaron las imágenes según sus características luego del
procesamiento.

Además se prosiguió a trabajar en el proyecto final que corresponde a dar


la alerta temprana de un tumor en el cerebro.
REFERENCIAS BIBLIOGRAFICAS

- http://www.fotonostra.com/glosario/escalagrisesgrayscale.html
- Aguado, A. S. (2012). Feature Extraction and Image Processing for
Computer Vision. Oxford: Academic Press 2012. Available from:
eBook Collection (EBSCOhost), pp. 37 - 81. Recuperado de:
http://bibliotecavirtual.unad.edu.co:2048/login?user=proveedor&pas
s=danue0a0&url=http://bibliotecavirtual.unad.edu.co:2051/login.as
px?direct=true&db=nlebk&AN=477505&lang=es&site=ehost-live
- https://www.ibm.com/support/knowledgecenter/es/SS3RA7_sub/mo
deler_mainhelp_client_ddita/clementine/svm_howwork.html
- Petrou M. and Bosdogiann P. (2010). Image Processing: The
Fundamentals. Baffis Lane, Chichester: John Wiley & Sons Ltd, pp.
155 - 194. Recuperado de:
http://pdf.th7.cn/down/files/1312/Image%20Processing,%202nd%2
0Edition.pdf