Вы находитесь на странице: 1из 17

Instituto Politcnico Nacional

Unidad Profesional Interdisciplinaria


en Ingeniera y Tecnologas
Avanzadas

Reconocedor de Piel
Flores Cortes Luis ngel
Gonzlez Arvizu Ezequiel
Viveros Arenas Jerzy Samuel
2014640083
2014640106
2014640294

Fecha de Entrega: 09/09/2016

Profesor: Anzueto Ros lvaro

Reconocimiento de Patrones
4BM1

Marco Terico
Los modelos RGB, CMY y YIQ estn orientados al hardware. En cambio, el
modelo HSV (hue, saturacin, value; tinte, saturacin, valor) est orientado al
usuario y se basa en el atractivo intuitivo del modelo de los artistas. HSV es un
sistema de color que vara el grado de propiedades del color para crear nuevos
colores (utiliza la mezcla de colores). Hue (matiz) especifica el "color", rojo,
naranja, azul, etc. La saturacin (conocida tambin como cromo o pureza), se
refiere a la cantidad de blanco en un hue. Un color completamente saturado no
contiene blanco y aparece puro, un rojo 50% saturado resulta un rosa.
El valor (conocido tambin como brillo) es el grado de luminosidad de un color
(que tanta luz emite). Un matiz con alta intensidad es brilloso, uno con poca
intensidad es oscuro.

Este sistema es el ms cercano al utilizado por los pintores y otros artistas,


para crear colores agregando blanco, negro y gris a los pigmentos puros para
crear tintes, sombras y tonos. Un tinte es un color puro combinado con blanco.
Una sombra se produce con un color puro completamente saturado combinado
con negro. Un tono es un color completamente saturado combinado con ambos
blanco y negro (gris).
El sistema de coordenadas es cilndrico, y el subconjunto del espacio donde
est definido el modelo es un cono. La parte superior del cono corresponde a V =
1, que contiene los colores relativamente brillantes. Sin embargo, no todos los
colores del plano V = 1 se perciben con la misma brillantez.

El tinte, o H(hue), se mide con el ngulo alrededor del eje vertical, con el
rojo en 0 y el verde en 120, etctera. En el modelo HSV los colores
complementarios estn opuestos 180 entre s. El valor de S es una razn que
vara de 0 en la lnea central (eje V) a 1 en los lados del cono. La saturacin se
mide con respecto a la gama de colores representada por el modelo, la cual, por
supuesto, constituye un subconjunto de todo el diagrama de cromaticidad CIE. Por
lo tanto, una saturacin del 100 por ciento en el modelo es menor que el 100 por
ciento de pureza de excitacin.

El cono tiene una altura en V, con el pice en el origen. El punto en el pice


es negro y su coordenada V es cero. En ese punto, los valores de H y S son
irrelevantes. El punto en S=0, V=1 es blanco. Los valores intermedios de V para
S=0 ( en la lnea central) son los grises. Cuando S=0, el valor de H es irrelevante
(llamado, por convencin indefinido). Cuando S es distinto de cero, H es relevante.

Desarrollo
La prctica se dividi en dos secciones, una de entrenamiento y otra de muestra
de ella, en la seccin de entrenamiento de la piel donde a la imagen se le recorta y
despus se hace un imcrop seleccionando la seccin de la piel en formato hsv,
despus se guardan la H, S y V respectivamente para hacer un clasificador
Bayesiano. Lo primero es buscar sus promedios y guardarlos en una matriz y a
travs de un ciclo for se calcula la covarianza y se muestra en cov1, finalmente f1
es la funcin discriminante de la clase piel. Este proceso se repite para detectar el
fondo y el cabello.

