DeepFace ou DeepFake – A biblioteca de reconhecimento facial real

Deepfake, uma amálgama de "deep learning" e "fake", é uma técnica de síntese de imagens ou sons humanos baseada em técnicas de inteligência artificial.

por Cristian Gustavo Azevedo

O reconhecimento facial tem sido um tema quente por várias décadas. E embora existam diferentes bibliotecas de reconhecimento facial disponíveis, o DeepFace se tornou amplamente popular e é usado em vários aplicativos de reconhecimento facial.

Este artigo discutirá o que torna o DeepFace diferente de suas alternativas e por que você deve usá-lo. Em particular, o artigo abordará o seguinte:

  1. O que é Deep Face? Um guia sobre os principais recursos.
  2. Tutoriais curtos passo a passo do DeepFace sobre como usar a biblioteca.
  3. Como construir um detector de rosto com Deep Face.
  4. Como usar os modelos de reconhecimento facial mais populares.
  5. Tutorial sobre como usar o reconhecimento facial baseado em aprendizado profundo com uma webcam em tempo real.
  6. Como instalar o repositório GitHub de reconhecimento facial que contém a biblioteca DeepFace.

Antes de nos aprofundarmos: Se você estiver procurando por uma solução de nível empresarial para fornecer aplicativos de reconhecimento facial, poderá usar o DeepFace com a plataforma sem código Viso Suite . Usado por organizações líderes em todo o mundo, o Viso Suite fornece DeepFace totalmente integrado com tudo o que você precisa para executar e dimensionar a visão de IA, como segurança de confiança zero e privacidade de dados para visão de IA.

O que é Deepface?

DeepFace é a biblioteca mais leve de reconhecimento facial e análise de atributos faciais para Python. A biblioteca DeepFace de código aberto inclui todos os modelos de IA de ponta para reconhecimento facial e lida automaticamente com todos os procedimentos de reconhecimento facial em segundo plano.

Embora você possa executar o DeepFace com apenas algumas linhas de código, você não precisa adquirir conhecimento profundo sobre todos os processos por trás dele. Na verdade, você simplesmente importa a biblioteca e passa o caminho exato da imagem como entrada; isso é tudo!

Se você executar o reconhecimento facial com o DeepFace, terá acesso a um conjunto de recursos:

  • Verificação de rosto : A tarefa de verificação de rosto se refere a comparar um rosto com outro para verificar se é uma correspondência ou não. Portanto, a verificação facial é comumente usada para comparar o rosto de um candidato com outro. Isso pode ser usado para confirmar que um rosto físico corresponde ao de um documento de identificação.
  • Reconhecimento de Face : A tarefa se refere a encontrar um rosto em um banco de dados de imagens. A execução do reconhecimento facial requer a execução da verificação facial muitas vezes.
  • Análise de Atributos Faciais: A tarefa de análise de atributos faciais refere-se a descrever as propriedades visuais das imagens faciais. Assim, a análise de atributos faciais é usada para extrair atributos como idade, classificação de gênero, análise de emoções ou previsão de raça/etnia.
  • Análise de rosto em tempo real: esse recurso inclui testes de reconhecimento de rosto e análise de atributos faciais com o feed de vídeo em tempo real de sua webcam.

A seguir, explicarei como realizar essas tarefas de reconhecimento facial profundo com o DeepFace.

Como usar o DeepFace?

Deepface é um projeto de código aberto escrito em Python e licenciado sob a licença MIT. Os desenvolvedores têm permissão para usar, modificar e distribuir a biblioteca em um contexto privado ou comercial.

A biblioteca deepface também é publicada no Python Package Index (PyPI), um repositório de software para a linguagem de programação Python. Em seguida, vou guiá-lo através de um breve tutorial sobre como usar o DeepFace.

1. Instale o pacote DeepFace

A maneira mais fácil e rápida de instalar o pacote DeepFace é chamar o comando a seguir, que instalará a própria biblioteca e todos os pré-requisitos do GitHub.

```shell #Repo: https://github.com/serengil/deepface pip install deepface ```
2. Importe a biblioteca

Em seguida, você poderá importar a biblioteca e usar suas funcionalidades usando o seguinte comando.

```python from deepface import DeepFace ```

Como realizar o Reconhecimento Facial e Análise

Execute a verificação facial com Deep Learning no DeepFace

O exemplo a seguir para verificação facial mostra como é simples executá-lo. Na verdade, passamos apenas um par de imagens como entrada e pronto!

