Search Unity

クロスコンパスは、これまで多くの製造業向けコンサルティングサービスを提供しており、2018 年からそのサービスパイプラインに Unity を統合し、AI アルゴリズムの実装前に、事前に安全にトレーニングして検証するということを行っております。AI 企業である同社が、なぜゲームに使われる技術を利用して、どのように製造業界に付加価値を与えるようになったのか。この記事の続きをお読みください。

株式会社クロスコンパスは、製造業、ロボティクス、ゲーム、ヘルスケア、デザイン、マーケティングなどの分野における世界中の業界リーダーに最先端のソリューションを提供する AI のリーディングカンパニーです。2015 年に東京で創業されたクロスコンパスは、ディープラーニング、機械学習、人工生命の分野で最先端の技術を開発し、安全性、品質、生産性の向上を通じて、社会に貢献しています。

なぜ Unity を採用したのか、また次のような価値を生み出す上で、Unity がどう役立つのか、彼ら自身の言葉で語ってもらいました。

  • クライアントやパートナーと仕様や進捗状況を議論するためのプラットフォームを提供する
  • データ収集環境の設定に必要な数多くの安全性チェックを短縮する
  • AI のトレーニングやテストのために量的な制約なしにデータを提供する
  • シミュレーションでの AI のトレーニングとテストの反復サイクルを高速化する
  • より高いパフォーマンスと品質を備えた AI ソリューションをエンドユーザーに提供できるように導く
  • AI に反復的なタスクを確実に処理させることで、人間による介入の価値を高める

今回クロスコンパスから寄稿された記事は、AI シミュレーショングループリーダーの Romain Angénieux 氏、グローバルブランドアイデンティティデザイナーの Steven Weigh 氏、最高技術責任者の Antoine Pasquali 氏によるものです。ぜひ記事の内容をお読みいただき、同社の知見から学びを得てください。

製造現場への AI 導入にまつわる課題

製造現場向けの最先端 AI ソリューションの設計とデプロイは複雑なプロセスです。製造業の生産ラインは、何十年にもわたって綿密に最適化され、完成されたものになっています。専門家は、業界の求める厳しい要件と厳しい納期スケジュールを満たす最高の効率性、安全性、品質基準を確保するために、ライン全体のあらゆる細部について設計し、調整し、改良を重ねてきました。こうした丁寧な仕事によって、実験的なやり方や、混乱、リスク、あるいはきちんと実証されていない方法がラインに入り込む余地がゼロになります。

それに比べて AI は、とても速いスピードで進化するものです。毎日、最新の手法、可能性の拡張、新しいフロンティアに関する新しい研究がもたらされます。しかし、これらの研究のほとんどは、研究室の中でしか行われておらず、しかも慎重にキュレーションされたデータに基づいて行われています。こうしたデータは、ノイズだらけで構造化されておらず、ラベルも付けられていないような現実世界のデータとはあまり共通点がなかったり、ときには現実世界には存在し得ないようなデータだったりするのです。また、製造現場のラインとは対照的に、AI は実世界の状況下で自分自身を検証するのに時間をかけることがほとんどありません。2 つの業界のアプローチはかけ離れたものなのです。

研究室では、99% の精度に到達することは賞賛に値する成果です。一方、製造現場では、1% のエラー率が残るということは、許容できないほど高い故障率、欠陥率、または安全上のリスクを含むことを意味し、現実世界で非常に深刻な事故につながる可能性を示唆します。この二項対立がある状況で、製造現場のように高い精密性が求められ、制約の多い環境に最新の AI ソリューションを導入するにはどうすればよいのでしょうか。また、リスク、コスト、ダウンタイム、またはこれら 3 つの要素を組み合わせたものを使わずに、どのようにして AI ソリューションの実験、検証、およびデプロイを行うことができるでしょうか。これらは、クライアントの工場の現場で AI をトレーニングし、デプロイする仕事をしていたときに、私たちが自問自答していた問題です。

シミュレーションを使って AI ソリューションを開発する

最もわかりやすい解決策は、製造現場の環境を研究室に持ち込むことでした。つまり、ダウンタイムや最先端の機器にダメージを与えることを恐れずに AI ソリューションを開発できるように、シミュレーションされた環境で工場の現場を再現するのです。

