Tabla de contenido
Primero hablemos de los principales problemas a la hora de configurar el entorno.
- Debe hacerse en la carpeta. Verá que se definirá un CF_ROOT más adelante. La ruta es muy complicada durante el proceso de configuración. Preste atención al cambio de la ruta.
- La dificultad radica en la configuración de DCNv2.
- Para modificar el código
- Antes de configurar y ejecutar, tenga en cuenta que el entorno virtual debe estar activado.
1. Preparación ambiental
1.1 Servidor
- Utilice MistGPU para alquilar un servidor https://mistgpu.com
- Después de crear el servidor, inicie sesión. Aquí uso la línea de comando para iniciar sesión.
1.2 Crear un entorno virtual
- Cree un entorno virtual llamado "centerfusion" con Python versión 3.7
conda create -n centerfusion python=3.7
- Después de una creación exitosa, cambie al entorno virtual.
conda activate centerfusion
1.3 Instalar los marcos necesarios
- Referencia https://github.com/mrnabati/CenterFusion , https://blog.csdn.net/ssj925319/article/details/124294911
- Instale pytorch, elija aquí según la versión de su servidor
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
- Instalar COCOAPI
pip install cython; pip install -U 'git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI'
1.4 Clonar código
-
Primero debe establecer la ruta, de lo contrario ocurrirán una serie de problemas. El servidor configurado por el autor se configura de la siguiente manera
-
El directorio predeterminado del servidor Mist GPU está en /home/mist. Aquí no utilicé la configuración oficial de CF_ROOT=/path/to/CenterFusion. Yo mismo especifiqué CF_ROOT=work/CenterFusion. Cuando uso este comando, la ruta es en /home/ Bajo la niebla, los pasos específicos son los siguientes
CF_ROOT=work/CenterFusion
git clone --recursive https://github.com/mrnabati/CenterFusion.git $CF_ROOT
-
El comando de clonación aquí es propenso a las siguientes razones, porque git en mistgpu agrega un agente de aceleración de forma predeterminada. Si encuentra este error, puede cargarlo manualmente en la ruta CF_ROOT.
-
Luego ingrese la ruta CF_ROOT, que es /work/CenterFusion, ejecute el siguiente comando (asegúrese de que el entorno virtual haya sido activado) e instale los paquetes requeridos
pip install -r requirements.txt
-
Configure DCNv2 a continuación. Puede haber DCNv2 en el almacén, pero no se puede ejecutar en las pruebas reales. Utilice la siguiente versión https://pan.baidu.com/s/1ua7gyzFn1nmTGuFYP1SHVg?pwd=1csg Código de extracción: 1csg , cárguelo en $CF_ROOT /src/lib/ model/networks/DCNv2, luego descomprímalo, ingrese DCNv2-pytorch_1.7 después de la descompresión y ejecute el siguiente comando
./make.sh
-
Una vez que la compilación se realiza correctamente, aparece el siguiente mensaje:
2. Preparación de datos
2.1 Preparación del conjunto de datos
- Descargue el conjunto de datos de nuscenes y descomprímalo en la carpeta CenterFusion/data/nuscenes. Aquí solo utilicé la mini parte del conjunto de datos, https://www.nuscenes.org/nuscenes#download
- Descargue un archivo llamado v1.0-mini.tgz. Tenga en cuenta que la descompresión debe realizarse en el directorio CenterFusion/data/nuscenes. No hay ningún directorio nuscenes en la carpeta de datos. Cree una nueva carpeta usted mismo. Si el comando de descompresión ya está
tar -zxvf v1.0-mini.tgz -C 路径
en el directorio CenterFusion/data/nuscenes, simplemente descomprímalo directamente.
tar -zxvf v1.0-mini.tgz
2.2 Preparación del modelo previo al entrenamiento
- El modelo previamente entrenado se coloca en CenterFusion/models y el modelo que se utilizará se puede modificar en test.sh.
- Modelo previamente entrenado: https://pan.baidu.com/s/1OfuFhm3VrUCznsjQ6jKPuw?pwd=1rhr
3. Modificar el código
- Consulte el artículo de @Coke es un poco delicioso, https://blog.csdn.net/ssj925319/article/details/124294911 y modifique el siguiente código:
- En la actualidad, solo se han realizado trabajos de prueba. Consulte el artículo anterior para conocer el código modificado requerido para la capacitación.
- Modifique CenterFusion/experiments/test.sh, –debug 4 representa visualización
- Modifique CenterFusion/src/tools/convert_nuScenes.py, cambie la línea 56 a 3
- Modifique CenterFusion/src/lib/utils/debugger.py, es decir, fuerce la conversión al tipo int, consulte http://t.csdn.cn/smn4F
4. Operación
4.1 Conversión de conjuntos de datos
- Ejecute CenterFusion/src/tools/convert_nuScenes.py para convertir el conjunto de datos al formato COCO
- No olvide cambiar el entorno al entorno virtual creado antes de ejecutar
conda activate centerfusion
#进入到CenterFusion/src/tools/
python convert_nuScenes.py
- Una vez completada la conversión, se generará el directorio annotations_3sweeps en CenterFusion/data/nuscenes, que almacena el conjunto de datos en formato COCO.
4.2 Operación
- Regrese al directorio raíz de CenterFusion y ejecute el siguiente código
bash experiments/test.sh
- La salida visual está en el directorio CenterFusion/exp/ddd/centerfusion/debug
5. Materiales de referencia
[1] Pasos de construcción del entorno ultra detallados del proyecto CenterFusion y operaciones visuales @Coke es un poco delicioso
[2] Reproducción del código CenterFusion @huevos pasados por agua sin azúcar
[3] Configuración del entorno del algoritmo CenterFusion y operación de demostración CenterFusion: radar basado en el centro y Camera Fusion para detección de objetos 3D @HIT_Vanni