```python verification = DeepFace.verify(img1_path = "img1.jpg", img2_path = "img2.jpg") ``` 

Mesmo que a aparência visual de Emilia Clarke em sua vida cotidiana versus em seu papel como Daenerys Targaryen em Game of Thrones seja muito diferente, o DeepFace consegue verificar esse par de imagens, e o mecanismo DeepFace retorna a chave “verificada”: Verdadeiro. Isso significa que o indivíduo em cada imagem é realmente reconhecido como a mesma pessoa.

 

Exemplo de verificação facial com a Biblioteca DeepFace
Exemplo de verificação facial com a Biblioteca DeepFace
Como aplicar o reconhecimento facial do Deep Learn com o DeepFace

Na fala cotidiana, entendemos o reconhecimento facial como a tarefa de encontrar um rosto em uma lista de imagens. No entanto, na literatura, o reconhecimento facial refere-se à tarefa de determinar um par de faces como pessoas iguais ou diferentes. A funcionalidade de reconhecimento facial real está ausente na maioria das bibliotecas alternativas.

Dito isto, o DeepFace também abrange o reconhecimento facial com seu significado real. Para fazer isso, você deve armazenar suas imagens de banco de dados faciais em uma pasta. Em seguida, o DeepFace procurará a identidade da imagem passada na pasta do banco de dados facial.

```python recognition = DeepFace.find(img_path = "img.jpg", db_path = “C:/facial_db") ``` 

 

O DeepFace compara a identidade reconhecida com os resultados do banco de dados facial
O DeepFace compara a identidade reconhecida com os resultados no banco de dados facial.
Como realizar a análise de atributos faciais com o DeepFace

Além disso, o DeepFace vem com um forte módulo de análise de atributos faciais para previsão de idade, gênero, emoção e raça/etnia. Enquanto o módulo de reconhecimento facial do DeepFace envolve modelos de última geração existentes, sua análise de atributos faciais tem seus próprios modelos. Atualmente, o modelo de previsão de idade atinge um erro médio absoluto de +/- 4,6 anos; e o modelo de previsão de gênero atinge uma precisão de 97% .

Você pode usar o seguinte comando para executar a análise de atributos faciais e testá-la você mesmo:

```python
analysis = DeepFace.analyze(img_path = "img.jpg", actions = ["age", "gender", "emotion", "race"])
print(analysis)
```

De acordo com os resultados da análise de atributos faciais abaixo, Emilia Clarke foi reconhecida como idade de “31”, gênero “mulher”, emoção “feliz” com base nessa imagem.

Análise de atributos faciais com aprendizado profundo usando a biblioteca DeepFace
Análise de atributos faciais com aprendizado profundo usando a biblioteca DeepFace

Use o reconhecimento facial e a análise de atributos em vídeos em tempo real

Além disso, você pode testar os módulos de reconhecimento facial e de análise de atributos faciais em tempo real. A função stream acessará sua webcam e executará esses módulos. É divertido, não é?

```python
DeepFace.stream(db_path = “C:/facial_db”)
```

 

Combinação de reconhecimento facial e análise de atributos faciais aplicados em tempo real no vídeo de uma webcam
Combinação de reconhecimento facial e análise de atributos faciais aplicados em tempo real no vídeo de uma webcam

Os modelos de reconhecimento facial mais populares

Enquanto a maioria das bibliotecas alternativas de reconhecimento facial atendem a um único modelo de IA , a biblioteca DeepFace envolve muitos modelos de reconhecimento facial de ponta. Portanto, é a maneira mais fácil de usar o algoritmo DeepFace do Facebook e todos os outros algoritmos de reconhecimento facial principais abaixo.

Os seguintes algoritmos de reconhecimento facial de aprendizado profundo podem ser usados ​​com a biblioteca DeepFace. A maioria deles é baseada em Redes Neurais Convolucionais (CNN) de última geração e fornece os melhores resultados da categoria.

1. Rosto VGG

VGG significa Grupo de Geometria Visual. Uma rede neural VGG (VGGNet) é um dos tipos de modelo de reconhecimento de imagem mais usados ​​com base em redes neurais convolucionais profundas. A arquitetura VGG ficou famosa por alcançar os melhores resultados no desafio ImageNet. O modelo é projetado pelos pesquisadores da Universidade de Oxford.

