JP2021140767A - 合成データ生成のためのシーン構造の教師なし学習 - Google Patents
合成データ生成のためのシーン構造の教師なし学習 Download PDFInfo
- Publication number
- JP2021140767A JP2021140767A JP2021019433A JP2021019433A JP2021140767A JP 2021140767 A JP2021140767 A JP 2021140767A JP 2021019433 A JP2021019433 A JP 2021019433A JP 2021019433 A JP2021019433 A JP 2021019433A JP 2021140767 A JP2021140767 A JP 2021140767A
- Authority
- JP
- Japan
- Prior art keywords
- scene
- data
- training
- rules
- image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012549 training Methods 0.000 claims abstract description 161
- 238000000034 method Methods 0.000 claims description 134
- 230000015654 memory Effects 0.000 claims description 75
- 238000009877 rendering Methods 0.000 claims description 48
- 238000013528 artificial neural network Methods 0.000 claims description 41
- 238000005070 sampling Methods 0.000 claims description 14
- 238000013135 deep learning Methods 0.000 claims description 10
- 238000004088 simulation Methods 0.000 claims description 8
- 239000013598 vector Substances 0.000 claims description 7
- 238000012360 testing method Methods 0.000 claims description 3
- 238000012804 iterative process Methods 0.000 claims 1
- 230000002194 synthesizing effect Effects 0.000 claims 1
- 230000000007 visual effect Effects 0.000 abstract description 5
- 238000012545 processing Methods 0.000 description 86
- 238000010801 machine learning Methods 0.000 description 84
- 230000008569 process Effects 0.000 description 56
- 238000003860 storage Methods 0.000 description 55
- 238000013500 data storage Methods 0.000 description 48
- 238000013473 artificial intelligence Methods 0.000 description 46
- 238000009826 distribution Methods 0.000 description 46
- 238000003384 imaging method Methods 0.000 description 30
- 230000006870 function Effects 0.000 description 28
- 239000002131 composite material Substances 0.000 description 20
- 238000004891 communication Methods 0.000 description 16
- 238000012800 visualization Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 11
- 230000002093 peripheral effect Effects 0.000 description 11
- 230000004913 activation Effects 0.000 description 9
- 238000001994 activation Methods 0.000 description 9
- 230000006399 behavior Effects 0.000 description 9
- 230000009471 action Effects 0.000 description 8
- 239000003795 chemical substances by application Substances 0.000 description 8
- 230000000670 limiting effect Effects 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000001514 detection method Methods 0.000 description 7
- 230000002787 reinforcement Effects 0.000 description 7
- 230000011218 segmentation Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 6
- 238000007667 floating Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 5
- 210000000056 organ Anatomy 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 238000011960 computer-aided design Methods 0.000 description 4
- 210000002569 neuron Anatomy 0.000 description 4
- 238000007781 pre-processing Methods 0.000 description 4
- 230000002829 reductive effect Effects 0.000 description 4
- 238000012163 sequencing technique Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000003190 augmentative effect Effects 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 238000002059 diagnostic imaging Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 238000002595 magnetic resonance imaging Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000001052 transient effect Effects 0.000 description 3
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000019771 cognition Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000001816 cooling Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 238000012706 support-vector machine Methods 0.000 description 2
- 238000013526 transfer learning Methods 0.000 description 2
- 241000282412 Homo Species 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- SAZUGELZHZOXHB-UHFFFAOYSA-N acecarbromal Chemical compound CCC(Br)(CC)C(=O)NC(=O)NC(C)=O SAZUGELZHZOXHB-UHFFFAOYSA-N 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000012884 algebraic function Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- ZYXYTGQFPZEUFX-UHFFFAOYSA-N benzpyrimoxan Chemical compound O1C(OCCC1)C=1C(=NC=NC=1)OCC1=CC=C(C=C1)C(F)(F)F ZYXYTGQFPZEUFX-UHFFFAOYSA-N 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000002591 computed tomography Methods 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000012417 linear regression Methods 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 238000007477 logistic regression Methods 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 230000007115 recruitment Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000003325 tomography Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/088—Non-supervised learning, e.g. competitive learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/51—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/54—Browsing; Visualisation therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/27—Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
- G06N5/025—Extracting rules from data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/25—Determination of region of interest [ROI] or a volume of interest [VOI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/774—Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/20—Scenes; Scene-specific elements in augmented reality scenes
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
- A63F13/67—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor adaptively or by learning from player actions, e.g. skill level adjustment or by storing successful combat sequences for re-use
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
- G06F18/2148—Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the process organisation or structure, e.g. boosting cascade
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
- G06F18/2155—Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the incorporation of unlabelled data, e.g. multiple instance learning [MIL], semi-supervised techniques using expectation-maximisation [EM] or naïve labelling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/61—Scene description
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Multimedia (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Databases & Information Systems (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Probability & Statistics with Applications (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Computer Hardware Design (AREA)
- Processing Or Creating Images (AREA)
- Image Analysis (AREA)
Abstract
【課題】規則セット又はシーン文法を使用して、シーン内の物体の構造及び視覚的パラメータを表すシーン・グラフを生成できるようにする。【解決手段】レンダラは、このシーン・グラフを入力として取得することができ、シーン・グラフ内で識別されたアセット用のコンテンツのライブラリを用いて、シーン内の物体を手動で配置する必要なく、所望のシーン構造を有するシーンの合成画像を生成することができる。この方法で合成された画像又は環境を使用して、たとえば、実世界のナビゲーション用アプリケーションの訓練データを生成すること、及びゲーム又は仮想現実体験用の仮想世界を生成することができる。【選択図】図6
Description
本特許出願は、2020年3月6日出願の米国仮特許出願第62/986,614号、名称「Bridging the Sim−to−Real Gap: Unsupervised Learning of Scene Structure for Synthetic Data Generation」の優先権を主張し、あらゆる目的のために、その全体を本明細書に組み込む。
ゲーム、アニメーション、シミュレーションなどのアプリケーションは、より詳細でリアルな仮想環境にますます依存している。多くの場合、これらの環境においてシーンを合成するため、及び機械学習用のラベル付き合成データセットを作成するために、手続き型モデルが使用される。リアルで多様なシーンを生成するには、手続き型モデルを管理するいくつかのパラメータが、専門家によって慎重に調整されなければならない。これらのパラメータは、生成されるシーンの構造(たとえば、シーン内に車が何台あるか)と、物体を有効な構成に配置するパラメータとの両方を制御する。これらのパラメータを手動で決定及び調整するため、並びにこれらのシーンの他の態様を構成するための複雑さ及び知識量は、広範な採用を制限する可能性があり、生成される環境の現実感又は範囲を制限する可能性もある。
図面を参照しながら、本開示による様々な実施例を説明する。
様々な実施例による手法は、合成の画像及びデータセットの生成を提供することができる。具体的には、様々な実施例は、その環境内の物体又は「アセット」の配置及び外観を定義する規則のセットに少なくとも部分的に基づいて、仮想シーン又は環境を生成することができる。これらのデータセットは、仮想環境を生成するためだけでなく、ターゲットとなるリアルなデータセットに関連する大規模な訓練データセットを生成するために使用することができる。合成データセットは、自律運転及び半自律運転における認知及び計画、屋内シーンの認知、生成コンテンツの作成、ロボット制御などのタスクで使用する機械学習モデルを訓練するための魅力的な機会を提供する。合成データセットは、グラフィックス・エンジンを介して、セグメント化、深さ、又は材料情報などの、ラベルが高価であるか、又は入手さえ不可能であるタスクのためのグラウンド・トゥルース・データを提供することができる。図1Aの画像100、及び図1Bの画像150に示すように、この画像は、これらの画像にレンダリングされた自動車102、152、及び人104に対する境界ボックス又はラベルなどの、これらの画像にレンダリングされた物体に対するグラウンド・トゥルース・データを含み得る。こうした合成データセットに新しいタイプのラベルを追加することは、新しいツール、及び、アノテータの採用、訓練、及び監視を必要とする時間のかかるアノテーション作業に着手するのではなく、レンダラへの呼出しを行うことによって実行され得る。
従来の手法を使用して合成データセットを作成するには、様々な障害がある。シーンを構成する3次元コンピュータ支援設計(3D CAD)モデルなどのコンテンツは、オンライン・アセット・ストアなどのソースから取得され得るが、多くの場合、アーティストは、これらのアセットを現実的なレイアウトに配置することによってシーンを合成する複雑な手続き型モデルを記述しなければならない。これは、多くの場合、手続き型モデルを慎重に調整するために、大量の実画像を参照する必要があり、非常に時間のかかるタスクになる可能性がある。街路シーンなどのシナリオの場合、ある都市に関連する合成シーンを作成するために、別の都市用に作成された手続き型モデルを最初から調整する必要があり得る。様々な実施例による手法は、これら及び他のこうしたタスクを処理するための自動化された手法を提供することを試みることができる。
一手法では、合成によって生成されたシーンにおけるシーン・パラメータは、生成された(たとえば、レンダリングされた)合成データと実データとの視覚的類似性を活用することによって最適化され得る。シーン構造及びパラメータは、シーン・グラフで表現することができ、シーンの所与の確率文法からランダムなシーン構造(及び、パラメータ)をサンプリングし、次いで学習済みモデルを使用してシーン・パラメータを修正することによって、データが生成される。こうした手法はシーン・パラメータのみを学習するので、シミュレーションと現実のギャップはシーン構造内に残る。たとえば、マンハッタンでは、イタリアの古風な村よりも車、人、及び建物の密度が高いことは理解できるだろう。グラフ及び文法文字列などの構造データの生成モデルに関する他の作業は、現実的なサンプルを生成する訓練のために、大量のグラウンド・トゥルース・データを必要とする。しかし、シーン構造は、アノテーションには非常に煩雑であるので、ほとんどの実データセットにおいて利用可能ではない。
様々な実施例による手法は、実画像から教師なしで学習された合成シーンの手続き型生成モデルを利用することができる。少なくとも一実施例では、所与の確率シーン文法から規則展開をサンプリングし、シーン・パラメータを生成するように学習することによって、物体ごとに1つ又は複数のシーン・グラフが生成され得る。生成されることになるシーン構造の離散的性質、及び生成プロセスにおける微分不可能なレンダラの存在に少なくとも部分的に起因して、こうしたタスクについて教師なしで学習することは困難であり得る。この目的のために、個々のシーンについて決定され得る特徴空間発散を利用して、生成された(たとえば、レンダリングされた)シーンを実シーンと比較することができる。こうした手法は、強化学習を用いた訓練のための信頼度割当てを可能にすることができる。2つの合成データセット及び実データセットによる実験では、少なくとも一実施例による手法が、生成されたデータ内のシーン構造とターゲット・データ内のシーン構造との間の分布ギャップを大幅に低減し、ターゲット構造の分布と密接に整合することを学習することによってシーン構造に関する人間の事前分布(prior)を改善することが示された。実データセットでは、最小限の人間の事前分布から開始して、現実のターゲット・シーンの構造分布をほぼ正確に復元することができ、これは、このモデルがラベルなしで訓練され得ることを考えると注目に値する。この生成されたデータで訓練された物体検出器は、たとえば、人間の事前分布を用いて生成されたデータで訓練された検出器よりも優れていることが示されており、実データを用いて生成されたレンダリング画像の分布類似度の尺度における改善を実証する。
様々な実施例による手法は、事前分布手法のようにシーンごとに推論を実行する代わりに、ターゲット分布に似た新しいデータを生成することができる。一手法は、GANのような目的関数の変分上限を使用して微分不可能なシミュレータを最適化すること、又は現実の軌道とシミュレートされた軌道とを直接比較することによって制御タスクのシミュレータ・パラメータを最適化することを学習することである。少なくとも一実施例による手法は、敵対的訓練を使用する代わりに、(強化学習を用いて)分布マッチングの目的関数を最適化しながら、文法に制約された離散シーン構造を生成することを学習することができる。こうした手法は、単一の物体又は顔の画像とは対照的に、大きく複雑なシーンを生成するために使用することができる。
少なくとも一実施例では、グラフ及びツリーからなる生成モデルが、文法ベースのモデルよりも柔軟性を有するより豊かな構造のグラフを生成することができるが、プログラム及びシーン・グラフなどの定義された構文を伴う場合は、構文的に正しいグラフを生成することができない場合がある。文法ベースの方法は、プログラムの翻訳、条件付きプログラムの生成、文法の帰納、及び分子などの構文を有する構造の生成モデリングなど、様々なタスクに使用されてきた。しかし、これらの方法は、学習のためにグラウンド・トゥルース・グラフ構造にアクセスできることを前提としている。様々な実施例による手法は、グラウンド・トゥルース・シーン・グラフのアノテーションなしで、教師なしの方法でモデルを訓練することができる。
少なくとも一実施例では、生成されることになる仮想シーン又は環境について、規則のセットが生成又は取得され得る。たとえば、アーティストは、シーンに使用されることになる規則のセットを生成若しくは提供するか、又は様々なシーンの規則セットのライブラリから選択してもよい。これは、たとえば、グラフィカル・インターフェースを介してシーン・タイプの選択肢をブラウジングし、ヨーロッパの都市、アメリカの田舎、地下牢などのシーン・タイプに対応し得る関連する規則のセットを有するシーン・タイプを選択することを含んでもよい。所与の仮想又は「合成」シーンの場合、アーティストは、シーン内の様々な物体(たとえば、「アセット」)のコンテンツを作成又は取得してもよく、これらのコンテンツは、物体をレンダリングするために使用できるモデル、画像、テクスチャ、及び他の特徴を含んでもよい。提供される規則は、これらの物体が、所与のシーン内で互いにどのように関連すべきかを示すことができる。
たとえば、図2Aは、様々な実施例により利用されることが可能な、例示的な規則セット200を示す。この規則セットは、いくつかの実施例において、任意の数の規則、又は最大数まで含むことができる。各規則は、合成シーンで表現されることになる少なくとも2つのタイプの物体間の関係を定義することができる。この規則セットは、道路及び歩道があるロケーションに適用される。規則セット200に示すように、道路は、最初の規則によれば、車線を有することができる。追加の規則によれば、車線は、1車線又は複数の土地とすることができ、各車線は、歩道、及び1台又は複数の車に関連付けられてもよい。図示のように、規則は、物体のタイプが、所与の物体タイプに関連付けられたそのタイプの物体の1つ又は複数のインスタンスを有することができるかどうかを定義することもできる。別の規則のペアは、このシーン内の歩道上に1人又は複数の人が存在し得ることを示している。
こうした規則を使用して、生成されることになるシーンを表す1つ又は複数のシーン構造を生成することができる。図2B及び図2Cに、2つの例示的なシーン構造230、260が示されている。これらの各構造では、道路は、階層ツリー構造におけるメインの親ノードとして示されている。規則セット200からの規則、及びそこで定義された関係は、それらの関係に適合する異なるツリー構造を生成するために使用することができる潜在的な親子関係を決定する。少なくとも一実施例では、生成モデルは、適切なサンプリング又は選択プロセスを使用して、規則セットからこれらのシーン構造を生成することができる。図2Bの構造230では、各車線に歩道がある2車線道路があり、車線の一方に車がある。また、車がある車線脇の歩道の近くに、木及び人が存在する。図2Cの構造260では、3台の車及び歩道がある1車線道路があり、歩道の近くに2人の人、及び木がある。見てわかるように、これらの構造は、同じ規則セットから生成された2つの異なるシーンを表している。こうした手法を使用して、選択された規則セットにすべて従った物体構造のバリエーションを含む仮想環境を構築、補足、拡張、生成、又は合成することができる。こうした手法を使用すると、ユーザがこれらの物体を手動で選択又は配置することなく、単一の規則セットを使用して、ランダムな又はバリエーション・ポリシーに従うことができるバリエーションとともに、所望の大きさの環境を生成することができる。こうした方法は、教師なしの方法で、実画像から合成シーンを生成するために使用することができる。少なくとも一実施例では、こうした手法は、シーン構造の生成モデルを学習することができ、そこからのサンプルを(追加のシーン・パラメータを用いて)レンダリングして、合成画像及びラベルを作成することができる。少なくとも一実施例では、こうした手法を使用して、ラベル付けされていない実データを用いて、適切なラベルを有する合成訓練データを生成することができる。規則セット及びラベル付けされていない実データは、多様なシーン構造のセットを生成することができる生成モデルへの入力として提供され得る。
少なくとも一実施例による手法は、合成シーンのためのこうした生成モデルを学習することができる。具体的には、実画像XRのデータセットの場合、問題は、XRを表す、画像X(θ)及びラベルY(θ)の合成データD(θ)=(X(θ),Y(θ))を作成することであり、ここで、θは生成モデルのパラメータを表す。少なくとも一実施例では、合成データDが、抽象的なシーン表現を作成するという出力であると規定し、そのシーン表現をグラフィックス・エンジンを用いてレンダリングすることによって、グラフィックス・エンジン及びレンダリングの進歩を活用することができる。レンダリングにより、X(θ)(及び、その対応するアノテーションY(θ))における低レベルの画素情報をモデル化する必要がないことを保証することができる。サンプリングされたシーンの意味的有効性を保証するには、それらの構造に少なくともいくつかの制約を課す必要があり得る。シーン文法は、規則のセットを使用して、サンプリング可能なシーンの空間を大幅に削減し、学習を、より構造化された扱いやすい問題にする。たとえば、シーン文法は、車は道路上にのみ存在することができ、暗黙的に学習する必要がないことを明示的に強制することができる。様々な実施例による手法は、確率シーン文法を使用することによってこれを部分的に活用することができる。確率文脈自由文法(PCFG:probabilistic context−free grammar)に課された事前分布から、シーン・グラフ構造をサンプリングすることができ、この事前分布は、本明細書において構造事前分布と呼ばれる。シーン・グラフ内のすべてのノードについて、パラメータが、パラメータ事前分布からサンプリングされ、各ノードの新しいパラメータを予測するように学習され、構造をそのままの状態に保つことができる。したがって、結果として生成されるシーンは、(文脈自由である)構造事前分布、及び学習済みのパラメータ分布からもたらされ、これにより、シーン構造に、シミュレーションと現実のギャップが生じる可能性がある。
様々な実施例による手法は、画像から合成シーンの教師なしの文脈依存構造分布を学習することによって、少なくともこのギャップを軽減することができる。少なくとも一実施例では、1つ又は複数のシーン・グラフを、抽象的なシーン表現として使用することができ、この抽象的なシーン表現は、ラベルを用いて対応する画像にレンダリングされ得る。図3A〜図3Cは、こうしたプロセスの異なる段階で使用され得る構成要素を示す。図3Aは、規則サンプルから生成されたロジットのセット300を示しており、所与のサンプルが、次のロジットを決定するために使用される。図3Bは、シーン・グラフを生成する際に利用され得る対応するマスク330を示す。シーン・グラフの生成プロセスでは、ロジット及びマスクの形状はTmax×Kである。図3において、パターン化されていない(たとえば、白一色の)領域は、より高い値を表し、パターンで塗りつぶされた領域は、より低い値を表す。こうしたプロセスは、各時間ステップにおいて、規則を自己回帰的にサンプリングし、そのサンプル上で条件となる次の規則のためのロジットを予測し、文脈依存性を捕捉することができる。図3Cに示すように、サンプリングを使用して、シーン構造362を生成するとともに、そのシーン構造のノードのパラメータを決定することができる。これらのパラメータは、たとえば、ロケーション、高さ、及びポーズのような情報を含むことができる。これら及び他のパラメータ366をサンプリングし、シーン構造内の各ノードに適用して、完全なシーン・グラフを生成することができる。したがって、こうしたプロセスは、文法からサンプリングされた規則を利用し、これらをグラフ構造に変換することができる。この実例では、完全な文法文字列から、レンダリングが可能な物体のみが保持される。すべてのノードのパラメータは、事前分布からサンプリングされ得るか、又は任意選択で、学習される。生成されたシーン・グラフは、図示のようにレンダリングされ得る。こうした生成モデルは、所与の確率シーン文法から展開規則を逐次的にサンプリングして、レンダリングされるシーン・グラフを生成することができる。このモデルは、こうした設定に適応できるように特別に設計された特徴マッチング・ベースの分布発散を使用して、教師なしで強化学習を用いて訓練され得る。
少なくともいくつかの実施例では、シーン・グラフは、コンピュータ・グラフィックス及びビジョンなどの分野において、各ノードがそのパラメータとともにシーン内の物体を記述する簡潔な階層的方法でシーンを記述することができるので、有利であり得る。パラメータは、3Dアセット又はポーズなどの外見に関連し得る。親子関係は、親に対する子ノードのパラメータを定義することができ、シーンの直接的な編集及び操作を可能にする。さらに、カメラ、照明、天気、及び他の効果が、シーン・グラフに符号化され得る。対応する画素及びアノテーションを生成することは、物体をグラフィックス・エンジン内のシーンに配置し、定義されたパラメータを用いてレンダリングすることに相当し得る。
少なくとも一実施例では、規則のセットを、規則の数に等しい長さを有するベクトルとして定義することができる。次いで、ネットワークを使用して、これらの規則のうちどれを展開するかを決定することができ、これらの規則は、異なる時間ステップで逐次的に展開され得る。生成されることになるシーンごとに、セット内のすべての関連する規則にわたって、カテゴリカル分布が生成され得る。次いで、生成ネットワークは、このカテゴリカル分布からサンプリングして、このシーンに使用する規則を選択することができ、ここで、カテゴリカル分布は、特定の規則が選択されないようにゼロの確率を有することを強制されるようにマスクされ得る。ネットワークは、各物体に対してどの規則又は選択肢を展開するかを推論することもできる。少なくとも一実施例では、この生成モデルは、再帰型ニューラル・ネットワーク(RNN:recurrent neural network)とすることができる。このRNNに、シーンを定義する潜在ベクトルを入力して、決定された確率に基づいてシーンの規則を逐次的に生成及び展開することができる。RNNは、すべての規則が処理されるまで(又は、規則の最大数に達するまで)、ツリー又はスタックを下に進める。
1つ又は複数の実施例では、図3Aの各行は、サンプル規則に対応することができる。図3に示すように、次いで、マスク330を使用して、所与の時間ステップでどの規則を展開すべきかをモデルに示すことができる。このプロセスは、有効なシーン記述を生成するために反復的に実行され得る。さらに、シーン・グラフ内の物体間の関係は、車は車線の外側に又は歩道上に位置することはできないなど、物体が指定された関係以外で存在することができないように、シーンに対する幾何学的制約も提供する。ノードについてのパラメータは、ニュージーランドの田舎の道路が、タイの大都市の道路とは異なって見えるように、様々な視覚属性を定義する。少なくともいくつかの実施例では、歩道が特定の幅でのみもたらされる、道路は最大で限定数の車線のみを有するなど、特定のタイプの物体についてこれらの様々なパラメータに設定される範囲が存在してもよい。
これらのデータ構造を使用して、追加の学習を実行することもできる。たとえば、このデータを下流で使用してモデルを訓練し、たとえば捕捉された画像データ内で車を検出することができる。この構造は、たとえば、モデルが、シーン構造のどこで車が発生するかに基づいて車をより迅速に識別できるように、生成された画像とともに保持され得る。
少なくとも一実施例では、文脈自由文法Gを、記号(たとえば、終端記号及び非終端記号)及び展開規則のリストとして定義することができる。非終端記号は、新しい記号のセットへの少なくとも1つの展開規則を有する。文法からのサンプリングは、非終端記号のみが残るまで、開始記号(又は、初期記号若しくは親記号)を展開することを含み得る。展開規則の総数Kは、文法Gにおいて定義され得る。シーン文法を定義し、1つ又は複数のシーン・グラフを使用して、表現された文法から文字列をサンプリングすることができる。シーン・グラフごとに、構造Tを文法Gからサンプリングし、続いて、グラフ内のすべてのノードについて対応するパラメータαをサンプリングすることができる。少なくとも一実施例では、このシーン・グラフとともに畳み込みネットワークを使用して、グラフ内のすべての単一ノードについて、パラメータの1つのセットをサンプリングする。
様々な手法において、文法によって制約されたグラフを有する生成モデルを利用することができる。少なくとも一実施例では、再帰型ニューラル・ネットワークを使用して、自己回帰的な方法で、潜在ベクトルzを、すべての可能な文法規則にわたる正規化されていない確率にマッピングすることができる。こうした実施例では、これは最大Tmaxステップの間、継続することができる。少なくとも一実施例では、時間ステップごとに1つの規則rtをサンプリングすることができ、この規則を使用して、次の規則ft+1に対するロジットを予測することができる。これにより、このモデルは、シーン・グラフの従来の手法の文脈自由の性質とは対照的に、文脈依存関係を容易に捕捉できるようになる。最大限でTmaxでサンプリングされた規則のリストの場合、図3に示すように、各規則展開をグラフ内のノード展開として扱うことによって、対応するシーン・グラフを生成することができる。
各時間ステップtにおいてこれらのサンプリングされた規則の有効性を保証するために、展開されていない非終端ノードの後入れ先出し(LIFO:last−in−first−out)スタックが維持され得る。ノードは、スタックからポップされ、サンプリングされた規則展開に従って展開され、次いで、結果として得られる新しい非終端ノードが、スタックにプッシュされる。非終端記号がポップされるとき、サイズKのマスクmtを生成することができ、これは、その非終端記号からの有効な規則の場合は1であり、それ以外の場合は0である。次の展開に対するロジットをftとすると、規則の確率rt,kは、
により得られる。
により得られる。
このマスクされた多項分布からのサンプリングは、有効な規則のみがrtとしてサンプリングされることを保証することができる。ロジット及びサンプリングされた規則を(ft、rt)∀t∈1...Tmaxとすると、zが与えられた対応するシーン構造Tの確率は、
により得られる。
により得られる。
これをすべてまとめると、モデルからシーン構造T〜qθ(・|z)をサンプリングし、続いてシーン内のすべてのノードのパラメータα〜q(・|T)をサンプリングし、画像v’=R(T,α)〜qIをレンダリングすることによって、画像を生成することができる。あるv’〜qIに対して、パラメータα及び構造Tの場合、
qI(v’|z)=q(α|T)qθ(T|z)
のように、仮定され得る。
qI(v’|z)=q(α|T)qθ(T|z)
のように、仮定され得る。
こうした生成モデルには、様々な訓練手法を利用することができる。少なくとも一実施例では、この訓練は、変分推論を使用して、又は分布類似度の尺度を最適化することによって実行することができる。変分推論は、近似学習済み事後分布(posterior)を導入することによって、再構築ベースの目的関数を使用することを可能にする。変分推論を使用してこうしたモデルを訓練することは、少なくとも部分的には離散サンプリングから生じる複雑さ、及び生成プロセスにレンダラがあることに起因して、困難であり得る。さらに、ここでの認識ネットワークは、逆グラフィックスを行うことに相当することになり、それ自体が非常に困難な問題である。少なくとも一実施例では、生成されたデータとターゲット・データとの分布類似度の尺度を最適化することができる。生成モデルの敵対的訓練は、評論家(critic)の能力を慎重に制限することなどによって、強化学習(RL:reinforcement learning)とともに利用され得る。少なくとも一実施例では、強化学習を使用して、シーン・グラフの離散生成モデルを訓練することができる。すべてのサンプルに対してサンプルを計算することができ、これにより訓練プロセス全体を大幅に改善することができる。
生成モデルは、ある特徴抽出器φの潜在空間における実データの特徴の分布に一致するように訓練され得る。現実の特徴分布は、あるv〜pIに対して、pf s.t F〜pf⇔F=φ(v)で定義され得る。同様に、生成された特徴分布は、あるv〜qIに対して、qf s.t F〜qf⇔F=φ(v)により得られるように定義され得る。少なくとも一実施例では、分布マッチングは、サンプルからpf、qfを近似計算し、pfからqfへのKL発散を最小化することによって達成することができる。少なくとも一実施例では、訓練目的関数は、
により得られる。
により得られる。
真の基礎となる特徴分布qf及びpfは、計算するには扱いにくい場合がある。少なくとも一実施例では、カーネル密度推定(KDE:kernel density estimation)を用いて計算される近似値
及び
を使用することが可能である。例示的な一手法は、V={v1,...,vl}及びB={v’1,...,v’m}を、実画像及び生成された画像のバッチとすることができる。B、Vを用いてKDEを実行して、qf、pfを推定すると、
になり、ここで、KHは、帯域幅行列Hを有する標準の多変量正規カーネルである。ここでは、H=dIを使用することができ、dは特徴空間の次元数である。
及び
を使用することが可能である。例示的な一手法は、V={v1,...,vl}及びB={v’1,...,v’m}を、実画像及び生成された画像のバッチとすることができる。B、Vを用いてKDEを実行して、qf、pfを推定すると、
になり、ここで、KHは、帯域幅行列Hを有する標準の多変量正規カーネルである。ここでは、H=dIを使用することができ、dは特徴空間の次元数である。
少なくとも一実施例による生成モデルは、各ステップで離散的な(たとえば、微分不可能な)選択を行うことができ、その結果、強化学習技法を使用して目的関数を最適化することが有利になり得る。具体的には、これは、移動平均基線長とともに、REINFORCEスコア関数推定器を使用することを含むことができ、これにより、勾配は、
により得られ、ここで、Mはバッチ・サイズであり、
及び
は、上記で定義された密度推定値である。
により得られ、ここで、Mはバッチ・サイズであり、
及び
は、上記で定義された密度推定値である。
上記の勾配は、条件付きqI(v’|z)ではなく、生成された画像v’の周辺確率qI(v’)を計算する必要があること留意されたい。生成された画像の周辺確率を計算することは、潜在変数zに対する扱いにくい周辺化を含む。
これを回避するために、均一にサンプリングされた、セットZからの固定された有限数の潜在ベクトルを使用して、簡単に周辺化することが可能である。これは、
qI(v’)=q(α|T)qθ(T|Z)
に変換される。
これを回避するために、均一にサンプリングされた、セットZからの固定された有限数の潜在ベクトルを使用して、簡単に周辺化することが可能である。これは、
qI(v’)=q(α|T)qθ(T|Z)
に変換される。
文法からサンプリングできる最大長Tmaxのシーン・グラフは有限個しかないので、こうした手法でも十分なモデル化能力を提供することができる。経験的に、規則サンプリングにおける確率性は潜在空間の失われた確率性を補うことができるので、1つの潜在ベクトルを使用することで十分であり得る。
少なくとも一実施例では、事前訓練が重要なステップとなり得る。シーン構造上で、手作業による事前分布が定義され得る。たとえば、単純な事前分布は、運転シーンにおいて1本の道路上に1台の車を置くことであり得る。モデルは、少なくとも部分的に、文法事前分布から文字列(たとえば、シーン・グラフ)をサンプリングし、これらのシーン・グラフの対数尤度を最大化するようにモデルを訓練することによって事前訓練されることが可能である。特徴は、効果的な訓練のために物体の数及びそれらの文脈空間的関係などの構造的シーン情報を捕捉する必要があるので、特徴抽出もまた、分布マッチングの重要なステップであり得る。
モデルの訓練中、サンプリングは、最大限でTmaxステップで生成された不完全な文字列をもたらす可能性がある。したがって、シーン・グラフTは、その長さが最大限でTmaxになるまで繰り返しサンプリングされ得る。これがあまり多くの試行を必要としないことを保証するために、サンプリングされた特徴Fの棄却率rreject(F)が、Fを生成するために使用される単一のシーン・グラフをサンプリングするときの平均失敗サンプリング試行として記録され得る。しきい値fをrreject(F)に設定して、最大許容棄却量、及び重みλを表すことができ、これは、
により得られる元の損失に追加されることが可能である。経験的に、λ=10−2、及びf=1の値は、少なくとも一実施例では良好に機能することが判明した。
により得られる元の損失に追加されることが可能である。経験的に、λ=10−2、及びf=1の値は、少なくとも一実施例では良好に機能することが判明した。
こうした手法は、実データとの視覚的類似性を最適化することによって、合成シーン構造の生成モデルの教師なし学習を提供することができる。シーン構造を推論することは、アノテーションが提供される場合でも困難であることで有名である。様々な実施例による手法は、グラウンド・トゥルース情報なしでこの生成部分を実行することができる。実験により、こうしたモデルは、シーン構造上の妥当な事後分布を学習し、手動で設計された事前分布よりも大幅に改善することが実証されている。手法は、満足のいく結果をもたらすために、シーン構造と合成シーン生成器のパラメータとの両方を最適化することができる。
前述のように、多様なシーン・グラフを生成するこうした手法は、現世界、若しくはターゲットの世界若しくは環境を模倣するシーン又は環境を生成することができる。この世界又は環境についての情報は、実世界又はターゲット世界の画像例の画素から直接学習され得る。こうした手法は、正確な再構築を試みるために使用され得るが、多くの実施例では、これらの実世界又はターゲット世界に少なくとも部分的に基づき得る無限の多様な世界及び環境の生成を可能にすることができる。世界をミクロレベルで説明して物体固有の関係を定義する、規則セット又はシーン文法が提供され得る。たとえば、人が少なくとも各シーン又はイメージのレイアウトを手動で生成する必要がある代わりに、その人は、そのシーン又はイメージを自動的に生成するために使用できる規則を指定又は選択することができる。少なくとも一実施例におけるシーン・グラフは、3次元世界のレイアウトの詳細な説明を提供することができる。少なくとも一実施例では、シーン構造を生成するための規則の再帰的展開を使用して、3次元シーンのレイアウトの完全な表現又は定義を提供する文字列を生成することもできる。前述のように、生成モデルを使用して、展開を実行し、シーン構造を生成することができる。少なくとも一実施例では、このシーン構造は、JSONファイルとして、又は別のこうしたフォーマットを使用して記憶され得る。次いで、このJSONファイルは、画像又はシーンを生成するためのレンダリング・エンジンへの入力として提供され得る。レンダリング・エンジンは、個々の物体をレンダリングする際に使用する適切なアセット・データを引き出すことができる。
前述のように、このレンダリングされたデータを使用して、ゲーミング又はVRアプリケーション用などの仮想環境を提示することができる。このレンダリングを使用して、こうしたアプリケーションのため、並びに、車両ナビゲーション若しくはロボット・シミュレーションなどの自律機械又は半自律機械用の訓練モデルなどの他のアプリケーションための訓練データを生成することもできる。環境が、様々な地理的ロケーション、時点などに適切であり得るように、これらのレンダリング用に選択できるアセットの様々なライブラリが存在してもよい。レンダリングされた画像の各画素は、その画素が表す物体のタイプを示すためにラベル付けされ得る。少なくとも一実施例では、各物体に対して、境界ボックス又は他の位置インジケータ、並びに、3Dシーンの各画素に対して決定された深度、その画素位置における法線などが生成され得る。この情報は、少なくともいくつかの実施例ではデータを抽出するのに適したレンダリング機能を利用することによって、レンダリング・エンジンから抽出され得る。
少なくとも一実施例では、アーティストは、アセットのセットを提供し、規則のセットを選択することができ、そのアーティストによる手動入力なしで仮想環境全体が生成され得る。いくつかの実施例では、そのアーティストが選択できるアセットのライブラリが存在してもよい。たとえば、適切な視覚的物体及びレイアウトを含み、日本の都市に基づいているが、日本の都市に直接対応することも、日本の都市を直接表現することもない環境を生成するために、アーティストは「日本の都市」に対するシーン構造、及び「日本の都市」に対するアセットを選択することができる。いくつかの実施例では、アーティストは、そのアーティストが好きなもの又は嫌いなものを示すことによってこの環境を調整する能力を有してもよい。たとえば、アーティストは、このアプリケーションに対して、街路上に車を望まない可能性がある。したがって、アーティストは、そのアーティストが車を含めたくない、又は少なくとも特定のエリアに含めたくない、若しくは特定の物体タイプに関連付けたくないことを示してもよく、車を削除し、適切な関係を更新した新しいシーン・グラフが生成され得る。いくつかの実施例では、ユーザは、ユーザが好きなもの及びユーザが嫌いなものを示し得るような2つ以上のサブグラフを提供、取得、利用、又は生成することができる。次いで、これらのサブグラフを使用して、よりユーザの期待に沿う新しいシーンを生成することができる。こうした手法により、ユーザは、作成プロセスの専門的知識、又はシーン若しくはシーンのセット内の物体を手動で配置、移動、調整する必要性なしで、特定の外見及び視覚的外観を有する仮想環境を容易に生成できるようになる。こうした手法により、普通の人が、その人の側の最小限の労力で3Dアーティストになることができる。
図4は、様々な実施例により利用されることが可能な、シーンの画像を生成するための実例プロセス400を示す。本明細書で提示する本プロセス及び他のプロセスについて、特に明記しない限り、様々な実施例の範囲内で、同様の順番で若しくは代替的な順番で、又は少なくとも部分的に並行して実行される追加の、より少ない、又は代替的なステップが存在してもよいことが理解されるべきである。この実例では、生成されることになる少なくとも1つのシーンに使用される規則セットが決定402される。これは、他のそうした選択肢のなかでもとりわけ、ユーザがこれらの規則を生成すること、又はいくつかの規則セットから選択することを含んでもよい。セット内の個々の規則は、シーン内の物体のタイプ間の関係を定義することができる。この規則セットは、規則によって定義された物体の関係を含むシーン構造を生成するために、決定された確率に基づき得るようにサンプリング404され得る。少なくとも一実施例では、これは、シーンの物体のタイプに対応する階層のノードを有する階層的シーン構造を含むことができる。これらの物体のそれぞれをレンダリングする際に使用されることになるパラメータが、適切なデータセットからサンプリングすることなどによって決定406され得る。次いで、シーン構造に基づき得るが、個々のノード又は物体に適切なパラメータが適用されたシーン・グラフが生成408され得る。シーン・グラフは、アセット・ライブラリ又は物体コンテンツの他のソースとともに、画像又はシーンを生成するためのレンダラ410又は他の対象に提供410され得る。決定されたシーン・グラフに基づいてレンダリングされた、シーンのレンダリングされた画像が受信412され得る。このレンダリングされた画像は、画像が本明細書に述べるように訓練データとして使用される場合、物体ラベルを含むとともに、シーン構造を保持してもよい。
本明細書に述べるニューラル・ネットワークを訓練するために、様々な手法を使用することができる。たとえば、生成モデルを、実世界の設定で捕捉された画像に対応し得るラベル付けされていない画像を分析するように訓練することができる。次いで、生成ネットワークを、同様の外観、レイアウト、及び他のそうした外見を有するシーンを生成するように訓練することができる。実シーンと合成シーンの両方が存在することができる。これらのシーンを深層ニューラル・ネットワークに渡す際は常に、1,000次元空間などの高次元空間内の位置に対応する特徴のセットがそのシーン内で抽出され得る。その場合、このシーンは、画像内の画素ではなく、この高次元空間内のその特徴の点で構成されていると考えることができる。この特徴空間内の合成シーンに対応する特徴が、実シーンに対応する特徴と整合するように、ネットワークを訓練することができる。このように、特徴空間内で実シーンと合成シーンとの特徴を区別することは、困難であり得る。
少なくとも一実施例では、強化学習を使用してこれを達成することができる。前述のように、目標は2つのデータセット全体を整合させることであり得るが、これは相関関係のない教師なし空間であるので、整合させるべき特定の特徴点に関するデータ又は相関関係はない。多くの状況における目標は、シーンの正確なコピーを生成することではなく、同様のシーンを生成することであるので、この特徴空間内の特徴点の分布を整合させるだけで十分であり得る。したがって、訓練手順は、実シーンと合成シーンとを全体論的に比較することができる。シーンを評価するために、特徴空間内のそのシーンを他のシーンに対する特徴点の分布と比較することができる。様々な手法では、シグナルの比較だけでは、構造が適切であるかどうか以外に、シーンが現実的であるかどうか又は有用であるかどうかを判定することが困難であり得る。したがって、少なくとも一実施例による訓練手法は、データセット全体を見る必要なしに、すべての単一のデータポイント自体からシグナルを抽出することができる。このようにして、特定のシーンがデータセット全体にどの程度良好に整合されているかについて、シグナルを評価することができる。その場合、特定のシーンがすべての合成シーンに分解される尤度を計算することができる。計算は、この特定のシーンが合成である尤度を提供することができる。少なくとも一実施例では、計算は、カーネル密度推定(KDE)を使用することによって実行され得る。KDEを使用して、このシーンが合成シーンの分布に属する確率を得ることができる。KDEを使用して、このシーンが実シーンの分布に属する確率を計算することもできる。少なくとも一実施例では、これらの値の比率を分析することができ、この比率を使用してシステムを最適化することができる。この比率(のログ)をシーンに対する報酬関数として最大化すると、すべての単一のシーンに対して最適化され得るシグナルが提供される。
図5は、少なくとも一実施例により利用されることが可能な、現実的な画像を生成するようにネットワークを訓練するための実例プロセス500を示す。この実例では、図4に関して上述したように、シーン・グラフ及びアセットが取得502される。シーン・グラフ及びアセットを使用して、シーンの合成画像を生成504することができる。この生成された画像に対して、n次元特徴空間内の特徴点のロケーションを決定506することができ506、ここで、nは、シーン・グラフを生成するために使用されるセット内の規則の数に等しくなり得る。生成された画像に対するこの特徴点は、その特徴空間内の合成画像に対する特徴点の分布と比較508され得る。比較に基づいて、この生成された画像が合成であるという第1の確率が決定され得る510。生成された画像に対する特徴点は、その特徴空間内の実画像に対する特徴点の分布とも比較512され得る。比較に基づいて、この生成された画像が現実的であるという第2の確率が決定514され得る。これらの2つの確率の比率を計算516することができ、この比率に対して最適化するために、訓練されているネットワークの1つ又は複数の重みを調整することができる。
別の実施例は、GANの識別器を利用することができる。GANは、識別器部分を使用して、生成されたシーンが現実的であるかどうかを判定するように訓練され得る。次いで、識別器がシーンが現実であると高い確率で判定できるように、ネットワークが最適化され得る。しかし、現在のレンダラは高品質の画像を生成するが、これらの画像は依然として現実の捕捉された画像ではないものとして識別される可能性があり、そのため、画像が構造的に非常に類似している場合でも、識別器が主として違いを区別することが可能であり得るので、こうした手法は困難であり得る。このような場合、レンダリングされた画像は、実画像であるとして識別器を混乱させることはないため、識別器が有益な情報を提供することができないので、GANは訓練中に破綻する可能性がある。少なくとも一実施例では、これらの合成された画像の外観を改善するよう試みるために、この画像データをGANに提供する前に、画像間変換が実行され得る。画像間変換は、実画像と合成画像との間のスタイルのギャップを低減するのに役立つ場合があり、画像を現実ではなく合成に見せることができるテクスチャ又は反射に関連し得る低レベルの視覚的外見に役立つ。これは、たとえば、反射及び他の照明効果を生成するためにレイ・トレーシングを利用するシステムに有利であり得る。
別の実施例では、終了を保証するためのプロセスを使用することができる。ニューラル・ネットワークは、計算上の理由から150ステップなどの一定数のステップを実行するように定義され得る。この数が少なすぎると、分析及び展開されるより多くの規則に基づいてシーン・グラフを完全に生成することができなくなる可能性がある。したがって、生成されたシーン・グラフは不完全となり、不正確なレンダリングをもたらす。少なくとも一実施例では、ネットワークはその限度まで実行可能であり得る。その限度がシーンに対して不十分である場合、残りの特徴を決定することができ、負の報酬をモデルに適用してその特徴をもう一度生成することができる。こうした手法は、本来望まれていたすべての特徴を含まないシーンをもたらす可能性があるが、レンダリング限度に一致するシーンをレンダリングできることを保証する。
少なくとも一実施例では、クライアント・デバイス602は、クライアント・デバイス602上のコンテンツ・アプリケーション604の構成要素と、そのクライアント・デバイス上にローカルに記憶されたデータとを使用して、セッションのためのコンテンツを生成することができる。少なくとも一実施例では、コンテンツ・サーバ620で実行されるコンテンツ・アプリケーション624(たとえば、画像生成又は編集アプリケーション)は、セッション・マネージャ、及びユーザ・データベース634に記憶されたユーザ・データを利用し得るように、少なくともクライアント・デバイス602に関連付けられたセッションを開始することができ、このタイプのコンテンツ又はプラットフォームに必要な場合、コンテンツ・マネージャ626によってコンテンツ632を決定し、レンダリング・エンジンを使用してコンテンツ632をレンダリングし、ダウンロード、ストリーミング、又は別のこうした送信チャネルによって送るのに適した送信マネージャ622を使用して、コンテンツ632をクライアント・デバイス602に送信することができる。少なくとも一実施例では、このコンテンツ632は、決定されたシーン・グラフに基づいてシーンをレンダリングするためにレンダリング・エンジンによって使用され得るアセットを含むことができる。少なくとも一実施例では、このコンテンツを受信するクライアント・デバイス602は、このコンテンツを、対応するコンテンツ・アプリケーション604に提供することができ、このコンテンツ・アプリケーション604は、追加的に又は代替的に、ディスプレイ606を介した画像又はビデオ・コンテンツ、並びに、スピーカ若しくはヘッドフォンなどの少なくとも1つのオーディオ再生デバイス608を介した音声及び音楽などのオーディオなど、クライアント・デバイス602を介した提示用にこのコンテンツの少なくとも一部をレンダリングするためのレンダリング・エンジンを含んでもよい。少なくとも一実施例では、コンテンツが以前にダウンロードされているか、ハード・ドライブ又は光ディスク上にローカルに記憶されている可能性がある場合などに、コンテンツの少なくともその部分についてはネットワーク640を介した送信が必要とされないように、このコンテンツの少なくとも一部は、すでにクライアント・デバイス602上に記憶されているか、クライアント・デバイス602上にレンダリングされているか、又はクライアント・デバイス602にとってアクセス可能であってもよい。少なくとも一実施例では、データ・ストリーミングなどの送信機構を使用して、このコンテンツを、サーバ620又はコンテンツ・データベース634からクライアント・デバイス602に転送することができる。少なくとも一実施例では、コンテンツを生成又は提供するためのコンテンツ・アプリケーション662も含み得るサード・パーティ・コンテンツ・サービス660などの別のソースから、このコンテンツの少なくとも一部を取得又はストリーミングすることができる。少なくとも一実施例では、この機能の一部は、複数のコンピューティング・デバイス、又はCPUとGPUの組合せを含み得る、1つ又は複数のコンピューティング・デバイス内の複数のプロセッサを使用して実行することができる。
少なくとも一実施例では、コンテンツ・アプリケーション624は、コンテンツがクライアント・デバイス602に送信される前にこのコンテンツを決定又は分析することができるコンテンツ・マネージャ626を含む。少なくとも一実施例では、コンテンツ・マネージャ626はまた、提供すべきコンテンツを生成、修正、又は強化することが可能な他の構成要素を含むか、又はそれとともに機能することができる。少なくとも一実施例では、これは、画像又はビデオ・コンテンツをレンダリングするためのレンダリング・エンジンを含むことができる。少なくとも一実施例では、シーン・グラフ生成構成要素628を使用して、規則セット及び他のこうしたデータからシーン・グラフを生成することができる。少なくとも一実施例では、ニューラル・ネットワークも含み得る画像生成構成要素630は、このシーン・グラフから画像を生成することができる。次いで、少なくとも一実施例では、コンテンツ・マネージャ626は、この生成された画像をクライアント・デバイス602に送信させることができる。少なくとも一実施例では、クライアント・デバイス602上のコンテンツ・アプリケーション604はまた、この機能のいずれか又はすべてが、クライアント・デバイス602上で追加的又は代替的に実行され得るように、レンダリング・エンジン、シーン・グラフ生成器612、及び画像生成モジュール614などの構成要素を含んでもよい。少なくとも一実施例では、サード・パーティ・コンテンツ・サービス・システム660上のコンテンツ・アプリケーション662もまた、こうした機能を含むことができる。少なくとも一実施例では、この機能の少なくとも一部が実行されるロケーションは、構成可能であり得るか、又は、他のそうした要因のなかでもとりわけ、クライアント・デバイス602のタイプ若しくは適切な帯域幅を有するネットワーク接続の可用性などの要因に依存し得る。少なくとも一実施例では、コンテンツ生成のためのシステムは、1つ又は複数のロケーションにハードウェアとソフトウェアの任意の適切な組合せを含むことができる。少なくとも一実施例では、1つ又は複数の解像度の生成された画像又はビデオ・コンテンツは、その画像又はビデオ・コンテンツのコピーを記憶しているメディア・ソースからのダウンロード又はストリーミングなどのために、他のクライアント・デバイス650に提供されるか、又は他のクライアント・デバイス650にとって利用可能とすることができる。少なくとも一実施例では、これは、マルチプレーヤ・ゲーム用のゲーム・コンテンツの画像を送信することを含んでもよく、異なるクライアント・デバイスが、1つ又は複数の超解像度を含む異なる解像度でそのコンテンツを表示してもよい。
この実例では、これらのクライアント・デバイスは、任意の適切なコンピューティング・デバイスを含むことができ、これらのコンピューティング・デバイスは、デスクトップ・コンピュータ、ノートブック・コンピュータ、セット・トップ・ボックス、ストリーミング・デバイス、ゲーミング・コンソール、スマートフォン、タブレット・コンピュータ、VRヘッドセット、ARゴーグル、ウェアラブル・コンピュータ、又はスマート・テレビなどを含むことができる。各クライアント・デバイスは、少なくとも1つの有線又は無線ネットワークを介して要求を送出することができ、これらのネットワークは、他のそうした選択肢のなかでもとりわけ、インターネット、イーサネット(登録商標)、ローカル・エリア・ネットワーク(LAN:local area network)、又はセルラー・ネットワークなどを含むことができる。この実例では、これらの要求は、クラウド・プロバイダに関連付けられたアドレスに対して送出することができ、クラウド・プロバイダは、データ・センタ又はサーバ・ファームなどを含み得るクラウド・プロバイダ環境内の1つ又は複数の電子リソースを、動作又は制御してもよい。少なくとも一実施例では、ネットワーク・エッジ上に位置し、クラウド・プロバイダ環境に関連付けられた少なくとも1つのセキュリティ層の外側にある、少なくとも1つのエッジ・サーバによって、要求が受信又は処理されてもよい。このように、クライアント・デバイスがより近接したサーバと対話できるようにすると同時に、クラウド・プロバイダ環境内のリソースのセキュリティを向上させることによって、レイテンシを低減することができる。
少なくとも一実施例では、こうしたシステムは、グラフィカル・レンダリング動作を実行するために使用することができる。他の実施例では、こうしたシステムは、自律機械アプリケーションをテスト又は検証するためのシミュレーション動作を実行するため、又は深層学習動作を実行するためなど、他の目的に使用することができる。少なくとも一実施例では、こうしたシステムは、エッジ・デバイスを使用して実装することができ、又は1つ若しくは複数の仮想機械(VM:virtual machine)を組み込んでもよい。少なくとも一実施例では、こうしたシステムは、少なくとも部分的にデータ・センタ内に、又は少なくとも部分的にクラウド・コンピューティング・リソースを使用して実装することができる。
推論及び訓練の論理
図7Aは、1つ又は複数の実施例に関して推論及び/又は訓練の動作を実行するために使用される推論及び/又は訓練論理715を示す。推論及び/又は訓練論理715に関する詳細事項は、図7A及び/又は図7Bと併せて以下に提供される。
図7Aは、1つ又は複数の実施例に関して推論及び/又は訓練の動作を実行するために使用される推論及び/又は訓練論理715を示す。推論及び/又は訓練論理715に関する詳細事項は、図7A及び/又は図7Bと併せて以下に提供される。
少なくとも一実施例では、推論及び/又は訓練論理715は、1つ又は複数の実施例の態様において推論するように訓練及び/若しくは使用されるニューラル・ネットワークのニューロン若しくは層を構成するための順伝播及び/若しくは出力の重み、及び/若しくは入力/出力データ、及び/若しくは他のパラメータを記憶するためのコード並びに/又はデータ・ストレージ701を、限定することなく含んでもよい。少なくとも一実施例では、訓練論理715は、タイミング及び/又は順序を制御するためのグラフ・コード又は他のソフトウェアを記憶するためのコード及び/又はデータ・ストレージ701を含んでもよく、又はそれに結合されてもよく、コード及び/又はデータ・ストレージ701には、重み及び/又は他のパラメータ情報がロードされて、整数及び/又は浮動小数点ユニット(総称して算術論理演算ユニット(ALU)を含む論理が構成される。少なくとも一実施例では、グラフ・コードなどのコードは、コードが対応するニューラル・ネットワークのアーキテクチャに基づき、重み又は他のパラメータ情報をプロセッサALUにロードする。少なくとも一実施例では、コード及び/又はデータ・ストレージ701は、1つ又は複数の実施例の態様を使用した訓練及び/又は推論中に、入力/出力データ及び/又は重みパラメータを順伝播する間に1つ又は複数の実施例と併せて訓練又は使用されるニューラル・ネットワークの各層の重みパラメータ及び/又は入力/出力データを記憶する。少なくとも一実施例では、コード及び/又はデータ・ストレージ701の任意の部分は、プロセッサのL1、L2、又はL3のキャッシュ、若しくはシステム・メモリを含む他のオン・チップ又はオフ・チップのデータ・ストレージとともに含められてもよい。
少なくとも一実施例では、コード及び/又はデータ・ストレージ701の任意の部分は、1つ若しくは複数のプロセッサ、又は他のハードウェア論理デバイス若しくは回路の内部にあっても外部にあってもよい。少なくとも一実施例では、コード及び/又はコード及び/又はデータ・ストレージ701は、キャッシュ・メモリ、ダイナミック・ランダム・アドレス可能メモリ(「DRAM」:dynamic randomly addressable memory)、スタティック・ランダム・アドレス可能メモリ(「SRAM」:static randomly addressable memory)、不揮発性メモリ(たとえば、フラッシュ・メモリ)、又は他のストレージであってもよい。少なくとも一実施例では、コード及び/又はコード及び/又はデータ・ストレージ701が、たとえばプロセッサの内部にあるか外部にあるかの選択、又はDRAM、SRAM、フラッシュ、若しくは何らか他のタイプのストレージから構成されるかの選択は、オン・チップ対オフ・チップで利用可能なストレージ、実行される訓練及び/又は推論の機能のレイテンシ要件、ニューラル・ネットワークの推論及び/又は訓練で使用されるデータのバッチ・サイズ、又はこれらの要因の何からの組合せに応じて決められてもよい。
少なくとも一実施例では、推論及び/又は訓練論理715は、1つ又は複数の実施例の態様において推論するために訓練及び/若しくは使用されるニューラル・ネットワークのニューロン若しくは層に対応した、逆伝播及び/若しくは出力の重み、及び/若しくは入力/出力データを記憶するためのコード並びに/又はデータ・ストレージ705を、限定することなく含んでもよい。少なくとも一実施例では、コード及び/又はデータ・ストレージ705は、1つ又は複数の実施例の態様を使用した訓練及び/又は推論中に、入力/出力データ及び/又は重みパラメータを逆伝播する間に1つ又は複数の実施例と併せて訓練又は使用されるニューラル・ネットワークの各層の重みパラメータ及び/又は入力/出力データを記憶する。少なくとも一実施例では、訓練論理715は、タイミング及び/又は順序を制御するためのグラフ・コード又は他のソフトウェアを記憶するためのコード及び/又はデータ・ストレージ705を含んでもよく、又はそれに結合されてもよく、コード及び/又はデータ・ストレージ705には、重み及び/又は他のパラメータ情報がロードされて、整数及び/又は浮動小数点ユニット(総称して算術論理演算ユニット(ALU)を含む論理が構成される。少なくとも一実施例では、グラフ・コードなどのコードは、コードが対応するニューラル・ネットワークのアーキテクチャに基づき、重み又は他のパラメータ情報をプロセッサALUにロードする。少なくとも一実施例では、コード及び/又はデータ・ストレージ705の任意の部分は、プロセッサのL1、L2、又はL3のキャッシュ、若しくはシステム・メモリを含む他のオン・チップ又はオフ・チップのデータ・ストレージとともに含められてもよい。少なくとも一実施例では、コード及び/又はデータ・ストレージ705の任意の部分は、1つ又は複数のプロセッサ、又は他のハードウェア論理デバイス若しくは回路の内部にあっても外部にあってもよい。少なくとも一実施例では、コード及び/又はデータ・ストレージ705は、キャッシュ・メモリ、DRAM、SRAM、不揮発性メモリ(たとえば、フラッシュ・メモリ)、又は他のストレージであってもよい。少なくとも一実施例では、コード及び/又はデータ・ストレージ705が、たとえばプロセッサの内部にあるか外部にあるかの選択、又はDRAM、SRAM、フラッシュ、若しくは何らか他のタイプのストレージから構成されるかの選択は、オン・チップ対オフ・チップで利用可能なストレージ、実行される訓練及び/又は推論の機能のレイテンシ要件、ニューラル・ネットワークの推論及び/又は訓練で使用されるデータのバッチ・サイズ、又はこれらの要因の何からの組合せに応じて決められてもよい。
少なくとも一実施例では、コード及び/又はデータ・ストレージ701と、コード及び/又はデータ・ストレージ705は、別々のストレージ構造であってもよい。少なくとも一実施例では、コード及び/又はデータ・ストレージ701と、コード及び/又はデータ・ストレージ705は、同じストレージ構造であってもよい。少なくとも一実施例では、コード及び/又はデータ・ストレージ701と、コード及び/又はデータ・ストレージ705は、部分的に同じストレージ構造で、部分的に別々のストレージ構造であってもよい。少なくとも一実施例では、コード及び/又はデータ・ストレージ701と、コード及び/又はデータ・ストレージ705との任意の部分は、プロセッサのL1、L2、又はL3のキャッシュ、若しくはシステム・メモリを含む他のオン・チップ又はオフ・チップのデータ・ストレージとともに含められてもよい。
少なくとも一実施例では、推論及び/又は訓練論理715は、訓練及び/又は推論コード(たとえばグラフ・コード)に少なくとも部分的に基づく、又はそれにより示される論理演算及び/又は算術演算を実行するための、整数及び/又は浮動小数点ユニットを含む1つ又は複数の算術論理演算ユニット(「ALU」)710を、限定することなく含んでもよく、その結果が、アクティブ化ストレージ720に記憶されるアクティブ化(たとえば、ニューラル・ネットワーク内の層若しくはニューロンからの出力値)を生成してもよく、これらは、コード及び/若しくはデータ・ストレージ701、並びに/又はコード及び/若しくはデータ・ストレージ705に記憶される入力/出力及び/又は重みパラメータのデータの関数である。少なくとも一実施例では、アクティブ化ストレージ720に記憶されるアクティブ化は、命令又は他のコードを実行したことに応答して、ALU710によって実行される線形代数計算及び又は行列ベースの計算に従って生成され、ここでコード及び/或いはデータ・ストレージ705並びに/又はコード及び/或いはデータ・ストレージ701に記憶された重み値は、バイアス値、勾配情報、運動量値などの他の値、又は他のパラメータ若しくはハイパーパラメータとともにオペランドとして使用され、これらのいずれか又はすべてが、コード及び/若しくはデータ・ストレージ705、又はコード及び/若しくはデータ・ストレージ701、又はオン・チップ若しくはオフ・チップの別のストレージに記憶されてもよい。
少なくとも一実施例では、ALU710は、1つ若しくは複数のプロセッサ、又は他のハードウェア論理デバイス若しくは回路内に含まれるが、別の実施例では、ALU710は、それらを使用するプロセッサ又は他のハードウェア論理デバイス若しくは回路の外部にあってもよい(たとえばコプロセッサ)。少なくとも一実施例では、ALU710は、プロセッサの実行ユニット内に含まれてもよく、又は同じプロセッサ内にあるか異なるタイプの異なるプロセッサ(たとえば、中央処理装置、グラフィックス・プロセッシング・ユニット、固定機能ユニットなど)の間で分散されているかのいずれかであるプロセッサの実行ユニットによりアクセス可能なALUバンク内に、他のやり方で含まれてもよい。少なくとも一実施例では、コード及び/又はデータ・ストレージ701、コード及び/又はデータ・ストレージ705、並びにアクティブ化ストレージ720は、同じプロセッサ又は他のハードウェア論理デバイス若しくは回路にあってもよく、別の実施例では、それらは異なるプロセッサ又は他のハードウェア論理デバイス若しくは回路にあってもよく、或いは同じプロセッサ又は他のハードウェア論理デバイス若しくは回路と、異なるプロセッサ又は他のハードウェア論理デバイス若しくは回路との何らかの組合せにあってもよい。少なくとも一実施例では、アクティブ化ストレージ720の任意の部分は、プロセッサのL1、L2、又はL3のキャッシュ、若しくはシステム・メモリを含む他のオン・チップ又はオフ・チップのデータ・ストレージとともに含められてもよい。さらに、推論及び/又は訓練コードが、プロセッサ又は他のハードウェア論理若しくは回路にアクセス可能な他のコードとともに記憶されてもよく、プロセッサのフェッチ、デコード、スケジューリング、実行、リタイア、及び/又は他の論理回路を使用してフェッチ及び/又は処理されてもよい。
少なくとも一実施例では、アクティブ化ストレージ720は、キャッシュ・メモリ、DRAM、SRAM、不揮発性メモリ(たとえば、フラッシュ・メモリ)、又は他のストレージであってもよい。少なくとも一実施例では、アクティブ化ストレージ720は、完全に又は部分的に、1つ若しくは複数のプロセッサ又は他の論理回路の内部にあってもよく、又は外部にあってもよい。少なくとも一実施例では、アクティブ化ストレージ720が、たとえばプロセッサの内部にあるか外部にあるかの選択、又はDRAM、SRAM、フラッシュ、若しくは何らか他のタイプのストレージから構成されるかの選択は、オン・チップ対オフ・チップの利用可能なストレージ、実行される訓練及び/又は推論機能のレイテンシ要件、ニューラル・ネットワークの推論及び/又は訓練で使用されるデータのバッチ・サイズ、又はこれらの要因の何からの組合せに応じて決められてもよい。少なくとも一実施例では、図7Aに示す推論及び/又は訓練論理715は、グーグルからのTensorflow(登録商標)処理ユニット、Graphcore(商標)からの推論処理ユニット(IPU:inference processing unit)、又はIntel CorpからのNervana(登録商標)(たとえば「Lake Crest」)プロセッサなどの特定用途向け集積回路(「ASIC:application−specific integrated circuit」)と併せて使用されてもよい。少なくとも一実施例では、図7Aに示す推論及び/又は訓練論理715は、中央処理装置(「CPU」:central processing unit)ハードウェア、グラフィックス・プロセッシング・ユニット(「GPU」:graphics processing unit)ハードウェア、又はフィールド・プログラマブル・ゲート・アレイ(「FPGA」:field programmable gate array)など他のハードウェアと併せて使用されてもよい。
図7Bは、少なくとも1つ又は複数の実施例による、推論及び/又は訓練論理715を示す。少なくとも一実施例では、推論及び/又は訓練論理715は、ハードウェア論理を限定することなく含んでもよく、このハードウェア論理では、計算リソースが、ニューラル・ネットワーク内のニューロンの1つ若しくは複数の層に対応する重み値又は他の情報の専用のものであるか、又は他のやり方でそれらと併せてしか使用されない。少なくとも一実施例では、図7Bに示す推論及び/又は訓練論理715は、グーグルからのTensorflow(登録商標)処理ユニット、Graphcore(商標)からの推論処理ユニット(IPU)、又はインテルコーポレーションからのNervana(登録商標)(たとえば「Lake Crest」)プロセッサなどの特定用途向け集積回路(ASIC)と併せて使用されてもよい。少なくとも一実施例では、図7Bに示す推論及び/又は訓練論理715は、中央処理装置(CPU)ハードウェア、グラフィックス・プロセッシング・ユニット(「GPU」)ハードウェア、又はフィールド・プログラマブル・ゲート・アレイ(FPGA)など他のハードウェアと併せて使用されてもよい。少なくとも一実施例では、推論及び/又は訓練論理715は、限定することなく、コード及び/又はデータ・ストレージ701、並びにコード及び/又はデータ・ストレージ705を含み、これらを使用して、コード(たとえばグラフ・コード)、重み値、並びに/又はバイアス値、勾配情報、運動量値、及び/若しくは他のパラメータ若しくはハイパーパラメータ情報を含む他の情報を記憶してもよい。図7Bに示す少なくとも一実施例では、コード及び/又はデータ・ストレージ701並びにコード及び/又はデータ・ストレージ705のそれぞれは、それぞれ計算ハードウェア702及び計算ハードウェア706などの専用計算リソースに関連付けられる。少なくとも一実施例では、計算ハードウェア702及び計算ハードウェア706のそれぞれは、線形代数関数などの数学的関数を、それぞれコード及び/又はデータ・ストレージ701並びにコード及び/又はデータ・ストレージ705に記憶された情報に対してのみ実行する1つ又は複数のALUを備え、その結果は、アクティブ化ストレージ720に記憶される。
少なくとも一実施例では、コード並びに/又はデータ・ストレージ701及び705のそれぞれ、並びに対応する計算ハードウェア702及び706は、ニューラル・ネットワークの異なる層にそれぞれ対応し、それにより、コード及び/又はデータ・ストレージ701並びに計算ハードウェア702との1つの「ストレージ/計算の対701/702」から結果的に生じるアクティブ化は、ニューラル・ネットワークの概念的組織化を反映させるために、コード及び/又はデータ・ストレージ705並びに計算ハードウェア706との「ストレージ/計算の対705/706」への入力として提供される。少なくとも一実施例では、ストレージ/計算の対701/702、及び705/706は、2つ以上のニューラル・ネットワークの層に対応してもよい。少なくとも一実施例では、ストレージ/計算の対701/702、及び705/706の後に、又はそれと並列に、追加のストレージ/計算の対(図示せず)が、推論及び/又は訓練論理715に含まれてもよい。
データ・センタ
図8は、少なくとも一実施例が使用されてもよい例示的なデータ・センタ800を示す。少なくとも一実施例では、データ・センタ800は、データ・センタ・インフラストラクチャ層810、フレームワーク層820、ソフトウェア層830、及びアプリケーション層840を含む。
図8は、少なくとも一実施例が使用されてもよい例示的なデータ・センタ800を示す。少なくとも一実施例では、データ・センタ800は、データ・センタ・インフラストラクチャ層810、フレームワーク層820、ソフトウェア層830、及びアプリケーション層840を含む。
図8に示すように、少なくとも一実施例では、データ・センタ・インフラストラクチャ層810は、リソース・オーケストレータ812と、グループ化済みコンピューティング・リソース814と、ノード・コンピューティング・リソース(「ノードC.R.」)816(1)〜816(N)とを含んでもよく、ここで「N」は任意の正の整数を表す。少なくとも一実施例では、ノードC.R.816(1)〜816(N)は、任意の数の中央処理装置(「CPU」)又は(アクセラレータ、フィールド・プログラマブル・ゲート・アレイ(FPGA)、グラフィックス・プロセッサなどを含む)他のプロセッサ、メモリ・デバイス(たとえば、ダイナミック読取り専用メモリ)、ストレージ・デバイス(たとえば、半導体ドライブ又はディスク・ドライブ)、ネットワーク入力/出力(「NW I/O」:network input/output)デバイス、ネットワーク・スイッチ、仮想機械(「VM」:virtual machine)、電源モジュール、及び冷却モジュールを含んでもよいが、これらに限定されない。少なくとも一実施例では、ノードC.R.816(1)〜816(N)のうち1つ又は複数のノードC.R.は、上述したコンピューティング・リソースのうちの1つ又は複数を有するサーバであってもよい。
少なくとも一実施例では、グループ化済みコンピューティング・リソース814は、1つ若しくは複数のラック(図示せず)内に収容されたノードC.R.の別々のグループ、又は様々なグラフィカル・ロケーション(同じく図示せず)においてデータ・センタに収容された多数のラックを含んでもよい。グループ化済みコンピューティング・リソース814内のノードC.R.の別々のグループは、1つ若しくは複数のワークロードをサポートするように構成又は配分されてもよいグループ化済みのコンピュート・リソース、ネットワーク・リソース、メモリ・リソース、又はストレージ・リソースを含んでもよい。少なくとも一実施例では、CPU又はプロセッサを含むいくつかのノードC.R.は、1つ又は複数のラック内でグループ化されて、1つ又は複数のワークロードをサポートするためのコンピュート・リソースが提供されてもよい。少なくとも一実施例では、1つ又は複数のラックはまた、任意の数の電源モジュール、冷却モジュール、及びネットワーク・スイッチを任意の組合せで含んでもよい。
少なくとも一実施例では、リソース・オーケストレータ812は、1つ又は複数のノードC.R.816(1)〜816(N)及び/若しくはグループ化済みコンピューティング・リソース814を構成してもよく、又は他のやり方で制御してもよい。少なくとも一実施例では、リソース・オーケストレータ812は、データ・センタ800用のソフトウェア設計インフラストラクチャ(「SDI」:software design infrastructure)管理エンティティを含んでもよい。少なくとも一実施例では、リソース・オーケストレータは、ハードウェア、ソフトウェア、又はこれらの何らかの組合せを含んでもよい。
図8に示すように、少なくとも一実施例では、フレームワーク層820は、ジョブ・スケジューラ822、構成マネージャ824、リソース・マネージャ826、及び分配ファイル・システム828を含む。少なくとも一実施例では、フレームワーク層820は、ソフトウェア層830のソフトウェア832、及び/又はアプリケーション層840の1つ若しくは複数のアプリケーション842をサポートするためのフレームワークを含んでもよい。少なくとも一実施例では、ソフトウェア832又はアプリケーション842はそれぞれ、アマゾン・ウェブ・サービス、グーグル・クラウド、及びマイクロソフト・アジュールによって提供されるものなど、ウェブ・ベースのサービス・ソフトウェア又はアプリケーションを含んでもよい。少なくとも一実施例では、フレームワーク層820は、大規模なデータ処理(たとえば「ビック・データ」)のために分配ファイル・システム828を使用することができるApache Spark(登録商標)(以下「Spark」)など、無料でオープン・ソースのソフトウェア・ウェブ・アプリケーション・フレームワークの一種であってもよいが、これに限定されない。少なくとも一実施例では、ジョブ・スケジューラ822は、データ・センタ800の様々な層によってサポートされるワークロードのスケジューリングを容易にするために、Sparkドライバを含んでもよい。少なくとも一実施例では、構成マネージャ824は、ソフトウェア層830、並びに大規模なデータ処理をサポートするためのSpark及び分配ファイル・システム828を含むフレームワーク層820などの異なる層を構成することが可能であってもよい。少なくとも一実施例では、リソース・マネージャ826は、分配ファイル・システム828及びジョブ・スケジューラ822をサポートするようにマッピング若しくは配分されたクラスタ化済み又はグループ化済みのコンピューティング・リソースを管理することが可能であってもよい。少なくとも一実施例では、クラスタ化済み又はグループ化済みのコンピューティング・リソースは、データ・センタ・インフラストラクチャ層810にあるグループ化済みコンピューティング・リソース814を含んでもよい。少なくとも一実施例では、リソース・マネージャ826は、リソース・オーケストレータ812と連携して、これらのマッピング又は配分されたコンピューティング・リソースを管理してもよい。
少なくとも一実施例では、ソフトウェア層830に含まれるソフトウェア832は、ノードC.R.816(1)〜816(N)、グループ化済みコンピューティング・リソース814、及び/又はフレームワーク層820の分配ファイル・システム828のうちの少なくとも一部分によって使用されるソフトウェアを含んでもよい。1つ又は複数のタイプのソフトウェアは、インターネット・ウェブ・ページ検索ソフトウェア、電子メール・ウイルス・スキャン・ソフトウェア、データベース・ソフトウェア、及びストリーミング・ビデオ・コンテンツ・ソフトウェアを含んでもよいが、これらに限定されない。
少なくとも一実施例では、アプリケーション層840に含まれるアプリケーション842は、ノードC.R.816(1)〜816(N)、グループ化済みコンピューティング・リソース814、及び/又はフレームワーク層820の分配ファイル・システム828のうちの少なくとも一部分によって使用される1つ若しくは複数のタイプのアプリケーションを含んでもよい。1つ若しくは複数のタイプのアプリケーションは、任意の数のゲノム学アプリケーション、認識コンピュート、並びに訓練若しくは推論のソフトウェア、機械学習フレームワーク・ソフトウェア(たとえば、PyTorch、TensorFlow、Caffeなど)を含む機械学習アプリケーション、又は1つ若しくは複数の実施例と併せて使用される他の機械学習アプリケーションを含んでもよいが、これらに限定されない。
少なくとも一実施例では、構成マネージャ824、リソース・マネージャ826、及びリソース・オーケストレータ812のうちのいずれかは、任意の技術的に実行可能なやり方で取得された任意の量及びタイプのデータに基づき、任意の数及びタイプの自己修正措置を実装してもよい。少なくとも一実施例では、自己修正措置は、データ・センタ800のデータ・センタ演算子が、不良の恐れのある構成を決定しないようにし、十分に利用されていない且つ/又は性能の低いデータ・センタの部分をなくせるようにしてもよい。
少なくとも一実施例では、データ・センタ800は、1つ若しくは複数の機械学習モデルを訓練し、又は本明細書に記載の1つ若しくは複数の実施例による1つ若しくは複数の機械学習モデルを使用して情報を予測若しくは推論するためのツール、サービス、ソフトウェア、又は他のリソースを含んでもよい。たとえば、少なくとも一実施例では、機械学習モデルは、データ・センタ800に関して上述したソフトウェア及びコンピューティング・リソースを使用して、ニューラル・ネットワーク・アーキテクチャに従って重みパラメータを計算することによって、訓練されてもよい。少なくとも一実施例では、1つ又は複数のニューラル・ネットワークに対応する訓練済み機械学習モデルは、本明細書に記載の1つ又は複数の技法によって計算された重みパラメータを使用することにより、データ・センタ800に関して上述したリソースを使用して、情報を推論又は予測するために使用されてもよい。
少なくとも一実施例では、データ・センタは、上述したリソースを使用して訓練及び/又は推論を実行するために、CPU、特定用途向け集積回路(ASIC)、GPU、FPGA、又は他のハードウェアを使用してもよい。さらに、上述した1つ又は複数のソフトウェア及び/又はハードウェアのリソースは、画像認識、音声認識、又は他の人工知能サービスなどの情報の訓練又は推論の実行を、ユーザが行えるようにするためのサービスとして構成されてもよい。
推論及び/又は訓練論理715を使用して、1つ若しくは複数の実施例に関連する推論及び/又は訓練の動作が実行される。推論及び/又は訓練論理715に関する詳細事項は、図7A及び/又は図7Bと併せて以下に提供される。少なくとも一実施例では、推論及び/又は訓練論理715は、本明細書に記載のニューラル・ネットワークの訓練動作、ニューラル・ネットワークの機能及び/若しくはアーキテクチャ、又はニューラル・ネットワークのユース・ケースを使用して計算された重みパラメータに少なくとも部分的に基づき、推論又は予測の動作のために図8のシステムにおいて使用されてもよい。
こうした構成要素を使用して、1つ又は複数の規則セットから多様なシーン・グラフを生成することができ、シーン・グラフを使用して、仮想環境の1つ又は複数のシーンを表す訓練データ又は画像コンテンツを生成することができる。
コンピュータ・システム
図9は、例示的なコンピュータ・システムを示すブロック図であり、このコンピュータ・システムは、少なくとも一実施例による、命令を実行するための実行ユニットを含んでもよいプロセッサとともに形成された、相互接続されたデバイス及び構成要素、システム・オン・チップ(SoC)、又はこれら900の何らかの組合せを有するシステムであってもよい。少なくとも一実施例では、コンピュータ・システム900は、本明細書に記載の実施例などにおいて本開示に従ってデータを処理するためのアルゴリズムを実行する論理を含む実行ユニットを使用するための、プロセッサ902などの構成要素を、限定することなく含んでもよい。少なくとも一実施例では、コンピュータ・システム900は、カリフォルニア州サンタクララのインテルコーポレーションから入手可能なPENTIUM(登録商標)プロセッサ・ファミリー、Xeon(商標)、Itanium(登録商標)、XScale(商標)及び/又はStrongARM(商標)、Intel(登録商標)Core(商標)、又はIntel(登録商標)Nervana(商標)マイクロプロセッサなどのプロセッサを含んでもよいが、(他のマイクロプロセッサ、エンジニアリング・ワークステーション、セット・トップ・ボックスなどを有するPCを含め)他のシステムが使用されてもよい。少なくとも一実施例では、コンピュータ・システム900は、ワシントン州、レドモンドのマイクロソフトコーポレーションから入手可能なWINDOWS(登録商標)のオペレーティング・システムのあるバージョンを実行してもよいが、他のオペレーティング・システム(たとえば、UNIX(登録商標)及びLinux(登録商標))、組み込みソフトウェア、及び/又はグラフィカル・ユーザ・インターフェースが使用されてもよい。
図9は、例示的なコンピュータ・システムを示すブロック図であり、このコンピュータ・システムは、少なくとも一実施例による、命令を実行するための実行ユニットを含んでもよいプロセッサとともに形成された、相互接続されたデバイス及び構成要素、システム・オン・チップ(SoC)、又はこれら900の何らかの組合せを有するシステムであってもよい。少なくとも一実施例では、コンピュータ・システム900は、本明細書に記載の実施例などにおいて本開示に従ってデータを処理するためのアルゴリズムを実行する論理を含む実行ユニットを使用するための、プロセッサ902などの構成要素を、限定することなく含んでもよい。少なくとも一実施例では、コンピュータ・システム900は、カリフォルニア州サンタクララのインテルコーポレーションから入手可能なPENTIUM(登録商標)プロセッサ・ファミリー、Xeon(商標)、Itanium(登録商標)、XScale(商標)及び/又はStrongARM(商標)、Intel(登録商標)Core(商標)、又はIntel(登録商標)Nervana(商標)マイクロプロセッサなどのプロセッサを含んでもよいが、(他のマイクロプロセッサ、エンジニアリング・ワークステーション、セット・トップ・ボックスなどを有するPCを含め)他のシステムが使用されてもよい。少なくとも一実施例では、コンピュータ・システム900は、ワシントン州、レドモンドのマイクロソフトコーポレーションから入手可能なWINDOWS(登録商標)のオペレーティング・システムのあるバージョンを実行してもよいが、他のオペレーティング・システム(たとえば、UNIX(登録商標)及びLinux(登録商標))、組み込みソフトウェア、及び/又はグラフィカル・ユーザ・インターフェースが使用されてもよい。
実施例は、携帯型デバイス及び組み込みアプリケーションなど、他のデバイスで使用されてもよい。携帯型デバイスのいくつかの例は、セルラー・フォン、インターネット・プロトコル・デバイス、デジタル・カメラ、パーソナル・デジタル・アシスタント(「PDA」:personal digital assistants)、及び携帯型PCを含む。少なくとも一実施例では、組み込みアプリケーションは、マイクロコントローラ、デジタル信号プロセッサ(「DSP」:digital signal processor)、システム・オン・チップ、ネットワーク・コンピュータ(「NetPC」:network computers)、セット・トップ・ボックス、ネットワーク・ハブ、広域ネットワーク(「WAN」:wide area network)スイッチ、又は少なくとも一実施例による1つ又は複数の命令を実行することができる任意の他のシステムを含んでもよい。
少なくとも一実施例では、コンピュータ・システム900は、限定することなくプロセッサ902を含んでもよく、このプロセッサ902は限定することなく、本明細書に記載の技法による機械学習モデルの訓練及び/又は推論を実行するための1つ又は複数の実行ユニット908を含んでもよい。少なくとも一実施例では、コンピュータ・システム900は、シングル・プロセッサのデスクトップ又はサーバ・システムであるが、別の実施例では、コンピュータ・システム900はマルチプロセッサ・システムであってもよい。少なくとも一実施例では、プロセッサ902は、限定することなく、複合命令セット・コンピュータ(「CISC」:complex instruction set computer)マイクロプロセッサ、縮小命令セット・コンピューティング(「RISC」)マイクロプロセッサ、超長命令語(「VLIW」)マイクロプロセッサ、命令セットの組合せを実装するプロセッサ、又は任意の他のプロセッサ・デバイス、たとえばデジタル信号プロセッサなどを含んでもよい。少なくとも一実施例では、プロセッサ902は、プロセッサ・バス910に結合されてもよく、このプロセッサ・バスは、プロセッサ902とコンピュータ・システム900内の他の構成要素との間でデータ信号を送信してもよい。
少なくとも一実施例では、プロセッサ902は、限定することなく、レベル1(「L1」)の内部キャッシュ・メモリ(「キャッシュ」)904を含んでもよい。少なくとも一実施例では、プロセッサ902は、単一の内部キャッシュ又は複数レベルの内部キャッシュを有してもよい。少なくとも一実施例では、キャッシュ・メモリは、プロセッサ902の外部にあってもよい。他の実施例は、特定の実装形態及び必要性に応じて、内部キャッシュと外部キャッシュの両方の組合せも含んでよい。少なくとも一実施例では、レジスタ・ファイル906は、整数レジスタ、浮動小数点レジスタ、状態レジスタ、及び命令ポインタ・レジスタを限定することなく含む様々レジスタに、異なるタイプのデータを記憶してもよい。
少なくとも一実施例では、整数及び浮動小数点の演算を実行するための論理を限定することなく含む実行ユニット908も、プロセッサ902にある。少なくとも一実施例では、プロセッサ902は、ある一定のマクロ命令のためのマイクロコードを記憶するマイクロコード(「uコード」)読取り専用メモリ(「ROM」:read only memory)も含んでよい。少なくとも一実施例では、実行ユニット908は、パック命令セット909に対処する論理を含んでもよい。少なくとも一実施例では、パック命令セット909を、命令を実行する関連回路とともに汎用プロセッサの命令セットに含めることにより、多くのマルチメディア・アプリケーションによって使用される演算を、汎用プロセッサ902のパック・データを使用して実行することができる。1つ又は複数の実施例では、プロセッサのデータ・バスの全幅を使用してパック・データの演算を実行することによって、多くのマルチメディア・アプリケーションを加速し、より効率的に実行することができ、これにより、1度に1つのデータ要素に対して1つ又は複数の演算を実行するためにプロセッサのデータ・バス間でより小さい単位のデータを転送する必要をなくすことができる。
少なくとも一実施例では、実行ユニット908はまた、マイクロコントローラ、組み込みプロセッサ、グラフィックス・デバイス、DSP、及び他のタイプの論理回路において使用されてもよい。少なくとも一実施例では、コンピュータ・システム900は、限定することなくメモリ920を含んでもよい。少なくとも一実施例では、メモリ920は、ダイナミック・ランダム・アクセス・メモリ(「DRAM」)デバイス、スタティック・ランダム・アクセス・メモリ(「SRAM」)デバイス、フラッシュ・メモリ・デバイス、又は他のメモリ・デバイスとして実装されてもよい。少なくとも一実施例では、メモリ920は、プロセッサ902によって実行されてもよいデータ信号によって表される命令919、及び/又はデータ921を記憶してもよい。
少なくとも一実施例では、システム論理チップが、プロセッサ・バス910及びメモリ920に結合されてもよい。少なくとも一実施例では、システム論理チップは、限定することなく、メモリ・コントローラ・ハブ(「MCH」:memory controller hub)916を含んでもよく、プロセッサ902は、プロセッサ・バス910を介してMCH916と通信してもよい。少なくとも一実施例では、MCH916は、命令及びデータを記憶するため、及びグラフィックス・コマンド、データ、及びテクスチャを記憶するために、高帯域幅メモリ経路918をメモリ920に提供してもよい。少なくとも一実施例では、MCH916は、プロセッサ902と、メモリ920と、コンピュータ・システム900の他の構成要素との間でデータ信号を導き、プロセッサ・バス910と、メモリ920と、システムI/Oインターフェース922との間でデータ信号をブリッジしてもよい。少なくとも一実施例では、システム論理チップは、グラフィックス・コントローラに結合するためのグラフィックス・ポートを提供してもよい。少なくとも一実施例では、MCH916は、高帯域幅メモリ経路918を介してメモリ920に結合されてもよく、グラフィックス/ビデオカード912は、アクセラレーテッド・グラフィックス・ポート(「AGP」:Accelerated Graphics Port)相互接続914を介してMCH916に結合されてもよい。
少なくとも一実施例では、コンピュータ・システム900は、MCH916をI/Oコントローラ・ハブ(「ICH」:I/O controller hub)930に結合するためのプロプライエタリ・ハブ・インターフェース・バスであるシステムI/O922を使用してもよい。少なくとも一実施例では、ICH930は、ローカルのI/Oバスを介していくつかのI/Oデバイスに直接接続を提供してもよい。少なくとも一実施例では、ローカルI/Oバスは、周辺装置をメモリ920、チップセット、及びプロセッサ902に接続するための高速I/Oバスを、限定することなく含んでもよい。例としては、オーディオ・コントローラ929、ファームウェア・ハブ(「フラッシュBIOS」)928、ワイヤレス・トランシーバ926、データ・ストレージ924、ユーザ入力及びキーボードのインターフェース925を含むレガシーI/Oコントローラ923、ユニバーサル・シリアル・バス(「USB」:Universal Serial Bus)などのシリアル拡張ポート927、及びネットワーク・コントローラ934が、限定することなく含まれてもよい。データ・ストレージ924は、ハード・ディスク・ドライブ、フロッピー(登録商標)・ディスク・ドライブ、CD−ROMデバイス、フラッシュ・メモリ・デバイス、又は他の大容量ストレージ・デバイスを備えてもよい。
少なくとも一実施例では、図9は、相互接続されたハードウェア・デバイス又は「チップ」を含むシステムを示すが、一方他の実施例では、図9は例示的なシステム・オン・チップ(「SoC」)を示してもよい。少なくとも一実施例では、デバイスは、プロプライエタリ相互接続、標準相互接続(たとえば、PCIe)、又はこれらの何らかの組合せで相互接続されてもよい。少なくとも一実施例では、コンピュータ・システム900の1つ又は複数の構成要素は、コンピュート・エクスプレス・リンク(CXL:compute express link)相互接続を使用して相互接続されてもよい。
1つ若しくは複数の実施例に関連する推論及び/又は訓練の動作を実行するために、推論及び/又は訓練論理715が使用される。推論及び/又は訓練論理715に関する詳細事項は、図7A及び/又は図7Bと併せて以下に提供される。少なくとも一実施例では、推論及び/又は訓練論理715は、本明細書に記載のニューラル・ネットワークの訓練動作、ニューラル・ネットワークの機能及び/若しくはアーキテクチャ、又はニューラル・ネットワークのユース・ケースを使用して計算された重みパラメータに少なくとも部分的に基づき、推論又は予測の動作のために図9のシステムにおいて使用されてもよい。
こうした構成要素を使用して、1つ又は複数の規則セットから多様なシーン・グラフを生成することができ、シーン・グラフを使用して、仮想環境の1つ又は複数のシーンを表す訓練データ又は画像コンテンツを生成することができる。
図10は、少なくとも一実施例による、プロセッサ1010を利用するための電子デバイス1000を示すブロック図である。少なくとも一実施例では、電子デバイス1000は、たとえば限定することなく、ノートブック、タワー・サーバ、ラック・サーバ、ブレード・サーバ、ラップトップ、デスクトップ、タブレット、モバイル・デバイス、電話、組み込みコンピュータ、又は任意の他の好適な電子デバイスであってもよい。
少なくとも一実施例では、システム1000は、任意の好適な数又は種類の構成要素、周辺装置、モジュール、若しくはデバイスに通信可能に結合されたプロセッサ1010を、限定することなく含んでもよい。少なくとも一実施例では、プロセッサ1010は、1°Cバス、システム・マネージメント・バス(「SMBus」:System Management Bus)、ロー・ピン・カウント(LPC:Low Pin Count)バス、シリアル・ペリフェラル・インターフェース(「SPI」:Serial Peripheral Interface)、ハイ・デフィニション・オーディオ(「HDA」:High Definition Audio)バス、シリアル・アドバンス・テクノロジー・アタッチメント(「SATA」:Serial Advance Technology Attachment)バス、ユニバーサル・シリアル・バス(「USB」)(バージョン1、2、3)、又はユニバーサル非同期レシーバ/トランスミッタ(「UART」:Universal Asynchronous Receiver/Transmitter)バスなどのバス若しくはインターフェースを使用して結合される。少なくとも一実施例では、図10は、相互接続されたハードウェア・デバイス又は「チップ」を含むシステムを示すが、一方他の実施例では、図10は例示的なシステム・オン・チップ(「SoC」)を示してもよい。少なくとも一実施例では、図10に示すデバイスは、プロプライエタリ相互接続、標準相互接続(たとえば、PCIe)、又はこれらの何らかの組合せで相互接続されてもよい。少なくとも一実施例では、図10の1つ又は複数の構成要素は、コンピュート・エクスプレス・リンク(CXL)相互接続を使用して相互接続されてもよい。
少なくとも一実施例では、図10は、ディスプレイ1024、タッチ画面1025、タッチ・パッド1030、近距離無線通信ユニット(「NFC」:Near Field Communications unit)1045、センサ・ハブ1040、熱センサ1046、エクスプレス・チップセット(「EC」:Express Chipset)1035、トラステッド・プラットフォーム・モジュール(「TPM」:Trusted Platform Module)1038、BIOS/ファームウェア/フラッシュ・メモリ(「BIOS、FWフラッシュ」:BIOS/firmware/flash memory)1022、DSP1060、ソリッド・ステート・ディスク(「SSD」:Solid State Disk)若しくはハード・ディスク・ドライブ(「HDD」:Hard Disk Drive)などのドライブ1020、ワイヤレス・ローカル・エリア・ネットワーク・ユニット(「WLAN」:wireless local area network unit)1050、Bluetoothユニット1052、ワイヤレス広域ネットワーク・ユニット(「WWAN」:Wireless Wide Area Network unit)1056、全地球測位システム(GPS:Global Positioning System)1055、USB3.0カメラなどのカメラ(「USB3.0カメラ」)1054、及び/又は、たとえばLPDDR3規格に実装された低電力ダブル・データ・レート(「LPDDR」:Low Power Double Data Rate)メモリ・ユニット(「LPDDR3」)1015を含んでもよい。これらの構成要素は、それぞれ任意の好適なやり方で実装されてもよい。
少なくとも一実施例では、上述した構成要素を介して、他の構成要素がプロセッサ1010に通信可能に結合されてもよい。少なくとも一実施例では、加速度計1041、周囲光センサ(「ALS」:Ambient Light Sensor)1042、コンパス1043、及びジャイロスコープ1044が、センサ・ハブ1040に通信可能に結合されてもよい。少なくとも一実施例では、熱センサ1039、ファン1037、キーボード1046、及びタッチ・パッド1030が、EC1035に通信可能に結合されてもよい。少なくとも一実施例では、スピーカ1063、ヘッドフォン1064、及びマイクロフォン(「mic」)1065が、オーディオ・ユニット(オーディオ・コーデック及びクラスdアンプ)1062に通信可能に結合されてもよく、このオーディオ・ユニットが、DSP1060に通信可能に結合されてもよい。少なくとも一実施例では、オーディオ・ユニット1064は、たとえば限定することなく、オーディオ・コーダ/デコーダ(「コーデック」)及びクラスDアンプリファイアを含んでもよい。少なくとも一実施例では、SIMカード(「SIM」)1057は、WWANユニット1056に通信可能に結合されてもよい。少なくとも一実施例では、WLANユニット1050及びBluetoothユニット1052などの構成要素、並びにWWANユニット1056は、次世代フォーム・ファクタ(「NGFF」:Next Generation Form Factor)に実装されてもよい。
1つ若しくは複数の実施例に関連する推論及び/又は訓練の動作を実行するために、推論及び/又は訓練論理715が使用される。推論及び/又は訓練論理715に関する詳細事項は、図7A及び/又は図7Bと併せて以下に提供される。少なくとも一実施例では、推論及び/又は訓練論理715は、本明細書に記載のニューラル・ネットワークの訓練動作、ニューラル・ネットワークの機能及び/若しくはアーキテクチャ、又はニューラル・ネットワークのユース・ケースを使用して計算された重みパラメータに少なくとも部分的に基づき、推論又は予測の動作のために図10のシステムにおいて使用されてもよい。
こうした構成要素を使用して、1つ又は複数の規則セットから多様なシーン・グラフを生成することができ、シーン・グラフを使用して、仮想環境の1つ又は複数のシーンを表す訓練データ又は画像コンテンツを生成することができる。
図11は、少なくとも一実例による処理システムのブロック図である。少なくとも一実施例では、システム1100は、1つ又は複数のプロセッサ1102、及び1つ又は複数のグラフィックス・プロセッサ1108を含み、単一プロセッサのデスクトップ・システム、マルチプロセッサのワークステーション・システム、又は多数のプロセッサ1102若しくはプロセッサ・コア1107を有するサーバ・システムであってもよい。少なくとも一実施例では、システム1100は、モバイル・デバイス、携帯型デバイス、又は組み込みデバイスで使用するためのシステム・オン・チップ(SoC)集積回路内に組み込まれた処理プラットフォームである。
少なくとも一実施例では、システム1100は、サーバ・ベースのゲーミング・プラットフォーム、ゲーム及びメディアのコンソールを含むゲーム・コンソール、モバイル・ゲーミング・コンソール、携帯型ゲーム・コンソール、若しくはオンライン・ゲーム・コンソールを含んでもよく、又はそれらに組み込まれてもよい。少なくとも一実施例では、システム1100は、モバイル・フォン、スマート・フォン、タブレット・コンピューティング・デバイス、又はモバイル・インターネット・デバイスである。少なくとも一実施例では、処理システム1100はまた、スマート・ウォッチ・ウェアラブル・デバイス、スマート・アイウェア・デバイス、拡張現実デバイス、若しくは仮想現実デバイスなどのウェアラブル・デバイスを含んでもよく、それらに結合されてもよく、又はそれらの中に一体化されてもよい。少なくとも一実施例では、処理システム1100は、1つ又は複数のプロセッサ1102と、1つ又は複数のグラフィックス・プロセッサ1108によって生成されるグラフィカル・インターフェースとを有するテレビ又はセット・トップ・ボックス・デバイスである。
少なくとも一実施例では、1つ又は複数のプロセッサ1102はそれぞれ、実行されたときにシステム及びユーザ・ソフトウェアのための動作を実行する命令を処理するための1つ又は複数のプロセッサ・コア1107を含む。少なくとも一実施例では、1つ又は複数のプロセッサ・コア1107のそれぞれは、特定の命令セット1109を処理するように構成される。少なくとも一実施例では、命令セット1109は、複合命令セット・コンピューティング(CISC)、縮小命令セット・コンピューティング(RISC)、又は超長命令語(VLIW)を介したコンピューティングを容易にしてもよい。少なくとも一実施例では、プロセッサ・コア1107はそれぞれ、異なる命令セット1109を処理してもよく、この命令セットは、他の命令セットのエミュレーションを容易にする命令を含んでもよい。少なくとも一実施例では、プロセッサ・コア1107はまた、デジタル信号プロセッサ(DSP)などの他の処理デバイスを含んでもよい。
少なくとも一実施例では、プロセッサ1102はキャッシュ・メモリ1104を含む。少なくとも一実施例では、プロセッサ1102は、単一の内部キャッシュ又は複数レベルの内部キャッシュを有してもよい。少なくとも一実施例では、キャッシュ・メモリは、プロセッサ1102の様々な構成要素間で共有される。少なくとも一実施例では、プロセッサ1102はまた、外部キャッシュ(たとえば、レベル3(L3)キャッシュ又はラスト・レベル・キャッシュ(LLC))(図示せず)を使用し、このキャッシュは、知られているキャッシュ・コヒーレンス技法を使用して、プロセッサ・コア1107間で共有されてもよい。少なくとも一実施例では、さらにレジスタ・ファイル1106がプロセッサ1102に含まれ、このレジスタ・ファイルは、異なるタイプのデータを記憶するための異なるタイプのレジスタ(たとえば、整数レジスタ、浮動小数点レジスタ、状態レジスタ、及び命令ポインタ・レジスタ)を含んでもよい。少なくとも一実施例では、レジスタ・ファイル1106は、汎用レジスタ又は他のレジスタを含んでもよい。
少なくとも一実施例では、1つ又は複数のプロセッサ1102は、1つ又は複数のインターフェース・バス1110に結合されて、アドレス、データ、又は制御信号などの通信信号を、プロセッサ1102とシステム1100内の他の構成要素との間で送信する。少なくとも一実施例では、インターフェース・バス1110は、一実施例では、ダイレクト・メディア・インターフェース(DMI)バスのバージョンなどのプロセッサ・バスとすることができる。少なくとも一実施例では、インターフェース1110は、DMIバスに限定されず、1つ又は複数のペリフェラル・コンポーネント・インターコネクト・バス(たとえば、PCI、PCIエクスプレス)、メモリ・バス、又は他のタイプのインターフェース・バスを含んでもよい。少なくとも一実施例では、プロセッサ1102は、統合メモリ・コントローラ1116、及びプラットフォーム・コントローラ・ハブ1130を含む。少なくとも一実施例では、メモリ・コントローラ1116は、メモリ・デバイスとシステム1100の他の構成要素との間の通信を容易にし、一方でプラットフォーム・コントローラ・ハブ(PCH)1130は、ローカルI/Oバスを介してI/Oデバイスへの接続を提供する。
少なくとも一実施例では、メモリ・デバイス1120は、ダイナミック・ランダム・アクセス・メモリ(DRAM)デバイス、スタティック・ランダム・アクセス・メモリ(SRAM)デバイス、フラッシュ・メモリ・デバイス、相変化メモリ・デバイス、又はプロセス・メモリとしての役割を果たすのに好適な性能を有する何らかの他のメモリ・デバイスとすることができる。少なくとも一実施例では、メモリ・デバイス1120は、システム1100のためのシステム・メモリとして動作して、1つ又は複数のプロセッサ1102がアプリケーション若しくはプロセスを実行するときに使用するためのデータ1122及び命令1121を記憶することができる。少なくとも一実施例では、メモリ・コントローラ1116はまた、任意選択の外部グラフィックス・プロセッサ1112と結合しており、このグラフィックス・プロセッサは、プロセッサ1102内の1つ又は複数のグラフィックス・プロセッサ1108と通信して、グラフィックス及びメディアの動作を実行してもよい。少なくとも一実施例では、ディスプレイ・デバイス1111は、プロセッサ1102に接続することができる。少なくとも一実施例では、ディスプレイ・デバイス1111は、モバイル電子デバイス又はラップトップ・デバイスのような内部ディスプレイ・デバイス、又はディスプレイ・インターフェース(たとえば、ディスプレイ・ポートなど)を介して取り付けられる外部ディスプレイ・デバイスのうちの1つ又は複数を含むことができる。少なくとも一実施例では、ディスプレイ・デバイス1111は、仮想現実(VR)アプリケーション又は拡張現実(AR)アプリケーションで使用するための立体ディスプレイ・デバイスなどの頭部装着型ディスプレイ(HMD)を含むことができる。
少なくとも一実施例では、プラットフォーム・コントローラ・ハブ1130は、周辺装置が高速I/Oバスを介してメモリ・デバイス1120及びプロセッサ1102に接続できるようにする。少なくとも一実施例では、I/O周辺装置は、オーディオ・コントローラ1146、ネットワーク・コントローラ1134、ファームウェア・インターフェース1128、ワイヤレス・トランシーバ1126、タッチ・センサ1125、データ・ストレージ・デバイス1124(たとえば、ハード・ディスク・ドライブ、フラッシュ・メモリなど)を含むが、これらに限定されない。少なくとも一実施例では、データ・ストレージ・デバイス1124は、ストレージ・インターフェース(たとえば、SATA)を介して、又はペリフェラル・コンポーネント・インターコネクト・バス(たとえば、PCI、PCIエクスプレス)などのペリフェラル・バスを介して、接続することができる。少なくとも一実施例では、タッチ・センサ1125は、タッチ画面センサ、圧力センサ、又は指紋センサを含むことができる。少なくとも一実施例では、ワイヤレス・トランシーバ1126は、WiFiトランシーバ、Bluetoothトランシーバ、又は3G、4G、若しくはLong Term Evolution(LTE)トランシーバなどのモバイル・ネットワーク・トランシーバとすることができる。少なくとも一実施例では、ファームウェア・インターフェース1128は、システム・ファームウェアとの通信を可能にし、たとえば、ユニファイド・エクステンシブル・ファームウェア・インターフェース(UEFI)とすることができる。少なくとも一実施例では、ネットワーク・コントローラ1134は、有線ネットワークへのネットワーク接続を可能にすることができる。少なくとも一実施例では、高性能ネットワーク・コントローラ(図示せず)は、インターフェース・バス1110と結合する。少なくとも一実施例では、オーディオ・コントローラ1146は、多チャネル・ハイ・デフィニション・オーディオ・コントローラである。少なくとも一実施例では、システム1100は、レガシー(たとえば、パーソナル・システム2(PS/2))デバイスをシステムに結合するための任意選択のレガシーI/Oコントローラ1140を含む。少なくとも一実施例では、プラットフォーム・コントローラ・ハブ1130は、キーボードとマウス1143の組合せ、カメラ1144、又は他のUSB入力デバイスなど、1つ又は複数のユニバーサル・シリアル・バス(USB)コントローラ1142の接続入力デバイスにも接続することができる。
少なくとも一実施例では、メモリ・コントローラ1116及びプラットフォーム・コントローラ・ハブ1130のインスタンスは、外部グラフィックス・プロセッサ1112などの個別の外部グラフィックス・プロセッサに一体化されてもよい。少なくとも一実施例では、プラットフォーム・コントローラ・ハブ1130及び/又はメモリ・コントローラ1116は、1つ又は複数のプロセッサ1102の外部にあってもよい。たとえば、少なくとも一実施例では、システム1100は、外部のメモリ・コントローラ1116及びプラットフォーム・コントローラ・ハブ1130を含むことができ、これらは、プロセッサ1102と通信するシステム・チップセット内のメモリ・コントローラ・ハブ及び周辺装置コントローラ・ハブとして構成されてもよい。
1つ又は複数の実施例に関連する推論及び/又は訓練の動作を実行するために、推論及び/又は訓練論理715が使用される。推論及び/又は訓練論理715に関する詳細事項は、図7A及び/又は図7Bと併せて以下に提供される。少なくとも一実施例では、推論及び/又は訓練論理715の一部又はすべてが、グラフィックス・プロセッサ1500に組み込まれてもよい。たとえば、少なくとも一実施例では、本明細書に記載の訓練及び/又は推論の技法は、グラフィックス・プロセッサに具体化されたALUのうちの1つ又は複数を使用してもよい。さらに、少なくとも一実施例では、本明細書に記載の推論及び/又は訓練の動作は、図7A又は図7Bに示す論理以外の論理を使用して行われてもよい。少なくとも一実施例では、重みパラメータは、本明細書に記載の1つ又は複数の機械学習アルゴリズム、ニューラル・ネットワーク・アーキテクチャ、ユース・ケース、又は訓練技法を実行するためのグラフィックス・プロセッサのALUを構成するオン・チップ若しくはオフ・チップのメモリ及び/又はレジスタ(図示している又は図示せず)に記憶されてもよい。
こうした構成要素を使用して、1つ又は複数の規則セットから多様なシーン・グラフを生成することができ、シーン・グラフを使用して、仮想環境の1つ又は複数のシーンを表す訓練データ又は画像コンテンツを生成することができる。
図12は、少なくとも一実施例による、1つ又は複数のプロセッサ・コア1202A〜1202N、統合メモリ・コントローラ1214、及び統合グラフィックス・プロセッサ1208を有するプロセッサ1200のブロック図である。少なくとも一実施例では、プロセッサ1200は、破線の四角によって表される追加コア1202Nを含むそれ以下の数の追加コアを含むことができる。少なくとも一実施例では、プロセッサ・コア1202A〜1202Nのそれぞれは、1つ又は複数の内部キャッシュ・ユニット1204A〜1204Nを含む。少なくとも一実施例では、各プロセッサ・コアはまた、1つ又は複数の共有キャッシュ・ユニット1206にアクセスできる。
少なくとも一実施例では、内部キャッシュ・ユニット1204A〜1204N、及び共有キャッシュ・ユニット1206は、プロセッサ1200内のキャッシュ・メモリ階層を表す。少なくとも一実施例では、キャッシュ・メモリ・ユニット1204A〜1204Nは、各プロセッサ・コア内の命令及びデータのキャッシュの少なくとも1つのレベル、並びにレベル2(L2)、レベル3(L3)、レベル4(L4)などの共有中間レベル・キャッシュの1つ又は複数のレベル、又はキャッシュの他のレベルを含んでもよく、ここで外部メモリの前の最高レベルのキャッシュは、LLCとして分類される。少なくとも一実施例では、キャッシュ・コヒーレンス論理は、様々なキャッシュ・ユニット1206及び1204A〜1204N間でコヒーレンスを維持する。
少なくとも一実施例では、プロセッサ1200はまた、1つ又は複数のバス・コントローラ・ユニット1216とシステム・エージェント・コア1210のセットを含んでもよい。少なくとも一実施例では、1つ又は複数のバス・コントローラ・ユニット1216は、1つ又は複数のPCI若しくはPCIエクスプレス・バスなどのペリフェラル・バスのセットを管理する。少なくとも一実施例では、システム・エージェント・コア1210は、様々なプロセッサ構成要素のための管理機能を提供する。少なくとも一実施例では、システム・エージェント・コア1210は、様々な外部メモリ・デバイス(図示せず)へのアクセスを管理するための1つ又は複数の統合メモリ・コントローラ1214を含む。
少なくとも一実施例では、プロセッサ・コア1202A〜1202Nの1つ又は複数は、同時マルチスレッディングのサポートを含む。少なくとも一実施例では、システム・エージェント・コア1210は、マルチスレッドの処理中にコア1202A〜1202Nを調整し動作させるための構成要素を含む。少なくとも一実施例では、システム・エージェント・コア1210はさらに、電力制御ユニット(PCU)を含んでもよく、このユニットは、プロセッサ・コア1202A〜1202N及びグラフィックス・プロセッサ1208の1つ又は複数の電力状態を調整するための論理及び構成要素を含む。
少なくとも一実施例では、プロセッサ1200はさらに、グラフィックス処理動作を実行するためのグラフィックス・プロセッサ1208を含む。少なくとも一実施例では、グラフィックス・プロセッサ1208は、共有キャッシュ・ユニット1206と、1つ又は複数の統合メモリ・コントローラ1214を含むシステム・エージェント・コア1210とに結合する。少なくとも一実施例では、システム・エージェント・コア1210はまた、1つ又は複数の結合されたディスプレイに対してグラフィックス・プロセッサの出力を行わせるためのディスプレイ・コントローラ1211を含む。少なくとも一実施例では、ディスプレイ・コントローラ1211はまた、少なくとも1つの相互接続を介してグラフィックス・プロセッサ1208に結合された別個のモジュールであってもよく、又はグラフィックス・プロセッサ1208内に一体化されていてもよい。
少なくとも一実施例では、プロセッサ1200の内部構成要素を結合するために、リング・ベースの相互接続ユニット1212が使用される。少なくとも一実施例では、ポイントツーポイント相互接続、スイッチ相互接続、又は他の技法などの代替的な相互接続ユニットが使用されてもよい。少なくとも一実施例では、グラフィックス・プロセッサ1208は、I/Oリンク1213を介してリング相互接続1212と結合する。
少なくとも一実施例では、I/Oリンク1213は、様々なプロセッサ構成要素と、eDRAMモジュールなどの高性能組み込みメモリ・モジュール1218との間の通信を容易にするオン・パッケージI/O相互接続を含む多様なI/O相互接続のうちの少なくとも1つを表す。少なくとも一実施例では、プロセッサ・コア1202A〜1202Nのそれぞれ及びグラフィックス・プロセッサ1208は、共有ラスト・レベル・キャッシュとして組み込みメモリ・モジュール1218を使用する。
少なくとも一実施例では、プロセッサ・コア1202A〜1202Nは、共通の命令セット・アーキテクチャを実行する同種のコアである。少なくとも一実施例では、プロセッサ・コア1202A〜1202Nは、命令セット・アーキテクチャ(ISA)の観点から見れば異種であり、ここでプロセッサ・コア1202A〜1202Nのうちの1つ又は複数は、共通の命令セットを実行するが、プロセッサ・コア1202A〜1202Nのうちの1つ又は複数の他のコアは、共通の命令セットのサブセット、又は異なる命令セットを実行する。少なくとも一実施例では、プロセッサ・コア1202A〜1202Nは、マイクロ・アーキテクチャの観点から見れば異種であり、ここで電力消費量が相対的に高い1つ又は複数のコアは、電力消費量がより低い1つ又は複数のコアと結合する。少なくとも一実施例では、プロセッサ1200は、1つ又は複数のチップ上に、又はSoC集積回路として実装することができる。
1つ又は複数の実施例に関連する推論及び/又は訓練の動作を実行するために、推論及び/又は訓練論理715が使用される。推論及び/又は訓練論理715に関する詳細事項は、図7A及び/又は図7Bと併せて以下に提供される。少なくとも一実施例では、推論及び/又は訓練論理715の一部又はすべてが、プロセッサ1200に組み込まれてもよい。たとえば、少なくとも一実施例では、本明細書に記載の訓練及び/又は推論の技法は、グラフィックス・プロセッサ1512、グラフィックス・コア1202A〜1202N、又は図12の他の構成要素に具体化されたALUのうちの1つ又は複数を使用してもよい。さらに、少なくとも一実施例では、本明細書に記載の推論及び/又は訓練の動作は、図7A又は図7Bに示す論理以外の論理を使用して行われてもよい。少なくとも一実施例では、重みパラメータは、本明細書に記載の1つ又は複数の機械学習アルゴリズム、ニューラル・ネットワーク・アーキテクチャ、ユース・ケース、又は訓練技法を実行するためのグラフィックス・プロセッサ1200のALUを構成するオン・チップ若しくはオフ・チップのメモリ及び/又はレジスタ(図示している又は図示せず)に記憶されてもよい。
こうした構成要素を使用して、1つ又は複数の規則セットから多様なシーン・グラフを生成することができ、シーン・グラフを使用して、仮想環境の1つ又は複数のシーンを表す訓練データ又は画像コンテンツを生成することができる。
仮想化コンピューティング・プラットフォーム
図13は、少なくとも一実施例による、画像処理及び推論パイプラインを生成及び導入するプロセス1300の実例データ・フロー図である。少なくとも一実施例では、プロセス1300は、1つ又は複数の施設1302において、撮像デバイス、処理デバイス、及び/又は他のタイプのデバイスとともに使用するために導入されてもよい。プロセス1300は、訓練システム1304内及び/又は導入システム1306内で実行されてもよい。少なくとも一実施例では、訓練システム1304を使用して、導入システム1306で使用するための機械学習モデル(たとえば、ニューラル・ネットワーク、物体検出アルゴリズム、コンピュータ・ビジョン・アルゴリズムなど)の訓練、導入、及び実装が実行されてもよい。少なくとも一実施例では、導入システム1306は、処理及び計算のリソースを分散コンピューティング環境間でオフロードするように構成されて、施設1302におけるインフラストラクチャ要件を低減してもよい。少なくとも一実施例では、パイプライン内の1つ又は複数のアプリケーションは、アプリケーションの実行中に導入システム1306のサービス(たとえば、推論、仮想化、計算、AIなど)を使用又はコールしてもよい。
図13は、少なくとも一実施例による、画像処理及び推論パイプラインを生成及び導入するプロセス1300の実例データ・フロー図である。少なくとも一実施例では、プロセス1300は、1つ又は複数の施設1302において、撮像デバイス、処理デバイス、及び/又は他のタイプのデバイスとともに使用するために導入されてもよい。プロセス1300は、訓練システム1304内及び/又は導入システム1306内で実行されてもよい。少なくとも一実施例では、訓練システム1304を使用して、導入システム1306で使用するための機械学習モデル(たとえば、ニューラル・ネットワーク、物体検出アルゴリズム、コンピュータ・ビジョン・アルゴリズムなど)の訓練、導入、及び実装が実行されてもよい。少なくとも一実施例では、導入システム1306は、処理及び計算のリソースを分散コンピューティング環境間でオフロードするように構成されて、施設1302におけるインフラストラクチャ要件を低減してもよい。少なくとも一実施例では、パイプライン内の1つ又は複数のアプリケーションは、アプリケーションの実行中に導入システム1306のサービス(たとえば、推論、仮想化、計算、AIなど)を使用又はコールしてもよい。
少なくとも一実施例では、先進処理及び推論パイプラインで使用されるアプリケーションのいくつかは、1つ又は複数の処理ステップを実行するために機械学習モデル又は他のAIを使用してもよい。少なくとも一実施例では、機械学習モデルは、施設1302で生成された(且つ、施設1302において1つ若しくは複数の画像アーカイブ及び通信システム(PACS)サーバに記憶された)(撮像データなどの)データ1308を使用して、施設1302において訓練されてもよく、1つ又は複数の別の施設からの撮像若しくはシーケンシングのデータ1308を使用して訓練されてもよく、又はそれらの組合せであってもよい。少なくとも一実施例では、訓練システム1304を使用して、導入システム1306向けの実用的で導入可能な機械学習モデルを生成するためのアプリケーション、サービス、及び/又は他のリソースが提供されてもよい。
少なくとも一実施例では、モデル・レジストリ1324は、バージョン管理及び物体メタデータをサポートすることができる物体ストレージによってバックアップされてもよい。少なくとも一実施例では、物体ストレージには、たとえば、クラウド・プラットフォーム内から、クラウド・ストレージ(たとえば、図14のクラウド1426)の互換性アプリケーション・プログラミング・インターフェース(API)を介してアクセス可能であってもよい。少なくとも一実施例では、モデル・レジストリ1324内の機械学習モデルは、システムの開発者又はパートナがAPIと対話することによって、アップロード、リスト化、修正、又は削除されてもよい。少なくとも一実施例では、APIは、適切な資格を有するユーザがモデルをアプリケーションに関連付けできるようにする方法へのアクセスを提供してもよく、それによりアプリケーションのコンテナ化されたインスタンスを実行することの一部として、モデルを実行できるようになる。
少なくとも一実施例では、訓練パイプライン1404(図14)は、施設1302が独自の機械学習モデルを訓練している状況、又は最適化若しくは更新される必要がある既存の機械学習モデルを有している状況を含んでもよい。少なくとも一実施例では、撮像デバイス、シーケンシング・デバイス、及び/又は他のタイプのデバイスによって生成された撮像データ1308が受信されてもよい。少なくとも一実施例では、撮像データ1308が受信されると、機械学習モデルのグラウンド・トゥルース・データとして使用されることになる撮像データ1308に対応するアノテーションの生成を支援するために、AI支援アノテーション1310が使用されてもよい。少なくとも一実施例では、AI支援アノテーション1310は、1つ又は複数の機械学習モデル(たとえば、畳み込みニューラル・ネットワーク(CNN))を含んでもよく、これは(たとえば特定のデバイスからの)特定のタイプの撮像データ1308に対応するアノテーションを生成するように訓練されてもよい。少なくとも一実施例では、次いでAI支援アノテーション1310は、グラウンド・トゥルース・データを生成するために直接使用されてもよく、又はアノテーション・ツールを使用して調節若しくは微調整されてもよい。少なくとも一実施例では、AI支援アノテーション1310、ラベル付きクリニック・データ1312、又はこれらの組合せが、機械学習モデルを訓練するためのグラウンド・トゥルース・データとして使用されてもよい。少なくとも一実施例では、訓練済み機械学習モデルは出力モデル1316と呼ばれてもよく、本明細書に記載の導入システム1306によって使用されてもよい。
少なくとも一実施例では、訓練パイプライン1404(図14)は、施設1302が、導入システム1306内の1つ又は複数のアプリケーションのための1つ又は複数の処理タスクを実行する際に使用する機械学習モデルを必要としているが、施設1302は現在そのような機械学習モデルを有していないかもしれない(又はそうした目的のために最適化された、効率よい、若しくは有効なモデルを有していないかもしれない)という状況を含んでもよい。少なくとも一実施例では、既存の機械学習モデルが、モデル・レジストリ1324から選択されてもよい。少なくとも一実施例では、モデル・レジストリ1324は、撮像データに対して様々な異なる推論タスクを実行するように訓練された機械学習モデルを含んでもよい。少なくとも一実施例では、モデル・レジストリ1324の機械学習モデルは、施設1302とは異なる施設(たとえば、離れた場所にある施設)からの撮像データについて訓練されたものであってもよい。少なくとも一実施例では、機械学習モデルは、1つの場所、2つの場所、又は任意の数の場所からの撮像データについて訓練されたものであってもよい。少なくとも一実施例では、特定の場所からの撮像データについて訓練されるとき、訓練は、その場所で行われてもよく、又は少なくとも、撮像データの機密性を保護するようなやり方で、若しくは撮像データが構外へ転送されるのを制限するようなやり方で行われてもよい。少なくとも一実施例では、1つの場所においてモデルが訓練されると、又は部分的に訓練されると、機械学習モデルはモデル・レジストリ1324に加えられてもよい。少なくとも一実施例では、次いで機械学習モデルは、任意の数の他の施設において再訓練又は更新されてもよく、再訓練又は更新されたモデルが、モデル・レジストリ1324において利用可能にされてもよい。少なくとも一実施例では、次いで機械学習モデルは、モデル・レジストリ1324から選択されてもよく、出力モデル1316と呼ばれてもよく、導入システム1306において使用されて、導入システムの1つ又は複数のアプリケーションのための1つ又は複数の処理タスクを実行してもよい。
少なくとも一実施例では、訓練パイプライン1404(図14)は、シナリオは、施設1302が、導入システム1306内の1つ又は複数のアプリケーションのための1つ又は複数の処理タスクを実行する際に使用する機械学習モデルを必要としているが、施設1302は現在そのような機械学習モデルを有していないかもしれない(又はそうした目的のために最適化された、効率よい、若しくは有効なモデルを有していないかもしれない)という状況を含み得る。少なくとも一実施例では、モデル・レジストリ1324から選択された機械学習モデルは、母集団、機械学習モデルを訓練するために使用される訓練データの頑健性、訓練データの異常の多様性、及び/又は訓練データに伴う他の問題に違いがあることから、施設1302において生成される撮像データ1308向けに微調整又は最適化されていないことがある。少なくとも一実施例では、機械学習モデルを再訓練又は更新するためのグラウンド・トゥルース・データとして使用されることになる撮像データ1308に対応するアノテーションの生成を支援するために、AI支援アノテーション1310が使用されてもよい。少なくとも一実施例では、ラベル付きデータ1312が、機械学習モデルを訓練するためのグラウンド・トゥルース・データとして使用されてもよい。少なくとも一実施例では、機械学習モデルを再訓練又は更新することは、モデル訓練1314と呼ばれてもよい。少なくとも一実施例では、モデル訓練1314、たとえばAI支援アノテーション1310、ラベル付きクリニック・データ1312、又はこれらの組合せは、機械学習モデルを再訓練若しくは更新するためのグラウンド・トゥルース・データとして使用されてもよい。少なくとも一実施例では、訓練済み機械学習モデルは出力モデル1316と呼ばれてもよく、本明細書に記載の導入システム1306によって使用されてもよい。
少なくとも一実施例では、導入システム1306は、ソフトウェア1318、サービス1320、ハードウェア1322、並びに/又は他の構成要素、特徴、及び機能を含んでもよい。少なくとも一実施例では、導入システム1306は、ソフトウェア「スタック」を含んでもよく、それによりソフトウェア1318は、サービス1320の上に構築されてもよく、サービス1320を使用して一部若しくはすべての処理タスクを実行してもよく、サービス1320及びソフトウェア1318は、ハードウェア1322の上に構築され、ハードウェア1322を使用して、導入システム1306の処理、ストレージ、及び/又は他の計算のタスクを実行してもよい。少なくとも一実施例では、ソフトウェア1318は、任意の数の異なるコンテナを含んでもよく、ここで各コンテナは、アプリケーションのインスタンス化を実行してもよい。少なくとも一実施例では、各アプリケーションは、先進処理及び推論パイプラインの1つ又は複数の処理タスク(たとえば、推論、物体検出、特徴検出、セグメント化、画像強調、キャリブレーションなど)を実行してもよい。少なくとも一実施例では、先進処理及び推論パイプラインは、(たとえば、使用可能なタイプのデータに出力を再変換するように)パイプラインを通して処理した後に、各コンテナによって使用される、且つ/又は施設1302によって使用される撮像データを受信及び構成するコンテナに加えて、撮像データ1308を処理するのに所望される又は必要とされる異なるコンテナの選択に基づき定義されてもよい。少なくとも一実施例では、(たとえばパイプラインを構成する)ソフトウェア1318内のコンテナの組合せは、(本明細書においてより詳細に記載する)仮想機器と呼ばれてもよく、仮想機器は、サービス1320及びハードウェア1322を利用して、コンテナにおいてインスタンス化されたアプリケーションの一部又はすべての処理タスクを実行してもよい。
少なくとも一実施例では、データ処理パイプラインは、推論要求(たとえば、導入システム1306のユーザからの要求)に応答して、特定のフォーマットで入力データ(たとえば、撮像データ1308)を受け取ってもよい。少なくとも一実施例では、入力データは、1つ又は複数の撮像デバイスによって生成される1つ又は複数の画像、ビデオ、及び/又は他のデータ表現を表してもよい。少なくとも一実施例では、データは、データ処理パイプラインの一部としての事前処理を受けて、1つ又は複数のアプリケーションによって処理できるようにデータが準備されてもよい。少なくとも一実施例では、パイプラインの1つ若しくは複数の推論タスク又は他の処理タスクの出力に対して後処理が実行されて、次のアプリケーション用に出力データが準備されてもよく、且つ/又は送信及び/若しくはユーザによる使用のために(たとえば、推論要求への応答として)出力データが準備されてもよい。少なくとも一実施例では、推論タスクは、訓練済み若しくは導入済みのニューラル・ネットワークなど、1つ又は複数の機械学習モデルによって実行されてもよく、このモデルは、訓練システム1304の出力モデル1316を含んでもよい。
少なくとも一実施例では、データ処理パイプラインのタスクはコンテナにカプセル化されてもよく、コンテナはそれぞれ、アプリケーションの個別の完全に機能的なインスタンス化、及び機械学習モデルを参照できる仮想化コンピューティング環境を表す少なくとも一実施例では、コンテナ又はアプリケーションは、(本明細書においてより詳細に記載する)コンテナ・レジストリのプライベート(たとえば、アクセスの制限された)区域に発行されてもよく、訓練済み又は導入済みのモデルは、モデル・レジストリ1324に記憶され、1つ又は複数のアプリケーションに関連付けられてもよい。少なくとも一実施例では、アプリケーションの画像(たとえば、コンテナの画像)は、コンテナ・レジストリにおいて入手可能であってもよく、パイプラインに導入するためにユーザによってコンテナ・レジストリから選択されると、画像は、ユーザのシステムで使用できるようにアプリケーションをインスタンス化するためのコンテナを生成するために使用されてもよい。
少なくとも一実施例では、開発者(たとえば、ソフトウェア開発者、臨床医、医師など)は、供給されたデータに対して画像処理及び/又は推論を実行するために、アプリケーションを(たとえばコンテナとして)開発、公開、及び記憶してもよい。少なくとも一実施例では、開発、公開、及び/又は記憶は、(たとえば、開発されたアプリケーション及び/又はコンテナが、確実にシステムに準拠するように、又はシステムと互換性があるようにするために)システムに関連付けられたソフトウェア開発キット(SDK)を使用して実行されてもよい。少なくとも一実施例では、開発されたアプリケーションは、システム(たとえば図14のシステム1400)としてサービス1320の少なくとも一部をサポートすることができるSDKを用いて、ローカルに(たとえば第1の施設において、第1の施設からのデータについて)テストされてもよい。少なくとも一実施例では、DICOM物体は、1個から数百個にわたる画像又は他のタイプのデータをどこにでも含むことができるうえに、データのバリエーションがあることから、開発者は、入力されるデータの抽出及び準備を管理する(たとえば、アプリケーション用の構成を設定する、事前処理をアプリケーションに構築するなどの)責任を負うことがある。少なくとも一実施例では、システム1400によって(たとえば、精度が)検証されると、アプリケーションは、ユーザによって選択及び/又は実装できるようにコンテナ・レジストリにおいて利用可能にされて、ユーザの施設(たとえば、第2の施設)におけるデータに対して1つ又は複数の処理タスクが実行されてもよい。
少なくとも一実施例では、次いで開発者は、アプリケーション又はコンテナを、システム(たとえば、図14のシステム1400)のユーザによってアクセス及び使用できるようにネットワークを通して共有してもよい。少なくとも一実施例では、完成し検証されたアプリケーション又はコンテナは、コンテナ・レジストリに記憶されてもよく、関連する機械学習モデルは、モデル・レジストリ1324に記憶されてもよい。少なくとも一実施例では、推論又は画像処理の要求を出す要求元エンティティは、コンテナ・レジストリ及び/又はモデル・レジストリ1324をブラウジングしてアプリケーション、コンテナ、データセット、機械学習モデルなどを探し、データ処理パイプラインに含めるための要素の所望の組合せを選択し、撮像処理要求を送出してもよい。少なくとも一実施例では、要求は、要求を実行するために必要な入力データ(及びいくつかの実例では、関連する患者データ)を含んでもよく、且つ/又は要求を処理する際に実行されることになるアプリケーション及び/又は機械学習モデルの選択を含んでもよい。少なくとも一実施例では、次いで要求は、導入システム1306(たとえばクラウド)の1つ又は複数の構成要素に渡されて、データ処理パイプラインの処理が実行されてもよい。少なくとも一実施例では、導入システム1306による処理は、コンテナ・レジストリ及び/又はモデル・レジストリ1324から選択された要素(たとえば、アプリケーション、コンテナ、モデルなど)を参照することを含んでもよい。少なくとも一実施例では、パイプラインによって結果が生成されると、結果がユーザに返されて参照されてもよい(たとえば、ローカルで、構内のワークステーション又は端末で実行している視聴アプリケーション・スイートで視聴されてもよい)。
少なくとも一実施例では、パイプラインにおけるアプリケーション又はコンテナの処理又は実行を支援するために、サービス1320が利用されてもよい。少なくとも一実施例では、サービス1320は、計算サービス、人工知能(AI)サービス、視覚化サービス、及び/又は他のタイプのサービスを含んでもよい。少なくとも一実施例では、サービス1320は、ソフトウェア1318の1つ又は複数のアプリケーションに共通の機能を提供してもよく、それにより機能は、アプリケーションによってコール又は利用されることが可能なサービスに対して抽象化されてもよい。少なくとも一実施例では、サービス1320によって提供される機能は、動的でより効率的に実行されてもよく、それと同時に、(たとえば、並列コンピューティング・プラットフォーム1430(図14)を使用して)アプリケーションが並列にデータを処理できるようにすることにより、良好にスケーリングされてもよい。少なくとも一実施例では、サービス1320により提供される同じ機能を共有する各アプリケーションに、サービス1320のそれぞれのインスタンスを有するよう要求するのではなく、サービス1320が、様々なアプリケーション間で共有されてもよい。少なくとも一実施例では、サービスは、非限定的な実例として、検出又はセグメント化のタスクを実行するために使用されてもよい推論のサーバ又はエンジンを含んでもよい。少なくとも一実施例では、機械学習モデルの訓練及び/又は再訓練の機能を提供することができるモデル訓練サービスが含まれてもよい。少なくとも一実施例では、GPU加速化データ(たとえば、DICOM、RIS、CIS、REST準拠、RPC、生など)の抽出、リサイズ、スケーリング、及び/又は他の拡張を提供することができるデータ拡張サービスがさらに含まれてもよい。少なくとも一実施例では、レイ・トレーシング、ラスタ化、ノイズ除去、鮮鋭化などの画像レンダリング効果を加えることができる視覚化サービスが使用されて、2次元(2D)及び/又は3次元(3D)のモデルにリアル感が付加されてもよい。少なくとも一実施例では、仮想機器のパイプライン内の他のアプリケーションについてビーム形成、セグメント化、推論、撮像、及び/又はサポートを実現する仮想機器サービスが含まれてもよい。
少なくとも一実施例では、サービス1320がAIサービス(たとえば、推論サービス)を含む場合、1つ又は複数の機械学習モデルは、機械学習モデル、又はその処理を、アプリケーション実行の一部として実行するように推論サービス(たとえば、推論サーバ)に(APIコールとして)コールすることによって、実行されてもよい。少なくとも一実施例では、セグメント化タスクのための1つ又は複数の機械学習モデルを別のアプリケーションが含む場合、セグメント化タスクに関連付けられた処理動作のうちの1つ又は複数を実行するための機械学習モデルを実行するように、アプリケーションは推論サービスをコールしてもよい。少なくとも一実施例では、セグメント化アプリケーション及び異常検出アプリケーションを含む先進処理及び推論パイプラインを実装するソフトウェア1318は、1つ又は複数の推論タスクを実行するためにそれぞれのアプリケーションが同じ推論サービスをコールすることがあるので、合理化されてもよい。
少なくとも一実施例では、ハードウェア1322は、GPU、CPU、グラフィックス・カード、AI/深層学習システム(たとえば、NVIDIAのDGXなどのAIスーパーコンピュータ)、クラウド・プラットフォーム、又はそれらの組合せを含んでもよい。少なくとも一実施例では、異なるタイプのハードウェア1322を使用して、導入システム1306のソフトウェア1318及びサービス1320のための効率的で専用のサポートが提供されてもよい。少なくとも一実施例では、画像処理及び画像生成の効率、精度、及び有効性を向上させるために、AI/深層学習システム内、クラウド・システム、及び/又は導入システム1306の他の処理構成要素において、ローカルで(たとえば、施設1302で)処理を行うためのGPU処理の使用が実装されてもよい。少なくとも一実施例では、ソフトウェア1318及び/又はサービス1320は、非限定的な実例として深層学習、機械学習、及び/又は高性能コンピューティングに関するGPU処理のために最適化されてもよい。少なくとも一実施例では、導入システム1306及び/又は訓練システム1304のコンピューティング環境のうちの少なくとも一部は、データセンタの1つ若しくは複数のスーパーコンピュータ、又は高性能コンピューティング・システムにおいて、GPU最適化ソフトウェア(たとえば、NVIDIAのDGXシステムのハードウェアとソフトウェアの組合せ)を用いて実行されてもよい。少なくとも一実施例では、ハードウェア1322は、任意の数のGPUを含んでもよく、これらのGPUは、本明細書に記載するように、データの並列処理を実行するためにコールされてもよい。少なくとも一実施例では、クラウド・プラットフォームはさらに、深層学習タスク、機械学習タスク、又は他のコンピューティング・タスクのGPU最適化された実行のためのGPU処理を含んでもよい。少なくとも一実施例では、クラウド・プラットフォーム(たとえば、NVIDIAのNGC)は、(たとえば、NVIDIAのDGXシステムによって提供される)AI/深層学習スーパーコンピュータ、及び/又はGPU最適化ソフトウェアをハードウェア抽象化及びスケーリングのプラットフォームとして使用して、実行されてもよい。少なくとも一実施例では、クラウド・プラットフォームは、シームレスなスケーリング及びロード・バランシングを可能にするために、複数のGPUに対するアプリケーション・コンテナ・クラスタリング・システム又はオーケストレーション・システム(たとえば、KUBERNETES)を統合してもよい。
図14は、少なくとも一実施例による撮像導入パイプラインを生成及び導入するための実例システム1400を示すシステム図である。少なくとも一実施例では、システム1400は、図13のプロセス1300、及び/又は先進処理及び推論パイプラインを含む他のプロセスを実装するために使用されてもよい。少なくとも一実施例では、システム1400は、訓練システム1304及び導入システム1306を含んでもよい。少なくとも一実施例では、訓練システム1304及び導入システム1306は、本明細書に記載するように、ソフトウェア1318、サービス1320、及び/又はハードウェア1322を使用して実装されてもよい。
少なくとも一実施例では、システム1400(たとえば、訓練システム1304及び/又は導入システム1306)は、クラウド・コンピューティング環境(たとえば、クラウド1426)において実装されてもよい。少なくとも一実施例では、システム1400は、ヘルスケア・サービス施設に関してローカルに実装されてもよく、又はクラウドとローカル・コンピューティング・リソースとの組合せとして実装されてもよい。少なくとも一実施例では、クラウド1426のAPIへのアクセスは、制定されたセキュリティ対策又はプロトコルを介して許可されたユーザに限定されてもよい。少なくとも一実施例では、セキュリティ・プロトコルはウェブ・トークンを含んでもよく、このウェブ・トークンは、認証(たとえば、AuthN、AuthZ、Glueconなど)のサービスによって署名されてもよく、適切な許可を持っていてもよい。少なくとも一実施例では、(本明細書に記載の)仮想機器のAPI、又はシステム1400の他のインスタンス化は、対話について検査済み又は許可済みのパブリックIPのセットに限定されてもよい。
少なくとも一実施例では、システム1400の様々な構成要素は、有線及び/又は無線の通信プロトコルを介して、ローカル・エリア・ネットワーク(LAN)及び/又は広域ネットワーク(WAN)を含むがこれらに限定されない様々な異なるタイプのネットワークのうちの任意のものを使用して、相互に通信してもよい。少なくとも一実施例では、(たとえば推論要求を送信するため、推論要求の結果を受信するためなど)施設とシステム1400の構成要素との間の通信は、1つ又は複数のデータ・バス、無線データ・プロトコル(Wi−Fi)、有線データ・プロトコル(たとえば、イーサネット(登録商標))などを介して通信されてもよい。
少なくとも一実施例では、訓練システム1304は、図13に関して本明細書に記載したものと同様の訓練パイプライン1404を実行してもよい。少なくとも一実施例では、1つ又は複数の機械学習モデルが導入システム1306により導入パイプライン1410において使用されることになる場合、訓練パイプライン1404を使用して、1つ又は複数の(たとえば、事前訓練された)モデルが訓練若しくは再訓練されてもよく、且つ/又は事前訓練されたモデル1406のうちの1つ又は複数が(たとえば再訓練若しくは更新を必要とせずに)実装されてもよい。少なくとも一実施例では、訓練パイプライン1404の結果として、出力モデル1316が生成されてもよい。少なくとも一実施例では、訓練パイプライン1404は、撮像データ(若しくは他の入力データ)の変換若しくは適合、などであるがこれらに限定されない任意の数の処理ステップを含んでもよい。少なくとも一実施例では、導入システム1306によって使用される異なる機械学習モデルについて、異なる訓練パイプライン1404が使用されてもよい。少なくとも一実施例では、図13に関して記載した第1の実例と同様の訓練パイプライン1404は、第1の機械学習モデルに使用されてもよく、図13に関して記載した第2の実例と同様の訓練パイプライン1404は、第2の機械学習モデルに使用されてもよく、図13に関して記載した第3の実例と同様の訓練パイプライン1404は、第3の機械学習モデルに使用されてもよい。少なくとも一実施例では、それぞれの各機械学習モデルに要求されるものに応じて、訓練システム1304内のタスクの任意の組合せが使用されてもよい。少なくとも一実施例では、機械学習モデルのうちの1つ又は複数は、すでに訓練済みで導入の準備が整っていてもよく、それにより機械学習モデルは、訓練システム1304によるいかなる処理も受けなくてもよく、導入システム1306によって実装されてもよい。
少なくとも一実施例では、出力モデル1316及び/又は事前訓練されたモデル1406は、実装形態又は実施例に応じて任意のタイプの機械学習モデルを含んでもよい。少なくとも一実施例では、限定することなく、システム1400によって使用される機械学習モデルは、線形回帰、ロジスティック回帰、決定木、サポート・ベクター・マシン(SVM)、ナイーブ・ベイズ、k近傍法(k−nearest neighbor:Knn)、k平均クラスタリング、ランダム・フォレスト、次元縮小アルゴリズム、勾配ブースティング・アルゴリズム、ニューラル・ネットワーク(たとえば、オート・エンコーダ、畳み込み、再帰、パーセプトロン、長/短期メモリ(LSTM)、ホップフィールド、ボルツマン、ディープ・ビリーフ、逆畳み込み、敵対的生成、液体状態マシンなど)を使用する機械学習モデル、及び/又は他のタイプの機械学習モデルを含んでもよい。
少なくとも一実施例では、訓練パイプライン1404は、少なくとも図15Bに関して、より詳細に本明細書に記載するAI支援アノテーションを含んでもよい。少なくとも一実施例では、ラベル付きデータ1312(たとえば、従来のアノテーション)は、任意の数の技法によって生成されてもよい。少なくとも一実施例では、ラベル又は他のアノテーションは、描画プログラム(たとえば、アノテーション・プログラム)、コンピュータ支援設計(CAD)プログラム、ラベル付けプログラム、グラウンド・トゥルース用のアノテーション若しくはラベルの生成に適した別のタイプのプログラム内で生成されてもよく、且つ/又はいくつかの実例では、手書きされてもよい。少なくとも一実施例では、グラウンド・トゥルース・データは、合成により生成されてもよく(たとえば、コンピュータ・モデル又はレンダリングから生成されてもよく)、現実的に生成されてもよく(たとえば、実世界のデータから設計及び生成されてもよく)、機械自動化されてもよく(たとえば、特徴の分析及び学習を使用して、データから特徴を抽出し、次いでラベルを生成してもよく)、人間によりアノテーション付けされてもよく(たとえば、ラベラ、又はアノテーション専門家がラベルのロケーションを定義してもよく)、且つ/又はこれらの組合せであってもよい。少なくとも一実施例では、撮像データ1308のインスタンス(又は機械学習モデルによって使用される他のタイプのデータ)ごとに、訓練システム1304によって生成される対応するグラウンド・トゥルース・データが存在してもよい。少なくとも一実施例では、訓練パイプライン1404に含まれるAI支援アノテーションに加えて又はその代わりに、導入パイプライン1410の一部としてAI支援アノテーションが実行されてもよい。少なくとも一実施例では、システム1400は多層プラットフォームを含んでもよく、このプラットフォームは、1つ又は複数の医療用撮像及び診断の機能を実行することができる診断アプリケーション(又は他のタイプのアプリケーション)のソフトウェア層(たとえば、ソフトウェア1318)を含んでもよい。少なくとも一実施例では、システム1400は、1つ又は複数の施設のPACSサーバ・ネットワークに、(たとえば、暗号化リンクを介して)通信可能に結合されてもよい。少なくとも一実施例では、システム1400は、PACSサーバからのデータにアクセスし、それを参照するように構成されて、機械学習モデルの訓練、機械学習モデルの導入、画像処理、推論、及び/又は他の動作などの動作を実行してもよい。
少なくとも一実施例では、ソフトウェア層は、セキュアな、暗号化された、且つ/又は認証されたAPIとして実装されてもよく、これを介して、アプリケーション又はコンテナが、外部環境(たとえば、施設1302)から呼び出し(たとえばコール)されてもよい。少なくとも一実施例では、次いでアプリケーションは、それぞれのアプリケーションに関連付けられた計算、AI、又は視覚化のタスクを実行するために1つ又は複数のサービス1320をコール又は実行してもよく、ソフトウェア1318及び/又はサービス1320は、ハードウェア1322を利用して、処理タスクを有効且つ効率的なやり方で実行してもよい。
少なくとも一実施例では、導入システム1306は、導入パイプライン1410を実行してもよい。少なくとも一実施例では、導入パイプライン1410は任意の数のアプリケーションを含んでもよく、これらは、上に記載のAI支援アノテーションを含め、撮像デバイス、シーケンシング・デバイス、ゲノミクス・デバイスなどによって生成された撮像データ(及び/又は他のタイプのデータ)に連続的に、非連続的に、又は他のやり方で適用されてもよい。少なくとも一実施例では、本明細書に記載するように、個々のデバイス用の導入パイプライン1410は、デバイス用の仮想機器(たとえば、仮想超音波機器、仮想CTスキャン機器、仮想シーケンシング機器など)と呼ばれてもよい。少なくとも一実施例では、デバイスによって生成されるデータに必要な情報に応じて、1つのデバイスにつき2つ以上の導入パイプライン1410が存在してもよい。少なくとも一実施例では、異常検出がMRIマシンに必要とされる場合、第1の導入パイプライン1410が存在してもよく、画像強調がMRIマシンの出力に必要とされる場合、第2の導入パイプライン1410が存在してもよい。
少なくとも一実施例では、画像生成アプリケーションは、機械学習モデルの使用を含む処理タスクを含んでもよい。少なくとも一実施例では、ユーザは、独自の機械学習モデルを使用すること、又はモデル・レジストリ1324から機械学習モデルを選択することを望む場合がある。少なくとも一実施例では、ユーザは、処理タスクを実行するために、独自の機械学習モデルを実装してもよく、又は機械学習モデルを選択してアプリケーションに含めてもよい。少なくとも一実施例では、アプリケーションは選択可能及びカスタマイズ可能であってもよく、アプリケーションの構造を定義することにより、特定のユーザ向けのアプリケーションの導入及び実装が、よりシームレスなユーザ・エクスペリエンスとして提示される。少なくとも一実施例では、システム1400の他の特徴、たとえばサービス1320及びハードウェア1322などを利用することにより、導入パイプライン1410は、さらによりユーザ・フレンドリになることができ、より容易な統合を実現でき、より正確で、効率的で、タイムリーな結果を生み出すことができる。
少なくとも一実施例では、導入システム1306はユーザ・インターフェース1414(たとえば、グラフィカル・ユーザ・インターフェース、ウェブ・インターフェースなど)を含んでもよく、これらは、アプリケーションを選択して導入パイプライン1410に含める、アプリケーションを構成する、アプリケーション又はそのパラメータ若しくは構造を修正又は変更する、セットアップ及び/又は導入中に導入パイプライン1410を使用しそれと対話する、且つ/又は他のやり方で導入システム1306と対話するために使用されてもよい。少なくとも一実施例では、訓練システム1304に関して図示されていないが、ユーザ・インターフェース1414(又は異なるユーザ・インターフェース)は、導入システム1306で使用するモデルを選択するため、訓練システム1304において訓練若しくは再訓練するモデルを選択するため、且つ/又は他のやり方で訓練システム1304と対話するために使用されてもよい。
少なくとも一実施例では、アプリケーション・オーケストレーション・システム1428に加えてパイプライン・マネージャ1412を使用して、導入パイプライン1410のアプリケーション又はコンテナと、サービス1320及び/又はハードウェア1322との間で対話が管理されてもよい。少なくとも一実施例では、パイプライン・マネージャ1412は、アプリケーションからアプリケーションへの対話、アプリケーションからサービス1320への対話、及び/又はアプリケーション若しくはサービスからハードウェア1322への対話を容易にするように構成されてもよい。少なくとも一実施例では、ソフトウェア1318に含まれるように図示してあるが、これは限定を意図しておらず、(たとえば、図12ccに示すものなど)いくつかの事例では、パイプライン・マネージャ1412は、サービス1320に含まれてもよい。少なくとも一実施例では、アプリケーション・オーケストレーション・システム1428(たとえば、Kubernetes、DOCKERなど)は、コンテナ・オーケストレーション・システムを含んでもよく、このシステムは、アプリケーションを、調整、管理、スケーリング、及び導入のための論理ユニットとして、コンテナにグループ化することができる。少なくとも一実施例では、導入パイプライン1410からのアプリケーション(たとえば、再構築アプリケーション、セグメント化アプリケーションなど)を個々のコンテナに関連付けることより、各アプリケーションは自己完結型環境内(たとえば、カーネル・レベル)で実行して、スピード及び効率を向上させることができる。
少なくとも一実施例では、各アプリケーション及び/又はコンテナ(又はその画像)は、個々に開発、修正、及び導入されてもよく(たとえば、第1のユーザ又は開発者が、第1のアプリケーションを開発、修正、及び導入し、第2のユーザ又は開発者が、第1のユーザ又は開発者とは別に第2のアプリケーションを開発、修正、及び導入してもよく)、これにより、別のアプリケーション又はコンテナのタスクに邪魔されることなく、1つのアプリケーション及び/又はコンテナのタスクに集中し、注意を払うことが可能になる。少なくとも一実施例では、異なるコンテナ間又はアプリケーション間の通信、及び協調が、パイプライン・マネージャ1412及びアプリケーション・オーケストレーション・システム1428によって支援されてもよい。少なくとも一実施例では、各コンテナ又はアプリケーションの予測される入力及び/又は出力が、(たとえば、アプリケーション又はコンテナの構造に基づき)システムによって知られている限り、アプリケーション・オーケストレーション・システム1428及び/又はパイプライン・マネージャ1412は、アプリケーション又はコンテナのそれぞれ間の通信、及びそれらの間でのリソースの共有を容易にすることができる。少なくとも一実施例では、導入パイプライン1410のアプリケーション又はコンテナのうちの1つ又は複数は、同じサービス及びリソースを共有することができるので、アプリケーション・オーケストレーション・システム1428は、様々なアプリケーション間又はコンテナ間でサービス又はリソースをオーケストレートし、ロード・バランシングを行い、共有を決定してもよい。少なくとも一実施例では、スケジューラを使用して、アプリケーション又はコンテナのリソース要件、これらのリソースの現在の使用量又は計画された使用量、及びリソースの利用可能性が追跡されてもよい。少なくとも一実施例では、こうしてスケジューラは、異なるアプリケーションにリソースを配分し、システムの要件及び利用可能性を考慮してアプリケーション間でリソースを分配してもよい。いくつかの実例では、スケジューラ(及び/又はアプリケーション・オーケストレーション・システム1428の他の構成要素)は、サービスの品質(QoS)、(たとえば、リアルタイム処理を実行するか、遅延処理を実行するかを決定するための)データ出力を必要とする緊急度など、システムに課される制約(たとえば、ユーザ制約)に基づき、リソースの利用可能性及び分配を決定してもよい。
少なくとも一実施例では、導入システム1306のアプリケーション又はコンテナによって利用及び共有されるサービス1320は、計算サービス1416、AIサービス1418、視覚化サービス1420、及び/又は他のタイプのサービスを含んでもよい。少なくとも一実施例では、アプリケーションは、サービス1320のうちの1つ又は複数をコール(たとえば実行)して、アプリケーションのための処理動作を実行してもよい。少なくとも一実施例では、計算サービス1416は、スーパーコンピューティング又は他の高性能コンピューティング(HPC)のタスクを実行するために、アプリケーションによって利用されてもよい。少なくとも一実施例では、アプリケーションのうちの1つ又は複数を介してデータを実質的に同時に処理するため、且つ/又は1つのアプリケーションの1つ又は複数のタスクを実質的に同時に処理するために、計算サービス1416を利用して(たとえば、並列コンピューティング・プラットフォーム1430を使用して)並列処理が実行されてもよい。少なくとも一実施例では、並列コンピューティング・プラットフォーム1430(たとえば、NVIDIAのCUDA)は、GPU(たとえば、GPU1422)上での汎用コンピューティング(GPGPU)を可能にしてもよい。少なくとも一実施例では、並列コンピューティング・プラットフォーム1430のソフトウェア層は、計算カーネルを実行するために仮想命令セット及びGPUの並列計算要素へのアクセスを提供してもよい。少なくとも一実施例では、並列コンピューティング・プラットフォーム1430はメモリを含んでもよく、いくつかの実施例では、メモリは、複数のコンテナ間で、且つ/又は1つのコンテナ内の異なる処理タスク間で共有されてもよい。少なくとも一実施例では、複数のコンテナ、及び/又はコンテナ内の複数のプロセスが、並列コンピューティング・プラットフォーム1430のメモリの共有セグメントからの同じデータを使用するために(たとえば、アプリケーションの複数の異なるステージ、又は複数のアプリケーションが、同じ情報を処理する場合)、プロセス間通信(IPC)コールが生成されてもよい。少なくとも一実施例では、データのコピーを作成し、データをメモリの異なるロケーションに移動(たとえば、読取り/書込みの動作)させるのではなく、メモリの同じロケーションの同じデータが、任意の数の処理タスクに(たとえば、同じ時間、異なる時間などに)使用されてもよい。少なくとも一実施例では、データが使用されて、処理の結果として新規データが生成されるとき、データの新規ロケーションのこの情報は、様々なアプリケーションに記憶され、それらの間で共有されてもよい。少なくとも一実施例では、データのロケーション及び更新済み又は修正済みのデータのロケーションは、コンテナ内でペイロードがどのように理解されるかという定義の一部であってもよい。
少なくとも一実施例では、AIサービス1418は、アプリケーションに関連付けられた(たとえば、アプリケーションの1つ又は複数の処理タスクを実行する役割を課された)機械学習モデルを実行するための推論サービスを実行するために利用されてもよい。少なくとも一実施例では、AIサービス1418は、セグメント化、再構築、物体検出、特徴検出、分類、及び/又は他の推論タスクのための機械学習モデル(たとえば、CNNなどのニューラル・ネットワーク)を実行するために、AIシステム1424を利用してもよい。少なくとも一実施例では、導入パイプライン1410のアプリケーションは、訓練システム1304からの出力モデル1316及び/又はアプリケーションの他のモデルのうちの1つ又は複数を使用して、撮像データについて推論を実行してもよい。少なくとも一実施例では、アプリケーション・オーケストレーション・システム1428(たとえば、スケジューラ)を使用する推論の2つ以上の実例が利用可能であってもよい。少なくとも一実施例では、第1のカテゴリは、緊急時の緊急要求について推論を実行するため、又は診断時の放射線医のためなど、より高いサービス・レベル合意を達成できる高優先順位/低レイテンシの経路を含むことができる。少なくとも一実施例では、第2のカテゴリは、緊急ではない要求のため、又は分析が後で実行されてもよい場合に使用することができる標準優先順位の経路を含んでもよい。少なくとも一実施例では、アプリケーション・オーケストレーション・システム1428は、AIサービス1418の異なる推論タスク向けの優先順位経路に基づき、リソース(たとえば、サービス1320及び/又はハードウェア1322)を分配してもよい。
少なくとも一実施例では、共有ストレージが、システム1400内でAIサービス1418に取り付けられてもよい。少なくとも一実施例では、共有ストレージは、キャッシュ(又は他のタイプのストレージ・デバイス)として動作してもよく、アプリケーションからの推論要求を処理するために使用されてもよい。少なくとも一実施例では、推論要求が送出されたとき、要求は、導入システム1306のAPIインスタンスのセットによって受信されてもよく、1つ又は複数のインスタンスが(たとえば、最良な適合のため、ロード・バランシングのためなどに)選択されて、要求が処理されてもよい。少なくとも一実施例では、要求を処理するために、要求がデータベースに入れられてもよく、機械学習モデルは、まだキャッシュにない場合には、モデル・レジストリ1324から特定されてもよく、検証ステップは、適切な機械学習モデルがキャッシュ(たとえば、共有ストレージ)に確実にロードされるようにしてもよく、且つ/又はモデルのコピーがキャッシュに保存されてもよい。少なくとも一実施例では、アプリケーションがまだ実行されていない場合、又はアプリケーションの十分なインスタンスが存在しない場合には、スケジューラ(たとえば、パイプライン・マネージャ1412)を使用して、要求において参照されたアプリケーションが起動されてもよい。少なくとも一実施例では、モデルを実行するための推論サーバがまだ起動されていない場合には、推論サーバが起動されてもよい。任意の数の推論サーバがモデルごとに起動されてもよい。少なくとも一実施例では、推論サーバがクラスタ化済みであるプル・モデルでは、ロード・バランシングが有利な場合にはいつでもモデルがキャッシュされてもよい。少なくとも一実施例では、推論サーバは、対応する分散サーバに静的にロードされてもよい。
少なくとも一実施例では、推論は、コンテナ内で実行される推論サーバを使用して実行されてもよい。少なくとも一実施例では、推論サーバのインスタンスは、モデルに(任意選択でモデルの複数のバージョンに)関連付けられてもよい。少なくとも一実施例では、モデルに対して推論を実行する要求が受信されたとき、推論サーバのインスタンスが存在しない場合には、新規のインスタンスがロードされてもよい。少なくとも一実施例では、推論サーバをスタートするとき、モデルが推論サーバに渡されてもよく、それにより、推論サーバが異なるインスタンスとして実行されている限り、同じコンテナを使用して異なるモデルにサービス提供されてもよい。
少なくとも一実施例では、アプリケーションの実行中、所与のアプリケーションについて推論要求が受信されてもよく、(たとえば、推論サーバのインスタンスをホストする)コンテナが(まだロードされていなければ)ロードされてもよく、開始プロシージャがコールされてもよい。少なくとも一実施例では、コンテナの事前処理論理が、(たとえばCPU及び/又はGPUを使用して)入力データに対する任意の追加的な事前処理をロード、デコード、及び/又は実行してもよい。少なくとも一実施例では、推論のためにデータが準備されると、コンテナは、必要に応じてデータに推論を実行してもよい。少なくとも一実施例では、これは1つの画像(たとえば手のX線)に対する単一の推論コールを含んでもよく、又は何百もの画像(たとえば胸のCT)について推論を要求してもよい。少なくとも一実施例では、アプリケーションは、完了前に結果を要約してもよく、これは限定することなく、単一の信頼性スコア、ピクセル・レベルのセグメント化、ボクセル・レベルのセグメント化、視覚化の生成、又は所見を要約するためのテキストの生成を含んでもよい。少なくとも一実施例では、異なるモデル又はアプリケーションには、異なる優先順位が割り当てられてもよい。たとえば、リアルタイム(TAT<1分)の優先順位を有するモデルもあれば、低優先順位(たとえば、TAT<10分)を有するモデルもある。少なくとも一実施例では、モデル実行時間は、要求元の施設又はエンティティから測定されてもよく、推論サービスに対する実行に加えてパートナ・ネットワーク横断時間を含んでもよい。
少なくとも一実施例では、サービス1320と推論アプリケーションの間での要求の移行は、ソフトウェア開発キット(SDK)の後ろに隠されてもよく、キューを通して頑健な移送が提供されてもよい。少なくとも一実施例では、個々のアプリケーション/テナントIDの組合せを求めて、要求がAPIを介してキューに入れられ、SDKは、キューから要求を引き出し、要求をアプリケーションに与える。少なくとも一実施例では、SDKが要求をピックアップする環境において、キューの名称が提供されてもよい。少なくとも一実施例では、キューを介した非同期の通信は、その通信が利用可能になったときに、その通信によって、アプリケーションの任意のインスタンスがワークをピックアップできるようになるので、有用な場合がある。結果はキューを介して返送されて、データが失われないようにしてもよい。少なくとも一実施例では、最高優先順位のワークは、アプリケーションのほとんどのインスタンスがキューに接続された状態のキューに進むことができ、一方で最低優先順位のワークは、1つのインスタンスがキューに接続された状態の、受信した順番にタスクを処理するキューに進むことができるので、キューは、ワークをセグメント化する機能も提供することができる。少なくとも一実施例では、アプリケーションは、クラウド1426に生成されたGPU加速インスタンス上で実行されてもよく、推論サービスは、GPU上で推論を実行してもよい。
少なくとも一実施例では、視覚化サービス1420を利用して、アプリケーション及び/又は導入パイプライン1410の出力を見るための視覚化が生成されてもよい。少なくとも一実施例では、視覚化を生成するために、視覚化サービス1420によってGPU1422が利用されてもよい。少なくとも一実施例では、レイ・トレーシングなどのレンダリング効果が、視覚化サービス1420によって実装されて、より高品質の視覚化が生成されてもよい。少なくとも一実施例では、視覚化は、2D画像のレンダリング、3Dボリュームのレンダリング、3Dボリュームの再構築、2Dトモグラフィ・スライス、仮想現実表示、拡張現実表示などを、限定することなく含んでもよい。少なくとも一実施例では、仮想化された環境を使用して、システムのユーザが対話するための仮想のインタラクティブ表示又はインタラクティブ環境(たとえば、仮想環境)が生成されてもよい。少なくとも一実施例では、視覚化サービス1420は、内部ビジュアライザ、シネマティクス、及び/又は他のレンダリング若しくは画像処理の能力若しくは機能(たとえば、レイ・トレーシング、ラスタ化、内部光学など)を含んでもよい。
少なくとも一実施例では、ハードウェア1322は、GPU1422、AIシステム1424、クラウド1426、並びに/又は訓練システム1304及び/若しくは導入システム1306を実行するために使用される任意の他のハードウェアを含んでもよい。少なくとも一実施例では、GPU1422(たとえば、NVIDIAのTESLA及び/又はQUADROのGPU)は、任意の数のGPUを含んでもよく、これらは、計算サービス1416、AIサービス1418、視覚化サービス1420、他のサービス、及び/又はソフトウェア1318の任意の特徴若しくは機能の処理タスクを実行するために使用されてもよい。たとえば、AIサービス1418に関して、GPU1422を使用して、撮像データ(又は機械学習モデルによって使用される他のタイプのデータ)に対して事前処理が実行されてもよく、機械学習モデルの出力に対して事後処理が実行されてもよく、且つ/又は推論が実行されてもよい(たとえば、機械学習モデルが実行されてもよい)。少なくとも一実施例では、クラウド1426、AIシステム1424、及び/又はシステム1400の他の構成要素は、GPU1422を使用してもよい。少なくとも一実施例では、クラウド1426は、深層学習タスクのためにGPU最適化されたプラットフォームを含んでもよい。少なくとも一実施例では、AIシステム1424は、GPUを使用してもよく、クラウド1426、又は深層学習若しくは推論の役割を課された少なくとも一部分は、1つ又は複数のAIシステム1424を使用して実行されてもよい。したがって、ハードウェア1322は、個別構成要素として示されているが、これは限定を意図したものではなく、ハードウェア1322の任意の構成要素が、ハードウェア1322の任意の他の構成要素と組み合わされてもよく、それらによって利用されてもよい。
少なくとも一実施例では、AIシステム1424は、推論、深層学習、機械学習、及び/又は他の人工知能タスク向けに構成された専用のコンピューティング・システム(たとえば、スーパーコンピュータ又はHPC)を含んでもよい。少なくとも一実施例では、AIシステム1424(たとえば、NVIDIAのDGX)は、GPU最適化されたソフトウェア(たとえば、ソフトウェア・スタック)を含んでもよく、これは、CPU、RAM、ストレージ、及び/又は他の構成要素、特徴、若しくは機能に加えて、複数のGPU1422を使用して実行されてもよい。少なくとも一実施例では、1つ又は複数のAIシステム1424は、システム1400の一部又はすべてのAIベースの処理タスクを実行するために、(たとえば、データ・センタにおいて)クラウド1426に実装されてもよい。
少なくとも一実施例では、クラウド1426は、GPU加速化インフラストラクチャ(たとえば、NVIDIAのNGC)を含んでもよく、これは、システム1400の処理タスクを実行するためのGPU最適化されたプラットフォームを提供してもよい。少なくとも一実施例では、クラウド1426は、システム1400のAIベースのタスクのうちの1つ又は複数を実行するためのAIシステム1424を(たとえば、ハードウェア抽象化及びスケーリングのプラットフォームとして)含んでもよい。少なくとも一実施例では、クラウド1426は、複数のGPUを利用してアプリケーション・オーケストレーション・システム1428と統合されて、アプリケーションとサービス1320の間でシームレスなスケーリング及びロード・バランシングを可能にしてもよい。少なくとも一実施例では、クラウド1426は、本明細書に記載する計算サービス1416、AIサービス1418、及び/又は視覚化サービス1420を含むシステム1400のサービス1320の少なくとも一部を実行する役割を課されてもよい。少なくとも一実施例では、クラウド1426は、大小のバッチ推論(たとえば、NVIDIAのテンソルRTの実行)を実行してもよく、加速化された並列コンピューティングのAPI及びプラットフォーム1430(たとえば、NVIDIAのCUDA)を提供してもよく、アプリケーション・オーケストレーション・システム1428(たとえば、KUBERNETES)を実行してもよく、グラフィックス・レンダリングのAPI及びプラットフォーム(たとえば、高品質のシネマティクスを生成するためのレイ・トレーシング、2Dグラフィックス、3Dグラフィックス、及び/又は他のレンダリング技法)を提供してもよく、且つ/又はシステム1400のための他の機能を提供してもよい。
図15Aは、少なくとも一実施例による、機械学習モデルを訓練、再訓練、又は更新するためのプロセス1500のデータ・フロー図を示す。少なくとも一実施例では、プロセス1500は、図14のシステム1400を非限定的な実例として使用して、実行されてもよい。少なくとも一実施例では、プロセス1500は、本明細書に記載のシステム1400のサービス1320及び/又はハードウェア1322を利用してもよい。少なくとも一実施例では、プロセス1500によって生成される精緻化モデル1512は、導入パイプライン1410内の1つ又は複数のコンテナ化アプリケーションのために、導入システム1306によって実行されてもよい。
少なくとも一実施例では、モデル訓練1314は、新規訓練データ(たとえば、顧客データセット1506、及び/又は入力データに関連付けられた新規グラウンド・トゥルース・データなどの新規入力データ)を使用して、初期モデル1504(たとえば、事前訓練済みモデル)を再訓練又は更新することを含んでもよい。少なくとも一実施例では、初期モデル1504を再訓練又は更新するために、初期モデル1504の出力又は損失層がリセットされてもよく、削除されてもよく、且つ/又は更新済み若しくは新規の出力若しくは損失層と置換されてもよい。少なくとも一実施例では、初期モデル1504は、以前に微調整された、前の訓練から残っているパラメータ(たとえば、重み及び/又はバイアス)を有してもよく、それにより、訓練又は再訓練1314は、最初からモデルを訓練するほど長い時間がかからず、又は多くの処理を必要としなくても済む。少なくとも一実施例では、モデル訓練1314の間に、初期モデル1504のリセット又は置換された出力又は損失層を有することにより、パラメータは、新規の顧客データセット1506(たとえば、図13の画像データ1308)について予測を生成する際の出力又は損失層の精度に関連付けられた損失計算に基づき、新規データセットのために更新又は再調整されてもよい。
少なくとも一実施例では、事前訓練済みモデル1406は、データストア又はレジストリ(たとえば、図13のモデル・レジストリ1324)に記憶されてもよい。少なくとも一実施例では、事前訓練済みモデル1406は、少なくとも部分的に、プロセス1500を実行する施設とは異なる1つ又は複数の施設において訓練済みであってもよい。少なくとも一実施例では、異なる施設の患者、対象者、顧客のプライバシー及び権利を保護するために、事前訓練済みモデル1406は、構内で生成された顧客又は患者のデータを使用して、構内で訓練されたものであってもよい。少なくとも一実施例では、事前訓練済みモデル1406は、クラウド1426及び/又は他のハードウェア1322を使用して訓練されてもよいが、プライバシー保護された機密の患者データは、クラウド1426(又は他の構外のハードウェア)の任意の構成要素に転送できず、それらの構成要素によって使用されず、又はアクセス不可能であってもよい。少なくとも一実施例では、事前訓練済みモデル1406が2つ以上の施設からの患者データを使用して訓練される場合、事前訓練済みモデル1406は、各施設について個々に訓練されてから、別の施設からの患者若しくは顧客のデータについて訓練されてもよい。少なくとも一実施例では、顧客又は患者のデータが(たとえば、実験での使用を目的とした権利放棄などによって)プライバシー問題から解放されている場合、又は顧客若しくは患者のデータがパブリック・データセットに含まれる場合などには、任意の数の施設からの顧客又は患者のデータを使用して、データセンタ又は他のクラウド・コンピューティング・インフラストラクチャなど、構内及び/又は構外で事前訓練済みモデル1406が訓練されてもよい。
少なくとも一実施例では、導入パイプライン1410で使用するアプリケーションを選択するとき、ユーザは、特定のアプリケーションで使用することになる機械学習モデルも選択することができる。少なくとも一実施例では、ユーザは、使用するモデルを有していないことがあり、したがって、ユーザはアプリケーションとともに使用する事前訓練済みモデル1406を選択してもよい。少なくとも一実施例では、訓練済みモデル1406は、(たとえば、患者の多様性、人口統計、使用される医療用撮像デバイスのタイプなどに基づき)ユーザの施設の顧客データセット1506について正確な結果を生成するように最適化されてもよい。少なくとも一実施例では、事前訓練済みモデル1406を、アプリケーションとともに使用するために導入パイプライン1410に導入する前に、事前訓練済みモデル1406は、それぞれの施設において使用するために更新、再訓練、及び/又は微調整されてもよい。
少なくとも一実施例では、ユーザは、更新、再訓練、及び/又は微調整されることになる事前訓練済みモデル1406を選択してもよく、事前訓練済みモデル1406は、プロセス1500内でシステム1304を訓練するための初期モデル1504と呼ばれてもよい。少なくとも一実施例では、顧客データセット1506(たとえば、施設のデバイスによって生成された撮像データ、ゲノミクス・データ、シーケンシング・データ、又は他のタイプのデータ)を使用して、初期モデル1504について(限定することなく転送学習(transfer learning)を含んでもよい)モデル訓練1314が実行されて、精緻化モデル1512が生成されてもよい。少なくとも一実施例では、顧客データセット1506に対応するグラウンド・トゥルース・データが、訓練システム1304によって生成されてもよい。少なくとも一実施例では、グラウンド・トゥルース・データは、(たとえば、図13のラベル付きクリニック・データ1312として)施設において臨床医、科学者、医師、開業医によって、少なくとも部分的に生成されてもよい。
少なくとも一実施例では、AI支援アノテーション1310がいくつかの実例において使用されて、グラウンド・トゥルース・データが生成されてもよい。少なくとも一実施例では、(たとえば、AI支援アノテーションSDKを使用して実装された)AI支援アノテーション1310は、機械学習モデル(たとえば、ニューラル・ネットワーク)を利用して、顧客データセットについて示唆又は予測されるグラウンド・トゥルース・データを生成してもよい。少なくとも一実施例では、ユーザ1510は、コンピューティング・デバイス1508上のユーザ・インターフェース(グラフィカル・ユーザ・インターフェース(GUI))内でアノテーション・ツールを使用してもよい。
少なくとも一実施例では、ユーザ1510は、コンピューティング・デバイス1508を介してGUIと対話して、(自動)アノテーションを編集又は微調整してもよい。少なくとも一実施例では、ポリゴン編集特徴を使用して、ポリゴンの頂点をより正確なロケーション又は微調整されたロケーションに移動させてもよい。
少なくとも一実施例では、顧客データセット1506が、関連付けられたグラウンド・トゥルース・データを得ると、(たとえば、AI支援アノテーション、手動ラベリングなどからの)グラウンド・トゥルース・データが、モデル訓練1314中に使用されて、精緻化モデル1512が生成されてもよい。少なくとも一実施例では、顧客データセット1506は、初期モデル1504に任意の回数、適用されてもよく、グラウンド・トゥルース・データは、精緻化モデル1512について許容可能なレベルの精度が達成されるまで、初期モデル1504のパラメータを更新するために使用されてもよい。少なくとも一実施例では、精緻化モデル1512が生成されると、精緻化モデル1512は、医療用撮像データに対して1つ又は複数の処理タスクを実行するために、施設において1つ又は複数の導入パイプライン1410内に導入されてもよい。
少なくとも一実施例では、精緻化モデル1512は、別の施設によって選択されることになるモデル・レジストリ1324の事前訓練済みモデル1406にアップロードされてもよい。少なくとも一実施例では、このプロセスは任意の数の施設において完了されてもよく、それにより精緻化モデル1512は、新規データセットについて任意の回数さらに精緻化されて、より普遍的なモデルが生成されてもよい。
図15Bは、少なくとも一実施例による、事前訓練済みのアノテーション・モデルを用いてアノテーション・ツールを強化するためのクライアント・サーバのアーキテクチャ1532の実例の図である。少なくとも一実施例では、AI支援アノテーション・ツール1536は、クライアント・サーバのアーキテクチャ1532に基づきインスタンス化されてもよい。少なくとも一実施例では、撮像アプリケーションのアノテーション・ツール1536は、たとえば放射線医が器官及び異常を識別するのを支援してもよい。少なくとも一実施例では、撮像アプリケーションは、非限定的な実例として(たとえば、3DのMRI又はCTスキャンの)生画像1534において、特定の対象器官上の数少ない極値点をユーザ1510が識別するのを援助し、特定の器官の2Dスライスすべてについて自動アノテーション付けされた結果を受信するソフトウェア・ツールを含んでもよい。少なくとも一実施例では、結果は、訓練データ1538としてデータストアに記憶されてもよく、(たとえば、限定することなく)訓練用のグラウンド・トゥルース・データとして使用されてもよい。少なくとも一実施例では、コンピューティング・デバイス1508が、AI支援アノテーション1310のために極値点を送るとき、たとえば深層学習モデルがこのデータを入力として受信してもよく、セグメント化された器官又は異常の推論結果を返してもよい。少なくとも一実施例では、図15BのAI支援アノテーション・ツール1536Bなどの事前インスタンス化されたアノテーション・ツールは、たとえばアノテーション・モデル・レジストリに記憶された事前訓練済みモデル1542のセットを含むことができるアノテーション支援サーバ1540などのサーバに、APIコール(たとえば、APIコール1544)を行うことによって、拡張されてもよい。少なくとも一実施例では、アノテーション・モデル・レジストリは、特定の器官又は異常に対してAI支援アノテーションを実行するように事前訓練された事前訓練済みモデル1542(たとえば、深層学習モデルなどの機械学習モデル)を記憶してもよい。これらのモデルは、訓練パイプライン1404を使用することにより、さらに更新されてもよい。少なくとも一実施例では、事前インストールされたアノテーション・ツールは、ラベル付き新規クリニック・データ1312が加えられるにつれて、経時的に改善されてもよい。
こうした構成要素を使用して、1つ又は複数の規則セットから多様なシーン・グラフを生成することができ、シーン・グラフを使用して、仮想環境の1つ又は複数のシーンを表す訓練データ又は画像コンテンツを生成することができる。
他の変形形態は、本開示の範囲内にある。したがって、開示した技法は、様々な修正及び代替的な構成が可能であるが、それらのうち一定の例示的な実施例が図面に示され、上で詳細に説明されてきた。しかし、特定の1つ又は複数の開示された形に本開示を限定する意図はなく、その反対に、添付の特許請求の範囲に定義される開示の趣旨及び範囲に入るすべての修正形態、代替的な構成、及び等価物を網羅することを意図している。
開示される実施例を説明する文脈において(特に、以下の特許請求の範囲の文脈において)「a」及び「an」及び「the」という用語、並びに同様の指示語を使用することは、本明細書に別段の記載のない限り、又は文脈によって明らかに否定されない限り、単数と複数の両方を網羅すると解釈されるべきであり、用語の定義であると解釈されるべきではない。「備える(comprising)」、「有する(having)」、「含む(including)」、「収容する(containing)」という用語は、別段の記載のない限り、オープンエンドの用語(「含むが、これに限定されない」を意味する)と解釈される。「接続される」という用語は、修飾されずに物理的接続を指している場合には、何か介在するものがあったとしても、部分的に又は完全に中に収容される、取り付けられる、又は互いに接合されるものとして解釈される。本明細書において値の範囲を詳述することは、本明細書において別段の記載がない限り、またそれぞれ別々の値が、本明細書に個々に詳述されているかのように明細書に組み込まれていない限り、範囲内に含まれるそれぞれ別々の値を個々に参照する簡潔な方法として機能することを単に意図しているにすぎない。「セット」(たとえば、「アイテムのセット」)又は「サブセット」という用語の使用は、文脈によって別段の記載がない、又は否定されていない限り、1つ又は複数の部材を備える空ではない集合として解釈されるべきである。さらに、文脈によって別段の記載がない、又は否定されていない限り、対応するセットの「サブセット」という用語は、対応するセットの厳密なサブセットを必ずしも指すのではなく、サブセットと対応するセットは等しくてもよい。
「A、B、及びCのうちの少なくとも1つ」又は「A、B、及びCのうちの少なくとも1つ」という形の言い回しなどの結合語は、別段の具体的な記載のない限り、又は文脈によって明確に否定されていない限り、項目、用語などが、AかBかCである、又はAとBとCのセットのいずれかの空でないサブセットであることを提示するために一般に使用される文脈で理解される。たとえば、3つの部材を有するセットの説明的な例では、「A、B、及びCのうちの少なくとも1つ」並びに「A、B、及びCのうちの少なくとも1つ」という結合句は、次のセットのうちのいずれかを指す:{A}、{B}、{C}、{A、B}、{A、C}、{B、C}、{A、B、C}。したがって、こうした結合語は、ある一定の実施例が、少なくとも1つのA、少なくとも1つのB、及び少なくとも1つのCのそれぞれの存在を必要とすることを全体的に暗示するものではない。さらに、別段の記載のない、又は文脈によって否定されていない限り、「複数」という用語は、複数である状態を示す(たとえば、「複数の項目(a plurality of items)」は複数の項目(multiple items)を示す)。複数とは、少なくとも2つの項目であるが、明示的に、又は文脈によって示されている場合にはそれより多くてもよい。さらに、別段の記載のない、又は文脈からそうでないことが明らかでない限り、「〜に基づく」という言い回しは、「少なくとも部分的に〜に基づく」を意味し、「〜だけに基づく」を意味しない。
本明細書に記載のプロセスの動作は、本明細書に別段の記載のない、又は文脈によって明確に否定されない限り、任意の好適な順序で実行することができる。少なくとも一実施例では、本明細書に記載のプロセス(又はその変形及び/又は組合せ)などのプロセスは、実行可能命令で構成された1つ又は複数のコンピュータ・システムの制御下で実行され、1つ又は複数のプロセッサ上で、ハードウェアによって、又はそれらの組合せによって集合的に実行されるコード(たとえば、実行可能な命令、1つ若しくは複数のコンピュータ・プログラム、又は1つ若しくは複数のアプリケーション)として実装される。少なくとも一実施例では、コードは、たとえば1つ又は複数のプロセッサによって実行可能な複数の命令を備えるコンピュータ・プログラムの形で、コンピュータ読取り可能ストレージ媒体に記憶される。少なくとも一実施例では、コンピュータ読取り可能ストレージ媒体は、一時的な信号(たとえば、伝播する一時的な電気若しくは電磁送信)を除外するが、一時的な信号のトランシーバ内の非一時的なデータ・ストレージ回路(たとえば、バッファ、キャッシュ、及びキュー)を含む非一時的なコンピュータ読取り可能ストレージ媒体である。少なくとも一実施例では、コード(たとえば、実行可能コード又はソース・コード)は、1つ又は複数の非一時的なコンピュータ読取り可能ストレージ媒体のセットに記憶され、このストレージ媒体には、コンピュータ・システムの1つ又は複数のプロセッサによって実行されたときに(すなわち、実行された結果として)、コンピュータ・システムに本明細書に記載の動作を実行させる実行可能命令が記憶されている(又は、実行可能命令を記憶するための他のメモリを有する)。非一時的なコンピュータ読取り可能ストレージ媒体のセットは、少なくとも一実施例では、複数の非一時的なコンピュータ読取り可能ストレージ媒体を備え、複数の非一時的なコンピュータ読取り可能ストレージ媒体の個々の非一時的なストレージ媒体のうちの1つ又は複数には、すべてのコードがないが、複数の非一時的なコンピュータ読取り可能ストレージ媒体は、集合的にすべてのコードを記憶している。少なくとも一実施例では、実行可能命令は、異なる命令が異なるプロセッサによって実行されるように実行され、たとえば、非一時的なコンピュータ読取り可能ストレージ媒体は命令を記憶し、メインの中央処理装置(「CPU」)は一部の命令を実行し、グラフィックス・プロセッシング・ユニット(「GPU」)は他の命令を実行する。少なくとも一実施例では、コンピュータ・システムの異なる構成要素は、別々のプロセッサを有し、異なるプロセッサは、命令の異なるサブセットを実行する。
したがって、少なくとも一実施例では、コンピュータ・システムは、本明細書に記載のプロセスの動作を単独で又は集合的に実行する1つ又は複数のサービスを実装するように構成され、こうしたコンピュータ・システムは、動作の実行を可能にする適用可能なハードウェア及び/又はソフトウェアで構成される。さらに、本開示の少なくとも一実施例を実装するコンピュータ・システムは、単一のデバイスであり、別の実施例では、異なるやり方で動作する複数のデバイスを備える分散型のコンピュータ・システムであり、それにより単一のデバイスがすべての動作を実行しないように分散型のコンピュータ・システムが本明細書に記載の動作を実行する。
本明細書に提供されるあらゆる例、又は例示的な言葉(たとえば、「など」)の使用は、本開示の実施例をより明らかにすることだけを意図しており、別段の主張のない限り、本開示の範囲に制限を加えるものではない。本明細書のいかなる言葉も、特許請求されていない任意の要素を、本開示の実践に不可欠なものとして示すと解釈されるべきではない。
本明細書に引用される出版物、特許出願、及び特許を含むすべての参考文献は、各参考文献が参照により組み込まれることがあたかも個別に明確に示され、その全体が本明細書に記載されたかのように、それと同程度まで参照により本明細書に組み込まれる。
明細書及び特許請求の範囲において、「結合される」及び「接続される」という用語が、その派生語とともに使用されてもよい。これらの用語は、互いに同義語として意図されていない場合があることを理解すべきである。むしろ、特定の例では、「接続される」又は「結合される」は、2つ以上の要素が物理的又は電気的に互いに直接又は間接的に接触していることを示すために使用されてもよい。また「結合される」は、2つ以上の要素が直接互いに接触していないが、なお互いに連動又は相互作用することを意味してもよい。
別段の具体的な記載のない限り、明細書全体を通して「処理する」、「コンピューティング」、「計算する」、又は「判定する」などの用語は、コンピューティング・システムのレジスタ及び/又はメモリ内の、電子的などの物理的な量として表されるデータをコンピューティング・システムのメモリ、レジスタ、又は他のそのような情報ストレージ・デバイス、送信デバイス、若しくはディスプレイ・デバイス内の物理的な量として同様に表される他のデータになるよう操作及び/又は変換するコンピュータ若しくはコンピューティング・システム、又は同様の電子コンピューティング・デバイスの行為及び/又はプロセスを指す。
同様に、「プロセッサ」という用語は、レジスタ及び/又はメモリからの電子データを処理し、その電子データを、レジスタ及び/又はメモリに記憶することができる他の電子データに変換する任意のデバイス、又はデバイスの一部分を指してもよい。非限定的な例として、「プロセッサ」は、CPU又はGPUであってもよい。「コンピューティング・プラットフォーム」は、1つ又は複数のプロセッサを備えてもよい。本明細書で使用する「ソフトウェア」プロセスは、たとえば、タスク、スレッド、及び知的エージェントなど、経時的にワークを実行するソフトウェア及び/又はハードウェアのエンティティを含んでもよい。また、各プロセスは、命令を直列で又は並列で連続的に又は断続的に実行するための複数のプロセスを指してもよい。「システム」及び「方法」という用語は、1つ又は複数の方法をシステムが具体化することができ、方法がシステムと考えられてもよい場合に限り、本明細書において交換可能に使用される。
本明細書では、アナログ・データ又はデジタル・データを得る、取得する、受信する、又はそれらをサブシステム、コンピュータ・システム、又はコンピュータ実装機械に入力することに言及することができる。アナログ・データ又はデジタル・データを得る、取得する、受信する、又は入力することは、関数呼出し、又はアプリケーション・プログラミング・インターフェースへの呼出しのパラメータとしてデータを受信するなど、様々なやり方で実現することができる。いくつかの実装形態では、アナログ・データ又はデジタル・データを得る、取得する、受信する、又は入力するプロセスは、直列又は並列のインターフェースを介してデータを転送することによって実現することができる。別の実装形態では、アナログ・データ又はデジタル・データを得る、取得する、受信する、又は入力するプロセスは、提供するエンティティから取得するエンティティにコンピュータ・ネットワークを介してデータを転送することによって実現することができる。また、アナログ・データ又はデジタル・データを提供する、出力する、送信する、送る、又は提示することにも言及することができる。様々な例では、アナログ・データ又はデジタル・データを提供する、出力する、送信する、送る、又は提示するプロセスは、関数呼出しの入力又は出力のパラメータ、アプリケーション・プログラミング・インターフェース若しくはプロセス間通信機構のパラメータとしてデータを転送することによって実現することができる。
上の議論は、説明した技法の例示的な実装形態について述べているが、記載した機能を実装するために他のアーキテクチャが使用されてもよく、この他のアーキテクチャは、本開示の範囲内にあることが意図される。さらに、議論を目的として、役割の具体的な分配が上記に定義されているが、様々な機能及び役割は、状況に応じて異なるやり方で分配及び分割されてもよい。
さらに、主題は、構造的特徴及び/又は方法論的動作に特有の言語で説明されてきたが、添付の特許請求の範囲で特許請求される主題は、説明した特有の特徴又は動作に必ずしも限定されないことが理解されるべきである。むしろ、特有の特徴及び動作は、特許請求の範囲を実装する例示的な形として開示されている。
Claims (23)
- 規則セットからの複数の規則の少なくともサブセットを使用してシーン構造を生成するステップであって、前記複数の規則が、シーン内の物体のタイプ間の関係を指定する、生成するステップと、
前記シーン構造で表される前記物体のうちの1つ又は複数についての1つ又は複数のパラメータ値を決定するステップと、
前記シーン構造に基づいた、前記パラメータ値を含むシーン・グラフを生成するステップと、
前記シーンの画像をレンダリングするために、前記シーン・グラフをレンダリング・エンジンに提供するステップと
を含む、コンピュータ実装方法。 - 前記物体についての前記1つ又は複数のパラメータ値を使用して前記シーン構造で表される前記物体をレンダリングするために使用される、オブジェクト関連コンテンツのライブラリを、前記レンダリング・エンジンに提供するステップをさらに含む、請求項1に記載のコンピュータ実装方法。
- 前記レンダリング・エンジンに、前記シーンの前記画像とともに物体ラベル又はシーン構造情報のうちの少なくとも1つを含めさせるステップをさらに含み、前記画像が、ニューラル・ネットワークを訓練するための訓練データとして使用されることが可能である、請求項1に記載のコンピュータ実装方法。
- 前記規則又は物体のうちの1つが前記シーンに利用される対象ではないことを示す入力を受信するステップと、
前記入力を反映するように前記シーン・グラフを更新するステップと、
前記シーンの更新された画像をレンダリングするために、前記更新されたシーン・グラフを前記レンダリング・エンジンに提供するステップと
をさらに含む、請求項1に記載のコンピュータ実装方法。 - 前記規則セットを利用してシーン・グラフの多様なセットを生成するステップと、
シーン・グラフの前記多様なセットを使用して仮想環境を生成するステップと
をさらに含む、請求項1に記載のコンピュータ実装方法。 - 前記仮想環境がゲーミング環境であり、前記レンダリング・エンジンが、シーン・グラフの前記多様なセットを使用して、前記ゲーミング環境の1つ又は複数の画像を前記ゲーミング環境に対応するゲームの1人又は複数のプレーヤ用にレンダリングする、請求項5に記載のコンピュータ実装方法。
- 1つ又は複数の自律機械又は半自律機械に対する1つ又は複数のテスト・シミュレーションに前記仮想環境を利用するステップをさらに含む、請求項5に記載のコンピュータ実装方法。
- 前記シーン構造が、1つ又は複数の入力画像上のデータ・アノテーションなしで、教師なしの方法で前記規則セットから生成される、請求項1に記載のコンピュータ実装方法。
- 前記規則セットの規則に確率を割り当てるステップと、
前記確率に従って前記規則をサンプリングすることによって、前記複数の規則の前記サブセットを選択するステップと
をさらに含む、請求項1に記載のコンピュータ実装方法。 - 前記規則セットの1つ又は複数のどの規則が前記サンプリングを通して選択可能であるか示すためのシーン・マスクを決定するステップをさらに含む、請求項9に記載のコンピュータ実装方法。
- 複数の時間ステップのうちの1つ又は複数において、前記シーン構造内の1つ又は複数の物体タイプに対して展開を実行するかどうかの決定が行われる反復プロセスを使用して、前記シーン構造を生成するステップであって、前記物体タイプが、階層的シーン構造の様々なレベルで配置される、生成するステップをさらに含む、請求項1に記載のコンピュータ実装方法。
- 前記規則セットを使用して前記シーン構造を生成するために、生成モデルが使用される、請求項1に記載のコンピュータ実装方法。
- 前記生成モデルへの入力として潜在ベクトルを生成するステップであって、前記潜在ベクトルが、前記規則セット内の規則の数に等しい長さを有する、生成するステップをさらに含む、請求項1に記載のコンピュータ実装方法。
- システムであって、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサによって実行されたとき、前記システムに、
規則セットからの複数の規則の少なくともサブセットを使用してシーン構造を生成することであって、前記複数の規則が、シーン内の物体のタイプ間の関係を指定する、生成すること、
前記シーン構造で表される前記物体のうちの1つ又は複数についての1つ又は複数のパラメータ値を決定すること、
前記シーン構造に基づいた、前記パラメータ値を含むシーン・グラフを生成すること、及び
前記シーンの画像をレンダリングするために、前記シーン・グラフをレンダリング・エンジンに提供すること
を行わせる命令を含むメモリと
を含むシステム。 - 前記命令が、実行されたとき、前記システムに、
前記レンダリング・エンジンに、前記シーンの前記画像とともに物体ラベル又はシーン構造情報のうちの少なくとも1つを含めさせることをさらに行わせ、前記画像が、ニューラル・ネットワークを訓練するための訓練データとして使用されることが可能である、請求項14に記載のシステム。 - 前記命令が、実行されたとき、前記システムに、
前記規則又は物体のうちの少なくとも1つが前記シーンに利用される対象ではないことを示す入力を受信すること、
前記入力を反映するように前記シーン・グラフを更新すること、及び
前記シーンの更新された画像をレンダリングするために、前記更新されたシーン・グラフを前記レンダリング・エンジンに提供すること
をさらに行わせる、請求項14に記載のシステム。 - 前記命令が、実行されたとき、前記システムに、
前記規則セットを利用してシーン・グラフの多様なセットを生成すること、及び
シーン・グラフの前記多様なセットを使用して仮想環境を生成すること
をさらに行わせる、請求項14に記載のシステム。 - 前記システムが、
グラフィカル・レンダリング動作を実行するためのシステム、
シミュレーション動作を実行するためのシステム、
シミュレーション動作を実行して自律機械アプリケーションをテスト又は検証するためのシステム、
深層学習動作を実行するためのシステム、
エッジ・デバイスを使用して実装されたシステム、
1つ又は複数の仮想機械(VM)を組み込んだシステム、
少なくとも部分的にデータ・センタに実装されたシステム、
少なくとも部分的にクラウド・コンピューティング・リソースを使用して実装されたシステム
のうちの少なくとも1つを含む、請求項14に記載のシステム。 - 訓練データを合成するための方法であって、
シーン内の物体のタイプ間の関係を指定する複数の規則を含む規則セットを取得するステップと、
前記複数の規則に基づいて複数のシーン構造を生成するステップと、
前記複数のシーン構造で表される前記物体のそれぞれについての1つ又は複数のパラメータ値を決定するステップと、
前記複数のシーン構造に基づいた、前記パラメータ値を含む複数のシーン・グラフを生成するステップと、
前記画像で表される前記物体についてのデータを含む画像のセットをレンダリングするために、前記複数のシーン・グラフをレンダリング・エンジンに提供するステップであって、前記画像のセットが、1つ又は複数のニューラル・ネットワークを訓練する際に使用する訓練データを表す、提供するステップと
を含む方法。 - 前記物体についての前記1つ又は複数のパラメータ値を使用して前記シーン構造で表される前記物体をレンダリングするために使用される、オブジェクト関連コンテンツのライブラリを、前記レンダリング・エンジンに提供するステップをさらに含む、請求項19に記載の方法。
- 前記規則又は物体のうちの1つが利用される対象ではないことを示す入力を受信するステップと、
前記入力を反映するように前記複数のシーン・グラフを更新するステップと、
更新された画像のセットをレンダリングするために、前記更新されたシーン・グラフを前記レンダリング・エンジンに提供するステップと
をさらに含む、請求項19に記載の方法。 - 前記シーン構造が、1つ又は複数の入力画像上のデータ・アノテーションなしで、教師なしの方法で前記規則セットから生成される、請求項19に記載の方法。
- 前記規則セットの規則に確率を割り当てるステップと、
前記確率に従って前記規則をサンプリングすることによって、それぞれのシーン構造について前記複数の規則のサブセットを選択するステップと
をさらに含む、請求項19に記載の方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202062986614P | 2020-03-06 | 2020-03-06 | |
US62/986,614 | 2020-03-06 | ||
US17/117,425 | 2020-12-10 | ||
US17/117,425 US11816790B2 (en) | 2020-03-06 | 2020-12-10 | Unsupervised learning of scene structure for synthetic data generation |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021140767A true JP2021140767A (ja) | 2021-09-16 |
Family
ID=74859698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021019433A Pending JP2021140767A (ja) | 2020-03-06 | 2021-02-10 | 合成データ生成のためのシーン構造の教師なし学習 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11816790B2 (ja) |
EP (1) | EP3889914A3 (ja) |
JP (1) | JP2021140767A (ja) |
CN (1) | CN113361705A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102402170B1 (ko) * | 2021-10-22 | 2022-05-26 | 주식회사 제이어스 | 이미지 분석을 이용한 메타버스 생성 장치 및 방법 |
KR20230094022A (ko) * | 2021-12-20 | 2023-06-27 | 단국대학교 산학협력단 | Nft 기반 신규 폰트 파일을 생성하는 방법, 장치, 및 컴퓨터 프로그램 |
WO2024057502A1 (ja) * | 2022-09-15 | 2024-03-21 | 本田技研工業株式会社 | 学習装置 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10572773B2 (en) * | 2017-05-05 | 2020-02-25 | Intel Corporation | On the fly deep learning in machine learning for autonomous machines |
US11580673B1 (en) * | 2019-06-04 | 2023-02-14 | Duke University | Methods, systems, and computer readable media for mask embedding for realistic high-resolution image synthesis |
US11520982B2 (en) * | 2019-09-27 | 2022-12-06 | Sap Se | Generating corpus for training and validating machine learning model for natural language processing |
EP3869390A1 (de) * | 2020-02-18 | 2021-08-25 | dspace digital signal processing and control engineering GmbH | Computerimplementiertes verfahren und system zum erzeugen einer virtuellen fahrzeugumgebung |
EP3923210A1 (en) * | 2020-06-01 | 2021-12-15 | Replica Analytics | Generation of synthetic data |
CN112150575B (zh) * | 2020-10-30 | 2023-09-01 | 深圳市优必选科技股份有限公司 | 场景数据获取方法及模型训练方法、装置及计算机设备 |
US20220134222A1 (en) * | 2020-11-03 | 2022-05-05 | Nvidia Corporation | Delta propagation in cloud-centric platforms for collaboration and connectivity |
US20220147838A1 (en) * | 2020-11-09 | 2022-05-12 | Adobe Inc. | Self-supervised visual-relationship probing |
US11762951B2 (en) * | 2020-11-18 | 2023-09-19 | Adobe Inc. | Generative image congealing |
US11640610B2 (en) * | 2020-12-29 | 2023-05-02 | Visa International Service Association | System, method, and computer program product for generating synthetic data |
US11360734B1 (en) * | 2021-09-24 | 2022-06-14 | Shanghai Weiling Electronics Co., Ltd. | Secure digital communication devices and secure digital communication systems using the same |
CN115272994B (zh) * | 2021-09-29 | 2023-07-25 | 上海仙途智能科技有限公司 | 自动驾驶预测模型训练方法、装置、终端及介质 |
CN114022602B (zh) * | 2021-11-09 | 2024-02-23 | 西安交通大学 | 一种基于渲染的三维物体检测器训练方法 |
GB2612774B (en) * | 2021-11-10 | 2024-04-24 | Sony Interactive Entertainment Inc | System and method for positioning objects within an environment |
US20230289877A1 (en) * | 2022-03-10 | 2023-09-14 | Jpmorgan Chase Bank, N.A. | System and method for qualitative and quantitative data analysis for generating alerts |
CN114519779B (zh) * | 2022-04-20 | 2022-06-28 | 腾讯科技(深圳)有限公司 | 动作生成模型训练方法、装置、设备和存储介质 |
CN116029947B (zh) * | 2023-03-30 | 2023-06-23 | 之江实验室 | 一种用于恶劣环境的复杂光学图像增强方法、装置和介质 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6765571B2 (en) * | 1999-09-24 | 2004-07-20 | Sun Microsystems, Inc. | Using a master controller to manage threads and resources for scene-based rendering |
US9135743B2 (en) | 2012-11-07 | 2015-09-15 | Google Inc. | Visualize the obscure object in 3D space |
CA2955444C (en) * | 2014-08-20 | 2019-05-28 | Landmark Graphics Corporation | Optimizing computer hardware resource utilization when processing variable precision data |
US10810797B2 (en) * | 2015-05-22 | 2020-10-20 | Otoy, Inc | Augmenting AR/VR displays with image projections |
US20170278308A1 (en) * | 2016-03-23 | 2017-09-28 | Intel Corporation | Image modification and enhancement using 3-dimensional object model based recognition |
US20200004759A1 (en) | 2017-06-05 | 2020-01-02 | Umajin Inc. | Generative content system and methods therefor |
US10235601B1 (en) * | 2017-09-07 | 2019-03-19 | 7D Labs, Inc. | Method for image analysis |
WO2019239211A2 (en) * | 2018-06-11 | 2019-12-19 | Insurance Services Office, Inc. | System and method for generating simulated scenes from open map data for machine learning |
CN112771622A (zh) * | 2018-07-18 | 2021-05-07 | 辉达公司 | 用于推理、高级处理和机器学习应用程序的虚拟化计算平台 |
US10297070B1 (en) * | 2018-10-16 | 2019-05-21 | Inception Institute of Artificial Intelligence, Ltd | 3D scene synthesis techniques using neural network architectures |
CN110428388B (zh) * | 2019-07-11 | 2023-08-08 | 创新先进技术有限公司 | 一种图像数据生成方法及装置 |
-
2020
- 2020-12-10 US US17/117,425 patent/US11816790B2/en active Active
-
2021
- 2021-02-10 JP JP2021019433A patent/JP2021140767A/ja active Pending
- 2021-03-05 EP EP21160953.2A patent/EP3889914A3/en active Pending
- 2021-03-05 CN CN202110245600.4A patent/CN113361705A/zh active Pending
-
2023
- 2023-11-09 US US18/505,283 patent/US20240161396A1/en active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102402170B1 (ko) * | 2021-10-22 | 2022-05-26 | 주식회사 제이어스 | 이미지 분석을 이용한 메타버스 생성 장치 및 방법 |
WO2023068795A1 (ko) * | 2021-10-22 | 2023-04-27 | 주식회사 제이어스 | 이미지 분석을 이용한 메타버스 생성 장치 및 방법 |
KR20230094022A (ko) * | 2021-12-20 | 2023-06-27 | 단국대학교 산학협력단 | Nft 기반 신규 폰트 파일을 생성하는 방법, 장치, 및 컴퓨터 프로그램 |
KR102588679B1 (ko) | 2021-12-20 | 2023-10-11 | 단국대학교 산학협력단 | Nft 기반 신규 폰트 파일을 생성하는 방법, 장치, 및 컴퓨터 프로그램 |
WO2024057502A1 (ja) * | 2022-09-15 | 2024-03-21 | 本田技研工業株式会社 | 学習装置 |
Also Published As
Publication number | Publication date |
---|---|
US20210275918A1 (en) | 2021-09-09 |
CN113361705A (zh) | 2021-09-07 |
US20240161396A1 (en) | 2024-05-16 |
EP3889914A2 (en) | 2021-10-06 |
US11816790B2 (en) | 2023-11-14 |
EP3889914A3 (en) | 2022-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11816790B2 (en) | Unsupervised learning of scene structure for synthetic data generation | |
CN112685069B (zh) | 用于机器学习模型的实时更新的方法和系统 | |
US20210089921A1 (en) | Transfer learning for neural networks | |
US11494976B2 (en) | Neural rendering for inverse graphics generation | |
US20220147743A1 (en) | Scalable semantic image retrieval with deep template matching | |
US11995883B2 (en) | Scene graph generation for unlabeled data | |
US20220230376A1 (en) | Motion prediction using one or more neural networks | |
US20230109379A1 (en) | Diffusion-based generative modeling for synthetic data generation systems and applications | |
CN114266347A (zh) | 神经网络的无监督域适应 | |
US11875449B2 (en) | Real-time rendering with implicit shapes | |
US20230139623A1 (en) | Data path circuit design using reinforcement learning | |
US20230385983A1 (en) | Identifying application buffers for post-processing and re-use in secondary applications | |
CN116206042A (zh) | 空间哈希一致采样 | |
US20230377099A1 (en) | Synthesizing content using diffusion models in content generation systems and applications | |
US20230274492A1 (en) | Texture transfer and synthesis using aligned maps in image generation systems and applications | |
CN116664807A (zh) | 在图像生成系统和应用中使用对齐贴图的纹理转移和合成 | |
US20230343019A1 (en) | Volume rendering in distributed content generation systems and applications | |
US20220391667A1 (en) | Processing ultrahyperbolic representations using neural networks | |
US20230297074A1 (en) | Interpreting discrete tasks from complex instructions for robotic systems and applications | |
US20240129380A1 (en) | Data center job scheduling using machine learning | |
US20230367620A1 (en) | Pre-loading software applications in a cloud computing environment | |
CN117716423A (zh) | 使用深度学习从音频数据中的语音推理情绪 | |
JP2024043563A (ja) | 大規模言語モデルを使用する自然言語処理アプリケーション |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240207 |