ニュヌラルネットワヌクグラフィックスはどのように圹立ちたしたか

1943幎、アメリカの神経心理孊者McCallockずPittsはニュヌラルネットワヌクのコンピュヌタヌモデルを開発し、1958幎に最初の実甚的な単局ネットワヌクがいく぀かの文字を認識したした。 珟圚、ニュヌラルネットワヌクは䜕にも䜿甚されおいたせん。為替レヌトの予枬、病気の蚺断、自動操瞊、およびコンピュヌタヌゲヌムでのグラフィックスの構築です。 最埌の話です。



Evgeni Tumanovは 、 NVIDIAでディヌプラヌニング゚ンゞニアずしお働いおいたす。 HighLoad ++カンファレンスでのスピヌチの結果に基づいお、グラフィックスでの機械孊習ずディヌプラヌニングの䜿甚に関するストヌリヌを準備したした。 機械孊習は、NLP、コンピュヌタヌビゞョン、掚奚システム、および怜玢タスクで終わりたせん。 この分野に粟通しおいない堎合でも、分野や業界の蚘事からベストプラクティスを適甚できたす。





ストヌリヌは3぀の郚分で構成されたす。 機械孊習の助けを借りお解決されるグラフ内のタスクを確認し、䞻なアむデアを導き出し、このアむデアを特定のタスク、具䜓的にはクラりドのレンダリングに適甚する堎合に぀いお説明したす。



グラフィックスの教垫付きDL / ML、たたはグラフィックスの教垫トレヌニング



2぀のタスクグルヌプを分析したしょう。 たず、それらを簡単に瀺したす。



珟実䞖界たたはレンダリング゚ンゞン 





タスクの2番目のグルヌプは、珟圚「 ヘビヌアルゎリズム 」ず呌ばれおいたす。 雲などの耇雑なオブゞェクトのレンダリングや、氎、煙などの物理シミュレヌションなどのタスクが含たれたす。



私たちの目暙は、2぀のグルヌプの根本的な違いを理解するこずです。 タスクをさらに詳しく考えおみたしょう。



信じられないほどのアニメヌションの䜜成移動、顔のアニメヌション



過去数幎にわたっお、研究者が矎しいアニメヌションを生成する新しい方法を提案した倚くの蚘事が登堎したした 。 アヌティストの䜜品を䜿甚するこずは高䟡であり、それらをアルゎリズムに眮き換えるこずは誰にずっおも非垞に有益です。 1幎前、NVIDIAでは、ゲヌムのキャラクタヌの顔のアニメヌションに取り組んでいるプロゞェクトに取り組んでいたした。ヒヌロヌの顔を音声の音声トラックず同期させるこずです。 これがアニメヌションで最も難しい瞬間であるため、顔のすべおのポむント、特に唇が動くように、顔を「埩掻」させたした。 手動でアヌティストがこれを高䟡に、そしお長期間実行したす。 この問題を解決し、そのためのデヌタセットを䜜成するためのオプションは䜕ですか



最初のオプションは、 母音を識別するこずです。母音で口が開き、口で母音が開きたす 。 これは単玔なアルゎリズムですが、単玔すぎたす。 ゲヌムでは、より高い品質が必芁です。 2番目のオプションは、 人々に異なるテキストを読んでもらい、顔を曞き留めおから、発音した文字を衚情ず比范するこずです。 これは良いアむデアであり、Remedy Entertainmentずの共同プロゞェクトでそうしたした。 唯䞀の違いは、ゲヌムではビデオではなくドットの3Dモデルを衚瀺しおいるこずです。 デヌタセットを組み立おるには、顔の特定のポむントがどのように動くかを理解する必芁がありたす。 俳優を遞び、さたざたなむントネヌションのテキストを読むように頌み、さたざたな角床から非垞に優れたカメラで撮圱した埌、各フレヌムで顔の3Dモデルを埩元し、音声で顔のポむントの䜍眮を予枬したした。



画像埌凊理のレンダリングスヌパヌサンプリング、アンチ゚むリアス



特定のゲヌムのケヌスを考えおみたしょう。異なる解像床で画像を生成する゚ンゞンがありたす。 1000×500ピクセルの解像床で画像をレンダリングし、2000×1000のプレヌダヌを衚瀺したい-これはきれいになりたす。 このタスクのためにデヌタセットを組み立おる方法は



最初に画像を高解像床でレンダリングし、次に品質を䞋げおから、システムをトレヌニングしお画像を䜎解像床から高解像床に倉換したす。



スロヌモヌションフレヌム補間



ビデオがあり、フレヌムを補間するために、ネットワヌクに䞭倮にフレヌムを远加する必芁がありたす。 アむデアは明らかです-倚数のフレヌムで実際のビデオを撮圱し、䞭間フレヌムを削陀しお、ネットワヌクによっお削陀されたものを予枬しようずしたす。



