Professional Documents
Culture Documents
especialmente útil si queremos digitalizar libros antiguos, en R/ Las máquinas de soporte vectorial, máquinas de vectores
los que el contraste entre el texto (que ya ha perdido parte de de soporte o máquinas de vector soporte (Support Vector
sus pigmentos) y el papel (oscurecido y manoseado) no es Machines, SVMs) son un conjunto
demasiado elevado. de algoritmos de aprendizaje supervisado desarrollados
Como con todos los métodos de segmentación se trata de por Vladimir Vapnik y su equipo en los laboratorios AT&T.
asignar cada píxel a un cierto grupo, llamado comúnmente
Estos métodos están propiamente relacionados con problemas
"segmento". La imagen que se debe segmentar, como de clasificación y regresión. Dado un conjunto de ejemplos de
cualquier gráfico rasterizado, está compuesta por valores entrenamiento (de muestras) podemos etiquetar las clases y
numéricos (uno o más valores de color para cada píxel). La entrenar una SVM para construir un modelo que prediga la
pertenencia de un píxel a un cierto segmento se decide clase de una nueva muestra. Intuitivamente, una SVM es un
mediante la comparación de su nivel de gris (u otro valor modelo que representa a los puntos de muestra en el espacio,
unidimensional) con un cierto valor umbral. El nivel de gris de separando las clases a 2 espacios lo más amplios posibles
un píxel equivale a su nivel de luminosidad; el resto de la mediante un hiperplano de separación definido como el vector
información sobre el color no se tiene en cuenta. Dado que entre los 2 puntos, de las 2 clases, más cercanos al que se
esta comparación de valores se realiza individualmente para llama vector soporte. Cuando las nuevas muestras se ponen en
cada píxel, al método del valor umbral se le considera un correspondencia con dicho modelo, en función de los espacios
método de segmentación orientado a píxeles. a los que pertenezcan, pueden ser clasificadas a una o la otra
clase.
c. ¿Qué es un clasificador supervisado y no supervisado
en imágenes? e. ¿Qué y cuáles tipos de kernels tiene una SVM?
R/ Una Máquina de Soporte Vectorial (SVM) aprende la
R/ La clasificación supervisada se basa en la disponibilidad de superficie decisión de dos clases distintas de los puntos de
áreas de entrenamiento. . Se trata de áreas de las que se conoce entrada. Como un clasificador de una sola clase, la descripción
a priori la clase a la que pertenecen y que servirán para
dada por los datos de los vectores de soporte es capaz de
generar una signatura espectral característica de cada una de
formar una frontera de decisión alrededor del dominio de los
las clases. Se denominan clases informacionales. Estas deben
ser áreas lo más homogéneas posibles y en las que sepamos lo datos de aprendizaje con muy poco o ningún conocimiento de
que había el día que se tomó la imagen. Por ello esta operación los datos fuera de esta frontera. Los datos son mapeados por
se realiza el mismo día en el que el satélite toma la imagen y medio de un kernel Gaussiano u otro tipo de kernel a un
luego se compra esta. Otra posibilidad es utilizar fotografía espacio de características en un espacio dimensional más alto,
aérea o información de otro tipo. donde se busca la máxima separación entre clases. Esta
En la clasificación no supervisada no se establece ninguna función de frontera, cuando es traída de regreso al espacio de
clase a priori, aunque es necesario determinar el número de entrada, puede separar los datos en todas las clases distintas,
clases que queremos establecer, y se utilizan algoritmos cada una formando un agrupamiento.
matemáticos de clasificación automática. Los más comunes Las SVM tienen los siguientes tipos de kernel:
son los algoritmos de clustering que divide el espacio de las
Polinomial-homogénea:𝐾(𝑋𝑗, 𝑋𝑗 ) = (𝑋𝑗 ∗ 𝑋𝑗 )𝑛
variables en una serie de regiones de manera que se minimice
la variabilidad interna de los pixeles incluidos en cada región.
El procedimiento consta de una serie de pasos, en cada paso se
identifican los dos individuos más próximos, se hace una clase
con ellos y se sustituyen por el centro de la clase resultante.
De este modo cada paso analiza un individuo menos que el
anterior ya que los individuos van siendo sustituidos por
clases. El proceso se detiene cuando se ha alcanzado un
número de clases igual al número de clases que había sido
establecido a priori.
El resultado final de un proceso de clustering suele ser un
dendrograma en el que puede verse como los diversos Perceptron:𝐾(𝑋𝑗, 𝑋𝑗 ) = ||𝑋𝑗 − 𝑋𝑗 ||
individuos se aglutinan en clases, primero los que están a un
menor distancia (los más parecidos), y como posteriormente
las clases se unen entre si. A partir de un dendrograma
podemos elegir el número de clases que queremos mantener
en función de diferentes criterios.
Imagen Sana3
Imagen Enferma 3
Cantidad
de
Área Área
objetos Clasificación
máxima mínima
en la
imagen
Tratamiento de imágenes UNAD 2018 30 de Octubre 2018 Grupo 208054_1 Tutora Paola Andrea Mateus 6
datos=xlsread('datos.xlsx');
%Clasificador de umbral
datos=xlsread('datos.xlsx');
caracteristicas=datos(1:end,1:3); a. Explique cada línea de código.
entrenamiento=datos(1:end,4);
svmStruct=fitcsvm(caracteristicas,entrenamiento,'KernelF Clc Borra todas las entradas y salidas de la
unction','linear'); pantalla de la ventana de comandos
num=xlsread('prueba.xlsx'); brindándole una “pantalla limpia”
xprueba=num(1:end,1:3);
yprueba=num(1:end,4);thrue=yprueba; Clear Elimina todas las variables del espacio de
clasificacion=predict(svmStruct,xprueba); trabajo actual liberándolas de la memoria
Al implementar el código obtenemos los siguientes del sistema.
resultados. Close all Borra todas las figuras cuyos controladores
no están ocultos
cerebro=inrea Lea la imagen del archivo especificado por
d(“enferma1.j filename infiriendo el formato del archivo
pg”); a partir de su contenido.
Cerebro=imd El comando im2double permite convertir
2double la imagen al doble de la presicion
(cerebro);
Figure; Se hace llamado a un marco donde se
muestra la imagen
Imshow(cereb Comando para mostrar la imagen
Tratamiento de imágenes UNAD 2018 30 de Octubre 2018 Grupo 208054_1 Tutora Paola Andrea Mateus 8
imagen
Imagen 1 1
enferma
3
Imagen 1 1
enferma
4
Imagen 1 1
enferma
donde datos.xlsx es la tabla anteriormente creada y
5
prueba.xlsx es una tabla que contiene nuevas características
Imagen 4 0
con imágenes diferentes a las 3 enfermas y las 3 sanas del
sana 3 punto anterior, ya que estas son con las que se entrenó la
Imagen 4 0 máquina (solicitar por correo interno a su tutor, la base de
sana 4 datos de las imágenes de prueba).
IMAGEN SANA 6
Código Matlab:
Matlab:
Enferma3:
Resultados:
Enferma1:
Sana1:
Enferma2:
Tratamiento de imágenes UNAD 2018 30 de Octubre 2018 Grupo 208054_1 Tutora Paola Andrea Mateus 12
Enferma1:
Enferma2:
Sana2:
Enferma3:
Sana3:
Sana1:
Cantidad rnelScale',
de 'auto');
Área Área
objetos Clasificación
máxima mínima
en la
imagen
Imagen
enferma 3 76448 1163 1
6
Imagen
prueba=xl “lee el archivo de datos”
enferma 2 22801 1785 1
sread('pru
7
eba.xlsx');
Imagen
enferma 3 9746 919 1
8
2.4 Clasificador de umbral: con las dos primeras
Imagen características (cantidad de objetos y área máxima), el
5 16597 504 1
sana 5 estudiante realizará el clasificador por umbral. El
Imagen estudiante debe investigar cómo realizar este clasificador,
3 5119 2595 1
sana 6 anexar el código y resultados obtenidos.
Imagen
1 78528 78528 0
sana 7 IV. SOLUCIÓN A LOS CÓDIGOS
Implementation Código:
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 sanas (la base de
datos será proporcionada por el tutor, por favor,
solicitarla por correo interno).
datos=xlsr “lee el archivo de datos” Nota: Si no está trabajando en la carpeta donde se encuentra la
ead('datos. imagen guardada, al realizar el código le saldrá error.
xlsx');
caracterist “Define el tamaño del vector en el que
icas=datos él se almacenaran los datos”
(1:end,1:3
);
entrenami “Se declara la variable”
ento=dato
s(1:end,4);
svmStruct “Fitcsvmv entrena o valida de forma
=fitcsvm( cruzada un modelo de máquina de
caracterist vectores de una soporte (SVM) para la
icas,entren clasificación de dos clases (binario) en
amiento,'S un conjunto de datos de predictor de
tandardize dimensión baja o moderada”
',true,'Ker
nel
Function','
linear','Ke
Tratamiento de imágenes UNAD 2018 30 de Octubre 2018 Grupo 208054_1 Tutora Paola Andrea Mateus 15
umbral=0.6 y numpixels=50
Enferma 1
Enferma 2
Tratamiento de imágenes UNAD 2018 30 de Octubre 2018 Grupo 208054_1 Tutora Paola Andrea Mateus 16
Enferma 3
Sana 3
Sana 1
Sana 2
>> umbral=0.6-; (define la segmentacion separando las estudiante utiliza el filtro que se obtuvo después de la
regiones segun la intensidad que se ajuste) dilatación no obtendrá el puntaje correcto de este experimento.
>> binEnferma=im2bw(Enferma,umbral;(convierte la imagen
en escala de grises en imagen binaria, reemplaza todos los 2.2. Cada estudiante debe obtener las siguientes
píxeles de la imagen de entrada con una luminancia o umbral características de cada una de 3 imágenes enfermas y de
configurado) las 3 imágenes sanas. Las características las debe guardar
>> numpixels=50; ; (define la cantidad de pixels en los que en una matriz de Excel donde se tenga la siguiente
sera presentada la imagen) información:
>>filtro1=bwareaopen(binEnferma,numpixels); (Elimina los
componentes que tienen menos pixeles basándose en los Nota: todas las características deben ser obtenidas del mismo
pixeles configurados en la imagen binaria) código, es decir el mismo umbral y el mismo filtro, o crear un
>> [lo num]=bwlabel(filtro1);(Se obtiene la cantidad de objetos código adaptativo por resolución de imagen. Asegúrese de
de la imagen e identifica cada pixel de la imagen) hacer el mismo cuadro que se encuentra a continuación en
>> prop=regionprops(lo);(cuenta el numero de objetos dentro Excel.
de la imagen)
>> figure; (crea una ventana para presentar una figura) Cantidad Área Área Clasific
>> imshow(filtro1) (muestra la imagen en escala de grises en de máxima mínima ación
una figura. optimiza la figura, los ejes y las propiedades del objetos
objeto de imagen para la visualización de la imagen) en la
subplot(2,2,1),subimage(Enferma),title('Imagenoriginal'); imagen
subplot(2,2,2),subimage(binEnferma),title('Umbral 0.5'); Imagen
subplot(2,2,3),subimage(filtro1),title('filtro 40 pixcels'); enferma 11 7766 43 1
subplot(2,2,4),subimage(filtro1),title('Filtro1 Regionprops'); 1
(Define el numero de columnas, filas, posicion, variable Imagen
presentada y titulo adjustable) enferma 5 13669 45 1
2
c. ¿Cómo funciona y que datos obtienen de la función Imagen
“bwlabel”? enferma 15 12055 40 1
3
Asigna valores a los objetos encontrados en la Imagen
imagen, objetos en blanco, etiqueta estos elementos, sana 1 2 11188 46 0
permite saber la cantidad de objetos en la imagen, Imagen
toma en una imagen binaria. Esta imagen binaria sana 2 2 11772 199 0
debe contener un grupo de objetos separados entre sí. Imagen
Los píxeles que pertenecen a un objeto se denotan sana 3 7 3287 93 0
con 1 / verdadero, mientras que los píxeles que son el
fondo son 0 / falso.
El estudiante debe anexar el resultado de cada imagen
d. ¿Qué valor se obtiene en las variables “Lo” y en “num”? procesada con un pantallazo de toda la ventana de Matlab,
donde se observe: ComandWindows, Workspace, y Current
Num: Podemos ver la cantidad de objetos en la imagen. Folder.
Lo: Permite identificar pixel por pixel de la imagen sobre
la que estemos trabajando para ver los objetos y tomar el De acuerdo a la investigación que usted ha realizado sobre
valor correspondiente. máquinas de soporte vectorial, sabe que la clasificación está
dada en binario, por lo tanto, 1 será nuestra clasificación para
e. ¿Cómo funciona y que datos obtienen de la función la imagen enferma y 0 para la imagen sana.
“regionprops”?
Guarde la tabla anterior como “datos.xlsx”
Es una función muy útil para el procesamiento
morfológico de una imagen el cual nos permite contar el Enferma 1
número de objetos de una imagen y ubica su posición
dentro de la misma.
Enferma 2 Sana 3
Clasificador de umbral
Tabla Prueba
https://es.wikipedia.org/wiki/M%C3%A9todo_del_valor_u
mbral
Cantidad de
Área Área Clasificac
objetos en
la imagen
máxima mínima ión Rafael C. Gonzalez, Richard E. Woods: Digital
Image Processing. Addison-Wesley, Reading Mass
Imagen
1992. ISBN 0-201-50803-6 (en inglés) Survey over
enferma 6 3 54305 591 1 image thresholding techniques
Imagen Nobuyuki Otsu: A threshold selection method from
enferma 7 3 14155 70 1 grey level histograms. In: IEEE Transactions on
Imagen Systems, Man, and Cybernetics. New York 9.1979,
enferma 8 3 8586 75 1 S.62–66. ISSN 1083-4419 Seminario sobre
Imagen segmentación
sana 5 10 2268 55 0
Imagen
sana 6 10 1591 59 0 Qué es extracción de características en una imagen
Imagen
sana 7 1 60181 0 Scientia et Technica Año XIV, No 38, Junio de 2008.
Universidad Tecnológica de Pereira. ISSN 0122-1701 7 Fecha
de Recepción: 25 de Enero de 2008 Fecha de Aceptación: 9 de
Clasificador de umbral: con las dos primeras características Abril de 2008 TÉCNICAS DE EXTRACCIÓN DE
(cantidad de objetos y área máxima), el estudiante realizará el CARACTERÍSTICAS EN IMÁGENES PARA EL RECONOCIMIENTO
clasificador por umbral. El estudiante debe investigar cómo DE EXPRESIONES FACIALES.
realizar este clasificador, anexar el código y resultados http://revistas.utp.edu.co/index.php/revistaciencia/article/vi
obtenidos. ew/3681/2071