34
E SCOLA T ECNICA S UPERIOR D ’E NGINYERS DE T ELECOMUNICACI ´ O DE BARCELONA Y MASSACHUSETTS I NSTITUTE OF T ECHNOLOGY Detecci´ on de objetos y anotaci ´ on de im´ agenes en el iPhone Autor: Dolores B LANCO Tutor: Dr. Antonio TORRALBA 25 de febrero de 2013

Deteccion de objetos y anotaci´ on de´ imagenes en el iPhone´

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

ESCOLA TECNICA SUPERIOR D’ENGINYERS DE

TELECOMUNICACIO DE BARCELONA

YMASSACHUSETTS INSTITUTE OF TECHNOLOGY

Deteccion de objetos y anotacion deimagenes en el iPhone

Autor:

Dolores BLANCO

Tutor:

Dr. Antonio TORRALBA

25 de febrero de 2013

Agradecimientos

Antes de empezar me gustarıa agradecer a todas las personas que han hecho posible que haya

hecho este proyecto.

Ellas son mi famılia y amigos, por todo su apoyo; companeros y amigos del laboratorio por

poder compartir estos meses con ellos y sobre todo al profesor Antonio Torralba por haberme

dado la oportunidad de aprender tantas cosas.

INDICE GENERAL Deteccion de objetos y anotacion de imagenes en el iPhone

Indice general

1. Introduccion 2

2. Contexto 32.1. Reconocimiento y deteccion de objetos . . . . . . . . . . . . . . . . . . . . . 3

2.2. LabelMe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.3. iOS Apps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3. LabelMe iOS App 103.1. Funcionamiento de la aplicacion . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.2. Aspectos tecnicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.2.1. Organizacion de los archivos . . . . . . . . . . . . . . . . . . . . . . . 14

3.2.2. Comunicacion entre la aplicacion y el servidor . . . . . . . . . . . . . 15

4. Detector de objetos en iOS 204.1. Captura de la imagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4.2. Calculo de los descriptores: HOG . . . . . . . . . . . . . . . . . . . . . . . . 21

4.3. Modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

4.4. Correlacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4.5. Piramide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4.6. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

4.7. Futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

5. Conclusiones 28

Dolores Blanco I

INDICE DE FIGURAS Deteccion de objetos y anotacion de imagenes en el iPhone

Indice de figuras

2.1. Sistema de reconocimiento de objetos . . . . . . . . . . . . . . . . . . . . . . 3

2.2. Representacion de calculo de los descriptores HOG. Obtenido de [1] . . . . . . 5

2.3. Esquema para obtener los descriptores HOG. Obtenido de [1] . . . . . . . . . . 5

2.4. LabelMe, herramienta de anotacion . . . . . . . . . . . . . . . . . . . . . . . 6

3.1. Funcionamiento LabelMe app . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4.1. Calculo descriptores HOG de [2] . . . . . . . . . . . . . . . . . . . . . . . . . 22

4.2. Orden de almacenamiento de pıxels segun la orientacion de la imagen. . . . . . 23

4.3. Representacion HOG para distintas imagenes. . . . . . . . . . . . . . . . . . . 24

4.4. Ejemplos del uso del algoritmo nms para distintas areas de solapamiento con

imagenes de [5]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

4.5. Piramide de una imagen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4.6. Tiempos para iPhone5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

Dolores Blanco II

INDICE DE CUADROS Deteccion de objetos y anotacion de imagenes en el iPhone

Indice de cuadros

3.1. Inicio de sesion: respuesta del servidor y accion de la aplicacion . . . . . . . . 16

3.2. Creacion de una cuenta de usuario: respuesta del servidor y accion de la aplicacion 17

3.3. Envıo de imagen y anotacion: respuesta del servidor y accion de la aplicacion . 18

3.4. Actualizacion de la anotacion: respuesta del servidor y accion de la aplicacion . 19

4.1. Especificaciones para todos los modelos de dispositivos compatibles con el de-

tector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

Dolores Blanco 1

Deteccion de objetos y anotacion de imagenes en el iPhone

Capıtulo 1

Introduccion

A partir de la aparicion del primer smartphone la evolucion de los dispositivos moviles ha

cambiado la manera como la sociedad interactua con ellos. Tanto los recursos que ofrecen como

la facilidad de acceder a ellos para la mayorıa de personas son las principales razones que nos

llevan a realizar este trabajo.

En el campo de deteccion y reconocimiento de objetos es importante poder acceder a imagenes

anotadas pero esto siempre implica un coste. Es por esto que nuestro primer objetivo ha sido

facilitar una herramienta a la comunidad de Computer Vision que permita crear una base de

datos propias de imagenes anotadas, en cualquier lugar y de la manera mas sencilla posible.

Esto no es mas que una extension de LabelMe [3] pero ahora desde un dispositivo movil, por lo

que se anade flexibilidad a las funcionalidades ya existentes.

El segundo objetivo ha sido desarrollar un detector de objetos para dispositivos moviles.

Un detector en dispositivos moviles es muy comun ya que la mayorıa de camaras digitales

actuales y moviles disponen de detectores faciales o de sonrisas. En este caso el detector serıa

un detector a medida pudiendo elegir que detectar y utilizar las imagenes y anotaciones creadas

con LabelMe.

Para el primero desarrollo de estas aplicaciones hemos escogido utilizar dispositivos con el

sistema operativo iOS de Apple.

Dolores Blanco 2

Deteccion de objetos y anotacion de imagenes en el iPhone

Capıtulo 2

Contexto

Uno de los principales objetivos de las investigaciones tecnologicas es conseguir que las

maquinas tengan un comportamiento lo mas parecido posible al del ser humano, que tenga

inteligencia artificial. En Computer Vision como subcampo de la inteligencia artificial tiene el

mismo objetivo, pero relacionado con la vision. En este campo se busca el entendimiento de la

escena, es decir, a partir de una representacion del mundo real los dispositivos deben ser capaces

de enteder que esta pasando y reaccionar de manera diferente dependiendo de la situacion. Para

poder conseguirlo deben poder reconocer los objetos y acciones existentes en la escena.

2.1. Reconocimiento y deteccion de objetos

Figura 2.1: Sistema de reconocimiento de objetos

Un sistema de reconocimiento de objetos, tal y como se puede ver en la figura 2.1, necesita

una captura de la escena para poder compararla con modelos previos y determinar si el objeto

en cuestion esta o no en la escena.

Dolores Blanco 3

