Desert Ant Labs

Eye

Clasificación de imágenesBeta

Etiqueta cada foto según lo que es y lo que aparece en ella, desde capturas de pantalla y recibos hasta 558 escenas, todo en el dispositivo.

Etiqueta y clasifica imágenes.

Encuentra las capturas de pantalla, los recibos y los selfis de un carrete, las fotos en las que alguien sale con los ojos cerrados y las que son demasiado sensibles para mostrarlas. Eye etiqueta cada foto en el dispositivo, así que no se sube ninguna imagen.

Eye agrupa las tomas casi idénticas y elige la que se queda de cada ráfaga, sin nadie con los ojos cerrados y con las mejores caras. Un carrete con cuarenta tomas del mismo momento se convierte en una sola foto que mirar.

Una foto tarda 5,5 ms en el Neural Engine de un Mac con M6, así que 10 000 fotos tardan menos de un minuto. En Chrome con WebGPU, una foto tarda 41 ms.

Etiqueta una foto en 5,5 ms.

Eye etiqueta una foto en 5,5 ms en el Neural Engine de un Mac con M6, y en 41 ms con WebGPU en Chrome. Las versiones Core ML y LiteRT puntúan igual en seis conjuntos de prueba públicos.

5,5 ms
Por foto
Neural Engine, Mac con Apple M6
41 ms
En Chrome
WebGPU, el mismo Mac
98%
Precisión en capturas de pantalla
con el umbral de 0,5; recibos 100%
48 MB
Descarga
Core ML; 66 MB LiteRT

Una foto, con el análisis completo, en un Mac con Apple M6.

RuntimeTiempo
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

Exactitud en conjuntos de prueba públicos, con el mismo código de puntuación para las dos versiones

Conjunto de pruebaCore 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

Las dos versiones dan las mismas respuestas, con pocas milésimas de diferencia, en todos los conjuntos. La velocidad se ha medido en un Mac con Apple M6, y la versión LiteRT aún no se ha medido en teléfonos Android.

Casos de uso

Etiqueta y clasifica imágenes.

Ordena el carrete

Separa las capturas de pantalla, los recibos, los documentos y las pizarras de las fotos que hizo la gente, para que una app de galería los archive o proponga borrarlos.

Quédate con la mejor de una ráfaga

Agrupa las tomas casi idénticas y muestra primero la que se queda, sin nadie con los ojos cerrados. El resto se borra con un toque.

Oculta las fotos sensibles

Difumina las fotos explícitas, violentas o médicas antes de que nadie las vea, en un álbum familiar compartido o en un formulario de subida del navegador. Usa el umbral estricto para ocultar una foto automáticamente.

Busca fotos por lo que aparece en ellas

Encuentra todas las fotos del perro, de la playa o de un recibo entre 558 escenas y los tipos de foto. Funciona en una app web o en un backend de Node, sin una API de visión en la nube.

Recorta una imagen de portada

Elige el mejor fotograma de un vídeo o el mejor recorte cuadrado o panorámico de una foto para una miniatura o una tarjeta para compartir. Eye también endereza las fotos que salieron de lado.

Qué hace el modelo

  • Una sola llamada a analyze devuelve etiquetas con su confianza, tres puntuaciones (estética, conservación y portada) y las personas, mascotas y caras de la foto. La misma llamada encuentra el mejor recorte para cualquier relación de aspecto, una corrección de rotación y un embedding.
  • Las etiquetas cubren el tipo de foto (captura de pantalla, recibo, documento, documento de identidad, pizarra y más), la calidad (nítida, borrosa, bokeh) y las personas (foto de grupo, retrato, todos sonriendo). Otras cubren motivos para conservar o borrar, contenido sensible y 558 escenas.
  • Cada etiqueta está calibrada para que 0,5 sea el umbral recomendado y 0,9 uno estricto. Con 0,5, la etiqueta de captura de pantalla acierta el 98% de las veces, la de recibo el 100%, la de personas el 95% y la de ojos cerrados el 92%.
  • Las etiquetas de escena aciertan el 88% de las veces en la mediana. Los motivos para conservar o borrar, como «olvidable» o «mal encuadre», son los menos fiables, así que úsalos como sugerencias.
  • Cada cara recibe sus propias etiquetas: ojos cerrados, sonriendo, mirando a la cámara o hacia otro lado, contenta, sorprendida. Eye analiza hasta 20 caras por foto de forma predeterminada.
  • Eye.duplicates, Eye.best y Eye.similar trabajan sobre toda una biblioteca: grupos de casi duplicados, opcionalmente solo de fotos tomadas con segundos de diferencia, la que se queda de un conjunto y fotos ordenadas por similitud.
  • Los análisis se guardan en el mismo JSON en Swift, Kotlin y JavaScript, así que una app puede almacenarlos y filtrar después sin cargar el modelo.
  • parts elige qué calcular: photo, layout, faces y sharpness. Cada parte es una o más ejecuciones del modelo, así que deja fuera lo que no necesites.
  • 48 MB como Core ML para las plataformas de Apple, en el Neural Engine, y 66 MB como LiteRT para Android, Linux, Windows, Node y el navegador. El SDK descarga el modelo la primera vez que se usa y lo guarda en caché.
  • En el navegador, Eye se ejecuta en la GPU mediante WebGPU cuando el navegador lo admite, y en la CPU mediante WebAssembly cuando no.

