Estou aprendendo a usar a profundidade na implementação Python de FaceID de iPhoneX

Nota do rede de Lei Feng: Este artigo é uma compilação de AI Yanxishe blog de tecnologia, o título original Como eu implementado FaceID do iPhone X usando profundo aprendizado em Python, autor SHIVAM BANSAL.

Tradução | Tao Yulong Yuhang revisão | Lamaric acabamento | MY

No iPhone X lançado recentemente, que é uma das características mais discutidas é que ele usa um novo método de desbloqueio, ou seja TouchID: FaceID.

Depois desenvolveu um telefone móvel sem fronteiras, a Apple quer desenvolver um novo método para desbloquear rapidamente e facilmente o telefone. Enquanto alguns concorrentes ainda continuar a usar o sensor de impressão digital, coloque-o em uma posição diferente no telefone, mas a Apple decidiu inovar, uma revolucionária forma de desbloquear o telefone: os usuários simplesmente precisa de olhar para ele pode. Com sua avançada (muito pequeno) câmera frontal, iPhone X para criar um mapa 3D do rosto do usuário. Além disso, esta tecnologia usa uma câmera infravermelha para capturar fotos de rosto do usuário, com um ambiente mais robusto das mudanças de luz e cor. Use a tecnologia de aprendizado profundo, telefones inteligentes podem entender muito bem o rosto do usuário, cada vez que ele pega o telefone pode ser quasi confirmou ele. Surpreendentemente, a Apple disse que é mais seguro do que a tecnologia TouchID, a taxa de erro foi de 1: 1.000.000.

Estou usos muito interessados da Apple tecnologia FaceID, principalmente porque tudo foi feito em um dispositivo móvel, esta tecnologia utiliza apenas o rosto do usuário carregava uma pequena quantidade de formação inicial, em seguida, cada vez que você pegar o telefone funcionar sem problemas. Concentro-me em como conseguir esse processo de aprendizado profundo, e como otimizar cada etapa. Neste artigo, vou demonstrar como usar keras FaceID alcançar este tipo de algoritmo. Vou explicar várias arquiteturas que tomei decisões e mostrar algumas experiências eu finalmente terminei, eu estas experiências são feitas usando Kinect, um muito popular câmera profundidade RGB, tem um muito semelhante à câmera frontal do iPhone X saída (mas no um dispositivo maior). Sente-se, então os Estados Unidos e os Estados Unidos de uma xícara de café, vamos começar a construir a Apple reverter essa capacidade para mudar o jogo.

Entenda FaceID

"Rede Neural FaceID não simplesmente executar a classificação."

processo de instalação FaceID

O primeiro passo é analisar cuidadosamente como FaceID funciona em iPhone X do. pano papel branco oficial da Apple pode nos ajudar a compreender os mecanismos básicos de FaceID. Para utilizar TouchID, o usuário deve pressionar várias vezes para inserir o seu sensor de impressão digital. Depois de cerca de 15 a 20 toque diferente, um smartphone é a entrada de impressão digital completa, TouchID também está pronto. Da mesma forma, o uso FaceID, o usuário deve digitar seus tiros de caneca. O procedimento é muito simples: o usuário simplesmente não olhar para o telefone como de costume, em seguida, gire lentamente em um círculo, as diferentes posições do porteiro facial. Desta forma, temos concluído este processo, você está pronto para desbloquear o telefone. Este processo de entrada rápida pode nos dizer muito sobre os algoritmos de aprendizagem subjacentes. Por exemplo, FaceID não apenas realizando rede neural de classificação, vou explicar porquê abaixo.

A Apple anunciou o iPhone X Casa e FaceID o exemplo da FIG.

Para a rede neural, execute os meios operação de classificação que ele precisa para prever se ele tinha visto o rosto antes visto pelo aprendizado do usuário. Portanto, em geral ele deve usar alguns dados de treinamento para prever verdadeiro ou falso, mas muitos outros casos de aprendizagem profunda diferentes, em que esta abordagem não é viável. Primeiro, a rede deve usar os novos dados obtidos com o rosto do usuário para treinar. Isso vai levar muito tempo, fará com que um monte de consumo de energia e as amostras negativas de formação dados têm gerado uma série de diferentes faces (quase nenhuma mudança no ajuste fino do estudo da transmissão e aspectos da rede treinados). Além disso, este método é quase nenhuma possibilidade de que serão utilizados, para a Apple, eles vão treinar um mais complexas situações de rede off-line, geralmente em seus laboratórios, e estes foram treinados carga da rede é aplicado para o seu telefone. Acredito FaceID por um suporte de rede neural gêmeo convolução, que é da Apple treinados para o estado "offline", terá de enfrentar em um mapeamento low-dimensional do espaço potencial, representação, comparando a perda de maximizar entre os diferentes rostos humanos distância. Desta forma, você começa a arquitetura de um único estágio de aprendizagem, como eles mencionado nos pontos. Eu sei que pode haver alguns leitores não estão muito familiarizados com o termo: Continue lendo, eu gradualmente irá explicar o que significa que eu quero expressar.

Agora veja, FaceID vai se tornar o novo padrão após TouchID. Apple vai trazer toda a tecnologia que eles desenvolveram novos equipamentos nele?

De face-to-digital de rede neural

