Autor Tema: Vision artificial utilizando con MCUs  (Leído 14077 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado rolansel

  • PIC10
  • *
  • Mensajes: 25
Re: Vision artificial utilizando con MCUs
« Respuesta #15 en: 06 de Octubre de 2011, 20:11:14 »
jaja esos bancos. Otra opción es comprar una cámara de un celular la mayoría de estas cámaras se manejan por la interfaz SCCB
me parece que los celulares sony no lo usan, tal vez use la cámara del ipod  :-/


yo tambien tengo ahi un cmos de una camara de video, pero son un poco latosas la que tengo ahi es un BGA, asi que sin pistola de aire caliente no hay nada que hacerle.

en cambio las camera modules de ebay ya vienen adaptadas para proto y con lente incluida  :-/

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Vision artificial utilizando con MCUs
« Respuesta #16 en: 06 de Octubre de 2011, 21:37:36 »
Yo adquirí por medio de Ebay una OV7670, que quería usarlo con un LCD TFT. Pero erré en la compra de este último  :x tiene que ser uno a 8-bits para comunicarlos directamente cuando se quiera visualizar algo  :? Más adelante será  :P
No contesto mensajes privados, las consultas en el foro

Desconectado rolansel

  • PIC10
  • *
  • Mensajes: 25
Re: Vision artificial utilizando con MCUs
« Respuesta #17 en: 09 de Octubre de 2011, 13:05:52 »
ahora una breve introduccion a los C-mos espero no ser muy obvio.

El sensor cmos consiste en un arreglo de  celdas con  3 sensores sensibles a la luz, un microlente filtra  el haz incidente de tal forma que cada uno de los 3 sensores tiene una mayor respuesta hacia un color ya sea  rojo, verde o azul.

Una vez que la exposición termina el Cmos deja de sensar y evalúa la cantidad de fotones  incidentes una celda debido a esto la resolución del sensor es menor ya que solo un 50% de los pixeles del arreglo acepta información de color verde, 25% información de color rojo y 25 % de color azul.

Tras el periodo de exposición  los pixeles presentan un  voltaje y  al proceso de lectura de esos valores se le llama escaneo, este escaneo puede realizarse mediante direccionamiento X-Y o bien en esquema de transferencia de cargas donde un pulso de reloj incrementa la dirección actual de lectura mientras  la señal de referencia horizontal nos indica con estado lógico 1  cada que inicia una nueva fila.

 


Debido a la  configuración del arreglo en mosaico de Bayer se envía primero la línea con el patrón RGRGRG… y después BGBGBG…,  a este formato de salida se le conoce como Raw RGB. Después un convertidor analógico digital convierte la señal a  palabras de 8 bits.


Para conservar la fidelidad de los datos el resultado del escaneo debe ser almacenado inmediatamente en memoria, aquí se almacena primero la imagen de la matriz obtenida con el sensor para  efectuar el proceso de demosaicing, paso fundamental antes de proceder a al procesamiento de la imagen.

El demosaicing consiste en que  un sensor  de imagen tiene los  pixeles  ordenados de acuerdo a la configuración básica de la celda de Bayer

                                                  
Configuración Básica de la celda Bayer

Para obtener la información de los colores restantes se debe aplicar un algoritmo de interpolación los mas comunes  son

a) Duplicado de pixeles
b) Interpolación Bilineal
c) Interpolación Basada en gradiente
d) Interpolación Lineal de alta calidad

Desconectado RALF2

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2060
Re: Vision artificial utilizando con MCUs
« Respuesta #18 en: 09 de Octubre de 2011, 14:16:35 »
Que tal amigos!
Yo creo tener la solucion a sus problemas  :mrgreen:
Ya que siempre he querido colocarle una camara a mi robot para ver por donde anda asi que les coloco esto por si les sirve, vean el video abajo  :mrgreen:

Nota: Esto lo acabo de sacar del horno asi que no lo he probado aun, porque ademas, me faltan algunos condimentos  :D

Desconectado rolansel

  • PIC10
  • *
  • Mensajes: 25
Re: Vision artificial utilizando con MCUs
« Respuesta #19 en: 10 de Octubre de 2011, 02:03:20 »
jeje se acabo el dia y vuelvo a sentir que no avanzo un centimetro en fin los traumas al psicologo.


Tratar de crear un modelo para proteus del ov7670 y que sea "realista" esta medio lejos bueno me conformo con una burda simplificacion que ayude a comprender el funcionamiento

primero una escena de prueba, que tal el patron de colores de  la tele me fui a internet y busque uno, en JPG lo transforme a BMP de 24 bits



luego este algoritmo basado en la teoria de demosaicing para producir el RGB raw ejecutado en matlab  me produce una matriz identica a como seria la imagen en el CCD
%%%%%%%%%%%%%codigo matlab%%%%%%%%%%%%%%%%%
imagen=imread('barrasdecolor.bmp');
[fil,col,capa]=size(imagen);

for i=1:2:fil-2
    for j=1:2:col-2
         raw(i,j)=imagen(i,j,1);
         raw(i,j+1)=imagen(i,j+1,2);
         raw(i+1,j)=imagen(i+1,j,2);
         raw(i+1,j+1)=imagen(i+1,j+1,3);
    end
end

%%%%%%%%en cuanto pueda lo trasladare a C%%%%%%%%%%%

ahora faltaria hacer el algoritmo para enviar cada  byte de acuerdo al comportamiento del CCD real

Desconectado rolansel

  • PIC10
  • *
  • Mensajes: 25
Re: Vision artificial utilizando con MCUs
« Respuesta #20 en: 12 de Octubre de 2011, 23:44:46 »
Hola ayer me eche un clavadito en la datasheet de OV7670 y aunque no he tenido tiempo de avanzar en lo del modelo entendi mejor las especificaciones del sensor asi a grandes rasgo les platico

-comunicacion paralela es decir los pines D0-D7  proporcionan  la salida de datos un byte a la vez
-Se requiere una señal de reloj de 24 Mhz
-cuenta con 3 pines de salida con señales importantes:
      -Pclock indica cada ciclo la transmision de un nuevo pixel muestreado
      -Href nos indica la transmision de una nueva columna
      -Vsinc nos indica el inicio y termino de cada frame
se utilizan 2 pines de control  para escribir los registros de configuracion de la camara mediante comunicacion semejante a la I2C

bueno la comunicacion SCCB no la he revisado asi que se muy poco
al parecer tambien se va a necesitar una memoria pues al parecer el sensor solo sabe mandar frames una y otra vez refrescando la informacion tan rapido como dura un barrimiento, siendo asi hay que almacenarla en algun lugar para procesarla y extraer informacion a gusto  :)

Desconectado rolansel

  • PIC10
  • *
  • Mensajes: 25
Re: Vision artificial utilizando con MCUs
« Respuesta #21 en: 14 de Octubre de 2011, 23:30:19 »
Bueno habia comentado que el modulo lo unico que hace es mandar frames de forma infinita, aunque no me consta estoy casi seguro que asi es, solo se configura para funcionar al gusto del usuario ya sea que quieras VGA;QVGA;CIF formato de bytes YUV,raw RGB,Procesed RGB, con/sin  AGC,AEC, Correccion de lente etc.

la configuracion se usa por el puerto SCCB que tras leer la hoja de Datos resulta que es  un tipo de I2C con solo 3 bytes: Address del Sensor[7bits]+1bit de lectura/escritura+ACKN[1bit]
Registro del Sensor[8bits]+1bit ACKN
valor a setear[8bits]+1bit ACKN

bastante facil verdad?
espero que pronto mas gente se anime a experimentar con camaras  :-/