Software para detección y parametrización de objetos.
Webcam Bluetooth
Feb 17th
Me estoy planteando utilizar la webcam BT-1 para el proyecto. De tal manera que la persona invidente podría colocar esta cámara donde guarde los CDs, incluso estar fijada a la estantería o colocada sobre la misma. De tal manera que simplemente al sacarl el CD de la estantería dijera cual es.
Me permito también recordar que la aplicación de reconocimiento de carátulas de CD es tan solo una de las posibilidades que quizá por su relación sencillez/complicación y la componente marketiniana que tanto me gusta he decidido implemetar primero.
Su precio es de 150$ lo cual tampoco es un problema por que es una cosa que se puede reutilizar con facilidad.Incluso como cámara espía!
El único problema (y esto a luixal le va a encantar xD). Solo funciona sobre Mac OS X.
Sustraccion de fondo o Background subtraction en OpenCV
Feb 17th
Para mejorar las posibilidades de la detección de cuadrados en busca de la carátula de CD me he aventurado a probar la sustracción de fondo.
Considero que la cámara va a estar colocada en un sitio concreto. Incluso me estoy planteando enfocarla hacia arriba. Pero eso es facilitarme las cosas demasiado. Primero quiero ver las carátulas y después ir subiendo la complejidad. Es posible que cada vez que suba un nivel de complejidad el enfoque para llegar a la solución sea diferente. Pero lo importante es aprender
Acepto críticas y sugerencias. (De sabios es evaluar y dudar cuidadosamente cualquier afirmación).
Con este enfoque pretendo quedarme con lo que se mueva y a partir de ahí pasar el detector de cuadrados.
En el código que estoy utilizando:
- Es un refrito, hay partes en castellano y otras en ingles. ¡ Son pruebas !
- Se está realizando una sustracción del fondo Gausiana (Gaussian Mixture Model)
- Se genera un mapa de bits donde el negro absoluto significa fondo y el blanco puro significa “no fondo” ( es decir, algo en movimiento)
- En la ventana llamada “Original” genero una imagen en la que solo se ve lo que está en movimiento.
- Tiene un warning en la asignación de valor a x, insisto! son pruebas!
Enlaces de interés:
- Proyecto fin de carrera que lo utiliza y me gusta la idea: “PFC – URJC – Detector de objetos abandonados“
- Background Subtraction
- Mixed Models (Gaussian Mixture Model)
- Código fuente original
Código:
Detección de cuadrados I
Feb 14th
Como primera aproximación para detectar las carátulas de CDs se me ha ocurrido lo siguiente. También utilizaré este post a modo de “en que punto me encuentro”.
Acotando el problema:
- El dispositivo de captura de imagenes no se mueve. (El fondo está fijo)
- El CD entra en la imagen. (Se puede filtrar por movimiento)
OpenCV capturando WebCam – Inicio
Feb 14th
Aquí dejo un ejemplo de OpenCV utilizando la webcam para mostrar la información por pantalla. Para incluir nuevos procesos solo hay que transformar la imagen entre la captura y la muestra, aplicar los algoritmos correspondientes y resaltar aquello que se considere oportuno.
Utilizar OpenCV con Code::Blocks en Ubuntu 9.10
Feb 7th
Lincar la librería de OpenCV en Code::Blocks es extremadamente sencillo. Una vez instalado OpenCV y creado el proyecto solo hay que ir al menú Project>Properties y en la pestaña Libraries que queda la penúltima a la derecha incluir la librería buscando “opencv”.
Puede parecer una estupidez pero se pierde muchisimo tiempo si no se conoce esta tontuna.
A partir de aquí podemos utilizar OpenCV de manera normal. Sin problema.
Instalar OpenCV en Ubuntu 9.10
Feb 7th
La instalación de OpenCV v 1.1 en Ubuntu 9.10 y 8.1 está automatizada con el Gestor de Paquetes Synaptic.
Solo hay que ir a Sistema>Administración>Gestor de Paquetes Synaptic y buscar “libcv.dev” hacer doble click en este paquete y aceptar la instalación de los paquetes necesarios.
Instalar la versión 2.0 de OpenCV es más problemático y las mejoras pese a ser abundantes no son necesarias para el desarrollo de Open Virtual Object Viewer.
Recomendaciones:
- Como tutorial principal y guía de referencia recomiendo el wiki de Wilowgarage.
- Como guía de referencia y para aprendizaje de directrices de visión por computador lo mejor es el libro de O`Really Learning OpenCV.
- Para temas sencillos recomiendo utilizar OpenCV 1.1, si requieres algo más concreto o más depurado mirate la versión 2.0
Instalar codeblocks en Ubuntu 9.10
Feb 6th
Para el desarrollo de la aplicación sobre el teléfono Android utilizaré la IDE Code::Blocks. Es la que utilizo en el trabajo, me la han recomendado especialmente para C++.
A continuación un mini-tutorial para instalarla en Ubuntu 9.10
Actualizar paquetes:
$ sudo aptitude update
Instalación:
$ sudo aptitude install codeblocks codeblocks-contrib
Es recomendable instalar también:
$ sudo aptitude install build-essential gdb subversion
$ sudo aptitude install automake autoconf libtool
$ sudo aptitude install libgtk2.0-dev libxmu-dev libxxf86vm-dev
Para trabajar con wxWidgets GUI toolkit:
$ sudo aptitude install libwxbase2.8-dev wx2.8-headers libwxgtk2.8-dev wx-common
——————————
Estamos listos! Ahora para ejecutar, desde el menú de Aplicaciones>Programación o en línea de comando:
$ ./codeblocks
Nota: En Ubuntu 8.04 no funciona Code::Blocks IDE.
Content-based Image Retrieval (descripción y bibliografía)
Jan 16th
La Consulta de imágenes mediante ejemplo (Content-based Image Retrieval o CBIR) es un sistema de búsqueda para recuperar imágenes basándose en su contenido, refiriéndose en su contexto a colores, formas, texturas o cualquier otra información que pueda derivarse de la propia imagen.

En la prehistoria de los sistemas CBIR se utilizaban metadatos que consisten en palabras o frases cortas que tratan de definir lo que contenía una imagen. La inclusión de estos metadatos se realizaba manualmente y servía como índice y parámetro de recuperación. En la actualidad este proceso podría ocupar a toda la población de un país pequeño y sería extremadamente costoso. Se debe indexar la información para poder recuperarla de forma rápida y efectiva. Es por eso que los metadatos dejan de tener sentido para colecciones de imágenes grandes y toman fuerza los sistemas automáticos de indexación y recuperación basados en lo que contiene la imagen.
Must Read (Debes leer): Bases de Datos de Imágenes: Arquitectura de los Sistemas de…
1.1. Estado del Arte
Al tratarse de un área de gran importancia por su estrecha relación con el mundo de los buscadores y sistemas de recomendación se han realizado numerosas investigaciones al respecto. Ya en los ochenta se comenzó a referenciar los sistemas de bases de datos de imágenes como hacen H. Tamura y Yokoya [2] en su análisis de tendencias o la pregunta que enuncian Chang y Hu [1] Sistemas de Información de Imágenes: ¿Dónde vamos desde aquí?. Estos estudios muestran la fuerte necesidad de arquitecturas y algoritmos capaces de indexar y recuperar imágenes de forma rápida y segura sin consumos elevados de tiempo y coste de proceso.
Descripción Formal – Caso Concreto
Jan 14th
Se pretende diseñar y desarrollar un sistema capaz de determinar la existencia de una carátula de CD en una imagen, obtenida por un dispositivo móvil. Así como determinar el autor, el título del disco, el estilo musical e incluso reproducir las pistas del CD. Utilizando para ello un sistema de recuperación de información basado en contenido (CBIR). Este sistema recibirá tan solo la parte de la imagen en la que se encuentre la carátula. El algoritmo de detección de la carátula de CD y el aislamiento de la misma consistirá en la etapa de preprocesado de la imagen.
Un sistema CBIR coherente almacena exclusivamente información del mismo tipo. Si se trata de carátulas de CD contendrá información exclusiva sobre carátulas de CD. Por tanto el resto de objetos que aparezcan en la imagen contaminarán los resultados. Para obtener información fiable del sistema CBIR se le deben suministrar imágenes que única y exclusivamente contengan carátulas de CD.
Se ha tomado como caso concreto la detección y aislamiento de carátulas de CD en imágenes obtenidas por un dispositivo portátil por considerarse un reto concreto, complicado, comprensible, fácilmente acotable, usable y útil.
- Concreto: se trata de un cuadrado de doce por doce centímetros, su tamaño no varía excepto por la perspectiva y es totalmente plano.
- Complicado: existen millones de carátulas de CDs, algunas de ellas muy parecidas. Por otro parte es relativamente complicado detectar un objeto concreto en una imagen, asilarlo y determinar si es lo que se está buscando basándose tan solo en el tamaño y sin tener en cuenta color, textura y formas interiores.
- Comprensible: pese a tratarse de sistemas complejos para oídos inexpertos es fácil comprender su uso así como su utilidad.
- Facilmente acotable: se pueden limitar las colecciones de carátulas de CDs para delimitar la complejidad. Las imágenes de entrada pueden ser tanto o tan poco complicadas como se considere oportuno. El desarrollo puede ser de complejidad gradual creciente.
- Usable: al tratarse de un dispositivo móvil de uso común se podrá utilizar en cualquier lugar cuando se posea una conexión.
- Útil: para las personas con discapacidad visual diferenciar un CD de otro es realmente complicado si no lo han marcado previamente pues no suelen contener caracteres braille.
De manera general la arquitectura del sistema debe permitir la inclusión de nuevas formas a detectar y debe ser sencillo e intuitivo incluir nuevos objetos a detectar. Se pretende dotar de especial importancia al diseño, la modularidad y la reutilizabilidad serán factores críticos en esta inminente etapa.
Perdido entre papers…
Jan 6th
He andado un poco perdido, quizá abrumado por la tarea de recolectar e intentar leer y comprender todos los papers. He estado un poco desanimado por tener la vacaciones ocupadas con el Master.
Pero parece que ya me he centrado y he organizado las ideas. Creo que lo único que necesitaba era descansar bien y organizar primero mis ideas. Estoy trabajando y creo que voy bien, pero esto no ha echo más que empezar…
He perdido mucho tiempo y ahora tengo que recuperarlo.





