Aporte Aprendizaje de Maquinas

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 11

Etapa 3 – Aprendizaje de maquinas

Duvan Alexis Guali Castillo


Universidad nacional abierta y a distancia UNAD
Tratamiento de imágenes
Presentado a: MILTON OSVALDO AMARILLO
2024
dagualic@unadvirtual.edu.co

INTRODUCCION La actividad consiste en:

En este trabajo, exploramos conceptos fundamentales del


procesamiento de imágenes y el aprendizaje automático. Definición de conceptos:
Comenzamos definiendo la extracción de características en
imágenes y exploramos clasificadores supervisados como
árboles de decisión, regresión por mínimos cuadrados y a. ¿Qué es extracción de características en una
máquinas de vectores de soporte (SVM). También imagen?
investigamos diferentes tipos de kernels utilizados en SVM. La extracción de características en una imagen es el proceso
de identificar y capturar información relevante, como
Luego, nos enfocamos en la implementación práctica utilizando forma, color y textura. Es esencial en visión por
MATLAB. Desarrollamos códigos para extraer características computadora y procesamiento de imágenes para tareas
de imágenes, clasificación con SVM y creación de como reconocimiento de objetos y clasificación. Se emplean
clasificadores por umbral. Además, exploramos cómo guardar diversas técnicas, desde métodos simples basados en píxeles
y manipular datos utilizando hojas de cálculo de Excel. hasta algoritmos avanzados como descriptores de
características. Este proceso simplifica la representación
.

Objetivos visual para análisis posterior, facilitando la detección de


patrones y la toma de decisiones por parte de sistemas
Comprender los conceptos fundamentales de procesamiento automatizados.
de imágenes, incluida la extracción de características y la
clasificación supervisada.
b. ¿Qué es un clasificador supervisado conocido como
Explorar la implementación práctica de algoritmos de Árboles de decisión?
aprendizaje automático en MATLAB para análisis de Los árboles de decisión son clasificadores supervisados que
imágenes. toman decisiones basadas en características de los datos. Se
representan como estructuras de árbol donde cada nodo interno
Analizar el rendimiento y la eficacia de diferentes plantea una pregunta sobre una característica, y las ramas
clasificadores supervisados en la tarea de clasificación de representan posibles respuestas. Son útiles para clasificación y
imágenes. regresión, siendo especialmente adecuados para problemas con
decisiones jerárquicas. Son fácilmente interpretables y pueden
manejar datos numéricos y categóricos.

c. ¿Qué es un clasificador supervisado conocido como


Regresión por mínimos cuadrados?
La Regresión por mínimos cuadrados es un clasificador
supervisado utilizado para modelar la relación entre una
variable dependiente y una o más variables independientes. En
lugar de clasificar datos en categorías como en la clasificación,
la regresión predice valores numéricos. El método de mínimos 4. Kernel sigmoidal: Emplea una función sigmoide para
cuadrados encuentra la línea (o plano, o hiperplano) que mapear datos a un espacio de características, útil para
minimiza la suma de los cuadrados de las diferencias entre los problemas no lineales.
valores predichos y los valores reales. Este enfoque es
comúnmente utilizado en análisis de regresión lineal, pero
también se puede extender a modelos no lineales mediante Cada kernel tiene su aplicación particular y su elección depende
técnicas de regresión polinómica u otros métodos de regresión de la naturaleza de los datos y la complejidad del problema de
no lineales. clasificación.

d. ¿Qué es un clasificador supervisado y no Después de realizar la lectura del libro guía se debe
supervisado en imágenes? estructurar con sus propias y diseñar la infografía.
En imágenes, un clasificador supervisado utiliza datos
etiquetados para asignar imágenes a categorías conocidas.
Requiere ejemplos previamente etiquetados para aprender y
ajustar sus parámetros. En contraste, un clasificador no
supervisado identifica patrones y estructuras en los datos sin
etiquetas predefinidas, agrupando imágenes en conjuntos
basados en similitudes de características. Los algoritmos no
supervisados son útiles para explorar datos sin etiquetas y
descubrir patrones ocultos.

e. ¿Qué es el clasificador supervisado conocido como


