うめ研究生のVR開発記

ViveProEyeをUnityで開発したい大学院生です('ω')公式VIVEアンバサダー1期生

ブログ移住のお知らせ【Focus3】

お久しぶりです。

 

かくかくしかじかで、今後のブログ更新は以下で行います~。
こちらも無期限で開けたままにしておきますのでご心配なく。

umehashi.blogspot.com

 

第一回はFocus3のアイトラッカーの不具合について語ってたりします。
ViveProEye含め色んなデバイスの話を書く予定です。


移住先でもどうぞよしなに。

AzureKinectのBodytrackingSDKが最近のPCについていけてない件

備忘録なので、簡潔に。

 

私の開発しているAzureKinectを使ったシステムは、

開発環境がWindows10世代のDellのゲーミングノート、RTX2080と3070の2台。

 

これまで導入いただいた病院・施設に採用していたのも

Windows10のMSIのゲーミングノート。RTX3060

 

この度、展示・デモ対応用にNewPCを迎えるにあたり、MSIの同機種を手配しようとしたところ、いつのまにか次世代機のみに。

 

無駄にメモリが増えたWindows11のゲーミングノート、RTX3060

型番や見た目的に、これまでのPCの正統な後継機

「まぁ、性能的には上位互換だからいいよね」

 

「BodyTrackingが動かねえええええええええ」

作ったシステムがというか、公式が配布しているBodytrackingViewerもダメ。

 

ただ、AzureKinect Viewerは動く。

 

つまりグラボの問題?

しかしグラボの型番は同じ....

「もしや昔のこれか?」

【Azure Kinect】C#でBody Tracking SDK v1.1.0を使うための手順と隠されたトラップについて - うめ研究生のVR開発記

【当時のあらすじ】

原因を考えた結果、以前、グラボのファームウェアなんて最新が一番だろとか思ってアップグレードして撃沈した経験がフラッシュバック。

 

確認のためバージョンを見てみると

PCのグラボ最新すぎるだろ(おとわっか)

 

【以下数行は茶番】

・前回使ったドライバあるしこれで471.5にダウングレードしてみるか

⇒再起動かけたら、windows立ち上がらなくなったわ

⇒復元で蘇生

⇒あ、ドライバwindows10用じゃん。11対応のやつじゃないからか

互換性問題には気を付けよう

 

※注意

NVIDIAが公開している過去のドライバには限りがある

いつ消されるかもわからないので、必要になる可能性があれば今のうちにダウンロードしておくのを勧めます

www.nvidia.co.jp
今回の教訓

新品のPCとKinect買ってもBodyTrackingがサラッと動いてくれないこともある。

SDKは1.1.2から更新される雰囲気今のところなし。

Confidencial Levelが正式実装される前にKinectの後継機とか出るんじゃないだろうな(予言)

【HTC開発者交流会】VIVE Pro Eyeで視線ヒートマップを描くチュートリアル-後編-【バーチャルライフマガジン】

明けましておめでとうございます…

光陰矢の如く、いつの間にか1か月経っておりました。コワイ(..)

この1か月の間に、VR技術者試験の結果が出まして、無事合格しました。

晴れて日本バーチャルリアリティ学会認定 バーチャルリアリティ技術者です('ω')

 

今回は前の記事の続きと、一緒に使える心拍・脳波等センサについて書いていきます。

 

『バーチャルライフマガジン 2月号』にて、私のバーチャル学会に出したポスターが掲載されました。VR会場に行かなくても見れるのでここの読者に優しい…。

無料で閲覧できますのでご興味あれば他の記事のついでに見てやってくださいませ。

vr-lifemagazine.com

 

視線ヒートマップを今度こそ描きます

前回↓

umehashi.hatenablog.com

 

Unitychan(© Unity Technologies Japan/UCL)です。少しの間、眺めてから読み進めてください。 

f:id:umehashi:20220124163607p:plain

 

参考: UnityのPlane上に注視点ヒートマップを作る - Qiita

f:id:umehashi:20220124165656p:plain

↓いつもどおりSteamVRをインストールしています。