シミュレーションされた環境では、工場の状態を完全に制御することができ、新しい AI ソリューションを調査するために、パラメータを変更したり、実験したり、破壊したり、アルゴリズムを検証したりすることができます。言い換えれば、シミュレーションは現実世界ではできないことをすべて可能にしてくれるということです。

Unity を選んだ経緯

2018 年に、シミュレーションの立場からどの技術がニーズに最もマッチするかを判断するために、市場に出回っているソリューションの分析を行いました。

目的は、環境をセットアップし、データを収集し、物理的なロボットにデプロイする前に AI の性能を検証することを、より簡単で、より速く、より安全に行えるようにすることでした。

私たちはまず、ロボットの挙動、関節の特性と依存関係、センサーをシミュレートするために設計されたロボット専用のエンジンの検討から始めました。これらのエンジンは、物理学、行動制御、低レベルのロボット工学の観点で見れば非常に正確なものです。しかし、これらのエンジンは現実を再現することに強いこだわりを持って作られている割には、複雑なシーンを再現するための柔軟性に欠けていると感じました。

ロボットアプリケーションのための気象領域ランダム化(MDR)。UnityのHD レンダーパイプライン(HDRP)とシェーダーグラフのワークフローを利用して、空の状態、照明、背景、オブジェクトのテクスチャのバリエーションを作成している(提供:クロスコンパス)

AI の文脈でも確かに正確な物理演算とロボットの挙動の完全な制御が必要ではありますが、同時に、光や影、カメラエフェクトなどのリアリティのあるテクスチャやビジュアルを備えた上で、さまざまな形状をした多様なオブジェクトをインポートする必要があります。

そして私たちは、ゲームエンジンが、このような多様な要求にうまく対応しつつ、物理演算やロボットの挙動の制御にまつわる制約に対してもシンプルな答えを与えてくれることを発見しました。ロボットの制御はより抽象的なレベルで行うこともできるということで、ハードウェアに依存しないソリューションを開発するという私たちの戦略と一致していました。

特筆すべきは、Unity を使用することで、私たちはロボットの AI トレーニングに必要な機能だけを作成することに集中し、残りの部分はエンジンに任せることができたことです。開発時間を短縮するために、ファイルインポーター、レンダリングシステム、物理エンジン、スクリプトのライフサイクル、スケジューラー、デプロイメントのオプションなど、Unity にあらかじめ備えられている機能をそのまま使うことができました。

さらに、Unity は定期的なアップデートだけでなく、提携先からのコラボレーションの成果物も提供しており、私たちのもののような、より高度なアプリケーションに合わせてエンジンを調整することができます。Unity のエコシステムに対する積極的なサポートは、どんな潜在的な問題にも適切に対処できるだろうという信頼感を与えてくれました。

分析の最終段階では、Unity はその汎用性と進化の可能性の高さから、当社にとって最高の選択肢となっていました。

製造現場のオートメーションに AI を導入するために Unity をどのように活用しているか

現在、Unity の開発は、製造現場のオートメーションのためのプロセスに完全に組み込まれています。研究面では、ピッキングからナビゲーション、センサーフィードバックに基づく適応制御まで、様々なシーンを作成し、予期せぬ状況下での AI アルゴリズムのロバスト性をテストし、未知の領域に向けて技術をさらに進化させています。

それぞれの研究プロジェクトは、お客様のニーズを元に始まり、類似のケースに対応できるより一般的なソリューションへと展開していきます。これらのソリューションをパッケージ化されたアセットとしてメインのシミュレーション環境に次々と統合し、継続的な開発ワークフロー、長期的な互換性、クリーンなコードを維持しています。

Unity を使い始めてからは、主にオブジェクトやロボットのパーツのインポート、リアルなシーンの作成、ドメインランダム化技術の適用などの機能開発を行ってきました。並行して、自社の AI やサードパーティのロボティクスソフトウェアとの通信プロトコルを確立し、データ生成、AI のトレーニング、テスト、検証のためのシミュレーション構成を、すべてのシーンでリアルタイムに行っています。

Unity は、シミュレーションの速度から独立した物理演算を行うことで、目で見るよりも 100 倍速く正確なデータを生成することが可能になるなど、このような専門的な開発に必要な柔軟性を備えています。また、アセットストアや Unity パートナーから提供されているツールを利用することで、必要なときに微調整や機能追加を行うことができるので、よりスピーディーに開発を進めることができます。

