GT-Video
Este Grupo de Trabalho visa suprir demandas relacionadas a algoritmos de processamento de video e imagens, incluindo filtros, efeitos especiais, reconhecimento de faces e objetos, tracking, reconstrucao 3D, e compressao. Este GT fundamentalmente involve programacao de solucoes de alta tecnologia, utilizando-se uma linguagem script (scilab ou python) para desenvolvimento e prototipagem, associada a C e C++ para o processamento pesado.
As responsabilidades deste GT incluem principalmente as demandas de processamento de video e imagens dos outros GTs. Tambem incluem a transferencia de alta tecnologia para a comunidade e consultoria de solucoes open-source de ponta para micro empresas brasileiras, exercendo papel chave para o desenvolvimento tecnologico do pais. Este GT tambem realiza pesquisa e desenvolvimento de novas solucoes na area de visao computacional, visando munir a populacao de tecnologias chave, de facil uso, que geralmente estao apenas na mao de entidades militares que realizam monitoramento. Talvez a populacao como um todo possa se apoderar desta tecnologia para ativamente realizar monitoramento por video, a seu favor, por exemplo para seguranca de comunidades usando webcams, flagrar abusos, detectar movimento, faces, etc.
Integrantes
- Ricardo Fabbri - Tech Lead atual
- Nivaldo Bondança
- Daniel Penalva
- Fefo Gorodscy
- Alexandre Negrão (GT secundario)
- Usuário:Gilson.beck
Colaboradores
Workflow
Para projetos praticos como a AirHackTable, o workflow Macambira eh o seguinte
- O PD controla tudo. Faremos o maximo no PD para a implementacao final.
- Se precisarmos de algoritmos que nao estao no PD, entao:
- Se estiver em uma biblioteca C/C++ tipo OpenCV, a gente incorpora num modulo PD
- Se nao tiver numa biblioteca, a gente escreve um modulo em C/C++
- Se o algoritmo ou solucao for uma ideia nova, meio experimental, e precisa ser prototipada bem rapidamente e desenvolvida no nivel de algoritmo, o Scilab/SIP e' usado. Python tambem pode ser usado eventualmente. Uma vez que a solucao se mostra promissora, ai abandonamos esse prototipo de script e so entao implementamos a solucao em C/C++ como um modulo PD.
Este workflow respeita o fato de que e' muito demorado programar em C/C++, porem e' necessario para fazer o sistema realtime, bem como para deixa-lo "scalable". So iremos programar em C/C++ quando ja esta claro o que programar.
Object Trackers
Os videos abaixo mostram alguns experimentos com object tracking com o Pd (puredata) e como OpenCV direcionados `a AirHackTable:
<video type="vimeo" id="36312053" width="552" height="470" allowfullscreen="true" desc="Official Pd/Gem color tracker we invented, Controling a Video Game - HiDef: vimeo.com/rfabbri/color-joystick"/> <video type="vimeo" id="36239477" width="552" height="470" allowfullscreen="true" desc="Official Pd/Gem color tracker we invented"/> <video type="vimeo" id="28717714" width="552" height="510" allowfullscreen="true" desc="Generic multiblob tracker in Pd by fefo"/>
<video type="vimeo" id="27831797" width="552" height="510" allowfullscreen="true" desc="Roubust circle hough transform tracker OpenCV by hick209 find the code here"/>
- Ver uns experimentos e umas ideias legais para deteccao por movimento/mudancas no ticket 140
Tarefas
A lista de tarefas mais atualizada esta no sistema trac #gt-video
A seguir, um esboco das tarefas, em ordem decrescente de prioridade:
- Compilar o Scilab do Git
- Brincar com o SIP
- Aprender algoritmos de processamento de imagens
- Ler o livro de Richard Szeliski sobre processamento de imagens.
- Comparar Python versus Scilab para prototipagem e desenvolvimento de algoritmos para processamento de imagens e video.
- Ferramentas C e C++ fundamentais para algoritmos visao computacional. Estas formam o nivel mais baixo de processamento que estaremos lidando, onde eh feito o processamento mais intensivo:
- Baixar e compilar [vxl.sourceforge.net VXL] com git svn. Essencial para efeitos mais complexos, deteccao, tracking, efeitos especiais, reconstrucao 3D
- Compilar OpenCV
- Instalar:
- mplayer, vlcplayer, kino, kdenlive, lives, libface, digikam, gthumb, cinelera, gimp, inkscape, kaffeine, libav, imagemagick, cmake, ddd, gitg, xine, R, octave, ipython, latex, Blender
- Entrar no irc:
- videolan
- gimp
- etc
- Vigiar esta pagina wiki. Vai na aba vigiar ao topo.
- Interagir com softwares para edicao de video (ver pagina principal Lab Macambira)
- Trac ticket #102
- baixar do repositorio via git, compilar
- compara-los
- talvez artigo de revisao e comparacao no freshmeat.net, linux magazine, etc.
- o mais importante: levantamento de demandas.
- Perguntar pro tedi qual efeito ele quer.
- Tirar dos outros GTs (GT-VideoConferencia, GT-WebStream, ou mesmo GT-PDF) algumas demandas de algoritmos fundamentais, tipo compressao para streamming, tracking, OCR, etc.
- Brincar com Python e PIL - aprender, fazer tutoriais.
Versão resumida
- Estudar:
- Algoritmos de Processamento de Vídeo/Imagem
- Livro do Richard Szeliski
- Anotar ideias e propostas de projetos!
- Brincar e corrigir bugs em softwares de edicao de video.
- AA (ABOVE ALL)
- Programing MotherFuckers!
Reuniões
Ver tambem http://pontaopad.me/gtvideoreuniao
Quarta-feira 27 de Julho
Horário: 15:00hs
Participantes: Equipe Lab Macambira
Ideias:
- Apresentar proposta e tarefas a serem feitas
- plano para o que fazer ate sexta-feira & beyond
Semana da Patria 2011
Tutoriais
- Videos legais sobre o que da pra fazer em kdenlives, cinelerra, etc:
PIL ( Python Imaging Library )
pil handbook
Nadia Alramli tutorial
Ideias para o Futuro
- Desenvolvimento do Kdenlive e Blender: ver Kdenlive_vs_Blender
- Escrever um livro "Computer Vision using Cheap Webcams"
Links
- Exemplo de interface visual com uma unica webcam:
<video type="youtube" id="v0srY37kkMw" width="420" height="345" desc="Exemplo de interface visual com uma unica webcam" frame="true" position="right" size="full" allowfullscreen="true"/>
- Pd para criacao de "instrumentos musicais" com a webcam: http://williambrent.conflations.com/pages/research.html (valeu, glerm)