• No se han encontrado resultados

Algoritmo masivamente paralelo de reconocimiento de objetos basado en el paradigma de la corteza visual artificialMassively parallel object recognition algorithm based on the paradigm of artificial visual cortex

N/A
N/A
Protected

Academic year: 2020

Share "Algoritmo masivamente paralelo de reconocimiento de objetos basado en el paradigma de la corteza visual artificialMassively parallel object recognition algorithm based on the paradigm of artificial visual cortex"

Copied!
192
0
0

Texto completo

(1)

PROGRAMA DE POSGRADO EN CIENCIAS

EN CIENCIAS DE LA COMPUTACI ´

ON

Algoritmo masivamente paralelo de reconocimiento de

objetos basado en el paradigma de la corteza visual

artificial

Tesis

para cubrir parcialmente los requisitos necesarios para obtener el grado de

Maestro en Ciencias

Presenta:

Andersen Herrera Hidalgo

Ensenada, Baja California, M´exico

(2)

Andersen Herrera Hidalgo

y aprobada por el siguiente comit´e

Dr. Gustavo Olague Caballero

Codirector del Comit´e

Dr. Benjam´ın Hern´andez Valencia

Codirector del Comit´e

Dr. Andrey Chernykh

Miembro del Comit´e

M.C. Jos´e Luis Brise˜no Cervantes Miembro del Comit´e

Dr. Eugenio Rafael M´endez M´endez

Miembro del Comit´e

Dra. Ana Isabel Mart´ınez Garc´ıa

Coordinador programa de

Posgrado en Ciencias de la Computaci´on

Dr. Jes´us Favela Vara

Direcci´on de Estudios de Posgrado

Julio 2014

(3)

Resumen de la tesis de Andersen Herrera Hidalgo, presentada como requisito parcial para la obtenci´on del grado de Maestro en Ciencias en Ciencias de la Computaci´on.

Algoritmo masivamente paralelo de reconocimiento de objetos basado en el paradigma de la corteza visual artificial

Resumen aprobado por:

Dr. Gustavo Olague Caballero

Codirector de Tesis

Dr. Benjam´ın Hern´andez Valencia

Codirector de Tesis

El reconocimiento de objetos en escenas complejas es un campo f´ertil en el desarrollo de algoritmos usados en la visi´on por computadora. Es importante desarrollar algoritmos con buena certidumbre en reconocimiento, as´ı como que se calculen con altas velocidades en su proceso, de tal forma que ayuden en tareas de clasificaci´on y detecci´on de objetos en tiempo real. En esta tesis, se presenta la implementaci´on en paralelo del algoritmo de la corteza visual artificial para reconocimiento de objetos. Esta corteza visual artificial es una composici´on de m´ultiples algoritmos, que al combinarse en cierto orden, logran la tarea de reconocimiento de objetos, y en conjunto obtienen una precisi´on de reconocimiento tan buena como la alcanzada en otros trabajos del estado del arte, y se dice que se inspira en la biolog´ıa de la corteza visual cerebral. El paralelismo implementado se realiza en la unidad de procesamiento gr´afico (GPU), a trav´es de CUDA, una extensi´on de C para realizar c´alculos de pr´oposito general en tarjetas gr´aficas NVIDIA. El procesamiento en tarjetas gr´aficas brinda aceleraci´on en los c´alculos, ya que cuentan con decenas y hasta cientos de procesadores gr´aficos, a diferencia de los que llega a tener un CPU. Como resultado, los c´alculos del algoritmo de la corteza visual artificial, en su mayor´ıa, se aceleran en la GPU. Algunos c´alculos, debido a su estructura e independencia de datos, y al uso de memoria cach´e de la GPU, son hasta 180x m´as r´apido que la versi´on secuencial de C. La implementaci´on del algoritmo de la corteza visual artificial en GPU, provee un incremento de velocidad de hasta 50x sobre la implementaci´on en C, en tama˜nos de imagen de hasta 4096X4096 p´ıxeles.

(4)

Abstract of the thesis presented by Andersen Herrera Hidalgo, in partial fulfillment of the requirements of the degree of Master of Science in Computer Science.

Massively parallel object recognition algorithm based on the paradigm of artificial visual cortex

Abstract approved by:

Dr. Gustavo Olague Caballero

Codirector de Tesis

Dr. Benjam´ın Hern´andez Valencia

Codirector de Tesis

Recognizing objects in complex scenes is a fertile field for the development of algorithms used in computer vision. It is important to develop algorithms with good certainty in recog-nition as well as to be calculated with high speed in the process, so that aid in tasks of classification and object detection in real time. In this thesis, is presented the parallel im-plementation of the algorithm of artificial visual cortex for object recognition. This visual cortex artificial composition of multiple algorithms, when combined in a certain order, man-age the task of object recognition, and together get a recognition accuracy as good as that achieved in other studies of the state of the art, and is said to be inspired by biology of the cerebral visual cortex. The implemented parallelism is performed on the graphics processing unit (GPU) through CUDA, an extension of C for general purpose calculations on NVIDIA graphics cards. Processing acceleration provided by graphics cards in the calculations, as have dozens or even hundreds of graphics processors, as opposed to coming to have a CPU. As a result, the load algorithm of artificial visual cortex, where most are accelerated on the GPU. Some calculations, due to its structure and independence of data, and the use of GPU memory cache, are up to 180x faster than the sequential version of C. The GPU implemen-tation of the visual cortex artificial algorithm, provides a speed increase of up to 50x on C-implementation in image sizes up to 4096X4096 pixels.

(5)

Dedicatoria

Dedicada

a

mi

esposa

Karla

y

a

mi

hijo

(6)

Agradecimientos

A mis coasesores, el Dr. Gustavo Olague, por sus ense˜nanzas, su apoyo y sus m´ultiples

met´aforas y al Dr. Benjam´ın Hern´andez por haberme guiado en la realizaci´on de este trabajo,

as´ı como a mis sinodales de tesis; Dr. Eugenio Rafael M´endez, Dr. Andrey Chernykh y M.C.

Jos´e Luis Brise˜no por sus opiniones, observaciones y su tiempo.

A mi esposa e hijo, por su paciencia y apoyo en el tiempo de estudio del posgrado. Al

apoyo y ense˜nanzas de mis padres, Efren Herrera y Magdalena Hidalgo. Por los consejos y

´animo de mis hermanos Irving, Iran y Daniel.

A mis compa˜neros de laboratorio, Daniel, Leon, Eddie, Jos´e Chan, Luis Arturo y Paul,

por sus valiosos comentarios y ayuda que me brindaron durante el tiempo que colaboramos

juntos.

A todos los investigadores, estudiantes y personal del departamento de ciencias de la

computaci´on por su ense˜nanza acad´emica.

(7)

Resumen en espa˜nol . . . iii

Resumen en ingl´es . . . iv

Dedicatoria . . . v

Agradecimientos . . . vi

Lista de figuras . . . xi

Lista de tablas . . . xii

1 Introducci´on. . . 1

1.1 Motivaci´on. . . 1

1.2 Objetivos . . . 2

1.2.1 Objetivos espec´ıficos . . . 2

1.3 Preguntas de investigaci´on . . . 3

1.4 Contribuciones . . . 3

1.5 Trabajo relacionado . . . 4

1.6 Estructura de esta tesis . . . 4

2 El reconocimiento de objetos y la corteza visual . . . 6

2.1 Reconocimiento vs clasificaci´on . . . 6

2.2 Teor´ıas de reconocimiento de objetos . . . 7

2.2.1 Teor´ıas de descripci´on estructural . . . 7

2.2.2 Teor´ıas basadas en im´agenes . . . 10

2.3 Biolog´ıa del sistema visual humano . . . 11

2.3.1 La retina. . . 12

2.3.2 N´ucleo geniculado lateral . . . 15

2.3.3 La corteza visual . . . 16

2.4 Modelos computacionales biol´ogicamente inspirados para reconocimiento . . 19

2.5 Modelos de la corteza visual en GPU . . . 26

3 CUDA . . . 28

3.1 Introducci´on . . . 29

3.2 Tarjeta gr´afica CUDA . . . 32

3.2.1 GPU . . . 33

3.2.2 Memoria . . . 37

3.2.3 Capacidad de c´omputo . . . 41

3.3 Programaci´on paralela en CUDA . . . 42

3.3.1 CUDA C. . . 42

(8)

3.3.2 Calificadores de funciones . . . 43

3.3.3 Calificadores de variables. . . 44

3.3.4 Variables Incorporadas . . . 45

3.3.5 Kernels e hilos . . . 46

3.3.6 Memoria del dispositivo . . . 48

3.3.7 Barreras de memoria . . . 49

3.3.8 Sincronizaci´on . . . 50

3.4 Optimizaci´on en CUDA . . . 50

3.4.1 Arquitectura. . . 51

3.4.2 Urdimbres y ocupaci´on . . . 53

4 Corteza visual artificial . . . 55

4.1 Ruta dorsal artificial . . . 57

4.1.1 Mapa visual de color . . . 59

4.1.2 Mapa visual de forma. . . 60

4.1.3 Mapa visual de orientaci´on . . . 60

4.1.4 Mapa visual de intensidad . . . 61

4.1.5 Mapas conspicuo . . . 62

4.2 Ruta ventral artificial . . . 63

4.2.1 Mapas mentales . . . 63

4.2.2 Vector descriptor . . . 64

