Reconhecimento Facial
Visão Geral
O Immich reconhece rostos nas suas fotos e vídeos e os agrupa em pessoas. Você pode então atribuir nomes a essas pessoas e pesquisá-las.
A lista de pessoas é exibida na página Explorar.

Ao clicar em uma pessoa, será exibida uma lista de recursos que contêm seu rosto.

A visualização detalhada do recurso também mostrará os rostos reconhecidos no recurso.

Ações
Ações adicionais que você pode realizar incluem:
- Alterar a foto principal da pessoa
- Definir a data de nascimento de uma pessoa
- Mesclar dois ou mais rostos detectados em uma única pessoa
- Ocultar os rostos de uma pessoa da página Explorar e da visualização detalhada
- Atribuir um rosto não reconhecido a uma pessoa
Isso pode ser encontrado na barra de aplicativos ao acessar a visualização detalhada de uma pessoa.

Como Funciona a Detecção de Rosto
A detecção de rosto envia a imagem gerada de pré-visualização para o serviço de aprendizado de máquina para processamento. O serviço verifica se possui o modelo relevante baixado e o baixa, caso contrário. A imagem é decodificada, pré-processada e passada para o modelo de detecção de rosto (com aceleração de hardware, se configurada). Os contornos e pontuações produzidos por este modelo são utilizados para recortar e pré-processar a imagem novamente para ser passada a um modelo de reconhecimento facial (também acelerado, se configurado). As embeddings do modelo de reconhecimento, juntamente com os contornos e pontuações do modelo de detecção de rosto, são então enviados de volta ao servidor para serem adicionados ao banco de dados. As embeddings, em particular, são indexadas para que possam ser pesquisadas rapidamente durante a agrupamento de reconhecimento facial.
Como Funciona o Reconhecimento Facial
O algoritmo de reconhecimento facial que utilizamos é derivado do DBSCAN, um algoritmo de clustering popular. Essencialmente, ele trata cada rosto detectado como um ponto em um gráfico e visa agrupar pontos que estão próximos uns dos outros.
Um conceito importante é se algo é um ponto central. Um ponto central tem um número mínimo de pontos ao seu redor dentro de uma certa distância. Um ponto que não é central só pode ser atribuído a um cluster se puder alcançar um ponto central; um ponto que não é central não pode ser usado para expandir um cluster, mesmo que faça parte de um. No Immich, a configuração Mínimo de Rostos Reconhecidos controla o limite para ser considerado um ponto central.
Para cada rosto, ele procura ao redor para encontrar outros rostos dentro de uma certa distância. Rostos dentro dessa distância são considerados semelhantes, então verifica se algum desses rostos está associado a uma pessoa.
Se houver uma pessoa existente, ela atribui a pessoa do rosto mais semelhante ao rosto sendo processado.
Se não houver nenhuma, então precisa determinar algo do algoritmo DBSCAN: se o rosto é um ponto central. Se houver um número certo de rostos semelhantes (por padrão 3, incluindo o rosto sendo considerado), então esse rosto é um ponto central. Uma nova pessoa é criada para esse rosto e o rosto é atribuído a ela. Quando outros rostos são processados, se forem semelhantes a esse rosto, eles verão que ele tem uma pessoa associada e podem ser atribuídos a essa pessoa.
No entanto, se não houver rostos semelhantes suficientes, nenhuma nova pessoa será criada. Em vez disso, o rosto aguardará até que todos os outros rostos sejam processados para ver se algum que anteriormente não tinha uma pessoa associada agora tem. Se tiver, então o rosto será atribuído àquela pessoa. Caso contrário, este rosto será considerado um outlier, como um estranho no fundo de uma imagem.
O algoritmo tem algumas diferenças sutis em relação ao DBSCAN:
- O DBSCAN não tem o conceito de agrupamento incremental: ele agrupa todos os pontos de uma vez. Em contraste, o reconhecimento facial precisa evoluir à medida que mais recursos são adicionados sem reagrupá-los a cada vez.
- O algoritmo descrito acima funciona dentro de um conjunto de recursos enfileirados. Uma vez que esses rostos são processados e uma nova rodada de rostos é detectada, o comportamento não será o mesmo que o DBSCAN tradicional, pois preserva os clusters (pessoas) gerados na rodada anterior.
- O reconhecimento facial tenta aguardar a detecção de rosto e geração de miniaturas ser concluída antes de começar por esse motivo: quanto maior o conjunto de rostos na fila, melhores serão os resultados.
- Reexecutar o reconhecimento facial em todos os recursos posteriormente se comporta como o DBSCAN, no entanto.
- O algoritmo descrito acima funciona dentro de um conjunto de recursos enfileirados. Uma vez que esses rostos são processados e uma nova rodada de rostos é detectada, o comportamento não será o mesmo que o DBSCAN tradicional, pois preserva os clusters (pessoas) gerados na rodada anterior.
- O DBSCAN é projetado para buscas baseadas em distância (ou seja, pontos dentro de uma distância), mas índices de vetores de alta dimensão são geralmente otimizados para obter os K resultados mais próximos. O algoritmo de reconhecimento não tenta obter todos os rostos semelhantes dentro de uma distância por razões de desempenho. Em vez disso, ele procura um pequeno número de correspondências para cada rosto. O resultado final deve ser muito semelhante, senão idêntico, mas com características de desempenho possivelmente diferentes.
- Por causa disso, parte do processo de reconhecimento é tratado em uma tarefa noturna para garantir que rostos não atribuídos com possíveis correspondências possam ser reconhecidos.
Se você não importou seus recursos de uma vez ou se o servidor conseguiu processar tarefas mais rápido do que você pôde carregá-los, é possível que o agrupamento tenha sido subótimo. Se você não colocou esforço nos resultados atuais, pode valer a pena reexecutar o reconhecimento facial em todos os recursos para obter o melhor ponto de partida. Se for tarde demais para isso, você também pode atribuir manualmente uma seleção de rostos não atribuídos e enfileirar Faltando para o Reconhecimento Facial para ajudá-lo a aprender e atribuir mais rostos automaticamente.
Configuração
Navegar para Administração > Configurações > Configurações de Aprendizado de Máquina > Reconhecimento Facial mostrará as opções disponíveis.
É melhor apenas ajustar os parâmetros aqui do que definir valores muito diferentes, a menos que você esteja pronto para testar uma variedade de opções. Se você precisar definir um parâmetro para um valor estrito, relaxar outras configurações pode ser uma boa opção para compensar, e vice-versa.
Você pode aprender como ajustar os resultados neste Guia
Modelo de reconhecimento facial
Há alguns modelos diferentes disponíveis; o padrão geralmente é considerado o melhor. Em sistemas mais limitados onde o padrão é muito intensivo, você pode optar por um modelo menor.
Pontuação mínima de detecção
Esta configuração afeta se um resultado do modelo de detecção de rosto é filtrado como um falso positivo. Pode parecer tentador definir isso para baixo para detectar mais rostos, mas isso pode levar a falsos positivos difíceis de lidar e prejudicar o reconhecimento facial. É fortemente recomendado não ir abaixo de 0,5 para esta configuração. Defini-lo para um valor muito alto, como 0,9, também não é recomendado: o padrão já é tendencioso para precisão, então um limite tão alto leva a muitos rostos não detectados.
Após alterar esta configuração, ela será aplicada apenas a novos trabalhos de detecção de rosto. Para aplicar a nova configuração a todos os recursos, você precisa executar novamente a detecção de rosto para todos os recursos.
Distância máxima de reconhecimento
O limiar de distância descrito em Como Funciona o Reconhecimento Facial. O padrão funciona bem para a maioria das pessoas, mas pode valer a pena diminuí-lo se a biblioteca tiver gêmeos ou pessoas de aparência muito semelhante. Um limiar muito baixo significa que será necessário mesclar pessoas duplicadas após o reconhecimento facial, enquanto um limiar muito alto pode produzir resultados irrecuperáveis. É fortemente recomendado não ir abaixo de 0,3 ou acima de 0,7.
Mínimo de rostos reconhecidos
O limiar de pontos centrais descrito em Como Funciona o Reconhecimento Facial. Esta configuração tem algumas implicações. Primeiro, ela entra em vigor imediatamente ao ocultar pessoas com menos rostos do que isso da visualização. Em segundo lugar, ela torna o agrupamento mais robusto ao impedir que rostos vagamente relacionados sejam vinculados entre si, exigindo um certo nível de densidade.
Aumentar essa configuração é uma boa ideia se você aumentar a distância de reconhecimento ou reduzir a pontuação mínima de detecção. Defini-la como 1 efetivamente desativa o conceito de pontos centrais, mas pode ser uma opção se você preferir uma abordagem mais prática.