Thursday, October 21, 2010

Instalando OpenCV 2.1 no Ubuntu 10.10

Ubuntu 10.10
OpenCV 2.1


Status:
  • 2011.12.10 - Alterando procedimento para Ubuntu 11.04 e OpenCV-2.3.1.a.
  • 2011.07.26 - Corrigido procedimento de instalacão no Ubuntu 10.10. Exemplos em Python estão funcionando.
  • 2011.06.18 - Criado exemplo de wsrest_face_detect com get retornando dados xml da posicao e tamanho das faces detectadas, e gravando cada face num arquivo.
  • 2011.03.07 - Instalado e funcionando os exemplos em C (facedetect=+-600ms) e em Python (facedetect=+-400ms).

ToDo:
  • 2011.06.18 - Ver possibilidade de retornar a imagem no get junto com o xml.

Instalacão:
  • sudo apt-get install build-essential pkg-config libavcodec-dev libavformat-dev libjpeg62-dev libtiff4-dev cmake libswscale-dev libjasper-dev python-opencv  libgtk2.0-dev libcv-dev libhighgui-dev
  • wget https://launchpad.net/ubuntu/+source/gtk+2.0/2.22.0-0ubuntu1/+build/1977449/+files/libgtk2.0-dev_2.22.0-0ubuntu1_i386.deb
  • wget https://launchpad.net/ubuntu/+source/gtk+2.0/2.24.4-0ubuntu2/+build/2437921/+files/libgtk2.0-dev_2.24.4-0ubuntu2_i386.deb
  • cd /opt
  • wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.1/OpenCV-2.1.0.tar.bz2
  • sudo tar xvf OpenCV-2.1.0.tar.bz2
  • cd OpenCV-2.1.0

  • Ubuntu 11.04:
  • wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/...../OpenCV-2.3.1a.tar.bz2
  • Problema: O OpenCV2.3.1 foi instalado manualmente (p/fontes) em cima do OpenCV-2.1 nativo do ubuntu natty. Funcionaram alguns exemplos do opencv (c e python), aparentemente os problemas estavam relacionados com a interface gráfica e com o acesso as imagens das câmeras. Workaround: desinstalar opencv2.1 e apagar pasta opencv2.3, reiniciar, reinstalar opencv2.1 nativo do natty (synaptic libcv2.1 libcv2.1-dev libcv-dev libhighgui2.1 libhighgui-dev), testar o opencv (mesmo problema), reinstalar o opencv2.1 pelos fontes (deu erro no make em ), reinstalar opencv2.3.1 e testar (funcionou! n sei como ou porquê).

  • sudo cmake -D BUILD_PYTHON_SUPPORT=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D BUILD_NEW_PYTHON_SUPPORT=ON . (verifique se FFMPEG = 1)
  • sudo make (zzz.)
  • sudo make install

  • ### Ignorar linha abaixo para o Ubuntu 11.04
  • sudo mv /usr/local/lib/python2.6/site-packages/cv.so /usr/local/lib/python2.6/dist-packages/cv.so

  • sudo nano /etc/ld.so.conf.d/opencv.conf (new file with this content: /usr/local/lib)
  • sudo ldconfig
  • sudo gedit /etc/bash.bashrc
  • Acrescente no final do arquivo o conteúdo das duas linhas abaixo:
  • PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
  • export PKG_CONFIG_PATH
Compilando exemplos em C:
  • cd /opt/OpenCV-2.1.0/samples/c
  • sudo chmod +x build_all.sh
  • sudo ./build_all.sh
Testando exemplos em C:
  • cd /opt/OpenCV-2.1.0/samples/c
  • ./facedetect --cascade="/opt/OpenCV-2.1/data/haarcascades/haarcascade_frontalface_alt.xml" --scale=1.5 lena.jpg
  • ./facedetect --cascade="/opt/OpenCV-2.1/data/haarcascades/haarcascade_frontalface_alt.xml" --scale=1.5
Testando exemplos em Python:
  • synaptic (python-opencv python-dev)
  • cd /opt/OpenCV-2.1.0/samples/python
  • copiar pasta "OpenCV"/data para "OpenCV"/samples
  • ./facedetect.py 0
  • ./motempl.py (contorno e movimento)
  • ./laplace.py (contorno)

Links:

Saturday, October 16, 2010

Serial Port access with Python

