Upload
albert-martinez-alegria
View
34
Download
0
Embed Size (px)
Citation preview
CONTROL INTELIGENTE
DE PUERTAS DE GARAJE
1. OBJETIVOS1.1 OBJETIVO GENERAL
Diseñar un Sistema Experto que permita controlar un sistema de seguridad adecuado de las puertas automáticas de un garaje.
1.2 OBJETIVOS ESPECÍFICOS Plantear un conjunto de reglas que permitan abrir la puerta de un garaje cuando el auto del
propietario se acerque Mediante encadenamiento estudiar estudiar la eficiencia de las reglas Simular el proyecto mediante algún programa2. FUNDAMENTO TEÓRICO
2.2 INTRODUCCIÓN
Durante años la actividad de la Inteligencia Artificial estuvo dedicada a las investigaciones teóricas y al desarrollo de experimentos a través de programas que demostraran “actitudes inteligentes”, con estos programas se pretendía que la máquina jugara ajedrez, demostrara teoremas matemáticos, etc.No fue hasta los años 70 que surgió un nuevo paradigma en la Inteligencia Artificial “los Sistemas Expertos”, cuya función es desarrollar trabajos similares a los que desarrollaría un especialista en un área determinada, la idea no es sustituir a los expertos, sino que estos sistemas sirvan de apoyo a los especialistas en un “dominio” de aplicación específico.Estos sistemas expertos son en lo esencial sistemas de computación basados en conocimientos cuyos componentes representan un enfoque cualitativo de la programación. Muchas personas pueden creer que un Sistema Experto (SE) es un sistema compuesto por subsistemas y a su vez estos por otros subsistemas hasta llegar a los programas.Podemos decir que un Sistema Experto es una Base de Conocimientos (BC), una Base de Hechos (BH) y un Motor (o Máquina) de Inferencias (MI). Por otra parte estos sistemas no se miden por la cantidad de instrucciones o programas sino por la cantidad de reglas que hay contenida en su Base de Conocimientos
3. DESARROLLO DEL PROYECTO3.1 TABLA OBJETO-VALOR
En esta tabla representamos en una tabla los objetos que tomamos de referencia y los distintos valores que puede adoptar cada uno, en nuestro casa para hacer un garaje automatico encontramos los siguientes objetos y sus valores:
OBJETO VALORES
Color {Correcto, Incorrecto}Auto {Verdadero, Falso}
Ubicación {Dentro del Rango, Fuera de Rango}Puerta {Abrir, Cerrar}
3.2 SISTEMA DE PRODUCCION MEDIANTE REGLAS SI - ENTONCES
Las reglas que pudimos obtener basándonos en nuestra tabla de Objeto-Valor son las siguientes:
R1.- si color= correcto Λ Auto= verdadero ΛUbicación= dentro del rango ΛPuerta = abrir
Entonces
Garaje = abrir
R2.- si color = incorrecto
Entonces
Garaje=cerrado
R3.- si auto = falso
Entonces
Garaje=cerrado
R4.- si ubicación=fuera del rango
Entonces
Garaje=cerrado
Para hacer las reglas se toman los siguientes valores de h:
Color-correcto → h1
Color-incorrecto → h2
Auto-verdadero → h3
Auto-falso → h4
Ubicación-fuera del rango → h5
Ubicación-dentro del rango→h6
Puerta-abrir →h7
Puerta-cerrar → h8
Prender-cámara → h9
Energizar circuito → h10
Prender-luces → h11
Tomar-fotos → h12
Cámara apagada →h13
Con estos valores de hi nos salen las siguientes reglas las cuales usamos para poder efectuar un encadenamiento siendo esta la ¨Base de conocimiento¨
R1.- si h1 Λ h3 Λ h6 → h9
R2.- si h9 →h10
R3.- si h10 Λ h6 → h12
R4.- si h12 Λ h1 Λ h3 Λ h6 Λ h11→ h7
R5.- si h2 Λ h4 Λ h5 → h13
R6.- si h6 Λ h12 Λ h3 Λ h1→h11
R7.- si h4 Λ h6 → h8
R8.- si h3 Λ h5 → h13
R9.- si h13 Λ h5 Λ h2→ h8
R10.-si h6 → h9
R11.- si h3 Λ h1 Λ h9→h10
3.3 BASE DE HECHO INICIAL
De la base del conocimiento tomaremos como base de hechos inicial:
Color-correcto → h1Auto-verdadero → h3Ubicación-dentro del rango→h6
En esta tabla se muestran los valores usados como la Base de Hechos Inicial, dotando asi a nuestro sistema experto de una base de hechos inicial para poder realizar tanto el encadenamiento hacia adelante y el encadenamiento hacia atrás.
3.4 ENCADENAMIENTO HACIA ADELANTE
El objetivo del encadenamiento hacia adelante es encontrar el h7 que en este caso sería el abrir la puerta.
ENCADENAMIENTO HACIA ADELANTE
BdH0
conjunto conflicto Reglas a Aplicar
BdH1 BdH2 BdH3 BdH4 BdH5
h1 R1,R10 (1<10) R1 h1 h1 h1 h1 h1
h3 R2,R10,R11(2<10,11) R2 h3 h3 h3 h3 h3
h6 R3,R10,R11(3<10,11) R3 h6 h6 h6 h6 h6R6,R10,R11(6<,10,11)
R6 h9 h9 h9 h9 h9
R4,R10,R11(4<10,11) R4 h10 h10 h10 h10h12 h12 h12
h11 h11h7
3.5 ENCADENAMIENTO HACIA ATRÁS
ENCADENAMIENTO HACIA ATRÁSh7
BdH0 conjunto conflicto Reglas a Aplicar
BdH1 BdH2 BdH3 BdH4
h12 R3,R6 R3 h12 h12 h12 h12h12 R6,R2 R2 h12 h12 h12 h12h3 R6,R1,R11 R6 h3 h3 h3 h3h6 R6,R11,R9 R6 h6 h6 h6 h6h11 R11,R9 R9 h11 h11 h11 h11
h10 h10 h10 h10h9 h9 h9
En ambos tipos de encadenamiento como ser el ¨¨encadenamiento hacia adelante¨¨ y el ¨¨encadenamiento hacia atrás¨¨ se puede notar que se llega a la meta deseada que en nuestro caso es h7 ¨¨abrir el garaje¨¨ ya que para que esto ocurra nuestro sistema experto debe razonar de una manera en la que pueda identificar el auto del propietario para poder abrir el garaje o mantenerlo cerrado.
3.6 REPRESENTACION NO FORMAL DEL CONOCIMIENTO
Con la siguiente red semántica se mostraran los pasos básicos del presente proyecto. Siguiendo el siguiente orden de los colores, para su mayor compresión.
1. Amarillo2. Azul 3. Verde
ES ENTONCES
ES ES LA
ENTONCES
ES ENTONCES LA
ES
ES
ENTONCES
FIGURA 1. RED SEMANTICA CON DIFERENTES RELACIONES DEL GARAJE INTELIGENTE
Donde se pudo observar que en caso de que no se cumpla uno de los requisitos, la puerta del garaje permanecerá cerrada, pero cuando se cumplan todos ellos la puerta se abrirá.
3.7 SIMULACION
Con el software de MATLAB, se realizó el procesamiento digital de señales visuales y a partir de ella se tomaron las decisiones con inteligencia artificial, tomando en cuenta el histograma de colores que tendrá la imagen en tiempo real con la imagen patrón de la misma.
UBICACION INCORRECTA
CORRECTA
COLOR
AUTOMOVIL
PUERTA
ABRIR
CERRAR
Se utilizó el siguiente automóvil de juguete:
FIGURA 2: AUTOMOVIL DE JUGUETE
Y nuestra imagen patrón fue tomada con la cámara web para evitar diferencias respecto a la resolución de las mismas:
FIGURA 3: IMAGEN PATRÓN
Se utilizó el siguiente código en el MATLAB:
function garaje_inteligente close all;clear all;clc; % calculo de patron originalpatron = imread('autopatron.jpg');patron = imresize(patron, [500 500]);[hpr,hpg,hpb] = hist_imagen(patron); % adquirir la imagenobj = videoinput('winvideo', 1);set(obj, 'SelectedSourceName', 'input1')src_obj = getselectedsource(obj);get(src_obj)preview(obj); captura = getsnapshot(obj);image(captura); toma = imresize(captura, [500 500]);[hprur hprug hprub] = hist_imagen(toma); % la imagen adquirida se compara con los patroninr = comparacion(hpr, hprur);ing = comparacion(hpg, hprug);inb = comparacion(hpb, hprub); % se toma una desicionif (inr > 0.5) && (ing > 0.5) && (inb > 0.5) subplot(2,2,1), image(imread('open.jpg')) title('ABRIR GARAJE') else
subplot(2,2,1), image(imread('closed.jpg')) title('CERRAR GARAJE') end % imprime patron y pruebasubplot(2,2,2), image(patron)title('PATRON')subplot(2,2,3), image(toma)title('CAMARA EN VIVO') endfunction [hr,hg,hb]=hist_imagen(imagen)PR = imagen(:,:,1);PG = imagen(:,:,2);
PB = imagen(:,:,3);PR = double(PR);PG = double(PG);PB = double(PB);hr = sum(hist(PR,256)'); % genera el histograma rojohg = sum(hist(PG,256)'); % genera el histograma verdehb = sum(hist(PB,256)'); % genera el histograma azulhr(1) = 0; hr(end) = 0; % suprime informacion 0 y 255 hg(1) = 0; hg(end) = 0; % lo mismo que el anterior pasohb(1) = 0; hb(end) = 0; % lo mismo que el anterior paso endfunction indice = comparacion(a,b)% a es la originalindice = sum(min(a,b))/sum(a);end
Y tras obtener la imagen por la cámara web se obtuvo el siguiente resultado:
FIGURA 4: DESICIÓN FINAL DEL GARAJE INTELIGENTE
4. ConclusionesSe cumplió con el objetivo del proyecto, debido a que se logró desarrollar las reglas necesarias para satisfacer a nuestro sistema experto permitiendo que este pueda decidir entre la apertura o no de la puerta del garaje si es que detecta el automóvil del propietario, en una simulación y tratando de implementarlo por la toma de fotos en tiempo real por medio d una cámara que constantemente va evaluando lo que se encuentra en su rango de alcance, permitiendo que el sistema experto tome una decisión certera.
El caso planteado es muy simple, ya que en la vida real se tiene situación mucho más complejas para las cuales se desarrollaran muchas otras reglas que pueden incluir otras situaciones que no se vieron en este proyecto, como ser muchas mas características para reconocer el automóvil del propietario, la activación de alarmas, la confirmación por distintas variables que se pueden presentar en la vida real.
Finalmente se puede decir que el proyecto fue un éxito, se cumplieron los objetivos y se demostró la eficiencia de las reglas planteadas, se aprendió sobre el desarrollo de las mismas y las infinitas variaciones que pueden existir en la realidad.
5. Bibliografia “Inteligencia Artificial”, Luis Carlos Torrez Soler, Universidad Nacional de
Colombia. “Inteligencia Artificial: Un Enfoque Moderno”, Stuart Russel & Peter Norvig,
Pearson Prentice Hall. “Digital Signal Processing Laboratory Using MATLAB”, Sangit K. Mitra, Mc
Graw Hill.