Desert Ant Labs

Eye

Classificação de imagensBeta

Etiquete cada fotografia pelo que é e pelo que mostra, de capturas de ecrã e recibos a 558 cenas, inteiramente no dispositivo.

Marque e classifique imagens.

Encontre as capturas de ecrã, os recibos e as selfies de um rolo da câmara, as fotografias em que alguém ficou de olhos fechados e as demasiado sensíveis para mostrar. O Eye etiqueta cada fotografia no dispositivo, por isso nenhuma imagem é carregada.

O Eye agrupa as fotografias quase idênticas e escolhe a que fica de cada rajada, sem ninguém de olhos fechados e com os melhores rostos. Um rolo da câmara com quarenta disparos do mesmo momento passa a ser uma só fotografia para ver.

Uma fotografia demora 5,5 ms no Neural Engine de um Mac com M6, por isso 10 000 fotografias demoram menos de um minuto. No Chrome com WebGPU, uma fotografia demora 41 ms.

Etiqueta uma fotografia em 5,5 ms.

O Eye etiqueta uma fotografia em 5,5 ms no Neural Engine de um Mac com M6, e em 41 ms com WebGPU no Chrome. As versões Core ML e LiteRT têm as mesmas notas em seis conjuntos de teste públicos.

5,5 ms
Por fotografia
Neural Engine, Mac com Apple M6
41 ms
No Chrome
WebGPU, o mesmo Mac
98%
Precisão em capturas de ecrã
no limiar de 0,5; recibos 100%
48 MB
Transferência
Core ML; 66 MB em LiteRT

Uma fotografia, com a análise completa, num Mac com Apple M6.

RuntimeTempo
Core ML, Neural Engine5,5 ms
LiteRT, GPU (Metal)30 ms
LiteRT.js, WebGPU, in Chrome41 ms
LiteRT, CPU, 4 threads49 ms
LiteRT.js, WebAssembly with threads, in Chrome176 ms

Exatidão em conjuntos de teste públicos, com o mesmo código de pontuação para as duas versões

Conjunto de testeCore MLLiteRT (CPU)
KonIQ-10k, aesthetic SRCC0,62880,6291
COCO val2017, person AP500,38140,3837
MIT1003, where people look, CC0,71530,7195
CUHK cropping, crop IoU0,82440,8241
WIDER Face val, AP, hard0,68060,6812
CEW, eyes open AUC0,99430,9945

As duas versões dão as mesmas respostas, com poucas milésimas de diferença, em todos os conjuntos. A velocidade foi medida num Mac com Apple M6, e a versão LiteRT ainda não foi medida em telemóveis Android.

Casos de uso

Marque e classifique imagens.

Arrume o rolo da câmara

Separe capturas de ecrã, recibos, documentos e quadros brancos das fotografias tiradas pelas pessoas, para que uma app de galeria os arquive ou proponha apagá-los.

Fique com a melhor de uma rajada

Junte as fotografias quase idênticas num grupo e mostre primeiro a que fica, sem ninguém de olhos fechados. As restantes apagam-se com um toque.

Esconda fotografias sensíveis

Desfoque fotografias explícitas, violentas ou médicas antes que alguém as veja, num álbum de família partilhado ou num formulário de carregamento no navegador. Use o limiar estrito para esconder uma fotografia automaticamente.

Pesquise fotografias pelo que mostram

Encontre todas as fotografias do cão, da praia ou de um recibo entre 558 cenas e os tipos de fotografia. Funciona numa app web ou num backend Node, sem uma API de visão na nuvem.

Recorte uma imagem de capa

Escolha o melhor fotograma de um vídeo ou o melhor recorte quadrado ou panorâmico de uma fotografia para uma miniatura ou um cartão de partilha. O Eye também endireita as fotografias que ficaram de lado.

