¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. Inteligencia artificial fácil
  3. El ordenador sabe leer
Extrait - Inteligencia artificial fácil Machine Learning y Deep Learning prácticos
Extractos del libro
Inteligencia artificial fácil Machine Learning y Deep Learning prácticos
3 opiniones
Volver a la página de compra del libro

El ordenador sabe leer

Lo que vamos a descubrir y requisitos

En este capítulo vamos a realizar un proyecto que tendrá como objetivo hacer leer al ordenador en voz alta las letras del alfabeto que le enseñaremos mediante una cámara web. Trataremos la detección y el reconocimiento basados en una transmisión de vídeo.

Requisitos: haber leído todo el libro.

Considerando que estamos llegando al final del libro, hemos querido orientar este capítulo como si fuese un caso práctico que usted debe realizar de manera autónoma. En efecto, ya hemos tratado el conjunto de los conceptos necesarios para elegir el algoritmo de aprendizaje. Pero no se asuste, le guiaremos durante todo el proceso. Finalmente, terminaremos con una explicación del funcionamiento de la captura de vídeo y de su uso en nuestro proyecto.

Su misión

Su objetivo es conseguir que el ordenador detecte y reconozca una letra manuscrita cuando se coloque frente a su cámara web. Con un pequeño plus no despreciable, deberá ser capaz de leerla en voz alta.

Por el momento, no se preocupe por las fases de detección y de lectura en voz alta, se las explicaremos detalladamente al final del capítulo.

Su misión se limita al aprendizaje del reconocimiento de una letra manuscrita. Para conseguirlo, vamos a guiarlo por el sesgo de preguntas a las que le invitamos a responder sobre la marcha.

1. Pregunta n.º 1: ¿Qué datos necesita?

Respuesta: Necesita un conjunto de datos que contengan las distintas letras del alfabeto.

En el capítulo anterior hemos visto que existía una base de datos llamada MINST(Modified o Mixed National Institute of Standards and Technology) que permite obtener un conjunto de observaciones para el reconocimiento de números. Sin embargo, también hay un conjunto de observaciones para el reconocimiento de letras. Para conseguirlo vamos a utilizar el módulo Python- MNIST, que contiene el conjunto de observaciones de números y el conjunto de observaciones de letras. Puede encontrar el módulo y su documentación en esta dirección: https://github.com/sorki/python-mnist.

images/ch13_01.PNG

Instalación del módulo Python-mnist.

2. Pregunta n.º 2: ¿Cómo se utiliza el módulo Python-Mnist ?

Respuesta: Lo primero que hay que hacer es consultar la documentación que, fracamente, a primera vista es un poco difícil de comprender. Por eso vamos a ayudarle.

En la documentación, menciona:

To use EMNIST datasets you need to call:  
  
mndata.select_emnist('digits')  
Where digits is one of the available EMNIST datasets. You can  
choose from  
balanced  
byclass  
bymerge  
digits  
letters  
mnist 

Significa que el módulo propone varios tipos de conjuntos de datos, como digits para los números y letters para las letras (esto nos interesa). Para utilizarlos tenemos que emplear el método select_emnist.

EMnist es un conjunto de observaciones extendido del estándar Mnist:

https://www.nist.gov/itl/products-and-services/emnist-dataset

Mndata es una variable que se inicializa como se indica a continuación:...

El reconocimiento de letras en un vídeo

Ahora vamos a descubrir cómo vamos a detectar la letra escrita por un usuario y después cómo vamos a realizar su clasificación.

1. Una pizarra como apoyo

Vamos a utilizar una pizarra y escribiremos la letra en el centro. Luego se la enseñaremos a la cámara y un script de Python se ocupará de buscar una forma rectangular que aparece en el vídeo y tiene un área específica. Esta forma será la zona de escritura donde se encuentra la letra escrita a mano que hay que reconocer.

Una vez detectada esta forma rectangular, le haremos una foto y luego la analizaremos para predecir la letra que contiene.

images/ch13_04.PNG

Proceso de reconocimiento de la imagen con ayuda de una cámara web

Para facilitar la detección de la forma rectangular vamos a añadir una banda de cinta adhesiva negra que permitirá, entre otras cosas, que el portador de la pizarra coloque sus dedos sobre ella para sujetarla sin perturbar la detección de la forma.

En efecto, si los dedos del usuario están sobre el contorno de la zona de escritura que se ha de detectar, veremos que la detección es difícil porque ya no tiene cuatro lados regulares. La banda de cinta adhesiva negra evita este problema.

2. OpenCV, un módulo de tratamiento de imágenes

La forma se puede detectar fácilmente usando un módulo destinado a ello, llamado OpenCV.

Le invitamos a añadir a su proyecto la versión 3.4.5.20 de este módulo.

images/ch13_05.PNG

Instalación de la versión 3.4.5.20 del módulo OpenCV

a. Utilizar la cámara web

Una vez añadido el módulo OpenCV, vamos a crear un archivo nuevo llamado lectura.py y vamos a añadirle algunas líneas:

import cv2  
  
print('Inicialización de la cámara web')  
webcam = cv2.VideoCapture(0)  
if webCam.isOpened():  
   largoWebcam = webCam.get(3)  
   anchoWebcam = webCam.get(4)  
   print('Resolución:' + str(largoWebcam) + " X " +  
str(anchoWebcam))  
else:  
   print('ERROR') 

Al principio, importamos el módulo OpenCV que lleva el nombre CV2, luego inicializamos la cámara web. Por supuesto, para que este programa funcione es necesario...

Conclusión

Acaba de crear su primer proyecto de establecimiento de una relación entre el hombre y la máquina.

Al escribir en una pizarra el usuario está a una cierta distancia de la máquina y no interactúa directamente con ella. La máquina, gracias a la visión y a la palabra combinadas con un algoritmo de clasificación, puede comunicarse con el usuario y da la impresión de comprenderle. La máquina parece "inteligente".

Le proponemos que pida a algunos adultos que prueben su aplicación y que luego haga la misma prueba con niños. ¿Quiénes se sorprenden más?

Habríamos podido concluir este libro con este caso práctico, pero nos ha parecido interesante añadir un último capítulo para explicar cómo se diseñó el primer ChatBot. Hemos querido hacer una visita al pasado para que tome conciencia, sin lugar a dudas, de que la inteligencia artificial no es una ciencia nueva y que, a veces todavía puede sorprenderle de la manera más simple.