Img=(imread('1.JPG'));
Img=imresize(Img,[480,640]);
%Entrenamiento:
%Piel
phsv=imcrop(rgb2hsv(Img));
H=phsv(:,:,1);
S=phsv(:,:,2);
V=phsv(:,:,3);
Hprom=mean(H);
Sprom=mean(S);
c1=[Hprom;Sprom];
mc1=mean(c1,2);
M=length(c1);
for i=1:M
x=c1(:,i);
r(:,:,i)=x*x';
xj=sum(r,3);
end
cov1=((1/M).*(xj))-(mc1*mc1');
syms x1 x2
f1=([x1 x2]*cov1^-1*mc1)-(0.5.*mc1'*cov1^-1*mc1)
%Fondo
fhsv=imcrop(rgb2hsv(Img));
Hf=fhsv(:,:,1);
Sf=fhsv(:,:,2);
Vf=fhsv(:,:,3);
Hpromf=mean(Hf);
Spromf=mean(Sf);
c2=[Hpromf;Spromf];

mc2=mean(c2,2);
M2=length(c2);
for i=1:M2
x2=c2(:,i);
r2(:,:,i)=x2*x2';
xj2=sum(r2,3);
end
cov2=((1/M2).*(xj2))-(mc2*mc2');
syms x1 x2
f2=([x1 x2]*cov2^-1*mc2)-(0.5.*mc2'*cov2^-1*mc2)
%Cabello
chsv=imcrop(rgb2hsv(Img));
Hc=chsv(:,:,1);
Sc=chsv(:,:,2);
Vc=chsv(:,:,3);
Hpromc=mean(Hc);
Spromc=mean(Sc);
c3=[Hpromc;Spromc];
mc3=mean(c3,2);
M3=length(c3);
for i=1:M3
x3=c3(:,i);
r3(:,:,i)=x3*x3';
xj3=sum(r3,3);
end
cov3=((1/M3).*(xj3))-(mc3*mc3');
syms x1 x2
f3=([x1 x2]*cov3^-1*mc3)-(0.5.*mc3'*cov3^-1*mc3)

Esta es la imagen original con


la que trabajaremos para
nuestro programa

En la imagen
se aprecia el
imcrop con el
formato HSV
en donde se
selecciona la
piel.

Ahora
se
selecciona el
fondo
para
que
el
programa
reconozca qu
no pertenece
al parmetro
de piel.

Por ltimo, el
cabello
es
seleccionado
de igual forma
para que se
distinga de la
piel.

Estas son las funciones de discriminacin de la piel, fondo y cabello


respectivamente, las funciones sern determinantes para la segunda seccin de la
prctica ya que stas se utilizaran para nuevas fotos.
f1 =
(797253908701362971386534538404981*x1)/79228162514264337593543950336 +
(560240813838034992557024705351739*x2)/316912650057057350374175801344 5585243910377115/8796093022208
f2 =
(15260986534108108117807785150577*x1)/19807040628566084398385987584 (5667325693634269947066970399443*x2)/1237940039285380274899124224 4990832709725369/35184372088832
f3 =
(35678060539646792067281071965389*x1)/9903520314283042199192993792 +
(36884531552518053385733402197505*x2)/19807040628566084398385987584 4210536702633497/17592186044416

Iniciando la segunda seccin se llama a la imagen X en JPG pasando


inmediatamente a recortarla a un tamao de 480 y 640 pixeles. Se llama
nuevamente a la figura con su tamao y se crea un formato de hsv donde se pide
que muestre la imagen con el nuevo formato.
clc,clear all, close all;
Img=(imread('1.JPG'));
Img=imresize(Img,[480,640]);
figure
imshow(Img)
figure
Ihsv=rgb2hsv(Img);
imshow(Ihsv)

Se hace un ciclo que sirve para comparar los parametros ya entrenados en la


seccion uno contra los de la imagen deseada en H y S dejando asi la seccin de la
piel y eliminando el fondo.

for i=1:480
for j=1:640
x1=Ihsv(i,j,1);;
x2=Ihsv(i,j,2);

fd1=(58548945052283691103670647497911*x1)/4951760157141521099596496896 +
(23094983292420928424503065495643*x2)/39614081257132168796771975168 495792632602055/1099511627776;
fd2=(115715711932735866720361616475351*x1)/79228162514264337593543950336
- (106918922944752214482367620431695*x2)/39614081257132168796771975168 2907686038758573/8796093022208;

fd3=(78792349202983649177984861458351*x1)/9903520314283042199192993792 +
(81067436143030176105805078074653*x2)/39614081257132168796771975168 6809816773700455/17592186044416;
if fd1>fd2 && fd1>fd3
np(i,j)=255;
end
if fd2>fd3 && fd2>fd1
np(i,j)=0;
end
if fd3>fd1 && fd3>fd2
np(i,j)=0;
end
end
end
figure
imshow(np)

Resultados
Este es el resultado del programa, se puede apreciar que reconoce en la mayoria
de la imagen es la piel, a continuacion se muestran ms imgenes del
reconocimiento de la piel.

Conclusiones
Ezequiel Gonzalez Arvizu:

El modelo HSV nos es un mejor clasificador cuando corresponde a la


separacion de caracteristicas por color, nos ayuda a diferenciar muy bien
los pixeles de una caracteistica aun cuando tengan diferencia de
iluminacion.
La matriz de covarianza nos es muy util para fijar un rango en el cual
puedan caer los valores deseados de la caracteristica a clasificar, con ello
se logr la entrada de la mayor parte de los pixeles correspondientes a
nuestra caracteristica.
El parametro V (value) nos es irrelevante en esta ocacion ya que
suponemos todos los colores en la parte mas alta del cono, pero para una
mayor presicion de nuestro modelo es necesario incluirlo posteriormente.
Reconoce arriba de 90% de los pixeles deseados, dependiendo la calidad
de fotografia.

Jerzy Samuel Viveros Arenas:

Cumple el objetivo de reconocer piel de una fotografa.


Las imgenes deben ser de buena calidad, mnimo 480 x 640, para que
detecte correctamente la piel.
En el 100% de las imgenes se reconoce la piel
Reconoce distintos colores de piel.
El modelo HSV fue el ms efectivo para detectar la piel debido a sus
valores caractersticos de mtiz y saturacin
En la imagen para entrenar el sistema se deben diferenciar la piel, el
cabello y el fondo en el modelo HSV.
Este sistema se puede entrenar para detectar otras cosas que se noten en
el modelo HSV.

Flores Cortes Luis Angel

En el programa con la conversin a HSV nos permitio clasificar bien las


caracteristicas de color.
En todas las imgenes se reconoce de manera exitosa la piel.
La funcin de discriminacin se comporta de manera correcta en la mayoria
de la imgenes.
El entrenamiento fue efectivo para los distintos tipos de piel que
presentamos.
Se puede entrenar para aislar otro tipo de colores usando el HSV y la
funcion de discriminacin.

Bibliografia
http://www.it.uc3m.es/jvillena/irc/practicas/09-10/05mem.pdf

Вам также может понравиться