O que o modelo faz

  • Uma chamada a analyze devolve etiquetas com confiança, três notas (estética, de escolha e de capa) e as pessoas, os animais de estimação e os rostos da fotografia. A mesma chamada encontra o melhor recorte para qualquer proporção, uma correção de rotação e um embedding.
  • As etiquetas cobrem o tipo de fotografia (captura de ecrã, recibo, documento, cartão de identificação, quadro branco e outros), a qualidade (nítida, desfocada, bokeh) e as pessoas (fotografia de grupo, retrato, todos a sorrir). Outras cobrem motivos para guardar ou apagar, conteúdo sensível e 558 cenas.
  • Cada etiqueta está calibrada para que 0,5 seja o limiar recomendado e 0,9 um limiar estrito. Em 0,5, a etiqueta de captura de ecrã acerta 98% das vezes, a de recibo 100%, a de pessoas 95% e a de olhos fechados 92%.
  • As etiquetas de cena acertam 88% das vezes na mediana. Os motivos para guardar ou apagar, como «esquecível» ou «mau enquadramento», são os menos fiáveis, por isso use-os como sugestões.
  • Cada rosto recebe as suas próprias etiquetas: olhos fechados, a sorrir, a olhar para a câmara ou para o lado, contente, surpreendido. Por predefinição, o Eye analisa até 20 rostos por fotografia.
  • Eye.duplicates, Eye.best e Eye.similar trabalham sobre uma biblioteca inteira: grupos de quase duplicados, opcionalmente só de fotografias tiradas com segundos de diferença, a que fica de um conjunto e fotografias ordenadas por semelhança.
  • As análises são guardadas no mesmo JSON em Swift, Kotlin e JavaScript, por isso uma app pode armazená-las e filtrar mais tarde sem carregar o modelo.
  • parts escolhe o que calcular: photo, layout, faces e sharpness. Cada parte é uma ou mais execuções do modelo, por isso deixe de fora aquilo de que não precisa.
  • 48 MB em Core ML para as plataformas Apple, no Neural Engine, e 66 MB em LiteRT para Android, Linux, Windows, Node e o navegador. O SDK transfere o modelo na primeira utilização e guarda-o em cache.
  • No navegador, o Eye corre na GPU através de WebGPU quando o navegador o suporta, e na CPU através de WebAssembly quando não o suporta.

Primeiros passos

Adicione classificação de imagens ao seu app iOS or macOS, Android or web em poucas linhas de código. Docs do Eye.

iOS, macOS
Instalação
// Swift Package Manager
.package(url: "https://github.com/Desert-Ant-Labs/desert-ant-core.git", from: "4.0.0")
// target dependency
.product(name: "Eye", package: "desert-ant-core")
Exemplo - Swift
import Eye

let eye = Eye()
let photo = try await eye.analyze(contentsOf: photoURL)

if photo.has(.screenshot) || photo.has(.receipt) { archive(photo) }
if photo.has(.sensitive, .strict) { hide(photo) }
photo.scores?.aesthetic           // 0.81: better than 81% of photos
let keeper = Eye.best(of: burst)
Crie com um prompt
Add Eye from Desert Ant Labs to this Swift project (iOS, macOS).

What it does: etiquetagem e pontuação de fotografias no dispositivo.

SDK:

Swift (iOS, macOS)
Repo: https://github.com/Desert-Ant-Labs/desert-ant-core#readme
// Swift Package Manager
.package(url: "https://github.com/Desert-Ant-Labs/desert-ant-core.git", from: "4.0.0")
// target dependency
.product(name: "Eye", package: "desert-ant-core")

Reference:
- Model page: https://desertant.com/models/eye/
- Full catalog and other models: https://desertant.com/llms.txt

Add the SDK, then follow its README for the exact API and current version. Do not invent API names or method signatures; confirm them against the README.
Android
Instalação
// build.gradle.kts (Maven Central)
implementation("ai.desertant:eye:4.0.0")
Exemplo - Kotlin
import ai.desertant.eye.Eye
import ai.desertant.eye.Tags

