Face Detection
Face Detection Application
Este documento contém as duas versões para a aplicação:
Versão Android
Versão Desktop
Versão Android
Instalação da Biblioteca
Fazer download da versão para Android em https://opencv.org/releases/.
Desconpactar e mover para /usr/lib/:
$ unzip opencv-4.0.1-android-sdk.zip
$ sudo mv OpenCV-android-sdk/ /usr/lib/opencv-4.0.1-android-sdk
$ sudo ln -s /usr/lib/opencv-4.0.1-android-sdk/ /usr/lib/OpenCV-android-sdk
Projeto no Android Studio
Criar um projeto do tipo Empty Activity, linguagem Java chamado OpenCVApplication no Android Studio. Clique em Start a new Android Studio project.
Depois em Empty Activity e em Next.
Preencha as informações necessárias e clique Finish:
Name: OpenCVApplication
Package name: br.com.meslin.opencvapplication
Save location: /home/meslin/Documents/GoogleDrive/Doutorado/Android (ou um lugar qualquer sem espaço em branco na path e sem o nome do projeto)
Language: Java
Selecione File → New → Import Module… e use a path /usr/lib/OpenCV-android-sdk/sdk/java. Clique Finish.
Clique Finish.
Selecione File → Project Structure… e clique na aba Dependencies.
Clique no botão + localizado no alto, a esquerda, logo abaixo de All Dependencies e selecione Modules Dependency.
Clique com o botão direito do mouse em res dentro de app na aba Android e selecione New e depois Android Resource Directory. No campo Directory name: entre com raw. Em Resouce type: selecione raw. Deixe Chosen qualifiers: em branco. Clique em OK. Arraste o arquivo HAARCASCADE para dentro do diretório criado.
To include an external library (a JAR file), open build.gradle (Module: FaceDetector344.app) and add the library implementation description as shown below.
Code online available at Face Detector at GitHub.
Versão Desktop
Compilar a biblioteca
Antes de começar, verifique se os pré-requisitos obrigatórios estão instalados:
Apache ant
CMake
Se precisar instalar, use o seguinte comando:
$ sudo apt install -y ant cmake
Fazer download do código fonte a partir de https://opencv.org/releases/. Neste exemplo vamos utilizar a versão 4.4.0. Descompacte o arquivo ZIP em um diretório e crie o subdiretório build.
Descompacte o arquivo. Dentro do diretório descompactado, crie um novo diretório chamado Build. De dentro do diretório Build, execute o CMake:
$ unzip opencv-4.4.0.zip
$ cd opencv-4.4.0/
$ mkdir build
$ cd build/
$ cmake -D BUILD_SHARED_LIBS=OFF ..
$ cmake -D BUILD_SHARED_LIBS=OFF -D CMAKE_INSTALL_PREFIX=/opt/OpenCV ..
Verifique se as configurações de Java estão corretas: ant e JNI.
-- Java:
-- ant: /snap/bin/ant (ver 1.10.9)
-- JNI: /usr/lib/jvm/java-8-openjdk-amd64/include /usr/lib/jvm/java-8-openjdk-amd64/include/linux /usr/lib/jvm/java-8-openjdk-amd64/include
-- Java wrappers: YES
-- Java tests: YES
--
-- Install to: /usr/local
-- -----------------------------------------------------------------
--
-- Configuring done
-- Generating done
-- Build files have been written to: /home/meslin/Desktop/opencv-4.4.0/build
Se tudo estiver certo, execute o make:
$ make
O arquivo opencv-440.jar deverá estar criado dentro do diretório bin:
$ ls -l bin/opencv-440.jar
-rw-rw-r-- 1 meslin meslin 656045 nov 28 08:19 bin/opencv-440.jar
Crie uma biblioteca com esse arquivo no Eclipse. Uma sugestão é copiar o diretório build para /opt/OpenCV e criar a biblioteca a partir lá:
$ sudo cp -r * /media/meslin/4E7E313D7E311EE1/opt/OpenCV/build/
$ ls -l /opt/OpenCV/
total 0
drwxrwxrwx 1 root root 160 nov 30 15:07 build
Para utilizar a biblioteca OpenCV na linha de comando, utilize a seguinte sintaxe (atenção à ordem dos parâmetros: o -jar deve ser o último):
$ java -Djava.library.path=/opt/OpenCV/build/lib/:/opt/OpenSplice/HDE/x86_64.linux/lib/ -classpath /opt/OpenCV/bin/opencv-440.jar -jar CoreServer.jar
Configurar o Eclipse
Para criar a biblioteca com o OpenCV, clique com o botão direito do mouse no projeto, selecione Build Path, Configure Build Path... e clique na aba Libraries. A janela Properties for <seu projeto> vai abrir.
Clique no botão Add Library....
Na janela Add Library, selecione User Library e clique Next.
Na janela Add Library, clique no botão User Library .
Na janela Preferences (Filtered), clique no botão New....
Em New User Library,informe o nome da biblioteca em User library name::
OpenCV-4.4.0
E clique OK
De volta a janela Preferences (Filtered), selecione a biblioteca recém-criada e clique no botão Add External JARs....
Na janela JAR Selection, navegue até o JAR opencv-440.jar, selecione-o e clique em Open.
De volta a janela Preferences (Filtered), expanda o JAR recém-criado, selecione Native library location: e clique em Edit....
Entre com a path para a biblioteca do OpenCV:
/media/meslin/4E7E313D7E311EE1/opt/OpenCV/build/lib/
A biblioteca está criada, clique nos botões para terminar, aceitando as modificações.
Bonus: se estiver com problemas de compatibilidade entre o OpenCV e o OpenSlice (provavelmente estará), ainda dentro de Build Path expanda o item JRE System Library [JavaSE-1.8] e clique em Native library location:.
Clique em Edit... e entre com a path da biblioteca do OpenCV:
/opt/OpenSplice/HDE/x86_64.linux/lib/
Clique nos botões para terminar, aceitando as modificações.
Código fonte disponível em https://github.com/AlexandreMeslin/FaceDetectorContextNet.