セマンティック
セマンティック セグメンテーションとは、画像内の特定の領域にラベルを割り当てる処理です。 環境をより豊かに理解することで、さまざまな創造的なAR機能が可能になる。 例えば、ARペットが 地面を識別して走ったり、AR惑星が空を埋め尽くしたり、現実世界の地面がAR溶岩に変わったりすることができます!
変更点
ARDK 3は、新しいXRSemanticsSubsystemクラスを通して、このユニークな機能を提供します。 ARSemanticSegmentationManager は、このサブシステムのデータを MonoBehaviour として利用可能にし、サブシステムのライフサイクルを管理します。 ARDKでは、これらのクラスを通じて、次の2つの形式でセマンティック予測を行うことができます。
- "packed semantic channels "と呼ばれる、ビューポート内の各ピクセルの符号なし整数のバッファ。 各整数の32ビットはセマンティックチャンネルに対応しており、そのチャンネルに属するオブジェクトがピクセルに存在する場合は有効(値が1)、存在しない場合は無効(値が0)になります。 1つのピクセルに複数のラベル(例:
ground
とnatural_ground
)を含めることができます。
- セマンティックチャンネルごとに、ビューポート内の各ピクセルに対応する正規化(0~1の間)の浮動小数点値のバッファがあります。 これらの浮動小数点値は、そのピクセルが指定されたセマンティック チャンネルとして分類される確率を示します。
Unityシーンへの統合
デフォルトでは、 ARSemanticSegmentationManager
はシンプルで、Inspectorウィンドウにはフレームレート設定のパラメーターが1つだけ公開されています。
ARSemanticSegmentationManager
そのものは複雑ではありませんが、Lightshipの他のコンポーネントの機能の中には、シーン内にこのコンポーネントが存在し、かつアクティブであることが必要なものがあります。 たとえば、次のようなものがあります。
- LightshipOcclusionExtensionにおけるオクルージョン抑制
- LightshipMeshingExtensionにおけるメッシュ・フィルタリング
利用可能なセマンティック・チャンネル
現在利用可能なセマンティックチャンネルを以下のテーブルに示します。 新しいバージョンのARDKでは、このリストのチャンネルの順序が変更される可能性があるため、アプリではインデックス値ではなくチャンネル名を使用 することをお勧めします。 実行時に名前を確認するには、XRSemanticsSubsystem.TryGetChannelNames メソッドまたは ARSemanticSegmentationManager.ChannelNames プロパティを使用します。
チャンネル名はニューラルネットワークモデルから読み込まれるため、セマンティックサブシステムの起動時にモデルの初期化が行われ、チャンネル名が利用可能になるまでにわずかな遅延が生じることがあります。 この遅延は、モデルを事前にダウンロードすることで軽減できます。 詳細については、ニューラル・ネットワークモデルのプリロードを参照してください。
クリックしてセマンティック・チャンネルのテーブルを展開
インデックス | チャンネル名 | 説明 |
---|---|---|
[0] | sky | 雲を含みます。 霧は含まれません。 |
[1] | ground | natural_ground および artificial_ground のすべてを含む。 natural_ground(天然)かartificial_ground(人工)か曖昧な場合は、この2つの組み合わせよりもGround が適している場合があります。 |
[2] | natural_ground | 土や草、砂、泥、その他の有機地面や自然地面を含みます。 草木が生い茂る地面では、 foliage として検出されることがあります。 |
[3] | artificial_ground | 道路や歩道、トラック、カーペット、ラグ、フローリング、小道、砂利、一部の競技場などを含みます。 |
[4] | water | 川、海、池、湖、プール、滝、一部の水たまりを含みます。 飲料水、コップ、ボウル、流し台、風呂の水は含まれません。 反射の強い水は、水としてではなく、反射の中にあるものとして検出されることがあります。 |
[5] | person | 身体の部位や髪、着用している服などを含みます。 アクセサリーや携帯品は含まれません。 個人は特定されません。 マネキンや玩具、彫像、絵画など、人物を表現するその他の芸術作品は「人物」とはみなされませんが、検出されることがあります。 人物の写実的な画像が「人物」として検出される場合があります。 人物が画像に部分的に写っていたり、しゃがんだり腕を大きく広げたりするなど、通常とは異なる姿勢をとっていたりすると、モデルのパフォーマンスが低下することがあります。 |
[6] | building | 近代的なものから伝統的なものまで、また住宅や商業施設を含みます。 壁と同義ではありません。 |
[7] | foliage | 潅木、低木、木の葉の部分や幹、鉢植え、花を含みます。 |
[8] | grass | 芝生などの草地。背の高い草などは対象外です。 |
実験的セマンティック・チャンネル
Lightshipは実験的なセマンティック・チャンネルも提供しています。 これらのチャネルは実験的なものであるため、精度の改善が必要な場合があります。これらのチャネルに問題がある場合は、 Lightship Developer Communityにフィードバックをお寄せください。
実験的な機能は、本番レベルのアプリケーションで使用することは推奨されません!
クリックして実験チャンネルを拡大
インデックス | チャンネル名 | 説明 |
---|---|---|
[9] | flower_experimental | 色鮮やかな花びらを持ち、花粉を放出する植物の部分。 緑の部分(茎や葉)は含まれません。 |
[10] | tree_trunk_experimental | 葉の生い茂る樹冠や枝と根をつなぐ部分。 葉、枝、花や、加工または切断された木材(丸太)は含まれません。 |
[11] | pet_experimental | 犬と猫のみ。 犬や猫のぬいぐるみには対応していません。 |
[12] | sand_experimental | 細かく砕かれた岩石や鉱物の粒子。 砂にはさまざまな組成がありますが、 粒度の小ささによって定義されます。 床や地面にある砂や砂利の表面、濡れた砂、砂の城や砂絵など、あらゆる種類の表面が含まれますが、 土は含まれません。 |
[13] | tv_experimental | デジタル機器の画面部分。 電源がオンの画面とオフの画面のいずれも含まれますが、 画面周囲のフレーム(「ベゼル」)やスタンドは含まれません。 |
[14] | dirt_experimental | 地表を覆う泥やほこりを含みます。 砂と大きく重なる場合があります。 未舗装の道路も含まれます。 |
[15] | vehicle_experimental | 自動車を構成するすべての部品を含み、 すべての車種やトラックに対応します。 オートバイや自転車、人力車、馬車、トゥクトゥク、電車/トラム、ボート/船、飛行機/ヘリコプター/ホバークラフトにも対応する予定です(ただし、精度は異なる場合があります)。 |
[16] | food_experimental | 人間が「飲み物」ではなく「食べ物」として摂取できるもの。塩やこしょう、食べ物や食材が入っている可能性のある箱や梱包物も含まれます。 生きている動物やペットフード、料理が乗っている皿は含まれません。 |
[17] | loungeable_experimental | 座ることを目的としたすべてのオブジェクト。 ベッド(脚や土台を含む)や、椅子やソファーの脚や土台が含まれます。 ただし、ペット用ベッドやブランケット、椅子やソファーの空いたスペースや隙間は含まれません。 |
[18] | snow_experimental | 大気中の水蒸気が凍って氷の結晶になり、軽く白いフレーク状として降るか、白い層 となって地面を覆うもの。 きれいな雪と汚れた雪があります。 氷山やつらら、氷/雪の彫刻、イグルー(ドーム状の家や建物)や雪の家も含まれます。 飲み物の中の氷、空に舞う雪は含まれません。 |