f:id:umehashi:20220124165817p:plain

↓SRanilpal_SDKをVIVE公式から貰ってきます。

f:id:umehashi:20220124165826p:plain

↓Assetの中からSRanipal_Eye_Fremeworkをシーンに入れます。

f:id:umehashi:20220124165843p:plain

↓先ほどのリンクからshaderとスクリプトをお借りいたします。Materialも一つ作成。

f:id:umehashi:20220124165906p:plain

↓Planeを適当に作って、立てておきます。さっきのMaterialを適用。

f:id:umehashi:20220124165927p:plain

↓そのPlaneのちょっとだけ後ろに同じサイズのPlaneを作って画像を貼り付けます。

f:id:umehashi:20220124165952p:plain

↓この時は実行時に分かりやすいからと球を置いたけれど、要らないね…。

f:id:umehashi:20220124170006p:plain

↓お借りしたプログラムの中にSRanipal_SDKの要素を軽く突っ込みます。シェーダも変化速度を少しいじりましたがここはお好みで。

f:id:umehashi:20220124170019p:plain

f:id:umehashi:20220124170055p:plain

 

f:id:umehashi:20220124170107p:plain

 

キャラクターのデザイン(目・口・服etc)やイラストの特徴的な点に対して、観察する際に比重が置かれていることが、視線データの可視化から分かりました。

交通系(運転,歩行)や絵画鑑賞、広告効果など応用範囲は幅広いでしょう。

 

メタバースがこのまま栄え、HMDにアイトラが標準搭載になったら、視線データを無断で収集して問題になる企業が出てくる未来もあったり…?

VR空間での視線データは、対面時のアバタ観察や非現実的なものへの視線配分、VR空間での商業などなど未知数かつ有用そうな分野ですからね。お宝が眠っていそうです。

 

視線と同時に、心拍(心電図)とか呼吸・皮膚電位・脳波を見れたらウソ発見器が作れそうですよね…。他にもVRで事故をシミュレーションしたときの交感神経を一緒に評価できたら近未来感あるなぁとか妄想したりしているんですが、誰かやられてたりしませんか…?

 

必要なセンサは、私がお世話になっている企業さんでHMDより安価で入手可能なので、ご興味あればぜひ…(突然のステマ

自分が使ってるのはBiTalino BITシリーズです。Unityでも動きます。

色々な大学・企業が導入されてますのでご安心ください。

www.creact.co.jp

今度はこのセンサの開発について、この企業さんのブログに書くかもです。

何卒よろしくお願いします。

【HTC開発者交流会】VIVEProEyeで視線ヒートマップを描くチュートリアル-前編-【バーチャル学会】

皆様、お久しぶりです。

もう年末ですね(;´・ω・)

前回の記事からネタになるイベントはあったのですが、報告ができておらず、

ここで①バーチャル学会2021②HTC開発者交流会の二つについて報告させてもらえればと思います。

 

バーチャル学会2021

バーチャル学会2020に引き続き、バーチャル学会2021にもポスター発表で出させていただいてました!

たくさんの方と、活発に意見交換ができて嬉しかったです。来てくださった方々ありがとうございました。

 

sites.google.com

概要としては、視覚に障害を持つ方のリハビリ訓練にHMD+アイトラッキングが使えるのでは。見ている領域(中心視)をリアルタイムでモザイクやグレートーンで加工してそれ以外(周辺視)に注意を向けるよう促そうという内容です。

VR技術(実用)のセッションにありますので、詳しい内容については要旨やVRChatからポスターを見ていただければと思います。

同じVIVEアンバサダー1期生のお二人が、配信中に来て下さったので、上記URLから私のがちがちに緊張した発表の様子も是非ご覧ください(o*。_。)o

 

HTC開発者交流会

2021年12月22日(水)にFutureTechHubにて

「HTC開発者交流会」というイベントの第3回が開かれまして今回のタイトルが「VIVEアンバサダー大集合!VRメタバースを語る会」でして、今回VIVEアンバサダーがオンライン・オフラインともに何名も参加されていました。

その中からスピーカとして、先ほどバーチャル学会の時と奇しくも同じ、おきゅたんbotさん、バーチャル美少女ねむさん、そして私がそれぞれ各テーマごとに、お話させていただきました('ω')

 

当日の様子は#HTC開発者交流会Twitterを覗いていただければと。

私のテーマは「アイトラッキングの可能性について」でした。

視線データの扱い方とProEye導入しようとしてもSDKがよく分からずという話が多いということで「まぁ月一ペースで自分にも質問来るし本社もそうなってるよなぁ」と思いつつ、まだブログに載せてない(見栄えのいい)チュートリアルを作ろうと新しく作りましたので共有させていただきます。

当日の発表資料の一部には論文から引用した画像を載せてたのですが、ここではご勘弁を。表紙と自己紹介スライドの次(3ページ目からどうぞ)

 

f:id:umehashi:20211229165102p:plain

・目の動きってデータとして取ることにどんな意味があるのか?

・好みに関する無意識や心理、技術の熟練度を反映しうる振る舞いをするよというお話です。

 

f:id:umehashi:20211229165443p:plain

・ここは皆さん既にブログを読んでいる方にはおなじみですね。

 

字数が字数なので2部構成にしようと思います。いったんここで失礼します(o_ _)o)

