openCV com GPU

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.

Rapidshare, Megaupload e outros no modo console.

Plowshare foi a solução para o meus problemas de download no servidor, pois além de possuir um dependência muito pequena de pacotes, suporta: Megaupload, Rapidshare, 2Shared, 4Shared, ZShare, Badongo, Divshare.com, Depositfiles, Netload.in, Sendspace, Usershare, x7 e outros…

A utilização é simples:
$ plowup [SEU-ARQUIVO] megaupload
Starting upload (megaupload): /tmp/alessandro_de_oliveira_faria_cabelo.jpg
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 82682  100   212  100 82470     25   9781  0:00:08  0:00:08 --:--:--     0
http://www.megaupload.com/?d=SVQKAMNR
Para download:
$ plowdown [SUALISTA.TXT]
$ plowdown http://www.megaupload.com/?d=SVQKAMNR
Waiting 46 seconds... done         
File URL: http://www514.megaupload.com/files/b5fafa98abc6645074f71de9946531cd/alessandro_de_oliveira_faria_cabelo.jpg
Filename: alessandro_de_oliveira_faria_cabelo.jpg
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 81434  100 81434    0     0  11421      0  0:00:07  0:00:07 --:--:-- 16677
alessandro_de_oliveira_faria_cabelo.jpg

NVIDIA CUDA 4 no openSUSE 11.4

Neste post deixo os meus primeiros passos para a utilização da GPU aplicada aos recursos de visão computacional utilizando a tecnologia NVIDIA CUDA, uma arquitetura de computação paralela de propósito geral que tira proveito do mecanismo de computação paralela das unidades de processamento gráfico (GPUs) NVIDIA para resolver muitos problemas computacionais complexos em uma fração do tempo necessário em uma CPU.

Download:

O primeiro passo foi baixar o arsenal de pacotes do SDK da NVIDIA, ou seja o Developer Drivers for Linux (270.41.19), o CUDA ToolKit, o CUDA Tool SDK e para finalizar o GPU Computing SDK. Tudo isto esta disponível AQUI.

Sequência de instalação:

Após a instalação do drive com CUDA, execute o CUDA ToolKit , CUDA Tools SDK e para finalizar o GPU Computing SDK:

#  ./cudatoolkit_4.0.17_linux_64_suse11.2.run

Crie as variáveis ambientais:

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
PATH=$PATH:/usr/local/cuda/bin
export PATH LD_LIBRARY_PATH
# cudatools_4.0.17_linux_64.run
# gpucomputingsdk_4.0.17_linux.run
# cd ~/NVIDIA_GPU_Computing_SDK
# make

OBS1: Insira a linha a seguir no arquivo ~/NVIDIA_GPU_Computing_SDK/C/common/common.mk na linha 169

NVCCFLAGS   += --compiler-options -fno-strict-aliasing --compiler-options -fno-inline

OBS2: Durante a compilação no openSUSE 11.4, obtive o seguinte erro: “unsupported GNU version! gcc 4.5 and up are not supported!”

A solução foi ignorar o erro comentando as sequintes linha a seguir no arquivo /usr/local/cuda/include/host_config.h

//#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 4)
//#error -- unsupported GNU version! gcc 4.5 and up are not supported!
//#endif

Pronto neste etapa o NVIDIA CUDA foi instalado com sucesso, no próximo posta a compilação da lib openCV com o CUDA.

Relógio com Android.

“Este incrível relógio com 64Mb de RAM, Processador Freescale ARM9 IMX233 e nada menos que 4Gb de memória interna para armazenamento roda o sistema operacional da Google para portáteis: o Android! Além disso ele tem uma tela touchscreen de 1.54’’ e faz ligações quando conectado a um celular Android ou iPhone por um aplicativo. “

Mais informações AQUI!

ETEC: FÓRUM DE TECNOLOGIA E TENDÊNCIA EM INFORMAÇÃO E COMUNICAÇÃO

Nos dias 1º e  2 de junho de 2011, será realizado o Projeto IMC III denominado “Fórum de Tecnologia e Tendência em Informação e Comunicação”, promovido pelo curso Técnico em Informática da ETEC de Bebedouro.

“O Projeto IMC busca ampliar os olhares para a tecnologia que é aplicada em um mundo globalizado, competitivo e movido por mudanças tecnológicas. Dessa forma, constitui-se em um instrumento enriquecedor a toda comunidade empresarial, a empresas do setor e a profissionais da área. Além disso, compõe o conjunto de atividades complementares dos discentes do Curso Técnico em Informática e conta com a presença de palestrantes com vasta experiência no mercado de tecnologia, propiciando desenvolver o perfil do profissional de TI, com habilidades e competências para superar os novos desafios e mudanças presentes no mundo contemporâneo. Em tempos de mudanças, a informação se mantém como o bem mais valioso e é com essa informação que pretendemos aproveitar os dois dias de apresentações do Projeto IMC. Parabéns para a ETEC de Bebedouro.“