Neural Pocket:Unity Computer Vision のケーススタディ
コンピュータービジョンモデルにトレーニングを行い、運用レベルの品質に仕上げることは簡単なことではありません。これまでチームは、実世界のデータを収集して入念にアノテーションを付ける必要がありましたが、このプロセスによって時間とリソースが大量に消費されていました。Neural Pocket は、Unity Computer Vision を使用して生成された合成データセットを活用することで、コンピュータービジョンのタスクに関するこれらの課題を克服しています。
-
課題
コンピュータービジョンモデルのトレーニングのために、最適なアノテーションが付けられた大量のデータを短時間で生成する
-
製品
Unity Pro、Unity Computer Vision Perception パッケージ
-
チームメンバー
11 人(シミュレーションエンジニア 1 人、AI エンジニア 10 人)
-
所在地
東京、日本

より迅速で手頃な価格の優れたコンピュータービジョントレーニング
東京に本社を置く Neural Pocket は、国内外の大企業や政府機関にエンドツーエンドのスマートシティ AI ソリューションを提供しています。Unity のリアルタイム 3D 開発プラットフォームと Unity Computer Vision Perception パッケージを活用することで、同社のチームはあまりコストをかけず、より迅速かつ効果的にコンピュータービジョンモデルのトレーニングを行っています。

成果
- コンピュータービジョンモデルのトレーニングサイクルの時間を 95%(最大で 6 か月かかっていた時間を平均して 1 週間に)短縮
- データ収集、アノテーション付け、トレーニングのコストを 95%削減
- コンピュータービジョンモデルのパフォーマンスが改善
- 複数のプロジェクトを引き受けられるようになり、収益が増加

数分の一の時間とコストで結果を出す
実世界のデータ収集とアノテーション付けの課題は、イテレーションが求められるコンピュータービジョンモデルのトレーニングの性質と組み合わさることで、コストが高くつき、時間かかる可能性があります。Neural Pocket にとって、実世界のデータを使用してモデルにトレーニングを行うのには多数のイテレーションが求められ、30 回ものトレーニングサイクルが必要になることも少なくありません。
これらの各サイクルでは、実世界のデータのキャプチャ(ビデオ、写真、ドローンのキャプチャなど)、アノテーション付け(アノテーターのチームによる手動でのラベル付け)、トレーニングを行い、その後に評価することが求められます。これには、平均して 1 サイクルあたり 1 週間ほどかかります。30 サイクルにも達するプロジェクトの場合、コストは最大で 150,000 ドルにまで上がることがあり、運用環境に対応したモデルを展開するタイムラインは 6 か月に及ぶことがあります。
Unity と Unity Computer Vision Perception パッケージを活用することで、Neural Pocket のチームは、モデル全体のパフォーマンスを高めながら、コンピュータービジョンモデルのトレーニングに必要なイテレーション回数と関連コストを大幅に削減しました。チームは Unity のツールを使用して、実世界のデータとシミュレートされたデータを組み合わせてコンピュータービジョンモデルのトレーニングを反復的に実行するために、自動的にラベルとアノテーションが付けられる合成画像を生成します。
Unity Computer Vision Perception パッケージで作成された合成データを使用し、実世界のデータを使用した 1 サイクルのみのトレーニングを行う場合、わずか 1 週間余りでより高パフォーマンスのモデルを作成できるため、基本的に時間とコストの両方を平均して約 95% 節約できます。
チームが 2 つのセキュリティ関連のプロジェクトで、Unity Computer Vision Perception パッケージを異なる形でどのように活用したかについて見て行きましょう。

プロジェクト 1:武器のオブジェクト検出
このプロジェクトでは、Neural Pocket のパートナーの 1 社が、自社のオフィスの 1 つにより安全な環境を必要としていました。Neural Pocket と協力して、危険なオブジェクトを適切に検出する、スマートセキュリティカメラシステム用のコンピュータービジョンモデルを開発しました。
コンピュータービジョントレーニング用に実世界のデータを収集するために、Neural Pocket は撮影の参加者にナイフ、バット、銃などの武器を持たせ、武器を検出しやすい向きから検出しにくい向きまで、さまざまな向きでビデオを撮影しました。その後、Neural Pocket はそのビデオから約 1,000 枚の静止画像を作成し、社内のアノテーターのチームに各画像を手動でラベル付けすることに従事させることで、武器を特定しました。
最初のトレーニングサイクルでこれらのデータを使用した後の検出率は、ナイフが 27%、バットと銃は 80% でした。

