Aula03 SSC0715 2012(fosorio)
De CoteiaWiki
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)