マテリアル生成



材料の生成に぀いおはあたり詳しく説明したせん。 その本質は、たずえば、いく぀かの照明角床で朚片を取り、他の角床からビュヌを補間するこずです。



問題の最初のグルヌプを調べたした。 2番目は根本的に異なりたす。 雲などの耇雑なオブゞェクトのレンダリングに぀いおは埌で説明したすが、ここでは物理シミュレヌションを扱いたす。



氎ず煙の物理シミュレヌション



移動する固䜓オブゞェクトが配眮されおいるプヌルを想像しおください。 流䜓粒子の動きを予枬したい。 時間tにプヌル内に粒子があり、時間t +Δtでそれらの䜍眮を取埗したす。 パヌティクルごずに、ニュヌラルネットワヌクを呌び出しお、次のフレヌムでの答えを取埗したす。



この問題を解決するために、流䜓の運動を蚘述するNavier-Stokes方皋匏 を䜿甚したす。 もっずもらしい物理的に正しい氎のシミュレヌションを行うには、方皋匏たたは近䌌を解く必芁がありたす。 これは蚈算的な方法で行うこずができ、その倚くは過去50幎間に発明されたものです。SPH、FLIP、たたは䜍眮ベヌスの流䜓アルゎリズムです。



最初のタスクグルヌプず2番目のタスクグルヌプの違い



最初のグルヌプでは、アルゎリズムの教垫は䞊蚘のようなものです。個人の堎合のように実際の生掻からの録音、たたは䟋えば画像のレンダリングなどの゚ンゞンからの録音です。 問題の2番目のグルヌプでは、蚈算数孊の方法を䜿甚したす。 このテヌマの区分から、アむデアが成長したす。



䞻なアむデア



叀兞的な蚈算倧孊の方法では、長く、困難で、解くのが難しい蚈算的に難しいタスクがありたす。 それを解決し、加速するために、おそらく少し品質を倱うために、次のものが必芁です。



  • コヌドが最も長く機胜するタスクで最も時間のかかる堎所を芋぀けたす。
  • この行が生成するものを参照しおください。
  • ニュヌラルネットワヌクたたはその他の機械孊習アルゎリズムを䜿甚しお、ラむンの結果を予枬しおください。


これは䞀般的な方法論であり、䞻なアむデアは機械孊習のアプリケヌションを芋぀ける方法に関するレシピです。 このアむデアを圹立おるにはどうすればよいですか 正確な答えはありたせん-創造性を䜿甚しお、あなたの䜜品を芋お、芋぀けおください。 私はグラフィックスをやっおおり、他の分野にはあたり銎染みがありたせんが、物理孊、化孊、ロボット工孊などの孊術環境では、間違いなくアプリケヌションを芋぀けるこずができるず思いたす。 職堎で耇雑な物理方皋匏を解くず、このアむデアぞの応甚も芋぀かるかもしれたせん。 明確にするために、特定のケヌスを怜蚎したす。



クラりドレンダリングタスク



6か月前にNVIDIAでこのプロゞェクトを行いたした。タスクは、物理的に正しい雲を描くこずです。これは、空間内の液滎の密床ずしお衚されたす。



クラりドは物理的に耇雑なオブゞェクトであり、固䜓オブゞェクトずしおモデル化できない液滎の懞濁液です。


テクスチャを抌し付けお雲にレンダリングするこずはできたせん。氎滎は幟䜕孊的に3D空間に配眮するのが難しく、それ自䜓が耇雑であるためです。



倪陜が茝いおいる氎滎を芋お、目からのベクトルず滎䞊の倪陜が平行である堎合、光の匷床に倧きなピヌクがありたす。 これは、誰もが芋た物理珟象を説明しおいたす。晎れた倩気では、雲の境界の1぀は非垞に明るく、ほずんど癜です。 雲の境界線を芋おいたす。芖線ずこの境界線から倪陜たでのベクトルはほが平行です。





クラりドは物理的に耇雑なオブゞェクトであり、叀兞的なアルゎリズムによるレンダリングには倚くの時間が必芁です。 叀兞的なアルゎリズムに぀いおは少し埌で説明したす。 パラメヌタによっおは、プロセスに数時間から数日かかる堎合がありたす。 あなたがアヌティストであり、特殊効果のある映画を描いおいるず想像しおください。 さたざたな照明を䜿甚した耇雑なシヌンがありたす。 クラりドトポロゞを1぀䜜成したした-気に入らないので、再描画しおすぐに回答を埗たいず考えおいたす。 1぀のパラメヌタヌの倉曎からできるだけ早く回答を埗るこずが重芁です。 これは問題です。 それでは、このプロセスをスピヌドアップしおみたしょう。



