Por Songtao Liu, di Huang, Yunhong Wang
Inspirado en la estructura de los campos receptivos (RF) en los sistemas visuales humanos, proponemos un nuevo módulo de bloqueo de RF (RFB), que tiene en cuenta la relación entre el tamaño y la excentricidad de las RFS, para mejorar la discriminabilidad y la robustez de las características. Además, ensamblamos el módulo RFB en la parte superior del SSD con un modelo CNN ligero, construyendo el detector de red RFB. Puede usar el código para entrenar/evaluar la red RFB para la detección de objetos. Para obtener más detalles, consulte nuestro documento ECCV.

| Sistema | mapa | FPS (Titan X Maxwell) |
|---|---|---|
| R-CNN más rápido (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 |
| Sistema | mapa de prueba-desesco | Tiempo (Titan x Maxwell) |
|---|---|---|
| R-CNN ++ más rápido (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 |
| Sistema | Mapa del minival de coco | #parametros |
|---|---|---|
| SSD Mobilenet | 19.3 | 6.8m |
| RFB MobileNet | 20.7 | 7.4m |
Cite nuestro documento en sus publicaciones si ayuda a su investigación:
@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.shNota : Verifique el soporte de arquitectura de GPU en Utils/Build.py, línea 131. El valor predeterminado es:
'nvcc': ['-arch=sm_52',
conda install opencvNota: Para el entrenamiento, actualmente apoyamos VOC y Coco.
Para facilitar las cosas, proporcionamos un cargador de conjunto de datos VOC y Coco simple que herede torch.utils.data.Dataset lo que lo hace totalmente compatible con la 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>Instale el conjunto de datos MS Coco en/rath/to/Coco desde el sitio web oficial, el valor predeterminado es ~/data/coco. Siguiendo las instrucciones de preparar anotaciones Minival2014 y ValminusMinival2014 . Todos los archivos de etiqueta (.json) deben estar debajo de la carpeta Coco/ Annotations/. Debería tener esta estructura básica
$COCO /
$COCO /cache/
$COCO /annotations/
$COCO /images/
$COCO /images/test2015/
$COCO /images/train2014/
$COCO /images/val2014/ACTUALIZACIÓN : El conjunto de datos de Coco actual ha lanzado nuevos conjuntos Train2017 y Val2017 , que son solo nuevas divisiones de los mismos conjuntos de imágenes.
Primero descargue los pesos de la red base Pytorch de Pytorch reducido FC en: https://s3.amazonaws.com/amdegroot-models/vgg16_reducedfc.pth o desde nuestro conductor de Baiduyun
Basenet pre-entrenado de Mobilenet se porta desde MobileNet-Caffe, que alcanza tasas de precisión ligeramente mejores que la original reportada en el documento, el archivo de peso está disponible en: https://drive.google.com/open?id=13azsapybdjfgidqn1inblpsddxck14 o conductor de Baiduyun.
Por defecto, suponemos que ha descargado el archivo en el Dir RFBNet/weights :
mkdir weights
cd weights
wget https://s3.amazonaws.com/amdegroot-models/vgg16_reducedfc.pthtrain_RFB.py como un indicador o cambiarlos manualmente. python train_RFB.py -d VOC -v RFB_vgg -s 300 train_RFB.py para opciones)Para evaluar una red capacitada:
python test_RFB.py -d VOC -v RFB_vgg -s 300 --trained_model /path/to/model/weights Por defecto, emitirá directamente los resultados del mapa en la prueba VOC2007 o Coco Minival2014 . Para los resultados de prueba de VOC2012 y Test Test-Dev , puede cambiar manualmente los conjuntos de datos en el archivo test_RFB.py , luego guardar los resultados de detección y enviar al servidor.