Uma rede neural dupla é composta por duas redes neurais substancialmente idênticos, os quais são partilhados por todos os pesos. Esta arquitectura pode calcular a distância entre um tipo particular de dados, tais como imagens. A ideia é a transferência de dados através da rede neural duplo (ou simplesmente por dois passos diferentes para a transferência de dados através da mesma rede), o mapa de rede para um espaço de baixa dimensão recurso, tal como uma matriz n-dimensional, e, em seguida, o mapeamento de rede treinada a construção, a fim de utilizar o máximo possível de pontos de dados de diferentes classes, e deixar que os pontos de dados da mesma classe o mais próximo possível. No longo prazo, a rede irá aprender a extrair o máximo de recursos significativos a partir dos dados, e comprime-lo para uma matriz para criar mapas significativos. Para intuitivamente entender isso, imagine como você usa para descrever pequenos vetores raça do cão, deixe que o cão tem um semelhante mais perto do vetor. Você pode usar um número de pelagem do cão é marcada, uma figura usado para representar o tamanho do cão, outro número é usado para representar o comprimento do cabelo, e assim por diante. Desta maneira, a cada cão semelhante tendo um vector semelhante ao outro. O olhar é uma maneira muito inteligente, certo? O que é semelhante a um codificador automática, rede neural gêmeo pode aprender como implementar este processo.

Esta imagem do papel Hadsell, Chopra e LeCun publicou "dimensionalidade Redução aprendendo um mapeamento Invariant." Note-se que esta estrutura é aprender a semelhança entre o grupo digital e automaticamente-los em bidimensional. Técnicas similares são aplicadas a técnica de reconhecimento facial Iphone X do.

O uso desta tecnologia, as pessoas podem usar um monte da imagem facial do treinamento arquitetura, a fim de identificar o que é mais semelhante ao rosto. Quando tem os orçamentos adequados e poder de computação (como a Apple como a empresa), é também exemplos mais difíceis podem ser usados para tornar a rede mais robusta, como gêmeos, ataques de confronto (máscaras) e assim por diante. Então, qual é a maior vantagem de usar este método é que ele? Você acabará por ter um plug and modelo de jogo, sem mais treinamento sob a premissa pode identificar usuários diferentes e apenas filmar algumas fotos durante o processo de configuração inicial, calcular a posição da figura rosto escondido do usuário. (Imaginem Como mencionado acima, anotá-la vector para a nova raça de cão, e depois armazená-lo em algum lugar). Além disso, FaceID capaz de se adaptar a algumas mudanças no rosto: mudanças bruscas (como óculos, chapéus, make-up) e desacelerar a mudança (cabelo facial). Isto é feito através da adição de base nesta figura para a quantidade de referência, estes parâmetros podem ser calculados com base na sua nova aparência.

Quando você alterar a aparência, FaceID irá se adaptar automaticamente.

Agora, vamos olhar para a forma de implementá-lo em Python Keras.

FaceID alcançado no Keras

Para todos os projetos de aprendizagem de máquina, primeiro conjunto de dados. Criar o nosso próprio conjunto de dados ao mesmo tempo, leva tempo e não pode fazer sem a cooperação de muitos outros, ele pode ser muito desafiador. Então, eu consultei os conjuntos de dados facial RGB-D na página, eu encontrei um que olha exemplo muito adequado. Ele consiste de uma série tirada pela partir de diferentes direções, expressões faciais RGB-D composição de imagem diferente, assim como no caso do iPhone X.

Se você quiser ver a realização final do processo, você pode ver meu repositório GitHub, você pode encontrar um Jupyter arquivo do Notebook dentro. Além disso, eu uso experimento Notebook Colab você pode tentar.

Eu criei uma arquitetura convolução SqueezeNet baseado na web. A face RGBD rede de quatro canais de uma série de imagens como entrada, a saída de uma distância entre as duas inserções. O treinamento da rede tem uma perda constante, minimizando a distância entre as imagens da mesma pessoa, e para maximizar a distância entre as pessoas de diferentes fotos.

perda de contraste

Após o treinamento, a rede neural tem sido capaz de colocar um rosto mapeado para uma matriz 128-dimensional, as mesmas fotos individuais, com fotografias de outras pessoas estão muito distantes. Isto significa que, a fim de desbloquear o dispositivo, rede neural somente quando a distância entre a foto para desbloquear o dispositivo na fase de armazenamento de fotos de registo e que utiliza cálculos. Se esta distância é inferior ao limiar determinada (o valor limite, maior a segurança) para que você possa desbloquear o dispositivo.

I usar o algoritmo de t-PND em duas dimensões espaciais incorporação 128 visual-dimensional. Cada cor corresponde a uma pessoa diferente: Como você pode ver, a rede neural aprendeu a colocar essas fotos juntos. (Quando se utiliza o algoritmo t-PND, a distância entre os aglomerados não tem significado). Use PCA irá gerar uma imagem muito interessante quando algoritmo de redução de dimensionalidade.

Incorporação de cluster espaço usando superfície t-PND criado. Cada cor é um olhar diferente (mas cor reutilizado).

Gerar dados de rosto usando clusters de PCA incorporação espaço. Cada cor representa uma face diferente (cores são reutilizados)

Verifique!

......

Quer continuar lendo, por favor mover para nossa comunidade AI Yanxishe: http: //www.gair.link/page/TextTranslation/766

conteúdo mais interessante para fazer a AI Yanxishe.

Diferentes áreas, incluindo a visão de computador, a semântica do discurso, cadeia de bloco, piloto automático, mineração de dados, controle inteligente, linguagens de programação e outros atualizadas diariamente.

rede rede de Lei Feng Lei Feng (número pública: rede de Lei Feng

inteligentes dois modelos da edição especial número oficial será revelado em Genebra
Anterior
DxOMark classificações câmera cabelo frente não dizem absolutamente, mas acrescentou uma referência
Próximo