カメラに映したまま歯が白くなる「ライブ表示」を、iPhone の中だけで動かす

カメラに映したまま歯が白くなるライブ表示を、iPhone の中だけで動かしました。毎コマの色の変換は GPU で、歯の範囲(マスク)づくりは1秒に約10回に減らして、なめらかさを保っています。映像は外へ送りません。無料版は1日1回30秒です。

「カメラに映したまま歯が白くなる」の文字と、ARKit・Vision・GPU・端末の中だけの札

カメラの映像をリアルタイムに処理する時は、毎コマすべてを計算せず、重い処理の回数を減らすのが答えでした。歯のホワイトニングを試せるアプリ(Shade Preview)のライブ表示では、毎コマの色の変換は GPU で行い、歯の範囲(マスク)づくりは1秒に約10回に減らして、端末の中だけでなめらかに動かしています。

歯のホワイトニングの仕上がりを試せるアプリ(Shade Preview)には、写真を撮らなくても、カメラに映したまま歯が白くなる「ライブ表示」があります。鏡を見るように、顔を動かしながら白くなった歯を確かめられます。審査に出した版にも入っている機能です。

映像は iPhone の中だけで処理し、外へは送りません。この記事は、ライブ表示を、端末の中だけでなめらかに動かすために決めたことの記録です。数字は、アプリのコードで確かめた値です。

カメラのリアルタイム処理で、毎コマ全部を計算すると間に合わない

写真1枚なら、歯を見つけて色を変えるのに少し時間がかかっても困りません。けれども、ライブ表示は、カメラの映像の1コマごとに結果を出す必要があります。

フィルムを巻いたリールの写真
毎コマ全部を計算すると、間に合わない(イメージ写真)
ライブ表示では1コマごとに結果を出す必要があり、歯の範囲づくりを毎コマ行うと計算が追いつかず映像がカクカクしたり止まったりする
写真1枚と違い、ライブは1コマごとに結果が要る

「毎コマやること」と「時々やること」に分けた

そこで、処理を2つに分けました。

処理 どのくらいの頻度で どこで
カメラの映像を画面に出し、歯の部分の色を変える 毎コマ GPU(Metal)
歯の範囲(マスク)を作り直す 1秒に約10回 別の処理の列(CPU)
ライブ表示の処理の分け方の図。色の変換は GPU で毎コマ、歯の範囲づくりは別の処理の列で1秒に約10回行い、0.12秒かけて切り替える
毎コマやることと、時々やること

顔の追いかけ方は、端末によって2通り

Face ID のある iPhone では ARKit(顔の形を立体で追いかける仕組み)を、ほかの iPhone では Vision(画像から顔を探す仕組み)を使います。どちらも iPhone に元から入っている部品です。

Vision の場合は、毎コマの口の点がありません。そのため、範囲は最後に見つけた位置のまま使い、0.5秒以上新しくならなければ、顔を見失ったと判断して色の変化を消していきます。

顔の追いかけ方の比較。Face ID のある iPhone は ARKit で毎コマ口の点が分かり、ほかの iPhone は Vision で最後に見つけた位置を使う。見失ったら色の変化を消す
端末による顔の追いかけ方の違い

映像は、端末の外に出さない

ライブ表示の映像は、すべて iPhone の中で処理します。録画もしませんし、サーバーにも送りません。このアプリには、写真や映像を受け取るサーバーそのものがありません。

ブラインドのかかった窓と、観葉植物の写真
映像は、端末の外に出さない(イメージ写真)
ライブ表示の映像はすべて iPhone の中で処理し、録画もサーバーへの送信もしない。写真や映像を受け取るサーバー自体が無い
映像は端末の外に出ない

無料版は1日1回30秒

ライブ表示は、無料版では1日1回、30秒まで試せます。広告を消す購入をすると、回数と時間の制限がなくなります。

広告を削除する購入の画面。広告なし、店名とロゴ入り、ライブ色変化が無制限、の3つが並び、下に「購入する」のボタンがある
広告を削除する購入の画面(審査に出した版)。購入すると、ライブ表示の制限が無くなる

まとめ

カメラに映したまま歯が白くなる「ライブ表示」を、iPhone の中だけで動かす:要点のまとめ。ライブ表示は、毎コマの色の変換を GPU で、歯の範囲づくりを1秒に約10回に分けた
この記事の要点
  • ライブ表示は、毎コマの色の変換を GPU で、歯の範囲づくりを1秒に約10回に分けた
  • Face ID のある iPhone は ARKit、ほかは Vision で顔を追いかける
  • 範囲を作り直す間は前の範囲を動かして使い、見失ったら色の変化を消す
  • 映像は端末の外に出さない。無料版は1日1回30秒

歯を見つけて色を変える仕組みそのものは、こちらに書いています。

「生成 AI を使わずに歯を白くする」の文字と、Vision・Lab の色・端末の中だけの札アプリ開発生成 AI を使わず、iPhone の無料の部品だけで歯を見つけて色を変える歯のホワイトニングを試せるアプリ(Shade Preview)は、生成 AI も外部のサービスも使わず、iPhone の Vision(顔の検出)と Lab 色空間の色の計算だけで歯を見つけて白くしています。速さを優先した理由と、「口の範囲が狭すぎる」問題の直し方です。

この記事は、AI(Claude)の支援を受けて作成し、筆者が内容を確認しています。

  • ARKit
  • Vision
  • Metal
  • カメラ
  • リアルタイム処理
  • Swift

関連する記事

この記事に関連するサービス・アプリ

ブログの一覧へ