Está en la página 1de 122

Universidad Tecnológica de La Habana José Antonio Echeverría

Centro de Investigaciones en Microelectrónica


Facultad De Ingeniería En Telecomunicaciones Y Electrónica

Procesamiento de imágenes, obtenidas por un vehículo autónomo, para el


reconocimiento de daños en cultivos.

Tesis en opción al título de Ingeniero en Telecomunicaciones y Electrónica.

Autor: Silvia Campanioni Morfi


Tutores: Dr. C. Juan Carlos Cruz Hurtado
MSc. Ariel Fajardo Márquez

La Habana, Cuba
2020

1
ÍNDICE

PENSAMIENTO…………………………………………………………………….…V
DECLARACIÓN DE AUTORÍA……………..…………………………………….…VI
AGRADECIMIENTOS…………………………………………………………….…VII
DEDICATORIA…………………………………………………………………...…VIII
RESUMEN……………………………………………………………….……………IX
ÍNDICE DE TABLAS……………………...…………………………………………..XI
ÍNDICE DE FIGURAS………………………………………………………………..XII
LISTA DE LAS ABREVIATURAS UTILIZADAS………………………………......XV
INTRODUCCIÓN.................................................................................................1

CAPÍTULO 1 ASPECTOS GENERALES Y FUNDAMENTOS TEÓRICOS DE


LOS SISTEMAS DE RECONOCIMIENTO DE IMÁGENES OPTENIDAS POR
VEHÍCULOS AUTÓNOMOS………………………………………………………. ...6

1.1 Introducción ........................................................................................6


1.2 El procesamiento de imágenes…………………………………………..6
1.2.1 Proceso de filtrado………………………………………………………6
1.2.1.1 Filtrado en el dominio de la frecuencia………………………………7
1.2.1.1.1 Tipos de filtros……………………………………………………….8
1.2.1.1.2 Ventajas y desventajas del filtrado en el dominio de la
frecuencia……………………………………………………………………….9
1.2.1.2 Filtrado en el dominio del tiempo……………………………………..9
1.2.1.2.1 Tipos de filtros ……………………………………………………..11
1.2.2 “Binarización” …………………………………………………………..12
1.2.3 Segmentación de Imágenes……………………………………….….13
1.2.3.1 Borde de una imagen digital……………………………………..….14
1.2.3.1.1 Operador Roberts………………………………………………….16
1.2.3.1.2 Operador Prewitt…………………………………………………..16
1.2.3.1.3 Operador Sobel…………………………………………………….18
1.2.3.1.4 Operador Canny………………………………………..………….18
1.2.3.2 “Umbralización” ………………………………………….…………..20
1.3 Redes Neuronales ………………………………………….……………20

I
1.3.1 Fundamentos teóricos de una RNA……………………..……………21
1.3.2 El modelo de Mc Culloch & Pitts………………………………………23
1.3.3 Redes monocapa………………………………………………………26
1.3.4 Redes multicapa ………………………………………….……………27
1.3.5 Redes feedforward………………………………………..……………28
1.3.6 Redes recurrentes………………………………………..……………28
1.3.7 Aprendizaje en las redes neuronales artificiales…….………………28
1.3.7.1 Aprendizaje supervisado……………………………………………31
1.3.7.2 Aprendizaje no-supervisado……………………….……………….32
1.3.8 Nivel de aplicación…………………………………...………………...33
1.4 Vehículos autónomos ………………………………..………………….37
1.4.1 Uso de los VA…………………………………….…………………….37
1.4.2 Utilización de los VA en la Agricultura………………………………..38
1.4.3 Desventajas de los VA…………………………………………………38
1.5 Arquitectura de CURIOSO………………………………………………40
1.6 Conclusiones del Capítulo……………………………………………….43

CAPÍTULO 2 PROCESADO DE LA IMAGEN Y DISEÑO DE LA RED


NEURONAL……………………………………………………..……………………44

2.1 Introducción……………………………………….……………………...44
2.2 Procesado de la imagen…………………………………………………44
2.2.1 Escala de grises………………………………………….………….…44
2.2.2 Escala de Blanco y Negro. …………………………………………...45
2.2.3 Invertir la escala de Blanco y Negro………….……………………….46
2.2.4 Reducción del tamaño de la foto…………………………………...…46
2.3 Red Neuronal Artificial…………………………...………………………47
2.3.1 Arquitectura………………………………………………………….…47
2.3.2 Neuronas Convolucionales……………………………………………48
2.3.3 Neuronas de Reducción de Muestreo……………….……………….48
2.3.4 Neuronas de Clasificación…………………………………………….49
2.3.5 Aplicaciones………………………………………..…………………..50
2.3.6 Entrenamiento …………………………………………………………50
2.3.7 Clasificación de imágenes…………………………...………….…….51

II
2.4 Conclusiones del Capítulo……………………………………………….52

CAPÍTULO 3 DISEÑO DEL HARDWARE DEL VEHÍCULO AUTÓNOMO…......54

3.1 Introducción……………………………………………………..………..54
3.2 Requisitos y funciones del Vehículo Autónomo ………………….……54
3.3 Selección de los elementos que conforman a CURIOSO…………….55
3.3.1 Sensor ultrasónico (HCR-04)…………………………………………55
3.3.2 Transceptor NRF24L01………………………………………………..57
3.3.3 Módulo de bluetooth (HC-05)…………………………………………58
3.3.4 Cámara OV7670…………………………………………………….…60
3.3.5 Servomotores………………………………………………………..…62
3.3.5.1 Características…………………………………………………….....63
3.3.5.2 Funcionamiento……………………………………………..……….64
3.3.5.3 Uso de Driver L298N para servomotores…………………………65
3.3.5.4 Control de un motor paso a paso bipolar…………………………..67
3.3.6 Motores de DC…………………………………………………………68
3.3.6.1 Principio de funcionamiento………………………………………...69
3.3.6.2 Uso del Driver L298N para motores DC……………………………69
3.3.6.3 Uso de un módulo de relés……………………………….…………70
3.3.6.3.1 Esquema del circuito del módulo de relés. ………………...……71
3.3.7 Procesadores de información…………………………………………72
3.4 Esquema de conexión de los elementos del VA……………….….…..73
3.4.1 Esquema de conexión del sensor ultrasónico……………………….73
3.4.2 Esquema de conexión del transceptor NRF24L01………………….74
3.4.3 Esquema de conexión del servomotor………………………………74
3.4.4 Esquema de conexión de los motores de DC……………..……….75
3.4.4.1 Motores de DC controlados por módulo de relés……………..…75
3.4.5 Esquema de conexión del módulo de bluetooth……………………76
3.5 Diseño de sistema para la alimentación del VA………………………76
3.6 Conclusiones del Capítulo……………………………………………….77

CAPÍTULO 4 DISEÑO DEL SOFTWARE DEL VA…………………………..……78

III
4.1 Introducción………………………………………………………........…78
4.2 Consideraciones generales del software del VA………………………78
4.2.1 Consideraciones del software para el primer punto propuesto…….79
4.2.2 Consideraciones del software para el segundo punto propuesto....81
4.3 Diseño de la aplicación usando el Software Processing……………...83
4.4 Diseño de la aplicación usando el Software App Inventor………...….85
4.5 Conclusiones del Capítulo……………………………………………....89

CAPÍTULO 5 RESULTADOS EXPERIMENTALES DEL RECONOCIMIENTO DE


IMÁGENES OBTENIDAS POR VEHÍCULOS AUTÓNOMOS……………...……91 …

5. 1 Introducción…………………………………………………………...…91 .

5.2 Modificación de la antena del NRF24L01……………………………...91 .

5.3 Pruebas del manejo del VA mediante las aplicaciones


desarrolladas………………………………………………………………….93 .

5.3.1 Prueba de manejo del VA usando la aplicación en la PC…………..93 .

5.3.2 Prueba del manejo del VA usando la apk en un dispositivo


Android………………………………………………….……………………..95 .

5.4 Validación de la red neuronal…………………….……………………..96 .

5.5 Pruebas de consumo de energía………………….…………………….96 .

5.6 Presupuesto Económico………………………….……………………..97.


5.7 Conclusiones del Capítulo…………………………………………….…99 .

CONCLUSIONES……………………………….………………………………….100
RECOMENDACIONES…………………………...………………………………..101
BIBLIOGRAFÍA……………………………………………………………………..102

IV
PENSAMIENTOS
El ver de nada me sirve, si no está la explicación de lo que veo, si mi
entendimiento no convierte en elemento de juicio la visión.
José Martí

No sé con qué armas se luchará en la Tercera Guerra Mundial, pero sí sé con


cuáles lo harán en la Cuarta Guerra Mundial: Piedras y Palos
Albert Einstein

Una importante especie biológica está en riesgo de desaparecer por la rápida y


progresiva liquidación de sus condiciones naturales de vida: el hombre. (…)
Páguese la deuda ecológica y no la deuda externa. Desaparezca el hambre y
no el hombre. (…) Mañana será demasiado tarde para hacer lo que debimos
haber hecho hace mucho tiempo.
Fidel Castro

V
DECLARACIÓN DE AUTORÍA

Declaro que soy el autor de este Trabajo de tesis y que autorizo al ISPJAE, a
hacer uso del mismo con fines educativos e investigativos, siempre que se haga
la debida referencia a su autor.
Para que así conste, firmamos la presente a los ___ días del mes de __________
del año __________.

________________________
Silvia Campanioni Morfi

_________________________
Dr. C. Juan Carlos Cruz Hurtado

VI
AGRADECIMIENTOS

Quiero agradecer en especial a mi compañero de vida, mi Chimuelo, sin él,


nunca hubiera presionado el acelerador para dejar las ideas volar. Sabes que,
sin ti, hubiera sido imposible. Te amo.

A mis padres, abuelos y hermana, por todo el trabajo y estrés que les he
ocasionado a lo largo de mis años de estudio.

He de resaltar la gran participación que han tenido mi padre y mi suegro en


este proyecto, gracias a la búsqueda incesante de sus “tarecos” hemos logrado
llevar esta idea a la práctica.

A mis tutores JK y Ariel, siempre comprometidos con mi proyecto. Gracias por


su paciencia y disposición, siempre he recibido su ayuda y me han enseñado
mucho.

Al profe Bacallao, que ha influido no solo en mi pensamiento como profesional,


sino en mi forma de ver la vida. Gracias por acompañarnos y guiarnos aun desde
la distancia durante estos cinco años; ha sido, y será siempre como un abuelo
para mí.

Es difícil mencionar a todas las personas que me han acompañado en este


largo paso por la CUJAE, para todas ellas mis más sinceros agradecimientos.

VII
DEDICATORIA

Quiero dedicar este trabajo a todas las personas que me han inspirado a

estudiar y a seguir el camino en el que estoy, ya que con su esfuerzo me han

demostrado que la voluntad de superarse es superior a cualquier

pensamiento negativo o conformista.

Cuán lejos hemos llegado abuela…. y lo mejor aún está por venir.

VIII
RESUMEN

En este trabajo se presenta el diseño e implementación de un vehículo


autónomo (nombrado CURIOSO) que recolecta imágenes para detectar daños
en los cultivos. V Este sistema se encarga de recorrer las parcelas y toma fotos
de los cultivos para su posterior procesamiento. El robot posee dos modos de
trabajo: de forma automática con recorridos predefinidos o de forma manual,
controlado por el usuario. Cuenta con una cámara que gira 360 0 y un radar que
escanea 1500 . El control del vehículo se realiza de forma inalámbrica y tiene dos
vías. En la primera, se comunica mediante un módulo bluetooth, con un
dispositivo con sistema operativo Android. Fue concebida para moverlo en el
proceso de mantenimiento o para trasladarlo en lugares donde no llegue la WSN
desplegada en el área. En segunda opción, se utiliza el transceptor NRF24L01,
con el fin de obtener de la red información procedente de una aplicación en la
PC. Esta aplicación muestra al usuario los videos de la cámara, visualiza los
procesos del radar y las huellas del recorrido que realiza el vehículo. Además,
se encarga de la obtención de los vectores que conforman las imágenes
obtenidas por CURIOSO. A dichas imágenes, se les aplican una serie de filtros
para mejorar la calidad, reducir el tamaño, y adecuarlas para luego introducidas
en una red neuronal. Con el propósito de validar su uso para la detección de
daños en los cultivos, se diseñó y entrenó una red neuronal capaz de reconocer
dígitos del 0 al 9.

Palabras Claves: vehículo autónomo, red neuronal, procesamiento de imágenes.

IX
ABSTRACT

This paper presents the design and implementation of an autonomous vehicle


(named CURIOUS) that collects images to detect damage to crops. V This
system is responsible for touring the plots and takes photos of the crops for
further processing. The robot has two working modes: automatically with
predefined paths or manually, controlled by the user. It has a camera that rotates
and a radar that scans. Vehicle control is done wirelessly and has two ways. In
the first one, it communicates through a bluetooth module, with a device with an
Android operating system. It was conceived to move it in the maintenance
process or to move it in places where the WSN deployed in the area does not
reach. In the second option, the NRF24L01 transceiver is used, in order to obtain
information from the network from an application on the PC. This application
shows the user the videos of the camera, visualizes the radar processes and the
tracks of the route taken by the vehicle. In addition, it is responsible for obtaining
the vectors that make up the images obtained by CURIOSO. A series of filters
are applied to these images to improve the quality, reduce the size, and adapt
them to later be introduced into a neural network. In order to validate its use for
the detection of damage to crops, a neural network capable of recognizing digits
from 0 to 9 was designed and trained.

Keywords: autonomous vehicle, neural network, image processing.

X
ÍNDICE DE TABLAS

Tabla 1.1 Comparación entre un computador secuencial y el sistema biológico


neuronal.............................................................................................................22
Tabla 3.1 Terminales del módulo NRF24L01, su función y descripción………58.
Tabla 3.2 Consumo de corriente para los diversos estados del NRF24l01……58.
Tabla 3.3 Terminales del módulo HC-05 y su descripción……………………….59.
Tabla 3.4 Terminales del cámara OV7670, su función y descripción…………..62.
Tabla 3.5 Necesidades del vehículo autónomo…………………………………..72.
Tabla 5.1 Presupuesto para la implementación de CURIOSO………………….97.

XI
ÍNDICE DE FIGURAS

Figura 1.1: Etapas del procesamiento de imágenes en el dominio de la


frecuencia…..…………………………………………………………………………..8
Figura 1.2: Filtros en el dominio de la frecuencia…………………………………...9
Figura 1.3: Descripción del concepto kernel……………………………………….10
Figura 1.4: (a) Imagen original……………………………………………………....13
Figura 1.4: (b) Imagen “Binarizada”………………………………………………...13
Figura 1.5: Máscara para el cálculo del punto aislado…………………………….14
Figura 1.6: Ejemplo de puntos aislados…………………………………………….14
Figura 1.7: Ejemplo de similitud en una imagen…………………………………...14
Figura 1.8: Ejemplo de detección de bordes.......................................................16
Figura 1.9: Ejemplo de Operador Roberts..........................................................16
Figura 1.10: a) Máscara Vertical.........................................................................17
Figura 1.10: b) Máscara Horizontal.....................................................................17
Figura 1.11: Ejemplo de Operador Prewitt. (a) Imagen original...........................17
Figura 1.11: Ejemplo de Operador Prewitt. (b) Imagen en dirección vertical.......17
Figura 1.11: Ejemplo de Operador Prewitt. c) Imagen en dirección horizontal....17
Figura 1.12: a) Máscara Vertical.........................................................................18
Figura 1.12: b) Máscara Horizontal.....................................................................18
Figura 1.13: Ejemplo de Operador Sobel. (a) Imagen original............................18
Figura 1.13: Ejemplo de Operador Sobel. (b) Imagen dirección vertical.............18
Figura 1.13: Ejemplo de Operador Sobel. (c) Imagen dirección horizontal.........18
Figura 1.14: Ejemplo de Operador Canny..........................................................19
Figura 1.15: Ejemplo de “Umbralización” Caso Ideal..........................................20
Figura 1.16: Ejemplo de neurona........................................................................22
Figura 1.17: Modelo Mc Culloch & Pitts (MCP)...................................................23
Figura 1.18: Funciones de activación del tipo escalón, lineal o sigmoidal...........24
Figura 1.19: Estructura de una Red Multinivel con todas las Conexiones hacia
adelante.............................................................................................................26
Figura 1.20: Esquema de red monocapa............................................................27
Figura 1.21: Esquema de red multicapa.............................................................28
Figura 1.22: Redes Neuronales Recurrentes. (a) Monocapa.............................29

XII
Figura 1.22: Redes Neuronales Recurrentes. (b) Monocapa con unidades de
contexto.............................................................................................................29
Figura 1.23: Esquema representativo del aprendizaje supervisado...................31
Figura 1.24: Aprendizaje no-supervisado...........................................................33
Figura 1.25: Bloques funcionales de CURIOSO.................................................41
Figura 1.26: Esquema de etapas de desarrollo para el procesamiento de la
imagen..............................................................................................................42.
Figura 2.1: Imagen llevada a escala de grises…………………………………….45.
Figura 2.2: Ejemplo de imagen “Binarizada”……………………………………....45
Figura 2.3: Ejemplo de imagen convertida a escala de blanco y negro………….46
Figura 2.4: Ejemplo de imagen invertida…………………………………………...46
Figura 2.5: Imagen llevada a la resolución deseada……………………………....47
Figura 2.6: Muestra de dígitos que se utilizaron en el entrenamiento de la RN...51
Figura 2.7: Muestra del entrenamiento de la RN.................................................51
Figura 2.8: Clasificación de una imagen realizada en el Paint............................52
Figura 3.1: Diagrama en bloques del vehículo autónomo...................................55
Figura 3.2: Tiempo que tarda el pulso en ir y volver............................................56
Figura 3.3: Pines de conexión del HCR-04 y explicación de los mismos.............57
Figura 3.4: NRF24L01 con antena interna y con antena externa........................57
Figura 3.5: Vista trasera del módulo HC-05........................................................59
Figura 3.6: Imagen del módulo OV7670.............................................................60
Figura 3.7: Imagen de un servomotor.................................................................63
Figura 3.8: Curvas características de un servomotor..........................................64
Figura 3.9: Driver L298N....................................................................................66
Figura 3.10: Ilustración de las vías de alimentación............................................66
Figura 3.11: Esquema de conexión utilizando un Arduino Uno...........................68
Figura 3.12: Esquema de conexión de un motor DC...........................................69
Figura 3.13: Esquema de conexión de un motor de DC para controlar su
velocidad............................................................................................................70
Figura 3.14: Módulo de relés..............................................................................71
Figura 3.15: Esquema de un módulo de relés…………………………………….71
Figura 3.16: Vista superior de un Arduino MEGA................................................73
Figura 3.17: (a) Diagrama de conexión…………………………………………….74
Figura 3.17: (b) Diagrama esquemático de conexión..........................................74

XIII
Figura 3.18: (a) Diagrama de conexión del NRF24L01.......................................74
Figura 3.18: (b) Diagrama esquemático de conexión del NRF24L01..................74
Figura 3.19: (a) Diagrama de conexión del servomotor......................................75
Figura 3.19: (b) Diagrama esquemático de conexión del servomotor.................75
Figura 3.20: (a) Diagrama de conexión de los motores de DC............................75
Figura 3.20: (b) Diagrama esquemático de conexión de los motores de DC.......75
Figura 3.21: Diagrama esquemático de conexión del módulo de relés...............76
Figura 3.22: a) Diagrama de conexión del módulo de Bluetooth.........................76
Figura 3.22: (b) Diagrama esquemático de conexión del módulo de Bluetooth...76
Figura 3.23: Sistema de alimentación diseñado en Proteus para el VA..............77
Figura 4.1: Diagrama de flujo del primer proceso…………………………………80.
Figura 4.2: Diagrama de flujo del segundo proceso……………………………...82.
Figura 4.3: Interfaz que muestra la imagen y sus diversas transformaciones…84.
Figura 4.4: Interfaz que muestra el pequeño radar………………………………85.
Figura 4.5: Ícono para acceder a la aplicación…………………………………….86.
Figura 4.6: Ventana inicial de la aplicación……………………………………….87.
Figura 4.7: Sección de identificación…………………………………………...….88.
Figura 4.8: Sección de autentificación…………………………………………….88.
Figura 4.9: Menú de control de CURIOSO…………………………………...……89.
Figura 5.1: Transceptor NRF24L01……………………………………………….91.
Figura 5.2: (a) NRF24L01 sin modificar…..……………………………………....92. r

