(57)【要約】  モバイル端末上に深層学習を実装させ、毛髪を着色する等の、ビデオのリアルタイム処理をする畳み込みニューラルネットワークを提供する。画像は、毛髪ピクセルの毛髪マットを定義するためにＣＮＮ（畳み込みニューラルネットワーク）を使用して処理される。各物体のマットは、色、照明、テクスチャの変更等のピクセル値を調整する際に、どのピクセルを調整すべきかを決定するために使用できる。ＣＮＮは、セグメント化マスクを生成するように適合された画像分類のための学習済みネットワークを含む。ＣＮＮは、マスク画像の勾配整合性損失を最小化するために学習されてもよい。更に、ＣＮＮは、エンコーダステージの対応する層とエンコーダよりも浅い層にあるデコーダステージとの間のスキップ接続を使用してもよい。スキップ接続は、高解像度であるが弱い特徴量と、デコーダ内のより深い層からの低解像度であるが強力な特徴量と組み合わせる。
2021502627.tif 000002
【特許請求の範囲】
【請求項１】
記憶ユニットと、その記憶ユニットに結合される処理ユニットとを備え、画像を処理するコンピュータ装置であって、
前記記憶ユニットは、前記画像のピクセルの分類によって各ピクセルが物体のピクセルであるか否かを判定し、前記画像内の前記物体のセグメント化マスクを定義するように構成された畳み込みニューラルネットワークを記憶および提供するものであり、
前記畳み込みニューラルネットワークは、前記物体のセグメント化マスクを定義するように構成された前記画像の分類のための学習済ネットワークを備え、
前記畳み込みニューラルネットワークは、セグメント化データを使用して更に学習され、
前記処理ユニットは、新画像を定義するための前記物体のセグメント化マスクを生成する前記畳み込みニューラルネットを使用して前記画像を処理することを特徴とするコンピュータ装置。
【請求項２】
前記畳み込みニューラルネットワークは、マスク画像の勾配整合性損失を最小化するように更に学習されることを特徴とする請求項１記載のコンピュータ装置。
【請求項３】
前記マスク画像の勾配整合性損失ＬＣが以下の数式１ように定義され、Ｉｘ，Ｉｙは正規化画像勾配、Ｍｘ，Ｍｙは正規化マスク勾配、Ｍｍａｇはマスク勾配の大きさであることを特徴とする請求項１又は２に記載のコンピュータ装置。
2021502627.tif 000013
【請求項４】
前記マスク画像の勾配整合性損失ＬＣは、学習時の総損失Ｌを最小にするために、重みｗを有するバイナリ交差エントロピー損失ＬＭと結合され、前記ＬがＬ=ＬＭ＋ｗＬＣと定義されることを特徴とする請求項３記載のコンピュータ装置。
【請求項５】
前記セグメント化データは、ノイズが多く、粗いセグメント化データであることを特徴とする請求項１から４のいずれかに記載のコンピュータ装置。
【請求項６】
前記セグメント化データは、クラウドソースのセグメント化データであることを特徴とする請求項１から５のいずれかに記載のコンピュータ装置。
【請求項７】
エンコーダステージの対応する層とデコーダステージの対応する層との間のスキップ接続を使用して、前記デコーダステージでアップサンプリングする際に高解像度であるが弱い特徴量と低解像度であるが強力な特徴量とを組み合わせて前記物体のセグメント化マスクを定義するように構成されることを特徴とする請求項１から４のいずれかに記載のコンピュータ装置。
【請求項８】
前記物体が毛髪であることを特徴とする請求項１から７のいずれかに記載のコンピュータ装置。
【請求項９】
前記処理ユニットは、前記物体のセグメント化マスクを使用し、選択された前記画像内のピクセルを変更することによって、前記画像から前記新画像を定義することを特徴とする請求項１から８のいずれかに記載のコンピュータ装置。
【請求項１０】
前記変更が、色の変更であることを特徴とする請求項９に記載のコンピュータ装置。
【請求項１１】
前記畳み込みニューラルネットワークは、前記新画像をリアルタイムでビデオ画像として生成する、限られた計算能力を有するモバイル端末上で実行される学習済みネットワークを備えることを特徴とする請求項９又は１０に記載のコンピュータ装置。
【請求項１２】
前記処理ユニットは、前記画像および前記新画像を表示する対話型のグラフィカルユーザインターフェースを提供し、
前記グラフィカルユーザインターフェースは、前記新画像を定義するための前記変更を決定する入力を受信することを特徴とする請求項９から１１のいずれかに記載のコンピュータ装置。
【請求項１３】
前記処理ユニットは、前記物体のセグメント化マスクを使用し前記画像内の前記物体のピクセルを分析して前記変更の１又は複数の候補を決定し、
前記グラフィカルユーザインターフェースは、１又は複数の前記候補を提示し、前記変更を適用する前記候補を１つ選択するための入力を受信することを特徴とする請求項１２に記載のコンピュータ装置。
【請求項１４】
前記画像がセルフィービデオであることを特徴とする請求項１から１３のいずれかに記載のコンピュータ装置。
【請求項１５】
記憶ユニットと、その記憶ユニットに結合される処理ユニットとを備え、画像を処理するコンピュータ装置であって、
前記記憶ユニットは、前記画像のピクセルの分類によって各ピクセルが毛髪ピクセルであるか否かを判定するように構成された畳み込みニューラルネットワークを記憶および提供し、
前記畳み込みニューラルネットワークは、前記毛髪のセグメント化マスクを定義するためにセグメント化データで学習する際にマスク画像の勾配整合性損失を最小化するように学習され、
前記処理ユニットは、前記毛髪のセグメント化マスクを使用して前記画像内の毛髪ピクセルに新しい毛髪色を適用することにより、着色された毛髪画像を定義および提示することを特徴とするコンピュータ装置。
【請求項１６】
前記畳み込みニューラルネットワークは、前記着色された毛髪画像をリアルタイムでビデオ画像として生成する、限られた計算能力を有するモバイル端末上で実行される学習済みネットワークを備えることを特徴とする請求項１５に記載のコンピュータ装置。
【請求項１７】
前記畳み込みニューラルネットワークは、前記毛髪のセグメント化マスクを生成するように構成された前記画像の分類のための学習済ネットワークを備え、
前記学習済ネットワークは、エンコーダステージの層と対応するデコーダステージのとの間のスキップ接続を使用して、前記デコーダステージでアップサンプリングする際に低解像度であるが強力な特徴量と高解像度であるが弱い特徴量とを組み合わせることを特徴とする請求項１５又は１６に記載のコンピュータ装置。
【請求項１８】
前記エンコーダステージからのより低い解像度の層は、最初に点ごとの畳み込みを適用して処理され、前記デコーダステージに入ってくる高解像度の層と出力の深さの互換性をもたせることを特徴とする請求項１７に記載のコンピュータ装置。
【請求項１９】
前記畳み込みニューラルネットワークは、前記デコーダステージでアップサンプリングする際に、低解像度であるが強力な特徴量と、対応する層からの高解像度であるが弱い特徴量とを組み合わせるように構成されることを特徴とする請求項１５から１８のいずれかに記載のコンピュータ装置。
【請求項２０】
前記畳み込みニューラルネットワークは、前記マスク画像の勾配整合性損失を最小化するために、粗いセグメント化データを使用して学習されることを特徴とする請求項１５から１９のいずれかに記載のコンピュータ装置。
【請求項２１】
前記マスク画像の勾配整合性損失ＬＣが以下の数式１ように定義され、Ｉｘ，Ｉｙは正規化画像勾配、Ｍｘ，Ｍｙは正規化マスク勾配、Ｍｍａｇはマスク勾配の大きさであることを特徴とする請求項１５から２０のいずれかに記載のコンピュータ装置。
2021502627.tif 000014
【請求項２２】
前記マスク画像の勾配整合性損失ＬＣは、学習時の総損失Ｌを最小にするために、重みｗを有するバイナリ交差エントロピー損失ＬＭと結合され、前記ＬがＬ=ＬＭ＋ｗＬＣと定義されることを特徴とする請求項２０又は２１に記載のコンピュータ装置。
【請求項２３】
前記畳み込みニューラルネットワークは、深さ方向の畳み込みと点ごとの畳み込みとを有する深さ方向に分離可能な畳み込みを使用して処理動作を最小化し、限られた計算能力を有するモバイル端末上での前記畳み込みニューラルネットワークの実行を可能にすることを特徴とする請求項１から２２のいずれかに記載のコンピュータ装置。
【請求項２４】
処理ユニットと、その処理ユニットに結合された記憶ユニットと、前記処理ユニットおよび前記記憶ユニットのうちの少なくとも一方に結合された入力装置とを備え、画像を処理するコンピュータ装置であって、
前記記憶ユニットは、前記処理ユニットによって実行されたときにコンピュータ装置を構成するための命令を記憶し、
前記命令は、前記入力装置を介して画像を受信する命令と、前記画像内の毛髪ピクセルを識別する毛髪のセグメント化マスクを定義する命令と、前記毛髪のセグメント化マスクを使用して前記画像内の毛髪ピクセルに新しい毛髪色を適用し、着色された毛髪画像を定義する命令と、表示装置に出力するために前記着色された毛髪画像を提供する命令と、を有し、
前記毛髪のセグメント化マスクは、前記記憶ユニットによって記憶された畳み込みニューラルネットワークを使用して画像を処理し、複数の畳み込みフィルタを連続する畳み込み層に適用して各特徴を検出することで定義され、
連続する前記畳み込み層の第１セットの畳み込み層は、第１の画像解像度から最小の解像度まで前記画像をダウンサンプリングする出力を提供し、
連続する前記畳み込み層の第２セットの畳み込み層は、出力を前記第１の画像解像度にアップサンプリングし、
前記畳み込みニューラルネットワークは、前記毛髪のセグメント化マスクを定義するためにマスク画像の勾配整合性損失を最小化するように学習されることを特徴とするコンピュータ装置。
【請求項２５】
前記畳み込みニューラルネットワークは、前記第１セットからの対応する畳み込み層と前記第２セットからの対応する畳み込み層との間のスキップ接続を使用するように構成されることを特徴とする請求項２４記載のコンピュータ装置。
【請求項２６】
前記畳み込みニューラルネットワークは、前記第１の画像解像度にアップサンプリングして出力するアップサンプリング機能であって、前記第２セットの畳み込み層の最初の層の前と、前記第２セットの畳み込み層のそれぞれの後続の層の前とに点在するアップサンプリング機能を備えることを特徴とする請求項２４又は２５に記載のコンピュータ装置。
【請求項２７】
前記アップサンプリング機能は、それぞれスキップ接続を使用し、
前記スキップ接続は、それぞれ第１アクティベーションマップと第２アクティベーションマップとを組み合わせるように構成され、
前記第１アクティベーションマップは、前記第２セットの畳み込み層の次の畳み込み層への入力として、連続して隣合う畳み込み層から出力され、
前記第２アクティベーションマップは、前記第１セットの畳み込み層の内、より前の畳み込み層から出力され、
前記第１アクティベーションマップよりも前記第２アクティベーションマップの画像の解像度が大きいことを特徴とする請求項２６記載のコンピュータ装置。
【請求項２８】
前記スキップ接続のそれぞれは、前記第２アクティベーションマップに適用される点ごとの畳み込みフィルタの出力と、前記第１アクティベーションマップに適用される前記アップサンプリング機能の出力とを加算して、前記第１アクティベーションマップの解像度をより大きい画像解像度に増大させることを特徴とする請求項２７に記載のコンピュータ装置。
【請求項２９】
前記命令は、前記表示装置を介してグラフィカルユーザインターフェースを提示するように前記コンピュータ装置を構成し、
前記グラフィカルユーザインターフェースは、前記画像を見るための第１部と、前記着色された毛髪画像を同時に見るための第２部とを備えることを特徴とする請求項２４から２８のいずれかに記載のコンピュータ装置。
【請求項３０】
前記命令は、前記着色された毛髪画像内の前記新しい毛髪色に照明条件処理を適用して、前記新しい毛髪色を異なる照明条件で示すように前記コンピュータ装置を構成することを特徴とする請求項２９に記載のコンピュータ装置。
【請求項３１】
前記新しい毛髪色は、第１の新しい毛髪色であり、前記着色された毛髪画像は、第１の着色された毛髪画像であり、
前記命令は、前記毛髪のセグメント化マスクを使用して前記画像内の毛髪ピクセルに前記第２の新しい毛髪色を適用し、前記表示装置に出力される前記第２の着色された毛髪画像を提供することにより、前記第２の着色された毛髪画像を定義および提示するように前記コンピュータ装置を構成することを特徴とする請求項２４から３０のいずれかに記載のコンピュータ装置。
【請求項３２】
前記命令は、前記ディスプレイ装置を介して２つの新しい色のグラフィカルユーザインターフェースを提示するように前記コンピュータ装置を構成し、
前記２つの新しい色のグラフィカルユーザインターフェースは、前記第１の着色された毛髪画像を見るための第１の部分と、前記第２の着色された毛髪画像を同時に見るための第２の部分とを備えることを特徴とする請求項３１に記載のコンピュータ装置。
【請求項３３】
前記命令は、前記画像内の毛髪ピクセルの現在の毛髪色を含む画像の色を解析する命令と、提案された前記新しい毛髪色を１又は複数決定する命令と、前記提案された新しい毛髪色を前記グラフィカルユーザインターフェースのインタラクティブ部を介して提示し、前記新しい毛髪色を選択して前記着色された毛髪画像を定義する命令と、を含むことを特徴とする請求項２４から３２のいずれかに記載のコンピュータ装置。
【請求項３４】
前記処理ユニットは、前記畳み込みニューラルネットワークを実行する画像処理ユニットを備え、
前記コンピュータ装置は、スマートフォン及びタブレットのいずれかから構成されることを特徴とする請求項２４から３３のいずれかに記載のコンピュータ装置。
【請求項３５】
前記画像は、ビデオにおける複数のビデオ画像のうちの１つであり、
前記命令は、前記複数のビデオ画像を処理して毛髪色を変更するように前記コンピュータ装置を構成することを特徴とする請求項２４から３４のいずれかに記載のコンピュータ装置。
【請求項３６】
前記畳み込みニューラルネットワークは、前記画像のピクセルを分類するように構成されたモバイルネット（Mobilenet）ベースのモデルを備え、
前記モバイルネットベースのモデルは、前記各ピクセルが毛髪ピクセルであるか否かを判定することを特徴とする請求項２４から３５のいずれかに記載のコンピュータ装置。
【請求項３７】
前記畳み込みニューラルネットワークは、個々の標準畳み込みが深さ方向の畳み込みと点ごとの畳み込みとに分解される畳み込みを有する、深さ方向に分離可能な畳み込みニューラルネットワークとして構成され、
前記深さ方向の畳み込みは、各入力チャンネルに単一のフィルタを適用するように制限され、
前記点ごとの畳み込みは、前記深さ方向の畳み込みの出力を組み合わせるように制限されることを特徴とする請求項２４から３６のいずれかに記載のコンピュータ装置。
【請求項３８】
前記マスク画像の勾配整合性損失ＬＣが以下の数式１ように定義され、Ｉｘ，Ｉｙは正規化画像勾配、Ｍｘ，Ｍｙは正規化マスク勾配、Ｍｍａｇはマスク勾配の大きさであることを特徴とする請求項２４から３７のいずれかに記載のコンピュータ装置。
2021502627.tif 000015
【請求項３９】
物体のセグメント化マスクを定義するために、画像を処理するように学習された畳み込みニューラルネットワークを生成するように構成されるコンピュータ装置であって、
前記コンピュータ装置は、記憶ユニットと処理ユニットとを備え、
前記記憶ユニットは、前記画像を分類すると共に制限された計算能力を有するコンピュータ装置上で実行されるように構成された畳み込みニューラルネットワークを受信し、
前記処理ユニットは、入力を受信して出力を表示するための対話型インターフェースを提供ように構成され、
前記処理ユニットは、前記物体のセグメント化マスクを定義するように前記畳み込みニューラルネットワークを適合させる入力を受信し、前記畳み込みニューラルネットワークを前記記憶ユニットに適合させたものとして記憶し、
前記処理ユニットは、前記物体のセグメント化マスクを定義するために画像を処理する前記畳み込みニューラルネットワークを生成するために、前記物体のセグメント化のためにラベル付けされたセグメント化の学習データを使用して前記畳み込みニューラルネットワークを学習させる入力を受信することを特徴とするコンピュータ装置。
【請求項４０】
前記処理ユニットは、前記畳み込みニューラルネットワークに適応させるための入力であって、学習時にマスク画像の勾配整合性損失を最小限に抑えるように定義されたマスク画像の勾配整合性損失関数を使用する入力と、エンコーダステージ内の層とデコーダステージ内の対応する層との間のスキップ接続を使用して前記デコーダステージ内でアップサンプリングする際に低解像度ではあるが強力な特徴量と高解像度ではあるが弱い特徴量とを組合せる入力と、前記記憶ユニットに適合するように前記畳み込みニューラルネットワークを記憶する入力と、のうちの少なくとも１つの入力を受信するように構成されることを特徴とする請求項３９に記載のコンピュータ装置。
【請求項４１】
物体のセグメント化マスクを定義するために画像を処理するように学習された畳み込みニューラルネットワークを生成する方法であって、
前記画像の分類用に構成され限定された計算能力を有するコンピュータ装置上で実行されるように構成された畳み込みニューラルネットワークを取得し、前記物体のセグメント化マスクを定義するように前記畳み込みニューラルネットワークを適合させ、前記物体のセグメント化マスクを定義するために前記物体のセグメント化用にラベル付けされたセグメント化の学習データを使用して前記畳み込みニューラルネットワークを学習させることを特徴とする方法。
【請求項４２】
前記畳み込みニューラルネットワークは、前記画像の分類用に事前に学習され、
前記学習のステップは、事前に学習された前記畳み込みニューラルネットワークを更に学習させることを特徴とする請求項４１に記載の方法。
【請求項４３】
前記画像を処理する前記畳み込みニューラルネットワークを生成するために、マスク画像の勾配整合性損失を最小化するように定義されたマスク画像の勾配整合性損失関数を使用するように前記畳み込みニューラルネットワークを適合させることを特徴とする請求項４１又は４２に記載の方法。
【請求項４４】
前記セグメント化の学習データは、ノイズが多く、粗いセグメント化の学習データであり、クラウドソースのデータから定義されることを特徴とする請求項４１から４３のいずれかに記載の方法。
【請求項４５】
エンコーダステージの層と対応するデコーダステージの層との間のスキップ接続を使用して、前記デコーダステージでアップサンプリングする際に低解像度であるが強力な特徴量と高解像度であるが弱い特徴量とを組み合わせるように前記畳み込みニューラルネットワークを適合させることを特徴とする請求項４１から４４のいずれかに記載の方法。
【請求項４６】
前記マスク画像の勾配整合性損失関数は、バイナリ交差エントロピー損失関数と組み合わされて、組み合わされた損失を最小限にすることを特徴とする請求項４１から４５のいずれかに記載の方法。
【請求項４７】
前記マスク画像の勾配整合性損失ＬＣが以下の数式１ように定義され、Ｉｘ，Ｉｙは正規化画像勾配、Ｍｘ，Ｍｙは正規化マスク勾配、Ｍｍａｇはマスク勾配の大きさであることを特徴とする請求項４１から４６のいずれかに記載の方法。
2021502627.tif 000016
【請求項４８】
前記畳み込みニューラルネットワークによって前記画像を処理し、モバイル端末上に記憶させるための前記物体のセグメント化マスクを定義することを特徴とする請求項４１から４７のいずれかに記載の方法。
【請求項４９】
画像内の物体のセグメント化マスクを定義するために、前記画像のピクセルを分類して各ピクセルが物体のピクセルであるか否かを判定するように構成された畳み込みニューラルネットワークをコンピュータ装置の記憶ユニットに記憶させ、
前記畳み込みニューラルネットワークを使用して前記コンピュータ装置の処理ユニットを介して前記画像を処理して新画像を定義するための前記物体のセグメント化マスクを生成し、
前記畳み込みニューラルネットワークは、前記物体のセグメント化マスクを定義するように適合され、セグメント化データで学習された前記画像の分類のための学習済ネットワークを備えることを特徴とする方法。
【請求項５０】
前記セグメント化データを使用して学習させる際にマスク画像の勾配整合性損失関数を使用してマスク画像の勾配整合性損失を最小限に抑えることと、エンコーダステージの層とデコーダステージの対応する層との間のスキップ接続を使用して、前記デコーダステージでアップサンプリングする際に低解像度ではあるが強力な特徴量と高解像度ではあるが弱い特徴量とを組み合わせて前記物体のセグメント化マスクを定義することと、のうちの少なくとも一方を前記畳み込みニューラルネットワークに適合させることを特徴とする請求項４９記載の方法。
【請求項５１】
前記マスク画像の勾配整合性損失ＬＣが以下の数式１ように定義され、Ｉｘ，Ｉｙは正規化画像勾配、Ｍｘ，Ｍｙは正規化マスク勾配、Ｍｍａｇはマスク勾配の大きさであることを特徴とする請求項５０記載の方法。
2021502627.tif 000017
【請求項５２】
前記マスク画像の勾配整合性損失ＬＣは、学習時の総損失Ｌを最小にするために、重みｗを有するバイナリ交差エントロピー損失ＬＭと結合され、前記ＬがＬ=ＬＭ＋ｗＬＣと定義されることを特徴とする請求項５１記載の方法。
【請求項５３】
前記物体が毛髪であることを特徴とする請求項４９から５２のいずれかに記載の方法。
【請求項５４】
前記物体のセグメント化マスクを使用して、選択された前記画像内のピクセルに変更を適用することにより前記画像から前記新画像を前記処理ユニットを介して定義することを含む請求項４９から５３のいずれかに記載の方法。
【請求項５５】
前記変更が色の変更であることを特徴とする請求項５４記載の方法。
【請求項５６】
前記畳み込みニューラルネットワークは、前記新画像をリアルタイムでビデオ画像として生成するために、限られた計算能力を有するモバイル端末上で実行するように構成された学習済みネットワークを備えることを特徴とする請求項５４から５５のいずれかに記載の方法。
【請求項５７】
前記処理ユニットは、前記画像および前記新画像を表示するための対話型のグラフィカルユーザインターフェースを提供するように構成され、
前記グラフィカルユーザインターフェースは、前記新画像を定義する前記変更を決定するための入力を受信するように構成されることを特徴とする請求項５４から５６のいずれかに記載の方法。
【請求項５８】
前記物体のセグメント化マスクを使用して前記画像内の前記物体のピクセルを前記処理ユニットで分析して前記変更の１又は複数の候補を決定し、
前記グラフィカルユーザインターフェースは、前記変更として適用する候補のうちの１つを選択する入力を受信するために１又は複数の前記候補を提示するように構成されることを特徴とする請求項５７記載の方法。
【請求項５９】
前記画像が、セルフィービデオであることを特徴とする請求項４９から５８のいずれかに記載の方法。
【請求項６０】
画像を処理する方法であって、
コンピュータ装置の記憶ユニットに、各ピクセルが毛髪ピクセルであるか否かを判定するために前記画像のピクセルを分類するように構成された畳み込みニューラルネットワークを記憶し、
前記畳み込みニューラルネットワークは、毛髪のセグメント化マスクを定義するセグメント化データでの学習時にマスク画像の勾配整合性損失を最小化するように学習され、
前記記憶ユニットに結合された前記コンピュータ装置の処理ユニットによって、前記毛髪のセグメント化マスクを使用して前記画像内の毛髪ピクセルに新しい毛髪色を適用することで着色された毛髪画像を定義および提示することを特徴とする方法。
【請求項６１】
前記畳み込みニューラルネットワークは、前記着色された毛髪画像をリアルタイムでビデオ画像として生成するために、限られた計算能力を有するモバイル端末上で実行するように構成された学習済ネットワークを備えることを特徴とする請求項６０に記載の方法。
【請求項６２】
前記畳み込みニューラルネットワークは、前記毛髪のセグメント化マスクを生成するように適合された前記画像の分類のための学習済ネットワークを含み、
前記学習済ネットワークは、エンコーダステージの層とデコーダステージの対応する層との間のスキップ接続を使用して、前記デコーダステージでアップサンプリングする際に低解像度であるが強力な特徴量と高解像度であるが弱い特徴量とを組み合わせるように構成されることを特徴とする請求項６０又は６１に記載の方法。
【請求項６３】
前記エンコーダステージからのより低い解像度の層は、最初に点ごとの畳み込みを適用して処理され、前記デコーダステージに入ってくる高解像度の層と出力の深さの互換性をもたせることを特徴とする請求項６２に記載の方法。
【請求項６４】
前記畳み込みニューラルネットワークは、前記マスク画像の勾配整合性損失を最小化するために粗い前記セグメント化データを使用して学習されることを特徴とする請求項６０から６３のいずれかに記載の方法。
【請求項６５】
前記マスク画像の勾配整合性損失ＬＣが以下の数式１ように定義され、Ｉｘ，Ｉｙは正規化画像勾配、Ｍｘ，Ｍｙは正規化マスク勾配、Ｍｍａｇはマスク勾配の大きさであることを特徴とする請求項６０から６４のいずれかに記載の方法。
2021502627.tif 000018
【請求項６６】
前記マスク画像の勾配整合性損失ＬＣは、学習時の総損失Ｌを最小にするために、重みｗを有するバイナリ交差エントロピー損失ＬＭと結合され、前記ＬがＬ=ＬＭ＋ｗＬＣと定義されることを特徴とする請求項６４又は６５に記載の方法。
【請求項６７】
前記畳み込みニューラルネットワークは、深さ方向の畳み込みと点ごとの畳み込みとを備える深さ方向に分離可能な畳み込みを使用して処理動作を最小化し、限られた計算能力を有するモバイル端末上での前記畳み込みニューラルネットワークの実行を可能にすることを特徴とする請求項６０から６６のいずれかに記載の方法。
【請求項６８】
画像を処理する方法であって、
処理装置を介して前記画像を受信する工程と、前記処理装置を介して前記画像内の毛髪ピクセルを識別する毛髪のセグメント化マスクを定義する工程と、前記処理装置を介して前記毛髪のセグメント化マスクを使用して前記画像内の毛髪ピクセルに新しい毛髪色を適用し着色された毛髪画像を定義する工程と、前記処理装置を介して表示装置に出力するための前記着色された毛髪画像を提供する工程と、を備え、
前記毛髪のセグメント化マスクは、前記処理ユニットに結合された記憶ユニットによって記憶された畳み込みニューラルネットワークを使用して前記画像を処理し複数の畳み込みフィルタを一連の畳み込み層に適用して各特徴を検出することで定義され、
前記畳み込みニューラルネットワークは、ノイズの多い粗いセグメント化データで学習され、マスク画像の勾配整合性損失を最小限に抑えて前記毛髪のセグメント化マスクを定義することを特徴とする方法。
【請求項６９】
前記連続する畳み込み層における第１セットの畳み込み層は、前記画像を第１の画像解像度から最小の解像度までダウンサンプリングする出力を提供し、
前記連続する畳み込み層における第２セットの畳み込み層は、出力を前記第１の画像解像度にアップサンプリングし、
前記畳み込みニューラルネットワークは、前記第１セットの畳み込み層と前記第２セットの畳み込み層とからの対応する畳み込み層の間のスキップ接続を使用することを特徴とする請求項６８記載の方法。
【請求項７０】
前記畳み込みニューラルネットワークは、前記第１の画像解像度にアップサンプリングして出力するためのアップサンプリング機能であって、前記第２セットの畳み込み層の最初の層の前と、前記第２セットの畳み込み層のそれぞれの後続の層の前とに点在するアップサンプリング機能を備えることを特徴とする請求項６９記載の方法。
【請求項７１】
前記アップサンプリング機能は、それぞれスキップ接続を使用し、
前記スキップ接続のそれぞれは、第１アクティベーションマップと第２アクティベーションマップとを組み合わせるように構成され、
前記第１アクティベーションマップは、前記第２セットの畳み込み層の次の畳み込み層への入力として、連続して隣合う畳み込み層から出力され、
前記第２アクティベーションマップは、前記第１セットの畳み込み層の内、より前の畳み込み層から出力され、
前記第１アクティベーションマップよりも前記第２アクティベーションマップの画像の解像度が大きいことを特徴とする請求項７０記載の方法。
【請求項７２】
前記スキップ接続のそれぞれは、前記第２アクティベーションマップに適用される点ごとの畳み込みフィルタの出力と、前記第１アクティベーションマップに適用される前記アップサンプリング機能の出力とを加算して、前記第１アクティベーションマップの解像度をより大きい画像解像度に増大させるように定義されることを特徴とする請求項７１記載の方法。
【請求項７３】
前記処理ユニットによって前記表示装置を介してグラフィカルユーザインターフェースを提示し、
前記グラフィカルユーザインターフェースは、前記画像を見るための第１部と、前記着色された毛髪画像を同時に見るための第２部とを備えることを特徴とする請求項６８から７２のいずれかに記載の方法。
【請求項７４】
異なる照明条件で新しい毛髪カラーを示すために、前記着色された毛髪画像における前記新しい毛髪色に照明条件処理を適用し、前記新しい毛髪色を異なる証明条件で示すことを含むことを特徴とする請求項７３に記載の方法。
【請求項７５】
前記新しい毛髪カラーは、第１の新しい毛髪色であり、前記着色された毛髪色は、第１の着色された毛髪画像であり、前記処理ユニットは、前記毛髪のセグメント化マスクを使用して前記画像内の毛髪ピクセルに前記第２の新しい毛髪色を適用し、前記表示装置に出力するための前記第２の着色毛髪画像を提供することにより、前記第２の着色された毛髪画像を定義および提示することを特徴とする請求項６８から７４のいずれかに記載の方法。
【請求項７６】
前記処理ユニットによって前記表示装置を介して２つの新しい色のグラフィカルユーザインターフェースを提示し、
前記２つの新しい色のグラフィカルユーザインターフェースは、前記第１の着色された毛髪画像を見るための第１の部分と、前記第２の着色された毛髪画像を同時に見るための第２の部分とを備えることを特徴とする請求項７５に記載の方法。
【請求項７７】
前記処理ユニットで前記画像内の毛髪ピクセルの現在の毛髪色を含む画像の色を解析することと、提案された前記新しい毛髪色を１又は複数決定することと、前記提案された新しい毛髪色を前記グラフィカルユーザインターフェースのインタラクティブ部を介して提示し、前記新しい毛髪色を選択して前記着色された毛髪画像を定義することと、含むことを特徴とする請求項６８から７６のいずれかに記載の方法。
【請求項７８】
前記処理ユニットは、前記畳み込みニューラルネットワークを実行するための画像処理ユニットを備え、
前記処理ユニット及び前記記憶ユニットは、スマートフォン及びタブレットのいずれかから構成されるコンピュータ装置に提供されることを特徴とする請求項６８から７７のいずれかに記載の方法。
【請求項７９】
前記画像は、ビデオにおける複数のビデオ画像のうちの１つであり、前記方法は、前記処理ユニットによって前記複数のビデオ画像を処理して毛髪色を変更することを特徴とする請求項６８から７８のいずれかに記載の方法。
【請求項８０】
前記畳み込みニューラルネットワークは、前記画像のピクセルを分類するように適合されたモバイルネット（Mobilenet）ベースのモデルを備え、
前記モバイルネットベースのモデルは、前記各ピクセルが毛髪ピクセルであるか否かを判定することを特徴とする請求項６８から７９のいずれかに記載の方法。
【請求項８１】
前記畳み込みニューラルネットワークは、個々の標準の畳み込みが深さ方向の畳み込みと点ごとの畳み込みとに分解される畳み込みを有する深さ方向に分離可能な畳み込み畳みニューラルネットワークとして構成され、
前記深さ方向の畳み込みは、各入力チャンネルに単一のフィルタを適用するように制限され、
前記点ごとの畳み込みは、前記深さ方向畳み込みの出力を組み合わせるように制限されることを特徴とする請求項６８から８０のいずれかに記載の方法。
【請求項８２】
前記マスク画像の勾配整合性損失ＬＣが以下の数式１ように定義され、Ｉｘ，Ｉｙは正規化画像勾配、Ｍｘ，Ｍｙは正規化マスク勾配、Ｍｍａｇはマスク勾配の大きさであることを特徴とする請求項６８から８１のいずれかに記載の方法。
2021502627.tif 000019
【発明の詳細な説明】
【関連出願への相互参照】
【０００１】
本出願は、米国に関する以下の出願の優先権の国内利益と、他の管轄区域に関する以下の出願のパリ条約の優先権とを主張する：
１）２０１７年１０月２４日に出願され、「A  System  and  Method for  Video  Hair  Coloration  Using  Deep  Neural  Networks」という名称の米国仮出願第６２／５７６，１８０号
２）２０１７年１２月１２日に出願され、「A  System  and  Method  for  Real-time  Deep  Hair  Matting  on  Mobile  Devices」という名称の米国仮出願第６２／５９７，４９４号
【技術分野】
【０００２】
本発明は、ソース画像から新画像を定義するための画像処理に関し、特に、畳み込みニューラルネットワーク等の深層ニューラルネットワークを使用した画像処理に関するものである。
【背景技術】
【０００３】
画像処理によってソース画像を分析してその中の対象物を識別するために、画像処理が有用になる場合が多くあり、少なくともそれらの場合の一部において、新しい画像を生成するための補正または他の変更が行われる。画像処理は、画像の中で表される物体（オブジェクト）を分類するため、或いは画像の中の物体の位置を識別するために使用されることがある。画像処理は、色、テクスチャ、照明、輝度、コントラスト及び他の特性の変更のような、画像の特性（各ピクセルの値等）を補正または変更するために使用されることがある。その他、画像への物体の追加、画像からの物体の減算、物体の形状変更などの変更が含まれる。
【０００４】
例えば、画像処理を使用して、ソース画像内の対象の毛髪を着色し、着色された毛髪の画像を生成することがある。
【０００５】
画像処理は多くの場合、コンピュータ装置、特にスマートフォン、タブレット等のような一般的なモバイル端末（モバイルデバイス）の計算資源（リソース）を多く消費する。これは、一連の画像を含むビデオをリアルタイムで処理する場合に特に当てはまる。
【発明の概要】
【０００６】
下記に、深層学習の実装に関し、特に、モバイル端末上での深層学習の実装に関して説明する。本発明は、例えば、毛髪のような物体をセグメント化し、毛髪の色を変えるために、ライブビデオを処理する深層学習の環境を提供することを目的としている。当業者は、毛髪以外の物体が検出されても良く、色またはその他の各特性が変更されることがあることを認識できるであろう。各ビデオ画像からの毛髪ピクセル（物体のピクセル等）の各毛髪マット（オブジェクトマスク等）を定義するために深層ニューラルネットワークを使用して、ビデオ画像（フレーム等）を処理してもよい。各物体のマットは、色、照明、テクスチャ等のビデオ画像の特性を調整するときに、どのピクセルを調整するかを決定するために使用されてもよい。毛髪の着色の一例では、深層学習ニューラルネットワーク、例えば畳み込みニューラルネットワークは、ソース画像のピクセルを分類して、それぞれが毛髪ピクセルであるかどうかを判定し、毛髪マスクを定義するように構成される。マスクを使用して、ソース画像の特性を変更し、新しいイメージを生成する。畳み込みニューラルネットワーク（ＣＮＮ）は、セグメント化マスクを生成するように適合された画像の分類のための学習済ネットワークを含むことができる。畳み込みニューラルネットワークは、粗いセグメント化データを使用して更に学習され、学習時のマスク画像の勾配整合性損失を最小限に抑えることができる。更に、畳み込みニューラルネットワークは、エンコーダステージと、エンコーダステージよりも浅い層にあるデコーダステージとの対応する層の間のスキップ接続を使用してもよい。スキップ接続は、高解像度であるが弱い特徴量と、デコーダ内のより深層からの低解像度であるが強力な特徴量とを組み合わせることを含む。
【０００７】
このようなマスクは、直接的または間接的に、他の物体を区別するために使用することができる。毛髪マスクは個々のマージンまたはエッジを定義することができ、毛髪マスクの外側の対象物は、背景などにすることができる。検出され得る他の物体としては、皮膚などが挙げられる。
【０００８】
画像を処理するためのコンピュータ装置（コンピューティングデバイス）が提供され、これは、畳み込みニューラルネットワークを記憶、提供するための記憶ユニットと、その記憶ユニットに結合された処理ユニットとを備える。畳み込みニューラルネットワークは、画像内の物体のセグメント化マスクを定義するために、画像のピクセルを分類して各ピクセルが物体のピクセルであるか否かを判定するように構成される。畳み込みニューラルネットワークは、画像の分類のための学習済ネットワークを備える。画像の分類のための学習済ネットワークは、物体のセグメント化マスクを定義するように適合され、畳み込みニューラルネットワークは、セグメント化データを使用して更に学習される。処理ユニットは、畳み込みニューラルネットワークを使用して画像を処理し、物体のセグメント化マスクを生成して新しい画像を定義するように構成される。
【０００９】
畳み込みニューラルネットワークは、セグメント化データを使用した学習時にマスク画像の勾配整合性損失を最小化するように適合されてもよい。
【００１０】
畳み込みニューラルネットワークは、エンコーダステージ内の層とデコーダステージ内の対応する層との間のスキップ接続を使用して、物体のセグメント化マスクを定義するためにデコーダステージ内でアップサンプリングする際に、低解像度であるが強力な特徴量と高解像度であるが弱い特徴量とを組み合わせるように適合させることができる。
【００１１】
マスク画像勾配整合性損失は、以下の数式１ように定義することができる。Ｉｘ，Ｉｙは正規化画像勾配の大きさであり、Ｍｘ，Ｍｙは正規化マスク勾配の大きさであり、Ｍｍａｇはマスク勾配の大きさである。
2021502627.tif 000003
【００１２】
マスク画像の勾配整合性損失は、ＬをＬ=ＬＭ＋ｗＬＣとして定義し、学習時の総損失Ｌを最小化するために重みｗをもつバイナリ交差エントロピー損失と組み合わせることができる。
【００１３】
畳み込みニューラルネットワークは、ノイズの多い粗いセグメント化データを使用して学習されてもよい。セグメント化データは、クラウドソースのセグメント化データであってもよい。
【００１４】
物体は毛髪であってもよい。処理ユニットは、物体のセグメント化マスクを使用し、選択された画像内のピクセルを変更する（変化させる）ことによって、画像から新しい画像を定義するように構成されてもよい。変更は色の変更であってもよい（例えば、物体が毛髪である場合、毛髪色の変更をシミュレートする）。
【００１５】
畳み込みニューラルネットワークは、新画像をリアルタイムでビデオ画像として生成するために、限られた計算能力のモバイル端末上で実行するように構成された学習済ネットワークを含む。
【００１６】
処理ユニットは、画像および新画像を表示するためのインタラクティブな（双方向であり、対話型の）グラフィカルユーザインターフェース（ＧＵＩ）を提供するように構成することができる。インタラクティブなグラフィカルユーザインターフェースは、新画像を定義するための変更を決定する入力を受け取るように構成することができる。処理ユニットは、物体のセグメント化マスクを使用して画像内の物体のピクセルを分析し、変更の１以上の候補を決定するように構成されてもよい。インタラクティブなグラフィカルユーザインターフェースは、変更として適用する候補の１つを選択するための入力を受け取るために１以上の候補を提示するように構成することができる。
【００１７】
画像は、セルフィー（自分自身を撮影する自撮り）のビデオであってもよい。
【００１８】
画像を処理するためのコンピュータ装置が提供され、コンピュータ装置は、記憶ユニットと、処理ユニットとを備える。記憶ユニットは、画像のピクセルを分類して各ピクセルが毛髪ピクセルであるか否かを判定するように構成された畳み込みニューラルネットワークを記憶、提供する。畳み込みニューラルネットワークは、毛髪のセグメント化マスクを定義するセグメント化データでの学習時にマスク画像の勾配整合性損失を最小化するように学習されている。処理ユニットおよび結合された記憶ユニットは、毛髪のセグメント化マスクを使用して画像内の毛髪ピクセルに新しい毛髪色を適用することによって着色された毛髪画像を定義して表示する。
【００１９】
画像を処理するためのコンピュータ装置が提供され、処理ユニットと、その処理ユニットに結合された記憶ユニットと、処理ユニットおよび記憶ユニットのうちの少なくとも一方に結合された入力装置とを備える。記憶ユニットは、処理ユニットによって実行されたときにコンピュータ装置を構成するための命令が記憶される。命令は、入力装置を介して画像を受信し、画像内の毛髪ピクセルを識別する毛髪のセグメント化マスクを定義し、毛髪のセグメント化マスクを使用し画像内の毛髪ピクセルに新しい毛髪色を適用して着色された毛髪画像を定義し、表示装置に出力するために着色された毛髪画像を提供する命令である。記憶ユニットによって記憶された畳み込みニューラルネットワークを使用して画像を処理し、連続する畳み込み層内の複数の畳み込みフィルタを適用して各特徴を検出することによって毛髪のセグメント化マスクが定義される。連続する畳み込み層の第１セットは、第１の画像解像度から最小解像度まで画像をダウンサンプリングする出力を提供し、連続する畳み込み層の第２セットは、出力を第１の画像解像度にアップサンプリングし、畳み込みニューラルネットワークは、毛髪のセグメント化マスクを定義するためにマスク画像の勾配整合性損失を最小化するように学習される。
【００２０】
物体のセグメント化マスクを定義するために画像を処理するように学習された畳み込みニューラルネットワークを生成するように構成されたコンピュータ装置が提供され、コンピュータ装置は、画像を分類すると共に制限された計算能力を有するコンピュータ装置上で実行するように構成された畳み込みニューラルネットワークを受信する記憶ユニットと、入力を受信して表示出力するための対話型インターフェースを提供するように構成された処理ユニットとを備え、処理ユニットは、物体のセグメント化マスクを定義するように畳み込みニューラルネットワークを適合させる入力を受信し、畳み込みニューラルネットワークを記憶ユニットに適合させたものとして記憶し、処理ユニットは、物体のセグメント化マスクを定義するために画像を処理する畳み込みニューラルネットワークを生成するために、物体のセグメント化用にラベル付けされたセグメント化の学習データを使用して畳み込みニューラルネットワークを学習させる入力を受信する。処理ユニットは、学習時にマスク画像の勾配整合性損失を最小限に抑えるように定義された最小のマスク画像の勾配整合性損失関数を使用することと、エンコーダステージ内の層とデコーダステージ内の対応する層との間のスキップ接続を使用して、デコーダステージ内でアップサンプリングする際に低解像度であるが強力な特徴量および高解像度であるが弱い特徴量を組み合わせることと、記憶ユニットに適合されるように畳み込みニューラルネットワークを記憶することと、のうちの少なくとも１つを畳み込みニューラルネットワークに適合させるための入力を受信するように構成され得る。
【００２１】
物体のセグメント化マスクを定義するために、画像を処理するように学習された畳み込みニューラルネットワークを生成するための方法が提供される。前記方法は、画像の分類用に構成され、限定された計算能力を有するコンピュータ装置上で実行するように構成された畳み込みニューラルネットワークを取得する工程と、物体のセグメント化マスクを定義するように畳み込みニューラルネットワークを適合させる工程と、物体のセグメント化マスクを定義するために物体のセグメント化用にラベル付けされたセグメント化の学習データを使用して畳み込みニューラルネットワークに学習させる工程とを含む。マスク画像の勾配整合性損失を最小化するように定義されたマスク画像の勾配整合性損失関数を使用して畳み込みニューラルネットワークを学習させ、画像を処理して物体のセグメント化マスクを定義する畳み込みニューラルネットワークを生成してもよい。
【００２２】
畳み込みニューラルネットワークは、画像の分類用に学習済のものでもよく、学習ステップは、学習済みの畳み込みニューラルネットワークを更に学習させる。セグメント化の学習データは、ノイズのある粗セグメント化の学習データ（クラウドソースのデータから定義されるもの等）であってもよい。
【００２３】
本方法は、エンコーダステージ内の層とデコーダステージ内の対応する層との間のスキップ接続を使用して、低解像度であるが強力な特徴量と、デコーダステージ内のアップサンプリング時に高解像度であるが弱い特徴量とを組み合わせるように、畳み込みニューラルネットワークを適応させることを含んでもよい。
【００２４】
マスク画像の勾配整合性損失関数は、バイナリ交差エントロピー損失関数と組み合わされて、組み合わされた損失を最小限に抑えることができる。前記方法は、モバイル端末上に記憶するための物体のセグメント化マスクを定義するために画像を処理する畳み込みニューラルネットワークを提供することを含んでもよい。
【００２５】
方法が提供され、その方法は、コンピュータ装置の記憶ユニットに、各ピクセルが物体のピクセルであるか否かを判定するために画像のピクセルを分類するように構成された畳み込みニューラルネットワークを記憶することを含み、畳み込みニューラルネットワークは、物体のセグメント化マスクを定義するように適合され、セグメント化データで学習させた画像の分類のための学習済ネットワークを備える。
【００２６】
畳み込みニューラルネットワークは、セグメント化データを使用した学習時にマスク画像の勾配整合性損失を最小限に抑えるように更にトレーニングされ、畳み込みニューラルネットワークを使用してコンピュータ装置の処理ユニットを介して画像を処理し、新画像を定義するために物体のセグメント化マスクを生成することができる。
【００２７】
画像を処理する方法が提供される。前記方法は、各ピクセルが毛髪ピクセルであるか否かを決定するために画像のピクセルを分類するように構成された畳み込みニューラルネットワークをコンピュータ装置の記憶ユニットに記憶することと、毛髪のセグメント化マスクを定義するためにセグメント化データで学習されたときにマスク画像勾配整合性損失を最小化するように畳み込みニューラルネットワークを学習させることと、記憶ユニットに結合されたコンピュータ装置の処理ユニットによって、毛髪のセグメント化マスクを使用して画像内の毛髪ピクセルに新しい毛髪色を適用することにより、着色された毛髪画像を定義および提示することと、を含む。
【００２８】
処理ユニットを介して画像を受け取るステップと、処理ユニットを介して画像内の毛髪のピクセルを識別する毛髪のセグメント化マスクを定義するステップと、処理ユニットを介し、毛髪のセグメント化マスクを使用して画像内の毛髪ピクセルに新毛髪カラーを適用することによって着色された毛髪画像を定義するステップと、処理ユニットを介し、着色された毛髪画像を表示装置に提供するステップとを含む、画像を処理する方法が提供される。処理ユニットに結合された記憶ユニットによって記憶された畳み込みニューラルネットワークを使用して画像を処理し、複数の畳み込みフィルタを一連の畳み込み層に適用して、各特徴を検出することで前記毛髪のセグメント化マスクが定義され、畳み込みニューラルネットワークは、ノイズの多い粗いセグメント化データで学習され、マスク画像の勾配整合性損失を最小限に抑えて毛髪セグメント化マスクを定義する。
【００２９】
連続する第１セットの畳み込み層は、第１の画像解像度から最低解像度まで画像をダウンサンプリングする出力を提供し、連続する第２セットの畳み込み層は、出力を第１の画像解像度にアップサンプリングし、畳み込みニューラルネットワークは、第１セットと第２セットとの間の対応する畳み込み層間のスキップ接続を使用する。
【００３０】
畳み込みニューラルネットワークは、第１の画像解像度にアップサンプリングして出力するアップサンプリング機能を備え、そのアップサンプリング機能は、第２セットの畳み込み層の最初の層の前と、第２セットの畳み込み層の各後続の層の前とに点在する。
【００３１】
アップサンプリング機能は、各スキップ接続を使用し、各スキップ接続のそれぞれは、第２セットの畳み込み層の次の畳み込み層への入力として、連続して隣合う畳み込み層から出力される第１アクティベーションマップと、第１セットの畳み込み層の内、より前の畳み込み層から出力される第２アクティベーションマップとを組み合わせ、第２アクティベーションマップは、第１アクティベーションマップよりも大きい画像解像度を有する。各スキップ接続は、第２アクティベーションマップに適用される１×１畳み込みフィルタの出力を、第１アクティベーションマップに適用されるアップサンプリング機能の出力に加算して、第１アクティベーションマップの解像度をより大きなイメージ解像度に増大させるように定義してもよい。
【００３２】
前記方法は、処理ユニットによって表示装置を介してグラフィカルユーザインターフェース（ＧＵＩ）を提示することを含んでもよく、グラフィカルユーザインターフェースは、画像を見るための第１部と、着色された毛髪画像を同時に見るための第２部とを含む。
【００３３】
本方法は、着色された毛髪画像中の新しい毛髪色に照明条件処理を適用し、新しい毛髪色を異なる照明条件で示すことを含んでもよい。
【００３４】
新しい毛髪色は、第１の新しい毛髪色であり、着色された毛髪画像は、第１の着色された毛髪画像である。このような場合、前記方法は、処理ユニットによって、毛髪のセグメント化マスクを用いて画像内の毛髪ピクセルに第２の新しい毛髪色を適用し、表示装置に出力するための第２着色された毛髪画像を提供することにより、第２着色された毛髪画像を定義および提示することを含むことができる。前記方法は、処理ユニットによって、表示装置を介して２つの新しい色のグラフィカルユーザインターフェースを提示することを含むことができ、２つの新しい色のグラフィカルユーザインターフェースは、第１の着色された毛髪画像を見るための第１部分と、第２の着色された毛髪画像を同時に見るための第２部分とを備える。
【００３５】
前記方法は、処理ユニットによって、画像内の毛髪ピクセルの現在の毛髪色を含む色について画像を分析するステップと、提案された１以上の新しい毛髪色を決定するステップと、提案された新しい毛髪色をグラフィカルユーザインターフェースのインタラクティブ部（対話部）を介して提示して、新しい毛髪色を選択して着色された毛髪画像を定義するステップとを含むことができる。
【００３６】
処理ユニットは、畳み込みニューラルネットワークを実行するための画像処理ユニット（ＧＰＵ）を含むことができ、処理ユニットおよび記憶ユニットは、スマートフォン又はタブレットのいずれかから構成されるコンピュータ装置に提供することができる。前記方法の画像は、ビデオにおける複数のビデオ画像のうちの１つであってもよく、前記方法は、処理ユニットによって複数のビデオ画像を処理して毛髪色を変えることを含んでもよい。
【００３７】
畳み込みニューラルネットワークは、各ピクセルが毛髪ピクセルであるか否かを決定するために画像のピクセルを分類するように適合されたモバイルネット（Mobilenet）ベースのモデルを含み得る。畳み込みニューラルネットワークは、個々の標準の畳み込みが深さ方向畳み込みと１×１畳み込みとに分解される畳み込みを含む深さ方向分離可能畳み込みニューラルネットワークとして構成されてもよく、深さ方向畳み込みは、各入力チャンネルに単一のフィルタを適用するように制限され、１×１畳み込みは、深さ方向畳み込みの出力を組み合わせるように制限される。
【００３８】
これらおよび他の態様は、（非一時的である）記憶ユニットが、処理ユニットによって実行されたときに、本明細書のコンピュータ実装された方法態様のいずれかを実行するようにコンピュータ装置の動作を構成する命令を記憶する、コンピュータプログラムプロダクトの態様を含むことは当業者には明らかである。
【図面の簡単な説明】
【００３９】
【図１】本明細書の実施例による、画像のピクセルを分類するためのランダムフォレストベースの分類のアプリケーションの概略図である。
【図２】Google社のMobilenetモデルによる深層ニューラルネットワークアーキテクチャの図である。
【図３】本明細書の実施例による、画像を処理して画像のマスクを生成するように構成された深層ニューラルネットワークアーキテクチャの図である。
【図４】本明細書の実施例による、スキップ接続を使用して画像を処理して画像のマスクを生成するように構成された深層ニューラルネットワークアーキテクチャの図である。
【図５】本明細書の実施例による、マスク画像の勾配整合性損失の尺度学習を伴うスキップ接続を使用して画像を処理し、画像のマスクを生成するように構成された深層ニューラルネットワークアーキテクチャの図である。
【図６】図３から図５のニューラルネットワークモデルの定性的結果を示す画像の表である。
【図７】図３および図５のニューラルネットワークモデルの定性的結果を示す画像の表である。
【図８】本明細書の実施例による、画像を処理する深層ニューラルネットワークで構成されたコンピュータ装置のブロック図である。
【図９】本明細書の実施例による、図８のコンピュータ装置の動作のフローチャートである。
【図１０】本明細書の教示による、例示的な畳み込みニューラルネットワークを定義するステップのフローチャートである。
【００４０】
【００４１】
【００４２】
【００４３】
【００４４】
【００４５】
【００４６】
【００４７】
【００４８】
【００４９】
本発明の概念は、添付の図面を参照し、本明細書の各実施形態おいて説明する。同様の参照番号は全体を通して同様の特徴を指すこととする。本明細書で使用されるとき、用語「発明」は、単に実施形態自体ではなく、以下に記載される実施形態の基礎をなす発明概念を暗示することが意図される。さらに、本発明の一般的な概念は以下に記載される例示的な実施形態に限定されず、以下の説明はそのような観点から読まれるべきである。
【００５０】
さらに、例示として本明細書で指定される構造、プロセス、設計、技法などの任意の実施形態は必ずしも、他のそのような実施形態よりも好ましい、または有利であると解釈されるべきではない。例示として本明細書に示される例の特定の品質または適合性は、意図されておらず、推論されるべきでもない。
【発明を実施するための形態】
【００５１】
（深層学習とセグメント化）
リアルタイムな画像のセグメント化は、多数のアプリケーションを有するコンピュータビジョン（生の画像情報の処理）において重大な課題である。その中には、美容アプリケーションにおけるライブでのカラー増強のための毛髪のセグメント化がある。しかしながら、この使用例では、さらなる課題がある。第１に、単純な形状を有する多くの物体とは異なり、毛髪は非常に複雑な構造を有する。現実感のあるカラー増強のためには、粗い毛髪のセグメント化マスクでは不十分である。代わりに毛髪マットが必要である。第二に、多くの美容アプリケーションは、強力なコンピューティングリソースが利用できないモバイル端末またはウェブブラウザで実行される。これは、リアルタイムな動作を達成することをより困難にする。本明細書では、モバイル端末上で３０ｆｐｓを超える毛髪を正確にセグメント化するためのシステム及び方法等について説明する。
【００５２】
毛髪のセグメント化システム及び方法は、畳み込みニューラルネットワーク（ＣＮＮ）に基づく。最新の畳み込みニューラルネットワークのほとんどは、強力な画像処理装置（ＧＰＵ）上でもリアルタイムで動作することができず、大量のメモリを占有する可能性がある。本明細書のシステム及び方法の目的は、モバイル端末上でのリアルタイムな動作である。第１の寄稿では、最近提案されたGoogle社のMobileNets（モバイルネット）（登録商標）のアーキテクチャを毛髪のセグメント化にどのように適応させるかが示されており、これは、モバイル端末で使用するのに十分高速かつコンパクトである。MobileNetsに関する詳細はHowardらの、arXiv:1704.04861v1[cs:CV]２０１７年４月１７日の「Mobilenets:Efficient：Convolutional  Neural  Networks  for  Mobile  Vision  Applications」に見出すことができ、これは、本明細書に参照によって組み込まれる。
【００５３】
詳細な毛髪のセグメント化のグラウンドトゥルースがない場合、ネットワークは、ノイズのある粗いクラウドソースのデータ（粗くセグメント化したデータであり、ピクセルレベルのラベリングが細かくない（正確でない）もの）で学習される。しかしながら、粗くセグメント化した結果は、毛髪色の増強の目的に対して美的に不快である。現実感のあるカラー増強のために、より正確な毛髪マットは、改善された結果をもたらす。第２の寄稿では、正確な毛髪マットの学習データを必要とせずに、リアルタイムでより正確な毛髪マットを得る手法を提案した。最初に、ベースラインネットワークのアーキテクチャを改良して、細かいレベルで詳細にキャプチャする能力を持たせる方法を示す。次に、知覚的に魅力的なマッティング（マットの生成）の結果を促進する二次損失関数を追加することによって、毛髪のセグメント化に関する粗い学習データのみを使用して、詳細な毛髪マットを生成するようにネットワークに学習させることできる。このアプローチを単純なガイドフィルタ（時間計算量が画像サイズに線形性を持つエッジ保存フィルタ）の後処理と比較し、より正確でシャープな結果が得られることを示しました。
【００５４】
深層学習およびセグメント化を詳細に説明する前に、本出願人によって、モバイル端末上のビデオで使用する毛髪カラーリングソリューションを開発するための従来のアプローチが行われ、評価された。一例として、カラーヒストグラム、位置および勾配係数の特徴に基づくランダムフォレスト（ＲＦ）モデルを組み込んだ分類器を開発した。分類器は周知のように、ピクセルを連続的に処理し、フィルタ又はカーネルを画像の周りにスライドさせて、フィルタ中央のピクセルが毛髪ピクセルであるか否かを判定した。図１には、ランダムフォレスト分類器１０６を使用して連続的にピクセルを処理するために、画像上でフィルタ１０２を走査することで画像１００が処理され、フィルタ１０２の中央のピクセル１０４が毛髪ピクセルであるか否かを出力する図が示されている。出力１０８は、毛髪マット（図示せず）を定義（画定）するために使用することができ、その出力は、その毛髪マット内において対応するピクセルのデータ値である。図１では、フィルタ１０２、中心ピクセル１０４、及び図示された経路は縮尺通りではない。結果は、スピードも正確さも有望ではなかったので、深層学習のためにこのアプローチは廃棄された。
【００５５】
深層学習がそもそも選択されなかった理由は、モバイル端末上でリアルタイムに実行させることが依然として非常に困難であるからである。ほとんどの深層学習のアーキテクチャは、パワフルなＧＰＵ上であってもリアルタイムに動作するわけではない。最初のアプローチは、Visual Group Geometryのニューラルネットアーキテクチャ、即ちＶＧＧ１６を適合させた。ImageNet（画像認識のソフトウエアの研究で使用するために設計された大規模なビジュアルデータベース（オープンソースのデータセット））上で学習済のＶＧＧ１６ベースの分類ネットワークは、最後の３つの層（例えば、全結合層および出力層）を除去してセマンティックセグメンテーションのネットワークに変換し、いくつかの畳み込み（conv）転置層を追加することによって適合された。結果（出力）は非常に良好であったが、特にモバイル端末では（フレーム当たり１秒以上）処理が遅かった。従って、このアプローチは、サイズがより小さく、処理速度を向上させるためにより少ない動作を実行する等、より軽いアーキテクチャを見つけるようにシフトされた。
【００５６】
（Mobilenetアーキテクチャ）
Google社のMobilenetアーキテクチャは、モバイル端末用に実装された軽量かつ学習済の深層学習のニューラルネットワークアーキテクチャである。図２はMobilenetのネットワーク２００の概略図であり、入力としてのソース画像１００、Mobilenetの学習済畳み込みニューラルネットワークによるネットワーク層／層グループ２０２、及びMobilenetのネットワーク２００の出力としての分類ラベル２０４を示す。Mobilenetによって処理される入力画像は、３つの色値を有し、解像度が２２４×２２４ピクセルである（即ち、２２４×２２４×３）。
【００５７】
Mobilenetアーキテクチャは、処理演算（即ち、浮動小数点演算、乗算或いは加算等）を最小化するために、深さ方向に分離可能な畳み込み（因数分解の畳み込みの形式）を採用している。深さ方向に分離可能な畳み込みは、標準の畳み込みを深さ方向の畳み込み（depthwise convolution）と、１×１の畳み込みである点ごとの畳み込み（pointwise convolution）とに分解する（例えば、関数を分割する）ことにより、必要な演算の数を減らすか最小化し、処理をより高速にすることを目的としている。深さ方向の畳み込みは、各入力チャンネルに単一のフィルタを適用する。次いで、「pointwise convolution」は、深さ方向の畳み込みの出力を結合するために１×１の点ごとの畳み込みを適用し、標準の畳み込みによって実行される単一のフィルタリング及び結合の演算ではなく、フィルタリング及び結合の機能／演算を２つのステップに分離する。従って、アーキテクチャ２００の構造は、「層グループ」を定義または例示するために、１つの「depthwise convolution」及び１つの「pointwise convolution」という、構造当たり２つの畳み込み層を含むことができる。
【００５８】
表１は、左から始まってSoftmaxの演算に至るまでの、１７の層／層グループ２０２の各々についてのアクティベーションマップのサイズ情報と、（複数の）処理操作の情報とを示している。Mobilenetは厳密には、その第１の完全な畳み込み層と、その全結合層から２８の畳み込み層を有している。
【表１】
2021502627.tif 000004
【００５９】
表１において、ＢＮは複数のアクティベーション（例えば、１つの層／処理から次の層／処理へ提供されるアクティベーションマップ内の個々の値）を調整し、スケーリングすることによって、入力（後続の処理へ）を正規化するためのバッチ正規化関数（batchnorm）を表している。ＲｅＬＵは「rectifier」であり、正規化線形関数（例えば、Ｘのすべての負の値が０に設定されるような入力Ｘの最大関数（Ｘ，０））を表している。ダウンサンプリングは、最初の層と同様に、深さ方向の畳み込みにおいてストライドされた畳み込みで処理される。７×７の平均プールによる最後のダウンサンプリングは、７×７の配列における平均値に基づいたダウンサンプリング関数を使用する。Softmax又は正規化指数関数は、任意の実数値のＫ次元ベクトルｚを、実数値のＫ次元ベクトルσ(ｚ)に「押しつぶし」、各エントリは範囲（０，１）内にあり、全てのエントリは合計で１になる（スケーリング及び正規化関数等）。有用なことに、出力は、カテゴリ分布、即ち、Ｋが異なる可能性のある結果（カテゴリ又はクラス）にわたる確率分布を表すために使用することができるため、Ｋのクラスに分類するニューラルネットワーク分類器と共に頻繁に使用される。１７の層のそれぞれは、図２の処理操作によってグレースケール及びパターンコード化される。
【００６０】
図３は、層／層グループ３０２を有する適合された深層学習ネットワーク３００を示す図である。ネットワーク３００はまた、処理のための入力としてソース画像１００を受信する。ネットワーク３００（例えば、その層／層グループ３０２）は、毛髪マスク３０４を出力するように適合される。表２は、左から始まって右に至るまでの、２２の層／層グループ３０２の各々についてのアクティベーションマップのサイズ情報と、処理動作の情報とを示している。
【表２】
2021502627.tif 000005
【００６１】
ネットワーク３００は、ネットワーク２００に類似しているが、適応されている。ネットワーク２００のような、１４×１４の解像度へのダウンサンプリングや、そのダウンサンプリングに次ぐ７×７の解像度へのダウンサンプリングは回避され、最小の解像度は層５〜１４において２８×２８である。最後の３つの層が除去される（即ち、２つの全結合層と最後のSoftmax層を通したSoftmax層も使用される）。微細なディテールを保つために、最後の２つの層のステップサイズを２から１に変更することによって、出力の特徴の解像度が増加される。Mobilenetの基本アーキテクチャに組み込まれたImageNet上で学習済の重みを使用することにより、更新された解像度を有する層のカーネルは、元の解像度に対するスケールファクタによって拡張される。即ち、２倍に増加した層のカーネルは２倍に拡張され、４倍に増加した層のカーネルは４倍に拡張される。これにより、エンコーダステージでの最終的な最低の解像度は２８×２８が得られる。層／層グループ１５及びそれ以降は、デコーダステージと定義することができる。
【００６２】
層２〜１４、１６、１８及び２０は、深さ方向に分離可能な畳み込み（深さ方向の畳み込みが各入力チャンネルに単一のフィルタを適用し、かつ点ごとの畳み込みが深さ方向の畳み込みの出力を結合する、分解された標準畳み込み）を組み込む。深さ方向に別々の畳み込みは、計算およびモデルサイズを低減する効果を有し、これらは両方とも、モバイル端末環境における処理を支援する。
【００６３】
デコーダ段階は、エンコーダ段階から上記の畳み込みニューラルネットワークの特徴を入力として取り込み、元の２２４×２２４の解像度で毛髪マスクにアップサンプリングする。アップサンプリングは、層１５，１７，１９で行われ、層１６，１８，２０における更なる特徴分析と交互に行われる。アップサンプリングは、反転したMobilenetアーキテクチャが単純化されたバージョンによって実行される。各ステージにおいて、処理は、２×２の近傍の各ピクセルを複製することによって、前の層を２倍にアップサンプリングする。次に、表２に示すように、深さ方向に分離可能な畳み込みが適用され、続いて６４のフィルタを用いた１×１の点ごとの畳み込みが適用され、続いてＲｅＬＵが適用される。処理は、毛髪／非毛髪について、Softmaxの活性化（アクティベーション）と、２つの出力チャンネルを有する１×１の点ごとの畳み込みを追加することによって、層／層グループ２１で終了する。
【００６４】
図示されていないが、ネットワークは、予測されたマスクとグラウンドトゥルースマスクとの間のバイナリ交差エントロピー損失ＬMを最小化するように学習される。バイナリ交差エントロピーは、図５に関連して以下でさらに考察される。
【００６５】
従って、図３は、毛髪のセグメント化のための完全畳み込みMobilenetアーキテクチャを示している。このように定義され学習されたモデルは、それぞれの特徴を検出するために一連の畳み込み層で複数の畳み込みフィルタを適用し、一連の第１セットの畳み込み層は、第１（最初）の画像解像度から最低解像度まで画像をダウンサンプリング（符号化）（エンコード）する出力を提供し、一連の第２セットの畳み込み層は、第１（最初）の画像解像度まで出力をアップサンプリングして戻す。このモデルは、第１（最初）の画像解像度まで出力をアップサンプリングするために、第２セットの畳み込み層の最初の層の前と、第２セットの畳み込み層の各後続の層の前と、に点在するアップサンプリングの処理を有している。第１セットはエンコーダステージと定義し、第２セットはデコーダステージと定義することができる。
【００６６】
深層ニューラルネットワークの学習は大量の情報を必要とする。一般的なセマンティックセグメンテーションのための大きなデータセットがあるが、これらのデータセットは毛髪のセグメント化のためにはあまり人気がない。さらに、比較的単純な形状を有する自動車のようないくつかの物体とは異なり、毛髪の形状は非常に複雑である。従って、毛髪のための正確なグラウンドトゥルースセグメンテーションを得ることは、さらに困難である。
【００６７】
この課題に対処するために、ImageNet上の学習済ネットワークが使用された。それは毛髪のセグメント化データでさらに微調整された。それにもかかわらず、数千の学習画像が依然として必要とされる。データは、ユーザが手動で毛髪にマークを付ける必要がある毛髪のカラーリングアプリを使用してクラウドソースされたデータである。このデータの取得は安価であるが、結果として得られる毛髪のセグメント化ラベルは非常にノイズが多く、粗い。このソースデータは、人間の顔の画像を十分に良好な毛髪マスクで保持することで、手動でクリーニングすることができる。これは、最初から毛髪をマーキングしたり、不正確なセグメント化を修正したりするよりもかなり速い。試験データの２つのインハウスセットも同様に定義される。
【００６８】
上記のネットワーク３００は、Apple社のCore ML（登録商標）ライブラリを組み込んだApple社のiPad（登録商標）Pro12.9(2015)上に実装された。Core MLは、MobilenetモデルからMobilenetクラスを自動的に生成し、上述したように適応させることができる。並列化を利用するために、モデルは、iPadのＧＰＵ及びその関連メモリを使用して処理された。所望の処理を達成するためのいくつかの実施形態では、畳み込みニューラルネットワークがＧＰＵによって処理（例えば、実行）されてもよく、他の実施形態では、コンピュータ装置のＣＰＵを使用して処理するのに充分であり得ることに留意されたい。
【００６９】
アーキテクチャ（３００）のコンパクトさとCore MLライブラリの使用とにより、単一の画像上のフォワードパスは６０ｍｓしか必要としない。また、このネットワークは、Tensorflow (Google社が開発した、機械学習および深層学習を支援する高性能の数値計算用のオープンソースのソフトウェアライブラリ）を用いて実装した。同等の処理は〜３００ｍｓで遅かった。Tensorflow（登録商標）にはNEON（登録商標）の最適化があるが（NEONテクノロジは、Arm Limitedの特定のプロセッサ向けに拡張したシングルインストラクション・マルチプルデータ（ＳＩＭＤ）のアーキテクチャである）、画像処理用に最適化されていない。現代の電話およびタブレット上のＧＰＵは、かなりのパワーを備えていることが認識されている。
【００７０】
このモデルは表３に示すように、既に非常に良好な定性的及び定量的な結果をもたらし、ここで、インハウスセット１は、３５０個の顔のトリミングされた画像を含む。これは、クラウドソースのデータから手動で注釈付けされ、使用される学習データと類似している。インハウスセット２は、（ソース入力装置からの）３：４のアスペクト比の１０８個の顔画像であり、手動でラベル付けされる。インハウスセット１の方が手動のラベル付けが粗く、インハウスセット２の方は手動のラベル付けが細かく、いずれのセットも細かいラベル付けはされていません。
【表３】
2021502627.tif 000006
【００７１】
しかしながら、このアプローチは、依然として全ての毛髪をキャプチャするわけではなく、正確なアルファマットではなく、粗くてぼやけたマスクのみを提供する。得られたマスクをガイドフィルタリングを使用して後処理し、より視覚的に訴えるものにすることにより、以下で更に説明するように、わずかな誤差のみが補正される。
【００７２】
畳み込みニューラルネットワークを使用して、より真の（好ましくは真の）マットを得るために、結果を改善することが望まれている。この枠組みには２つの課題が存在し、即ち、畳み込みニューラルネットワーク３００はエンコーダステージにおいて画像をかなりの程度でダウンサンプリングしているため、結果として得られるマスクに非常に高解像度のディテールを含ませることは期待できない。また、上述したように、学習データもテストデータも、マッティング方法を学習および評価するために十分な精度で利用可能ではない。
【００７３】
ダウンサンプリングの第１の問題に対処するために、アップサンプリング動作を再定義するためのスキップ接続がアーキテクチャに追加される。スキップ接続を追加することにより、強力であるが低解像度の特徴は、弱いが高解像度の特徴と組み合わされる。スキップ接続が追加されたことでダウンサンプリングを制限する必要が無くなったので、アーキテクチャは元のエンコーダアーキテクチャに戻り、７×７の解像度になっていることに留意されたい。例えば、図３のアーキテクチャが適応され、解像度が２８×２８で停止されている場合、より少ないスキップ接続が採用される。この方法では、エンコーダの浅い層であって、高解像度であるが弱い特徴量を含む層は、より深い層からの、低解像度であるが強力な特徴量と組み合わされる。これらの層は最初に、入力されるエンコーダ層に１×１の点ごとの畳み込みを適用して、入力されるデコーダ層（３つの外側のスキップ接続については６４、内側のスキップ接続については１０２４）と互換性のある出力深さを作り、次いで、加算を使用して層をマージすることによって結合される。解像度ごとに、その解像度で最も深いエンコーダ層がスキップ接続用に使用される。
【００７４】
図４は、層／層グループ４０２を有する適合された深層学習ネットワーク４００を示す図である。ネットワーク４００はまた、処理のための入力としてソース画像１００を受信する。ネットワーク４００（例えば、その層／グループ４０２）は、毛髪マスク４０４を出力するように適合される。
【００７５】
表４は、左から始まって右に至るまで、２６の層／層グループ４０２の各々についてのアクティベーションマップのサイズ情報と処理動作の情報とを示している。
【００７６】
ネットワーク３００とネットワーク４００の両方のモデルでは、複数の畳み込みフィルタの各々がアクティベーションマップを生成し、１つの畳み込み層によって生成されたアクティベーションマップが出力され、次の連続する畳み込み層への入力が提供される。複数の畳み込みフィルタは、第１セットの畳み込みフィルタと、第２セットの畳み込みフィルタとを含み、第１セットの畳み込みフィルタは、エンコーダを含むように第１セットの層（例えば、ネットワーク４００の層２〜１４）で画像を処理し、第２セットの畳み込みフィルタは、デコーダを含むように第２セットの層（例えば、ネットワーク４００の層１６、１８、２０、２２、及び２４）で画像を処理する。毛髪のセグメント化マスクは、一連の最終の畳み込み層（例えば、層２５）からの、最終的なアクティベーションマップから定義（画定）される。
【００７７】
ネットワーク３００又はネットワーク４００のモデルは、出力を正規化し線形に整流するために、第１セットの畳み込みフィルタが、点在する正規化関数および線形関数を連続して含み得る。モデルは、出力を線形に整流するために、第２セットの畳み込みと点在する線形関数を含み得る。ネットワーク３００又はネットワーク４００のモデルでは、第１セットの層が、初期の３×３の畳み込みフィルタによって定義される初期層と、後続の複数の深さ方向に分離可能な畳み込みと、を備え、その深さ方向に分離可能な畳み込みのそれぞれは、それぞれ連続する深さ方向の３×３の畳み込みフィルタ、バッチ正規化関数（ＢＮ）及び正規化線形関数（ＲｅＬＵ）、並びに１×１の点ごとの畳み込みフィルタに続くバッチ正規化関数（ＢＮ）及び正規化線形関数（ＲｅＬＵ）によってそれぞれ定義される。
【００７８】
ネットワーク３００又はネットワーク４００のモデルでは、第２セットの層は、それぞれの３×３の深さ方向の畳み込みフィルタ、１×１の点ごとの畳み込みフィルタ、及び正規化線形関数（ＲｅＬＵ）によってそれぞれが定義される連続する複数の初期層と、最終的な１×１の点ごとの畳み込みフィルタ及び正規化線形関数（ＲｅＬＵ）によって定義される最終層とを備える。
【表４】
2021502627.tif 000007
【００７９】
図４は、層１５、１７、１９、２１及び２３におけるアップサンプリング処理を示す。層１５、１７、１９、２１でのアップサンプリングは、前の層の出力マップとのスキップ接続を実行することを含む。前の層のマップは、目標の解像度に等しい解像度を有する。これらの層におけるアップサンプリング機能は、エンコーダステージのうち、より前の対応する層のマップに対して１×１の点ごとの畳み込み処理を実行してチャンネル情報を組み合わせ、そして、より前の層からのマップと同じ解像度を有するように、それぞれの層へのインプットとして通常提供される、隣合う層のアクティベーションマップに対してアップサンプリング処理（例えば、上述のように２×２）を実行する。１×１の点ごとの畳み込み処理の出力と、アップサンプリング処理の出力とが加算される。
【００８０】
従って、アップサンプリング機能は、それぞれスキップ接続を使用し、それぞれのスキップ接続は、第２セットの畳み込み層の次の畳み込み層への入力として、連続して隣接する畳み込み層から出力される第１アクティベーションマップと、第１セットの畳み込み層の内、より前の畳み込み層から出力される第２アクティベーションマップとを結合し、第２アクティベーションマップは、第１アクティベーションマップよりも大きい画像解像度を有している。それぞれのスキップ接続の各々は、第２アクティベーションマップに適用される１×１の点ごとの畳み込みフィルタの出力と、第１アクティベーションマップに適用されるアップサンプリング関数の出力とを加算して、第１アクティベーションマップの解像度をより大きなイメージ解像度に増大させるように定義される。最後に、毛髪のセグメント化マップは、最終のアクティベーションマップにSoftmax（正規化指数関数）を適用して、毛髪のセグメント化マップの各ピクセルに０と１との間の値を定義することによって定義される。
【００８１】
このアプローチの定量的な結果を表５に示す。
【表５】
2021502627.tif 000008
【００８２】
更に、最終的なエンコーダでの解像度の低下のために、上記のアーキテクチャは、追加のデコーダ層を含んでいても、はるかに高速である。Core MLを使用した１枚の画像上でのフォワードパスは、AppleのiPad Pro 12.9 (2015)で３０ｍｓかかる。
【００８３】
正解率の観点からはスキップ接続のないモデルよりも第２のセットの方が良いように見えるが、第１のセットの結果は決定的ではない。これは、上記の第２のポイント、即ち、粗いセグメント化データが限られた精度しか有さず、これが学習だけでなく試験も妨害することを示している。
【００８４】
このようなデータを用いた定量的な評価は、現在の性能レベルで多かれ少なかれその能力に達したと主張されている。しかしながら、定性的には、このアーキテクチャも僅かに良好であるように見える。考えられる説明の１つとしては、スキップ接続のアーキテクチャが微細なレベルのディテールを学習する能力を有するが、これらのディテールは我々の現在の学習データには存在せず、結果として得られるネットワーク出力のマスクが学習セットと同じくらいの粗さとなるということである。
【００８５】
（マスク画像の勾配整合性損失の評価と最小化）
利用可能な学習および試験データが与えられると、畳み込みニューラルネットワークは、粗いセグメント化の学習データのみを使用して毛髪マットの生成を学習することに限られる。Rhemannらの研究によって動機付けられて、知覚的に着想を得たマスクの正確さの尺度が追加されている。そのために、マスク勾配と画像勾配との間の整合性の尺度が追加される。距離（損失）の尺度は以下の通りである。
【００８６】
マスク画像の勾配整合性損失を数式１に示す。
2021502627.tif 000009
【００８７】
Ｉｘ，Ｉｙは正規化された画像勾配、Ｍｘ，Ｍｙは正規化マスク勾配、Ｍｍａｇはマスク勾配の大きさである。画像勾配とマスク勾配との間に一致がある場合、損失（ＬＣ）の値は小さい。この損失は、重みｗで元のバイナリ交差エントロピー損失に加算され、全体的な損失となる。
2021502627.tif 000010
【００８８】
２つの損失の組み合わせは、画像エッジに従うマスクを生成しながら、学習マスクに忠実であることの間のバランスを維持する。このマスク画像の勾配整合性損失（gradient consistency loss）の尺度は、既存のモデルの評価と新しいモデルの学習とに使用され、バイナリ交差エントロピー（損失）の尺度は、数式２に示されるように、数式１の新しい尺度と組み合わされる。
【００８９】
交差エントロピー損失またはログ損失は、出力が０と１との間の確率値である分類モデルのパフォーマンスを測定する。交差エントロピー損失は、予測確率が実際の（真の）ラベルから逸脱するにつれて増加する。本実施形態では、モデルは、バイナリ交差エントロピー損失ＬＭが以下の数式３のように計算され得るように、それぞれの観測値ｏにおける各ピクセルを、２つのクラスｃ（毛髪，非毛髪）のうちの１つとして分類する。
2021502627.tif 000011
【００９０】
ここで、ｙは、観測値ｏの正しい分類のための０又は１の２値のラベル（バイナリラベル）であり、ｐは、観測値ｏがクラスｃのものであると予測される確率である。
【００９１】
図５は、画像１００（Ｉ）を受け取ってマスク５０４（Ｍ）を生成するスキップ接続を有するネットワーク５００を含む学習アーキテクチャを示す。ネットワーク５００はネットワーク４００と構造が同等であるが、上述した損失尺度を使用して学習される。
【００９２】
また、マスク画像の勾配整合性損失の決定要素５０８へ向けた、学習のためのＩｘ，Ｉｙ(正規化された画像勾配）を含む画像１００からの入力５０２と、Ｍｘ，Ｍｙ(正規化されたマスク勾配）を含む入力５０６とが示されている。また、バイナリ交差エントロピー損失の決定要素５１０も示されている。マスク画像の勾配整合性損失ＬC及びバイナリ交差エントロピー損失ＬMは、組み合わされて（図示せず）、上述のようにネットワーク５００を学習させるための損失Ｌのパラメータを定義する。
【００９３】
従って、ネットワーク５００は、オープンソースの画像学習データを使用して学習済のネットワークなど、画像の分類のための学習済ネットワークを備える畳み込みニューラルネットワークである。学習済ネットワークは、イメージ自体を分類するのではなく、毛髪のセグメント化マスクのような物体のセグメント化マスクを定義するように適合される。畳み込みニューラルネットワークを学習時にマスク画像の勾配整合性損失を最小限に抑えるように更に学習させ、粗いセグメント化データを使用してそのように学習させてもよい。このマスク画像の勾配整合性損失は、バイナリ交差エントロピー損失と組み合わせることができる。畳み込みニューラルネットワークは更に、エンコーダステージ内の層とデコーダステージ内の対応する層との間のスキップ接続を使用して、デコーダステージ内でアップサンプリングする際に、低解像度であるが強力な特徴量と、高解像度であるが弱い特徴量とを組み合わせて物体のセグメント化マスクを定義するように適合される。
【００９４】
結果として得られるマスクは、よりマットのように見え、より詳細である。図６は、定性的な結果を示す画像テーブル６００を示す。処理される画像６０２（画像１００の例）と、図３〜図５のモデルをそれぞれ使用して生成されるそれぞれのマスク（マスク３０４、４０４及び５０４の例）が示される。マスク６０４は、図３に示すスキップ接続のないモデル（モデル１）を用いて作成され、マスク６０６は、図４に示すスキップ接続のモデル（モデル２）を用いて作成され、マスク６０８は図５に示すスキップ接続およびマスク画像の勾配整合性損失の学習後のモデル（モデル３）を用いて作成された
【００９５】
定量的にはこの方法が新しい整合性の尺度によってより良好なパフォーマンスを発揮するが、尺度の残りの部分（グラウンドトゥルースに対する類似性）に基づいて僅かにパフォーマンスが低下する。しかしながら、先に述べたように、現在のグラウンドトゥルースの精度が利用可能であるとすれば、あるレベルを超えてグラウンドトゥルースとの予測との一致を最大化することは望ましくないかもしれない。表６は、同じ試験データセットを用いた全てのモデルの定性的結果を示す。
【表６】
2021502627.tif 000012
【００９６】
図５のアーキテクチャのモデル３のマット出力を、図３のアーキテクチャのモデル１のより粗いマスク出力と比較し、ガイドフィルタ（guided filter）を追加したモデル１の出力と比較した。ガイドフィルタはエッジ保存フィルタであり、時間計算量は画像サイズに対して線形である。iPad Proで２２４×２２４の画像を処理するのに５ｍｓしかかからない。図７は、図３及び図５のモデルの定性的な結果を表す画像表７００を示す。処理される画像７０２（画像１００の一例）が示されている。画像７０４はガイドフィルタの後処理を伴わない、図３のモデル１からのマスクである。画像７０６はモデル１からのマスクであり、ガイドフィルタ後処理が追加されている。画像７０８は、図５のモデル３からのマスク（又はマット）出力である。上述したように、スキップ接続を使用して、モデル３をクラウドソースのデータからのノイズの多い粗いセグメント化データで学習させ、マスク画像の勾配整合性損失関数で学習させる。
【００９７】
ガイドフィルタを使用する画像７０６は、個々の毛髪がはっきり見える、より詳細なキャプチャを示す。しかしながら、ガイドフィルタは、マスクのエッジの近くで局所的にのみ細部を追加する。更に、精緻化されたマスクの縁部は、その周りに目に見えるハローを有し、これは、毛髪色のコントラストが周囲に比べて低い場合に一層明白になる。このハローは、毛髪色を変更する時に色の滲みを引き起こす。図５のアーキテクチャは（画像７０８に見られるように）よりシャープなエッジをもたらし、ガイドフィルタの後処理に見られる望ましくないハロー効果なしに、より長い毛髪をキャプチャする。
【００９８】
追加の特典として、図５のアーキテクチャは、図４のアーキテクチャと比較して２倍速く動作し、モバイル端末上でフレーム当たり３０ｍｓしかかからず、追加の後処理のマッティングステップを必要としない。高解像度の詳細をキャプチャするのに役立つスキップ接続の使用により、図５のアーキテクチャは、７×７の解像度を有する最も深い層の元のMobilenetのエンコーダ構成を維持する。これらの層は、多くの深さのチャンネル（１０２４）を有し、高解像度で処理するのに非常にコストがかかる。７×７の解像度を有することは、図４のアーキテクチャにおける２８×２８の解像度と比較して、処理をはるかに高速にする。
（実験）
【００９９】
この方法を３つのデータセットについて評価した。第１は、９０００の学習、３８０の検証、および２８２のテスト画像からなるクラウドソースのデータセットである３つのサブセットすべてに、元の画像とその反転バージョンが含まれる。ターゲットはモバイル端末上で毛髪マットを生成することであるため、データの前処理は顔を検出し、典型的なセルフィー（自分自身を撮影する自撮り）で予想されるスケールに基づいて顔の周りの領域をトリミングすることによって実行される。
【０１００】
この方法を既存のアプローチと比較するために、２つの公共のデータセット、即ち、KaeらのＬＦＷパーツデータセット、並びにGuo及びAarabiの毛髪データセットが評価される。前者は、１５００の学習、５００の検証、および９２７のテスト画像を有する、２９２７の２５０×２５０の画像からなる。ピクセルは、スーパーピクセルレベルで生成される、毛髪、皮膚、および背景の３つのカテゴリにラベル付けされる。後者は、１１５個の高解像度の画像からなる。学習するには画像が少なすぎるため、このセットを評価する際に、クラウドソースの学習データを使用する。このデータセットを我々の学習データと一致させるために、同様の方法での前処理が（顔検出およびクロッピングを使用して）実行され、反転させた画像も追加する。いくつかの場合において顔が検出されなかったので、結果として得られるデータセットは２１２個の画像からなる。
【０１０１】
学習は、Keras（FChollet  et  al,  https://github.com/Keras-team/Keras,  2015）のAdadelta（Adadelta: an  adaptive  learning  rate  method,"  arXiv  preprint  arXiv:1212.5701,  2012）法を用いて、学習率１：０、ρ＝０：９５、ε＝１ｅ−７でバッチサイズ４を用いて行われる。Ｌ２正則化は、畳み込み層に対してのみ、重み２×１０＾−５で使用される。空間方向の畳み込み層と最後の畳み込み層は正則化されない。損失バランスの重みは、（式（３））においてω＝０：５に設定される。
【０１０２】
３クラスのＬＦＷデータでは、毛髪クラスのみがマスク画像の勾配整合性損失に寄与している。モデルは、５０のエポックについて学習させ、検証データを使用して最良のパフォーマンスのエポックが選択される。クラウドソースのデータセットに関する学習は、Nvidia GeForce GTX 1080 Ti（Nvidia、GeForce、及びGTX 1080 Tiは、Nvidia Corporationの登録商標)のＧＰＵでは５時間かかり、学習セットのサイズがはるかに小さいため、ＬＦＷパーツでは１時間未満かかる。
【０１０３】
Ａ．定量評価
定量的性能分析のために、Ｆ値（F1 score）、パフォーマンス、ＩｏＵ、及び適合率を測定し、すべての試験画像にわたって平均する。画像および毛髪マスクのエッジの整合性を測定するために、マスク画像の勾配整合性損失の数式１も報告される。クラウドソースの画像（画像データ）を手動でクリーンアップしている間、画像はマスクに関連して補正されるのではなく、フィルタリングされるだけであったことを想起されたい。その結果、毛髪のアノテーションの品質は依然として劣っている。したがって、クラウドソースのデータに関する評価の前に、テストマスクの手動補正を行い、１回のアノテーション当たり２分以下を費やした。これにより、グラウンドトゥルースは若干改善された。本方法の３つの変形（モデル１、ガイドフィルタによる処理を有するモデル１及びモデル３）が、このラベルが付け直されたデータについて評価される。全ての３つの方法はグラウンドトゥルースの比較指標に関して同様のパフォーマンスを示すが、モデル３は勾配整合性損失のカテゴリにおける明確な勝者であり、そのマスクが画像のエッジにより忠実であることを示す。
【０１０４】
ＬＦＷパーツのデータセットでは、Qinらの最もパフォーマンスの高い方法で同等の性能が報告されているが、これはモバイル端末上でリアルタイムで達成される。Qinらで使用される唯一の尺度であるため、適合率の尺度のみが評価に使用される。特に、ＬＦＷパーツは、スーパーピクセルレベルでアノテーションされたので、そこでのグラウンドトゥルースは、高精度の分析には十分に良好でないことがある。Guo及びAarabiのデータセットでは、０：９３７６のＦ値および０：８２５３のパフォーマンスが報告されている。HNNをこの後処理されたデータセット上で再度実行し、Ｆ値０：７６７３及びパフォーマンス０：４６７４で、著者らによって報告されたものと同様のパフォーマンスを得た。
Ｂ. 定性的評価
【０１０５】
この方法は定性分析のために、公的に利用可能なセルフィー（自撮り）の画像で評価される。モデル１は、良好であるが粗いマスクを生じる。ガイドフィルタを有するモデル１はより良好なマスクを生成するが、毛髪の境界の周りに望ましくないぼやけを有する。最も正確でシャープな結果は、モデル３によって達成される。ガイドフィルタの後処理およびモデル３のそれぞれの不具合は、暗い毛髪の場合には眉毛、明るい毛髪の場合には明るい背景のような、毛髪の近傍における毛髪に類似した物体のセグメント化が不足する。
【０１０６】
加えて、毛髪の内部のハイライトは、モデル３の毛髪マスクを不均質にする可能性がある。
【０１０７】
Ｃ. ネットワークアーキテクチャの実験
検証データを用いて、多数のデコーダ層のチャンネルを用いた実験を行ったが、適合率に大きな影響を及ぼさないことが観察され、６４チャンネルがほとんどの尺度に対して最良の結果をもたらした。これらの実験は勾配整合性損失を使用せずに、図４のスキップ接続アーキテクチャを使用して行われた。
【０１０８】
Howardらは、Mobilenetがより高い画像の解像度でより良好に機能することを観察した。正確な毛髪マットを目標として本発明者らのモデル３を用いて実験を行い、解像度が２２４×２２４を超えた。これは、ImageNet上で学習したMobilenetの最高の解像度です。モデル３を使用して２２４×２２４の画像と４８０×４８０の画像から推定されたマスクの定性的比較は、４８０×４８０の結果が、顔の上（例えば、鼻の上）の毛髪を含めて長い毛髪がキャプチャされており、毛髪のエッジの周りでより正確に見えることを示す。しかしながら、前のセクションで述べた問題も強調され、より多くが毛髪でない毛髪マスクの領域に滲みが生じ、マスクの内側は毛髪のハイライトによって不均質になる。更に、より大きな画像を処理すると、コストがかなり高くなる。
【０１０９】
上述したように、モバイル端末のようなユーザのコンピュータ装置の実行時に、畳み込みニューラルネットワークが実行されるように構成される。畳み込みニューラルネットワークは、そのようなデバイスのＧＰＵ上で少なくとも部分的に実行されるように構成され、処理（例えば、そのようなＧＰＵにおける並列化）を利用する。一部の実装では、ＣＰＵ上で実行される場合がある。粗いセグメント化データ（学習データ）を使用して学習済ネットワークを定義する学習環境は、ランタイム環境によって異なり得ることが理解される。学習環境は学習動作を早めるために、より高い処理能力またはより多くの記憶装置を有することができる。
【０１１０】
図８は、モバイル端末（携帯用のモバイル端末）（例えば、スマートフォンまたはタブレット）などの、本発明の１又は複数の態様による例示的なコンピュータ装置８００のブロック図である。しかし、ラップトップ、デスクトップ、ワークステーションなどの別のコンピュータ装置であってもよい。上述したように、調査および開発の目的は、処理された画像（例えば、ビデオ）を効果的かつ効率的に生成するために、限られたリソースを有するモバイル端末上で動作するための深層ニューラルネットワークを生成することである
【０１１１】
コンピュータ装置８００は、例えば、ビデオのような１以上の画像を取得し、画像を処理して１以上の特性を変更し、新画像（新しい画像）を提示するためのユーザ装置を含む。一例では、画像を処理して、画像内の毛髪色を変更させる。コンピュータ装置８００は、１又は複数の演算装置８０２と、１又は複数の入力装置８０４と、ジェスチャーを用いて入出力を行う（ジェスチャーベース）入出力装置８０６と、１又は複数の通信ユニット８０８と、１又は複数の出力装置８１０とを備える。コンピュータ装置８００はまた、１以上のモジュール又はデータを記憶する１以上の記憶装置（storage devices）８１２を含む。モジュールは、深層ニューラルネットワークモデル８１４、ＧＵＩ（グラフィカルユーザインターフェース８１８）のためのコンポーネントを有するアプリケーション８１６、色予測８２０、及び画像取得８２２を含むことができる。データは処理するための１又は複数の画像（例えば、画像８２４）、１又は複数の画像から生成された１又は複数のマスク（例えば、画像８２４から生成されたマスク８２６）、および１又は複数のマスクおよび１又は複数の画像を使用して生成された１又は複数の新画像（例えば、新画像８２８）を含むことができる。
【０１１２】
アプリケーション８１６は、ビデオのような１又は複数の画像を取得し、画像を処理して１又は複数の特性を変更し、新画像を提示する機能を提供する。一例では、画像を処理して画像内の毛髪色を変更させる。アプリケーションは、ニューラルネットワークモデル８１４によって提供される深層ニューラルネットワークを使用して画像処理を実行する。ネットワークモデルは、図３、図４、および図５に示すモデルのいずれかとして構成することができる。
【０１１３】
アプリケーション８１６は画像の１又は複数の特性を変更するために、色データ８３０などの特定の特性データに関連付けられてもよい。特性を変更することは、新画像を作成するためにピクセル値を変更することに関連する。画像関連（例えば、画像を記憶、印刷、又は表示するための）のデータは、様々な色モデルおよびデータフォーマットを使用して表されてもよく、アプリケーション８１６はそれに応じて構成されてもよいことが理解される。他の例では、特性データが照明条件、テクスチャ、形状などの効果を変更することに関連し得る。アプリケーション８１６は、例えば、所望の位置（例えば、深層ニューラルネットワークによって識別された画像内の物体またはその一部）で画像にエフェクトを適用するために、特性（図示せず）を変更するための１又は複数の機能を用いて構成することができる。
【０１１４】
記憶装置２１２は、ＯＳ（オペレーティング・システム）８３２及び通信モジュールを含む他のモジュール、画像処理モジュール（例えば、演算装置８０２のＧＰＵのための）、マップ・モジュール、コンタクト・モジュール、カレンダー・モジュール、写真／ギャラリー・モジュール、写真（画像／メディア）エディタ、メディア・プレイヤー或いはストリーミング・モジュール、ソーシャル・メディア・アプリケーション、ブラウザ・モジュールなどの追加のモジュールを記憶することができる。記憶装置は、本明細書では記憶ユニットとして参照されることがある。
【０１１５】
通信チャンネル８３８は、構成要素８０２、８０４、８０６、８０８、８１０、８１２、及び構成要素間での通信のための任意のモジュール８１４、８１６、及び８２６のそれぞれを、通信可能、物理的、又は動作可能に結合することができる。いくつかの例では、通信チャンネル８３８が、システム・バス、ネットワーク接続、プロセス間通信データ構造、又はデータを通信する他の任意の方法を含むことができる。
【０１１６】
１又は複数の演算装置８０２はコンピュータ装置８００内で機能を実装し、又は命令を実行することができる。例えば、演算装置８０２は記憶装置８１２から命令又はデータを受信して、特に（例えば、ＯＳ、アプリケーションなどの）図８に示されるモジュールの機能を実行するように構成されてもよく、コンピュータ装置８００は、データ／情報を記憶装置８１２に格納してもよい。機能のいくつかは、本明細書において以下に更に記載される。動作は図８のモジュール８１４、８１６、及び８２６内に正確に含まれないことがあり、その結果、１つのモジュールが別のモジュールの機能を支援することができることを理解されたい。
【０１１７】
操作を実行するためのコンピュータ・プログラム・コードは、１又は複数のプログラミング言語、例えば、Java、Smalltalk、C++等のオブジェクト指向プログラミング言語、または「C」プログラミング言語または同様のプログラミング言語等の従来のプロシージャル・プログラミング言語の任意の組み合わせで書かれてもよい。
【０１１８】
コンピュータ装置８００は、入出力装置８０６のスクリーン上に表示するために、またはいくつかの例では、プロジェクタ、モニタ、又は他の表示装置による表示のために出力を生成することができる。入出力装置８０６は、様々な技術（例えば、抵抗式タッチスクリーン、表面弾性波タッチスクリーン、静電容量式タッチスクリーン、投影型静電容量式タッチスクリーン、感圧スクリーン、音響パルス認識タッチスクリーン、又は別のタッチ感応スクリーン技術、及び出力能力：液晶ディスプレイ（ＬＣＤ）、発光ダイオード（ＬＥＤ）ディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、ドットマトリクスディスプレイ、ｅインク、又は同様のモノクロまたはカラーディスプレイに関する）を使用して構成され得る。
【０１１９】
本明細書で説明する例では、入出力装置８０６は、タッチスクリーンを操作するユーザから、触覚操作またはジェスチャーをインプットとして受信できるタッチスクリーンデバイスを含む。そのようなジェスチャーは、タップジェスチャー、ドラッグジェスチャー又はスワイプジェスチャー、フリックジェスチャー、ユーザが入出力装置８０６の１又は複数の位置にタッチ又はポイントするジェスチャーの一時停止（たとえば、ユーザが少なくとも閾値時間にわたってスクリーンの同じ位置にタッチする場合）を含むことができる。入出力装置８０６はまた、ノンタップジェスチャーを含んでもよい。入出力装置８０６は、グラフィカルユーザインターフェースなどの情報をユーザに出力または表示することができる。入出力装置８０６は、コンピュータ装置８００の様々なアプリケーション、機能、及び性能を提示することができ、これらには、例えば、画像を閲覧し、画像を処理し、新画像を表示するためのアプリケーション８１８、メッセージングアプリケーション、電話通信、連絡先アプリケーションおよびカレンダアプリケーション、ウェブブラウジングアプリケーション、ゲームアプリケーション、電子書籍アプリケーション及び、支払い、並びに他のアプリケーションまたは機能が含まれる。
【０１２０】
本発明は、主に入出力機能を有するディスプレイスクリーンデバイス（例えば、タッチスクリーン）の形態の、ジェスチャーベースの入出力装置８０６について述べているが、動きを検出することができ、スクリーン自体を含まない他の入出力装置を利用できる。そのようなケースでは、コンピュータ装置８００がディスプレイスクリーンを含むか、または新画像を提示するためにディスプレイ機器に結合される。コンピュータ装置８００はトラックパッド／タッチパッド、１又は複数のカメラ、又は別のプレゼンス又はジェスチャー感知入力装置からジェスチャーベースの入力を受信することができ、プレゼンスは例えば、ユーザの全部または一部の動きを含むユーザのプレゼンス態様を意味する。
【０１２１】
１又は複数の通信ユニット８０８は、１又は複数のネットワーク上でネットワーク信号を送信または受信することによって、例えば、新しい特性データ又はアプリケーション機能を受信し、１又は複数の通信ネットワーク（図示せず）を介して別のコンピュータ装置、プリントデバイス、又はディスプレイデバイス（すべて図示せず）と新画像を共有するために、外部デバイス（図示せず）と通信することができる。通信ユニットは無線または有線通信のための、様々なアンテナ又はネットワークインターフェースカード、チップ（例えば、全地球測位衛星（ＧＰＳ））等を含むことができる。
【０１２２】
入力装置８０４および出力装置８１０は、１又は複数のボタン、スイッチ、ポインティングデバイス、カメラ、キーボード、マイクロフォン、１又は複数のセンサ（たとえば、生体認証など）、スピーカ、ベル、１又は複数のライト、触覚（振動）デバイスなどのいずれかを含むことができる。ユニバーサル・シリアル・バス（ＵＳＢ）又は他の通信チャンネル（例えば８３８）を介して、１以上の同じものを結合することができる。カメラ（入力装置８０４）は、ユーザが入出力デバイス８０６を見ながらカメラを使用して画像をキャプチャしてセルフィー（自撮り）を可能にするように、前方に向けられてもよい（即ち、同じ側にある）。
【０１２３】
１又は複数の記憶装置８１２は、例えば、短期記憶または長期記憶として、異なる形態または構成とすることができる。記憶装置８１２は、電力が除去されたときに記憶された内容を保持しない、情報の短期記憶のための揮発性メモリとして構成されてもよい。揮発性メモリの例としては、ランダム・アクセス・メモリ（ＲＡＭ）、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）等がある。記憶装置８１２は、いくつかの例では、揮発性メモリよりも大量の情報を記憶し、或いは電力が除去されたときに情報を保持しながら長期間そのような情報を記憶するために、１又は複数のコンピュータ可読記憶媒体も含む。不揮発性メモリの例には、磁気ハードディスク、光ディスク、フロッピー（登録商標）ディスク、フラッシュメモリ、又は電気的にプログラム可能なメモリ（ＥＰＲＯＭ）または電気的に消去およびプログラム可能なメモリ（ＥＥＰＲＯＭ）の形態が含まれる。
【０１２４】
図示されていないが、コンピュータ装置は例えば、適切な学習或いは試験データと共に図５に示されるようなネットワークを使用してニューラルネットワークモデル８１４を学習させるための学習環境として構成されてもよい。
【０１２５】
コンピュータ装置８００は、演算ユニットと、その演算ユニットに結合された記憶ユニットとを備える。記憶ユニットは、演算ユニットによって実行されたときに、画像のピクセルを分類して、対象の物体の要素（例えば、毛髪ピクセル）のピクセルの各々が対象の物体の要素であるかどうかを判定し、対象の物体の要素であるピクセルの１又は複数の特性を変更することによって、新画像（例えば、着色毛髪画像）を定義、提示するように構成された深層学習ニューラルネットワークモデル（例えば、畳み込みニューラルネットワークを備える）を記憶、提供するようにコンピュータ装置を構成する命令を記憶する。変更操作は、深層ニューラルネットワークモデルを使用して画像から定義されたマスクを使用する。一例では、対象の物体は毛髪であり、特性は色である。従って、１又は複数の特性を変更すると、毛髪のセグメント化マスクを使用して画像内の毛髪ピクセルに新しい毛髪色が適用される。
【０１２６】
深層ニューラルネットワークは、ラップトップ、デスクトップ、ワークステーション、サーバー、又は他の同等の世代のコンピュータ装置などの「より大きい」デバイスよりも少ない処理リソースを有するモバイル端末（例えば、スマートフォン又はタブレット）であるコンピュータ装置のための軽いアーキテクチャに適合される。
【０１２７】
深層ニューラルネットワークモデルは、個々の標準畳み込みが深さ方向の畳み込み（depthwise  convolution）と１×１の畳み込み（pointwise  convolution）とに分解される畳み込みを含む、深さ方向に分離可能な畳み込みニューラルネットワークとして構成されてもよい。深さ方向の畳み込みは、各入力チャンネルに単一のフィルタを適用することに制限され、１×１の畳み込みは、深さ方向の畳み込みの出力を組み合わせることに制限される。
【０１２８】
深層ニューラルネットワークモデルは、アップサンプリング時などに、エンコーダ内の層と対応するデコーダ内の層との間でスキップ接続を実行する処理を備えるように更に構成され得る。
【０１２９】
深層ニューラルネットワークモデルは、マスク画像の勾配整合性損失の尺度を使用して学習させてもよく、それによって、マスク画像の勾配整合性損失は処理された画像および生成されたマスクに関連して決定され、使用された損失の尺度はモデルに学習させる。マスク画像の勾配整合性損失は、数式１に従って決定することができる。
【０１３０】
図９は、例示的なコンピュータ装置８００の処理９００のフローチャートである。処理９００は、コンピュータ装置８００のユーザがアプリケーション８１６などのアプリケーションを使用して、ユーザの毛髪を含むユーザの頭部の画像を定義する、ビデオフレームを備えるビデオを含むセルフィー（自撮り写真）を撮り、新しい毛髪色を選択し、ユーザの毛髪色が新しい毛髪色となったビデオを見ることに関する。９０２で、処理は、グラフィカルユーザインターフェース８１８及び画像取得コンポーネント８２２を呼び出すことができる、カメラ等の入力装置またはユニットを介して画像を受信する。画像は、入出力装置８０６又は別の表示装置等のディスプレイ９０４に提供される。モバイル端末上の毛髪の処理を支援するために、画像（データ）を前処理することができる（図示せず）。顔を検出し、典型的なセルフィーで予想されるスケールに基づいて、顔の周りの領域をトリミングすることによって画像を前処理してもよい。
【０１３１】
９０６の処理では、入出力装置８０６およびグラフィカルユーザインターフェース８１８（対話型ＧＵＩ）を介して入力を受け取り、新しい毛髪色を選択する。グラフィカルユーザインターフェース８１８は、選択のための対話型のインターフェースを介して毛髪の色データ８１４を提示するように構成されてもよい。いくつかの例では、アプリケーション８１６が色を提案するように構成され得る。図示されていないが、処理は受信された画像から既存の又は現在の毛髪色、及び任意選択的に他の色（例えば、皮膚の色）又は光情報等を決定することを含むことができる。データ（図示せず）として表されるユーザの好みは、グラフィカルユーザインターフェース８１８を介して請求され得る。処理は、色予測コンポーネント８２０に同じものを提供することを更に含むことができる。色予測コンポーネント８２０は、既存の毛髪色、皮膚または他の色或いは光の情報、ユーザの好み、傾向などのうちの１又は複数に応じて、適切な色（たとえば、色データ８３０からの新しい毛髪色の１又は複数の候補）を提案する機能を有することができる。
【０１３２】
９０８の処理では、本明細書で説明されるように、深層ニューラルネットワークモデル８１４によって識別される第２の画像内の毛髪ピクセルに、新しい特性、即ち新しい毛髪色を適用するための第２の画像を受け取る。カメラが継続的に画像をキャプチャしているため、既存の毛髪色を定義するために使用された最初の画像は現在のものではなくなる。
【０１３３】
９１０の処理では、モデル８１４を使用して（第２の）画像内の毛髪ピクセルを識別する毛髪のセグメント化マスクを定義する。９１２の処理では、毛髪のセグメント化マスクを使用して、画像内の毛髪ピクセルに新しい毛髪色を適用することによって、新画像（例えば、着色された毛髪の画像）を定義する。９１４の処理では、グラフィカルユーザインターフェース８１８によって提供されるグラフィカルユーザインターフェース内の入出力装置８０６への出力のために新画像を提供する。更なる画像がカメラから受信されると、更なるマスクがそれぞれ定義され、着色された毛髪を有するさらなる新画像がそれぞれ定義、提示される。
【０１３４】
追加または代替のＧＵＩまたはＧＵＩ機能を提供して、他の属性の変更、既存および新しい毛髪色または２つの新しい毛髪色のライブ比較を容易にしたり、あるいは新しい毛髪色を示す静止画像またはビデオのセグメントを保存したりすることができる。処理は、入出力装置を介してグラフィカルユーザインターフェースを提示することができ、グラフィカルユーザインターフェースは、画像を見るための第１部と、分割スクリーン配置のように、着色された毛髪画像を同時に見るための第２部とを含む。
【０１３５】
処理は、毛髪色（既存の又は新しい色）に照明条件の処理を適用して、異なる照明条件で毛髪を示すことができる。処理は、それぞれの新画像において第１の新しい毛髪色および第２の新しい毛髪色を示すように構成されてもよい。２つの新しい毛髪色を適用するために、２つの個別の着色操作に単一のマスクを定義、提供することができる。第１及び第２の色のそれぞれの新しい色の画像は、順次または同時に提供されてもよい。
【０１３６】
更に、または説明した任意のグラフィカルユーザインターフェース又は制御に代えて、音声で作動する制御装置を設けることができる。
【０１３７】
他の軽いアーキテクチャは、エンコーダおよびデコーダの対応する層間のスキップ接続を使用することによって毛髪のセグメント化マスクを生成するように同様に適合され、マスク画像の勾配整合性損失関数を使用して学習させてもよい。そのようなアーキテクチャの一例は、ShuffleNet（登録商標）であり、これは、Zhangら及びMegvii Technology Limitedの１×１のグループ化畳み込み（pointwise group convolution）及びチャンネルシャッフルを使用して、非常に限定された計算能力（例えば、１０〜１５０ＭＦＬＯＰｓ）を有するモバイル端末用に特別に設計された、計算効率のよい畳み込みニューラルネットワークである。ShuffleNetに関する詳細は、Shufflenet: An Extremely Efficient Convolutional Neural Network for
Moble Devices of Zhang et al. arXiv:1707.01083v2 [cs:CV]２０１７年１２月７日に提供されている。
【０１３８】
図１０は、本明細書の教示に従って例示的な畳み込みニューラルネットワークを定義するためのステップ１０００のフローチャートである。１００２において、限られた計算能力を有するコンピュータ装置上で実行するように構成された、画像の分類のための学習済畳み込みニューラルネットワーク（例えば、MobileNet、ShuffleNet等）が取得される。
【０１３９】
ステップ１００４においては、例えば、全結合層を除去すること、アップサンプリング動作を定義すること等、物体のセグメント化マスクを定義するように畳み込みニューラルネットワークを適合させる。ステップ１００６においては、エンコーダステージ内の層とデコーダステージ内の対応する層との間のスキップ接続を使用するように畳み込みニューラルネットワークを適応させて、デコーダステージ内でアップサンプリングする際に、低解像度であるが強い特徴量と高解像度であるが弱い特徴量とを組み合わせる。１００８においては、物体のセグメント化のためにラベル付けされたデータを含む、セグメント化の学習データを取得するためのステップが実行される。上述したように、これは、クラウドソースであり、ノイズが多く、物体のセグメント化マスク（ラベル付け）が良好でない粗いセグメント化データである可能性がある。
【０１４０】
ステップ１０１０は、学習時に最小化するためのパラメータとしてマスク画像の勾配整合性損失の関数を定義するために実行される。１０１２において、セグメント化の学習データおよびマスク画像の勾配整合性損失関数を使用して適合されるように、学習済畳み込みニューラルネットワークに更に学習させて、更に学習させた畳み込みニューラルネットワークを生成するためにマスク画像の勾配整合性損失を最小化するステップが実行される。１０１４において、更に学習させた畳み込みニューラルネットワークは、物体のセグメント化のラベルが付けられたデータを含む、セグメント化の試験データを用いて試験される。図１０のステップのいくつかは任意であることは明らかであろう。図１０のステップのいくつかは例であって、これに限定されるものではなく、スキップ接続を使用するように適合させることは、任意であってもよい。勾配整合性損失（そのような損失に対する同様の学習）を最小限に抑えるように適応させることは、任意であってもよい。学習データはノイズが多く、クラウドソースのデータから得られるような粗いセグメント化（例えば、細かいラベル付けなし）であってもよい。
【０１４１】
このように学習された畳み込みニューラルネットワークは、上述したように、モバイル端末上で記憶し、使用するために提供され得る。
【０１４２】
コンピュータ装置の態様に加えて、コンピュータプログラムプロダクトの態様が開示されており、本明細書に記載された任意の態様を実行するコンピュータ装置を構成するために、命令を非一時的な記憶装置（例えば、メモリ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ディスクなど）に格納できることは、当業者に理解されるだろう。
【０１４３】
実際の実施は、本明細書に記載された特徴のいずれか又は全てを含むことができる。これら及び他の態様、特徴、ならびに様々な組み合わせは、方法、装置、システム、機能を実行するための手段、プログラムプロダクト、および他の方法で、本明細書で説明される特徴を組み合わせて表され得る。多数の実施形態が記載されているが、本明細書で説明されるプロセスおよび技術的思想及び範囲から逸脱することなく、様々な修正を行うことができることが理解されるだろう。加えて、他のステップが提供されてもよく、または記載された方法からステップが排除されてもよく、他のコンポーネントが記載されたシステムに対し、追加または除去されてもよい。したがって、他の態様は特許請求の範囲内にある。
【０１４４】
本明細書の記載および特許請求の範囲を通して、単語「含む」および「備える」およびそれらの変形表現は「含むがこれに限定されない」を意味し、他の構成要素、整数またはステップを排除することを意図しない（排除しない）。本明細書全体を通して、文脈が別途必要としない限り、単数は複数を包含する。つまり、本明細書がその状況が他のことを要求していない限り、単数だけでなく複数も意図していると理解されたい。
【０１４５】
本発明の特定の態様、実施形態または例に関連して記載される特徴、整数特性、化合物、化学部分または基は、それらと非互換でない限り、任意の他の態様、実施形態または例に適用可能であると理解されるべきである。本明細書に開示された特徴（添付の特許請求の範囲、要約書、および図面を含む）のすべて、或いはそのように開示された任意の方法または処理のステップのすべては、そのような特徴或いはステップの少なくともいくつかが相互に排他的である組み合わせを除いて、任意の組合せで組み合わせることができる。本発明は、前述の例または実施形態の詳細に限定されない。本発明は、本明細書（添付の特許請求の範囲、要約書、および図面を含む）に開示された特徴の任意の新規なもの、または任意の新規な組み合わせ、または開示された任意の手法または処理のステップの任意の新規なもの、または任意の新規な組み合わせに拡張される。
【図１】
2021502627.tif 000020
【図２】
2021502627.tif 000021
【図３】
2021502627.tif 000022
【図４】
2021502627.tif 000023
【図５】
2021502627.tif 000024
【図６】
2021502627.tif 000025
【図７】
2021502627.tif 000026
【図８】
2021502627.tif 000027
【図９】
2021502627.tif 000028
【図１０】
2021502627.tif 000029
【国際調査報告】
2021502627.tif 000030
2021502627.tif 000031