You are currently browsing the category archive for the ‘opencv’ category.

Depois da publicação do artigo sobre o AR.Drone na internet, estou em fase final da pesquisa sobre o desenvolvimento com o quadricópetor AR.Drone utilizando a sua API aberta para criar uma aplicação para controlar e processar com visão computacional (utilizando openCV) obtendo os frames da camera frontal na plataforma openSUSE 11.4 64 bit. Os recursos utilizadados foram a GPU, programação multi-bloco (TBB). Os fontes em breve no Open Built Service do (OBS), pois preciso terminar a resolução de vários bugs. Por enquanto fiquem com um screenshot e vídeo claro!. Agradecimentos ao Thiago e Estevão pela elaboração do vídeo…

Conforme mencionei no post anterior, deixo neste post o vídeo dos testes inicias na CPU. Tem um longo caminho para percorrer, mas o start já foi executado…

Começo hoje a minha jornada laboratorial sobre reconhecimento de padrões matemáticos para identificar e contar pessoas diante do vídeo ao vivo. O teste inicial foi um sucesso, porém agora o próximo passo é processar frames ao vivo na CPU e na GPU (CLARO). Após trabalhar com o conjunto de referências matemáticas e constatado a presença de um corpo humano, e se a distância entre os olhos (em pixel) for suficiente, posso processar automaticamente o reconhecimento facial assim não descartando nenhum frame em virtude do premunição matemática.

Meu próximo desafio é portar o legado laboratorial da biblioteca openCV para a plataforma Android, pois além de prover a portabilidade, os novos modelos apresentam o Tegra da NVIDIA no qual é possível integrar com o NDK da Google. Então deixo aqui a minha receita de bolo.

Compilação principal.
$ export ANDROID_NDK=/dados/neti/programas64/android-ndk-r5c
$ export ANDROID_NDK_TOOLCHAIN_ROOT=/dados/neti/programas64/android-ndk-r5c/toolchains
$ cd android/
$ sh ./scripts/cmake_android.sh ou cmake_android_armeabi.sh
$ cd build ou cd build_armeabi/
$ make -j8
$ make install

Compilação do código exemplo hello word.

$ cd opencv/android/apps/HelloAndroid
$ sh ./cmake_android.sh ou cmake_android_armeabi.sh
$ cd ./build_armeabi
$ make
$ adb push HelloAndroid /data
$ adb shell chmod 777 /data/HelloAndroid
$ adb shell /data/HelloAndroid
$ adb pull /mnt/sdcard/HelloAndroid.png

 Compilação da biblioteca.

$ cd android-opencv/
$ sh ./cmake_android.sh
$ cd build
$ make -j8

OBS: Verificar nos scripts a presença do parâmetro -DARM_TARGET=armeabi







Acabou de sair do forno a biblioteca openCV 2.3. As principais novidades que me interessam no momento, estão relacionada aos meus sofrimentos dos posts anteriores, ou seja utilização do NVIDIA CUDA 4 e suporte para NVIDIA na plataforma Android utilizando o NDK(esta tarefa não são para os fracos de coração). Otimização dos algoritmos utilizando TBB também foi implementada. O recurso do opencv_stitching para criar imagens panorâmicas foi disponibilizada com grandes melhorias. Agora entro para uma nova jornada, inclusive instalar o Android 2.3 no meu modesto DEXT com overclock. Em breve posts e mais posts…

Abaixo a linha de compilação...
cmake  -DCMAKE_BUILD_TYPE=RELEASE -DBUILD_LATEX_DOCS=OFF -DBUILD_OCTAVE_SUPPORT=ON \
-DBUILD_PYTHON_SUPPORT=ON  -DBUILD_SWIG_PYTHON_SUPPORT=ON \
-DBUILD_TESTS=ON -DENABLE_OPENMP=OFF -DENABLE_PROFILING=OFF \
-DBUILD_PYTHON_SUPPORT=ON  -DBUILD_NEW_PYTHON_SUPPORT=ON \
-DBUILD_EXAMPLES=ON -DINSTALL_C_EXAMPLES=ON -DINSTALL_OCTAVE_EXAMPLES=ON \
-DINSTALL_PYTHON_EXAMPLES=ON  -DWITH_1394=ON -DWITH_TBB=ON \
-DWITH_CUDA=ON -DWITH_FFMPEG=ON -DWITH_GSTREAMER=OFF \
-DWITH_QT=ON -DWITH_GTK=ON -DWITH_JASPER=ON -DWITH_JPEG=ON \
-DWITH_PNG=ON -DWITH_TIFF=ON -DWITH_V4L=ON -DWITH_XINE=ON \
-DENABLE_SSE=ON -DENABLE_SSE2=ON -DENABLE_SSE3=ON \
-DENABLE_SSSE3=ON -DENABLE_SSE41=ON -DENABLE_SSE42=ON -DWiTH_QT=ON ..

Após os testes com o a biblioteca openCV na GPU conforme o post anterior, agora compilei a openCV também com a lib TBB. Resultado: a aplicação que estava processando aproximadamente 120 FPS passou a processar mais de 170 FPS. Tudo isto em função da programação paralela. Escrito em C++.O TBB se encarrega na adaptação do software, ou seja determinando o número ideal de threads e tornando uma realidade a programação multinúcleo.