2.2. LABELME Deteccion de objetos y anotacion de imagenes en el iPhone

La representacion de la escena puede ser una imagen en dos o tres dimensiones.

Los humanos para reconocer un objeto primero tenemos que saber algo sobre el, ya sea

haberlo visto antes o conocer una descripcion. En un sistema de reconocimiento pasa lo mismo,

el sistema tiene que tener ciertos modelos para que pueda compararlos con las imagenes de la

escena. Lo mas sencillo de pensar es que estos modelos pudieran ser imagenes de objetos en

otras escenas, y por tanto el sistema los compara mediante una correlacion pıxel a pıxel con la

imagen de la escena actual. Esta primera aproximacion se comprobo que no era efectiva debido

a que las imagenes podrıan estar tomadas desde distintos puntos de vista, solo podrıa aparecer

alguna parte o tener alguna parte oculta tal y como dijo Nivatia and Binford en 1977. Es por

esta razon que a partir de las imagenes se calculan descriptores o caracterısticas de estas con el

objetivo de obtener informacion adicional como por ejemplo la textura o los bordes.

Desde que se empezo a tratar el reconocimiento de objetos se han utilizado muchos tipos de

caracterısticas, en este caso hemos utilizado Histograms of Oriented Gradients, HOG, por ser

uno de los mas extendidos y sobre todo ser sencillo de calcular. En el siguiente punto detallare-

mos en que consiste este procedimiento.

Historgrams of Oriented Gradients

La primera vez que se introducen los descriptores HOG es en [1] por Dalal & Triggs desti-

nado a la deteccion de humanos. Lo que buscaban con este tipo de descriptores es que el sistema

puediese distinguir a humanos bajo fondos y iluminacion complicados. Este metodo aprovecha

que los objetos se pueden describir a partir de la forma que tienen. Una manera de calcular la

forma es a partir de la orientacion que tiene el gradiente o los contornos. Tal y como muestra la

figura 2.3, primero se calcula el gradiente de la imagen y despues se divide en pequenas regiones

llamadas cells. En cada cell se calcula el histograma de los angulos del gradiente y se normaliza

el valor respecto a la energia de los histogramas en una region mayor llamada block. Lo que

se consigue con este ultimo paso es que los descriptores son mas invariantes en cuestiones de

iluminacion.

2.2. LabelMe

Conseguir una base de datos de imagenes amplia es muy importante para el desarrollo de

sistemas de reconocimiento de objetos y hoy en dıa gracias a Internet esto es relativamente

sencillo. Tan importante como las imagenes son las anotaciones en ellas ya que dan informacion

sobre lo que contienen, aunque en este caso esto es lo que mas coste tiene porque requiere

Dolores Blanco 4

2.2. LABELME Deteccion de objetos y anotacion de imagenes en el iPhone

Figura 2.2: Representacion de calculo de los descriptores HOG. Obtenido de [1]

Figura 2.3: Esquema para obtener los descriptores HOG. Obtenido de [1]

la accion humana. Para facilitar esta tarea en 2005 Russel et al crearon LabelMe: The Open

Annotation Tool [4], anadiendo varias funcionalidades que la mayor parte de bases de datos no

tenıan. En [3] enumeran las siguientes:

Los objetos estan integrados en la escena.

No solo se sabe que el objeto etiquetado esta en la escena, sino que se sabe en que lugar

de imagen esta.

Diversos tipos de clases. Hasta el momento solo Caltech 101, Caltech 256 y ImageNet

tenıan un numero comparable.

Diversos tipos de imagenes, variando punto de vista, distancia, etc.

Las imagenes no tiene copyright ya que gran parte de ellas han sido tomadas por los

Russell et al o por investigadores que han contribuido.

Abierta y dinamica.

Una de las cosas que hace util a LabelMe es su herramienta de anotacion web que podemos

ver en la figura 2.4. Esta herramienta permite de manera sencilla delimitar los objetos de la

imagen creando polıgonos punto a punto y anadirles el nombre. La facilidad a la hora de anotar

y compartir es una de las cosas que ha hecho que el uso de LabelMe se extienda desde que se

Dolores Blanco 5

2.3. IOS APPS Deteccion de objetos y anotacion de imagenes en el iPhone

Figura 2.4: LabelMe, herramienta de anotacion

creo. Actualmente cuenta con casi 200000 visitantes, mas de 200000 fotos y sobrepasa el millon

de anotaciones. Ademas se puede descargar un kit con funciones de MATLAB que permite

trabajar con la base de datos facilmente.

2.3. iOS Apps

Para empezar a desarrollar aplicaciones para iOS Apple proporciona un entorno y un kit de

desarrollo llamado Xcode y SDK respectivamente. Una vez tienes esto lo unico que necesitas

es saber el lenguaje de programacion que utilizan las aplicaciones, Objective - C, y las librerıas

de objetos que ya proporciona Apple.

Objective - C

Objective - C es un lenguaje de programacion que tal como su nombre indica esta orientado

a objetos y es un superconjunto del lenguaje C. Ser un superconjunto de C hace que compartan

muchas cosas, como la sintaxis basica, las estructuras, los tipos, punteros, etc., pero anadiendo

caracterısticas de los lenguajes orientados a objetos y otras de propias.

Los lenguajes orientados a objetos permiten tener la informacion encapsulada y definir com-

portamientos sobre ella, llamados metodos en Objective - C Un objeto no es mas que una instan-

cia de una clase y para definir una clase en Objective C se necesitan por lo menos dos archivos:

Header file. Contiene las declaraciones de la clase, las variables, metodos y constantes.

Dolores Blanco 6

2.3. IOS APPS Deteccion de objetos y anotacion de imagenes en el iPhone

La extension es .h

Implementation file. Es donde se hace la implementacion de los metodos declarados.

Tiene como ventaja que puede contener tanto codigo propio de Objective - C o C. La

extension es .m

Tambien puede haber un archivo de implementacion con extension .mm y otro con extension

.xib. El primero sirve para poder anadir clases o funciones programadas en C++ y el segundo

para generar graficamente la interfaz del objeto, en el caso que la tenga.

Estructura basica

Un ejemplo simplificado de una clase lo podemos ver a continuacion. Los archivos .h tienen

un aspecto parecido al siguiente codigo:

// Aqui a\˜nades las librerias o archivos que utilizaras.

#import <UIKit/UIKit.h>

// MiClase es el nombre de la clase que estamos declarando y

// NSObject la clase de la cual hereda.

