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

カメラの映像をリアルタイムに処理する時は、毎コマすべてを計算せず、重い処理の回数を減らすのが答えでした。歯のホワイトニングを試せるアプリ(Shade Preview)のライブ表示では、毎コマの色の変換は GPU で行い、歯の範囲(マスク)づくりは1秒に約10回に減らして、端末の中だけでなめらかに動かしています。
歯のホワイトニングの仕上がりを試せるアプリ(Shade Preview)には、写真を撮らなくても、カメラに映したまま歯が白くなる「ライブ表示」があります。鏡を見るように、顔を動かしながら白くなった歯を確かめられます。審査に出した版にも入っている機能です。
映像は iPhone の中だけで処理し、外へは送りません。この記事は、ライブ表示を、端末の中だけでなめらかに動かすために決めたことの記録です。数字は、アプリのコードで確かめた値です。
カメラのリアルタイム処理で、毎コマ全部を計算すると間に合わない
写真1枚なら、歯を見つけて色を変えるのに少し時間がかかっても困りません。けれども、ライブ表示は、カメラの映像の1コマごとに結果を出す必要があります。


「毎コマやること」と「時々やること」に分けた
そこで、処理を2つに分けました。
| 処理 | どのくらいの頻度で | どこで |
|---|---|---|
| カメラの映像を画面に出し、歯の部分の色を変える | 毎コマ | GPU(Metal) |
| 歯の範囲(マスク)を作り直す | 1秒に約10回 | 別の処理の列(CPU) |

顔の追いかけ方は、端末によって2通り
Face ID のある iPhone では ARKit(顔の形を立体で追いかける仕組み)を、ほかの iPhone では Vision(画像から顔を探す仕組み)を使います。どちらも iPhone に元から入っている部品です。
Vision の場合は、毎コマの口の点がありません。そのため、範囲は最後に見つけた位置のまま使い、0.5秒以上新しくならなければ、顔を見失ったと判断して色の変化を消していきます。

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


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

まとめ

- ライブ表示は、毎コマの色の変換を GPU で、歯の範囲づくりを1秒に約10回に分けた
- Face ID のある iPhone は ARKit、ほかは Vision で顔を追いかける
- 範囲を作り直す間は前の範囲を動かして使い、見失ったら色の変化を消す
- 映像は端末の外に出さない。無料版は1日1回30秒
歯を見つけて色を変える仕組みそのものは、こちらに書いています。
アプリ開発生成 AI を使わず、iPhone の無料の部品だけで歯を見つけて色を変える歯のホワイトニングを試せるアプリ(Shade Preview)は、生成 AI も外部のサービスも使わず、iPhone の Vision(顔の検出)と Lab 色空間の色の計算だけで歯を見つけて白くしています。速さを優先した理由と、「口の範囲が狭すぎる」問題の直し方です。
この記事は、AI(Claude)の支援を受けて作成し、筆者が内容を確認しています。