Figura 5.2: (b) NRF24L01 modificado…………………………………………......92.

XIV
LISTA DE LAS ABREVIATURAS UTILIZADAS

VA Vehículo Autónomo
RNA Red Neuronal Artificial
RN Red Neuronal
TLU Threshold Logic Unit
PC Computadora Personal
DC Corriente Directa
SPI Serial Peripheral Interface
RF Radiofrecuencia
RFID Radio Frequency Identification
ISM Industrial Scientific and Medical
CMOS Complementary Metal-Oxide-Semiconductor
VGA Video Graphics Array
PWM (Pulse-Width Modulation)
Rx Recepción
SCCB Bus de Control de Cámara Serial
Tx Transmisión
PS Puerto Serie

XV
INTRODUCCIÓN

La búsqueda de herramientas tecnológicas que mejoren el trabajo de los


campesinos es algo necesario, ya que sus cosechas se ven afectadas por
hierbas y plagas no deseadas, las que afectan la calidad y retrasan la producción
del cultivo. En la actualidad en Cuba, el sector agrícola realiza el monitoreo de
las plantaciones mediante la inspección visual por personal experimentado,
debido a que no se cuenta con un sistema automatizado que lo realice. Este
procedimiento es subjetivo, monótono, inconsistente y costoso; lo que trae
consigo fallas en el proceso. Al ser, la calidad de los productos un factor
fundamental para el crecimiento de esta industria, surge la necesidad de detectar
los daños en una etapa temprana, así como sus agentes causales. [1]

La agricultura de precisión, en síntesis, consiste en el empleo de las nuevas


tecnologías para un estudio detallado de la parcela, de manera que pueda
aplicarse cada tratamiento de manera localizada. Empezó a estudiarse en los
años ochenta, pero ha sido a partir del nuevo siglo cuando el desarrollo
tecnológico, y sobre todo el acceso a tecnologías de costo reducido, han
permitido su despliegue definitivo. Su objetivo es poner a disposición del
agricultor toda la información necesaria sobre las variaciones agronómicas
dentro de la parcela. Para que, de esta forma, en cada metro cuadrado de terreno
se labre, fertilice, siembre y riegue en la proporción idónea y conseguir la máxima
producción posible en cada punto. Esto conlleva a la reducción de costes de
producción y una gestión agrícola más respetuosa con el medio ambiente, que
se puede resumir en los siguientes puntos [2,3]:

- Uso eficiente de recursos costosos.


- Reducción de los contaminantes ambientales.
- Mejor aprovechamiento de la maquinaria agrícola.
- Mayor facilidad de gestión de la explotación agrícola.
- Incremento de la producción.

El uso de vehículos autónomos para la detección de problemas en los cultivos


se ha vuelto muy importante en los últimos años, tratando de dar mayor

1
información a los productores, para que se apliquen tratamientos y riego de
fertilizantes en los lugares de manera precisa. [3]. Mediante estos, se puede
realizar la recolección de muestras, así como la obtención de imágenes, las
cuales podrán ser analizadas para prevenir el deterioro de los cultivos. En este
punto, juega un papel importante el procesamiento de imágenes con el objetivo
de mejorar el aspecto de las fotografías, y que sean más evidentes en ellas
ciertos detalles que se desean hacer notar. Este procesado se puede realizar por
medio de métodos ópticos, o bien por medio de métodos digitales, en una
computadora. [4]

Para lograr examinar y determinar el estado de los cultivos mediante las


imágenes, previamente procesadas, es necesario un método eficaz y automático
que lo realice. La aproximación de funciones desconocidas a partir de un
conjunto de muestras experimentales ha sido siempre, y sigue siendo, una parte
fundamental en muchas disciplinas científicas e industriales. Esta tarea se ha
abordado de diversas formas a lo largo de la historia, pasando por los modelos
estadísticos, los modelos basados en lógica difusa y los modelos neuronales.
Estos últimos, aprenden y se forman a sí mismos, en lugar de ser programados
de forma explícita, y sobresalen en áreas donde la detección de soluciones o
características es difícil de expresar con la programación convencional.

En Cuba, es de vital importancia la producción nacional de alimentos, y


vinculado a este, el ahorro de recursos como el agua, el combustible y los
fertilizantes. La agricultura de precisión no es la solución a los problemas
productivos de la isla, pero si se utiliza correctamente ofrece ventajas como el
incremento del rendimiento, ahorro significativo de combustible en las
maquinarias agrícolas y de agua en hasta un 40 por ciento en el caso del arroz
y el riego de la caña de azúcar. [2,3] Por otra parte, el clima y los suelos son
cada día más adversos a los procesos productivos en la agricultura, y se necesita
exactitud a la hora de aplicar un fertilizante o un herbicida, sembrar los cultivos,
preparar la tierra; a lo cual pudiera contribuir esta automatización.

En estos momentos en que existe una reducción importante de los recursos


materiales y financieros, asociado al bloqueo, tiene gran relevancia este

1
proyecto. Además de que dentro de los 11 programas priorizados para el
período 2021-2025 en Cuba, se encuentran la producción de alimentos y la
agroindustria.

Problema a resolver:
En la actualidad en Cuba no se cuenta con un sistema automático que sea capaz
de clasificar el estado de los cultivos en tiempo real.

Objeto de estudio:
Agricultura de precisión.

Campo de acción:
Procesamiento de imágenes, obtenidas por vehículos autónomos para el
reconocimiento de daños en los cultivos.

Objetivo general:
- Implementar un sistema que permita determinar el estado de los cultivos
de forma automática mediante imágenes obtenidas utilizando vehículos
autónomos, de manera que sería posible aplicar tratamientos y protección
anticipada, al detectar en una etapa temprana las enfermedades, así
como sus agentes causales.

Objetivos Específicos:
- Diseñar y construir un vehículo autónomo capaz de obtener las imágenes
necesarias para el análisis del estado de los cultivos.
- Diseñar, implementar y validar un software que permita el reconocimiento
de los daños causados en los cultivos por hierbas y plagas no deseadas.

Tareas:
- Buscar y consultar la literatura especializada que trate sobre agricultura
de precisión, vehículos autónomos, procesamiento de imágenes y redes
neuronales.

2
- Obtener información en relación al diseño de redes neuronales artificiales
(RNA) vinculadas a la agricultura de precisión y las decisiones tomadas
frecuentemente en los entrenamientos.
- Diseñar y construir un vehículo autónomo capaz de adquirir las muestras
necesarias para la confección de la base de datos.
- Diseñar, entrenar y validar una RNA para clasificar el estado de los
cultivos a partir de un conjunto finito de muestras.
- Elaboración de la propuesta correspondiente.

Métodos de trabajo:
Para el desarrollo de la investigación se emplearon métodos teóricos y
empíricos.
- Método histórico-lógico: revisar el estado del arte de las investigaciones
sobre agricultura de precisión, las RNA y las aplicaciones de los vehículos
autónomos a problemas relacionados con la agricultura.
- Métodos cuantitativos y cualitativos: determinar el desempeño del
vehículo autónomo y la red neuronal en cuanto a los indicadores que
utilizan otros investigadores sobre el tema.
- Método de observación: evaluar la efectividad del sistema propuesto tanto
en las simulaciones como en condiciones reales.
- Método de criterio de expertos: consultar las metodologías utilizadas por
los autores en el tema, y las soluciones finales que estos proponen.

Resultados obtenidos:
o Se creó un vehículo autónomo capaz de recorrer las parcelas y trasmitir
las imágenes obtenidas a una aplicación en la PC.
o Se creó un circuito de alimentación, capaz de alternar la fuente de energía
entre un panel solar y una batería, para brindare autonomía al vehículo.
o Se modificó la antena del transceptor NRF24L01, obteniendo mayor
ángulo de radiación, sin afectar los demás parámetros del mismo.
o A través de las aplicaciones diseñadas para los sistemas operativos
Windows y Android, se puede interactuar con CURISO. En ellas se
muestra y controla todas las funciones que puede realizar el vehículo.

3
o El sistema es de fácil manejo, las interfaces desarrolladas son amigables,
con la finalidad de lograr un sistema de iguales prestaciones que los
existentes en el mercado.
o Se diseñó una red neuronal capaz de clasificar imágenes. Debido a no
contar con una base de datos referida a la identificación de plagas en la
agricultura, para entrenar la red, se utilizó una base de datos que consiste
en 10 000 números distribuidos del 0 al 9.

Estructura por capítulos:

La memoria escrita contiene: resumen, glosario utilizado, introducción, cinco


capítulos, conclusiones, recomendaciones y bibliografía utilizada en el trabajo.
Los capítulos se describen de forma resumida a continuación.

En el Capítulo 1, “ASPECTOS GENERALES Y FUNDAMENTOS TEÓRICOS


DE LOS SISTEMAS DE RECONOCIMIENTO DE IMÁGENES OBTENIDAS POR
VEHÍCULOS AUTONÓMOS”, se definen los conceptos de reconocimiento de
imágenes y vehículos autónomos, su desarrollo, sus características y
aplicaciones. Además, se muestran las ventajas que presentan los vehículos
autónomos para la obtención de imágenes de cultivos.

En el Capítulo 2, “DISEÑO DE LA RN”, se ofrece una definición precisa de una


RN vinculada con este trabajo en específico. Se diseñó la RN, definiendo la
cantidad de capas y de neuronas por capas. Quedó determinado cómo se
comunicará con la interfaz gráfica y el comportamiento que tendrá la misma.

En el Capítulo 3, “DISEÑO DEL HARDWARE DE EL VEHÍCULO


AUTÓNOMO”, se describen los requisitos del hardware para el diseño del
vehículo (“CURIOSO”), indicando sus características más importantes, y el
porqué de la selección de cada componente. Además, se diseña cada módulo
con que contará el mismo.

En el Capítulo 4, “DISEÑO DEL SOFTWARE DE RECONOCIMIENTO DE


IMÁGENES.”, se definen los requisitos específicos que debe satisfacer el

4
software. Además, se detallan los diagramas de flujo de las subrutinas que
satisfacen las necesidades del mismo. También se implementa la aplicación que
permitirá al usuario el trabajo con el procesamiento y “CURIOSO”.

En el capítulo 5, “RESULTADOS EXPERIMENTALES DEL


RECONOCIMIENTO DE IMÁGENES OBTENIDAS POR VEHÍCULOS
AUTÓNOMOS.”, se realiza la modificación de la antena del NRF24L01 con el
objetivo de obtener mayor ángulo de radiación. Se pone a prueba el control del
vehículo autónomo. Se comprueba la comunicación entre CURIOSO y las
aplicaciones desarrolladas. Se somete a pruebas el software creado para
visualizar los resultados y la red neuronal creada para clasificar.

Por último, en las conclusiones se presentan los principales resultados


obtenidos; mientras que en las recomendaciones se sugieren aspectos
generales que permiten darle continuidad al trabajo de
de investigación.

5
CAPÍTULO 1 ASPECTOS GENERALES Y FUNDAMENTOS TEÓRICOS DE
LOS SISTEMAS DE RECONOCIMIENTO DE IMÁGENES OPTENIDAS POR
VEHÍCULOS AUTÓNOMOS.

1.1 Introducción

En este capítulo se abordaron los aspectos generales y los fundamentos


teóricos del procesamiento de imágenes, los vehículos autónomos y las redes
neuronales. También se mencionan las ventajas de los vehículos autónomos en
la recolección de imágenes y del uso de las redes neuronales en el
reconocimiento de las mismas.

1.2 El procesamiento de imágenes

El procesamiento de imágenes tiene como objetivo mejorar el aspecto de las


imágenes haciendo más evidentes en ellas ciertos detalles que se desean hacer
notar. Se puede en general realizar por medio de métodos ópticos, o bien por
medio de métodos digitales, en una computadora. Este último caso se refiere al
conjunto de técnicas que se aplican a las imágenes digitales con el objetivo de
mejorar la calidad o facilitar la búsqueda de información. Para lograr este
procesamiento se ejecutan un conjunto de técnicas, las cuales se abordan a
continuación. [5-9]

1.2.1 Proceso de filtrado

Es el conjunto de técnicas comprendidas dentro del pre-procesamiento de


imágenes cuyo objetivo fundamental es obtener, a partir de una imagen origen,
otra final, cuyo resultado sea más adecuado para una aplicación específica,
mejorando ciertas características de la misma, que posibilite efectuar
operaciones del procesado sobre ella. [6-11] Los principales objetivos que se
persiguen con la aplicación de filtros son:

- Suavizar la imagen: reducir la cantidad de variaciones de intensidad entre


píxeles vecinos.

6
- Eliminar ruido: eliminar aquellos píxeles cuyo nivel de intensidad es muy
diferente al de sus vecinos y cuyo origen puede estar tanto en el proceso
de adquisición de la imagen como en el de transmisión.
- Realzar bordes: destacar los bordes que se localizan en una imagen.
- Detectar bordes: detectar los píxeles donde se produce un cambio brusco
en la función intensidad.

Por tanto, se consideran los filtros como operaciones que se aplican a los
píxeles de una imagen digital para perfeccionarla, y enfatizar cierta información,
o conseguir un efecto especial en ella. El proceso de filtrado puede llevarse a
cabo sobre los dominios de frecuencia o tiempo.

1.2.1.1 Filtrado en el dominio de la frecuencia

Estos filtros procesan una imagen trabajando sobre el dominio de la frecuencia


en la Transformada de Fourier [8]. Para ello, esta se modifica siguiendo el
Teorema de la “Convolución” [9] correspondiente:

- Se aplica la Transformada de Fourier.


- Se multiplica posteriormente por la función del filtro que ha sido escogido.
- Para concluir re-transformándola al dominio espacial empleando la
Transformada Inversa de Fourier.

Teorema de la Convolución [9]:

𝐺(𝑢,𝑣) = 𝐹(𝑢,𝑣) ∗ 𝐻(𝑢,𝑣) Ecuación 1.1

Donde:
𝐹(𝑢,𝑣) : transformada de Fourier de la imagen original.
𝐻(𝑢,𝑣) : filtro atenuador de frecuencias.

Como la multiplicación en el tiempo es equivalente a la “convolución” en el


dominio de la frecuencia, todos los filtros podrían, en teoría, ser implementados

7
como un filtro temporal. En la siguiente imagen (Figura 1.1) se pueden observar
las etapas del proceso de filtrado en el dominio de la frecuencia. Lo que brinda
una idea de cómo se realiza el mismo.

Figura 1.1: Etapas del procesamiento de imágenes en el dominio de la


frecuencia.

1.2.1.1.1 Tipos de filtros


Existen básicamente, tres tipos distintos de filtros que pueden aplicarse (ver
figura 1.2):

- Filtro pasa bajo: atenúa las frecuencias altas y mantiene sin variaciones
las bajas. El resultado en el dominio del tiempo es equivalente al de un
filtro de suavizado, donde las altas frecuencias que son filtradas se
corresponden con los cambios fuertes de intensidad. Consigue reducir el
ruido suavizando las transiciones existentes.

- Filtro pasa alto: atenúa las frecuencias bajas manteniendo invariables las
frecuencias altas. Puesto que las altas frecuencias corresponden en las
imágenes a cambios bruscos de densidad, este tipo de filtro es usado,
porque entre otras ventajas, ofrece mejoras en la detección de bordes en
el dominio del tiempo, ya que estos contienen gran cantidad de dichas
frecuencias. Refuerza los contrastes que se encuentran en la imagen.

- Filtro pasa banda: atenúa frecuencias muy altas o muy bajas manteniendo
una banda de rango medio. Mantiene una banda de rango intermedio, por
lo que reduce ruido y refuerza contrastes, pero no con igual intensidad
que los anteriores filtros por separado.

8
Figura 1.2: Filtros en el dominio de la frecuencia.

1.2.1.1.2 Ventajas y desventajas del filtrado en el dominio de la frecuencia

Ventajas:
- Método simple y sencillo de implementar.
- Fácil asociación del concepto de frecuencia con ciertas características de
la imagen; cambios de tonalidad suaves implican frecuencias bajas y
cambios bruscos coinciden con las frecuencias altas.
- Proporciona flexibilidad en el diseño de soluciones de filtrado.
- Rapidez en el filtrado al utilizar el Teorema de la “Convolución”.

Desventajas:
- Se necesitan conocimientos en varios campos para desarrollar una
aplicación para el procesamiento de imágenes.
- El ruido no puede ser eliminado completamente.

1.2.1.2 Filtrado en el dominio del tiempo

Estas operaciones de filtrado se llevan a cabo directamente sobre los píxeles


de la imagen. En este proceso se relaciona, para cada uno de los puntos de la
imagen, un conjunto de píxeles próximos al píxel objetivo con la finalidad de
obtener una información útil. En dependencia del tipo de filtro aplicado, se
actuará sobre el píxel concreto, para obtener mejoras sobre la imagen y datos

9
que podrían ser utilizados en futuras acciones o procesos de trabajo sobre ella.
[10-12] Los filtros en el dominio del tiempo pueden clasificarse en:

- Filtros lineales (filtros basados en kernels o máscaras de convolución).


- Filtros no lineales.

El concepto de kernel (ver figura 1.3) se entiende como una matriz de


coeficientes donde el entorno del punto (𝑥, 𝑦) que se considera en la imagen
para obtener 𝑔(𝑥, 𝑦) está determinado por el tamaño y forma del kernel
seleccionado. Aunque la forma y tamaño de esta matriz es variable y queda a
elección de cada usuario, es común el uso de kernels cuadrados n x n.
Dependiendo de la implementación, en los límites de la imagen se aplica un
tratamiento especial (se asume un marco exterior de ceros o se repiten los
valores del borde) o no se aplica ninguno. Es por ello, que el tipo de filtrado queda
establecido por el contenido de dicho kernel utilizado. [10]

Figura 1.3: Descripción del concepto kernel.

Para realizar un filtrado en el dominio del tiempo, se realiza una “convolución”


(barrido) del kernel sobre la imagen (ver ecuación 1.2). Para ello se sigue el
Teorema de la “Convolución” en el tiempo: [9]

𝑔(𝑥,𝑦) = ℎ(𝑥,𝑦) ∗ 𝑓(𝑥,𝑦) Ecuación 1.2

Cada píxel de la nueva imagen se obtiene mediante la sumatoria de la


multiplicación del kernel (ver ecuación 1.3) por los píxeles contiguos:

10
𝑔(𝑥,𝑦) = ∑ ∑ 𝑓(𝑖,𝑗) 𝑤(𝑖,𝑗) Ecuación 1.3

Donde:
𝑓(𝑖,𝑗) : kernel.
𝑤(𝑖,𝑗) : pixeles contiguos.

Generalmente se divide sobre cierto valor constante para normalizar que suele
obtenerse de la suma de los valores del kernel empleado.

1.2.1.2.1 Tipos de filtros

En el tiempo, al igual que en la frecuencia, existen tres tipos básicos de filtros


que pueden aplicarse:

- Filtro paso bajo (suavizamiento): utilizados para eliminar ruido o detalles


pequeños de poco interés puesto que solo afecta a zonas con muchos
cambios. La frecuencia de corte se determina por el tamaño del kernel y
sus coeficientes. Para ello se emplean diversos kernels:

o Promedio: promedio de píxeles vecinos (kernel de unos).


o Media: reemplaza cada píxel por el valor medio de sus
contiguos.
o Mediana: sustituye por el valor de la mediana de los píxeles
vecinos.
o Gaussiano: aproximación a la distribución gaussiana.

- Filtro paso alto (atenuación): intensifica los detalles, bordes y cambios de


alta frecuencia, mientras que atenúa las zonas de tonalidad uniforme.
Esto permite una mejor identificación de los objetos que se encuentren en
la imagen, puesto que el brillo se hace mayor en las zonas con frecuencias
más altas, al mismo tiempo que se oscurecen las zonas de frecuencias
bajas. Es común la aparición de ruido tras el proceso. Este tipo de filtrado
utiliza diferentes técnicas las cuales se explican a continuación:

11
o Realce de bordes por desplazamiento y diferencia: se sustrae
de la imagen original una copia desplazada de la misma. Así,
es posible localizar y hacer resaltar los bordes existentes y que
se quieran obtener según el modelo de kernel aplicado
(Horizontal, Vertical. Diagonal).

o Realce de bordes mediante Laplace: este tipo de filtros realza


los bordes en todas direcciones (los resultados que se obtienen
pueden considerarse como una “suma” de los obtenidos tras
aplicar todos los modelos del tipo anterior). En este caso se
trabaja con la segunda derivada, que permite obtener mejores
resultados, a pesar del aumento del ruido que se produce en la
imagen.

