Table des matières
Parlons d’abord des principaux enjeux liés à la mise en place de l’environnement.
- Cela doit être fait dans le dossier. Vous verrez qu'un CF_ROOT sera défini plus tard. Le chemin est très alambiqué lors du processus de configuration. Faites attention au changement de chemin.
- La difficulté réside dans la configuration de DCNv2
- Pour modifier le code
- Avant de configurer et d'exécuter, veuillez noter que l'environnement virtuel doit être activé.
1. Préparation de l'environnement
1.1 Serveur
- Utilisez MistGPU pour louer un serveur https://mistgpu.com
- Après avoir créé le serveur, connectez-vous. Ici, j'utilise la ligne de commande pour me connecter.
1.2 Créer un environnement virtuel
- Créez un environnement virtuel nommé "centerfusion" avec python version 3.7
conda create -n centerfusion python=3.7
- Après une création réussie, passez à l'environnement virtuel
conda activate centerfusion
1.3 Installer les frameworks nécessaires
- Référence https://github.com/mrnabati/CenterFusion , https://blog.csdn.net/ssj925319/article/details/124294911
- Installez pytorch, choisissez ici selon la version de votre serveur
pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html
- Installer COCOAPI
pip install cython; pip install -U 'git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI'
1.4 Code clone
-
Vous devez d'abord définir le chemin, sinon une série de problèmes se produira. Le serveur configuré par l'auteur est défini comme suit
-
Le répertoire par défaut du serveur GPU Mist se trouve sous /home/mist. Ici, je n'ai pas utilisé le paramètre officiel CF_ROOT=/path/to/CenterFusion. J'ai moi-même spécifié CF_ROOT=work/CenterFusion. Lors de l'utilisation de cette commande, le chemin est dans /home/ Sous brume, les étapes spécifiques sont les suivantes
CF_ROOT=work/CenterFusion
git clone --recursive https://github.com/mrnabati/CenterFusion.git $CF_ROOT
-
La commande de clonage ici est sujette aux raisons suivantes, car git dans mistgpu ajoute un agent d'accélération par défaut. Si vous rencontrez cette erreur, vous pouvez la télécharger manuellement sur le chemin CF_ROOT.
-
Entrez ensuite le chemin CF_ROOT, qui est /work/CenterFusion, exécutez la commande suivante (assurez-vous que l'environnement virtuel a été activé) et installez les packages requis
pip install -r requirements.txt
-
Configurez DCNv2 ci-dessous. Il peut y avoir DCNv2 dans l'entrepôt, mais il ne peut pas s'exécuter lors des tests réels. Utilisez la version suivante https://pan.baidu.com/s/1ua7gyzFn1nmTGuFYP1SHVg?pwd=1csg Code d'extraction : 1csg , téléchargez-le sur $CF_ROOT /src/lib/model/networks/DCNv2, puis décompressez-le, entrez DCNv2-pytorch_1.7 après décompression et exécutez la commande suivante
./make.sh
-
Une fois la compilation réussie, l'invite suivante apparaît :
2. Préparation des données
2.1 Préparation de l'ensemble de données
- Téléchargez l'ensemble de données nuscenes et décompressez-le dans le dossier CenterFusion/data/nuscenes. Ici, je n'ai utilisé que la mini partie de l'ensemble de données, https://www.nuscenes.org/nuscenes#download
- Téléchargez un fichier nommé v1.0-mini.tgz. Notez que la décompression doit être effectuée dans le répertoire CenterFusion/data/nuscenes. Il n'y a pas de répertoire nuscenes dans le dossier data. Créez vous-même un nouveau dossier. Si la commande de décompression est déjà
tar -zxvf v1.0-mini.tgz -C 路径
dans le répertoire CenterFusion/data/nuscenes, décompressez-le directement.
tar -zxvf v1.0-mini.tgz
2.2 Préparation du modèle de pré-formation
- Le modèle pré-entraîné est placé dans CenterFusion/models, et le modèle à utiliser peut être modifié dans test.sh
- Modèle pré-entraîné : https://pan.baidu.com/s/1OfuFhm3VrUCznsjQ6jKPuw?pwd=1rhr
3. Modifier le code
- Référez-vous à l'article de @Coke c'est un peu délicieux, https://blog.csdn.net/ssj925319/article/details/124294911 , et modifiez le code suivant :
- À l'heure actuelle, seuls des travaux de test ont été effectués. Veuillez vous référer à l'article ci-dessus pour le code modifié requis pour la formation.
- Modifiez CenterFusion/experiments/test.sh, –debug 4 représente la visualisation
- Modifiez CenterFusion/src/tools/convert_nuScenes.py, changez la ligne 56 en 3
- Modifiez CenterFusion/src/lib/utils/debugger.py, c'est-à-dire forcez la conversion en type int, reportez-vous à http://t.csdn.cn/smn4F
4. Fonctionnement
4.1 Conversion d'ensemble de données
- Exécutez CenterFusion/src/tools/convert_nuScenes.py pour convertir l'ensemble de données au format COCO
- N'oubliez pas de basculer l'environnement vers l'environnement virtuel créé avant d'exécuter
conda activate centerfusion
#进入到CenterFusion/src/tools/
python convert_nuScenes.py
- Une fois la conversion terminée, le répertoire annotations_3sweeps sera généré sous CenterFusion/data/nuscenes, qui stocke l'ensemble de données au format COCO.
4.2 Fonctionnement
- Revenez au répertoire racine de CenterFusion et exécutez le code suivant
bash experiments/test.sh
- La sortie visuelle se trouve dans le répertoire CenterFusion/exp/ddd/centerfusion/debug
5. Documents de référence
[1] Étapes de construction d'environnement ultra-détaillées du projet CenterFusion et opérations visuelles @Coke est un peu délicieux
[2] Reproduction du code CenterFusion @œufs à la coque sans sucre
[3] Configuration de l'environnement de l'algorithme CenterFusion et opération de démonstration CenterFusion : radar basé sur le centre et Fusion de caméras pour la détection d'objets 3D @HIT_Vanni