5 Algoritmo de la corteza visual en C . . . 66

5.1 Algoritmo general de la corteza visual . . . 67

5.1.1 Corteza visual artificial implementada . . . 68

5.2 Leer Imagen . . . 68

5.3 Conversi´on y separaci´on del R, G y B de la imagen . . . 71

5.4 Umbralizaci´on de im´agenes . . . 72

5.5 Modelos y opuestos de color . . . 72

5.5.1 Cian, magenta, amarillo y negro . . . 73

5.5.2 Matiz, saturaci´on y valor . . . 74

5.5.3 Opuestos de color . . . 77

5.6 Mapas visuales en C . . . 78

5.6.1 Mapa visual de intensidad . . . 78

5.6.2 Mapa visual de orientaci´on . . . 79

5.6.3 Mapa visual de forma. . . 79

5.6.4 Mapa visual de color . . . 80

5.7 Mapas Conspicuos en C . . . 81

5.7.1 Pir´amide Gaussiana en C . . . 81

5.7.2 Centro envolvente en C . . . 83

5.7.3 Normalizaci´on . . . 83

5.8 Escalar los mapas conspicuos . . . 87

5.9 Mapas mentales en C . . . 87

5.10 Vector descriptor en C . . . 87

5.11 Operadores visuales . . . 90

5.11.1 Algoritmos. . . 92

6 Implementaci´on de la corteza visual artificial en CUDA . . . 96

6.1 Algoritmo general de la corteza visual en CUDA . . . 96

(9)

6.4 Conversi´on y separaci´on del R, G y B de la imagen . . . 101

6.5 Umbralizaci´on de R, G y B . . . 104

6.6 Cian, magenta, amarillo y negro . . . 105

6.7 Matiz, saturaci´on y valor . . . 106

6.8 Opuesto al color rojo-verde. . . 108

6.9 Opuesto al color azul-amarillo . . . 108

6.10 Mapas visuales . . . 109

6.10.1 Mapa visual de intensidad . . . 109

6.10.2 Mapa visual de orientaci´on . . . 110

6.10.3 Mapa visual de forma. . . 110

6.10.4 Mapa visual de color . . . 111

6.11 Mapas conspicuos . . . 111

6.12 Pir´amide gaussiana . . . 113

6.13 Escalar las pir´amides . . . 113

6.14 Centro envolvente . . . 114

6.15 Normalizaci´on . . . 114

6.16 Escalar mapas conspicuos . . . 116

6.17 Mapas mentales . . . 116

6.18 Vector descriptor . . . 117

6.19 Algoritmos. . . 117

6.19.1 Operadores visuales . . . 119

6.19.2 Convoluci´on . . . 126

6.19.3 M´aximo y m´ınimo . . . 133

7 Experimentaci´on y resultados . . . 137

7.1 Transferencia GPU . . . 137

7.2 Rojo, verde y azul. . . 139

7.3 Cian, magenta, amarillo y negro . . . 141

7.4 Matiz, saturaci´on y valor . . . 144

7.5 Opuestos al color . . . 146

7.6 Mapas visuales . . . 148

7.7 Mapas conspicuos . . . 153

7.8 Mapas mentales . . . 156

7.9 Vector descriptor . . . 160

8 Conclusi´on y discusi´on . . . 166

8.1 Trabajo a futuro . . . 170

Referencias Bibliogr´aficas . . . 171

A Configuraci´on de experimentos . . . 176

A.1 Software . . . 176

B Biblioteca OpenCV . . . 179

(10)

Lista de figuras

1 Descripci´on esquem´atica del proceso de reconocimiento de objetos . . . 9

2 El sistema nervioso ´optico . . . 14

3 Las rutas dorsal y ventral en el cerebro humano . . . 17

4 La conectividad conocida de la corteza visual. . . 19

5 Extracci´on jer´arquica de caracter´ısticas . . . 22

6 Ejemplo del proceso de la neocognitron . . . 23

7 Modelo est´andar de reconocimiento de objetos por Riesenhuber y Poggio . . 24

8 Modelo de reconocimiento de objetos . . . 25

9 Telar artesanal a mano . . . 30

10 La arquitectura CUDA en un nivel conceptual . . . 31

11 La arquitectura de una tarjeta Fermi . . . 34

12 La arquitectura de un multiprocesador de flujo Fermi v2.1 . . . 36

13 Una vista conceptual de la estructura de memoria en una GPU. . . 38

14 Un ejemplo de conflicto de acceso de hilos en la lectura de datos de memoria compartida . . . 53

15 Analog´ıa entre la ruta ventral y el modelo computacional propuesto por Clemente 58 16 Estructura tipo “IplImage”. . . 69

17 Forma de almacenar OpenCV los datos de una imagen. . . 70

18 Separaci´on de RGB. . . 71

19 Representaci´on del modelo HSV . . . 75

20 Un ejemplo de pir´amide Gaussiana. . . 82

21 Transferencia de una imagen del hu´esped al dispositivo. . . 100

22 Un ejemplo de configuraci´on de hilos y bloques para cubrir todos los elementos de una imagen en dos dimensiones. . . 102

23 Representaci´on del acceso de hilos a memoria global del dispositivo . . . 103

24 Un ejemplo de configuraci´on de hilos y bloques. . . 104

25 Convoluci´on 1D.. . . 127

26 Convoluci´on 1D de otro elemento. . . 127

27 Ejemplo de una convoluci´on 1D segmentada. . . 131

28 Cargas de datos en memoria compartida. . . 133

29 Formas de hacer una reducci´on. . . 134

30 Imagen de avi´on . . . 137

31 Comparaci´on de CPU y GPU en tiempo (ms) para RGB. . . 141

32 Comparaci´on de CPU y GPU en tiempo (ms) para CMYK. . . 143

33 Comparaci´on de CPU y GPU en tiempo (ms) para HSV. . . 146

34 Comparaci´on de CPU y GPU en tiempo (ms) para opuestos al color. . . 148

35 Comparaci´on de CPU y GPU en tiempo (ms) para mapa visual de intensidad. 150 36 Comparaci´on de CPU y GPU en tiempo (ms) para mapa visual de orientaci´on.151 37 Comparaci´on de CPU y GPU en tiempo (ms) para mapa visual de color. . . 152

38 Comparaci´on de CPU y GPU en tiempo (ms) para mapa visual de forma. . . 153

39 Comparaci´on de CPU y GPU en tiempo (ms) para un mapa conspicuo. . . . 156

40 Comparaci´on de CPU y GPU en tiempo (ms) para un mapa mental.. . . 159

(11)

43 Comparaci´on de CPU y GPU en valores del vector descriptor de una imagen de 1024 X 1024. . . 163

44 Comparaci´on de CPU y GPU en valores del vector descriptor de una imagen de 2048 X 2048. . . 164

45 Comparaci´on de CPU y GPU en valores del vector descriptor de una imagen de 4096 X 4096. . . 165

(12)

Lista de tablas

1 Operadores visuales de color OVC . . . 59

2 Operadores visuales de forma OVF . . . 61

3 Operadores visuales de orientaci´on OVO. . . 62

4 Operadores de mapas mentales OVM Mk . . . 64

5 Funciones unarias . . . 91

6 Funciones binarias . . . 91

7 Tiempo de transferencia de imagen. . . 138

8 Im´agenes obtenidas de los componentes rojo, verde y azul. . . 140

9 Tiempo de procesamiento de componentes rojo, verde y azul. . . 140

10 Im´agenes obtenidas de los componentes cian, magenta, amarillo y negro. . . 142

11 Tiempo de procesamiento de los componentes cian, magenta, amarillo y negro. 143 12 Im´agenes obtenidas de los componentes matiz, saturaci´on y brillo. . . 145

13 Tiempo de procesamiento de los componentes matiz, saturaci´on y brillo. . . 145

14 Im´agenes obtenidas de los opuestos al color. . . 147

15 Tiempo de procesamiento de los opuestos al color. . . 147

16 Im´agenes de los mapas visuales obtenidos. . . 149

17 Tiempo de procesamiento del mapa visual de intensidad. . . 150

18 Tiempo de procesamiento del mapa visual de orientaci´on (CVA Aviones). . . 151

19 Tiempo de procesamiento del mapa visual de color (CVA Aviones). . . 152

20 Tiempo de procesamiento del mapa visual de forma (CVA Aviones). . . 153

21 Im´agenes de los mapas conspicuos obtenidos. . . 155

22 Tiempo de procesamiento de un mapa conspicuo. . . 156

23 Im´agenes de los mapas mentales obtenidos. . . 158

24 Tiempo de procesamiento de un mapa mental (CVA Aviones). . . 159

(13)

El problema cl´asico de visi´on por computadora, es determinar si una imagen contiene o no,

un objeto espec´ıfico, caracter´ıstica o actividad. Esta tarea normalmente puede ser resuelta

robustamente y sin esfuerzo por un humano. En visi´on por computadora, esta tarea no ha

sido resuelta satisfactoriamente para el caso general, solo para objetos espec´ıficos, tales como

rostros humanos, caracteres escritos a mano o impresos, veh´ıculos, entre otros, y bajo ciertas

circunstancias en t´erminos de iluminaci´on, fondo, posici´on del objeto respecto a la c´amara,

etc.(Pintoet al., 2008).

El enfoque principal de esta tesis, es la implementaci´on eficiente de los algoritmos de

detecci´on y clasificaci´on de objetos en la Unidad de Procesamiento Gr´afico (GPU1). Estos

