Ancoragem mais rápida RCNN

10

No artigo Faster RCNN, ao falar sobre ancoragem, o que eles significam usando "pirâmides de caixas de referência" e como isso é feito? Isso significa apenas que em cada um dos pontos de ancoragem W * H * k é gerada uma caixa delimitadora?

Onde W = largura, H = altura ek = número de proporções * num dimensiona

link para o artigo: https://arxiv.org/abs/1506.01497

BadProgrammer
fonte
Esta é uma pergunta muito boa.
Michael R. Chernick

Respostas:

10

Âncoras explicadas

Âncoras

Por enquanto, ignorando o termo chique de "pirâmides de caixas de referência", as âncoras nada mais são que retângulos de tamanho fixo a serem alimentados à Rede de Propostas da Região. As âncoras são definidas no último mapa de convolucionais, o que significa que existem delas, mas elas correspondem à imagem. Para cada âncora, o RPN prevê a probabilidade de conter um objeto em geral e quatro coordenadas de correção para mover e redimensionar a âncora para a posição correta. Mas como a geometria das âncoras tem a ver com o RPN? (HfeaturemapWfeaturemap)(k)

Âncoras realmente aparecem na função Perda

Ao treinar o RPN, primeiro um rótulo de classe binária é atribuído a cada âncora. As âncoras com intersecção sobre a união ( IoU ) se sobrepõem a uma caixa de verificação de solo, maior que um determinado limite, recebem um rótulo positivo (da mesma forma, as âncoras com IoUs menores que um determinado limite serão rotuladas como negativas). Esses rótulos são usados ​​ainda para calcular a função de perda:

Função de perda RPN

p é a saída do cabeçote de classificação do RPN que determina a probabilidade da âncora conter um objeto. Para âncoras rotuladas como Negativas, não ocorre perda de regressão - , o rótulo de base é zero. Em outras palavras, a rede não se importa com as coordenadas emitidas para âncoras negativas e fica feliz desde que as classifique corretamente. No caso de âncoras positivas, a perda de regressão é levada em consideração. é a saída da cabeça de regressão do RPN, um vetor que representa as 4 coordenadas parametrizadas da caixa delimitadora prevista. A parametrização depende da geometria da âncora e é a seguinte:pt

insira a descrição da imagem aqui

onde e h denotam as coordenadas centrais da caixa e sua largura e altura. As variáveis e são para a caixa prevista, caixa âncora e caixa verdade da terra, respectivamente (da mesma forma para ).x,y,w,x,xa,xy,w,h

Observe também que as âncoras sem etiqueta não são classificadas nem remodeladas e o RPM simplesmente as expulsa dos cálculos. Depois que o trabalho da RPN é concluído e as propostas são geradas, o restante é muito semelhante aos R-CNNs rápidos.

Mahan Fathi
fonte
@Fathi E se tivermos muitas aulas? Tanto quanto eu sei, no Fast R-CNN cada RoI de treinamento recebe uma classe de verdade no solo. Então, acho que algo semelhante acontece aqui?
thanasissdr
@Fathi Eu concordo totalmente com o que você está dizendo, então suponho que você concorda comigo. Quero dizer, os autores do artigo original da Faster R-CNN usaram apenas duas classes (plano de fundo / objeto) por simplicidade, tentando explicar como a RPN funciona, certo? Então, em vez de ter apenas duas classes, eu poderia ter mais do que apenas duas e acho que poderia assumir a função conhecida de perda de entropia cruzada, certo?
thanasissdr
@thanasissdr A idéia fundamental por trás da Faster R-CNN era que "quando as redes neurais são tão boas em todo o resto, por que não usá-las também nas propostas de região?". Comparando o Fast R-CNN ao R-CNN padrão, a única diferença é que as propostas de RoI - que são feitas novamente usando as mesmas técnicas antigas, por exemplo, SelectiveSearch ou EdgeBoxes - são mapeadas da imagem bruta para os recursos convolucionais e depois alimentadas para os FCs. Desta forma, o processo de encaminhamento de cada RoI através da CNN é omitido.
Mahan Fathi
No R-CNN mais rápido, o RPN aprende a propor regiões apropriadas. Depois que a RPN é concluída, o restante é semelhante ao Fast R-CNN, e os FCs classificam e regridem as propostas.
Mahan Fathi #
@thanasissdr Sim. Estamos nos entendendo. Suponho que você possa classificar no RPN, mas isso seria desnecessário, pois a rede do FC faz a classificação novamente e não tem dificuldade em rejeitar propostas indesejadas. Pense também no pipeline, como você usará as pontuações de classificação e como elas serão úteis? Minha posição final é que a classificação (de fundo / objeto) é uma pedra angular no Faster R-CNN.
Mahan Fathi
1

Li este artigo ontem e, à primeira vista, também foi confuso para mim. Após reler, cheguei a esta conclusão:

  • A última camada da rede original (ZF ou VGG-16) serve como entrada para a Rede de Proposta de Região e o pool de RoI. No caso do VGG-16, esta última camada de conv é a 7x7x512 (HxWxD).
  • Essa camada é mapeada para uma camada dimensional 512 com uma 3x3camada conv. O tamanho da saída é 7x7x512(se o preenchimento for usado).
  • Essa camada é mapeada para uma 7x7x(2k+4k)(por exemplo 7x7x54) camada com uma 1x1camada de conv para cada uma das kcaixas de ancoragem.

Agora, de acordo com a Figura 1 no artigo, você pode ter uma pirâmide de imagens de entrada (as mesmas imagens com uma escala diferente), uma pirâmide de filtros (filtros de uma escala diferente, na mesma camada) ou uma pirâmide de caixas de referência. O último refere-se às kcaixas de ancoragem na última camada da rede de propostas da região. Em vez de filtros com tamanhos diferentes que são empilhados uns sobre os outros (caixa do meio), filtros com tamanho e proporção diferentes são empilhados uns sobre os outros.

Em resumo, para cada ponto de ancoragem ( HxW, por exemplo ), é utilizada 7x7uma pirâmide de caixas de referência ( k, por exemplo 9).

Pieter
fonte
mas o que exatamente é uma caixa de âncora? O objetivo de cada caixa âncora: é usado como entrada para o RPN para prever um delta na largura e altura da caixa âncora para cada caixa âncora considerada parte do primeiro plano?
BadProgrammer
O RPN prevê o deslocamento delta do local do primeiro plano e a pontuação da objetividade. O último tenta prever explicitamente se é plano de fundo ou primeiro plano (veja também a nota de rodapé 3).
Pieter
Você poderia explicar como uma 3x3camada conv se traduz 7x7? No prototxt, ele diz que o preenchimento é 1 na última camada VGG16.
Klik