@interface MiClase : NSObject{

float f;

NSString *string;

}

+(MiClase *)nuevaClaseCon:(NSString *)string;

-(NSString *)cambiaString;

@end

Y los archivos .m son ası:

#import "MiClase.h"

@implementation MiClase

Dolores Blanco 7

2.3. IOS APPS Deteccion de objetos y anotacion de imagenes en el iPhone

+(MiClase *)nuevaClaseCon:(NSString *)string;

{

// La implementacion va aqui.

}

-(NSString *)cambiaString;

{

// La implementacion va aqui.

}

@end

Metodos

En Objective - C hay dos tipos de metodos, los metodos de instancia que unicamente afectan

a la instancia de la clase y los metodos de clase que afectan a toda la clase. Los primeros son

los mas comunes ya que con lo que trabajas normalmente son con instancias. En la declaracion

se distinguen en que los de instancia empiezan con el sımbolo -, en cambio los de metodos de

clase utilizan +. La manera de declararlos e implementarlos se puede ver en los codigos de la

subseccion 2.3. La manera de ejecutarlos se llama messaging, ya que es como si enviases un

mensaje al objeto para que ejecute el metodo, el codigo serıa:

MiClase *unMiClase = nil; // nil es el equivalente de NULL.

unMiClase = [MiClase nuevaClaseCon:@"nuevo string"];

NSString *str;

str = [unMiClase cambiaString];

Propiedades

Una propiedad no es mas que informacion que encapsula un objeto, pero lo que le dife-

rencia de una variable es que representa que es un atributo de la clase. La ventaja de utilizar

propiedades es que Objective - C crea por ti metodos que permiten acceder o fijar la propiedad,

es decir, si desde un objeto quisieses recuperar una variable de otro objeto creado este deberıa

tener un metodo declarado que te lo devolviese. En cambio, con una propiedad no hace falta

porque automaticamente ya tienes un metodo con el nombre de la propiedad que te la devuelve.

Hay distintos atributos que puedes fijar de una propiedad, por ejemplo, readonly hace que solo

puedas acceder a la propiedad pero no la puedas modificar.

Dolores Blanco 8

2.3. IOS APPS Deteccion de objetos y anotacion de imagenes en el iPhone

Protocolos y Categorıas

Los protocolos y categorıas son herramientas muy utiles cuando programas con Objective -

C ya que permiten crear metodos para cada clase e utilizarlos. La diferencia entre un protocolo

y una categorıa es que en el protocolo los metodos no estan implementados y pueden imple-

mentarlos cualquier clase, en cambio en la categorıa los metodos estan implementados para una

clase en concreto y permite crear mas de los que ya tiene la clase.

Dolores Blanco 9

Deteccion de objetos y anotacion de imagenes en el iPhone

Capıtulo 3

LabelMe iOS App

Tras la gran aceptacion de LabelMe web, extenderlo a una aplicacion para dispositivos movi-

les tiene como objetivo facilitar a los usuarios la recoleccion de imagenes permitiendo hacer

fotos y anotandolas en cualquier momento y lugar. Estas imagenes pueden enviarse al servidor

de LabelMe para anadir o modificar anotaciones.

La aplicacion esta desarrollada para dispositivos iOS, tanto para iPhone como para iPad,

el proceso para el desarrollo para esta plataforma se han explicado en 2.3. La eleccion de iOS

frente a otras plataformas se debe a la gran penetracion que tienen los productos Apple en la

comunidad de Computer Vision ademas de la calidad de servicio que supone.

3.1. Funcionamiento de la aplicacion

La aplicacion esta disenada para que sea facil e intuitiva. En la figura 3.1 aparecen las

pantallas que existen y como acceder a ellas.

Pantalla de inicio

En esta pantalla es en la que se debe introducir el usuario y contrasena. El usuario y la

contrasena son los mismos que se utilizan en la aplicacion web, en caso de no tener una cuenta

creada existe la opcion de crear una. Para crear una cuenta, igual que en la web, es necasario

escoger un nombre de usuario y contrasena, y proporcionar el nombre real, una direccion de

correo electronico y la institucion a la se pertenece. Hasta la ultima actualizacion de LabelMe

no era necesario tener cuenta de usuario, con esta nueva funcionalidad cada objeto anotado

queda marcado con el nombre de usuario de manera que cuando descargas una base de datos

puedas trabajar unicamente con las imagenes anotadas por ti mismo o por otro usuario. Ademas

Dolores Blanco 10

3.1. FUNCIONAMIENTO DE LA APLICACIONDeteccion de objetos y anotacion de imagenes en el iPhone

Figura 3.1: Funcionamiento LabelMe app

de iniciar sesion o crear una cuenta, desde la pantalla de inicio tambien es posible recuperar la

contrasena en caso de no recordarla. Solo hay que introducir la direccion de correo electronico

para que se genere una nueva contrasena y se envie un correo a la direccion especificada.

Galerıa

Una vez se ha iniciado sesion, la primera pantalla que se muestra es la galerıa. En la galerıa

se pueden ver todas las imagenes que se han tomado con la aplicacion. Esta formada por una

barra de navegacion en la parte superior y una barra inferior con pestanas que muestran en que

pantalla estas y permiten cambiar la pantalla. En la vista de la pantalla aparece el nombre de

usuario con su foto de perfil y un bonton que permite cambiar la visualizacion de las imagenes,

de modo cuadrıcula a modo lista y viceversa. Esto permite que al cambiar al modo lista podamos

Dolores Blanco 11

3.1. FUNCIONAMIENTO DE LA APLICACIONDeteccion de objetos y anotacion de imagenes en el iPhone

ver mas informacion sobre la imagen: como la fecha en la que se creo, el numero de anotaciones

y el tamano de la imagen en pıxels.

En cada thumbnail aparece un cırculo con diferentes colores que simbolizan diferentes es-

tados de la imagen:

- Rojo: ni la imagen ni las anotaciones estan en el servidor de LabelMe. El numero que

aparece muestra las anotaciones que hay.

- Verde: la imagen y las anotaciones estan actualizadas en el servidor de LabelMe.

- Naranja: la imagen esta en el servidor, pero hay modificaciones en la anotacion. El nume-

ro muestra las modificaciones que se han realizado.

Desde la galerıa se pueden borrar y enviar las imagenes al servidor. Para el modo cuadrıcula con

el boton Edit de la barra de navegacion se pueden enviar y borrar las imagenes seleccionadas,

