(57)【特許請求の範囲】
【請求項１】
少なくとも1つのプロセッサと、
機械学習画像セグメンテーションモデルであって、
画像を受信し、前記画像の受信に応答して、セマンティックセグメンテーションマスクを出力するようにトレーニングされる、セマンティックセグメンテーション・ニューラルネットワークと、
前記画像の少なくとも一部および前記セマンティックセグメンテーションマスクの少なくとも一部を受信し、前記画像の前記少なくとも一部および前記セマンティックセグメンテーションマスクの前記少なくとも一部の受信に応答して、リファインド・セマンティックセグメンテーションマスクを出力するようにトレーニングされる、エッジリファインメント・ニューラルネットワークと
を含む機械学習画像セグメンテーションモデルと、
前記少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに動作を実行させる命令を記憶する少なくとも1つの有形の非一時的コンピュータ可読媒体であって、前記動作が、
前記画像を取得することであって、前記画像が高解像度画像を含む、取得することと、
前記高解像度画像を低解像度画像にダウンスケールし、前記低解像度画像を前記セマンティックセグメンテーション・ニューラルネットワークに入力することと、
前記セマンティックセグメンテーション・ニューラルネットワークの出力として、前記セマンティックセグメンテーションマスクを受信することと、
前記画像の少なくとも一部および前記セマンティックセグメンテーションマスクの少なくとも一部を前記エッジリファインメント・ニューラルネットワークに入力することと、
前記エッジリファインメント・ニューラルネットワークの出力として、前記リファインド・セマンティックセグメンテーションマスクを受信することと
を含む、少なくとも1つの有形の非一時的コンピュータ可読媒体と
を含むコンピューティングシステム。
【請求項２】
前記動作が、
前記リファインド・セマンティックセグメンテーションマスクに少なくとも部分的に基づいて、前記画像の少なくとも一部をぼかすこと
をさらに含む、請求項1に記載のコンピューティングシステム。
【請求項３】
前記セマンティックセグメンテーション・ニューラルネットワークの出力として、前記セマンティックセグメンテーションマスクを受信することが、
前記セマンティックセグメンテーション・ニューラルネットワークの出力として、低解像度セマンティックセグメンテーションマスクを受信すること
を含む、請求項1に記載のコンピューティングシステム。
【請求項４】
前記セマンティックセグメンテーションマスクの少なくとも一部を前記エッジリファインメント・ニューラルネットワークに入力することが、
前記低解像度セマンティックセグメンテーションマスクを高解像度セマンティックセグメンテーションマスクにアップスケールすることと、
前記高解像度セマンティックセグメンテーションマスクの少なくとも一部を前記エッジリファインメント・ニューラルネットワークに入力することと
をさらに含む、請求項3に記載のコンピューティングシステム。
【請求項５】
前記画像の少なくとも一部を前記エッジリファインメント・ニューラルネットワークに入力することが、前記高解像度画像の少なくとも一部を前記エッジリファインメント・ニューラルネットワークに入力することを含む、請求項1から4のいずれか一項に記載のコンピューティングシステム。
【請求項６】
前記画像の少なくとも一部を前記エッジリファインメント・ニューラルネットワークに入力することが、前記画像の前記少なくとも一部を前記エッジリファインメント・ニューラルネットワークの第1のエンコーダネットワークに入力することを含み、
前記セマンティックセグメンテーションマスクの少なくとも一部を前記エッジリファインメント・ニューラルネットワークに入力することが、前記セマンティックセグメンテーションマスクの前記少なくとも一部を前記エッジリファインメント・ニューラルネットワークの第2のエンコーダネットワークに入力することを含む、
請求項1から5のいずれか一項に記載のコンピューティングシステム。
【請求項７】
前記画像の少なくとも一部および前記セマンティックセグメンテーションマスクの少なくとも一部を前記エッジリファインメント・ニューラルネットワークに入力することが、
前記第1のエンコーダネットワークから第1の符号化された出力を受信することと、
前記第2のエンコーダネットワークから第2の符号化された出力を受信することと、
前記第1の符号化された出力と前記第2の符号化された出力を連結して、連結された符号化された出力にすることと
をさらに含む、請求項6に記載のコンピューティングシステム。
【請求項８】
前記画像の少なくとも一部および前記セマンティックセグメンテーションマスクの少なくとも一部を前記エッジリファインメント・ニューラルネットワークに入力することが、
前記連結された符号化された出力を、前記エッジリファインメント・ニューラルネットワークのデコーダネットワークに提供することをさらに含み、
前記エッジリファインメント・ニューラルネットワークの出力として、前記リファインド・セマンティックセグメンテーションマスクを受信することが、前記デコーダネットワークの出力として、前記リファインド・セマンティックセグメンテーションマスクを受信することを含む、
請求項7に記載のコンピューティングシステム。
【請求項９】
前記コンピューティングシステムが、ユーザコンピューティングデバイスを含む、請求項1から8のいずれか一項に記載のコンピューティングシステム。
【請求項１０】
前記機械学習画像セグメンテーションモデルが、前記機械学習画像セグメンテーションモデルの総損失関数に少なくとも部分的に基づいて、エンドツーエンドでトレーニングされた、請求項1から9のいずれか一項に記載のコンピューティングシステム。
【請求項１１】
画像の少なくとも一部のセグメンテーションマスクを生成するコンピュータ実装方法であって、
第1のニューラルネットワークで、前記画像から導出された第1のデータを受信するステップと、
前記第1のニューラルネットワークの出力を生成するために、前記第1のニューラルネットワークを使用して、前記第1のデータを処理するステップであって、前記出力が第1のセグメンテーションマスクに関連する、ステップと、
第2のニューラルネットワークで、
前記画像から導出された第2のデータ、および
前記第1のニューラルネットワークの前記出力から導出されたデータ
を受信するステップであって、前記第1のデータが第1の解像度の画像データを含み、前記第2のデータが前記第1の解像度よりも高い第2の解像度の画像データを含む、受信するステップと、
第2のセグメンテーションマスクに関連するデータを生成するステップであって、当該生成することが、前記第2のセグメンテーションマスクが前記第1のセグメンテーションマスクに対してリファインされるように、前記第2のニューラルネットワークを使用して、前記画像から導出された前記第2のデータおよび前記第1のニューラルネットワークの前記出力から導出された前記データを処理することを含む、ステップと
を含むコンピュータ実装方法。
【請求項１２】
前記第1のデータを生成するステップをさらに含み、前記第1のデータを生成するステップが、前記画像の少なくとも1つの領域の解像度を下げるステップを含む、請求項11に記載のコンピュータ実装方法。
【請求項１３】
前記第1のセグメンテーションマスクが第1の解像度を有し、前記第2のセグメンテーションマスクが前記第1の解像度よりも高い第2の解像度を有する、請求項11または12に記載のコンピュータ実装方法。
【請求項１４】
前記第1のニューラルネットワークおよび/または前記第2のニューラルネットワークが1つまたは複数の畳み込み層を含む、請求項11から13のいずれか一項に記載のコンピュータ実装方法。
【請求項１５】
前記第2のニューラルネットワークが、
少なくとも2つのヘッドであって、第1のヘッドが前記画像から導出された前記第2のデータを受信するように構成され、第2のヘッドが前記第1のニューラルネットワークの出力から導出された前記データを受信するように構成される、少なくとも2つのヘッドと、
前記第1および第2のヘッドから導出されたデータを連結するように構成された連結コンポーネントと
を含む、請求項11から14のいずれか一項に記載のコンピュータ実装方法。
【請求項１６】
前記第2のニューラルネットワークが、前記連結コンポーネントの出力から導出されたデータを受信するように構成されたデコーダネットワークをさらに含み、前記第1のヘッドが第1のエンコーダネットワークを含み、前記第2のヘッドが第2のエンコーダネットワークを含む、請求項15に記載のコンピュータ実装方法。
【請求項１７】
前記第1のニューラルネットワークが、セマンティックセグメンテーション・ニューラルネットワークである、請求項11から16のいずれか一項に記載のコンピュータ実装方法。
【請求項１８】
前記第2のニューラルネットワークがエッジリファインメント・ニューラルネットワークであり、前記第2のセグメンテーションマスクが、前記第1のセグメンテーションマスクと比較して、よりシャープなエッジを含む、請求項11から17のいずれか一項に記載のコンピュータ実装方法。
【請求項１９】
前記第2のセグメンテーションマスクが、前記第1のセグメンテーションマスクと比較して、前記画像の少なくとも一部の前景と背景をより正確に分離する、請求項11から18のいずれか一項に記載のコンピュータ実装方法。
【請求項２０】
画像セグメンテーションモデルをエンドツーエンドでトレーニングするコンピュータ実装方法であって、前記画像セグメンテーションモデルが、セマンティックセグメンテーション・ニューラルネットワークおよびエッジリファインメント・ニューラルネットワークを含み、前記セマンティックセグメンテーション・ニューラルネットワークの出力が前記エッジリファインメント・ニューラルネットワークに入力され、前記コンピュータ実装方法が、
トレーニング画像を前記画像セグメンテーションモデルに入力するステップであって、前記セマンティックセグメンテーション・ニューラルネットワークに入力されるトレーニング画像が、前記エッジリファインメント・ニューラルネットワークに入力されるトレーニング画像の低画像のバージョンを含む、ステップと、
前記セマンティックセグメンテーション・ニューラルネットワークの第1の損失関数を決定するステップと、
前記エッジリファインメント・ニューラルネットワークの第2の損失関数を決定するステップと、
前記第1の損失関数および前記第2の損失関数に少なくとも部分的に基づいて総損失関数を決定するステップと、
前記総損失関数に基づいて、前記画像セグメンテーションモデルをトレーニングするステップと
を含むコンピュータ実装方法。
【請求項２１】
前記第1の損失関数および前記第2の損失関数に少なくとも部分的に基づいて前記総損失関数を決定するステップが、前記第1の損失関数および前記第2の損失関数を合計するステップを含む、請求項20に記載のコンピュータ実装方法。
【請求項２２】
前記総損失関数に基づいて前記画像セグメンテーションモデルをトレーニングするステップが、
前記第1の損失関数に少なくとも部分的に基づいて前記セマンティックセグメンテーション・ニューラルネットワークをトレーニングするステップ
を含む、請求項20に記載のコンピュータ実装方法。
【請求項２３】
前記総損失関数に基づいて前記画像セグメンテーションモデルをトレーニングするステップが、
前記第2の損失関数に少なくとも部分的に基づいて前記エッジリファインメント・ニューラルネットワークをトレーニングするステップ
をさらに含む、請求項22に記載のコンピュータ実装方法。
【請求項２４】
前記セマンティックセグメンテーション・ニューラルネットワークの前記第1の損失関数を決定するステップが、
前記トレーニング画像を前記セマンティックセグメンテーション・ニューラルネットワークに入力するステップと、
前記セマンティックセグメンテーション・ニューラルネットワークの出力として、セマンティックセグメンテーションマスクを受信するステップと、
前記セマンティックセグメンテーションマスクとグラウンドトゥルース・セマンティックセグメンテーションマスクとの間の差に少なくとも部分的に基づいて、前記第1の損失関数を決定するステップと
を含む、請求項20に記載のコンピュータ実装方法。
【請求項２５】
前記トレーニング画像に少なくとも部分的に基づいて前記セマンティックセグメンテーションマスクを決定するステップが、
前記セマンティックセグメンテーションマスクのシングルチャネルを抽出するステップを含み、
前記第1の損失関数が、前記セマンティックセグメンテーションマスクの前記シングルチャネルと前記グラウンドトゥルース・セマンティックセグメンテーションマスクのシングルチャネルとの間の差に少なくとも部分的に基づいて決定される、
請求項24に記載のコンピュータ実装方法。
【請求項２６】
前記トレーニング画像が高解像度のトレーニング画像を含み、前記トレーニング画像を前記セマンティックセグメンテーション・ニューラルネットワークに入力するステップが、
前記高解像度のトレーニング画像を低解像度のトレーニング画像にダウンスケールするステップと、
前記低解像度のトレーニング画像を前記セマンティックセグメンテーション・ニューラルネットワークに入力するステップと
をさらに含む、請求項24に記載のコンピュータ実装方法。
【請求項２７】
前記エッジリファインメント・ニューラルネットワークの前記第2の損失関数を決定するステップが、
前記エッジリファインメント・ニューラルネットワークによって、リファインド・セマンティックセグメンテーションマスクを決定するステップと、
前記リファインド・セマンティックセグメンテーションマスクとグラウンドトゥルース・セマンティックセグメンテーションマスクとの間の差に少なくとも部分的に基づいて、前記第2の損失関数を決定するステップと
を含む、請求項20に記載のコンピュータ実装方法。
【請求項２８】
前記エッジリファインメント・ニューラルネットワークによって、前記リファインド・セマンティックセグメンテーションマスクを決定するステップが、
前記セマンティックセグメンテーション・ニューラルネットワークの出力として、前記トレーニング画像のセマンティックセグメンテーションマスクを受信するステップと、
前記トレーニング画像の少なくとも一部および前記セマンティックセグメンテーションマスクの少なくとも一部を前記エッジリファインメント・ニューラルネットワークに入力するステップと、
前記エッジリファインメント・ニューラルネットワークの出力として、前記リファインド・セマンティックセグメンテーションマスクを受信するステップと
を含む、請求項27に記載のコンピュータ実装方法。
【請求項２９】
前記トレーニング画像が高解像度トレーニング画像を含み、
前記セマンティックセグメンテーション・ニューラルネットワークの出力として、前記トレーニング画像の前記セマンティックセグメンテーションマスクを受信するステップが、前記トレーニング画像の低解像度セマンティックセグメンテーションマスクを受信するステップを含み、
前記トレーニング画像の少なくとも一部および前記セマンティックセグメンテーションマスクの少なくとも一部を前記エッジリファインメント・ニューラルネットワークに入力するステップが、
前記高解像度トレーニング画像の少なくとも一部を前記エッジリファインメント・ニューラルネットワークに入力するステップと、
前記低解像度セマンティックセグメンテーションマスクを高解像度セマンティックセグメンテーションマスクにアップスケールするステップと、
前記高解像度セマンティックセグメンテーションマスクの少なくとも一部を前記エッジリファインメント・ニューラルネットワーク入力するステップと
を含む、
請求項28に記載のコンピュータ実装方法。
【請求項３０】
請求項11から29のいずれか一項に記載の方法を実行するように構成された装置。
【請求項３１】
コンピューティング装置によって実行されると、請求項11から29のいずれか一項に記載の方法が実行されるようにするコンピュータ可読命令を含むコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に画像セグメンテーションに関する。より詳細には、本開示は、エンドツーエンドでトレーニングすることができる高解像度画像セグメンテーションのためのネットワークモデルに関する。
【背景技術】
【０００２】
画像セグメンテーション(たとえば、セマンティックセグメンテーション(Semantic Segmentation)など)を使用して、デジタル画像を複数のセグメントに分割することができる。たとえば、画像を特定の境界(直線線、曲線など)でオブジェクトにセグメント化したり、画像の前景または背景内の要素に分割したりすることができる。特に、同じラベルを有するピクセルがいくつかの特性を共有するように、画像の各ピクセルにラベル付けすることができる。セグメント化されると、たとえば、セグメントを抽出したり、セグメントに従って画像の一部をぼかしたりすることによって、画像を操作することができる。
【０００３】
畳み込みニューラルネットワーク(「CNN：Convolutional Neural Networks」)などのニューラルネットワークは、画像セグメンテーションを実行する能力を示している。しかしながら、画像セグメンテーションを実行するのに必要な計算集約性のために、256×256、300×300、400×400ピクセルなど、画像をセグメント化するように構成されたCNNへの入力および出力の解像度は、通常制限される。したがって、そのようなCNNから出力されたセグメント化された画像は、画像が低解像度であるために、ユーザにとって価値が限られ得る。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
出力されたセグメント化された画像の解像度を上げる1つの技法は、バイラテラルフィルタまたは条件付き確率場プロセスを使用して、出力されたセグメント化された画像をより高い解像度にアップスケールすることである。しかしながら、CNNおよびアップスケーリング方法は、そのような構成では分離されたプロセスであるので、たとえば、高解像度のセグメント化された画像に基づいて出力誤差を逆伝播することによって、CNNをエンドツーエンドでトレーニングすることができない。
【課題を解決するための手段】
【０００５】
本開示の実施形態の態様および利点は、以下の説明に部分的に記載されている、または説明から学ぶことができる、または実施形態の実施を介して学ぶことができる。
【０００６】
本開示の1つの例示的な態様は、少なくとも1つのプロセッサ、機械学習画像セグメンテーションモデル、および少なくとも1つのプロセッサによって実行されると、少なくとも1つのプロセッサに動作を実行させる命令を記憶する少なくとも1つの有形の非一時的コンピュータ可読媒体を含むコンピューティングシステムを対象とする。機械学習画像セグメンテーションモデルは、セマンティックセグメンテーション・ニューラルネットワーク(Semantic Segmentation Neural Network)およびエッジリファインメント・ニューラルネットワーク(Edge Refinement Neural Network)を含むことができる。セマンティックセグメンテーション・ニューラルネットワークは、画像を受信し、画像の受信に応答して、セマンティックセグメンテーションマスクを出力するようにトレーニングされ得る。画像の少なくとも一部およびセマンティックセグメンテーションマスクの少なくとも一部を受信し、画像の少なくとも一部およびセマンティックセグメンテーションマスクの少なくとも一部の受信に応答して、リファインド・セマンティックセグメンテーションマスク(Refined Semantic Segmentation Mask)を出力するように、エッジリファインメント・ニューラルネットワークをトレーニングすることができる。動作は、画像を取得することと、画像をセマンティックセグメンテーション・ニューラルネットワークに入力することと、セマンティックセグメンテーション・ニューラルネットワークの出力として、セマンティックセグメンテーションマスクを受信することと、画像の少なくとも一部およびセマンティックセグメンテーションマスクの少なくとも一部をエッジリファインメント・ニューラルネットワークに入力することと、エッジリファインメント・ニューラルネットワークの出力として、リファインド・セマンティックセグメンテーションマスクを受信することとを含むことができる。
【０００７】
本開示の別の例示的な態様は、画像の少なくとも一部についてセグメンテーションマスクを生成するコンピュータ実装方法を対象とする。この方法は、第1のニューラルネットワークで、画像から導出された第1のデータを受信するステップを含むことができる。この方法は、第1のニューラルネットワークの出力を生成するために、第1のニューラルネットワークを使用して、前記第1のデータを処理するステップをさらに含むことができ、前記出力が第1のセグメンテーションマスクに関連する。この方法は、第2のニューラルネットワークで、画像から導出された第2のデータ、および第1のニューラルネットワークの前記出力から導出されたデータを受信するステップをさらに含むことができる。この方法は、第2のセグメンテーションマスクに関連するデータを生成するステップをさらに含むことができ、第2のセグメンテーションマスクが第1のセグメンテーションマスクに対してリファインされるように、第2のニューラルネットワークを使用して、画像から導出された第2のデータおよび第1のニューラルネットワークの前記出力から導出されたデータを処理することを含む。
【０００８】
本開示の別の例示的な態様は、画像セグメンテーションモデルをエンドツーエンドでトレーニングするコンピュータ実装方法を対象とする。画像セグメンテーションモデルは、セマンティックセグメンテーション・ニューラルネットワークおよびエッジリファインメント・ニューラルネットワークを含むことができる。この方法は、トレーニング画像を画像セグメンテーションモデルに入力するステップを含むことができる。この方法は、セマンティックセグメンテーション・ニューラルネットワークの第1の損失関数を決定するステップをさらに含むことができる。この方法は、エッジリファインメント・ニューラルネットワークの第2の損失関数を決定するステップをさらに含むことができる。この方法は、第1の損失関数および第2の損失関数に少なくとも部分的に基づいて総損失関数を決定するステップをさらに含むことができる。この方法は、総損失関数に基づいて画像セグメンテーションモデルをトレーニングするステップをさらに含むことができる。
【０００９】
本開示の他の態様は、様々なシステム、装置、非一時的コンピュータ可読媒体、ユーザインターフェース、および電子デバイスを対象とする。
【００１０】
本開示の様々な実施形態のこれらおよび他の特徴、態様、および利点は、以下の説明および添付の特許請求の範囲を参照してよりよく理解されるようになるであろう。本明細書に組み込まれ、その一部を構成する添付の図面は、本開示の例示的な実施形態を示し、明細書と共に、関連する原理を説明するのに役立つ。
【００１１】
当業者に向けられた実施形態の詳細な説明は、添付の図面を参照する本明細書に記載されている。
【図面の簡単な説明】
【００１２】
【図１】本開示の例示的な態様による例示的なコンピューティングシステムのブロック図である。
【図２】本開示の例示的な態様による例示的な画像セグメンテーションモデルのブロック図である。
【図３】本開示の例示的な態様による例示的な画像セグメンテーションモデルのブロック図である。
【図４】本開示の例示的な態様による例示的なエッジリファインメント・ニューラルネットワークのブロック図である。
【図５】本開示の例示的な態様による例示的なエッジリファインメント・ニューラルネットワークのブロック図である。
【図６】本開示の例示的な態様による例示的な画像セグメンテーションモデルトレーニングプロセスのブロック図である。
【図７】本開示の例示的な態様による、リファインド・セマンティックセグメンテーションマスクを決定するための例示的な方法のフローチャート図である。
【図８】本開示の例示的な態様による、リファインド・セマンティックセグメンテーションマスクを決定するための例示的な方法のフローチャート図である。
【図９】本開示の例示的な態様による、画像セグメンテーションモデルをトレーニングするための例示的な方法のフローチャート図である。
【発明を実施するための形態】
【００１３】
本開示の例示的な態様は、機械学習を活用して画像のリファインド・セマンティックセグメンテーションマスクを決定するシステムおよび方法を対象とする。特に、本開示のシステムおよび方法は、1つまたは複数のニューラルネットワークを含む機械学習画像セグメンテーションモデルを含み、使用することができる。一例では、機械学習画像セグメンテーションモデルは、セマンティックセグメンテーションマスクを提供するように構成された第1のニューラルネットワーク、およびセマンティックセグメンテーションマスクをリファインするように構成された第2のニューラルネットワークを含むことができる。そのような例では、コンピューティングシステムは、画像を受信し、セマンティックセグメンテーションマスクを受信するために第1のニューラルネットワークに画像を入力し、セマンティックセグメンテーションマスクの少なくとも一部および画像の少なくとも一部を第2のニューラルネットワークに入力し、リファインド・セマンティックセグメンテーションマスクを第2のニューラルネットワークの出力として受信することができる。リファインド・セマンティックセグメンテーションマスクは、たとえば、元のセマンティックセグメンテーションマスクと比較して、リファインされた境界および/またはより高い解像度を有する画像のセマンティックセグメンテーションマスクとすることができる。たとえば、いくつかの実装形態では、リファインド・セマンティックセグメンテーションマスクは、セマンティックセグメンテーションマスクと比較して、よりシャープなエッジを有することができ、および/またはリファインド・セマンティックセグメンテーションマスクは、セマンティックセグメンテーションマスクと比較して、画像の少なくとも一部の前景と背景をより正確に分離することができる。
【００１４】
特に、本開示の一態様によれば、第1のニューラルネットワークは、画像を受信し、画像のセマンティックセグメンテーションマスクを決定するように構成されたセマンティックセグメンテーション・ニューラルネットワーク(たとえば、CNN)とすることができる。一例では、ユーザは、画像セグメンテーションモデルに提供するための画像をユーザコンピューティングデバイス上で選択することができる。コンピューティングデバイスは、画像をセマンティックセグメンテーション・ニューラルネットワークに入力し、画像のセマンティックセグメンテーションマスクを受信することができる。セマンティックセグメンテーションマスクは、画像を関連するセグメント(たとえば、画像の前景にいる人と背景)に分割することができる。たとえば、画像が分割されるセグメントは、別個のセマンティック概念にそれぞれ対応する意味的に別個のセグメントとすることができる。
【００１５】
コンピューティングデバイスは、セマンティックセグメンテーションマスクの少なくとも一部および画像の少なくとも一部を第2のニューラルネットワークに提供することができる。たとえば、第2のニューラルネットワークは、セマンティックセグメンテーションマスクおよび画像を受信し、第2のニューラルネットワークの出力として、リファインド・セマンティックセグメンテーションマスクを提供するように構成されたエッジリファインメント・ニューラルネットワーク(たとえば、CNN)とすることができる。リファインド・セマンティックセグメンテーションマスクは、画像のセグメント化された領域間にリファインされたエッジ(たとえば、より明確な/明確に定義された境界)を有し、および/またはセマンティックセグメンテーションマスクよりも高い解像度とすることができる。
【００１６】
リファインド・セマンティックセグメンテーションマスクは、次いで、コンピューティングデバイスによって使用され、画像の背景などに、ぼやけた効果を有する画像を生成することができる。たとえば、リファインド・セマンティックセグメンテーションマスクに基づいて、画像の背景エリアで画像をぼかして、ぼやけた背景効果(たとえば、「ぼけ」効果)を生成することができる。したがって、コンピューティングデバイスは、本開示の例示的な態様に従って、単一の画像および画像セグメンテーションモデルを使用して、ぼやけた背景画像を生成することができる。
【００１７】
さらに、本明細書でより詳細に説明するように、リファインされたセグメンテーションマスクを決定するために、画像セグメンテーションモデルをエンドツーエンドでトレーニングすることができ、それによって、トレーニングを介してリファインド・セマンティックセグメンテーションマスクの品質を向上させることができる。
【００１８】
より詳細には、いくつかの実装形態では、コンピューティングシステムは、少なくとも1つのプロセッサ、および少なくとも1つのプロセッサによって実行されると、少なくとも1つのプロセッサに動作を実行させる命令を記憶する少なくとも1つの有形の非一時的コンピュータ可読媒体を含むことができる。コンピューティングシステムは、セマンティックセグメンテーション・ニューラルネットワークおよびエッジリファインメント・ニューラルネットワークを含むことができる機械学習画像セグメンテーションモデルをさらに含むことができる。
【００１９】
セマンティックセグメンテーション・ニューラルネットワークは、画像を受信し、画像の受信に応答して、セマンティックセグメンテーションマスクを出力するようにトレーニングされ得る。たとえば、セマンティックセグメンテーション・ニューラルネットワークは、1つまたは複数の畳み込み層を含むCNNとすることができる。セマンティックセグメンテーションマスクは、画像を、たとえば前景および背景、または他のセマンティックセグメントおよび/もしくは深層など、複数のセグメントにセグメント化または分割することができる。いくつかの実装形態では、セマンティックセグメンテーションによって決定されたセマンティックセグメンテーションマスクは、ピクセルごとに16の特徴の値を含むことができ、またはそうでなければ、16のチャネルに従ってセグメント化され得る。したがって、一例として、セマンティックセグメンテーション・ニューラルネットワークの出力層の深さは16とすることができる。複数の特徴を使用することによって、シングルフィーチャのセマンティックセグメンテーションマスクよりも正確にリファインド・セマンティックセグメンテーションマスクを予測することができ得る。たとえば、髪、肌、衣服、身体の特徴などに関する情報を、セマンティックセグメンテーションネットワークからエッジリファインメントネットワークに渡すことができる。他の実装形態では、セマンティックセグメンテーションマスクは2つまたは3つのチャネルを有することができる。
【００２０】
エッジリファインメント・ニューラルネットワークは、画像の少なくとも一部、およびセマンティックセグメンテーションマスクの少なくとも一部を受信し、それに応答して、リファインド・セマンティックセグメンテーションマスクを出力するようにトレーニングされ得る。たとえば、エッジリファインメント・ニューラルネットワークは、1つまたは複数の畳み込み層を含むCNNとすることができる。リファインド・セマンティックセグメンテーションマスクは、セマンティックセグメンテーションマスクと比較して、たとえば、より高い解像度、より明確に定義された境界、より正確な境界、または他のリファインメントを有することによってリファインされ得る。
【００２１】
命令によって、プロセッサは、画像を取得し、その画像をセマンティックセグメンテーション・ニューラルネットワークに入力することができる。たとえば、ユーザは、ユーザコンピューティングデバイスを使用して、画像セグメンテーションモデルに提供するための画像を選択することができる。いくつかの実装形態では、画像セグメンテーションモデルは、ユーザコンピューティングデバイス上に記憶されるか、そうでなければ含まれ得る。いくつかの実装形態では、画像セグメンテーションモデルをリモートコンピューティングシステムに記憶することができ、画像を、たとえば1つもしくは複数のワイヤードまたはワイヤレスのネットワークを介して、リモートコンピューティングシステムに提供することができる。
【００２２】
いくつかの実装形態では、画像は高解像度画像とすることができる。本明細書で使用する「高解像度」という用語は、画像に関して使用するとき、第2の解像度(たとえば、256×256ピクセル)の画像のバージョンよりも高い解像度の画像である第1の解像度(たとえば、2048×2048ピクセル)の画像のバージョンを指す。同様に、「低解像度」という用語は、画像に関して使用するとき、より高い解像度の画像のバージョンよりも低い解像度の画像のバージョンを指す。上記の例示的な解像度は、例としてのみ提供されている。高解像度および低解像度の画像に、多くの異なる解像度を使用することができる。
【００２３】
いくつかの実装形態では、高解像度画像を低解像度バージョンの画像にダウンスケールし、低解像度画像をセマンティックセグメンテーション・ニューラルネットワークに入力することによって、高解像度画像をセマンティックセグメンテーション・ニューラルネットワークに入力することができる。たとえば、最近隣補間法、双線形および双三次アルゴリズム、SincおよびLaszosリサンプリング、フーリエ変換法、エッジ指向補間、ベクトル化、深層畳み込みニューラルネットワーク(Deep Convolutional Neural Networks)、または他のダウンスケーリング技法など、任意の数の技法を適用して高解像度画像をダウンスケールすることができる。
【００２４】
いくつかの実装形態では、セマンティックセグメンテーション・ニューラルネットワークは、低解像度画像の受信に応答して、低解像度セマンティックセグメンテーションマスクを出力することができる。たとえば、セマンティックセグメンテーション・ニューラルネットワークに低解像度画像(たとえば256×256画像)を入力し、セマンティックセグメンテーション・ニューラルネットワークによって、対応する低解像度セマンティックセグメンテーションマスク(たとえば、対応する256×256ピクセル)を出力することができる。
【００２５】
本開示の追加の態様によれば、セマンティックセグメンテーションマスクの少なくとも一部を、エッジリファインメント・ニューラルネットワークに入力することができる。たとえば、いくつかの実装形態では、セマンティックセグメンテーション・ニューラルネットワークから受信されたセマンティックセグメンテーションマスクは、低解像度セマンティックセグメンテーションマスクである場合がある。低解像度セマンティックセグメンテーションマスクを、高解像度セマンティックセグメンテーションマスクにアップスケールすることができ、次いで、高解像度セマンティックセグメンテーションマスクをエッジリファインメント・ニューラルネットワークに入力することができる。たとえば、いくつかの実装形態では、低解像度セマンティックセグメンテーションマスクを、セマンティックセグメンテーション・ニューラルネットワークに提供される低解像度画像を取得するためにダウンスケールされた高解像度画像の元の解像度にアップスケールすることができる。
【００２６】
さらに、画像の少なくとも一部をエッジリファインメント・ニューラルネットワークに入力することができる。たとえば、いくつかの実装形態では、高解像度セマンティックセグメンテーションマスクとともに、高解像度画像をエッジリファインメント・ニューラルネットワークに入力することができる。
【００２７】
いくつかの実装形態では、たとえば、高解像度画像の一部をランダムにクロッピングし、クロッピングされた部分をエッジリファインメント・ニューラルネットワークに提供することによって、高解像度画像をサンプリングすることができる。同様に、いくつかの実装形態では、高解像度セマンティックセグメンテーションマスクの対応する部分をクロッピングし、エッジリファインメント・ニューラルネットワークに提供することができる。高解像度セマンティックセグメンテーションマスクの部分は、たとえば、高解像度画像においてランダムにクロッピングされたのと同じ領域の高解像度セマンティックセグメンテーションマスクであり得る。
【００２８】
いくつかの実装形態では、エッジリファインメント・ニューラルネットワークは、入力を別々に受信する2つのエンコーダネットワークを含むことができる。特に、一例として、画像(またはその一部)をエッジリファインメント・ニューラルネットワークの第1のエンコーダネットワークに入力することができ、セマンティックセグメンテーションマスク(またはその一部)をエッジリファインメント・ニューラルネットワークの第2のエンコーダネットワークに入力することができる。したがって、いくつかの実装形態では、エッジリファインメント・ニューラルネットワークは、2つのヘッドを含むネットワークとすることができ、第1のヘッドは画像エンコーダネットワークに対応し、第2のヘッドはセマンティックセグメンテーション・マスクエンコーダネットワークに対応する。各エンコーダネットワークは、画像またはセマンティックセグメンテーションマスクをそれぞれ符号化する1つまたは複数の畳み込み層を含むことができる。
【００２９】
各エンコーダネットワークは、符号化された出力を出力するように構成され得る。たとえば、第1のエンコーダネットワーク(たとえば、画像エンコーダネットワーク)は、第1の符号化された出力(たとえば、符号化された画像)を出力することができ、第2のエンコーダネットワーク(たとえば、セマンティックセグメンテーション・マスクエンコーダネットワーク)は、第2の符号化された出力(たとえば、符号化されたセマンティックセグメンテーションマスク)を出力することができる。エッジリファインメント・ニューラルネットワークは、第1の符号化された出力と第2の符号化された出力を連結(concatenate)して、連結された符号化された出力にすることができる。たとえば、エンコーダネットワークの各々は、それぞれ画像またはセマンティックセグメンテーションマスクの解像度を下げるように構成され得、2つのエンコーダネットワークの符号化された出力は、各々の解像度がそれぞれ最低のときに連結され得る。
【００３０】
次いで、連結された符号化された出力は、エッジリファインメント・ニューラルネットワークのデコーダネットワークに提供され得る。たとえば、デコーダネットワークは、連結された符号化された出力の解像度が元の入力解像度に達するまで、連結された符号化された出力を拡張するように構成された1つまたは複数の畳み込み層を含むことができる。いくつかの実装形態では、デコーダネットワークは、リファインド・セマンティックセグメンテーションマスクを抽出するように構成されたエッジ推論層(Edge Inference Layer)を含むことができる。リファインド・セマンティックセグメンテーションマスクは、エッジリファインメント・ニューラルネットワークのデコーダネットワークの出力として受信され得る。リファインド・セマンティックセグメンテーションマスクは、たとえば、セマンティックセグメンテーション・ニューラルネットワークから受信されたセマンティックセグメンテーションマスクよりも高い解像度とすることができる。さらに、いくつかの実装形態では、エッジリファインメント・ニューラルネットワークによって生成されたリファインド・セマンティックセグメンテーションマスクは、16の特徴またはチャネルを含むことができる。
【００３１】
リファインド・セマンティックセグメンテーションマスクが画像セグメンテーションモデルによって決定されると、リファインド・セマンティックセグメンテーションマスクに少なくとも部分的に基づいて、画像の少なくとも一部をぼかすことができる。たとえば、リファインド・セマンティックセグメンテーションマスクは、画像の前景にいる人物/オブジェクトを画像の背景からセグメント化し得る。いくつかの実装形態では、画像の背景をぼかして、ぼかし効果(たとえば、「ぼけ」効果など)を生成することができる。他の深層(たとえば、ユーザが選択した深さに対応する層)を、背景に加えて、またはその代替として、ぼかすことができる。
【００３２】
本開示の例示的な態様によるシステムおよび方法によって提供される利点は、画像セグメンテーションモデルをエンドツーエンドでトレーニングできることである。たとえば、1つまたは複数のトレーニング画像などのトレーニングデータを使用して、リファインド・セマンティックセグメンテーションマスクに基づいて、総損失関数を決定することができる。総損失関数に少なくとも部分的に基づいて、画像セグメンテーションモデルをトレーニングすることができる。
【００３３】
たとえば、CNNなどのニューラルネットワークモデルは、多くの困難なイメージングの問題を解決する能力を示しているが、ほとんどの場合、入力画像および対応する出力画像は、通常、256×256、300×300、400×400など低解像度のものである。通常、入力画像および出力画像の解像度は、ニューラルネットワークモデルによって必要とされる計算量を低減するために低解像度に維持される。ニューラルネットワークモデルの出力として受信された画像の解像度品質を向上させる1つの技法は、バイラテラルフィルタや条件付き確率場など1つまたは複数のアップスケーリング技法を使用することである。しかしながら、そのようなアップスケーリング技法を使用しても、ニューラルネットワークモデルを介した誤差の逆伝播は可能ではなく、したがって、逆伝播によるニューラルネットワークモデルのトレーニングは防止される。
【００３４】
しかしながら、本開示の例示的な態様によるシステムおよび方法は、誤差の逆伝播などによって、画像セグメンテーションモデルがエンドツーエンドでトレーニングされることを可能にすることができる。たとえば、本開示のさらなる例示的な態様によれば、画像セグメンテーションモデルにトレーニング画像を入力することによって、画像セグメンテーションモデルをエンドツーエンドでトレーニングすることができる。トレーニング画像は、たとえば、複数のトレーニング画像を含むトレーニングデータセットからの画像であり得る。各トレーニング画像は、たとえば、それぞれのセマンティックセグメンテーションおよびエッジリファインメント・ニューラルネットワークをトレーニングするために使用される画像のセマンティックセグメンテーションマスクの対応するグラウンドトゥルースバージョンを有し得る。
【００３５】
たとえば、トレーニング画像を画像セグメンテーションモデルに入力し、セマンティックセグメンテーション・ニューラルネットワークの第1の損失関数を決定することができる。たとえば、トレーニング画像をセマンティックセグメンテーション・ニューラルネットワークに入力し、トレーニング画像のセマンティックセグメンテーションマスクをセマンティックセグメンテーション・ニューラルネットワークの出力として受信することができる。いくつかの実装形態では、セマンティックセグメンテーションマスクのシングルチャネルを抽出することができる。たとえば、いくつかの実装形態では、セマンティックセグメンテーション・ニューラルネットワークは、たとえば、推論層を使用することによって、複数のチャネルを含むセマンティックセグメンテーションマスクからシングルチャネルを抽出することができる。推論層は、たとえば、セマンティックセグメンテーションマスク(たとえば、白黒セマンティックセグメンテーションマスク)からシングルチャネルを抽出するように構成された層であり得る。
【００３６】
たとえば、セマンティックセグメンテーションマスクとグラウンドトゥルース・セマンティックセグメンテーションマスクとの間の差を決定することによって、第1の損失関数を決定することができる。たとえば、グラウンドトゥルース・セマンティックセグメンテーションマスクは、トレーニング画像の以前に決定されたセマンティックセグメンテーションマスクに対応し得る。第1の損失関数は、セマンティックセグメンテーションマスクとグラウンドトゥルース・セマンティックセグメンテーションマスクとの間の差を記述することができる。
【００３７】
いくつかの実装形態では、トレーニング画像は、最初に低解像度バージョンのトレーニング画像にダウンスケールされ得る高解像度トレーニング画像とすることができ、低解像度トレーニング画像をセマンティックセグメンテーション・ニューラルネットワークに入力して、低解像度セマンティックセグメンテーションマスクを決定することができる。次いで、低解像度セマンティックセグメンテーションマスク(またはそのシングルチャネル)を低解像度のグラウンドトゥルース・セマンティックセグメンテーションマスクと比較して、第1の損失関数を決定することができる。
【００３８】
いくつかの実装形態では、セマンティックセグメンテーション・ニューラルネットワークは、第1の損失関数に少なくとも部分的に基づいてトレーニングされ得る。たとえば、セマンティックセグメンテーション・ニューラルネットワークは、グラウンドトゥルース・セマンティックセグメンテーションマスクと比較して、セマンティックセグメンテーションマスクから誤差を逆伝播することによってトレーニングされ得る。
【００３９】
トレーニング方法は、エッジリファインメント・ニューラルネットワークの第2の損失関数を決定するステップをさらに含むことができる。たとえば、セマンティックセグメンテーションマスクを、セマンティックセグメンテーション・ニューラルネットワークから受信することができ、セマンティックセグメンテーションマスクの少なくとも一部を、トレーニング画像の少なくとも一部とともにエッジリファインメント・ニューラルネットワークに入力することができる。
【００４０】
いくつかの実装形態では、セマンティックセグメンテーションマスクは低解像度セマンティックセグメンテーションマスクであり、トレーニング画像は高解像度トレーニング画像であり得る。高解像度トレーニング画像の少なくとも一部を、エッジリファインメント・ニューラルネットワークに入力することができる。低解像度セマンティックセグメンテーションマスクをセマンティックセグメンテーションマスクの高解像度バージョンにアップスケールすることができ、高解像度セマンティックセグメンテーションマスクの少なくとも一部をエッジリファインメント・ニューラルネットワークに入力することができる。たとえば、いくつかの実装形態では、トレーニング画像をランダムにクロッピングし、高解像度セマンティックセグメンテーションマスクの対応するクロップをクロッピングすることができ、トレーニング画像のクロッピングされた部分と高解像度セマンティックセグメンテーションマスクの対応するクロップがエッジリファインメント・ニューラルネットワークに入力される。
【００４１】
リファインド・セマンティックセグメンテーションマスクは、エッジリファインメント・ニューラルネットワークの出力として受信され得る。リファインド・セマンティックセグメンテーションマスクとグラウンドトゥルース・リファインド・セマンティックセグメンテーションマスク(Ground-Truth Refined Semantic Segmentation Mask)との間の差に少なくとも部分的に基づいて、第2の損失関数を決定することができる。たとえば、グラウンドトゥルース・リファインド・セマンティックセグメンテーションマスクは、トレーニング画像の以前に決定されたリファインド・セマンティックセグメンテーションマスクに対応し得る。第2の損失関数は、リファインド・セマンティックセグメンテーションマスクとグラウンドトゥルース・リファインド・セマンティックセグメンテーションマスクとの間の差を記述することができる。
【００４２】
いくつかの実装形態では、エッジリファインメント・ニューラルネットワークは、第2の損失関数に少なくとも部分的に基づいてトレーニングされ得る。たとえば、エッジリファインメント・ニューラルネットワークは、グラウンドトゥルース・リファインド・セマンティックセグメンテーションマスクと比較して、リファインド・セマンティックセグメンテーションマスクから誤差を逆伝播することによってトレーニングされ得る。
【００４３】
トレーニング方法は、第1の損失関数および第2の損失関数に少なくとも部分的に基づいて、画像セグメンテーションモデルの総損失関数を決定するステップをさらに含むことができる。たとえば、いくつかの実装形態では、第1の損失関数と第2の損失関数を合計することによって、総損失関数を決定することができる。次いで、総損失関数に基づいて、画像セグメンテーションモデルをトレーニングすることができる。たとえば、画像セグメンテーションモデルを介して総損失関数の誤差を逆伝播することによって、画像セグメンテーションモデルをトレーニングすることができる。
【００４４】
いくつかの実装形態では、本明細書で説明するように、第1の損失関数を使用して誤差を逆伝播することによって、セマンティックセグメンテーション・ニューラルネットワークを最初にトレーニングすることができる。許容可能なしきい値を下回る第1の損失関数を達成するようにセマンティックセグメンテーション・ニューラルネットワークがトレーニングされると、本明細書で説明したように、第2の損失関数を使用してエッジリファインメント・ニューラルネットワークをトレーニングすることができる。許容可能なしきい値を下回る第2の損失関数を達成するようにエッジリファインメント・ニューラルネットワークがトレーニングされると、本明細書で説明したように、総損失関数に少なくとも部分的に基づいて画像セグメンテーションモデルをトレーニングすることができる。
【００４５】
したがって、本開示は、高解像度画像セグメンテーションの技術的問題に対する技術的な機械学習ベースの解決策を提供する。本開示の1つの例示的な利益は、画像セグメンテーション精度/品質の向上である。特に、様々な実装形態は、他の方法によって生成されたセグメンテーションマスクと比較して、解像度が高く、および/または画像のセグメント化された領域間でリファインされたエッジ(たとえば、より明確な/明確に定義された境界)を有するリファインされたセグメンテーションマスクを提供することができる。さらに、本明細書で説明されるマルチフィーチャ・ニューラルネットワークは、シングルフィーチャニューラルネットワークと比較して、はるかに豊富な画像セグメンテーション予測機能を提供することができる。したがって、本開示の画像セグメンテーションモデルは、優れた画像セグメンテーション精度を提供することができる。
【００４６】
画像セグメンテーションの精度/品質の向上に加えて、本開示の例示的な態様は、たとえば、画像セグメンテーションモデルをエンドツーエンドでトレーニングする能力を含むいくつかの追加の技術的利益をもたらし得る。たとえば、様々な実装形態では、各ニューラルネットワークから決定された損失を含む総損失関数を使用して画像セグメンテーションモデルをトレーニングすることができ、両方のニューラルネットワークを介した誤差の逆伝播によるエンドツーエンドのトレーニングが可能になる。これによって、さらに、画像セグメンテーションモデルのリファインメントが可能になり得る。さらに、いくつかの実施形態では、本明細書で説明するように、画像セグメンテーションモデルのニューラルネットワークを個々にトレーニングするために使用することができる画像のグラウンドトゥルースバージョンを含むトレーニングデータセットをコンパイルすることができる。したがって、各ニューラルネットワークは、トレーニングデータのサブセットを使用してリファインされ得る。
【００４７】
本開示の別の例示的な技術的利益は、メモリ使用量/要件が比較的低いことである。特に、本明細書で説明するニューラルネットワークは、トレーニングデータを効果的に要約し、それをコンパクトな形式に圧縮する(たとえば、ニューラルネットワーク自体)。これによって、画像セグメンテーションアルゴリズムの記憶および実装に必要なメモリ量が大幅に低減される。さらに、本明細書で説明するニューラルネットワークは、個々のユーザのスマートフォンなどのユーザコンピューティングデバイス上で、またはネットワークアーキテクチャを介して実装することができ、ユーザの柔軟性の向上が可能になる。
【００４８】
本開示の別の例示的な技術的利益は、スケーラビリティの向上である。特に、ニューラルネットワークを介して画像をセマンティックにセグメント化することによって、画像セグメンテーションアルゴリズムを手動で開発する場合に比べて、必要な研究時間が大幅に短縮される。たとえば、手動で開発された画像セグメンテーションアルゴリズムは、様々なシナリオに対応するために手動で改良される必要がある場合がある。対照的に、本明細書で説明するニューラルネットワークを使用するには、適切なトレーニングデータ上で画像セグメンテーションモデルをトレーニングすることができ、これは、トレーニングシステムが許可した場合、大規模に行うことができる。さらに、新しいトレーニングデータが利用可能になると、画像セグメンテーションモデルを簡単に修正することができる。
【００４９】
次に図面を参照して、本開示の例示的な態様をさらに詳細に説明する。図1は、本開示の例示的な態様によるセマンティック画像セグメンテーションを実行するように構成された例示的なコンピューティングシステム100を示す。システム100は、ネットワーク180を介して通信可能に結合されたユーザコンピューティングデバイス102および機械学習コンピューティングシステム130を含むことができる。
【００５０】
ユーザコンピューティングデバイス102は、たとえば、パーソナルコンピューティングデバイス(たとえば、ラップトップまたはデスクトップ)、モバイルコンピューティングデバイス(たとえば、スマートフォンまたはタブレット)、ゲームコンソールもしくはコントローラ、ウェアラブルコンピューティングデバイス、組込みコンピューティングデバイス、または任意の他のタイプのコンピューティングデバイスなど、任意のタイプのコンピューティングデバイスとすることができる。
【００５１】
ユーザコンピューティングデバイス102は、1つまたは複数のプロセッサ112およびメモリ114を含むことができる。1つまたは複数のプロセッサ112は、任意の適切な処理デバイス(たとえば、プロセッサコア、マイクロプロセッサ、ASIC、FPGA、コントローラ、マイクロコントローラなど)とすることができ、1つのプロセッサ、または動作可能に接続されている複数のプロセッサであり得る。メモリ114は、RAM、ROM、EEPROM、EPROM、フラッシュメモリデバイス、磁気ディスクなど、およびそれらの組合せなどの1つまたは複数の非一時的コンピュータ可読記憶媒体を含むことができる。メモリ114は、ユーザコンピューティングデバイス102に動作を実行させるようにプロセッサ112によって実行されるデータ116および命令118を記憶することができる。
【００５２】
ユーザコンピューティングデバイス102は、1つもしくは複数の画像セグメンテーションモデル120を記憶または含むことができる。たとえば、1つもしくは複数の画像セグメンテーションモデル120は、ネットワーク180を介して機械学習コンピューティングシステム130から受信され、ユーザコンピューティングデバイスメモリ114に記憶され、1つもしくは複数のプロセッサ112によって使用またはそうでなければ実装され得る。いくつかの実装形態では、ユーザコンピューティングデバイス102は、画像セグメンテーションモデル120の複数の並列インスタンスを実装することができる(たとえば、複数のユーザ入力画像について並列画像セグメンテーションを実行するため)。
【００５３】
また、ユーザコンピューティングデバイス102は、ユーザ対話によってユーザ入力を受信するユーザ入力コンポーネント122も含むことができる。たとえば、ユーザ入力コンポーネント122は、ユーザ入力オブジェクト(たとえば、指またはスタイラス)のタッチに敏感なタッチセンシティブコンポーネント(たとえば、タッチセンシティブディスプレイスクリーンまたはタッチパッド)とすることができる。しかしながら、ユーザ入力コンポーネント122は、ユーザ入力を受信することができる他のコンポーネントを含むことができる。たとえば、ユーザ入力コンポーネント122は、キーボード、マウス、キーパッド、ボタン、またはユーザ入力を受信するように構成された他のコンポーネントを含むことができる。ユーザ入力コンポーネント122は、たとえば、1つまたは複数の画像セグメンテーションモデル120に入力されるべき画像を選択するために使用することができる。
【００５４】
機械学習コンピューティングシステム130は、1つまたは複数のプロセッサ132およびメモリ134を含むことができる。1つまたは複数のプロセッサ132は、任意の適切な処理デバイス(たとえば、プロセッサコア、マイクロプロセッサ、ASIC、FPGA、コントローラ、マイクロコントローラなど)とすることができ、1つのプロセッサ、または動作可能に接続されている複数のプロセッサであり得る。メモリ134は、RAM、ROM、EEPROM、EPROM、フラッシュメモリデバイス、磁気ディスクなど、およびそれらの組合せなどの1つまたは複数の非一時的コンピュータ可読記憶媒体を含むことができる。メモリ134は、機械学習コンピューティングシステム130に動作を実行させるためにプロセッサ132によって実行されるデータ136および命令138を記憶することができる。
【００５５】
いくつかの実装形態では、機械学習コンピューティングシステム130は、1つまたは複数のサーバコンピューティングデバイスを含むか、そうでなければ1つまたは複数のサーバコンピューティングデバイスによって実装され得る。機械学習コンピューティングシステム130が複数のサーバコンピューティングデバイスを含む場合、そのようなサーバコンピューティングデバイスは、シーケンシャルコンピューティングアーキテクチャ、パラレルコンピューティングアーキテクチャ、またはそれらの何らかの組合せに従って動作することができる。
【００５６】
機械学習コンピューティングシステム130は、1つまたは複数の機械学習画像セグメンテーションモデル140を記憶するか、そうでなければ含むことができる。たとえば、画像セグメンテーションモデル140は、ニューラルネットワーク(たとえば、ディープリカレントニューラルネットワーク)または他の多層非線形モデルなどの様々な機械学習モデルであるか、そうでなければそれを含むことができる。例示的な画像セグメンテーションモデル140は、図2〜図6を参照して説明される。
【００５７】
機械学習コンピューティングシステム130は、モデルトレーナー150およびトレーニングデータ152を介して画像セグメンテーションモデル140をトレーニングすることができる。いくつかの実装形態では、別個のトレーニングコンピューティングシステムは、機械学習コンピューティングシステム130から離れていてもよく、ネットワーク180を介して機械学習コンピューティングシステム130に通信可能に結合されてもよい。したがって、モデルトレーナー150は、機械学習コンピューティングシステム130とは別個であってもよく、または機械学習コンピューティングシステム130の一部であってもよい。
【００５８】
モデルトレーナー150は、たとえば後方伝播(たとえば、時間を通じたトランケートされた後方伝播)などの様々なトレーニングまたは学習技法を使用して、機械学習コンピューティングシステム130に記憶された機械学習モデル140をトレーニングすることができる。モデルトレーナー150は、トレーニングされているモデルの一般化能力を改善するために、いくつかの一般化技法(たとえば、重量減衰、ドロップアウトなど)を実行することができる。
【００５９】
特に、モデルトレーナー150は、トレーニングデータ152のセットに基づいて画像セグメンテーションモデル140をトレーニングすることができる。トレーニングデータ152は、グラウンドトゥルース画像データ(たとえば、トレーニング画像に対応するグラウンドトゥルース・セマンティックセグメンテーションマスク)を含むことができる。いくつかの実装形態では、モデルトレーナー150は、ユーザコンピューティングデバイス102上で実装されるか、そうでなければそれに含まれ得る。
【００６０】
モデルトレーナー150は、所望の機能を提供するために利用されるコンピュータロジックを含むことができる。モデルトレーナー150は、汎用プロセッサを制御するハードウェア、ファームウェア、および/またはソフトウェアで実装することができる。たとえば、いくつかの実装形態では、モデルトレーナー150は、ストレージデバイスに記憶され、メモリにロードされ、1つまたは複数のプロセッサによって実行されるプログラムファイルを含む。他の実装形態では、モデルトレーナー150は、RAMハードディスクまたは光学もしくは磁気媒体など有形のコンピュータ可読記憶媒体に記憶されたコンピュータ実行可能命令の1つまたは複数のセットを含む。
【００６１】
ネットワーク180は、ローカルエリアネットワーク(たとえば、イントラネット)、ワイドエリアネットワーク(たとえば、インターネット)、またはそれらの何らかの組合せなど任意のタイプの通信ネットワークとすることができ、任意の数のワイヤードまたはワイヤレスリンクを含むことができる。一般に、ネットワーク180を介した通信は、多種多様な通信プロトコル(たとえば、TCP/IP、HTTP、SMTP、FTPなど)、符号化またはフォーマット(たとえば、HTML、XML)、および/または保護方式(たとえば、VPN、セキュアHTTP、SSL)を使用して、任意のタイプのワイヤードおよび/またはワイヤレス接続を介して行うことができる。
【００６２】
いくつかの実装形態では、ユーザコンピューティングデバイス102のユーザ入力コンポーネント122を介してユーザによって画像を選択することができ、その画像を、次いで、ネットワーク180を介して機械学習コンピューティングシステム130に提供することができる。そのような実装形態では、本明細書で説明するように、1つまたは複数の画像セグメンテーションモデル140を使用して画像セグメンテーションを実行することができ、対応するセグメント化画像を、ネットワーク180を介してユーザコンピューティングデバイス102に提供することができる。
【００６３】
図1は、本開示を実施するために使用することができる1つの例示的なコンピューティングシステム100を示す。他のコンピューティングシステムも使用することができる。たとえば、いくつかの実装形態では、ユーザコンピューティングデバイスは、モデルトレーナーとトレーニングデータセットとを含み得る。そのような実装形態では、画像セグメンテーションモデルは、トレーニングされ、ユーザコンピューティングデバイスでローカルに使用され得る。
【００６４】
次に図2を参照すると、本開示の例示的な態様による例示的な画像セグメンテーションモデル200のブロック図が示されている。画像セグメンテーションモデル200は、互いに接続された第1のニューラルネットワーク210および第2のニューラルネットワーク220を含むことができる。第1のニューラルネットワーク210は、画像230を受信し、画像230のセマンティックセグメンテーションマスク240を出力するように構成されたセマンティックセグメンテーション・ニューラルネットワーク210とすることができる。第2のニューラルネットワーク220は、画像230の少なくとも一部およびセマンティックセグメンテーションマスク240の少なくとも一部を受信し、リファインド・セマンティックセグメンテーションマスク250を出力するように構成されたエッジリファインメント・ニューラルネットワーク220であり得る。
【００６５】
セマンティックセグメンテーション・ニューラルネットワーク210は、1つまたは複数の畳み込み層を含むCNNとすることができる。セマンティックセグメンテーションマスク240は、画像230を、たとえば前景および背景、または他のセマンティックセグメントおよび/もしくは深層など、複数のセグメントにセグメント化または分割することができる。いくつかの実装形態では、セマンティックセグメンテーションによって決定されたセマンティックセグメンテーションマスク240は、ピクセルごとに16の特徴の値を含むことができ、またはそうでなければ、16のチャネルに従ってセグメント化され得る。したがって、一例として、セマンティックセグメンテーション・ニューラルネットワーク220の出力層の深さは16とすることができる。複数の特徴を使用することによって、シングルフィーチャのセマンティックセグメンテーションマスク240よりも正確にリファインド・セマンティックセグメンテーションマスク250を予測することができ得る。たとえば、髪、肌、衣服、身体の特徴などに関する情報を、セマンティックセグメンテーションネットワーク210からエッジリファインメントニューネットワーク220に渡すことができる。他の実装形態では、セマンティックセグメンテーションマスク240は2つまたは3つのチャネルを有することができる。
【００６６】
エッジリファインメント・ニューラルネットワーク220は、画像230の少なくとも一部、およびセマンティックセグメンテーションマスク240の少なくとも一部を受信し、それに応答して、リファインド・セマンティックセグメンテーションマスク250を出力するようにトレーニングされ得る。たとえば、エッジリファインメント・ニューラルネットワーク220は、1つまたは複数の畳み込み層を含むCNNとすることができる。リファインド・セマンティックセグメンテーションマスク250は、セマンティックセグメンテーションマスク240と比較して、たとえば、より高い解像度、より明確に定義された境界、より正確な境界、または他のリファインメントを有することによってリファインされ得る。
【００６７】
次に図3を参照すると、本開示の追加の態様による例示的な画像セグメンテーションモデル300が示されている。図示のように、低解像度バージョンの画像330を生成するために、高解像度バージョンの画像310をダウンスケーリングコンポーネント320に入力することができる。たとえば、ダウンスケーリングコンポーネント320は、最近隣補間法、双線形および双三次アルゴリズム、SincおよびLaszosリサンプリング、フーリエ変換法、エッジ指向補間、ベクトル化、深層畳み込みニューラルネットワーク、または他のダウンスケーリング技法など、任意の数の技法を実行して高解像度バージョンの画像310をダウンスケールすることができる。
【００６８】
次いで、ダウンスケーリングコンポーネント320は、セマンティックセグメンテーション・ニューラルネットワーク340に提供することができる低解像度バージョンの画像330を提供することができる。一例として、高解像度バージョンの画像310は、第1の解像度(たとえば、2048×2048ピクセル)の画像であり得、一方、低解像度バージョンの画像330は、第2のより低い解像度(たとえば、256×256ピクセル)であり得る。
【００６９】
セマンティックセグメンテーション・ニューラルネットワークは、たとえば、図2に示される同じまたは類似のセマンティックセグメンテーション・ニューラルネットワーク210であり得る。次いで、セマンティックセグメンテーション・ニューラルネットワーク340は、低解像度セマンティックセグメンテーションマスク350を出力することができる。低解像度セマンティックセグメンテーションマスク350は、たとえば、低解像度バージョンの画像330と同じ解像度とすることができる。高解像度バージョンの画像310を最初に低解像度バージョンの画像330にダウンスケーリングし、低解像度バージョンの画像330をセマンティックセグメンテーション・ニューラルネットワーク340に提供することによって提供される利点は、低解像度セマンティックセグメンテーションマスク350を決定する計算集約性が、セマンティックセグメンテーション・ニューラルネットワーク340に高解像度バージョンの画像310を直接入力するよりも大幅に少なくなり得る。
【００７０】
次いで、低解像度セマンティックセグメンテーションマスク350をアップスケーリングコンポーネント360に提供して、高解像度セマンティックセグメンテーションマスク370を生成することができる。高解像度セマンティックセグメンテーションマスク370は、たとえば、高解像度バージョンの画像310と同じ解像度とすることができる。アップスケーリングコンポーネント360は、ダウンスケーリングコンポーネント320によって画像をダウンスケールするために使用される任意の技法の逆など、低解像度セマンティックセグメンテーションマスク350を高解像度セマンティックセグメンテーションマスク370にアップスケールするための任意の数の技法を実行することができる。
【００７１】
次いで、高解像度セマンティックセグメンテーションマスク370および高解像度バージョンの画像310の少なくとも一部をエッジリファインメント・ニューラルネットワーク380に提供することができる。エッジリファインメント・ニューラルネットワーク380は、たとえば、図2に示される同じまたは類似のエッジリファインメント・ニューラルネットワーク220に対応し得る。次いで、エッジリファインメント・ニューラルネットワーク380は、リファインド・セマンティックセグメンテーションマスク390を出力することができる。リファインド・セマンティックセグメンテーションマスク390は、たとえば、高解像度セマンティックセグメンテーションマスク370および/または低解像度セマンティックセグメンテーションマスク350と比較して、より高い解像度、より明確に定義された境界、より正確な境界、または他のリファインメントを有することによってリファインされ得る。
【００７２】
次に図4を参照すると、本開示の例示的な態様によるエッジリファインメント・ニューラルネットワーク400のブロック図が示されている。エッジリファインメント・ニューラルネットワーク400は、たとえば、図2に示されるエッジリファインメント・ニューラルネットワークおよび/または図3に示されるエッジリファインメント・ニューラルネットワーク380に対応し得る。図示のように、画像410および対応するセマンティックセグメンテーションマスク420が、エッジリファインメント・ニューラルネットワーク400に入力され得る。エッジリファインメント・ニューラルネットワークは、2つのヘッドを含むことができ、第1のヘッドは画像エンコーダネットワーク430に対応し、第2のヘッドはセマンティックセグメンテーション・マスクエンコーダネットワーク440に対応する。たとえば、エッジリファインメント・ニューラルネットワークは、第1のエンコーダネットワーク430および第2のエンコーダネットワーク440を含むことができる。各エンコーダネットワーク430および440は、たとえば、それぞれ画像410およびセマンティックセグメンテーションマスク420を符号化するように構成された1つまたは複数の畳み込み層を含むことができる。画像410(またはその一部)を、画像を第1の符号化された出力に符号化することができる第1のエンコーダネットワーク430に提供することができる。同様に、セマンティックセグメンテーションマスク420(またはその一部)を第2のエンコーダネットワーク440に提供して、セマンティックセグメンテーションマスク420を第2の符号化された出力に符号化することができる。次いで、第1の符号化された出力と第2の符号化された出力を連結するように構成された連結コンポーネント(concatenation component)450に、第1の符号化された出力および第2の符号化された出力を提供することができる。連結コンポーネント450は、第1の符号化された出力と第2の符号化された出力を連結して、連結された符号化された出力にすることができる。たとえば、エンコーダネットワークの各々は、それぞれ画像410またはセマンティックセグメンテーションマスク420の解像度を下げるように構成され得、2つのエンコーダネットワーク430および440の符号
化された出力は、各々の解像度がそれぞれ最低のときに連結され得る。
【００７３】
次いで、連結された符号化された出力は、エッジリファインメント・ニューラルネットワーク400のデコーダネットワーク460に提供され得る。たとえば、デコーダネットワーク460は、連結された符号化された出力の解像度が画像410および/またはセマンティックセグメンテーションマスク420の元の入力解像度に達するまで、連結された符号化された出力を拡張するように構成された1つまたは複数の畳み込み層を含むことができる。いくつかの実装形態では、デコーダネットワーク460は、リファインド・セマンティックセグメンテーションマスク470を抽出するように構成されたエッジ推論層を含むことができる。リファインド・セマンティックセグメンテーションマスク470は、エッジリファインメント・ニューラルネットワーク400のデコーダネットワーク460の出力として受信され得る。リファインド・セマンティックセグメンテーションマスク470は、たとえば、セマンティックセグメンテーション・ニューラルネットワークから受信されたセマンティックセグメンテーションマスク420よりも高い解像度とすることができる。さらに、いくつかの実装形態では、エッジリファインメント・ニューラルネットワークによって生成されたリファインド・セマンティックセグメンテーションマスク420は、16の特徴またはチャネルを含むことができる。
【００７４】
いくつかの実装形態では、リファインド・セマンティックセグメンテーションマスク470がエッジリファインメント・ニューラルネットワーク400によって決定されると、リファインド・セマンティックセグメンテーションマスク470に少なくとも部分的に基づいて、画像の少なくとも一部をぼかすことができる。たとえば、リファインド・セマンティックセグメンテーションマスク470は、画像410の前景にいる人物/オブジェクトを画像410の背景からセグメント化し得る。いくつかの実装形態では、画像410の背景をぼかして、ぼかし効果(たとえば、「ぼけ」効果など)を生成することができる。他の深層(たとえば、ユーザが選択した深さに対応する層)を、背景に加えて、またはその代替として、ぼかすことができる。
【００７５】
次に図5を参照すると、本開示の例示的な態様による例示的なエッジリファインメント・ニューラルネットワーク500が示されている。図5に示される例示的なエッジリファインメント・ニューラルネットワーク500は、それぞれ図2〜図4に示されるエッジリファインメント・ニューラルネットワーク220、380、および400と同じまたは類似し得る。
【００７６】
図示のように、画像510および対応するセマンティックセグメンテーションマスク520が、それぞれの第1のエンコーダネットワーク530および第2のエンコーダネットワーク540にそれぞれ入力され得る。各エンコーダネットワーク530、540は、それぞれ画像510またはセマンティックセグメンテーションマスク520を符号化するように構成された複数の畳み込み層を含むことができる。
【００７７】
符号化された画像および符号化されたセマンティックセグメンテーションマスクは、連結コンポーネント550によって連結され得、連結コンポーネント550の連結された出力は、デコーダネットワーク560に提供され得る。デコーダネットワーク560は、連結コンポーネント550から受信された連結された出力を復号するように構成され得る。デコーダネットワーク560は、エッジ推論層570を含む複数の畳み込み層を含むことができる。いくつかの実装形態では、リファインド・セマンティックセグメンテーションマスク580は、デコーダネットワーク560の出力から、より具体的には、エッジ推論層570の出力として受信され得る。
【００７８】
次に図6を参照すると、例示的な画像セグメンテーションモデルトレーニング構成600のブロック図が示されている。本開示の例示的な態様による画像セグメンテーションモデルによって提供される利点は、誤差の逆伝播などによって、画像セグメンテーションモデルをエンドツーエンドでトレーニングする能力である。
【００７９】
図示のように、高解像度バージョンの画像610などのトレーニング画像を使用して、画像セグメンテーションモデルをトレーニングすることができる。高解像度バージョンの画像610は、トレーニングデータセットの一部であるトレーニング画像であり得、これは、本明細書でより詳細に説明するように、グラウンドトゥルース・セマンティックセグメンテーションマスク645およびグラウンドトゥルース・リファインド・セマンティックセグメンテーションマスク675を含み得る。図示のように、トレーニング画像は、高解像度バージョンの画像610であり得る。いくつかの実装形態では、トレーニング画像は、低解像度バージョンの画像とすることができる。
【００８０】
低解像度バージョンの画像620を生成するために、高解像度バージョンの画像610をダウンスケーリングコンポーネント615によってダウンスケールすることができる。ダウンスケーリングコンポーネント615は、たとえば、図3に示される同じまたは類似のダウンスケーリングコンポーネント320であり得る。
【００８１】
低解像度バージョンの画像620は、セマンティックセグメンテーション・ニューラルネットワーク625に提供され得る。セマンティックセグメンテーション・ニューラルネットワーク625は、それぞれ図2および図3に示されるセマンティックセグメンテーション・ニューラルネットワーク210および340と同じまたは類似のセマンティックセグメンテーション・ニューラルネットワークであり得る。セマンティックセグメンテーション・ニューラルネットワーク625は、低解像度セマンティックセグメンテーションマスク630を出力することができる。いくつかの実装形態では、高解像度バージョンの画像をセマンティックセグメンテーション・ニューラルネットワーク625に入力することができ、これは、対応する高解像度セマンティックセグメンテーションマスクを出力することができる。いくつかの実装形態では、低解像度セマンティックセグメンテーションマスク630は、たとえば16のチャネルなど複数のチャネルを含むことができる。
【００８２】
いくつかの実装形態では、低解像度セマンティックセグメンテーションマスク630のシングルチャネルを抽出することができる。たとえば、いくつかの実装形態では、低解像度セマンティックセグメンテーションマスク630は、16のチャネルなど複数のチャネルを含むことができる。いくつかの実装形態では、セマンティックセグメンテーション・ニューラルネットワーク625によって、低解像度セマンティックセグメンテーションマスク630のシングルチャネルを抽出することができる。たとえば、セマンティックセグメンテーション・ニューラルネットワーク625は、低解像度セマンティックセグメンテーションマスク630からシングルチャネルを抽出するように構成された推論層を含むことができる。
【００８３】
いくつかの実装形態では、低解像度セマンティックセグメンテーションマスク630のシングルチャネルを、グラウンドトゥルース・セマンティックセグメンテーションマスク645と比較することができる。たとえば、グラウンドトゥルース・セマンティックセグメンテーションマスク645は、トレーニングデータセットの一部としてコンパイルされた高解像度バージョンの画像610のグラウンドトゥルース・セマンティックセグメンテーションマスク645に対応し得、低解像度セマンティックセグメンテーションマスクと同じ解像度であり得る。グラウンドトゥルース・セマンティックセグメンテーションマスク645は、画像610に基づくセマンティックセグメンテーション・ニューラルネットワークの所望の出力であり得る。第1の損失関数650は、低解像度セマンティックセグメンテーションマスク630(またはそのシングルチャネル)とグラウンドトゥルース・セマンティックセグメンテーションマスク645との間の差に少なくとも部分的に基づいて決定され得る。いくつかの実装形態では、低解像度セマンティックセグメンテーションマスクのチャネルごとにシングルチャネルを抽出することができ、各チャネルを、対応するグラウンドトゥルース・セマンティックセグメンテーションマスクと比較して、そのチャネルの第1の損失関数を決定することができる。いくつかの実装形態では、セマンティックセグメンテーションマスク630は、複数のチャネルを含むことができ、セマンティックセグメンテーションマスク630を、対応するグラウンドトゥルース・セマンティックセグメンテーションマスク645と比較して、第1の損失関数を決定することができる。
【００８４】
いくつかの実装形態では、第1の損失関数650を使用して、セマンティックセグメンテーション・ニューラルネットワーク625をトレーニングすることができる。たとえば、セマンティックセグメンテーション・ニューラルネットワーク625は、グラウンドトゥルース・セマンティックセグメンテーションマスク645と比較して、低解像度セマンティックセグメンテーションマスク630(またはそのシングルチャネル)から誤差を逆伝播することによってトレーニングされ得る。
【００８５】
低解像度セマンティックセグメンテーションマスク630をアップスケーリングコンポーネント655に入力して、高解像度セマンティックセグメンテーションマスク660を決定することができる。アップスケーリングコンポーネント655は、たとえば、図3に示されるアップスケーリングコンポーネント360に対応し得る。いくつかの実装形態では、アップスケーリングコンポーネント655は、低解像度セマンティックセグメンテーションマスク630を、高解像度バージョンの画像610と同じ解像度の高解像度セマンティックセグメンテーションマスク660にアップスケールすることができる。
【００８６】
図示のように、高解像度バージョンの画像610(またはその少なくとも一部)および高解像度セマンティックセグメンテーションマスク660(または少なくともその一部)が、エッジリファインメント・ニューラルネットワーク665に入力され得る。エッジリファインメント・ニューラルネットワーク665は、それぞれ図2〜図5に示されるように、エッジリファインメント・ニューラルネットワーク220、380、400、および500と同じまたは類似し得る。いくつかの実装形態では、高解像度バージョンの画像610をランダムにクロッピングすることができ、高解像度セマンティックセグメンテーションマスク660の対応するクロップも同様にクロッピングすることができ、2つのクロッピングされた部分は、エッジリファインメント・ニューラルネットワーク665に提供される。
【００８７】
リファインド・セマンティックセグメンテーションマスク670は、エッジリファインメント・ニューラルネットワーク665からの出力として受信され得る。次いで、リファインド・セマンティックセグメンテーションマスク670を、グラウンドトゥルース・リファインド・セマンティックセグメンテーションマスク675と比較することができる。たとえば、グラウンドトゥルース・リファインド・セマンティックセグメンテーションマスク675は、トレーニングデータセットの一部としてコンパイルされた高解像度バージョンの画像610のグラウンドトゥルース・リファインド・セマンティックセグメンテーションマスク675に対応し得る。グラウンドトゥルース・リファインド・セマンティックセグメンテーションマスク675は、高解像度バージョンの画像610に対応するエッジリファインメント・ニューラルネットワーク665の所望の出力であり得る。
【００８８】
いくつかの実装形態では、リファインド・セマンティックセグメンテーションマスク670とグラウンドトゥルース・リファインド・セマンティックセグメンテーションマスク675との間の差に少なくとも部分的に基づいて、第2の損失関数680を決定することができる。いくつかの実装形態では、第2の損失関数680を使用して、エッジリファインメント・ニューラルネットワーク665をトレーニングすることができる。たとえば、エッジリファインメント・ニューラルネットワーク665は、グラウンドトゥルース・リファインド・セマンティックセグメンテーションマスク675と比較して、リファインド・セマンティックセグメンテーションマスク670から誤差を逆伝播することによってトレーニングされ得る。
【００８９】
いくつかの実装形態では、第1の損失関数650および第2の損失関数680に少なくとも部分的に基づいて、総損失関数685を決定することができる。たとえば、いくつかの実装形態では、第1の損失関数650と第2の損失関数680を合計することによって、総損失関数685を決定することができる。
【００９０】
いくつかの実装形態では、画像セグメンテーションモデルは、総損失関数685に少なくとも部分的に基づいてトレーニングされ得る。たとえば、画像セグメンテーションモデルは、画像セグメンテーションモデルを介して総損失関数685に基づいて誤差を逆伝播することによってトレーニングされ得る。このようにして、画像セグメンテーションモデルをエンドツーエンドでトレーニングすることができる。
【００９１】
いくつかの実装形態では、最初に第1の損失関数650を決定し、第1の損失関数650に少なくとも部分的に基づいてセマンティックセグメンテーション・ニューラルネットワーク630をトレーニングすることによって、画像セグメンテーションモデルをトレーニングすることができる。許容可能なしきい値を下回る第1の損失関数650を達成するようにセマンティックセグメンテーション・ニューラルネットワーク630がトレーニングされると、第2の損失関数680に少なくとも部分的に基づいて、エッジリファインメント・ニューラルネットワーク665をトレーニングすることができる。許容可能なしきい値を下回る第2の損失関数680を達成するようにエッジリファインメント・ニューラルネットワーク665がトレーニングされると、本明細書で説明したように、総損失関数685に少なくとも部分的に基づいて画像セグメンテーションモデルをトレーニングすることができる。
【００９２】
次に図7を参照すると、本開示の例示的な態様による、リファインド・セマンティックセグメンテーションマスクを決定するための例示的な方法(700)のフローチャート図が示されている。図7は、例示および議論の目的で特定の順序で実行されるステップを示しているが、本開示の方法は、特に例示された順序または配置に限定されない。方法(700)の様々なステップは、本開示の範囲から逸脱することなく、様々な方法で省略され、再配置され、結合され、および/または適合させることができる。
【００９３】
(702)で、方法(700)は、画像を取得するステップを含むことができる。たとえば、いくつかの実装形態では、ユーザは、ユーザコンピューティングデバイス102を使用して、画像セグメンテーションモデル120に提供するための画像を選択することができる。いくつかの実装形態では、画像セグメンテーションモデル120を、ユーザコンピューティングデバイス102に記憶することができ、他の実装形態では、画像セグメンテーションモデル140を、ユーザコンピューティングデバイス102から離れたコンピューティングシステム130に記憶することができる。
【００９４】
(704)で、方法(700)は、セマンティックセグメンテーション・ニューラルネットワークに画像を入力するステップを含むことができる。たとえば、画像セグメンテーションモデル200は、第1のニューラルネットワーク210および第2のニューラルネットワーク220を含むことができる。第1のニューラルネットワーク210は、画像230のセマンティックセグメンテーションマスク240を決定するように構成されたセマンティックセグメンテーション・ニューラルネットワーク210であり得る。画像230を、セマンティックセグメンテーション・ニューラルネットワーク210に入力することができる。
【００９５】
(706)で、方法(700)は、セマンティックセグメンテーション・ニューラルネットワークの出力として、セマンティックセグメンテーションマスクを受信するステップを含むことができる。たとえば、セマンティックセグメンテーション・ニューラルネットワーク210は、画像230のセマンティックセグメンテーションマスク240を出力するように構成され得る。
【００９６】
(708)で、方法(700)は、画像の少なくとも一部およびセマンティックセグメンテーションマスクの少なくとも一部をエッジリファインメント・ニューラルネットワークに入力するステップを含むことができる。たとえば、画像セグメンテーションモデル200は、エッジリファインメント・ニューラルネットワーク220であり得る第2のニューラルネットワーク220を含むことができる。画像230(またはその少なくとも一部)およびセマンティックセグメンテーションマスク240(またはその少なくとも一部)を、エッジリファインメント・ニューラルネットワーク220に入力することができる。
【００９７】
(710)で、方法(700)は、エッジリファインメント・ニューラルネットワークの出力として、リファインド・セマンティックセグメンテーションマスクを受信するステップを含むことができる。たとえば、エッジリファインメント・ニューラルネットワーク220は、画像230およびセマンティックセグメンテーションマスク240に少なくとも部分的に基づいて、リファインド・セマンティックセグメンテーションマスク250を出力するように構成され得る。リファインド・セマンティックセグメンテーションマスク250は、エッジリファインメント・ニューラルネットワーク220の出力として受信され得る。リファインド・セマンティックセグメンテーションマスク250は、セマンティックセグメンテーションマスク240と比較して、たとえば、より高い解像度、より明確に定義された境界、より正確な境界、または他のリファインメントを有することによってリファインされ得る。
【００９８】
いくつかの実装形態では、リファインド・セマンティックセグメンテーションマスクに少なくとも部分的に基づいて、画像の少なくとも一部をぼかすことができる。たとえば、リファインド・セマンティックセグメンテーションマスクは、画像の前景にあるオブジェクトと画像の背景との間の境界を描くことができる。いくつかの実装形態では、画像の背景部分をぼかすことができ、一方、画像の前景部分は元の画像のように残すことができる。
【００９９】
このようにして、第1のニューラルネットワークおよび第2のニューラルネットワークを含む画像セグメンテーションモデルを使用して、画像のリファインド・セマンティックセグメンテーションマスクを決定することができる。
【０１００】
次に図8を参照すると、本開示の例示的な態様による、リファインド・セマンティックセグメンテーションマスクを決定するための例示的な方法(800)のフローチャート図が示されている。図8は、例示および議論の目的で特定の順序で実行されるステップを示しているが、本開示の方法は、特に例示された順序または配置に限定されない。方法(800)の様々なステップは、本開示の範囲から逸脱することなく、様々な方法で省略され、再配置され、結合され、および/または適合させることができる。
【０１０１】
(802)で、方法(800)は、高解像度画像を取得するステップを含むことができる。たとえば、いくつかの実装形態では、ユーザは、ユーザコンピューティングデバイス102を使用して、画像セグメンテーションモデル120に提供するための画像を選択することができる。いくつかの実装形態では、画像セグメンテーションモデル120を、ユーザコンピューティングデバイス102に記憶することができ、他の実装形態では、画像セグメンテーションモデル140を、ユーザコンピューティングデバイス102から離れたコンピューティングシステム130に記憶することができる。画像は、たとえば、第2の解像度よりも高い第1の解像度の画像であり得る。
【０１０２】
(804)で、方法(800)は、高解像度画像を低解像度画像にダウンスケールするステップを含むことができる。たとえば、高解像度画像を、第1の解像度から第2の解像度にダウンスケールすることができ、第2の解像度は、第1の解像度よりも低い解像度である。
【０１０３】
(806)で、方法(800)は、セマンティックセグメンテーション・ニューラルネットワークに低解像度画像を入力するステップを含むことができる。たとえば、画像セグメンテーションモデルは、第1のニューラルネットワークおよび第2のニューラルネットワークを含むことができる。第1のニューラルネットワークは、画像を受信し、画像に基づいてセマンティックセグメンテーションを出力するように構成されたセマンティックセグメンテーション・ニューラルネットワークとすることができる。
【０１０４】
(808)で、方法(800)は、セマンティックセグメンテーション・ニューラルネットワークの出力として、低解像度セマンティックセグメンテーションマスクを受信するステップを含むことができる。たとえば、低解像度セマンティックセグメンテーションマスクは、セマンティックセグメンテーション・ニューラルネットワークに提供された低解像度バージョンの画像と同じ解像度とすることができる。
【０１０５】
(810)で、方法(800)は、低解像度セマンティックセグメンテーションマスクを高解像度セマンティックセグメンテーションマスクにアップスケールするステップを含むことができる。たとえば、低解像度セマンティックセグメンテーションマスクを、第2の解像度から第1の解像度にアップスケールすることができる。
【０１０６】
(812)で、方法(800)は、高解像度画像(またはその一部)を第1のエンコーダネットワークに入力し、高解像度セマンティックセグメンテーションマスク(またはその一部)を第2のエンコーダネットワークに入力するステップを含むことができる。たとえば、画像セグメンテーションモデルは、エッジリファインメント・ニューラルネットワークであり得る第2のニューラルネットワークも含むことができる。エッジリファインメント・ニューラルネットワークは、第1のエンコーダネットワークおよび第2のエンコーダネットワークを含むことができる。画像(またはその一部)を、第1のエンコーダネットワークに入力することができ、セマンティックセグメンテーションマスク(またはその一部)を、第2のエンコーダネットワークに入力することができる。各エンコーダネットワークは、1つまたは複数の畳み込み層を使用してそれぞれの入力を符号化するように構成することができ、各畳み込み層は、符号化機能を実行する。
【０１０７】
(814)で、方法(800)は、第1のエンコーダネットワークから第1の符号化された出力と、第2のエンコーダネットワークから第2の符号化された出力とを受信するステップを含むことができる。たとえば、第1のエンコーダネットワークは、高解像度画像(またはその一部)を受信し、画像を第1の符号化された出力に符号化することができる。同様に、第2のエンコーダネットワークは、セマンティックセグメンテーションマスク(またはその一部)を受信し、セマンティックセグメンテーションマスクを第2の符号化された出力に符号化することができる。
【０１０８】
(816)で、方法(800)は、第1の符号化された出力と第2の符号化された出力を連結して、連結された符号化された出力にするステップを含むことができる。たとえば、第1のエンコーダネットワークおよび第2のエンコーダネットワークの各々がそれぞれ画像およびセマンティックセグメンテーションマスクを符号化した後、第1および第2の符号化された出力が連結され得る。いくつかの実装形態では、各エンコーダネットワークは、各畳み込み層でのそれぞれの入力の解像度を下げるように構成され得る。いくつかの実装形態では、第1の符号化された出力と第2の符号化された出力は、それぞれの解像度が最低のときに連結され得る。
【０１０９】
(818)で、方法(800)は、連結された符号化された出力をデコーダネットワークに提供するステップを含むことができる。たとえば、エッジリファインメント・ニューラルネットワークは、連結された符号化された出力を復号するように構成されたデコーダネットワークを含むことができる。連結された符号化された出力は、デコーダネットワークが連結された符号化された出力を復号できるようにするために、デコーダネットワークに提供され得る。
【０１１０】
(820)で、方法(800)は、デコーダネットワークの出力として、リファインド・セマンティックセグメンテーションマスクを受信するステップを含むことができる。たとえば、デコーダネットワークは、1つまたは複数の畳み込み層を使用して連結された符号化された出力を復号するように構成することができ、各畳み込み層は、復号機能を実行する。いくつかの実装形態では、デコーダネットワークの各畳み込み層は、それぞれ、連結された符号化された出力の解像度を高めることができる。いくつかの実装形態では、連結された符号化された出力が最大および/または元の解像度に復号されると、エッジ推論層を使用して、リファインド・セマンティックセグメンテーションマスクを抽出することができる。リファインド・セマンティックセグメンテーションマスクは、エッジリファインメント・ニューラルネットワークの出力として受信され得る。
【０１１１】
次に図9を参照すると、本開示の例示的な態様による、画像セグメンテーションモデルをトレーニングするための例示的な方法(900)のフローチャート図が示されている。図9は、例示および議論の目的で特定の順序で実行されるステップを示しているが、本開示の方法は、特に例示された順序または配置に限定されない。方法(900)の様々なステップは、本開示の範囲から逸脱することなく、様々な方法で省略され、再配置され、結合され、および/または適合させることができる。
【０１１２】
(902)で、方法(900)は、トレーニング画像を取得するステップを含むことができる。たとえば、トレーニング画像は、画像セグメンテーションモデルのトレーニングに使用されるトレーニングデータセットの一部とすることができる。各トレーニング画像は、1つまたは複数の対応するグラウンドトゥルース・セマンティックセグメンテーションマスクおよび/または1つもしくは複数の対応するグラウンドトゥルース・リファインド・セマンティックセグメンテーションマスクを有することができる。トレーニング画像は、たとえば、トレーニングデータセットにアクセスすることによって取得することができる。
【０１１３】
(904)で、方法(900)は、トレーニング画像を画像セグメンテーションモデルに入力するステップを含むことができる。たとえば、画像セグメンテーションモデルは、第1のニューラルネットワークおよび第2のニューラルネットワークを含むことができる。第1のニューラルネットワークは、たとえば、セマンティックセグメンテーション・ニューラルネットワークであり得、第2のニューラルネットワークは、たとえば、エッジリファインメント・ニューラルネットワークであり得る。セマンティックセグメンテーションマスクを生成するために、トレーニング画像をセマンティックセグメンテーション・ニューラルネットワークに入力することができる。画像(またはその少なくとも一部)、およびセマンティックセグメンテーションマスク(またはその少なくとも一部)は、エッジリファインメント・ニューラルネットワークに入力され得る。次いで、エッジリファインメント・ニューラルネットワークは、リファインド・セマンティックセグメンテーションマスクを提供することができる。
【０１１４】
いくつかの実装形態では、トレーニング画像は高解像度トレーニング画像とすることができる。いくつかの実装形態では、高解像度のトレーニング画像を低解像度のトレーニング画像にダウンスケールすることができ、低解像度のトレーニング画像をセマンティックセグメンテーション・ニューラルネットワークに入力することができる。
【０１１５】
(906)で、方法(900)は、セマンティックセグメンテーション・ニューラルネットワークの第1の損失関数を決定するステップを含むことができる。たとえば、トレーニング画像をセマンティックセグメンテーション・ニューラルネットワークに入力し、セマンティックセグメンテーションマスクをセマンティックセグメンテーション・ニューラルネットワークの出力として受信することができる。たとえば、いくつかの実装形態では、セマンティックセグメンテーションマスクは、複数のチャネルを含むことができ、セマンティックセグメンテーションマスクのシングルチャネルを抽出することができる。たとえば、いくつかの実装形態では、セマンティックセグメンテーション・ニューラルネットワークの推論層を使用して、セマンティックセグメンテーションマスクのシングルチャネルを抽出することができる。第1の損失関数は、次いで、セマンティックセグメンテーションマスク(またはそのシングルチャネル)とグラウンドトゥルース・セマンティックセグメンテーションマスクとの間の差に少なくとも部分的に基づいて決定され得る。たとえば、セマンティックセグメンテーションマスクをグラウンドトゥルース・セマンティックセグメンテーションマスクと比較し、セマンティックセグメンテーションマスクとグラウンドトゥルース・セマンティックセグメンテーションマスクとの間の差を記述する第1の損失関数を決定することができる。
【０１１６】
次いで、いくつかの実装形態では、セマンティックセグメンテーション・ニューラルネットワークは、第1の損失関数に少なくとも部分的に基づいてトレーニングされ得る。たとえば、セマンティックセグメンテーション・ニューラルネットワークは、第1の損失関数に基づいて誤差を逆伝播することによってトレーニングされ得る。
【０１１７】
(908)で、方法(900)は、エッジリファインメント・ニューラルネットワークの第2の損失関数を決定するステップを含むことができる。たとえば、トレーニング画像(またはその少なくとも一部)、およびセマンティックセグメンテーションマスク(または少なくともその一部)をエッジリファインメント・ニューラルネットワークに入力して、リファインド・セマンティックセグメンテーションマスクを決定することができる。リファインド・セマンティックセグメンテーションマスクは、エッジリファインメント・ニューラルネットワークの出力として受信され得る。リファインド・セマンティックセグメンテーションマスクとグラウンドトゥルース・リファインド・セマンティックセグメンテーションマスクとの間の差に少なくとも部分的に基づいて、第2の損失関数を決定することができる。たとえば、リファインド・セマンティックセグメンテーションマスクをグラウンドトゥルース・リファインド・セマンティックセグメンテーションマスクと比較し、リファインド・セマンティックセグメンテーションマスクとグラウンドトゥルース・リファインド・セマンティックセグメンテーションマスクとの間の差を記述する第2の損失関数を決定することができる。
【０１１８】
いくつかの実装形態では、次いで、エッジリファインメント・ニューラルネットワークは、第2の損失関数に少なくとも部分的に基づいてトレーニングされ得る。たとえば、エッジリファインメント・ニューラルネットワークは、第2の損失関数に基づいて誤差を逆伝播することによってトレーニングされ得る。
【０１１９】
いくつかの実装形態では、セマンティックセグメンテーション・ニューラルネットワークの出力として受信されたセマンティックセグメンテーションマスクは、低解像度セマンティックセグメンテーションマスクである場合がある。いくつかの実装形態では、高解像度トレーニング画像の少なくとも一部をエッジリファインメント・ニューラルネットワークに入力することができ、低解像度セマンティックセグメンテーションマスクを高解像度セマンティックセグメンテーションマスクにアップスケールすることができ、高解像度セマンティックセグメンテーションマスクの少なくとも一部を、エッジリファインメント・ニューラルネットワークに入力することができる。
【０１２０】
(910)において、方法(900)は、第1の損失関数および第2の損失関数に少なくとも部分的に基づいて総損失関数を決定するステップをさらに含むことができる。たとえば、いくつかの実装形態では、第1の損失関数と第2の損失関数を合計することによって、総損失関数を決定することができる。総損失関数は、画像セグメンテーションモデルの総損失を記述することができる。
【０１２１】
(912)において、方法(900)は、総損失関数に少なくとも部分的に基づいて画像セグメンテーションモデルをトレーニングするステップを含むことができる。たとえば、画像セグメンテーションモデルは、画像セグメンテーションモデルの総損失および/または誤差を記述する総損失関数に基づいて、エンドツーエンドでトレーニングされ得る。いくつかの実装形態では、総損失関数に基づいて画像セグメンテーションモデルを介して誤差を逆伝播することによって、画像セグメンテーションモデルをトレーニングすることができる。このようにして、本開示の例示的な態様による画像セグメンテーションモデルは、エンドツーエンドでトレーニングすることができ、それによって、新しいトレーニングデータが画像セグメンテーションモデルに提供される際の継続的な改善が可能になる。
【０１２２】
本明細書で説明した技術は、サーバ、データベース、ソフトウェアアプリケーション、および他のコンピュータベースのシステム、ならびにそのようなシステムとの間でとられるアクションおよび送信される情報に言及する。コンピュータベースのシステムの固有の柔軟性が、構成要素間のタスクおよび機能の多種多様な可能な構成、組合せ、および分割を可能にする。たとえば、本明細書で説明したプロセスは、単一のデバイスもしくは構成要素、または組み合わせて機能する複数のデバイスもしくは構成要素を使用して実装することができる。データベースおよびアプリケーションは、単一のシステム上で実装される、または複数のシステムに分散させることができる。分散構成要素は、順次または並列に動作することができる。
【０１２３】
本主題について、その様々な特定の例示的な実施形態に関して詳細に説明してきたが、各例は、本開示の限定ではなく説明として提供される。当業者は、上述の理解を達成すると、そのような実施形態の変更、変形、および等価物を容易に生成することができる。したがって、本開示は、当業者には容易に明らかになるように、そのような変更、変形、および/または追加の本主題への包含を排除するものではない。たとえば、一実施形態の一部として図示または説明されている特徴を、別の実施形態とともに使用して、またさらなる実施形態を得ることができる。したがって、本開示は、そのような変更、変形、および同等物をカバーするものとする。
【符号の説明】
【０１２４】
100  コンピューティングシステム
102  ユーザコンピューティングデバイス
112  プロセッサ
114  メモリ
116  データ
118  命令
120  画像セグメンテーションモデル
122  ユーザ入力コンポーネント
130  機械学習コンピューティングシステム
132  プロセッサ
134  メモリ
136  データ
138  命令
140  画像セグメンテーションモデル
140  機械学習モデル
150  モデルトレーナー
152  トレーニングデータ
180  ネットワーク
200  画像セグメンテーションモデル
210  第1のニューラルネットワーク
220  第2のニューラルネットワーク
230  画像
240  セマンティックセグメンテーションマスク
250  リファインド・セマンティックセグメンテーションマスク
300  画像セグメンテーションモデル
310  高解像度バージョンの画像
320  ダウンスケーリングコンポーネント
330  低解像度バージョンの画像
340  セマンティックセグメンテーション・ニューラルネットワーク
350  低解像度セマンティックセグメンテーションマスク
360  アップスケーリングコンポーネント
370  高解像度セマンティックセグメンテーションマスク
380  エッジリファインメント・ニューラルネットワーク
390  リファインド・セマンティックセグメンテーションマスク
400  エッジリファインメント・ニューラルネットワーク
410  画像
420  セマンティックセグメンテーションマスク
430  画像エンコーダネットワーク
430  第1のエンコーダネットワーク
440  セマンティックセグメンテーション・マスクエンコーダネットワーク
440  第2のエンコーダネットワーク
450  連結コンポーネント
460  デコーダネットワーク
470  リファインド・セマンティックセグメンテーションマスク
500  エッジリファインメント・ニューラルネットワーク
510  画像
520  セマンティックセグメンテーションマスク
530  第1のエンコーダネットワーク
540  第2のエンコーダネットワーク
550  連結コンポーネント
560  デコーダネットワーク
570  エッジ推論層
580  リファインド・セマンティックセグメンテーションマスク
600  画像セグメンテーションモデルトレーニング構成
610  高解像度バージョンの画像
615  ダウンスケーリングコンポーネント
620  低解像度バージョンの画像
625  セマンティックセグメンテーション・ニューラルネットワーク
630  低解像度セマンティックセグメンテーションマスク
645  グラウンドトゥルース・セマンティックセグメンテーションマスク
650  第1の損失関数
655  アップスケーリングコンポーネント
660  高解像度セマンティックセグメンテーションマスク
665  エッジリファインメント・ニューラルネットワーク
670  リファインド・セマンティックセグメンテーションマスク
675  グラウンドトゥルース・リファインド・セマンティックセグメンテーションマスク
680  第2の損失関数
685  総損失関数
【図１】
0006865866.tif 000002
【図２】
0006865866.tif 000003
【図３】
0006865866.tif 000004
【図４】
0006865866.tif 000005
【図５】
0006865866.tif 000006
【図６】
0006865866.tif 000007
【図７】
0006865866.tif 000008
【図８】
0006865866.tif 000009
【図９】
0006865866.tif 000010