Eye
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.
Eén foto, de volledige fotoanalyse, op een Mac met een Apple M6.
| Runtime | Tijd |
|---|---|
| Core ML, Neural Engine | 5,5ms |
| LiteRT, GPU (Metal) | 30ms |
| LiteRT.js, WebGPU, in Chrome | 41ms |
| LiteRT, CPU, 4 threads | 49ms |
| LiteRT.js, WebAssembly with threads, in Chrome | 176ms |
Nauwkeurigheid op publieke testsets, met dezelfde scorecode voor beide builds
| Testset | Core ML | LiteRT (CPU) |
|---|---|---|
| KonIQ-10k, aesthetic SRCC | 0,6288 | 0,6291 |
| COCO val2017, person AP50 | 0,3814 | 0,3837 |
| MIT1003, where people look, CC | 0,7153 | 0,7195 |
| CUHK cropping, crop IoU | 0,8244 | 0,8241 |
| WIDER Face val, AP, hard | 0,6806 | 0,6812 |
| CEW, eyes open AUC | 0,9943 | 0,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.bestenEye.similarwerken 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.
partsbepaalt wat er wordt berekend:photo,layout,facesensharpness. 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.
// 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")
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)
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.
// build.gradle.kts (Maven Central)
implementation("ai.desertant:eye:4.0.0")
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)
}
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.
npm i @desert-ant-labs/eye @litertjs/core # browser
npm i @desert-ant-labs/eye # Node
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 });
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.