Lenovo T1を使いやすいARグラスにして将来のユーザーのWellbeingを向上してみる
◆実験の背景
この数カ月間SmartGlassであるLenovo T1でいろいろと試してみて出来ること、出来ない事がある程度はっきりとわかってきた。
元々目指していた真のARグラス化には位置検出や姿勢検出が必要なものの、HTC VIVE Tracker等のトラッカーが結局必要になる(ただし限られた範囲内でのみ検出可能)か、RTKつきGPSとジャイロを含めた数キロの機材を背負う必要がありどこでも気軽にARという目標への到達は技術的に難しいということを再認識した。
そこで視点を若干変えて、ARとしてまず何を求めるのかについて考えてみると、視野(咀嚼できる情報量含め)拡張が正確な位置検出や姿勢検出無しで実現可能なのではないかという結論になった。
上記の前提の元、こちらの投稿にあるようにLenovo T1のグラスに直接マウント出来るカメラマウントの作成までこぎ着けることが出来た。
マウントは下記のリンク先からダウンロード出来る。
https://www.thingiverse.com/thing:6274063
このマウントは試しに軽く使っただけでもかなり可能性を感じるものだったので、いろいろな環境で何が出来るのかを試してみたのでこの投稿にまとめてみる。
◆実験
用意した環境
Raspberry Pi4
言わずもがな、どこにでも転がっているARM Quad core Cortex-A72のLinux SBC。今回は8Gメモリーモデルを用意。OSは標準の64bit版Raspberry Pi OS。LattePanda Sigma
十数年前新星のごとくIndustrialっぽいホビー用途という謎のカテゴリー用に出てきたLattePanda SBCシリーズの最新作。Intel® Core™ i5-1340Pを乗せていてかなりのハイパフォーマンスなのに初代から一貫して標準でArduinoがSBCに直接のっているのでセンサー等の拡張性抜群。発売前に予約したため16Gメモリーモデル。(32Gメモリーモデルが発売後に後出しで出てきたので悲しい思いをしました。。。)OSはWindows11。
GPD Win4(2023)
UMPC界の超巨匠とも言うべきGPDによるAMD Zen4を搭載した最新シリーズの一つ。まるでVAIO UX50のような機構といまだに(PS4のリモートプレイ用等のために)熱狂的なファンがいるPlayStation VITAのような見た目にAMD Ryzen7 7840Uと64Gのメモリー、そして4TBのストレージを乗せたモンスター。PCIeで外付けGPUを繋ぐことが出来るOCuLink対応。同時発売で世界初OCuLink対応外付けGPUもあるが今回はポータブルを目指すので未使用。OSはWindows11。(番外編)iPad Mini5
今年になってUVC(USB video device class)に対応したのでどこまで使えるか試してみた。
実際の実験はT1に前回作成したカメラマウントを取り付け、Amazon.comで見つけた軽そうな4K対応USB WebCAMを専用マウントを作成してT1のカメラマウントに取り付けた。
実験内容
実際の実験は主に2つの内容を実施した。
カメラ画像を直接グラスに表示して日常生活を送る上での実用に耐えるか検証
画像認識、マーカーによる視覚情報拡張の例としてultralyticsを各環境にインストールし、実際にリアルタイムで物体検出をした際使い物になるフレームレートが出るかパラメーターを変えながら検証
Raspberry Pi4
残念ながらRaspberry PiシリーズはUSB C AltによるDisplayPortに対応していないのでHDMIアダプターを介して接続し、カメラをUSBへ接続してテストした。
カメラ画像表示テスト
VLCを使用しFullHD解像度で大きな問題になるほどの遅延は無く表示出来ることが確認できた。ultralyticsによるマーカーテスト
こちらの手順に従ってYOLOv5をインストールし検証を行った。
1080では残念ながら15fpsでも遅延がひどく使い物にならなかった。720pであればかろうじて15fpsなら軽いモデルは使えないことも無いかも知れない程度の遅延ではあったが依然一般的な通常の使用にはとても耐えられるパフォーマンスは出なかった。
LattePanda Sigma
接続は一番シンプルで、T1とは映像用のUSB CとUSB WebCAMのUSB Aのケーブル2本で接続して問題無く動作した。
映像のパススルーはOBS Studioを使用した。画質、遅延を含めたパフォーマンス共に良好で単眼のため立体感は無くなる物のつけたまま日常生活を送ることが問題無く出来る事が確認できた。
続いてultralyticsによるマーカーテストは公式のガイドに従ってpipと環境に合わせたPyTorch(Windows, CPU実行)をインストールして検証した。
こちらのテストではFullHD(1080P)でも30fps近く遅延もそこまで無く動作したものの、T1の画面のサイズから日常利用にはむしろ720P程度の解像度の方がほどよい情報量で快適(目が疲れにくい?)であることが判明した。必要なモデルをロードすれば十分実用に耐えうる、多用途に利用できる環境であることが確認できた。
GPD Win4(2023)
すでにGPD Win4(2023)よりスペックの低いLattePandaで実用に達してしまったのであくまでも動作確認の検証になってしまうが検証してみた。
なおGPS Win4シリーズは本体にUSB Cが2つしかないので、片方をT1への映像出力として使用し、もう片方にはUSB AからUSB Cへの変換を接続してUSB WebCAMを使用した。
映像のパススルーはLattePanda Sigma同様にOSB Studioで行いLattePanda Sigma同様実用上問題が無いことを確認した。
ultralyticsについても公式のガイド通りpip経由とPyTorchを入れて十分なパフォーマンスが出ていることが確認できた。
唯一難点として、T1はUSB C Altを使用しているためハブ等を介すことが出来ないので本体の上下どちらかのUSB Cに直に繋ぐ必要があるのだが、USB WebCAMを使用するためにはもう一つのUSB Cである上下の使っていない方のポートに変換を接続する必要があり、結果としてGPD Win4の上下から垂直にケーブルが出てしまい若干使い勝手が悪かったのが残念であった。
LattePanda Sigmaと違いGPD Win4にはバッテリーが内蔵されているため、この構成のみで外でも2時間程度フルでObject Detection等出来る事は上記のケーブルが上下に出ている不利があっても依然最高な環境の一つと思える構成だと思われる。
(番外編)iPad Mini5
本当なら今回の検証はiPadかiPhone単体で可能な検証をメインに行いたかったのだが、残念ながらUVCへの対応からまだ時間がそんなに経っていないため対応アプリが少なくultralyticsを含めたマーカーテストが実施できなかったため番外編とした。
iPad Mini5にはUSB Cのポートが一つしか無く、またUSB C Altはハブを介してそのまま使用できないため、USB CにHDMI出力付きのUSB Hubを接続し、Lenovo T1へはHDMIアダプター経由で、USB WebCAMはUSB Hubのポートへ接続して使用した。
動画のパススルーには標準のカメラアプリを使用しFacetimeを起動してT1へ表示してみた。画質、遅延共に良好で可能性を感じさせるパフォーマンスであった。
◆まとめ
今回作成したカメラマウントとT1ならびにLattePanda SigmaかGPD Win4を使用すれば下記の様な応用例の可能性が見えてきた。
画像認識による自動識別とT1へのマーカー重ね合わせ表示による視覚情報の拡張
例えば人の顔を覚えることが苦手であったり、普段から見分けがつきにくい対象を見分ける必要があるような環境で、知り合いの顔を登録した機械学習モデル等を用意することにより実際に自分の見ている視野に重ね合わせて識別したマーカーを表示出来る。全自動四つ葉のクローバーマーキング(これがいちばんやりたい!!)
先行研究にてドローン等を使用した四つ葉のクローバー自動検出や、MS Hololensを使用した実装例があるものの処理速度や本体サイズから実用とは少しほど遠かった。今回の実験で検証した環境は十分な処理速度を持っているため、ドローンでの実装例にある速度に近い実用的パフォーマンスで四つ葉のクローバーの自動検出が出来る事が期待できる。
ぜひ大量の四つ葉のクローバーを収穫して幸せになれるか検証してみたかった。
なお、今回残念ながら番外編となってしまったiPad Mini5だが、本体内蔵カメラを使用すればiPhoneやiPadが依然一番簡単に上記の例をBalkyな端末をかざすタイプのARで体験できるのでぜひお試しいただきたい。