Ubuntu 10.10
Python 2.6.6
PySerial 2.3.1


Status:
  • Funcionando web service (webpy-apache) que acessa a porta serial do GPS.
ToDo:
  • Configurar permissões de acesso nas portas seriais para acesso pelo WS rodando no Apache.
  • sudo chmod 666 /dev/ttyUSB0 (colocado no /etc/init.d/rc.local)
Instalacão:
  • synaptic (python-serial)
Teste:
  • import serial
  • ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1)
  • print ser.readline()
Info:

Tuesday, October 12, 2010

Instalando Ubuntu 10.10

Ubuntu 10.10


Status:
  • Ubuntu Instalado.

ToDo:
  • Instalar software (bibliotecas, componentes, ...) necessários ao Robô.

Gerar Mídia de Instalacão:
  • Download da imagem (ubuntu.com)
  • USB: System -> Administration -> Startup Disk Creator
  • CD: Right click iso file and 'Write to Disc'

Após a instalacão Padrão do Ubuntu:

Configurar rede wireless:
  • Se a placa wifi não foi detectada, instalar drivers:
  • apt-get install bcmwl-kernel-source
  • System -> Administrator -> Hardware Drivers -> escolha "Driver sem fio Broadcom STA", clique sobre ele, clique "ativar"
Configurar Driver de Vídeo:
  • Se não foi detectada corretamente, ou seja, resolucão máxima de 800x600.
  • para SIS 671/771:
  • download 32 bit driver sisimedia
  • download xorg para driver sisimedia
  • download ferramenta de controle placas sisimedia
  • Descompactar xorg.conf na pasta /etc/X11
  • Descompactar driver na pasta /usr/lib/xorg/modules/drivers
  • Instalar pacote .deb das ferramentas
  • restart
