◉GEMINI LABEN
●ARGON — gemini-4-argon が 10/13 に GA。複雑なコーディング・エージェント・数学・科学向けです●DEEP RES — deep-research-pro-preview-12-2025 は 10/23 に停止、残り6日。移行先は deep-research-preview-04-2026●NANO — gemini-nano-banana-2.1 が GA(10/06)。gemini-3.1-flash-image は非推奨で停止日は未発表です●MCP — ツール結果が 8.5万トークンに膨らんだ事例を、ADK で 310 トークンに包んで抑えた報告が出ています●FLASH — gemini-3.7-flash と 3.5-flash は新しい Flash モデルに自動で回されます(10/08)●NEW — クラッシュ報告を毎回ゼロから読ませない — 既知バグ早見表を先に grep し…●ARGON — gemini-4-argon が 10/13 に GA。複雑なコーディング・エージェント・数学・科学向けです●DEEP RES — deep-research-pro-preview-12-2025 は 10/23 に停止、残り6日。移行先は deep-research-preview-04-2026●NANO — gemini-nano-banana-2.1 が GA(10/06)。gemini-3.1-flash-image は非推奨で停止日は未発表です●MCP — ツール結果が 8.5万トークンに膨らんだ事例を、ADK で 310 トークンに包んで抑えた報告が出ています●FLASH — gemini-3.7-flash と 3.5-flash は新しい Flash モデルに自動で回されます(10/08)●NEW — クラッシュ報告を毎回ゼロから読ませない — 既知バグ早見表を先に grep し…
記事一覧/API / SDK
◈ API / SDK/2026-05-24上級

Apple Vision Framework × Gemini API のハイブリッド画像認識 ─ 壁紙アプリでクラウド推論コストを 7 割削減した設計メモ

iOS の Apple Vision Framework でオンデバイス事前フィルタを行い、Gemini Vision API への送信を半分以下に絞った壁紙アプリの実装記録。コスト・精度・レイテンシの実測値と、ハマりどころを共有します。

Gemini API248Vision4Apple Vision Frameworkハイブリッド推論iOS13コスト最適化25個人開発121

✦ プレミアム記事

個人で運用している iOS 向け壁紙アプリの自動カテゴリ分類を、Gemini Vision API に全面移行したのが 2025 年の春でした。精度は十分に上がった一方で、月末のクラウド請求が想定の倍近くまで膨らみ、収益とのバランスをどう取るかが悩みになりました。アーティスト・クリエイターの廣川政樹です。2014 年から続けている個人アプリ開発のなかで、累計 5,000 万 DL を超えた頃から「全推論をクラウドに任せる」設計の限界を肌で感じる場面が増えてきました。

そこで 3 ヶ月かけて取り組んだのが、iOS 側の Apple Vision Framework で事前フィルタを行い、Gemini Vision API への送信を必要なものだけに絞るハイブリッド構成です。最終的に、月あたりの Gemini Vision API 呼び出し回数を 53%、コストを実測で約 71% 削減できました。

その設計判断と実装の細部、そして個人開発者だからこそ見えた運用上のハマりどころを、なるべく抽象化せず書き残しておきます。同じように「クラウド推論のコストと精度のバランスを取りたい」と感じている iOS 開発者の参考になれば嬉しいです。

なぜ全件クラウド推論をやめる必要があったか

最初に取り組んだのは、ユーザーが壁紙をアップロードした瞬間に、すべての画像を Gemini Vision API に送って「自然・抽象・人物・動物・乗り物・建築・宇宙」など 18 カテゴリに自動分類する仕組みでした。精度は実用域に達し、人手分類とのキャッパ係数で 0.81 を確認しています。

ただ、運用に乗せてから 1 ヶ月で 3 つの問題が浮かびました。

第一に、コストです。私の壁紙アプリには 1 日あたり平均で 18,000 枚前後の新規画像が流入し、Gemini Vision で全件処理すると、画像 1 枚あたり 0.0011 USD として月額換算で 600 USD を超えます。個人運用の AdMob 収益と組み合わせたときに、明らかに採算が取りづらくなる水準でした。

