Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Hola
Me gustaria que me dierais algunas pistas de como empezar en el procesado de imagenes aplicado al manejo de un robot autonomo. en mis proyectos de robot, uso PIC y sensores IR para la deteccion de objetos, switches fin de carrera, CNY70, en fin, lo basico, pero me gustaria ir un poco mas lejos y dotar a mi robot de vision para reconocer formas, colores, ....
Estaba pensando en empezar con algo sencillo. He estado mirando los hilos de los foros y he encontrado algunas referencias a vision artificial, pero no he encontrado pistas claras para alguien que quiere empezar conectando una camara a un microcontralador. Si pudierais indicarme datos sobre que camaras son las mejores y que esten disponibles en el mercado, cuales son los microcontroladores mas sencillos para empezar y que entornos de desarrollo y programacion.
Tengo dudas tan basicas como "si la camara esta conectada al microcontrolador que es quien procesa la imagen y da ordenes al robot, ¿Puedo ver en el PC la imagen como la ve el microcontrolador?" Entiendo que esto es necesario para poder debuggear el programa pero tambien para poder ver a traves de los ojos del robot.
Como veis, quiero tirar del hilo a ver hasta donde llego.
Muchas gracias por vuestra ayuda.
zapa
Ranganok estaria interesado en la camara jpeg...la cmucam3 es bastante cara para mi.
La camara se conecta al puerto UART de recepción del pic..pero a partir de ahi como se implementa el algoritmo para analizar la imagen...tienes algun codigo de ejemplo?
Como es que la puedes sacar por 35 euros + gastos de envio?
La cámara la compra la empresa en la que trabajo directamente a China para un producto que fabricamos por lo que sale a ese precio (el precio final te lo tengo que preguntar que depende de las divisas), los gastos de envío son los que toquen por enviártela por correos o alguna empresa de mensajería.
Ojo, la óptica es distinta, no es pin-hole sino con lente y abulta más.
S2
Ranganok Schahzaman
PD: no tengo ningún algoritmo de análisis de la imagen (sólo transmitimos la imagen sin analizarla) pero se podría mirar entre varios de hacer alguno y publicarlo aquí.
Bueno yo tambien soy de bcn asi que te la podria a buscar en mano... con el tema de ek algoritmo supongo que la imagen se envia como una matriz o 3 (rgb) de pixeles que se tendria que recorrer buscando por ejemplo una zona de esa matriz donde predomine el color deseado...yo en c he usado una webcam tipica pero dudo que un pic simple pueda procesar tantos datos. Que os parece?
Efectivamente Jim. Con total seguridad la cámara envíe la foto en formato RGB.
Un Pic como he dicho NO tiene la potencia necesaria. Los datos que expuse se obtendría una velocidad de sólo 1frame por segundo, lo que es completamente inútil para casi cualquier tarea... necesitamos de al menos 5frames/seg para empezar a hablar.
Yo he realizado algún que otro programa en mathematica, de cambio a blanco y negro, detección de un color, sustitución de colores... y si se quiere hacer bien, los colores se detectan como relación entre los tres colores que componen un pixel... por lo que realmente poco importa que el PIC sea capaz de multiplicar con 16 bits, ya que todo se hace en 8bits... al menos en principio ❓ .
Lo dicho, si quieres manejar una cámara te vas a gastar una pasta en el micro (a menos a priori) ¿Ya no sale tan mal de precio la CMUCamp3 eh?
Hace algún tiempo hice un detector de movimiento con una webcam: http://www.sistemasorp.net/detemovi/ " onclick="window.open(this.href);return false; y aunque simple, se necesita mucha memoria para procesar las imágenes, por ejemplo, una imagen de 320x240 de 24bits (3 bytes) son 225kbytes, y esa memoria pocos micros la tienen. Quizá en este caso se podría aplicar los hash difusos que son firmas que indican si los datos son parecidos entre ellos (en vez de comparar si son idénticos, que casi nunca lo son en cuanto a imágenes se refiere) y que cuyo único resultado es un valor númerico que se puede comparar en proporción con otros para saber la similitud que tienen. La ventaja es que no necesita mucha memoria porque va recorriendo los bytes y haciendo cálculos con ellos a la vez en vez de retenerlos todos.
En este artículo http://thedigitalstandard.blogspot.com/2009/11/why-fuzzy-hashing-is-really-cool.html " onclick="window.open(this.href);return false; se habla de ello y comparan dos ficheros donde sólo 2 bytes han sido cambiados. La herramienta, cuyo código es software libre es ssdeep: http://ssdeep.sourceforge.net/ " onclick="window.open(this.href);return false;