Support Vector Mchine (SVM)?
El clasificador supervisado Support Vector Machine (SVM)
es un modelo de aprendizaje automático utilizado para
clasificación y regresión. Su objetivo es encontrar el
hiperplano óptimo que mejor separa las clases en un espacio
de características. Es efectivo en espacios de alta dimensión
y puede manejar datos linealmente y no linealmente
separables. Utiliza técnicas de maximización del margen
para lograr una generalización robusta y puede extenderse
mediante el uso de trucos del kernel para datos no lineales.

f. ¿Cuáles tipos de kernels tiene una SVM? defina


cada uno de estos kernels
Los tipos de kernels en una SVM son herramientas
fundamentales para el aprendizaje de máquinas, permitiendo
operar en espacios de características de alta dimensión.
1. Kernel lineal: Ideal para datos linealmente separables,
calcula la similitud entre pares de vectores de características.
2. Kernel polinomial: Proyecta los datos a un espacio de
características de mayor dimensión utilizando polinomios de
grado d, útil para relaciones no lineales.
3. Kernel radial (RBF): Mapea datos a un espacio
infinitamente dimensional utilizando una función Gaussiana,
adaptándose bien a datos no linealmente separables.
Implementación de códigos en software % Nombre: Duvan Alexis Gualy
% Periodo: 1601_2024
% Grupo: 208054_22
a. Desarrolle el siguiente código en el script de Matlab y % Semestre: 7
guárdelo como “aprendizaje”. (Asegúrese de estar % Año:2024
trabajando en la carpeta que ya se ha creado).
clear all
close all
a. Explique cada línea de código. clc

ID=imread('ID 2.png');
[Lo num]=bwlabel(Filtro1) [ID pos] = imcrop(ID);
Etiqueta los objetos en una imagen binaria Filtro1 y devuelve GrayID=rgb2gray(ID);
una imagen etiquetada Lo donde cada objeto tiene una imshow(GrayID)
etiqueta única, y el número total de etiquetas se almacena en GrayID=im2double(GrayID);
num. imhist(GrayID)
ID=im2double(ID);
prop=regionprops(Lo) imshow(ID)
Calcula las propiedades de las regiones en la imagen umbral=0.6
etiquetada Lo y las almacena en la estructura de datos prop. binID=im2bw(ID,umbral);
binID=~binID;
figure;
imshow(Lo) imshow(binID)
Muestra la imagen etiquetada Lo
numpixels=70;
Filtro1=bwareaopen(binID,numpixels);
ultimo_numero =imcrop(Filtro1,prop(end).BoundingBox); imshow(Filtro1)
Devuelve las coordenadas de la caja delimitadora (bounding
box) del último objeto etiquetado en Lo. imcrop() recorta la [Lo num]=bwlabel(Filtro1);
imagen Filtro1 utilizando la caja delimitadora obtenida prop=regionprops(Lo);
anteriormente, y el resultado se almacena en ultimo_numero. imshow(Lo)
ultimo_numero =
figure; imcrop(Filtro1,prop(end).BoundingBox);
Crea una nueva figura para mostrar la siguiente imagen. figure;
imshow(ultimo_numero)
imshow(ultimo_numero) prop_ultimo_numero=regionprops(ultimo_numero,
'Centroid','Circularity')
Muestra la imagen recortada ultimo_numero.

