DN-DETR-Debug-Datensatz

Während des DINO-Experiments stellte der Blogger fest, dass die Erkennungsleistung von DINO-DETR bei Pkw und Lkw im aus drei Kategorien extrahierten COCO-Datensatz nicht ideal war. Nachdem er mit seinem eigenen Datensatz experimentiert hatte, stellte er fest, dass der AP-Wert nicht hoch war anders und es entspricht eher den Erwartungen, daher denke ich, ob es daran liegt, dass die zu DINO hinzugefügten negativen Beispielbeschränkungen das Erlernen des Hintergrunds erschweren und den Effekt schlecht machen, sodass DN-DETR für Experimente verwendet wird. Die folgende Abbildung ist das Rahmendiagramm des DN-DETR-Modells.

Fügen Sie hier eine Bildbeschreibung ein

Stellen Sie als Nächstes Ihren eigenen experimentellen Prozess vor.
Da DN-DETR auch Teil des DETR-Modells ist, müssen wir die Conda-Umgebung nicht mehr konfigurieren, sondern verwenden einfach die ursprüngliche Detr-Conda-Umgebung.
Als nächstes müssen wir das benötigte Modell auswählen und das Datensatzverzeichnis und die Konfiguration des Datensatzpfads ändern.
Modellname ist das Modell, das wir für das Training auswählen müssen. In DN-DETR bietet es vier Optionen. Da wir mit den Ergebnissen von DINO vergleichen möchten, wählen wir direkt das Modell aus, das den Ergebnissen des DINO-Modells am nächsten kommt.dn_dab_deformable_detr

parser.add_argument('--modelname', 
default="dn_dab_deformable_detr", type=str,  
choices=[
 'dn_dab_detr',
 'dn_dab_deformable_detr',                                                                         'dn_dab_deformable_detr_deformable_encoder_only',
 'dn_dab_dino_deformable_detr'
 ])

Coco-Pfad ist die Adresse der Datensatzdatei.

parser.add_argument('--coco_path', default="/home/ubuntu/datasets/",type=str, )

Dann ändern wir datasets/coco.pyden Datensatzkonfigurationspfad in .

PATHS = {
    
    
        "train": (root / "images/train2017", root / "annotations" / f'{
      
      mode}_train2017.json'),
        "val": (root / "images/val2017", root / "annotations" / f'{
      
      mode}_val2017.json'),
    }

Tatsächlich wurde in der Readme-Datei ein Beispiel angegeben, dessen Anforderungen wir nachvollziehen können.

python main.py -m dn_dab_detr \
  --output_dir logs/dn_DABDETR/R50 \
  --batch_size 1 \
  --epochs 50 \
  --lr_drop 40 \
  --coco_path /path/to/your/COCODIR  # replace the args to your COCO path
  --use_dn

Die Epoche des Bloggers ist auf 50, Stapelgröße = 2 eingestellt. Nachdem Sie diese Parameter geändert haben, führen Sie einfach main.py aus.
Wie alle DETR-Modelle beansprucht es während des Trainings viel Videospeicher.

Fügen Sie hier eine Bildbeschreibung ein

category names: ['truck', 'car', 'bus']

Fehler melden

Der Blogger konnte zuvor erfolgreich im Terminal ausgeführt werden, meldete jedoch den folgenden Fehler in Pycharm. Letztlich fehlte die entsprechende Linkdatei.

OSError:
/home/ubuntu/.conda/envs/detr/lib/python3.7/site-packages/nvidia/cublas/lib/libcublas.so.11:
Gemeinsam genutzte Objektdatei kann nicht geöffnet werden: Keine solche Datei oder kein solches Verzeichnis

Zuerst wechseln wir in /usr/localdas Verzeichnis, um unsere Cuda-Umgebung anzuzeigen, und dann auf ls view

ubuntu@VM-16-3-ubuntu:~$ cd /usr/local
ubuntu@VM-16-3-ubuntu:/usr/local$ ls
bin  cuda  cuda-11.2  etc  games  include  lib  man  miniconda3  qcloud  sbin  share  src

cuda-11.2 ist unser cuda-Umgebungsdateiverzeichnis. Führen Sie einfach den folgenden Code aus.

sudo ldconfig /usr/local/cuda-11.2/lib64

Führen Sie es erneut aus, das Problem ist gelöst.

Supongo que te gusta

Origin blog.csdn.net/pengxiang1998/article/details/129907288
Recomendado
Clasificación