Terminei de estudar o artigo yolov1 há alguns dias ( yolov1 paper notes_crlearning's blog-CSDN blog ), e hoje vou compartilhar o artigo yolov2 (YOLO9000: Better, Faster, Stronger), principalmente para melhorar as deficiências do yolov1 e propor alguns treinamentos pequenos truque.
Endereço do papel: https://pan.baidu.com/s/1_30O3DD8gDzQocp9UndxwQ Código de extração: 6666
Índice
2.2 Classificador de alta resolução
2.3Convolucional com caixas de ancoragem
2.5 Previsão de localização direta
1. Resumo
Este artigo propõe dois novos algoritmos, um é yolov2 e o outro é yolo9000.O autor aponta que esses algoritmos são melhores que yolov1 e r-cnn rápido no conjunto de dados COCO. Uma vez que o conjunto de dados de detecção de alvo é menor do que o conjunto de dados de classificação de imagem e o preço é mais caro, o autor pensa que é yolo9000 obtido por meio do treinamento conjunto do conjunto de dados ImageNet e COCO. Pode ser visto no nome que ele pode prever 9.000 categorias, das quais aprendo principalmente yolov2 , a seguir está a melhoria de yolov2 descrita principalmente no artigo a partir das três dimensões de melhor, mais rápido e mais robusto.
2、Melhor
Há um grande erro de posicionamento em yolov1 e o valor de rechamada é relativamente baixo, por isso é necessário melhorar a rechamada e a localização, mantendo a precisão da classificação. Mas a rede não pode ser muito grande, caso contrário o algoritmo será lento. yolov2 reúne muitos novos conceitos para melhorar o desempenho do yolo.
2.1 Normalização do Lote
O uso da normalização em lote melhora muito a convergência do modelo, o que pode ajudar o modelo a ser melhor normalizado e também pode remover o abandono sem overfitting, e o uso da normalização em lote pode aumentar o valor do mapa do modelo em 2%. Para o entendimento do bn, acho que é padronizar nossos dados dentro de um mesmo intervalo, o que reduz muito o erro entre dados diferentes.
2.2 Classificador de alta resolução
Um classificador de resolução melhor é ampliar a imagem de entrada. A imagem de entrada da rede de backbone de yolov1 é 224 x 224 para pré-treinamento e, em seguida, é aumentada para 448 x 448 para detecção e treinamento, enquanto yolov2 melhora a imagem de entrada para 448 x 448 , altere a resolução da imagem de entrada no modelo de pré-treinamento Imagenet e treine por 10 épocas, usando este método para aumentar o valor do mapa em 4%.
2.3Convolucional com caixas de ancoragem
Usar a camada totalmente conectada em yolov1 para prever as coordenadas da caixa não é como o RPN em Faster R-CNN para gerar uma caixa de pré-seleção. O RPN só precisa prever o deslocamento, não toda a coordenada, o que simplifica o aprendizado da rede. O modelo yolov2 tem várias melhorias:
1. Remova a camada totalmente conectada da última camada e use caixas de ancoragem para prever
2. Remova uma camada da camada de pooling, para obter uma boa resolução
3. Altere a entrada 448 x 448 para 416 x 416. É mencionado no artigo que, como 416 dividido por 32 é igual a um número ímpar, haverá uma única célula correspondente. Como entender esse conceito, antes de tudo, existem 5 camadas de agrupamento em nossa rede, então é equivalente a encolher 32 vezes, então o mapa de recursos final é 13 x 13 e cada célula corresponde ao tamanho da imagem original 32 x 32, que é o campo receptivo. Se a saída final não for um número ímpar e houver um objeto grande no centro da imagem, não haverá célula central e o centro poderá ter apenas 4 células correspondentes, resultando em desperdício. (compreensão pessoal)
yolov1 tem apenas caixas de 7 x 7 x 2, enquanto yolov2 tem caixas de 13 x 13 x 9. Comparado com os resultados, a precisão de yolov2 é reduzida apenas em 0,4 mapa, mas o recall aumentou em 7%, o que mostra que é eficaz.
2.4 Clusters de dimensão
Para agrupamento de dimensão, há dois problemas com o uso de caixas âncora: primeiro, o tamanho da caixa é selecionado manualmente e a rede está sendo ajustada. Mas se você puder escolher caixas de pré-seleção melhores, isso pode tornar o modelo mais fácil de aprender. O autor usa agrupamento k-means para selecionar a caixa de pré-seleção, onde a distância não usa a distância euclidiana, o que facilmente leva a um erro maior na caixa grande, mas usa o valor IOU como distância:
O gráfico à esquerda é o resultado do agrupamento. Selecione k = 5 para obter um Aug IOU relativamente grande e o número de caixas é pequeno. O efeito obtido subindo não é tão bom. Existem 5 caixas no gráfico em à direita. O azul está no conjunto de dados COCO e o branco está no conjunto de dados VOC.
Pode-se ver que usar k-means para selecionar caixas é melhor do que a seleção manual.
2.5 Previsão de localização direta
Para previsão de posição direta, o segundo problema com yolo usando âncora é que quando o modelo itera pela primeira vez, o modelo é instável porque a posição (x, y) da caixa é prevista. O método de cálculo fornecido no artigo é:
Mas a partir do método de cálculo no artigo Faster R-CNN
Portanto, o artigo deveria ter escrito o símbolo errado. Esses métodos de cálculo não têm nenhuma restrição em x e y, e a velocidade de convergência pode ser relativamente lenta. O autor usa um deslocamento relativo a cada célula, de modo que o deslocamento de x e y Entre 0 e 1, a fórmula de cálculo é a seguinte:
O uso de clustering e restrições de localização aumenta o valor do mapa em 5% em comparação com o uso simples de âncoras.
2.6 Recursos Refinados
Recursos refinados, sua função é semelhante ao princípio do resnet, que é adicionar uma camada de passagem, adicionar a resolução de 26 x 26 à camada de 13 x 13, fazer uma operação de convolução na camada de 26 x 26 , e aumentar o número de canais, principalmente para evitar que pequenas informações sejam perdidas, e há um aumento de 1%
2.7 Treinamento Multiescala
O treinamento multiescala, para tornar o yolov2 mais robusto, pode ser realizado em diferentes tamanhos de imagem, e o tamanho da imagem de entrada é alterado a cada 10 épocas, o tamanho é um múltiplo de 32, o máximo é 608 e o mínimo é 320. Isso permite que yolov2 detecte diferentes resoluções. Velocidade de baixa resolução é rápida, baixa precisão, velocidade de alta resolução é ligeiramente mais lenta, alta precisão
3、mais rápido
Darknet-19, yolov2 não usa vgg-16. Embora seja preciso, requer 30,69 bilhões de operações de ponto flutuante para processar uma imagem de 224 x 224. Em yolov1, é baseado na arquitetura Googlenet, que usa apenas 8,52 bilhões de cálculos, e a precisão é um pouco menor em vgg-16. O uso do Darknet-19 no yolov2 requer apenas 5,58 bilhões de cálculos e a precisão também é muito alta.
Treinamento de classificação, executa operações de processamento de dados, como corte aleatório e rotação nas imagens de treinamento e processa a taxa de aprendizado
4, mais forte
Esta seção explica principalmente o método de treinamento conjunto de classificação e detecção de conjuntos de dados Imagenet e COCO e implementa o modelo YOLO 9000. Devido aos conflitos em algumas categorias, um método WordNet é usado para construir o WordTree, de modo que cada categoria seja separada.
Não entendo muito bem esta parte, mas provavelmente sei muito. Se você estiver interessado, pode ler o artigo original. Atualizarei o YOLOv3, v1 e v2 em alguns dias. Pretendo apenas entender o autor todo o processo de pensamento, então não li o código. Pretendo realizá-lo sozinho, obrigado por assistir.