Mudanças entre as edições de "Aula03 SSC0715 2012(fosorio)"
De CoteiaWiki
m (Protegeu "Aula03 SSC0715 2012(fosorio)" ([edit=sysop] (indefinido) [move=sysop] (indefinido)) [p. progressiva]) |
|||
(3 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 104: | Linha 104: | ||
Stats1.cpp | Stats1.cpp | ||
+ | </pre> | ||
+ | |||
+ | '''AULA 03 - REFERÊNCIAS COMPLEMENTARES:''' | ||
+ | |||
+ | * BGSlibrary | ||
+ | OpenCV C++ Background Subtraction Library | ||
+ | [http://code.google.com/p/bgslibrary/] | ||
+ | |||
+ | * Wikipedia: Feature Detection | ||
+ | [http://en.wikipedia.org/wiki/Feature_detection_(computer_vision)] | ||
+ | |||
+ | * SIFT | ||
+ | [http://en.wikipedia.org/wiki/Scale-invariant_feature_transform] | ||
+ | [http://www.cs.ubc.ca/~lowe/research.html] | ||
+ | [http://cs.bath.ac.uk/brown/autostitch/autostitch.html] | ||
− | + | * Material de Aula: | |
− | + | [http://osorio.wait4.org/SSC0715/2012/Aula03/] | |
− | |||
− | |||
− | </ | + | <hr> |
+ | Atualizado em 20/08/2012<br> | ||
+ | [http://www.icmc.usp.br/~fosorio/ F.Osório]<br> | ||
+ | <br> | ||
+ | |||
+ | ''Voltar para [[Material_SSC0715_2012(fosorio)]]'' |
Edição atual tal como às 13h17min de 27 de agosto de 2012
SSC0715 - SENSORES INTELIGENTES - Agosto 2012 Aula 03 => Processamento de Imagens ******* 1. Segmentação por Tonalidade e Cor (Modelo de Cor) Limiar de Intensidade (Brilho: muito claro, muito escuro) Modelo de Cor (Estatística: média e desvio padrão) Ajuste de Limiares 2. Segmentação por Detecção de Bordas Algoritmo usado no Robô SRV1 Algoritmo de Segmentação baseado no OpenCV > Smooth, Laplace/Canny, Limiares/Binarização, Erosão/Dilatação > Determinação automática de parâmetros por Aprendizado/Otimização 3. Segmentação por Extração de BackGround (Modelo de Fundo da Cena) Treinamento do Fundo da Cena (background) Segmentação: Separação do Elemento Frontal da Cena (foreground) Permite o acompanhamento dos elementos móveis da cena (Tracking) 4. Tracking: Deteção de Atributos/Descritores de Elementos (Robust Features) > Algoritmo Harris Corner Detector (deteção de pixels "relevantes" na cena) > Algoritmos SIFT e SURF (invariante posição, escala, orientação e inclusive a variações pequenas de iluminação) - 1 pixel pode ser representado por uma assinatura de cerca de 200 bytes (quase única)! 5. Tracking de Movimentação: Fluxo Ótico Algoritmo: Método Lucas–Kanade Demo OpenCV: lkdemo >> Tracking por Features => Busca uma "assinatura" na Imagem http://en.wikipedia.org/wiki/Feature_detection_(computer_vision) - Corners Detectors (Harris) - Dectores de Retângulos e de Círculos (Hough Transform) - Detecção de Blocos (regiões) - Histogram Match - NCC: Normalized Cross-Correlation - Mean Shift - Detecção de Features Invariantes - SIFT Referências Complementares: Trabalhos Orientados por F.Osório (docs disponíveis) > Correlação: Leandro Facchinetti/Histogram (IC), Eduardo Righes/NCC (TCC) > SIFT/SURF: Rafael Jeffman (Mestrado), Leandro Couto (Mestrado) > Detecção de Bordas: Ignácio Magalhães (TCC), Matheus Compri (IC) > Modelos de Cores: Túlio Bender (Mestrado) ====================================================================== 1. Segmentação por Tonalidade e Cor (Modelo de Cor) Limiar de Intensidade (Brilho: muito claro, muito escuro) Modelo de Cor (Estatística: média e desvio padrão) Ajuste de Limiares Demos/Programas Exemplo: >> Exibindo um arquivo de Imagens (JPG, PNG, ...) Show-imagem.cpp [parâmetro: nome do arquivo] >> Exibindo a captura de uma Câmera (WebCam). OpenCV adquire imagens compatíveis com o V4L (video for Linux) Show-camera.cpp [parâmetro: nro. da câmera] >> Aplicando um limiar para seleção e alteração de cores na WebCam (limiar) em tempo real. O programa permite acessar os pixels da imagem obtida a partir de uma WebCam (ou de qualquer imagem no OpenCV usando IPLImage). As Cores próximas ao preto (muito escuras, com valores baixos) < 40 em R,G,B => Troca para Vermelho (0,0,255) na notação BGR adotada pelo OpenCV As Cores próximas ao branco (muito claras, com valores altos) > 220 => Troca para Azul (255,0,0) Note que os limiares foram definidos de modo empírico (a mão) Show-change.cpp >> Aplicando um limiar para seleção de cores por limiar em Vídeo Binarização da Imagem (Similar ao Show-Change porem aplicado em um vídeo) Show-avi-change.cpp >> Segmentação Por Intenside: Show-change é um exemplo desta técnica. >> Segmentação Por Cor: modelo de cores RGB (poderia ser baseado no HSV) 1. Selecionar uma região mouse-box.cpp => Exemplo de como selecionar um retângulo com mouse roi.cpp => Definindo uma Região de Interesse no OpenCV (ROI) draw-lines.cpp => Exemplo de como desenhar linhas na tela 2. Recortar a região selecionada: gera um arquivo denominado out.png Select.cpp => Exemplo de uma selação interativa de uma região a ser recortada da imagem 3. Dada uma região selecionada (ROI) é possível usar funções para estimar medidas (estatísticas) sobre o modelo de cores desta região (modelo => média e desvio padrão RGB ou HSV) Stats.cpp => Exemplo de determinação da média e desvio das cores 4. Segmentar a região baseado no modelo: baseado no modelo extraído do arquivo out.png realiza a segmentação de uma imagem (colors.jpg) Stats1.cpp
AULA 03 - REFERÊNCIAS COMPLEMENTARES:
- BGSlibrary
OpenCV C++ Background Subtraction Library [1]
- Wikipedia: Feature Detection
[2]
- SIFT
[3] [4] [5]
- Material de Aula:
[6]
Atualizado em 20/08/2012
F.Osório
Voltar para Material_SSC0715_2012(fosorio)