Qual reconhecimento facial e forte? Amazon, Microsoft, Google e outras empresas de tecnologia grandes análise comparativa

Nota do rede de Lei Feng: Este artigo é uma compilação de AI Yanxishe blog de tecnologia, a detecção título face original - Uma visão geral e comparação de diferentes soluções, autor David Pacassi Torrico.

Tradução | Li Hao Jiang Zhou revisão | Lamaric revisão | Lamaric

Qual API de reconhecimento facial é o melhor? Vamos olhar Amazon Rekognition, Google Cloud Visão API, IBM Watson Microsoft Visual Reconhecimento e Face API.

Parte 1: serviços de software baseados na Internet fornecedor

TLDR: Se você quiser usar o mais rápido possível API, eu posso ver diretamente o código no Github.

Você já teve a necessidade de fazer reconhecimento facial?

só pode ser cortada, a fim de melhorar a taxa de sucesso da imagem, para garantir uma imagem real perfil contém um rosto humano, ou pode simplesmente se concentrar pessoa designada encontrados imagens de seus dados (neste caso).

Um software de reconhecimento facial que provedor de serviços é o melhor para o seu fazer projeto?

Deixá-los a entender as diferenças nas taxas de sucesso, preços e velocidade.

Neste artigo, vou analisar o seguinte API de Detecção de Rosto:

  • Amazon Rekognition

  • Google Cloud Visão API

  • IBM Watson Visual Reconhecimento

  • API Microsoft Rosto

Como detecção de face funciona?

Antes de nossa análise em profundidade de diferentes soluções, vamos primeiro entender como funciona a detecção de rosto humano.

detecção de face Viola-Jones

No ano de 2001, Jimmy Wales e Larry Sanger estabeleceu Wikipedia, a Holanda se tornou o primeiro país a legalizar o casamento entre pessoas do mesmo sexo, o mundo testemunhou um dos trágicos ataques terroristas a maioria da história.

Ao mesmo tempo, duas pessoas inteligentes, Paul Viola e Michael Jone, com o início de uma revolução na visão de computador.

Até 2001, detecção de rosto não é muito preciso, nem rápido. E só este ano, o quadro de detecção de rosto Viola Jones é proposto, que não só tem uma elevada taxa de sucesso em termos de detecção de rosto, mas também pode ser detectado em tempo real.

Embora o desafio rosto e objeto reconhecimento desde os anos 1990 já existiam, mas Viola - Jones depois de publicar papers, rosto e reconhecimento de objetos torna-se mais próspero.

convolução profundidade rede neural

Um dos desafios é IMAGEnet grande escala desafios identificação visual desde 2010 tem sido realizada. Nos dois anos anteriores, principalmente através de uma combinação de trabalho top-time e SVM máquina Fisher vector, enquanto em 2012 tudo mudou.

Equipe da Universidade de Toronto (pelo Alex Krizhevsky, Ilya Sutskever e Geoffrey composição Hinton), pela primeira vez a profundidade de detecção de objetos convolução rede neural. Eles ganharam o primeiro lugar com uma taxa de erro de 15,4%, enquanto a segunda equipe da taxa de erro tão elevado como 26,2%!

Um ano mais tarde, em 2013, o top cinco para cada equipe estão usando a rede neural profundidade convolução.

Então, isso é como as redes funcionam?

No início deste ano, o Google lançou um vídeo fácil de entender:

Amazon, Google, IBM e Microsoft e agora?

Desde então, não mudou muito. fornecedores de hoje ainda estão usando a rede neural profundidade convolução, é claro, pode ser combinada com outras técnicas de aprendizagem profundidade.

Aparentemente, eles não revelar como sua tecnologia de reconhecimento visual funciona. Informação que eu encontrei foi:

  • Amazon: Deep Neural Networks

  • Google: rede neural convolução

  • IBM: algoritmo de aprendizagem profunda

  • algoritmo de Face: Microsoft

Enquanto eles som muito semelhante, mas os resultados são um pouco diferentes.

