Dev Classmethod Jp Articles Foundation Models Multimodal Ringfit
Foundation Models のマルチモーダル機能でリングフィットアドベンチャーのリザルト画面から運動記録を取り出してみた
- URL: https://dev.classmethod.jp/articles/foundation-models-multimodal-ringfit
- 日付: 2026-06-19
- Tier: Tier 2
- 要旨: Apple の Foundation Models(iOS 27 Beta)のマルチモーダル機能を使って、リングフィットアドベンチャーのスクリーンショットから活動時間・消費カロリー・走行距離を構造化データとして抽出する iOS アプリを実装。初期設計では「読み取り+変換を同時に委ねる」と誤読・nil 生成が起き、分・秒を分離した設計と Bool による nil 回避が有効だった。
詳細
検証環境:MacBook Pro M2 Pro / macOS Tahoe 26.4.1 / Xcode 27.0 Beta / iPhone 16e(iOS 27.0 Beta)。
失敗した設計:
totalActivitySeconds: Int(分秒の変換をモデルに委ねた)→「13分11秒」を781秒と誤読(正解791秒)runningDistanceKm: Double?でオプショナル → モデルがnilの代わりに-1.0や0.0を返す
成功した設計:
activityMinutes: IntとactivitySeconds: Intに分離し、0〜59の範囲を description に明記 → アプリ側でminutes * 60 + secondsを計算runningDistanceAvailable: BoolとrunningDistanceKm: Doubleのペア化 → nil の代わりに Bool で存在判定
フォールバック設計として #available(iOS 27, *) → SystemLanguageModel.default.isAvailable → catch の 3 層で Vision.framework OCR へのフォールバックを実装している。
@Guide の description は日本語でも英語と同等の精度が出ることを確認(ただし複雑な条件分岐では差が出る可能性あり)。