Nos últimos anos, o campo de detecção de objetos sofreu um grande avanço após a popularização do paradigma Deep Learning. Abordagens como YOLO, SSD ou FasterRCNN mantêm o estado da arte na tarefa geral de detecção de objetos [ 1 ].
No entanto, no cenário específico do aplicativo em que nos é dada apenas uma imagem de referência para o objeto / logotipo que queremos detectar, os métodos baseados em aprendizado profundo parecem ser menos aplicáveis e os descritores de recursos locais, como SIFT e SURF, aparecem como alternativas mais adequadas, com um custo de implantação quase zero.
Minha pergunta é: você pode apontar algumas estratégias de aplicação (de preferência com implementações disponíveis, em vez de apenas documentos de pesquisa descrevendo-as) em que o Deep Learning é usado com sucesso para detecção de objetos com apenas uma imagem de treinamento por classe de objeto?
Cenário de aplicativo de exemplo:
Nesse caso, o SIFT detecta com sucesso o logotipo na imagem:
Respostas:
Acontece que apenas treinar uma rede de detecção de objetos comum com um monte de aumento de dados obterá resultados decentes.
Peguei o logotipo "coca cola" da sua postagem e realizei algumas melhorias aleatórias nele. Então eu baixei 10000 imagens aleatórias do flickr e colei aleatoriamente o logotipo nessas imagens. Também adicionei regiões vermelhas aleatórias às imagens para que a rede não descobrisse que nenhum blob vermelho era um objeto válido. Algumas amostras dos meus dados de treinamento:
Treinei um modelo RCNN nesse conjunto de dados. Aqui estão algumas imagens do conjunto de testes que encontrei no google images e o modelo parece estar bem.
Os resultados não são perfeitos, mas eu bati isso em duas horas. Espero que com um pouco mais de cuidado com a geração de dados e com o treinamento do modelo, você possa obter resultados muito melhores.
Acho que idéias de trabalhos como Aprender a Modelar a Cauda podem ser usadas para permitir o aprendizado de novas categorias de objetos com apenas um ou alguns exemplos, em vez de precisar gerar um monte de dados como eu fiz, mas não estou ciente de eles fazendo experimentos com detecção de objetos.
fonte