(57)【要約】  本明細書に記述される主題の実装形態は、八分木に基づく畳み込みニューラルネットワークに関する。いくつかの実装形態において、３次元形状を処理するコンピュータ実装方法が提供される。本方法は、３次元形状を表すための八分木を取得することを含む。八分木のノードは、空ノード及び非空ノードを含む。空ノードは、３次元形状を含まず、且つ八分木の葉ノードであり、及び非空ノードは、３次元形状の少なくとも一部を含む。本方法は、畳み込みニューラルネットワークの畳み込み層に関連付けられた深さを有する八分木のノードについて、畳み込み層の出力を取得するために畳み込み層の畳み込み操作を実行することを更に含む。
2020518882.tif 000002
【特許請求の範囲】
【請求項１】
３次元形状を表すための八分木であって、前記八分木のノードは、空ノード及び非空ノードを含み、前記空ノードは、前記３次元形状を含まず、且つ前記八分木の葉ノードであり、及び前記非空ノードは、前記３次元形状の少なくとも一部を含む、八分木を保存するように構成されたメモリと、
前記メモリに結合され、且つ
前記３次元形状を表すための前記八分木を前記メモリから取得することと、
畳み込みニューラルネットワークの畳み込み層に関連付けられた深さを有する前記八分木のノードについて、前記畳み込み層の出力を取得するために前記畳み込み層の畳み込み操作を実行することと、
を含む動作を実行するように構成された処理装置と、
を含む装置。
【請求項２】
前記３次元形状を表すための前記八分木を取得することは、前記３次元形状の空間分割に基づいて、
前記八分木のノードのインデクス、
前記八分木のノードのラベルであって、前記ノードが空ノード又は非空ノードであるか否かを少なくとも示すラベル、
前記八分木のノードの形状データであって、前記ノード内の前記３次元形状の形状を少なくとも示す形状データ、及び
前記八分木の階層構造、
の少なくとも１つを取得することを含む、請求項１に記載の装置。
【請求項３】
前記３次元形状を表すための前記八分木を取得することは、
前記３次元形状を表すデータ信号を受信することと、
前記データ信号を受信することに応答して、前記３次元形状を表すための前記八分木を決定することと、
を含む、請求項１に記載の装置。
【請求項４】
前記畳み込み層の畳み込み操作を実行することは、
前記畳み込み層に関連付けられた前記深さを有する前記ノードから、同一の親ノードを有する８つのノードを決定することと、
前記八分木に基づいて前記８つのノードのノード近傍を決定することであって、前記ノード近傍は、前記８つのノードの少なくとも１つに隣接するノードを含む、決定することと、
前記ノード近傍に対して前記８つのノードの前記畳み込み層の前記操作を実行することと、
を含む、請求項１に記載の装置。
【請求項５】
前記畳み込みニューラルネットワークは、プーリング層を含み、前記動作は、
前記プーリング層に関連付けられた深さを有するノードから、同一の親ノードを有する８つのノードを決定することと、
前記８つのノードの形状データに対してダウンサンプリング操作を実行することと、
を更に含む、請求項１に記載の装置。
【請求項６】
前記畳み込みニューラルネットワークは、逆プーリング層を含み、及び前記動作は、
前記逆プーリング層に関連付けられた深さを有するノードから、同一の親ノードを有する８つのノードを決定することと、
前記８つのノードの形状データに対してアップサンプリング操作を実行することと、
を更に含む、請求項１に記載の装置。
【請求項７】
前記畳み込みニューラルネットワークは、逆畳み込み層を含み、及び前記動作は、
前記逆畳み込み層に関連付けられた深さを有するノードから、同一の親ノードを有する８つのノードを決定することと、
前記八分木に基づいて前記８つのノードのノード近傍を決定することであって、前記ノード近傍は、前記８つのノードの少なくとも１つに隣接するノードを含む、決定することと、
前記ノード近傍に対して、前記８つのノードの前記逆畳み込み層の操作を実行することと、
を更に含む、請求項１に記載の装置。
【請求項８】
前記インデクス、前記ラベル、前記形状データ及び前記階層構造の少なくとも１つは、連続ベクトルとして定義される、請求項２に記載の装置。
【請求項９】
グラフィック処理装置（ＧＰＵ）である、請求項１に記載の装置。
【請求項１０】
３次元形状を表すための八分木であって、前記八分木のノードは、空ノード及び非空ノードを含み、前記空ノードは、前記３次元形状を含まず、且つ前記八分木の葉ノードであり、及び前記非空ノードは、前記３次元形状の少なくとも一部を含む、八分木を取得することと、
畳み込みニューラルネットワークの畳み込み層に関連付けられた深さを有する前記八分木のノードについて、前記畳み込み層の出力を取得するために前記畳み込み層の畳み込み操作を実行することと、
を含むコンピュータ実装方法。
【請求項１１】
３次元形状を表すための八分木を取得することは、前記３次元形状の空間分割に基づいて、
前記八分木のノードのインデクス、
前記八分木のノードのラベルであって、前記ノードが空ノード又は非空ノードであるか否かを少なくとも示すラベル、
前記八分木のノードの形状データであって、前記ノード内の前記３次元形状の形状を少なくとも示す形状データ、及び
前記八分木の階層構造、
の少なくとも１つを取得することを含む、請求項１０に記載の方法。
【請求項１２】
３次元形状を表すための八分木を取得することは、
前記３次元形状を表すデータ信号を受信することと、
前記データ信号を受信することに応答して、前記３次元形状を表すための前記八分木を決定することと、
を含む、請求項１０に記載の方法。
【請求項１３】
前記畳み込み層の畳み込み操作を実行することは、
前記畳み込み層に関連付けられた前記深さを有する前記ノードから、同一の親ノードを有する８つのノードを決定することと、
前記八分木に基づいて前記８つのノードのノード近傍を決定することであって、前記ノード近傍は、前記８つのノードの少なくとも１つに隣接するノードを含む、決定することと、
前記ノード近傍に対して前記８つのノードの前記畳み込み層の操作を実行することと、
を含む、請求項１０に記載の方法。
【請求項１４】
コンピュータ可読媒体に有形的に保存された命令を含むコンピュータプログラム製品であって、前記命令は、機械によって実行された場合、前記機械に、
３次元形状を表すための八分木であって、前記八分木のノードは、空ノード及び非空ノードを含み、前記空ノードは、３次元形状を含まず、且つ前記八分木の葉ノードであり、及び前記非空ノードは、前記３次元形状の少なくとも一部を含む、八分木を取得することと、
畳み込みニューラルネットワークの畳み込み層に関連付けられた深さを有する前記八分木のノードについて、前記畳み込み層の出力を取得するために前記畳み込み層の畳み込み操作を実行することと、
を含む方法を実施させる、コンピュータプログラム製品。
【請求項１５】
３次元形状を表すための八分木を取得することは、前記３次元形状の空間分割に基づいて、
前記八分木のノードのインデクス、
前記八分木のノードのラベルであって、前記ノードが空ノード又は非空ノードであるか否かを少なくとも示すラベル、
前記八分木のノードの形状データであって、前記ノード内の前記３次元形状の形状を少なくとも示す形状データ、及び
前記八分木の階層構造、
の少なくとも１つを取得することを含む、請求項１４に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【背景技術】
【０００１】
背景
[0001]  近年、３Ｄ撮像装置及びモデリングツールの発展に伴い、３Ｄモデル及びシーンが質量共に急速に向上している。各種の３次元形状の特徴の識別及び解析は、多くの形状解析及び認識タスク、例えば形状分類、形状探索、形状分割等のタスクにおいて一層重要になる。
【発明の概要】
【発明が解決しようとする課題】
【０００２】
[0002]  現在、学術界及び産業界は、３次元形状を表し、且つ３次元形状に対する畳み込みニューラルネットワーク処理を実行するための解決策を提案している。しかし、これらの解決策は、一般に、膨大な記憶空間及び膨大な計算リソースを必要とする。
【課題を解決するための手段】
【０００３】
概要
[0003]  いくつかの実装形態において、３次元形状を表すための八分木を保存するように構成されたメモリを含む装置が提供される。八分木のノードは、空ノード及び非空ノードを含む。空ノードは、３次元形状を含まず、且つ八分木の葉ノードであり、及び非空ノードは、３次元形状の少なくとも一部を含む。本装置は、メモリに結合され、且つ３次元形状を表すための八分木をメモリから取得することと、畳み込みニューラルネットワークの畳み込み層に関連付けられた深さを有する八分木のノードについて、畳み込み層の出力を取得するために畳み込み層の畳み込み操作を実行することとを含む動作を実行ように構成された処理装置を更に含む。
【０００４】
[0004]  本概要は、以下の詳細な説明で詳述する概念の一覧を簡潔な形式で紹介するために提供される。本概要は、特許請求される主題の主な特徴又は本質的な特徴を識別することを意図されておらず、また特許請求される主題の範囲を限定するために用いられることも意図されていない。
【図面の簡単な説明】
【０００５】
図面の簡単な説明
【図１】[0005]本明細書に記述する主題の複数の実装形態を実装可能なコンピューティング環境のブロック図を概略的に示す。
【図２】[0006]本明細書に記述する主題の一実装形態による畳み込みニューラルネットワークの概略図を示す。
【図３】[0007]本明細書に記述する主題の一実装形態による畳み込みニューラルネットワークを表す四分木を概略的に示す。
【図４】[0008]本明細書に記述する主題の一実装形態による畳み込みニューラルネットワークを表す四分木を概略的に示す。
【図５】[0009]本明細書に記述する主題の一実装形態による畳み込みニューラルネットワークの畳み込み操作の概略図を示す。
【図６】[0010]本明細書に記述する主題の一実装形態による畳み込みニューラルネットワークのダウンサンプリングの概略図を示す。
【図７】[0011]本明細書に記述する主題の一実装形態による畳み込みニューラルネットワークのプーリング操作の概略図を示す。
【図８】[0012]本明細書に記述する主題の一実装形態による畳み込みニューラルネットワークの逆プーリング操作の概略図を示す。
【図９】[0013]本明細書に記述する主題の一実装形態による畳み込みニューラルネットワークを訓練又は適用する方法のフロー図を示す。
【発明を実施するための形態】
【０００６】
[0014]  全ての図面を通して、同一又は同様の参照符号を使用して同一又は同様の要素を指示する。
【０００７】
実施形態の詳細な説明
[0015]  以下では、本明細書に記述する主題を、いくつかの例示的実装形態を参照しながら説明する。これらの実装形態は、主題の範囲を決して限定するものではなく、本明細書に記述する主題を当業者がより良く理解及び実施できるようにすることのみを目的として説明されることを理解されたい。
【０００８】
[0016]  以下で用いる用語「含む」及びその変化形は、「含むが、限定されない」を意味する開放的用語として読まれるべきである。用語「〜に基づいて」は、「〜に少なくとも部分的に基づいて」として読まれるべきである。用語「１つの実装形態」及び「実装形態」は、「少なくとも１つの実装形態」として読まれるべきである。用語「別の実装形態」は、「少なくとも１つの別の実装形態」として読まれるべきである。用語「第１の」、「第２の」等は、異なるか又は同一の対象を指し得る。他の明示的及び暗示的な定義も以下に含まれる場合がある。
【０００９】
[0017]  コンピュータビジョン分野において、畳み込みニューラルネットワークは、画像及びビデオデータの抽出に際して利点を十分に発揮している。しかし、規則的なデータ構造（例えば、画像）向けの畳み込みニューラルネットワーク構造及び訓練方法を３次元形状に適合させることは、極めて困難である。規則的な格子でサンプリングされる画像及びビデオデータと異なり、３次元形状は、三角形メッシュ又は無作為にサンプリングされた３次元点の集合で表される。しかし、このような表現は、非疎表現であるため、膨大な記憶空間を必要とする。更に、２次元画像に保存されたＲＧＢデータと異なり、３次元形状で定義されるいずれの種類データが畳み込みニューラルネットワークに最適であるかは、明らかでない。
【００１０】
[0018]  現在、３次元形状を表し、且つ３次元形状に対して畳み込みニューラルネットワーク処理を実行する解決策が提案されている。しかし、これらの解決策は、一般に、膨大な記憶空間及び膨大な計算リソースを必要とする。このため、これらの問題を少なくとも部分的に解決するために、３次元形状に用いる畳み込みニューラルネットワークの解決策を提案することが必要である。本明細書に記述する主題の基本原理及びいくつかの例示的実装形態を、図面を参照しながら以下に記述する。
【００１１】
例示的動作環境
[0019]  本明細書に記述する主題の基本的原理及びいくつかの例示的実装形態を、図面を参照しながら以下に記述する。図１は、本明細書に記述する主題の１つ以上の実装形態を実行可能なコンピュータシステム／サーバ１００のブロック図を示す。図１に示すコンピュータシステム／サーバ１００は、一例に過ぎず、本明細書に記述する主題の機能及び範囲を決して限定するものではないことを理解されたい。
【００１２】
[0020]  図１に示すように、コンピュータシステム／サーバ１００は、汎用コンピューティング装置の形式である。コンピュータシステム／サーバ１００の構成要素は、１つ以上の中央プロセッサ又は中央演算処理装置１００、メモリ１２０、１つ以上の入力装置１３０、１つ以上の出力装置１４０、ストレージ１５０及び１つ以上の通信装置１６０並びに１つ以上のグラフィック処理装置１７０を含むが、これらに限定されない。処理装置１００は、現実又は仮想プロセッサであり得、メモリ１２０に保存されたプログラムに従って各種のプロセスを実行することができる。多重処理システムにおいて、複数の処理装置が処理能力を高めるためにコンピュータ実行可能な命令を実行する。
【００１３】
[0021]  コンピュータシステム／サーバ１００は、典型的に、複数のコンピュータ媒体を含む。このような媒体は、コンピュータシステム／サーバ１００にアクセス可能な任意の利用可能な媒体であり得、揮発性及び不揮発性媒体並びに取り外し可能及び取り外し不可能な媒体を含むが、これらに限定されない。メモリ１２０は、揮発性メモリ（例えば、レジスタ、キャッシュ、ランダムアクセスメモリ（ＲＡＭ））、不揮発メモリ（例えば、読み出し専用メモリ（ＲＯＭ）、電気的に消去可能なプログラマブル読み出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリ）又はこれらの何らかの組み合わせであり得る。ストレージ１５０は、着脱可能であっても着脱不可能であってもよく、フラッシュドライバ、磁気ディスク等の機械可読媒体又は情報の保存に利用可能であり、コンピュータシステム／サーバ１００でアクセス可能な他の任意の媒体を含み得る。
【００１４】
[0022]  コンピュータシステム／サーバ１００は、他の取り外し可能／取り外し不可能な揮発性／不揮発性コンピュータシステム記憶媒体を更に含み得る。図１に示していないが、取り外し可能な不揮発性ディスク（例えば、「フロッピーディスク」）から読み出すか又はそれに書き込むためのディスクドライバ、及び取り外し可能な不揮発性光ディスクから読み出すか又はそれに書き込むための光ディスクドライバを提供することができる。メモリ１２０は、本明細書に記述する主題の各種の実装形態の機能を実行するように構成されたプログラムモジュールの組（例えば、少なくとも１つのプログラムモジュール）を有する少なくとも１つのプログラム製品を含み得る。
【００１５】
[0023]  プログラムモジュールの組（少なくとも１つのプログラムモジュール）を有するプログラム／ユーティリティプログラムツールは、例えば、メモリ１２０に保存され得る。このようなプログラムモジュールは、オペレーティングシステム、１つ以上のアプリケーション、他のプログラムモジュール及び動作データを含むが、これらに限定されない。これらの例の各々又は特定の組み合わせは、ネットワーク環境の実装を含み得る。これらのプログラムモジュールは、本明細書に記述する主題の複数の実装形態による機能及び／又は方法を実行することができる。いくつかの実装形態において、このようなプログラムモジュールは、ストレージ１５０に保存され得る。
【００１６】
[0024]  入力装置１３０は、１つ以上の各種の入力機器であり得る。例えば、入力装置１３０は、マウス、キーボード、トラックボール等のようなユーザー機器を含み得る。通信装置１６０は、通信媒体を介して別の計算装置との通信を実行する。また、コンピュータシステム／サーバ１００の構成要素の機能は、単一のコンピュータ又は通信接続を介して通信可能な複数のコンピュータに実装することができる。このように、コンピュータシステム／サーバ１００は、１つ以上の他のサーバ、ネットワークパーソナルコンピュータ（ＰＣ）又は他の一般的なネットワークノードとの論理的接続を用いるネットワーク化された環境で動作することができる。一例として、但し非限定的に、通信媒体は、有線又は無線ネットワーク技術を含む。
【００１７】
[0025]  コンピュータシステム／サーバ１００は、必要に応じて、記憶装置、表示装置等、ユーザーがコンピュータシステム／サーバ１００と対話できるようにする１つ以上の装置、及び／又はコンピュータシステム／サーバ１００が１つ以上の他のコンピューティング装置と通信可能であるようにする任意の装置（例えば、ネットワークカード、モデム等）の１つ以上の外部装置（図示せず）とも通信することができる。このような通信は、入力／出力（Ｉ／Ｏ）インターフェース（図示せず）を介して実行することができる。
【００１８】
[0026]  中央処理装置１１０は、加速バス（図示せず）を介してグラフィック処理装置１７０と通信することができる。グラフィック処理装置１７０は、バスを介してデータ中央処理装置１１０に送信し、バスを介して中央処理装置からデータを受信することができる。グラフィック処理装置１７０は、畳み込みニューラルネットワークに関連付けられたデータを保存するためのグラフィックメモリ１８０を含む。グラフィックメモリ１８０のための記憶空間が制限されるため、グラフィック処理装置１７０により畳み込みニューラルネットワークが訓練される際、記憶空間を完全に利用及び保存しなければならない。グラフィック処理装置１７０は、グラフィックメモリ１８０からデータを読み込み、及び／又はグラフィックメモリ１８０にデータを書き込んでデータを処理するための処理装置を更に含む。グラフィック処理装置１７０及び中央処理装置１１０は、ボードと一体化するか又は各々のボードに別々に形成することができる。
【００１９】
[0027]  一般に、グラフィック処理装置１７０は、３次元グラフのリアルタイム表示を加速するように構成される。グラフィック処理能力に対する要求が高まるにつれて、グラフィック処理装置の性能は、一層強力且つ一層プログラム可能になる。現在、グラフィック処理装置は、グラフィック処理とは無関係の多くの他のタスクを効果的に実行することができる。例えば、グラフィック処理装置は、強力な並列コンピューティング能力を備え、従ってニューラルネットワークモデルにおいて、特にニューラルネットワークモデルの訓練において利用することができる。本明細書に記述する畳み込みニューラルネットワークモデルは、中央処理装置１１０に対するコンピューティング制約を緩和して、グラフィック処理装置１７０の並列処理能力を完全に利用するために、グラフィック処理装置１７０に少なくとも部分的に（又は完全に）実装することができる。
【００２０】
畳み込みニューラルネットワークのアーキテクチャの例
[0028]  図２は、本明細書に記述する主題の一実装形態による畳み込みニューラルネットワークの例示的アーキテクチャ２００を示す。図２に示すアーキテクチャ２００が一例に過ぎないことを理解されたい。本明細書に記述する主題の実装形態は、他のアーキテクチャの畳み込みニューラルネットワークにも適用することができる。本明細書に記述する主題は、これに限定されない。
【００２１】
[0029]  図２に示すように、畳み込みニューラルネットワークの入力２１０は、３次元形状の八分木表現である。いくつかの実装形態において、各々の葉ノードは、葉ノード内の点の平均法線を保存することができる。３次元形状の幾何学的構造は、離散的法線場を有する八分木により近似することができる。畳み込みニューラルネットワークモデルを八分木表現に基づいて構築することができる。法線信号及び平均法線は、データ信号を３次元形状で表す例に過ぎないことに注意されたい。本明細書に記述する主題は、他の任意の適切な形式のデータ信号にも適用することができる。本明細書に記述する主題は、これに限定されない。
【００２２】
[0030]  図２に示すように、八分木の構造が入力２１０に示される。いくつかの実装形態において、３次元形状の他の種類の表現を八分木表現に変換し、次いで畳み込みニューラルネットワークへの入力２１０として提供することができる。例えば、立方体２１２において、平面等の３次元幾何形状が含まれ得る。立方体２１２は、八分木の深さゼロの根ノードに対応する。次いで、立方体２１２は、立方体２１４で示すように深さ１の８つのノードに分割することができる。従って、各ノードは、根ノードの子ノードに対応する。
【００２３】
[0031]  ３次元幾何形状が全ての３次元空間全体にわたって広がっていないため、３次元空間を更に分割した場合、いくつかのノードは、３次元形状を含まないであろう。この場合、このような空ノードが分割されないのに対し、非空ノードのみが更に分割される。従って、空ノードは、八分木の葉ノードでもある。３次元形状を含むノードを更に分割した場合、各々が深さ２及び深さ３に対応する立方体２１６及び２１８が得られる。ノードを更に分割することで深さｄの八分木が生成される。以下の記述において、本明細書に記述する主題のいくつかの実装形態による八分木に基づく表現を、図３及び４を参照しながら詳述する。
【００２４】
[0032]  八分木により表される入力２１０を受信した後、畳み込みニューラルネットワーク操作を八分木の一番下のノードから上向きに実行することができる。図２に示すように、ニューラルネットワークの深さが破線枠２６０に示される。例示的なアーキテクチャ２００において、入力２１０内で深さｄを有するノードに対して畳み込み操作を実行することにより特徴マップ２２０が得られる。特徴マップ２２０は、３つのチャネルを示す。しかし、他の任意の適当な個数のチャネルも適用できることを理解されたい。本明細書に記述する主題は、これに限定されない。特徴マップ２３０は、特徴マップ２２０に対してプーリング操作を実行することにより得られる。次いで、１つ以上の畳み込み及びプーリング操作が連続的に繰り返される。例えば、深さ３のノードに対して畳み込み操作を実行することにより特徴マップ２４０が得られ、特徴マップ２４０に対してプーリング操作を実行することにより特徴マップ２５０が得られる。特徴マップ２５０は、分類等の様々な目的で他のニューラルネットワーク層（例えば、完全接続層）に提供することができる。
【００２５】
[0033]  ３次元形状の形状特徴に起因して、空ノードは、八分木内に葉ノードとして存在するため、このような八分木で多くのノードを除外することが可能になる。例えば、深さ１の空ノードにより、空ノードの下の全てのノードが除外されるため、保存及び操作すべきノードデータが大幅に減り、従って、記憶空間が節約されると共に計算効率が向上する。
【００２６】
データ構造
[0034]  八分木構造の従来の実装形態では、特定のノードに効果的にアクセスできない。従って、頻繁にデータにアクセスする畳み込みニューラルネットワークにこれらの実装形態を用いることは不適当である。八分木のアクセス効率を更に向上させるために、畳み込みニューラルネットワークへの高速アクセス及び八分木表現と一体化された従来の畳み込みニューラルネットワーク操作をサポートする効果的な八分木記憶解決策を提供する。
【００２７】
[0035]  図２に示すアーキテクチャにおいて、八分木の最大深さをｄと表記する。いくつかの実装形態において、八分木の各ノードは、シャッフルキー法に従ってキー又はインデクスが割り当てられ得る。八分木の各ノードは、８つの子ノードを有し、これらは、従って、０〜７の範囲の３ビット２進符号により符号化することができる。換言すれば、２進符号は、各子ノードがカバーする部分領域を符号化することができる。例えば、ｘビットが１である場合、子ノードは、ｘ軸方向に沿うノードをカバーする。一方、子ノードは、ｘ軸方向とは逆方向のノードをカバーする。更に、ｙビット及びｚビットは、同様に設定することができる。
【００２８】
[0036]  八分木の第ｌ層において、ノードの整数座標（ｘ，ｙ，ｚ）を３組のｌビットデータ、すなわちｘ＝（ｘ１ｘ２．．．ｘｌ）、ｙ＝（ｙ１ｙ２．．．ｙｌ）、ｚ＝（ｚ１ｚ２．．．ｚｌ）、ｘｉ、ｙｉ、ｚｉ∈｛０、１｝で表すことができる。ノードＯのシャッフルキー、すなわちｋｅｙ（Ｏ）は、次式で定義される。
ｋｅｙ（Ｏ）：＝ｘ１ｙ１ｚ１ｘ２ｙ２ｚ２．．．ｘｌｙｌｄｌ  （１）
ここで、ｌは、八分木におけるノードＯの深さを表す。従って、深さｌでのノードのシャッフルキーは、３１ビットである。
【００２９】
[0037]  八分木の各ノードをシャッフルキーで表すことができる。いくつかの実装形態において、深さｌにおける全てのシャッフルキーを昇順にソートすることができ、ソートされた配列をＳｌと定義する。このソート方法は、一例に過ぎず、他の任意の適当なソート方法も可能であることに注意されたい。本明細書に記述する主題は、これに限定されない。例えば、ソートは、降順に行われ得る。
【００３０】
[0038]  シャッフルキーの大きさに基づいてノードがソートされた後、同じ親ノードに属する８つの子ノードが連続的に配置され、従って全ての子ノードが同じ部分木に属する。この特性は、以下に詳述するプーリング操作に極めて有用である。
【００３１】
[0039]  上述のように、３次元形状の特性に起因して、八分木のいくつかのノードは、空であり、すなわち３次元形状のいかなる部分も含まない。Ｓｌの非空ノードの位置を記憶するために、これらの非空ノードに整数ラベルが割り当てられる。ラベルは、１から始まり、次のノードが非空である場合に増分され得る。空ノードの場合、ラベルは、ゼロ等の事前設定された値に設定することができる。これらのラベルは、ラベルベクトルＬｌと呼ばれるベクトル又は配列に編成することができる。データが下から上に流れる場合（すなわちダウンサンプリング）、ラベルベクトルを用いることができる。
【００３２】
[0040]  いくつかの実装形態において、全てのＳｌ（ｌ＝０、１、．．．、ｄ）を、キーベクトルＳと呼ばれる連続的な配列に結合することができる。従って、全てのＬｌ（ｌ＝０、１、．．．、ｄ）は、ラベルベクトルＬと呼ばれる別の連続的な配列に結合することができる。更に、各々の深さの第１のノードのインデクスを、Ｓ内の深さｌにおけるｒ番目の非空ノードＯに直ちにアクセスできるように配列Ｊに保存することができる。最初に、法線信号が八分木の深さｄにおけるノードに結合されて連続配列Ｔｄに保存される。Ｔｌのデータ（ｌ＝０、１、．．．、ｄ−１）がニューラルネットワーク内で動的に計算されて、データベクトルＴと呼ばれる連続配列に結合される。例えば、ストライドが１である畳み込み層において、畳み込み計算後のデータは、プーリング操作等の後続処理のための層に対応する深さを有するノードに保存される。配列Ｓｌ、Ｌｌ及びＴｌは、長さが同じであり、同一インデクスを共有する点に注意されたい。ノードのシャッフルキーが与えられた場合、配列Ｓｌを探索して対応するインデクスが得られ、Ｌｌ及びＴｌに保存された情報が直接得られる。４つのベクトル（Ｓ、Ｌ、Ｊ、Ｔ）を用いて八分木のデータ構造を表すことができる。
【００３３】
[0041]  いくつかの実装形態において、異なる３次元形状は、異なる八分木構造を有する。バッチ入力により畳み込みニューラルネットワークの効果的な訓練又は推論をサポートするために、バッチ内の全ての３次元形状の八分木を超八分木として結合することができる。例えば、バッチ内の八分木の全てのＳｌ、Ｌｌ及びＴｌを接続して超八分木のベクトル
【数１】
2020518882.tif 000003
、
【数２】
2020518882.tif 000004
及び
【数３】
2020518882.tif 000005
とすることができ、これらは、上述のように編成できるため、ここでは詳細を省略する。超八分木は、一時的配列を生成することなくデータを効果的に処理できるように畳み込みニューラルネットワークの入力として用いることができる。
【００３４】
[0042]  八分木構造が３次元表現に関係するため、八分木構造を示すことは、極めて困難である。従って、説明の便宜上、上で導入したデータ構造を、図３及び４の四分木３００及び４００を参照しながら記述する。以下の記述において、深さ２の四分木（又は２次元分割）の表現をどのように決定すべきかを詳述しているが、以下の例は、特許請求される主題の範囲を限定するものではなく、当業者が技術的解決策をより明確に理解できるようにするためのものに過ぎないことを理解されたい。以下の説明は、本明細書に記述する主題の実装形態による八分木構造に容易に適用することができる。図３に示すように、四分木構造３００は、深さ２の四分木であり、黒点は、グラフィカル情報又はデータを表し、黒点を含まないブロックは空ノードであり、黒点を含むブロックは、非空ノードである。親ノードを、Ｓ０で表すインデクス０のブロック３３０で示す。従って、ノードがグラフィカルデータを含むため、Ｌ０で表す対応ラベルに値１が割り当てられる。
【００３５】
[0043]  四分木（深さ１）の第１層において、親ノード３３０は、それぞれブロック３２０で示すように０、１、２及び３とマークされた４つの四分円に分割される。図３において、ｘ軸が水平方向として設定され、ｙ軸が垂直方向として設定される。ここで、ノード２を例として挙げて、第１層でノードのインデクスをどのように決定するかを説明する。第１層におけるノードのインデクスは、ｘｌｙｌと表記することができる。上述のように、ｘビットが１である場合、子ノードは、ｘ軸（右側）の正方向に沿って四分円をカバーし、ｙビットが０である場合、子ノードは、ｙ軸（下側）の負方向に沿って四分円をカバーする。従って、ｘｙ＝１０（２）＝２（ｌ０）は、右下角の四分円を表す。四分円は、グラフィカルデータを含まないため、対応するラベルに値０が割り当てられる。同様に、インデクス０、１及び３は、ブロック３２０に示す左下角、左上角及び右上角の四分円をそれぞれ表す。従って、四分木の第１層のインデクスをＳｌで表し、対応するラベルをＬｌで表すことができる。
【００３６】
[0044]  ブロック３２０から分かるように、四分円１及び２は、四分木の第１層でグラフィックスを含まず、更に分割する必要はない。逆に、四分円０及び３は、共にグラフィックスを含むため、更に分割することができる。ブロック３１０、すなわち四分木の深さ２に対応する層をブロック３２０の分割後に得ることができる。ブロック３１０は、８つのノードを含み、ノード１〜３は、ブロック３２０のノード０に対応し、ノード１２〜１５は、ブロック３２０のノード３に対応する。
【００３７】
[0045]  ここで、ノード１３を例として挙げて、第２層におけるノードのインデクスをどのように決定するかを説明する。第２層におけるノードのインデクスは、ｘ１ｙ１ｘ２ｙ２と表記することができ、ここで、ノード１３は、上述のようにｘ１ｙ１＝１１（２）と表わすことができる。ノード１３がｘ軸方向に沿った左側の且つｙ軸方向に沿った上側の四分円をカバーするため、ｘ２ｙ２＝０１（２）が成り立つ。従って、ノード１３のインデクスは、１１０１（２）＝１３（１０）である。
【００３８】
[0046]  図４は、図３の四分木の階層構造４００及びに関連データ表現を更に示す。図４に示すように、対応するインデクスを各ノードに付している。例えば、根ノードのインデクスは、図示のように０である。
【００３９】
[0047]  上述のように、Ｓ０、Ｓ１及びＳ２は、四分木のインデクスを表すために一次元のベクトル又は配列Ｓとして結合される。例えば、Ｓは、「０、１、２、３、１２、１３、１４、１５、０、１、２、３、０」と表記することができる。図４に示すように、四分木の各層において、第１の四分円又はノードは、層においてインデクス０で表される。従って、Ｌ０、Ｌ１及びＬ２も、「１、０、２、３、０、４、０、５、１、０、０、２、１」と表される一次元のベクトル又は配列Ｊとして結合することができる。従って、ベクトルＳにおいて、Ｓ内の四分木の３層の第１のノードのインデクスの位置は、それぞれ「１２、８、０」、すなわちそれぞれＳ内の１３番目の位置、９番目の位置及び１番目の位置である。この位置情報をＪと表記する。インデクスＳに対応して、ノードに関連付けられた形状データも、Ｓと同一寸法のベクトルＪとして保存することができる。例えば、形状データは、上述のように各ノード内の点で平均法線であり得る。
【００４０】
[0048]  上記では、組み合わせ方法の一例を紹介したに過ぎない。他の組み合わせ方法も可能であることを理解されたい。本明細書に記述する主題は、これに限定されない。例えば、Ｓ０、Ｓｌ及びＳ２を「０、０、１、２、３、０、１、２、３、１２、１３、１４、１５」のように結合することができる。従って、Ｌ及びＪをそれぞれ「１、１、０、０、２、１、０、２、３、０、４、０、５」及び「０、１、５」のように結合することができる。
【００４１】
畳み込みニューラルネットワークの操作
[0049]  畳み込みニューラルネットワークの基本的操作は、畳み込み及びプーリングである。画像処理の場合、各ピクセルが色情報を含み、これらの操作を通じて他の領域に情報を伝播すべきであるため、これらの操作は、全ての領域で実行すべきである。しかし、３次元形状の場合、幾何学的情報は、限られた領域内にのみ存在する。空領域への情報の伝播は、膨大な計算リソースを要するために不要である。本明細書に記述する主題のいくつかの実装形態に従い、情報伝播は、八分木内に限定され、畳み込み及びプーリング操作が相応に実行される。換言すれば、畳み込みニューラルネットワーク操作は、八分木のノードが存在する場所で実行される。更に、逆畳み込み及び逆プーリング操作が八分木構造に拡張される。
【００４２】
[0050]  畳み込み操作を八分木のノードに適用するには、同じ深さの隣接ノードを決定する必要がある。計算を効果的に実行するために、畳み込み操作の符号を以下の拡張形式で表すことができる。
【数４】
2020518882.tif 000006
ここで、Ｏｉｊｋは、Ｏの隣接ノードを表し、Ｔ（・）は、Ｏｉｊｋに関連付けられた特徴ベクトルを表し、Ｔ（ｎ）（・）は、特徴ベクトルのｎ番目のチャネルを表し、
【数５】
2020518882.tif 000007
は、畳み込み操作の重みである。Ｏｉｊｋが八分木内に存在しない場合、Ｔ（Ｏｉｊｋ）は、ゼロベクトルに設定される。このような形式において、畳み込み操作は、行列演算に変換され、これらの線形代数演算は、グラフィカルコンピュータ上で効果的に実行することができる。
【００４３】
[0051]  畳み込み操作の畳み込み核（フィルタとも呼ばれる）のサイズがＫである場合、畳み込み操作は、各八分木ノードのＫ３−ｌ個の隣接ノードへのアクセスを要求する。隣接ノードを取得するには、八分木を上から下へ辿ることは、十分に効果的な選択肢ではない。畳み込み操作のストライドが１である場合、畳み込み操作は、八分木の現在の層における全てのノードに適用される。従来、各ノードに対してＫ３−１個のクエリが必要とされる。しかし、同一の親ノードの下の８つの子ノードの隣接ノードは、高度に重なり、全部で（Ｋ＋ｌ）３個のノード（８つの子ノード自体も含む）のみを有する。従って、隣接探索は、８つの子ノードの（Ｋ＋ｌ）３−８個の隣接ノードのみを探索することにより処理を加速することができる。例えば、Ｋ＝３の場合、この最適化により探索操作の速度を２倍超高めることができる。
【００４４】
[0052]  図５は、本明細書に記述する主題のいくつかの実装形態による畳み込み操作５００の一例を示す。図５に示す実装形態において、畳み込み核のサイズは、３である。しかし、これは、一例に過ぎないことを理解されたい。本明細書に記述する主題は、これに限定されない。
【００４５】
[0053]  図５は、同一の親ノードを有する８つの子ノード５１０を示し、各子ノードに隣接する２７のノード（子ノード自体も含む）をそれぞれ８つの立方体５２０の各立方体で表す。例えば、ノード５１１（ノード５１１自体も含む）に隣接する２７のノードを立方体５２１で表し、ノード５１３（ノード５１３自体も含む）に隣接する２７のノードを立方体５２３で表す。これらの立方体は、多くの重なりを有するが、実際には、立方体５３０で表す（Ｋ＋１）３＝６４のノード（ノード５１０自体も含む）のみを含む。八分木を上から下へ辿る従来方式によれば、８×Ｋ３＝２１６のクエリを実行する必要がある。対照的に、図５に示す方法によれば、６４のクエリのみを実行し得るため、クエリ数が大幅に減る。
【００４６】
[0054]  ストライドが２である場合、同一の親ノードの下の８つの子ノードのうち、第１子ノードに畳み込みを適用しながら他の７つのノードを無視することができ、これは、特徴マップの解像度を半分にダウンサンプリングすることと均等である。ストライドが２ｒ（ｒ＞ｌ）の畳み込み操作である場合、高さｒの各部分木の第１のノードに操作を適用することができる。次いで、特徴マップは、２ｒ分の１ずつダウンサンプリングを実行する。八分木の特別な階層構造に起因して、畳み込みのストライドは、２の整数乗に制約される。
【００４７】
[0055]  ストライドが１よりも大きい畳み込み操作を実行する場合、ダウンサンプリングが生じて、形状データ配列Ｔの長さが短縮される。データは、八分木の一番下から上向きに流れてＬｌに保存されたラベル情報を用いて対応関係を取得することができる。図６は、このような四分木の一例６００を示す。配列Ｔ２の初期長は、８であり、ダウンサンプリングが実行された場合に２になる。しかし、四分木の深さがｌである場合、４つのノードが存在し、従って配列Ｔ１の長さは、４のはずである。配列Ｌｌ内の情報を、ダウンサンプリングされた配列Ｔ（１）と組み合わせることにより、更新された配列Ｔｌが容易に得られる。図６に示すように、（破線のブロック６１０で示す）深さ２のノード「１、０、２、３」の場合、「１、０、２、３」に関連付けられた親ノードがＬ１内で１及び０とラベル付けされるため、ダウンサンプリングされたデータ６２０は、Ｌ１のラベル１に対応する。従って、データ６２０は、Ｌ１内のラベル１に対応するデータ６３０の更新に用いられる。
【００４８】
[0056]  いくつかの実装形態において、図２に示すように、畳み込みニューラルネットワークは、表現の空間サイズを漸次縮小することを主な機能とする１つ以上のプーリング層を含み得る。プーリング層は、特徴マップの各チャネルに独立に作用し、その空間サイズを相応に縮小する。プーリング層は、最大プーリング層又は平均プーリング層等、多くの形式を有し得る。
【００４９】
[0057]  図７は、本明細書に記述する主題のいくつかの実装形態によるプーリング操作７００の概略図を示す。最も一般的な最大プーリング層は、ストライドが２の状態でサイズが２のフィルタを適用するものである。八分木表現において、最大プーリング操作は、同一の親ノードを有する８つのノードの最大データを見出すことと均等である。本明細書に記述する主題のいくつかの実装形態によれば、同一の親ノードの下の８つのノードは、連続的に保存される。従って、最大プーリング操作を八分木に適用することにより、配列の８つの連続的な要素から最大の要素を選択することに帰着する。図７に示すように、同一の親ノードを有する８つのノードの最大データは、９であり、最大要素を選択して親ノードにデータを送信する。この操作は、グラフィック処理装置上で高速に実行することができる。従って、特徴マップの解像度は、半分にダウンサンプリングされ、親ノードの情報を用いて更なる操作を導くことができる。
【００５０】
[0058]  図６は、最大プーリングの場合にデータを操作する方法も示す。例えば、深さ２のノード「１、０、２、３」の場合、対応するデータは、「５、０、２、１」である。従って、これらのノードに対して最大プーリング操作を実行した後に得られた値は、６２０に示すように５である。「１、０、２、３」に関連付けられた親ノードがＬｌ内で１及び０とラベル付けられるため、ダウンサンプリングされたデータ６２０は、Ｌｌ内のラベル１に対応し、すなわちデータ６３０に値５を割り当てることができる。
【００５１】
[0059]  プーリング操作が他のサイズ及び／又は他のストライドのフィルタに関する場合、上の畳み込み操作と同様の操作を用いて関連ノードを見つけることができる。例えば、ストライドが４、サイズが４のフィルタを最大プーリング層が適用する場合、これは、あるノードの６４の孫ノードの要素から最大要素を選択することに対応する。
【００５２】
[0060]  いくつかの実装形態において、畳み込みニューラルネットワークは、プーリング層の逆操作であり、アップサンプリング操作である逆プーリング層も含み得る。逆プーリング層は、畳み込みニューラルネットワークの視覚化及び画像分割に用いることができる。逆プーリング操作は、通常、プーリング操作に関連付けられる。最大プーリング操作が適用された後、各プーリング領域内の最大値の位置をスイッチ変数の組に記録することができる。対応する最大逆プーリング操作は、これらのスイッチ変数を用いて、現在の特徴マップ内の信号を、アップサンプリングされた特徴マップ内の適当な位置に配置する。
【００５３】
[0061]  図８は、図７に示すプーリング操作に対応する、本明細書に記述する主題のいくつかの実装形態による逆プーリング操作８００の概略図を示す。図７において、最大プーリング操作が適用された後、最大値の位置が記録される。従って、図８において、最大逆プーリング操作が適用された際、現在の特徴マップ内の信号（本例では５）は、アップサンプリングされた特徴マップの適当な位置に配置される。
【００５４】
[0062]  いくつかの実装形態において、畳み込みニューラルネットワークは、畳み込み層の逆操作、すなわち畳み込み層の順方向計算（順方向畳み込み計算）及び逆方向計算（畳み込み計算の勾配を逆向きに送信）を逆転させる逆畳み込み層を更に含み得る。逆畳み込み操作の順方向計算機能は、畳み込み逆方向計算機能を使用し、逆畳み込み操作の後方向計算機能は、畳み込み順方向計算機能を直接使用する。
【００５５】
[0063]  畳み込みニューラルネットワークの操作について、前段で記述したデータ構造と組み合わせて詳細に記述する点に注意されたい。しかし、これらの操作は、他のデータ構造と組み合わせて図２に示す入力２１０により表される八分木にも適用できることを理解されたい。
【００５６】
訓練処理の例
[0064]  図９は、本明細書に記述する主題の一実装形態による畳み込みニューラルネットワークを訓練する方法９００のフローマップを示す。本方法は、図１に示すグラフィック処理装置１７０により実行することができる。
【００５７】
[0065]  ９２０において、３次元形状を表すための八分木を取得する。上述のように、八分木のノードは、空ノード及び非空ノードを含む。空ノードは、３次元形状を含まず、且つ八分木の葉ノードであり、及び非空ノードは、３次元形状の少なくとも一部を含む。いくつかの実装形態において、３次元形状の八分木表現をグラフィック処理装置１７０のグラフィカルメモリに保存することができる。
【００５８】
[0066]  いくつかの実装形態において、八分木は、八分木のノードのインデクス、八分木のノードのラベルであって、ノードが空又は非空であるか否かを少なくとも示すラベル、八分木のノードの形状データであって、ノードによって表されるノード内の３次元形状の形状を少なくとも示す形状データ及び八分木の階層構造の少なくとも１つによって表すことができる。いくつかの実装形態において、インデクス、ラベル、形状データ及び階層構造の少なくとも１つは、１次元ベクトルとして定義される。例えば、インデクス、ラベル、形状データ及び階層構造は、上述のベクトルＳ、Ｌ、Ｔ及びＪによって実装することができる。
【００５９】
[0067]  いくつかの実装形態において、受信されたデータ信号を、３次元形状を表すための八分木に変換することができる。例えば、３次元形状を表すデータ信号が最初に受信され、データ信号を受信することに応答して、３次元形状を表すための八分木が決定される。
【００６０】
[0068]  ９４０において、畳み込みニューラルネットワークの畳み込み層に関連付けられた深さを有する八分木のノードについて、畳み込み層の畳み込み操作を実行して畳み込み層の出力を取得する。畳み込み操作の実行は、例えば、例として式（２）に示すように、畳み込み層のパラメータ及び関連データを演算することにより行うことができる。いくつかの実装形態において、同一の親ノードを有する８つのノードを、畳み込み層に関連付けられた深さを有するノードから決定することができる。次に、八分木に基づいて８つのノードのノード近傍が決定される。ノード近傍は、８つのノードの少なくとも１つに隣接するノードを含む。次いで、ノード近傍に対して８つのノードの畳み込み層の操作が実行される。このように、畳み込み操作に必要な探索操作を大幅に簡素化することができるため、グラフィックメモリ１８０からのデータの読み込みが容易になる。
【００６１】
[0069]  いくつかの実装形態において、畳み込みニューラルネットワークは、プーリング層を更に含む。方法９００は、プーリング層に関連付けられた深さを有するノードから、同一の親ノードを有する８つのノードを決定することを更に含む。次いで、８つのノードの形状データに対してダウンサンプリング操作が実行される。プーリング層は、最大プーリング層又は平均プーリング層であり得る。例えば、図７に示すように、最大プーリング層の実装に際して、同一の親ノードを有する８つのノードを決定することができ、形状データの最大値を有するノードが選択される。
【００６２】
[0070]  いくつかの実装形態において、畳み込みニューラルネットワークは、逆プーリング層を更に含む。方法９００は、逆プーリング層に関連付けられた深さを有するノードから、同一の親ノードを有する８つのノードを決定することを更に含む。次いで、８つのノードの形状データに対してアップサンプリング操作が実行される。例えば、逆プーリング操作は、プーリング操作に関連付けられ得る。最大プーリング操作が適用された後、各プーリング領域内の最大値の位置を記録することができる。対応する最大逆プーリング操作により、現在の特徴マップ内の信号を、アップサンプリングされた特徴マップの適当な位置に配置する。
【００６３】
[0071]  いくつかの実装形態において、畳み込みニューラルネットワークは、逆畳み込み層を含む。方法９００は、逆畳み込み層に関連付けられた深さを有するノードから、同一の親ノードを有する８つのノードを決定することを更に含む。次いで、八分木に基づいて８つのノードのノード近傍が決定される。ノード近傍は、８つのノードの少なくとも１つに隣接するノードを含む。次いで、ノード近傍に対して８つのノードの逆畳み込み層の操作が実行される。
【００６４】
[0072]  例えば、分類アプリケーションにおいて、畳み込みニューラルネットワークにより得られた結果をグラウンドトゥルースと比較することができる。次いで、損失機能の勾配が逆伝播されて畳み込みニューラルネットワークのパラメータを更新する。畳み込みニューラルネットワークは、訓練処理中に大量のデータを処理する必要があるため、方法９００は、データをバッチ処理的に訓練できる畳み込みニューラルネットワークの訓練処理に特に有用であり、従って特に並列処理に適合され、グラフィック処理装置による実行に適する。しかし、方法９００は、畳み込みニューラルネットワークモデルによる判定処理にも適用できることに注意されたい。
【００６５】
畳み込みニューラルネットワークの関連アプリケーション
[0073]  近年、畳み込みニューラルネットワークのネットワークアーキテクチャが急激に進化している。多くのタスクを達成するためにより深く且つ広いネットワークが優位性を示している。３次元畳み込みニューラルネットワークは、異なるネットワーク構造により能力を向上させることができる。本明細書に記述する主題のいくつかの実装形態による八分木に基づく表現の利点をより明らかに示すために、簡単なニューラルネットワークを以下に示す。しかし、本明細書に記述する主題の実装形態による八分木に基づく表現は、各種の畳み込みニューラルネットワークアーキテクチャにも適用できることを理解されたい。本明細書に記述する主題は、これに限定されない。
【００６６】
[0074]  八分木に基づく畳み込みニューラルネットワークの設計は、八分木データ構造の一番下から上向きに畳み込み及びプーリング操作を繰り返し適用することを含む。更に、例えば活性化関数を利用することができ、正規化線形関数（ＲｅＬＵ）等の非線形活性化関数により出力を活性化することができる。更に、バッチ正規化（ＢＮ）を用いて内部共変量シフトを減らすことができる。操作シーケンス「畳み込み＋ＢＮ＋ＲｅＬＵ＋プーリング」は、畳み込みニューラルネットワークの基本単位である。深さｌのノードに畳み込みが適用された場合、基本単位をＵｌと表記することができる。Ｕｌの特徴マップのチャネル数を２ｍａｘ（２，９−ｌ）に設定することができ、ここで、ｍａｘは、最大値関数であり、畳み込みカーネルのサイズを例えば３に設定することができる。従って、畳み込みニューラルネットワークを次式：
入力→Ｕｄ→Ｕｄ−１→．．．→Ｕ２
で定義することができ、簡便のためＯ−ＣＮＮ（ｄ）と呼ばれる。
【００６７】
[0075]  特徴マップがノードのみに関連付けられるため、記憶空間は、対応する深さにおけるノード数と線形関係にある。約Ｏ（ｎ３）の空間を占める全ボクセル表現と比較して、八分木構造は、Ｏ（ｎ２）の空間を占めるに過ぎない。従って、本明細書に記述する主題のいくつかの実装形態による八分木表現により記憶空間を大幅に減らすことができ、記憶空間が比較的小さいグラフィック処理装置に極めて適する。
【００６８】
[0076]  いくつかの実装形態において、Ｏ−ＣＮＮは、形状解析、例えばオブジェクト分類、形状取得、形状分割等に適用することができる。オブジェクト分割の場合、２つの完全接続された（ＦＣ）層、ソフトマックス層及び２つのドロップアウト層をＯ−ＣＮＮ（ｄ）の後に追加することができる。すなわち、
Ｏ−ＣＮＮ（ｄ）→ドロップアウト→ＦＣ（ｌ２８）→ドロップアウト→ＦＣ（ＮＣ）→ソフトマックス→出力
であり、ここで、１２８は、ＦＣ内のニューロン数を表し、ＮＣは、分類カテゴリ数を表す。ドロップアウト層は、過剰適合を回避するために用いられる。形状探索の場合、上のオブジェクト分類からの出力を最も類似度が高い形状の探索キーとして用いることができる。
【００６９】
[0077]  形状分割の場合、逆畳み込みネットワークは、各葉ノードの分割ラベルを取得するためにＯ−ＣＮＮ（ｄ）とカスケードすることができる。逆畳み込みネットワークは、Ｏ−ＣＮＮ（ｄ）のミラーレイアウトであり、逆畳み込み及び逆プーリング操作により畳み込み及びプーリング操作を代替する。逆プーリングが深さｌのノードに適用された場合、「逆プーリング＋逆畳み込み＋ＢＮ＋ＲｅＬＵ」は、基本単位として定義されてＤＵｌと表記する。逆畳み込みネットワークＤ−Ｏ−ＣＮＮ（ｄ）は、ＤＵ２→ＤＵ３→．．．→ＤＵｄ−ｌの形式をとることができる。
【００７０】
[0078]  試験により、畳み込みニューラルネットワークの上述の３つのアプリケーションにおいて記憶効率及び計算効率が大幅に向上していることが分かる。従って、八分木表現の深さを大幅に増大させることができるため、ニューラルネットワークモデルの精度が更に向上する。
【００７１】
[0079]  本明細書に記述する機能は、１つ以上のハードウェア論理素子により、少なくとも部分的に実行することができる。例えば、但し非限定的に、図示する種類の使用可能なハードウェア論理素子は、フィールド−プログラム可能ゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、特定用途向け標準製品（ＡＳＳＰ）、システムオンチップ（ＳＯＣ）、複合プログラム可能論理素子（ＣＰＬＤ）等を含む。
【００７２】
[0080]  本明細書に記述する主題の方法を実行するためのプログラムコードは、１つ以上のプログラミング言語の任意の組み合わせで記述され得る。これらのプログラムコードは、汎用コンピュータ、特定用途コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサ若しくはコントローラに与えられ得、プログラムコードは、プロセッサ又はコントローラにより実行された場合にフロー図及び／又はブロック図で指定される機能／操作を実行させる。プログラムコードは、スタンドアロンソフトウェアパッケージとして全部がマシン上で、一部がマシン上で、一部がマシン上且つ一部がリモートコンピュータ上で、又は全部がリモートマシン又はサーバ上で実行され得る。
【００７３】
[0081]  本開示に関連して、機械可読媒体は、命令実行システム、装置若しくは機器によるか又はこれらと組み合わせて使用するプログラムを包含又は保存できる任意の有形媒体であり得る。機械可読媒体は、機械可読信号媒体又は機械可読記憶媒体であり得る。機械可読媒体は、電子、磁気、光、電磁気、赤外若しくは半導体システム、装置若しくは機器又はこれらの任意の適当な組み合わせを含み得るが、これらに限定されない。機械可読記憶媒体のより具体的な例として、１つ以上の導線を介した電気接続、可搬コンピュータディスケット、ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能プログラマブルメモリ（ＥＰＲＯＭ又はフラッシュメモリ）、光ファイバ、可搬コンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、光記憶装置、磁気記憶装置又はこれらの任意の適当な組み合わせが含まれる。
【００７４】
[0082]  更に、特定の順序で動作を記述しているが、このような動作を、図示する特定の順序又は連続的な順序で実行する必要があるものと理解すべきではない。特定の状況において、マルチタスキング及び並列処理が有利な場合がある。同様に、上の記述において、いくつかの特定の実装形態の詳細が含まれるが、本明細書に記述する主題の範囲を限定するものと解釈すべきではない。別個の実装形態に関連して記述される特定の特徴は、単一の実装形態と組み合わせても実施され得る。逆に、単一の実装形態に関連して記載される各種の特徴は、複数の実装形態で別個に又は任意の適当な副次的組み合わせでも実施され得る。
【００７５】
例示的実装形態
[0083]  本明細書に記述する主題のいくつかの例示的実装形態を以下に列挙する。
【００７６】
[0084]  いくつかの実装形態に従い、３次元形状を表すための八分木であって、八分木のノードは、空ノード及び非空ノードを含み、空ノードは、３次元形状を含まず、且つ八分木の葉ノードであり、及び非空ノードは、３次元形状の少なくとも一部を含む、八分木を保存するように構成されたメモリと、メモリに結合され、且つ３次元形状を表すための八分木をメモリから取得することと、畳み込みニューラルネットワークの畳み込み層に関連付けられた深さを有する八分木のノードについて、畳み込み層の出力を取得するために畳み込み層の畳み込み操作を実行することとを含む動作を実行するように構成された処理装置とを含む装置が提供される。
【００７７】
[0085]  いくつかの実装形態において、３次元形状を表すための八分木を取得することは、３次元形状の空間分割に基づいて、八分木のノードのインデクス、八分木のノードのラベルであって、ノードが空ノード又は非空ノードであるか否かを少なくとも示すラベル、八分木のノードの形状データであって、ノード内の３次元形状の形状を少なくとも示す形状データ及び八分木の階層構造の少なくとも１つを取得することを含む。
【００７８】
[0086]  いくつかの実装形態において、３次元形状を表すための八分木を取得することは、３次元形状を表すデータ信号を受信することと、データ信号を受信することに応答して、３次元形状を表すための八分木を決定することとを含む。
【００７９】
[0087]  いくつかの実装形態において、畳み込み層の畳み込み操作を実行することは、畳み込み層に関連付けられた深さを有するノードから、同一の親ノードを有する８つのノードを決定することと、八分木に基づいて８つのノードのノード近傍を決定することであって、ノード近傍は、８つのノードの少なくとも１つに隣接するノードを含む、決定することと、ノード近傍に対して８つのノードの畳み込み層の操作を実行することとを含む。
【００８０】
[0088]  いくつかの実装形態において、畳み込みニューラルネットワークは、プーリング層を含み、及び動作は、プーリング層に関連付けられた深さを有するノードから、同一の親ノードを有する８つのノードを決定することと、８つのノードの形状データに対してダウンサンプリング操作を実行することとを更に含む。
【００８１】
[0089]  いくつかの実装形態において、畳み込みニューラルネットワークは、逆プーリング層を含み、及び動作は、逆プーリング層に関連付けられた深さを有するノードから、同一の親ノードを有する８つのノードを決定することと、８つのノードの形状データに対してアップサンプリング操作を実行することとを更に含む。
【００８２】
[0090]  いくつかの実装形態において、畳み込みニューラルネットワークは、逆畳み込み層を含み、及び動作は、逆畳み込み層に関連付けられた深さを有するノードから、同一の親ノードを有する８つのノードを決定することと、八分木に基づいて８つのノードのノード近傍を決定することであって、ノード近傍は、８つのノードの少なくとも１つに隣接するノードを含む、決定することと、ノード近傍に対して８つのノードの逆畳み込み層の操作を実行することとを更に含む。
【００８３】
[0091]  いくつかの実装形態において、インデクス、ラベル、形状データ及び階層構造の少なくとも１つは、連続ベクトルとして定義される。
【００８４】
[0092]  いくつかの実装形態において、装置は、グラフィック処理装置（ＧＰＵ）である。
【００８５】
[0093]  いくつかの実装形態に従い、３次元形状を表すための八分木であって、八分木のノードは、空ノード及び非空ノードを含み、空ノードは、３次元形状を含まず、且つ八分木の葉ノードであり、及び非空ノードは、３次元形状の少なくとも一部を含む、八分木を取得することと、畳み込みニューラルネットワークの畳み込み層に関連付けられた深さを有する八分木のノードについて、畳み込み層の出力を取得するために畳み込み層の畳み込み操作を実行することとを含むコンピュータ実装方法が提供される。
【００８６】
[0094]  いくつかの実装形態において、３次元形状を表すための八分木を取得することは、３次元形状の空間分割に基づいて、八分木のノードのインデクス、八分木のノードのラベルであって、ノードが空ノード又は非空ノードであるか否かを少なくとも示すラベル、八分木のノードの形状データであって、ノード内の３次元形状の形状を少なくとも示す形状データ及び八分木の階層構造の少なくとも１つを取得することを含む。
【００８７】
[0095]  いくつかの実装形態において、３次元形状を表すための八分木を取得することは、３次元形状を表すデータ信号を受信することと、データ信号を受信することに応答して、３次元形状を表すための八分木を決定することとを含む。
【００８８】
[0096]  いくつかの実装形態において、畳み込み層の畳み込み操作を実行することは、畳み込み層に関連付けられた深さを有するノードから、同一の親ノードを有する８つのノードを決定することと、八分木に基づいて８つのノードのノード近傍を決定することであって、ノード近傍は、８つのノードの少なくとも１つに隣接するノードを含む、決定することと、ノード近傍に対して８つのノードの畳み込み層の操作を実行することとを含む。
【００８９】
[0097]  いくつかの実装形態において、畳み込みニューラルネットワークは、プーリング層を含み、及び本方法は、プーリング層に関連付けられた深さを有するノードから、同一の親ノードを有する８つのノードを決定することと、８つのノードの形状データに対してダウンサンプリング操作を実行することとを更に含む。
【００９０】
[0098]  いくつかの実装形態において、畳み込みニューラルネットワークは、逆プーリング層を含み、及び本方法は、逆プーリング層に関連付けられた深さを有するノードから、同一の親ノードを有する８つのノードを決定することと、８つのノードの形状データに対してアップサンプリング操作を実行することとを更に含む。
【００９１】
[0099]  いくつかの実装形態において、畳み込みニューラルネットワークは、逆畳み込み層を含み、及び本方法は、逆畳み込み層に関連付けられた深さを有するノードから、同一の親ノードを有する８つのノードを決定することと、八分木に基づいて８つのノードのノード近傍を決定することであって、ノード近傍は、８つのノードの少なくとも１つに隣接するノードを含む、決定することと、ノード近傍に対して８つのノードの逆畳み込み層の操作を実行することとを更に含む。
【００９２】
[00100]  いくつかの実装形態において、インデクス、ラベル、形状データ及び階層構造の少なくとも１つは、連続ベクトルとして定義される。
【００９３】
[00101]  いくつかの実装形態において、畳み込み層の畳み込み操作を実行することは、グラフィック処理装置（ＧＰＵ）で畳み込み層の畳み込み操作を実行することを含む。
【００９４】
[00102]  いくつかの実装形態において、コンピュータ可読媒体に有形的に保存された命令を含むコンピュータプログラム製品であって、命令は、機械によって実行された場合、機械に、３次元形状を表すための八分木であって、八分木のノードは、空ノード及び非空ノードを含み、空ノードは、３次元形状を含まず、且つ八分木の葉ノードであり、及び非空ノードは、３次元形状の少なくとも一部を含む、八分木を取得することと、畳み込みニューラルネットワークの畳み込み層に関連付けられた深さを有する八分木のノードについて、畳み込み層の出力を取得するために畳み込み層の畳み込み操作を実行することとを含む方法を実施させる、コンピュータプログラム製品が提供される。
【００９５】
[00103]  いくつかの実装形態において、３次元形状を表すための八分木を取得することは、３次元形状の空間分割に基づいて、八分木のノードのインデクス、八分木のノードのラベルであって、ノードが空ノード又は非空ノードであるか否かを少なくとも示すラベル、八分木のノードの形状データであって、ノード内の３次元形状の形状を少なくとも示す形状データ及び八分木の階層構造の少なくとも１つを取得することを含む。
【００９６】
[00104]  いくつかの実装形態において、３次元形状を表すための八分木を取得することは、３次元形状を表すデータ信号を受信することと、データ信号を受信することに応答して、３次元形状を表すための八分木を決定することとを含む。
【００９７】
[00105]  いくつかの実装形態において、畳み込み層の畳み込み操作を実行することは、畳み込み層に関連付けられた深さを有するノードから、同一の親ノードを有する８つのノードを決定することと、八分木に基づいて８つのノードのノード近傍を決定することであって、ノード近傍は、８つのノードの少なくとも１つに隣接するノードを含む、決定することと、ノード近傍に対して８つのノードの畳み込み層の操作を実行することとを含む。
【００９８】
[00106]  いくつかの実装形態において、畳み込みニューラルネットワークは、プーリング層を含み、及び本方法は、プーリング層に関連付けられた深さを有するノードから、同一の親ノードを有する８つのノードを決定することと、８つのノードの形状データに対してダウンサンプリング操作を実行することとを更に含む。
【００９９】
[00107]  いくつかの実装形態において、畳み込みニューラルネットワークは、逆プーリング層を含み、及び本方法は、逆プーリング層に関連付けられた深さを有するノードから、同一の親ノードを有する８つのノードを決定することと、８つのノードの形状データに対してアップサンプリング操作を実行することとを更に含む。
【０１００】
[00108]  いくつかの実装形態において、畳み込みニューラルネットワークは、逆畳み込み層を含み、及び本方法は、逆畳み込み層に関連付けられた深さを有するノードから、同一の親ノードを有する８つのノードを決定することと、八分木に基づいて８つのノードのノード近傍を決定することであって、ノード近傍は、８つのノードの少なくとも１つに隣接するノードを含む、決定することと、ノード近傍に対して８つのノードの逆畳み込み層の操作を実行することとを更に含む。
【０１０１】
[00109]  いくつかの実装形態において、インデクス、ラベル、形状データ及び階層構造の少なくとも１つは、連続ベクトルとして定義される。
【０１０２】
[00110]  主題が構造的特徴及び／又は方法論理動作に固有の言語で記述されてきたが、添付の請求項により規定される主題は、上述の特定の特徴及び動作に限定されないことを理解されたい。逆に、上述の特定の特徴及び動作は、請求項を実現するための例示的な形式に過ぎない。
【図１】
2020518882.tif 000008
【図２】
2020518882.tif 000009
【図３】
2020518882.tif 000010
【図４】
2020518882.tif 000011
【図５】
2020518882.tif 000012
【図６】
2020518882.tif 000013
【図７】
2020518882.tif 000014
【図８】
2020518882.tif 000015
【図９】
2020518882.tif 000016
【国際調査報告】
2020518882.tif 000017
2020518882.tif 000018
2020518882.tif 000019