Antes de testá-los, vamos olhar para o modelo de precificação isso!

Preço

Amazon, Google e Microsoft têm modelos de preços semelhantes, o que significa que, com o aumento na quantidade de cada preço vai cair de detecção.

No entanto, para a IBM, depois de usar o montante camada livre é usado para cima, você tem que pagar o mesmo preço para cada chamada API.

Microsoft oferece o melhor acordo de livre para você, permitindo-lhe libertar o processamento mensal de 30.000 imagens.

Se você precisar de detectar mais, você precisa usar seu protocolo padrão é começar a pagar a partir da primeira imagem.

comparação de preços

Dito isto, vamos calcular três configurações diferentes tipos de custos.

  • Condições A: Pequenas startups / empresas podem lidar com 1000 imagens por mês

  • Condições B: Com um grande número de fornecedores de imagem digital, processamento de 100.000 imagens por mês

  • Condições C: dados mensais Centro de Processamento de 10.000.000 imagens.

A partir dos dados, para os pequenos clientes, preços não é muito diferente. Embora a Amazon para iniciar o carregamento da primeira imagem, mas a imagem ainda está processando 1.000 requer apenas um dólar. No entanto, se você não quer pagar quaisquer taxas, de modo Google, IBM ou Microsoft você gostaria de selecionar fornecedores.

Nota: Amazon oferece protocolo livre, você pode lidar de forma gratuita os primeiros 12 meses de 5000 por mês! No entanto, após o período experimental de 12 meses, então você vai precisar para pagar a partir da primeira imagem.

Um grande número de uso da API

Se você precisa fazer para lidar com milhões de imagens, o processo compara o tamanho de cada fornecedor se torna muito importante.

A seguir estão depois de um certo número de imagens, o menor preço para a API usa a lista para pagamento.

  • IBM continuará a ser cobrado por 1.000 fotos $ 4,00 taxa para você (sem escala)

  • Google após os primeiros 5.000.000 fotos, o preço caiu para US $ 0,60 (por 1000 Pictures)

  • Amazon será 100.000.000 após a primeira imagem, o preço caiu para US $ 0,40 (por 1000 Pictures)

  • Microsoft estará em após as primeiras 100 '000' 000 fotos, o preço caiu para US $ 0,40 (por 1000 Pictures)

Portanto, os preços comparar, Microsoft (e Amazon) parece ser o vencedor. Mas eles podem dominado na taxa de sucesso, a velocidade ea integração dela? Vamos dar uma olhada!

Fazê-lo! Vamos tentar uma API diferente

Há bastante teorias e descobrir isso, vamos dirigir um estudo em profundidade de codificação! Aqui pode encontrar todo o código usado no meu repositório GitHub.

Definir os nossos conjuntos de dados de imagem

Primeira coisa a fazer, antes de enfrentar digitalização de imagens, vamos definir o conjunto de dados de imagem.

Neste post, eu tenha baixado 33 fotos do pexels.com, muito obrigado fotos contribuinte / fotógrafo e agradecer Pexels!

Estas imagens foram submetidas ao repositório GitHub, então se você quiser começar a usar a API, você precisa procurar qualquer imagem.

Escrevendo um quadro teste básico

Quadro pode estar errado, porque o meu código personalizado contém apenas duas classes. No entanto, essas duas classes me ajudou a analisar facilmente os dados da imagem (metadados), e ter o mínimo de código em diferentes implementações.

Uma breve descrição: class FaceDetectionClient contém informações gerais sobre o local de armazenamento de imagem, detalhes do fornecedor e todas as imagens processados (como FaceDetectionImage objeto).

Compare SDK fornecedores

Porque eu estou mais familiarizado com PHP, então eu decidi ficar com PHP neste teste. Eu quero apontar o que cada fornecedor oferece uma espécie de SDK (a partir de hoje):

Nota: Microsoft realmente não fornecer qualquer SDK, mas fornecem exemplos de código para a tecnologia listadas acima.