algoritmos son componentes cruciales de muchas aplicaciones de visi´on por computadora.

A medida que se quiere entender la informaci´on de una imagen o v´ıdeo, los objetos en

la imagen deben ser reconocidos y clasificados. Es usual requerir procesar estas im´agenes

en tiempo real, sin embargo los algoritmos de detecci´on y clasificaci´on tienden a ser muy

costosos computacionalmente. Este trabajo supera las limitaciones del procesamiento de los

algoritmos de clasificaci´on, al descargar gran parte del computo a la unidad de procesamiento

gr´afico. La GPU es un dispositivo masivamente paralelo, el cual es capaz del procesamiento

de grandes cantidades de datos, requeridos para lograr las tareas de detecci´on y clasificaci´on

muy r´apidamente. Los incrementos en velocidad, son obtenidos sobre implementaciones

previas, al explotar c´alculos de datos independientes y ejecutarlos en paralelo en la GPU.

Las implementaciones en esta tesis fueron medidas contra la implementaci´on de ANSI C. Los

resultados fueron analizados para explicar cualquier cuello de botella en el desempe˜no.

1.1 Motivaci´on

Es bien sabido que el sistema visual humano desempe˜na la tarea de reconocimiento de objetos

efectivamente (DiCarloet al., 2012) haciendo parecer que es un problema simple, cuando de

hecho en visi´on artificial es algo m´as complejo. El conocimiento acerca de la corteza visual

1

(14)

del cerebro humano, as´ı como de otras especies, ha servido como inspiraci´on en el desarrollo

de soluciones para los problemas de visi´on por computadora.

Los modelos bio-inspirados en la corteza visual contienen un gran n´umero de operaciones,

y por lo tanto son computacionalmente costosos. Sin embargo, estos suelen ser susceptibles de

procesamiento en paralelo. La estructura de los modelos de la corteza visual se mapean muy

bien a la arquitectura moderna de las GPUs, las cuales est´an optimizadas para desempe˜nar

la misma operaci´on en cada punto del arreglo de datos. Las GPUs han evolucionado de ser

solo tarjetas aceleradoras de gr´aficos, donde los elementos del arreglo son p´ıxeles, a realizar

distintas operaciones con datos en general.

Desde hace algunos a˜nos las Interfaces de Programaci´on de Aplicaciones (API2) para estas

tarjetas, han llevado a la aceleraci´on de algoritmos no gr´aficos. En la actualidad, las GPUs

tienen cientos de procesadores paralelos, y pueden ejecutar algoritmos hasta 100 veces m´as

r´apido que un solo CPU(Nickolls et al., 2008). Sin embargo, esta ganancia en desempe˜no se

llega a ver afectada. Todos los procesadores de la GPU a´un comparten una memoria global,

la cual llega a ser un cuello de botella en el sistema. Para lograr un desempe˜no ´optimo,

los programadores deben hacer que los algoritmos de la GPU tengan el m´ınimo acceso de

memoria.

1.2 Objetivos

El objetivo general de esta tesis es: implementar un sistema de reconocimiento de objetos

en tarjetas gr´aficas de NVIDIA3 para acelerar el procesamiento de informaci´on. El sistema

a considerar esta inspirado en la corteza visual del cerebro de primates, tomando el flujo de

informaci´on visual de la ruta ventral.

1.2.1 Objetivos espec´ıficos

Para lograr el objetivo principal, se han establecido objetivos espec´ıficos,

2

Del ingl´es Aplication Programming Interface 3

(15)

• Implementar el sistema en ANSI C

• Implementar cada operaci´on susceptible al procesamiento paralelo en CUDA4

• Reducir el tiempo de procesamiento del sistema

• Comparar en tiempo de procesamiento los resultados experimentales de la implementaci´on con la version en Matlab y C

1.3 Preguntas de investigaci´on

Durante el desarrollo de esta tesis, se pretende contestar preguntas que surgen al realizar un

trabajo de investigaci´on de implementaci´on en tarjetas gr´aficas de sistemas bio-inspirados

para el reconocimiento de objetos, y estas preguntas son las siguientes:

• ¿Cu´ales son los beneficios de implementar un sistema como la corteza visual artifi-cial(CVA) en CUDA?

• ¿Cu´ales y c´omo se desarrollar´an los algoritmos susceptibles al procesamiento paralelo de la CVA?

• ¿Cu´ales son las limitaciones de la implementaci´on de la CVA en CUDA al imitar el paralelismo de la corteza visual?

• ¿Qu´e ventajas hay en la estrategia de la implementaci´on de la CVA en CUDA con respecto a otras implementaciones en CUDA de modelos bio-inspirados?

1.4 Contribuciones

Las contribuciones de esta tesis son:

• Una implementaci´on de un sistema de reconocimiento de objetos en la GPU. Las apli-caciones de reconocimiento de objetos demandan rapidez en c´omputo, para as´ı lograr

ejecuci´on en tiempo real.

4

(16)

• An´alisis del proceso de desarrollo de la implementaci´on en CUDA. El tiempo de desar-rollo y la ganancia en desempe˜no se registraron durante la implementaci´on. Con esta

informaci´on, se puede estimar el tiempo de desarrollo en proyectos futuros, as´ı como

cuanto mejorara el desempe˜no.

1.5 Trabajo relacionado

La implementaci´on en la GPU de este trabajo, proviene de una corteza visual artificial

(Clementeet al., 2013) y utiliza una metodolog´ıa similar a modelos existentes como el HMAX

(Riesenhuber y Poggio, 1999) o Modelo ´Estandar, Corteza Visual en la GPU (Woodbeck

y Roth, 2008), el modelo ´estandar 2.0 (Serre et al., 2005b) y trabajo posterior derivado.

A su vez, estos modelos tienen similitudes con trabajo previo, tal como la Neocognitron

(Fukushima, 1980). Todos estos modelos simulan el recorrido y operaciones de la corteza

visual, que son V1, V2, V4 e IT, realizando una pir´amide de escalas de la imagen, aplic´andoles

operaciones de convoluci´on con filtros de Gabor y usando un operador MAX(obtiene los

valores m´aximos) sobre las escalas y orientaci´on. Los modelos biol´ogicos recientes han usado

la maquina de vector de soporte (SVM5) para la clasificaci´on. El modelo de la CVA tambi´en

utiliza la SVM, pero se distingue de los modelos previamente mencionados de las siguientes

formas:

• Integraci´on de caracter´ısticas sobresalientes usando cuatro dimensiones: color, forma, orientaci´on e intensidad.

• Conjunto de operadores visuales, construidos y seleccionados a partir de la progra-maci´on gen´etica, en lugar de un diccionario de palabras visuales.

• La aplicaci´on de operadores visuales, que consisten en conjuntos de funciones matem´aticas.

1.6 Estructura de esta tesis

Los cap´ıtulos siguientes se estructuran de la siguiente forma:

5

(17)

• Capitulo II. Da una introducci´on al lector al tema de reconocimiento de objetos, se describen brevemente los diferentes enfoques para resolver el problema, enfoques

inspirados en la corteza visual, y se explica el funcionamiento de la corteza visual.

• Capitulo III. Se introduce a la programaci´on en GPUs con CUDA. Se describe la arquitectura del hardware, y se describen las funciones b´asicas para empezar a escribir

programas para la GPU.

• Capitulo IV.Describe el trabajo de la corteza visual artificial (CVA), los operadores utilizados, y las etapas principales de c´alculo de dicha corteza visual artificial para el

reconocimiento y clasificaci´on de objetos.

• Capitulo V. Se describen los algoritmos de la implementaci´on que se hizo de la CVA en C, as´ı como el funcionamiento de las funciones y algoritmos que componen la corteza

visual artificial.

• Capitulo VI.Se describen los algoritmos de la implementaci´on que se hizo de la CVA en CUDA, se muestra el cambio de paradigma, de un c´odigo secuencial a un c´odigo en

paralelo y se describe la implementaci´on de cada algoritmo con CUDA.

• Capitulo VII. Describe los experimentos realizados para medir la ganancia, de los algoritmos en CUDA respecto a sus similares en secuencial. Y se muestran los resultados

obtenidos.

(18)

Cap´ıtulo 2. El reconocimiento de objetos y la corteza

visual

El reconocimiento de objetos es un importante fen´omeno visual, y una de las preguntas

m´as desconcertantes en la comunidad de visi´on artificial. Los diferentes campos de

inves-tigaci´on, entre ellos la neurociencia, la psicolog´ıa y la ciencia cognitiva, est´an estudiando

este fen´omeno desde sus campos de aplicaci´on para encontrar los circuitos neuronales

subya-centes, y su conexi´on con tareas cognitivas de alto nivel. Los avances hechos son substanciales

y alentadores, pero el problema es complejo. Esto es porque se asume un gran sistema de

memoria muy eficiente, para almacenar un n´umero suficiente de diferentes ´angulos de visi´on

del objeto, y as´ı comparar la imagen con todas las vistas en memoria; otra forma es un

largo y exhaustivo entrenamiento con muchas diferentes vistas del objeto. A´un as´ı, dadas

las limitaciones de herramientas de investigaci´on, hay un largo camino que recorrer antes de

entender el problema completamente.

En el contenido de este capitulo, se definen los conceptos de reconocimiento y clasificaci´on

en la visi´on artificial. Se hace menci´on a diferentes teor´ıas de reconocimiento de objetos,