en cambio para el modo lista solo sirve para borrar ya que para enviar cada imagen tiene un

boton independiente. Cuando se elimina una imagen se hace localmente, es decir, en el servidor

se mantiene tal y como estaba.

Pantalla de Anotacion

En esta pantalla se visualiza la imagen y permite anotar los objetos en ella mediante rectangu-

los. La manera de acceder a esta pantalla es pulsando una imagen existente en la galerıa o justo

despues de tomar una foto. Como todas las pantallas, tiene una barra de navegacion que permite

volver hacia la pantalla anterior. En la parte superior esta una barra de herramientas con cuatro

botones, estos permiten crear y borrar las anotaciones, enviar la imagen y anotacion al servidor

y mostrar una lista con todos los objetos anotados. Para cada objeto aparece una etiqueta para

anadir o modificar el nombre del objeto.

Para selecionar un objeto anotado basta con tocar en la superfıcie interior al rectangulo que

lo delimita. Cuando la imagen tiene muchas anotaciones puede que haya muchos rectangulos y

uno se superponga a otro, esto puede causar problemas a la hora de seleccionar un objeto. Por

esta razon esta la lista de objetos, donde aparecen los nombres de los objetos y el tamano que

ocupan en pıxels y a partir de ella puedes seleccionar el objeto deseado.

Pantalla de Ajustes

La pantalla de ajustes permite modificar algunos parametros del uso. Las funcionalidades

son:

Dolores Blanco 12

3.2. ASPECTOS TECNICOS Deteccion de objetos y anotacion de imagenes en el iPhone

- Cambiar la foto de perfil. El cambio tambien se reflejara en la galerıa.

- Conocer el numero de fotografıas del usuario en el dispositivo.

- Acceder directamente a la version web.

- Escoger si las fotografıas tomadas por la aplicacion se guardaran tambien en la galerıa

del dispositivo o no.

- Determinar la resolucion de la imagen.

- Seleccionar si a la hora de subir las imagenes al servidor se utiliza unicamente una cone-

xion Wi-Fi, o cualquiera.

- Determinar si se inicia sesion automaticamente.

- Informacion sobre LabelMe.

Integracion con LabelMe Web

A la hora de subir las imagenes y anotaciones, estas se almacenan en una coleccion especifi-

ca de la cuenta, llamada iPhoneCollection. Desde la aplicacion web se puede acceder, modificar

y anadir anotaciones a las imagenes creadas por la aplicacion movil. Hasta el momento la sin-

cronicacion entre las dos aplicaciones es unidireccional, unicamente del dispositivo movil hacia

el servidor. Esto significa que si modificamos o anadimos una anotacion desde la aplicacion web

estos cambios no se veran en el dispositivo movil y ademas, si volvemos a enviar la anotacion

desde el dispositivo movil las creadas desde la web desapareceran.

Las anotaciones creadas desde la aplicacion movil tienen la misma estructura en el archivo

xml que las creadas desde la aplicacion web. Esto hace que se pueda utilizar el conjunto de

funciones existentes en Matlab Toolbox.

3.2. Aspectos tecnicos

Sobre la programacion de la aplicacion, al estar destinada para iOS se utiliza Objective - C.

Los aspectos mas importantes del diseno de una aplicacion para iOS se explican en la seccion

2.3, por lo que en este apartado esta destinado a explicar como se organizan los archivos y al

comportamiento entre la aplicacion y el servidor.

Dolores Blanco 13

3.2. ASPECTOS TECNICOS Deteccion de objetos y anotacion de imagenes en el iPhone

3.2.1. Organizacion de los archivos

Para que la aplicacion funcione correctamente esta genera diferentes tipos de archivos. Los

archivos principales son las imagenes y anotaciones, pero no son los unicos. La guıa sobre como

gestionar los archivos que proporciona Apple especifica que los archivos de la aplicacion deben

estar almacenados en la carpeta Documents de la aplicacion y los temporales en la carpeta

temporal llamada tmp.

En la carpeta Documents, cuando se lanza la aplicacion por primera vez se crea una car-

peta llamada RememberMe donde se almacena el nombre de usuario en un archivo llamado

username.txt y si esta la opcion de inicio automatico tambien se guarda la contrasena en un

archivo llamado password.txt. Estos dos archivos se utilizan para iniciar la sesion automati-

camente copiando su contenido en los campos de la pantalla de inicio de sesion.

Ademas de la carpeta RememberMe, la primera vez que se inicia sesion con un usuario en

Documents se crea una carpeta llamada con el nombre del usuario, y dentro de esta se crean

otras tres carpetas llamadas annotations, images y thumbnail y tambien dos archivos del tipo

plist (property list) con el nombre settings.plist y otro con el nombre de usuario. En estas

tres primeras carpetas se guarda todo lo referente a las imagenes tomadas y sus anotaciones.

En images se guardan las imagenes con la resolucion escogida en la pantalla de settings y un

archivo de texto con la informacion de la locaclizacion y en thumbnail una version mas pequena

para la galerıa. Las anotaciones se guardan en la carpeta annotations, este archivo contiene una

array con los objetos creados especialmente para cada anotacion.

En el caso del archivo nombredeusuario.txt, este almacena para cada imagen el numero

de anotaciones, para el caso de una imagen que no esta en el servidor y para el caso en el que

la imagen se haya enviado anteriormente el numero de modificaciones desde la ultima vez que

se envio. La manera en que se en se utiliza este archivo es la siguiente: cuando se toma una

imagen se crea una entrada en la property list con el nombre de la imagen y se le asigna el

valor -1, cada vez que se crea una anotacion se decrementa este valor. En el caso que se borre

algun objeto el valor se incrementarıa. Una vez se envıa al servidor la imagen y la anotacion y

se recibe correctamente este valor se cambia a 0, por lo que si una imagen tiene asociado un 0

significa que esta actualizada en el servidor. Una vez la imagen ya esta en el servidor, en lugar

de anotaciones el valor representa las modificaciones respecto a la ultima version enviada. Una

modificacion puede ser tanto la creacion, modificacion o eliminacion de un objeto. Para este

caso la manera modificar el valor asociado a cada imagen es el contrario: para cada modificacion

se incrementa el valor y la unica manera de decrementarlo es eliminando un objeto que se ha

creado despues la ultima actualizacion. Es con este valor con el que se obtiene el numero que

Dolores Blanco 14

3.2. ASPECTOS TECNICOS Deteccion de objetos y anotacion de imagenes en el iPhone

