Mudanças entre as edições de "Aula03 SSC0715 2012(fosorio)"
De CoteiaWiki
| Linha 104: | Linha 104: | ||
Stats1.cpp | Stats1.cpp | ||
| + | ====================================================================== | ||
| + | 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/] | ||
| + | |||
======== | ======== | ||
F.Osório | F.Osório | ||
| Linha 112: | Linha 131: | ||
</pre> | </pre> | ||
<hr> | <hr> | ||
| − | Atualizado em | + | Atualizado em 20/08/2012<br> |
[http://www.icmc.usp.br/~fosorio/ F.Osório]<br> | [http://www.icmc.usp.br/~fosorio/ F.Osório]<br> | ||
<br> | <br> | ||
''Voltar para [[Cronograma_SSC0715_2012(fosorio)]]'' | ''Voltar para [[Cronograma_SSC0715_2012(fosorio)]]'' | ||
Edição das 13h05min 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
[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/]
========
F.Osório
Agosto 2012
===========
Atualizado em 20/08/2012
F.Osório
Voltar para Cronograma_SSC0715_2012(fosorio)