Par Songtao Liu, Di Huang, Yunhong Wang
Inspirés par la structure des champs réceptifs (RFS) dans les systèmes visuels humains, nous proposons un nouveau module de bloc RF (RFB), qui prend en compte la relation entre la taille et l'excentricité du RFS, pour améliorer la discriminabilité et la robustesse des caractéristiques. Nous assemblons en outre le module RFB en haut de SSD avec un modèle CNN léger, en construisant le détecteur net RFB. Vous pouvez utiliser le code pour former / évaluer le filet RFB pour la détection d'objets. Pour plus de détails, veuillez consulter notre document ECCV.

| Système | carte | FPS (Titan x Maxwell) |
|---|---|---|
| R-CNN plus rapide (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 |
| Système | Carte de test-DEV | Time (Titan x Maxwell) |
|---|---|---|
| Plus rapide 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 |
| Système | Carte de coco | #Parameters |
|---|---|---|
| SSD Mobilenet | 19.3 | 6,8 m |
| RFB Mobilenet | 20.7 | 7,4 m |
Veuillez citer notre article dans vos publications si cela aide vos recherches:
@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.shRemarque : Vérifiez votre prise en charge de l'architecture GPU dans utils / build.py, ligne 131. La défaut est:
'nvcc': ['-arch=sm_52',
conda install opencvRemarque: Pour la formation, nous soutenons actuellement VOC et CoCo.
Pour faciliter les choses, nous fournissons un chargeur de jeu de données COV et CoCo simple qui hérite de torch.utils.data.Dataset le rendant entièrement compatible avec l'API torchvision.datasets .
# 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>Installez l'ensemble de données MS COCO sur / path / vers / coco à partir du site officiel, la valeur par défaut est ~ / data / coco. Suivant les instructions pour préparer des annotations MinIval2014 et Valminusminival2014 . Tous les fichiers d'étiquette (.json) doivent être sous le dossier CoCo / Annotations /. Il devrait avoir cette structure de base
$COCO /
$COCO /cache/
$COCO /annotations/
$COCO /images/
$COCO /images/test2015/
$COCO /images/train2014/
$COCO /images/val2014/Mise à jour : L'ensemble de données CoCo actuel a publié de nouveaux ensembles Train2017 et VAL2017 qui ne sont que de nouvelles divisions des mêmes ensembles d'images.
Téléchargez d'abord les poids du réseau de base Pytorch FC-réduit
Mobilenet pré-formé Basennet est porté de Mobilenet-Caffe, qui atteint des taux de précision légèrement meilleurs que celui d'origine signalé dans le document, le fichier de poids est disponible sur: https://drive.google.com/open?id=13AZSAPYBBDJZFGIDQN1InBLBSDDXCK14 ou Baiduyun.
Par défaut, nous supposons que vous avez téléchargé le fichier dans le Dir RFBNet/weights :
mkdir weights
cd weights
wget https://s3.amazonaws.com/amdegroot-models/vgg16_reducedfc.pthtrain_RFB.py en tant que drapeau ou modifiez-les manuellement. python train_RFB.py -d VOC -v RFB_vgg -s 300 train_RFB.py pour les options)Pour évaluer un réseau formé:
python test_RFB.py -d VOC -v RFB_vgg -s 300 --trained_model /path/to/model/weights Par défaut, il publiera directement les résultats de la carte sur le test VOC2007 ou Coco Minival2014 . Pour les résultats du test VOC2012 et du test de coco-DEV , vous pouvez modifier manuellement les ensembles de données dans le fichier test_RFB.py , puis enregistrer les résultats de détection et soumis au serveur.