aparece en cada imagen de la galerıa explicado en la seccion 3.1. Siendo v el valor almacenado

en cada entrada de la property list, la manera como se obtiene es la siguiente:

- |v+1|, si la imagen no esta todavıa en el servidor, es decir, v < 0. El color utilizado es el

rojo.

- v, si la imagen ya esta en el servidor, es decir, v > 0. El color es el naranja.

- Cuando el valor es 0 aparece una checkmark informando que esta correctamente actuali-

zada en el servidor.

En el archivo settings.plist se guarda la informacion que se ha escogido en la pantalla de

ajustes, para los ajustes de inicio de sesion automatico, conexion wifi y guardar las imagenes en

la galerıa del dispositivo se utiliza un boleano que indica si estas opiciones estan habilitadas o

no. Para la resolucion se almacena un numero indicando la resolucion escogida, en caso de que

sea la maxima se guarda un 0.

Respecto a los archivos temporales almacenados, estos son los que se utilizan para enviar y

actualizar las imagenes y anotaciones. Estos archivos contienen toda la informacion necesaria

para enviar al servidor y se guardan con el nombre de la imagen seguido de un numero de 10

dıgitos. La razon por la que se crean estos archivos es por si hay un error en el envio no tenga

que generarse esta informacion otra vez ya que es lo que se tarda mas en procesar. Por lo tanto,

con estos archivos conseguimos que esta informacion solo se genere una vez y si se produce un

error al enviar la proxima vez ser mas rapido. Una vez el servidor ha recibido la informacion

correctamente o ha pasado cierto tiempo, estos archivos se eliminan de la carpeta.

3.2.2. Comunicacion entre la aplicacion y el servidor

La parte del servidor esta implementada con lenguaje PHP. La eleccion de PHP se debe

a su amplio uso en paginas web y tambien en la aplicacion web de LabelMe por lo que faci-

lito la implentacion para la aplicacion movil. La comunicacion entre la aplicacion y el servidor

es unidireccional, del dispositivo al servidor, por lo que se necesitaba disenar una manera de

transferir la informacion en este sentido. Para todos los casos que se necesita enviar datos de

la aplicacion al servidor hemos escogido el metodo POST. El metodo POST utiliza las cabece-

ras HTTP para enviar los datos, estos datos pueden ser tanto cadenas de caracteres como datos

binarios. Esta es la razon por la que escogimos este metodo ya que nos permite enviar mas de

un tipo de datos a la vez asociando a cada datos un nombre. Por ejemplo, si queremos enviar

dos cadenas de caracteres y una imagen podriamos asociar estas a los nombres string1, string2

e image respectivamente.

Dolores Blanco 15

3.2. ASPECTOS TECNICOS Deteccion de objetos y anotacion de imagenes en el iPhone

A continuacion se resumen los protocolos utilizados para cada comunicacion del dispositivo

movil con el servidor.

Inicio de sesion

Para poder iniciar sesion se necesita enviar tanto el nombre de usuario como la contrasena.

Estos pueden estar introducidos mediante el teclado en los campos de la pantalla inicial o bien

pueden ser recordados si esta opcion esta habilitada. En el POST los nombres de los valores

enviados son username para el nombre de usuario y password para la contrasena. Ambos valores

en este caso son cadenas de caracteres. Una vez el dispositivo ha enviado la informacion, el

servidor ejecuta el stript PHP. Este stript lo que hace es comprobar que la contrasena enviada

corresponda con la especificada en su base de datos de usuarios. Despues de comprobarlo, el

servidor envıa una cadena de caracteres con la siguiente estrucuta:

[dıgito] [\n] [descripcion]

El valor del dıgito varıa dependiendo del resultado de la comprobacion, en la tabla 3.1 estan

especificadas las posibles respuestas con la accion que lleva a cabo la aplicacion cuando las

recibe.

Dıgito Descripcion Accion de la aplicacion0 Thanks, you are logged in Entra en la galerıa del usuario

1 Username is not in the database Lanza una alerta con la descripcion

2 Password is invalid Lanza una alerta con la descripcion

Cuadro 3.1: Inicio de sesion: respuesta del servidor y accion de la aplicacion

Creacion de una cuenta de usuario

El comportamiento a la hora de crear una cuenta es exactamente el mismo que cuando

se inicia sesion, con la diferencia de que ahora se envia mas de dos pares nombre-valor. En

este caso ademas del nombre de usuario y la contrasena tambien se envia el nombre real, el

correo electronico y la institucion a la que se pertenece. Los nombres para estos campos del

metodo POST son: name para el nombre real, email para el correo electronico y por ultimo,

institution para la institucion. Todos estos campos, al igual que en el caso anterior, son cadenas

de caracteres. Lo que realiza el servidor en este caso es verificar que no existe otra cuenta con

el mismo nombre de usuario o correo electronico y envıa una respuesta al dispositivo. Igual que

con el inicio de sesion, tambien hay tres posibles respuestas que se especifican en la tabla 3.2.

Dolores Blanco 16

3.2. ASPECTOS TECNICOS Deteccion de objetos y anotacion de imagenes en el iPhone

Dıgito Descripcion Accion de la aplicacion0 Congratulations! Your account has been created Vuelve a la pantalla de inicio

1 Username already exists Lanza una alerta con la descripcion

2 This email address already has a user associated Lanza una alerta con la descripcion

Cuadro 3.2: Creacion de una cuenta de usuario: respuesta del servidor y accion de la aplicacion

Olvido de contrasena

Cuando se utiliza la accion de olvido de contrasena la unica informacion que se le pide

al usuario es el correo electronico con el que se registro, por lo que este sera el unico campo

con el nombre email del metodo POST. En este caso se utiliza el mismo script PHP que en la

aplicacion web, por lo que el servidor unicamente envia una respuesta cuando la direccion de

correo electronico no esta en la base de datos. Tanto si la direccion esta en la base de datos

o no, la aplicacion movil lanza una alerta diciendo que un correo electronico sera enviado a

la direccion especificada. ste es un error que se solucionara en la proxima actualizacion de la

aplicacion.

Envio de imagenes y anotaciones

Hasta el momento las situaciones explicadas solo se tenıa que enviar cadenas de caracteres,

pero para este caso es necesario enviar la imagen ademas de la anotacion. Para enviar una

imagen el metodo POST necesita una estructura diferente a la de la cadena de caracteres, por

lo demas la composicion del metodo es la misma que en los casos anteriores. Esta estructura

