Desert Ant Labs

Eye

BeeldclassificatieBèta

Tag elke foto op wat het is en wat erop staat, van screenshots en bonnetjes tot 558 scènes, volledig op het apparaat.

Tag en rangschik afbeeldingen.

Vind de screenshots, bonnetjes en selfies in een filmrol, de foto's waarop iemand zijn ogen dicht heeft en de foto's die te gevoelig zijn om te laten zien. Eye tagt elke foto op het apparaat, dus er wordt geen enkel beeld geüpload.

Eye groepeert bijna identieke opnames en kiest uit elke burst de foto die je houdt: niemand met de ogen dicht, de beste gezichten. Veertig opnames van hetzelfde moment in een filmrol worden één foto om te bekijken.

Een foto kost 5,5 ms op de Neural Engine van een Mac met een M6, dus 10.000 foto's zijn in minder dan een minuut klaar. In Chrome met WebGPU kost een foto 41 ms.

Een foto getagd in 5,5 ms.

Eye tagt een foto in 5,5 ms op de Neural Engine van een M6-Mac, en in 41 ms met WebGPU in Chrome. De Core ML- en LiteRT-builds scoren hetzelfde op zes publieke testsets.

5,5ms
Per foto
Neural Engine, Mac met een Apple M6
41ms
In Chrome
WebGPU, dezelfde Mac
98%
Screenshotprecisie
bij drempel 0,5; bonnetjes 100%
48MB
Download
Core ML; 66 MB LiteRT

Eén foto, de volledige fotoanalyse, op een Mac met een Apple M6.

RuntimeTijd
Core ML, Neural Engine5,5ms
LiteRT, GPU (Metal)30ms
LiteRT.js, WebGPU, in Chrome41ms
LiteRT, CPU, 4 threads49ms
LiteRT.js, WebAssembly with threads, in Chrome176ms

Nauwkeurigheid op publieke testsets, met dezelfde scorecode voor beide builds

TestsetCore 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

Beide builds geven op elke set dezelfde antwoorden, op een paar duizendsten na. De snelheid is gemeten op één Mac met een Apple M6, en de LiteRT-build is nog niet gemeten op Android-telefoons.

Toepassingen

Tag en rangschik afbeeldingen.

De filmrol sorteren

Scheid screenshots, bonnetjes, documenten en whiteboards van de foto's die mensen zelf maakten, zodat een galerij-app ze kan archiveren of kan voorstellen ze op te ruimen.

Het beste uit een burst bewaren

Voeg bijna identieke opnames samen in één groep en toon de beste eerst, zonder dat iemand de ogen dicht heeft. De rest verdwijnt met één tik.

Gevoelige foto's verbergen

Vervaag expliciete, gewelddadige of medische foto's voordat iemand ze ziet, in een gedeeld familiealbum of een uploadformulier in de browser. Met de strenge drempel verberg je een foto automatisch.

Foto's zoeken op wat erop staat

Vind elke foto van de hond, het strand of een bonnetje, op basis van 558 scènes en de fototypes. Het werkt in een web-app of een Node-backend, zonder vision-API in de cloud.

Een coverbeeld bijsnijden

Kies het beste frame uit een video of de beste vierkante of breedbeelduitsnede van een foto voor een thumbnail of een preview bij het delen. Eye zet gekantelde foto's ook weer rechtop.

