FaceNet é um modelo de aprendizado profundo para reconhecimento e verificação facial, desenvolvido por pesquisadores do Google. Ele mapeia imagens faciais em um espaço euclidiano compacto de 128 dimensões, onde a distância L2 ao quadrado entre as incorporações corresponde diretamente à similaridade facial. O modelo foi apresentado em um artigo de 2015 intitulado "FaceNet: A Unified Embedding for Face Recognition and Clustering", de Florian Schroff, Dmitry Kalenichenko e James Philbin.
Diferente de sistemas anteriores de reconhecimento facial que usavam representações intermediárias de camadas de gargalo provenientes de redes de classificação, o FaceNet foi treinado de ponta a ponta usando uma nova função de perda de tripletos. Essa função de perda garante que a distância entre as incorporações da mesma pessoa seja menor do que a distância entre incorporações de pessoas diferentes, por uma margem especificada. A abordagem permitiu que o FaceNet alcançasse precisão de ponta em vários conjuntos de dados de referência na época, incluindo 99,63% no conjunto de dados Labeled Faces in the Wild (LFW) e 95,12% no YouTube Faces DB.
Arquitetura e Treinamento
O FaceNet usa uma arquitetura de rede neural convolucional profunda (CNN), com duas variantes principais: a rede Zeiler-Fergus (ZF) e a rede Inception (GoogLeNet). O modelo baseado em Inception, que emprega Batch Normalization e conexões residuais em versões posteriores, alcançou o melhor desempenho. A rede processa recortes faciais alinhados de tamanho 96x96 ou 224x224 pixels, produzindo um vetor de incorporação de 128 dimensões.
O treinamento foi realizado usando descida de gradiente estocástica (SGD) com o otimizador Adam em algumas configurações. A perda de tripletos foi otimizada usando uma estratégia de mineração de tripletos que seleciona exemplos positivos difíceis e negativos difíceis dentro de cada mini-lote. Essa técnica de mineração foi crucial para a convergência, pois a seleção aleatória de tripletos frequentemente levava a um treinamento lento. O modelo foi treinado em um grande conjunto de dados de cerca de 200 milhões de imagens faciais de aproximadamente 8 milhões de identidades únicas, provenientes de imagens da web.
Perda de Tripletos
A inovação central do FaceNet é a função de perda de tripletos. Para cada amostra de treinamento, um tripleto consiste em uma imagem âncora, uma imagem positiva (mesma identidade da âncora) e uma imagem negativa (identidade diferente). A perda incentiva que a distância de incorporação entre âncora e positivo seja menor do que aquela entre âncora e negativo, por pelo menos uma margem α (tipicamente definida como 0,2). A perda é definida como L = max(0, d(a,p) - d(a,n) + α), onde d denota a distância euclidiana.
Para tornar o treinamento eficiente, os autores propuseram duas estratégias de seleção de tripletos: mineração batch-hard (selecionando o positivo mais difícil e o negativo mais difícil dentro de um lote) e mineração batch-all (usando todos os tripletos válidos em um lote). A estratégia batch-hard se mostrou mais eficaz, levando a uma convergência mais rápida e melhor precisão final.
Aplicações e Impacto
As incorporações do FaceNet foram amplamente adotadas para verificação facial, reconhecimento facial e tarefas de agrupamento facial. A capacidade do modelo de produzir incorporações compactas e discriminativas permitiu uma busca de similaridade eficiente usando algoritmos de vizinho mais próximo. Ele influenciou trabalhos subsequentes em aprendizado de métricas e foi integrado a vários sistemas comerciais, incluindo o recurso de agrupamento facial do Google Photos.
A abordagem também inspirou pesquisas além do reconhecimento facial, incluindo re-identificação de pessoas, recuperação de imagens e aprendizado de um único exemplo. O conceito de perda de tripletos foi posteriormente adaptado para outros domínios, como modelos de linguagem e sistemas de recomendação.
Limitações e Trabalhos Posteriores
O FaceNet exigia recortes faciais cuidadosamente alinhados, e seu desempenho degradava com variações de pose, iluminação e oclusão. O modelo também enfrentou críticas em relação à privacidade e viés, já que sistemas de reconhecimento facial podem exibir disparidades demográficas. Modelos subsequentes, como ArcFace e CosFace, melhoraram o FaceNet ao usar perdas de margem angular em vez de margem euclidiana, alcançando melhor desempenho em conjuntos de dados desafiadores.
Apesar desses avanços, o FaceNet permanece um ponto de referência fundamental no campo do reconhecimento facial, e sua formulação de perda de tripletos ainda é ensinada em muitos cursos de Machine learning. O artigo original foi citado mais de 10.000 vezes, refletindo sua influência duradoura na pesquisa em visão computacional.