Unity を導入したことで、AI ソリューションのトレーニング、テスト、およびクライアントやパートナーへのデプロイにかかる時間とコストを大幅に削減することができました。その結果、より高いレベルの安全性、工場の現場で人間が介入することの価値を高め、エンドユーザーに提供される製品の品質を向上させることができました。Unity の物理エンジンと機能により、シミュレートされた工場の現場のあらゆる側面を制御できるようになり、これまで以上に正確で堅牢な AI ソリューションが実現しました。

ここで、私たちがプロジェクトで Unity を使う場合の一般的なワークフローをご紹介しましょう。

AI ソリューションのモックアップ

コンサルティングを行うプロジェクトでは、メインの Unity 環境のブランチを作成し、クライアントの特定のニーズに合わせて制約を設けずに作業を行い、あとで追加された機能をメインブランチにマージします。通常は、関連するアセットで事前設定済みのシーンを選択してカスタマイズすることで、ソリューションのモックアップを作成することから始めます。シミュレーションのデモをクライアントに見せることで、プロジェクトの仕様や工場でのデプロイを考慮した最終的な目標を明確にすることができます。

AI のトレーニングとテスト

上記のプロセスを終えたら、次はトレーニングのために環境と AI を準備します。シミュレーションでは、現実の収集よりもはるかに速く、安全で、柔軟な方法でデータを生成することができます。シミュレーションから得るべき関連情報が何であるかは AI の専門家にしかわからないことではありますが、データのラベル付けは労力をかけずに行うことができます。つまり、現実世界では同じデータを収集するのは難しい、あるいは不可能かもしれませんが、AI にはどんなデータでも最高の精度で提供することができます。また、生成されるデータ量に制限はありません。

AI の視覚入力に適用されるドメインランダム化。シミュレーションでは MDR 技術が適用され、AI が実世界の状況下でも効率的に動作できるようにしている(提供:クロスコンパス)

この時点でモデルをテストし、クライアントが指定した誤差の範囲内に収まるまで精度を微調整し、ロバストな完成版のソリューションを実現します。そのためには、カメラやその他のセンサーが予期しない形で光やノイズを受ける条件下で、AI が実世界で効率的に動作するようにトレーニングする必要があります。私たちが開発したドメインランダム化のためのパッケージ化されたアセットは、このギャップを埋めるために特別に設計されています。次に、リアルタイムのシミュレーションで AI を検証します。これは、クライアントへの AI ソリューションのデモにも使用されます。

デプロイ

最後に、工場へのデプロイを行います。当社のロボティクスエンジニアは、システムインテグレーターの支援を受けながら、デプロイするアイテムの数に応じて、テストベンチまたは完成版のシステムをお客様の現場で直接準備します。最初のテストは AI エンジニアが行いますが、通常はシミュレーションチームのメンバーも訪問し、トレーニングに使用するシミュレーション用シーンとの適合性を確認します。これにより、より大規模なデータセットで訓練された完成版の AI の出荷を行い、工場の技術者に新たに導入された AI アルゴリズムの使用方法を教えることをする前に、必要に応じた迅速な調整が可能となります。

今後の予定

クロスコンパス製ピッキングソリューションのバージョン 1.0 から 3.0 までの進化。バージョン 1 では、バケツからオブジェクトをピッキングする際のリアルな物理的条件を再現した。バージョン 2 では、ロボットとグリッパーのシミュレーションに焦点を当てた。その後、MDR が開発され、バージョン 3 に適用された。カメラウィジェットを見ればわかるように、バージョンアップのたびに AI 技術の完成度も上がっている(提供:クロスコンパス)

当社が開発している製品と同様に、Unity もまた進化し続けている製品であり、コードベースとプロセスは新しくプロジェクトを始めるたびに改善されています。私たちは、Unity と私たちの専門知識をもってしても解決できない課題にまだ直面したことがありません。

Unity を使ったクロスコンパスの仕事についてさらに知りたい方は、こちらをご覧ください。

Unity Simulation を使って、皆様も AI アルゴリズムのトレーニング、テスト、検証を始めてください。