Todos os posts de Cabelo

Avatar de Desconhecido

Sobre Cabelo

Sócio fundador da empresa OITI/NETi TECNOLOGIA fundada em 1996, teve seu primeiro contato com tecnologia em 1983 com 11 anos de idade na cidade de Bebedouro (interior de SP). Leva o Linux a sério, pesquisa e trabalha com biometria e visão computacional desde 1998. Experiência com biometria facial desde 2003, redes neurais artificiais e neurotecnologia desde 2009. Inventor da tecnologia CERTIFACE, da imagem Linux LiMobile e OSAR, mais de 79 palestras ministradas, 14 artigos impressos publicados, mais de 8 milhões de acessos nos 113 artigos publicados no Viva O Linux. Mantendor de projetos opensource, rpm oficiais e o guia FOCA Linux mobile (ePUb) desde 2010, Embaixador openSUSE, membro oficial: Viva O Linux desde 2003, openSUSE desde 2010, OWASP desde 2016 e Mozillians desde 2017.

OpenCV 2.3 lançada.

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 ..

Android 2.3 com overclock no Motorola DEXT

Vídeo do meu Motorola DEXT com Android 2.3 e também overclock, os créditos são atribuído ao Luiz Giovanini (o Stage da NETi TECNOLOGIA), pois ele além de indicar o ROM Manager, também indicou a imagem apropriada para o DEXT. Na minha opinião esta versão esta perfeita, o overclock funciona, o celular não reboota sozinho (coisa que acontecia com a imagem 2.1) e a performance esta demais… Ressalto que uma certa lentidão ocorre no video pelo fato da operação acontecer após o boot, depois o aparelho fica um avião… Agora já estou compilando a openCV para rodar no Android con NDK e no futuro junto ao Tegra ( tarefa para os fortes de coração )…

openCV, TBB e GPU (programação multinúcleo)

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.

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!