diferente permite anadir informacion sobre la imagen, como el nombre del archivo o el tamano.

En este caso especificaremos el nombre de la imagen dado por la aplicacion movil que se

compone de la fecha,la hora que se ha tomado la imagen y el nombre del usuario. Anadiendo

el nombre de la imagen facilitamos la sincronizacion del dispositivo con el servidor ya que una

misma imagen tendra el mismo nombre en ambos sitios. En el caso de la anotacion, esta es una

cadena de caracteres con la informacion necesaria para el archivo xml, cada campo esta separado

por un delimitador. Como informacion complementaria tambien se envia la localizacion donde

se ha tomado la imagen, si el usuario ha dado su consentimiento. Al igual que la mayorıa de

informacion enviada, la localizacion tambien es una cadena de caracteres.

Los nombres utilizados para cada una de la informacion son: imagefile para la imagen,

annotation para la anotacion y location para la localizacion.

La respuesta del servidor al envio de esta informacion tiene la misma estructura que las

Dolores Blanco 17

3.2. ASPECTOS TECNICOS Deteccion de objetos y anotacion de imagenes en el iPhone

situaciones anteriores. El comportamiento en este caso se resume en la tabla 3.3.

Dıgito Descripcion Accion de la aplicacion0 Nombre del archivo Envıa la siguiente foto

o desaparece la vista del progreso

1 Unknown error Envıa la siguiente foto

y aumenta el contador de fotos con error

o muestra una alerta si no hay mas fotos que enviar.

Cuadro 3.3: Envıo de imagen y anotacion: respuesta del servidor y accion de la aplicacion

Desde la galerıa se puede enviar mas de una imagen, el envıo conjunto se hace secuencial-

mente. Cuando se recibe la respuesta del servidor, tanto si se ha enviado correctamente o no,

se pasa al siguiente envio. La aplicacion va contando todas las imagenes que no se han podido

enviar, y en el caso de que el valor sea mayor que cero envia una alerta al usuario informando

del numero de imagenes que han tenido un error en el envio.

Actualizacion de la anotacion

Cuando se actualiza una anotacion el comportamiento de la aplicacion es muy parecido a

cuando se envia la imagen por primera vez salvo que ahora solo se envia la parte de la anotacion,

ya que la imagen ya esta en el servidor. Por lo tanto, el metodo POST tendra para este caso el

dos nombres: annotation para la cadena de caracteres con la anotacion y filename, otra cadena

de caracteres con el nombre de la imagen, de esta manera el servidor sabe de que imagen se

trata.

Igual que en todos los envios de informacion anteriores el servidor responde con la misma

estructura, en este caso muy similar a la del envıo de la imagen pero solo anadiendo el caso

en que el servidor no encuentre la imagen. En este caso envia un mensaje determinado a la

aplicacion y esta vuelve a enviar la imagen y la anotacion de la misma manera que si lo hiciese

por primera vez. En la tabla 3.4 esta especificado este comportamiento.

Foto de perfil

En el servidor tambien se almacena la foto de perfil, la razon para ello es poder recuperarla

si te conectas desde otro dispositivo ademas que en un futuro tambien aparezca en LabelMe

Web. Por ello, cada vez que se cambia la foto de perfil la aplicacion se conecta al servidor y

se la envia. Ademas de enviarse la imagen tambien se envia el nombre de usuario y contrasena

Dolores Blanco 18

3.2. ASPECTOS TECNICOS Deteccion de objetos y anotacion de imagenes en el iPhone

Dıgito Descripcion Accion de la aplicacion0 Nombre del archivo Envıa la siguiente foto

o desaparece la vista del progreso

1 Unknown error Envıa la siguiente foto

y aumenta el contador de fotos con error

o muestra una alerta si no hay mas fotos que enviar.

2 This image is not on the server Vuelve a enviar la imagen

como si fuese la primera vez que la envıa

Cuadro 3.4: Actualizacion de la anotacion: respuesta del servidor y accion de la aplicacion

ya que puede darse el caso que se haya entrado a la aplicacion automaticamente y no hubiese

conexion en ese momento, de esta manera la accion se relaizara correctamente. Por lo tanto,

en este caso el metodo POST tendra cuatro campos: la imagen con el nombre image en el que

esta especificado su nombre, el nombre de usuario y la contrasena con los nombres username y

password respectivamente. Cuando el servidor recibe la imagen la guarda en la carpeta principal

del usario y si ya existia una, la reemplaza por la nueva.

Tambien existe el caso en que se descargue la imagen guardada en el servidor, esto pasa

en el momento que se inicia sesion cuando la aplicacion comprueba si existe una foto de perfil

anterior. La foto de perfil siempre tiene el mismo nombre: profilepicture.jpg, por lo que si

no hay ningun archivo con ese nombre en la carpeta del usuario la aplicacion envia una peticion

al servidor. Esta peticion es la unica que no es un POST, unicamente lo que hace es que el

servidor ejecute el script espedificado. En este caso el script lo que hace es enviar la imagen de

perfil y si no hay ningun archivo con ese nombre responde con un 1. Por lo tanto, la aplicacion

cuando recibe la informacion y esta ocupa mas de 1 byte guarda esta informacion como imagen

y en caso contrario no hace nada.

Dolores Blanco 19

Deteccion de objetos y anotacion de imagenes en el iPhone

Capıtulo 4

Detector de objetos en iOS

Como se explica en el capıtulo 2 un sistema de reconocimiento de objetos tiene que tener

tres partes: la parte en que se captura la imagen, la que calcula el descriptor de esta y la que la

compara con un modelo existente. En este capıtulo se explica el funcionamiento del detector de

objetos disenado para dispositivos iOS.

Dado que los recursos que tiene un dispositivo movil son bastante mas limitados que los

de un ordenador normal, la version del detector desarrollada hasta el momento es una version

sencilla basada en los ya existentes.

4.1. Captura de la imagen

El detector puede funcionar tanto para utilizarlo con imagenes en tiempo real, capturando

video, como con imagenes almacenadas en el dispositivo. La unica diferencia que existe entre

las imagenes es la resolucion que es mas baja cuando capturas video que cuando tomas una foto.

Esta diferencia no es muy importante ya que antes de calcular los descriptores se disminuye el

tamano de la imagen. Esto se hace porque el tiempo de calculo es cuadraticamente proporcional

a la resolucion. Esto hace que se tenga que utilizar una resolucion mucho mas baja de la maxima

