Detecção de Objetos Reconheça e governe. Parte 2


No último post, comecei a entender os modelos de detecção de objetos em dois estágios e falei sobre o mais básico e, portanto, o primeiro deles - o R-CNN . Hoje, olhamos para outros modelos dessa família: Fast R-CNN e Faster R-CNN . Vai!

R-cnn rápido


Como a R-CNN é uma rede lenta e pouco eficiente, os mesmos autores propuseram rapidamente uma melhoria na forma de uma rede Fast R-CNN .

O processo de processamento de imagem mudou e se parece com o seguinte:

  1. Extrair um mapa dos atributos da imagem (não para cada hipótese separadamente, mas para toda a imagem);
  2. Pesquisa de hipóteses (semelhante ao R-CNN com base na Pesquisa Seletiva);
  3. – .. ( );
  4. ( , SVM-).

RoI layer


No conceito original da R-CNN, cada hipótese proposta é processada individualmente usando a CNN - essa abordagem se tornou um tipo de gargalo. Para resolver esse problema, uma camada de Região de Interesse (RoI) foi desenvolvida . Essa camada permite processar uma vez a imagem inteira usando a rede neural, recebendo na saída um mapa de características, que é usado para processar cada hipótese.

A principal tarefa da camada RoI é comparar as coordenadas das hipóteses (coordenadas da caixa delimitadora) com as coordenadas correspondentes do mapa de feições. Fazendo uma “fatia” do mapa de recursos, a camada RoI o alimenta na entrada da camada totalmente conectada para a determinação subsequente da classe e correções nas coordenadas (consulte as seções a seguir).

Surge uma questão lógica - como aplicar hipóteses de diferentes tamanhos e proporções à entrada de uma camada totalmente conectada? Para isso, é necessária uma camada RoI, que converte a imagem em dimensõesIh×Iw no tamanho Oh×Ow. Para fazer isso, você precisa dividir a imagem original em uma grade de tamanhoOh×Ow (tamanho da célula aproximadamente IhOh×IwOw) e, em cada célula, selecione o número máximo.

Suponha que exista um mapa de características 5 × 5 e a hipótese desejada neste mapa tenha coordenadas (1,1,4,5) (as duas primeiras coordenadas são o canto superior esquerdo, as duas últimas são o canto inferior direito). A camada totalmente conectada subsequente espera uma dimensão 4 × 1 (isto é, uma matriz 2 × 2 alongada). Em seguida, dividimos a hipótese em blocos desiguais de diferentes dimensões (o estágio Pooling) e obtemos o número máximo em cada uma delas (o estágio Pooling e, como resultado, o estágio Output).


Assim, torna-se possível processar toda a imagem e, em seguida, trabalhar com cada hipótese com base em um mapa de características.

Total:

  • Entrada: coordenadas da hipótese e um mapa de características da imagem original;
  • Saída: representação vetorial da hipótese.

Camada totalmente conectada e suas saídas


Na versão anterior do R-CNN, foram utilizados classificadores SVM separados, na mesma implementação foram substituídos por uma saída de dimensão SoftMax Nc+1. Note-se que a perda de precisão é inferior a 1%.

A saída dos regressores é processada usando NMS (supressão não máxima).

Total:

  • Entrada: representação vetorial da hipótese;
  • Saída: probabilidades de hipótese pertencentes a classes e correções nas coordenadas da caixa delimitadora.

Perda de múltiplas tarefas


No treinamento simultâneo da rede, uma função de perda especial é usada para as tarefas de regressão da caixa delimitadora e classificação:

L(P,u,tu,v)=Lcls(P,u)+λ[u1]Lloc(tu,v)


