Von Songtao Liu, Di Huang, Yunhong Wang
Inspiriert von der Struktur von Empfangsfeldern (RFS) in menschlichen visuellen Systemen schlagen wir ein neuartiges RF Block (RFB) -Modul vor, das die Beziehung zwischen der Größe und der Exzentrizität von RFs berücksichtigt, um die Diskriminierbarkeit und Robustheit von Merkmalen zu verbessern. Wir bauen das RFB -Modul weiter an die Oberseite der SSD mit einem leichten CNN -Modell, das den RFB -Netto -Detektor erstellt. Sie können den Code verwenden, um das RFB -Netz zur Objekterkennung zu trainieren/zu bewerten. Weitere Informationen finden Sie in unserem ECCV -Papier.

| System | Karte | FPS (Titan X Maxwell) |
|---|---|---|
| Schnellerer R-CNN (VGG16) | 73.2 | 7 |
| Yolov2 (Darknet-19) | 78,6 | 40 |
| R-FCN (Resnet-101) | 80.5 | 9 |
| SSD300* (VGG16) | 77,2 | 46 |
| SSD512* (VGG16) | 79,8 | 19 |
| RFBNET300 (VGG16) | 80.7 | 83 |
| RFBNET512 (VGG16) | 82.2 | 38 |
| System | Test-dev-Karte | Zeit (Titan x Maxwell) |
|---|---|---|
| Schnellerer R-CNN ++ (Resnet-101) | 34.9 | 3.36s |
| Yolov2 (Darknet-19) | 21.6 | 25 ms |
| SSD300* (VGG16) | 25.1 | 22 ms |
| SSD512* (VGG16) | 28.8 | 53 ms |
| Retinanet500 (Resnet-101-FPN) | 34.4 | 90 ms |
| RFBNET300 (VGG16) | 30.3 | 15 ms |
| RFBNET512 (VGG16) | 33.8 | 30 ms |
| RFBNET512-E (VGG16) | 34.4 | 33 ms |
| System | MINIVAL MAP COCO | #PARAMETERS |
|---|---|---|
| SSD Mobilenet | 19.3 | 6,8 m |
| RFB Mobilenet | 20.7 | 7,4 m |
Bitte zitieren Sie unser Papier in Ihren Veröffentlichungen, wenn es Ihrer Forschung hilft:
@InProceedings{Liu_2018_ECCV,
author = {Liu, Songtao and Huang, Di and Wang, andYunhong},
title = {Receptive Field Block Net for Accurate and Fast Object Detection},
booktitle = {The European Conference on Computer Vision (ECCV)},
month = {September},
year = {2018}
}
./make.shHINWEIS : Überprüfen Sie, ob Sie die GPU -Architekturunterstützung in Utils/Build.Py, Zeile 131. Standard Is:
'nvcc': ['-arch=sm_52',
conda install opencvHinweis: Für das Training unterstützen wir derzeit VOC und Coco.
Um die Dinge einfach zu machen, bieten wir einfachen VOC- und Coco -Datensatzloader, die torch.utils.data.Dataset erbt, damit die API von torchvision.datasets vollständig kompatibel ist.
# specify a directory for dataset to be downloaded into, else default is ~/data/
sh data/scripts/VOC2007.sh # <directory> # specify a directory for dataset to be downloaded into, else default is ~/data/
sh data/scripts/VOC2012.sh # <directory>Installieren Sie den MS Coco -Datensatz von/path/to/Coco von der offiziellen Website, Standard ist ~/data/coco. Befolgen Sie die Anweisungen zur Erstellung von Minival2014 und Valminusminival2014 Anmerkungen. Alle Etikettendateien (.json) sollten sich unter dem CoCo/ Annotations/ Ordner befinden. Es sollte diese Grundstruktur haben
$COCO /
$COCO /cache/
$COCO /annotations/
$COCO /images/
$COCO /images/test2015/
$COCO /images/train2014/
$COCO /images/val2014/UPDATE : Der aktuelle Coco -Datensatz hat die Sätze der neuen Training2017 und Val2017 veröffentlicht, bei denen es sich nur um neue Spaltungen derselben Bildsätze handelt.
Laden Sie zuerst die FC-reduzierten VGG-16 Pytorch-Basisnetzwerkgewichte unter: https://s3.amazonaws.com/amdegroot-models/vgg16_reduedfc.pth oder von unserem Baiduyun-Treiber herunter
Mobilenet PreAnt-Basenet stammt aus Mobilenet-Caffe, die etwas bessere Genauigkeitsraten erzielt als die in der Arbeit gemeldete Original.
Standardmäßig gehen wir davon aus, dass Sie die Datei in das Dir RFBNet/weights heruntergeladen haben:
mkdir weights
cd weights
wget https://s3.amazonaws.com/amdegroot-models/vgg16_reducedfc.pthtrain_RFB.py aufgeführten Parameter als Flagge an oder ändern Sie sie manuell. python train_RFB.py -d VOC -v RFB_vgg -s 300 train_RFB.py für Optionen).Bewertung eines ausgebildeten Netzwerks:
python test_RFB.py -d VOC -v RFB_vgg -s 300 --trained_model /path/to/model/weights Standardmäßig werden die Kartenergebnisse im VOC2007 -Test oder des CoCo Minival2014 direkt ausgegeben. Für die Ergebnisse des VOC2012- Tests und des Coco- Test-Dev- Ergebnisses können Sie die Datensätze in der Datei test_RFB.py manuell ändern, dann die Erkennungsergebnisse speichern und an den Server übermittelt werden.