Se você ler cuidadosamente estas listas, você pode perceber que a IBM não só fornece um número mínimo de SDK, mas também não forneceu SDK para PHP. No entanto, isso para mim não é um grande problema, porque eles fornecem exemplos cURL que me ajudaram a facilidade em um IBM classe do cliente (muito básico) identidade visual para escrever 37 linhas de código.

fornecedor integrado de API

Obter o SDK é muito fácil. Compositor mais fácil de usar. No entanto, eu notei algumas coisas que poderiam ser melhoradas, para que a vida do desenvolvedor mais fácil.

Amazonas

Comecei a reconhecer a API Amazon. Depois de navegar a sua documentação, eu realmente estou começando a sentir um pouco perdido. Não só eu encontrar algum exemplo básico (ou não pode encontrá-los?), Mas eu também tenho um sentimento que eu tenho que clicar várias vezes para encontrar o que eu quero. Uma vez, eu mesmo deu-se apenas para obter informações através do exame direto de seu código-fonte SDK.

Por outro lado, isso só poderia acontecer comigo? Deixe-me saber reconhecimento Amazon para você é fácil (ou difícil) para integrá-lo!

Nota: Quando a IBM Google e retorna delimitadora coordenadas caixa, Amazon retornado como as coordenadas de toda a largura imagem / altura. Eu não sei por que, mas isso não é grande coisa. Você pode escrever uma função auxiliar para obter as coordenadas das relações, assim como eu.

Google

Seguido pelo Google. Comparado com a Amazon, eles fornecem alguns exemplos, o que me ajudou muito! Ou talvez eu tenha uma mentalidade diferente no SDK investido.

Independentemente da situação, o sentimento SDK integrado muito mais simples, e eu posso gastar menos cliques para obter as informações que eu quero.

IBM

Como mencionado anteriormente, a IBM (ainda?) Para fornecer um PHP SDK. No entanto, a título de exemplo cURL fornecido, eu rapidamente construiu um cliente personalizado. Se você tem sido capaz de fornecer um exemplo cURL, então você não pode dar errado usá-lo o que é.

Microsoft

Olhando para exemplos de código PHP da Microsoft (Pear uso de HTTP _ pacote request2), eu finalmente escrevi o meu próprio cliente para Face API da Microsoft.

Eu acho que eu sou apenas um povo Crul.

confiabilidade Rater

Antes de comparar diferentes API de detecção de rosto, vamos digitalizar a imagem você mesmo! Uma pessoa comum pode detectar quantas caras?

Se você já viu o meu conjunto de dados, você pode ter visto algumas imagens contendo rostos complicado. Tricky O que significa? Bem, isso se refere apenas viu uma pequena parte deste rosto ou um rosto em um ângulo incomum.

É hora de fazer uma pequena experiência

Eu olhei através de todas as imagens, anote o que eu considero o número de rostos que foram detectados. Vou usar este número para calcular cada taxa de sucesso fornecedor da imagem, para ver se ele pode detectar, como eu, muitas faces.

No entanto, o número é esperado para definição rosto só é detectado por mim sozinho parece-me um pouco tendencioso. Preciso de mais conselhos. Neste momento, exorto os meus três colegas as minhas fotos e me diga o que vão encontrar como muitas faces. Eu dei-lhes única tarefa é para me dizer o quanto você pode detectar rostos, ao invés da cabeça. Eu não definir quaisquer regras, quero dar-lhes qualquer liberdade concebível para realizar essa tarefa.

O que é um rosto?

Quando eu navegar imagem Face Detection, eu só calculado cada face pelo menos um quarto ou menos visível. Curiosamente, os meus colegas propor uma definição facial ligeiramente diferente.

  • Colegas de trabalho 1: Achei que a maioria não pode ver rostos. Mas eu vi o corpo, assim minha mente me diz que há um rosto.

  • Colegas 2: Se eu posso ver os olhos, nariz e boca, vou contá-lo como um rosto.

  • 3 colegas: Eu só pode calcular novamente reconhecido em outro cara na imagem.

retratos da amostra # 267855

