Introducción
El ahorro de la energía eléctrica es un tema de suma importancia en la actualidad; según el Instituto para la Diversificación y Ahorro de Energía en España el sector residencial es esencial en el contexto energético nacional y comunitario actual debido a la importancia que reviste su demanda energética, que en términos de consumo total y de consumo eléctrico asciende respectivamente a un 17% y 25% a nivel nacional, y al 25% y 29% a nivel de la UE27 (Institute for Energy Diversification and Saving, 2011).
Por otra parte, cuando en los hogares están consumiendo menos energía para satisfacer las mismas necesidades o acceder al mismo nivel de bienestar derivado del consumo de energía, se dice que están en una situación de ineficiencia energética, motivando la investigación energética a formulaciones de problemas que refuerzan las prácticas sociales y los patrones de consumo actuales (Shove, 2020).
Es decir, que el consumo del hogar es demasiado alto respecto de una situación eficiente (Hancevic & Navajas, 2015). De acuerdo con la Comisión Europea, la calefacción y refrigeración supone aproximadamente la mitad de la energía que se consume en Europa y la mayor parte de la misma se pierde. Por este motivo y otros adicionales como la reducción de las importaciones de energía o de las emisiones de gases de efecto invernadero (GEI), así como de los objetivos de energías renovables establecidos para 2020 y 2030, resulta prioritario desarrollar una estrategia para mejorar la eficiencia y la sostenibilidad de un campo que se ha convertido en el mayor sector energético europeo (Álvarez, et al., 2017).
A medida que la población en nuestro planeta, ocasionara demandas sin precedentes en el suministro de alimentos, energía y agua enfrenando un gran desafío para satisfacer de manera sostenible las necesidades de la humanidad utilizando recursos más escasos. Porque incluso se espera un crecimiento demográfico significativo en las áreas menos desarrolladas del mundo (Gençer, 2017). Inclusive el sector residencial en América Latina y el Caribe está experimentado una pronunciada transición hacia el consumo de energías modernas. El consumo residencial de electricidad y gas se ha más que triplicado, tratándose de una tendencia fuertemente asociada con el crecimiento económico de la región. Dicha asociación plantea importantes desafíos respecto de cómo atender de forma sustentable la demanda futura de energía resultante de las mejoras en las condiciones económicas de los hogares en la región (Yepez Ariel & Raúl Jiménez, 2016).
Según el Instituto Nacional de Estadísticas y Censos (INEC) en el Ecuador, el consumo promedio de energía eléctrica de los hogares ecuatorianos a nivel nacional es mayor a 138 kw/h, el área urbana registra el consumo más alto con 155 kw/h (Ecuador. Instituto Nacional de Estadísticas y Censos, 2012), y esto es ocasionado muchas veces por el incorrecto uso de los dispositivos que en ocasiones quedan encendidos y el usuario de la residencia no los está utilizando.
Por lo tanto, mediante un sistema de monitoreo inteligente se pretende ayudar al usuario a gestionar el consumo eléctrico a nivel de dispositivos; el consumo de energía en residencias siempre tiende al crecimiento, por eso se siguen desarrollando estrategias como la que se desea implementar en este estudio, que permitan al usuario reducir costos en lugar de suponer que se trata de un gasto mensual fijo.
Desarrollo
El reconocimiento es una función básica, primordial y compleja de la visión por computadora. Este trabajo consiste en el desarrollo e implementación de un sistema de visión por computadora, que realiza la identificación de cierto grupo de objetos previamente “enseñados” al sistema, para su posterior clasificación y seguimiento, todo el proceso es llevado a cabo a través del empleo de técnicas de procesamiento digital de imágenes y de redes neuronales artificiales en distintas etapas conforme a la arquitectura previamente diseñada.
La primera etapa consiste en entrenamiento de la red neuronal artificial, para la cual previamente son necesarios extraer los patrones de los objetos en estudio, siendo este proceso realizado por medio de las técnicas de procesamiento digital de imágenes, entre las que se destaca la utilización de la técnica de segmentación denominada desplazamiento de la media (Mean-Shift). El tipo de red neuronal utilizado es el perceptrón multicapa, contando el mismo con una configuración de dos capas ocultas, a más de las capas de entrada y de salida, y la utilización del algoritmo de Levenberg-Marquardt como algoritmo de entrenamiento.
En la segunda etapa se realizan tanto la clasificación como el seguimiento de los objetos en estudio. Los resultados obtenidos, al realizar las pruebas con dos conjuntos de objetos diferentes, son bastante satisfactorios. En cuanto a la identificación y clasificación, el análisis de dichos resultados arroja una precisión de la red neuronal artificial por encima del 98%, mientras que para el seguimiento se obtienen resultados muy buenos para escenas en las cuales no existen oclusiones (Cantero & Martínez, 2016).
La energía eléctrica se ha vuelto un recurso indispensable para el desarrollo de la humanidad por todos los beneficios que ofrece tanto a nivel industrial, comercial y residencia.
Los avances críticos basados en deep-learninga y la visión artificial durante los últimos años permiten mostrar un enfoque de aprendizaje automático, mejorando la calidad y precisión de los datos de comportamiento (Sturman, et al., 2020). Por este motivo en el presente estudio se realizará un sistema de detección de personas basado en visión artificial para ambientes residenciales que ayude a disminuir el consumo energético. El propósito del sistema es automatizar el encendido y apagado de luces y control de climatización mediante el procesamiento de imágenes en una secuencia de video para así gestionar y minimizar el consumo de energía innecesario en las residencias.
Se escogió a HOG como método de detección porque es un algoritmo robusto y tiene más precisión con respecto a su antecesor el clasificador en cascada Haar; además utiliza como modelo de aprendizaje a las máquinas de soporte vectorial SVM que ayudan con los problemas de clasificación y que esta a su vez se lo mas precisa posible.
Se procede a la elaboración del script por lo que se comenzará importando las librerías en el código con la siguiente línea:
import cv2
Otra librería que se necesitan importar para el tratamiento de imágenes es:
import numpy
Luego se debe crear un objeto que contenga la función del descriptor HOG, para ello se escribe:
hog = cv2.HOGDescriptor()
Una vez creado el objeto se procede a cargar el script con el algoritmo SVM, Opencv cuenta con un algoritmo de aprendizaje ya entrenado para la detección de personas y listo para usarlo en el objeto que se creó anteriormente.
hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())
El método de HOG utiliza una ventana de barrido sobre la imagen para analizarla por partes y encontrar patrones que se asemejen a personas, para generar dicha ventana se crea una variable con el nombre “persona” que se le asigna el método con los parámetros de la ventana como se muestra en la siguiente line:
Persona=hog.detectMultiScale(gray,winStride=(4,4),padding=(8,8), scale = 1.05)
Se crea un arreglo con los datos que se obtuvieron del fotograma luego de aplicarle el método Hog, para guardar los datos a la variable persona se le reasigna dicho arreglo.
Persona = np.array([[x,y,x+w,y+h] for (x, y, w, h) in persona])
Se dibuja un rectángulo en cada uno de los objetivos encontrados en los fotogramas para visualizar mejor la detección, esto se logra mediante un ciclo for que compara las variables declaradas dentro del for con los datos de la variable “persona”.
for(a,b,c,d) in persona:
cv2.rectangle(img,(a,b),(a+c,b+d),(0,255,210),4)
La detección de personas mediante clasificadores en cascada basados en funciones de Haar es un método de detección. Se trata de un enfoque basado en el aprendizaje automático en el que la función en cascada se entrena a partir de muchas imágenes positivas y negativas. Luego se utiliza para detectar objetos en otras imágenes. Los clasificadores en cascadas son muy versátiles y se pueden utilizar para la detección de cualquier objeto siempre y cuando se realice un entrenamiento correcto y con una base de datos de imágenes del objeto bastante robusta para aumentar la fiabilidad de la detección.
Como en el algoritmo anterior se cargan las librerías necesarias para el tratamiento de imágenes y arreglos de datos.
import cv2
import numpy
Se carga el método de extracción de fondo y la plantilla con los datos pre-entrenados para la detección de personas que proporciona Opencv en su versión ejecutable y que están en un archivo con la extensión .xml.
fgbg = cv2.createBackgroundSubtractorMOG2()
persona = cv2.CascadeClassifier('haarcascade_fullbody.xml')
Se buscan las coordenadas de las personas (si los hay) y se guarda su posición para utilizarla en el momento de mostrar los objetos detectados.
personas = persona.detectMultiScale(gray, 1.3, 2)
Se dibuja un rectángulo en las coordenadas de cada persona detectada.
for (x, y, w, h) in personas:cv2.rectangle(img, (x,y), (x+w,y+h),(0,255,0),2)
Se puede observar que el algoritmo HOG descriptor garantiza la detección múltiple, puesto que detecta a través de los gradientes orientados cada objeto parecido lo más posible a una persona. En las Fig. 1 y 2 se muestra una semejante de este caso típico no controlado donde un par de personas caminando juntas, se puede apreciar como el algoritmo que gracias al cálculo de los gradientes que, aunque requiere más tiempo de procesamiento da a la maquina una mayor certeza del objeto detectado (Tabla 1).
Características de consumo | HOG descriptor | Haar Cascade |
---|---|---|
Carga del CPU | 79% | 91% |
Carga de la RAM | 25% | 30% |
Resolución | 400x300 | 640x480 |
Detección de personas superpuestas | No | No |
Inmunidad a cambios de luz leve | Si | No |
Detección múltiple | Si | Si |
Calidad de video mínima | QVGA | QVGA |
Entre los fines del estudio se encuentra la utilización de dispositivos de bajo costo pero que cumplan con los requisitos de potencia que se necesita en el procesamiento de imagen. En la fase de selección de componentes, se empezó por identificar el tipo de hardware que iba a funcionar como control del sistema, el mismo que juega un papel importante en el procesamiento de imágenes y al que se le va a acoplar el sensor que en este caso es la cámara y otros elementos en caso de ser necesario.
Se realizaron las respectivas comparaciones entre diferentes posibles sistemas embebidos a utilizar y se determinó que una opción que facilitaría el diseño del sistema electrónico sería la Raspberry Pi 3B+, de acuerdo a sus ventajas tales como; montaje, costo, disponibilidad en el mercado y compatibilidad. Con respecto a los métodos de detección de personas evaluados en la etapa de comparación se obtuvo como resultado que el algoritmo con más precisión es el método HOG-SVM que en sus primeras pruebas mostró un desempeño muy factible.
Para cuantificar los resultados se utilizó la matriz de confusión la cual es una herramienta que permite visualizar el nivel de detección de un clasificador como el sistema que se desarrolló en la investigación.
Con ayuda de esta matriz se dará una mejor idea de cómo está clasificando el algoritmo de detección, a partir de un conteo de los aciertos y errores de cada una de las clases que está clasificando. Así podremos comprobar si el algoritmo está clasificando mal las clases y en qué medida (Tabla 2).
Positivo | Negativo | |
Positivo | Verdadero-positivo | Falso-positivo |
Negativo | Verdadero-negativo | Falso-negativo |
Mediante esta matriz se puede verificar cuando el sistema está trabajando correctamente o generando errores.
Las pruebas del sistema se llevaron a cabo durante 10 días consecutivos en ambientes no controlados y controlados como se muestra en la tabla 3.
Pruebas | Total de Personas por prueba | Personas detectadas por el sistema | Control de luces |
---|---|---|---|
Prueba1 | 6 | 4 | no |
Prueba2 | 2 | 2 | no |
Prueba3 | 1 | 1 | Si |
Prueba4 | 4 | 3 | Si |
Prueba5 | 5 | 5 | Si |
Prueba6 | 4 | 3 | Si |
Prueba7 | 5 | 4 | Si |
Prueba8 | 3 | 3 | Si |
Prueba9 | 5 | 5 | Si |
Prueba10 | 5 | 5 | Si |
10 | 40 (100%) | 35 (87.5%) | - |
De un total de 10 pruebas realizadas el 12.5% no tuvieron éxito por razones del ambiente y el cambio de iluminación mientras que el 87.5% fueron pruebas exitosas cumpliendo con los objetivos trazados.
De los resultados mostrados en la tabla 3, se observa que el algoritmo para la detección de personas corresponde al método HOG-SVM sobre el cual se tiene un porcentaje promedio del 87 % de detección global y un 100% en el control de luces en ambientes controlados.
De los datos expresados en la tabla 3 con respecto al control de iluminación se realizó un gráfico de repartición porcentual circular de las pruebas realizadas, los cuales se muestran a continuación:
Mediante los datos presentados en la fig. 3 se puede determinar el porcentaje de error y éxito del sistema con respecto al control de iluminación, aunque el porcentaje de éxito es muy alto aún se puede mejorar y hacer que el sistema sea más eficaz.
Positivo | Negativo | |
Positivo | Verdadero-positivo (35) | Falso-positivo(5) |
Negativo | Verdadero-negativo(0) | Falso-negativo(40) |
En la tabla 4 se muestra la aplicación de la matriz de confusión luego de realizar las pruebas correspondientes.
En la fig. 4 se presentan los resultados porcentuales del análisis de la matriz de confusión.
En la fig. 5 se muestra que la detección del sistema y el respectivo control de luces están en funcionamiento al poder apreciar que la persona es marcada y reconocida y a su vez el sistema dio la orden de encender la luz.
La configuración de luces en las primeras pruebas estaba configurada para activar el sistema de control inmediatamente detectara a la persona, esto generaba que si por algún motivo la cámara no enfocaba bien a las personas mandaría a apagar las luces o viceversa, para lo cual se ubicó un temporizador para reducir este problema.
De la revisión de los estudios principales fueron identificados 2 algoritmos desarrollados utilizando diferentes enfoques tales como descriptores y clasificadores. Una investigación completa de las pruebas realizadas es un requisito para obtener buenos resultados, es decir, con casos que inician y terminan. Los algoritmos en su mayoría están diseñados para resolver problemas sobre procesamiento de imágenes y aprendizaje automático. Una tendencia es utilizar redes neuronales debido a que su efectividad es mayor con respecto a los algoritmos tratados en el estudio.
Conclusiones
En lo que respecta a la evaluación de sistemas embebidos se puede concluir del análisis de resultados el hecho de que la raspberry pi es un dispositivo muy potente a pesar de ser económico y de código abierto y que cumple con los requisitos para poder ejecutar el algoritmo de detección y controlar la iluminación.
Para el estudio se seleccionó como mejor algoritmo de detección el que implementa la técnica de HOG Descriptor en busca de cumplir con el objetivo principal de detección de personas, sin embargo, el uso de este algoritmo es confiable siempre que se defina el escenario donde se implementa trazando los parámetros correctos y fijando las pautas de comportamiento del entorno.
La implementación de un descriptor de gradientes Orientados HOG, permite gracias al respaldo del entrenamiento de una maquina SVM, se logre una detección más exacta de personas por su morfología. Un algoritmo como el HOG Descriptor, no es infalible pues dado que su entrenamiento se realizó a partir de las imágenes de cientos de muestras, a la hora de fijar la perspectiva de la cámara web respecto a los objetos detectados en este caso las personas deben respetarse la base de detección, de lo contrario se tendrá detecciones intermitentes y falsos positivos.