Voici un rapide tutoriel qui va couvrir la compilation et l’installation d’OpenCV en version 4.4 avec les modules de contribution et le support de CUDA.
CUDA nous permettra de lancer certaines fonctions sur le GPU, ce qui va nous faire gagner en performances. Pour les modules de contribution, on y trouve des fonctionnalités intéressantes comme ArUco, dont on reparlera dans un prochain article.
Pour notre exemple, nous allons utiliser Visual Studio 2019 community et CUDA 10.1
Voici donc les étapes à suivre pour compiler OpenCV :
1 – télécharger les sources
Pour commencer, il faut télécharger les sources d’OpenCV, qui sont disponibles sur leur site. Les sources des modules de contribution correspondantes sont accessibles sur GitHub.
Pour cette compilation, nous aurons aussi besoin de :
2 – Configurer avec CMake
CMake est utilisé pour transformer les sources d’OpenCV au format de projet Visual Studio, ce qui permettra sa compilation.
Une fois CMake lancé, les deux champs en haut de l’interface doivent être renseignés. Le premier demande le dossier des sources, là où elles ont été dézippées. Dans le second, nous entrons un dossier vide spécialement créé pour contenir le build.
Une fois les deux dossiers renseignés, et après avoir cliqué sur Configure, il va falloir modifier quelques lignes.
Tout d’abord celle nommée OPENCV_EXTRA_MODULES_PATH, dans laquelle il faut mettre le dossier modules compris dans le dossier dézippé des modules de contribution.
Ensuite, la case WITH_CUDA doit être cochée et le projet reconfiguré. Il est possible que des erreurs se produisent à cause de liens vers des dossiers non renseignés pour les libs CUDA. Dans ce cas il faudra les ajouter manuellement.
Il sera aussi nécessaire de télécharger la lib cudnn correspondant à la version de CUDA (https://developer.nvidia.com/cudnn)
Une fois le projet configuré sans erreur, il faut le générer et l’ouvrir dans Visual Studio, ce que l’on peut faire directement depuis CMake.
3 – Compiler avec Visual Studio
Dans Visual Studio, il va falloir générer la solution et s’armer de patience, la compilation de certaines parties en lien avec CUDA pouvant être très longues. Il faudra faire cette étape en Debug et en Release afin d’avoir les libs et dll dans les deux versions.
Une fois cette génération faite, il ne reste qu’à générer le projet INSTALL
Et voilà, il ne vous reste qu’à tester toutes ces libs !
Pour ceux que ça intéresse et qui n’ont pas le temps de compiler tout ça, je vous laisse ma version. Pour rappel, il s’agit d’OpenCV 4.4 avec CUDA 10.1. J’ai aussi compilé avec Qt pour avoir une fenêtre d’affichage de imshow plus pratique.