Primeros pasos

Añade clasificación de imágenes a tu app de iOS or macOS, Android or web con unas pocas líneas de código. Docs de Eye.

iOS, macOS
Instalación
// 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")
Ejemplo - 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)
Crea con un prompt
Add Eye from Desert Ant Labs to this Swift project (iOS, macOS).

What it does: etiquetado y puntuación de fotos en el 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
Instalación
// build.gradle.kts (Maven Central)
implementation("ai.desertant:eye:4.0.0")
Ejemplo - 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)
}
Crea con un prompt
Add Eye from Desert Ant Labs to this Kotlin project (Android).

What it does: etiquetado y puntuación de fotos en el 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
Instalación
npm i @desert-ant-labs/eye @litertjs/core   # browser
npm i @desert-ant-labs/eye                  # Node
Ejemplo - 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 });
Crea con un prompt
Add Eye from Desert Ant Labs to this JavaScript / TypeScript project (Web, Node.js).

What it does: etiquetado y puntuación de fotos en el 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.

Especificaciones

Velocidad
5,5 ms por foto en el Neural Engine (Mac con M6); 41 ms con WebGPU en Chrome
Exactitud
Con el umbral de 0,5: capturas de pantalla con un 98% de precisión, recibos con un 100%, escenas con un 88% en la mediana
Etiquetas
Tipo de foto, conservar o borrar, calidad, personas, caras, contenido sensible y 558 escenas
Tamaño en el dispositivo
48 MB Core ML (Apple); 66 MB LiteRT (Android, Linux, Windows, Node, el navegador)
Plataformas
iOS 18+, macOS 15+, tvOS 18+, visionOS 2+ (Core ML); Android, Linux, Windows (LiteRT); el navegador y Node (LiteRT.js)

Eye está entrenado con fotos, así que las puntuaciones de ilustraciones, capturas de pantalla e imágenes muy editadas son menos fiables. Los motivos para conservar o borrar, como «olvidable» o «mal encuadre», son los menos fiables, así que úsalos como sugerencias y usa el umbral estricto para todo lo automático.

El análisis facial describe una cara y no identifica quién es la persona.

Preguntas frecuentes

¿Qué es Eye?

Etiqueta cada foto según lo que es y lo que aparece en ella, desde capturas de pantalla y recibos hasta 558 escenas, todo en el dispositivo.

¿Eye se ejecuta en el dispositivo?

Sí. Eye se ejecuta en el dispositivo, sin llamadas a servidor, así que los datos se quedan con el usuario.

¿Qué plataformas admite Eye?

Eye se distribuye como un SDK nativo en el dispositivo para Swift, Kotlin, JavaScript / TypeScript.

¿Cuánto cuesta Eye?

Cada modelo es gratis hasta 100 000 dispositivos activos mensuales. La inferencia es ilimitada. Contáctanos para licencias personalizadas.

¿Qué precisión o velocidad tiene Eye?

Eye etiqueta una foto en 5,5 ms en el Neural Engine de un Mac con M6, y en 41 ms con WebGPU en Chrome. Las versiones Core ML y LiteRT puntúan igual en seis conjuntos de prueba públicos.

Recursos