Embora o VGG-Face tenha a mesma estrutura do modelo VGG normal, ele é ajustado com imagens faciais. O modelo de reconhecimento facial VGG atinge uma precisão de 97,78% no popular conjunto de dados Labeled Faces in the Wild (LFW).

Como usar o VGG-Face: A biblioteca DeepFace usa o VGG-Face como modelo padrão.

2. Google FaceNet

Este modelo é desenvolvido pelos pesquisadores do Google. O FaceNet é considerado um modelo de última geração para detecção e reconhecimento de rosto com aprendizado profundo. O FaceNet pode ser usado para reconhecimento de rosto, verificação e agrupamento (agrupamento de rosto é usado para agrupar fotos de pessoas com a mesma identidade).

O principal benefício do FaceNet é sua alta eficiência e desempenho , relata-se que atinge 99,63% de precisão no conjunto de dados LFW e 95,12% no Youtube Faces DB, usando apenas 128 bytes por face.

Como usar o FaceNet: Provavelmente a maneira mais fácil de usar o Google FaceNet é com a DeepFace Library, que você pode instalar e definir um argumento nas funções do DeepFace (veja o capítulo abaixo).

3. OpenFace

Este modelo de reconhecimento facial é construído pelos pesquisadores da Carnegie Mellon University. Portanto, o OpenFace é fortemente inspirado no projeto FaceNet, mas é mais leve e seu tipo de licença é mais flexível. O OpenFace atinge 93,80% de precisão no conjunto de dados LFW.

Como usar o OpenFace: Assim como nos modelos acima, você pode usar o modelo OpenFace AI usando a DeepFace Library.

4. Facebook DeepFace

Este modelo de reconhecimento facial foi desenvolvido por pesquisadores do Facebook. O algoritmo DeepFace do Facebook foi treinado em um conjunto de dados rotulado de quatro milhões de rostos pertencentes a mais de 4.000 indivíduos, que era o maior conjunto de dados faciais no momento do lançamento. A abordagem é baseada em uma rede neural profunda com nove camadas.

O modelo do Facebook atinge uma precisão de 97,35% (+/- 0,25%) no benchmark do conjunto de dados LFW. Os pesquisadores afirmam que o algoritmo DeepFace do Facebook fechará a lacuna para o desempenho em nível humano (97,53%) no mesmo conjunto de dados. Isso indica que o DeepFace às vezes é mais bem-sucedido do que os seres humanos ao realizar tarefas de reconhecimento de rosto.

Como usar o Facebook DeepFace: Uma maneira fácil de usar o algoritmo de reconhecimento de rosto do Facebook é usar a DeepFace Library com o mesmo nome que contém o modelo do Facebook. Leia abaixo como

5. DeepID

O algoritmo de verificação facial DeepID realiza o reconhecimento facial com base em aprendizado profundo. Foi um dos primeiros modelos usando redes neurais convolucionais e alcançando um desempenho melhor que o humano em tarefas de reconhecimento facial. O Deep-ID foi introduzido por pesquisadores da Universidade Chinesa de Hong Kong.

Os sistemas baseados no reconhecimento facial DeepID foram alguns dos primeiros a superar o desempenho humano na tarefa. Por exemplo, o DeepID2 alcançou 99,15% no conjunto de dados Labeled Faces in the Wild (LFW).

Como usar o modelo DeepID: DeepID é um dos modelos externos de reconhecimento facial incluídos na biblioteca DeepFace.

6. Dlib

O modelo de reconhecimento facial Dlib se autodenomina “a API de reconhecimento facial mais simples do mundo para python”. O modelo de aprendizado de máquina é usado para reconhecer e manipular faces do Python ou da linha de comando. Embora a biblioteca dlib seja originalmente escrita em C++, ela possui ligações Python fáceis de usar.

Curiosamente, o modelo Dlib não foi projetado por um grupo de pesquisa. É introduzido por Davis E. King, o principal desenvolvedor da biblioteca de processamento de imagens Dlib.

A ferramenta de reconhecimento de rosto do Dlib mapeia uma imagem de um rosto humano para um espaço vetorial de 128 dimensões, onde imagens de pessoas idênticas estão próximas umas das outras e as imagens de pessoas diferentes estão distantes. Portanto, o dlib realiza o reconhecimento facial mapeando as faces para o espaço 128d e verificando se a distância euclidiana é pequena o suficiente.

Com um limite de distância de 0,6, o modelo dlib alcançou uma precisão de 99,38% no benchmark padrão de reconhecimento facial LFW, o que o coloca entre os melhores algoritmos para reconhecimento facial.