o Resalte de bordes con gradiente direccional: empleado para


destacar y resaltar con mayor precisión los bordes que se
localizan en una dirección determinada. Trabaja con los
cambios de intensidad existentes entre píxeles contiguos.

o Detección de bordes y filtros de contorno (Prewitt y Sobel): al


igual que los anteriores, se centra en las diferencias de
intensidad que se dan pixel a pixel. Son utilizados para obtener
los contornos de objetos y de este modo clasificar las formas
existentes dentro de una imagen. Este tipo de filtros requieren
un menor coste computacional.

1.2.2 “Binarización”

La “Binarización” (en la figura 1.4 se puede observar un ejemplo) consiste en


una reducción de información en la que los únicos valores posibles son
verdadero y falso (1 y 0). En las imágenes digitales estos valores corresponden
a dos colores, blanco y negro. Este método se utiliza para el análisis de
imágenes, permitiendo la separación de objetos o regiones, que interesan del

12
resto de la imagen. Es decir, se puede separar el fondo de la imagen de los
objetos que se desea analizar. [7,8, 10,11]

Figura 1.4: (a) Imagen original (b) Imagen “Binarizada”.

1.2.3 Segmentación de Imágenes

Segmentar una imagen consiste en resaltar regiones con características


específicas las cuales pueden ser de color o forma. La segmentación se basa en
dos propiedades: la discontinuidad y la similitud entre los niveles de grises de los
pixeles vecinos. [7,8, 10,11]

- Discontinuidad: en este caso, se divide a la imagen de acuerdo a los


siguientes cambios en los niveles de gris:

o Detección de puntos aislados


o Detección de líneas
o Detección de bordes

Se dice que existe un punto aislado cuando el tono de gris de un píxel tiene
diferencia significativa con el de los píxeles vecinos. A continuación, en las
figuras 1.5 y 1.6 se muestra un ejemplo de máscara para el cálculo de un punto
aislado. Si al aplicar esta máscara sobre un pixel es mayor o igual que cierto
valor de umbral entonces es un punto aislado.

13
Figura 1.5: Máscara para el cálculo del punto aislado.

Figura 1.6: Ejemplo de puntos aislados.

- Similitud: La imagen es dividida por regiones que tengan valores idénticos


de acuerdo con los criterios prefijados. (figura 1.7)

Figura 1.7: Ejemplo de similitud en una imagen.

1.2.3.1 Borde de una imagen digital

Dentro de las técnicas del procesamiento digital de imágenes se encuentra la


detección de bordes que consiste en la búsqueda de los límites de los objetos

14
dentro de las imágenes. Dentro de la segmentación se utiliza la detección de
bordes para la extracción de datos en las áreas [8,10, 11]. Los filtros que se
utilizan para detectar los bordes son los siguientes:

o Filtro Roberts
o Filtro Prewitt
o Filtro Sobel
o Filtro Canny

Se puede definir como borde de una imagen a los cambios en los niveles de
gris entre dos regiones (ver figura 1.8). Para la detección de bordes se utilizan
aproximaciones de la primera y segunda derivada de los niveles de grises de la
imagen. En el caso de funciones bidimensionales 𝑓(𝑥,𝑦) , la derivada es un vector
que apunta en la dirección de la máxima variación de 𝑓(𝑥,𝑦) y cuyo módulo es
proporcional a dicha variación [8,10]. Este vector se denomina gradiente y se
define como:

𝜕𝑓(𝑥,𝑦)
∆𝑓(𝑥,𝑦) = 𝜕𝑥
𝜕𝑓(𝑥,𝑦) Ecuación 1.4
𝜕𝑦

En el caso bidimensional discreto, las distintas aproximaciones del operador


gradiente se basan en diferencias entre los niveles de grises de la imagen. La
derivada parcial 𝑓(𝑥,𝑦) (gradiente de fila 𝐺𝐹(𝑖,𝑗) ) puede aproximarse por la
diferencia de píxeles adyacentes de la misma fila.

𝜕𝑓(𝑥,𝑦)
≈ ∆𝑥 𝑓(𝑥,𝑦) = 𝑓(𝑥,𝑦) − 𝑓(𝑥−1 , 𝑦) [−1 1]
𝜕𝑥 Ecuación 1.5

Para el caso del vector gradiente en el eje 𝑌 (𝐺(𝑖,𝑗) ), será:

𝜕𝑓(𝑥,𝑦) −1
≈ ∆𝑦 𝑓(𝑥,𝑦) = 𝑓(𝑥,𝑦) − 𝑓(𝑥 , 𝑦−1) [ ]
𝜕𝑦 1 Ecuación 1.6

15
Figura 1.8: Ejemplo de detección de bordes.

1.2.3.1.1 Operador Roberts

El Operador Roberts (ver figura 1.9) utiliza una máscara de 2x2 para aplicarla
sobre el eje 𝑥 de un píxel y otra máscara de la misma dimensión sobre el eje
𝑦 del mismo píxel. Esta máscara aplicada a cada eje es en realidad una
aproximación de la aplicación de la derivada. La desventaja de este operador
para la detección de bordes se da debido al uso de una máscara pequeña, lo
que hace que el resultado sea sensible al ruido. [8,12]

Figura 1.9: Ejemplo de Operador Roberts.

1.2.3.1.2 Operador Prewitt

Es un operador de diferencia el cual calcula una aproximación del declive de


la función intensidad de la imagen. El resultado del operador Prewitt es el vector
del declive correspondiente, o la norma de este vector. [8]

16
El operador Prewitt detecta dos tipos de bordes: los horizontales, y los
verticales. Los bordes se calculan mediante el uso de diferencia entre
intensidades de los píxeles correspondientes de una imagen. Las máscaras que
se utilizan, se conocen también como máscaras de derivados las cuales deben
tener las siguientes propiedades:

- El signo opuesto debe estar presente en la máscara.


- Suma de máscara debe ser igual a cero.
- Más peso significa más detección de bordes.

El operador Prewitt proporciona dos máscaras, una para la detección de bordes


en la dirección horizontal y otro para la detección de bordes en una dirección
vertical, como se puede observar en la figura 1.10 a), b) y 1.11 a), b), c).

−1 0 1 −1 −1 −1
[−1 0 1] [0 0 0]
−1 0 1 1 1 1
Figura 1.10: a) Máscara Vertical b) Máscara Horizontal.

(a) (b) (c)


Figura 1.11: Ejemplo de Operador Prewitt. (a) Imagen original (b) Imagen en
dirección vertical c) Imagen en dirección horizontal.

17
1.2.3.1.3 Operador Sobel

El Operador Sobel es también una máscara que se utiliza para detectar dos
tipos de bordes en una imagen ya sea en dirección Vertical u Horizontal. La
diferencia con el Operador Prewitt es que en este operador los coeficientes de
máscaras no son fijos y se pueden ajustar de acuerdo al requerimiento, a menos
que no cumplan con las propiedades de máscaras derivados [8], como se puede
observar el las figuras 1.12 a), b) y 1.13 a), b), c)).

−1 0 1 −1 −5 −1
[−2 0 2] [0 0 0]
−1 0 1 1 5 1
Figura 1.12: a) Máscara Vertical b) Máscara Horizontal.

(a) (b) (c)


Figura 1.13: Ejemplo de Operador Sobel. (a) Imagen original (b) Imagen
dirección vertical (c) Imagen dirección horizontal.

1.2.3.1.4 Operador Canny

El operador Canny (ver figura 1.14) marca la mayor cantidad de bordes reales
que sea posible, estos deben estar lo más cerca del borde en la imagen. Un
borde debe ser marcado solo una vez, y el ruido presente en la imagen no
debería crear bordes [8,11]. Este operador consta de cuatro fases para su
detección:

18
- Obtención del gradiente: se debe suavizar la imagen, aplicando un filtro
Gaussiano. Se calcula el kernel gaussiano para poder calcular el
gradiente. Se obtienen las componentes 𝑋 y 𝑌 del gradiente, y la magnitud
de los bordes. Además, se escoge la orientación de la norma de los
bordes.

- Supresión no máxima al resultado del gradiente: se obtienen los bordes


de un píxel de grosor al considerar únicamente píxeles cuya magnitud es
máxima en bordes gruesos, y se descartan aquellos cuyas magnitudes no
alcancen ese máximo.

- Histéresis de umbral a la supresión no máxima: permite eliminar máximos


procedentes de ruidos, etc. Se obtendrá un conjunto de bordes
conectados de contornos de la imagen, así como la magnitud y
orientación.

- Cierre de contornos abiertos: la imagen de entrada es una imagen de


contornos “Binarizada”. Para cada punto de borde de un extremo abierto
se le asigna un código que determina las direcciones de búsqueda para
el cierre del contorno.

Figura 1.14: Ejemplo de Operador Canny.

19
1.2.3.2 “Umbralización”

La “Umbralización” es uno de los métodos que abarca la segmentación de


imágenes digitales. Busca obtener un valor de umbral que permita la
“Binarización” de la imagen, separando adecuadamente el fondo y el objeto de
interés. Algunas de las técnicas de “Umbralización” están basadas en los
histogramas, en especial en las imágenes donde los objetos tienen una
superficie o textura homogénea y el fondo es más o menos uniforme. Se debe
encontrar el valor adecuado entre los valores de grises en las imágenes que
permita una mejor separación entre el objeto y el fondo. [8,13, 14] (observar
figura 1.15).

Figura 1.15: Ejemplo de histograma.

1.3 Redes Neuronales

Las redes neuronales (también conocidas como sistemas conexionistas) son


un modelo computacional basado en un gran conjunto de unidades neuronales
simples (neuronas artificiales), de forma aproximadamente análoga al
comportamiento observado en los axones de las neuronas en los cerebros
biológicos. Cada unidad neuronal está conectada con muchas otras y los enlaces
entre ellas pueden incrementar o inhibir el estado de activación de las neuronas
adyacentes. Cada unidad neuronal, de forma individual, opera empleando
funciones de suma. Puede existir una función limitadora o umbral en cada
conexión y en la propia unidad, de tal modo que la señal debe sobrepasar un

20
límite antes de propagarse a otra neurona. Estos sistemas aprenden y se forman
a sí mismos, en lugar de ser programados de forma explícita, y sobresalen en
áreas donde la detección de soluciones o características es difícil de expresar
con la programación convencional. [15-21]

Las redes neuronales suelen consistir en varias capas o un diseño de cubo, y


la ruta de la señal atraviesa de adelante hacia atrás. La propagación hacia atrás
es donde se utiliza la estimulación hacia adelante o en el "frente", para
restablecer los pesos de las unidades neuronales y esto a veces se realiza en
combinación con una formación en la que se conoce el resultado correcto. Las
redes modernas son un poco más libres en el sentido de que fluye en términos
de estimulación e inhibición con conexiones que interactúan de una manera
mucho más caótica y compleja. Las redes neuronales dinámicas son más
avanzadas, se pueden formar dinámicamente nuevas conexiones e incluso
nuevas unidades neuronales. [16,18-21]

El objetivo de la red neuronal es resolver los problemas de la misma manera


que el cerebro humano, aunque las redes neuronales son más abstractas. Los
proyectos actuales suelen trabajar desde con unos miles a unos pocos de
millones de unidades neuronales y millones de conexiones que, si bien son
muchas órdenes, siguen siendo de una magnitud menos compleja que la del
cerebro humano, más bien cercana a la potencia de cálculo de un gusano.
[15,20]

1.3.1 Fundamentos teóricos de una RNA

Antes de hablar de redes neuronales artificiales es importante conocer cómo


se constituye una célula, la neurona (figura 1.16). Las Dendritas son la entrada
de la información a la neurona, el Núcleo la procesa y la transmite a través del
Axón. Las ramificaciones terminales del Axón se conectan a otras neuronas a
través de un proceso conocido como sinapsis. En la sinapsis entran en juego los
neurotransmisores como la dopamina, la serotonina, entre muchos otros. [15, 16]

21
Figura 1.16: Ejemplo de neurona.

Una de las características que diferencian a las neuronas del resto de células
vivas, es su capacidad de comunicación. En términos generales, las dendritas y
el cuerpo celular reciben señales de entrada, el cuerpo celular las combina e
integra y emite señales de salida. El axón transporta esas señales a sus
terminales, los cuales se encargan de distribuir la información a un nuevo
conjunto de neuronas. Una neurona recibe información de miles de otras
neuronas y, a su vez, envía información a miles de neuronas más. Se estima que
en el cerebro humano existen en el orden de 1015 conexiones. El procesamiento
de información de esta máquina maravillosa es en esencia en paralelo. En la
Tabla 1.1 se muestra un análisis comparativo entre un computador secuencial
tipo Von Neumann y un sistema biológico neuronal. [15]

Tabla 1.1 Comparación entre un computador secuencial y el sistema biológico


neuronal.
Características Computador Secuencial Sistema Biológico Neuronal
Unidad de Compleja Simple
Procesamiento Alta velocidad Baja velocidad
Una sola unidad Muchas unidades
Separada del procesador Integrada dentro del procesador
Memoria Localizada Distribuida
Direccionable aleatoriamente Direccionable por contenido
Centralizado Distribuido
Procesamiento Secuencial Paralelo
de los Datos Capacidad de Aprendizaje

22
Instrucciones almacenadas en
Programas
Confiabilidad Muy vulnerable ante fallos Robusto ante fallos
Ambiente de Bien definido Puede ser ambiguo
operación

1.3.2 El modelo de Mc Culloch & Pitts

La primera neurona artificial fue propuesta por Warren Mc Culloch y Walter


Pitts en 1943, conocida como el modelo de Mc Culloch & Pitts (MCP). [15-21]

Figura 1.17: Modelo Mc Culloch & Pitts (MCP).

En la figura 1.17, las entradas 𝑥1, 𝑥2, . . . , 𝑥𝑛 simulan las dendritas y la salida
𝑓 , la señal que viaja a través del axón. Dependiendo de la función de activación
(en la figura 1.18 se pueden observar varios ejemplos) de la neurona, puede ser
lineal o no-lineal. Es decir, se genera un 𝑓 = 1 en la salida si:

∑𝑛𝑖=1 𝑥𝑖 𝑤𝑖 > 𝑡 Ecuación 1.7

en caso contrario la neurona genera 𝑓 = 0. Donde 𝑤1, 𝑤2, . . . , 𝑤𝑛 se conocen


como pesos y 𝑡 como el umbral (threshold).

23
Figura 1.18: Funciones de activación del tipo escalón, lineal o sigmoidal.

La neurona artificial por si sola posee poca capacidad de procesamiento y su


nivel de aplicabilidad es baja, su verdadero potencial radica en la interconexión
con las demás, tal como sucede en el cerebro humano. Esto ha motivado a
diferentes investigadores a proponer diversas estructuras para conectar
neuronas entre sí, dando lugar a las redes neuronales artificiales (RNA). En la
literatura se encuentran múltiples definiciones, de las cuales se debe destacar
que se ajustan muy bien al concepto de red. [19-21]

La Agencia de Investigación de Proyectos Avanzados de Defensa (DARPA),


define una red neuronal artificial: como un sistema compuesto de muchos
elementos simples de procesamiento los cuales operan en paralelo, y cuya
función es determinada por la estructura de la red y el peso de las conexiones,
donde el procesamiento se realiza en cada uno de los nodos o elementos de
cómputo. [15]

Según Haykin, una red neuronal es un procesador paralelo masivamente


distribuido que tiene una facilidad natural para el almacenamiento de
conocimiento obtenido de la experiencia, para luego hacerlo utilizable. Se parece
al cerebro en dos aspectos [16-19]:
24
1. El conocimiento es obtenido por la red a través de un proceso de
aprendizaje.
2. Las conexiones entre las neuronas, conocidas como pesos sinápticos,
son utilizadas para almacenar dicho conocimiento.

Kohonen, las define como redes de elementos simples (usualmente


adaptativos) masivamente interconectados en paralelo y con organización
jerárquica, las cuales intentan interactuar con los objetos del mundo real del
mismo modo que lo hace el sistema nervioso biológico. En síntesis, se puede
considerar que una red neuronal artificial es un sistema de procesamiento de
información que intenta emular el comportamiento con las redes neuronales
biológicas. Las redes neuronales artificiales han sido desarrolladas como
generalizaciones de modelos matemáticos del conocimiento humano o de la
biología neuronal, con base en las siguientes consideraciones [15]:

1. El procesamiento de información se realiza en muchos elementos simples


llamados neuronas.
2. Las señales son pasadas entre neuronas a través de enlaces de conexión.
3. Cada enlace de conexión tiene un peso asociado, el cual, en una red
neuronal típica, multiplica la señal transmitida.
4. Cada neurona aplica una función de activación (usualmente no lineal) a
las entradas de la red (suma de las señales de entrada pesadas) para
determinar su señal de salida.

La distribución de las neuronas dentro de una red neuronal artificial se realiza


formando niveles de un número de neuronas determinado. Si un conjunto de
neuronas artificiales recibe simultáneamente el mismo tipo de información, lo
denominaremos capa. En una red se pueden diferenciar tres tipos de niveles:

- Entrada: conjunto de neuronas que recibe directamente la información


proveniente de las fuentes externas de la red.
- Oculto: conjunto de neuronas internas a la red y que no tienen contacto
directo con el exterior. En general, las neuronas de cada nivel oculto

25
comparten el mismo tipo de información, por lo que formalmente se
denominan capas ocultas. Las neuronas de estas capas pueden estar
interconectadas de diferentes maneras, lo que determina, junto con su
número, las distintas arquitecturas de redes neuronales.
- Salida: conjunto de neuronas que transfieren la información que la red ha
procesado, hacia el exterior.

En la figura 1.19, se puede apreciar la estructura de capas de una red neuronal


artificial con varios niveles.

Figura 1.19: Estructura de una Red Multinivel con todas las Conexiones hacia
adelante.

La arquitectura de una RNA es la forma como se organizan las neuronas en


su interior, y está estrechamente ligada al algoritmo de aprendizaje usado para
entrenar la red. Dependiendo del número de capas, las redes se definen como
monocapa y multicapa; y si se toma como elemento de clasificación la forma
como fluye la información, las redes se definen como: Feedforward y
Recurrentes. [15,17-20]

1.3.3 Redes monocapa.

En la figura 1.20, se observan dos niveles de neuronas: el primero asociado al


vector de entrada, en el que no hay ningún tipo de procesamiento de estos datos.

26
Por esta razón no se considera formalmente como una capa, únicamente sirve
de interfaz entre los datos de entrada y las siguientes capas de neuronas. [15,16]

Este primer nivel tiene la misma dimensión del vector de entrada, la


información entra al mismo nivel y los datos son transferidos al siguiente,
modificados por los pesos sinápticos. Como las neuronas de este nivel reciben
el mismo tipo de información se denomina capa y, a su vez, corresponde a la
salida de la red, y se llamará: Capa de Salida. Se debe notar que en esta
arquitectura solo se dispone de una capa de procesamiento, de ahí su nombre
arquitectura mono-capa. [16] Se observa que hay conectividad total entre el nivel
de entrada y la capa de salida, pues todas las neuronas de entrada están
conectadas con todas las neuronas de salida, por ejemplo, la neurona de entrada
𝑖 − é𝑠𝑖𝑚𝑎 se conecta a las m neuronas de salida. La capa de salida tiene m
neuronas, por lo que luego del entrenamiento, la red neuronal establecerá una
relación matemática de un espacio n dimensional a uno m dimensional.

Figura 1.20: Esquema de red monocapa.

1.3.4 Redes multicapa

En este caso (ver figura 1.21), la red tiene un nivel de entrada con n neuronas
y una capa de salida de m neuronas; cuyo comportamiento es similar al descrito
en la red mono-capa. La diferencia sustancial, es que se incluye una nueva capa
intermedia entre la entrada y la salida. Esta última es la que se denomina “Capa
Oculta”, que está conformada por h neuronas. [15-17]

27
Como en el caso anterior, la información fluye en una única dirección, de la
entrada a la capa oculta y finalmente, a la capa de salida, además existe
conectividad total entre ellas. En la figura 1.21, aparece una única capa oculta,
pero una red puede tener más de una capa intermedia, la cual no tiene contacto
con los datos que modelan el mundo real, es decir, los datos de entrada y salida.

Figura 1.21: Esquema de red multicapa.

1.3.5 Redes feedforward

En este tipo de red neuronal artificial, la información fluye en un único sentido


desde las neuronas de entrada a la capa o capas de procesamiento, para los
casos de redes monocapa y multicapa, respectivamente; hasta llegar a la capa
de salida de la red neuronal. [15, 18, 20] Los ejemplos de las figuras 1.19, 1.20
y 1.21 son redes de tipo feedforward.

