Modelos e plataformas de IA

DeepFace para Reconhecimento Facial Avançado

mm
Adicione Unite.AI às suas fontes preferidas no Google

O reconhecimento facial tem sido um campo em tendÊncia em IA e ML por vÃĄrios anos, e as implicaçÃĩes culturais e sociais generalizadas do reconhecimento facial sÃĢo de longo alcance. No entanto, existe uma lacuna de desempenho entre os sistemas visuais humanos e as mÃĄquinas que atualmente limitam as aplicaçÃĩes do reconhecimento facial.

Para superar o buffer criado pela lacuna de desempenho e entregar precisÃĢo de nível humano, a Meta introduziu o DeepFace, um framework de reconhecimento facial. O modelo DeepFace ÃĐ treinado em um grande conjunto de dados faciais que difere significativamente dos conjuntos de dados usados para construir os benchmarks de avaliaçÃĢo, e ele tem o potencial de superar os frameworks existentes com adaptaçÃĩes mínimas. AlÃĐm disso, o framework DeepFace produz representaçÃĩes faciais compactas quando comparado a outros sistemas que produzem milhares de recursos de aparÊncia facial.

O framework DeepFace proposto usa Aprendizado Profundo para treinar em um grande conjunto de dados consistindo em diferentes formas de dados, incluindo imagens, vídeos e grÃĄficos. A arquitetura da rede DeepFace assume que, uma vez que o alinhamento esteja completo, a localizaçÃĢo de cada regiÃĢo facial ÃĐ fixa ao nível do pixel. Portanto, ÃĐ possível usar os valores de RGB do pixel bruto sem usar mÚltiplas camadas convolucionais como feito em outros frameworks.

A pipeline convencional dos frameworks modernos de reconhecimento facial compreende quatro estÃĄgios: DetecçÃĢo, Alinhamento, RepresentaçÃĢo e ClassificaçÃĢo. O framework DeepFace emprega modelagem facial 3D explícita para aplicar uma transformaçÃĢo por partes, e usa uma rede neural profunda de nove camadas para derivar uma representaçÃĢo facial. O framework DeepFace tenta fazer as seguintes contribuiçÃĩes

  1. Desenvolver uma arquitetura de DNN ou Rede Neural Profunda eficaz que possa aproveitar um grande conjunto de dados para criar uma representaçÃĢo facial que possa ser generalizada para outros conjuntos de dados.
  2. Usar modelagem 3D explícita para desenvolver um sistema de alinhamento facial eficaz.

Entendendo o Funcionamento do Modelo DeepFace

Alinhamento Facial

O Alinhamento Facial ÃĐ uma tÃĐcnica que gira a imagem de uma pessoa de acordo com o ÃĒngulo dos olhos. O Alinhamento Facial ÃĐ uma prÃĄtica popular que ÃĐ usada para prÃĐ-processar dados para reconhecimento facial, e conjuntos de dados faciais alinhados ajudam a melhorar a precisÃĢo dos algoritmos de reconhecimento ao fornecer uma entrada normalizada. No entanto, alinhar faces de forma nÃĢo restrita pode ser uma tarefa desafiadora devido a vÃĄrios fatores envolvidos, como expressÃĩes nÃĢo rígidas, poses corporais e mais. TÃĐcnicas de alinhamento sofisticadas, como usar um modelo analítico 3D do rosto ou procurar por pontos fiduciais de um conjunto de dados externo, podem permitir que os desenvolvedores superem os desafios.

Embora o alinhamento seja o mÃĐtodo mais popular para lidar com verificaçÃĢo e reconhecimento facial nÃĢo restrito, nÃĢo hÃĄ uma soluçÃĢo perfeita no momento. Modelos 3D tambÃĐm sÃĢo usados, mas sua popularidade diminuiu significativamente nos Últimos anos, especialmente quando trabalhando em um ambiente nÃĢo restrito. No entanto, porque os rostos humanos sÃĢo objetos 3D, pode ser a abordagem certa se usada corretamente. O modelo DeepFace usa um sistema que usa pontos fiduciais para criar uma modelagem analítica 3D do rosto. Essa modelagem 3D ÃĐ entÃĢo usada para deformar uma crop facial para um modo frontal 3D.

AlÃĐm disso, assim como a maioria das prÃĄticas de alinhamento, o alinhamento DeepFace tambÃĐm usa detectores de pontos fiduciais para direcionar o processo de alinhamento. Embora o modelo DeepFace use um detector de pontos simples, ele o aplica em vÃĄrias iteraçÃĩes para refinar a saída. Um Regressor de Vetor de Suporte ou SVR treinado para prejuízo de configuraçÃĩes de pontos extrai os pontos fiduciais de um descritor de imagem a cada iteraçÃĢo. O descritor de imagem DeepFace ÃĐ baseado em Histogramas LBP, embora ele tambÃĐm considere outros recursos.

Alinhamento 2D

O modelo DeepFace inicia o processo de alinhamento detectando seis pontos fiduciais dentro da crop de detecçÃĢo, centrada no meio dos olhos, localizaçÃĩes da boca e ponta do nariz. Eles sÃĢo usados para girar, dimensionar e traduzir a imagem em seis locais de ÃĒncora, e iterar na imagem deformada atÃĐ que nÃĢo haja alteraçÃĢo visível. A transformaçÃĢo agregada gera entÃĢo um corp alinhado 2D. O mÃĐtodo de alinhamento ÃĐ bastante semelhante ao usado em LFW-a, e ele tem sido usado ao longo dos anos em uma tentativa de aumentar a precisÃĢo do modelo.

Alinhamento 3D

Para alinhar faces com rotaçÃĩes fora do plano, o framework DeepFace usa um modelo de forma 3D genÃĐrico e registra uma cÃĒmera 3D que pode ser usada para deformar o corp 2D alinhado para a forma 3D em seu plano de imagem. Como resultado, o modelo gera a versÃĢo 3D alinhada do corp, e ÃĐ alcançada localizando 67 pontos fiduciais adicionais no corp 2D alinhado usando um segundo SVR ou Regressor de Vetor de Suporte.

O modelo entÃĢo coloca manualmente os 67 pontos de ÃĒncora no modelo 3D e ÃĐ capaz de alcançar a correspondÊncia completa entre referÊncias 3D e seus pontos fiduciais correspondentes. Na prÃģxima etapa, uma cÃĒmera afim 3D-2D ÃĐ adicionada usando uma soluçÃĢo de mínimos quadrados generalizada para os sistemas lineares com uma matriz de covariÃĒncia conhecida que minimiza certas perdas.

FrontalizaçÃĢo

Como deformaçÃĩes nÃĢo rígidas e projeçÃĩes de perspectiva completa nÃĢo sÃĢo modeladas, a cÃĒmera 3D-2D ajustada serve apenas como uma aproximaçÃĢo. Em uma tentativa de reduzir a corrupçÃĢo de fatores importantes de identidade para a deformaçÃĢo final, o modelo DeepFace adiciona os resíduos correspondentes aos componentes x-y de cada ponto fiducial de referÊncia. Tal relaxamento para o propÃģsito de deformar a imagem 2D com menos distorçÃĩes para a identidade ÃĐ plausível, e sem ele, os rostos seriam deformados para a mesma forma em 3D, perdendo fatores discriminativos importantes no processo.

Finalmente, o modelo alcança a frontalizaçÃĢo usando uma transformaçÃĢo afim por partes direcionada pela triangulaçÃĢo de Delaunay derivada de 67 pontos fiduciais.

  1. Rosto detectado com 6 pontos fiduciais.
  2. Corp 2D alinhado induzido.
  3. 67 pontos fiduciais no corp 2D alinhado.
  4. Forma de referÊncia 3D transformada para a imagem do corp 2D alinhado.
  5. Visibilidade do triÃĒngulo em relaçÃĢo à cÃĒmera 3D-2D.
  6. 67 pontos fiduciais induzidos pelo modelo 3D.
  7. VersÃĢo 3D alinhada do corp final.
  8. Nova visÃĢo gerada pelo modelo 3D.

RepresentaçÃĢo

Com um aumento na quantidade de dados de treinamento, os mÃĐtodos baseados em aprendizado provaram ser mais eficientes e precisos quando comparados com recursos projetados, principalmente porque os mÃĐtodos baseados em aprendizado podem descobrir e otimizar recursos para uma tarefa específica.

Arquitetura DNN e Treinamento

A DNN DeepFace ÃĐ treinada em uma tarefa de reconhecimento facial de mÚltiplas classes que classifica a identidade de uma imagem de rosto.

A figura acima representa a arquitetura geral do modelo DeepFace. O modelo tem uma camada convolucional (C1) com 32 filtros de tamanho 11x11x3 que ÃĐ alimentada com uma imagem 3D alinhada de 3 canais RGB de tamanho 152×152 pixels, e resulta em 32 mapas de recursos. Esses mapas de recursos sÃĢo entÃĢo alimentados em uma camada de pooling de mÃĄximo (M2) que pega o mÃĄximo sobre 3×3 vizinhanças espaciais, e tem uma stride de 2, separadamente para cada canal. Em seguida, hÃĄ outra camada convolucional (C3) que compreende 16 filtros, cada um de tamanho 9x9x16. O propÃģsito principal dessas camadas ÃĐ extrair recursos de baixo nível, como textura e bordas simples. A vantagem de usar camadas de pooling de mÃĄximo ÃĐ que elas tornam a saída gerada pelas camadas convolucionais mais robusta a traduçÃĩes locais, e quando aplicadas a imagens de rosto alinhadas, elas tornam a rede muito mais robusta a erros de registro em pequena escala.

MÚltiplos níveis de pooling fazem com que a rede seja mais robusta a certas situaçÃĩes, mas tambÃĐm causam que a rede perca informaçÃĩes sobre a posiçÃĢo precisa de microtexturas e estruturas faciais detalhadas. Para evitar que a rede perca essas informaçÃĩes, o modelo DeepFace usa uma camada de pooling de mÃĄximo apenas com a primeira camada convolucional. Essas camadas sÃĢo entÃĢo interpretadas pelo modelo como uma etapa de prÃĐ-processamento adaptativo de front-end. Embora elas façam a maior parte do cÃĄlculo, elas tÊm parÃĒmetros limitados por si mesmas, e elas simplesmente expandem a entrada em um conjunto de recursos locais.

As camadas seguintes L4, L5 e L6 sÃĢo conectadas localmente, e assim como uma camada convolucional, elas aplicam um banco de filtros onde cada localizaçÃĢo no mapa de recursos aprende um conjunto Único de filtros. Como diferentes regiÃĩes em uma imagem alinhada tÊm estatísticas locais diferentes, nÃĢo pode manter a suposiçÃĢo de estacionariedade espacial. Por exemplo, a ÃĄrea entre as sobrancelhas e os olhos tem uma capacidade discriminativa mais alta quando comparada à ÃĄrea entre a boca e o nariz. O uso de camadas leais afeta o nÚmero de parÃĒmetros sujeitos a treinamento, mas nÃĢo afeta a carga computacional durante a extraçÃĢo de recursos.

O modelo DeepFace usa trÊs camadas no início apenas porque ele tem uma grande quantidade de dados de treinamento bem rotulados. O uso de camadas conectadas localmente pode ser justificado ainda mais como cada unidade de saída de uma camada conectada localmente pode ser afetada por um grande patch de dados de entrada.