【Azure Kinect】C#でBody Tracking SDK v1.1.0を使うための手順と隠されたトラップについて

はじめに

ご無沙汰しております<(_ _)>

更新が滞っている中でも、毎月Twitterの方にご相談のDMを戴けております。

その度にVIVEProEyeの時代はまだ終わってないんだなと感じます。

Pro2が出てもProEye2が出ないの寂しくなんかないんだからねっ....(;_:)

 

皆さんから寄せられた相談内容は、このブログで不足している点であると思いますので、それをまとめたものを一度書き留めようと考えております。

(VIVE アンバサダーとしては公式チュートリアルを本格的に作ってみようとも思っていますが、それはまた別の機会に。年内目標でお願いします)

 

今回は別件の備忘録ですゴメンナサイ。
Qiitaに投稿しようとして書き方が分からずだったので、ここに書いている次第です.

 

Azure KinectとBodyTracking

最近Azure KinectのBodyTrackingを用いた開発に携わっているのですが、連続でストレスフルな出来事に見舞われました…。後続の皆様の胃の安寧のため、事の顛末を書き留めておきます。

目次

1. 異なるRTXseriesによるSDK互換性問題
2. RTX3000番台でのPC負荷高すぎる問題
3. NVIDIAのバージョン互換性問題
4. グラボの番号指定問題

 

話の背景としては,AzureKinectでヒトをリアルタイムで動作収録するシステムの開発をしてました(某社からリリース予定・リンク後日公開)

開発環境はC#(Visual Studio 2019,wpf)

AzureKinect

Microsoft発のKinectシリーズの新作。これまでXBOX用の拡張モーションセンサの位置づけでしたが、本製品はゲーミング以外の用途を想定されていて、ToF形式の赤外線depthからヒトの骨格モデルが推定できるようになっています。開発用に公開されているSDKは2種類(Sensor SDKとBodyTracking SDK)。Sensor SDKは画像やIMUの収録を担当(記事執筆時の最新v1.4.1)

BodyTracking SDK

AzureKienctのSDKの片割れ。SensorSDKという映像のキャプチャを担当するSDKからデータを受け取りGPUで骨格推定を行う。CPUでも推定は出来るがリアルタイムで撮ろうとすると、負荷が高いためか4.5fpsとかいうガバガバになるのでGPUの仕様が望ましい。最低スペックGTX1070でちゃんと30fps出るので敷居は低い。(記事更新時の最新1.1.0)

1.異なるRTXseriesによるSDK互換性問題

私の開発環境:ゲーミングノート、RTX2070
昨年度スタートでSDK1.0.1を使っていました。

新規PCに移行しようとしたら、世間はRTX3000番台一色
同機種でRTX3070デビューし、動かそうとしたら…(応答なし)

 