1.3.6 Redes recurrentes

En este tipo de red neuronal, la información no siempre fluye en un sentido,


puesto que puede realimentarse hacia capas anteriores a través de conexiones
sinápticas. Este tipo de red neuronal puede ser monocapa o multicapa. En la
figura 1.22, se presentan dos ejemplos de redes neuronales recurrentes
monocapa. La salida de cada neurona es pasada por una unidad de retardo y,
luego, llevada hacia todas las neuronas, excepto a sí misma. Se observa que en

28
la figura 1.22(a), hay conexión desde la neurona 𝑗 − é𝑠𝑖𝑚𝑎, hacia las 𝒎
neuronas, menos a la misma neurona 𝑗 − é𝑠𝑖𝑚𝑎. [17, 21]

En la figura 1.22(b), se ha definido un grupo de neuronas que luego de recibir


la información que proviene de las unidades de retardo, llevan su señal de
estímulo hacia todas las neuronas de salida. A este conjunto de neuronas, se le
suele llamar neuronas de contexto.

(a) Monocapa. (b) Monocapa con unidades de contexto


Figura 1.22: Redes Neuronales Recurrentes.

1.3.7 Aprendizaje en las redes neuronales artificiales

El concepto de aprendizaje se asocia normalmente, en la vida cotidiana, al


proceso de formación que se lleva a cabo en las aulas de clase. Adicionalmente,
lo que se asocia al resultado que dejan las diversas experiencias que se
adquieren de la vida cotidiana, y a la manera cómo éstas se condicionan frente
a los diferentes estímulos que se reciben del entorno. La Real Academia de la
Lengua Española define el aprendizaje como: “Adquirir el conocimiento de algo
por medio del estudio o de la experiencia”. [16-22]

Otro punto de vista, es clasificar el aprendizaje como un proceso que permite


apropiar un conocimiento, alguna habilidad, construir actitudes o valores, gracias

29
al estudio, la experiencia o la enseñanza. Este proceso da origen a cambios
permanentes, que son susceptibles de ser medidos y que, generalmente,
modifican el comportamiento del individuo.

Biológicamente, se acepta que la información memorizada en el cerebro está


más relacionada con los valores sinápticos de las conexiones entre las neuronas
que con ellas mismas; es decir, el conocimiento se encuentra en las sinapsis. En
el caso de las redes neuronales artificiales, se puede considerar que el
conocimiento se encuentra representado en los pesos de las conexiones entre
las neuronas. Todo proceso de aprendizaje implica un cierto cambio en éstas.
En realidad, se puede decir que se aprende modificando los pesos sinápticos de
la red neuronal artificial.

El aprendizaje para la red neuronal artificial, es la habilidad para adquirir


conocimientos del entorno y mejorar su desempeño. Este aprendizaje es un
proceso interactivo que permite ajustar los pesos sinápticos. Según Mendel Mc
Clare se puede definir como: “Un proceso mediante el cual los parámetros libres
de una red neuronal artificial son adaptados a través de un proceso de
estimulación del ambiente en el cual está embebida la red. El tipo de aprendizaje
está determinado por la forma cómo se cambian los parámetros en el proceso”.
Teniendo en cuenta la ecuación 1.8, se puede plantear una expresión general
para modelar el proceso de aprendizaje en las redes neuronales artificiales.
[15,21]

𝑤(𝑡 + 1) = 𝑤(𝑡)+ ∆𝑤(𝑡) Ecuación 1.8


Donde:
𝑤(𝑡): Valor actual del peso sináptico.
∆𝑤(𝑡): Variación del peso sináptico.
𝑤(𝑡 + 1) ∶ Valor actualizado del peso sináptico.

Es importante precisar, que la variación del peso sináptico depende del


algoritmo o regla de aprendizaje que se esté utilizando para modificar los pesos
sinápticos de la red neuronal artificial. En general, se estudian dos tipos de
aprendizaje: el supervisado y el no–supervisado.
30
1.3.7.1 Aprendizaje supervisado.

El aprendizaje supervisado, cuyo esquema se muestra en la figura 1.23, se


caracteriza porque el proceso de entrenamiento es controlado por un agente
externo llamado supervisor o maestro. En la figura, el mundo real corresponde
al problema a modelar que se representa mediante un conjunto de datos de
entrada y salida. El supervisor opera como un “maestro” que guía el aprendizaje
en la red, y conoce las salidas deseadas correspondientes a las respectivas
entradas. [21]

Figura 1.23: Esquema representativo del aprendizaje supervisado.

Los datos de entrada se le presentan al supervisor y a la red de neuronal


simultáneamente. El supervisor propone la salida deseada para ser comparada
con la salida de la red neuronal artificial. Para que la labor del supervisor sea
exitosa se define en él, un error de entrenamiento como la diferencia entre la
salida deseada o esperada y la salida que produce la RNA (Ecuación 1.9).
[16,21]

𝑒𝑟𝑟𝑜𝑟 = 𝑑 − 𝑦 Ecuación 1.9


Donde:
𝑑: Salida deseada
𝑦: Salida de la red neuronal artificial

31
Generalmente, en los procesos de aprendizaje se usa un conjunto de patrones
de entrenamiento, que está conformado por un conjunto de vectores de entrada
𝑿 y su correspondiente conjunto de vectores de salida 𝑫.

𝑋 = {𝑥1, 𝑥2, . . . , 𝑥𝑝, . . . , 𝑥𝑃} Conjunto de vectores de entrada


𝐷 = {𝑑1, 𝑑2, . . . , 𝑑𝑝, . . . , 𝑑𝑃} Conjunto de vectores de salida

Donde cada patrón de entrenamiento está constituido por la pareja ordenada de


vectores {𝑥𝑝, 𝑑𝑝}, los cuales se pueden definir así:

𝑋𝑝 = {𝑋𝑝1, 𝑋𝑝2, … , 𝑋𝑝𝑛} Elementos de entrada de un patrón de entrenamiento.


𝐷𝑝 = {𝐷𝑝1, 𝐷𝑝2, … 𝐷𝑝𝑛} Elementos de salida de un patrón de entrenamiento.

Por lo regular, la red debe aprender todo el conjunto de patrones de


entrenamiento y, por esta razón, no se puede entrenar con un error local, sino
que el aprendizaje se hace en términos de un error global 𝐸𝑝, que se calcula en
base a la ecuación 1.10, y define el error cuadrático promedio. Se debe entender
el error global, como el error que produce la red en sus diferentes neuronas de
salida ante todos los patrones de aprendizaje que se estén utilizando para el
proceso de entrenamiento. [21]

1
𝐸𝑝 = ∑𝑃𝑝=1 ∑𝐽𝑗=1(𝑑𝑝𝑗 − 𝑦𝑝𝑗)2 Ecuación 1.10
2𝑃

Donde:
𝑗: número de neuronas en la capa de salida
𝑝: números de patrones de entrenamiento
𝐸𝑝: error global

1.3.7.2 Aprendizaje no-supervisado

En este caso el vector de datos que describe el problema, se le presenta


directamente a la red, pero ahora ya no hay un supervisor o maestro que guía el
aprendizaje. Los pesos de la red se calculan en función de la caracterización que
se haga de la entrada que la RNA recibe, de acuerdo a un objetivo específico

32
que permite obtener el conocimiento que se desea representar con la red. El
esquema de este tipo de aprendizaje se presenta en la figura 1.24. [21,22]

Figura 1.24: Aprendizaje no-supervisado.

1.3.8 Nivel de aplicación.

Las RNA, con su inherente capacidad para extraer el conocimiento a partir de


datos complejos e imprecisos, sin requerir de un modelo a priori del problema,
se han convertido en una herramienta útil para el procesamiento de series de
tiempo, o para el reconocimiento o clasificación de patrones. Esta capacidad está
asociada al aprendizaje que la red hace del problema, convirtiéndose en una
técnica emergente que supera ampliamente a las técnicas computacionales
tradicionales o determinísticas en la solución de problemas complejos. Una red
entrenada puede ser vista como un experto en el manejo de la información que
se le ha dado para analizar. Este experto puede ser utilizado para proporcionar
proyecciones ante nuevas situaciones de interés. [15-22] Entre las
características representativas de las redes neuronales artificiales se tienen:

- Capacidad de aprendizaje: Aprenden a partir de un conjunto de ejemplos


que sean representativos o intenten modelar el problema a solucionar.
Esta es una de las características más poderosas, pues permite que la
red neuronal se adapte a nuevas situaciones siempre y cuando exista la
información necesaria para realizar el proceso de entrenamiento. Como
en el caso de los seres humanos, la calidad de la información o datos que
se le entregue a la red, va a ser fundamental para garantizar la calidad del
aprendizaje, en otras palabras, se garantiza que “la red aprende lo que se
le enseña”.

33
- Capacidad de generalización: Cuando se usan las redes neuronales
artificiales se necesita que ellas sean capaces de extender su respuesta
adecuada a eventos o datos que no han sido utilizados en la fase de
aprendizaje, a esta característica se le denomina generalización. Esta
propiedad de los humanos, permite extender un conocimiento adquirido
bajo ciertas circunstancias, a situaciones similares, pero no exactas. Esta
propiedad también la tienen las redes neuronales, si los datos son
representativos del problema. Lo que se busca es que la red aprenda la
relación entre la entrada y la salida usando algunos ejemplos y, luego, a
la red ya entrenada, si se le suministra un conjunto de entradas del mismo
contexto del problema, la salida generada debe ser la correcta.

- Capacidad para extraer características esenciales de los datos: Algunos


tipos de RNA, son capaces de extraer la información relevante que hay
en ciertos datos y rechazar aquella información que no sea importante.
Esta característica se ha aplicado con mucho éxito en problemas
asociados a la minería de datos.

- Capacidad de asociación: Se refiere a cuando se establece una relación


entre dos conceptos. Por ejemplo, cuando se habla de “aprendizaje en
redes neuronales”, se espera que inmediatamente se genere una
asociación al concepto de modificación de pesos sinápticos. Si se dice
esta misma frase en un auditorio que no conozca de RNA, seguramente
no le dirá nada o no la asociarán a un conocimiento.

- Capacidad de agrupación: La adquisición de conocimiento se comienza


muchas veces con un aprendizaje basado en la repetición de una serie de
ejemplos de entrada y salida que modelan el juicio al aprender, esto
podría asociarse a la memorización, pero se garantiza que las RNA son
capaces de generalizar. Al igual que los seres humanos, las redes
neuronales artificiales son capaces de separar la información relevante de
la irrelevante en un conjunto de datos. Esto es muy útil, pudiendo
solucionar problemas de asociación por sectores o grupos de información,
algo que la literatura se conoce como clustering o agrupamiento.

34
- Aprendizaje Adaptativo: Aprenden a realizar algunas tareas gracias a un
proceso de entrenamiento utilizando ejemplos lo suficientemente
ilustrativos para ello, por lo que no se requiere de modelos a priori, del
sistema o problema que se desea solucionar. Pero el nivel de emulación
no se limita a este importante hecho, sino que las RNA son capaces de
modificar su propia estructura de pesos sinápticos para adaptarse a
nuevas situaciones que se presenten en el sistema y modifiquen su
desempeño. Visto desde otra perspectiva, una misma arquitectura de red
neuronal puede aprender diferentes problemas modificando su matriz de
pesos para adaptarse a las diferentes tareas que se le pedirá que sean
solucionadas.

- Auto-Organización: En el caso concreto de los modelos de redes


neuronales artificiales propuestos por Teuvo Kohonen, su arquitectura se
puede modificar completamente dependiendo de la forma como estén
organizados los datos o del objetivo a cumplir. De alguna manera, la red
neuronal trata de seguir (imitar) la estructura de los datos que se le
presentan a su entrada sin necesidad de que se le imponga una salida
predeterminada.

- Tolerancia a fallos. Las redes neuronales artificiales son tolerables a fallos


en los datos (ruido, distorsiones, datos incompletos) debido a que la red
no almacena el conocimiento de una manera localizada, sino que el
mismo se encuentra distribuido en toda la estructura de la red.

- Operación en Tiempo Real: Las RN deben su fortaleza a su capacidad


para procesar información en paralelo, en implementaciones hardware de
RNA se puede realizar este tipo de procesamiento, lo que permite un
cálculo de la información a muy altas velocidades, suficiente para cumplir
las restricciones de tiempo real, de la gran mayoría de las aplicaciones.
De igual manera, en implementaciones software, se ha visto que el
procesamiento de una neurona es simple y de rápida ejecución; aunque,
en este tipo de uso no se puede garantizar el paralelismo. Por su

35
simplicidad, se puede asegurar que la ejecución total de una red, se hace
en un tiempo lo suficientemente corto como para garantizar las
restricciones de tiempo real para aplicaciones típicas, como de filtrado,
control, identificación de sistemas, entre otras.

Los computadores digitales actuales, superan al hombre en su capacidad de


cálculo numérico y el manejo de símbolos relacionales. Sin embargo, el hombre
puede solucionar problemas mucho más complejos de percepción (por ejemplo,
reconocer a un amigo en una multitud desde un simple vistazo de su cara o al
escuchar su voz, incluso por el modo de caminar; definir la habitabilidad de un
aula a partir de sensaciones de temperatura, ruido, humedad, iluminación, etc.)
a muy altas velocidades y sin necesidad de concebir un complejo modelo
matemático o computacional. La respuesta está en la arquitectura del sistema
neuronal biológico que es completamente diferente a la arquitectura del
computador tradicional Von Neumann, como se indicó en la Tabla 1.1 [15, 21,
22]. Estas diferencias, le brindan un factor de diferenciación y aumento del
desempeño a las redes neuronales artificiales en una gran variedad de campos
de aplicación como los mencionados a continuación:

- Reconocimiento y Clasificación de Patrones: facilidad para solucionar


problemas de reconocimiento y clasificación de patrones, en especial se
puede encontrar una gran cantidad de problemas resueltos utilizando las
redes tipo Perceptrón Multicapa.

- Categorización de Patrones(“clustering”): es muy útil en minería de datos


donde se necesitan encontrar grupos de patrones con características
similares.

- Procesamiento de señales: otro campo de aplicación de las redes


neuronales es el procesamiento de señales como, por ejemplo, la voz. En
este caso la red se puede usar para realizar alguna parte del proceso de
extracción de características o como una etapa clasificadora.

36
- Control: en las industrias hay procesos donde han sido usadas con éxito
las redes neuronales para el modelado y control de los mismos.

- Medicina: se han usado para la extracción de características, a partir de


una imagen o como un clasificador para determinar la pertenencia a una
clase del patrón representado por una imagen.

- Gestión financiera. en este contexto las redes neuronales se han usado,


por ejemplo, para modelar el comportamiento de variables económicas,
como el valor de la acción de una empresa.

- Robótica: la robótica móvil es un área donde se puede sacar partido de la


capacidad de aprendizaje de las redes neuronales. Básicamente, para
ayudarle al robot a tomar decisiones en ambientes cambiantes. En este
momento se ha dado solución a problemas que se caracterizan por tener
altos niveles de incertidumbre que con métodos tradicionales jamás se
habría obtenido. Soluciones tan novedosas e interesantes como la
reconstrucción cráneo facial para la identificación de hombres, música
neuro computacional, sistemas de detección de virus en computadores,
identificación de usuarios en cajeros automáticos desde la imagen del iris
de los ojos, reconocimiento de emisores en comunicaciones, diagnóstico
de hepatitis, recuperación de telecomunicaciones ante fallas en el
software, interpretación de palabras chinas, detección de minas
submarinas, análisis de texturas, reconocimiento de objetos
tridimensionales, reconocimiento de textos manuscritos, entre otros.

1.4 Vehículos autónomos


Un VA es un vehículo sin tripulación reutilizable, capaz de mantener de manera
autónoma un nivel de manejo controlado y sostenido, y propulsado por un motor
de explosión o eléctrico. [23-25]

1.4.1 Uso de los VA


Los VA se utilizan en diferentes sectores como:
- Inspección de infraestructuras.

37
- Gestión de riesgos y desastres naturales (incendios, etc.)
- Exploración de lugares de difícil acceso: cuevas, precipicios, etc.
- Monitorización de sistemas de energía eólica.
- Filmación de películas y fotografía deportiva.
- Control medioambiental.
- Investigación de la vida salvaje.
- Movilidad y Tráfico.
- Control y análisis de multitudes: Manifestaciones, conciertos, etc.
- Agricultura.

1.4.2 Utilización de VA en la Agricultura.

La agricultura de precisión, consiste en el empleo de nuevas tecnologías


para un estudio detallado de la parcela, de manera que pueda aplicarse cada
tratamiento de forma localizada. Para realizar tareas y tratamientos
específicos es necesario identificar las variaciones existentes en los campos
de cultivos. Para ello las imágenes de alta resolución tomadas por satélites
constituyen una buena fuente de información que permite estudiar las
condiciones del cultivo y del suelo, así como determinar las zonas donde se
requieren tratamientos específicos. Sin embargo, la disponibilidad y los
costes, a menudo prohibitivos de tales imágenes podrían suponer un
impedimento para esta aplicación particular en la agricultura de precisión.
Una alternativa menos costosa sería las imágenes tomadas por sensores
remotos o dispositivos a bordo de vehículos autónomos (ya sean aéreos o
terrestres), son una opción potencial dado su bajo coste de operación para la
monitorización ambiental, alta resolución espacial y temporal, además de su
alta flexibilidad en la adquisición de imágenes. [25]

El problema fundamental de los VA es que actualmente la tecnología no


está suficientemente desarrollada para permitir desplegar una detección en
tiempo real y la actuación simultánea sobre el terreno. A este tipo de sistema
de visión se le denomina indirecto, ya que necesitan de un procesamiento
posterior a la captura de imágenes, conjuntamente con una supervisión,
apoyada por sistemas computacionales, para identificar las zonas a tratar.
38
En los últimos años ha proliferado el uso de vehículos terrestres
robotizados, que favorecen la captura de las imágenes desde una altura
inferior a los tres metros con fácil instalación de los sistemas de visión en
mástiles o acopladas en tractores o robots agrícolas. Estas imágenes junto a
los métodos proporcionados por la visión por computador, constituyen una
buena herramienta para la identificación de texturas por diferenciación
espectral o espacial. [25]

1.4.3 Desventajas de los VA

En nuestros días son innumerables las ventajas de estos dispositivos tanto


en la vida civil como en el ámbito militar. Estos equipos pueden realizar una
gran gama de trabajos; pero como cada adelanto tecnológico tiene sus
inconvenientes. Por esta razón es necesario conocerlos y utilizar esta
tecnología de manera que su uso no sea perjudicial o inseguro. A
continuación, se describen un grupo de inconvenientes, los cuales pueden
clasificarse de la siguiente manera:

Inconvenientes técnicos
- El enlace puede ser “hackeado” y de esta forma, romperse el canal de
comunicaciones entre el operador y el VA e interceptar sus datos.
- Retraso entre la emisión de instrucciones y su recepción, para su proceso
y ejecución, lo que en condiciones críticas puede ser fatal para el vehículo.
- Influencia en su funcionamiento por los fenómenos físicos, como la
actividad solar, mal tiempo, tormentas de rayos, la cual produce cambios
en la ionosfera.
- Capacidad de desplazamiento limitada por el tipo de combustible, fuente
de energía, tamaño, alcance y su sistema de navegación.

Inconvenientes éticos
- Su comercialización no controlada, traería como consecuencia el ser
adquirido por personas o grupos de dudosa ética.

39
- Algunas personas pueden ser grabadas y fotografiadas de forma ilegal,
tanto en espacios privados como públicos, constituyendo tal motivo una
seria amenaza a la inviolabilidad de la privacidad personal.

Desventajas económicas
- El alto coste de su adquisición (a gran escala) lo que dificulta
enormemente su uso para empresas privadas y compañías, pues es un
diseño relativamente nuevo en el desarrollo de la tecnología.

1.5 Arquitectura de CURIOSO

El vehículo autónomo “CURIOSO” consta de los siguientes bloques


funcionales (figura 1.25):

- Bloque de Alimentación: se encarga de abastecer energéticamente a todo


el módulo. Al ser sistemas inalámbricos, este parámetro está compuesto
por baterías, y por tanto la autonomía es uno de los factores más
importantes a tener en cuenta en el desarrollo del vehículo.

- Bloque Sensor: es el elemento que interactúa con el entorno, encargado


de medir la distancia del vehículo respecto a posibles obstáculos, para
evitar colisiones.

