33.3K Views
May 24, 22
スライド概要
講演アーカイブ:
https://www.youtube.com/watch?v=qnhq-w5uVqw&list=PLr_Cbd4sUDTxsGqpTyasfI1yRzY5Uy8CE&index=5
講演内容:
機械学習による自動運転アルゴリズム開発には膨大なシーン画像・動画が必要ですが、様々な状況やレアケースなどを実写で集めるには限界があります。本講演ではUnreal Engineを活用し実写さながらの学習・検証環境を効率よく構築する方法を紹介します。
講演者:
向井 亨光 (シリコンスタジオ株式会社 新規事業開発部 担当部長)
河野 駿介 (シリコンスタジオ株式会社 テクニカルアーティスト室 室長)
UNREAL FEST EXTREME 2022 SUMMER公式サイト:
https://unrealengine.jp/unrealfest/extreme2022summer/
#uefest
Unreal Engineを開発・提供しているエピック ゲームズ ジャパンによる公式アカウントです。 勉強会や配信などで行った講演資料を公開しています。 公式サイトはこちら https://www.unrealengine.com/ja/
Unreal Engineによる 自動運転シミュレーション環境の構築 シリコンスタジオ株式会社 シリコンスタジオ株式会社 向井 亨光 河野 駿介
会社紹介 設立 1999年11月 上場 東証マザーズ (2015年2月23日) 本社所在地 資本金 連結従業員数 東京都渋谷区恵比寿1-21-3 466百万円(2021年11月末現在) 255名(2021年11月末現在) 1999年 関係会社 イグニス・イメージワークス(株)(連結) (株)イリンクス(持分法) 2
自己紹介 向井 亨光(むかい ゆきてる) シリコンスタジオにて新規事業企画、プリセールス等を担当。 Unreal Engineを活用したソリューションを企画・開発・提供 まで行っている。 前職の米国シリコングラフィックスの日本法人でのプログラマ 経験を含め、20年以上にわたりリアルタイム3DCG ソリューションを様々な業界のお客様へ提供。 3
Unreal Engine 活用事例の紹介 4
Enlighten Unreal Engine 上で動作するリアルタイムグローバルイルミネーションミドルウェア ● Unreal Editor上で設定可能 ● Unreal Engineの各機能との親和性 ● ゲーム・ノンゲーム双方で活用可能 Enlighten ON/OFF 時刻変化によるGI表現の違い 5
機械学習向け教師画像ソリューション BENZaiTEN 『BENZaiTEN(ベンザイテン)』は、シリコンスタジオが提供する、 3DCG を 活 用 し た 画 像 認 識 に お け る 機 械 学 習 向 け 教 師 画 像 生 成 ソ リューションの総称です。 外観検査、設備監視・認証、自律走行・運転支援、人物認識などの用 【名前の由来】 途に教師画像として活用可能な3DCG画像データをUnreal Engineによ るリアルタイムグラフィックスで実現します。 YEBIS ( エ ビ ス ) 、 Mizuchi ( ミ ズ チ ) 、 OROCHI(オロチ)、DAIKOKU(ダイコク) など、当社の製品名称の多くは日本の神話や 不良品判定用CG生成や人物(顔・表情)認識用CG生成、組立て部 伝説に登場する神や生物に由来しています。 品・パーツ認識用CG生成、学習用シーン映像CG生成といった教師画 『BENZaiTEN』は七福神の一員としても有名 な弁天または弁天さんとも言われる弁才天か 像生成のほか、ツール開発、AIエンジン向けシミュレーション環境開 ら命名しました。 発など、さまざまな製品・ソリューションを提供しています。 6
不良CG画像生成 製造過程で発生しうる不良をCGにて再現 ● 発生頻度が低い不良も生成可能 ● アノテーションデータ(教師データ)を自動出力 ● 各種カメラ・照明条件に対応 検査装置に合わせたカメラ設定 ● 解像度 ● ノイズ表現 良品画像の大量生産も可能 ● 製造工程で発生する微小差異を再現 7
不良CG画像生成 実績紹介 クボタ様 製品検査向け機械学習用CG画像合成ツール開発 不良種画像と背景画像を合成し学習用不良画像を生成 8
組み立てパーツ画像生成 ロボットアームAIエンジン用教師画像を生成 ● パーツを自在に配置 ● バネなどパーツ同士の複雑な物理計算にも対応 ● 複数種のパーツにも対応 9
組み立てパーツ画像生成 実績紹介 製造業A社におけるPoCにて有用性を実証 実画像100枚と比較 ● CG画像1000枚で実画像と同等 ● CG画像1100枚で実画像以上 実画像 CG画像 10
人物CG画像生成 パラメーター変更だけで様々な人物を生成 ● 変更できるパラメーターは50種類以上 ● CUI+ランダムパラメーターにて 多種多様な人物を自動生成 ● 肖像権を気にせず利用可能 ● 近赤外線(NIR)の表現も可能 ● 他のアプリケーションでの利用も可能 ● 各種カスタマイズも対応 © Ignis Imageworks 11
人物CG画像生成 実績紹介 三菱電機様 ドライバーモニタリングシステム向け検証シーン再現環境 CGによりさまざまなユースケースを再現 © Ignis Imageworks 12
教師画像生成ツール開発 実績紹介 アイシン様 駐車スペース検知のための学習データ生成ツール Unreal Editor をコンフィギュレータライクに利用し多彩な駐車場シーンを再現 ● 区画線レイアウト ● 区画線かすれ調整 ● 路面濡れ具合変化 ● 日照時間変化 ● 魚眼レンズ ● 動画出力 ● 教師データ(アノテーション)出力 13
Unreal Engineによる自動運転シミュレーション環境の紹介 14
15
自己紹介 河野 駿介(かわの しゅんすけ) ゲーム開発会社を経て2007年シリコンスタジオ株式会社 入社。 入社後より自社ミドルウェアのデモの開発、サポートを通じ アーティストとエンジニアを繋ぐ業務を担当してきました。 同時にUnreal Engineを活用した受託案件の管理や制作を行うなど クリエイティブにテクニカルにと幅広いことをやっています。 16
今回は背景アセットに絞って解説します。 17
目指したのはエディタ上でバリエーションを作る仕組みづくり 学習データは大量のバリエーションが必要(数千から数万、手動で作ってられない) 同じ場所もパラメータ切り替えで別のバリエーションにして効率化するという考え • • • • • • 路面・歩道・区画 建物景観(都市・住宅地・自然地形) プロップのタイプバリエーション プロップの劣化表現 時間・天候表現 交通アセットの配置 など 18
目指したのはエディタ上でバリエーションを作る仕組みづくり 一方でパフォーマンス的には不利な部分もある 30/60fpsのリアルタイム性が求められるゲームとは違ったコンセプトと考える ※とはいえそれなりのPCで割と高速に動いてはいます 例) 信号は各バリエーションを切り替えるBPを用意 • • • • • • • タイプ(電球・LED) フードの有無有無 横型・縦型 外装の色 矢印信号 歩道者用信号の有無 角度の組み合わせ など 19
天候・時間帯の変更 UnrealEngine標準機能の集合体のようなBPを実装 • SunSky >> 月を追加 • Volumetric Cloud • 天候切替 • パーティクル • Fog • MPC • 路面への付与表現 • 夜間照明の切り替え • など 20
露出 天候フラグの切り替え時に露出補正の値を変える • 前提として物理的に正しく作ると晴れと曇天では太陽光の明るさが全然違う • 例) 同じ明るさのスマートフォンの画面が晴れた日に見づらい、曇りだと見やすい • 自動露出もあるが再現性も求められる学習用途では不向き • 天候ごとに露出を切り替えるように割り切ったほうが失敗が少ない 21
天候表現:雨 天候表現は組み合わせが必要 • パーティクル • 路面等の濡れ度合 • 路面の端ほど水が溜まりやすい • コントロールマップ(重みづけ) • 路面等の波紋効果 • 天気が雨かつ水たまりがある場合 • ガラスの雨滴 • 連番法線マップ+屈折 22
天候表現:雪 天候表現は組み合わせが必要 • パーティクル • 路面等の積雪度合 • 路面はディスプレイスメント • コントロールマップ • わだちなど • UV依存にしているのでSMベースに ランドスケープでも良いのかも • マテリアルによる積雪 • 対応できていないのは後日対応 • 結構大変、、 23
夜:スクリーンスペースGI(SSGI) 決め打ちのシーン作成ではないため、ライトベイクは合わなかった 不自然な個所に目をつぶれるなら選択肢としてアリ(注:ベータ版) 24
スクリーンスペースGI(SSGI) 25
マテリアル編集 経年劣化について紹介 • 白線の劣化表現はワールド座標投影(World Aligned Texture)を使って 同じアセットでも配置位置で違う劣化に見えるようにした • • TriPlanarと組みわせてもよい 退色表現はコントロールマップ • 多段的に階調をもって変化しやすく 26
アノテーション アノテーションとは 今回の説明では機械学習の教師データにタグを付加すること として説明します ようはAIに対して画面のこの要素は〇〇ですよ、 という情報を別途、正解データとして用意する 27
アノテーション 社内でプラグインを開発 • • • タグ付け(Semantics、Color) セグメンテーション、2D/3D BBOX表示 アノテーション情報の出力(json) など 28
アノテーション 色の誤差に困った • カラーピッカーの値をそのままjsonで出力すると画像と誤差が出る 例) 値は実際に起きた数値 要素 色(0-1) 色(0-255) 16進 カラーピッカー R:0.185 G:0.661 B:0.976 R:47.175 G:168.555 B:248.88 2FA9F9 R:47 G:168 B:249 2FA8F9 画像 29
アノテーション 対処法 • 色の値を細工 (マテリアル、json出力ともに同処理を挟む) • カラーピッカーとは値が変わるが画像とjsonは同じにできる 30
配置 白線 • 形状が共通化できないことからスプラインで引くようにした • 例えば実際の地形を再現すると微妙に曲がっていたり、車幅が変わったりする • マテリアルと組み合わせて破線や黄色線などに対応 31
配置 建物 • スプラインで配置されるようにした • 建物を大都市型、地方都市型、住宅地で分類 テーブルを切り替えられるように • 区画の幅が不定なので建物幅が合わないのが ネックになりがち • • スプライン幅に合わせて可変も 出来るが建物幅がちょっと伸びて見える ⇒こちらも再考の余地あり 32
配置 一方で課題も見えてきた • ランダム配置と再現性(編集性)のバランス • ランダム生成したいけれどその後、編集もしたい • 何を生成したのかの情報が欲しい • 配置自体の手間があまり軽減できていない • バリエーションは作れるが初回時は手作業になっている 33
今回甘めな内容でしたが以上となります。 引き続き開発を続けて継続的に成果など発表できればと考えております。 34
アンケートへのご協力をよろしくお願いします https://forms.gle/uxbE3w1gRnk82Twu7 35