Instalar JVM:
  • Habilitar repositório canonical partner (http://archive.canonical.com/ubuntu maverick partner)
  • apt-get install sun-java6-jdk sun-java6-jre openjdk-6-jdk
  • Verificar versão do Java:
  • java -version
  • Verificar java path:
  • which java
  • Selecionar JVM default:
  • sudo update-alternatives --config java
Instalar Netbeans, Eclipse, Vlc, Chromium e FlashPlugin:
  • Synaptic (Netbeans, Eclipse, Vlc, vlc-plugin-pulse, mozilla-plugin-vlc, libavcodec-extra-52, Chromium, flashplugin-installer)
Instalar plugins do Eclipse:
  • SVN http://subclipse.tigris.org/update_1.2.x [item Subclipse completo]
  • FatJar http://kurucz-grafika.de/fatjar [tudo]
  • QuantumDB http://quantum.sourceforge.net/update-site [item core completo]
  • Maven http://m2eclipse.sonatype.org/update/ ou http://m2eclipse.sonatype.org/sites/m2e [item Maven Integration completo]
Instalar Plugins do Firefox:
  • REST Client
  • FireFTP
  • FireBug
  • Web Developer
  • DownThemAll
Instalar Drivers opcionais (QuickCam) para WebCam:
  • apt-get install qc-usb-source qc-usb-utils usbutils
Instalar Subversion:
  • Synaptic (SubVersion, RapidSVN GUI Client)
Instalar Joomla e seus prerrequisitos:
Instalar Python:
  • sudo apt-get install python python-dev python-setuptools python-espeak libespeak-dev python-serial python-numpy libusb libusb-dev
Instalar GStreamer:
  • sudo aptitude install gstreamer-tools gstreamer0.10-tools gstreamer0.10-x libgstreamer0.10-0 libgstreamer0.10-dev python-gst0.10 python-gst0.10-dev python-gst0.10-rtsp gstreamer0.10-ffmpeg
Instalar USB-Python:
Instalar Reconhecimento de Voz:

Links:

Thursday, September 30, 2010

Instalando Joomla no Ubuntu usando Lampp

Ubuntu 10.04
Xampp (Apache, Mysql, Php5) 1.7.3a
Joomla 1.5.20


Status:
  • Funcionando.

ToDo:
  • Configuracões Globais (URLs amigáveis, htaccess)
  • Instalar extensões (Mobile, Morfeo,

Info:


Instalacão:
  • Download Lampp
  • Download Joomla
  • sudo -i (muda usuário p/ root
  • cd /opt
  • tar zxvf /...../downloads/xampp-linux-1.7.3a.tar.gz
  • cd lampp/
  • ./lampp --help
  • ./lampp start (também inicia o ProFtpd)
  • cd htdocs/
  • mkdir portal
  • cd portal
  • unzip /...../downloads/Joomla_1.5.20-Stable-Full_Package.zip
  • cd ..
  • chown nobody:root portal -R
  • ./lampp restart
  • Mudar o parâmetro display_errors=off no arquivo /opt/lampp/etc/php.ini
Autostart:
  • sudo ln -s /opt/lampp/lampp /etc/init.d/lampp
  • sudo update-rc.d lampp defaults
Undo Autostart:
  • sudo rm /etc/init.d/lampp
  • sudo update-rc.d -f lampp remove

Links:

Sunday, September 5, 2010

Jython - Python para JVM

Ubuntu 10.04
Python 2.6.5
Jython 2.5.1rc3
Eclipse 3.5.2
Netbeans 6.8



Status:

ToDo:
  • Testar criar objeto em java a partir de uma classe jython compilada em bytecodes java (.jar).
  • Observar as diferencas (tempos de acesso, performance,..) usando PySystemState e PyInterpreter.
  • Outra possibilidade é usar Py4J, onde códigos Java e Python podem se comunicar em tempo de execucão, trocando objetos (via proxy), ou seja, comunicacão entre processos do interpretador Python e da JVM.

Instalacão:


IDE Plugins:


Info:

Tutorial:
  • Criar pasta do projeto com a estrutura abaixo:
  • - /servletProjectTest
  • --- NewJythonServlet.py (outros servlets devem ficar nesse nível de pasta)
  • --- /WEB-INF
  • ----- web.xml
  • ----- sun-web.xml
  • ----- /lib
  • ------- jython.jar
  • ------- servlet-api-2.5.jar
  • Compactar os arquivos e pastas dentro de servletProjectTest e renomear para .war
  • Deploy no glassfish

Links:

Sunday, August 29, 2010

SVN SubVersion - Versionamento de Conteúdo

Ubuntu 10:04
SVN Subversion
RapidSVN 00:12


Status:
  • 20111217 Acscentado procedimento de backup e restore entre servidores SVN.
  • Running SVN Server (svnserve -d -r /home/marcus/svn - dentro de /etc/init.d/rc.local)
  • SVN Client RapidSVN to svn: / / javasoftware.com.br.
ToDo:
  • See the possibility of using SVN for versioning the content of resources. A first level "cache" of the previous values of the state of a resource are maintained in the table (tbl_recursos - id: long and state: text) DBMS. The idea is to create a permanent repository for data, where they are stored in an optimized way to occupy little space for media.
  • View integration python-subversion.

Info:

SVN Server installation:
  • sudo aptitude install subversion

SVN clients:
  • sudo aptitude install RapidSVN - RapidSVN (Docs) (Linux or Windows)
  • Tortoise (Windows)

Linha de comando:
  • // Instalar o servidor SVN no LINUX pelo Gerenciador de Pacotes

  • // Criando repositório:
  • - mkdir /opt/snv_repo
  • - svnadmin create /opt/snv_repo

  • // Importando os dados iniciais:
  • - svn import ~/temp/first_project file://opt/snv_repo/trunk/first_project -m "initial import"
  • // Checkout
  • - svn checkout svn://localhost/trunk/first_project first_project

  • // Configurando o autostart:
  • ??? /etc/inetd.conf ???

  • // Configurar o acesso nos arquivos passwd e svnserve.conf
  • // arquivo /opt/svn_repo/conf/svnserve.conf
  • [general]
  • anon-access = none
  • auth-access = write
  • password-db = passwd
  • realm = Repositorio Modelo
  • // arquivo /opt/svn_repo/conf/passwd
  • [users]
  • marcus = 123

  • // Start o Subversion Server
  • // Startar como deamon.
  • - svnserve -d -r /opt/svn_repo
  • // Startar de modo automatico.
  • - svnserve -i
  • - e alterar o /etc/inetd.conf colocando o repositorio.

  • // Conecte ao repositório:
  • - svn://localhost/

  • // Backup e restore em servidores diferentes.
  • svnadmin dump /path/to/repository > repo_name.svn_dump
  • svnadmin create /path/to/repository
  • svnadmin load /path/to/repository < repo_name.svn_dump

  • // Import de um repositório SVN existente para outro servidor (eg GoogleCode)
  • // Google Code repository must be reset to revision 0.
  • svnsync init --username YOURUSERNAME https://YOURPROJECT.googlecode.com/svn file:///path/to/localrepos
  • svnsync sync --username YOURUSERNAME https://YOURPROJECT.googlecode.com/svn

  • // Mudar IP do servidor SVN na workcopy.
  • svn switch --relocate svn://OLD.IP.ADDR svn://NEW.IP.ADDR

Links:

Saturday, August 21, 2010

Instalando ARToolKit no Ubuntu 10.04

Ubuntu 10.04
Augmented Reality - ARToolKit 2.72.1


Status:
  • Estão funcionando, usando GStreamer, os exemplos do ARToolKit em C.

ToDo:
  • Imprimir landmarks do projeto SACRA para testar colisão entre objetos virtuais.
  • Usar exemplo exview.c (samples) para testar precisão do posicionamento informado pela API.
  • Tentar encapsular as funcões do ARToolKit para programar em Python, ou, se já existe esta integracão e exemplos de ARTolKit em Python.


ARToolKit Info:
Packages:

Instalacão a partir dos fontes:
  • wget http://downloads.sourceforge.net/project/artoolkit/artoolkit/2.72.1/ARToolKit-2.72.1.tgz
  • tar -zxvf ARToolKit-2.72.1.tgz
  • sudo apt-get install freeglut3-dev libxmu-dev libxmu6 libxi6 libxi-dev
Para usar V4L2 siga as instrucões abaixo. Para usar V4L ignore o passo abaixo (erro no make, nos dois casos):
  • wget http://img.vivaolinux.com.br/imagens/artigos/comunidade/artk-v4l2-2.72.1.20080427.patch
  • ou wget http://staff.aist.go.jp/k.kojima/artoolkit/artk-yuv422-v4l2-2.72.1.20090801.patch
  • patch -p0 -d . < artk-yuv422-v4l2-2.72.1.20090801.patch
  • ou patch -p0 -d . < artk-v4l2-2.72.1.20080427.patch
  • copie o conteúdo da pasta criada pelo comando acima para a pasta ARToolKit
Para usar GStreamer:
  • sudo aptitude install gstreamer-tools gstreamer0.10-tools gstreamer0.10-x libgstreamer0.10-0 libgstreamer0.10-dev python-gst0.10 python-gst0.10-dev python-gst0.10-rtsp gstreamer0.10-ffmpeg

Continuando a instalacão:
  • cd ./ARToolKit
  • ./Configure
Nesse ponto selecione o driver V4L, V4L2 ou GStreamer e responda as perguntas conforme listado abaixo:

  • Color conversion should use x86 assembly (choose 'n' for 64bit systems)?

  • Enter : n
  • Do you want to create debug symbols? (y or n) Enter : n
  • Build gsub libraries with texture rectangle support? (y or n)
  • GL_NV_texture_rectangle is supported on most NVidia graphics cards
  • and on ATi Radeon and better graphics cards.
  • Enter : y
Compilando o ARToolKit e gerando os exemplos:
  • make
Configurando variável do ambiente:
  • para V4L:
  • export ARTOOLKIT_CONFIG="-dev=/dev/video??? -palette=YUV420P -width=640 -height=480"
  • para V4L2:
  • export ARTOOLKIT_CONFIG="v4l2src device=/dev/video??? use-fixed-fps=false ! ffmpegcolorspace ! capsfilter caps=video/x-raw-rgb,bpp=24,width=960,height=720 ! identity name=artoolkit ! fakesink"
  • para GSTreamer:
  • export ARTOOLKIT_CONFIG="v4l2src device=/dev/video??? use-fixed-fps=false ! ffmpegcolorspace ! capsfilter caps=video/x-raw-rgb,bpp=24 ! identity name=artoolkit ! fakesink"
Testando os exemplos gerados (necessário exportar variável de ambiente, acima):
  • cd ./bin
  • ./videoTest
  • ./simpleTest
  • ./exview (câmera)
  • ./optical
  • ./collideTest (Distance)

Easy Mobile Augmented Reality using Python (Magnet, S60Nokia):
  • http://ojs.pythonpapers.org/index.php/tppm/article/view/95/95

Links: