Aula 13 – Scikit-Learn – Reconhecimento facial – LFW – parte-01

Aula 13 – Scikit-Learn – Reconhecimento facial – LFW – parte – 01

Voltar para página principal do blog

Todas as aulas desse curso

Aula 12              Aula 14

Script dessa aula:

Download do script da aula

Documentação oficial do Sklearn:

https://scikit-learn.org/stable/

Scikit-Learn - reconhecimento facial com LFW - parte01

Scikit-Learn – LFW – parte01

Se gostarem do conteúdo dêem um joinha 👍 na página do Código Fluente no
Facebook

Link do código fluente no Pinterest

Meus links de afiliados:

Hostinger

Digital Ocean

One.com

Conhecendo o Labeled Faces in the Wild (LFW)

Essa é a base usada no exemplo do Scikit-Learn e que vamos explorar na parte prática.

Para o download da base LFW é só clicar nesse link abaixo:

https://scikit-learn.org/stable/auto_examples/applications/plot_face_recognition.html

Ou da fonte original

http://vis-www.cs.umass.edu/lfw/

Essa aula é baseada no trabalho apresentado no:

Labeled Faces in the Wild: A Database for Studying Face Recognition in Unconstrained Environments Gary B. Huang,Manu Ramesh, Tamara Berg, and Erik Learned-Miller

É muito importante entendermos a base LFW, inclusive para absorver o conhecimento de conceitos e paradigmas envolvidos em reconhecimento de imagens e algoritmos de aprendizado.

Como é um conteúdo relativamente grande e profundo, resolvi dividir em duas partes, a explicação da base LFW.

LFW

O LFW é a abreviação de Labeled Faces in the Wild.

O reconhecimento facial se beneficiou muito dos bancos de dados que foram produzidos para estudá-lo.

O maioria desses bancos foram criados sob condições controladas para facilitar o estudo de parâmetros específicos de reconhecimento facial.

Esses parâmetros incluem variáveis ​​como: posição, pose, iluminação, expressão, plano de fundo, qualidade da câmera, oclusão, idade e sexo.

Aplicações

Existem muitas aplicações para a tecnologia de reconhecimento facial.

Em alguns casos, é possível controlar os parâmetros de aquisição das imagens.

Existem também muitas aplicações nas quais o profissional tem pouco ou nenhum controle sobre esses parâmetros.

O propósito do LFW é auxiliar no estudo desse último, ou seja, nos casos onde se tem pouco, ou nenhum controle sobre as imagens adquiridas.

Esse caso é chamado de problema de reconhecimento facial sem restrições.

O LFW representa uma tentativa inicial de fornecer um conjunto de fotografias faciais rotuladas que abrangem o intervalo das condições normalmente encontradas pelas pessoas nas suas vidas cotidianas.

Parâmetros variáveis

O LFW exibe variabilidade “natural” em parâmetros como: pose, iluminação, foco, resolução, expressão facial, idade, sexo, raça, acessórios, maquiagem, oclusões, plano de fundo e qualidade fotográfica.

Apesar dessa variabilidade, as imagens no banco de dados são apresentadas em um formato simples e consistente para máxima facilidade de uso.

Paradigmas experimentais

Além de descrever os detalhes do banco de dados e aquisição das imagens, o LFW também fornece paradigmas experimentais específicos para o qual ele é adequado, em um esforço de fazer com que as pesquisas realizadas com ele sejam o mais consistente e comparável possível.

Reconhecimento facial

O reconhecimento facial é o problema de identificar um indivíduo, em vez de apenas detectar a presença de um rosto humano, que é normalmente chamado de detecção de rosto.

O termo “reconhecimento facial” pode se referir a vários problemas, incluindo, mas não limitado à:

  • Dadas duas fotos, cada uma das quais contém um rosto, decidir se as duas pessoas na foto representam o mesmo indivíduo.
  • Dada uma imagem do rosto de uma pessoa, decidir se é um exemplo daquele indivíduo em particular. Isso pode ser feito comparando a face do indivíduo modelo com outras fotos dele.
  • Dada a imagem de um rosto, decida qual pessoa entre um conjunto de pessoas, a imagem representa, se houver. (Este é freqüentemente chamado de paradigma de verificação facial.)

Reconhecimento de classes gerais

Observamos que, para classes mais gerais de objetos, como carros ou cães, o termo “reconhecimento” geralmente se refere ao problema de reconhecer um membro da classe maior, em vez de uma instância específica.

Ou seja, quando alguém “reconhece” um gato, no contexto da pesquisa em visão computacional, significa que se identificou um objeto em particular como sendo um gato, em vez de identificar um objeto gato em específico.

No contexto de objetos mais gerais, o termo identificação é usado para se referir ao problema de reconhecer uma instância específica de uma classe, como um carro de uma marca específica.

No entanto, no que se refere a rostos humanos, o termo reconhecimento é normalmente usado para se referir à identificação de um indivíduo em particular, não apenas um ser humano.

Como trabalharemos sobre rostos humanos, adotaremos então, essa última terminologia.

Problema

Vamos nos referir ao problema como problema de correspondência de pares.

Detalhes do LFW

O LFW contém 13.233 imagens de rosto, cada linha representa uma imagem de rosto.

Algumas imagens contêm mais de um rosto, mas é o rosto que contém o pixel central da imagem que é considerado o rosto que define a imagem.

Tudo que não é o rosto alvo, o que contém o pixel central, deve ser ignorado e ser considerado imagem de fundo, mesmo que se trate de outro rosto na foto.

O nome da pessoa representada no centro da imagem é fornecido pelo rótulo.

Cada pessoa recebe um nome único (“George_W_Bush” é o filho, enquanto “George_HW_Bush” é o pai, presidente anterior dos EUA), então nenhum nome deve corresponder a mais de uma pessoa, ou seja, cada indivíduo deve aparecer apenas com um nome, a menos que hajam erros desconhecidos no banco de dados.

O LFW contém imagens de 5749 indivíduos diferentes.

Desses, 1680 têm duas ou mais imagens no banco de dados.

As 4069 pessoas restantes têm apenas uma única imagem no banco de dados.

As imagens estão disponíveis em JPEG com resolução de 250 por 250 pixels.

A maioria das imagens é colorida, embora algumas sejam em preto e branco.

Viola-Jones

A estrutura de detecção de objetos Viola-Jones é a primeira de detecção de objetos a fornecer taxas competitivas de detecção de objetos em tempo real.

Foi proposta em 2001 por Paul Viola e Michael Jones.

Embora possa ser treinada para detectar uma variedade de classes de objetos, foi motivado principalmente pelo problema da detecção de faces.

O problema a ser resolvido é a detecção de rostos em uma imagem.

Um ser humano pode fazer isso facilmente, mas um computador precisa de instruções e restrições precisas.

Para tornar a tarefa mais gerenciável, o Viola-Jones exige faces frontais verticais em visão total.

Assim, para ser detectado, todo o rosto deve apontar para a câmera e não deve ser inclinado para nenhum dos lados.

Embora essas restrições possam diminuir um pouco a utilidade do algoritmo, porque a etapa de detecção é mais frequentemente seguida por uma etapa de reconhecimento, na prática esses limites de pose são bastante aceitáveis.

Voltando ao LFW, depois de executar o detector Viola-Jones em um grande banco de dados de imagens, as detecções de falsos positivos foram eliminadas manualmente, juntamente com imagens para as quais o nome do indivíduo não pôde ser identificado.

Mas, para que especificamente o LFW foi projetado?

Conforme mencionado anteriormente, o Labeled Faces in the Wild visa o estudo do problema da correspondência de pares.

Ou seja, dado um par de imagens de rosto, queremos decidir se as imagens são de uma mesma pessoa.

Ao gerar uma probabilidade de correspondência ou incompatibilidade em vez de uma decisão binária, podemos criar facilmente uma Característica de Operação de Receptor(Receiver Operating Characteristic), ou curva ROC.

A ROC fornece decisões de custo mínimo para determinados custos de erro relativos a correspondência falsa ou incompatibilidade falsa.

Um aspecto crítico do LFW é que, para qualquer divisão dos dados para teste e para treinamento, as pessoas em cada subconjunto são mutuamente exclusivas.

Em outras palavras, para qualquer par de imagens no conjunto de treinamento, nenhuma das pessoas retratadas nessas imagens está em qualquer um dos pares do conjuntos de teste.

Da mesma forma, nenhuma imagem de teste aparece no conjunto de treinamento correspondente.

Assim, na hora do treinamento, é impossível construir um modelo para qualquer pessoa no conjunto de teste.

Verificação de face

Esse paradigma difere substancialmente de paradigmas nos quais existe uma galeria fixa de fotos que ficam disponíveis para treinamento do modelo, e o objetivo é encontrar correspondências de novas imagens aos membros da galeria fixa.

Esse paradigma de galeria fixa são frequentemente chamados de verificação de face.

Em particular, para o LFW, já que as pessoas no conjunto de teste nunca foram vistas antes pelo modelo, não há como construir modelos para esses indivíduos que nunca foram vistos antes, exceto se fizer isso na hora do teste com uma única imagem.

Em vez disso, esse paradigma deve se concentrar no problema genérico de diferenciar dois indivíduos que nunca foram vistos antes.

Correspondência de pares

O LFW foi projetado principalmente para problemas de correspondência de pares, em que nenhum dos indivíduos no conjunto de teste foi visto durante o treinamento.

Essa abordagem está intimamente relacionada ao problema de aprender com um exemplo, na qual é fornecida uma única imagem de treinamento de uma pessoa, e o objetivo é determinar se uma nova imagem representa o indivíduo da imagem fornecida para o treinamento.

Em particular, o problema de correspondência de pares que não foram vistos antes, pode ser visualizado como um exemplo específico do problema de Learning from One Example.

Especificamente, dado um par de imagens e a pergunta se são iguais, uma das imagens pode ser considerada
definir o “modelo”, e o outra pode ser considerada uma instância da pessoa definida pelo modelo ou não.

Em resumo, a estrutura de detecção de objetos Viola-Jones, embora possa ser treinado para detectar uma variedade de classes de objetos, ele foi motivado principalmente pelo problema da detecção de faces destinado ao unseen pair matching paradigm, paradigma de correspondência de pares nunca vistos antes, caracterizado pelas condições:

  • nenhuma imagem do conjunto de teste está disponível para o treinamento.
  • as decisões para todos os pares de teste são tomadas independentemente.

No LFW foram definidas duasviews“, uma para o desenvolvimento do algoritmo, experimentações em geral, antes da avaliação final.

E a outra view para relatórios de desempenho, que deve ser usado apenas para a avaliação final do método.

O objetivo dessa metodologia é usar os conjuntos finais de testes o mais raramente possível antes de fazer o relatório.

VIEWS

View1 – Seleção de modelos e desenvolvimento de algoritmos.

Essa view dos dados consiste em dois subconjuntos dele, um para treinamento (pairsDevTrain.txt) e outro para teste (pairsDevTest.txt).

O conjunto de treinamento consiste em 1100 pares de imagens correspondentes e 1100 pares de imagens incompatíveis.

O conjunto de testes consiste em 500 pares correspondentes e 500 pares de imagens incompatíveis.

A fim de apoiar o paradigma de correspondência de pares que nunca foram vistos antes (unseen pair matching paradigm), as pessoas que aparecem no conjunto de treinamento e conjuntos de testes são mutuamente exclusivas.

O principal objetivo dessa visão dos dados é que os pesquisadores podem experimentar livremente algoritmos e parâmetros de configurações sem se preocupar com o uso excessivo de dados de teste.

Por exemplo, se alguém estiver usando máquinas de vetores de suporte(support vector machines – SVM) e tentando decidir sobre qual kernel usar, seria apropriado testar vários kernels (função de base linear, polinomial e radial, etc.) na View1 do banco de dados.

Para usar essa view, simplesmente treine o algoritmo com o conjunto de treino e teste com o conjunto de teste.

Isso pode ser repetido quantas vezes quiser sem influenciar significativamente os resultados finais.

View2 – Relatórios de desempenho

A segunda visão dos dados devem ser usada com moderação e apenas para comunicar o desempenho.

Idealmente, ele deve ser usado apenas uma vez.

Escolher o melhor desempenho entre os vários algoritmos ou vários parâmetros de configurações, desviará os resultados para uma precisão artificialmente alta.

A View2 consiste em dez subconjuntos da base de dados.

Depois que um modelo ou algoritmo for selecionado, usando view1 do banco de dados, se desejado, o desempenho desse o algoritmo pode ser medido usando a View2.

Para relatar a precisão dos resultados na view 2, você deve informar o valor agregado do desempenho de um classificador em 10 experimentos separados em um esquema de validação cruzada de exclusão única.

Em cada experimento, nove dos subconjuntos devem ser combinados para formar um conjunto de treinamento, com o décimo subconjunto sendo usado para teste.

Por exemplo, o primeiro experimento usaria o subconjunto 2, 3, 4, 5, 6, 7, 8, 9 e 10 para treinamento e o subconjunto 1 para teste.

O quarto experimento usaria o subconjunto 1, 2, 3, 5, 6, 7, 8, 9 e 10 para treinamento e o subconjunto 4 para teste.

Ficamos por aqui, na próxima aula continuaremos a explorar a base, e veremos os métodos de treinamento sugeridos pela documentação do LFW.

Voltar para página principal do blog

Todas as aulas desse curso

Aula 12              Aula 14

Link do meu Github com o script dessa aula:

Download do script da aula

Se gostarem do conteúdo dêem um joinha 👍 na página do Código Fluente no
Facebook

Link do código fluente no Pinterest

Novamente deixo meus link de afiliados:

Hostinger

Digital Ocean

One.com

Obrigado, até a próxima e bons estudos. 😉

About The Author
-

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>