entre estas las que se inspiran en la corteza visual. Dada la importancia del respaldo

te´orico-cient´ıfico para esta tesis, se incluye una secci´on que describe la biolog´ıa del sistema visual

humano, que entre otras cosas est´a la corteza visual del cerebro, donde se describen dos rutas

principales para reconocer el mundo que nos rodea. Tambi´en se mencionan algunos de los

modelos inspirados en la biolog´ıa para reconocimiento de objetos. Y por ´ultimo se mencionan

otros modelos que se han implementado en la GPU.

2.1 Reconocimiento vs clasificaci´on

El reconocimiento de objetos puede ser dividido en dos tipos. Estos son, clasificaci´on e

identificaci´on de objetos. En clasificaci´on de objetos, la tarea es identificar los tipos de

objetos o a cual clase pertenece el objeto. Por ejemplo, a´un cuando los carros pueden tener

diferentes formas, colores, a˜no de manufactura, etc., se pueden clasificar todos estos objetos

(19)

como un miembro ´unico dentro de una clase. Por ejemplo en un estacionamiento, donde hay

un gran n´umero de carros estacionados, una persona puede encontrar su propio auto. Dentro

de la clasificaci´on, lo importante es la habilidad para ignorar las variaciones dentro de una

categor´ıa, mientras las variaciones entre categor´ıas son enfatizadas. Por otro lado, durante

la identificaci´on de objetos, las variaciones a trav´es de los objetos de la misma categor´ıa se

enfatizan.

En visi´on artificial estas dos tareas, clasificaci´on e identificaci´on de objetos, son

con-sideradas como tareas distintas, mientras biol´ogicamente recaen en el mismo proceso y los

mismos escenarios de generalizaci´on (Ullman y Power, 1997). Asimismo, en visi´on artificial,

la identificaci´on viene antes de la clasificaci´on, mientras que biol´ogicamente estas dos tareas

se realizan en orden inverso (Roschet al., 1976).

2.2 Teor´ıas de reconocimiento de objetos

Las teor´ıas de reconocimiento de objetos pueden ser divididas en dos grandes clases, basadas

en la representaci´on de los objetos. Estas dos clases son: teor´ıas de descripci´on estructural y

teor´ıas basadas en im´agenes.

2.2.1 Teor´ıas de descripci´on estructural

La suposici´on b´asica de esta serie de teor´ıas, es que un objeto puede ser dividido en

com-ponentes invariantes tridimensionales (3D). Para el reconocimiento de un objeto dado, sus

componentes 3D y configuraciones son extra´ıdos, si esta representaci´on concuerda con una

que est´e en la memoria, entonces el objeto dado es reconocido de una manera invariable a

la vista. Uno de los primeros trabajos bajo este enfoque fue hecho por Marr y Nishihara

(Marr y Nishihara, 1978). En este enfoque, la representaci´on del modelo 3D de un objeto, se

construye de las propiedades visuales del objeto, y entonces se empareja con representaciones

3D de objetos, que han sido guardadas previamente en memoria.

La figura1ilustra la organizaci´on de la informaci´on de forma en una descripci´on de modelo

(20)

la caja y la disposici´on de sus ejes de componentes mostrados en el lado derecho. Adem´as

algunos ejes de componente tienen modelos 3D asociados con ellos y esto est´a indicado de

forma que las cajas se sobreponen. La disposici´on relativa de ejes de componente de cada

modelo, sin embargo, se muestra impropiamente desde que debiera ser un sistema de objeto

centrado mas bien que la proyecci´on centrada del observador usada aqu´ı. Las caracter´ısticas

importantes de este tipo de organizaci´on son:

(i) Cada modelo 3D es una unidad autocontenida de informaci´on de forma y tiene una

complejidad limitada

(ii) La informaci´on aparece en un apropiado contexto de forma para reconocimiento (la

disposici´on de un dedo es lo m´as estable cuando se especific´o relativo a la mano que lo

contiene)

(iii) La representaci´on puede ser manipulada flexiblemente. Este enfoque limita el alcance

de la representaci´on, sin embargo, desde que sea solamente ´util para formas que han

(21)

Humano

Brazo

Antebrazo

Mano

Figura 1: Descripci´on esquem´atica del proceso de reconocimiento de objetos.Imagen tomada de (Marr, 1976).

El reconocimiento de objetos se logra en tres niveles. En el primero, se encuentra el

eje principal del objeto. En el siguiente nivel, los ejes de sub-objetos m´as peque˜nos son

identificados. Y, en el ´ultimo paso, el emparejamiento se realiza entre los componentes y un

modelo 3D almacenado del objeto.

La ventaja del modelo, es que mantiene solamente una representaci´on can´onica del

ob-jeto. Esto, es te´oricamente suficiente para reconocer el objeto desde cualquier punto de

vista, lo cual ahorra memoria. Uno de los principales problemas con estos modelos, es la

extracci´on de conos 3D de una imagen dada. Marr y Nishihara propusieron que los conos

3D se pueden obtener del primer eje del objeto. Para tal fin, sugirieron que el contorno del

objeto puede usarse para encontrar el eje principal del objeto, y utilizar este eje de partes

3D y su configuraci´on espacial en el objeto podr´ıa ser descrita. Esta descripci´on es entonces

usada para emparejar con las descripciones almacenadas en la memoria para el pr´oposito de

(22)

Siguiendo a Marr y Nishihara, Biederman (Biederman, 1987) present´o un modelo conocido

como “Reconocimiento por Componentes”. Introdujo dos nuevos conceptos, que incrementan

la practicidad de las teor´ıas estructurales. Primero, el n´umero de primitivas volum´etricas se

fijaron a 36 o menos, nombrados como geones. Segundo, se propuso que los geones podr´ıan

obtenerse de propiedades no accidentales de las im´agenes. Estas propiedades no accidentales

son las configuraciones de forma, y esto no ocurre por casualidad (Lowe, 1987). Por ejemplo,

hay mayor posibilidad que las orillas ortogonales de un punto en la imagen representen una

esquina de un cubo, en lugar de un resultado de ocurrencia aleatoria de ruido.

2.2.2 Teor´ıas basadas en im´agenes

Los enfoques basados en im´agenes, rechazan la idea de representar en 3D la forma de los

objetos. Estas teor´ıas argumentan que la visualizaci´on en dos dimensiones (2D) de los

obje-tos, se almacena en memoria y entonces, el proceso de reconocimiento consiste en comparar

el objeto dado (visualizaci´on bidimensional) con las visualizaciones 2D previamente

almace-nadas. Los modelos basados en im´agenes (Fukushima, 1980; Poggio y Edelman, 1990; Turk

y Pentland, 1991; Wallis y Rolls, 1997) sugieren que los objetos sean representados por una

colecci´on de fotos, obtenidas por un observador mientras ve los objetos. En estos modelos,

reconocer un objeto, requiere de un mecanismo que tome la percepci´on actual del objeto y la

empareje con las vistas almacenadas. Una ventaja de los modelos es que no requieren

repre-sentaciones 3D complejas (Poggio y Edelman, 1990; Ladeset al., 1993). Las teor´ıas basadas

en im´agenes son una consecuencia directa de dos desarrollos importantes. En el primero, se

demostr´o en muchos estudios de comportamiento y neurociencia (Tarr y Pinker, 1989), que

el reconocimiento de objetos es altamente sensible a las condiciones de la visualizaci´on. En el

segundo, algunos modelos computacionales (B¨ulthoff et al., 1995; Poggio y Edelman, 1990)

mostraron su habilidad, reconociendo la vista novedosa del objeto, por el aprendizaje con

im´agenes del mismo objeto. Estos modelos no aprenden representaciones 3D del objeto, pero

almacenan diferentes ´angulos de visi´on del objeto.

Una pregunta surge cuando se utilizan las propiedades superficiales de las im´agenes,

en los modelos basados en ellas: ¿cu´al deber´a ser la relaci´on espacial entre las superficies

(23)

sugiere que la representaci´on deber´ıa mantener una relaci´on espacial 2D completa, as´ı como

en las im´agenes (Poggio y Edelman, 1990). Este punto conduce a una representaci´on de una

plantilla r´ıgida. En el otro punto de vista, la relaci´on espacial entre caracter´ısticas se ignora,

y conlleva a una colecci´on desordenada de caracter´ısticas (Mel, 1997). Estos dos puntos de

vista extremos, tienen sus fortalezas en algunas condiciones peculiares, pero no se consideran

como algo general debido a su naturaleza inflexible.

Debido a desventajas obvias de los dos enfoques te´oricos arriba mencionados (estructural

y basado en im´agenes), usualmente se prefiere un enfoque h´ıbrido, el cual utiliza las

carac-ter´ısticas relacionadas unas con otras a lo largo de una jerarqu´ıa, y entonces se forma una

estructura multinivel del objeto. Es un enfoque h´ıbrido en el sentido que, las caracter´ısticas

b´asicas son caracter´ısticas locales dependientes en vista 2D, mientras estas caracter´ısticas

est´an relacionadas espacialmente unas con otras, en una jerarqu´ıa como lo es en los modelos

de descripci´on estructural.

2.3 Biolog´ıa del sistema visual humano

Biol´ogicamente, el proceso de reconocimiento de objetos empieza tan pronto como la luz se

refleja o se emite desde un objeto y entra al ojo del primate. La luz contiene informaci´on