de la camara del dispositivo para que el tiempo sea considerable.

En la tabla 4.1 se pueden ver las especificaciones referentes a las camaras para todos los

dispositivos compatibles con la aplicacion del detector. Para este proyecto hemos utilizado los

dispositivos iPhone 4S, iPhone5 y iPad Retina.

Dolores Blanco 20

4.2. CALCULO DE LOS DESCRIPTORES: HOGDeteccion de objetos y anotacion de imagenes en el iPhone

Camara Trasera Camara Frontal Grabacion de Vıdeo

iPhone 5 8 MP 1.2 MP 1080p y 30fps

iPhone 4S 8 MP 1.2 MP 1080p y 30fps

iPhone 4 5 MP VGA 720p y 30fps

iPhone 3GS 3 MP VGA VGA y 30fps

iPod Touch 5th 5 MP 1.2 MP 1080p y 30fps

iPod Touch 4th 960x720 VGA 720p y 30fps

iPad Retina 5 MP 1.2 MP 7200p y 30fps

iPad Mini 5 MP 1.2 MP 7200p y 30fps

iPad 2 960x720 VGA 720p y 30fps

Cuadro 4.1: Especificaciones para todos los modelos de dispositivos compatibles con el detector

4.2. Calculo de los descriptores: HOG

Despues de reducir el tamano de la imagen se calculan los descriptores HOG, siguiendo el

esquema de la figura 4.1 que es el procedimiento que se ha resumido en la seccion 2.1. El codigo

utilizado para calcularlos es una adaptacion del de Pedro Felzenszwalb [2] para que funcione

correctamente con Objective - C. El codigo original esta escrito con el lenguaje C++ y utiliza un

complemento para poderlo utilizar con MATLAB. Todo lo referente a funciones de MATLAB

es lo que cambiamos por las funciones equivalentes en lenguaje C.

Una de las cosas a tener en cuenta para que funcione correctamente es la manera en la que

se almacenan los pıxeles de las imagenes en memoria, es decir, si en direcciones consecutivas

de memoria hay pıxeles de la misma columna o fila. En el codigo original las imagenes se

almacenan por columnas, pero en el caso de los dispositivos con iOS hay que tener en cuenta

la orientacion del dispositivo con la que se ha tomado la imagen ya que los pıxeles siempre

se almacenan de la misma manera respecto a la pantalla del dispositivo, tal y como muestra la

figura 4.2. En este caso los descriptores utilizan celdas de 8 pıxels por lo que los descriptores

resultantes tendran como dimensiones:

(| wsbin|−2, | h

sbin|−2,32)

donde w y h son el ancho y el alto de la imagen en pıxels respectivamente y sbin el tamano

de las celdas. Una funcionalidad desarrollada a parte del detector es la visualizacion de la re-

presentacion de estos descriptores. Tal y como se puede ver en la figura 4.3, con solo apretar a

un boton en la barra de herramientas de la aplicacion se puede visualizar dicha representacion.

Dolores Blanco 21

4.3. MODELO Deteccion de objetos y anotacion de imagenes en el iPhone

Figura 4.1: Calculo descriptores HOG de [2]

Esta funcionalidad no anade ninguna mejora al funcionamiento de detector, mas bien todo lo

contrario. Habilitar la visualizacion del HOG para el caso de la deteccion de video en tiempo

real supone un cierto retraso respecto no realizarla. Aunque haga que el detector sea mas lento

porque hay que generar la representacion. Poder visualizar el HOG es util porque facilita al

usuario comprobar si se esta calculando correctamente.

4.3. Modelo

Para determinar si el objeto escogido esta en la escena hay que tener un modelo de este

objeto con el que comparar los descriptores. Hay distintas maneras de obtener estos modelos,

por ejemplo, se podrıa utilizar los descriptores HOG de una imagen del objeto en cuestion. El

problema de un modelo tan sencillo es que las imagenes pueden contener objetos que varien

liegramente de forma y/o orientacion lo que puede hacer que se reduzcan las posibilidades de

detectar correctamente. Por este motivo la gran mayorıa modelos se consiguen a partir de un

entrenamiento mediante Machine Learning utilizando imagenes en la que aparece el objeto no

necesariamente en el mismo angulo y otras imagenes donde el objeto no aparece.

Igual que el codigo para obtener los descriptores HOG los modelos utilizados tambien se

han obtenido de Pedro Felzenszwalb [2], aunque este modelo es un modelo con partes solo

hemos utilizado el nivel que contiene todo el objeto. Se ha escogido solo este nivel del modelo

en lugar de todo el modelo con partes para ganar en velocidad a la hora de obtener el resultado.

Dolores Blanco 22

4.4. CORRELACION Deteccion de objetos y anotacion de imagenes en el iPhone

Figura 4.2: Orden de almacenamiento de pıxels segun la orientacion de la imagen.

4.4. Correlacion

Una vez tienes los descriptores HOG de la imagen o trama de video y el modelo se deben

comparar. La manera de hacerlo es calculando la correlacion entre ambos. La manera de hacerla

es como se harıa para dos imagenes, tal y como muestra la formula 4.1 pero para todas las

dimensiones, es decir, para este caso como muestra la formula 4.2.

Rxy = ∑m′

∑n′

x[m′,n′]y[m+m′,n+n′] (4.1)

∑d

∑m′

∑n′

x[m′,n′,d]y[m+m′,n+n′,d] (4.2)

Para determinar si un objeto esta o no en la imagen el resultado de la correlacion debe ser mayor

a b que es un parametro que resulta del entrenamiento del modelo. Si se da esta condicion

significara que si aparece este objeto y los pıxels correspondientes al objeto corresponderan .

Un problema comun es que si un objeto aparece en la imagen el resultado de la correlacion

puede dar afirmativo en diferentes zonas de la imagen y estas se superponen. Para solucionarlo

se utiliza el algortimo Non-maximum suppression que consiste en ordenar de mayor a menor

todas las detecciones obtenidas mediante la correlacion e ir comprobando si las regiones de

estas se superponen. En el caso que se superpongan se debera fijar cuanto es lo maximo que se

Dolores Blanco 23

4.5. PIRAMIDE Deteccion de objetos y anotacion de imagenes en el iPhone

Figura 4.3: Representacion HOG para distintas imagenes.

permite y si no excede esa porcion se dara por buena la deteccion. En la figura 4.4 podemos ver

un ejemplo con diferentes usos de este algoritmo.

