見出し画像

Niantic Lightship ARDK v1.2.0で追加された土、草、砂、泥などの自然の地面によるセマンティックセグメンテーションを検証してみる

今回は...

2022年2月2日にリリースされたNiantic Lightship ARDK v1.2.0に追加されたNatural Ground Semantic Channel の検証を行います。

Niantic Lightship ARDKとは?

『 Ingress 』、『 Pokémon GO 』、『Pikmin Bloom (ピクミン ブルーム)』などでも使用しているNiantic社が提供するARアプリケーション開発キットになります。マルチプレイヤー、深度、物理、オクルージョン、セマンティックセグメンテーションなどの機能が提供されています。

Niantic Lightship ARDK  v1.2.0 のリリースノート

Lightship ARDK v1.2.0では、いくつかのアップデートが行われました。以下では代表的なアップデート情報をリストにしました。

Unity 2020.3 LTS 正式サポート。(Unity 2019.4もサポート継続中。)
セマンティックセグメンテーションにNatural Groundが追加。
セマンティックセグメンテーションの葉、建物、草、水、地面の検出精度を5〜10%向上。深度推定精度は5〜20メートルで23%、20〜100メートルで36%向上。
MeshSaverでSaveMeshSequentially()を使用して、メッシュ情報の保存が行えるようになった。

Natural Ground Semantic Channel の検証

今回は、Unity 2020.3 LTSとNiantic Lightship ARDK v1.2.0を使ってセマンティックセグメンテーションのデモアプリを作り検証したいと思います。

デモアプリの作成方法は前回の以下の記事と同じものになります。

上記の記事はUnity 2019.4とNiantic Lightship ARDK v1.1.0を使用しています、今回は、Unity 2020.3 LTS と Niantic Lightship ARDK v1.2.0を使用します。

ビルド時の注意点(iOS)

今回、Location は使用しないですが、Location Usage Descriptionを空欄のままビルドするとエラーが発生するため、Location Usage Descriptionに何かしらのテキストを入れておく必要があります。(CameraはAR機能を使用するため、何かしらのテキストを入れておく必要があります。)

スクリーンショット 2022-02-22 23.35.43

Natural Ground の検証

1_地面_1_1_0

v1.1.0の場合、地面はgroundで検出されました。

1_地面_1_2_0

v1.2.0では、地面はgroundnatural_groundの2つ検出されます。


画像4

v1.1.0では雑草はfoliageで検出されました。

画像5

v1.2.0では、雑草はgroundnatural_ground、grassの3つ検出されます。(groundnatural_groundのみ検出されることもあります。)


Foliage の検証

v1.1.0は雑草や木など広範囲でFoliageで検出されていましたが、v.1.2.0で木の葉や木の上部に対してのみFoliageとして検出されました。

4_木_1_1_0

v.1.1.0では木もFoliageで検出。

4_木_1_2_0

v.1.2.0では木は該当しない仕様になったようです。(木の上部だとFoliageで検出されました。)

画像8

v1.1.0とv1.2.0、両方とも木の葉はFoliageで検出されます。

画像10

画像11

緑の多い場所ではFoliageで検出されます。

実装時の注意点

natural_ground は、インデックスが2に割り当てられました。v1.1.0でセマンティックセグメンテーションを使用したアプリケーションにおいて、インデックスで判定している場合、v1.2.0にバージョンアップすると検出結果がおかしくなります。

スクリーンショット 2022-02-23 12.59.06

まとめ

地面の検出の際、groundだけが検出されることは、ほとんどなくなりました。natural_ground または artificial_ground が含まれます。セマンティックセグメンテーションの使用上、groundが初めに返却される事が多いため、groundだけで判定を行わず、natural_ground または artificial_groundの判定も併せて行う必要があります。また、v1.1.0では雑草や木などもFoliageとして検出されましたが、v1.2.0ではnatural_groundgrassが検出され、木に関しては枝に近い場所でのみ検出されるようになりました。v1.1.0とv1.2.0では挙動が異なるため、バージョンアップの際には気を付ける必要があります。

最後に

Niantic Lightship ARDK のブログ記事

この記事以外にNiantic Lightship ARDKのブログ記事を投稿しています。

OnePlanet XR

OnePlanet XR はAR/MR技術に専門特化したコンサルティングサービスです。豊富な実績を元に、AR/MR技術を活用した新たな事業の立ち上げ支援や、社内業務のデジタル化/DX推進など、貴社の必要とするイノベーションを実現いたします。

ご相談から受け付けております。ご興味ございましたら弊社までお問い合わせください。

OnePlanet Tech Magazine

様々な技術記事を定期的に投稿しています。