Wat het model doet

  • Eén analyze-aanroep geeft tags met een betrouwbaarheidswaarde, drie scores (esthetiek, bewaren en cover) en de mensen, huisdieren en gezichten op de foto. Dezelfde aanroep vindt de beste uitsnede voor elke beeldverhouding, een rotatiecorrectie en een embedding.
  • Er zijn tags voor het fototype (screenshot, bonnetje, document, identiteitskaart, whiteboard en meer), de kwaliteit (scherp, wazig, bokeh) en mensen (groepsfoto, portret, iedereen lacht). Andere tags gaan over redenen om te bewaren of te verwijderen, gevoelige inhoud en 558 scènes.
  • Elke tag is zo gekalibreerd dat 0,5 de aanbevolen drempel is en 0,9 een strenge. Bij 0,5 klopt een screenshot-tag in 98% van de gevallen, een bonnetjes-tag in 100%, mensen in 95% en ogen dicht in 92%.
  • Scènetags kloppen in 88% van de gevallen (mediaan). De redenen om te bewaren of te verwijderen, zoals “nietszeggend” of “slechte kadrering”, zijn het minst betrouwbaar, dus gebruik ze voor suggesties.
  • Elk gezicht krijgt eigen tags: ogen dicht, lachend, kijkt in de camera of kijkt weg, blij, verrast. Eye analyseert standaard tot 20 gezichten per foto.
  • Eye.duplicates, Eye.best en Eye.similar werken over een hele bibliotheek: groepen bijna-duplicaten, desgewenst alleen voor foto's die seconden na elkaar zijn gemaakt, de beste van een set, en foto's gerangschikt op gelijkenis.
  • Analyses worden in Swift, Kotlin en JavaScript als dezelfde JSON opgeslagen, zodat een app ze kan bewaren en later kan filteren zonder het model te laden.
  • parts bepaalt wat er wordt berekend: photo, layout, faces en sharpness. Elk onderdeel kost een of meer modelruns, dus laat weg wat je niet nodig hebt.
  • 48 MB als Core ML voor Apple-platforms, op de Neural Engine, en 66 MB als LiteRT voor Android, Linux, Windows, Node en de browser. De SDK downloadt het model bij het eerste gebruik en slaat het op in de cache.
  • In de browser draait Eye via WebGPU op de GPU als de browser dat ondersteunt, en anders via WebAssembly op de CPU.

Aan de slag

Voeg beeldclassificatie toe aan je iOS or macOS, Android or web-app in een paar regels code. Eye docs.

iOS, macOS
Installeren
// 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")
Voorbeeld - 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)
Bouwen met een prompt
Add Eye from Desert Ant Labs to this Swift project (iOS, macOS).

What it does: on-device foto's taggen en beoordelen.

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
Installeren
// build.gradle.kts (Maven Central)
implementation("ai.desertant:eye:4.0.0")
Voorbeeld - 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)
}
Bouwen met een prompt
Add Eye from Desert Ant Labs to this Kotlin project (Android).

What it does: on-device foto's taggen en beoordelen.

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
Installeren
npm i @desert-ant-labs/eye @litertjs/core   # browser
npm i @desert-ant-labs/eye                  # Node
Voorbeeld - 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 });
Bouwen met een prompt
Add Eye from Desert Ant Labs to this JavaScript / TypeScript project (Web, Node.js).

What it does: on-device foto's taggen en beoordelen.

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.

Specs

Snelheid
5,5 ms per foto op de Neural Engine (M6-Mac); 41 ms met WebGPU in Chrome
Nauwkeurigheid
Bij drempel 0,5: screenshots 98% precisie, bonnetjes 100%, scènes 88% (mediaan)
Tags
Fototype, bewaren of verwijderen, kwaliteit, mensen, gezichten, gevoelige inhoud en 558 scènes
Grootte op het apparaat
48 MB Core ML (Apple); 66 MB LiteRT (Android, Linux, Windows, Node, de browser)
Platforms
iOS 18+, macOS 15+, tvOS 18+, visionOS 2+ (Core ML); Android, Linux, Windows (LiteRT); de browser en Node (LiteRT.js)

Eye is getraind op foto’s, dus scores voor illustraties, screenshots en sterk bewerkte afbeeldingen zijn minder betrouwbaar. De redenen om te bewaren of te verwijderen, zoals “nietszeggend” of “slechte kadrering”, zijn het minst betrouwbaar, dus gebruik ze voor suggesties en de strenge drempel voor alles wat automatisch gebeurt.

Gezichtsanalyse beschrijft een gezicht en stelt niet vast wie iemand is.

FAQ

Wat is Eye?

Tag elke foto op wat het is en wat erop staat, van screenshots en bonnetjes tot 558 scènes, volledig op het apparaat.

Draait Eye op het apparaat?

Ja. Eye draait op het apparaat, zonder serveraanroep, dus de data blijft bij de gebruiker.

Welke platforms ondersteunt Eye?

Eye wordt geleverd als een native on-device SDK voor Swift, Kotlin, JavaScript / TypeScript.

Hoeveel kost Eye?

Elk model is gratis voor maximaal 100k maandelijks actieve apparaten. Inference is onbeperkt. Neem contact op voor aangepaste licenties.

Hoe nauwkeurig of snel is Eye?

Eye tagt een foto in 5,5 ms op de Neural Engine van een M6-Mac, en in 41 ms met WebGPU in Chrome. De Core ML- en LiteRT-builds scoren hetzelfde op zes publieke testsets.

Bronnen