Configuration de Faster R-CNN sous Linux

Prérequis et étapes d'installasion :

Avant de commencer, assurez-vous de suivre les instructions spécifiques dans le fichier README de chaque bibliothèque que vous téléchargez.

  • Installation d'OpenCV : Téléchargez et installez la bibliothèque OpenCV. Des tutoriels sont disponibles pour vous guider.
  • Clonage du dépôt Faster R-CNN : Utilisez Git pour cloner le code source de Faster R-CNN sur votre système.

Configuration sous Python 3.5 :

  • Installation d'Anaconda : Il est recommandé d'installer Anaconda pour gérer votre environnement Python. Vous pouvez configurer les sources pour accélérer les téléchargements, par exemple en utilisant les miroirs de l'Université Tsinghua via la commande conda.
  • Clonage du dépôt Faster-RCNN_TF : Obtenez la version TensorFlow du modèle Faster R-CNN.
  • Création d'un environnement scientifique : Créez un environnement Conda dédié pour les calculs scientifiques. Installez les bibliothèques nécessaires comme NumPy, SciPy, et Cython.
  • Installation des dépendances scientifiques : Utilisez la commande conda install --channel <canal> <biblioth> pour installer l'environnement de calcul scientifique.
  • Gestion des erreurs d'incompatibilité Python : Si vous rencontrez des erreurs de type SyntaxError, cela peut indiquer un problème de compatibilité avec la version de Python. Ajustez le code source si nécessaire.
  • Copie des modules Cython : Copiez le fichier cython\_bbox.xxx.so du répertoire Faster-RCNN_TF vers le dossier lib/utils.
  • Modification des ensembles de données : Naviguez vers lib/datasets dans votre répertoire Faster-RCNN-TensorFlow-python3.5. Modifiez le fichier pascal\_voc.py selon les instructions détaillées dans les articles de blog pertinents.
  • Entraînement et démonstration : Lancez l'entraînement avec python train.py, suivi de l'exécution du script de démonstration python demo.py.

Préparation du jeu de données :

La structure des données est cruciale pour le bon fonctionnement du modèle. Voici un exemple de dipsosition :


-data
   - VOCdevkit2007
       - VOC2007
           - Annotations (fichiers XML générés manuellement avec des outils d'annotation)
           - ImageSets
               - Main
                   - test.txt
                   - train.txt
                   - trainval.txt
                   - val.txt
           - JPEGImages (images brutes)
 

Script MATLAB pour la génération des fichiers ImageSets :

Le script suivant, adapté à un environnement local, permet de générer les fichiers .txt nécessaires dans le répertoire ImageSets/Main.


% --- Paramètres à ajuster ---
xml_folder_path = '/chemin/vers/vos/annotations/VOC2007/Annotations';
txt_output_path = '/chemin/vers/vos/ImageSets/Main';
trainval_split_ratio = 0.8; % Pourcentage des données pour l'entraînement + validation
train_split_ratio = 0.8; % Pourcentage des données d'entraînement dans le split trainval

% --- Lecture des fichiers XML ---
xml_files = dir(xml_folder_path);
num_xml_files = length(xml_files) - 2; % Exclure '.' et '..'

% --- Partitionnement des données ---
% Générer des indices aléatoires pour les ensembles trainval et test
rng('shuffle'); % Initialiser le générateur aléatoire
indices_trainval = sort(randperm(num_xml_files, floor(num_xml_files * trainval_split_ratio)));
indices_test = sort(setdiff(1:num_xml_files, indices_trainval));

% Diviser l'ensemble trainval en ensembles train et val
num_trainval = length(indices_trainval);
indices_train = sort(indices_trainval(randperm(num_trainval, floor(num_trainval * train_split_ratio))));
indices_val = sort(setdiff(indices_trainval, indices_train));

% --- Écriture des fichiers .txt ---
file_trainval = fopen(fullfile(txt_output_path, 'trainval.txt'), 'w');
file_test = fopen(fullfile(txt_output_path, 'test.txt'), 'w');
file_train = fopen(fullfile(txt_output_path, 'train.txt'), 'w');
file_val = fopen(fullfile(txt_output_path, 'val.txt'), 'w');

for i = 1:num_xml_files
   % Extraire le nom du fichier sans l'extension
   [~, name, ~] = fileparts(xml_files(i+2).name);

   if ismember(i, indices_trainval)
       fprintf(file_trainval, '%s\n', name);
       if ismember(i, indices_train)
           fprintf(file_train, '%s\n', name);
       else
           fprintf(file_val, '%s\n', name);
       end
   else
       fprintf(file_test, '%s\n', name);
   end
end

% --- Fermeture des fichiers ---
fclose(file_trainval);
fclose(file_test);
fclose(file_train);
fclose(file_val);

disp('Génération des fichiers ImageSets terminée.');
 

Des erreurs lors de l'installation ou de la configuration peuvent survenir. Une recherche rapide sur internet permet généralement de trouver des solutions pour la plupart des problèmes courants.

Étiquettes: faster r-cnn TensorFlow Python OpenCV anaconda

Publié le 4 juin à 19h23