Após a conclusão da instalação do NVIDIA CUDA 4 conforme o post anterior, compartilho o finalização dos testes laboratoriais nas madrugadas e final de semana, onde utilizo a biblioteca openCV na plataforma openSUSE 11.4 utilizando a GPU.

Após o download dos fontes da biblioteca openCV, devemos fazer algumas pequenas alterações:

– Crie as pastas abaixo para manter a compatibilidade com o CUDA 3.2 e não perder muito cabelo:

/usr/local/cuda/NPP/SDK/common/lib64/
/usr/local/cuda/NPP/SDK/common/npp/include/

– Copie as bibliotecas do CUDA 4 SDK a seguir na pasta lib64:

libnpp.so (link simbólico)
libnpp.so.4 (link simbólico) 
libnpp.so.4.0.17

– Copie os arquivos .h do CUDA 4 SDK abaixo na pasta include:

nppcore.h  
nppdefs.h  
npp.h  
nppi.h  
npps.h  
nppversion.h

Agora um cmake para começar a brincadeira…

cmake \
        -DCMAKE_BUILD_TYPE=RELEASE \
        -DBUILD_LATEX_DOCS=OFF \
        -DBUILD_OCTAVE_SUPPORT=ON  \
        -DBUILD_PYTHON_SUPPORT=ON  \
        -DBUILD_SWIG_PYTHON_SUPPORT=ONF \
        -DBUILD_TESTS=ON \
        -DENABLE_OPENMP=OFF \
        -DENABLE_PROFILING=OFF \
        -DBUILD_PYTHON_SUPPORT=ON  \
        -DBUILD_NEW_PYTHON_SUPPORT=ON \
        -DCMAKE_INSTALL_PREFIX=%{_prefix} \
        -DLIB_INSTALL_DIR=%{_libdir} \
        -LIB_SUFFIX=64 \
        -DBUILD_EXAMPLES=ON \
        -DINSTALL_C_EXAMPLES=ON \
        -DINSTALL_OCTAVE_EXAMPLES=ON  \
        -DINSTALL_PYTHON_EXAMPLES=ON  \
        -DWITH_1394=ON \
        -DWITH_CUDA=ON \
        -DWITH_FFMPEG=ON \
        -DWITH_GSTREAMER=OFF \
        -DWITH_QT=ON \
        -DWITH_GTK=ON \
        -DWITH_JASPER=ON \
        -DWITH_JPEG=ON \
        -DWITH_PNG=ON \
        -DWITH_TIFF=ON \
        -DWITH_V4L=ON \
        -DWITH_XINE=ON \
        -DCUDA_NPP_LIBRARY_ROOT_DIR=/usr/local/cuda/NPP/SDK/ \
        -DENABLE_SSE=ON \
        -DENABLE_SSE2=ON \
        -DENABLE_SSE3=ON \
        -DENABLE_SSSE3=ON \
        -DENABLE_SSE41=ON \
        -DENABLE_SSE42=ON \
        .       

Para finalizar um video demonstrando um FaceFind COM UMA WEBCAM USB e o alto processamento utilizando a api NVIDIA CUDA 4 com openCV.

Disponibilizo neste post o vídeo publicitário sobre a tecnologia Certiface®  já mencionada aqui no blog, ou seja um serviço de certificação facial para o combate a fraude no mercado. Criado pela NETi SOLUÇÕES TECNOLÓGICAS, o produto foi desenvolvido baseado em algoritmos de reconhecimento facial, tratamento e otimização de imagem além de possuir escalabilidade e alta disponibilidade para trabalhar na ordem de grandeza de milhões de usuários.

Desenvolvi o plugin NagiosVision com o objetivo de criar alertas baseado em comportamentos processados direto do vídeo ao vivo (utilizando a biblioteca openCV junto ao nagios no que ele faz de melhor). Sendo assim, o Nagios pode reportar a detecção de padrão de objetos e faces presentes diante a webcam instalada no seu servidor.

Com este recurso, torna-se possível a contagem de pessoas, análise de fluxo, prevenção a assaltos, análise de trânsito podem serem monitorados em tempo real com um simples dispositivo de captura junto ao poder do Nagios.

O download pode ser efetuado no Source Forge : [sourceforge.net/…] ou na página oficial dos plugins do Nagios: [exchange.nagios.org/…]

Para iniciar, deixo uma receita de bolo sobre o projeto no Viva o Linux. Favor críticas e sugestões enviar para cabelo@opensuse.org” [referência: vivaolinux.com.br]. Abaixo o logo do projeto…

Acabo de testar a primeira versão alfa de um plugin do nágios, que detecta faces humanas utilizando os módulos de visão computacional da biblioteca OpenCV. Após a detecção utilizando o NSCA Cliente do nágios o servidor é notificado com alertas.

Os níveis de alertas são parametrizados de acordo com a distância da face. Após enviar a notificação ao Nágios, o plugin também envia um e-mail com a foto recém processada. Em breve um artigo no Viva O Linux explicando passo-a-passo todo o procedimento. Por enquanto deixo as ilustrações.

Arquivo

Statísticas

  • 624.585 Acessos

ATENÇÃO!

 °v° USE A FORÇA,
/(_)\ LEIA OS FONTES !
 ^ ^

openSUSE 11.4