Unity を検索

コンピュータービジョンで住居内のインテリジェントソリューションを実現する

2021年9月21日 カテゴリ: Industry | 12 分 で読めます
images illustrating machine learning and computer vision
images illustrating machine learning and computer vision
取り上げているトピック
シェア

Is this article helpful for you?

Thank you for your feedback!

ホームインテリア向けのコンピュータービジョンソリューションの設計は複雑なものになります。これは、多様で正確なデータの収集に費用と時間がかかり、またプライバシーの問題もあるためです。Unity の合成データセット生成に関するツールおよびサービスが、障害や課題を克服しつつ、どのようにして住宅向けのコンピュータービジョンアプリケーションの高機能化を達成しているかをご覧ください。

高性能なコンピュータービジョン(CV)モデルを構築する上で最も困難なことの 1 つは、十分な多様性と正確なラベリングを備えたデータセットを集めることです。最近、合成データセットがこうした問題に対する実行可能な解決策として利用されるようになっています。合成データセットは、コストと時間のかかる実データの取得とアノテーションが必要になる可能性を最小限に抑えてくれます。 

Unity は、こうした合成データへの移行の最前線にいます。トレーニングのための合成データセットの構築に関する Unity の専門知識が顧客から求められている主要な分野の 1 つに、住宅のインテリアがあります。この分野は、ホームオートメーション、セキュリティ、アシスティブテクノロジー、ヘルスケア、ペットや赤ちゃんのモニタリング、住宅のインテリアデザインなど、さまざまな応用先に関わっています。 

住宅のインテリアに関する応用においては、プライバシーの観点から、実際の住宅に基づいたラベル付きデータセットの収集が非常に困難になります。これに加えて、トレーニングデータセットに素材、色、ライティング、家具などの要素について高い多様性が求められるという事情も加わり、さらにデータセットの収集は難しくなります。

こうした困難に直面している顧客のために、Unity はフォトリアリスティックな住宅環境を生成するためのツールや 3D コンテンツライブラリを開発してきました。データの多様性を高くするために、プロシージャルな家具の配置や、カメラの位置、素材、ライティング、時間帯、空や屋外環境、さらにカスタムオブジェクトの環境への追加配置など、数多くのランダム化要素を導入しています。下の図は、これらのランダム化のうち 4 つのサンプルを示したものです。

Examples for four of the randomizations included in our synthetic home interiors, while keeping other parameters constant
ここに示した 4 つのランダム化のサンプルは Unity の住宅インテリアの合成データに含まれている。サンプルでは、ここに示した以外のパラメーターは一定に保たれている。

Home Interiors データセットは、これらのツールを使って生成できるもののほんの一例です。このデータセットには、セマンティックセグメンテーション画像とインスタンスセグメンテーション画像(家具、什器、壁、天井、床のラベル付き)に加え、家具の 2D および 3D バウンディングボックスのアノテーションが含まれています。多くの種類のラベルを持つことで、真の正解が 1 種類または 2 種類しかないデータセットでは不可能な、幅広いコンピュータービジョンタスクが可能になります。

ここでは、実際のデータセットを取得することの難しさを克服するためにお客様をサポートしてきた、いくつかのホームインテリアの使用例をご紹介します。

The four types of ground truth included in the Home Interiors dataset. Top left: 2D bounding boxes, Bottom left: 3D bounding boxes, Top right: semantic segmentation, Bottom right: instance segmentation
Home Interiors データセットに含まれる 4 種類の真の正解。左上:2D バウンディングボックス、左下:3D バウンディングボックス、右上:セマンティックセグメンテーション、右下:インスタンスセグメンテーション

ホームオートメーション

コンピュータービジョンは、家庭内のさまざまな作業を自動化したり上手く組み合わせて実行したりする機器に大きな影響を与えています。多くの分野で、従来はセンサーアレイを使用していた応用先で、より効果的かつ完全にタスクを実行するために、コンピュータービジョンを搭載したカメラを使用するようになってきています。

その代表例が、スマートロボット掃除機です。元となる製品は約 30 年前に開発されましたが、当初から抱えていた大きな欠点の 1 つに、地面に落ちているゴミとそれ以外の物体を区別できないというものがありました。また、障害物の多い場所での移動にも難がありました。Unity の力によって、これらの問題に対応するオーダーメイドのソリューションを作ることができました。たとえば、Unity の物理エンジンを使って、折り目やシワがランダムについた布をリアルに再現したオブジェクトを地面に置いた環境を作ることができます。このようなデータセットは、掃除機を衣服を識別して避けるようにトレーニングするために使うことができます。

Simulating the point of view of a smart vacuum cleaner. Left: 2D bounding boxes, Right: semantic segmentation
スマート掃除機の視点のシミュレーション。左:2D バウンディングボックス、右:セマンティックセグメンテーション

スマートカメラも、私たちが合成データを用いて顧客のためのコンピュータービジョンモデルの改善を行ってきた分野です。こうしたカメラは、部屋にいる人の存在を検知し、それに応じてライティングや温度などの要素を制御し、パーソナライズする必要があります。この分野で私たちのツールが役立っている例として、ペットを識別するモデルのトレーニングが挙げられます。この目的のために、さまざまなポーズやアニメーション、毛色などを取りそろえた、家庭内のペットの画像が大量に必要になります。Unity はゲームエンジンなので、ペットのようなキャラクターのスケルトンモデルをアニメーション化するツールや、よりリアルな出力を実現するモーションブラーなどのシミュレーション機能が元々豊富に組み込まれています。そのため、Unity を使えばこのタスクを遂行することができました。