Como usar o Dlib para reconhecimento facial: O modelo também é encapsulado na biblioteca DeepFace e pode ser definido como um argumento nas funções de face profunda (mais sobre isso abaixo).

7. ArcFace

Este é o mais novo modelo do portfólio de modelos. Seus designers conjuntos são os pesquisadores do Imperial College London e InsightFace. O modelo ArcFace atinge 99,40% de precisão no conjunto de dados LFW.

Como usar os modelos de reconhecimento facial

Como mencionado acima, os experimentos mostram que os seres humanos atingem uma pontuação de 97,53% para reconhecimento facial no conjunto de dados Labeled Faces in the Wild. Curiosamente, VGG-Face, FaceNet, Dlib e ArcFace já passaram essa pontuação (algoritmos de IA com desempenho melhor que o humano). Por outro lado, OpenFace, DeepFace e DeepID mostram uma pontuação muito próxima ao desempenho humano.

Para usar esses modelos, eles podem ser definidos como um argumento nas funções deepface:

```python
models = ["VGG-Face", "Facenet", "OpenFace", "DeepFace", "DeepID", "Dlib", "ArcFace"]
#face verification
verification = DeepFace.verify("img1.jpg", "img2.jpg", model_name = models[1])
#face recognition
recognition = DeepFace.find(img_path = "img.jpg", db_path = “C:/facial_db", model_name = models[1])
```

 

A biblioteca DeepFace suporta sete modelos de reconhecimento facial de última geração
A biblioteca DeepFace suporta 7 modelos de reconhecimento facial de última geração.

A DeepFace vem expandindo seu portfólio de modelos desde seu primeiro commit. Sua versão inicial envolve apenas VGG -Face e Facenet. Ele suporta sete modelos de reconhecimento facial de ponta. Mas também no futuro, você poderá usar facilmente os modelos de reconhecimento facial mais recentes com o DeepFace, porque o nome do modelo é um argumento de suas funções e a interface sempre permanece a mesma.

Detectores de rosto mais populares

A detecção e o alinhamento de rostos são etapas muito importantes para um pipeline de reconhecimento facial. O Google afirmou que o alinhamento facial sozinho aumenta a pontuação de precisão do reconhecimento facial em 0,76%.

Em geral, o DeepFace é uma maneira fácil de usar os detectores faciais de última geração mais populares. Atualmente, vários detectores faciais de ponta estão envolvidos no DeepFace:

OpenCV

Comparado a outros, o OpenCV é o detector de rosto mais leve. A popular ferramenta de processamento de imagens usa um algoritmo haar-cascade que não é baseado em técnicas de aprendizado profundo. É por isso que é rápido, mas seu desempenho é relativamente baixo. Para que o OpenCV funcione corretamente, são necessárias imagens frontais. Além disso, seu desempenho de detecção de olhos é médio. Isso causa problemas de alinhamento. Observe que o detector padrão no DeepFace é o OpenCV.

Detecção de rosto com OpenCV
Detecção de rosto com OpenCV
Dlib

Este detector usa um algoritmo de porco em segundo plano. Assim, da mesma forma que o OpenCV, não é baseado em aprendizado profundo. Ainda assim, possui pontuações de detecção e alinhamento relativamente altas.

SSD

SSD significa Single-Shot Detector; é um detector popular baseado em aprendizado profundo. O desempenho do SSD é comparável ao OpenCV. No entanto, o SSD não suporta pontos de referência faciais e depende do módulo de detecção de olhos do OpenCV para alinhar. Mesmo que seu desempenho de detecção seja alto, a pontuação de alinhamento é apenas média.

MTCNN

Este é um detector de rosto baseado em aprendizado profundo e vem com pontos de referência faciais. Essa é a razão pela qual as pontuações de detecção e alinhamento são altas para MTCNN. No entanto, é mais lento que OpenCV, SSD e Dlib.

RetinaFace

O RetinaFace é reconhecido como o modelo de última geração baseado em aprendizado profundo para detecção de rosto. Seu desempenho na natureza é desafiador. No entanto, requer alto poder computacional. É por isso que o RetinaFace é o detector de rosto mais lento em comparação com os outros.

Como usar detectores de rosto

Da mesma forma que os modelos de reconhecimento facial, os detectores também podem ser definidos como argumento nas funções do DeepFace:

