編集履歴一覧に戻る
S1TAのアイコン画像

S1TA が 2025年01月27日15時47分42秒 に編集

コメント無し

本文の変更

# 0.はじめに はじめまして、Unity/XRエンジニアの高原と申します。 業務でUnityを使ってXR系のアプリ開発をしています。(最近はAppleVisionProで色々やってます。) 普段ハードウェア系の開発には携わっていないのですが、今回弊社でSPRESENSE™ 活用コンテストに参加するというお話を伺ったため、 Unity/XRエンジニアとしてコンテンツ開発に協力することになりました。 本記事ではコンテストに応募するために制作した「空間監視カメラ」について解説をしていこうと思います。 # 1.空間監視カメラとは?

-

[![空間監視カメラ](https://i.vimeocdn.com/video/1975286122-cc858760a35c178f524d87ec744fced679d5bea3bf9482299bc4fbb7cd82c774-d_200x150)](https://vimeo.com/1050641183)

+

[![空間監視カメラ](https://i.vimeocdn.com/video/1975286122-cc858760a35c178f524d87ec744fced679d5bea3bf9482299bc4fbb7cd82c774-d_200x150)](https://vimeo.com/1050641183 "空間監視カメラ")

空間監視カメラはSPRESENSE(Spresense HDRカメラボード)を活用し、通常は2Dでしか見られない監視カメラの映像を3D空間内の情報として確認することができる監視カメラVRビューワーアプリです。(Quest3スタンドアロンVRアプリ) 通常の監視カメラではカメラのある地点からの映像しか確認することができませんが、空間監視カメラは物理的なカメラの設置場所に関係なく、3D空間内の自由な視点から監視が可能となります。 仕組みとしては、まず監視対象となる空間をあらかじめ3Dスキャンして3Dモデルを作成します。 そしてSpresense HDRカメラボードのリアルタイムの監視映像から動体を検出し、3D空間上に反映します。 この時、動体の深度情報も計測することで3D空間内の適切な位置に配置することが可能となります。VRアプリとしているため、ユーザーは任意の視点から空間を自由に確認することが可能です。 また、今回ビューワーにカメラ映像を表示するだけでなく、画像を生成AIモデルであるClaude Sonnet 3.5に入力し、現在カメラに写っている映像について文章で説明する機能も実装しました。 ![現実の監視空間](https://camo.elchika.com/1e255c97a1cd7278b75456e8fb77af0b41ac9e7f/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f65323637633361362d383136612d343436342d613331312d3637653835616665373530362f61623863343263662d366133382d343132372d383439332d333964343736656532626166/) ![デジタルツイン監視空間](https://camo.elchika.com/7fdd427dd1e3b960108f36ca29aecff125368ef6/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f65323637633361362d383136612d343436342d613331312d3637653835616665373530362f61656530646163382d656564342d346238382d383362362d363266363439343665363739/) # 2.全体処理構成 ![キャプションを入力できます](https://camo.elchika.com/0d65c9b91b6b5ae568f1b45dc986105a19b68b18/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f65323637633361362d383136612d343436342d613331312d3637653835616665373530362f32366462653735362d646534312d343965612d623661392d396466353130633735373964/) # 3.カメラハードウェア側構成 ![キャプションを入力できます](https://camo.elchika.com/16793093cbe18305c0bb6e5f656cf7a1832f8715/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f65323637633361362d383136612d343436342d613331312d3637653835616665373530362f64386232333966652d323331662d343861332d616536302d383637356532616432326238/) ![キャプションを入力できます](https://camo.elchika.com/460615b0e7c6760f2a9b14b0908404ca8e18af99/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f65323637633361362d383136612d343436342d613331312d3637653835616665373530362f66306230646433382d653561372d346631642d623730382d353734373966313436656638/) 現実空間に配置したカメラに使用した部品は下記になります。 | 部品名 | 個数 | 役割 | | - | - | - | | SPRESENSEメインボード[CXD5602PWBMAIN1] | 1 | 制御用メインボード | | SPRESENSEカメラボード [CXD5602PWBCAM1] | 1 | カメラモジュール | | ToFセンサーボード(SPRESENSE用)(MM-S50MV) | 1 | 深度情報取得 | | SPRESENSE Wi-Fi Add-onボード iS110B | 1 | 画像、深度情報送信用 | | 筐体 | 1 | 3Dプリンタで作成 | | Raspberry Pi 4 | 1 | WEBサーバー用 | # 4.Unityソフトウェア側構成 VRアプリはUnity6000.0.23f1 URPで作成しています。 VR機能面はMeta XR Core SDKを利用しています。 ## シーン構成 シーン内にはあらかじめ3Dスキャンを行った空間モデルを配置しています。 かつ現実空間においてあるカメラ位置をVRアプリ内でも把握し、 動体画像の表示位置の指定に使っています。 ![キャプションを入力できます](https://camo.elchika.com/5311335ce9d08eb349a090dc96c2027e05aa938a/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f65323637633361362d383136612d343436342d613331312d3637653835616665373530362f37343665613137342d653932332d346131392d396133612d663135613063393734336334/) ## スクリプト詳細 ### VR操作機能 VRでの操作はシンプルにコントローラを使った移動と回転のみ実装しています。 ``` ``` # 5.おわりに