Nesta foto, eu e meus colegas foram detectados 10,13,16 e 16 rostos. Eu decidi tomar a média, por isso tem sido 14. Penso em tecnologia de detecção de rosto como diferente que está muito interessado em todos.

Dito isto, eu ainda uso uma cara média contar os meus colegas e eu para definir o número de pessoas esperado para enfrentar uma imagem detectada.

A comparação dos resultados

Agora que já criou conjuntos de dados e código, vamos lidar com todas as imagens de todos os concorrentes e comparar os resultados.

Minha classe FaceDetectionClient também vem com um conveniente formatos CSV de exportação, fornece alguns dados analíticos.

Este é o resultado que eu recebo:

A taxa de sucesso é muito baixa?

Amazon é capaz de detectar 52,66 por cento do rosto, Google 40,43%, IBM 39,36%, e até mesmo a Microsoft só é 17,55 por cento.

Por que a baixa taxa de sucesso? Primeiro de tudo, eu tenho um monte de conjunto de dados de imagens complicadas. Em segundo lugar, não devemos esquecer que, como seres humanos, temos dois milhões de anos de história evolutiva para ajudar a compreender o que é o quê.

Embora muitas pessoas pensam que têm dominado o setor de tecnologia de detecção de rosto, mas ainda há espaço para melhorias!

O Need for Speed

Embora a Amazon é capaz de detectar a maior parte do rosto, mas de Google e Microsoft velocidade de processamento significativamente mais rápido do que outras empresas. Em média, no entanto, eles ainda precisam de mais de um segundo de tempo para processar uma única imagem em nosso conjunto de dados.

Os dados de imagem são enviados do nosso computador / servidor para outro servidor irá certamente afectar o desempenho.

Nota: se vamos abrir biblioteca de origem pode fazer o mesmo trabalho com mais rapidez na próxima parte do entendimento desta série (local).

(Relativamente) pouco rosto na multidão

Depois de analisar essas imagens, Amazon parece ser muito bons em detectar rostos humanos no meio da multidão, bem como uma parte relativamente pequena face.

trecho pequeno

imagem exemplo da Amazon # 889545

Amazon pode ser detectado nesta foto 10 rostos, mas o Google só encontrou quatro, IBM e Microsoft detectado 00 detectado.

ângulos diferentes, rosto incompleta

Então, isso significa que a IBM simplesmente não tão bom quanto o seu rival é bom? Nem um pouco. Embora a Amazon pode ser bons em detectar pequenas rosto em uma foto de grupo, mas a IBM tem outra vantagem: a imagem difícil. O que significa? Bem, referindo-se à cabeça em um ângulo incomum ou a imagem facial não pode ser totalmente exibido.

Aqui estão três exemplos de nosso conjunto de dados, a IBM é a única empresa que detectou fornecedores rosto humano.

IBM imagem exemplar # 356147

Apenas a imagem do rosto detectado pela IBM.

......

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

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 de Lei Feng (número público: Lei Feng rede) (número Pública: Lei Feng rede)

Esperando por você para ler:

Com base em OpenCV (C ++ / Python) usando estudo aprofundado efectuado detecção gesto humano

Como utilizar Azure Horovod armação num estudo profundidade detecção de objectos distribuídos

Detectar um objeto com base na profundidade de aprendizagem usando OpenCV YOLOv3

Amazon, Google e Microsoft, as empresas enfrentam comparação reconhecimento

cursos de Stanford CS231n Li Feifei clássico Computer Vision (em Inglês e legendas em chinês + + trabalho para explicar a quota efectiva)

Esperando por você para interpretar:

Você pode resolver os personagens problema detectado dentro de 10 minutos do mesmo?

Como usar OpenCV para escrever interface de classificação de imagens de linha de comando Node.js e modelo de rede neural

aprendizagem profunda do método de supervisão

Sun Bin auxiliares super-Deus, vitória está próxima
Anterior
Com aeronaves Airbus para vir! Geneva Motor Show dez mais
Próximo