Introdução Rápida ao py-R-FCN: Guia Completo para um Framework de Detecção de Objetos

O py-R-FCN é um framework para detecção de objetos baseado em Redes Totalmente Convolucionais baseadas em Regiões (Region-based Fully Convolutional Networks - R-FCN). Ele suporta treinamento conjunto e uso com Python, oferecedno uma solução eficiente para pesquisadores e desenvolvedores de visão computacional. Este projeto é uma modificação da implementação oficial do R-FCN e do código do py-faster-rcnn, apresentando uma metodologia de uso semelhante, com o acréscimo de funcionalidades avançadas como regressão de caixa delimitadora indeepndente de classe e OHEM (Online Hard Example Mining).

Recursos e Vantagens Principais

Como ferramenta profissional de detecção de objetos, o py-R-FCN apresenta as seguintes características notáveis:

  • Alta Precisão na Detecção: Alcança 79,4% de mAP@0.5 no conjunto de teste do PASCAL VOC 2007 usando a rede ResNet-101.
  • Velocidade de Processamento Eficiente: O tempo de processamento por imagem é de apenas 0,099 a 0,136 segundos em uma GPU Titan X.
  • Estratégias de Treinamento Flexíveis: Suporta treinamento conjunto e otimização alternada.
  • Técnicas de Otimização Avançadas: Integra regressão de caixa delimitadora independente de classe e tecnologia OHEM para mineração de exemplos difíceis.

Requisitos de Ambiente e Instalação

Requisitos de Hardware

  • GPU NVIDIA (com 6GB ou mais de memória; modelos ResNet-50 requerem pelo menos 4GB).

Requisitos de Software

  • Versão Microsoft do Caffe (commit específico: 1a2be8e).
  • Pacotes Python: cython, opencv-python, easydict.
  • Opcional: MATLAB (para avaliação oficial do PASCAL VOC).

Guia de Instalação Rápida

  1. Clonar o Repositório Principal ``` git clone https://gitcode.com/gh_mirrors/py/py-R-FCN.git
  2. Clonar e Configurar o Caffe ``` cd py-R-FCN git clone https://github.com/Microsoft/caffe.git cd caffe git reset --hard 1a2be8e
  3. Compilar os Módulos Cython ``` cd ../lib make
  4. Compilar o Caffe e o pycaffe ``` cd ../caffe

    Configurar o Makefile.config conforme as instruções de instalação do Caffe

    make -j8 && make pycaffe
    
    

Desempenho e Métricas

A tabela abaixo resume os resultados do treinamento conjunto do py-R-FCN em diferentes conjuntos de dados e arquiteturas de rede.

Arquitetura da Rede Dados de Treinamento Dados de Teste mAP@0.5 Tempo por Imagem
R-FCN, ResNet-50 VOC 07+12 trainval VOC 07 test 77.6% 0.099s
R-FCN, ResNet-101 VOC 07+12 trainval VOC 07 test 79.4% 0.136s

O py-R-FCN é capaz de detectar múltiplos objetos, como um cão e um gato, em uma única cena.

Utilização do Framework

Executando a Demonstração

  1. Baixar os Modelos Pré-treinados: Obtenha os modelos fornecidos e coloque-os no diretório data/rfcn_models/.
  2. Executar o Script de Demonstração: ``` python tools/exemplo_rfcn.py
    
    

Treinamento e Avaliação

O py-R-FCN inclui diversos scripts de treinamento no diretório experiments/scripts/:

  • Treinamento Conjunto (End-to-End): rfcn_end2end.sh
  • Treinamento Conjunto com OHEM: rfcn_end2end_ohem.sh
  • Otimização Alternada com OHEM: rfcn_alt_opt_5stage_ohem.sh

Exemplo de comando para iniciar o treinamento:

./experiments/scripts/rfcn_end2end.sh 0 ResNet-101 pascal_voc

Detecção simultânea de pessoa, cavalo e cão em uma cena externa complexa.

Recursos Adicionais

  • Arquivos de Configuração: experiments/cfgs/
  • Scripts de Treinamento: experiments/scripts/
  • Utilitários para Datasets: lib/datasets/
  • Implementação da RPN: lib/rpn/

Referência Bibliográfica

Se você utilizar o py-R-FCN em sua pesquisa, por favor considere citar o seguinte trabalho:

@article{dai16rfcn,
    Author = {Jifeng Dai, Yi Li, Kaiming He, Jian Sun},
    Title = {{R-FCN}: Object Detection via Region-based Fully Convolutional Networks},
    Journal = {arXiv preprint arXiv:1605.06409},
    Year = {2016}
}

Tags: py-R-FCN R-FCN detecção de objetos Visão Computacional deep learning

Publicado em 6-4 17:31 por Thomas