見出し画像

Appleの「RoomPlan」をわかりやすくまとめてみた (1/2回)

こんにちは!ANDPAD ZEROの藤田です。
突然ですが、みなさんはこういうスキャンアプリを見たことがありますでしょうか?

Apple Developperサイトより

見たことがある方はもちろん、初めてのかたにとっても、「内見で使えそう?」「家電をピッタリ設置したいときに使えそう?」といったイメージを持てるのではないでしょうか。
上記の写真は、昨年の6月に開催されたAppleのWWDC2022というイベントで発表された「RoomPlan」というiOS機能のデモ動画を切り取った写真です。私もこのAppleのイベントでこの機能を知り、今後建築業界や住宅業界で多く使われるのでは…!とわくわくした覚えがあります。

これから2回にわたって、建築業界での活用が期待される「RoomPlan」について取り上げ、ご紹介していきたいと思います。
初回である今回はAppleの発表公式ドキュメントなどをもとに、「RoomPlan」がそもそもどういった機能・特徴を持つのかについてまとめてみたいと思います。なるべくエンジニア以外の方にもわかりやすくなるよう記載いたしますので、多くの方に読んでいただければ嬉しいです。
次回は、デモアプリを使って実際にどういったスキャンができるか検証をしていきたいと思いますので、そちらもご期待ください!


そもそもRoomPlanって?

「RoomPlan」は、機械学習機能を備えた3Dスキャン機能です。特に、室内のスキャンに特化した機能として紹介されています。
この「RoomPlan」を用いて室内をスキャンすると、部屋の各パーツ(壁、窓、ドアなど)や家具(ソファ、テーブル、ベッドなど)、電化製品(冷蔵庫など)を自動で検出し、部屋の3Dモデルを簡単に生成することができる機能となっています。

実際に、AppleはWWDC2022にて下記の用途を例としてあげています。

この用途紹介からわかるように、やはり室内のスキャンに特化しているため不動産業で非常に力を発揮しそうです。

「RoomPlan」では、機械学習を用いて部屋のパーツや家具等を識別できるのですが、具体的にどういったものを識別することができるのかについても少しご紹介したいと思います。
(少しテック寄りの話になりますが、こうした機能の詳細については、「開発ドキュメント」という資料に書いてあるのが一般的です。今回も、「RoomPlan」の開発ドキュメントを見ながら検出できる情報について整理していこうと思います。)

検出した部屋の情報はまず、「CapturedRoom」というオブジェクトとして検出されます。
このオブジェクトの中に、様々な検出情報が格納されているのですが、検出されたオブジェクトにはそれぞれ「カテゴリ」が付与されます。
「カテゴリ」には、

  • 部屋のパーツに関するもの

  • 家具や家電に関するもの

などがあります。
例えば、部屋のパーツに関するのは、例えば、下記のようなものです。

  • ドア(開閉状態も検出可能)

  • 開口部

家具や家電に関するものは、下記のようなものが検出されます。

  • 机/ソファ/椅子/テレビ

  • 階段/収納

  • ベッド/洗濯機/乾燥機

  • オーブン/冷蔵庫/シンク/食洗機

  • バスタブ/トイレ

  • ストーブ/暖炉

さらに、検出した情報を元に今スキャンしている部屋が何の部屋かについても識別できるようです。

  • お風呂

  • ベッドルーム

  • ダイニングルーム

  • キッチン

  • リビングルーム

  • それ以外の部屋(識別できなかった部屋)

おおよそモデルルームにて配置されているような家具や電化製品は検出できるんじゃないかと思います。

また、従来は機械学習と言えばたくさんの学習データを用意し、それを学習させていく必要があることが多く、とてもコストがかかる開発でしたが、この「RoomPlan」では、標準仕様として学習済のモデルがAPIとして提供されており、とてもライトに開発を行うことができるという特徴もあります。

さらに、スキャン中のUXが優れていることも特徴です。
機械学習モデルより検出したオブジェクトに対して、スキャンできている箇所のフチを囲むように表示されるため、スキャンし終わった箇所がとてもわかりやすく確認できます。また、スキャンしてる最中にも、既にスキャンした部分についてはモデルが表示されるため、完成イメージも湧きやすいと感じました。