- Actuador: este bloque está compuesto por motores de DC, por motores
paso a paso, driver de control para los motores y leds.

- Bloque de Procesamiento: encargado de cualquier trabajo a realizar con


los datos obtenidos del censado. Un microprocesador será el encargado
de estas funciones.

- Bloque de Almacenamiento: la memoria de CURIOSO almacena datos


temporales o datos generados en el procesamiento. Ejemplo de datos son
los vectores que conforman las imágenes obtenidas por la cámara.

40
- Bloque Transceptor: su función es establecer conexión para transmitir y
recibir información, como por ejemplo comandos para controlar CURIOSO
o los vectores que se envían a la aplicación en la PC.

- Bloque de Adquisición de imágenes: está compuesto por una cámara, y


es el encargado de adquirir las imágenes y videos.

Figura 1.25: Bloques funcionales de CURIOSO.

Para complementar la utilización de los bloques funcionales antes


descritos, en a figura 1.26 se muestra el diagrama que conforma el proceso
de obtención de las imágenes a procesar. Para dar cumplimiento a esta tarea
se enumerarán los pasos a seguir:

1. Toma de la foto.
2. Envío de la misma segmentada en vectores hacia la PC.
3. Conformación de la imagen en la PC. Construyendo la matriz con los
vectores recibidos.
4. Procesamiento de la imagen, aplicación de filtrado.
5. Introducción de la imagen mejorada y simplificada a la red neuronal.
6. Muestra de los resultados en la PC.

41
Figura 1.26: Esquema de etapas de desarrollo para el procesamiento de la
imagen.

42
1.6 Conclusiones del capítulo

1- Para esta aplicación es necesario procesar las imágenes tomadas por


curioso, con el objetivo de que esta llegue a la red neuronal sin ruido
(idealmente), filtrada, de forma reducida y con solo la información
necesaria. Una imagen reducida con solo la información necesaria hace
que la red neuronal obtenga mejores resultados y sus tiempos de
entrenamiento se vean significativamente reducidos.
2- Se define qué son las redes neuronales, cómo están constituidas, cómo
se realiza su aprendizaje y la gran variedad de aplicaciones en las que
son empleadas.
3- Se demuestra el creciente uso de los vehículos autónomos, para cualquier
uso, desplazando el trabajo manual del hombre. Son innumerables sus
ventajas y utilidades, pero se muestra de manera precisa algunos de sus
principales inconvenientes.
4- Se presentó la propuesta en bloques del sistema y la arquitectura de
CURIOSO.

43
CAPÍTULO 2 PROCESADO DE LA IMAGEN Y DISEÑO DE LA RED
NEURONAL.

2.1 Introducción.

En este capítulo se exponen los elementos fundamentales del


procesamiento de imágenes y el diseño de la red neuronal para dar solución al
problema planteado en este trabajo. Se seleccionan todos los procesos de
filtrado y acondicionamiento de los datos para su introducción a la red neuronal.
Se diseña y entrena una red neuronal capaz de identificar los dígitos del 0 al 9,
validando de esta forma su utilización para el reconocimiento de patrones en las
imágenes. Se especifican los requisitos técnicos que debe cumplir el sistema.

2.2 Procesado de la imagen.

La imagen recibida de CURIOSO tiene que ser procesada, con la intención de


reducir el ruido que presente la misma, para así obtener una imagen lo más real
posible. Será necesario reducir su tamaño a una escala más pequeña, pues en
los procesos de entrenamiento de la RN se usaron escalas pequeñas para lograr
tiempos muchos menores. Hay que filtrar la imagen a varias etapas, escala de
grises, blanco y negro e invertir el blanco y el negro; con el objetivo de reducir
información en la imagen a solo la necesaria. Además, resaltar los bordes y
lograr la compatibilidad con la RN diseñada.

2.2.1 Escala de grises.

La escala de grises es aquella empleada en la imagen digital en la que el valor


de cada píxel posee un valor equivalente a una graduación (de 0 a 255) de gris.
Las imágenes representadas de este tipo están compuestas de sombras de
grises. En la figura 2.1 se puede observar un ejemplo.

44
Figura 2.1: Imagen llevada a escala de grises.

Para lograr reducir los procesos de forma eficiente, primero se realiza un


filtrado para llevar la foto a escala de grises. Con esta opción, disminuye la
información de la foto y ahora es una sola matriz que trabaja en el rango de
valores de 0 a 255.

2.2.2 Escala de Blanco y Negro.

Convertir una foto a escala de blanco y negro es equivalente a decir “Binarizar”


la imagen, o sea llevar los componentes de la matriz a niveles de ceros y unos
(figura 2.2 y 2.3). Mediante este procedimiento, se logra reducir la información
de la imagen significativamente, lo que representa un ahorro de tiempo durante
el entrenamiento y la obtención de resultados de la red neuronal.

Figura 2.2: Ejemplo de imagen “Binarizada”.

45
Figura 2.3: Ejemplo de imagen convertida a escala de blanco y negro.

2.2.3 Invertir la escala de Blanco y Negro.

Como la base de datos que se utilizará para entrenar la red neuronal tiene las
imágenes de los números en color blanco con el fondo en negro, es necesario
invertir los valores de los ceros y los unos. El objetivo es transformar la imagen
a similitud de las imágenes que se utilizaron para entrenar, para que la
clasificación de la misma sea lo más certera posible. En la figura 2.4 se observa
una imagen que le fueron invertidos el blanco por el negro.

Figura 2.4: Ejemplo de imagen invertida.

2.2.4 Reducción del tamaño de la foto.

Como se evidenció en el epígrafe anterior, es necesario acondicionar la imagen


y hacer que tenga características similares a las que se utilizaron para entrenar
la red neuronal. Por lo tanto, además de invertir el blanco y el negro es necesario
reducir el tamaño a una resolución de 28 x 28 píxeles. En la figura 2.5 se aprecia
cómo se realiza esta reducción. Además, se aplicó un filtro con la intención de

46
que no se pierda información necesaria o esencial. Para ello se utilizó la
interpolación del vecino próximo, que permite reducir la imagen perdiendo un
mínimo de información imprescindible.

Figura 2.5: Imagen llevada a la resolución deseada.

2.3 Red Neuronal Artificial.

En este trabajo se utiliza una red neuronal convolucional, la cual es un tipo de


RNA donde las neuronas corresponden a campos receptivos de una manera muy
similar a las neuronas en la corteza visual primaria de un cerebro biológico. Este
tipo de red es una variación de un perceptrón multicapa, sin embargo, debido a
que su aplicación es realizada en matrices bidimensionales, son muy efectivas
para tareas de visión artificial, como en la clasificación y segmentación de
imágenes, entre otras aplicaciones. [21]

2.3.1 Arquitectura

Las redes neuronales convolucionales consisten en múltiples capas de filtros


convolucionales de una o más dimensiones. Después de cada capa, por lo
general, se añade una función para realizar un mapeo causal no-lineal.

Como redes de clasificación, al principio se encuentra la fase de extracción de


características, compuesta de neuronas convolucionales y de reducción de
muestreo. Al final de la red se encuentran las neuronas de tipo perceptrón,
sencillas para realizar la clasificación sobre las características extraídas. La
etapa de extracción de características se asemeja al proceso estimulante en las
células de la corteza visual. Esta fase se compone de capas alternas de
47
neuronas convolucionales y neuronas de reducción de muestreo. Según
progresan los datos a lo largo de esta fase, se disminuye su dimensionalidad,
siendo las neuronas en capas lejanas mucho menos sensibles a perturbaciones
en los datos de entrada, pero al mismo tiempo siendo estas, activadas por
características cada vez más complejas. [21,22]

2.3.2 Neuronas Convolucionales

En la fase de extracción de las características, las neuronas sencillas de un


perceptrón son reemplazadas por procesadores en matriz que realizan una
operación sobre los datos de imagen 2D que pasan por ellas, en lugar de un
único valor numérico. La salida de cada neurona convolucional se calcula como
[16,22]:

𝑌𝑗 = 𝑔(𝑏𝑗 + ∑𝑖 𝐾𝑖𝑗 ⊗ 𝑌𝑖 ) Ecuación 2.1

Donde la salida 𝒀𝒋 de una neurona j es una matriz que se calcula por medio de
la combinación lineal de las salidas 𝒀𝒊 de las neuronas en la capa anterior, cada
una de ellas operadas con el núcleo de convolución 𝑲𝒊𝒋 correspondiente a esa
conexión. Esta cantidad es sumada a una influencia 𝒃𝒋 y luego se pasa por una
función de activación 𝑔(∗) no-lineal.

El operador de convolución tiene el efecto de filtrar la imagen de entrada con


un núcleo previamente entrenado. Esto transforma los datos de tal manera que
ciertas características (determinadas por la forma del núcleo) se vuelven más
dominantes en la imagen de salida al tener estas un valor numérico más alto
asignados a los píxeles que las representan. Estos núcleos tienen habilidades
de procesamiento de imágenes específicas, por ejemplo, la detección de bordes
que se puede realizar con núcleos que resaltan el gradiente en una dirección en
particular. Sin embargo, los núcleos que son entrenados por una red neuronal
convolucional generalmente son más complejos, con el fin de extraer otras
características más abstractas y no triviales. [16]

2.3.3 Neuronas de Reducción de Muestreo


48
Las redes neuronales cuentan con cierta tolerancia a pequeñas
perturbaciones en los datos de entrada. Por ejemplo, si dos imágenes casi
idénticas (diferenciadas únicamente por un traslado de algunos píxeles
lateralmente) se analizan con una red neuronal, el resultado debería de ser
esencialmente el mismo. Esto se obtiene, en parte, dado a la reducción de
muestreo que ocurre dentro de una red neuronal convolucional. Al reducir la
resolución, las mismas características corresponderán a un mayor campo de
activación en la imagen de entrada. [16,21,22]

Originalmente, las redes neuronales convolucionales utilizaban un proceso de


sub-sampling para llevar a cabo esta operación. Sin embargo, estudios recientes
han demostrado que otras operaciones, como por ejemplo max-pooling, son
mucho más eficaces en resumir características sobre una región. Además, existe
evidencia que este tipo de operación es similar a como la corteza visual puede
resumir información internamente. La operación max-pooling encuentra el valor
máximo entre una ventana de muestra y lo pasa como resumen de
características sobre esa área. Como resultado, el tamaño de los datos se
reduce por un factor igual al tamaño de la ventana de muestra sobre la cual se
opera. [16]

2.3.4 Neuronas de Clasificación

Después de una o más fases de extracción de características, los datos


finalmente llegan a la fase de clasificación. Para entonces, los datos han sido
depurados hasta una serie de características únicas para la imagen de entrada,
y es ahora la labor de esta última fase el poder clasificar estas características
hacia una etiqueta u otra, según los objetivos de entrenamiento.

Las neuronas en esta fase funcionan de manera idéntica a las de un perceptrón


multicapa, donde la salida de cada una se calcula de esta forma [16,19,22]:

𝑦𝑗 = 𝑔(𝑏𝑗 + ∑𝑖 𝑤𝑖𝑗 ∗ 𝑦𝑖 ) Ecuación 2.2

49
Donde la salida 𝒚𝒋 de una neurona 𝒋 es un valor que se calcula por medio de
la combinación lineal de las salidas 𝒚𝒊 de las neuronas en la capa anterior, cada
una de ellas multiplicadas con un peso 𝒘𝒊𝒋 correspondiente a esa conexión. Esta
cantidad es sumada a una influencia 𝒃𝒋 y luego se pasa por una función de
activación 𝑔(∗) no-lineal.

2.3.5 Aplicaciones

Dada a la naturaleza de las convoluciones dentro de las redes neuronales


convolucionales, estas son aptas para poder aprender a clasificar todo tipo de
datos, donde estos estén distribuidos de una forma continua a lo largo del mapa
de entrada, y a su vez sean estadísticamente similares en cualquier lugar del
mapa de entrada. Por esta razón, son especialmente eficaces para clasificar
imágenes, por ejemplo, para el auto-etiquetado de estas.

Sin embargo, las redes neuronales convolucionales también pueden ser


aplicadas para la clasificación de series de tiempo o señales de audio utilizando
convoluciones en 1D, así como para la clasificación de datos volumétricos
usando convoluciones en 3D.

2.3.6 Entrenamiento

Al no disponer de una base de datos que contenga plagas que afecten a la


agricultura se utilizó para entrenar la red neuronal una base de datos con 10 000
imágenes, siendo mil de cada número del 0 al 9 (en la figura 2.6 se aprecia una
muestra aleatoria de las imágenes escogidas para el entrenamiento). Para
entrenar se utilizaron 750 y las otras 250 se usaron en la validación de
resultados. Cada imagen tiene una resolución de 28 x 28 píxeles y son números
blancos con fondos negros. En la figura 2.7 se puede observar el proceso de
entrenamiento, de este modo se logró crear una RNA capaz de recocer dígitos
del 0 al 9.

50
Figura 2.6: Muestra de dígitos que se utilizaron en el entrenamiento de la
RN.

Figura 2.7: Muestra del entrenamiento de la RN.

2.3.7 Clasificación de las imágenes

Una vez entrenada, la red neuronal es capaz de reconocer imágenes que


contengan números del 0 al 9. Cualquiera de las 10000 imágenes que se
51
utilizaron en el proceso de entrenamiento son reconocidas con una
probabilidad de error del 0.01%. En la siguiente figura 2.8 se muestra el
proceso de clasificación y el por ciento de aceptación que tuvo. Esta imagen
fue creada en Paint y se puede observar que el por ciento de acierto es del
98.15%, lo que es un valor elevado para clasificar las imágenes.

Figura 2.8: Clasificación de una imagen realizada en el Paint.

La variable 𝑌𝑇𝑒𝑠𝑡 clasifica la imagen en una categoría (en este caso la


categoría número) del 0 al 9 y la variable 𝑌𝑒𝑟𝑟𝑜𝑟 muestra el por ciento de
aceptación en el momento de clasificar los números del cero al nueve. Para
el ejemplo de la figura 2.8 𝑌𝑒𝑟𝑟𝑜𝑟 adquiere valores del 0% para los números
0, 1, 2, 4, 6, 7 y 9; 0.91% para el 3; 0.94% para el 8 y 98.15% en el caso del
5. Con solo un 1.85% de incertidumbre, la red neuronal creada fue capaz de
clasificar una imagen con la cual no fue entrenada.

2.4 Conclusiones del capítulo

1- Se realizó el proceso de filtrado a la imagen, con el objetivo de reducirla y


acomodarla, para poder utilizarla en la red neuronal.

52
2- Se entrena la red neuronal convolucional con 10 000 imágenes, 1 000 de
cada dígito del 0 al 9. Se usan 750 imágenes de cada categoría para
entrenar y 250 para validar.
3- Se logra un porciento de aceptabilidad del 99.99% para las imágenes que
se usaron para entrenar y del 98.15% para imágenes que no se usaron ni
durante el entrenamiento, ni en la validación.

53
CAPÍTULO 3 DISEÑO DEL HARDWARE DEL VEHÍCULO AUTÓNOMO.

3.1 Introducción.

En este capítulo se exponen los elementos fundamentales del diseño


electrónico del sistema propuesto. Se seleccionan todos los componentes que
integran el hardware del vehículo autónomo, compuesto por un sensor
ultrasónico, encargado de detectar obstáculos que puedan presentar un
problema para “CURIOSO” durante su trayectoria. Un transceptor que se
comunica con la WSN desplegada en el área y un módulo de bluetooth para
comunicarse con un celular o tableta. Una cámara encargada de tomar fotos y
videos requeridos por el usuario. Seis motores, dos de ellos servomotores,
encargados de mover la cámara y el sensor ultrasónico y cuatro motores de DC
dedicados al movimiento de CURIOSO. Se especifican los requisitos técnicos
que debe cumplir el sistema.

3.2 Requisitos y funciones del Vehículo Autónomo (VA).

- Enviar de forma inalámbrica fotos y datos del sensor ultrasónico hacia la


aplicación en la PC.
- Intercambiar información sobre su movimiento y el estado de los motores
con el usuario y la aplicación en una PC.
- Que sea de fácil maniobrabilidad, para que pueda cumplir con las tareas
asignadas.
- Ser capaz de funcionar con dos fuentes de voltaje, una utilizando baterías
y otra usando un panel solar.

Una vez expuestos los requisitos y funciones del VA, se propone como solución
para el hardware, un circuito de procesamiento de la información, al cual se le
acopla un transceptor de radiofrecuencia para la comunicación. Las etapas se
pueden agrupar a manera de diagrama en bloques funcionales, tal como se
muestra en la figura 3.1.

54
Figura 3.1: Diagrama en bloques del vehículo autónomo.

3.3 Selección de los elementos que conforman a CURIOSO.

Dada la variedad de dispositivos de control, sensores, módulos de


comunicación inalámbricos y cámaras existentes en el mercado, se realizó un
estudio y posteriormente una selección de los que se usarán para implementar
el prototipo de VA. La selección se realizó considerando las prestaciones,
consumos de potencia y funcionalidades de los elementos para el sistema a
diseñar, que los protocolos de comunicación fueran de estándares abiertos, así
como también el costo de cada uno de ellos.

3.3.1 Sensor ultrasónico (HCR-04).

Los sensores ultrasónicos son dispositivos utilizados para medir distancias,


siendo esta otra manera de determinar la presencia de personas. Su
funcionamiento se basa en el envío de varios pulsos de alta frecuencia, no
audible por el ser humano. Estos pulsos rebotan en los objetos cercanos y
retorna hacia el sensor, el cual dispone de un micrófono adecuado para la
adquisición de esa frecuencia. [26] Entre las principales características técnicas
del sensor ultrasónico HCR-04 se encuentran:

- Voltaje de alimentación: 5𝑉 de DC
- Corriente de trabajo: 15 𝑚𝐴

55
- Rangos de distancia: 2 𝑐𝑚 a 400 𝑐𝑚
- Resolución: 0.3 𝑐𝑚
- Ángulo de medida: 30°
- Frecuencia de ultrasonido: 40 𝐾𝐻𝑧

Funcionamiento del Sensor:

El sonido demora 29,2 microsegundos en recorrer un centímetro, por tanto,


usando este sensor se puede obtener la distancia a partir del tiempo entre la
emisión y recepción del pulso mediante la ecuación (3.1).

𝑇𝑖𝑒𝑚𝑝𝑜 (𝜇𝑠)
𝐷𝑖𝑠𝑡𝑎𝑛𝑐𝑖𝑎(𝑐𝑚) = Ecuación 3.1
29.2 𝑥 2

El motivo de dividir el 𝑇𝑖𝑒𝑚𝑝𝑜(𝜇𝑠) entre dos (además de la velocidad del


sonido), como se muestra en la figura 3.2 es debido a que se ha medido el tiempo
que tarda el pulso en ir y retornar, por lo que la distancia recorrida es el doble de
la que se quiere medir.

Tiempo de ida

Tiempo de retorno

Figura 3.2: Tiempo que tarda el pulso en ir y volver.

El sensor cuenta con 4 pines: 𝑉𝑐𝑐, 𝑇𝑟𝑖𝑔, 𝐸𝑐ℎ𝑜 y 𝐺𝑛𝑑, los cuales se muestran
en la figura 3.3, así como la explicación del funcionamiento de los mismos.

56
Figura 3.3: Pines de conexión del HCR04 y explicación de los mismos.

3.3.2 Transceptor NRF24L01.

El dispositivo seleccionado para realizar la comunicación (con la WSN


desplegada en la zona) es el transceptor NRF24L01 (figura 3.4), que incorpora
la lógica necesaria para que la comunicación sea robusta, como corrección de
errores y reenvío de datos si es necesario; liberando de esta tarea al procesador.
El control del módulo se realiza a través de bus SPI, por lo que es sencillo
controlarlo desde un procesador que disponga de esta interfaz [27].

Figura 3.4: NRF24L01 con antena interna y con antena externa.

Las aplicaciones fundamentales del dispositivo son:


- Periféricos de PC inalámbricos.
- Control remoto de medios de comunicación avanzados.
- Sensores y relojes deportivos.
- Controles remotos de RF para consumidores eléctricos.
- Automatización de hogares y comercios.
- En redes de sensores de ultra baja potencia.
- Activar RFID.

En la tabla 3.1 se muestran: los números de los terminales, nombres, la función


y la descripción.

