Desert Ant Labs

Eye

画像分類ベータ

何の写真か、何が写っているかで、すべての写真をタグ付け。スクリーンショットやレシートから 558 のシーンまで、処理はすべて端末上で。

画像にタグを付けて、ランク付け。

カメラロールの中から、スクリーンショット、レシート、自撮り、誰かが目をつぶっている写真、人に見せられないセンシティブな写真を見つけます。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 つの公開テストセットで同じスコアです。

5.5ms
写真 1 枚あたり
Neural Engine、Apple M6 搭載の Mac
41ms
Chrome で
WebGPU、同じ Mac
98%
スクリーンショットの適合率
しきい値 0.5。レシートは 100%
48MB
ダウンロード
Core ML。LiteRT は 66MB

Apple M6 搭載の Mac で、写真 1 枚をフル解析した場合。

ランタイム時間
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

公開テストセットでの精度。両方の版を同じ採点コードで評価

テストセットCore 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

どのセットでも、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 のドキュメント.

iOS, macOS
インストール
// 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")
使用例 - 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)
プロンプトで作る
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.
Android
インストール
// build.gradle.kts (Maven Central)
implementation("ai.desertant:eye:4.0.0")
使用例 - 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)
}
プロンプトで作る
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.
Web, Node.js
インストール
npm i @desert-ant-labs/eye @litertjs/core   # browser
npm i @desert-ant-labs/eye                  # Node
使用例 - 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 });
プロンプトで作る
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 つの公開テストセットで同じスコアです。

リソース