prop_ultimo_numero=regionprops(ultimo_numero,'
Centroid','Circularity') b. ¿Cómo funciona y que datos obtienen de la función
Calcula las propiedades de la región en ultimo_numero, “bwlabel”?
específicamente el centroide y la circularidad, y almacena los
resultados en prop_ultimo_numero. bwlabel etiqueta los objetos en una imagen binaria.

Cada región de píxeles conectados se etiqueta con un número


único.

Asigna un número diferente a cada objeto en la imagen.


Datos obtenidos:
Imagen ID 2
Imagen etiquetada: Una imagen donde cada objeto está
marcado con un número único.

Número total de objetos etiquetados: Un valor entero que


indica la cantidad de objetos únicos presentes en la imagen.

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

La variable Lo contiene una imagen etiquetada donde cada


objeto se representa con un número único. Este número es
asignado por la función bwlabel. Cada píxel en la imagen Imagen ID 5
Lo corresponde a un píxel en la imagen original Filtro1, pero
en lugar de tener solo valores binarios (0 o 1), ahora tienen
etiquetas numéricas que representan a qué objeto pertenecen.

La variable num contiene el número total de objetos


etiquetados en la imagen Filtro1. Este valor es útil para saber
cuántos objetos diferentes se encontraron en la imagen y sirve
como un identificador del último objeto en la imagen
etiquetada.

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


“regionprops”? Imagen ID 6

La función regionprops en MATLAB/Octave calcula


propiedades de las regiones en una imagen etiquetada. Toma
una imagen etiquetada como entrada y devuelve una estructura
de datos que contiene propiedades como área, perímetro,
centroide, caja delimitadora y excentricidad para cada región en
la imagen. Estos datos son útiles para analizar y caracterizar
objetos en una imagen, lo que puede ser utilizado para tareas
como reconocimiento de patrones, segmentación de objetos y
seguimiento de objetos en movimiento.

NOTA: Para esta primera actividad los valores a utilizar serán


los siguientes
Umbral: 0.6
Numpixels: 70
Imagen ID 7 Imagen ID 10

Imagen ID 8 Imagen ID 11

Imagen ID 9 Imagen ID 12
Imagen ID 13 PUNTO 2
a. Cada estudiante debe obtener las siguientes características
de cada una de las imágenes de la base de datos de
entrenamiento. Las características las debe guardar en una
matriz de Excel donde se tenga la siguiente información

Tabla de entrenamiento.xlsx

CENTR CENTR CLASIFICA


CIRCULAR CLASIFICA
OIDE OIDE CION
IDAD CION SVM
EN X EN Y EXPERTO
6.0845 8.3662 0.3966 1 1
Imagen ID 18 6.0845 8.3662 0.3966 1 1
12.8799 15.1883 0.5025 0 0
9.5431 13.4873 0.4297 1 1
9.6000 13.5744 0.4305 1 1
6.3697 12.2185 0.6043 0 0
6.65 12.175 0.6094 0 0
9.6000 13.5744 0.4305 1 1
12.9511 15.2899 0.5073 0 0
8.7474 13.7842 0.4399 1 1
13.4887 15.1618 0.5106 0 0

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 ID 2
Imagen ID 5 Imagen ID 9

Imagen ID 6 Imagen ID 10

Imagen ID 7
Imagen ID 11

Imagen ID 8
Imagen ID 12
Imagen ID 13 PUNTO 3
a. Desarrolle el siguiente código en el script de Matlab
creado en el punto 1. (Asegúrese de estar trabajando
en la carpeta que ya se ha creado)

Cada estudiante debe obtener las siguientes características


de cada una de las imágenes de la base de datos de prueba.
Las características las debe guardar en una matriz de Excel
que se llame “prueba.xlsx” donde se tenga la siguiente
información:

Imagen ID 18
Tabla Prueba.xlsx

CENTR CENTR CLASIFICA


CIRCULAR CLASIFICA
OIDE OIDE CION
IDAD CION SVM
EN X EN Y EXPERTO
8.144 10.0400 0.5345
8.9071 10.1214 0.5688
6.0845 8.3662 0.3966
8.7474 13.7842 0.4399
8.7474 13.7842 0.4399
9.5431 13.4873 0.4297
9.6 13.5744 0.4305

• El estudiante debe incluir en el documento de entrega


un pantallazo de la tabla de las características con las
que entreno la máquina, es decir las contenidas en
entrenamiento.xlsx y un pantallazo de la tabla que
contiene las características nuevas contenidas en
prueba.xlsx.
Imagen ID 1 Imagen ID 14

Imagen ID 16

Imagen ID 3

Imagen ID 4 Imagen ID 17

Nota: Para obtener los datos de prueba.xlsx en las imágenes


de la carpeta de prueba se usó el código de la actividad 2,
punto 1, seguido del código proporcionado en el punto 1 de
la presente actividad. Se registraron los datos en prueba.xlsx
a. Desarrolle el siguiente código en el script de Matlab realizando de manera automática la Clasificación SVM
creado en el punto 1. (Asegúrese de estar trabajando
en la carpeta que ya se ha creado).

• Explique cada línea del código.

datos = xlsread('entrenamiento.xlsx');
Lee los datos de entrenamiento desde el archivo
'entrenamiento.xlsx'

caracteristicas = datos(:, 1:3);


entrenamiento = datos(:, 4);
Extrae las características y las etiquetas de entrenamiento de
los datos

svmStruct = fitcsvm(caracteristicas, entrenamiento,


'Standardize', true, 'KernelFunction', 'linear',
'KernelScale', 'auto');
Entrenamiento del modelo SVM utilizando los datos de
entrenamiento

prueba = xlsread('prueba.xlsx');
Lee los datos de prueba desde el archivo 'prueba.xlsx'

xprueba = prueba(:, 1:3);


Extrae las características de los datos de prueba

clasificacion = predict(svmStruct, xprueba);


Realiza la clasificación de los datos de prueba utilizando el
modelo SVM entrenado • Una vez ejecutado el código y realizada la
clasificación SVM comparamos con la clasificación
experto

CENTR CENTR CLASIFICA


CIRCULAR CLASIFICA
OIDE OIDE CION
IDAD CION SVM
EN X EN Y EXPERTO
8.144 10.0400 0.5345 0 0
Img. Código implementado 8.9071 10.1214 0.5688 0 0
6.0845 8.3662 0.3966 1 1
Nota: Para ejemplo práctico y comprobación del 8.7474 13.7842 0.4399 1 1
aprendizaje de maquinas modificamos en el código el 8.7474 13.7842 0.4399 1 1
documento datos.xlsx por el archivo que creamos en el punto
2 entrenamiento.xlsx de donde se extraen los datos y se 9.5431 13.4873 0.4297 1 1
entrena la máquina.
9.6 13.5744 0.4305 1 1

• En el Workspace evidenciamos y comprobamos de


acuerdo a las imágenes de la carpera prueba el
correcto aprendizaje que realiza la maquina
Nota: Para este punto acondicionamos el documento
PUNTO 4
prueba.xlsx con los datos CentroideY, circularidad sin tener en
Clasificador de umbral o perceptrón: con dos cuenta la clasificación SVM definiendo 2 clases y usando
características (centroide en Y, y circularidad), el condicionales if para la clasificación.
estudiante realizará el clasificador por umbral. El
estudiante debe investigar cómo realizar este clasificador,
anexar el código y resultados obtenidos.
Este clasificador no se realiza con el mismo código de la
SVM,
ustedes deben crear el código usando condicionales “if”

% Nombre: Duvan Alexis Gualy


% Periodo: 1601_2024
% Grupo: 208054_22
% Semestre: 7
% Año:2024

clear all Definimos ambos umbrales en 0,4 y obtenemos el siguiente


close all resultado de prueba.xlsx
clc

datos = xlsread('prueba.xlsx');
centroide_en_Y y circularidad

umbral_centroide = 0.6;
umbral_circularidad = 0.4;
Definir umbrales para las características

clase = zeros(size(datos, 1), 1);


Clasificar los datos basados en los umbrales
Inicializar vector de clase

for i = 1:size(datos, 1)
Conclusiones
centroide = datos(i, 1);
circularidad = datos(i, 2);
La extracción de características en imágenes es un paso
if centroide > umbral_centroide && crucial para el análisis de imágenes, ya que permite identificar
circularidad > umbral_circularidad información relevante como forma, color y textura, facilitando
clase(i) = 1; Clase 1 tareas posteriores como la clasificación.
else
clase(i) = 2; Clase 2 La implementación práctica de algoritmos de aprendizaje
end automático, como las máquinas de vectores de soporte (SVM),
end en herramientas como MATLAB, proporciona una plataforma
Usar condicionales "if" para clasificar eficaz para el análisis de imágenes y la clasificación.

disp('Clasificación resultante:'); La elección del clasificador supervisado adecuado depende de


disp(clase); la naturaleza de los datos y la complejidad del problema de
Mostrar las clases resultantes clasificación. Los diferentes tipos de kernels en SVM ofrecen
flexibilidad para adaptarse a diversos conjuntos de datos y
mejorar el rendimiento del modelo de clasificación.

También podría gustarte