また、合成データを使うアプローチでは、位置や視線の方向、透視投影、アスペクト比、レンズの歪み、その他コントラストや彩度といった画像に関するプロパティなどを、実際のカメラの特性に合わせてデータを生成することが容易に行えます。たとえば、暗視カメラのデータのシミュレーションを、通常の RGB カメラのシミュレーションと同じように簡単に行えます。さらに、合成データは反復修正のために必要な時間も短くできるため、実際に使うカメラを変更する場合でも、データセットをナイトビジョンから RGB に簡単に切り替えることができます。  

Simulating a night vision camera with a fisheye lens. Left: 2D bounding boxes, Right: semantic segmentation
魚眼レンズを使った暗視カメラのシミュレーション。左:2D バウンディングボックス、右:セマンティックセグメンテーション

安全と安心

コンピュータービジョンが注目を集めるもう 1 つの分野は、家庭の安全を守るためのソリューションや、ヘルスケアやアシスティブテクノロジーによって生活の質を高めるためのソリューションです。 

視覚障がい者が安全に住宅の中を移動するためには、住宅内のレイアウトや物体を全体的に把握できるモデルが必要です。このようなモデルでは、家具、壁、階段、ドアなどの要素を検知して、住宅内の安全な経路を特定する必要があります。また、壁などの障害物に近づきすぎた時に警告を出すためには、カメラがその距離を知る必要があります。この問題を解決するために、私たちは、平屋・複数階建てを問わず、さまざまな住宅のレイアウトを用意し、それらのレイアウトに対して、家具の配置や種類、ドアや窓の開閉具合を変数としてランダム化をかけました。ここに挙げたレベルの複雑さを確保しようとすると、データセットの多様性に加えて、セグメンテーション、バウンディングボックス、深度マップなど、複数の種類の真の正解を用いてトレーニングを行う必要があるため、多様性に富み、かつ正確にラベル付けされた実データセットの作成がより困難になっています。

合成データで作られた住宅のインテリアは、住宅内で人間を知覚するモデルを作るためのリアリティのある環境としても役立ちます。私たちはシミュレーションに 3D の人間モデルを追加し、このモデルをポーズ、身長、体格、髪型、肌などのパラメーターでランダム化することで、合成データで作られた住宅のインテリアを人間を知覚するモデルを作成するための環境として使えるようにしています。こうして作られたコンピュータービジョンモデルは、人の身体活動を監視し、歩行や手先の動きなどの異常を検出するために利用できます。このようなモデルを搭載したシステムは、ユーザーが転倒したり、長時間動かなかったりした場合、特に住宅内で普段就寝しない場所でそれが起きた場合に、救急にアラートを出すために使うことができます。似たようなケースとして、特定の薬を飲むときの体や腕の動きを学習することで、薬の飲み忘れを検知して、ユーザーにリマインドするという使い方もできます。

AI recognizing 2 people and objects in a room
家庭内のインテリア環境における 3D 人体モデル。左:2D バウンディングボックス、右:キーポイント

インテリアデザイン

最近では、機械学習によってコンピューターが芸術的な視点を持つようになったのではないかと思うことがあります。インテリアデザインもそうしたことを感じる分野の 1 つです。すでに一部のオンラインショップでは、スマートフォンのカメラを使って、ユーザーが自宅で商品を実際に目にすることができる機能を提供しています。これは、部屋の中の様々な表面(床、テーブル、壁)の範囲や面積を識別して測定し、その上に商品の本物のようなバーチャルモデルを表示するコンピュータービジョンモデルによって実現されています。これは、コンピュータービジョンが実現する拡張現実の幅広い可能性のほんの一例です。

私たちの取り組んだユースケースの 1 つに、ユーザーがアップロードした写真をもとに、住宅の素材や既存のインテリアスタイルを検出するというものがありました。このような機能を持つモデルは、ユーザーが自分の家に合った商品をすぐに見つけられるようなオンライン推薦システムに活用できます。これを可能にしているのは、Unity の物理ベースレンダリングエンジンで、さまざまな木材やラミネートなど、幅広い素材をリアルに表現することができます。さらに、オーダーメイドのランダム化ツールにより、生成された各フレームにおいて、これらの素材のさまざまなパラメータを簡単に変更することができます。 

コンピュータービジョンモデルは、部屋に置かれている家具の形や大きさを検出して、ユーザーの自宅にあるものと同じような大きさの新しい家具をおすすめしたり、正確に視覚化したりすることもできます。同様に、ユーザーが持っている家具にさまざまな色を仮想的に割り当てる配色ビジュアライザーを構築し、ユーザーが自宅の外観を一新したい場合にどのようなカラーパレットを選択すべきかを決定する上で役立てることもできます。

家具、時間帯、スカイボックスのランダム化

これからの展開にご期待ください

今回紹介したアプリケーションは、このテクノロジーが可能にすることのほんの一部です。合成データを利用することで、さまざまなコンピュータービジョンのタスクにおいてモデルのパフォーマンスを向上させることができます。例えば、古い建物の内部をマッピングして高精度な改築計画を立てたり、位置を認識したり、合成データによる環境をプロシージャルに生成したりすることができます。ニーズに合わせて合成データセットをカスタマイズすることができるので、応用範囲は想像力次第でいくらでも広げることができます。今回は住宅のインテリアに焦点を当てましたが、Unity のプロシージャルツールには、さまざまな環境を生成してランダム化する機能があります。 

住宅のインテリアに関するコンピュータービジョンのニーズに合わせたカスタムの合成データセットについては、Unity の専門家チームまでお問い合わせください。用途が住宅だけにとどまらない場合でも、顧客の環境やラベリングのニーズに合わせて、さまざまなカスタマイズをサポートしています。Home Interiors データセットをダウンロードして、データセットの一例をご覧ください。

2021年9月21日 カテゴリ: Industry | 12 分 で読めます

Is this article helpful for you?

Thank you for your feedback!

取り上げているトピック