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