なんでや工藤と思い、

公式(Azure Kinect Body Tracking SDK のダウンロード | Microsoft Docs)を久しぶりに見たら「Nugetには上げてないけどRTX3000対応のSDKを出したよ」とのこと。
Nugetに上げてくれないの…?どうして(現場猫

f:id:umehashi:20211022183055j:plain

・色々なGPUに対応した(1.1.0からCUDA,DirectDL,TensorTLなど推定方法を指定できるようになった)
・推定モデルを増やした(1.1.0からliteという最大5%精度落ちるが2倍軽いモデルが選べるようになった)
といった内容マシマシにより、容量デカすぎでNugetには上げられんとのこと。

k4abt_simple_3d_viewer source? · Issue #1562 · microsoft/Azure-Kinect-Sensor-SDK · GitHub

ということは

今現在、日本語かつC#でAzureKinectのBodytrackingのセットアップ手順を説明しているものはどれもNugetからバージョン1.0.1をインストールしています。
が、しかし3000番台の使い手は否が応でも、Nugetにないバージョン1.1.0を使わなければならないのである。

自分が動作可能にするまでに行った手順は以下の通り。

①NugetからSensor SDKはインストールする。
②BodyTracking SDK 1.1.0.msiを公式からインストールする。
③OS>Program FIles>Azure Kinect Body Tracking SDK>toolsの中身を、自分が開発しているアプリケーションのbin>Debug/Releaseフォルダへコピー

④自分のプロジェクトフォルダのどこかに、Azure Kinect Body Tracking SDK>sdk>netstandard2.0>releaseから、Microsoft.Azure.Kinect.BodyTracking.dllをコピペしてくる。⇒VisualStudioのソリューションエクスプローラの参照を右クリック、参照を追加からコピペしてきたdllを追加

 

①は他サイトの紹介と同じ方法(参考: C#で始めるAzure Kinect開発:目次 - tks_yoshinagaの日記)

②は上にも貼ったここから(Azure Kinect Body Tracking SDK のダウンロード | Microsoft Docs)

2.RTX3000番台でのPC負荷高すぎる問題

これで動くようになったはずです…が

私のおニューのノートパソコン16GB,RTX3070の結構なつよつよなのに

CPU負荷タスクマネージャーで90%超えてますが!?

しかも正常30fpsのはずが23-24Hzくらいなんだが?

…見つけました

body track v1.1.0 with DirectML -- slower than v1.1.0 CUDA and v1.0.1 GPU · Issue #1546 · microsoft/Azure-Kinect-Sensor-SDK · GitHub

f:id:umehashi:20211022185820p:plain

f:id:umehashi:20211022185833p:plain

 

よくわかりませんが、SDKの不備?でCPUに戻す処理が入ってるとかでこんなことになっている様子。素直にオイオイオイ、ちょっとまってよと。

 

仕方なくv1.1.0から実装された推定lite版に変えてみると負荷も軽く30fps出ました。

足首が近いと誤推定起きる可能性ありますが、自分の場合30fpsの方が大事だったのでこちらに切り替えました。

※これをトラッカー設定の時に以下を加筆します。

『trackerConfig.ModelPath = "dnn_model_2_0_liteop11.onnx";』

3.NVIDIAのバージョン互換性問題

どうやったら動くかを試行錯誤してた時に、偶然見つけたエラーです。

ドキュメントページに、こんな記載があったのでNVIDIAドライバーを更新したんです。

f:id:umehashi:20211022190920p:plain

そしたら、最新版だと逆に動かなくなりました。本当にありがとうございました。

471.35では動きました(報告)

4.グラボの番号指定問題

これはすぐ気づいた自分に感動したので書きたかっただけです(傲慢)

これは、作ったexeを配布するために、更に別PCに移動させたときの出来事…

 

なんか激重...?CPUモードよりも重いぞ....?

タスクマネージャー確認⇒>>>GPUがディスプレイ用の方使ってた<<<

 

(参考)

f:id:umehashi:20211025153546p:plain

 

SDK1.1.0からGPUIdを選べるのですが、

trackerConfig.GpuDeviceId = 0; としたとき

ALIENWAREでは、GPU1のGeforceを使っていたのですが

配布を想定したMSIではGPU0のUHD Graphicsを使いやがったんですねこれが()

 

ということで、MSIでは公式サンプルのBodytrackingViewerも激重になります...

配布を想定した開発するならUIから指定できるようにした方がいいかもしれませんね。

さいごに

Kinectの在庫切れが続いていて代理店も入り次第出荷になっている様子

Realsenseの先行きが分からないのも相乗して需要増なんでしょうか?

UnityでもKinect使って今度何かやってみたいなぁ(AssetStoreのサンプル、完成度高すぎて中身全然読めないのが難点)

 

本記事で不明な点はコメントかTwitterDMまでどうぞ

視線追跡した結果ログをcsvで書き出して保存する

 

皆さん、こんにちは。

コロナによるバイト休業&博士進学の可能性upにつき、財政面が不安な私です()

 

前回の更新が5月10日ってマジ?

って感じで時の流れの速さにビビっております。

 

Viveアンバサダーになってから1か月が過ぎまして、その経過でも。

以前より本ブログを読んでくださっていた開発者の方々を中心に、Discordでコミュニティを作らせて頂きました。

 

先日は、これから導入される方に向けてグループ通話も開催いたしました。

ViveProEye、Droolon f1の話からVive機器のシステムの話まで、皆さん博識でとてもタメになる2時間でした<(_ _)>

 

SR_anipal_SDKをお使いの方、ViveProEye、Droolon導入を検討されている方は是非お気軽にご参加ください!

discord.gg

リンクが恐らく1日で切れてしまうと思いますので、その場合はお手数ですがTwitterの方へメッセージ頂ければお送りいたします(o_ _)o))ペコリ

https://twitter.com/ume_study

 

CSV書き出しの話

 

今回は視線追跡というよりも、Unityの話です。

「視線追跡が出来るようになった!」「で、結果見るときはどうするの」

ってフェーズで自分も去年詰まったので共有しようと思います。

 

良く分からなかったら「StreamWriter」でググってください()

 

では作っていきましょう。

・・・

出来上がったものがこちらになります(雑)

https://github.com/ume-study/ViveProEye/blob/master/UmeCSV

f:id:umehashi:20200627142213p:plain

 

とりあえず視線とオブジェクトの接触判定ごとにログが書き出されるようにしました。

 

見ている位置と、その時間のログです。

他にも頭部位置などを加えたければ、s1とstrを横に伸ばしていけばおkです。

計測終了時にはFキーを押す仕様にしてます。

 

自分のコードから切り出して即席でまとめたので…動かなければご一報願います(バカ)

 

どうぞよしなに

 

アバターそろそろ見繕わないと、Vtuberさんの集まるアンバサダーのなかで唯一最後までデフォルトアバターだぞ自分…

 

f:id:umehashi:20200627143726p:plain

f:id:umehashi:20200510161304j:plain

 

公式VIVEアンバサダーに認定頂きました

こんにちは。未だ自粛ムードですが開発者の皆様いかがお過ごしでしょうか。

 

私は博士後期も考え、就活をしつつ研究費申請も書いているところです(:_;)

どこか受け入れてくれませんか|д゚)<vive japanとか…

 

www.vive.com

 

唐突ですがタイトル通り、

この度『公式VIVEアンバサダー』に選んでいただけました!

 

本ブログにてViveProEyeについて書き始めて早10か月

 

ネット検索で常に上位に出ること(同機種の開発記事がほぼないだけ)(キーワード次第で公式より上という栄誉)も重なり、様々な研究領域の開発者の方々に閲覧いただけていること、嬉しく思っています(*‘ω‘ *)

 

 筆者(私)が認定いただいたこともあり、本ブログの立ち位置も含め所信表明みたいなものを以下に書き留めようと思います。

【真面目ゾーン】

拝啓、読んで下さっている開発者・研究者の皆様

開発は順調ですか…?

Unityでの開発、ViveProEye導入されている方から、詰まったときに調べても解決策が出てこない、開発者向けの情報が充実していないという意見は少なくありません。私自身、SDKの説明が不足気味だと感じていました。またユーザーがまだ多くないということも体感的に理解しており、私自身コンタクトがある度、開発仲間だ!見つけてくれてありがとう!と嬉しく思いながら拝読させていただいています。

 

本ブログの開設以来、コメントやTwitterにて開発について多くのご質問をお寄せいただきました。共有いただいた、開発に当たって不足している情報を参考に更新してきました。新規に導入された方々の問題解決に繋げられていたら幸いです。今後も、ここをViveProEyeを導入される皆様の開発の一歩目になるような場所にしていきたいと思っております。個人的にはその後、2歩目3歩目の情報を充実させていきたいと強く考えています。

現在、ViveProEye開発者間でのノウハウ・情報の共有が不足している状況を鑑み、VIVE公式からご後援・ご助力を頂くのが最も良いと考え、ViveProEye開発者の一員として、本アンバサダープログラムに参加させていただきました。

本プログラムで得られた開発についてのノウハウ・新規情報に関しましては余さず、このブログを見ていただいている開発者の皆様と共有したいと考えています。

 

開発者フォーラムや本ブログで不明な点がありましたら、今まで同様、コメント or TwitterDM等で気軽にご連絡ください。

自分が解決できないことでも、アンバサダーとして公式に質問を直接投げようと思っていますので、これまで以上のサポートが出来ると思います('ω')

 

 

引き続き(領域を問わず)研究開発にもご協力させていただきます。連絡は気軽にDMまでお願いします。 

またこれを機に、自分の分野である眼科学・脳科学の観点からVRを語る記事も作ろうと考えています。ご自身の研究領域での取り組みも皆に紹介したいと思われる方、ぜひご連絡ください。

twitter.com

【あとがき・私的雑記ゾーン】

公式VIVEアンバサダーって、他に何名いらっしゃるんでしょうね…?募集は5~10名とかだったような(・o・)倍率どんなんだったんだろ

※認定して頂いてから時々エゴサしてるけど見つからなくて心細い

アンバサダーの皆での集まりがVR上であるそうなので、一人ってことはないよね。

集まりに行くための、オリジナルのアバターがないよ…どうしよ(;_:)

 

ちなみに募集要項はVtuberなどの配信者と開発者の大きく分けて2パターンで自分は後者。知り合いのViveProEye開発者の方もいらっしゃったりしないかなと淡い期待をしてみたり。

【追記2020/05/13】

なんか恐れ多い方々しかいなかったです…

まだ公表されていない方もいらっしゃるので,後々お知らせいたします。

 

公式アンバサダー認定の特典で

VIVEPORTインフィニティ2か月分と機器レンタル60日の権利も頂けました。とりあえず進路を何とかしてからになるかな(;O;)誰か雇用して

VRゲームは…開発解説動画のために買ったボイスロイドで実況とか作る…?

機器レンタルではリップトラッカーとモーショントラッカーを試す予定です。これもドキュメント少なそう…

あと、これは公式には秘密なんですが、アンバサダー認定が2か月間ってことを認定メールで知りました…短い命です…今のうちに質問どんどん投げてきて…

【追記2020/05/13】

PR活動参加が2か月なだけで、その後もアンバサダー認定は継続するそうです('ω')ヤッタァ

申し込みサイトに「次回募集は追ってお知らせ」とあるので今後もあるかもしれませんね

 

アイトラッカー付きVRってVtuberだけじゃなく、ゲームの要素の1つ(にらめっことか)、技術トレーニングみたいな教育、目を引く広告、反応を調べる心理学、脳波と併せて医療…将来的に使い道が無限に広がっていく組み合わせだと思うんですよね 。できる事なら今後とも携わっていきたいですね。進路次第なんですが(n回)(しつこい)

 

お楽しみ袋みたいのが今月下旬に来るらしいので楽しみです!(こういうの好き)

 

www.vive.com

f:id:umehashi:20200510161304j:plain