57
Tabla 3.1 Terminales del módulo NRF24L01, su función y descripción.
# Nombre Función Descripción
1 𝐶𝐸 Entrada Digital Habilitación del chip, activa 𝑅𝑥 o 𝑇𝑥.
2 𝐶𝑆𝑁 Entrada Digital Selección del chip SPI
3 𝑆𝐶𝐾 Entrada Digital Reloj SPI.
4 𝑀𝑂𝑆𝐼 Entrada Digital Entrada de datos del esclavo SPI
5 Salida de dato del Esclavo SPI, con opción
𝑀𝐼𝑆𝑂 Salida Digital
de 3er. estado.
6 𝐼𝑅𝑄 Salida Digital Interrupción enmascarable. Activa en bajo.
7 𝑉𝐷𝐷 Alimentación Fuente de Alimentación (1.9 𝑉 ~ 3.6 𝑉 DC)
8 𝑉𝑆𝑆 Alimentación Tierra (0 𝑉)

Existen dos versiones de módulos que acoplan el NRF24L01, uno con antena
integrada en forma de zigzag con un alcance máximo de 90 a 100 metros, y la
versión de alta potencia que incorpora amplificador y antena externa, con un
alcance máximo de 700 a 1000 metros. En este trabajo se utiliza la versión de
antena integrada ya que su alcance es suficiente para que el vehículo establezca
comunicación con la red. En la siguiente tabla se muestra el consumo de
corriente del NRF24L01 en sus distintos modos.

Tabla 3.2 Consumo de corriente para los diversos estados del NRF24l01.
Parámetro Valor Unidades
en modo sleep 900 𝑛𝐴
en modo reposo 126 µ𝐴
en modo 𝑇𝑥 (0𝑑𝐵𝑚) 11.3 𝑚𝐴
Intensidad en modo 𝑅𝑥 a 2𝑀𝑏𝑝𝑠 13.5 𝑚𝐴
en modo 𝑅𝑥 a 1𝑀𝑏𝑝𝑠 13.1 𝑚𝐴
en modo 𝑅𝑥 a 250𝐾𝑏𝑝𝑠 12.6 𝑚𝐴

3.3.3 Módulo de bluetooth (HC-05).

58
Este módulo (ver figura 3.5) se utilizará para comunicar a CURIOSO con un
celular o tableta, para casos donde el vehículo autónomo no posea comunicación
con la WSN o en tareas de mantenimiento. Este dispositivo se configura a través
de comandos AT desde un ordenador o cualquier dispositivo que posea una
comunicación en serie (𝑇𝑥/𝑅𝑥). A diferencia del módulo HC-06 (módulo de
bluetooth similar) tiene disponible el pin 𝐾𝐸𝑌, que permite ponerlo en modo de
configuración AT por lo que admite muchos más comandos; esto hace que pueda
cambiar entre modo esclavo y maestro, por lo que el HC-06 solo puede actuar
como esclavo. En el modo esclavo es el dispositivo el que se conecta al módulo,
mientras que en modo maestro es el módulo el que se conecta con un
dispositivo. [28] En la tabla 3.3 se describen brevemente los pines de este
módulo.

Figura 3.5: Vista trasera del módulo HC-05.

Tabla 3.3 Terminales del módulo HC-05 y su descripción.


Nombre Descripción
𝑽𝒄𝒄 Alimentación del módulo entre 3,6 𝑉 y 6 𝑉.
𝑮𝑵𝑫 Es la tierra del módulo.
𝑻𝑿𝑫 Transmisión de datos.
𝑹𝑿𝑫 Recepción de datos.
Poner a nivel alto (5𝑉) para entrar en modo
𝑲𝑬𝒀
configuración del módulo.
𝑆𝑇𝐴𝑇𝐸 Para conectar un led de salida y visualizar cuando se
comuniquen datos.

Especificaciones del módulo HC-05:


- Versión Bluetooth: 𝑣2.0 + 𝐸𝐷𝑅.
- Versión USB: 𝑣1.1/2.0

59
- Frecuencia: 2.4𝐺𝐻𝑧 banda ISM.
- Potencia de transmisión: 4 𝑑𝐵𝑚, Clase 2.
- Sensibilidad: −84 𝑑𝐵𝑚 en 0.1% BER.
- Velocidad asíncrona: 2.1𝑀𝑏𝑝𝑠 (𝑀á𝑥. ) / 160 𝑘𝑏𝑝𝑠.
- Velocidad síncrona: 1𝑀𝑏𝑝𝑠/1𝑀𝑏𝑝𝑠.
- Seguridad: Autentificación y encriptación.
- Alimentación: +3.3 𝑉 DC 50 𝑚𝐴.
- Temperatura de trabajo: – 5 ~ + 45 º𝐶.
- Distancia bluetooth: 10 𝑚.

3.3.4 Cámara OV7670

El módulo OV7670 (ver figura 3.6) proporciona imágenes y video digital. Puede
funcionar con sistemas como Arduino, Raspberry Pi entre otros.

Figura 3.6: Imagen del módulo OV7670.

Este módulo posee un sensor de imagen CMOS VGA OV7670, fabricado por
Omnivision, capaz de trabajar a un máximo de 30 𝑓𝑝𝑠 (cuadros por segundo) a
una resolución de 640 𝑥 480 píxeles. Es un SoC (sistema en chip) por lo que se
puede realizar procesamiento de imágenes, como: control de exposición gamma,
balance de blancos, saturación de color, control de tono. Estos parámetros son
configurables mediante la interfaz SCCB (Bus de Control de Cámara Serial). El
sensor incluye filtros propios de eliminación de ruido eléctrico, fixed pattern
noise(FPN), smearing, blooming, etc. [29]

60
Especificaciones Técnicas:

- Voltaje de Operación: 3.3 𝑉 DC


- Consumo de energía: 60𝑚𝑊/15𝑓𝑝𝑠 VGA YUV
- Corriente en reposo: < 20𝜇𝐴
- Transmisión de datos en paralelo (8 bits)
- Interface de control estándar SCCB, compatible con I2C.
- Necesita una frecuencia de 8𝑀𝐻𝑧.
- Lente óptico de 1/6”
- Ángulo de visión (FOV): 25º
- Resolución: 640 𝑥 480 VGA
- Sensibilidad: 1.3𝑉 / (𝐿𝑢𝑥 − 𝑠𝑒𝑐)
- Relación Señal-Ruido (𝑆𝑁𝑅): 46 𝑑𝐵
- Rango Dinámico: 52 𝑑𝐵
- Modo de vista: Progresivo
- Lente de alta calidad F1.8/6𝑚𝑚
- Formatos de Salida: Raw RGB (8 dígitos), RGB (GRB 4:2:2, RGB
565/555/444), YUV (4:2:2) y YCbCr (4:2:2)
- Máximo refrescamiento del cuadro: 30 𝑓𝑝𝑠 VGA
- Exposición electrónica: 1 a 510 filas
- Cobertura de pixel: 3.6𝜇𝑚 𝑥 3.6𝜇𝑚

Funcionalidades:

- Alta sensibilidad en ambientes de poca iluminación.


- Bajo voltaje, adecuado para aplicaciones portátiles.
- Formatos de imagen: VGA, CIF (hasta CIF 40x30)
- VarioPixel, usado para sub-samplig.
- Funciones automáticas: Control automático de exposición(AEC), Control
Automático de ganancia (AGC), Balance automático de blancos (AWB),
Filtro pasa banda automático (ABF), Calibración automática de nivel de
negro (ABLC).

61
- Parámetros configurables: Saturación de color, Tono, gamma, sharpness
(mejora de bordes) y anto-blooming.
- ISP incluye reducción de ruido y corrección de defectos.
- Compatible con luz LED y strobe
- Soporta escalamiento
- Corrección de sombra de lente.
- Autodetección de Flicker (50/60 𝐻𝑧)
- Autoajustes de nivel de saturación (𝑈𝑉)

Definiciones de los Pines:


En la tabla 3.4 se definen cada uno de los pines del módulo OV7670.

Tabla 3.4 Terminales del cámara OV7670, su función y descripción.


Pin Nombre Tipo Descripción
1 VCC 3.3 𝑉 Alimentación del módulo
2 GND GND Tierra
3 SCL Entrada Reloj para la comunicación serial
4 SDATA Bi-direccional Interfaz de datos serial I/O
5 VSYNC Salida Activa a nivel alto: Sincronización Horizontal
6 HREF Salida Activa a nivel alto: Pixel valido
7 PCLK Salida Sincronización Vertical
8 XCLK Entrada Señal de reloj de entrada al sensor
9 DOUT9 Salida Dato 7 (MSB)
10 DOUT8 Salida Dato 6
11 DOUT7 Salida Dato 5
12 DOUT6 Salida Dato 4
13 DOUT5 Salida Dato 3
14 DOUT4 Salida Dato 2
15 DOUT3 Salida Dato 1
16 DOUT2 Salida Dato 0 (LSB)

3.3.5 Servomotores

62
Se podría decir que un servomotor es un motor, pero con características
especiales. La principal propiedad es que cuenta con un sistema de
realimentación (“encoder”), el cual le indica al servo drive (controlador del
servomotor) la posición en la que se encuentra el eje del servomotor y le corrija
la posición, en caso que no fuese la correcta. De este modo, puede enmendar
(en tiempo real) los errores de posición, y obtener una muy alta precisión. En la
figura 3.7 se puede observar un ejemplo de servomotor. [30]

Figura 3.7: Imagen de un servomotor.

3.3.5.1 Características

Además de su precisión, otra de las propiedades relevantes es la capacidad


de mantener un torque constante en toda su gama de revoluciones (hasta
3.000 𝑟𝑝𝑚). Esta característica, los diferencia de los motores asincrónicos
convencionales, puesto que, si se quisiera mantener la posición en un motor
común, se necesitaría recurrir a dispositivos adicionales como frenos, reductores
de velocidad, etcétera. En cambio, un servomotor aplicaría todo su torque
disponible para conservar la posición de la carga, independiente de la velocidad
de funcionamiento del servomotor, es decir, que se puede conservar la posición
de la carga a cero revoluciones por minuto (0 𝑟𝑝𝑚) sin la necesidad de
dispositivos agregados. Esta facultad también es aplicable para mover cargas a
velocidades bajas. Conjuntamente, se suma otra condición particular referida a
los niveles de aceleración y desaceleración que se pueden adquirir, teniendo en
cuenta que el torque es una relación entre el momento de inercia de la carga y
la aceleración angular.

63
𝑇=𝐼∗𝑎 Ecuación 3.2

Donde:
𝑇: torque (newton-metro 𝑁𝑚)
𝐼: momento de inercia (kilogramo-metro cuadrado kg-𝑚2 )
𝑎: aceleración angular (radián por segundo al cuadrado rad/𝑠𝑒𝑔2 )

En esta relación, se logra ver que, para una aceleración mayor con el mismo
nivel de carga, se precisaría más torque para poder mover la misma carga. En
la figura 3.8 se pueden observar las curvas del torque de un servomotor.

Figura 3.8: Curvas características de un servomotor.

Los servomotores soportan hasta un trescientos por ciento (300%) de


sobrecarga por un determinado período de tiempo, y esto les posibilita romper la
inercia con aceleraciones/desaceleraciones bruscas.

3.3.5.2 Funcionamiento

Una de las inquietudes más frecuentes que surge al momento de hablar de


servomotores es conocer la manera de controlarlos y la forma de indicarles la
posición que se desea alcanzar, así como la velocidad.

64
Para ello, existen distintos métodos de control. El más común y utilizado (por
su sencillez) es el control por pulso y frecuencia. Por lo general, se habla de
milímetros, pulgadas, metros, etcétera, pero el servo-drive no entiende qué
significan estas magnitudes, ya que solo interpreta los pulsos que recibe y con
qué velocidad los recibe (frecuencia).

Suponiendo que el sistema mecánico avanza cien milímetros (por cada vuelta
del motor) y el motor da una vuelta cada mil pulsos recibidos, o sea, que, si le
entregan mil pulsos al servo-drive, desde un controlador superior como puede
ser un controlador lógico programable, el motor hará que la carga avance cien
milímetros. Ahora bien, si precisamos que avance doscientos milímetros (200
mm), se tendrían que enviar dos mil pulsos al servo drive. De este modo, se
estará controlando la posición del servomotor de una manera muy sencilla.

Por otro lado, solo haría falta controlar la velocidad del servomotor. Esta tarea
es simple, porque únicamente se necesita modificar la frecuencia con la que se
entregan los pulsos. Si la frecuencia con la que se generan los pulsos es mayor,
la carga logrará la posición deseada rápidamente. A diferencia, si la frecuencia
es menor, la carga tardará más tiempo en alcanzar la posición. De esta manera,
se logra controlar un servomotor con tan solo una línea de programación,
consiguiendo toda la precisión y velocidad que el servo puede brindar.

3.3.5.3 Uso de Driver L298N para servomotores

Este módulo basado en el chip L298N permite controlar un motor paso a paso
bipolar de hasta 2 amperes. El módulo cuenta con todos los componentes
necesarios para funcionar sin necesidad de elementos adicionales, entre ellos
diodos de protección y un regulador LM7805 que suministra 5𝑉 a la parte lógica
del integrado L298N. Cuenta con “jumpers” de selección para habilitar cada una
de las salidas del módulo (A y B). Como se aprecia en la figura 3.9, la salida A
está conformada por OUT1 y OUT2 y la salida B por OUT3 y OUT4 y los pines
de habilitación son ENA y ENB respectivamente. En la parte inferior se
encuentran los pines de control del módulo, marcados como IN1, IN2, IN3 e IN4.
[31]

65
Figura 3.9: Driver L298N.

Como se ilustra en la figura 3.10, este módulo se puede alimentar de dos


maneras gracias al regulador integrado LM7805.

Figura 3.10: Ilustración de las vías de alimentación.

Cuando el jumper de selección de 5 𝑉 se encuentra activo, el módulo permite


una alimentación de entre 6 𝑉 a 12 𝑉 DC. Como el regulador se encuentra activo,
el pin marcado como +5 𝑉 tendrá un voltaje de 5 𝑉 DC. Este voltaje se puede
usar para alimentar la parte de control del módulo ya sea un microcontrolador o
un Arduino, pero se recomienda que el consumo no sea mayor a 500 𝑚𝐴.

Cuando el jumper de selección de 5 𝑉 se encuentra inactivo, el módulo permite


una alimentación de entre 12 𝑉 a 35 𝑉 DC. Como el regulador no está

66
funcionando, se conecta el pin de +5 𝑉 a una tensión de 5 𝑉 para alimentar la
parte lógica del L298N. Usualmente esta tensión es la misma de la parte de
control, ya sea un microcontrolador o Arduino. El fabricante recomienda nunca
conectar una tensión de entrada al pin de + 5 𝑉, cuando el jumper de selección
de 5 𝑉 se encuentre activado. Esto provocaría un corto y podría dañar
permanentemente el módulo. [31]

Características técnicas:

- 2 canales (1 para cada motor)


- Corriente máxima por canal: 2 𝐴
- Voltaje de alimentación: 5 𝑉 − 35 𝑉
- Voltaje de alimentación lógica: 5 𝑉 − 5.5 𝑉
- Corriente lógica: 0 𝑚𝐴 – 36 𝑚𝐴
- Potencia máxima: 25 𝑊
- Peso: 30 𝑔
- Control PWM
- Capaz de realizar freno electromagnético.

3.3.5.4 Control de un motor paso a paso bipolar.

Los motores paso a paso pueden ser bipolares o unipolares. En este trabajo
se utilizó un motor paso a paso bipolar, sin embargo, este driver es capaz de
controlar un motor paso a paso unipolar si se conecta en configuración bipolar,
obviando los cables del tap-central de las bobinas del motor. El máximo consumo
permitido es de 2 amperios. En la figura 3.11 se muestra en el esquema de
conexión.

67
Figura 3.11: Esquema de conexión utilizando un Arduino Uno.

El esquema muestra la conexión utilizada entre el módulo L298N y el motor


paso a paso. Cada una de las bobinas del motor está conectada a una salida del
módulo. Para identificar las bobinas de un motor paso a paso se puede utilizar
un multímetro en modo de continuidad. Los cables que dan continuidad son los
extremos de cada bobina. En este caso, como el motor paso a paso es de
12 𝑉 𝐷𝐶, se utiliza el jumper de selección de + 5 𝑉, para activar el regulador
interno del módulo y solo hacer uso de una fuente de 12 𝑉 𝐷𝐶 para alimentar el
motor. Los “jumpers” de activación ENA y ENB los se han activado de igual
manera.

3.3.6 Motores de DC.

El motor de corriente continua es una máquina que convierte energía eléctrica


en mecánica, provocando un movimiento rotatorio, gracias a la acción de un
campo magnético. Un motor de corriente continua se compone principalmente
de dos partes: el estator que da soporte mecánico al aparato y contiene los polos
de la máquina, que pueden ser o bien devanados de hilo de cobre sobre un
núcleo de hierro, o imanes permanentes. Por otra parte, el rotor, que es
generalmente de forma cilíndrica, también con devanado y con núcleo,
alimentado con corriente directa a través de delgas, que están en contacto
alternante con escobillas fijas (también llamadas carbones).

El principal inconveniente de estas máquinas es el mantenimiento, el cual es


muy costoso y laborioso, debido principalmente al desgaste que sufren las

68
escobillas o carbones al entrar en contacto con las delgas. Algunas aplicaciones
especiales de estos motores son los motores lineales, cuando ejercen tracción
sobre un riel, servomotores y motores paso a paso.

3.3.6.1 Principio de funcionamiento

Cuando un conductor, por el que pasa corriente eléctrica, se sumerge en un


campo magnético, sufre una fuerza perpendicular al plano formado por el campo
magnético y la corriente, de acuerdo con la Fuerza de Lorentz:

𝐹 = 𝐿 ∗ 𝐼 ∗ 𝐵 ∗ sin 𝜑 Ecuación 3.3

Donde:
𝐹: Fuerza en newtons
𝐼: Intensidad que recorre el conductor en amperios
𝐿: Longitud del conductor en metros
𝐵: Densidad de campo magnético o densidad de flujo teslas
𝜑: Ángulo que forma I con B

3.3.6.2 Uso del Driver L298N para motores DC

Este módulo basado en el chip L298N permite controlar hasta dos motores de
corriente continua. Como demostración en la figura 3.12, se conecta un motor de
DC a través de la salida B del módulo. El pin ENB se conecta con el jumper a
+ 5 𝑉.

Figura 3.12: Esquema de conexión de un motor de DC.

69
Si se desea controlar la velocidad del motor se aplica el PWM a los pines de
activación de cada salida o pines ENA y ENB respectivamente, por tanto, los
“jumpers” de selección no serán usados, como se muestra en la imagen 3.13.

Figura 3.13: Esquema de conexión de un motor de DC para controlar su


velocidad.

3.3.6.3 Uso de un módulo de relés.

Como no se cuenta con la cantidad de drivers necesarios para conectar los


servomotores y los motores de DC se optó por conectar los motores de DC a un
módulo de relés. Este no permite controlar su velocidad, pero posibilitará realizar
los movimientos del vehículo (dar marcha atrás, avanzar y girar).

Descripción general de la placa:

Se trata de un módulo de 4 relés que funcionan a 5 𝑉. Son capaces de manejar


cargas de hasta 10 Amperes en 250 Volts, convenientemente aislados mediante
optoacopladores en las entradas, las que cuentan con leds individuales que
sirven como indicadores de estado. [32] Los distintos componentes del módulo
pueden apreciarse en la siguiente ilustración (figura 3.14).

70
Figura 3.14: Módulo de relés.

3.3.6.3.1 Esquema del circuito del módulo de relés.

En la figura 3.15 se aprecia el circuito para un canal, el resto de los canales


repite la misma configuración.

Figura 3.15: Esquemático de un módulo de relés.

A partir de la figura 3.15 se puede analizar el funcionamiento del circuito: la


entrada IN1 está conectada al cátodo del diodo del optoacoplador a través del
led indicador. El ánodo del diodo del optoacoplador se conecta a 𝑉𝑐𝑐 (positivo)
por intermedio de R1 (resistencia de 1000 Ω). Estos tres componentes, el diodo
indicador, el diodo del optoacoplador y R1 forman un circuito serie por el cual
circula la corriente cuando la entrada está a un nivel BAJO (conectada a GND) y
no circula si la entrada está a un nivel ALTO (conectada a 𝑉𝑐𝑐). El transistor del
optoacoplador tiene su colector a JD-𝑉𝑐𝑐 y su emisor conectado a Q1 a través
de una resistencia de 510 Ω. Este es otro circuito serie por el cual circula corriente