第二に、レイテンシです。海外 API への往復で 400〜1,200 ms の幅があり、ユーザーがアップロードしてから「カテゴリが反映されるまで」の体感速度が落ちていました。

第三に、明らかに分類不要な画像が一定割合を占めていたことです。具体的には、ほぼ単色の画像、ピンボケのテスト撮影画像、極端に小さなサムネイル、すでに自分のアプリで生成された壁紙のスクリーンショット ─ これらが体感で 20% 近くありました。これらに API クレジットを消費する意味はありません。

「全件をクラウドに送らない」設計に切り替える必要があると、ここで腹を決めました。

オンデバイス事前フィルタの責務をどう設計したか

Apple Vision Framework は iOS 11 から提供されているオンデバイス画像解析の基盤で、最新の iOS 26 系では VNClassifyImageRequest、VNGenerateAttentionBasedSaliencyImageRequest、VNDetectHumanRectanglesRequest などが Apple Neural Engine 上で動きます。レイテンシは iPhone 14 Pro 実機で 30〜90 ms、消費電力もほぼ計測誤差レベル、そして何より無料です。

ただし精度の限界もあります。Apple Vision の汎用分類器は 1,000 ラベル前後の ImageNet 系で、私の壁紙アプリが必要とする「日本画風」「和柄」「サイバーパンク」「ローファイ」のようなテイスト的なカテゴリは判別できません。ここに Gemini Vision API の意味理解の強みが効きます。

そこで、両者の責務を次のように切り分けました。

オンデバイス側は「Gemini Vision に送る意味があるかを判定するゲート役」に徹します。具体的には、

  1. 画像の鮮明さスコアと顕著性マップの面積を測り、明らかに低品質な画像を弾く
  2. 既存の自分のアプリで生成された画像か(埋め込みウォーターマーク検出)を確認する
  3. 大ジャンル(写真風・イラスト風・抽象)を Vision Framework の汎用分類で当て、後続の Gemini プロンプトに渡すヒントを作る

クラウド側(Gemini Vision API)は、上記を通過した画像に対してのみ、最終カテゴリと付加メタデータ(推奨タグ、雰囲気、推奨カラーパレット)を返す責務に集中させます。

「全部 AI でやる」のではなく、「AI に任せる仕事を選別する役割を AI に与える」設計です。両家の祖父が宮大工だった影響なのか、私はソフトウェアの設計でも「適材適所」をかなり意識する癖があり、この切り分けはしっくり来ました。

✦

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
✦オンデバイス事前フィルタで Gemini Vision API 呼び出しを 53% 削減した経路設計
✦Apple Vision の VNClassifyImageRequest と Gemini Vision の判定境界をどう引いたか
✦壁紙アプリ(累計 5,000 万 DL)の運用で見えた、ハイブリッド構成のハマりどころと回避策
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Gemini Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

◈ API / SDK2026-05-06
Gemini 2.5 Flash を1ヶ月使い続けた個人開発者の正直レポート — 費用・速度・品質の実態
Gemini 2.5 Flash を個人開発で1ヶ月使い続けた実測レポートです。実際にかかった API 費用、速度の揺れ幅、品質が足りないと判断した2つの場面、Flash と Pro の切り替え判断フレームワーク、コスト上限アラートの設定まで数字で示します。
◈ API / SDK2026-09-29
『F6号』と『A4くらい』が同じ列に並ぶ作品台帳を、Gemini の読み取りと号数表の換算で cm に揃えるまで
作家さんの作品台帳に『F6号』『41×31.8cm』『A4くらい』が混ざっていました。Gemini API には読み取りだけを頼み、換算は号数表、向きは画像で決める小さな道具を、動くコードとともに一本ずつ組み立てます。
◈ API / SDK2026-09-11
文字起こしの固有名詞が直らないとき、カスタム語彙に何を入れて何を諦めるか
gemini-3.5-transcribe の custom_vocabulary は最大1,000語ですが、枠を埋めることが目的ではありません。誤認ログの正解と出力の対から、枠を渡す語だけを選び直す60行のスクリプトと、その判断基準をまとめます。