acerca del objeto. Esta llega a la retina del ojo, y continua hasta la parte del cerebro

responsable del reconocimiento de objetos. La informaci´on visual de ambos ojos, transferida

por los nervios ´opticos, se re´une en el quiasma ´optico. A partir de aqu´ı, la informaci´on toma

una de las dos v´ıas de transferencia para llegar a dos partes diferentes de procesamiento del

cerebro. Alrededor del noventa por ciento de la informaci´on visual se transmite al n´ucleo

genicular lateral a trav´es de la ruta retino-genicular, y el diez por ciento de la informaci´on

llega a la colicula superior a trav´es de la ruta colicular.

Desde el n´ucleo genicular lateral, la informaci´on se transfiere a la corteza visual primaria

(V1). Cuando la informaci´on visual llega a la V1, esta no es la misma cuando entraba por

la retina. De este modo antes de la corteza visual, alg´un pre-procesamiento de la imagen

toma lugar. Ya en este previa escena de procesamiento puede ser dividida en dos rutas de

(24)

se observa en la figura 3. El procesamiento en la ruta dorsal, ubica y enfoca los objetos en el

espacio, y el procesamiento en la ruta ventral identifica y clasifica los objetos.

2.3.1 La retina

La retina es parte del cerebro, conectada apropiadamente a trav´es de un nervio ´optico. Es

responsable de la formaci´on de im´agenes, esto es, el sentido de la vista (Hubel, 1988). En

cada retina hay alrededor de 120 millones de foto-receptores (bastones y conos) que liberan

mol´eculas neurotransmisores en una tasa que es la m´axima en oscuridad, y decrece de forma

logar´ıtmica, con el incremento de la intensidad de luz. Esta se˜nal es entonces transmitida a

una cadena local de c´elulas bipolares y c´elulas ganglionares.

Hay alrededor de 1 mill´on de c´elulas ganglionares en la retina, y sus axones forman el

nervio ´optico. Ah´ı son, por tanto, alrededor de 100 foto-receptores por c´elula ganglionar;

sin embargo, cada celula ganglionar recibe se˜nales desde un campo receptivo en la retina,

aproximadamente un area circular que cubre miles de foto-receptores.

Entre los foto-receptores y las c´elulas bipolares, hay una capa horizontal de c´elulas

(lla-madas c´elulas horizontales) ligadas en conjunto, de modo que, el potencial de cada una es un

promedio pesado del potencial de su vecino. Cada c´elula bipolar recibe una entrada desde un

foto-receptor y una c´elula horizontal, produciendo una se˜nal que es proporcional al logaritmo

de la diferencia entre las se˜nales producidas por las otras dos c´elulas. Como resultado, las

´areas grandes con iluminaci´on uniforme producen se˜nales muy d´ebiles, y ´areas con cambios

en la iluminaci´on, resulta en se˜nales fuertes. Esto es, la retina detecta esencialmente

varia-ciones de brillo. Cuando las c´elulas horizontales tienen una respuesta relativamente lenta, y

un foto-receptor detecta un objeto en movimiento, estas a´un tienen informaci´on acerca de la

posici´on previa del objeto. De esta manera, la se´nal de salida de las c´elulas bipolares

(de-spu´es de pasar a trav´es de la capa de la c´elula amacrina a las c´elulas ganglionares) contienen

informaci´on muy ´util para la detecci´on de movimiento.

Una imagen se produce por la excitaci´on de los bastones y conos en la retina. La

ex-citaci´on es procesada por varias partes del cerebro que trabajan en paralelo para formar una

(25)

Los bastones, que son mucho m´as numerosos que los conos, son responsables de la visi´on

con luz tenue y saturada en niveles de luz de d´ıa y no contribuyen a la formaci´on de la

imagen. Los conos no responden a la luz tenue, pero son los responsables de la habilidad de

ver detalles finos, y para la visi´on a color (Hubel, 1988).

En los humanos, hay tres tipos de conos sensibles a tres diferentes espectros, resultando

en una visi´on a color tricromatica (Hofer et al., 2005). Los conos son convencionalmente

etiquetados de acuerdo al orden del pico de longitud de onda de sus espectros sensibles: tipos

de cono cortos, medianos, y largos (Wyszecki y Stiles, 2000). Estos tres tipos no corresponden

bien a colores particulares como se conoce, pero las longitudes de onda corta, mediano y largo

son consideradas como una representaci´on de los colores azul, verde y rojo, respectivamente

(Neitz y Jacobs, 1990; Hoferet al., 2005). Es la falta de uno o m´as de los sub-tipos de conos

que causa a los individuos en tener deficiencias en la visi´on a color u otros tipos de daltonismo

(John, 1798). Estos individuos no son ciegos a objetos de cierto color, pero experimentan

la inhabilidad de distinguir entre dos grupos de colores que pueden ser distinguidos por la

gente con visi´on normal.

Las c´elulas ganglionares de retina tienen dos tipos de respuesta, dependiendo del campo

receptivo de la c´elula: c´elulas encendidas y c´elulas apagadas. Estos campos receptivos

com-prenden una regi´on central aproximadamente circular, donde la luz tiene un efecto en el

disparo de la c´elula, y un anillo alrededor de este. En las c´elulas encendidas, un incremento

en la intensidad de luz en el centro del campo receptivo causa la tasa de disparo. En las

c´elulas apagadas, esta decrece. En el modelo linear, esta respuesta perfil es bien descrita por

una diferencia de Gaussianas (DoG1) y es la base para muchos algoritmos de detecci´on de

orillas. Adem´as de estas diferencias simples en las c´elulas ganglionares, estas tambi´en est´an

diferenciadas por la sensibilidad crom´atica y el tipo de suma espacial que emplean (Hubel,

1988). Al respecto, la se˜nal visual transfiere al cerebro v´ıa el sistema visual, la retina est´a

verticalmente dividida en dos: la mitad temporal y la mitad nasal, como se ve en la figura2.

Los ejes desde la mitad nasal cruzan el cerebro en el quiasma ´optico para unirse con los ejes

desde la mitad temporal de el otro ojo antes de alcanzar el n´ucleo geniculado lateral (NGL).

1

(26)

Ojo derecho izquierdo Ojo Mitad nasal temporal Mitad Quiasma optico optico Tracto Nucleo genicular lateral Nucleo del nervio abductor oculomotor nervio Nucleo del Nucleo del nervio troclear Nucleo geniculado medio Coliculo superior Pulvinar Nervio optico cruzadas Fibras Fibras no−cruzadas Hemisferio izquierdo Hemisferio derecho

de la corteza cerebral lobulos occipitales

primarias en Areas visuales

Figura 2: El sistema nervioso ´optico. Imagen adaptada de (Filipe y Alexandre, 2013)

Aunque hay m´as de 120 millones de c´elulas recipiente en la retina, hay solamente 1.2

millones de fibras (ejes) en el nervio ´optico, as´ı una gran cantidad de pre-procesamiento es

realizado dentro de la retina. La fovea produce la informaci´on m´as precisa. A´un as´ı, esta

ocupa cerca del 0.01% del campo visual (menos de 2 grados de ´angulo de visi´on) cerca del

10% de ejes en el nervio ´optico est´a dedicado a esto. La resoluci´on limite de la fovea fue

determinada en alrededor de 10,000 puntos. La capacidad de informaci´on es estimada en

500,000 bits por segundo, descolorida, o cerca de 600,000 bits por segundo, con color.

La retina, a diferencia de la c´amara, no solo manda una imagen al cerebro. Esta

espa-cialmente codifica (comprime) la imagen para ajustarla a la capacidad limitada del nervio

´optico. La compresi´on es necesaria porque hay 100 veces m´as c´elulas foto-receptoras como

c´elulas ganglionares, como se mencion´o anteriormente. En la retina, la codificaci´on espacial

se hace por las estructuras de centro envolvente implementadas por c´elulas bipolares y

gan-glionares. Hay dos tipos de estructuras de centro envolvente en la retina: centros-encendidos

(27)

con peso negativo. Los centros-apagados usan exactamente lo opuesto. El peso positivo, es

sabido que es mejor como excitador, y el negativo como inhibidor (Hubel, 1988).

Estas estructuras de centro envolvente no son f´ısicas, en el sentido que estas puedan

ser vistas como muestras de tejido de tinci´on y al examinar la anatom´ıa de la retina. Las

estructuras de centro envolvente son l´ogicas (matem´aticamente abstracto) en el sentido que

dependen de la fuerza de conexi´on entre c´elulas bipolares y ganglionares. Se cree que la

fuerza de conexi´on entre c´elulas depende en el n´umero y tipos de canales embebidos ionicos

en la sinapsis entre c´elulas bipolares y ganglionares. Kuffler, en los 50, fue el primero en

empezar a entender estas estructuras de centro envolvente en la retina de los gatos (Hubel,

1988).

Estas estructuras de centro envolvente son matem´aticamente equivalente a los algoritmos

de detecci´on de orillas, usados por los programadores de computadora para extraer o resaltar

las orillas de una imagen. As´ı, la retina desarrolla operaciones en la orilla de los objetos

dentro del campo visual. Despu´es la imagen es espacialmente codificada por las estructuras

de centro envolvente, la se˜nal es enviada a trav´es del nervio ´optico (via los ejes de c´elulas

ganglionares) atravesando el quiasma ´optico al NGL.

2.3.2 N´ucleo geniculado lateral

El NGL es el centro de emisi´on primaria para la informaci´on primaria recibida de la retina, y