71
cuando el transistor del optoacoplador conduce al ser “iluminado” por su diodo,
con lo que se introduce corriente en la base de Q1 a través de R2. Finalmente,
Q1 está conectado en una típica configuración emisor común, con su emisor a
masa (GND) y la bobina del relé como carga en el colector. Cuando circula
corriente por la base desde el opto, Q1 se satura permitiendo el paso de la
corriente a través de la bobina del relé, lo que produce que se cierren los
contactos del mismo (común con normal abierto). El diodo D1 protege al
transistor de la tensión que aparece en la bobina del relé cuando deja de circular
corriente por la misma. En síntesis, al ponerse la entrada a nivel BAJO se lleva
a la saturación el transistor Q1 a través del optoacoplador con lo que se cierra el
contacto normal abierto del relé. [32]

3.3.7 Procesadores de información.

Para seleccionar el procesador de la información adecuado para el sistema en


cuestión se requiere conocer las necesidades de cada módulo que conforma el
vehículo autónomo. En la tabla 3.5 se muestran las necesidades de cada módulo
que conforma el VA.

Tabla 3.5 Necesidades del vehículo autónomo.


Módulo E/S digitales Entradas analógicas Uso de SPI
Cámara OV7660 13 0 Si
Sensor Ultrasónico 2 0 No
NRF24L01 6 0 Si
Servomotores 4 0 No
Motores de DC 8 0 No
Total 33 0 -

En el mercado existen muchas opciones para el elemento de procesamiento


de cada módulo, los cuales se basan esencialmente en el uso de
microcontroladores solos o asociados a placas listas para ser utilizadas. Estas
últimas están diseñadas específicamente para facilitar el desarrollo de
aplicaciones electrónicas. Dados los requisitos antes descritos se optó por usar

72
el microcontrolador Atmega 82U/16U2 ICSP ya que cumple con las necesidades
y es de costo reducido. Además, se puede encontrar en una placa Arduino
MEGA lo que facilita la interconexión con los sensores, actuadores, los sistemas
de comunicación inalámbricos y la cámara.

El Arduino MEGA que se muestra en la figura 3.16, es una placa que posee
como procesador un microcontrolador Atmega 82U/16U2. Cuenta con 54 pines
de entrada/salidas digitales, de los cuales 16 pueden ser PWM (Pulse-Width
Modulation), con 16 entradas analógicas y un oscilador de 16 𝑀𝐻𝑧. Se alimenta
con 5 𝑉, ya sea por baterías o adaptadores de corriente directa. Posee un botón
de reinicio y puede conectarse directamente con la PC por medio de un cable
USB. Sus 70 terminales de entrada/salida soportan cargas de corriente de hasta
20 𝑚𝐴. [33]

Figura 3.16: Vista superior de un Arduino MEGA.

3.4 Esquema de conexión de los elementos del VA

3.4.1 Sensor Ultrasónico

Como se observa en la figura 3.17 (a y b) aparece la conexión entre el sensor


ultrasónico y el Arduino MEGA.

73
Figura 3.17: a) Diagrama de conexión. b) Diagrama esquemático de conexión.

3.4.2 Transceptor NRF24L01

Como se aprecia en la figura 3.18 (a y b) aparece la conexión entre el


transceptor NRF24L01 y el Arduino MEGA.

Figura 3.18: a) Diagrama de conexión. b) Diagrama esquemático de conexión.

3.4.3 Servomotor

Como se observa en dicha figura 3.19 (a y b) aparece la conexión entre el


Driver, el Servomotor y el Arduino MEGA.

74
Figura 3.19: a) Diagrama de conexión. b) Diagrama esquemático de conexión.

3.4.4 Motores de DC

Como se observa en la figura 3.20 (a y b) aparece la conexión entre el Driver,


el Motor de DC y el Arduino MEGA.

Figura 3.20: a) Diagrama de conexión. b) Diagrama esquemático de conexión.

3.4.4.1 Motores de DC controlados por módulo de relés

Por no contar con las cantidades necesarias de Driver L298N, se tiene que
incorporar al diagrama un módulo de relés. Como se observa en la figura 3.21
aparece la conexión entre el Módulo de Relés, el Motor de DC y el Arduino
MEGA.

75
. Figura 3.21: Diagrama esquemático de conexión.

3.4.5 Módulo de bluetooth.

En la figura 3.22(a y b) aparece la conexión entre el módulo HC-05 y el Arduino


MEGA. Como se aprecia, los pines 𝑇𝑥/𝑅𝑥 de la placa y el módulo están
cruzados, esto es así porque el pin transmisor tiene que estar conectado al
receptor y viceversa.

Figura 3.22: a) Diagrama de conexión. b) Diagrama esquemático de conexión.

3.5 Diseño de sistema para la alimentación del VA

CURIOSO es un vehículo que moverá y alimentará sus sistemas con dos


fuentes que se conmutarán entre sí, para brindarle energía. Estas dos fuentes
son una batería de 12 𝑉 y un panel solar que entregará el mismo voltaje. El panel
solar le proporcionará la energía al sistema mientras no esté en la base (local
donde se encontrará CURIOSO cuando no se esté utilizando), porque allí se
alimentará de una fuente de DC de 12 𝑉, y mientras haya la luz solar necesaria.
En caso de que no se disponga del panel solar ya sea porque es de noche o
porque existan adversas condiciones meteorológicas la batería se encargará de
suministrar toda la energía necesaria. Para lograr esto se decidió diseñar un

76
sistema con dos relés y una lógica bastante simple. En la figura 3.23 se puede
observar el diseño de este sistema.

Figura 3.23: Sistema de alimentación diseñado en Proteus para el VA.

3.6 Conclusiones del capítulo.

1- Se establecieron los requisitos y funciones fundamentales de los módulos


que tendrá en VA.
2- Atendiendo a sus características técnicas, a los requisitos del sistema y a
su costo; se seleccionaron los sensores, actuadores, dispositivos de
comunicación, de procesado, y la cámara a utilizar.
3- Debido a no contar con las cantidades requeridas de Drivers L298N, se
decidió utilizar un módulo de relés para controlar los motores de DC. Con
el objetivo de validar el comportamiento del VA y someterlo a las
condiciones de trabajo lo más cercanas a la realidad posible.
4- Con el uso del módulo de radiofrecuencia NRF24L01 y el módulo de
bluetooth el VA posee la capacidad de comunicarse inalámbricamente.
5- Se diseñó un sistema capaz de alternar entre una batería y un panel solar
para suministrarle energía a CURIOSO.

77
CAPÍTULO 4 DISEÑO DEL SOFTWARE DEL VA.

4.1 Introducción.

En este capítulo se definen los requisitos específicos que debe satisfacer el


firmware de cada módulo de CURIOSO. Se desarrolla una aplicación en el
sistema operativo Windows que permitirá al usuario gestionar y observar los
datos obtenidos de “CURIOSO”. Además, de una segunda aplicación para
dispositivos con sistema operativo Android, concebida para mover el VA en el
proceso de mantenimiento o para trasladarlo en lugares donde no llegue la
cobertura de la WSN desplegada en el área. También se explican los diagramas
de flujos del funcionamiento del VA.

4.2 Consideraciones generales del software del VA.

El sistema propuesto se ha dividido en 3 bloques:

1- Un sistema completamente automático, el cual no depende de ninguna


acción por parte del usuario u otro programa. Este se encarga del control
del sensor ultrasónico y del servomotor que mueve el mismo. Es el
encargado de que el VA no choque contra ningún obstáculo y brindarle al
usuario información sobre la distancia de los objetos que rodean el
vehículo. Tiene la capacidad de frenar el VA hasta que desaparezca el
obstáculo o el vehículo se aleje en dirección contraria. Esta acción tiene
máxima prioridad, ningún proceso o acción del usuario podrá violarla.

2- Sistema encargado del control del VA y la cámara. Esta comunicación se


hará con la aplicación en la PC vía RF o con una aplicación en un celular
vía bluetooth. Este controlará cada motor que mueve a “CURIOSO” (de
los cuatro que presenta) de forma independiente para lograr un mejor
control sobre el mismo. El proceso podrá realizarse de forma manual o
automáticamente por la aplicación en la PC o en el celular. Del mismo
modo se controlará la cámara y el servomotor que sustenta a la misma.

78
3- Una aplicación para el sistema operativo Windows y Android, a través de
la cual el usuario ejecuta acciones específicas sobre el VA, puede
observar el comportamiento del mismo y ver los datos recolectados por
esta. Dicha información se le envía o recibe por vía NRF24L01 o
bluetooth.

4.2.1 Consideraciones del software para el primer bloque del sistema


propuesto.

Las tareas que se deben programar son las siguientes:

1- Esperar por el mensaje de inicio.


2- Comenzar el movimiento del servomotor y tomar muestras con el sensor
ultrasónico en busca de obstáculos potenciales.
3- Trasmitir la posición del servomotor y la distancia calculada.
4- Detener el VA en caso de que la distancia al obstáculo sea inferior a los
15 𝑐𝑚.

En la figura 4.1 se muestra el diagrama de flujo del programa:

79
Figura 4.1: Diagrama de flujo del primer proceso.

Para la inicialización y configuración:

80
1- Se inicia con la inclusión de las bibliotecas y la declaración de las
funciones que se utilizarán.
2- Se procede a la declaración e inicialización de las variables globales y
la inicialización de los sensores.
3- Se configuran las entradas y salidas del Arduino.
4- Se configura la interrupción que atenderá la recepción por RF.
5- Se realiza la configuración del módulo de radio frecuencia NRF24L01.
Se crean los dos canales, uno para transmisión (𝑇𝑥) y otro para la
recepción (𝑅𝑥). Además, se define la cantidad de intentos a realizar
cuando la información a enviar no llega correctamente a su destino, así
como el intervalo de tiempo entre un intento y otro. También, se configura
al módulo en modo 𝑅𝑥 para recibir cualquier información.

Para el lazo que se repite indefinidamente:

1- Se lee el valor del sensor ultrasónico y se almacena.


2- Si el valor leído es igual o supera el preestablecido se accionarán los
activadores y detendrá el movimiento de los motores.
3- Se transmite vía RF el estado del servomotor y la distancia.

4.2.2 Consideraciones del software para el segundo bloque del sistema


propuesto.

Las tareas que se deben programar son las siguientes:

1- Controlar el movimiento del VA mediante cada uno de los motores que


mueven al mismo.
2- Controlar la cámara y el servomotor que controla el movimiento de la
misma.
3- Transmitir los vectores que conforman la imagen capturada por la cámara.
4- Transmitir el estado del servomotor.

En la figura 4.2 se muestra el diagrama de flujo del programa:


81
Figura 4.2: Diagrama de flujo del segundo proceso.

Para la inicialización y configuración:

1- Se inicia con la inclusión de las bibliotecas y la declaración de las


funciones que se utilizarán.
2- Se procede a la declaración e inicialización de las variables globales y
la inicialización de los sensores.
3- Se configuran las entradas y salidas del Arduino.
4- Se configura la interrupción que atenderá la recepción por RF.
5- Se realiza la configuración del módulo de radiofrecuencia NRF24L01 y
el módulo de bluetooth. Se crean los dos canales, uno para transmisión
(𝑇𝑥) y otro para la recepción (𝑅𝑥). Además, se define la cantidad de
intentos a realizar cuando la información a enviar no llega correctamente
a su destino, así como el intervalo de tiempo entre un intento y otro.

82
También, se configura al módulo en modo 𝑅𝑥 para recibir cualquier
información.

Para el lazo que se repite indefinidamente:

1- Se recibe el comando vía RF o bluetooth.


2- Se identifica si el comando va dirigido a la toma de la foto, movimiento
del servomotor o de los motores que mueven el VA.
3- Se transmite vía NRF24L01 o vía bluetooth el estado del servomotor o
los vectores que conforman la imagen, según haya sido el comando
recibido.

4.3 Diseño de la aplicación usando el Software Processing.

Processing es un lenguaje de programación y entorno de desarrollo integrado


de código abierto basado en Java, que sirve como medio para la enseñanza y
producción de proyectos multimedia e interactivos de diseño digital. Es utilizado
por programadores, artistas y diseñadores como una herramienta alternativa al
software propietario. Puede ser utilizado tanto para aplicaciones locales como
para aplicaciones en la web (Applets).

Requerimientos técnicos:

- Puede utilizarse bajo los sistemas operativos Windows y GNU/Linux.


- Se descarga de manera gratuita.
- No requiere acceso a internet una vez instalado el programa en el equipo.
- URL para descargar el programa: https://processing.org/
- No requiere de un ordenador con grandes características técnicas
(elevada memoria RAM o poder de procesado del microcontrolador).

Las tareas que se deben programar son las siguientes:

1- Recibir y transmitir por PS al NM información sobre “CURIOSO”.


2- Recibir por PS información procedente de “CURIOSO”.
83
3- Visualizar los valores de distancia y posición del servomotor, de manera
que simule una especie de radar que detecta obstáculo.
4- Permitirle al usuario controlar al VA ya sea de forma manual o
automáticamente. Y mostrar cómo se realizan estos procesos.
5- Componer la imagen a partir de los vectores recibidos del VA. Mostrar la
fotografía original y las imágenes obtenidas debido del procesamiento.
Mostrar la clasificación de la red neuronal.

En las figuras 4.3 y 4.4 se puede observar la ejecución de esta interfaz dando
cumplimiento a las tareas planteadas.

Figura 4.3: Interfaz que muestra la imagen y sus diversas transformaciones.

84
Figura 4.4: Interfaz que muestra el pequeño radar.

4.4 Diseño de la aplicación usando el Software App Inventor.

App Inventor parte de una idea conjunta del Instituto Tecnológico de


Massachusetts y de un equipo de Google Education. Se trata de una herramienta
web de desarrollo para la programación. Con él, pueden hacerse aplicaciones
desde muy simples hasta las más elaboradas para sistema operativo Android
[34, 35].

En App Inventor se diseña la aplicación o App a través de un entorno de


desarrollo gráfico. Después, para programar, se usa un lenguaje basado en un
lenguaje visual a partir de bloques Java. Las bibliotecas de estos bloques han
sido desarrolladas por el MIT y son de uso libre. En estos bloques se encuentran
funciones, sentencias y elementos muy comunes en la mayoría de lenguajes de
programación. Gracias a esto se pueden crear aplicaciones para Android de una
manera rápida y sencilla sin que exista la necesidad de tener conocimiento
ninguno de Java. Una vez finalizado el diseño y la programación de la App, se

85
descarga y se instala en un dispositivo Android o también se puede probar en el
emulador que proporciona App Inventor [34,35].

Requerimientos técnicos:

- Puede utilizarse mediante el navegador de la PC


- Se descarga de manera gratuita.
- No requiere acceso a internet, una vez instalado el programa en el equipo.
- No requiere de un ordenador con grandes características técnicas
(elevada memoria RAM o poder de procesado del microcontrolador).

Las tareas que se deben programar son las siguientes:

1- Recibir y transmitir por bluetooth a CURIOSO los comandos a operar.


2- Recibir por bluetooth información procedente de CURIOSO.
3- Permitirle al usuario controlar al VA ya sea de forma manual o
automáticamente. Mostrar cómo se realizan estos procesos.
4- Realizar secciones de usuario y contraseña para mantener el control de
CURIOSO sobre usuarios autorizados.

En las figuras 4.5, 4.6, 4.7, 4.8 y 4.9 se puede observar la realización de esta
interfaz. Para el icono de la aplicación se seleccionó el cuerno de la abundancia
(como se puede observar en la figura 4.5), porque representa las metas de este
proyecto: que es lograr una mejor producción de alimentos.

Figura 4.5: Ícono para acceder a la aplicación.

En la ventana inicial (figura 4.6) se puede observar una imagen del cuerno de
la abundancia, además de los logos de la CUJAE, la Facultad de
Telecomunicaciones y Electrónica, y el CIME (Centro de Investigaciones en

86
Microelectrónica) que fueron las identidades presentes en la realización de este
proyecto. Así como dos botones una para salir de la aplicación y otro para iniciar.

Figura 4.6: Ventana inicial de la aplicación.

En la segunda pantalla (figura 4.7) que aparece una vez se oprime el botón de
inicio, se le brinda la opción al usuario de autentificarse. Esto, para prevenir que
personal no autorizado pueda controlar el vehículo autónomo.

87
Figura 4.7: Sección de identificación.

Una vez oprimido, en la segunda pantalla el botón de usuario y contraseña, la


aplicación nos remite a una tercera pantalla (figura 4.8), donde se procede a
autentificarse. En caso de que el usuario o la contraseña sean incorrectos
aparecerá un cartel con letras en color rojo notificando que es incorrecto,
acompañado de una voz que te dice lo mostrado en el cartel. De lo contrario
mostrará un cartel con letras de color verde señalando que ha sido aceptado en
el sistema, esto acompañado por un mensaje de voz.

Figura 4.8: Sección de autentificación.

88
Una vez escrito el usuario y la contraseña correcta la app remitirá para la cuarta
pantalla (figura 4.9). En esta, primero hay que pulsar el botón conectar con
CURIOSO, para establecer la comunicación con el vehículo vía bluetooth.
Después ya estará todo listo para controlar el vehículo de forma manual.

Figura 4.9: Menú de control de CURIOSO.

4.5 Conclusiones del capítulo.

1- Se establecieron las tareas fundamentales a cumplir por el VA.


2- Las aplicaciones diseñadas a través de los softwares permiten un manejo
sencillo del VA. Además, presenta una interfaz amigable al usuario.
3- Se configuró el módulo de RF de forma tal que, si ocurre algún problema
en el envío de datos, se realizan 15 intentos de renvíos a intervalos de
0.4 𝑚𝑠 para evitar la pérdida de información.
4- La programación de los módulos que conforman el VA se realizó de forma
tal que ante cualquier modificación o ampliación del hardware del sistema
no es necesario realizar grandes cambios. Esto es posible pues a lo largo
de todo el proyecto se utilizó una programación estructurada por medio
de funciones para mantener claridad e independencia en su código. Por
lo tanto, agregarle nuevas funciones, prestaciones o actualizaciones a
89
CURIOSO no presenta gran desafío ni la necesidad de rediseñar los
sistemas ya creados.

90
CAPÍTULO 5 RESULTADOS EXPERIMENTALES DEL RECONOCIMIENTO
DE IMÁGENES OBTENIDAS POR VEHÍCULOS AUTÓNOMOS.

5. 1 Introducción.

Este capítulo tiene como objetivo verificar las funcionalidades esenciales del
reconocimiento de imágenes obtenidas por CURIOSO. La comprobación se
realizó integrando el hardware junto con el software que lo complementa y
habilita, para cumplir con los requisitos fundamentales del sistema. En la
comprobación experimental del sistema se utiliza el VA y el software hecho para
el control del mismo, así como el programa para el procesamiento de las
imágenes con el objetivo de demostrar que el sistema realiza las funciones
fundamentales para las que fueron creados.

5.2 Modificación de la antena del NRF24L01.

El NRF24L01 cuenta con una antena de tipo PAFI (por sus siglas en inglés,
Planar Inverted F Antenna), como se puede observar en la figura 5.1. Pero en
las pruebas prácticas realizadas con los nodos para establecer la comunicación
de los mismos, estas tuvieron un desempeño bastante malo. Teniéndose que
direccionar demasiado los nodos, además, son incapaces de detectar a los
nodos que se encuentran en dirección contraria de donde apunta la antena. [36]
Este último elemento es un impedimento para este proyecto puesto que es
necesario que la comunicación entre él VA y la red pueda realizarse en todo
momento y en cualquier posición en que se encuentre CURIOSO. Debido a
estos impedimentos se decidió modificar la antena del NRF24L01.

Figura 5.1: Transceptor NRF24L01.

91
Para lograr esto se decidió utilizar los cambios que se realiza al NRF24L01 en
[36], donde se propone modificar la antena y convertirla en un dipolo simple. En
la figura 5.2, se pueden observar las mejoras introducidas transceptor en
conceptos de direccionalidad. Cabe destacar que los cambios realizados no
afectan el alcance, ni la velocidad de transmisión.

Figura 5.2: a) NRF24L01 sin modificar. b) NRF24L01 modificado.

Ya realizados los cambios se efectuó una prueba de comunicación para validar


los cambios realizados. Se estableció la comunicación entre CURIOSO y los
nodos de la red, realizándose la misma sin ningún contratiempo. Además, se
sometió a pruebas de alcance y velocidad de transmisión para observar si el
cambio de la antena afectó algunos de los parámetros que presentaba el mismo.

Estas pruebas arrojaron los siguientes resultados.