Eye(context).use { eye ->
    val photo = eye.analyze(bitmap)
    if (photo.has(Tags.DOG) && !photo.has(Tags.BLURRY)) keep(photo)
    val groups = Eye.duplicates(library)
}
Crie com um prompt
Add Eye from Desert Ant Labs to this Kotlin project (Android).

What it does: etiquetagem e pontuação de fotografias no dispositivo.

SDK:

Kotlin (Android)
Repo: https://github.com/Desert-Ant-Labs/desert-ant-core#readme
// build.gradle.kts (Maven Central)
implementation("ai.desertant:eye:4.0.0")

Reference:
- Model page: https://desertant.com/models/eye/
- Full catalog and other models: https://desertant.com/llms.txt

Add the SDK, then follow its README for the exact API and current version. Do not invent API names or method signatures; confirm them against the README.
Web, Node.js
Instalação
npm i @desert-ant-labs/eye @litertjs/core   # browser
npm i @desert-ant-labs/eye                  # Node
Exemplo - TypeScript
import { Eye, Tag } from "@desert-ant-labs/eye";

const eye = await Eye.load();
const photo = await eye.analyze(image);
if (photo.has(Tag.dog) && !photo.has(Tag.blurry)) keep(photo);
const groups = Eye.duplicates(library, { dates });
Crie com um prompt
Add Eye from Desert Ant Labs to this JavaScript / TypeScript project (Web, Node.js).

What it does: etiquetagem e pontuação de fotografias no dispositivo.

SDK:

JavaScript / TypeScript (Web, Node.js)
Repo: https://github.com/Desert-Ant-Labs/desert-ant-core#readme
npm i @desert-ant-labs/eye @litertjs/core   # browser
npm i @desert-ant-labs/eye                  # Node

Reference:
- Model page: https://desertant.com/models/eye/
- Full catalog and other models: https://desertant.com/llms.txt

Add the SDK, then follow its README for the exact API and current version. Do not invent API names or method signatures; confirm them against the README.

Especificações

Velocidade
5,5 ms por fotografia no Neural Engine (Mac com M6); 41 ms com WebGPU no Chrome
Exatidão
No limiar de 0,5: capturas de ecrã com 98% de precisão, recibos com 100%, cenas com 88% na mediana
Etiquetas
Tipo de fotografia, guardar ou apagar, qualidade, pessoas, rostos, conteúdo sensível e 558 cenas
Tamanho no dispositivo
48 MB em Core ML (Apple); 66 MB em LiteRT (Android, Linux, Windows, Node, o navegador)
Plataformas
iOS 18+, macOS 15+, tvOS 18+, visionOS 2+ (Core ML); Android, Linux, Windows (LiteRT); o navegador e Node (LiteRT.js)

O Eye foi treinado com fotografias, por isso as notas de ilustrações, capturas de ecrã e imagens muito editadas são menos fiáveis. Os motivos para guardar ou apagar, como «esquecível» ou «mau enquadramento», são os menos fiáveis, por isso use-os como sugestões e use o limiar estrito para tudo o que for automático.

A análise de rostos descreve um rosto e não identifica quem é a pessoa.

FAQ

O que é o Eye?

Etiquete cada fotografia pelo que é e pelo que mostra, de capturas de ecrã e recibos a 558 cenas, inteiramente no dispositivo.

O Eye é executado no dispositivo?

Sim. O Eye é executado no dispositivo, sem qualquer chamada a servidores, por isso os dados ficam com o utilizador.

Que plataformas suporta o Eye?

O Eye é distribuído como um SDK nativo no dispositivo para Swift, Kotlin, JavaScript / TypeScript.

Quanto custa o Eye?

Cada modelo é gratuito para até 100 mil dispositivos ativos mensais. A inferência é ilimitada. Contacte-nos para licenças personalizadas.

Qual é a precisão ou a rapidez do Eye?

O Eye etiqueta uma fotografia em 5,5 ms no Neural Engine de um Mac com M6, e em 41 ms com WebGPU no Chrome. As versões Core ML e LiteRT têm as mesmas notas em seis conjuntos de teste públicos.

Recursos