se encuentra dentro del t´alamo. El n´ucleo geniculado lateral recibe informaci´on directamente

de las c´elulas ganglionares retinales via el trayecto ´optico y desde el sistema de activaci´on

reticular (SAR). SAR es un ´area del cerebro responsable para regular excitaci´on (estado

fisiol´ogico y psicol´ogico de estar despierto o reactiva a los est´ımulos) y transiciones

dormir-despertar). Las neuronas en el NGL envia sus ejes a trav´es de la radiaci´on ´optica, un ruta

directa a la corteza visual primaria. En los mamiferos, las dos rutas m´as fuertes que conectan

el ojo al cerebro son aquellas que est´an dise˜nadas para NGLd (parte dorsal del NGL en el

talamo) y para el coliculo superior (CS) (Kleege, 1999). En humanos y monos, el NGL

es normalmente descrito como tener seis capas distintas. Las dos capas interiores, 1-2, son

(28)

parvo-celulares (Carlson, 2012).

Ambos, el hemisferio derecho y el hemisferio izquierdo del NGL reciben entradas de cada

ojo. Sin embargo, cada NGL recibe informaci´on desde solamente la mitad del campo visual.

Esto se debe a los ejes de c´elulas ganglionares de la mitad interna de la retina (lado nasal),

cruzando al otro lado del cerebro a trav´es del quiasma. Los ejes de las c´elulas ganglionares de

la mitad externa de la retina (lados temporales) recae en el mismo lado del cerebro. As´ı, el

hemisferio derecho recibe informaci´on visual desde el campo visual izquierdo, y el hemisferio

izquierdo recibe informaci´on visual del campo visual derecho (Nichollset al., 2001). El NGL

recibe informaci´on de entrada de algunas fuentes, incluyendo la corteza, y env´ıa su salida a

la corteza. El NGL recibe alguna entrada del trayecto ´optico. Los ejes que dejan el NGL van

a la corteza visual V1. Ambos, tanto capas magnocelulares 1-2 y las capas parvocelular 3-6

env´ıan sus ejes a la capa 4 de V1. Los estudios que involucran personas ciegas, ha sugerido

que las proyecciones del NGL no solamente viajan a la corteza visual primaria, sino que

tambi´en a ´areas corticales V2 y V3 (Schmid et al. 2010).

La funci´on precisa del NGL es desconocida. Se ha mostrado que mientras la retina

de-sarrolla decorrelaci´on espacial a trav´es de la inhibici´on centro envolvente, el NGL desempe˜na

decorrelaci´on temporal (Dong y Atick, 1995). Sin embargo, hay ciertamente mucho por hacer.

Experimentos recientes en humanos, con imagen de resonancia magn´etica funcional, hallaron

que tanto la atenci´on espacial y movimientos bruscos del ojo pueden modular la actividad

en el NGL (Sylvester et al., 2005).

2.3.3 La corteza visual

La corteza visual del cerebro es la parte de la corteza cerebral responsable del procesamiento

de informaci´on visual. Se localiza en el l´obulo occipital, atr´as del cerebro. El termino corteza

visual se refiere a la corteza visual primaria (tambi´en conocida como corteza estriada o V1)

y ´areas estriadas de la corteza visual como V2, V3, V4 y V5. La corteza visual primaria

es anat´omicamente equivalente al ´area de Brodmann 17 o BA17. Las ´areas de la corteza

(29)

Ruta Ventral

Ruta Dorsal

Figura 3: Las rutas dorsal y ventral en el cerebro humano. Imagen adaptada de http://goo.gl/cKF8LK.

En la figura3se muestra las dos rutas de procesamiento principal en el cerebro. Mientras

la ruta ventral implementa el reconocimiento de objetos, la ruta dorsal es responsable del

procesamiento de las propiedades espaciales de los objetos y las acciones que gu´ıan a los

objetos. La ruta ventral se compone de una serie de ´areas como V2, V4 e Infotemporal

(Felleman y Van Essen, 1991). Y, la ruta dorsal se compone de ´areas de procesamiento

visual del ´area medio temporal (MT o V5) y la corteza parietal posterior (PP).

Como se ve en la figura 4, la primera parte de la corteza visual es el ´area V1. Esta

´rea, entre otras cosas, presenta sensibilidad en orillas, rejillas (barras con orientaciones) y

longitudes de los est´ımulos (Reid y Alonso, 1995). Hay tres clases de c´elulas principales en

V1, llamadas c´elulas simples, c´elulas complejas y c´elulas hipercomplejas (Hubel y Wiesel,

1959). Las c´elulas simples detectan orillas y lineas, las c´elulas complejas detectan lineas y

orillas con un poco de invariabilidad espacial, y las c´elulas hipercomplejas detectan longitud.

(30)

es considerada sensible a ´angulos o esquinas (Plebe, 2007) y bordes fronterizos ilusorios (Von

der Heydtet al., 1984). La informaci´on de V2 se env´ıa a V4, la cual tiene cierta preferencia

por caracter´ısticas complejas como formas y contornos (Pasupathy y Connor, 1999; David

et al., 2006).

La siguiente ´area de procesamiento en la jerarqu´ıa visual ventral, es la corteza

inferotem-poral la cual se considera la ultima ´area de procesamiento. Las neuronas en esta ´area son

sensibles a formas complejas, como rostros, y tiene representaciones invariantes a la posici´on,

tama˜no, etc. El procesamiento de informaci´on en el cerebro depende en gran medida de las

conexiones y los patrones de conectividad a trav´es de las diferentes ´areas de procesamiento.

La conectividad y procesamiento por capas en una sola direcci´on, puede resultar en pocos

milisegundos de procesamiento de informaci´on, y contribuir a una clasificaci´on r´apida de

objetos (Potter, 1974; Treisman y Gelade, 1980; Wolfe y Bennett, 1996).

Muchos fen´omenos visuales se pueden explicar en t´erminos de procesamiento y

conectivi-dad en un solo sentido, o sea solo hacia adelante. Un concepto importante en el sistema de

visi´on biol´ogico es el campo receptivo. De acuerdo a Levine y Shefner (Levine y Shefner,

2000) un campo receptivo (CR) es un ´area donde la estimulaci´on conduce a la respuesta

de una neurona sensorial particular. Poner simplemente el CR de una neurona, constituye

todas las conexiones de entrada sensorial a la neurona. Una neurona llega a sensibilizarse

a un estimulo en particular a trav´es del aprendizaje. Los campos receptivos juegan un rol

(31)

Figura 4: La conectividad conocida de la corteza visual.

2.4 Modelos computacionales biol´ogicamente inspirados para reconocimiento

Un n´umero de modelos inspirados por la biolog´ıa del sistema visual humano ha sido propuesto

y usado para simular y explicar la funcionalidad del mismo (Riesenhuber y Poggio, 1999;

Fukushima, 1980; LeCun et al., 2004; Clemente et al., 2013) as´ı como para ser usado en

aplicaciones de reconocimiento de objetos. Estos modelos est´an basados en los resultados

experimentales de Hubel y Wiesel (Hubel y Wiesel, 1998).

Dos caracter´ısticas son la clave para el ´exito de los modelos jer´arquicos. Primero, el

aumento gradual y paralelo de complejidad de caracter´ısticas y el tama˜no del campo

recep-tivo, como se encuentra en el sistema visual, es crucial evitar una explosi´on combinatoria del

n´umero de unidades en el sistema por un lado, o habilidad discriminatoria insuficiente por el

otro lado. Aunque el rango de invariabilidad es menor en niveles bajos, as´ı requiere muchas

c´elulas para cubrir el rango requerido de escalas y posiciones, solamente un peque˜no

(32)

neuronas se convierten en un mayor n´unero de caracter´ısticas m´as complejas, las neuronas

muestran un mayor grado de invariabilidad, as´ı requieren menos c´elulas convertidas a la

misma caracter´ıstica en diferentes posiciones y escalas. Segundo, en los modelos jer´arquicos,

un conjunto redundante de rasgos m´as complejos en niveles m´as altos del sistema se

con-struye de rasgos m´as simples. Estas caracter´ısticas complejas son tolerantes a deformaciones

locales como resultado de propiedades de invariabilidad de aferentes. A lo que respecta, est´an

relacionadas a arquitecturas de reconocimiento basadas en arboles de caracter´ısticas que

en-fatizan composicionalidad. El resultado final es un diccionario de caracter´ısticas excesivo de

lo requerido.

La mayor´ıa de los modelos bio-inspirados conforman los siguientes cuatro principios:

(a) Estructura Jer´arquica

(b) Incrementan el tama˜no de los campos receptivos que est´an m´as altos en la jerarqu´ıa

(c) Incrementan la complejidad de caracter´ısticas y representaciones invariantes m´as altas

en la jerarqu´ıa

(d) Aprenden en niveles m´ultiples a lo largo de la jerarqu´ıa

La mayor´ıa de los modelos bio-inspirados tienen una arquitectura de conectividad en un

solo sentido, es decir, la informaci´on solo se procesa en un sentido, esto es, sin regresar a

un ´area ya recorrida. Uno de los modelos bio-inspirados principales con una arquitectura de

conectividad en un solo sentido se llama Neocognitron, una red neuronal jer´arquica

multi-capas propuesta por Fukushima (Fukushima, 1980). Esta red es capaz de reconocimiento

robusto de objetos. La neocognitron es b´asicamente una red con arquitectura de conectividad

