IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ リヴィーヴ オーユーの特許一覧

特開2022-169432ユーザーの毛髪分析のためのシステム及び方法
<>
  • 特開-ユーザーの毛髪分析のためのシステム及び方法 図1
  • 特開-ユーザーの毛髪分析のためのシステム及び方法 図2
  • 特開-ユーザーの毛髪分析のためのシステム及び方法 図3A
  • 特開-ユーザーの毛髪分析のためのシステム及び方法 図3B
  • 特開-ユーザーの毛髪分析のためのシステム及び方法 図4A
  • 特開-ユーザーの毛髪分析のためのシステム及び方法 図4B
  • 特開-ユーザーの毛髪分析のためのシステム及び方法 図5
  • 特開-ユーザーの毛髪分析のためのシステム及び方法 図6
  • 特開-ユーザーの毛髪分析のためのシステム及び方法 図7
  • 特開-ユーザーの毛髪分析のためのシステム及び方法 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022169432
(43)【公開日】2022-11-09
(54)【発明の名称】ユーザーの毛髪分析のためのシステム及び方法
(51)【国際特許分類】
   A61B 5/107 20060101AFI20221101BHJP
   A61B 5/00 20060101ALI20221101BHJP
   G06T 7/00 20170101ALI20221101BHJP
【FI】
A61B5/107 700
A61B5/00 G
G06T7/00 660Z
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022023339
(22)【出願日】2022-02-18
(31)【優先権主張番号】17/241,646
(32)【優先日】2021-04-27
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.TENSORFLOW
(71)【出願人】
【識別番号】521318413
【氏名又は名称】リヴィーヴ オーユー
【氏名又は名称原語表記】Revieve Oy
【住所又は居所原語表記】Koydenpunojankatu 2 A, 00180 Helsinki, Finland
(74)【代理人】
【識別番号】100127188
【弁理士】
【氏名又は名称】川守田 光紀
(72)【発明者】
【氏名】ボヤン ティヤガラヤン マニハティ
(72)【発明者】
【氏名】ハムネン ヨーナス
(72)【発明者】
【氏名】シーヴィネン サムリ
【テーマコード(参考)】
4C038
4C117
5L096
【Fターム(参考)】
4C038VA18
4C038VB21
4C038VC05
4C117XB13
4C117XB15
4C117XD02
4C117XE43
4C117XJ01
4C117XJ13
5L096AA02
5L096EA11
5L096FA32
5L096FA35
5L096FA52
5L096FA66
5L096GA10
5L096GA40
5L096GA51
5L096GA53
5L096HA11
5L096KA04
5L096MA07
(57)【要約】      (修正有)
【課題】ユーザーの毛髪分析のための方法を提供する。
【解決手段】セグメント化された毛髪領域画像を取得するべく前記ユーザーの画像内の毛髪領域をセグメント化することと、1つ以上の支配的な毛髪色の種類を識別することと、前記1つ以上の支配的な毛髪色の種類の画素のRGB値を決定することと、複数の毛髪色の色合いが異なる毛髪色名として分類された毛髪色辞書を実装することと、距離が最小の相対RGB値を識別するべく、前記1つ以上の支配的な毛髪色の種類の画素の前記決定されたRGB値と前記分類された異なる毛髪色の種類の相対RGB値とを比較することと、前記距離が最小の前記識別された相対RGB値に対応する毛髪色名を決定することと、を含み、前記分類された異なる毛髪色名のそれぞれは、相対RGB値を有する。
【選択図】図7
【特許請求の範囲】
【請求項1】
ユーザーの毛髪分析のための方法であって、
・ セグメント化された毛髪領域画像を取得するべく前記ユーザーの画像内の毛髪領域をセグメント化することと、
・ 前記セグメント化された毛髪領域画像内の1つ以上の支配的な毛髪色の種類を識別することと、
・ 前記セグメント化された毛髪領域画像内の前記1つ以上の支配的な毛髪色の種類の画素のRGB値を決定することと、
・ 複数の毛髪色の色合いが対応するHEXコードに基づいて異なる毛髪色名として分類された毛髪色辞書を実装することと、
・前記1つ以上の支配的な毛髪色の種類の画素の前記RGB値との距離が最小の相対RGB値を識別するべく、前記セグメント化された毛髪領域画像内の前記1つ以上の支配的な毛髪色の種類の画素の前記決定されたRGB値と前記分類された異なる毛髪色の種類の相対RGB値とを比較することと、
・ 前記毛髪色辞書内の前記異なる毛髪色名から、前記距離が最小の前記識別された相対RGB値に対応する毛髪色名を決定することと、
を含み、
前記分類された異なる毛髪色名のそれぞれは、前記対応するHEXコードに基づく相対RGB値を有する、
方法。
【請求項2】
前記画像内の前記毛髪領域をセグメント化することは、
・ 前記画像内の姿勢を識別することと、
・ 前記識別された姿勢に基づいて前記画像内の前記毛髪領域をマスクすることと、
・ 前記マスクされた毛髪領域で前記画像をダウンサンプリングすることと、
・ 前記ダウンサンプリングされた画像から複数の毛髪領域画素を抽出することと、
・ 前記抽出された複数の毛髪領域画素のうちの少なくとも1つの画素位置を定めることと、
を含む、請求項1に記載の方法。
【請求項3】
前記1つ以上の支配的な毛髪色の種類を識別することは、
・ クラスタリング技術を使用して、前記セグメント化された毛髪領域画像内の複数の色のクラスターを有する毛髪色分布を決定することと、
・ 前記毛髪色分布における前記決定された数の色のクラスターから予め定められた数の色のクラスターを選択することと、
・ 前記選択された予め定められた数の色のクラスターに対するセントロイドのセットを決定することと、
・ ヒストグラムを使用して、前記セントロイドのセットに対する画素群の数を決定することと、
・ 前記決定された画素群の数に基づいて前記支配的な毛髪色の種類を判定することと、
を含む、請求項1又は2に記載の方法。
【請求項4】
前記画素群の数を決定することは、前記支配的な毛髪色の種類を判定する一方で、白色に対応する画素群の数を破棄することを含む、請求項3に記載の方法。
【請求項5】
前記距離が最小の前記相対RGB値を決定することは、
・ 前記セグメント化された毛髪領域画像内の前記1つ以上の支配的な毛髪色の種類の画素の前記決定されたRGB値と前記分類された異なる毛髪色の種類の前記相対RGB値との間のR、G、Bチャネルのそれぞれにおける絶対差を求めることと、
・ 前記R、G、Bチャネルのそれぞれにおける前記求められた絶対差を正規化することと、
を含む、請求項1から4のいずれかに記載の方法。
【請求項6】
毛髪質感学習済み関数を使用して、前記セグメント化された毛髪領域画像から毛髪の質感を判定することを更に含む、請求項1から5のいずれかに記載の方法。
【請求項7】
毛髪量学習済み関数を使用して、前記セグメント化された毛髪領域画像から毛髪量を判定することを更に含む、請求項1から6のいずれかに記載の方法。
【請求項8】
毛髪光沢学習済み関数を使用して、前記セグメント化された毛髪領域画像から毛髪の光沢を判定することを更に含む、請求項1から7のいずれかに記載の方法。
【請求項9】
毛髪縮れ具合学習済み関数を使用して、前記セグメント化された毛髪領域画像から毛髪の縮れ具合を判定することを更に含む、請求項1から8のいずれかに記載の方法。
【請求項10】
・ 前記ユーザーからユーザー選択を受信することと、
・ 前記ユーザー選択と、前記毛髪色、前記毛髪の質感、前記毛髪量、前記毛髪の光沢、及び前記毛髪の縮れ具合の少なくとも1つとに基づいて、1つ以上の第1の推奨を前記ユーザーに提供することと、
を更に含む、請求項6から9のいずれかに記載の方法。
【請求項11】
前記1つ以上の第1の推奨を提供することは、新しい毛髪色、新しいヘアスタイル、ヘアカラー製品、及びヘアケア製品のうちの少なくとも1つを推奨することを含む、請求項10に記載の方法。
【請求項12】
前記毛髪色、前記毛髪の質感、前記毛髪量、前記毛髪の光沢、及び前記毛髪の縮れ具合の少なくとも1つに基づいて合成スタイル変換を行うことによって、1つ以上のスタイル変換画像を生成することを更に含む、請求項10に記載の方法。
【請求項13】
前記1つ以上の第1の推奨と前記1つ以上のスタイル変換画像とに基づいて、1つ以上の第2の推奨をユーザーに提供することを更に含む、請求項12に記載の方法。
【請求項14】
ユーザーの毛髪分析のためのシステムであって、
セグメント化された毛髪領域画像を取得するべく前記ユーザーの画像内の毛髪領域をセグメント化するように構成されたセグメンテーションブロックと、
色検出ブロックであって、
・ 前記セグメント化された毛髪領域画像内の1つ以上の支配的な毛髪色の種類を識別し、
・ 前記セグメント化された毛髪領域画像内の前記1つ以上の支配的な毛髪色の種類の画素のRGB値を決定し、
・ 複数の毛髪色の色合いが対応するHEXコードに基づいて異なる毛髪色名として分類された毛髪色辞書を実装し、
・ 前記1つ以上の支配的な毛髪色の種類の画素の前記RGB値との距離が最小の相対RGB値を識別するべく、前記セグメント化された毛髪領域画像内の前記1つ以上の支配的な毛髪色の種類の画素の前記決定されたRGB値と前記分類された異なる毛髪色の種類の相対RGB値とを比較し、
・ 前記毛髪色辞書内の前記異なる毛髪色名から、前記距離が最小の前記識別された相対RGB値に対応する毛髪色名を決定する
ように構成された色検出ブロックと、
を備え、
前記分類された異なる毛髪色名のそれぞれは、前記対応するHEXコードに基づく相対RGB値を有する、
システム。
【請求項15】
前記セグメンテーションブロックは、
・ 前記画像内の姿勢を識別し、
・ 前記識別された姿勢に基づいて前記画像内の前記毛髪領域をマスクし、
・ 前記マスクされた毛髪領域で前記画像をダウンサンプリングし、
・ 前記ダウンサンプリングされた画像から複数の毛髪領域画素を抽出し、
・ 前記抽出された複数の毛髪領域画素のうちの少なくとも1つの画素位置を定める
ように更に構成される、請求項14に記載のシステム。
【請求項16】
前記色検出ブロックは、
・ クラスタリング技術を使用して、前記セグメント化された毛髪領域画像内の複数の色のクラスターを有する毛髪色分布を決定し、
・ 前記毛髪色分布における前記決定された数の色のクラスターから予め定められた数の色のクラスターを選択し、
・ 前記選択された予め定められた数の色のクラスターに対するセントロイドのセットを決定し、
・ ヒストグラムを使用して、前記セントロイドのセットに対する画素群の数を決定し、
・ 前記決定された画素群の数に基づいて前記支配的な毛髪色の種類を判定する
ように更に構成される、請求項14又は15に記載のシステム。
【請求項17】
前記色検出ブロックは、前記支配的な毛髪色の種類を判定する一方で、白色に対応する画素群の数を破棄するように更に構成される、請求項16に記載のシステム。
【請求項18】
前記色検出ブロックは、前記距離が最小の前記相対RGB値を決定するべく、
・ 前記セグメント化された毛髪領域画像内の前記1つ以上の支配的な毛髪色の種類の画素の前記決定されたRGB値と前記分類された異なる毛髪色の種類の前記相対RGB値との間のR、G、Bチャネルのそれぞれにおける絶対差を求め、
・ 前記R、G、Bチャネルのそれぞれにおける前記求められた絶対差を正規化する
ように更に構成される、請求項14から17のいずれかに記載のシステム。
【請求項19】
・ 毛髪質感学習済み関数を使用して、前記セグメント化された毛髪領域画像から毛髪の質感を判定するように構成された毛髪質感ブロックと、
・ 毛髪量学習済み関数を使用して、前記セグメント化された毛髪領域画像から毛髪量を判定するように構成された毛髪量ブロックと、
・ 毛髪光沢学習済み関数を使用して、前記セグメント化された毛髪領域画像から毛髪の光沢を判定するように構成された毛髪光沢ブロックと、
・ 毛髪縮れ具合学習済み関数を使用して、前記セグメント化された毛髪領域画像から毛髪の縮れ具合を判定するように構成された毛髪の縮れブロックと、
を更に備える、請求項14から18のいずれかに記載のシステム。
【請求項20】
・ 前記ユーザーからユーザー選択を受信し、
・ 前記ユーザー選択と、前記毛髪色、前記毛髪の質感、前記毛髪量、前記毛髪の光沢、及び前記毛髪の縮れ具合のうちの少なくとも1つとに基づいて、1つ以上の第1の推奨を前記ユーザーに提供し、
・ 前記毛髪色、前記毛髪の質感、前記毛髪量、前記毛髪の光沢、及び前記毛髪の縮れ具合のうちの少なくとも1つに基づいて合成スタイル変換を行うことによって、1つ以上のスタイル変換画像を生成し、
・ 前記1つ以上の第1の推奨及び前記1つ以上のスタイル変換画像に基づいて、1つ以上の第2の推奨を前記ユーザーに提供する
ように構成された分析ブロックを更に備え、
前記1つ以上の第1の推奨は、新しい毛髪色、新しいヘアスタイル、ヘアカラー製品、及びヘアケア製品のうちの少なくとも1つを推奨することを含む、請求項19に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概して、コンピュータビジョン及び深層学習ニューラルネットワークを採用する画像処理技術に関し、より具体的には、毛髪製品及びスタイル変換の推奨を提供するためのユーザーの毛髪分析のためのシステム及び方法に関する。
【背景】
【0002】
美容業界では、各種毛髪分析ツールが知られている。一般的に、毛髪分析ツールは、毛髪の質感や色を判定するために使用される。このようにして取得された結果を使用して、毛髪の見た目や手触りを改善するためのヘアケア製品の提案を行う場合がある。例えば、判定された毛髪色に応じて、顧客にそのプロファイルに適合し得るヘアカラー製品を推奨してもよい。このように、毛髪分析ツールは、毛髪製品の推奨や販売の一助として機能している。従来、色見本のカードを毛髪の横に並べ、そのカードからユーザーの毛髪にぴったりと照合する色調を判定することで毛髪色を判定していた。しかし、毛髪色を判定するこの方法では、色見本のカードが手元に必要なため面倒であり、照合を行う人の視点によっては不正確な結果が出ることもある。
【0003】
毛髪の分析にユーザー画像を利用するコンピュータベースのツールも開発されており、毛髪色を効果的に判定するためのものもある。色は、物体から反射されるときに分離される光の成分であることが理解できるであろう。画像内の毛髪色の判定は、撮影されたシーンの照明条件に大きく影響される。例えば、屋内照明の画像と屋外光の画像とでは、毛髪色の表現が異なる場合がある。別の例では、照明条件が暗い、又は画像内に影が多い場合、既存のコンピュータベースのツールでは、濃い茶色の毛髪が黒髪であると判定されることがある。更に、エンドユーザーは様々な毛髪色を持つ場合があり、既存のツールでは毛髪に関する様々な基準を正確に判定し、正しい結論を出すことが更に困難になっている。
【0004】
したがって、前述の議論に照らして、ユーザーの毛髪分析のための公知のツールに関連する前述の欠点を克服する必要がある。
【摘要】
【0005】
本開示は、ユーザーの毛髪分析のためのシステム及び方法を提供しようとするものである。本開示の目的は、先行技術で遭遇した問題を少なくとも部分的に克服する解決策を提供することである。
【0006】
一態様において、本開示は、ユーザーの毛髪分析のための方法を提供する。本方法は、セグメント化された毛髪領域画像を取得するべく前記ユーザーの画像内の毛髪領域をセグメント化することと、前記セグメント化された毛髪領域画像内の1つ以上の支配的な毛髪色の種類を識別することと、前記セグメント化された毛髪領域画像内の前記1つ以上の支配的な毛髪色の種類の画素のRGB値を決定することと、複数の毛髪色の色合いが対応するHEXコードに基づいて異なる毛髪色名として分類された毛髪色辞書を実装することと、前記1つ以上の支配的な毛髪色の種類の画素の前記RGB値との距離が最小の相対RGB値を識別するべく、前記セグメント化された毛髪領域画像内の前記1つ以上の支配的な毛髪色の種類の画素の前記決定されたRGB値と前記分類された異なる毛髪色の種類の相対RGB値とを比較することと、前記毛髪色辞書内の前記異なる毛髪色名から、前記距離が最小の前記識別された相対RGB値に対応する毛髪色名を決定することと、を含む。前記分類された異なる毛髪色名のそれぞれは、前記対応するHEXコードに基づく相対RGB値を有する。
【0007】
第2の態様において、本開示は、ユーザーの毛髪分析のためのシステムを提供する。本システムは、セグメント化された毛髪領域画像を取得するべく前記ユーザーの画像内の毛髪領域をセグメント化するように構成されたセグメンテーションブロックと、前記セグメント化された毛髪領域画像内の1つ以上の支配的な毛髪色の種類を識別し、前記セグメント化された毛髪領域画像内の前記1つ以上の支配的な毛髪色の種類の画素のRGB値を決定し、複数の毛髪色の色合いが対応するHEXコードに基づいて異なる毛髪色名として分類された毛髪色辞書を実装し、前記1つ以上の支配的な毛髪色の種類の画素の前記RGB値との距離が最小の相対RGB値を識別するべく、前記セグメント化された毛髪領域画像内の前記1つ以上の支配的な毛髪色の種類の画素の前記決定されたRGB値と前記分類された異なる毛髪色の種類の相対RGB値とを比較し、前記毛髪色辞書内の前記異なる毛髪色名から、前記距離が最小の前記識別された相対RGB値に対応する毛髪色名を決定するように構成された色検出ブロックと、を備える。前記分類された異なる毛髪色名のそれぞれは、前記対応するHEXコードに基づく相対RGB値を有する。
【0008】
本開示の実施形態は、従来技術における前述の問題点を実質的に排除するか、又は少なくとも部分的に解決し、ユーザーの信頼できる毛髪分析を可能にする。特に、本開示の実施形態は、ユーザーの包括的な毛髪分析のために、毛髪の質感、毛髪量、毛髪の光沢、及び毛髪の縮れ具合を含む、複数の基準を考慮する。更に、本開示の実施形態は、毛髪色名を示し、毛髪分析に基づく毛髪色を含む適切な毛髪製品の推奨を行う。更に、本開示の実施形態は、毛髪分析に基づいて、ユーザーのための1つ以上のスタイル変換を生成するのに有用である。
【0009】
本開示の追加の態様、利点、特徴、及び目的は、添付の請求項と併せて解釈される図面及び例示的な実装の詳細説明から明らかになるであろう。本開示の特徴は、添付の請求項によって定義される本開示の範囲から逸脱することなく、様々な組合せで組み合わせることが可能であることが理解されよう。
【図面の簡単な説明】
【0010】
上記の摘要及び以下の例示的な実施形態の詳細説明は、添付の図面と併せて読むことにより、よりよく理解できる。本開示を説明する目的で、本開示の例示的な構造が図面に示されている。しかし、本開示は、本明細書に開示された特定の方法及び装置に限定されるものではない。更に、当業者であれば、図面が縮尺どおりでないことを理解できるであろう。可能な限り、同様の要素は同一の番号で示している。
【0011】
以下の図を参照して、本開示の実施形態を例示のみを目的として説明する。
図1】本開示の一実施形態に係る、ユーザーの毛髪分析のためのシステムの概略図である。
図2】本開示の一実施形態による、システムの、セグメント化された毛髪領域画像を決定するためのセグメンテーションブロックの概略図である。
図3A】本開示の一実施形態による、セグメンテーションブロックによって実行される様々なステップの出力の説明図である。
図3B】本開示の一実施形態による、セグメント化された毛髪領域画像を決定するためのセグメンテーションブロックの簡略化された概略図である。
図4A】本開示の一実施形態による、システムの、毛髪色名を決定するための色検出ブロックの概略図である。
図4B】本開示の一実施形態による、色検出ブロックの実装に関するステップの概略図である。
図5】本開示の一実施形態による、システムの、毛髪の質感を判定するための毛髪質感ブロックの概略図である。
図6】本開示の一実施形態による、システムの、毛髪量を判定するための毛髪量ブロックの概略図である。
図7】本開示の一実施形態による、ユーザーの毛髪分析のための方法のステップを列挙したフローチャートである。
図8】本開示の一実施形態による、1つ以上の第1の推奨をユーザーに提供するための方法のステップを列挙したフローチャートである。
【実施例の詳細説明】
【0012】
以下の詳細説明は、本開示の実施形態と、それらが実施可能な方法とを示す。本開示を実施するいくつかの態様を開示しているが、当業者は、本開示を実施又は実践するための他の実施形態も可能であることを認識するであろう。
【0013】
一態様において、本開示は、ユーザーの毛髪分析のための方法を提供する。本方法は、セグメント化された毛髪領域画像を取得するべく前記ユーザーの画像内の毛髪領域をセグメント化することと、前記セグメント化された毛髪領域画像内の1つ以上の支配的な毛髪色の種類を識別することと、前記セグメント化された毛髪領域画像内の前記1つ以上の支配的な毛髪色の種類の画素のRGB値を決定することと、複数の毛髪色の色合いが対応するHEXコードに基づいて異なる毛髪色名として分類された毛髪色辞書を実装することと、前記1つ以上の支配的な毛髪色の種類の画素の前記RGB値との距離が最小の相対RGB値を識別するべく、前記セグメント化された毛髪領域画像内の前記1つ以上の支配的な毛髪色の種類の画素の前記決定されたRGB値と前記分類された異なる毛髪色の種類の相対RGB値とを比較することと、前記毛髪色辞書内の前記異なる毛髪色名から、前記距離が最小の前記識別された相対RGB値に対応する毛髪色名を決定することと、を含む。前記分類された異なる毛髪色名のそれぞれは、前記対応するHEXコードに基づく相対RGB値を有する。
【0014】
第2の態様において、本開示は、ユーザーの毛髪分析のためのシステムを提供する。本システムは、セグメント化された毛髪領域画像を取得するべく前記ユーザーの画像内の毛髪領域をセグメント化するように構成されたセグメンテーションブロックと、前記セグメント化された毛髪領域画像内の1つ以上の支配的な毛髪色の種類を識別し、前記セグメント化された毛髪領域画像内の前記1つ以上の支配的な毛髪色の種類の画素のRGB値を決定し、複数の毛髪色の色合いが対応するHEXコードに基づいて異なる毛髪色名として分類された毛髪色辞書を実装し、前記1つ以上の支配的な毛髪色の種類の画素の前記RGB値との距離が最小の相対RGB値を識別するべく、前記セグメント化された毛髪領域画像内の前記1つ以上の支配的な毛髪色の種類の画素の前記決定されたRGB値と前記分類された異なる毛髪色の種類の相対RGB値とを比較し、前記毛髪色辞書内の前記異なる毛髪色名から、前記距離が最小の前記識別された相対RGB値に対応する毛髪色名を決定するように構成された色検出ブロックと、を備える。前記分類された異なる毛髪色名のそれぞれは、前記対応するHEXコードに基づく相対RGB値を有する。
【0015】
説明の便宜上、「ユーザー」という用語は、個人、顧客、消費者、その他の事業体を含む、毛髪を分析する必要がある全ての人を広く含む。本明細書における「毛髪」への言及は、必ずしもユーザーの毛髪の一房を指すとは限らず、ユーザーの毛髪の一部又は全体を包含する場合がある。当然ながら、人間の毛髪色はユーザーごとに異なる。また、毛髪分析の品質は、毛髪の質感、毛髪量、毛髪の光沢(即ち、ツヤ)、毛髪の縮れ具合などを含むがこれらに限定されない様々な基準に依存する。本開示の方法及びシステムは、上述したような様々な基準を考慮して正確な毛髪分析を提供する方法という問題を解決することを目的とする。ユーザーの毛髪分析のための本方法は、本明細書に記載されるようなシステムにおいて実施され、それは、より詳細に後述するようにコンピューティングデバイスの形態であってもよい。ユーザーの毛髪分析のためのシステムは、コンピューティングデバイスと、このコンピューティングデバイスにデータ通信ネットワークを介して接続された画像源とを備える。前記コンピューティングデバイスは、このコンピューティングデバイスにおいて前記ユーザーの画像を受信するように構成され、前記ユーザーの毛髪分析を行う1つ以上の画像処理及び分析ブロックを備える。前記コンピューティングデバイスは、例えば、サーバー、コンピュータ、スマートフォン等としてもよい。画像は、カメラからの転送、ウェブサイトからのダウンロード、他のデバイスからのアップロード、又は前記コンピューティングデバイスのカメラによる撮影によって、前記画像源から前記コンピューティングデバイスにおいて受信できる。
【0016】
一実施形態において、前記システムは、ユーザーデバイスとしてのスマートフォンを備えてもよく、前記ユーザーデバイスは、このユーザーデバイスから1つ以上の画像を受信するように構成されたコンピューティングデバイスにデータ通信ネットワークを介して接続される。前記コンピューティングデバイスは、セグメンテーションブロックと、ヘルパーブロックと、色検出ブロックと、毛髪質感ブロックと、毛髪量ブロックと、毛髪光沢ブロックと、毛髪縮れブロックと、毛髪分析ブロックと、分析結果ブロックとを備える。前記セグメンテーションブロックは、前記画像源から画像を受信し、セグメント化された毛髪領域画像を提供するべく画像セグメンテーションを実行するように構成されている。前記ヘルパーブロックは、各ブロックに対応するアルゴリズム、データセット、及び計算スコアを提供することによって、前記セグメンテーションブロック、色検出ブロック、毛髪質感ブロック、毛髪量ブロック、毛髪光沢ブロック、毛髪縮れブロック、毛髪分析ブロックをサポートするように構成されている。前記色検出ブロックにより、毛髪色の種類を判定することを可能にする。前記毛髪質感ブロックは、毛髪質感学習済み関数を使用して、前記セグメント化された毛髪領域画像から毛髪の質感を判定する。前記毛髪量ブロックは、毛髪量学習済み関数を使用して、前記セグメント化された毛髪領域画像から毛髪量を判定する。前記毛髪光沢ブロックは、毛髪光沢学習済み関数を使用して、前記セグメント化された毛髪領域画像から毛髪の光沢を判定する。前記毛髪縮れブロックは、毛髪縮れ具合学習済み関数を使用して、前記セグメント化された毛髪領域画像から毛髪の縮れ具合を判定する。前記毛髪分析ブロックは、前記ヘルパーブロック、色検出ブロック、毛髪質感ブロック、毛髪量ブロック、毛髪光沢ブロック、毛髪縮れブロックからデータを受信する。前記分析結果ブロックは、判定された毛髪色の決定された相対RGB値の対応するHEXコードに基づいて、毛髪色名を出力する。
【0017】
ユーザーの毛髪分析のための方法は、セグメント化された毛髪領域画像を取得するべくユーザーの画像内の毛髪領域をセグメント化することを含む。本明細書において、「画像」とは、ユーザーの毛髪が適切に描写され得る、即ち、その画像の所与の視点においてユーザーの毛髪の十分な部分が鮮明に見える、ユーザーの画像を指す。一例として、前記画像は、毛髪が見える状態のユーザーの正面顔の画像であってもよい。別の例では、前記画像は、ユーザーの毛髪に主に焦点を合わせて、ユーザーの上部を撮影した画像であってもよい。更に別の例では、前記画像は、ユーザーの顔の異なる角度からの複数の画像を合成して形成された合成画像であって、ユーザーの毛髪の十分な部分が鮮明に見えるものであってもよい。
【0018】
本明細書において、前記コンピューティングデバイスの形態としての前記システムは、ユーザーの前記画像を受信するように構成されてもよい。特に、前記コンピューティングデバイスは、サーバー、デスクトップコンピュータ、スマートフォンなどであってもよいが、これらに限定されない。前記画像は、この画像を撮影するために使用されるカメラから転送されることによって、前記コンピューティングデバイスに受信されてもよい。スマートフォンなどの一部の例では、前記カメラは前記コンピューティングデバイスに組み込まれている場合があり、したがって、前記画像を転送する必要がない場合があることが理解されよう。一部の例では、前記画像は、例えば、ウェブサイトやメッセージングアプリから前記コンピューティングデバイスにダウンロードされることもある。
【0019】
1つ以上の実施形態において、ユーザーの画像が前記システムに受信されると、前記システムは、ユーザーから追加の情報を要求してもよい。この追加情報の要求は、画像の照明情報、コントラスト情報、及び姿勢情報の1つ以上に関連する詳細を提供するためのフィールド、チェックボックス、又はオプションの形態であってもよい。ここでは、照明情報の要求は、その画像が昼光で撮影されたのか、蛍光灯下で撮影されたのか、ハロゲンランプ下で撮影されたのかという情報を求めるものであってもよい。また、コントラスト情報の要求は、前景の人物と背景のシーンとの間にコントラストの変化があるかどうかを確認するために求めるものであってもよい。また、姿勢情報の要求では、その画像が縦長であるか、それ以外の種類であるかを確認するために求めるものであってもよい。本方法によって実装されるアルゴリズムは、受信した追加情報に基づいてそれ自体を調整してもよいこと、即ち、画像が蛍光灯下で撮影された場合の確認と比較して、画像が昼光で撮影された場合の確認がある場合、アルゴリズムは異なる形で動作し得ることが、当業者には理解されようであろう。
【0020】
前記システムは、セグメント化された毛髪領域画像を取得するべくユーザーの画像内の毛髪領域をセグメント化するように構成されたセグメンテーションブロックを備える。前記システムは、前記セグメンテーションブロックから毛髪領域がマスクされた画像を受信するように構成されたヘルパーブロックを更に備え、黒色の背景上に前記セグメント化された毛髪領域画像を提供してもよい。即ち、画像が取得されたら、その画像内の毛髪領域を前記セグメンテーションブロックによってセグメント化してもよい。コンピュータビジョンでは、所与の画像のある領域のみが選択された場合、その領域は同画像のセグメントと呼ばれることが考えられ得る。ユーザーの画像内の毛髪領域をセグメント化するために、前記セグメンテーションブロックは、機械学習モデルを採用して、画像内の毛髪領域を抽出し、セグメント化された毛髪領域画像を取得してもよい。ここでは、機械学習モデルは、例えば、畳み込みニューラルネットワーク(CNN)のような深層学習ニューラルネットワークを実装してもよい。セグメンテーションの際、画像の背景や他の関連しない情報は無視されてもよい。セグメント化された毛髪領域画像は、画像の毛髪領域のみを描写してもよい。画像のその他の特徴や背景は、全て隠してもよい。即ち、セグメント化された毛髪領域画像は、白色の背景に毛髪領域のみを表示してもよい。
【0021】
機械学習は、人工知能のサブセットであると理解されてもよい。ここでは、機械学習モデルを、何度もプログラミングすることなく、ある動作を行うように学習させる。一般的に、機械学習モデルは単層又は多層の人工ニューラルネットワーク(ANN)で構成され、各層の出力は後続の層の入力として機能する。入力データセット一式とそれぞれの出力データセットを含む予め定められたデータセット一式が提供される。予め定められたデータ一式に従って、教師あり学習アルゴリズム、教師なし学習アルゴリズム、強化アルゴリズムなど何らかの学習アルゴリズムを用いることによって、機械学習モデルを学習させる。教師あり学習は、教師と生徒が一緒になって学習するようなものである。ここでは、入力データセットとそれぞれの出力データセットが提供される。機械学習モデルは、それらを例として、入力データセットとそれぞれの出力データセットの対応付けを行うルールを学習する。教師なしアルゴリズムでは、出力データセットが提供されず、機械学習モデルは教師なしで学習する。強化学習では、データセットが提供されず、機械学習モデルは経験によって学習する。
【0022】
本実装において、機械学習モデルには、複数のユーザーの画像一式からなる入力データセットが提供されてもよい。入力データセットの画像の毛髪領域をセグメント化し、取得されたセグメント化された毛髪領域画像を出力データセットとして提供してもよい。入力データセットの各画像を出力データセットのそれぞれのセグメント化された毛髪領域画像に対応付けるルールを学習するために、入力データセットと出力データセットに従って機械学習モデルを学習させてもよい。機械学習モデルを学習させると、ユーザーの画像からセグメント化された毛髪領域画像を取得するためにこの学習させた機械学習モデルは実行されてもよい。
【0023】
実施形態によっては、前記画像内の前記毛髪領域をセグメント化することは、前記画像内の姿勢を識別することと、前記識別された姿勢に基づいて前記画像内の前記毛髪領域をマスクすることと、前記マスクされた毛髪領域で前記画像をダウンサンプリングすることと、前記ダウンサンプリングされた画像から複数の毛髪領域画素を抽出することと、前記抽出された複数の毛髪領域画素のうちの少なくとも1つの画素位置を定めることと、を含む。本明細書において、特に、前記システムの前記セグメンテーションブロックは、前記画像内の姿勢を識別し、前記識別された姿勢に基づいて前記画像内の前記毛髪領域をマスクし、前記マスクされた毛髪領域で前記画像をダウンサンプリングし、前記ダウンサンプリングされた画像から複数の毛髪領域画素を抽出し、前記抽出された複数の毛髪領域画素のうちの少なくとも1つの画素位置を定めるように更に構成されている。
【0024】
一実施形態では、画像を受信するように構成された前記セグメンテーションブロックは、セグメント化されたマスクを生成するべく受信した画像を処理する畳み込みニューラルネットワーク(CNN)を備える。前記セグメンテーションブロックは、セグメント化されたマスクをマスクされた画像、更にマスクアウトされた画像、最終的にセグメント化された毛髪領域画像へと処理するように更に構成される。特に、前記セグメンテーションブロックによって、画像が入力として取り込まれる。CNNは、セグメント化されたマスクを取得するために、この画像を処理する。ここでは、顔や背景などの他の特徴は全てマスクされてもよい。ただし、皮膚の一部を残してもよい。セグメント化されたマスクは、マスクされた画像を取得するべく更に処理される。マスクされた画像は、毛髪領域を定めるために、毛髪の画素を識別する。マスクされた画像は、マスクアウトされた画像を取得するべく処理されてもよい。ここでは、毛髪領域の毛髪が鮮明になり、この領域の毛髪の束がわずかに見えてもよい。マスクアウトされた画像は、最終的にセグメント化された毛髪領域画像を取得するべく処理される。セグメント化された毛髪領域の画像では、毛髪の束が鮮明に見えて、毛髪領域の輪郭が明確に示されている。
【0025】
即ち、毛髪領域を効果的にセグメント化するために、まず、画像内の姿勢を識別してもよい。前述したように、毛髪領域と共にユーザーの顔を示す画像は、毛髪の分析に適していると考えられる。顔や毛髪領域の一部のみの(例えば切り取られた)画像では、毛髪の分析が正しく行われない場合がある。ここでは、毛髪領域をセグメント化する際に、画像内の姿勢が機械学習モデルにおける入力データセットの画像一式の姿勢と類似の姿勢を確実に取るように、画像内の姿勢を識別してもよい。姿勢が異なると、精度が最適とならない可能性がある。例えば、ユーザーが自撮りをする際に、カメラの視野(Field of View:FoV)が胸部付近に限定され、顔や毛髪領域が鮮明に見える場合、機械学習モデルにも一般的に同様の画像が入力されていることから、そのような画像は「良い」姿勢であると考えられ得る。これに対して、撮影された画像が顔や毛髪領域の詳細が限定されたユーザーの全体像である場合、そのような画像は姿勢が「良くない」と判定され、最終的に毛髪分析の精度を落とす可能性がある。一部の例では、画像の姿勢が「良くない」と識別された場合、画像を再撮影するか、毛髪分析の目的には別の画像を使用するように、ユーザーに通知が送信されてもよい。更に、スマートフォンの画面上に、(例えば)毛髪分析のための処理に必要となり得る適切な姿勢の画像が取得されるように、関連するカメラを動かすための方向を示す矢印を提供することによって、適切な姿勢で画像を撮影するようにユーザーを誘導してもよい。
【0026】
画像の姿勢が識別されると、この識別された姿勢に基づいて画像の毛髪領域がマスクされてもよい。ここでは、画像の毛髪領域を強調するために、画像の背景や不要な特徴を黒くし、毛髪領域のみを蛍光色又は白くしてもよい。前述したように、毛髪領域画像がマスクされた画像を出力するべく機械学習モデルを実装してもよい。入力画像と出力画像としてのそれぞれのマスクされた画像の一式を含むデータセットが供給されると、機械学習モデルは、画像のトレーニング、Dev及びTestデータセットを実装してもよく、これらは適宜分割されて、本目的のためにTensorflow2などを含むがこれに限定されない深層学習フレームワークに渡されることが理解できるであろう。機械学習モデルの実装の詳細は、当業者によって検討され得るため、本開示を簡潔に保つよう本明細書では詳細に説明されていない。毛髪領域がマスクされた画像は、毛髪領域だけを示す画像であってもよい。
【0027】
その後、毛髪領域がマスクされた画像をダウンサンプリングしてもよい。画像のダウンサンプリングとは、画像のサイズを小さくすることである。なお、毛髪領域がマスクされた画像のダウンサンプリングは、毛髪領域以外の画素を取り除くために行ってもよい。つまり、マスクされた毛髪領域を除く、画像の他の全ての無関係な領域を削除してもよい。更に、ダウンサンプリングされた画像は、元のマスクされた画像と比較して処理が速くなり得ることが当業者であれば理解できるであろう。画像は画素からなり、各画素はその画像内のXY座標のような特定の位置における1つの色を表していると理解される。ダウンサンプリングされた画像は、複数の毛髪領域の画素を抽出するために処理されてもよい。更に、抽出された複数の毛髪領域画素のうち少なくとも1つの画素位置が定められてもよい。
【0028】
実施形態によれば、画像の毛髪領域をセグメント化するためにいくつかのアルゴリズム及びアーキテクチャを採用してもよい。一実装において、前記システムは、セグメント化された毛領域画像を決定するために、前記セグメンテーションブロックによって、完全畳み込みネットワーク(Fully Convolutional Network:FCN)を実装するように構成される。ここでは、「エンコーダー」と呼ばれる一連の畳み込みによって、より多くのチャネルを獲得しながら、画像をより小さなサイズにダウンサンプリングしてもよい。符号化された出力は、一連の転置畳み込み又は双線形補間によってアップサンプリングされてもよい。この処理を行うのが「デコーダー」である。一部の例では、画像の毛髪領域をセグメント化するために、「U-net」と呼ばれるFCNの高度なバージョンを採用してもよい。U-netは、畳み込みブロックの出力から、同じレベルの転置畳み込みブロックの対応する入力まで、スキップ接続を有するアーキテクチャであることが有利な点である。ティラミス(DenseNet)、ピラミッドシーン解析ネットワーク(Pyramid Scene Parsing Network)、アトラス畳み込み(Atrous Convolution)などのような他のセグメンテーションアーキテクチャも、画像の毛髪領域をセグメント化するために採用されてもよいことが考えられ得る。更に、結果を改善するために、何らかのハイパーパラメータチューニングが行われてもよい。
【0029】
特に、FCNは、画像に対して複数の毛髪領域の画素を抽出し、複数の毛髪領域画素のうちの少なくとも1つの画素の位置を定めてもよい。前述したように、一実施形態では、毛髪領域がマスクされた画像は、毛髪領域を白色で示し、それ以外の領域を黒色化してもよい。毛髪領域がマスクされた画像をマスクされた画像と称し、マスクアウトされた画像を取得するために処理されてもよい。ここでは、画像内のユーザーの元の毛髪色を毛髪領域に表示し、画像内の残りの部分を黒く塗りつぶしてもよい。次に、セグメント化された毛髪領域画像を得るために、毛髪領域がマスクされた画像内の毛髪領域以外の残りの領域を白色化してもよい。この段階では、毛髪の束がその毛髪領域及び輪郭と共に鮮明に見え得る。このようにして、毛髪領域を抽出し、画素位置を定めてもよい。
【0030】
前記毛髪分析のための方法は、前記セグメント化された毛髪領域画像内の1つ以上の支配的な毛髪色の種類を識別することを更に含む。特に、前記セグメンテーションブロックによってセグメント化された毛髪領域画像が取得されると、前記セグメンテーションブロックは、毛髪色名を決定するために、セグメント化された毛髪領域画像を色検出ブロックに送信してもよい。当然ながら、ユーザーの毛髪領域は、典型的には複数の色を有していてもよい。例えば、ユーザーは、何らかの黒、白、茶色、赤、又はグレーの毛髪を有し得る。しかし、白髪の数は他の色に比べて少ないため、無視される可能性がある。ここでは、セグメント化された毛髪領域画像の毛髪領域において数の著しい色を、本開示の実施形態に係る「支配的な毛髪色の種類」として識別してもよい。
【0031】
実施形態によっては、前記1つ以上の支配的な毛髪色の種類を識別することは、クラスタリング技術を使用して、前記セグメント化された毛髪領域画像内の複数の色のクラスターを有する毛髪色分布を決定することと、前記毛髪色分布における前記決定された数の色のクラスターから予め定められた数の色のクラスターを選択することと、前記選択された予め定められた数の色のクラスターに対するセントロイドのセットを決定することと、ヒストグラムを使用して、前記セントロイドのセットに対する画素群の数を決定することと、前記決定された画素群の数に基づいて前記支配的な毛髪色の種類を判定することと、を含む。即ち、前記システムの前記色検出ブロックは、クラスタリング技術を使用して、前記セグメント化された毛髪領域画像内の複数の色のクラスターを有する毛髪色分布を決定し、前記毛髪色分布における前記決定された数の色のクラスター数から予め定められた数の色のクラスターを選択し、前記選択された予め定められた数の色のクラスターに対するセントロイドのセットを決定し、ヒストグラムを使用して、前記セントロイドのセットに対する画素群の数を決定し、前記決定された画素群の数に基づいて前記支配的な毛髪色の種類を判定するように更に構成されている。
【0032】
前述したように、毛髪領域が有するのは1つの特定の色ではない場合がある。むしろ、毛髪領域は、複数の色のクラスターを含んでいてもよい。1つ以上の支配的な毛髪色の種類を識別するために、毛髪色の種類は標準的な形式で分類されてもよい。本開示の目的のために、毛髪色の種類は、色相色の5つのクラスター、即ち、グレー、黒、茶色、赤系統、及びブロンドに分類され得る。しかし、任意のセグメント化された毛髪領域画像について、1つ以上のクラスターの割合が取得されてもよい。即ち、毛髪領域は、黒っぽいグレーとブロンドがかった茶色などを含むがこれらに限定されない毛髪色の種類の複数の組合せを有してもよい。
【0033】
その後、セグメント化された毛髪領域画像内の色のクラスターを識別するために、複数のアルゴリズムが採用されてもよい。ここでは、毛髪色を判定するために教師なし学習のアプローチを用いてもよい。一実施形態では、K平均クラスタリングアルゴリズムが採用され得る。K平均クラスタリングアルゴリズムは、データセットのデータポイントをグループ化するために使用され得る機械学習の一種である。ここでは、類似の特性を持つデータポイントを1つのグループにまとめている。これらのグループは重複しておらず、クラスターと呼ばれる。クラスタリングアルゴリズムは、セグメント化された毛髪領域画像の画素をグループ化するために使用されてもよい。本実装では、セグメント化された毛髪領域画像の画素は、K平均クラスタリングアルゴリズムを使用して、色相色の5つのクラスターにグループ化されてもよい。ここで「k」は5に等しく、色のクラスターは、グレー、黒、茶色、赤系統、及びブロンドを含む。毛髪色分布は、ユーザーの参考のために、例えば、セグメント化された毛髪領域画像内の色の各クラスターの割合を示す円グラフの形態で形成されてもよい。デフォルトでは、「k」の値は、画像内の上位5つの支配的な毛髪色の種類を判定するために5に設定されてもよいが、セグメント化された毛髪領域画像が全体的に均一な毛髪色の種類を有し得る場合、アルゴリズムは、「k」の値を制限なしに5未満とみなしてもよい。特にここでは、クラスターの数を定め、RGBチャネルの形状をベクトルとして画像内に再構成し、これらはアルゴリズムに入力として渡される。
【0034】
毛髪色分布が取得されると、この毛髪色分布における決定された数の色のクラスターから予め定められた数の色のクラスターを選択してもよい。ここでは、著しく低い割合(例えば、ある予め定められた閾値未満)を有する色はスキップされ、著しく高い割合(例えば、前記閾値超)を有する色のみが毛髪色分布から選択されてもよい。更に、選択する色の数は予め定めておいてもよい。例えば、一実施形態において、予め定められた数の色のクラスターは、3色と設定されてもよい。ここでは、毛髪色分布から割合の上位3色を選択し、残りの全ての色のクラスター(決定されたもの)を無視してもよい。
【0035】
予め定められた数の色のクラスターが選択されると、これらのクラスターのセントロイドのセットが決定されてもよい。クラスタリングアルゴリズムのセントロイドは、各クラスターの中心に位置するデータポイントである。ここでは、各クラスターのセントロイドは、所与のクラスターの中心にある画素であってもよい。更に、セントロイドのセットに対する画素群の数は、ヒストグラムを使用して計算されてもよい。従来のK平均では、新しいセントロイドの値は、特定のクラスターに属する全ての画素の画素値の平均として計算されることが理解されよう。最後に、決定された画素群の数に基づく1つ以上の支配的な毛髪色の種類が判定されてもよい。1つ以上の支配的な毛髪色の種類は、より大きな画素群の数を有するものであってもよい。ヒストグラム分析では、あるクラスターの画素値の分布の平均値の代わりに最頻値を算出する。新しいセントロイドは、そのクラスター内で最も繰り返し回数が多い画素値とされる。ヒストグラム分析の基本は、最頻値が平均値よりも強固にクラスターを代表するという事実に由来しており、クラスター内の非常に代表性の低い1つの画素は、平均値には大きく影響するものの、最頻値には影響しない。最頻値は、実際にクラスター内で最大回数出現する画素の値でなければならないため、画素値のばらつきが大きい場合に、ヒストグラム分析によって新たに非現実的な画素値が作られることはない。したがって、決定された画素群の数に基づいて、支配的な毛髪色の種類が判定されてもよい。
【0036】
実施形態によっては、前記方法は、前記画素群の数を決定する際に、前記支配的な毛髪色の種類を判定する一方で、白色に対応する画素群の数を破棄することを更に含む。即ち、前記システムの前記色検出ブロックは、前記支配的な毛髪色の種類を判定する一方で、白色に対応する画素群の数を破棄するように更に構成される。セグメント化された毛髪領域画像について、画素群の大部分は、255、255、255のRGB値を持つ真っ白となり得ることが理解されよう。これは、毛髪領域を除けば、白い背景により、セグメント化された毛髪領域は真っ白であるためである。よって、毛髪色の種類を判定する必要がある場合には、真っ白な画素は破棄される必要があり、そうしないと、白色の画素数が多いために、毛髪色の種類を誤って白色と判定してしまう可能性がある。
【0037】
本方法は、セグメント化された毛髪領域画像内の1つ以上の支配的な毛髪色の種類の画素のRGB値を決定することを更に含む。即ち、1つ以上の支配的な毛髪色の種類が判定されると、支配的な色の種類の各々における画素のRGB値を決定してもよい。ここでは、RGB値とは、セグメント化された毛髪領域画像の画素の赤、緑、及び青成分の強度を示すものである。赤、緑、青の値の組合せは、観察者が知覚する色の結果に寄与することが理解されよう。
【0038】
本方法は、複数の毛髪色の色合いが対応するHEXコードに基づいて異なる毛髪色名として分類された毛髪色辞書を実装することを更に含み、前記分類された異なる毛髪色名のそれぞれは前記対応するHEXコードに基づいて相対RGB値を有する。前述したように、セグメント化された毛髪領域画像内の1つ以上の支配的な毛髪色の種類は、2つ以上であってもよい。例えば、一実施形態では、ユーザーの毛髪は、濃い茶色として認識されることがある。しかし、毛髪色名を決定するために採用されたアルゴリズムは、毛髪領域が茶色の画素、黒の画素、わずかな肌の部分を表す薄茶色の画素、及び白の画素で構成されていると認識する場合がある。更に、セグメント化された毛髪画像は、様々な色合いの茶色を有する場合がある。例えば、茶色には異なるHEXコードの色合いがあり、それらは全て茶色の色であるものの、それぞれが異なるRGB値と異なるHEXコードを有することがある。一般的に、毛髪色名がすでに定義されているのは一部の色だけである。したがって、本開示の毛髪分析のための方法が、RGB値やHEXコード値だけに限定されず、色の名称によっても正しい毛髪色名を提供するためには、毛髪色辞書の実装が必要である。毛髪色辞書は、HEXコードと、対応するHEXコードに基づく相対RGB値が、それぞれの毛髪色名に対応付けられたルックアップテーブルの形態であってもよい。ここでは、各HEXコードの相対RGB値とは、それぞれのHEXコードで定義される毛髪色名の赤、青、及び緑成分の強度の値であってもよい。例えば、毛髪色辞書の茶色のサブセットは、16進コード#53311B、#A38C85、#816457、#5F3420、#6E4C2D、#B57452、及び#C0A69を、それぞれゴールデンブラウン、ゴールデンハニーブラウン、キャラメルブラウン、タフィーブラウン、ニュートラルブラウン、及びアッシュブラウンに対応付けてもよい。正確な毛髪色の命名オプションのために、多数の16進コードとその関連する毛髪色名を毛髪色辞書に追加してもよいことが理解されよう。
【0039】
本方法は、前記1つ以上の支配的な毛髪色の種類の画素の前記RGB値との距離が最小の相対RGB値を識別するべく、前記セグメント化された毛髪領域画像内の前記1つ以上の支配的な毛髪色の種類の画素の前記決定されたRGB値と前記分類された異なる毛髪色の種類の相対RGB値とを比較することを更に含む。即ち、1つ以上の支配的な毛髪色の種類の画素の決定されたRGB値に最も近く一致する相対RGB値を推論するために、比較を実行してもよい。ここでは、比較結果を処理して、1つ以上の支配的な毛髪色の種類の画素のRGB値との距離が最小の相対RGB値を識別してもよい。このようなコンピューティングデバイスを用いた比較技術は、当技術分野でよく知られており、したがって本明細書では説明しない。
【0040】
実施形態によっては、前記距離が最小の前記相対RGB値を決定することは、前記セグメント化された毛髪領域画像内の前記1つ以上の支配的な毛髪色の種類の画素の前記決定されたRGB値と前記分類された異なる毛髪色の種類の前記相対RGB値との間のR、G、Bチャネルのそれぞれにおける絶対差を求めることと、前記R、G、Bチャネルのそれぞれにおける前記求められた絶対差を正規化することと、を含む。即ち、前記色検出ブロックは、前記距離が最小の前記相対RGB値を決定するべく、前記セグメント化された毛髪領域画像内の前記1つ以上の支配的な毛髪色の種類の画素の前記決定されたRGB値と前記分類された異なる毛髪色の種類の前記相対RGB値との間のR、G、Bチャネルのそれぞれにおける絶対差を求め、前記R、G、Bチャネルのそれぞれにおける前記求められた絶対差を正規化するように更に構成されている。
【0041】
前述したように、距離が最小の相対RGB値を識別するために、決定されたRGB値を比較してもよい。特に、本実装では、絶対差を求めるために、分類された異なる毛髪色の種類のそれぞれの相対RGB値から、1つ以上の支配的な毛髪色の種類のそれぞれの画素のRGB値が減算されてもよい。例えば、支配的な毛髪色の種類の1つが茶色である場合、茶色のRGB値が決定される。ここでは、前述のように、RGB値とはR、G、Bチャネルのそれぞれの強度である。次に、絶対差を求めるように、決定されたRGB値のR、G、Bチャネルそれぞれを、分類された異なる毛髪色のそれぞれのR、G、Bチャネルのそれぞれから減算してもよい。このようにして、1つ以上の支配的な毛髪色の種類のそれぞれについての絶対差を識別してもよい。
【0042】
1つ以上の支配的な毛髪色の種類が識別されると、R、G、Bチャネルのそれぞれの決定された絶対差は、正規化されてもよい。考えられ得るように、正規化とは、変数の値をある範囲内で増減するプロセスである。一般的には、この範囲は0~1としてもよい。正規化を行うにはいくつかの方法がある。通常、正規化は以下の式に則り行われる。
式中、「X」は変数の元の値、「Xnew」は正規化後に得られる変数「X」の新しい値、「Xmin」は変数「X」の最小値、「Xmax」は変数「X」の最大値である。正規化されていない絶対差は、その値が特定の範囲に限定されない場合があるため、ランダムで意味をなさない可能性があることが理解されよう。例えば、R、G、Bチャネルの1つの絶対値が10、15、20であり、R、G、Bチャネルの別の絶対値が70、90、50であり得る。これらの2つの絶対値は、特定の範囲内にないため、何ら意味もなさない。したがって、R、G、Bチャネルの絶対値が全て定義された範囲にあることを保証するために、正規化を行ってもよい。一実施形態では、R、G、Bチャネルの全ての絶対値は、0~1の範囲にあるように正規化されてもよい。
【0043】
更に、ここでは、前記1つ以上の支配的な毛髪色の種類の画素のRGB値との距離が最小の前記相対RGB値を識別することは、最小の絶対差を求めるために、絶対差を全て比較することを含み、絶対差が最小である相対RGB値を考慮してもよい。絶対差が最小である相対RGB値は、前記1つ以上の支配的な毛髪色の種類の画素のRGB値と最も近く一致してもよく、したがって、それぞれの相対RGB値が識別され得ることが理解されよう。
【0044】
本方法は、前記毛髪色辞書内の前記異なる毛髪色名から、前記距離が最小の前記識別された相対RGB値に対応する毛髪色名を決定することを更に含む。前述したように、識別された相対RGB値は、支配的な毛髪色の種類に最も近く一致してもよい。識別された相対RGB値は、HEXコードに変換され、定義された毛髪色辞書内でこれが検索されてもよい。毛髪色辞書内の毛髪色名の各々は特定のHEXコードを有し得るため、それに対応する毛髪色名を取得するために、毛髪色辞書において(変換によって取得された)HEXコードが照合されてもよい。更に、毛髪分析に使用したコンピューティングデバイスに毛髪色名を出力し、ユーザーの参考としてもよい。
【0045】
実施形態によっては、前記方法は、毛髪質感学習済み関数を使用して、前記セグメント化された毛髪領域画像から毛髪の質感を判定することを更に含む。前記システムは、毛髪質感学習済み関数を使用して、前記セグメント化された毛髪領域画像から毛髪の質感を判定するように構成された毛髪質感ブロックを含む。例示的な実装において、毛髪の質感は、ストレート、ウェービー、カーリー、及びコイリーのうちの1つとして分類され得る。毛髪質感学習済み関数は、セグメント化された毛髪領域画像を入力とし、ストレート、ウェービー、カーリー、及びコイリーそれぞれの毛髪の割合を決定してもよい。最も割合の高い毛髪の質感の分類を、ユーザーの毛髪の質感とみなしてもよい。例えば、一例では、ストレートの割合が10、ウェービーの割合が15、カーリーの割合が60、コイリーの割合が15であってもよい。このような例では、毛髪質感学習済み関数は、毛髪の質感をカーリーと判定してもよい。ここでは、毛髪質感学習済み関数は、セグメント化された毛髪領域画像の毛髪の質感を判定するために学習された畳み込みニューラルネットワーク(CNN)を含む機械学習モデルであってもよい。毛髪光沢学習済み関数は、毛髪の質感が異なる入力画像のセットと、それに予め割り当てられた毛髪量の分類に基づいて、事前学習されていてもよい。このような機械学習モデルは、当業者によって検討され得るため、本明細書では説明しない。
【0046】
実施形態によっては、前記方法は、毛髪量学習済み関数を使用して、前記セグメント化された毛髪領域画像から毛髪量を判定することを更に含む。前記システムは、毛髪量学習済み関数を使用して、前記セグメント化された毛髪領域画像から毛髪量を判定するように構成された毛髪量ブロックを含む。ここでは、毛髪量学習済み関数は、セグメント化された毛髪領域画像の毛髪量を判定するために学習され得るCNNを含む機械学習モデルであってもよい。毛髪量は、少ない、平均的、良好、又は密に分類され得る。毛髪量学習済み関数は、セグメント化された毛髪領域画像を入力とし、毛髪領域の毛髪量の割合を求めてもよい。その割合が平均的な毛髪量の閾値より大きく、良好な毛髪量の閾値より小さい場合、毛髪量は平均的であると判定してもよい。同様に、割合が良好な毛髪量の閾値より大きく、密な毛髪量の閾値より小さい場合、毛髪量は良好であると判定してもよい。割合が密な毛髪量の閾値よりも大きい場合、毛髪量は密であると判定されてもよい。例示的な実施形態では、少ない毛髪量の閾値は10%であってもよく、平均的な毛髪量の閾値は50%であってもよく、良好な毛髪量の閾値は70%であってもよく、密な毛髪量の閾値は90%であってもよい。したがって、セグメント化された毛髪領域画像内の毛髪領域の毛髪量の割合が78%であれば、毛髪量学習済み関数は、毛髪量を「良好」と判定してもよい。
【0047】
一実施形態において、毛髪量学習済み関数は、セグメント化された毛領域画像から毛髪量(volume)を判定するために以下の式を利用してもよい。
式中、「L」は、セグメント化された毛髪領域画像内の非ゼロ画素位置の長さとして定義され、「S」は、典型的には値が2の定数としてもよいスケール係数であり、「R」は、ユーザーの画像の総解像度として定義される。次に、毛髪量が15未満と算出された場合は「少ない」、15以上25未満と算出された場合は「平均的」、25以上60未満と算出された場合は「良好」、60以上と算出された場合は「密」と出力するようにアルゴリズムを学習させてもよい。毛髪量は性別にも依存することが考えられ、したがって、定義された限界値は性別によって変えてもよい。
【0048】
実施形態によっては、前記方法は、毛髪光沢学習済み関数を使用して、前記セグメント化された毛髪領域画像から毛髪の光沢を判定することを更に含む。前記システムは、毛髪光沢学習済み関数を使用して、前記セグメント化された毛髪領域画像から毛髪の光沢を判定するように構成された毛髪光沢ブロックを含む。更に、前記毛髪光沢ブロックは、前記システムにおいて、前記ヘルパーブロックが行った検証チェックに基づき、前記ヘルパーブロックから光沢スコアを取得してもよい。毛髪の光沢とは、毛髪がどの程度輝いているかを意味し、一般に毛髪のツヤや輝きを表す指標とされていることが理解されよう。毛髪に輝きがある場合、画像上で一部の画素が異なって見えることがあるため、毛髪の光沢を考慮してユーザーの毛髪分析を行う。例示的な一実施形態において、毛髪の光沢は、低い、平均的、又は高いに分類され得る。毛髪光沢学習済み関数は、前記セグメント化された毛髪領域画像にツヤや輝きがあるかどうかを予測するために、深層学習アルゴリズムを実装し得る機械学習モデルであってもよい。毛髪光沢学習済み関数は、毛髪の光沢が異なる入力画像のセットと、それに予め割り当てられた毛髪の光沢のカテゴリーに基づいて、事前学習されていてもよい。このような機械学習モデルは、当業者によって検討され得るため、本明細書では説明しない。
【0049】
実施形態によっては、前記方法は、毛髪縮れ具合学習済み関数を使用して、前記セグメント化された毛髪領域画像から毛髪の縮れ具合を判定することを更に含む。前記システムは、毛髪縮れ具合学習済み関数を使用して、前記セグメント化された毛髪領域画像から毛髪の縮れ具合を判定するように構成された毛髪の縮れブロックを含む。更に、前記毛髪縮れブロックは、ヘルパーブロックが行った検証チェックに基づいて、ヘルパーブロックから縮れ具合のスコアを取得するようにしてもよい。毛髪の縮れとは、毛髪が滑らかでなく、個々の毛髪の軸がばらばらに波打っていて、一直線に並んでいない状態を指す。毛髪の縮れ具合は、低縮れ毛、平均的縮れ毛、又は高縮れ毛に分類され得る。毛髪縮れ具合学習済み関数は、毛髪の縮れ具合を求めるために、縮れ具合のスコアを決定してもよい。毛髪縮れ具合学習済み関数は、前記セグメント化された毛髪領域画像の毛髪領域内に縮れがあるかどうかを予測するために、深層学習アルゴリズムを実装した事前学習済みの機械学習モデルである。毛髪縮れ具合学習済み関数は、毛髪の縮れ具合が異なる入力画像のセットと、それに予め割り当てられた毛髪の縮れ具合のカテゴリーに基づいて、事前学習されていてもよい。このような機械学習モデルは、当業者によって検討され得るため、本明細書では説明しない。
【0050】
実施形態によっては、前記方法は、前記ユーザーからユーザー選択を受信することと、前記ユーザー選択と、前記毛髪色、前記毛髪の質感、前記毛髪量、前記毛髪の光沢、及び前記毛髪の縮れ具合の少なくとも1つとに基づいて、1つ以上の第1の推奨を前記ユーザーに提供することと、を更に含む。ユーザー選択は、例えばボタンやドロップダウンメニューの形で、選択可能な複数のグラフィカルユーザーインターフェース(GUI)要素をコンピューティングデバイスのディスプレイ上に表示することによって行うことができる。ユーザー選択は、ユーザーによる毛髪分析の実行の目的に基づいてもよい。例えば、ユーザーは、好適なヘアカラー製品について知りたい場合がある。その場合、例えば「ヘアカラー製品を推奨する」ボタン等を選択することにより、選択が行われてもよい。例えば、コンピューティングデバイスのタッチスクリーンインターフェースの場合、ユーザーはユーザー選択を行うために適切なGUI要素をクリックしてもよい。ユーザー選択を受信すると、前記方法は、前記ユーザー選択と、前記毛髪色、前記毛髪の質感、前記毛髪量、前記毛髪の光沢、及び前記毛髪の縮れ具合のうちの少なくとも1つとに基づいて、1つ又は複数の第1の推奨を行ってもよい。例えば、ユーザーの毛髪色が黒色であると判定され、(当技術分野で知られているような何らかの適切なアプリケーションを採用することによって)ライトブラウンの色がユーザーに似合う可能性があると判定された場合、第1の推奨はライトブラウンの色調のヘアカラー製品であってもよい。
【0051】
実施形態によっては、前記1つ以上の第1の推奨を提供することは、新しい毛髪色、新しいヘアスタイル、ヘアカラー製品、及びヘアケア製品のうちの少なくとも1つを推奨することを含む。前述したように、ユーザー選択に従って、1つ以上の第1の推奨が提供されてもよい。更に、前述のように、ユーザーは自分に似合う毛髪色を知りたいと思う場合がある。ここでは、ユーザーは、新しい毛髪色を推奨するためのGUIを選択することによって、選択を行ってもよい。ユーザーがユーザー選択を行うと、前記方法は、毛髪分析に従って新しい毛髪色を判定し、ユーザーの現在の毛髪色の判定を考慮して、ユーザーに似合う可能性のある新しい毛髪色を推奨してもよい。同様に、新しいヘアスタイル、ヘアカラー製品、及びヘアケア製品の推奨を行うことも理解されよう。
【0052】
実施形態によっては、前記方法は、前記毛髪色、前記毛髪の質感、前記毛髪量、前記毛髪の光沢、及び前記毛髪の縮れ具合の少なくとも1つに基づいて合成スタイル変換を行うことによって、1つ以上のスタイル変換画像を生成することを更に含む。ここでは、1つ以上のスタイル変換画像は、1つ以上の第1の推奨に従ったときにユーザーがどのように見え得るかをユーザーに仮想的に示すために使用されてもよい。即ち、本明細書では、1つ以上のスタイル変換画像を生成するために、画像に対して合成スタイル変換を行ってもよい。例えば、ユーザーの毛髪色が黒であり、前記方法が新しい毛髪色を赤と推奨した場合、前記方法は画像内のユーザーの毛髪を赤く変えて、スタイル変換画像を生成してもよい。スタイル変換画像は、その後、毛髪を赤く変えるとどのように見えるかをユーザーに示すために、ユーザーのコンピューティングデバイス上に提示されてもよい。
【0053】
実施形態によっては、前記方法は、前記1つ以上の第1の推奨と前記1つ以上のスタイル変換画像とに基づいて、1つ以上の第2の推奨をユーザーに提供することを更に含む。1つ以上の第1の推奨と1つ以上のスタイル変換画像に応じて、1つ以上の第2の推奨がユーザーに提供される。前述したように、1つ以上の第1の推奨は、赤又は茶色に毛髪を染めることであってもよい。ここでは、2つのスタイル変換画像を生成してもよい。第1のスタイル変換画像は、毛髪を赤色に着色するとユーザーがどのように見えるかを示してもよい。第2のスタイル変換画像は、毛髪を茶色に着色するとユーザーがどのように見えるかを示してもよい。これらのスタイル変換画像の両方に応じて、1つ以上の第2推奨がユーザーに提供されてもよい。第1のスタイル変換画像の方がより良く見える場合、第2の推奨は赤色となり得る。第2のスタイル変換画像の方がより良く見える場合、第2の推奨は茶色となり得る。更に、第2の推奨は、ユーザーが選ぶ可能性のあるスタイルのヒントを示してもよい。例えば、1つ以上の第1の推奨が毛髪を赤く染めたものであるとき、毛髪がストレート、カーリー、及びコイリーであるときにユーザーがそれぞれどのように見えるかを描写する3つのスタイル変換画像が生成されてもよい。3つのスタイル変換画像を閲覧し、ユーザーに最も似合うスタイルを第2の推奨として推奨してもよい。つまり、上記の例でストレートヘアが良く見える場合、第2の推奨は、毛髪を赤く染めてストレートにすることであってもよい。
【0054】
前記システムは、前記ユーザーからユーザー選択を受信し、前記ユーザー選択と、前記毛髪色、前記毛髪の質感、前記毛髪量、前記毛髪の光沢、及び前記毛髪の縮れ具合のうちの少なくとも1つとに基づいて、1つ以上の第1の推奨を前記ユーザーに提供し、前記毛髪色、前記毛髪の質感、前記毛髪量、前記毛髪の光沢、及び前記毛髪の縮れ具合のうちの少なくとも1つに基づいて合成スタイル変換を行うことによって、1つ以上のスタイル変換画像を生成し、前記1つ以上の第1の推奨及び前記1つ以上のスタイル変換画像に基づいて、1つ以上の第2の推奨を前記ユーザーに提供するように構成された分析ブロックを備える。前記1つ以上の第1の推奨は、新しい毛髪色、新しいヘアスタイル、ヘアカラー製品、及びヘアケア製品のうちの少なくとも1つを推奨することを含む。前記分析ブロックは、ユーザー選択に基づいて、1つ以上の第1の推奨をユーザーに提供してもよい。例えば、ユーザー選択が新しい毛髪色である場合、前記分析ブロックは毛髪色をユーザーに推奨してもよい。また、前記分析ブロックは、1つ以上のスタイル変換画像を生成し、1つ以上の第2の推奨を提供してもよい。
【0055】
前記システムでは、前記ヘルパーブロックにより、毛髪の質感、毛髪領域の方向、毛髪領域の異なる部分の方向などを二重に検証することが可能であってもよい。前記ヘルパーブロックは、画像に何らかの問題がないか、例えば、画像に毛髪がない、画像がぼやけている、帽子に覆われているなどのダブルチェックを行い、その後、前記システムは、新しいより良い画像を提供するようにユーザーに通知してもよい。前記ヘルパーブロックは、黒髪のような支配的な毛髪色と、画像内の水平な白線として現れ得る光沢のある毛髪領域との間の毛髪色の変化を見つけるために、別の検証チェックを実行してもよい。検証チェックに基づき、前記ヘルパーブロックは、光沢スコアを予測し、これを前記毛髪光沢ブロックに提供してもよい。前記ヘルパーブロックは、画像に存在する不均一な毛髪を判定するために、毛髪の輪郭及び/又は幾何学的形状の判定を求めるための別の検証チェックを実行するように構成されてもよく、この検証チェックに基づいて、縮れ具合のスコアを予測して前記毛髪縮れブロックに提供してもよい。前記ヘルパーブロックは、毛髪抽出アルゴリズムであってもよい絞り込みアルゴリズム、HEXコードの標準色コードと対応する色名からなる毛髪色辞書、毛髪の質感のデータセット、毛髪量のデータセットを含んでもよい。
【0056】
毛髪分析のためのシステム及び方法は、多くのアプリケーションで実装されてもよい。一実施形態において、前記システム及び方法は、Android(登録商標)又はiOS(登録商標)用のモバイルアプリとして実装されてもよく、深層学習アルゴリズムは、ローカルだけでなくクラウド上でも実行され得る。ここでは、ユーザーは、モバイルアプリを開き、モバイルカメラによってユーザーの画像を撮影してもよい。次に、モバイルカメラに保存されている全ての画像及び/又はモバイルカメラで撮影された全ての画像の中から、毛髪分析用の画像を選択してもよい。次に、ユーザーは、アプリが要求する追加情報を提供することによって、ユーザー選択を行ってもよい。次に、この画像を処理して、毛髪分析画像及び/又はスタイル変換画像を取得してもよい。最後に、1つ又は複数の第1の推奨と1つ又は複数の第2の推奨を提供してもよい。前記システム及び方法は、任意のヘアケア小売業で使用される独立したソフトウェアアプリケーションとして利用できることが理解されよう。
【0057】
前記システム、方法、及びコンピュータ製品は、ユーザーの毛髪分析を容易かつ効果的に判定し得るため有利である。更に、単一の毛髪色名を示すだけでなく、本開示は、その色のバリエーションを割合のメトリックで示す毛髪色分布パターンなどの追加情報を提供してもよい。更に、前記方法は、ユーザーに1つ以上の第2の推奨を行うために、スタイル変換画像を生成してもよい。
【図面の詳細説明】
【0058】
図1を参照すると、本開示の一実施形態による、ユーザーの毛髪分析のためのシステム100の概略図が示されている。このシステムは、データ通信ネットワーク106を介してコンピューティングデバイス104に接続されたユーザーデバイス102としてのスマートフォンを備える。コンピューティングデバイスは、画像108を受信するように構成され、セグメンテーションブロック300、ヘルパーブロック112、色検出ブロック400、毛髪質感ブロック500、毛髪量ブロック600、毛髪光沢ブロック120、毛髪縮れブロック122、毛髪分析ブロック124、及び分析結果ブロック126を備える。
【0059】
セグメンテーションブロック300は、ユーザーデバイス102から画像108を受信し、セグメント化された毛髪領域画像を提供するべく画像セグメンテーションを実行するように構成される。ヘルパーブロック112は、各ブロックに対応するアルゴリズム、データセット、及び計算スコアを提供することによって、ブロック300、400、500、600、120、122、124をサポートするように構成される。色検出ブロック400は、毛髪色の種類を判定することを可能にする。毛髪質感ブロック500は、毛髪質感学習済み関数を使用して、セグメント化された毛髪領域画像から毛髪の質感を判定する。毛髪量ブロック600は、毛髪量学習済み関数を使用して、セグメント化された毛髪領域画像から毛髪量を判定する。毛髪光沢ブロック120は、毛髪光沢学習済み関数を使用して、セグメント化された毛髪領域画像から毛髪の光沢を判定する。毛髪縮れブロック122は、毛髪縮れ具合学習済み関数を使用して、セグメント化された毛髪領域画像から毛髪の縮れ具合を判定する。毛髪分析ブロック124は、ブロック112、400、500、600、120、122からデータを受信する。分析結果ブロック126は、判定された毛髪色の決定された相対RGB値の対応するHEXコードに基づいて、毛髪色名を出力する。
【0060】
図2を参照すると、本開示の一実施形態による、セグメント化された毛髪領域画像を決定するためのセグメンテーションブロック300の概略図が示されている。セグメンテーションブロック300は、画像302を受信する。セグメンテーションブロック300は、セグメント化されたマスク306を生成するべく画像302を処理する畳み込みニューラルネットワーク(CNN)304を備え、このマスクは、順にマスクされた画像308、更にマスクアウトされた画像310、最終的にセグメント化された毛髪領域画像312へと処理される。特に、画像302は、セグメンテーションブロック300によって入力として取り込まれる。CNN304は、セグメント化されたマスク306を取得するために、画像302を処理する。ここでは、顔や背景などの他の特徴は全てマスクされてもよい。ただし、皮膚の一部を残してもよい。セグメント化されたマスク306は、マスクされた画像308を取得するべく更に処理される。マスクされた画像308は、毛髪領域を定めるために、毛髪の画素を識別する。マスクされた画像308は、マスクアウトされた画像310を取得するべく処理されてもよい。ここでは、毛髪領域の毛髪が鮮明になり、この領域の毛髪の束がわずかに見えてもよい。マスクアウトされた画像310は、最終的にセグメント化された毛髪領域画像312を取得するべく処理される。セグメント化された毛髪領域画像312では、毛髪の束が鮮明に見えて、毛髪領域の輪郭が明確に示されている。
【0061】
図3Aを参照すると、本開示の一実施形態による、セグメンテーションブロック300からの様々な中間出力及び最終出力の図が示されている。ここでは、まず、ユーザーの原画像である画像302を入力として取り込む。画像302は、マスクされた画像308を取得するべく処理され、マスクされた画像308はマスクアウトされた画像310を取得するべく処理される。最終的に、マスクアウトされた画像310は、セグメント化された毛髪領域画像312を取得するべく更に処理される。
【0062】
図3Bを参照すると、本開示の一実施形態による、セグメント化された毛髪領域画像を決定するためのセグメンテーションブロック300の簡略化した概略図が示されている。ここでは、セグメント化された毛髪領域画像(例えば、セグメント化された毛髪領域画像312)を得るためのセグメント化マスク306を取得するために、CNN(例えば、CNN304)への入力として画像(例えば、画像302)が与えられる。
【0063】
図4Aを参照すると、本開示の一実施形態による、毛髪色名を決定するための色検出ブロック400の概略図が示されている。色検出ブロック400は、毛髪色辞書402を含む。セグメント化された毛髪領域画像(例えば、セグメント化された毛髪領域画像312)における支配的な毛髪色の種類の画素のRGB値が決定される。図示の例では、決定されたRGB値は、R=150、B=100、G=1である。セグメント化された毛髪領域画像312の決定されたRGB値は、R、G、Bチャネルそれぞれの絶対差を求めるために、ゴールデンブラウン、キャラメルブラウン、タフィーブラウンの相対RGB値と比較される。ゴールデンブラウンのR、G、Bチャネルそれぞれの絶対差は、3、2、1である。キャラメルブラウンのR、G、Bチャネルそれぞれの絶対差は、105、113、153である。タフィーブラウンのR、G、B各チャネルの絶対差は、5、30、1である。ゴールデンブラウンの絶対差が最小であることが観察され得る。したがって、毛髪色名はキャラメルブラウンとして取得される。
【0064】
図4Bを参照すると、本開示の一実施形態による、毛髪色名を決定するための色検出ブロック400の実装に関するステップの概略図が示されている。ここでは、セグメント化された毛髪領域画像(例えば、セグメント化された毛髪領域画像312)を入力とし、セグメント化された毛髪領域画像312内の複数の色のクラスターを有する毛髪色分布406を取得するために、畳み込みニューラルネットワーク(例えば、CNN304)を通過させる。図示の例では、毛髪色分布406は4つの色のクラスターを有し、その中で、第1のクラスター408は35.7%、第2のクラスター410は4.9%、第3のクラスター412は37.8%、及び第4のクラスター414は21.6%である。
【0065】
図5を参照すると、本開示の一実施形態による、毛髪の質感を判定するための毛髪質感ブロック500の概略図が示されている。毛髪質感ブロック500は、毛髪質感学習済み関数504を含む。ここでは、セグメント化された毛髪領域画像(例えば、セグメント化された毛髪領域画像312)が毛髪質感学習済み関数504に通される。毛髪質感学習済み関数504は、毛髪の質感をパーセントで表した棒グラフ502を取得する。図5の例示的な棒グラフ502において、毛髪の質感分析後の毛髪の質感分布は、コイリー506が約12%、カーリー508が約80%、ウェービー510が約5%、及びストレート512が約3%である。棒グラフ502によって、カールの割合が最大であることが観察され得る。したがって、毛髪の質感はカーリーと判定される。
【0066】
図6を参照すると、本開示の一実施形態による、毛髪量を判定するための毛髪量ブロック600の概略図が示されている。毛髪量ブロック600は、毛髪量学習済み関数604を含む。ここでは、セグメント化された毛髪領域画像(例えば、セグメント化された毛髪領域画像312)が毛髪量学習済み関数604に渡される。毛髪量学習済み関数604は、毛髪量をパーセントで表したグラフ602を取得する。例示的なグラフ602において、毛髪量は、少ない、平均的、多いの3つのカテゴリーに分けられている。「少ない」の閾値のパーセンテージは、座標606で示された20である。「平均的」の閾値のパーセンテージは、座標608で示された70である。「多い」の閾値のパーセンテージは、座標610で示された90である。ユーザーの毛髪量のパーセンテージは、座標612によって示され、「平均的」の閾値のパーセンテージよりも高い80である。したがって、ユーザーの毛髪量は平均的なものと判定される。
【0067】
図7を参照すると、本開示の一実施形態による、ユーザーの毛髪分析のための方法に関するステップを列挙したフローチャート700が示されている。この方法は、ステップ702において、毛髪領域をセグメント化することを含む。ここでは、セグメント化された毛髪領域画像を取得するべく、ユーザーの画像内の毛髪領域をセグメント化する。本方法は、ステップ704において、1つ以上の支配的な毛髪色の種類を識別することを含む。ここでは、セグメント化された毛髪領域画像内の1つ以上の支配的な毛髪色の種類が識別される。本方法は、ステップ706において、RGB値を決定することを含む。ここでは、セグメント化された毛髪領域画像内の1つ以上の支配的な毛髪色の種類の画素のRGB値が決定される。本方法は、ステップ708において、毛髪色辞書を実装することを含む。ここでは、複数の毛髪色の色合いが対応するHEXコードに基づいて異なる毛髪色名として分類された毛髪色辞書が実装され、分類された異なる毛髪色名のそれぞれは対応するHEXコードに基づいて相対RGB値を有する。本方法は、ステップ710において、決定されたRGB値を比較することを含む。ここでは、1つ以上の支配的な毛髪色の種類の画素のRGB値との距離が最小の相対RGB値を識別するべく、セグメント化された毛髪領域画像内の1つ以上の支配的な毛髪色の種類の画素の決定されたRGB値と分類された異なる毛髪色の種類の相対RGB値とを比較する。本方法は、ステップ712において、毛髪色を判定することを含む。ここでは、毛髪色辞書内の異なる毛髪色名から、距離が最小の識別された相対RGB値に対応する毛髪色が決定される。
【0068】
図8を参照すると、本開示の一実施形態による、1つ又は複数の第1の推奨をユーザーに提供するための方法に関するステップを列挙したフローチャート800が示されている。この方法は、ステップ802において、ユーザーの画像を撮影することを含む。本方法は、ステップ804において、ユーザーから追加情報を要求することを含む。本方法は、ステップ806において、ユーザーの毛髪分析を行うことを含む。本方法は、ステップ808において、1つ以上のスタイル変換画像を生成するために、合成スタイル変換を実行することを含む。本方法は、ステップ812において、ユーザーに製品を推奨することを含む。
【0069】
前述の本開示の実施形態に対する変更は、添付の請求項によって定義される本開示の範囲から逸脱することなく可能である。本開示を説明し特許請求するために使用される「備える」、「含む」、「内蔵する」、「有する」、「である」などの表現は、非制限的に解釈されることを意図しており、即ち、明示的に説明されていない項目、構成要素、又は要素も存在することを許容している。単数形への言及は、その複数形にも関すると解釈される。
図1
図2
図3A
図3B
図4A
図4B
図5
図6
図7
図8
【外国語明細書】