成功へと導く組み合わせ:実際のデータと合成データ
パフォーマンスを高めるために、Neural Pocket はコンピュータービジョンのトレーニングと検証のための大規模なデータセットを生成するのに、Unity Computer Vision Perception パッケージに目を向けました。
「Unity Computer Vision Perception パッケージは、フローと構造を整理整頓してくれるため、さまざまな検出プロジェクトにわたって広範囲に再利用できます」と、Neural Pocket のシミュレーション担当リーダー Romain Angénieux 氏は述べています。「シナリオ、ランダマイザー、タグ、ラベル、スマートカメラなどのカスタマイズ可能なコンポーネントのセットのおかげで、その UI を使用して非常に簡単かつ柔軟な方法でランダム化を設定できました。」
Neural Pocket は、Unity Asset Store やその他マーケットプレイスから武器の 3D モデルを調達し、カスタムオブジェクトの検出のために Unity のコンピュータービジョンツールに簡単に統合しました。チームは、武器を手に持っている画像や武器単独の画像をレンダリングするなど、キャプチャされたフレーム間で、シミュレーションのさまざまな側面をランダム化しました。
Unity Computer Vision は、数千、数百万の合成画像を作成するためのスケーラブルなソリューションを提供します。Neural Pocket は 5,100 個のシミュレートされたフレームを生成しました。これは、実際のフレーム数の 5 倍以上です。実際のデータと合成データを組み合わせてモデルにトレーニングを行った結果、運用レベルの品質に到達しました。ナイフの検出率は 27% から 87% に、バットと銃の検出率は 80% から 100% に上昇しました。
「素晴らしい結果がすぐに出たのは嬉しい驚きでした」と、シニアエキスパート兼テクノロジーインキュベーションチームのリーダーである Alex Daniels 氏は述べています。「パラメーターを短時間で簡単に変更できる、実世界のデータコレクションに依存しない、改善された新しいデータセットを生成する機能により、当社のデータセット作成プロセスが大幅に合理化されました。」
プロジェクト 2:スマートフォンのオブジェクト検出
別のプロジェクトでは、Neural Pocket のパートナーが、クレジットカード番号などの機密情報をより適切に保護するために、スマートフォンで写真を撮っている人を検出するよう AI にトレーニングを行うことを検討していました。
危険なオブジェクトを検出するプロジェクトでは、チームは Unity Computer Vision Perception パッケージを設定なしで使用していた一方で、このプロジェクトはより複雑であったため、パッケージの拡張性とオープンソースコードベースを利用しました。
「コンピュータービジョンのパフォーマンスを間接的に高めるという点では、Perception パッケージのデフォルト設定を使用するので十分でしたが、既存のツールをベースに、できるだけ大きな領域をカバーするよう、はるかに多くのものをビルドできます」と、Angénieux 氏は述べています。
チームは一連のカスタムランダム化を作成して、スマートフォンの認識に関連する次の技術的な課題を克服しました。
- 幅広いモデルがある - さまざまな基本コンポーネント(ロゴ、カメラなど)を組み合わせて、市販されている代表的なスマートフォンのリアルな 3D モデルを生成する論理的な方法を設計しました。
- スマートフォンケースのデザインが無限にある – テクスチャマッピングを実行して、任意の Google Images API の画像をスマートフォンケースにマッピングできるようにしました。
- さまざまな持ち方があり、指で部分的に隠される - さまざまなポーズと肌のバリエーションがある、モジュラー式の手を作成しました。
- スマートフォンと間違えられるオブジェクトが多数存在する - アノテーションなしのトラップオブジェクト(スマートフォンに似た形状やスタイルであるものの、検出されてはならないオブジェクト)を作成することで、「人々が手に持っている四角いオブジェクトはスマートフォンであるとは限らない」という概念を導入し、誤検知を減らしました。

次の一手
Neural Pocket がスループットを劇的に向上させるのを Unity が支援したことで、チームはより多くの作業を引き受け、収益の可能性を広げるのに時間を取ることができるようになりました。Neural Pocket は引き続き、Unity のコンピュータービジョンツールをさまざまなプロジェクトに採用しています。詳細な例については、こちらのブログ記事でご確認ください。
将来的には、Neural Pocket は実世界のデータへの依存を減らし、トレーニングデータの 90% まで合成データを使用することを計画しています。Unity のコンピュータービジョン機能に対するチームの信頼が、この変化を推進する主な要因です。
「ユーザーのニーズに焦点を合わせた積極的な開発により、私たちは Unity Computer Vision Perception パッケージがこれからも改善を続け、知覚タスクのリファレンスとなり、私たちの知覚プロジェクトの開始点になると期待しています」と Angénieux 氏は述べています。