solo hacia adelante, con muchas conexiones fijas y variables. Las primeras dos capas del

neocognitron son la capa de entrada y la capa de extracci´on de contraste. La capa de entrada

corresponde a los foto-receptores de la retina, y la capa de extracci´on de contraste, juega el

papel de las c´elulas de centros-encendidos y centros-apagados en el n´ucleo geniculado lateral

(NGL) del cerebro.

El resto de las capas del modeloneocognitron est´an organizadas en pares, donde la primera

(33)

respecti-vamente, y se nombran despu´es de las c´elulas simples y complejas de la corteza visual. Las

capas S y C est´an divididas en planos S y C, donde cada uno de los planos S y C se componen

de arreglos de dos dimensiones de c´elulas S y C. Todas las c´elulas dentro de un plano celular

tienen conexiones similares de la capa anterior, pero desde ubicaciones espaciales adyacentes,

entonces todas estas c´elulas buscan la misma caracter´ıstica pero de ubicaciones adyacentes.

Las c´elulas S son c´elulas extractoras de caracter´ısticas, y preceden esta extracci´on de

caracter´ısticas a la capa C. Cada c´elula S tiene conexiones con un grupo de c´elulas C en la

capa previa, lo cual constituye el campo receptivo de esta c´elula S particular. Las

conex-iones de c´elulas S son variables y son modificadas durante el proceso de aprendizaje. El

aprendizaje determina la naturaleza de las caracter´ısticas extra´ıdas por las c´elulas S. Estas

caracter´ısticas son orillas y lineas locales detectadas en las capas previas, lo cual las convierte

en caracter´ısticas globales m´as complejas, como contornos y formas en las capas m´as altas.

Similarmente, las c´elulas C tienen conexiones con la capas S que la preceden. Estas

conex-iones son fijas, y no se pueden modificar en el aprendizaje. Cada c´elula C recibe la entrada

de un grupo de c´elulas S que extraen las mismas caracter´ısticas pero con un ligero cambio

de posici´on. La c´elula C responde cuando se activa una c´elula S en su campo receptivo. Si

el estimulo y consecuentemente la caracter´ıstica cambia su posici´on, otra c´elula S se activa.

Entonces la c´elula C ahora responder´a a esta c´elula S. De esta forma la c´elula C incrusta un

cambio de tolerancia de error en la red, la cual resulta en invariaci´on a cambio de posici´on

en la red. Otro tipo de c´elula, la c´elula V, tiene un papel ihnibitorio. Por cada c´elula S hay

una c´elula V que la acompa˜na, que esta conectada a la c´elula S con una variable de conexi´on

inhibitoria. La c´elula V recibe su entrada excitadora del mismo grupo de c´elulas C con las

que la c´elula S esta conectada. La inhibici´on inyectada a una c´elula S de una c´elula V, es el

promedio de todas las entradas excitadoras recibidas por la c´elula V.

La neocognitron puede ser entrenada por aprendizaje supervisado al igual que no

super-visado. El m´etodo de aprendizaje no supervisado de la neocognitron es menos exitoso, pero

es m´as biol´ogicamente plausible que el m´etodo de aprendizaje supervisado. El aprendizaje

supervisado se desarrolla de una forma “abajo a arriba”, esto es, desde la entrada a la salida.

Cada plano S tiene asignada una caracter´ıstica para aprender durante el entrenamiento. La

(34)

se actualiza con la regla de aprendizaje de Hebbian.

Figura 5: Extracci´on jer´arquica de caracter´ısticas. Imagen adaptada de http://goo.gl/nTuupQ.

El peso compartido tambi´en esta constantemente desarrollado durante el proceso, de tal

forma que todas las c´elulas dentro del plano celular, tienen sus conexiones en la misma

distribuci´on espacial. De esta manera todas las c´elulas en el plano celular son sensibles a

caracter´ısticas especificas. En el aprendizaje supervisado, adem´as del peso compartido, el

principio de “Ganador Toma Todo”, es el mecanismo b´asico para una auto-organizaci´on de

la red. Durante el entrenamiento, las conexiones variables de las c´elulas S son modificadas

acorde a su activaci´on en respuesta a la entrada. Por ejemplo, una c´elula S recibe una entrada

excitadora de un grupo de c´elulas C precedentes, as´ı como entradas inhibitorias desde una

c´elula V. Cuando un estimulo es presentado y las c´elulas S se activan, la c´elula S la cual

recibe la activaci´on m´axima es considerada la ganadora y consecuentemente su fuerza en

conexi´on se incrementa. De esta manera es dicho que la c´elula S desarrolla su peso para una

caracter´ıstica particular. Esta c´elula S act´ua como una semilla y todas las otras c´elulas S en

el mismo plano tambi´en fortalecen su conexi´on de la misma forma que esta c´elula S. Cuando

(35)

la c´elula V env´ıa una entrada inhibitoria fuerte. De esta manera el plano celular S llega a

ser sensible para una caracter´ıstica particular en posiciones diferentes. Entonces, despu´es

del entrenamiento, los diferentes planos celulares S se vuelven sensibles a caracter´ısticas

diferentes.

Figura 6: Ejemplo del proceso de la neocognitron. Imagen extr´ıda de http://goo.gl/DsEOqI.

En la figura 6, se muestra una red de neocognitron entrenada para el reconocimiento de

caracteres. En la red completa, con las capas alternas de c´elulas S y c´elulas C, el proceso

de extracci´on de caracter´ısticas por las c´elulas S y la tolerancia lograda por las c´elulas C es

repetido. Durante el proceso, las caracter´ısticas locales extra´ıdas en etapas de bajo nivel,

(36)

Figura 7: Modelo est´andar de reconocimiento de objetos por Riesenhuber y Poggio. Imagen adaptada de http://goo.gl/fl86cM.

Un modelo jer´arquico importante, fue propuesto por Riesenhuber y Poggio

(Riesenhu-ber y Poggio, 1999). Introduce una estructura jer´arquica con la idea de una jerarqu´ıa de

funci´on linear simple. Este modelo esta basado en el hecho, de que los modelos 3D de

reconocimiento de objetos, no tienen una prueba te´orica solida. Sino que este modelo se

respalda en experimentos neurofisiol´ogicos y psicof´ısicos que proporcionan un fuerte apoyo

para representaciones basadas en im´agenes. Las dos ideas principales del modelo son:

1. La operaci´on MAX proporciona invariabilidad en varias etapas de la jerarqu´ıa

2. La red de funci´on de base radial aprende una tarea especifica en base a un conjunto de

unidades de c´elulas sintonizadas a vistas de ejemplo

En la figura 7 se observan las seis capas de procesamiento del modelo HMAX: Entrada,

S1, C1, S2,C2 y UVC (Unidades de vista combinada). En la capa S1, las lineas caracter´ısticas

orientadas en ´angulos diferentes se extraen desde la imagen de entrada usando filtros

(37)

c´elulas simples de la corteza visual. En la capa C1 las caracter´ısticas ´optimas se integran

desde la capa S1 utilizando la operaci´on MAX. Esto significa que la actividad de la unidad

C1 esta determinada por la salida mas fuerte de la S1. Las unidades S2 utilizan funciones

gaussianas para extraer caracter´ısticas m´as complejas. Las unidades S2 se pueden considerar

el diccionario de caracter´ısticas del sistema. Las unidades C2 est´an completamente

conec-tadas con la capa S2 previa, y es donde se implementa la integraci´on de las caracter´ısticas

m´as fuertes. Las unidades de la ultima capa, llamada UVC, son selectivas para una entrada

particular en un ´angulo de visi´on especifico. La ´unica conexi´on en donde el aprendizaje

ocurre es desde C2 a UVC. Este modelo fue aplicado satisfactoriamente al modelado de las

respuestas de las neuronas V4 e IT.

Figura 8: Modelo de reconocimiento de objetos. Imagen adaptada de http://goo.gl/fl86cM

Otro modelo jer´arquico importante, fue propuesto por Serre y sus colaboradores (Serre

et al., 2005a; Serre, 2006). Se basa en el paradigma de un r´apido reconocimiento de objetos.

Tiene una arquitectura de conectividad hacia adelante, y cuenta los primeros milisegundos

del proceso visual en el cerebro humano. El modelo extrae caracter´ısticas, y despu´es las usa

(38)

Como se ve en la figura8, el modelo consiste de cuatro capas de unidades computacionales,

donde las unidades simples S alternan con unidades complejas C. Las unidades S filtran

sus entradas con una funci´on de sintonizaci´on campana para incrementar la selectividad.

Las unidades C re´unen sus entradas a trav´es de una operaci´on MAX, as´ı se incrementa la

invariabilidad. En las unidades S1 se aplica a la imagen de entrada una bater´ıa de filtros

de Gabor, con 4 orientaciones y 16 escalas. En la siguiente etapa de C1, se logra tolerancia

a la posici´on, y la variaci´on al tama˜no se obtiene mediante una operaci´on de agrupaci´on de

m´aximos por cada unidad de la capa C1, entonces el m´aximo de cada banda sobre la posici´on

y tama˜no se toma. Para el entrenamiento, parches de caracter´ısticas de diferentes tama˜nos

y cuatro posibles orientaciones se extraen de im´agenes de entrenamiento. Las unidades S2

utilizan un tipo de funci´on de base radial (FBR) para activaci´on. Las unidades S2 representan

