Encontre uma pessoa em um acervo inteiro

Seu sistema manda as fotos que já tem e pergunta por alguém; a resposta são as imagens em que essa pessoa aparece. Sem treinar modelo, sem manter infraestrutura, sem virar um projeto de visão computacional.

Conta criada na hora · a chave aparece na tela · 10.000 requisições por mês, sem cartão

Requisição01 / 02
POST /
X-Amz-Target: RekognitionService.SearchFacesByImage
Authorization: Bearer lvk_…

{
  "CollectionId": "evento-2026",
  "Image": { "Bytes": "/9j/4AAQSkZJRgABAQ…" }
}
Resposta02 / 02
200 OK

{
  "FaceMatches": [
    { "CollectionId": "evento-2026",
      "Face": { "FaceId": "3f9c…a20", … },
      "Similarity":    99.91, … },
    …
  ]
}
EncontrarReconhecerAgruparConfirmarpedro@valsa.app

Hoje isso é feito no olho

Um dia de evento termina em milhares de imagens e centenas de pessoas esperando exatamente as suas. A separação sai na mão, foto por foto, feita por alguém que conhece os rostos, que cansa lá pela terceira hora e que não dobra de tamanho no mês em que o seu negócio dobrar.

O mesmo vale para o acervo de um congresso, para o arquivo de um campeonato de base, para a recepção que confere documento na entrada. As fotos existem. A pessoa está lá dentro. O que falta é conseguir perguntar.

#A perguntaA chamada
01Quem está nesta foto?POST /
02Onde mais essa pessoa aparece?POST /
03Quem são as pessoas deste acervo?POST /
04É mesmo essa pessoa, agora?POST /
05E quando for para esquecer?POST /

Cinco perguntas que o seu sistema passa a responder

01 / 05

Quem está nesta foto?

Toda imagem que entra volta com as pessoas que aparecem nela, ligadas aos cadastros que já existem no seu sistema. Não é mais uma etiqueta para alguém manter: é o seu cliente, encontrado na sua foto, com o identificador que você já usa.

Requisição01 / 02
POST /
X-Amz-Target: RekognitionService.SearchFacesByImage
Authorization: Bearer lvk_…

{
  "CollectionId": "evento-2026",
  "MaxFaces": 1,
  "Image": { "Bytes": "/9j/4AAQSkZJRgABAQ…" }
}
Resposta02 / 02
200 OK

{ "FaceMatches": [
    { "Face": { "ExternalImageId": "participante-4471", … },
      "Similarity": 99.91 } ] }

02 / 05

Onde mais essa pessoa aparece?

Uma foto de referência e o acervo inteiro responde — inclusive os eventos do ano passado, inclusive as imagens que ninguém nunca marcou. Quanto mais antigo o arquivo, maior o trabalho que essa pergunta substitui.

Requisição01 / 02
POST /
X-Amz-Target: RekognitionService.SearchFacesByImage
Authorization: Bearer lvk_…

{
  "CollectionIds": ["evento-2026",
                     "evento-2025",
                     "congresso-2024"],
  "Image": { "Bytes": "/9j/4AAQ…" }
}
Resposta02 / 02
200 OK

{ "FaceMatches": [
    { "CollectionId": "evento-2025",
      "Face": { "ExternalImageId": "IMG_2041", … },
      "Similarity":    99.94, … },
    …
  ] }

03 / 05

Quem são as pessoas deste acervo?

Sem foto de referência e sem ninguém para perguntar: a LumaVision separa o acervo por pessoa sozinha e devolve um identificador estável para cada uma. Você grava esse identificador contra o seu cadastro uma vez — ele não muda de significado depois, e não é reaproveitado por outra pessoa.

Requisições01 / 02
POST /
X-Amz-Target: LumaVision.Cluster
Authorization: Bearer lvk_…

{ "CollectionId": "evento-2026", "Mode": "bootstrap" }  → 202

  ↓ o agrupamento roda; minutos depois

X-Amz-Target: LumaVision.ListPeople
{ "CollectionId": "evento-2026" }
Resposta02 / 02
200 OK

{ "TotalPeople":     412,
  "UnassignedFaces": 37,
  "People": [
    { "PersonId": "…:p0001",
      "Photos":   28,
      "Cohesion": 0.91, … },
    …
  ] }