```python
detectors = ["opencv", "ssd", "mtcnn", "dlib", "retinaface"]
#face verification
verification = DeepFace.verify("img1.jpg", "img2.jpg", detector_backend = detectors[0])
#face recognition
recognition = DeepFace.find(img_path = "img.jpg", db_path = “C:/facial_db", detector_backend = detectors[0])
```
Qual detector de rosto devo usar?

Se seu aplicativo exigir alta confiança, considere usar RetinaFace ou MTCNN. Por outro lado, se a alta velocidade for mais importante para o seu projeto, você deve usar OpenCV ou SSD.

Como executar tarefas de extração de rosto com o DeepFace

O Deepface possui uma função de detecção de rosto personalizada em sua interface. Você também pode usar a biblioteca com seu amplo portfólio de detectores de face apenas com a finalidade de realizar a extração de face. O exemplo abaixo mostra como o rosto da atriz Emilia Clarke é detectado e alinhado. O software adiciona algum preenchimento para redimensionar a imagem extraída para se ajustar ao tamanho esperado do modelo de reconhecimento facial de destino.

```python
detectors = ["opencv", "ssd", "mtcnn", "dlib", "retinaface"]
img = DeepFace.detectFace(“img1.jpg”, detector_backend = detectors[4])
```

 

Detecção de rosto para extrair rostos com deepface
Detecção de rosto para extrair rostos com DeepFace

Vantagens da Biblioteca Deepface

Você pode se perguntar por que deve usar a biblioteca deepface em vez de alternativas? Acho que essas são as razões mais importantes pelas quais as pessoas usam o DeepFace para criar aplicativos de reconhecimento facial:

é leve

Você pode usar qualquer funcionalidade com uma única linha de código. Você não precisa adquirir um conhecimento profundo sobre os processos por trás dele.

É fácil de instalar

Algumas das bibliotecas populares de reconhecimento facial exigem dependências principais de C e C++. Isso os torna difíceis de instalar e inicializar. Você pode ter alguns problemas ao compilar. No entanto, o deepface é baseado principalmente no TensorFlow e no Keras. Isso facilita muito a instalação.

Vários modelos e detectores

Atualmente, a biblioteca deepface integra sete modelos de reconhecimento de rosto de última geração e cinco detectores de rosto de última geração. A lista de modelos e detectores suportados vem se expandindo desde seu primeiro commit e continuará a crescer nos próximos meses.

Reconhecimento facial de código aberto

Deepface é licenciado sob a Licença MIT. Isso significa que você é totalmente livre para usá-lo para fins individuais e comerciais. Além disso, é totalmente open-source. Você pode personalizar a biblioteca com base em seus próprios requisitos.

Crescendo a comunidade Deepface

Além disso, a biblioteca deepface é altamente adotada pela comunidade. Existem dezenas de contribuidores, milhares de estrelas no GitHub e centenas de milhares de instalações no pip. Mesmo se você enfrentar algum problema, provavelmente encontrará a solução nos fóruns de discussão.

Pacote Independente de Idioma

Deepface é um pacote independente de linguagem. As principais funcionalidades do DeepFace são escritas em Python. Ele pode ser implantado para realizar inferência de IA na borda (reconhecimento facial no dispositivo). No entanto, também serve uma API (API Deepface) que permite executar reconhecimento facial e análise de atributos faciais de clientes móveis ou da web.

Recursos planejados do DeepFace

Embora a biblioteca deepface já ofereça suporte a extensas funcionalidades, a comunidade se beneficiará ainda mais de recursos novos e futuros, como:

  • Cobrindo novos modelos de atributos faciais, como previsão de pontuação de beleza/atratividade
  • Envolvendo novos modelos de reconhecimento facial, como CosFace ou SphereFace
  • trabalhando em uma API do Cloud

Qual é o próximo?

A ideia principal do DeepFace é integrar as melhores ferramentas de reconhecimento de imagem para análise profunda de face em uma biblioteca leve e flexível. Como a simplicidade é tão importante, também a chamamos de LightFace. Qualquer pessoa pode adotar o DeepFace em tarefas de nível de produção com uma pontuação de confiança alta para usar os algoritmos de código aberto mais poderosos.

Se você deseja usar o DeepFace em aplicativos de visão computacional de nível empresarial, considere conferir o Viso Suite , a plataforma de ponta a ponta para visão computacional sem código que se integra perfeitamente ao DeepFace.

Você pode gostar

العربية简体中文NederlandsEnglishFrançaisDeutschItaliano日本語PortuguêsРусскийEspañol