Finalmente, as camadas superiores sÃĢo conectadas completamente, com cada unidade de saída conectada a todas as entradas. As duas camadas podem capturar as correlaçÃĩes entre recursos capturados em diferentes partes das imagens de rosto, como posiçÃĢo e forma da boca, e posiçÃĢo e forma dos olhos. A saída da primeira camada fully connected (F7) serÃĄ usada pela rede como seu vetor de recurso de representaçÃĢo facial bruto. O modelo entÃĢo alimenta a saída da Última camada fully connected (F8) em um softmax K-vias que produz uma distribuiçÃĢo sobre rÃģtulos de classe.

Conjuntos de Dados

O modelo DeepFace usa uma combinaçÃĢo de conjuntos de dados, com o conjunto de dados de ClassificaçÃĢo Facial Social ou SFC sendo o principal. AlÃĐm disso, o modelo DeepFace tambÃĐm usa o conjunto de dados LFW e o conjunto de dados YTF.

Conjunto de Dados SFC

O conjunto de dados SFC ÃĐ aprendido a partir de uma coleçÃĢo de fotos do Facebook (META ), e ele consiste em 4,4 milhÃĩes de imagens rotuladas de 4.030 pessoas, com cada uma delas tendo 800 a 1.200 faces. As 5% mais recentes das imagens de faces do conjunto de dados SFC de cada identidade sÃĢo deixadas de fora para fins de teste.

Conjunto de Dados LFW

O conjunto de dados LFW consiste em 13.323 fotos de mais de cinco mil celebridades que sÃĢo entÃĢo divididas em 6.000 pares de faces em 10 divisÃĩes.

Conjunto de Dados YTF

O conjunto de dados YTF consiste em 3.425 vídeos de 1.595 assuntos, e ÃĐ um subconjunto das celebridades no conjunto de dados LFW.

Resultados

Sem a frontalizaçÃĢo e usando apenas o alinhamento 2D, o modelo alcança uma pontuaçÃĢo de precisÃĢo de apenas cerca de 94,3%. Quando o modelo usa o corp central de detecçÃĢo de face, ele nÃĢo usa nenhum alinhamento, e nesse caso, o modelo retorna uma pontuaçÃĢo de precisÃĢo de 87,9% porque algumas partes da regiÃĢo facial podem cair fora do corp central. Para avaliar a capacidade discriminativa da representaçÃĢo facial em isolamento, o modelo segue a configuraçÃĢo de aprendizado nÃĢo supervisionado para comparar o produto interno de recursos normalizados. Isso aumenta a precisÃĢo mÃĐdia do modelo para 95,92%.

A figura acima compara o desempenho do modelo DeepFace quando comparado com outros modelos de reconhecimento facial de Última geraçÃĢo.

A figura acima representa as curvas ROC no conjunto de dados.

ConclusÃĢo

Idealmente, um classificador de faces serÃĄ capaz de reconhecer faces com a precisÃĢo de um ser humano, e ele serÃĄ capaz de retornar alta precisÃĢo independentemente da qualidade da imagem, pose, expressÃĢo ou iluminaçÃĢo. AlÃĐm disso, um framework de reconhecimento facial ideal serÃĄ capaz de ser aplicado a uma variedade de aplicaçÃĩes com poucas ou nenhuma modificaçÃĢo. Embora o DeepFace seja um dos frameworks de reconhecimento facial mais avançados e eficientes atualmente, ele nÃĢo ÃĐ perfeito, e ele pode nÃĢo ser capaz de entregar resultados precisos em certas situaçÃĩes. Mas o framework DeepFace ÃĐ um marco significativo na indÚstria de reconhecimento facial, e ele fecha a lacuna de desempenho usando uma tÃĐcnica de aprendizado de mÃĐtrica poderosa, e ele continuarÃĄ a melhorar com o tempo.

Um engenheiro por profissÃĢo, um escritor por coraçÃĢo. Kunal ÃĐ um escritor tÃĐcnico com um amor e compreensÃĢo profundos de AI e ML, dedicado a simplificar conceitos complexos nestes campos por meio de sua documentaçÃĢo envolvente e informativa.