Visão Computacional - Reconhecendo objetos na plataforma Linux via Webcam

Dispositivos de vídeo-captura ganham inteligência em função de algoritmos de visão computacional. Para tratar deste assunto, tal segmento demanda conhecimentos matemáticos, domínio com rotinas de processamentos de imagens e sólidos fundamentos sobre manipulação da API V4L2. Neste documento, veremos como utilizar todos estes conceitos com soluções Open Source.

[ Hits: 34.224 ]

Por: Alessandro de Oliveira Faria (A.K.A. CABELO) em 07/01/2013 | Blog: http://assuntonerd.com.br


Download e instalação



Aqui veremos algumas dicas dos pacotes com requisitos obrigatórios e opcionais. A decisão de utilizar todos estes pacotes fica a cargo de leitor e também da capacidade e configuração do hardware em utilização.

TBB (opcional)

Utilizei a biblioteca TBB por utilizar equipamento Intel, porém, o uso de bibliotecas similares é aconselhado. Vale a pena mencionar que a ausência deste recurso não permite a utilização de todos o núcleos presente no processador do seu equipamento. Então, a seguir as instruções de instalação:

wget http://www.threadingbuildingblocks.org/uploads/78/154/3.0/tbb30_018oss_src.tgz
tar -zxvf tbb30_018oss_src.tgz
$ make
$ cd examples/
$ make


CUDA: GPU NVIDIA (opcional)

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.

Mais informações sobre a instalação e configuração, no link a seguir:

Download e compilação da biblioteca OpenCV (obrigatório)

O download dos fontes da biblioteca encontra-se no link:
E obtenha o pacote OpenCV-2.4.3.tar.bz2, ou superior. As instruções de compilação e configuração a seguir, foram testadas na versão 2.X.X, então, as demais versões poderão sofrer pequenas modificações.

Com o comando wget, efetue o download e descompacte o pacote:

wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.3/OpenCV-2.4.3.tar.bz2
tar -jxvf tars/OpenCV-2.4.3.tar.bz2

Após a extração dos arquivos compactados, crie uma nova pasta na recém-criada, pelo comando tar. Entre neste novo diretório para a compilação dos fontes, seguindo as orientações a seguir:

cd OpenCV-2.4.3/
$ mkdir opencv.build
$ cd opencv.build


Parâmetros de compilação

Como partimos do princípio que todos os pacotes opcionais foram instalados, a seguir os parâmetros de compilação, ou diretivas de compilação, do comando cmake para utilizar os os recursos na biblioteca OpenCV:

cmake -DBUILD_DOCS=ON \
-DCMAKE_BUILD_TYPE=RELEASE -DBUILD_LATEX_DOCS=ON \
-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 \
-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 -DWITH_QT_OPENGL=ON \
-DCUDA_NPP_LIBRARY_ROOT_DIR=/usr/local/cuda/NPP/SDK/..


A seguir, utilize o comando make e make install para compilar e instalar a biblioteca OpenCV:

make -j 24

** A opção "-j" permite processar durante a compilação mais de uma tarefa simultaneamente;
*** Vá tomar um café...

Como superusuário, utilize o comando make install e ldconfig e pronto! Nesta etapa todos os requisitos foram instalados com sucesso:

# make install
# ldconfig


Página anterior     Próxima página

Páginas do artigo
   1. Visão Computacional - Breve introdução
   2. Download e instalação
   3. O sistema find-object
Outros artigos deste autor

IPCMSG: Comunicação inter-processos sem magia negra

fprint: Biometria livre, completa e total!

Instalando Ubuntu Touch no seu celular (Linux de bolso)

CUDA: Programe a sua NVIDIA

Android NDK: Desmistificando o acesso a códigos nativos em C

Leitura recomendada

Aceleração 3D Nvidia no Debian Etch

Tutorial GIMP: Preparando mapas para artigos científicos

Gerando gráficos para interfaces de rede com MRTG

Desenhando um avatar do Tux no InkScape