RoomPlanでのスキャン中のキャプチャ

スキャンした3Dモデルは、USDというファイル形式で出力することができます。この3Dモデルを利用して、部屋の寸法を測定したり、家具のアセットを仮配置してプレビューしたりすることができます。

推奨環境

さて、前項では「RoomPlan」の概要を紹介させていただきましたが、品質のいい3Dモデルをスキャンするためには環境についても相応に整える必要があります。
「RoomPlan」は、いわゆる一般的な家庭の建築物をメインターゲットにしています。具体的には部屋のサイズは最大 約 9m x 9mまでや、照明は最低50ルクス以上といった推奨条件があります。部屋のサイズについては、あまりにも大きいサイズのオブジェクトのスキャンはやはりデバイス負荷が大きいためこういった推奨条件となっていると考えられます。

しかし、一般的な6畳間が江戸間で2.6m x 3.5m、京間で2.8m x 3.8mほどになりますので、一般的な戸建ての部屋やアパートの一室をスキャンするには十分なサイズ条件になっていると思います。
また、照明の条件についても、「JIS Z 9110:2011 照明基準総則」の表17-住宅その1によると、車庫や非常階段、物置の基準値と同値となっております。
一般的な部屋であれば照明をONにすることで容易に回避できる条件のようです。

スキャンをするにあたっての留意点

「RoomPlan」は、iOS16以降のLiDARセンサー搭載のデバイス(iPhone12以降のProモデルのデバイス、またはiPad Pro(第二世代)以降のデバイス)で利用することができます。LiDARに起因する特徴が反映されるとも言えます。

「3Dスキャンについてわかりやすく整理してみる」の記事でも説明していますが、LiDARセンサーはレーザー光を照射し、オブジェクトからの光の反射を利用してスキャンを行います。そのため、光を吸収する黒いオブジェクトや、光を空かすガラス、また、光を鏡面反射させる鏡等はうまくスキャンすることができません。

また、iPhoneのLiDARセンサーの有効範囲は5mですので、それ以上の高さのものはうまくスキャンすることができませんし、頻繁にスキャンしたり、一度に5分を超えるようなスキャンはバッテリーの消耗やデバイスの温度の観点より、避けた方がいいようです。
(しかしながら、「RoomPlan」ではあくまで一般的な部屋のスキャンを推奨しているので、こういったデメリットはあまり考えなくてもいいかもしれませんね。)

開発者向けの話にはなりますが、「RoomPlan」ではエクスポート形式としてUSD形式しかサポートされていないため、それ以外のフォーマットで取り扱いたい場合は、別途、出力した3Dモデルをコンバートすることになりそうです。
Appleからも「Reality Converter」というUSD形式のファイルを一般的なgltfやobj形式のファイルにコンバートするツールが提供されておりますので、そちらを使うといいかもしれません。
*Macのみでご利用いただけます。
*ベータ版となりますのでご注意ください。

Reality Converter上の画面キャプチャ

最後に、「RoomPlan」でスキャンした3Dモデルにはカメラでキャプチャされた画像はテクスチャとして貼り付けられていないことも注意が必要です。
AppleがWWDC2022にて挙げた例として、壁等の色を変えてプレビューするというものがありましたが、カメラでキャプチャされた画像がテクスチャとして貼り付けられていないからこそできる機能であるとも感じました。


RoomPlanでのスキャンしたモデルのキャプチャ

最後に

いかがでしたでしょうか?
今回は、Appleの「RoomPlan」というスキャン機能について紹介させていただきました。

次回は実際にデモアプリを用意し、様々なものをスキャンしてみたいと思います。スキャン中に検出された壁やドア、ソファ等のオブジェクトがどういった扱いになっているか、また、部屋をまたいでスキャンするとどういった3Dモデルが生成されるのか、会社の執務室のような推奨の部屋サイズ(9m x 9m)を超えるような大きな部屋をスキャンしてみたらどうなるのか、私自身非常に楽しみです。

次回の記事をお楽しみください!

それでは今回はこの辺で、最後までお読みいただきありがとうございました!

この記事が気に入ったらサポートをしてみませんか?