[Looking Glass Portrait] イラストを立体視表示してみた

(3DSのような) 裸眼立体視ができるモニターガジェット[Looking Glass Portrait](https://www.makuake.com/project/lookingglass_gen2/)を購入してみました。今回は生成AIで作ったイラストを使って、Portraitモードを試してみたので、その操作手順をまとめます。自分はUnityやBlenderの知識がないため、最も簡単そうな方法を選んで実験しました。

## できるもの

立体感がどの程度伝わるかはわかりませんが、試しにこんな感じのイラストを表示してみました。([下記画像のリンクが切れている場合はこちら](https://giphy.com/gifs/QrWiCPknxQYilNN13j))

![Looking Glass Portraitに表示したものを様々な向きから動画撮影したGIF画像](https://i.giphy.com/media/v1.Y2lkPTc5MGI3NjExZGNzZ3d2N2pzdjIzZ2kxMXFrdGJvaXZuOW8zNm56bWJkOWowYzJvMCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/QrWiCPknxQYilNN13j/giphy.gif)


使用した画像はこちらです。
![pixai-1792044904954230120-random magical girl (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254984/b29767e0-f29a-d31d-b005-fb16f68f10c7.png)

## 必要なもの

### ハードウェア
- PC
  - CPU: Corei7-12700KF
  - GPU: RTX 3060 12GB
  - そこそこの性能があったほうがいいです
- Looking Glass Portrait (以下LGP)
  - 中古で運良く安く入手しました
- HDMIケーブル
  - 4K対応(本体付属)のものを使用します
- USB Type-C to B ケーブル
  - スマホのデータ転送と同様の5V/2Aで動作しました

### ソフトウェア
- Windows 10
  - まだWindows 11にアップグレードしていません
- [Looking Glass Bridge](https://lookingglassfactory.com/software/looking-glass-bridge)
  - LGPとPCを接続するための常駐ソフトウェアです
- [Looking Glass Studio](https://lookingglassfactory.com/software/looking-glass-studio)
  - Portraitモード用のデータ転送やファイル管理を行うソフトです

## 前提として知っておくべき仕様
このデバイスはちょっと独特なので、最初に引っかかりやすいポイントをまとめました。

- **PCからは4Kモニタとして認識されます**
  - マウスがどっかに行ったと思ったら大抵LGPの中に捕まっています
- **PCからはUSBストレージとして認識されます**
  - **ストレージ内のファイルは基本的に操作しないこと**Looking Glass Studioを通じて管理してください
  - 一部のシステムファイルを削除してしまうと、復旧にはサポートに連絡が必要です
  - 中にある明らかに参照されていないmp4を削除していいのかは不明...
- 2つの動作モード
  - Portraitモード：予めPCからストレージに転送したデータを表示
  - Desktopモード：PCで描画した内容をリアルタイムに表示
    - 両モードは排他的なので、切り替えるには電源をオフにして再起動する必要があります
- 内部にはRaspberry Pi 4Bが搭載されています
  - 分解するとサポートが切れるので注意

## 設定手順

### 初回セットアップ

#### 1. 公式サイトを確認
正直なところ、公式サイト以外にあまり情報が無いので、まず公式サイトを読みましょう。最新情報は公式サイトに記載されています。

https://docs.lookingglassfactory.com/getting-started/portrait

#### 1 Looking Glass Bridgeをインストールする
Looking Glass Bridgeをインストールしないと何も表示できません。以前はHoloPlay Serviceという名前でした。

https://lookingglassfactory.com/software/looking-glass-bridge

#### 2 Looking Glass Studioをインストールする
Portraitモード用のデータ転送に必要なソフトです。以前はHoloPlay Studioという名前でした。

https://lookingglassfactory.com/software/looking-glass-studio

#### 3 LGPを繋いでディスプレイ設定をする
**HDMIケーブルとUSBケーブルを接続してから**、LGPの電源を入れます。以下のディスプレイ設定に合わせておくことが推奨されています。

- 回転方向: 縦方向
- 解像度: 1536x2048
- フォントスケール: 100%

https://docs.lookingglassfactory.com/software-tools/looking-glass-bridge/display-settings-on-windows

### イラストの深度推定とLGPへの転送

#### 0 イラストを用意する

自分で描くか、Stable DiffusionやPixAIでイラストを生成しましょう。

https://pixai.art/

#### 1 イラストを深度推定する
イラストに奥行きを持たせるため、深度情報を追加します。以下のモデルのどちらかを使うのがおすすめです。どちらもHugging Faceのデモで試せます。

- MariGold LCM
  - [デモページ](https://huggingface.co/spaces/prs-eth/marigold-lcm)
- Depth Anything V2
  - [デモページ](https://huggingface.co/spaces/depth-anything/Depth-Anything-V2)

両方試した結果、Depth Anything V2の方が自然な深度を得られました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254984/59bb03cd-7d1e-b0ba-ec92-efc3eb5c2af0.png)


なお、更に新しいモデルを試したい場合は下記から見つけることができます。

https://huggingface.co/models?pipeline_tag=depth-estimation&sort=trending

#### 2 イラストと深度画像を並べる
ペイントツールや画像加工ツールで、イラスト（左）と深度画像（右）を横に並べます。今回は「フォトコンバイン」を使用しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254984/4aec2648-68ec-bb2f-c5fc-6d1cccc652d7.png)

https://photocombine.net/cb/

#### 3 LGPをPCに接続
LGPの電源を切った状態でPCに接続し、起動します。USBケーブルと**HDMIケーブル**を両方接続しないと、Portraitモードにならないため注意が必要です。

#### 4 Looking Glass Bridgeを起動
起動すると、タスクバーに常駐アイコンが表示されます。アイコンを右クリックし、LGPが正しく認識されていれば特に操作は不要です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254984/4c2b3ad3-c8f0-0955-e089-7c36cc4a3d88.png)

#### 5 Looking Glass Studioを起動
イラストをLGPに転送するため、Looking Glass Studioを起動します。正しく起動すれば、タスクバーにこのアプリが開きます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254984/ae7bae70-676a-dfac-df37-94a02d3d4973.png)

が、このアプリはなかなか不安定でクセ有りだったので下記に情報を残します。

- **"出荷時点から登録されているプレイリストは画面に出てきません"**
  - どうも転送はPCからLGPへの一方通行で、読み取りは行わない仕様のようです
- **運が悪いとアプリを起動できません**
  - 起動してもすぐにウィンドウが閉じてしまう問題に遭遇しました
  - 再起動してみたあと 直感で **"管理者として実行"** を試すと動きました
    - 詳細な条件は不明
- 正しく接続できていてもできていなくても、アプリ内には何も警告が出ません
  - 接続できていることを祈りましょう...

#### 6 先ほど作った深度付きイラストを登録する
右側に、先ほど作成した画像ファイルをドラッグ＆ドロップし、フォーマットが"RGBD Photo and Video"になっているのを確認して OKを押します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254984/2006280b-e6ba-6a10-5e6d-e0b942ee5c3b.png)

次に、右側のプロパティ欄のDepthiness(奥行きの深さ)とFocus(焦点位置?)をちょうどよい見た目になるように調整します。 (MariGold LCMを使う場合は"Depth Inversion"にチェックして、奥行きを反転させる必要があります。) また、必要であればマウスをLGP側に持っていきスクロールやドラッグ操作で表示位置とサイズも調整しておきましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254984/f8b10b75-f743-ad4c-89bd-139fa27c48c6.png)


#### 7 同期
現在表示されているのはプレビューです。Portraitモードで見られるようにするには、"同期"操作を行う必要があります。右下に出ている"Sync playlist"ボタンを押すと同期が行われます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254984/c17feb9f-99cf-7b51-be58-6519d56e68da.png)


が、このアプリはなかなか不安定でクセ有りだったので下記に情報を残します。

- **運が悪いと転送に失敗します**
  - 書き込みに失敗していてもエラーメッセージがでず、要同期アイコン(out of sync)が残ることがあります
  - 再起動してみたあと 直感で **"日本語パスを含まないようにする"** と動くようになりました
    - 詳細な条件は不明

#### 8 完了
Sync Playlistを押したあと (別項目を選択して)同期アイコンが消えていれば完了です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254984/f401de2f-be2e-79b4-51c8-56ca1342db44.png)

LGPの電源を切って、PCから取り外した後、公式のACアダプタなどで電源を入れると、先ほど転送したイラストが表示されるはずです!

## おわりに
無事にイラストを立体的に表示できて満足です。趣味で作ったイラストを色々と登録して遊んでみようと思います。今回はPortraitモードを試しただけですが、他のモードも今後試してみたいです。

## 補足

### Looking Glass Bridgeの動作確認をするには
下記ページの "Test your looking glass" ボタンを押すと、LGPが正しく認識されているかを確認できます。正しく機能していれば謎のおじさんのモデルが出てきます。

https://docs.lookingglassfactory.com/getting-started/portrait/get-started-with-looking-glass-portrait#install-looking-glass-bridge

もしくは、Looking Grass Blocksというページでも動作確認ができます。各モデルページ右上にある、箱にシェアアイコンが付いたようなボタンを押すと、接続されているLGPにモデルを配信して実際に見てみることができます。(表示内容は永続的ではないので電源を切ると消えます)

https://blocks.glass/discover

## 参考資料
2022 StableDiffusionで画像の深度推定をする方法 (初めにLookingGlassを知ったきっかけ)

https://note.com/alone1m/n/nb76ae31f8f86

2024 Marigoldを使い画像の深度推定をする方法 (購入に踏み切ったきっかけ)

https://speakerdeck.com/84monta/marigold