Gnome-shell sob a perspectiva da usabilidade

  
Comentários
[1] Comentário enviado por fabio em 07/01/2013 - 17:52h

Não sei de onde tu tira tanta coisa maluca pra implementar :)

Muito bom! Parabéns Cabelo.

[2] Comentário enviado por tsuriu em 07/01/2013 - 18:12h


[1] Comentário enviado por fabio em 07/01/2013 - 17:52h:

Não sei de onde tu tira tanta coisa maluca pra implementar :)

Muito bom! Parabéns Cabelo.


Parabéns Cabelo... O incrível é que eu tava mesmo procurando algo justamente desse tipo..

VLW MSM...

[3] Comentário enviado por removido em 07/01/2013 - 19:37h

Esse cara tem VISÃO!

Parabéns, Cabelo.

[4] Comentário enviado por eldermarco em 07/01/2013 - 22:26h

Sensacional! Quando eu crescer, quero ser que como ele! hahaha

[5] Comentário enviado por laerciomotta em 08/01/2013 - 10:35h

Maravilha, porem fiz os testes aqui, tudo funcionou mais o find_object não encontrou minha webcam..

Camera initialization failed! (with device 0)

Pelo cheese aparece a webcam normal...

Sistema: Ubuntu 12.04 w/ Gnome Shell (64 bits)
Notebook Dell Vostro v131

Parabens!
[]'s

[6] Comentário enviado por diego.agudo em 08/01/2013 - 21:40h

Mto bom o artigo!
Me diga uma coisa, você já testou se ele também serve para reconhecimento facial? Parece que a idéia é a mesma, não?!

[]s

[7] Comentário enviado por tiagofontoura em 12/01/2013 - 18:51h

beleza cabelo, sera que e muito pessado para raspberry pi?

[8] Comentário enviado por nsoluiz em 19/01/2013 - 10:11h

tche
bom dia
sei que o teu tempo é pouco, vou tentar ser direto…
1 – desculpa postar isso aqui, sei que nao é o lugar correto, se responder fico muito agradecido…
2 – comprei um pentv da infinitoo(http://www.infinitoweb.com.br/sistema/ck/files/downloads/infinito_pentv_driver.zip), gostaria de saber de ti de tem como um ubuntu desktop 12.10 ser um servidor de Streaming de tv, pode fazer um tutorial eu dar as dicas?
3 – não que eu deixei por ultimo, pra que tu aches que estou enchendo o teu ego, mas posso te garantir, tu é um bagal de 1ª estancia, muito bom o conteudo que tu posta no blog e no viva o linux, parabens.
muito obrigado pela atenção e desculpas novamente.

[9] Comentário enviado por marcosregato em 04/08/2014 - 03:22h

Deu erro na minha instalação, estou instalando OpenCV 2.4.9 no Ubuntu.Olha o erro

[ 70%] Building CXX object modules/legacy/CMakeFiles/opencv_legacy.dir/src/blobtrackinglist.cpp.o
[ 70%] [ 70%] Building CXX object modules/core/CMakeFiles/opencv_test_core.dir/test/test_ds.cpp.o
Building CXX object modules/imgproc/CMakeFiles/opencv_perf_imgproc.dir/perf/perf_houghLines.cpp.o
[ 70%] Building CXX object modules/imgproc/CMakeFiles/opencv_perf_imgproc.dir/perf/perf_threshold.cpp.o
Linking CXX shared library ../../lib/libopencv_legacy.so
[ 70%] Built target opencv_legacy
Linking CXX executable ../../bin/opencv_perf_core
[ 70%] Built target opencv_perf_core
Linking CXX executable ../../bin/opencv_perf_imgproc
[ 70%] Built target opencv_perf_imgproc
Linking CXX executable ../../bin/opencv_test_core
[ 70%] Built target opencv_test_core
make: ** [all] Erro 2

Alguém pode me ajuda ?

[10] Comentário enviado por CRACKER-FENIX em 16/10/2014 - 03:52h

parabéns um bom trabalho no artigo algo útil e eficaz mais uma vez o cabelo inovando :-)


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts