Hinweis: Dieses Projekt ist nicht mehr aufrechterhalten und ist möglicherweise nicht mit dem neuesten Pytorch (nach 0.4.0) kompatibel.
Dies ist eine Pytorch -Implementierung von Yolov2. Dieses Projekt basiert hauptsächlich auf Darkflow und Darknet.
Ich habe eine Cython -Erweiterung für die Nachbearbeitung und multiprocessing.Pool für die Bildvorverarbeitung verwendet. Das Testen eines Bildes in VOC2007 kostet etwa 13 ~ 20 ms.
Weitere Informationen zu Yolo und Yolov2 finden Sie auf der Projektseite und dem Papier: YOLO9000: Besser, schneller, stärker von Joseph Redmon und Ali Farhadi .
Anmerkung 1: Dies ist immer noch ein experimentelles Projekt. Die VOC07 -Testkarte beträgt ca. 0,71 (trainiert auf VOC07+12 Trainval, angegeben von @cory8249). Weitere Informationen zum Training finden Sie unter Ausgabe1 und Ausgabe23.
Anmerkung 2: Ich empfehle, Ihren eigenen Dataloader mit tacks.utils.data.dataset zu schreiben, da sich multiprocessing.Pool.imap nicht aufhört, selbst wenn es nicht genügend Speicherplatz gibt. Ein Beispiel für dataloader für VocDataset: Ausgabe71.
Hinweis 3: Upgrade auf Pytorch 0.4: #59
Klonen Sie dieses Repository
git clone [email protected]:longcw/yolo2-pytorch.git Erstellen Sie die Reorg -Ebene ( tf.extract_image_patches )
cd yolo2-pytorch
./make.sh Laden Sie das ausgebildete Modell Yolo-Voc.Weights.h5 (Link aktualisiert) herunter und setzen Sie den Modellpfad in demo.py
Rennen Sie Demo python demo.py
Sie können YOLO2 in jedem Datensatz trainieren. Hier trainieren wir es auf VOC2007/2012.
Laden Sie das Training, die Validierung, die Testdaten und das VocDevkit herunter
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCdevkit_08-Jun-2007.tar Extrahieren Sie alle diese Tars in ein Verzeichnis namens VOCdevkit
tar xvf VOCtrainval_06-Nov-2007.tar
tar xvf VOCtest_06-Nov-2007.tar
tar xvf VOCdevkit_08-Jun-2007.tarEs sollte diese Grundstruktur haben
$VOCdevkit / # development kit
$VOCdevkit /VOCcode/ # VOC utility code
$VOCdevkit /VOC2007 # image sets, annotations, etc.
# ... and several other directories ... Da das Programm die Daten standardmäßig in yolo2-pytorch/data lädt, können Sie den Datenpfad wie folgt festlegen.
cd yolo2-pytorch
mkdir data
cd data
ln -s $VOCdevkit VOCdevkit2007 Laden Sie das vorgefertigte DarkNet19-Modell herunter (Link aktualisiert) und setzen Sie den Pfad in yolo2-pytorch/cfgs/exps/darknet19_exp1.py .
(Optional) Training mit Tensorboard.
Um das Tensorboard zu verwenden, setzen Sie use_tensorboard = True in yolo2-pytorch/cfgs/config.py und installieren Sie Tensorboardx (https://github.com/lanpa/tensorboard-pytorch). Das Tensorboard -Protokoll wird im training/runs gespeichert.
Führen Sie das Trainingsprogramm aus: python train.py .
Stellen Sie den Pfad des trained_model in yolo2-pytorch/cfgs/config.py ein.
cd faster_rcnn_pytorch
mkdir output
python test.pyDie Vorwärtspass erfordert, dass Sie 4 Argumente an das Netzwerk liefern:
im_data - Bilddaten.C x H x W sein, wobei C den Farbkanälen des Bildes entspricht, und H und W sind die Höhe und Breite.utils/im_transform.py bereitgestellte imcv2_recolor -Funktion, um Ihr Bild vorzubereiten. Stellen Sie außerdem sicher, dass die Bilder auf 416 x 416 Pixel geändert wurdengt_boxes - Eine Liste von numpy -Arrays, bei denen jeder die Größe N x 4 hat, wobei N die Anzahl der Merkmale im Bild ist. Die vier Werte in jeder Zeile sollten x_bottom_left , y_bottom_left , x_top_right und y_top_right entsprechen.gt_classes - Eine Liste von numpy -Arrays, wobei jedes Array einen Ganzzahlwert enthält, der der Klasse jedes in gt_boxes angegebenen Begrenzungsfelds entsprichtdontcare - eine Liste von ListenLizenz: MIT Lizenz (MIT)