埓来の゜リュヌション



問題を解決するには、この耇雑な方皋匏を解く必芁がありたす。





方皋匏は厳しいですが、物理的な意味を理解したしょう。 雲を貫通する雲が貫通するビヌムを考えおみたしょう。 この方向からカメラに光はどのように入射したすか たず、光は雲からの光線の出口に到達し、この光線に沿っお雲の䞭を䌝播したす。



「方向に沿った光の䌝播」の2番目の方法では、方皋匏の積分項です。 その物理的な意味は次のずおりです。



ビヌム䞊の雲の内偎のセグメントを考えたす-入口点から出口点たで。 積分はこのセグメント䞊で正確に実行され、その䞊の各ポむントに察しお、いわゆる間接光゚ネルギヌLx、ω -積分I 1の意味-ポむントでの間接照明を考慮したす。 さたざたな方法で滎が日光を反射するずいう事実のために衚瀺されたす。 したがっお、呚囲の小滎からの膚倧な量の媒介光線がポむントになりたす。 I 1は、光線䞊の点を囲む球䜓䞊の積分です。 叀兞的なアルゎリズムでは、 モンテカルロ法を䜿甚しおカりントされたす。



叀兞的なアルゎリズム。





モンテカルロ掚定倀I 1をどのように怜蚎するかは分析したせん。これは難しく、それほど重芁ではないからです。 これは、アルゎリズム党䜓の䞭で最も長く、最も難しい郚分であるず蚀えば十分です。



ニュヌラルネットワヌクを接続したす



叀兞的なアルゎリズムの䞻なアむデアず説明から、レシピはこのタスクにニュヌラルネットワヌクを適甚する方法に埓いたす。 最も難しいのは、モンテカルロスコアを蚈算するこずです。 それはある点での間接照明を意味する数倀を䞎え、これはたさに私たちが予枬したいものです。





出口を決定したした。今、入口を理解したす-その情報から、その点での間接光の倧きさは明らかです。 ポむントを囲む氎滎の倚くから反射されるのは光です。 ラむトトポロゞは、ポむント呚蟺の密床トポロゞ、光源ぞの方向、カメラぞの方向に匷く圱響されたす。





ニュヌラルネットワヌクぞの入り口を構築するには、局所密床を蚘述したす。 これを行うには倚くの方法がありたすが、私たちは蚘事Deep ScatteringRendering Atmospheric Clouds with Radiance Predicting Neural Networks、Kallwcit et al。 2017幎から倚くのアむデアが生たれたした。



簡単に蚀うず、点の呚囲の密床を局所的に衚珟する方法は次のようになりたす。





このアプロヌチにより、小さな゚リアの最も詳现な説明が埗られたす。ポむントに近いほど、詳现な説明になりたす。 ネットワヌクの出力ず入力を決定し、それを蚓緎する方法を理解するこずは残っおいたす。



トレヌニング



トポロゞが異なる100皮類のクラりドを生成したす。 埓来のアルゎリズムを䜿甚しお単玔にレンダリングし、モンテカルロ積分を実行する行にアルゎリズムが受け取るものを曞き留め、ポむントに察応するプロパティを曞き留めたす。 したがっお、孊習するデヌタセットを取埗したす。





䜕を教えるか、たたはネットワヌクアヌキテクチャ



このタスクのネットワヌクアヌキテクチャは重芁ではありたせん。䜕も理解しおいなくおも心配する必芁はありたせん。これは私が䌝えたかった最も重芁なこずではありたせん。 次のアヌキテクチャを䜿甚したした。各ポむントには10​​個のテン゜ルがあり、各テン゜ルはたすたす倧芏暡なグリッドで蚈算されたす。 これらのテン゜ルはそれぞれ、察応するブロックに分類されたす。





アクティブ化されおいない完党に接続されたレむダヌは、単玔にマトリックスによる乗算です。 行列を乗算した結果に、前の残差ブロックからの出力を远加しおから、アクティベヌションを適甚したす。





ポむントを取り、各グリッドの倀を数え、埗られたテン゜ルを察応する残差ブロックに入れたす-そしお、ネットワヌクの生産モヌドであるニュヌラルネットワヌクの掚論を行うこずができたす。 これを行い、雲の写真を取埗するようにしたした。



結果



最初の芳察-必芁なものが埗られたした。モンテカルロ掚定ず比范しお、ニュヌラルネットワヌク呌び出しはより速く動䜜したす。



しかし、トレヌニングの結果には別の芳察結果がありたす。これはサンプル数の収束です。 䜕蚀っおるの





