Trabalhos de laboratório ► Âmbito : manipulação e processamento de imagem e vídeo ► Objectivo: • • ► Não é possível perceber realmente processamento de imagem (ou qualquer outro tópico de engenharia), sem aplicar na prática os conceitos e verificar os resultados pessoalmente (“hands-on approach”) aprofundar os conhecimentos teóricos e desenvolver uma capacidade crítica em relação àquilo que pode ou não ser feito Grupos de 2 pessoas ano lectivo de 2006/2007 Televisão Digital LEEC 1 Trabalhos de laboratório ► Tópicos abordados • • Manipulação de imagens com formatos e espaços de côr distintos Processamento de imagem nas frequências ► ► • Segmentação de imagem ► ► • • • • • Detecção de contornos e linhas Separação de regiões Compactação utilizando transformadas Quantificação Codificação de entropia Compressão JPEG Segmentação de vídeo ► • Expansão/compressão da resolução espacial Filtragens para melhoramento da imagem Detecção de cortes de cena Detecção de movimento ► Estratégias de pesquisa ano lectivo de 2006/2007 Televisão Digital LEEC 2 Material, ferramentas de trabalho ► Todos os trabalhos consistem na implementação em software de pequenos algoritmos • • • ► A entrada/saída desses algoritmos são imagens (formato bmp, jpeg, YUV, etc.) ou vídeo (YUV, MPEG-1, MPEG-2) Os algoritmos devem apresentar no ecrân as imagens original e processada Podem ser desenvolvidos no MatLab ou com um compilador C/C++ Serão dispnibilizadas imagens e sequências na página da disciplina (http://www.fe.up.pt/~mandrade/tvd). ano lectivo de 2006/2007 Televisão Digital LEEC 3 Escolha e atribuição de trabalhos ► os alunos deverão organizar-se em grupos de dois antes de efectuar a escolha do trabalho ► Cada grupo deverá enviar até dia 28 de Setembro a indicação de três trabalhos da sua preferência, atribuíndo-lhes prioridades, para o endereço de email: [email protected] ► A atríbuição dos trabalhos aos alunos, será comunicada até ao dia 29 de Setembro ► A semana de 9 e 10 de Outubro é inteiramente dedicada aos trabalhos práticos ano lectivo de 2006/2007 Televisão Digital LEEC 4 Relatório ► Deverá ser entregue um relatório breve sobre o trabalho realizado (não mais de 6 páginas), descrevendo sumáriamente o trabalho que foi realizado, fazendo referência a: • • algoritmo desenvolvido; princípios muito gerais sobre o qual assenta o algoritmo (sem entrar em detalhes teóricos); • • o ambiente de trabalho; aspectos mais salientes da implementação e que tenham levado à experimentação de diferentes soluções; • resultados obtidos executando o algoritmo desenvolvido sobre diferentes tipos de imagens/sequências; • análise crítica (e comparativa) dos resultados em relação aos diferentes tipos de imagens. ano lectivo de 2006/2007 Televisão Digital LEEC 5 Entrega dos trabalhos ► o relatório deverá ser entregue em formato pdf ou word; ► deve incluir todos os ficheiros referentes ao relatório e aos programas desenvolvidos num único arquivo comprimido com a designação "TD-trab1grupoXX.zip"; ► Deve ser também entregue uma apresentação em powerpoint ou equivalente do trabalho. O ficheiro com essa apresentação deverá ser designado de "TDtrab1-grupoXX.ppt"; ► cada grupo deve enviar os dois ficheiros por email para [email protected] indicando como assunto da mensagem "TD-trab1-grupoXX"; ano lectivo de 2006/2007 Televisão Digital LEEC 6 Apresentação dos trabalhos ► Apresentações de 10 minutos no máximo ► O software pode ser posto a correr durante a apresentação para visualisação dos resultados ► Os programas desenvolvidos, juntamente com o relatório onde são apresentados os resultados e uma análise crítica da trabalho e os slides da apresentação, devem ser entregues 2 dias antes da apresentação ► Apresentação programada para a aula do dia 23 de Outubro. ano lectivo de 2006/2007 Televisão Digital LEEC 7 Lista de trabalhos propostos ► Filtragem espacial de imagem fixa e equalização de histogramas ► Filtragem no domínio das frequências ► Processamento de imagens a cores ► Influência do tamanho de bloco na DCT ► Avaliação da qualidade de compressão com base na DCT ► Segmentação de imagem fixa • • Detecção de pontos, linhas e contornos (fronteiras) Separação de regiões ► Aumento/redução de imagem no domínio das frequências ► Compressão de imagem • • ► Codificação JPEG segmentação de vídeo • ► Codificação de entropia – códigos de Huffman e codificação aritmética detecção de cortes de cena Técnicas de detecção de movimento ano lectivo de 2006/2007 Televisão Digital LEEC 8 Trabalho nº1 ► Filtragem espacial e modificação de histogramas de imagem fixa • • • • Desenvolver um programa para realizar a filtragem de imagens e a manipulação de histogramas. A filtragem espacial deve contemplar os processos de correlação e convolução e permitir seleccionar diferentes dimensões das máscaras dos filtros e dar valor aos coeficientes. O programa deve gerar o histograma de uma imagem e pedir ao utilizador os parâmetros para modificar o histograma. Deve incluir funcionalidades para a geração e manipulação de histogramas de côr. A aplicação a desenvolver no MatLab, deverá incluir um ambiente gráfico e incorporar opções para utilização de imagens a côr, utilizando diferentes espaços de côr, seleccionar diferentes tipos de filtros e variar parâmetros dos filtros. A aplicação deve apresentar no ecrân as imagens original e filtrada Pretende-se realizar um vasto número de experiências com um grande número de imagens e efectuar uma análise crítica aos resultados. O trabalho tem por objectivo aprender a utilizar filtros espaciais e histogramas para melhorar imagens fotográficas deterioradas ou para outro tipo de manipulação de imagem. ano lectivo de 2006/2007 Televisão Digital LEEC 9 Ambientes gráficos desenvolvido em anos anteriores ano lectivo de 2006/2007 Televisão Digital LEEC 10 Histogramas -exemplo ano lectivo de 2006/2007 Televisão Digital LEEC 11 Histogramas - equalização ano lectivo de 2006/2007 Televisão Digital LEEC 12 Trabalho nº 2 ► Filtragem no domínio das frequências • • • Desenvolver um programa para realizar a filtragem de imagens no domínio das frequências. A aplicação a desenvolver no MatLab, deverá incluir um ambiente gráfico e incorporar opções para utilização de imagens a côr, seleccionar diferentes tipos de filtros já disponíveis no MatLab e variar parâmetros dos filtros. A aplicação deve apresentar no ecrân as imagens original e filtrada Pretende-se realizar um vasto número de experiências com um grande número de imagens e efectuar uma análise crítica aos resultados. ano lectivo de 2006/2007 Televisão Digital LEEC 13 Trabalho nº 3 ► Processamento de imagens a cores • Neste trabalho deverá ser desenvolvido um programa que permita ► ► ► Utilizar diferentes espaço de côr para representar imagens Efectuar conversões de espaços de côr (RGB, YUV, YCrCb, etc) Efectuar operações de processamento de imagens a côr em diferentes domínios • Transformações de côr, processando os pixels de acordo com o seu valor de côr (e não de acordo com a sua posição espacial) • Filtragens espaciais dos planos de côr • Processamento dos vectores de côr • Pretende-se realizar um vasto número de experiências com um grande número de imagens e efectuar uma análise crítica aos resultados. ano lectivo de 2006/2007 Televisão Digital LEEC 14 Trabalho nº 4 ► Influência do tamanho de bloco da DCT • Neste trabalho deverá ser efectuado um conjunto de experiências variando o tamanho de bloco da DCT e medindo ganhos associados. Para isso deverão ser aplicados os algoritmos DCT e IDCT a várias imagens fixas, variando o tamanho de bloco (ex: 2x2, 4x4, 8x8, 16x16 e 32x32). Nota: A utilização de um tamanho fixo de bloco para explorar a redundância espacial em vídeo tem funcionado bem em esquemas de codificação que tratam o vídeo como informação de dimensões espaciais fixas. No entanto, num esquema de codificação orientado aos objectos como é o caso do MPEG4, a dimensão espacial da informação já não é fixa ano lectivo de 2006/2007 Televisão Digital LEEC 15 Ambiente gráfico desenvolvido em anos anteriores ano lectivo de 2006/2007 Televisão Digital LEEC 16 Trabalho nº 5 ► Qualidade de compressão com base na DCT • Com este trabalho pretende-se efectuar a avaliação de qualidade de imagens usando métodos distintos e comparar os resultados: ► ► • • de uma avaliação de qualidade de imagem baseada na medida do erro quadrático médio (RMSE – Root Mean Square Error or PSNR – Picture Signal to Noise Ratio) com uma avaliação que explora as capacidades do sistema visual humano, usando os coeficientes DCT da imagem. A método de avaliação da qualidade de imagem usando medidas objectivas é o mais utilizadao, embora esteja provado que muitas vezes valores baixos de erro não correspondem a boas qualidades subjectivas Investigar a influência da quantização na qualidade. ano lectivo de 2006/2007 Televisão Digital LEEC 17 Trabalho nº6 ► Segmentação de imagem – detecção de pontos, linhas e contornos • • Desenvolver um programa que implemente diferentes estratégias de detecção e extracção de contornos em imagens fixas (por ex., utilizando filtros FIR passa-alto, filtros FIR implementando a função Laplaciana ou estratégias espaciais recorrendo a templates como por exemplo o operador Sobel). Efectuar um vasto número de experiências com diferentes tipos de imagem utilizando os vários métodos e extrair conclusões. ano lectivo de 2006/2007 Televisão Digital LEEC 18 Trabalho nº7 ► Segmentação de imagem – separação de regiões • • • Pretende-se desenvolver um programa que divida uma imagem em diferentes regiões Para além de técnicas que fazem a detecção de contornos (trabalho anterior), utilizar também técnicas que identificam directamente essas regiões. Experimentar diferentes abordagens tais como “crescimento de regiões” ou “divisão e fusão de regiões”: ► “crescimento de regiões” - começa-se o processo escolhendo um certo número de pixels como sendo as “sementes” de regiões distintas. Vai-se analisando os pixels vizinhos e juntando à semente aqueles que exibem características semelhantes às da semente (por exemplo, intensidade luminosa) • ► Experimentar diferentes alternativas para identificar as “sementes” iniciais “divisão e fusão de regiões” – faz-se inicialmente uma divisão “cega” da imagem em regiões e analisa-se cada regiões para determinar se os pixels circunscritos exibem as mesmas características. Se não exibirem, divide-se essa região em regiões mais pequenas e repete-se o processo para cada uma delas. Se pelo contrário apresentam características semelhantes então agrupam-se regiões e repete-se o processo para esse agrupamento. • ano lectivo de 2006/2007 Experimentar diferentes características, isto é, diferentes critérios de semelhança Televisão Digital LEEC 19 Trabalho nº7 (2) ► Segmentação de imagem – separação de regiões • • • O programa deve extrair as regiões identificadas para ficheiros distintos Deve apresentar no ecrã as diferentes imagens Deve ser efectuadas experiências com um nº apreciável de imagens, exibindo conteúdos distintos e apresentar uma comparação de resultados ► ► ► dos diferentes métodos utilizando os mesmos parâmetros (isto é, o mesmo critério de semelhança) Dentro do mesmo método mas com critérios de semelhança distintos Entre imagens com conteúdos muito distintos ano lectivo de 2006/2007 Televisão Digital LEEC 20 Ambiente gráfico desenvolvido em anos anteriores ano lectivo de 2006/2007 Televisão Digital LEEC 21 Trabalho nº8 ► Expansão/redução de imagem no domínio das frequências • Desenvolver um algoritmo que produza uma imagem digital de dimensões a.N x a.M a partir de uma imagem de dimensão N x M pixels. As duas imagens devem mostrar o mesmo conteúdo. Pretende-se adoptar estratégias que trabalhem no domínio das frequências, tal como a utilização da transformada FFT (Fast Fourier Transform), para modificar as dimensões vertical e horizontal de uma imagem. Por exemplo para duplicar as dimensões de uma imagem: ► ► ► obter a FFT de uma dada imagem de dimensões N x M. A origem do espectro de frequências encontrar-se-á no centro da matriz bi-dimensional da FFT; Aumentar a dimensão da matriz para 2N x 2M, acrescentando zeros em torno da matriz original de dimensões N x M (a qual se situa no centro da nova matriz de dimensões 2N x 2M); obter a transformada inversa FFT utilizando a matriz expandida ano lectivo de 2006/2007 Televisão Digital LEEC 22 Ambiente gráfico desenvolvido em 2002/2003 ano lectivo de 2006/2007 Televisão Digital LEEC 23 Trabalho nº9 ► Codificação de entropia – códigos de Huffman ► ► ► ► desenvolver um programa que gere códigos de Huffman de imagens às quais foi aplicada uma transformada seguida de quantificação e que descodifique o código gerado. Os código s de Huffman permitem explorar a redundância existente entre os símbolos quantificados, permitindo assim obter um grau de compressão adicional Faz um ordenamento dos símbolos de acordo com a sua probabilidade de ocorrência antes de proceder à codificação testar com diferentes tipos de imagens, utilizando diferentes matrizes de quantização de acordo com o conteúdo da imagens de teste ano lectivo de 2006/2007 Televisão Digital LEEC 24 Trabalho nº10 ► Compressão de imagens fotográficas ► ► ► ► desenvolver um ambiente gráfico de simulação que permita a utilização sequencial dos blocos referentes a cada uma das operações do algoritmo JPEG; certificar-se de que existe a facilidade de escolher parâmetros (tais como tamanho de bloco ou matriz de quantificação); testar com diferentes tipos de imagens, utilizando diferentes matrizes de quantização de acordo com o conteúdo da imagens de teste; avaliar os resultados em termos de eficiência, efectuando uma análise crítica de acordo com o tipo de imagens utilizadas. ano lectivo de 2006/2007 Televisão Digital LEEC 25 Sistema de compressão de imagem Códigos Huffman Coeficientes AC Imagem descomprimida DCT Imagem Quantificação comprimida Códigos Run-Length Coeficientes DC ano lectivo de 2006/2007 Televisão Digital LEEC 26 Trabalho nº11 ► Segmentação de vídeo - detecção de cortes de cena • Detecção de cenas numa sequência vídeo utilizando diferentes técnicas: ► Avaliar e experimentar diferentes métodos para medir a actividade de imagem para imagem • Variância da imagem em termos de luminância • nº de contornos, • utilização de histogramas ou informação de côr para detectar alterações bruscas de côr • Valores dos coeficientes DCT • medida do erro nas técnicas de detecção de vectores de movimento ► Experimentar as técnicas “Minimum Spanning Tree” (MST) e “Nearest Neighborhood Elimination” (NNE) ano lectivo de 2006/2007 Televisão Digital LEEC 27 Trabalho nº12 ► Estratégias de pesquisa na detecção de movimento • Desenvolver algoritmos para efectuar detecção de movimento em sequência de imagens utilizandos blocos de 16 x 16 pixels. Pretende-se implementar e avaliar diferentes estratégias e efectuar uma análise crítica e selectiva aos resultados. ► ► ► ► ► ► imagens divididas em blocos de 16 x 16 pixels; para cada bloco determinar o bloco que melhor o aproxima na imagem anterior ("best- matching-block"), utilizando diferentes técnicas de pesquisa dos vectores de movimento (logarítmica, hierárquica, 3 passos, etc) e adoptando o critério do erro absoluto e/ou do erro quadrático médio; fazer a estimação de movimento utilizando a técnica de pesquisa total ("full search") e utilizar estes resultados como referência; produzir e apresentar no ecrân, um diagrama que apresente os vectores de movimento; obter as previsões da frame actual utilisando os vectores de movimento calculados com as diferentes técnicas; compare a imagem original com aquela reconstruída nos vários casos. . ano lectivo de 2006/2007 Televisão Digital LEEC 28 Alguns conceitos e exemplos ► O que é uma imagem ► Como se representa na forma digital ► O que é um histograma ► Como se realizam as operações com as imagens ► Alguns exemplos ano lectivo de 2006/2007 Televisão Digital LEEC 29 A imagem ► É uma função contínua bi-dimensional de intensidade de luz f(x,y) em que x e y são coordenadas espaciais e o valor de f em (x,y) indica a intensidade luminosa da imagem nesse ponto ► Uma imagem digital é a representação de uma imagem contínua f(x,y) através de uma matriz bi-dimensional de amostras discretas. A amplitude de cada amostra é mapeada numa escala finita de valores – quantificação – por forma a ser representada por um nº finito de bits ano lectivo de 2006/2007 Televisão Digital LEEC 30 Representação da imagem digital ► ► Através de uma matriz bi-dimensional (2-D) 1 Cada elemento da matriz 2-D é um valor discreto quantificado e é designado de pixel (de “picture element”) f’(0,0) f’(0,1) f’(0,N-1) f’(1,0) f’(1,1) f’(1,N-1) f’(M-1,0) f’(M-1,1) f’(M-1,N-1) f(x,y) = 1: no caso de uma imagem a cores teremos três matrizes ano lectivo de 2006/2007 Televisão Digital LEEC 31 Influência nº níveis ► O nº de níveis (nº de bits para representar cada amostra) influencia a definição da imagem (efeito de “contouring”) 32 níveis 64 níveis 128 níveis 256 níveis ano lectivo de 2006/2007 Televisão Digital LEEC 32 Tamanho da imagem e resolução ► Mesma dimensão espacial, menor resolução (nº de pixels) → pior qualidade N x N pixels ano lectivo de 2006/2007 N/2 x N/2 pixels Televisão Digital LEEC N/4 x N/4 pixels 33 Requisitos de armazenamento ► Imagem com L x N pixels, b bits por amostra (2b níveis de cinzento), c componentes de côr: R = L*N*b*c bits ano lectivo de 2006/2007 Televisão Digital LEEC 34 Histogramas ► Registra o nº de ocorrências de cada nível (de cada amplitude quantificada dos pixels) na imagem ► Pode ser visto como estimativa da função de densidade de probabilidade (pdf) dum processo aleatório de geração da imagem ► Para imagens com b bits: • • • Inicializam-se a zero 2b contadores; Verifica-se um a um, o valor de cada pixel da imagem; Ao encontrar o nível com o valor i, incrementa-se o contador i ano lectivo de 2006/2007 Televisão Digital LEEC 35 Histogramas - exemplo ano lectivo de 2006/2007 Televisão Digital LEEC 36 Histogramas -exemplo ano lectivo de 2006/2007 Televisão Digital LEEC 37 Histogramas - equalização ano lectivo de 2006/2007 Televisão Digital LEEC 38 Histogramas -equalização ano lectivo de 2006/2007 Televisão Digital LEEC 39 Representação da imagem digital ► Através de um vector - pode simplificar as operações matemáticas f’(0,0) f’(0,1) f’(0,N-1) f’(1,0) f’(1,1) f= f’(1,N-1) f’(M-1,0) f’(M-1,1) f’(M-1,N-1) ano lectivo de 2006/2007 Televisão Digital LEEC 40 Operações genéricas lineares ► Podem ser descritas por uma equação vectorial g=Hx f • • H é uma matriz não necessariamente quadrada g representa a imagem de saída ano lectivo de 2006/2007 Televisão Digital LEEC 41 Exemplo – redução 2:1 da imagem ► Subamostragem 2:1 horizontal e vertical ► Imagem de entrada dimensão 8 x 8, imagem de saída 4 x 4 Hx = Hy = ano lectivo de 2006/2007 0,5 0,5 0 0 0 0 0 0 0 0 0,5 0,5 0 0 0 0 0 0 0 0 0,5 0,5 0 0 0 0 0 0 0 0 0,5 0,5 Televisão Digital LEEC g = HyT x f x Hx 42 Exemplo - filtragens ► Cada pixel é substituído pela média pesada dos seus vizinhos (horizontais e verticais) Hx = Hy = ano lectivo de 2006/2007 0,5 0,5 0 0 0 0 0 0 0 0,5 0,5 0 0 0 0 0 0 0 0,5 0,5 0 0 0 0 0 0 0 0,5 0,5 0 0 0 0 0 0 0 0,5 0,5 0 0 Televisão Digital LEEC 0 0 0 0 0 0,5 0,5 0 0 0 0 0 0 0 0,5 0,5 0 0 0 0 0 0 0 0,5 43 Filtragem - exemplo filtrada original ano lectivo de 2006/2007 Televisão Digital LEEC 44 Filtragem - exemplo filtrada original ano lectivo de 2006/2007 Televisão Digital LEEC 45