4.5. Piramide

El tamano del objeto en una imagen es una cosa que se desconoce es por este motivo se

realiza un escalado de la imagen. Este escalado se denomina piramide y consiste en ir reducien-

do la imagen original a imagenes mas pequenas. Con cada una de estas imagenes se realiza el

proceso explicado anteriormente, por lo que con esto se consigue poder detectar el objeto con

tamanos mas grandes.

El factor que se reduce cada vez es 2−

in siendo i el nivel en el que se esta de la piramide y

n el numero de niveles. La imagen original corresponderıa al nivel 0 y ası hasta un total de n.

Puede pasar que se reduzca tanto la imagen que el modelo sea mayor que esta, si esto ocurre se

Dolores Blanco 24

4.6. RESULTADOS Deteccion de objetos y anotacion de imagenes en el iPhone

Figura 4.4: Ejemplos del uso del algoritmo nms para distintas areas de solapamiento con image-

nes de [5].

deja de reducir la imagen.

4.6. Resultados

Para que funcione correctamente un detector es muy importante el tiempo que tarde en

ejecutarse. En la figura 4.6 aparece el tiempo que se tarda para el calculo de los descriptores

HOG (a), para la correlacion (b) y el tiempo total (c). Esta aplicacion se ha probado para iPhone

4S y para iPhone 5, los tiempos de la figura 4.6 corresponde para el iPhone 5. Para iPhone 4S

los tiempos son aproximadamente el doble.

Las caracterısticas del detector son:

Tamano de la celda : 8 pıxels.

Dolores Blanco 25

4.7. FUTURO Deteccion de objetos y anotacion de imagenes en el iPhone

Figura 4.5: Piramide de una imagen.

Tamano maximo de una imagen: 2448x3264 pıxels.

Niveles piramide: 10.

Tamano del modelo: 11x7 bloques.

Es importante ver que los tiempos son suficientemente bajos para que el detector pueda

funcionar bien en tiempo real.

4.7. Futuro

El detector implementado solo es una parte de una aplicacion que se sigue desarrollando.

Esta aplicacion tiene como objetivo poder entrenar tus propios detectores y estarıa relacionada

con la de LabelMe 3 compartiendo los usuarios, imagenes y anotaciones. De esta manera los

usuarios podrıan utilizar las imagenes anotadas mediante LabelMe para crear detectores. El

usuario podrıa escoger un objeto y entrenar el detector en el servidor ya que hacerlo en el

iPhone supondrıa mucho mas tiempo y consumo de recursos. Una vez se haya entrenado el

detector y esten listos los parametros, estos se enviaran al dispositivo y ası se podra comprobar

el resultado. Una opcion que esta pensada anadir es configurar un comportamiento para cuando

se detecte el objeto, como tomar un a imagen de ese momento o enviar un email.

Dolores Blanco 26

4.7. FUTURO Deteccion de objetos y anotacion de imagenes en el iPhone

10 20 30 40 50 60 70 80 90 1000

1

2

3

4

5

6

7

8

Image resolution (%)

Tim

e (

s)

(a) Tiempo calculo de los descriptores HOG

10 20 30 40 50 60 70 80 90 1000

0.5

1

1.5

2

2.5

3

3.5

4

Image resolution (%)

Tim

e (

s)

(b) Tiempo calculo correlacion

10 20 30 40 50 60 70 80 90 1000

10

20

30

40

50

60

70

80

Image resolution (%)

Tim

e (

s)

(c) Tiempo total de deteccion

Figura 4.6: Tiempos para iPhone5.

Dolores Blanco 27

Deteccion de objetos y anotacion de imagenes en el iPhone

Capıtulo 5

Conclusiones

La aplicacion de LabelMe para dispositivos moviles en este momento lleva dos meses en

la AppStore de Apple y cuenta con mas de 200 descargas. Todavıa es pronto para saber su

aceptacion por parte de los investigadores de Computer Vision pero creemos que se ha cumplido

el objetivo principal que era facilitar la recoleccion de anotaciones en imagenes de manera

sencilla para el usuario.

De cara al futuro serıa util incorporar nuevas funcionalidades a la aplicacion de LabelMe.

Algunos ejemplos de estas nuevas funcionalidades son: anadir la opcion de crear nuevas co-

lecciones dentro de la coleccion de la aplicacion o que la comunicacion entre el servidor y

la aplicacion sea bidireccional, es decir, que modifiques donde modifiques las anotaciones se

sincronice en los dos extremos.

Por la parte del detector en dispositivos moviles tras hacer esta primera aproximacion hemos

comprobado que el detector desarrollado puede funcionar correctamente a tiempo real en estos

dispositivos. Este detector ha sido una primera aproximacion, por lo que todavıa tiene margen

de mejora. Ademas los componentes de este tipo de dispositivos evolucionan constantemente

mejorando sus prestaciones, por ejemplo, la velocidad del procesador del iPhone 5 es el doble

respecto a la del iPhone 4S. Esto supone que cada vez se puedan utilizar detectores mas com-

plejos y con ello mejorar su comportamiento hasta el punto que estos dispositivos se conviertan

en la nueva herramienta para los investigadores.

Dolores Blanco 28

BIBLIOGRAFIA Deteccion de objetos y anotacion de imagenes en el iPhone

Bibliografıa

[1] N. Dalal and B. Triggs. Histograms of oriented gradients for human detection. In Computer

Vision and Pattern Recognition, 2005. CVPR 2005. IEEE Computer Society Conference on,

volume 1, pages 886 –893 vol. 1, june 2005.

[2] P.F. Felzenszwalb, R.B. Girshick, D. McAllester, and D. Ramanan. Object detection with

discriminatively trained part-based models. Pattern Analysis and Machine Intelligence,

IEEE Transactions on, 32(9):1627 –1645, sept. 2010.

[3] A. Torralba, B.C. Russell, and J. Yuen. Labelme: Online image annotation and applications.

Proceedings of the IEEE, 98(8):1467 –1484, aug. 2010.

[4] K. Murphy W. T. Freeman B. Russell, A. Torralba. Labelme: a database and web-based

tool for image annotation. International Journal of Computer Vision, 2007.

[5] M. Everingham, L. Van Gool, C. K. I. Williams, J. Winn, and A. Zisserman. The PAS-

CAL Visual Object Classes Challenge 2007 (VOC2007) Results. http://www.pascal-

network.org/challenges/VOC/voc2007/workshop/index.html.

Dolores Blanco 29