Aqui:

  • λnecessário ajustar o equilíbrio entre as duas funções (os autores usaram λ= 1);
  • u- a classe correta;
  • Lclsrepresenta funções de erro para classificação Lcls(P,u)=logPu;
  • Llocé uma função SmoothL1 e mede a diferença entre v=(vx,vy,vw,vh)e tu=(txu,tyu,twu,thu)valores:

    SmoothL1={12x2,if|x|<1|x|12,otherwise


    Aqui, xdenota a diferença entre o valor alvo e a previsão tiuvi. Essa função combina as vantagens das funções L1 e L2, pois é estável em grandes valoresx e não há muitas multas por pequenos valores.


Treinamento


Para uma melhor convergência, os autores usaram a seguinte abordagem para a formação do lote:

  1. O número de hipóteses no lote é selecionado R.
  2. Selecionado aleatoriamente Nimagens.
  3. Para cada um Nimagens tiradas RNhipóteses (ou seja, uniformemente em cada imagem).

Ao mesmo tempo, hipóteses positivas (25% do lote inteiro) e negativas (75% do lote inteiro) são incluídas em R. As hipóteses que se sobrepõem à localização correta do objeto em mais de 0,5 (IoU) são consideradas positivas. As negativas são tomadas de acordo com a regra Mineração Negativa Rígida - as instâncias mais errôneas (aquelas com IoU no intervalo [0,1,0,5).

Além disso, os autores argumentam que com os parâmetrosN=2 e R=128a rede aprende muitas vezes mais rápido do que com N=128e R=128(ou seja, uma hipótese de cada imagem).

R-cnn mais rápido


Uma melhoria lógica adicional é uma maneira de eliminar a dependência do algoritmo de Pesquisa Seletiva. Para fazer isso, representaremos todo o sistema como uma composição de dois módulos - a definição de hipóteses e seu processamento. O primeiro módulo será implementado usando a Rede de Proposta de Região (RPN) e o segundo é semelhante ao Fast R-CNN (começando com a camada RoI).

Portanto, desta vez, o processo de trabalhar com a imagem mudou e agora acontece da seguinte maneira:

  1. Removendo um mapa de recursos de imagem usando uma rede neural;
  2. Geração baseada no mapa obtido de sinais de hipóteses - determinação de coordenadas aproximadas e presença de um objeto de qualquer classe;
  3. Comparação de coordenadas de hipóteses usando RoI com um mapa de características obtido na primeira etapa;
  4. Classificação de hipóteses (já para a definição de uma classe específica) e refinamento adicional de coordenadas (de fato, pode não se aplicar).

A principal melhoria ocorreu precisamente no local em que as hipóteses foram geradas - agora, para isso, existe uma pequena rede neural separada, chamada Rede de Proposta de Região .


Rede de propostas regionais


O objetivo final deste módulo é substituir completamente o algoritmo de busca seletiva. Para uma operação mais rápida, são necessários pesos comuns com uma rede que extrai os atributos necessários. Portanto, a entrada RPN é um mapa de recursos obtido após esta rede. Os autores do artigo original usam a rede VGG16 para extrair recursos, cuja saída é considerada a última camada convolucional - conv5_3. Essa rede possui as seguintes características do campo receptivo :

  • Compressão efetiva (avanços efetivos, S0): dezesseis
  • Tamanho do campo receptivo r0): 196

Isso significa que o mapa de recursos será 16 vezes menor que o tamanho da imagem original (o número de canais é 512) e cada valor em suas células é afetado pelos pixels da imagem original em um retângulo de 196 × 196. Portanto, se você usar a entrada padrão VGG16 224 × 224, quase toda a imagem afetará a formação do valor da célula central do mapa de feições (14.14)! Com base no mapa de recursos recebido, o RPN para cada célula produzk hipóteses (na implementação original k=9) tamanhos e proporções diferentes. Portanto, para o tamanho padrão, são 14 × 14 × 9 = 1764 hipóteses!

Com base na imagem abaixo, consideramos o algoritmo do módulo RPN em mais detalhes (imagem clicável):


  1. c×H16×W16.
  2. 3×3 ( – ). , (P0=106, r0=228).

  • (i,j) c( 512).

  1. 1×1 c^( cc^):
    1. (cls) c^=2k– - ( 2 ).
    2. (reg) c^=4k– .

    Observe que os vetores obtidos podem ser transformados em matrizes k×2e k×4. Assim, obtemos as matrizes, ondei a linha corresponde aos valores para uma hipótese específica.

Surge uma questão lógica: como as coordenadas absolutas das hipóteses podem ser determinadas a partir do vetor que entra na camada de registro? A resposta é simples - de jeito nenhum. Para a determinação correta das coordenadas, é necessário usar as chamadas âncoras e correções em suas coordenadas.

Uma âncora é um quadrilátero de diferentes proporções (1: 1, 2: 1, 1: 2) e tamanhos (128 × 128, 256 × 256, 512 × 512). O centro da âncora é o centro da célula (i,j) sinais de cartão. Então, por exemplo, vamos pegar uma célula (7,7), cujo centro são os valores (7,5,7,5), que correspondem às coordenadas (120,120) da imagem original (16 × 7,5). Compare com essas coordenadas os retângulos de três proporções e três tamanhos (um total de 3 × 3 = 9). No futuro, a camada de registro produzirá edições apropriadas com relação a essas coordenadas, ajustando assim a localização e a forma da caixa delimitadora.

Total:

  • Entrada: mapa de características da imagem original;
  • Saída: hipóteses contendo um objeto.

Função de perda


Para o treinamento de RPN, a seguinte notação de classe é usada:

  • Positivas são todas as âncoras com uma interseção (IoU) superior a 0,7 ou com a maior interseção entre todas as âncoras (aplica-se se não houver interseção superior a 0,7).
  • Negativas são todas as âncoras com uma interseção menor que 0,3.
  • Todas as outras âncoras não participam do treinamento (na verdade, são neutras).

Então a turma pias âncoras são concedidas de acordo com a seguinte regra:

pi={1ifIoU>0.70ifIoU<0.3nothingotherwise


Com essa notação, a seguinte função é minimizada:

L({pi},{ti})=1NclsiLcls(pi,pi)+λ1NlocipiLreg(ti,ti)


Aqui:

  • i- número da âncora;
  • pi- a probabilidade de encontrar o objeto em iâncora;
  • pi- o número correto da classe (indicado acima);
  • ti- 4 correções previstas nas coordenadas;
  • ti- correções esperadas (verdade do solo) nas coordenadas;
  • Lcls(pi,pi)- perda de log binária;
  • Lreg(ti,ti)- perda SmoothL1. Ativado somente sepi=1, ou seja, se a hipótese contiver pelo menos algum objeto;
  • {pi}e {ti}- resultados dos modelos de classificação e regressão, respectivamente;
  • λ- coeficiente para ajustar o equilíbrio entre classificação e regressão.

Ambas as partes da perda combinada normalizam para Nclse Nlocrespectivamente. Os autores usaramNcls igual ao tamanho do mini lote (256) e Nlocigual ao número de âncoras.

Para regredir correções para a caixa delimitadora, os valores são inicializados e calculados da seguinte maneira:

tx=(xxa)wa,tx=(xxa)wty=(yya)ha,ty=(yya)hatw=logwwa,tw=logwwath=loghha,th=loghha


Aqui x, y, we hindica o centro, a largura e a altura da caixa delimitadora. Variáveisx, xe xadenotar predição, verdade básica e significado das âncoras (por y, we hsimilarmente).

O treinamento na lista completa de âncoras terá um viés em relação à classe negativa (há muito mais hipóteses com essa classe). A este respeito, o mini lote é formado em uma proporção de 1: 1 de âncoras positivas para negativas. Se não for possível encontrar o número apropriado de âncoras positivas, o minilote é complementado com a ajuda de classes negativas.

Treinamento geral em rede


O objetivo principal é o uso conjunto de balanças entre os dois módulos - isso aumentará a velocidade do trabalho. Como é impossível (ou bastante difícil) treinar dois módulos independentes ao mesmo tempo, os autores do artigo usam uma abordagem iterativa:

  1. Rede de treinamento RPN. As camadas convolucionais são inicializadas com pesos obtidos anteriormente durante o treinamento no ImageNet. Vamos treinar a tarefa de definir regiões com qualquer classe (a especificação da classe faz parte do Fast R-CNN).
  2. Rede rápida de treinamento da R-CNN. Como na etapa 1, inicializamos o Fast R-CNN com os pesos obtidos anteriormente durante o treinamento no ImageNet. Nós treinamos novamente usando hipóteses sobre objetos usando a rede RPN treinada no item 1. Desta vez, a tarefa do treinamento é esclarecer as coordenadas e determinar a classe específica do objeto.
  3. Usando os pesos da página 2, treinamos apenas a parte RPN (as camadas que vão para as redes RPN pertencentes ao extrator de recursos são congeladas e não são alteradas).
  4. Usando os pesos da página 3 (ou seja, o RPN mais refinado), treinamos as camadas do Fast R-CNN (os pesos restantes - aqueles que vão mais cedo ou estão relacionados ao RPN - são congelados).

Com a ajuda de um treinamento iterativo, verifica-se que toda a rede é construída nas mesmas escalas. Você pode continuar treinando a rede nesse princípio, mas os autores observam que não há grandes alterações nas métricas.

Processo de previsão


Ao usar redes neurais para previsões, a propagação da imagem se parece com isso:

  1. A imagem entra na entrada da rede neural, gerando um mapa de características.
  2. Cada célula do mapa de características é processada usando RPN, resultando na correção da posição das âncoras e na probabilidade da presença de um objeto de qualquer classe.
  3. Os quadros previstos correspondentes são então baseados no mapa de recursos e na camada RoI para processamento adicional da peça Fast R-CNN.
  4. Na saída, obtemos uma classe específica de objetos e sua posição exata na imagem.

Resumo das diferenças


Aqui está um breve resumo dos modelos entre si (idéias básicas são herdadas do mais jovem para o mais velho):

R-CNN:

  • Usando a Pesquisa Seletiva como gerador de hipóteses.
  • Usando SVM + Ridge para classificação e regressão de hipóteses (além disso, sua operação paralela não é possível).
  • Executando uma rede neural para processar cada hipótese individualmente.
  • Baixa velocidade.

R-CNN rápido:

  • Uma rede neural é lançada apenas uma vez por imagem - todas as hipóteses são testadas com base em um único mapa de recursos.
  • Processamento inteligente de hipóteses de diferentes tamanhos devido à camada RoI.
  • Substituindo SVN por uma camada SoftMax.
  • A possibilidade de classificação e regressão paralela do trabalho.

R-CNN mais rápido:

  • Geração de hipóteses usando um módulo especial diferenciável separadamente.
  • Alterações no processamento de imagens associadas ao advento do módulo RPN.
  • O mais rápido desses três modelos.
  • É um dos mais precisos até hoje.

Conclusão


Em conclusão, podemos dizer que o desenvolvimento do R-CNN mudou de algoritmos díspares que resolvem um problema em direção a uma única solução de ponta a ponta. Essa combinação permite tornar quase qualquer abordagem mais precisa e produtiva; a detecção de objetos não foi uma exceção.

Bibliografia


  1. R. Girshick, J. Donahue, T. Darrell, and J. Malik. «Rich feature hierarchies for accurate object detection and semantic segmentation.» In CVPR, 2014. arXiv:1311.2524
  2. R. Girshick, J. Donahue, T. Darrell, and J. Malik. «Region-based convolutional networks for accurate object detection and segmentation.» TPAMI, 2015
  3. R. Girshick, «Fast R-CNN,» in IEEE International Conference on Computer Vision (ICCV), 2015.
  4. S. Ren, K. He, R. Girshick, and J. Sun, «Faster R-CNN: Towards real-time object detection with region proposal networks,» in Neural Information Processing Systems (NIPS), 2015.

All Articles