Com o Namechk, você pode verificar a disponibilidade de um nome de usuário ou domínio em segundos. Existem 351 milhões de nomes de domínio registrados, e esse número continua crescendo. Todos os dias, milhares de novos nomes são registrados. Como os nomes de domínio só podem ser usados por uma empresa ou pessoa por vez, pode ser difícil não apenas criar um nome de domínio que faça sentido, mas também encontrar um que esteja disponível. Muita gente não quer perder tempo criando um novo nome de usuário, verificando a disponibilidade e registrando-o em cada plataforma. E se houvesse um jeito mais fácil? Existe. Um verificador e gerador de nomes de usuário como o Namechk pode ajudar. Como funciona o Namechk? Comece com algumas ideias de nomes e digite cada uma delas na barra de pesquisa. O Namechk pega sua ideia de nome de usuário (mesmo palavras aleatórias) e verifica sua disponibilidade como nome de domínio e nome de usuário em dezenas de redes sociais e plataformas online. ...
Isso também fornece uma face_recognitionferramenta de linha de comando simples que permite que você faça reconhecimento facial em uma pasta de imagens a partir da linha de comando!
Características
Encontrar rostos em imagens
Encontre todas as faces que aparecem em uma imagem:
Encontrar características faciais é super útil para muitas coisas importantes. Mas você também pode usar para coisas realmente estúpidas como aplicar a maquiagem digital (pense em 'Meitu'):
Instale este módulo de pypi usando pip3(ou pip2para Python 2):
Pip3 install face_recognition
Observação importante: É muito provável que você irá executar em dlibproblemas quando pip tenta compilar a dependência. Se isso acontecer, confira este guia para instalar dlib de origem (em vez de pip) para corrigir o erro:
Após a instalação manual dlib, tente executar pip3 install face_recognition novamente para concluir a instalação.
Se você ainda tiver problemas para instalar isso, você também pode experimentar esta VM pré-configurada .
Uso
Interface da Linha de comando
Quando você instala face_recognition, você recebe um simples programa de linha de comando chamado face_recognitionque você pode usar para reconhecer rostos em uma fotografia ou pasta cheia de fotografias.
Primeiro, você precisa fornecer uma pasta com uma imagem de cada pessoa que você já conhece. Deve haver um arquivo de imagem para cada pessoa com os arquivos nomeados de acordo com quem está na imagem:
Em seguida, você precisa de uma segunda pasta com os arquivos que deseja identificar:
Em seguida, basta executar o comando face_recognition, passando na pasta de pessoas conhecidas ea pasta (ou imagem única) com pessoas desconhecidas e ele informa quem está em cada imagem:
Localizar automaticamente todas as faces em uma imagem
Import face_recognition
Image = face_recognition.load_image_file ( " my_picture.jpg " )
Face_locations = face_recognition.face_locations (imagem)# Face_locations é agora uma matriz listando as coordenadas de cada face!
Localizar automaticamente as características faciais de uma pessoa em uma imagem
Import face_recognition
Image = face_recognition.load_image_file ( " my_picture.jpg " )
Face_landmarks_list = face_recognition.face_landmarks (imagem)# Face_landmarks_list agora é uma matriz com os locais de cada recurso facial em cada face. # Face_landmarks_list [0] ['left_eye'] seria o local eo contorno do olho esquerdo da primeira pessoa.
Reconhecer rostos em imagens e identificar quem são
Import face_recognition
Picture_of_me = face_recognition.load_image_file ( " me.jpg " )
My_face_encoding = face_recognition.face_encodings (picture_of_me) [ 0 ]# My_face_encoding agora contém uma "codificação" universal dos meus recursos faciais que podem ser comparados a qualquer outra imagem de um rosto!
Unknown_picture = face_recognition.load_image_file ( " unknown.jpg " )
Unknown_face_encoding = face_recognition.face_encodings (unknown_picture) [ 0 ]# Agora podemos ver as duas codificações face são da mesma pessoa com `compare_faces`!
Resultados = face_recognition.compare_faces ([my_face_encoding], unknown_face_encoding)If results [ 0 ] == True :
print ( " É uma foto de mim! " )
Else :
print ( " Não é uma foto de mim! " )
Se você quiser saber como o local de rosto e trabalho de reconhecimento em vez de depender de uma biblioteca caixa preta, leia o meu artigo .
Ressalvas
O modelo de reconhecimento facial é treinado em adultos e não funciona muito bem em crianças. Ele tende a misturar as crianças bastante fácil usando o limite de comparação padrão de 0,6.
Implantação em hosts de nuvem (Heroku, AWS, etc.)
Desde que face_recognitiondepende de dlibque é escrito em C ++, pode ser complicado implantar um aplicativo usando-o para um provedor de hospedagem em nuvem como Heroku ou AWS.
Para tornar as coisas mais fáceis, há um exemplo Dockerfile neste repo que mostra como executar um aplicativo construído face_recognitionem um container Docker . Com isso, você deve ser capaz de implantar em qualquer serviço que suporte imagens Docker.
Problemas comuns
Problema: Illegal instruction (core dumped)ao usar o face_recognition ou exemplos em execução.
Solução: dlibé compilado com suporte SSE4 ou AVX, mas sua CPU é muito antiga e não suporta isso. Você precisará recompilar dlibdepois de fazer a alteração de código descrita aqui .
Problema: RuntimeError: Unsupported image type, must be 8bit gray or RGB image.ao executar os exemplos da webcam.
Solução: Sua webcam provavelmente não está configurada corretamente com o OpenCV. Olhe aqui para mais .
Solução: O arquivo face_recognition_models é muito grande para a memória cache de pip disponível. Em vez disso, tente pip2 --no-cache-dir install face_recognitionevitar o problema.
obrigado
Muitos, muitos agradecimentos ao rei de Davis ( @nulhom ) para criar o dlib e para fornecer a detecção facial equipada da função e modelos encoding da cara usados nesta biblioteca. Para obter mais informações sobre o ResNet que alimenta as codificações face, confira seu blog .
Obrigado a todos que trabalham em todas as fantásticas bibliotecas de dados de Python como numpy, scipy, scikit-image, travesseiro, etc, etc, que torna este tipo de coisas tão fácil e divertido em Python.
Comentários
Postar um comentário