Diseño de interfaz usando visión artificial para fines de percepción de indicadores de interés para ambientes de enseñanza virtual en la población universitaria
Design of interface using artificial vision for the purpose of perceiving indicators of interest for virtual teaching environments in the university population
Enderson Ortega-Guillin, Oscar Manuel Duque-Suarez
Ingeniero en Mecatrónica, orcid: 0000-0001-9564-7621 ,
Universidad de Pamplona, Cúcuta, Colombia
Magister en Controles Industriales, orcid: 0000-0001-6246-604X,
Universidad de Pamplona, Cúcuta, Colombia
Recibido: 30 Junio de 2017, Aceptado: 20 Octubre de 2017.
Forma de citar: E. Ortega- Guillin y O.M. Duque-Suárez,
“Diseño de una interfaz usando visión artificial para fines
de percepción de indicadores de interés para ambientes de enseñanza virtuales en la población universitaria”,
Mundo
Fesc, vol. 15, no. 1, pp. 31-40, 2018
Autor de correspondencia:
*Correo electronico:
omduke@hotmail.com
©2018 Fundación de Estudios Superiores Comfanorte. Este es un artículo bajo la licencia CC BY-NC-ND (http://creativecommons. org/licenses/by-nc-nd/4.0/).

Resumen
El presente artículo describe el diseño de un sistema de percepción mediante visión artificial para fines de determinación de indicadores de interés para ambientes de enseñanza virtuales, para medir el interés o asegurarse que el usuario está percibiendo lo proyectado a través de la pantalla o interfaz del sistema. Los criterios de diseño se definieron con base en las características del rostro (reconocimiento de emociones) del usuario, posterior a ello programó el sistema por medio de herramientas y librerías como OpenCV, Python y Dlib los cuales cuentan con una función para la ubicación de los puntos del contorno del rostro de una persona, se determinan los valores de los umbrales tanto para los ojos como para la boca del usuario y se valida el sistema a través de pruebas con 10 usuarios seleccionados, ponderando la mirada y gesticulación y tiempos de distracción y de atención. Los resultados obtenidos permiten evidenciar que el porcentaje de atención promedio de los usuarios fue de 50.68% y el porcentaje de distracción 49,32%. El sistema permite medir a través del reconocimiento facial el interés o distracción de un estudiante universitario en ambientes virtuales de aprendizaje.
Abstract
This article describes the design of a perception system through artificial vision for the purpose of determining indicators of interest for virtual teaching environments, to measure interest or to ensure that the user is perceiving what is projected through the screen or system interface. The design criteria were defined based on the characteristics of the face (recognition of emotions) of the user, after which he programmed the system through tools and libraries such as OpenCV, Python and Dlib which have a function for the location of the points of the contour of a person’s face, the values of the thresholds for both the eyes and the mouth of the user are determined and the system is validated through tests with 10 selected users, pondering the look and gesticulation and times of distraction and of attention. The results obtained show that the percentage of average attention of the users was 50.68% and the percentage of distraction 49.32%. The system allows to measure, through facial recognition, the interest or distraction of a university student in virtual learning environments.
Keywords: Design, artificial vision, perception, indicators of interest.
Introducción
La percepción se define como la “sensación interior que resulta de una impresión material hecha en los sentidos” [1], es considerada también como “recibir por uno de los sentidos las imágenes, impresiones o sensaciones externas” y como “comprender o conocer algo”. Además constituye una de las facultades más sorprendentes de los seres vivos: el sistema nervioso es capaz de interpretar información ‘bruta’ y transformarla en conceptos abstractos, que implica una serie de pasos o etapas que inician con la toma de información del mundo real y crear a partir de la percepción una representación [2, 3], la cual permite al ser humano experimentar diferentes sensaciones y emociones positivas o no de acuerdo a lo vivenciado.
En el ámbito educativo uno de los principales retos del docente es lograr la motivación del estudiante hacia el proceso de aprendizaje, entendida la motivación en la educación como una cuestión de actitud [4]; la cual permite en los estudiantes creer que pueden aprender cualquier cosa esforzándose y conlleva a que estos mantengan su atención y energía para lograr cosas maravillosas, Dweck le llama “actitud de crecimiento” [5].
Generalmente, existen dos formar de motivación: la intrínseca y la extrínseca; la primera de ellas es aquella que nace o proviene del interior del estudiante y se da cuando éste encuentra un tema fascinante o de su interés para aprender más al respecto de forma natural; la segunda (proviene del exterior) es la tradicionalmente utilizada en el ámbito educativo a través de las calificaciones y se refleja en la frase: “¡Haz tu trabajo, te interese o no!”. Es posible que uno de los mejores motivadores extrínsecos sean los del tipo temporal, del estilo “fingirlo hasta cumplirlo”. Dichos motivadores logran vencer las dudas iniciales que el estudiante pueda llegar a tener al entrar en una actividad, dándole así la oportunidad de experimentar el placer que puede obtener al aprenderla; Se podría decir entonces que si no hay motivación o interés en un tema el estudiante no aprenderá de lo enseñado.
La falta de motivación siempre se detectará en un estudiante mediante expresiones o actitudes expuestas por el mismo, como lo son falta de atención, búsqueda de agentes distractores, aburrimiento frente al tema y por último aparece el sueño. En este sistema se tomarán estos indicadores para lograr deducir si al estudiante le interesa o no, lo que se está enseñando; de no ser así, se requiere buscar la forma de plantearle algo que lo motive a darle toda su atención.
El uso las Tecnologías de la Información y la Comunicación en los procesos de enseñanza, han permitido crear herramientas como las bibliotecas virtuales universitarias, la cuales hacen parte de un nuevo modelo pedagógico en la enseñanza virtual. Este tipo de enseñanza empezó a formar parte de las asignaturas y ha servido de soporte a la docencia en las áreas de investigación y sin duda a la Biblioteca, para quien es propio, a la vez que permite en el proceso de enseñanza, una interacción entre el estudiante y la información, la cual posee una estructura similar a una clase virtual; el sistema no sólo comunica la información sino que también busca interesar al usuario para que haga uso de ella.
Considerando que el ser humano se puede concentrar por periodos cortos de tiempo, en ciertos eventos importantes, la cantidad de información que se procesa e interpreta es usualmente muy limitada, por ello como respuesta a ésta necesidad se requiere de la creación de sistemas que sean útiles parar superar las limitaciones del sistema de percepción humano asociado a la atención, como la visión artificial, definida como la utilización de las técnicas que permiten la obtención, procesamiento y análisis de cualquier tipo de información especial obtenida a través de imágenes digitales, los procesos que lo componen son: captación de imágenes, memorización de la información, procesado e interpretación de los resultados. [6].
El sistema se encarga del análisis y procesamiento de datos para saber si el usuario está interesado o no en la información que el mismo le está enseñando, de no ser así, dicho sistema interactuará con el usuario cambiando el tipo de información o tema hasta que a este (usuario) le interese y se sienta cómodo con lo que se le está enseñando; teniendo en cuenta aspectos en cuenta como los ojos, la boca y la ubicación del rostro del usuario, el sistema puede deducir si hay o no interés en cada uno de los temas que esté presente y así lograr hacer llegar la información como uno de los objetivos principales del sistema.
El presente trabajo tiene como propósito el diseño de una interfaz usando ña visión artificial para fines de percepción de indicadores de interés para ambientes de enseñanza virtuales en la población universitaria que facilite la identificación de la falta de atención o distracción de los estudiantes universitarios en los procesos de enseñanza y así evitar que se pierda la información suministrada.
Materiales y métodos
Selección del software
Los entornos de trabajo que fueron evaluados para el diseño el interfaz son los siguientes:
- Matlab
- Open CV
- ROS
Se hizo uso de la infraestructura OpenCV para la aplicación de visión artificial, considerando que se lanzó bajo licencia BSD, la cual es gratuita para uso académico y comercial. La selección del mismo se basó en las siguientes ventajas: posee interfaces C ++, Python y Java y es compatible con Windows, Linux, Mac OS, iOS y Android; fue diseñado para la eficiencia computacional con un fuerte enfoque en aplicaciones en tiempo real; además está en escrito en C / C ++ optimizado, la biblioteca puede aprovechar el procesamiento de múltiples núcleos y está habilitado con OpenCL, permitiendo provechar la aceleración de hardware de la plataforma informática heterogénea subyacente. [8].
Así mismo el sistema ROS, sistema open-source, meta-operativo para robot, proporciona los servicios de un sistema operativo, incluyendo abstracción de hardware, control de dispositivos de bajo nivel, implementación de la funcionalidad comúnmente utilizada, el paso de mensajes entre procesos y la administración de paquetes [9], también proporciona herramientas y bibliotecas para obtener, construir, escribir y ejecutar código en varios equipos.
La matriz de selección se realizó con base a los aspectos de evaluación de calidad estipulados en la norma ISO/IEC 9126, este es un estándar para la calidad de software el cual está dividido en los siguientes aspectos principales: funcionabilidad, fiabilidad, usabilidad, portabilidad, requerimientos técnicos y económicos. A cada Subcaracterística se le asignó un puntaje diferente ya que cada aspecto tiene una relevancia diferente para este proyecto.
Seleccion del hardware
Los sensores evaluados son los siguientes:
- Cámara web
- Kinect
Basados en las características de cada sensor de captación de imagen y teniendo en cuenta las especificaciones técnicas requeridas y el valor monetario se determinó que el sensor más apropiado para ser empleado en este proyecto en la Cámara Web del Asus X455L [10].
reconocimiento facial
Para el desarrollo del sistema, se parte del reconocimiento facial, paso crucial para el inicio del proceso; para ello se crea un algoritmo que identifique y detecte los puntos faciales en tiempo real por medio de OpenCV, Python y Dlib, los cuales permitieron por un lado el desarrollo web, a través de un lenguaje de scripting independiente de plataforma y orientado a objetos, preparado para realizar cualquier tipo de programa, que no se necesita compilar el código fuente para poder ejecutarlo,lo que ofrece ventajas como la rapidez de desarrollo e inconveniente como una menor velocidad [11], así como contar con una biblioteca de software de código abierto multiplataforma de uso general escrita en el lenguaje de programación C++, con componentes de software para trabajar con redes, hilos, interfaces gráficas, estructuras de datos complejas, algebra lineal, aprendizaje automático estadístico, procesamiento de imágenes, minería de datos análisis XLM y de texto, optimización numérica redes bayesianas y muchas otras tareas [12].
Se inicia por aprender cómo detectar puntos de referencia faciales en una imagen. Para descubrir luego cómo etiquetar y anotar cada una de las regiones faciales, como ojos, cejas, nariz, boca y mandíbula.
características a seleccionar
Las características seleccionadas para el diseño del sistema se enfocaron principalmente en el rostro, a partir de los ojos y la boca (si esta cerrados o no), si se da indicios de bostezo y si el usuario mantenía el rostro frente al sensor de captación de imagen (cámara web) o en su defecto la giraba hacia algún costado.
Las características consideradas para el reconocimiento de ojos y boca se describen a continuación:
Parpadeo:Considerando que el parpadeo es la acción de abrir y cerrar los ojos, que tiene una duración aproximada de 50 milésimas de segundo y que en promedio una persona parpadea aproximadamente 24 veces por minuto y durante el día, se puede concluir que cerramos los ojos aproximadamente 14 minutos [13]. Con esta información y partiendo del hecho de la velocidad del parpadeo cuando ésta es afectada considerablemente (por algo que le sucede al usuario), se aumenta el número y la duración de los mismos, siendo un indicador claro de cansancio o aburrimiento en el usuario frente al tema presentado. El tiempo promedio de 2 a 4 segundos de duración en cada parpadeo [14].
Bostezo:Cuando el usuario realiza la acción de abrir la boca de una manera involuntaria, realizando una inhalación profunda y prolongada de aire; cuando se realiza con mayor frecuencia indica que una persona se encuentra en estado de cansancio, sueño o aburrimiento, repitiéndose más de una vez por minuto.
Girar el rostro: Si el usuario busca agentes distractores que no están en el sistema presentado, manifiesta su falta de interés a través de lo que definimos coloquialmente como “voltear la cara o el rostro”.
Técnica a utilizar
Para el proyecto la técnica seleccionada es una biblioteca de software de código abierto multiplataforma de uso general escrita en el lenguaje de programación C++, que lleva por nombre DLIB, la cual está basada en máquinas de soporte vectorial, constituido por un conjunto de algoritmos de aprendizaje supervisado. En su estructura Dlib cuenta con un paquete (Shape Predictor) el cual se encarga del entrenamiento de dicho soporte vectorial, es decir, la librería viene ya programada para reconocer rostros dentro de su estructura.
La estructura del diseño se basó en los ojos y en la boca, calculando distancias a través de la formula aspect ratio. Esta es la distancia entre los puntos de los ojos y de la boca, con ello fue posible detectar si los ojos o la boca estaban abiertos o cerrados; dependiendo del tiempo que los ojos duren cerrados el sistema deducirá si el usuario parpadeo o si se está quedando dormido, al igual que en los puntos de la boca, si el usuario abre demasiado la boca se detectara que no está hablando sino por el contrario está es bostezando.
Interface
Para la implementación fue necesario instalar el SO Ubuntu, el software Python y la librería Dlib. Una vez instaladas las respectivas herramientas se procedió a programar el sistema paso a paso abarcando todas y cada una de las necesidades y obligaciones con las cuales dicho sistema debe cumplir.
Interfaz del Sistema de visión artificial
La interfaz como se observa en la figura 1, inicia haciendo una presentación del contorno en el que se lleva a cabo el desarrollo del sistema.
Figura 1. Interfaz gráfica del sistema de percepción
En la ventana principal del sistema se expresan en los siguientes aspectos:
- El título del proyecto de una manera resumida.
- El inicio de calibración de los valores
- El nombre de la facultad, el cual aparecerá una vez el usuario elija la facultad que desee.
- Seguidamente aparece el tema el cual el usuario estará visualizando una vez sea elegida la facultad.
- El estado en tiempo real que presenta el usuario en las categorías: concentrado, poca atención y distraído.
- Después de la casilla de estado, aparecen dos casillas más, que son para los valores del umbral de los ojos y de la boca.
- Por último, aparecen 4 casillas en la cuales el usuario elegirá si desea salirse del sistema o ver alguna de las dos facultades que se le están presentando en este caso, Ingeniería o Arquitectura o hacer uso de la opción Siguiente en caso de que así lo desee.
- El sistema inicia la calibración por medio de unos valores que adquiere a través de unos pasos que le pide al usuario realizar, tal como se observa en la Figura 2.
Figura 2. Obtención de los valores umbrales de los ojos y boca en su etapa inicial
Una vez el sistema cuente con los valores (umbrales de los ojos y boca) permite al usuario: elegir el programa que desee según su interés, ya sea Ingeniería o Arquitectura, dotándolo de información en tiempo real que medirá su interés en los temas que el sistema le presente. En la Figura 3 se observan los valores adquiridos en una prueba realizada a un usuario, allí se puede detallar la inicialización de la cámara, cómo carga el paquete predictor y la calibración de la data tanto para los ojos como para la boca.
Figura 3. Datos presentados en la terminal del sistema, valores de umbrales ojos y boca
Pruebas y validación
Se realizaron diferentes pruebas para garantizar el funcionamiento del sistema, las cuales consistieron en pedirle al usuario tener dos estados frente al sistema, el primer estado: prestar la mayor atención posible para determinar si el sistema estaba reconociendo esta actitud y posteriormente no prestar ningún tipo de atención al mismo. De este modo, se indicaba de qué manera estaba trabajando el sistema y si cumplía con la función para la cual fue diseñado. Las pruebas se realizaron con 10 usuarios usuarios.
Inicio del Sistema desde la terminal
El sistema inicia con la apertura de la carpeta de almacenamiento en la terminal de Linux, ver figura 4; seguido del ingreso al entorno virtual bajo el comando “workon cv” para poder cargar los archivos y referir la interfaz, ver figura 5.
Figura 4. Apertura de terminal e ingreso al entorno virtual.
Figura 5. Ingreso al sistema e inicialización de la cámara.
Adquisición de datos para el desarrollo del Sistema
Una vez se inicializada la cámara se carga el paquete predictor, el cual redirige al usuario hacia la interfaz gráfica, en la Figura 6 se puede observar uno de los datos que requiere o necesita el sistema para poder desarrollarse.
Figura 6. Nombre del usuario.
Primero solicita el nombre al usuario, en la Figura 7 se observa el cómo requiere un código, que en este caso es el número de identificación del mismo, con el fin de tener identificado a cada uno de los usuarios que hagan uso del mismo y en la hoja de datos pueda ir plenamente referenciada cada prueba. Además requiere algunos datos para el cálculo de los umbrales de los ojos y de la boca
Figura 7. Identificación del usuario
En la Figura 8 se observa como el sistema inicia con la calibración de los valores.
Figura 8. Calibración de valores de Usuario
En la Figura 9 el sistema solicita al usuario mantener los ojos abiertos durante 3 segundos para almacenar la lectura del ojo el cual se realiza a través de la distancia que hay entre
Figura 9. Sistema en espera por acción de Usuario. Abertura de ojos
Una vez pasan los 3 segundos el sistema le requiere al usuario cerrar los ojos por otro lapso de tiempo de 3 segundos en este caso tal como se observa en la Figura 10.
Figura 10. Sistema en espera por acción del Usuario. Ojos cerrados.
De igual manera una vez el sistema tenga el valor del ojo cerrado pasa a demanda al usuario que mantenga su boca cerrada por otros 3 segundos tal como se muestra en la Figura 11.
Figura 11. Sistema en espera por acción del Usuario. Boca cerrada
Por último, el sistema le exige al usuario abrir su boca como se observa en la Figura 12, esto con el fin de tomar la distancia de un labio a otro y así definir si el usuario bosteza o no, también se cuenta con pausas o por acción del usuario.
Figura 12. Sistema en espera por acción del Usuario. Abertura boca.
Una vez el sistema cuenta con estos datos se da inicio a la calibración para calcular los umbrales tanto de los ojos como de la boca.
Cálculo del Valor Umbral de los ojos
Datos:
Valor de ojos abiertos (ojo_ab) =
0.3373035039301121
Valor de ojos cerrados (ojo_ce) =
0.1245925244298065
Los datos anteriores hacen referencia al cálculo del umbral de los ojos, el sistema promedia el valor de los ojos tanto abiertos como cerrados en esos 3 segundos de adquisición de datos y los arroja en los valores que se observan en la Figura 13; estos se suman y se dividen entre 2 para conocer el valor del umbral, pero no sin antes restarle un 0.05, este valor se resta puesto que la diferencia entre los ojos abiertos y cerrados es pequeña, entonces es necesario marcar ese umbral para evitar que se generen complicaciones en el sistema a la hora de que se presente un usuario el cual tenga los ojos pequeños o los tenga medio abiertos y no termine siendo contado como si tuviera los ojos cerrados.
Figura 13. Calibración del valor de los umbrales
Cálculo del Valor Umbral de la boca
Datos:
Valor boca cerrada = 0.01953702926937503
Valor boca abierta = 0.33524094103365554
Los datos anteriores hacen referencia al valor del Umbral de la boca, operación que realiza internamente el sistema dentro de su estructura. Estos valores con los cuales se realiza la operación son obtenidos por el sistema a través del usuario, en la misma calibración de los valores. En la Figura 14 se pueden corroborar estos resultados, pero también se puede observar en detalle cada uno de los valores que fueron tenidos en cuenta a la hora de realizar los cálculos.
Figura 14. Fin de la prueba por falta de interés en el Usuario
Una vez el sistema tenga estos datos calcula los umbrales y termina la calibración y permite al usuario elegir lo que desee ver según sea su interés como se muestra en la Figura 15. En este punto el usuario debe tomar la decisión en que programa quiere ingresar para visualizar la información (base de datos).
Figura 15. Lectura en tiempo real de los valores del ojo y boca del primer usuario
Una vez obtenidos los valores de los umbrales tanto para los ojos como para la boca del usuario y también ya habiendo elegido el programa que desee ver dicho usuario el sistema iniciara inmediatamente sea tomada dicha conclusión, como se muestra en la figura 14 y 16.
Figura 16. Valores arrojados de la prueba al Usuario
Resultados y Discusión
En la tabla 1 se observan los valores arrojados por el sistema una vez terminada la prueba con el usuario, la cual tuvo una duración de 70.30 segundos, tiempo realmente corto que refleja el afán que tenía el usuario por finalizar la prueba. El tiempo de distracción como lo presenta la tabla, es calculado por el sistema cada vez que el usuario mantiene valores por debajo del umbral de los ojos o por encima del umbral de la boca, puesto que esta lectura permite saber si el usuario se está quedando dormido o está bostezando constantemente, reflejando falta de interés a la información que se está brindando a
Tabla 1. Resultados prueba usuario
Las mismas pruebas se realizaron a un total de 10 usuarios, en la tabla 2 se resumen los resultados.
Tabla 2. Resultados prueba a muestras de 10 usuarios
Para validar la efectividad del sistema, se analizaron los videos de cada una de las pruebas de la muestra de usuarios seleccionados. Se ponderaron por análisis de la mirada del usuario y su gesticulación los tiempos de distracción y de atención. Los análisis del video se realizaron con el apoyo de un psicólogo. En la tabla 3 se compilan los resultados:
Tabla 3. Compilación de resultados
A continuación, se demostrarán los porcentajes de atención y distracción en la prueba realizada al usuario como se expresa en (1).
Datos: tiempo total (Tt) y tiempo distraído
(Td)
Tiempo total (Tt) = 70.30 segundos
Tiempo distraído (Td) = 29.56 segundos
Tiempo de atención (Ta) = Tt – Td = 40.74 segundos
(1)
De esta manera se comprueba la veracidad de cada uno de los datos que arroja el sistema. Son datos aproximados reduciendo a 2 el número de decimales. Estos valores el sistema los muestra en la terminal sobre la cual se ejecuta el sistema, pero también en un documento el cual se denominó “Exportaciones”, en el cual se indica la información de cada prueba realizada junto al nombre, código, valor de los umbrales de cada usuario y la duración de la prueba con los porcentajes definidos bajo los cálculos realizados.
Finalmente, la prueba puede terminar de 2 maneras, la primera por falta de interés del usuario como sucedió en este caso (oprimiendo el botón siguiente en varias oportunidades) o puede terminar una vez el usuario tenga acceso a toda la información del sistema.
Conclusiones
El sistema fue desarrollado a partir de los principales factores faciales que están directamente relacionados con la concentración: ojos y boca, para los cuales se establecieron medidas distintas en cuanto a apertura y distancia de puntos en ojos y boca (edades, sexo de los usuarios).
En la validación se pudo evidenciar que el sistema reconoce los puntos del rostro, pero para esto es necesario tener buena iluminación, después de pruebas hechas se puede ver que la variación entre medidas con poca y buena luz es considerable.
El diseño del sistema de visión artificial, permite medir a través del reconocimiento facial el interés o distracción de un estudiante universitario en ambientes virtuales de aprendizaje, a través de sensores de detección facial y cámara, haciendo eficiente el sistema en cuanto a consumo de recursos del sistema, precios del software y complejidad de programación.
Se recomienda profundizar esto usando métodos de inteligencia artificial clasificadores para trabajos futuros, fue necesario hacer una medición cada vez que inicia el sistema para trabajar con valores personalizados a cada usuario.
Referencias Bilbiografícas
[1] M. García, “Percepción, Atención y Memoria”. [En línea]. Disponible: http://www4.ujaen.es/~mrgarcia/Tema1PAM.pdf. [Accedido: 04-ju1-2017]
[2] A. Ruíz, “Sistemas de percepción y visión por computador”. Universidad de Murcia, 2015.
[3] A. Ruiz-García, Sistemas de percepción y visión por computador, Departamento de Informática y Sistemas, Facultad de Informática, Universidad de Murcia, 2015.
[4] Carol Dweck. Universidad de Stanford 2014. Academic Tenacity, Mindsets and Skills that Promote Long-Term Learning
[5] N. Mendoza. (2016, May 10). Ed100, Qué motiva a los estudiantes.
[6] E. Galvis-Restrepo, “Diseño de un robot localizador de objetos”, Respuestas, vol. 5, no. 1, pp. 11-15, 2000.
[7] Cognex. “Introduction to machine vision”. A guide to automating process & quality improvements, 2016.
[8] Open CV, 2017. [Online]. Available:https://opencv.org/ [Accessed: 04-ju1- 2017]
[9] DirkThomas, Dirk Thomas (OSRF) The ROS build farm - what it can do for me, 2014.
[10] ASUS Company, multinational computer hardware and consumer Electronics Company
[11] M.A. Alvarez. (2003, Nov 19). Qué es Python. DesarrolloWeb.com, Compañía de desarrollo de software y hardware.
[12] Dlib C++ Library. (2015). Qué es Python. DesarrolloWeb.com. Compañía de desarrollo de software y hardware.
[13] Dlib C++ Library. (2015). Qué es Python. DesarrolloWeb.com. Compañía de desarrollo de software y hardware.
[14] C. Martel, 350 Letras. (2009, Jun 12). Duración de un parpadeo.