una distancia euclidiana de las caracter´ısticas aprendidas C1 a las caracter´ısticas aprendidas

de las unidades S2. De esta forma se obtienen los mapas S2. En C2 la actividad de m´aximos

se obtiene de la posici´on y escala, para lograr invariabilidad. Durante el aprendizaje, la

representaci´on de caracter´ısticas en las unidades S2 es calculada. En la etapa de clasificaci´on

se extraen caracter´ısticas de C1 y C2 de la imagen de entrada y clasificada por un clasificador

linear simple.

2.5 Modelos de la corteza visual en GPU

Convenientemente, y sin embargo, el cerebro es un sistema masivamente paralelo

(Mount-castle, 1997). M´as concretamente, la corteza cerebral consiste de un n´umero relativamente

peque˜no de regiones, en donde cada una contiene un gran n´umero de micro-columnas

cor-ticales, de las cuales operan en paralelo y env´ıan informaci´on hacia arriba, hacia abajo, y

lateralmente dentro de una jerarqu´ıa de capas (Serre et al., 2005a; George, 2008). Adem´as,

como sistema biol´ogico cuenta con un alto grado de redundancia.

Examinando estas caracter´ısticas, del modelo de la corteza visual, la mayor´ıa de los

algoritmos de agrupamiento y algunos m´as simples usados en modelos corticales, consisten

en un vector aritm´etico, o vector descriptor. As´ı, el enfoque de ejecuci´on basado en la

simulaci´on modelada de capas corticales en la GPU, requiere que espere hasta que todas las

(39)

el ancho de banda de la memoria. Por lo tanto, se puede concluir que el computo en la GPU

de prop´osito general es bien recibida por los modelos corticales.

Un sistema cortical basado en la GPU, es el CNS2 o simulador de redes corticales, que

se desarroll´o en 2009. Este sistema est´a escrito en Matlab, por lo que el programa necesario

para usarlo no es gratuito o de c´odigo libre. El CNS tambi´en recae en NVIDIA, que es

propietario de la arquitectura CUDA, por eso no podr´ıa correr en GPUs ATI.

El sistema CNS, autom´aticamente desarrolla un n´umero considerable de transferencias

de memoria, de la CPU a la GPU, que el usuario no controla directamente, lo cual puede

ser problem´atico en lo que a ancho de banda de la memoria concierne. Esto es en cuanto a

tarjetas de nivel consumidor se refiere, las cuales son aproximadamente un orden de magnitud

m´as baratas que las tarjetas especializadas, pero tienen un ancho de banda de memoria m´as

pobre de CPU a GPU en un nivel dado de poder computacional. Tambi´en, el CNS no soporta

operaciones de punto flotante de doble precisi´on a´un cuando se requiere por el modelo (Poggio

et al., 2010).

Finalmente, el sistema impone una variedad de suposiciones en la estructura del modelo

que pueden limitar la generalidad de los modelos que uno tratara de implementar, la

comple-jidad y detalles no se dar´an en gran medida en esta tesis. De forma breve, para asi resumir,

el sistema a grandes rasgos supone que c´elulas individuales tienen la misma estructura de

conectividad, que las regiones son uniformes y regulares, el orden de ejecuci´on sigue uno

de pocos patrones pre-configurados, y que las redes caen dentro de un peque˜no n´umero de

clases que afectan la naturaleza de estas limitaciones. Existen algunas limitaciones, pero no

impiden el funcionamiento completo del sistema. Sin embargo, CNS fu´e el primero de su

tipo, estaba sujeto a limitaciones de arquitectura de 2009, y fue dise˜nado para investigadores

que no necesitaban una generalidad completa. Los autores hacen ver que muchas de las

lim-itaciones mencionadas arriba, simplemente no pod´ıan evitarse en ese tiempo (Poggio et al.,

2010).

2

(40)

Cap´ıtulo 3. CUDA

En a˜nos recientes, la miniaturizaci´on de los circuitos integrados han producido un cambio

generalizado a la computaci´on paralela. Muy pronto todas la computadoras a la venta traer´an

procesadores multi-n´ucleos. Con la introducci´on de procesadores multi-n´ucleos, estaciones

de trabajo con 8 y 16 n´ucleos, computadoras de escritorio, incluso computadoras port´atiles,

pueden llevar a cabo computaci´on paralela, por lo que este tipo de computaci´on no queda

relegada ´unicamente a supercomputadores u ordenadores centrales enormes.

Sin embargo, los dispositivos electr´onicos tales como tel´efonos m´oviles y reproductores de

m´usica port´atiles, han empezado a incorporar capacidades de computo paralelo en un esfuerzo

por proveer funcionalidad m´as all´a que sus predecesores. Cada vez m´as y m´as, desarrolladores

de software necesitaran hacer frente a una variedad de plataformas y tecnolog´ıas de computo

paralelo de forma que provean experiencias ricas y novedosas para una base creciente de

usuarios cada vez m´as exigentes (Nickolls et al., 2008).

CUDA1 o Arquitectura Unificada de Dispositivos de C´omputo, es el nombre que se le da

a la plataforma de computo, y modelos de programaci´on paralela incorporado por la empresa

NVIDIA. Es una plataforma completa de desarrollo que explota las caracter´ısticas de las

tarjetas de v´ıdeo, atendiendo a la arquitectura especifica de estas, mediante la inclusi´on de

directrices especificas en el lenguaje de programaci´on, principalmente para C, proporcionando

una API2 (Interfaz de Programaci´on de Aplicaciones) y un ambiente en tiempo de ejecuci´on.

El hardware CUDA est´a basado en la tecnolog´ıa de GPU3 o Unidad de Procesamiento

Gr´afico. La GPU, es un t´ermino acu˜nado por NVIDIA en 1999. Alrededor de ese tiempo,

los controladores VGA4 (Arreglo Gr´afico de V´ıdeo) hab´ıan ido avanzando para soportar la

aceleraci´on de gr´aficos 2D y 3D, y la GPU introdujo una unidad de procesamiento

inte-grado para la serie de pasos en la visualizaci´on de gr´aficos, de ah´ı la necesidad del termino.

Desde entonces, las GPUs han llegado a ser m´as generales, reemplazando funciones l´ogicas y

1

Del ingl´es Compute Unified Device Architecture 2

Del ingl´es Aplication Programming Interface 3

Del ingl´es Graphics Procesing Unit 4

(41)

aritm´eticas fijas, con funcionalidad programable.

Los primeros usos de las GPUs en computo de prop´osito general, tambi´en conocida como

GPGPU5, fueron hechas explotando la programaci´on grafica de APIs, que interced´ıan con el

controlador del hardware, tal como las bibliotecas de Microsoft DirectX y el c´odigo abierto

OpenGL. La desventaja era que el usuario tenia que profundizar su conocimiento de las APIs,

y la habilidad para expresar programas en t´erminos de gr´aficos.

Para dirigir el inter´es y asuntos con la programaci´on GPGPU, NVIDIA defini´o una

ar-quitectura unificada del dispositivo, y liber´o CUDA C, una versi´on est´andar de C, con

ex-tensiones para soportar la programaci´on de GPU. El primer dispositivo con capacidad para

CUDA, representando a la capacidad v1.0 en CUDA, fue la arquitectura G80 que emergi´o en

2006. Desde entonces cada nueva arquitectura basada en CUDA ha a˜nadido caracter´ısticas,

resultando en actualizaciones de capacidad de computo, seguido por mayor soporte en CUDA

C (v.g. manejo de cifras con doble precisi´on y operaciones bit a bit) (NVIDIA, 2013).

En este capitulo se muestran las caracter´ısticas del hardware, y se describen los conceptos

del modelo de programaci´on. Esto incluye caracter´ısticas con implicaciones en el uso, as´ı como

funcionalidades especificas.

3.1 Introducci´on

El telar es una m´aquina para tejer, construido con madera o metal, en el que se colocan

unos hilos paralelos, denominados como la urdimbre, que deben sujetarse a ambos lados para

tensarlos, y mediante un mecanismo, estos hilos son elevados individualmente o en grupo,

formando una abertura denominada calada, a trav´es de la cual pasa la trama.

5

Referencias

Documento similar

En estos últimos años, he tenido el privilegio, durante varias prolongadas visitas al extranjero, de hacer investigaciones sobre el teatro, y muchas veces he tenido la ocasión

que hasta que llegue el tiempo en que su regia planta ; | pise el hispano suelo... que hasta que el

Sanz (Universidad Carlos III-IUNE): "El papel de las fuentes de datos en los ranking nacionales de universidades".. Reuniones científicas 75 Los días 12 y 13 de noviembre

(Banco de España) Mancebo, Pascual (U. de Alicante) Marco, Mariluz (U. de València) Marhuenda, Francisco (U. de Alicante) Marhuenda, Joaquín (U. de Alicante) Marquerie,

La creación del espacio europeo de datos médicos persigue el objetivo común de hacer posible la investigación biomédica facilitando el análisis conjun- to de esta

They showed that visual percepts (phosphenes) could be evoked by electrical stimulation of the visual cortex via an array of electrodes implanted on the surface of a

d) que haya «identidad de órgano» (con identidad de Sala y Sección); e) que haya alteridad, es decir, que las sentencias aportadas sean de persona distinta a la recurrente, e) que

La siguiente y última ampliación en la Sala de Millones fue a finales de los años sesenta cuando Carlos III habilitó la sexta plaza para las ciudades con voto en Cortes de