Por Songtao Liu, Di Huang, Yunhong Wang
Inspirado na estrutura dos campos receptivos (RFs) em sistemas visuais humanos, propomos um novo módulo de bloco de RF (RFB), que leva em consideração a relação entre o tamanho e a excentricidade do RFS, para melhorar a discriminabilidade e a robustez dos recursos. Recebemos ainda o módulo RFB na parte superior do SSD com um modelo CNN leve, construindo o detector de rede RFB. Você pode usar o código para treinar/avaliar a rede RFB para detecção de objetos. Para mais detalhes, consulte nosso artigo ECCV.

| Sistema | mapa | FPS (Titan x Maxwell) |
|---|---|---|
| R-CNN mais 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 teste-dev | Time (Titan x Maxwell) |
|---|---|---|
| R-CNN ++ mais rápido (Resnet-101) | 34.9 | 3.36s |
| Yolov2 (Darknet-19) | 21.6 | 25ms |
| SSD300* (VGG16) | 25.1 | 22ms |
| SSD512* (VGG16) | 28.8 | 53ms |
| RetinAnet500 (Resnet-101-FPN) | 34.4 | 90ms |
| RFBNET300 (VGG16) | 30.3 | 15ms |
| RFBNET512 (VGG16) | 33.8 | 30ms |
| RFBNET512-E (VGG16) | 34.4 | 33ms |
| Sistema | Mapa minival de Coco | #parameters |
|---|---|---|
| SSD MobileNet | 19.3 | 6,8m |
| RFB MobileNet | 20.7 | 7.4m |
Cite nosso artigo em suas publicações se isso ajudar sua pesquisa:
@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 seu suporte de arquitetura de GPU em Utils/Build.py, linha 131. O padrão é:
'nvcc': ['-arch=sm_52',
conda install opencvNota: Para treinamento, atualmente apoiamos VOC e Coco.
Para facilitar as coisas, fornecemos um conjunto de dados VOC e Coco e Coco que herda torch.utils.data.Dataset , tornando -o totalmente compatível com a 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 o conjunto de dados MS Coco em/Path/to/coco no site oficial, o padrão é ~/dados/coco. Seguindo as instruções para preparar as anotações Minival2014 e ValminusMinival2014 . Todos os arquivos da etiqueta (.json) devem estar sob a pasta Coco/ Anotações/. Deve ter essa estrutura básica
$COCO /
$COCO /cache/
$COCO /annotations/
$COCO /images/
$COCO /images/test2015/
$COCO /images/train2014/
$COCO /images/val2014/ATUALIZAÇÃO : O conjunto de dados Coco atual lançou novos conjuntos Train2017 e Val2017 , que são apenas novas divisões dos mesmos conjuntos de imagens.
Primeiro, baixe os pesos da rede de base VGG-16 Pytorch, reduzidos pela FC, em: https://s3.amazonaws.com/amdegroot-models/vgg16_reductfc.pth ou do nosso driver Baiduyun
O MobileNet pré-treinado Basenet é transportado do MobileNet-Caffe, que atinge taxas de precisão um pouco melhores do que o original relatado no papel, o arquivo de peso está disponível em: https://drive.google.com/open?id=13AZSAPHBBDJN1InBlpsDDXCK14 OR BAIDBDUNDYUNGIDQN1INBLPSDDXCK14 OR OU BANDUNDYN1InBLPSDDXCK14 ou
Por padrão, assumimos que você baixou o arquivo no RFBNet/weights Dir:
mkdir weights
cd weights
wget https://s3.amazonaws.com/amdegroot-models/vgg16_reducedfc.pthtrain_RFB.py como um sinalizador ou alterá -los manualmente. python train_RFB.py -d VOC -v RFB_vgg -s 300 train_RFB.py para opções)Para avaliar uma rede treinada:
python test_RFB.py -d VOC -v RFB_vgg -s 300 --trained_model /path/to/model/weights Por padrão, ele produzirá diretamente os resultados do mapa no teste VOC2007 ou Coco Minival2014 . Para os resultados do teste VOC2012 e dos testes de coco, você pode alterar manualmente os conjuntos de dados no arquivo test_RFB.py e salvar os resultados da detecção e enviar ao servidor.