GS-IR (Information Retriever) se présente sous la forme de 3 applications, qui peuvent être déployées sur plusieurs machines :
- une application vert.x répartie, qui peut être déployée sur n’importe quel ordinateur relié au réseau ;
- un répartiteur de tâches, qui enregistre les tâches à exécuter et les répartit sur les ordinateurs disponibles ;
- une interface de gestion web, qui permet de consulter l’avancement du traitement des tâches et s’occuper de persister les données dans le moteur d’informations de Generic System.
Pour en savoir plus sur gs-ir, vous pouvez relire l’article de présentation : GS-IR – Introduction
Pré-requis
Avant toute chose, vous devez avoir cloné le dépôt GitHub genericsystem2015. Si ce n’est pas le cas, faites-le maintenant :
1 2 3 |
cd $HOME mkdir git && cd git git clone git://github.com/genericsystem/genericsystem2015.git |
Le projet gs-ir dépend du projet gs-cv (Generic System Computer Vision), qui utilise lui-même OpenCV et tesseract-ocr. Vous aurez donc besoin de télécharger et de compiler OpenCV et tesseract-ocr.
Installation d’opencv et de tesseract-ocr
Linux & Unix
Vous aurez besoin des dépendances suivantes pour compiler OpenCV :
1 2 |
sudo aptitude install build-essential cmake git sudo aptitude install libgtk2.0-dev libgtk-3-dev qt5-default pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo libharfbuzz-dev libfreetype6-dev |
Vous pouvez ensuite installer le dépôt officiel de tesseract-ocr :
1 2 |
sudo add-apt-repository ppa:alex-p/tesseract-ocr sudo aptitude update |
Si la commande add-apt-repository n’est pas trouvée, vous devez installez les paquets suivants :
1 |
sudo apt-get install software-properties-common python-software-properties |
Puis tenez à nouveau d’ajouter le dépôt.
Ensuite, vous pouvez lancer l’installation de tesseract-ocr :
1 |
sudo aptitude install tesseract-ocr libleptonica-dev tesseract-ocr-dev tesseract-ocr-deu-frak tesseract-ocr-fra |
Depuis une invite de commande, rendez-vous dans votre dossier $HOME :
1 |
cd $HOME |
Clonez les dépôts de opencv et opencv_contribs :
1 2 |
git clone git://github.com/opencv/opencv.git git clone git://github.com/opencv/opencv_contrib.git |
Il est nécessaire d’activer les bindings Java dans les modules ximgproc et text d’opencv_contrib pour pouvoir les utiliser dans gs-ir. Pour cela, éditez le fichier CMakeLists.txt dans les dossiers correspondants :
1 2 3 4 5 6 7 |
# For ximgproc cd $HOME/opencv_contrib/modules/ximgproc/ vim CMakeLists.txt # For text cd $HOME/opencv_contrib/modules/text/ vim CMakeLists.txt |
Dans chaque fichier édité, remplacez le texte WRAP python par WRAP python java, puis enregistrez le fichier et quittez (par défaut: <ESC> puis :wq <ENTER> ).
Créez un dossier $HOME/opencv/build puis rendez-vous dans ce dossier :
1 2 |
cd $HOME/opencv mkdir build && cd build |
Exécutez ensuite la commande cmake suivante :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
cmake \ -D CMAKE_CXX_FLAGS="-std=c++11" \ -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D BUILD_DOCS=On \ -D BUILD_EXAMPLES=On \ -D BUILD_SHARED_LIBS=Off \ -D BUILD_TESTS=Off \ -D BUILD_PERF_TESTS=Off \ -D WITH_QT=On \ -D Tesseract_INCLUDE_DIR=/usr/include/tesseract/ \ -D LIBLEPT_HEADERSDIR=/usr/include/leptonica \ -D OPENCV_EXTRA_MODULES_PATH=$HOME/opencv_contrib/modules \ .. |
Si des problèmes de dépendances apparaissent, installez les paquets manquants puis relancer cmake. Une fois la configuration terminée, consultez le log généré pour vérifier que les dépendances ont bien été prises en compte. En particulier, vérifiez que tesseract a bien été détecté, et que les wrappers JAVA seront compilés :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
-- freetype2: YES -- harfbuzz: YES -- Tesseract: YES -- -- General configuration for OpenCV 3.x.0-dev ===================================== -- [...] -- Java: -- ant: /usr/bin/ant (ver 1.9.6) -- JNI: /usr/lib/jvm/java-8-oracle/include /usr/lib/jvm/java-8-oracle/include/linux /usr/lib/jvm/java-8-oracle/include -- Java wrappers: YES -- Java tests: NO [...] -- Configuring done -- Generating done -- Build files have been written to: $HOME/opencv/build |
Il ne vous reste qu’à compiler avec make :
1 |
make -j $(($(nproc) + 1)) |
À la fin de la compilation, vous devriez disposer d’un fichier opencv-330.jar dans votre dossier $HOME/opencv/build/bin/.
Création de la librairie Java
Eclipse
Ouvrez les préférences d’Eclipse, puis allez dans le menu
Java -> Build Path -> User Librairies .
Ajoutez une nouvelle librairie que vous appellerez
Opencv-3.3.0 puis ajoutez un
*.jar externe. La bibliothèque d’OpenCV devrait se trouver dans votre dossier
$HOME/opencv/build/bin/opencv-330.jar .
Appliquez les changements, et fermez les préférences.
Lors de la première utilisation de la librairie native d’OpenCV dans votre projet, un message d’erreur pourra apparaître :
1 2 |
Java HotSpot(TM) 64-Bit Server VM warning: You have loaded library $HOME/opencv/build/lib/libopencv_java330.so which might have disabled stack guard. The VM will try to fix the stack guard now. It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'. |
Dans ce cas, suivez les indications proposées :
1 2 |
# OpenCV 3.3.0 execstack -c $HOME/opencv/build/lib/libopencv_java330.so |
Pour plus d’informations concernant l’ajout et la configuration d’une nouvelle librairie Eclipse, consultez la documentation officielle d’OpenCV.