1- El alcance de los NRF24L01 se mantuvo igual, entre los 100 m y los 120
m con visibilidad directa. Aproximadamente el mismo alcance reflejado en
la hoja de datos (100 m). Y entre 30 y 60 metros con obstáculos, por lo
que es muy importante que la red que usa curioso no presente puntos
ciegos de cobertura.

92
2- La velocidad se mantuvo sin variaciones; para los dos modos de trabajo
utilizados a 1 𝑀𝑏𝑝𝑠 y 2 𝑏𝑀𝑝𝑠.
3- La altura necesaria para establecer la comunicación disminuyó desde los
2 m (para el NRF sin modificar), hasta los 1.2 m (para el NRF modificado).
En el caso de CURIOSO la antena se encuentra a unos 20 cm del suelo,
aun así, se mantuvo la comunicación, solo con un ligero aumento del
renvió de los mensajes.
4- Aumento del renvío de los datos, los cuales se incrementaron ligeramente
pasando de 1 renvió cada 100 transmisiones a 9 renvió cada 100
transmisiones. Aunque estos resultados no comprometen la funcionalidad
del proyecto ya que la velocidad de comunicación entre el VA y la red es
lo suficientemente rápida como para soportar este incremento de reenvío
de los mensajes.

5.3 Pruebas del manejo del VA mediante las aplicaciones desarrolladas.

Para comprobar el manejo del vehículo autónomo se realizaron dos pruebas.


La primera a través de la aplicación en la PC y otra con la utilización de la apk
desarrollada para dispositivos Android. En las dos se midió el tiempo de
respuesta del VA ante los comandos enviados por las mismas. Así como la
capacidad de intercambio de datos entre el VA y las aplicaciones.

5.3.1 Prueba de manejo del VA usando la aplicación en la PC.

Esta prueba es de vital importancia, porque por la aplicación en la PC es por


donde mayormente se controlará el VA. Para comprobar el correcto
funcionamiento de CURIOSO, se sometió a una serie de ensayos los cuales
arrojaron los siguientes resultados:

1- El tiempo de reacción del VA a un comando enviado desde la PC,


conectado CURIOSO a un nodo de capa 2 (WSN diseñada en [36]), osciló
entre los 29,245 𝑚𝑠 a los 36,439 𝑚𝑠. Conectado este a un nodo de capa
tres el tiempo de reacción varió de los 52,822 𝑚𝑠 a los 67,091 𝑚𝑠. Estas
pruebas se realizaron bajo la puesta en marcha de la red, que incluye el
93
intercambio de información entre los nodos secundarios de esta y el nodo
master. Estos tiempos son lo suficientemente pequeños para decir que se
tiene un control preciso del VA, aun cuando este se mueva a su máxima
velocidad.

2- El tiempo de conmutación de una capa de la red a otra (el cambio de la


frecuencia de comunicación), se refiere al tiempo en que el VA cambia su
frecuencia de comunicación y reacciona a las ordenes enviadas por la
aplicación. En las pruebas, este valor osciló entre los 610,90 𝑚𝑠 y los
988,32 𝑚𝑠. Aunque estas cifras son bastantes bajas hay que tenerlas en
cuenta cuando se maneja CURIOSO en lugares concurridos o con gran
variedad de obstáculos. Para este trabajo donde se concibe para su uso
en la agricultura no representan un problema. Aunque CURIOSO tiene un
sensor ultrasónico que detecta obstáculos y frena de manera automática;
hay que tener en cuenta que el mismo solo detecta en un ángulo de 150
grados, con centro el frente del VA. Esto hace que presente puntos ciegos
sobre todo en los laterales de la parte trasera, lo que significa que otro
objeto que viaje a la velocidad del VA o superior pudiera golpearlo y no
darse cuenta hasta haberse recibido el imparto.

3- El tiempo que demora transmitir la información del VA a la aplicación (esta


información no incluye las pertenecientes a las imágenes tomadas por la
cámara) osciló entre los 30,231 𝑚𝑠 y los 38,541 𝑚𝑠 conectado a un nodo
de capa dos. Mientras que el tiempo de demora conectado a un nodo de
capa tres, vario de los 54,67 𝑚𝑠 a los 70,153 𝑚𝑠. En estos datos
trasmitidos se encuentran la posición del servomotor que tiene el sensor
ultrasónico, la distancia obtenida por dicho sensor y la posición del
servomotor que tiene la cámara.

4- El tiempo que toma transmitir todas las señales del VA a la aplicación


(incluyendo la cámara) conectado a un nodo de capa dos es de
63,018 𝑚𝑠 a 75,12 𝑚𝑠. Recordando, que las imágenes se trasmiten por
vectores, no se trasmite la matriz completa que conforma la imagen.
Conectado a un nodo de capa tres, varió de 110,65 𝑚𝑠 a los 153,752 𝑚𝑠.
94
Aunque, el tiempo de transferencia a la aplicación cuando el VA se
encontraba en proceso de conmutación de la frecuencia de comunicación,
se incrementó significativamente variando de los 1247,32 𝑚𝑠 a los
1609,687 𝑚𝑠. Esto último provocaba el congelamiento de la imagen en la
PC durante al menos unos 5 segundos. Se colocaron varios obstáculos y
se dirigió a CURIOSI hacia los mismos, pasando por un cruce de capa de
la red. En todos los casos el VA no sufrió daños, gracias al sistema de
detección de obstáculos que es completamente autónomo y un proceso
prioritario. Siempre se detuvo a una distancia segura (entre 20 y 40 cm).
En la aplicación se perdía el contacto con CURIOSO, pero transcurrido un
tiempo pequeño (~5 segundos) se retomaba el control sobre el mismo y
el regreso de la imagen.

5.3.2 Prueba del manejo del VA usando la apk en un dispositivo Android.

Este modo de manejo se ideó para el control del vehículo a la hora de darle
mantenimiento o en el traslado a un lugar determinado donde la red no está
presente. Las pruebas realizadas arrojaron los siguientes resultados:

1- Necesidad de que el uso de esta vía solo es posible mientras el operador


esté a una distancia inferior a los 10 metros, ya que este es el alcance del
módulo de bluetooth. Este método de control fue ideado para manejar a
CURIOSO en distancias cortas, o mientras el usuario se desplace junto al
mismo manteniendo una distancia inferior a los 10 metros (recomendado
5 metros).

2- La velocidad de reacción del VA ante un comando se mantuvo constante


y rápida siempre y cuando no estuviera a más de 5 metros de distancia.
A partir de esta distancia empezaban a ocurrir desconexiones entre el VA
y la apk, hasta que el vehículo se separaba unos 10 metros y se perdía
completamente la conexión. Para mejorar un poco estas prestaciones se
pudiera modificar la antena del módulo de bluetooth, la cual es una antena
de tipo PAFI (la misma del NRF24L01), transformándola en un dipolo

95
simple. Esto no se hizo porque se consideró que para el método de trabajo
por esta vía eran más que suficiente con esas prestaciones.

5.4 Validación de la red neuronal.

Con el objetivo de someter la red neuronal a condiciones de trabajo


reales se dispuso a comprobar su fiabilidad utilizando una gran cantidad y
variedad de imágenes a clasificar. Se le dieron a clasificar un total de 2000
imágenes que variaban del 0 al 9. Obteniendo los siguientes resultados.

1- El promedio de error de la red neuronal fue de 0.0045 para un total de


2000 pruebas.
2- El error máximo registrado fue de 0.09 y pertenece al número 6 (la red
tenía los mayores errores con este número y el 9 por su similitud,
además las imágenes contenían números en diferentes posiciones).
3- El error mínimo registrado fue de 0.0001 y pertenece al número 8.
4- La mediana fue de 0.0048.
5- La moda fue de 0.0028.

Los resultados obtenidos son de gran relevancia, la red neuronal es capaz de


clasificar cualquier número del 0 al 9 con una tasa de aceptación bastante alta.
Esto permite validar el uso de redes neuronales para la detección de plagas en
la agricultura. Pudiendo detectar gran variedad de plagas y enfermedades.

5.5 Pruebas de consumo de energía.

Para cumplir con el objetivo de que el VA posea una buena autonomía y pueda
realizar todas sus tareas durante el día se sometió a una serie de pruebas para
medir su consumo. Obteniendo los siguientes resultados:

1- El consumo en reposo (sin movimiento) osciló entre los 42.3 𝑚𝐴 y los


43.8 𝑚𝐴. Para un promedio de 42.9 𝑚𝐴.

96
2- El consumo activo (en movimiento, moviendo el servomotor de la cámara
y tomando fotos) osciló entre los 678.23 𝑚𝐴 y los 790.65 𝑚𝐴. Para un
promedio de 733.98 𝑚𝐴.
3- El VA, utilizando una batería de 12𝑉, 4500 𝑚𝐴ℎ y trabajando a máximo
consumo obtuvo una autonomía de aproximadamente unas 6 horas. Esto
combinado con la lógica de carga del panel solar y teniendo en cuenta
que la vida útil de estas baterías es de unos dos años, se puede asumir
que el VA puede trabajar un mínimo de 6 horas diarias y dependiendo del
estado del tiempo alargar durante unas 7 horas. Siempre y cuando la
batería se cargue diariamente.

5.6 Presupuesto Económico.

En la tabla 5.1 se muestra la correspondencia cantidad precio y un aproximado


del costo total para la obtención del equipamiento necesario en la
implementación del vehículo autónomo que en este trabajo se propone.

Tabla 5.1 Presupuesto para la implementación de CURIOSO.


Sistema para el procesado de señales mediante un VA
Sensores
Tipo Cantidad Precio/Unidad Precio Total
HCR-04 1 0.95 € 0.95 €
Subtotal 0.95 €
Transceptores
Tipo Cantidad Precio/Unidad Precio Total
NRF24L01 (con Ax impresa) 1 1.05 € 1.05 €
HC-05 1 2.25 € 2.25 €
Subtotal 3.30 €
Microcontrolador
Tipo Cantidad Precio/Unidad Precio Total
Arduino Mega 1 18.99 € 18.99 €
Subtotal 18.99 €
Driver para el control de los motores

97
Tipo Cantidad Precio/Unidad Precio Total
Driver L298N 4 4.5 € 18.0 €
Subtotal 18.0 €
Otros Implementos
Tipo Cantidad Precio/Unidad Precio Total
LED (rojo) 1 0.26 € 0.26 €
LED (verde) 1 0.26 € 0.26 €
7805 1 0.5 € 0.5 €
Capacitor (1µF) 1 1.4 € 1.4 €
Capacitor (0.1µF) 1 1.4 € 1.4 €
Relé (12 V de DC) 2 8.33 € 16.66 €
Batería (12 V de DC) 1 16.6 € 16.6 €
Panel Solar (12V de DC) 1 79.81 € 79.81 €
Diodo 4 0.3 € 1.2 €
Fusibles 2 0.25 € 0.5 €
Subtotal 118.59 €
Software
Tipo Precio Instalación Precio Total
SRR v1.2(para Windows) 20 € 5€ 25 €
SRR v1.2(para Android) 10 € 5€ 15 €
Subtotal 40 €
Instalación
Tipo Precio
Instalación y conexión de los elementos. 1500 €
Documentación, puesta en marcha, entrega al usuario. 200 €
Subtotal 1700 €
Total 1899.83€

El presente presupuesto no incluye:


- Equipos de cómputo para instalar la aplicación SRR.
- Se asume que el vehículo trabajará en un área con una WSN [36] ya
implementada.

98
5.7 Conclusiones del Capítulo.

1- Se modificó la antena del NRF24L01 para obtener un mayor ángulo de


visibilidad.
2- Se verificó la correcta conexión entre el VA y la WSN.
3- Se comprobó el correcto funcionamiento de la aplicación desarrollada
para mostrar los datos de los recibidos de CURIOSO, así como el envío
de comandos.
4- Se comprobó el correcto funcionamiento de la red neuronal y de las
ventajas que aportó la misma para este proyecto.
5- Se comprobó la autonomía del VA.

99
CONCLUSIONES

1. Se diseñó y evaluó un prototipo de VA para su uso en la agricultura de


precisión. El sistema obtenido es flexible, modular, integral, escalable, de
bajo costo y buena autonomía, con facilidad de montaje debido a su
diseño modular.
2. Se modificó la antena del NRF24L01, convirtiéndola en una antena de
dipolo simple. Con la misma se logró aumentar significativamente el
ángulo de radiación; sin tener pérdidas apreciables en el alcance o a la
velocidad de trasmisión.
3. El sistema presenta dos softwares creados, uno para sistema operativo
Windows y otro para Android. El primero muestra un sistema parecido a
los que usan los radares, ilustrando el ángulo del servomotor y la distancia
obtenida por el sensor ultrasónico. También se observan las imágenes
obtenidas por el VA, así como el resultado de su procesamiento. La
segunda aplicación es solo para el control del vehículo y se encarga de
enviar las órdenes al mismo. Además, tiene un sistema de autentificación
(mediante usuario y contraseña), para impedir que personas no
autorizadas controlen el VA. Las aplicaciones son amigables al usuario,
presentan una interfaz atractiva y sistema de audio que ayuda a
comprender los procesos que ocurren en las mismas.
4. Se verificó el correcto funcionamiento de la red neuronal, encargada de
clasificar las imágenes.

100
RECOMENDACIONES

1. Realizar otro grupo de pruebas en una zona rural que se asemeje más a
las condiciones donde se trabajará.
2. Aumentar las prestaciones de las aplicaciones en Windows y Android,
logrando que sea aún más amigable y sencilla de operar.
3. El cambio del módulo de la cámara (OV7670) por otro más sencillo de
operar, más rápido y que utilice menos pines de Arduino para poder
realizar un futuro aumento de las prestaciones del VA.
4. Aumentar el número de pruebas a la red neuronal. Así como el
entrenamiento de otra, que permita la clasificación de al menos 10 plagas.
5. Buscar componentes de bajo consumo para aumentar la autonomía del
VA.

101
BIBLIOGRAFIA

[1]. Valero,2004. Recuperado de http://oa.upm.es/6313/1/Valero_49.pdf


[2]. Prof. Dr. Ing. Juan Carlos Cruz Hurtado., «Sistema Electrónico de
Monitorización Medioambiental.», La Habana, Cuba, 2018.
[3]. Statsoft. Statsoft Electronic Textbook, 2003
[4]. D. Anderson and G. McNeil. Artificial neural networks technology. Technical
report, Data & Analysis Center for Software, 1992
[5]. Villacís Sánchez Daysi Valeria, «DETECCIÓN DE MALEZA EN EL CULTIVO
DE CAÑA DE AZÚCAR EN EL INGENIO VALDEZ MEDIANTE
TELEDETECCIÓN», UNIVERSIDAD CENTRAL DEL ECUADOR, QUITO,
ECUADOR, 2017.
[6]. JHONNY LEONARDO GONZALEZ GALVIS y JHON ALEXIS PARRA ABRIL,
«DISEÑO E IMPLEMENTACIÓN DE UN SISTEMA DE RECONOCIMIENTO DE
NARANJAS PARA EL ROBOT GIO 1 USANDO VISIÓN ASISTIDA POR
COMPUTADOR.», UNIVERSIDAD CATÓLICA DE COLOMBIA, BOGOTÁ,
Colombia, 2015.
[7]. Erik Cuevas, Daniel Zaldivar, Marco Perez Cisneros, Procesamiento digital
de imágenes con MatLAB y SIMULINK. México: Alfaomega & RA-MA, 2010.
[8]. ALEIXOS, N., BLASCO, J., NAVARRÓN, F., MOLTÓ, E. “Multispectral
inspection of citrus in real-time using machine vision and digital signal
processors” Computers and electronics in agriculture Volume 22 Issue 2, 2002.
[9]. Céspedes Hinojosa, Miguel A. “Transformada de Laplace con aplicaciones”.
Editorial Pueblo y Educación. Ciudad Habana, Cuba, 1989.
[10]. BRADSKI, Gary, KAEBLER, Adrian, “Learning OpenCV computer vision
with the OpenCV library”, Primera Edición.
[11]. ESQUEDA, José, PALAFOX, Luis. “Fundamentos de procesamiento de
imágenes”, Universidad Autónoma de Baja California, Primera Edición.
[12]. GONZALEZ, Rafael, WOODS, Richard, “Digital Image Processing”, Tercera
Edición, Pearson Prentice Hall, 2008.
[13]. BETANCOURT Diego Mauricio. Sistema de visión por computador para
detectar hierba no deseada en prototipo de cultivo de frijol usando ambiente
controlado.64p. Trabajo de grado (Ingeniero). Universidad católica de Colombia.
Facultad de ingeniería. Electrónica y telecomunicaciones.

102
[14]. Acharya, T., A. K. Ray. Image Processing. Principles and Applications.
ISBN-13 978-0-471-71998-4, USA: John Wiley & Sons, 2005.
[15]. Gonzalez, R. C., R. E. Woods. Digital Image Processing Using MATLAB.
ISBN 81-7758-898-2, USA: Pearson Educational, 2006.
[16]. Dr. Sergio Ledesma, Las Redes Neuronales implementación y
consideraciones prácticas. México: MICAI, 2018.
[17]. Eduardo Francisco Caicedo B., Jesús Alfonso López S., UNA
APROXIMACIÓN PRÁCTICA A LAS REDES NEURONALES ARTIFICIALES.
Santiago de Cali, Colombia: Programa Editorial Universidad del Valle, 2017.
[18]. Dr. Juan Carlos Cuevas Tello, Apuntes de Redes Neuronales Artificiales
Handouts for Artificial Neural Networks. Universidad Autónoma de San Luis
Potosí, 2017.
[19]. Khoshhal A, Dakhel AA, Etemadi A and Zereshki S. Artificial Neural Network
Modeling of Apple Drying Process. Journal Food Process Engineering, 2010.
[20]. Lin WC and Hill BD. Neural network modelling to predict weekly yields of
sweet peppers in a commercial greenhouse. Can. J. Plant Sci., 2008.
[21]. Zu-iga A, Mora M, Oyarce M and Fredes C Grape maturity estimation based
on seed images and neural networks. Engineering Applications of Artificial
Intelligence, 2014.
[22]. Zarifneshat S, Rohani A, Ghassemzadeh HR, Sadeghi M, Ahmadi E and
Zarifneshat M. Predictions of apple bruise volume using artificial
neural network. Computers of Electronics in Agriculture, 2012.
[23]. Daniel Santiago Cañadas Ortiz, «DISEÑO DE UN ALGORITMO MEDIANTE
REDES NEURONALES PARA EL CONTROL DE UN VEHÍCULO EN LÍNEA
RECTA», Universidad Internacional SEK, 2019.
[24]. Flores, M., Proaño, A. Evolución Artificial y Robótica Autónoma desarrollada
en el Robot P3-DX con Aproximación basada en Comportamientos. Sangolquí:
ESPE, 2013.
[25]. Díaz, J. (2015). Estudio de Índices de vegetación a partir de imágenes
aéreas tomadas desde UAS/RPAS y aplicaciones de estos a la agricultura de
precisión.
[26]. Rodarte D. J., Paz G., Pérez B. R,” Red de detectores pasivos infrarrojos
enlazados por radiofrecuencia, como sistema de alarma de seguridad de bajo
costo” Universidad Autónoma de Ciudad Juárez. ISSN: 1692-7257 _Volumen 2

103
[27]. Nordic Semicondutor, "Datasheet: nRF24L01 Single Chip 2.4GHz
TransceiverProduct Specification",2007.
[28]. Semiconductor, "Product Datasheet: HC-05 y HC-06".2014.
[29]. Semiconductor, "Product Datasheet: OV7670".2016.
[30]. Servo motor SG90, "Datasheet: SG90".2008.
[31]. Semiconductor, "Product Datasheet: L298N".2018
[32]. Nordic Semicondutor, "Datasheet: Module of Relay",2017.
[33]. Arduino Mega (USA ONLY), 2014[Citado en: mayo de 2019].
[34]. Fajardo Márquez Ariel, Máster en Diseño de Sistemas Electrónicos,
«DISEÑO E IMPLEMENTACIÓN DE UN PROTOTIPO DE SISTEMA
DOMÓTICO BÁSICO», Universidad Tecnológica de La Habana «José Antonio
Echeverría», la Habana, Cuba, 2018.
[35]. App Inventor <<appinventor.mit.edu/explore>> [Citado en: junio de 2019].
Disponible:http://appinventor.mit.edu/explore/ai2/support/blocks.html.
[36]. Mario Manuel Rivera López, «Diseño e implementación de una red de
sensores auto-configurable utilizando transceptores NRF24L01.», ISPJAE, La
Habana, CUBA, 2020.

104
105

También podría gustarte