
画像にタグを付けて、ランク付け。
カメラロールの中から、スクリーンショット、レシート、自撮り、誰かが目をつぶっている写真、人に見せられないセンシティブな写真を見つけます。Eye はタグ付けを端末上で行うので、画像は 1 枚もアップロードされません。
Eye はほぼ同じ写真をグループにまとめ、連写ごとに残す 1 枚を選びます。誰も目をつぶっておらず、表情がいちばん良い 1 枚です。同じ瞬間を 40 枚撮っても、目を通すのは 1 枚で済みます。
M6 搭載 Mac の Neural Engine で写真 1 枚あたり 5.5 ms、1 万枚でも 1 分かかりません。Chrome の WebGPU では 1 枚 41 ms です。
写真 1 枚を 5.5 ms でタグ付け。
Eye は M6 Mac の Neural Engine で写真 1 枚を 5.5 ms、Chrome の WebGPU で 41 ms でタグ付けします。Core ML 版と LiteRT 版は、6 つの公開テストセットで同じスコアです。
Apple M6 搭載の Mac で、写真 1 枚をフル解析した場合。
| ランタイム | 時間 |
|---|---|
| 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 |
公開テストセットでの精度。両方の版を同じ採点コードで評価
| テストセット | 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 |
どのセットでも、2 つの版の答えの差は小数第 3 位の範囲に収まります。速度は Apple M6 搭載の Mac 1 台で計測しており、LiteRT 版は Android スマートフォンではまだ計測していません。
ユースケース
画像にタグを付けて、ランク付け。.
カメラロールを仕分ける
スクリーンショット、レシート、書類、ホワイトボードを、人が撮った写真から分けます。ギャラリーアプリはそれらを別の場所に振り分けたり、削除を提案したりできます。
連写のベストを残す
ほぼ同じ写真を 1 つのグループにまとめ、誰も目をつぶっていない、残すべき 1 枚を先頭に表示します。残りはワンタップで消せます。
センシティブな写真を隠す
家族の共有アルバムやブラウザのアップロードフォームで、露骨な写真、暴力的な写真、医療写真を、誰かの目に触れる前にぼかします。厳しめのしきい値を使えば、写真を自動で非表示にできます。
写っているもので写真を探す
558 のシーンと写真の種類から、犬や海辺、レシートが写った写真をすべて見つけます。Web アプリでも Node のバックエンドでも動き、クラウドの画像認識 API は要りません。
カバー画像を切り出す
サムネイルや共有カード用に、動画のベストフレームや、写真に最適な正方形・横長のトリミングを選びます。Eye は横倒しになった写真の向きも直します。
モデルができること
- 1 回の
analyze呼び出しで、信頼度付きのタグ、3 つのスコア(美的評価、残す価値、カバー適性)、写真に写っている人・ペット・顔が返ります。同じ呼び出しで、任意のアスペクト比での最適なトリミング、回転の補正、埋め込みも得られます。 - タグがカバーするのは、写真の種類(スクリーンショット、レシート、書類、身分証、ホワイトボードなど)、画質(シャープ、ピンぼけ、背景ボケ)、人物(集合写真、ポートレート、全員が笑顔)です。ほかに、残すか消すかの理由、センシティブなコンテンツ、558 のシーンのタグがあります。
- すべてのタグは、0.5 が推奨しきい値、0.9 が厳しめのしきい値になるよう較正されています。0.5 では、タグが正しい割合はスクリーンショットで 98%、レシートで 100%、人物で 95%、目つぶりで 92% です。
- シーンのタグが正しい割合は、中央値で 88% です。「印象に残らない」「構図が悪い」といった残すか消すかの理由はもっとも信頼性が低いので、提案として使ってください。
- 顔ごとにも、目つぶり、笑顔、カメラ目線かよそ見か、喜び、驚きのタグが付きます。Eye は既定で 1 枚あたり最大 20 人の顔を分析します。
Eye.duplicates、Eye.best、Eye.similarはライブラリ全体を対象に動きます。ほぼ同じ写真のグループ化(数秒以内に撮った写真だけに絞ることも可能)、セットから残す 1 枚の選択、類似度順の並べ替えです。- 分析結果は Swift、Kotlin、JavaScript で同じ JSON として保存されるので、アプリは結果を保存しておき、あとからモデルを読み込まずに絞り込めます。
partsで何を計算するかを選べます。対象はphoto、layout、faces、sharpnessです。パートごとにモデルを 1 回以上実行するので、不要なものは外してください。- Apple プラットフォーム向けは Core ML で 48MB、Neural Engine 上で動きます。Android、Linux、Windows、Node、ブラウザ向けは LiteRT で 66MB です。SDK は初回使用時にモデルをダウンロードしてキャッシュします。
- ブラウザでは、WebGPU が使えれば Eye は WebGPU 経由で GPU 上で動き、使えなければ WebAssembly 経由で CPU 上で動きます。
はじめに
画像分類 を、数行のコードで iOS or macOS, Android or web アプリに追加。 Eye のドキュメント.
// 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: Eye:オンデバイスの写真タグ付けとスコアリング. 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: Eye:オンデバイスの写真タグ付けとスコアリング.
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: Eye:オンデバイスの写真タグ付けとスコアリング. 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.
仕様
- 速度
- Neural Engine で 1 枚 5.5 ms(M6 Mac)。Chrome の WebGPU で 41 ms
- 精度
- しきい値 0.5 で、スクリーンショットの適合率 98%、レシート 100%、シーンは中央値 88%
- タグ
- 写真の種類、残すか消すか、画質、人物、顔、センシティブなコンテンツ、558 のシーン
- オンデバイスサイズ
- 48MB Core ML(Apple)、66MB LiteRT(Android、Linux、Windows、Node、ブラウザ)
- プラットフォーム
- iOS 18+、macOS 15+、tvOS 18+、visionOS 2+(Core ML)。Android、Linux、Windows(LiteRT)。ブラウザと Node(LiteRT.js)
Eye は写真で学習しているため、イラスト、スクリーンショット、大きく加工した画像のスコアは信頼性が下がります。「印象に残らない」「構図が悪い」といった残すか消すかの理由はもっとも信頼性が低いので、提案として使い、自動で処理するものには厳しめのしきい値を使ってください。顔の分析は顔の様子を表すもので、誰なのかは特定しません。
FAQ
Eye とは?
何の写真か、何が写っているかで、すべての写真をタグ付け。スクリーンショットやレシートから 558 のシーンまで、処理はすべて端末上で。
Eye はオンデバイスで動作しますか?
はい。Eye はデバイス上で動作し、サーバーへの通信は発生しません。データはユーザーの手元に残ります。
Eye はどのプラットフォームに対応していますか?
Eye は Swift, Kotlin, JavaScript / TypeScript 向けのネイティブなオンデバイス SDK として提供されます。
Eye の料金はいくらですか?
各モデルは月間アクティブデバイス 100k 台まで無料です。推論は無制限です。 カスタムライセンスについては、お問い合わせください。
Eye の精度や速度はどれくらいですか?
Eye は M6 Mac の Neural Engine で写真 1 枚を 5.5 ms、Chrome の WebGPU で 41 ms でタグ付けします。Core ML 版と LiteRT 版は、6 つの公開テストセットで同じスコアです。