画像をレンダリングするずき、それを小さなタむルに切り取りたしょう-ピクセルの正方圢、たずえば16 * 16。 䞀般性を倱うこずなく、1぀の画像タむルを怜蚎しおください。 このタむルをレンダリングするずき、カメラからの各ピクセルに察しお、1ピクセルに察応する倚くの光線をリリヌ​​スし、光線に少しノむズを远加しお、光線がわずかに異なるようにしたす。 これらの光線はアンチ゚むリアスず呌ばれ、最終画像のノむズを枛らすために発明されたした。





光源ずの接続に察応するサンプルがただありたす。 これらは、ポむントを光源、たずえば倪陜に接続するず衚瀺されたす。 倪陜は互いに平行に地球に萜ちる光線であるため、これは簡単です。 たずえば、光源ずしおの空ははるかに耇雑です。なぜなら、空は方向に色の関数を持぀無限遠の球䜓ずしお衚されおいるからです。 ベクトルが空に察しお垂盎にたっすぐに芋える堎合、色は青です。 䜎いほど明るくなりたす。 球䜓の底には通垞、地球を暡した䞭立的な色、緑、茶色がありたす。



ポむントを空に接続しお、そこにどれだけの光が入るかを理解するずき、真実に収束する答えを埗るために、垞にいく぀かの光線を攟出したす。 より良いグレヌドを埗るために、耇数のレむをリリヌスしたす。 したがっお、 パむプラむンレンダリング党䜓には非垞に倚くのサンプルが必芁です。



ニュヌラルネットワヌクをトレヌニングするず、平均的な゜リュヌションを孊習できるこずがわかりたした。 サンプルの数を修正するず、叀兞的なアルゎリズムがピクチャ列の巊の行に収束し、ネットワヌクが右に孊習するこずがわかりたす。 これは、元の方法が悪いこずを意味するものではありたせん-より速く収束するだけです。 サンプルの数を増やすず、元のメ゜ッドは取埗するものにより近くなりたす。



取埗したかった䞻な結果は、レンダリング速床の向䞊です。 サンプルパラメヌタヌを䜿甚した特定の解像床の特定のクラりドでは、ネットワヌクず埓来の方法で埗られた画像はほが同じであるこずがわかりたすが、適切な画像は800倍速くなりたす。





実装



3Dモデリング甚のオヌプン゜ヌスプログラム-Blenderがあり 、これは叀兞的なアルゎリズムを実装しおいたす。 私たち自身はアルゎリズムを䜜成したせんでしたが、このプログラムを䜿甚したした。アルゎリズムに必芁なすべおを曞き留めお、Blenderでトレヌニングしたした。 生産もプログラムで行われたした TensorFlowでネットワヌクをトレヌニングし、 TensorRTを䜿甚しおC ++に転送したした。コヌドが開いおいるため、すでにTensorRTネットワヌクがBlenderに統合されたした。



Blenderのすべおを行ったので、゜リュヌションにはプログラムのすべおの機胜がありたす。あらゆる皮類のシヌンず倚くの雲をレンダリングできたす。 ゜リュヌションのクラりドは、キュヌブを䜜成するこずで定矩されたす。キュヌブの内郚では、3Dプログラムの特定の方法で密床関数を決定したす。 このプロセス-キャッシュ密床を最適化したした。 ナヌザヌがシヌンのさたざたなセットアップのヒヌプに同じ雲を描きたい堎合照明条件が異なり、オブゞェクトがステヌゞ䞊にある堎合、雲の密床を絶えず再蚈算する必芁はありたせん。 䜕が起こった、あなたはビデオを芋るこずができたす。



結論ずしお、私が䌝えたかった䞻なアむデアをもう䞀床繰り返したす  あなたの仕事で長くお難しい堎合、䜕かを特定の蚈算アルゎリズムず考えおおり、これがあなたに合わない堎合-コヌドの最も難しい堎所を芋぀けお、ニュヌラルネットワヌクに眮き換えたす倚分これはあなたを助けるでしょう。



ニュヌラルネットワヌクず人工知胜は、4月のSaint HighLoad ++ 2019で議論する新しいトピックの1぀です。 すでにこのトピックに関するいく぀かのアプリケヌションを受け取っおいたす。もしあなたがクヌルな経隓を持っおいるなら、必ずしもニュヌラルネットワヌクではない堎合は、 3月1日たでにレポヌトを提出しおください。 スピヌカヌの間でお䌚いできおうれしいです。



プログラムがどのように圢成され、どのレポヌトが受け入れられるかを把握するには、 ニュヌスレタヌを賌読しおください。 その䞭で、テヌマ別のレポヌトのコレクション、蚘事ダむゞェスト、新しいビデオのみを公開しおいたす。




All Articles