EfficientDet: Em Direção à Detecção De Objetos Escalonáveis e Eficientes

Índice:

EfficientDet: Em Direção à Detecção De Objetos Escalonáveis e Eficientes
EfficientDet: Em Direção à Detecção De Objetos Escalonáveis e Eficientes

Vídeo: EfficientDet: Em Direção à Detecção De Objetos Escalonáveis e Eficientes

Vídeo: EfficientDet: Em Direção à Detecção De Objetos Escalonáveis e Eficientes
Vídeo: [DeepReader] EfficientDet: Scalable and Efficient Object Detection 2024, Novembro
Anonim

Como uma das principais aplicações em visão computacional, a detecção de objetos está se tornando cada vez mais importante em cenários que requerem alta precisão, mas têm recursos de computação limitados, como robótica e carros sem motorista. Infelizmente, muitos detectores modernos de alta precisão não atendem a essas limitações. Mais importante ainda, os aplicativos de detecção de objetos do mundo real são executados em plataformas diferentes, que geralmente requerem recursos diferentes.

Detecção de objetos escalonável e eficiente
Detecção de objetos escalonável e eficiente

Portanto, a questão natural é como projetar detectores de objetos precisos e eficientes que também podem se adaptar a uma ampla gama de restrições de recursos?

EfficientDet: Escalável e Eficiente Detecção de Objetos, adotado no CVPR 2020, apresenta uma nova família de detectores de objetos escaláveis e eficientes. Com base no trabalho anterior sobre dimensionamento de redes neurais (EfficientNet) e incorporando uma nova rede funcional bidirecional (BiFPN) e novas regras de dimensionamento, o EfficientDet atinge a precisão moderna enquanto é 9 vezes menor e usa significativamente menos computação do que os detectores modernos conhecidos. A figura a seguir mostra a arquitetura geral de rede dos modelos.

Imagem
Imagem

Otimizando a Arquitetura do Modelo

A ideia por trás do EfficientDet surge de um esforço para encontrar soluções para melhorar a eficiência computacional examinando sistematicamente modelos de detecção de última geração anteriores. Em geral, os detectores de objetos têm três componentes principais: um backbone que extrai recursos de uma determinada imagem; uma rede de objetos que obtém vários níveis de funções do backbone como entrada e produz uma lista de funções combinadas que representam características características da imagem; e uma rede final de classe / caixa que usa funções combinadas para prever a classe e a localização de cada objeto.

Depois de revisar as opções de design para esses componentes, identificamos várias otimizações importantes para melhorar o desempenho e a eficiência. Os detectores anteriores usam principalmente ResNets, ResNeXt ou AmoebaNet como backbones, que são menos potentes ou têm menor eficiência do que EfficientNets. Com a implementação inicial do backbone EfficientNet, muito mais eficiência pode ser alcançada. Por exemplo, começando com uma linha de base RetinaNet que usa um backbone ResNet-50, nosso estudo de ablação mostra que simplesmente substituir ResNet-50 por EfficientNet-B3 pode melhorar a precisão em 3%, enquanto reduz o cálculo em 20%. Outra otimização é melhorar a eficiência das redes funcionais. Embora a maioria dos detectores anteriores simplesmente use a Downlink Pyramid Network (FPN), descobrimos que o FPN downstream é inerentemente limitado a um fluxo unilateral de informações. FPNs alternativos como o PANet adicionam upstream adicional ao custo de computação adicional.

Tentativas recentes de usar o Neural Architecture Search (NAS) descobriram uma arquitetura NAS-FPN mais complexa. No entanto, embora esta estrutura de rede seja eficaz, também é irregular e altamente otimizada para uma tarefa específica, dificultando a adaptação a outras tarefas. Para resolver esses problemas, propomos uma nova rede de funções bidirecionais BiFPN, que implementa a ideia de combinar funções multicamadas de FPN / PANet / NAS-FPN, o que permite que a informação seja transmitida de cima para baixo e de baixo para cima. usando conexões regulares e eficazes.

Imagem
Imagem

Para melhorar ainda mais a eficiência, propomos uma nova técnica de síntese normalizada rápida. As abordagens tradicionais geralmente tratam todas as entradas para FPN da mesma maneira, mesmo em resoluções diferentes. No entanto, observamos que os recursos de entrada com resoluções diferentes geralmente contribuem de forma desigual para as funções de saída. Assim, adicionamos peso extra a cada função de entrada e deixamos a rede aprender a importância de cada uma. Também substituiremos todas as convoluções regulares por convoluções menos caras e profundamente separáveis. Com esta otimização, nosso BiFPN melhora ainda mais a precisão em 4%, enquanto reduz os custos computacionais em 50%.

A terceira otimização envolve alcançar o melhor compromisso entre precisão e eficiência sob várias restrições de recursos. Nosso trabalho anterior mostrou que o co-dimensionamento da profundidade, largura e resolução de uma rede pode melhorar significativamente o desempenho do reconhecimento de imagem. Inspirado por esta ideia, propomos um novo método de escalonamento composto para detectores de objetos que aumentam coletivamente a resolução / profundidade / largura. Cada componente de rede, ou seja, backbone, objeto e rede preditiva de bloco / classe, terá um fator de escala complexo que controla todas as dimensões de escala usando regras heurísticas. Essa abordagem torna mais fácil determinar como dimensionar o modelo, calculando um fator de escala para uma determinada restrição de recurso de destino.

Ao combinar o novo backbone e BiFPN, primeiro projetamos uma pequena linha de base EfficientDet-D0 e, em seguida, aplicamos escala composta para obter EfficientDet-D1 a D7. Cada modelo serial tem um custo computacional mais alto, cobrindo uma ampla gama de restrições de recursos de 3 bilhões de FLOPs a 300 bilhões de FLOPS e fornece maior precisão.

Modelo de performance

Avaliação do EfficientDet no conjunto de dados COCO, um conjunto de dados de referência amplamente usado para detecção de objetos. EfficientDet-D7 atinge uma precisão média média (mAP) de 52,2, que é 1,5 pontos maior do que o modelo moderno anterior, usando 4 vezes menos parâmetros e 9,4 vezes menos cálculos

Imagem
Imagem

Também comparamos o tamanho do parâmetro e a latência da CPU / GPU entre o EfficientDet e os modelos anteriores. Com restrições de precisão semelhantes, os modelos EfficientDet funcionam de 2 a 4 vezes mais rápido na GPU e de 5 a 11 vezes mais rápido no processador do que outros detectores. Embora os modelos EfficientDet tenham como objetivo principal a detecção de objetos, também testamos sua eficácia em outras tarefas, como segmentação semântica. Para realizar tarefas de segmentação, modificamos ligeiramente o EfficientDet-D4, substituindo a cabeça de detecção e perda e perda de carga, mantendo o mesmo backbone dimensionado e BiFPN. Comparamos este modelo com modelos de segmentação modernos anteriores para Pascal VOC 2012, um conjunto de dados de teste de segmentação amplamente usado.

Imagem
Imagem

Dado seu desempenho excepcional, espera-se que o EfficientDet sirva como uma nova base para futuras pesquisas de detecção de objetos e, potencialmente, torne modelos de detecção de objetos altamente precisos úteis em muitas aplicações do mundo real. Então abriu todos os pontos de interrupção do código e do modelo pré-treinado no Github.com.

Recomendado: