Computer Vision http://www.dca.ufrn.br/~lmarcos/courses/visao No princípio • Advento dos computadores • Tudo era Computação Gráfica (ou Processamento Gráfico) Processamento Gráfico? 1st Qtr 2nd Qtr 3rd Qtr 4th Qtr 4th Qtr 1st Qtr 3rd Qtr 2nd Qtr 3 Sistemas Gráficos • • • • • CORE, GKS, GINO-F (padrões gráficos) X-Windows (interface gráfica MIT) OpenGL (biblioteca gráfica) DirectX (biblioteca gráfica) DirectFB (biblioteca gráfica) Evolução do PG • Os modelos mais simples e métodos ainda são muito usados devido a serem bem entendidos, e simples de implementação em hardware e também rápidos. • Nos concentraremos em métodos simples, mas também nos difíceis. Sub-áreas • Processamento de Imagens – Entrada: imagem; saída: imagem • Síntese de imagens – Entrada: representação 3D; saída: imagem • Análise de Imagens – Entrada: imagem; saída: forma e outras características 3D – Visão Computacional – Reconhecimento de padrões Processamento de Imagens • Envolve as técnicas de transformação de imagens em que tanto a imagem de partida quanto a imagem resultado apresentam-se sob uma representação visual; • As transformações visam, em geral, melhorar as características visuais da imagem, como aumentar o contraste, foco, reduzir ruídos e distorções. Síntese de Imagens • Ocupa-se da produção de representações visuais a partir das especificações geométrica e visual de seus componentes; • É uma das sub-áreas mais difundidas e geralmente confundida com a própria computação gráfica • Área de CAD usa síntese de imagens Análise de Imagens • Busca obter a especificação dos componentes de uma imagem a partir de sua representação visual. • Extração de características para Visão de Robôs • Extração de forma 3D a partir de imagens • Identificação de objetos 3D a partir de suas imagens (envolve reconstrução) Modelagem Geométrica Dados SI VC Análise Imagem PI Processamento Síntese Modelagem Geomética • Provê formas eficientes para manipulação, armazenamento e recuperação de dados geométricos no computador. • Pode ser usada visando interfacear tanto na síntese de imagens quanto na análise de imagens. • Essencial construir uma boa estrutura de dados visando eficiência. What is computer vision? • Primeira questão a ser respondida • Controvérsias • Outras questões que ajudam na resposta: – Que problemas temos intenção de atacar? – Como planejamos resolvê-los? Problemas de Visao Computacional • Computar propriedades do mundo real usando uma ou mais imagens digitais – Propriedades geométricas • Forma e posição de objetos ou sólidos – Velocidade, aceleração de objetos – Processamento de imagem presumido • Imagens temporárias calculadas das originais • Partes de imagens identificadas para explicitar a informação necessária para o cálculo objeto Ferramentas de Visao Computacional • Computador interpretando imagens • Análise de imagens • Sistema de Visão Computacional – Hardware de aquisição (adquire e armazena imagens num computador) – Processamento de imagens – Mostrar os resultados aos usuários ou a outros sistemas computacionais Hardware • • • • • • Parte mais importante, talvez Software pode se tornar hardware Iluminação em hardware Câmeras de alta resolução Redução e abstração de informação (HW) Restringindo a pose de objetos (zooming, movimento) Visao Computacional • Um conjunto de técnicas computacionais para estimar ou explicitar as propriedades geométricas e dinâmicas do mundo 3D a partir de imagens digitais As muitas faces da VC • Dificil determinar o escopo • Multidisciplinar • Expansão contínua – Novas aplicações aparecem todo o tempo • Áreas de aplicação e pesquisa – Visto à frente Disciplinas relacionadas • Contorno (algum entrelaçamento): – IA, Robótica, Processamento de Sinais, Reconhecimento de Padrões, Teoria de Controle, Psicologia, Neurociência, outras • Nasceu e cresceu muito rápido – Menos de 40 anos de existência Consequências • Objetivos, ferramentas e pessoas se entrelaçam com muitas outras disciplinas • Definição e escopo do que é Visão Computacional ainda são pautas de discussão (definições ainda estão sendo acertadas) Processamento de Imagens • Area de pesquisa muito vasta • Diferença de VC: – Relaciona-se com propriedades de imagem – Transformações imagem-imagem • Visão computacional visa o mundo 3D – Requer processamento de imagens (prévio) – Muita coisa entrelaça com PI Processamento de Imagens • Exemplos: – Melhoria em imagens – Compressão – Extração de características Reconhecimento de padroes • Técnicas para reconhecer e classificar objetos usando imagens digitais • Muitos métodos (2D e 3D) para objetos em poses restringidas • Não ideais para o mundo 3D (irrestrito) • IAPR (Internatinal Association for Pattern Recognition) foi criada para assumir este campo Fotogrametria (cartografia) • Obtenção de medidas precisas e robustas de imagens controladas • Menos overlap que PI e PR • Diferença principal: fotogrametria precisa de graus de precisao maiores que VC e nem tudo em VC é relacionado com medidas • Basear (olhar) em fotogrametria para se desenvolver um sistema de VC que faça medidas é uma boa idéia • ISPRS (International Society for Photogrametry and Remote Sensing) assumiu esta área Areas de pesquisa e aplicações • Areas de pesquisa – Numero grande de contribuições em Visão (publicações) • Areas de aplicação – Domínios em que Visão Computacional é usada, em conjunto ou não com outras técnicas, para resolver problemas do mundo real Areas de pesquisa • • • • Detecção de características (features) em imagens Representação de contornos Segmentação baseada em características Análise de imagens de profundidade (rangeimages) • Modelagem e representação da forma • Reconstrução a partir de imagens simples (shape from X, single cues) • Visão Estéreo Areas de pesquisa • • • • • • • • • Análise de movimento Visão colorida Visão ativa e com propósito (purposive) Invariantes (momentos, etc) Sistemas calibrados e não calibrados Detecção de objetos Reconhecimento de objetos 3D Localização de objetos 3D Arquiteturas de tempo real e alta performance Areas de aplicacao • • • • • • • Controle de qualidade e inspeção industrial Engenharia reversa Seguranca e vigilância Reconhecimento de face Reconhecimento de gestos Monitoramento de estradas Veículos autônomos (terra, água, espaço) Areas de aplicacao • • • • • • • Sistemas robóticos olho-mão (hand-eye) Visao Robótica (guia, servidor visual) Espaço e aplicações Aplicações militares Análise de imagens médicas Bancos de dados de imagens Realidade virtual, tele-presença e tele-robótica Conferências • ICCV: International Conference on Computer Vision (Brasil em 2007) • CVPR: Internacional Conference on Computer Vision and Pattern Recognition • ECCV: European Conference on Computer Vision • ICIP: International Conference on Image Processing • ICPR: International Conference on Pattern Recogntion • ICRA: international Conference on Robotics and Automation • SBAI: Simpósio Brasileiro de Automação Inteligente • SIBGRAPI: Brazilian Smposium on Computer Graphics and Image Processing • SBIA: Simpósio Brasileiro de Inteligência Artificial • EnRI: Encontro de Robótica Inteligente Journals • International Journal of Computer Vision • IEEE Transactions on Pattern Analysis and Machine Intelligence • Computer Vision and Image Understanding • Machine Vision and its Applications • Image and Vision Computing Journal • Journal of the Optical Society of America • Pattern Recognition • Pattern Recognition Letters Journals • IEEE Transactions on Image Processing • IEEE Transactions on Systems, Man and Cybernetics • IEEE Proceedings: Vision, Image and Signal Processing • Biological Cybernetics • Neural Computation • Artificial Intelligence • IEEE Intelligent Systems Books • Um montão: Computer Vision, Introductory Techniques to Computer Vision, Robot Vision, etc… Internet • www.cs.cmu.edu/~cil/vision (Computer Vision Page) • Peipa.essex.ac.uk (Pilot European Image Processing Archive) • iris.usc.edu/VisionNotes/bibliography/contents.html (Annotated Computer Vision Bibliography) • www.dai.ac.uk/daidb/staff/personal_pages/CVonli ne/CVentry.html (colecao de textos - Edinburgh) Softwares • • • • • • • OpenCV (free) Numerical Recipes (livro com softwares) Mescach (biblioteca numerica) Matlab Mathematica Scilab Khoros