Download Aplicaciones de la Visión por Computadora
Document related concepts
no text concepts found
Transcript
Instituto Tecnológico de La Paz Maestría en Sistemas Computacionales Introducción a la Visión por Computadora Dr. Alejandro Israel Barranco Gutiérrez 13 de enero de 2014 Definiciones • Computer Vision = Geometry + Measurement + Interpretation (S. Nagabhushana). • Ciencia que estudia la interpretación de imágenes mediante computadores digitales. (José Andrés Somolinos Sánchez). • Consiste en la adquisición, procesamiento, clasificación y reconocimiento de imágenes digitales. (José Jaime Esquema Elizondo). ITLP, Dr. Alejandro I. Barranco G. Algunas relaciones de la visión por computadora con otras disciplinas ITLP, Dr. Alejandro I. Barranco G. Subcampos de la visión por computadora • • • • • Adquisición de imágenes Restauración de imágenes Fotogrametría Procesamiento de imágenes Reconocimiento de objetos ITLP, Dr. Alejandro I. Barranco G. Elementos de Percepción visual (Cámaras) CCD, APS y MEMS Charge-Coupled Device es un circuito integrado que contiene un número determinado de condensadores acoplados. Bajo el control de un circuito interno. Active Pixel Sensor. Sensor que detecta la luz basado en tecnología CMOS y por ello más conocido como Sensor CMOS. Microelectromechanical Systems. Es la tecnología electromecánica, micrométrica y sus productos. ITLP, Dr. Alejandro I. Barranco G. Filtro de Bayer El filtro, máscara o mosaico de Bayer es un tipo de matriz de filtros, rojos verdes y azules, que se sitúa sobre un sensor digital de imagen (CCD o APS) para hacer llegar a cada fotodiodo la información de luminosidad correspondiente a una sección de los distintos colores primarios. Se llama así por su creador, Bryce Bayer, de la empresa Eastman Kodak. ITLP, Dr. Alejandro I. Barranco G. Arquitectura CCD ITLP, Dr. Alejandro I. Barranco G. Comparación APS vs CCD Ventajas APS • Consumo eléctrico muy inferior • Económico (necesita pocos componentes externos) • Lectura simultánea de mayor número de pixeles • El conversor digital puede estar integrado en el mismo chip • Escaso Blooming ("Smear") o inexistente • Mayor flexibilidad en la lectura (Previsualización más rápida, vídeo,...) • Los pixeles pueden ser expuestos y leídos simultáneamente • Otras topologías posibles (el sensor SuperCCD de Fujifilm emplea una construcción en forma de panel (octogonal) para los píxeles) • Distintos tipos de píxeles (según tamaño y sensibilidad) combinables • Muy alta frecuencia de imagen en comparación a un CCD del mismo tamaño Desventajas • Menor superficie receptora de la luz por píxel • Menor uniformidad de los píxeles (mayor ruido de patrón fijo-FPN) • Efecto "jelly" o inestabilidad en la imagen con movimientos rapidos o flashes debido (se tuerce el video) al tipo de obturacion giratoria que utiliza. ITLP, Dr. Alejandro I. Barranco G. Cámaras omnidireccionales ITLP, Dr. Alejandro I. Barranco G. Elementos de Percepción visual (Cámaras) CCD, APS y MEMS Charge-Coupled Device es un circuito integrado que contiene un número determinado de condensadores acoplados. Bajo el control de un circuito interno. Active Pixel Sensor. Sensor que detecta la luz basado en tecnología CMOS y por ello más conocido como Sensor CMOS. Microelectromechanical Systems. Es la tecnología electromecánica, micrométrica y sus productos. ITLP, Dr. Alejandro I. Barranco G. Filtro de Bayer El filtro, máscara o mosaico de Bayer es un tipo de matriz de filtros, rojos verdes y azules, que se sitúa sobre un sensor digital de imagen (CCD o APS) para hacer llegar a cada fotodiodo la información de luminosidad correspondiente a una sección de los distintos colores primarios. Se llama así por su creador, Bryce Bayer, de la empresa Eastman Kodak. ITLP, Dr. Alejandro I. Barranco G. Cámara de color con prisma Con un prisma separa la luz en 3 rayos de colores distintos, requiere alineación precisa. ITLP, Dr. Alejandro I. Barranco G. Arquitectura CCD ITLP, Dr. Alejandro I. Barranco G. Comparación APS vs CCD Ventajas APS • Consumo eléctrico muy inferior al CCD • Económico (necesita pocos componentes externos) • Lectura simultánea de mayor número de pixeles • El conversor digital puede estar integrado en el mismo chip • Escaso Blooming ("Smear") o inexistente • Mayor flexibilidad en la lectura (Previsualización más rápida, vídeo,...) • Los pixeles pueden ser expuestos y leídos simultáneamente • Otras topologías posibles (el sensor SuperCCD de Fujifilm emplea una construcción en forma de panel (octogonal) para los píxeles) • Distintos tipos de píxeles (según tamaño y sensibilidad) combinables • Muy alta frecuencia de imagen en comparación a un CCD del mismo tamaño Desventajas • Menor superficie receptora de la luz por píxel • Menor uniformidad de los píxeles (mayor ruido de patrón fijo-FPN) • Efecto "jelly" o inestabilidad en la imagen con movimientos rápidos o flashes debido (se tuerce el video) al tipo de obturación giratoria que utiliza. ITLP, Dr. Alejandro I. Barranco G. Cámaras omnidireccionales ITLP, Dr. Alejandro I. Barranco G. Cámaras Rápidas 969 fps@640x64pixeles ITLP, Dr. Alejandro I. Barranco G. Cámaras con lámpara ITLP, Dr. Alejandro I. Barranco G. Neuroimagen ITLP, Dr. Alejandro I. Barranco G. Cámaras para trabajo en el agua ITLP, Dr. Alejandro I. Barranco G. Cámara Satelital ITLP, Dr. Alejandro I. Barranco G. Microscopio Electrónico ITLP, Dr. Alejandro I. Barranco G. Cámara Telescopio ITLP, Dr. Alejandro I. Barranco G. Cámaras Térmicas ITLP, Dr. Alejandro I. Barranco G. Ultrasonido ITLP, Dr. Alejandro I. Barranco G. Rayos X ITLP, Dr. Alejandro I. Barranco G. Representación de imágenes ITLP, Dr. Alejandro I. Barranco G. Imagen representada en una matriz Las cámaras digitales a color nos entregan 3 matrices La combinación de las tres matrices (RGB) nos da el efecto de una matriz a color ITLP, Dr. Alejandro I. Barranco G. Imagen a color Definimos a una imagen de color en RGB como: 𝐼 𝑥, 𝑦, 𝑧 ∈ 0 ≤ ℤ ≤ 255 ∀ 𝑥|0 ≤ 𝑥 ≤ 𝑘 , 𝑦|0 ≤ 𝑦 ≤ 𝑙 , 𝑧|0 ≤ 𝑧 ≤ 2 Donde: x,y,z son indices en las 3 dimensiones de la imagen y ℤ es el conjunto de los números enteros. ITLP, Dr. Alejandro I. Barranco G. Imagen en escala de grises • A partir de una imagen a color RGB, podemos obtener una versión de la misma en escala de grises: (𝐼𝑤 𝑥, 𝑦, 1 + 𝐼𝑤 𝑥, 𝑦, 2 + 𝐼𝑤 (𝑥, 𝑦, 3)) 𝐼𝑔 (𝑥, 𝑦) = 3 ITLP, Dr. Alejandro I. Barranco G. Manejo de imágenes en MATLAB I=imread('PNPC2012.jpg') subplot(4,1,1) imshow(I) subplot(4,1,2) imshow(I(:,:,1)) subplot(4,1,3) imshow(I(:,:,2)) subplot(4,1,4) imshow(I(:,:,3)) G(:,:)=(I(:,:,1)+I(:,:,2)+I(:,:,3))/3; figure(2) imshow(G) J = rgb2gray(I); figure(3) imshow(J) ITLP, Dr. Alejandro I. Barranco G. Digitalización de señales Diagrama a bloques básico de la digitalización Muestreo Retención Cuantización Codificación Este esquema recibe como entrada una señal analógica y entrega la versión digitalizada de esa señal de entrada. ITLP, Dr. Alejandro I. Barranco G. Muestreo Muestreo: El muestreo (en inglés, sampling) consiste en tomar muestras periódicas de la amplitud de onda. La velocidad con que se toman esta muestra, es decir, el número de muestras por segundo, es lo que se conoce como frecuencia de muestreo. Variable analógica Variable discreta N y (k ) (t nT ) y (nT ) n 1 ITLP, Dr. Alejandro I. Barranco G. Función impulso 𝛿 𝑡−𝑎 = 1 𝑝𝑎𝑟𝑎 𝑡 = 𝑎 0 𝑝𝑎𝑟𝑎 𝑡 ≠ 𝑎 ITLP, Dr. Alejandro I. Barranco G. Muestreo Se considera un tiempo de muestreo constante por ejemplo de 𝑇𝑠 segundos entonces la frecuencia de muestreo es: 1 𝑇𝑠 𝑓𝑠 = (Muestras por segundo) Fs=10; t=0:1/Fs:1; x=ones(1,length(t)); stem(t,x) 10 𝛿 𝑡 − 𝑛𝑇𝑠 𝑛=0 Muestreo en el dominio del tiempo y de la frecuencia ITLP, Dr. Alejandro I. Barranco G. Retención • Retención: (En ingles, Hold): Las muestras tomadas han de ser retenidas (retención) por un circuito de retención (Hold), el tiempo suficiente para permitir evaluar su nivel (cuantificación). • 𝑧 0 , de orden cero. • 𝑧 −1 , de orden uno. • 𝑧 −2 , de orden dos. ITLP, Dr. Alejandro I. Barranco G. Ejemplo de un cuantificador de 3 bits ITLP, Dr. Alejandro I. Barranco G. Cuantificación (Cuantización) Cuantificación: En el proceso de cuantificación, a un rango de valores de cada una de las muestras se le asigna un único valor de salida. ITLP, Dr. Alejandro I. Barranco G. Codificación Tensión Código 3 volts 0111 2.5 volts 0101 2 volts 0100 1.5 volts 0011 1 volt 0010 0.5 volts 0001 0 volts 0000 Codificación: La codificación consiste en traducir los valores obtenidos durante la cuantificación a un código; por ejemplo: Binario, HDB3, AMI, entre otros. ITLP, Dr. Alejandro I. Barranco G. Criterio de Nyquist If a function x(t) contains no frequencies higher than B hertz, it is completely determined by giving its ordinates at a series of points spaced 1/(2B) seconds apart. Si una función x(t) no contiene frecuencias mas altas que B, es completamente determinada dando sus ordenadas en series de puntos espaciados por 1/(2B) segundos. En otras palabras: Una señal x(t) de ancho de banda B (en banda base), debe ser muestreada a una frecuencia mínima de 2B para poder ser recuperada. 𝑓𝑟𝑒𝑐𝑢𝑒𝑛𝑐𝑖𝑎 𝑑𝑒 𝑚𝑢𝑒𝑠𝑡𝑟𝑒𝑜 = 𝑓𝑠 = 2𝐵 ITLP, Dr. Alejandro I. Barranco G. Recuperación de la señal x(t) se puede recuperar totalmente a partir de sus muestras mediante la siguiente función de interpolación: ∞ 𝑥 𝑘 = 𝑥 𝑛=−∞ 𝑛 𝑛 𝑔 𝑘− 𝑓𝑠 𝑓𝑠 Donde: 𝑔 𝑡 = sen(2π𝐵t) 2π𝐵t ITLP, Dr. Alejandro I. Barranco G. En resumen • Cuando digitalizamos una señal de ancho de banda B. Podrá ser reconstruida a señal analógica si es muestreada a 2B como mínimo. • La alta resolución de los niveles de cuantización reduce el nivel de ruido de esta etapa, aunque aumenta la cantidad de información a almacenar. ITLP, Dr. Alejandro I. Barranco G. Muestreo y reconstrucción % El prorama muestrea una señal senoidal adelantada 90 grados y la % reconstruye frec=2; %Frecuencia de la señal a muestrear fs=4; %Frecuencia de muestreo Ts=1/(fs); %Perido de muestreo t=0:Ts:1; %Tiempo discreto seno_s=sin(2*pi*frec*t+(pi/2)); plot(t,seno_s) hold on stem(t,seno_s) function g=Sa(B,tiempo) % Funcion Sa figure ti=0:Ts/30:1 sa=(sin(2*pi*frec*(ti))./(2*pi*frec*(ti))); plot(ti,sa) g=sin(2*pi*B*tiempo)/(2*pi*B*tiempo); end if(tiempo==0) g=1; else MuestrasR=50 % Cantidad de muestras para recostruir for k=1:MuestrasR for n=1:length(t) if(n==1) x(k)=seno_s(n)*Sa(frec,((k-1)/MuestrasR)-n*Ts); else x(k)=x(k)+seno_s(n)*Sa(frec,((k-1)/MuestrasR)-n*Ts); end end end k=0:1/MuestrasR:1-(1/MuestrasR) figure plot(k,x) ITLP, Dr. Alejandro I. Barranco G. Procesamiento en el dominio espacial Procesamiento Básico • • • • • • • • • • • Identidad Inversa (negativo) Umbral Umbral Binario (biumbral) Umbral Binario Invertido (biumbral invertido) Umbral de escala de grises Adición Sustracción Operaciones lógicas Operaciones de vecindad Histograma ITLP, Dr. Alejandro I. Barranco G. Identidad El procesamiento de imágenes generalmente se expresa como una función de transformación T: 𝑞 𝑥, 𝑦 = 𝑇(𝑝(𝑥, 𝑦)) donde: 𝑝 𝑥, 𝑦 : pixel de la imagen de entrada 𝑞 𝑥, 𝑦 : pixel de la imagen de salida Entonces la transformación identidad crea una imagen idéntica a la imagen de entrada. 𝑞=𝑝 ITLP, Dr. Alejandro I. Barranco G. Inversa o negativo 𝑞 = 255 − 𝑝 ITLP, Dr. Alejandro I. Barranco G. NEG=255-IR; Umbralización(Thresholding) 0 ∀ 𝑓(𝑥, 𝑦) ≤ 𝜇0 𝑏 𝑥, 𝑦 = 1 ∀ 𝑓(𝑥, 𝑦) > 𝜇0 ITLP, Dr. Alejandro I. Barranco G. umbralada=im2bw(IR,0.5); imshow(umbralada); Bi-umbral 𝑞= 255 ∀ 𝑝 𝑥, 𝑦 ≤ 𝜇1 𝑜𝑟 𝑝 𝑥, 𝑦 ≥ 𝜇2 0 ∀ 𝜇1 < 𝑝(𝑥, 𝑦) < 𝜇2 [M,N]=size(IR); biumbralada=ones(M,N); for i=1:M for j=1:N if (IR(i,j)<=55 || IR(i,j)>=200) biumbralada(i,j)=255; else biumbralada(i,j)=0; end end end ITLP, Dr. Alejandro I. Barranco G. Umbral Binario Invertido 𝑞= 0 ∀ 𝑝 𝑥, 𝑦 ≤ 𝜇1 𝑜𝑟 𝑝 𝑥, 𝑦 ≥ 𝜇2 255 ∀ 𝜇1 < 𝑝(𝑥, 𝑦) < 𝜇2 for i=1:M for j=1:N if (IR(i,j)<=100 || IR(i,j)>=200) biumbralada(i,j)=0; else biumbralada(i,j)=255; end end end ITLP, Dr. Alejandro I. Barranco G. Umbral de escala de grises 𝑞= 255 ∀ 𝑝 𝑥, 𝑦 ≥ 𝜇2 𝑝 𝑥, 𝑦 𝑜𝑡𝑟𝑜 𝑐𝑎𝑠𝑜 for i=1:M for j=1:N if (IR(i,j)>=254) umbraladagrises(i,j)=255; else umbraladagrises(i,j)=IR(i,j); end end end ITLP, Dr. Alejandro I. Barranco G. Adición 𝑆 = 𝑝(𝑥, 𝑦) + 𝑞(𝑥, 𝑦) S=IR+IR2; ITLP, Dr. Alejandro I. Barranco G. Sustracción 𝑅 𝑥, 𝑦 = 𝑝 𝑥, 𝑦 − 𝑞(𝑥, 𝑦) ITLP, Dr. Alejandro I. Barranco G. Operaciones lógicas Para realizar estas operaciones, es necesario contar con imágenes binarias (valores Falso y Verdadero). Las tablas de verdad de las operaciones lógicas son las siguientes: AND NOT OR p1 Ps p1 p2 ps p1 p2 ps 0 1 0 0 0 0 0 0 1 0 0 1 0 0 1 1 1 0 0 1 0 1 1 1 1 1 1 1 ITLP, Dr. Alejandro I. Barranco G. Operaciones de vecindad 1 2 1 0 0 0 −1 −2 −1 𝑝(𝑥 − 1, 𝑦 − 1) 𝑝(𝑥, 𝑦 − 1) 𝑝(𝑥 + 1, 𝑦 − 1) 𝑝(𝑥 − 1, 𝑦) 𝑝(𝑥, 𝑦) 𝑝(𝑥 + 1, 𝑦) 𝑝(𝑥 − 1, 𝑦 + 1) 𝑝(𝑥, 𝑦 + 1) 𝑝(𝑥 + 1, 𝑦 + 1) 𝑞 𝑥, 𝑦 = 1 ∗ 𝑝 𝑥 − 1, 𝑦 − 1 + 2 ∗ 𝑝 𝑥, 𝑦 − 1 + 1 ∗ 𝑝 𝑥 + 1, 𝑦 − 1 + 0 ∗ 𝑝 𝑥 − 1, 𝑦 + 0 ∗ 𝑝 𝑥, 𝑦 + 0 ∗ 𝑝 𝑥 + 1, 𝑦 + (−1) ∗ 𝑝 𝑥 − 1, 𝑦 + 1 + (−2) ∗ 𝑝 𝑥, 𝑦 + 1 + (−1) ∗ 𝑝 𝑥 + 1, 𝑦 + 1 ITLP, Dr. Alejandro I. Barranco G. Histograma figure imhist(IR) El histograma cuenta la cantidad de pixeles en cada nivel de gris de la imagen. ITLP, Dr. Alejandro I. Barranco G.