04 / 05

É mesmo essa pessoa, agora?

Para o momento em que alguém precisa provar que é quem diz ser. A câmera abre, a pessoa se posiciona, e você recebe o que precisa para separar uma pessoa presente da foto de uma pessoa.

Requisição01 / 02
POST /
X-Amz-Target: LumaVision.AnalyzeLiveness
Authorization: Bearer lvk_…

{
  "FramesB64": ["/9j/4AAQ…", "/9j/4AAQ…", …]
}
Resposta02 / 02
200 OK

{ "Frames": [
    { "FaceFound": true,
      "PadScore":  0.03,
      "DetScore":  0.94, … },
    …
  ] }

05 / 05

E quando for para esquecer?

Um cliente pede para sumir e você manda apagar. Não é chamado, não é planilha, não é esperar alguém do nosso lado lembrar de fazer. É uma ação do seu sistema, a qualquer hora.

Requisição01 / 02
POST /
X-Amz-Target: RekognitionService.DeleteFaces
Authorization: Bearer lvk_…

{ "CollectionId": "evento-2026",
  "FaceIds": ["3f9c…a20"] }
Resposta02 / 02
200 OK

{ "DeletedFaces": ["3f9c…a20"],
  "UnsuccessfulFaceDeletions": [] }

É uma API HTTP com chave de acesso. Se o seu sistema já sabe enviar uma imagem para algum lugar, ele já sabe conversar com a LumaVision. A documentação completa vai junto com a chave.

O que a gente promete, e o que não

Os modelos são nossos.

Não somos revenda de uma API de terceiros com outra marca por cima. O reconhecimento roda em modelos que nós treinamos, em infraestrutura que nós operamos. Na prática isso importa no dia em que alguma coisa não funciona bem para o seu caso: existe alguém que pode mexer nisso, e não um formulário de suporte de outro continente.

Termo 0101 / 04

Nenhum sistema acerta sempre.

Contraluz, rosto de perfil, criança de costas, foto de uma foto na tela de um celular. Existe um ponto em que a resposta honesta é “não sei”, e preferimos devolver isso a devolver um palpite convincente. Num acervo de clientes, um erro silencioso custa mais caro do que uma dúvida declarada.

Termo 0202 / 04

A decisão final é sua.

Onde termina “é a mesma pessoa” e começa “parece com” é uma escolha do seu produto, não da nossa. Num álbum de evento, uma foto a mais não machuca ninguém. Numa portaria, machuca. Quem conhece essa diferença é você, e a API não decide isso no seu lugar.

Termo 0303 / 04

O seu acervo continua seu.

Cada cliente ocupa um espaço fechado. O que você envia responde para você e não aparece para mais ninguém — nem por engano, nem por curiosidade, nem porque alguém adivinhou um nome.

Termo 0404 / 04

Preço único, cobrado por chamada

R$ 2,00

o que você paga

1.000

chamadas que isso compra

Preço único e sem mensalidade. Não há degrau, não há pacote e não há franquia mínima: as primeiras mil chamadas custam o mesmo que as milionésimas, e você paga o que usou no mês em que usou.

O que conta como chamada
Toda requisição que a API atende — inclusive a que responde que não encontrou ninguém. Essa resposta custou o mesmo trabalho da que encontrou.
O que não conta
Ler o seu próprio consumo. Conferir quanto você gastou nunca entra na conta do que você gastou.
Onde você confere
No console, chamada a chamada: rota, status, duração e o corpo que foi enviado — com as suas imagens reduzidas a quantos bytes tinham, porque este serviço não guarda a foto dos seus clientes.

* Custo fixo de R$ 0,025 por mil vetores guardados.

Crie a conta agora, a chave sai na tela

Você escolhe o e-mail e a senha, confirma o endereço com o código que chega na sua caixa, e a chave aparece — uma vez só, para você guardar. Não tem fila, não tem demonstração marcada e não tem cartão.

10.000 requisições por mês de graça. Dá para integrar, medir contra as suas próprias imagens e decidir com dado na mão. Não é uma franquia de produção: passando disso, vale o preço acima.

Prefere conversar antes de assinar qualquer coisa? pedro@valsa.app