Trying RealityShiftAR at a Maker Faire booth, the headset's display showing a transformed face

Engineering

2023

RealityShiftAR

目の前の人の顔をリアルタイムで生成AIによって変換し、見た目という「ノイズ」を取り除いて対面コミュニケーションを楽にする、自作シースルーARヘッドセット。

Raspberry Pi

Stable Diffusion

Mediapipe / OpenCV

3Dプリント筐体

個人開発

Maker Faire Tokyo 2023

プラットフォーム

Raspberry Pi単体で動くスタンドアロンなヘッドセット。Unity不使用

処理の流れ

Mediapipe + OpenCVによる顔検出・切り出し、Wi-Fi経由でStable Diffusion img2imgによる画像生成

担当領域

個人開発:企画・ソフトウェア・ハードウェア・当日のデモまですべて担当

出展

Maker Faire Tokyo 2023(あいらぼ*名義、XSA・SlipperXと並べて出展)

背景と技術的課題

2023年5月、Kyoto Maker Faireにマイクで拾った声をPythonでフォルマント変換し、話し相手の声を少女・イケメン・アニメの犯人風の声に変えて聞かせる作品を出展した。その場で「声だけでなく、目の前の人の顔も女の子になったら面白い」という声をもらったことがきっかけとなった。

ここから、人の外見や声質が対面コミュニケーションの妨げになるという課題意識に発展させた。かわいい相手には緊張してうまく話せない、強面の年上の人には本音を言いづらい、といったように、本来重要なはずの「話している内容」が外見というノイズに邪魔される現象がある。相手を変えることはできないので、「自分が見る世界の方を作り変えてしまえばいい」という発想で、手塚治虫「火の鳥」復活編(周囲が化け物に見える中、アンドロイドだけが人間に見える主人公)を着想源に、視界をハックするARグラスの開発に着手した。

技術的な課題は、Unityのような重量級のゲームエンジンを使わず、Raspberry Piだけで動くスタンドアロンなARデバイスとして、リアルタイムに顔を検出し、生成AIで変換した画像を違和感なく重ね合わせることにあった。

課題:Raspberry Pi単体で動くスタンドアロンなARヘッドセットで、目の前の顔をリアルタイムに生成画像へと自然に置き換える。

役割と担当範囲

個人開発:企画・要件定義から、ソフトウェア(顔検出・画像生成パイプライン)、ハードウェア(筐体のCAD設計・3Dプリント)、当日の展示・デモまで全工程を一人で担当。

技術選定とアーキテクチャ

要件:Unityを使わず、Raspberry Pi単体で動くスタンドアロンなARグラス。既存のイラストに顔を置き換えるだけでなく、生成AIでその人らしさを残しつつ変換したい。

1. 映像取得

Raspberry Pi搭載カメラで周囲の映像を撮影。

2. 顔認識・トリミング

Mediapipeで顔を検出し、OpenCVで顔部分を切り出し。

3. 画像送信・生成

切り出した顔画像をWi-Fi経由でゲーミングノートPCに送信。ノートPC側で立てたStable Diffusion WebUIに対し、Web API(img2img)経由で変換画像を生成させ、Raspberry Pi側にローカル保存。

4. 重ね合わせ・表示

生成された画像を元の顔位置に重ね合わせ、7インチ液晶ディスプレイにAR映像として表示(のぞき込むタイプの光学系のため、レンズ設計は行わずディスプレイ越しに外界を見る方式を採用)。

System architecture: Raspberry Pi 4 captures video, detects and crops the face, a gaming PC generates the character image with Stable Diffusion, and the Pi composites it onto the LCD

ハードウェア:

Fusion360でCAD設計。顔に当たる部分はスカルプトモデリングでソリッド化。

光造形3Dプリンタでグラス部・カバー部の2部品を製作(印刷に丸1日+6時間、フィラメント500g使用)。

Hardware configuration: Raspberry Pi 4 with an HDMI LCD, camera, Bluetooth headphones and a directional microphone via USB adapterThe finished RealityShiftAR headset held in one hand

実装で工夫した点・詰まった点

画像生成の遅延によるカメラ映像の停止:Stable Diffusionでの画像生成に2〜3秒かかり、そのまま待つとカメラ映像の更新まで止まってしまう問題が発生。Pythonのthreadingを使い、別スレッドでゲーミングPCへの生成リクエストを投げ続けることで、カメラ映像の描画とは非同期に処理する構成に変更して解決。

3Dプリントの試行錯誤:1号機はRaspberry Piと蓋が干渉、2号機は干渉は解消したものの印刷面が荒れる問題が発生。原因を「劣化したフィラメント」と推定し、新しいフィラメントに交換して解決(フィラメントは湿気に弱く保管に注意が必要という学びも得た)。

展示中のRaspberry Pi熱暴走:自宅でのデバッグでは問題が出なかったが、Maker Faire Tokyo 2023の2日間の連続稼働中にRaspberry Piが熱暴走し、何度も動作が落ちるトラブルに直面。ヒートシンクやファンによる放熱対策の必要性を現場で痛感した。

生成AIならではの特性として、作成者の意図しない画像が生成される面白さも体験の一部として肯定的に捉えた。

成果・パフォーマンス

動作デモ

ゲーミングPC上での動作確認として、少女化・イケメン化・おじいちゃん化・おばあちゃん化など、プロンプトを変えるだけで多様な変換デモを実現。

アニメ風少年に変身

アニメ風少女に変身

加齢

完成したヘッドセット

自作のシースルーARヘッドセット(筐体)を完成させ、X(Twitter)で発信。

Wearing the finished red RealityShiftAR headset

Maker Faire Tokyo 2023

Maker Faire Tokyo 2023(あいらぼ*名義、XSA・SlipperXと並べて出展)に体験展示として出展し、来場した学生グループが互いの変換された顔を見て爆笑する場面や、通りすがりの来場者が笑ってから話を聞きに来てくれる、といった実際の反応を得た。

The RealityShiftAR headset on the exhibit table at Maker Faire Tokyo 2023Visitors gathered around the ailab* booth at Maker Faire Tokyo 2023

Unity不要の開発基盤

Raspberry Pi + Python構成にしたことで、Unity不要のまま生成AIやSpeech-to-Textなど最新技術を組み込みやすい開発基盤を確立。

学び・今後の改善点

自作ARヘッドセットを一から作り切った経験として、光学設計を伴う本格的なARグラスではなく「ディスプレイ越しに覗き込む」方式に割り切ったことで、開発難度と期間のバランスを取れた。

ハードウェア面では、3Dプリントの品質が材料の保管状態に大きく左右されることを実体験として学んだ。

2日間の連続展示に耐える堅牢性の重要性を痛感。熱暴走対策(放熱設計)に加え、トラブル時に電源を挿し直すだけで復帰できるような「壊れても復旧しやすい」設計の大切さを学んだ。

自宅デバッグ時は1人の顔認識しか想定していなかったが、実際の展示では「友達と一緒に変換したい」という要望が多く、複数人同時の顔認識対応が実用上必須であることが判明。

今後は、完成したハードウェア基盤の上で、声質変換や音声合成などを組み合わせ、視覚・聴覚両面でのAR体験の拡張を模索するとしている。