(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-07-31
(45)【発行日】2023-08-08
(54)【発明の名称】学習方法、学習プログラム、および学習装置
(51)【国際特許分類】
G06T 7/00 20170101AFI20230801BHJP
G06V 10/82 20220101ALI20230801BHJP
G06N 20/00 20190101ALI20230801BHJP
【FI】
G06T7/00 350C
G06V10/82
G06N20/00 130
(21)【出願番号】P 2021553907
(86)(22)【出願日】2019-10-28
(86)【国際出願番号】 JP2019042225
(87)【国際公開番号】W WO2021084590
(87)【国際公開日】2021-05-06
【審査請求日】2022-04-19
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100104190
【氏名又は名称】酒井 昭徳
(72)【発明者】
【氏名】山本 卓永
【審査官】松元 伸次
(56)【参考文献】
【文献】国際公開第2015/008567(WO,A1)
【文献】特開2017-201454(JP,A)
【文献】国際公開第2016/009569(WO,A1)
【文献】YANG, Jufeng, et al.,Weakly Supervised Coupled Networks for Visual Sentiment Analysis,IEEE Xplore Digital Library,IEEE,2018年12月17日,pp.7584-7592,https://ieeexplore.ieee.org/stamp.jsp?tp=&arnumber=8578889&tag=1
(58)【調査した分野】(Int.Cl.,DB名)
G06N3/00-3/12
7/08-99/00
G06T7/00-7/90
G06V10/00-20/90
30/418
40/16
40/20
(57)【特許請求の範囲】
【請求項1】
画像を取得し、
取得した前記画像から、前記画像全体に関する第一の特徴ベクトルを抽出し、
取得した
前記画像を解析した結果に基づいて、1以上の物体のそれぞれの物体が前記画像に写っている確率を算出し、算出した前記確率に基づいて、物体に関する第二の特徴ベクトルを抽出し、
抽出した前記第一の特徴ベクトルと、抽出した前記第二の特徴ベクトルとを組み合わせて、第三の特徴ベクトルを生成し、
生成した前記第三の特徴ベクトルに、前記画像の印象を示すラベルを対応付けた学習データに基づいて、入力された特徴ベクトルに対応する印象を示すラベルを出力するモデルを学習する、
処理をコンピュータが実行することを特徴とする学習方法。
【請求項2】
画像を取得し、
取得した前記画像から、前記画像全体に関する第一の特徴ベクトルを抽出し、
取得した前記画像を解析した結果に基づいて、1以上の物体のそれぞれの物体が前記画像に写っているか否かを判断し、前記1以上の物体のうち、前記画像に写っていると判断した物体の名称に基づいて、物体に関する第二の特徴ベクトルを抽出し、
抽出した前記第一の特徴ベクトルと、抽出した前記第二の特徴ベクトルとを組み合わせて、第三の特徴ベクトルを生成し、
生成した前記第三の特徴ベクトルに、前記画像の印象を示すラベルを対応付けた学習データに基づいて、入力された特徴ベクトルに対応する印象を示すラベルを出力するモデルを学習する、
処理をコンピュータが実行することを特徴とする学習方法。
【請求項3】
画像を取得し、
取得した前記画像から、前記画像全体に関する第一の特徴ベクトルを抽出し、
取得した前記画像を解析した結果に基づいて、1以上の物体のそれぞれの物体の前記画像上の大きさを特定し、特定した前記大きさに基づいて、物体に関する第二の特徴ベクトルを抽出し、
抽出した前記第一の特徴ベクトルと、抽出した前記第二の特徴ベクトルとを組み合わせて、第三の特徴ベクトルを生成し、
生成した前記第三の特徴ベクトルに、前記画像の印象を示すラベルを対応付けた学習データに基づいて、入力された特徴ベクトルに対応する印象を示すラベルを出力するモデルを学習する、
処理をコンピュータが実行することを特徴とする学習方法。
【請求項4】
画像を取得し、
取得した前記画像から、前記画像全体に関する第一の特徴ベクトルを抽出し、
取得した前記画像を解析した結果に基づいて、1以上の物体のそれぞれの物体が前記画像に写っている確率を算出し、算出した前記確率に基づいて、物体に関する第二の特徴ベクトルを抽出し、
抽出した前記第一の特徴ベクトルと、抽出した前記第二の特徴ベクトルとを組み合わせて、第三の特徴ベクトルを生成し、
生成した前記第三の特徴ベクトルに、前記画像の印象を示すラベルを対応付けた学習データに基づいて、入力された特徴ベクトルに対応する印象を示すラベルを出力するモデルを学習する、
処理をコンピュータに実行させることを特徴とする学習プログラム。
【請求項5】
画像を取得し、
取得した前記画像から、前記画像全体に関する第一の特徴ベクトルを抽出し、
取得した前記画像を解析した結果に基づいて、1以上の物体のそれぞれの物体が前記画像に写っているか否かを判断し、前記1以上の物体のうち、前記画像に写っていると判断した物体の名称に基づいて、物体に関する第二の特徴ベクトルを抽出し、
抽出した前記第一の特徴ベクトルと、抽出した前記第二の特徴ベクトルとを組み合わせて、第三の特徴ベクトルを生成し、
生成した前記第三の特徴ベクトルに、前記画像の印象を示すラベルを対応付けた学習データに基づいて、入力された特徴ベクトルに対応する印象を示すラベルを出力するモデルを学習する、
処理をコンピュータに実行させることを特徴とする学習プログラム。
【請求項6】
画像を取得し、
取得した前記画像から、前記画像全体に関する第一の特徴ベクトルを抽出し、
取得した前記画像を解析した結果に基づいて、1以上の物体のそれぞれの物体の前記画像上の大きさを特定し、特定した前記大きさに基づいて、物体に関する第二の特徴ベクトルを抽出し、
抽出した前記第一の特徴ベクトルと、抽出した前記第二の特徴ベクトルとを組み合わせて、第三の特徴ベクトルを生成し、
生成した前記第三の特徴ベクトルに、前記画像の印象を示すラベルを対応付けた学習データに基づいて、入力された特徴ベクトルに対応する印象を示すラベルを出力するモデルを学習する、
処理をコンピュータに実行させることを特徴とする学習プログラム。
【請求項7】
画像を取得し、
取得した前記画像から、前記画像全体に関する第一の特徴ベクトルを抽出し、
取得した前記画像を解析した結果に基づいて、1以上の物体のそれぞれの物体が前記画像に写っているか否かを判断し、前記1以上の物体のうち、前記画像に写っていると判断した物体の前記画像上の大きさを特定し、特定した前記大きさに基づいて、物体に関する第二の特徴ベクトルを抽出し、
抽出した前記第一の特徴ベクトルと、抽出した前記第二の特徴ベクトルとを組み合わせて、第三の特徴ベクトルを生成し、
生成した前記第三の特徴ベクトルに、前記画像の印象を示すラベルを対応付けた学習データに基づいて、入力された特徴ベクトルに対応する印象を示すラベルを出力するモデルを学習する、
処理をコンピュータに実行させることを特徴とする学習プログラム。
【請求項8】
画像を取得し、
取得した前記画像から、前記画像全体に関する第一の特徴ベクトルを抽出し、
取得した前記画像を解析した結果に基づいて、1以上の物体のそれぞれの物体の前記画像上の色特徴を特定し、特定した前記色特徴に基づいて、物体に関する第二の特徴ベクトルを抽出し、
抽出した前記第一の特徴ベクトルと、抽出した前記第二の特徴ベクトルとを組み合わせて、第三の特徴ベクトルを生成し、
生成した前記第三の特徴ベクトルに、前記画像の印象を示すラベルを対応付けた学習データに基づいて、入力された特徴ベクトルに対応する印象を示すラベルを出力するモデルを学習する、
処理をコンピュータに実行させることを特徴とする学習プログラム。
【請求項9】
画像を取得し、
取得した前記画像から、前記画像全体に関する第一の特徴ベクトルを抽出し、
取得した前記画像を解析した結果に基づいて、1以上の物体のそれぞれの物体が前記画像に写っているか否かを判断し、前記1以上の物体のうち、前記画像に写っていると判断した物体の前記画像上の色特徴を特定し、特定した前記色特徴に基づいて、物体に関する第二の特徴ベクトルを抽出し、
抽出した前記第一の特徴ベクトルと、抽出した前記第二の特徴ベクトルとを組み合わせて、第三の特徴ベクトルを生成し、
生成した前記第三の特徴ベクトルに、前記画像の印象を示すラベルを対応付けた学習データに基づいて、入力された特徴ベクトルに対応する印象を示すラベルを出力するモデルを学習する、
処理をコンピュータに実行させることを特徴とする学習プログラム。
【請求項10】
画像を取得し、
取得した前記画像から、前記画像全体に関する第一の特徴ベクトルを抽出し、
取得した前記画像を解析した結果に基づいて、1以上の物体のそれぞれの物体が前記画像に写っている確率を算出し、算出した前記確率に基づいて、物体に関する第二の特徴ベクトルを抽出し、
抽出した前記第一の特徴ベクトルと、抽出した前記第二の特徴ベクトルとを組み合わせて、第三の特徴ベクトルを生成し、
生成した前記第三の特徴ベクトルに、前記画像の印象を示すラベルを対応付けた学習データに基づいて、入力された特徴ベクトルに対応する印象を示すラベルを出力するモデルを学習する、
制御部を有することを特徴とする学習装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習方法、学習プログラム、および学習装置に関する。
【背景技術】
【0002】
従来、画像を解析し、人が画像を見た際にどのような印象を受けるのかを推定する技術がある。この技術は、例えば、人が、広告として作成した画像を見た際にどのような印象を受けるのかを推定し、訴求効果の向上を図るために用いられることがある。
【0003】
先行技術としては、例えば、画像全体に対しフィルタ処理を行い、特徴ベクトルとアテンションマップとを作成し、作成した特徴ベクトルとアテンションマップとを用いて、画像の印象を推定するものがある。フィルタ処理は、例えば、CNN(Convolutional Neural Network)により行われる。
【先行技術文献】
【非特許文献】
【0004】
【文献】Yang, Jufeng, et al. “Weakly supervised coupled networks for visual sentiment analysis.” Proceedings of the IEEE conference on computer vision and pattern recognition. 2018.
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術では、画像の印象を精度よく推定することは難しい。例えば、人が画像を見た際、画像の全体から受ける印象の他に、画像の一部分から受ける印象もあり、画像の全体に関する特徴ベクトルを参照するだけでは、人が画像を見た際にどのような印象を受けるのかを精度よく推定することは難しい。
【0006】
1つの側面では、本発明は、画像の印象を精度よく推定可能であるモデルを学習することを目的とする。
【課題を解決するための手段】
【0007】
1つの実施態様によれば、画像を取得し、取得した前記画像から、前記画像全体に関する第一の特徴ベクトルを抽出し、取得した前記画像から、物体に関する第二の特徴ベクトルを抽出し、抽出した前記第一の特徴ベクトルと、抽出した前記第二の特徴ベクトルとを組み合わせて、第三の特徴ベクトルを生成し、生成した前記第三の特徴ベクトルに、前記画像の印象を示すラベルを対応付けた学習データに基づいて、入力された特徴ベクトルに対応する印象を示すラベルを出力するモデルを学習する学習方法、学習プログラム、および学習装置が提案される。
【発明の効果】
【0008】
一態様によれば、画像の印象を精度よく推定可能であるモデルを学習することが可能になる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施の形態にかかる学習方法の一実施例を示す説明図である。
【
図2】
図2は、印象推定システム200の一例を示す説明図である。
【
図3】
図3は、学習装置100のハードウェア構成例を示すブロック図である。
【
図4】
図4は、学習装置100の機能的構成例を示すブロック図である。
【
図5】
図5は、印象を示すラベルangerと対応付けられた学習用画像の一例を示す説明図である。
【
図6】
図6は、印象を示すラベルdisgustと対応付けられた学習用画像の一例を示す説明図である。
【
図7】
図7は、印象を示すラベルfearと対応付けられた学習用画像の一例を示す説明図である。
【
図8】
図8は、印象を示すラベルjoyと対応付けられた学習用画像の一例を示す説明図である。
【
図9】
図9は、印象を示すラベルsadnessと対応付けられた学習用画像の一例を示す説明図である。
【
図10】
図10は、印象を示すラベルsurpriseと対応付けられた学習用画像の一例を示す説明図である。
【
図11】
図11は、モデルを学習する一例を示す説明図(その1)である。
【
図12】
図12は、モデルを学習する一例を示す説明図(その2)である。
【
図13】
図13は、モデルを学習する一例を示す説明図(その3)である。
【
図14】
図14は、モデルを学習する一例を示す説明図(その4)である。
【
図15】
図15は、モデルを学習する一例を示す説明図(その5)である。
【
図16】
図16は、モデルを学習する一例を示す説明図(その6)である。
【
図17】
図17は、モデルを学習する一例を示す説明図(その7)である。
【
図18】
図18は、モデルを学習する一例を示す説明図(その8)である。
【
図19】
図19は、対象画像の印象を推定する一例を示す説明図である。
【
図20】
図20は、対象画像の印象を示すラベルの表示例を示す説明図である。
【
図21】
図21は、学習処理手順の一例を示すフローチャートである。
【
図22】
図22は、推定処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下に、図面を参照して、本発明にかかる学習方法、学習プログラム、および学習装置の実施の形態を詳細に説明する。
【0011】
(実施の形態にかかる学習方法の一実施例)
図1は、実施の形態にかかる学習方法の一実施例を示す説明図である。学習装置100は、画像の印象を推定するためのモデルを学習する際に用いられる学習データを生成し、学習データに基づいて、画像の印象を推定するためのモデルを学習することができるコンピュータである。
【0012】
ここで、画像の印象を推定する手法として、例えば、下記の各種手法などが考えられるが、下記の各種手法では、画像の印象を精度よく推定することが難しい場合がある。
【0013】
例えば、AU(Action Unit)を用いて、人が、人の顔が写った画像を見た際に受ける印象を推定する第一の手法が考えられる。第一の手法では、人が、自然画や風景画などの人の顔が写らない画像を見た際に受ける印象を推定することができない。このため、第一の手法は、人の顔が写らない、広告として作成した画像の印象を推定することができず、広告の分野に適用することができないことがある。また、第一の手法は、画像上の人の顔の写り方に関するロバスト性が低く、例えば、画像上の人の顔が横向きである場合、正面向きである場合に比べて、画像の印象を精度よく推定することが難しくなる。
【0014】
また、例えば、上記非特許文献1を参考に、画像全体に対しフィルタ処理を行い、特徴ベクトルとアテンションマップとを作成し、作成した特徴ベクトルとアテンションマップとを用いて、画像の印象を推定する第二の手法が考えられる。フィルタ処理は、例えば、CNNにより行われる。また、第二の手法では、ImageNetのデータセットを用いて、CNNの係数を学習した上で、印象の推定に関するデータセットを用いて、学習したCNNの係数を補正することが考えられる。第二の手法でも、印象の推定に関するデータセットの数が少ないほど、CNNの係数を適切に設定することが難しくなり、画像の印象を精度よく推定することが難しくなる。また、人が画像を見た際、画像の全体から受ける印象の他に、画像の一部分から受ける印象もあるため、第二の手法では、画像の一部分から受ける印象を考慮しておらず、人が画像を見た際にどのような印象を受けるのかを精度よく推定することは難しい。
【0015】
また、例えば、画像の他に、様々なセンサーデータを用いて、画像の印象を推定するマルチモーダルな第三の手法が考えられる。第三の手法は、例えば、画像の他に、画像の撮影時の音声、または、画像に付与されたキャプションなどの文章を用いて、画像の印象を推定することが考えられる。第三の手法は、画像の他に、様々なセンサーデータを取得可能な状況でなければ、実現することができない。
【0016】
また、例えば、画像に関する時系列データを用いて、画像の印象を推定する第四の手法が考えられる。第四の手法は、第三の手法と同様に、時系列データを取得可能な状況でなければ、実現することができない。
【0017】
以上から、様々な分野や状況に適用可能であり、かつ、画像の印象を精度よく推定可能である手法が望まれる。そこで、本実施の形態では、画像に関する特徴ベクトルと、物体に関する特徴ベクトルとを用いることにより、様々な分野や状況に適用可能であり、かつ、画像の印象を精度よく推定可能であるモデルを学習することができる学習方法について説明する。
【0018】
図1において、(1-1)学習装置100は、画像101を取得する。学習装置100は、例えば、画像101の印象を示すラベルと対応付けられた、当該画像101を取得する。印象を示すラベルは、例えば、anger、disgust、fear、joy、sadness、surpriseなどである。
【0019】
(1-2)学習装置100は、取得した画像101から、画像101全体に関する第一の特徴ベクトル111を抽出する。第一の特徴ベクトル111は、例えば、CNNにより抽出される。第一の特徴ベクトル111を抽出する具体例については、例えば、
図11~
図18を用いて後述する。
【0020】
(1-3)学習装置100は、取得した画像101から、物体に関する第二の特徴ベクトル112を抽出する。学習装置100は、例えば、取得した画像101内の物体が写った部分を検出し、検出した部分から、物体に関する第二の特徴ベクトル112を抽出する。第二の特徴ベクトル112を抽出する具体例については、例えば、
図11~
図18を用いて後述する。
【0021】
(1-4)学習装置100は、抽出した第一の特徴ベクトル111と、抽出した第二の特徴ベクトル112とを組み合わせて、第三の特徴ベクトル113を生成する。学習装置100は、例えば、第一の特徴ベクトル111に、第二の特徴ベクトル112を結合することにより、第三の特徴ベクトル113を生成する。第一の特徴ベクトル111と第二の特徴ベクトル112とを結合する順序は、第一の特徴ベクトル111と第二の特徴ベクトル112とのいずれが先であってもよい。第三の特徴ベクトル113を生成する具体例については、例えば、
図11~
図18を用いて後述する。
【0022】
(1-5)学習装置100は、生成した第三の特徴ベクトル113に、画像101の印象を示すラベルを対応付けた学習データに基づいて、モデルを学習する。モデルは、入力された特徴ベクトルに対応する印象を示すラベルを出力する。学習装置100は、例えば、生成した第三の特徴ベクトル113に、取得した画像101に対応付けられた画像101の印象を示すラベルを対応付けて、学習データを生成し、生成した学習データに基づいて、モデルを学習する。モデルを学習する具体例については、例えば、
図11~
図18を用いて後述する。
【0023】
これにより、学習装置100は、画像の印象を精度よく推定可能なモデルを学習することができる。学習装置100は、例えば、自然画や風景画などの人の顔が写っていない画像に関するロバスト性を確保しやすく、自然画や風景画などの人の顔が写っていない画像に対しても、画像の印象を精度よく推定可能なモデルを学習することができる。また、学習装置100は、例えば、画像の全体の印象の他に、画像の一部分の印象を考慮可能なように、モデルを学習することができる。また、学習装置100は、学習したモデルにより、画像の印象を推定する精度の向上を図ることができ、画像の印象を推定する精度を実用的な精度に近付けやすくすることができる。
【0024】
その後、学習装置100は、印象を推定する対象となる画像を取得してもよい。以下の説明では、印象を推定する対象となる画像を「対象画像」と表記する場合がある。そして、学習装置100は、学習したモデルを用いて、取得した対象画像の印象を推定してもよい。
【0025】
学習装置100は、例えば、対象画像から、対象画像全体に関する第四の特徴ベクトルと、物体に関する第五の特徴ベクトルとを抽出し、第四の特徴ベクトルと第五の特徴ベクトルとを組み合わせて、第六の特徴ベクトルを生成する。そして、学習装置100は、学習したモデルに、生成した第六の特徴ベクトルを入力し、対象画像の印象を示すラベルを取得する。対象画像の印象を示すラベルを取得する具体例については、例えば、
図19を用いて後述する。
【0026】
これにより、学習装置100は、対象画像の印象を精度よく推定することができる。学習装置100は、例えば、対象画像の印象を推定する際、対象画像の全体の印象の他に、対象画像の一部分の印象を考慮しやすくなり、対象画像の印象を精度よく推定することができる。また、学習装置100は、例えば、自然画や風景画などの人の顔が写っていない対象画像の印象を精度よく推定することができる。また、学習装置100は、対象画像の他に、様々なセンサーデータや時系列データなどを取得可能な状況でなくても、対象画像の印象を精度よく推定することができる。
【0027】
ここでは、説明の便宜上、学習装置100が、1つの画像101を基に、1つの学習データを生成し、生成した1つの学習データに基づいて、モデルを学習する場合について説明したが、これに限らない。例えば、学習装置100が、複数の画像101を基に、複数の学習データを生成し、生成した複数の学習データに基づいて、モデルを学習する場合があってもよい。この際、学習装置100は、学習データが少なくても、画像101の印象を精度よく推定可能なモデルを学習することができる。
【0028】
ここでは、学習装置100が、学習データに基づいて、モデルを学習する場合について説明したが、これに限らない。例えば、学習装置100が、学習データを、他のコンピュータに送信する場合があってもよい。この場合、学習データを受信した他のコンピュータが、受信した学習データに基づいて、モデルを学習することになる。
【0029】
(印象推定システム200の一例)
次に、
図2を用いて、
図1に示した学習装置100を適用した、印象推定システム200の一例について説明する。
【0030】
図2は、印象推定システム200の一例を示す説明図である。
図2において、印象推定システム200は、学習装置100と、1以上のクライアント装置201とを含む。
【0031】
印象推定システム200において、学習装置100とクライアント装置201とは、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。
【0032】
学習装置100は、モデルの学習用である画像を取得する。以下の説明では、モデルの学習用である画像を「学習用画像」と表記する場合がある。学習装置100は、例えば、1以上の学習用画像を、着脱可能な記録媒体から読み込むことにより取得する。また、学習装置100は、例えば、1以上の学習用画像を、ネットワークを介して受信することにより取得してもよい。また、学習装置100は、例えば、1以上の学習用画像を、クライアント装置201から受信することにより取得してもよい。また、学習装置100は、例えば、1以上の学習用画像を、学習装置100のユーザの操作入力に基づき取得してもよい。
【0033】
学習装置100は、取得した学習用画像に基づいて、学習データを生成し、生成した学習データに基づいて、モデルを学習する。その後、学習装置100は、対象画像を取得する。対象画像は、例えば、動画像に含まれる1枚の画像であってもよい。学習装置100は、例えば、対象画像を、クライアント装置201から受信することにより取得する。また、学習装置100は、例えば、対象画像を、学習装置100のユーザの操作入力に基づき取得してもよい。学習装置100は、学習したモデルを用いて、取得した対象画像の印象を示すラベルを取得して出力する。出力先は、例えば、クライアント装置201である。出力先は、例えば、学習装置100のディスプレイであってもよい。学習装置100は、例えば、サーバやPC(Personal Computer)などである。
【0034】
クライアント装置201は、学習装置100と通信可能なコンピュータである。クライアント装置201は、対象画像を取得する。クライアント装置201は、例えば、対象画像を、クライアント装置201のユーザの操作入力に基づき取得する。クライアント装置201は、取得した対象画像を、学習装置100に送信する。クライアント装置201は、取得した対象画像を、学習装置100に送信した結果、取得した対象画像の印象を示すラベルを、学習装置100から受信する。クライアント装置201は、受信した対象画像の印象を示すラベルを出力する。出力先は、例えば、クライアント装置201のディスプレイなどである。クライアント装置201は、例えば、PC、タブレット端末、または、スマートフォンなどである。
【0035】
ここでは、学習装置100が、クライアント装置201とは異なる装置である場合について説明したが、これに限らない。例えば、学習装置100が、クライアント装置201としても動作可能である場合があってもよい。この場合、印象推定システム200は、クライアント装置201を含まなくてもよい。
【0036】
また、ここでは、学習装置100が、学習データを生成し、モデルを学習し、対象画像の印象を示すラベルを取得する場合について説明したが、これに限らない。例えば、複数の装置が、協働し、学習データを生成する処理、モデルを学習する処理、対象画像の印象を示すラベルを取得する処理を分担する場合があってもよい。
【0037】
また、例えば、学習装置100が、学習したモデルを、クライアント装置201に送信し、クライアント装置201が、対象画像を取得し、受信したモデルを用いて、取得した対象画像の印象を示すラベルを取得して出力する場合があってもよい。出力先は、例えば、クライアント装置201のディスプレイなどである。この場合、学習装置100は、対象画像を取得しなくてもよいし、クライアント装置201は、対象画像を、学習装置100に送信しなくてもよい。
【0038】
・印象推定システム200の利用例(その1)
例えば、人が、広告として作成された画像を見た際にどのような印象を受けるのかを推定し、画像の作成者が、広告の訴求効果の向上を図りやすくするサービスを実現するために、印象推定システム200が利用される場合が考えられる。この場合、クライアント装置201は、画像の作成者によって利用される。
【0039】
この場合、例えば、クライアント装置201は、画像の作成者の操作入力に基づき、広告として作成された画像を取得し、学習装置100に送信する。学習装置100は、学習したモデルを用いて、広告として作成された画像の印象を示すラベルを取得し、クライアント装置201に送信する。クライアント装置201は、受信した広告として作成された画像の印象を示すラベルを、クライアント装置201のディスプレイに表示し、画像の作成者が把握可能にする。これにより、画像の作成者は、広告として作成された画像が、広告を見た人に、画像の作成者が想定した印象を与えられるか否かを判断し、広告の訴求効果の向上を図ることができる。
【0040】
・印象推定システム200の利用例(その2)
例えば、人が、ウェブサイトを見た際にどのような印象を受けるのかを推定し、ウェブサイトの作成者が、ウェブサイトをデザインしやすくするサービスを実現するために、印象推定システム200が利用される場合が考えられる。この場合、クライアント装置201は、ウェブサイトの作成者によって利用される。
【0041】
この場合、例えば、クライアント装置201は、ウェブサイトの作成者の操作入力に基づき、ウェブサイトを写した画像を取得し、学習装置100に送信する。学習装置100は、学習したモデルを用いて、ウェブサイトを写した画像の印象を示すラベルを取得し、クライアント装置201に送信する。クライアント装置201は、受信したウェブサイトを写した画像の印象を示すラベルを、クライアント装置201のディスプレイに表示し、ウェブサイトの作成者が把握可能にする。これにより、ウェブサイトの作成者は、ウェブサイトが、ウェブサイトを見た人に、ウェブサイトの作成者が想定した印象を与えられるか否かを判断し、どのようにウェブサイトをデザインすることが好ましいかを検討することができる。
【0042】
・印象推定システム200の利用例(その3)
例えば、人が、オフィス空間を写した画像を見た際にどのような印象を受けるのかを推定し、オフィス空間をデザインする作業者が、オフィス空間をデザインしやすくするサービスを実現するために、印象推定システム200が利用される場合が考えられる。この場合、クライアント装置201は、オフィス空間をデザインする作業者によって利用される。
【0043】
この場合、例えば、クライアント装置201は、作業者の操作入力に基づき、デザイン後のオフィス空間を写した画像を取得し、学習装置100に送信する。学習装置100は、学習したモデルを用いて、デザイン後のオフィス空間を写した画像の印象を示すラベルを取得し、クライアント装置201に送信する。クライアント装置201は、受信したデザイン後のオフィス空間を写した画像の印象を示すラベルを、クライアント装置201のディスプレイに表示し、作業者が把握可能にする。これにより、作業者は、オフィス空間が、オフィス空間の訪問者に、作業者が想定した印象を与えられるか否かを判断し、どのようにオフィス空間をデザインすることが好ましいかを検討することができる。
【0044】
・印象推定システム200の利用例(その4)
例えば、画像の販売者によって、データベースに登録された画像に、当該画像の印象を示すラベルを自動で対応付けておき、画像の購入者が、特定の印象を有する画像を検索するサービスを実現するために、印象推定システム200が利用される場合が考えられる。この場合、一部のクライアント装置201は、画像の販売者によって利用される。また、一部のクライアント装置201は、画像の購入者によって利用される。
【0045】
この場合、例えば、画像の販売者に利用されるクライアント装置201は、画像の販売者の操作入力に基づき、販売する画像を取得し、学習装置100に送信する。これに対し、学習装置100は、学習したモデルを用いて、取得した画像の印象を示すラベルを取得する。学習装置100は、取得した画像と、取得した画像の印象を示すラベルとを対応付けて、学習装置100が有するデータベースに登録する。
【0046】
画像の購入者に利用されるクライアント装置201は、画像の購入者の操作入力に基づき、検索する条件として、画像の印象を示すラベルを取得し、学習装置100に送信する。学習装置100は、受信した画像の印象を示すラベルと対応付けられた画像を、データベースから検索し、発見された画像を、画像の購入者に利用されるクライアント装置201に送信する。画像の購入者に利用されるクライアント装置201は、受信した画像を、画像の購入者に利用されるクライアント装置201のディスプレイに表示し、画像の購入者が把握可能にする。これにより、画像の購入者は、所望の印象を与える画像を参照することができ、書籍の表紙、ケースの飾り、または、資料などに利用することができる。
【0047】
ここでは、画像が有料で販売される場合について説明したが、これに限らない。例えば、画像が無料で配布される場合があってもよい。また、画像の販売者が、画像の印象を示すラベルの他に、キーワードを登録可能であってもよく、画像の購入者が、画像の印象を示すラベルの他に、キーワードを用いて、画像を検索可能であってもよい。
【0048】
(学習装置100のハードウェア構成例)
次に、
図3を用いて、学習装置100のハードウェア構成例について説明する。
【0049】
図3は、学習装置100のハードウェア構成例を示すブロック図である。
図3において、学習装置100は、CPU(Central Processing Unit)301と、メモリ302と、ネットワークI/F(Interface)303と、記録媒体I/F304と、記録媒体305とを有する。また、各構成部は、バス300によってそれぞれ接続される。
【0050】
ここで、CPU301は、学習装置100の全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
【0051】
ネットワークI/F303は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータに接続される。そして、ネットワークI/F303は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークI/F303は、例えば、モデムやLANアダプタなどである。
【0052】
記録媒体I/F304は、CPU301の制御に従って記録媒体305に対するデータのリード/ライトを制御する。記録媒体I/F304は、例えば、ディスクドライブ、SSD(Solid State Drive)、USB(Universal Serial Bus)ポートなどである。記録媒体305は、記録媒体I/F304の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体305は、例えば、ディスク、半導体メモリ、USBメモリなどである。記録媒体305は、学習装置100から着脱可能であってもよい。
【0053】
学習装置100は、上述した構成部のほか、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、学習装置100は、記録媒体I/F304や記録媒体305を複数有していてもよい。また、学習装置100は、記録媒体I/F304や記録媒体305を有していなくてもよい。
【0054】
(クライアント装置201のハードウェア構成例)
クライアント装置201のハードウェア構成例は、
図3に示した、学習装置100のハードウェア構成例と同様であるため、説明を省略する。
【0055】
(学習装置100の機能的構成例)
次に、
図4を用いて、学習装置100の機能的構成例について説明する。
【0056】
図4は、学習装置100の機能的構成例を示すブロック図である。学習装置100は、記憶部400と、取得部401と、第一の抽出部402と、第二の抽出部403と、生成部404と、分類部405と、出力部406とを含む。第二の抽出部403は、例えば、検出部411と、変換部412とを含む。
【0057】
記憶部400は、例えば、
図3に示したメモリ302や記録媒体305などの記憶領域によって実現される。以下では、記憶部400が、学習装置100に含まれる場合について説明するが、これに限らない。例えば、記憶部400が、学習装置100とは異なる装置に含まれ、記憶部400の記憶内容が学習装置100から参照可能である場合があってもよい。
【0058】
取得部401~出力部406は、制御部の一例として機能する。取得部401~出力部406は、具体的には、例えば、
図3に示したメモリ302や記録媒体305などの記憶領域に記憶されたプログラムをCPU301に実行させることにより、または、ネットワークI/F303により、その機能を実現する。各機能部の処理結果は、例えば、
図3に示したメモリ302や記録媒体305などの記憶領域に記憶される。
【0059】
記憶部400は、各機能部の処理において参照され、または更新される各種情報を記憶する。記憶部400は、入力された特徴ベクトルに対応する画像の印象を示すラベルを出力するモデルを記憶する。モデルは、例えば、SVM(Support Vector Machine)である。モデルは、例えば、木構造のネットワークであってもよい。モデルは、例えば、数式であってもよい。モデルは、例えば、ニューラルネットワークであってもよい。モデルは、例えば、分類部405によって参照され、または更新される。印象を示すラベルは、例えば、anger、disgust、fear、joy、sadness、surpriseなどである。ベクトルは、例えば、要素の配列に対応する。
【0060】
記憶部400は、画像を記憶する。画像は、例えば、写真や絵画などである。画像は、動画像に含まれる1枚の画像であってもよい。記憶部400は、例えば、学習用画像と、当該学習用画像の印象を示すラベルとを対応付けて記憶する。学習用画像は、モデルの学習用である。学習用画像は、例えば、取得部401によって取得され、第一の抽出部402と、第二の抽出部403とによって参照される。学習用画像の印象を示すラベルは、例えば、取得部401によって取得され、分類部405によって参照される。記憶部400は、例えば、対象画像を記憶する。対象画像は、印象を推定する対象となる。対象画像は、例えば、取得部401によって取得され、第一の抽出部402と、第二の抽出部403とによって参照される。
【0061】
取得部401は、各機能部の処理に用いられる各種情報を取得する。取得部401は、取得した各種情報を、記憶部400に記憶し、または、各機能部に出力する。また、取得部401は、記憶部400に記憶しておいた各種情報を、各機能部に出力してもよい。取得部401は、例えば、学習装置100のユーザの操作入力に基づき、各種情報を取得する。取得部401は、例えば、学習装置100とは異なる装置から、各種情報を受信してもよい。
【0062】
取得部401は、画像を取得する。取得部401は、例えば、学習用画像の印象を示すラベルと対応付けられた、当該学習用画像を取得する。取得部401は、具体的には、学習装置100のユーザの操作入力に基づき、学習用画像の印象を示すラベルと対応付けられた、当該学習用画像を取得する。取得部401は、具体的には、学習用画像の印象を示すラベルと対応付けられた、当該学習用画像を、着脱可能な記録媒体305から読み込むことにより取得してもよい。取得部401は、具体的には、学習用画像の印象を示すラベルと対応付けられた、当該学習用画像を、他のコンピュータから受信することにより取得してもよい。他のコンピュータは、例えば、クライアント装置201である。
【0063】
取得部401は、例えば、対象画像を取得する。取得部401は、具体的には、対象画像を、クライアント装置201から受信することにより取得する。取得部401は、具体的には、学習装置100のユーザの操作入力に基づき、対象画像を取得してもよい。取得部401は、具体的には、対象画像を、着脱可能な記録媒体305から読み込むことにより取得してもよい。
【0064】
取得部401は、いずれかの機能部の処理を開始する開始トリガーを受け付けてもよい。開始トリガーは、例えば、学習装置100のユーザによる所定の操作入力があったことである。開始トリガーは、例えば、他のコンピュータから、所定の情報を受信したことであってもよい。開始トリガーは、例えば、いずれかの機能部が所定の情報を出力したことであってもよい。
【0065】
取得部401は、例えば、学習用画像を取得したことを、第一の抽出部402と、第二の抽出部403との処理の開始トリガーとして受け付ける。取得部401は、例えば、対象画像を取得したことを、第一の抽出部402と、第二の抽出部403との処理の開始トリガーとして受け付ける。
【0066】
第一の抽出部402は、取得した画像から、画像全体に関する特徴ベクトルを抽出する。第一の抽出部402は、例えば、取得した学習用画像から、学習用画像全体に関する第一の特徴ベクトルを抽出する。第一の抽出部402は、具体的には、取得した学習用画像に対して、CNNによるフィルタ処理を行い、第一の特徴ベクトルを抽出する。CNNによるフィルタ処理の手法は、例えば、ResNet(Residual Network)やSENet(Squeeze-and-Excitation Networks)などである。これにより、第一の抽出部402は、生成部404が、画像全体に関する特徴ベクトルを参照可能にし、画像を分類する基準となる特徴ベクトルを生成可能にすることができる。
【0067】
第二の抽出部403は、取得した画像から、物体に関する特徴ベクトルを抽出する。物体は、例えば、予め、画像から検出する候補として設定される。物体は、複数あってもよい。第二の抽出部403は、例えば、取得した学習用画像から、物体に関する第二の特徴ベクトルを抽出する。第二の抽出部403は、具体的には、検出部411と変換部412とを用いて、学習用画像から第二の特徴ベクトルを抽出する。これにより、第二の抽出部403は、生成部404が、物体に関する特徴ベクトルを参照可能にし、画像を分類する基準となる特徴ベクトルを生成可能にすることができる。
【0068】
検出部411は、画像を解析し、画像から1以上の物体のそれぞれの物体を検出する。検出部411は、例えば、学習用画像を解析し、学習用画像を解析した結果に基づいて、1以上の物体のそれぞれの物体が学習用画像に写っている確率を算出する。確率は、物体検出の信頼度に対応する。これにより、検出部411は、第二の特徴ベクトルを生成するための情報を得ることができる。
【0069】
検出部411は、例えば、学習用画像を解析し、学習用画像を解析した結果に基づいて、1以上の物体のそれぞれの物体が学習用画像に写っているか否かを判断する。検出部411は、具体的には、学習用画像を解析した結果に基づいて、1以上の物体のそれぞれの物体が学習用画像に写っている確率を算出し、確率が閾値以上の物体を、学習用画像に写っていると判断する。これにより、検出部411は、第二の特徴ベクトルを生成するための情報を得ることができる。
【0070】
検出部411は、例えば、学習用画像を解析し、学習用画像を解析した結果に基づいて、1以上の物体のそれぞれの物体の学習用画像上の大きさを特定する。検出部411は、具体的には、SSD(Single Shot Multibox Detector)やYOLO(You Look Only Onse)などの手法により、学習用画像上の大きさとして、1以上の物体のそれぞれの物体のbounding boxの大きさを特定する。これにより、検出部411は、第二の特徴ベクトルを生成するための情報を得ることができる。
【0071】
検出部411は、例えば、学習用画像を解析し、学習用画像を解析した結果に基づいて、1以上の物体のそれぞれの物体の学習用画像上の色特徴を特定する。色特徴は、例えば、カラーヒストグラムである。色は、例えば、RGB(Red・Green・Blue)形式やHSL(Hue・Saturation・Lightness)形式、または、HSB(Hue・Saturation・Brightness)形式などで表現される。これにより、検出部411は、第二の特徴ベクトルを生成するための情報を得ることができる。
【0072】
変換部412は、第二の特徴ベクトルを生成する。変換部412は、例えば、算出した確率に基づいて、第二の特徴ベクトルを生成する。変換部412は、具体的には、それぞれの物体について算出した確率を要素として並べた第二の特徴ベクトルを生成する。これにより、変換部412は、第三の特徴ベクトルを生成可能にすることができる。
【0073】
変換部412は、例えば、特定した大きさに基づいて、第二の特徴ベクトルを生成する。変換部412は、具体的には、それぞれの物体について特定した大きさを要素として並べた第二の特徴ベクトルを生成する。これにより、変換部412は、第三の特徴ベクトルを生成可能にすることができる。
【0074】
変換部412は、例えば、特定した色特徴に基づいて、第二の特徴ベクトルを生成する。色特徴は、例えば、カラーヒストグラムである。変換部412は、具体的には、それぞれの物体について特定した色特徴を要素として並べた第二の特徴ベクトルを生成する。これにより、変換部412は、第三の特徴ベクトルを生成可能にすることができる。
【0075】
変換部412は、例えば、算出した確率と、特定した大きさと、特定した色特徴とのいずれか2つ以上の組み合わせに基づいて、第二の特徴ベクトルを生成してもよい。変換部412は、具体的には、それぞれの物体について算出した確率を、それぞれの物体について特定した大きさで重み付けして要素として並べた第二の特徴ベクトルを生成する。これにより、変換部412は、第三の特徴ベクトルを生成可能にすることができる。
【0076】
変換部412は、例えば、1以上の物体のうち、学習用画像に写っていると判断した物体の名称に基づいて、第二の特徴ベクトルを生成する。変換部412は、具体的には、word2vecやGloVe(Global Vectors for Word Representation)などの手法により、学習用画像に写っていると判断した物体の名称をベクトル変換して並べた、第二の特徴ベクトルを生成する。これにより、変換部412は、第三の特徴ベクトルを生成可能にすることができる。
【0077】
変換部412は、例えば、1以上の物体のうち、学習用画像に写っていると判断した物体の学習用画像上の大きさに基づいて、第二の特徴ベクトルを生成する。変換部412は、具体的には、学習用画像に写っていると判断した物体の名称をベクトル変換し、当該物体について特定した大きさで重み付けして要素として並べた第二の特徴ベクトルを生成する。これにより、変換部412は、第三の特徴ベクトルを生成可能にすることができる。
【0078】
変換部412は、例えば、学習用画像に写っていると判断した物体であり、学習用画像上の大きさが一定以上である物体の名称に基づいて、第二の特徴ベクトルを生成する。変換部412は、具体的には、学習用画像に写っていると判断し、かつ、学習用画像上の大きさが一定以上であると特定した物体の名称をベクトル変換して並べた、第二の特徴ベクトルを生成する。これにより、変換部412は、第三の特徴ベクトルを生成可能にすることができる。
【0079】
変換部412は、例えば、1以上の物体のうち、学習用画像に写っていると判断した物体の学習用画像上の色特徴に基づいて、第二の特徴ベクトルを生成する。変換部412は、具体的には、学習用画像に写っていると判断した物体の名称をベクトル変換し、当該物体について特定した色特徴に基づいて重み付けして要素として並べた第二の特徴ベクトルを生成する。これにより、変換部412は、第三の特徴ベクトルを生成可能にすることができる。
【0080】
生成部404は、生成した第一の特徴ベクトルと、生成した第二の特徴ベクトルとを組み合わせて、第三の特徴ベクトルを生成する。生成部404は、例えば、N次元の第一の特徴ベクトルに、M次元の第二の特徴ベクトルを結合することにより、N+M次元の第三の特徴ベクトルを生成する。ここで、N=Mであってもよい。これにより、生成部404は、モデルへの入力サンプルを得ることができる。
【0081】
生成部404は、例えば、第一の特徴ベクトルと第二の特徴ベクトルとの要素同士の和または要素同士の積を、第三の特徴ベクトルとして生成する。これにより、生成部404は、モデルへの入力サンプルを得ることができる。
【0082】
生成部404は、例えば、第一の特徴ベクトルと第二の特徴ベクトルとの要素同士の和および要素同士の積を結合することにより、第三の特徴ベクトルを生成する。これにより、生成部404は、モデルへの入力サンプルを得ることができる。
【0083】
分類部405は、モデルを学習する。分類部405は、例えば、生成した第三の特徴ベクトルに、学習用画像の印象を示すラベルを対応付けた学習データを生成し、生成した学習データに基づいて、モデルを学習する。分類部405は、具体的には、生成した第三の特徴ベクトルに、学習用画像の印象を示すラベルを対応付けた学習データを生成する。そして、分類部405は、学習データに基づいて、マージン最大化の手法により、モデルを更新する。これにより、学習装置100は、画像の印象を精度よく推定可能なモデルを学習することができる。
【0084】
分類部405は、具体的には、生成した第三の特徴ベクトルに、学習用画像の印象を示すラベルを対応付けた学習データを生成する。そして、分類部405は、モデルを用いて、学習データに含まれる第三の特徴ベクトルに対応する印象を示すラベルを特定し、特定したラベルと学習データに含まれるラベルとの比較により、モデルを更新する。これにより、学習装置100は、画像の印象を精度よく推定可能なモデルを学習することができる。
【0085】
ここでは、第一の抽出部402と、第二の抽出部403と、生成部404と、分類部405との動作の一例として、取得部401が学習用画像を取得した場合における動作の一例について説明した。次に、第一の抽出部402と、第二の抽出部403と、生成部404と、分類部405との動作の一例として、取得部401が対象画像を取得した場合における動作の一例について説明する。
【0086】
第一の抽出部402は、取得した対象画像から、対象画像全体に関する第四の特徴ベクトルを抽出する。第一の抽出部402は、第一の特徴ベクトルと同様に、取得した対象画像から第四の特徴ベクトルを抽出する。これにより、第一の抽出部402は、生成部404が、画像全体に関する特徴ベクトルを参照可能にし、対象画像を分類する基準となる特徴ベクトルを生成可能にすることができる。
【0087】
第二の抽出部403は、取得した対象画像から、物体に関する第五の特徴ベクトルを抽出する。第二の抽出部403は、第二の特徴ベクトルと同様に、取得した対象画像から第五の特徴ベクトルを抽出する。これにより、第二の抽出部403は、生成部404が、物体に関する特徴ベクトルを参照可能にし、対象画像を分類する基準となる特徴ベクトルを生成可能にすることができる。
【0088】
生成部404は、抽出した第四の特徴ベクトルと、抽出した第五の特徴ベクトルとを組み合わせて、第六の特徴ベクトルを生成する。生成部404は、例えば、第三の特徴ベクトルと同様に、第六の特徴ベクトルを生成する。これにより、生成部404は、対象画像を分類する基準となる第六の特徴ベクトルを得ることができる。
【0089】
分類部405は、モデルを用いて、取得した対象画像を分類する分類先となるラベルを特定する。分類部405は、例えば、モデルを用いて、対象画像を分類する分類先となるラベルとして、生成した第六の特徴ベクトルに対応する印象を示すラベルを特定する。これにより、分類部405は、対象画像を精度よく分類することができる。
【0090】
出力部406は、いずれかの機能部の処理結果を出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークI/F303による外部装置への送信、または、メモリ302や記録媒体305などの記憶領域への記憶である。これにより、出力部406は、いずれかの機能部の処理結果を、学習装置100のユーザまたはクライアント装置201のユーザに通知可能にし、学習装置100の利便性の向上を図ることができる。
【0091】
出力部406は、例えば、学習したモデルを出力する。出力部406は、具体的には、学習したモデルを他のコンピュータに送信する。これにより、出力部406は、学習したモデルを他のコンピュータで利用可能にすることができる。このため、他のコンピュータは、モデルを用いて、対象画像を精度よく分類することができる。
【0092】
出力部406は、例えば、特定した対象画像を分類する分類先となるラベルを出力する。出力部406は、具体的には、特定した対象画像を分類する分類先となるラベルを、ディスプレイに表示する。これにより、出力部406は、対象画像を分類する分類先となるラベルを利用可能にすることができる。このため、学習装置100のユーザは、対象画像を分類する分類先となるラベルを参照することができる。
【0093】
ここでは、第一の抽出部402と第二の抽出部403と生成部404と分類部405とが、学習用画像と対象画像とについて所定の処理を行う場合について説明したが、これに限らない。例えば、第一の抽出部402と第二の抽出部403と生成部404と分類部405とが、対象画像について所定の処理を行わない場合があってもよい。この場合、他のコンピュータが、対象画像について所定の処理を行うようにしてもよい。
【0094】
(学習装置100の動作例)
次に、
図5~
図19を用いて、学習装置100の動作例について説明する。具体的には、まず、
図5~
図10を用いて、学習装置100がモデルを学習する際に用いられる学習用画像の一例について説明する。
【0095】
図5は、印象を示すラベルangerと対応付けられた学習用画像の一例を示す説明図である。印象を示すラベルangerは、人が画像を見た際の印象が怒りである傾向があることを示す。以下の説明では、印象を示すラベルangerと対応付けられた学習用画像を「anger画像」と表記する場合がある。
【0096】
図5において、画像500は、anger画像の一例であり、具体的には、血の付いた刃物を持った人物を写した画像である。他に、anger画像としては、具体的には、口論や喧嘩、戦争、または、暴動などのシーンを写した画像が考えられる。また、anger画像としては、具体的には、雷、竜巻、洪水などの擬人的な自然の怒りを写した画像が考えられる。次に、
図6の説明に移行する。
【0097】
図6は、印象を示すラベルdisgustと対応付けられた学習用画像の一例を示す説明図である。印象を示すラベルdisgustは、人が画像を見た際の印象が嫌悪である傾向があることを示す。以下の説明では、印象を示すラベルdisgustと対応付けられた学習用画像を「disgust画像」と表記する場合がある。
【0098】
図6において、画像600は、disgust画像の一例であり、具体的には、虫食いの果物を写した画像である。他に、disgust画像としては、具体的には、虫や死体などを写した画像が考えられる。また、disgust画像としては、具体的には、汚い人や物、場所などを写した画像が考えられる。次に、
図7の説明に移行する。
【0099】
図7は、印象を示すラベルfearと対応付けられた学習用画像の一例を示す説明図である。印象を示すラベルfearは、人が画像を見た際の印象が恐怖である傾向があることを示す。以下の説明では、印象を示すラベルfearと対応付けられた学習用画像を「fear画像」と表記する場合がある。
【0100】
図7において、画像700は、fear画像の一例であり、怪物の手のシルエットを写した画像である。他に、fear画像としては、具体的には、ビルの屋上などの高所から下方向を写した画像が考えられる。また、fear画像としては、具体的には、虫、怪物、または、骸骨などを写した画像が考えられる。次に、
図8の説明に移行する。
【0101】
図8は、印象を示すラベルjoyと対応付けられた学習用画像の一例を示す説明図である。印象を示すラベルjoyは、人が画像を見た際の印象が喜や楽である傾向があることを示す。以下の説明では、印象を示すラベルjoyと対応付けられた学習用画像を「joy画像」と表記する場合がある。
【0102】
図8において、画像800は、joy画像の一例であり、木に留まった鳥を写した画像である。他に、joy画像としては、具体的には、花や宝石、または、子供などを写した画像が考えられる。また、joy画像としては、具体的には、レジャーシーンを写した画像が考えられる。また、joy画像としては、具体的には、色調がブライトトーンである画像が考えられる。次に、
図9の説明に移行する。
【0103】
図9は、印象を示すラベルsadnessと対応付けられた学習用画像の一例を示す説明図である。印象を示すラベルsadnessは、人が画像を見た際の印象が悲や哀である傾向があることを示す。以下の説明では、印象を示すラベルsadnessと対応付けられた学習用画像を「sadness画像」と表記する場合がある。
【0104】
図9において、画像900は、sadness画像の一例であり、色調がダークトーンであり、水滴が付いた葉を写した画像である。他に、sadness画像としては、具体的には、悲しんでいる人を写した画像が考えられる。また、sadness画像としては、具体的には、悲しんでいる人を模した像を写した画像が考えられる。また、sadness画像としては、具体的には、災害の痕跡を写した画像が考えられる。次に、
図10の説明に移行する。
【0105】
図10は、印象を示すラベルsurpriseと対応付けられた学習用画像の一例を示す説明図である。印象を示すラベルsurpriseは、人が画像を見た際の印象が驚愕である傾向があることを示す。以下の説明では、印象を示すラベルsurpriseと対応付けられた学習用画像を「surprise画像」と表記する場合がある。
【0106】
図10において、画像1000は、surprise画像の一例であり、便座の蓋を開けたら蛙が居たシーンを写した画像である。他に、surprise画像としては、具体的には、花畑などの自然を写した画像、または、動物を写した画像などが考えられる。また、surprise画像としては、具体的には、アクシデントのシーンを写した画像が考えられる。また、surprise画像としては、具体的には、プロポーズ用の指輪などのプレゼントを写した画像が考えられる。
【0107】
(モデルを学習する一例)
次に、
図11~
図18を用いて、学習用画像を用いて、学習装置100がモデルを学習する一例について説明する。
【0108】
図11~
図18は、モデルを学習する一例を示す説明図である。
図11において、(11-1)学習装置100は、学習用画像として、印象を示すラベルjoyと対応付けられた画像800を取得する。学習装置100は、例えば、印象を示すラベルjoyと対応付けられた画像800を、クライアント装置から受信する。
【0109】
(11-2)学習装置100は、第一の抽出部402により、画像800から、画像800全体に関する第一の特徴ベクトルを生成する。第一の抽出部402は、例えば、SENetを組み込んだResNet50により、画像800全体に関する第一の特徴ベクトルを生成する。第一の特徴ベクトルは、例えば、300次元である。これにより、学習装置100は、画像800全体の特徴を表す第一の特徴ベクトルを得ることができる。
【0110】
(11-3)学習装置100は、第二の抽出部403に含まれる検出部411により、画像800から、検出する候補となる1446個の物体のそれぞれの物体を検出し、検出した結果を変換部412に出力する。検出する候補となる物体は、例えば、bird、leaf、human、car、animalなどである。
【0111】
検出部411は、例えば、ImageNetで学習済みの物体検出手法を用いて、画像800の部分1101からbirdを検出し、birdが画像800に写っている確率90%を算出する。また、検出部411は、同様に、画像800の部分1102からleafを検出し、leafが画像800に写っている確率95%を算出する。この際、検出部411は、検出されなかったhuman、car、animalなどが画像800に写っている確率を、0%に設定する。これにより、学習装置100は、複数の物体の組み合わせの印象も考慮しやすくすることができる。
【0112】
(11-4)学習装置100は、第二の抽出部403に含まれる変換部412により、検出した結果に基づいて、物体に関する第二の特徴ベクトルを生成する。
【0113】
変換部412は、例えば、bird、leaf、human、car、animalなどが画像800に写っている確率を要素として並べた1446次元の特徴ベクトルを生成する。そして、変換部412は、生成した1446次元の特徴ベクトルを、PCA(Principal Component Analysis)で300次元の特徴ベクトルに変換し、正規化し、第二の特徴ベクトルに設定する。
【0114】
PCAは、分散が比較的大きい300個の次元が、変換先の次元として設定される。PCAは、例えば、所定のデータセットに基づき、300個の次元が設定される。所定のデータセットは、例えば、既存のデータセットである。所定のデータセットは、例えば、複数の学習用画像のそれぞれの学習用画像から得られる1446次元の特徴ベクトルであってもよい。これにより、学習装置100は、画像800の部分的な特徴を表す第二の特徴ベクトルを得ることができる。
【0115】
(11-5)学習装置100は、生成部404により、第一の特徴ベクトルと第二の特徴ベクトルとを結合する。生成部404は、例えば、300次元の第一の特徴ベクトルと、300次元の第二の特徴ベクトルとを結合し、600次元の第三の特徴ベクトルを生成する。
【0116】
(11-6)学習装置100は、分類部405により、第三の特徴ベクトルに、正解のラベルを対応付けた学習データを生成し、学習データに基づいて、モデルを更新する。モデルは、例えば、SVMである。正解のラベルは、画像800と対応付けられた印象を示すラベルjoyである。分類部405は、例えば、第三の特徴ベクトルに、正解のラベルを対応付けた学習データを生成し、マージン最大化の手法により、生成した学習データに基づいて、SVMを更新する。これにより、学習装置100は、画像の印象を精度よく推定可能なように、モデルを更新することができる。
【0117】
次に、
図12の説明に移行し、学習装置100が、
図11の説明とは異なる手法で、第二の特徴ベクトルを生成する場合について説明する。
【0118】
図12において、(12-1)学習装置100は、(11-1)と同様に、学習用画像として、印象を示すラベルjoyと対応付けられた画像800を取得する。
【0119】
(12-2)学習装置100は、(11-2)と同様に、第一の抽出部402により、画像800から、画像800全体に関する第一の特徴ベクトルを生成する。これにより、学習装置100は、画像800全体の特徴を表す第一の特徴ベクトルを得ることができる。
【0120】
(12-3)学習装置100は、第二の抽出部403に含まれる検出部411により、画像800から、検出する候補となる1446個の物体のそれぞれの物体を検出し、検出した結果を変換部412に出力する。
【0121】
検出部411は、例えば、ImageNetで学習済みの物体検出手法を用いて、画像800の部分1101からbirdを検出し、birdが画像800に写っている大きさ35%を特定する。ここでは、大きさは、例えば、画像800全体のうち物体が写っている部分の占める割合として特定される。また、大きさは、例えば、画像800上に同じ物体が複数写っている場合、それぞれの物体が写っている大きさの統計値として特定されてもよい。統計値は、例えば、最大値、平均値、合計値などである。
【0122】
また、検出部411は、同様に、画像800の部分1102からleafを検出し、leafが画像800に写っている大きさ25%を特定する。この際、検出部411は、検出されなかったhuman、car、animalなどが画像800に写っている大きさを、0%に設定する。これにより、学習装置100は、複数の物体の組み合わせの印象も考慮しやすくすることができる。
【0123】
(12-4)学習装置100は、第二の抽出部403に含まれる変換部412により、検出した結果に基づいて、物体に関する第二の特徴ベクトルを生成する。
【0124】
変換部412は、例えば、bird、leaf、human、car、animalなどが画像800に写っている大きさを要素として並べた1446次元の特徴ベクトルを生成する。そして、変換部412は、生成した1446次元の特徴ベクトルを、PCAで300次元の特徴ベクトルに変換し、正規化し、第二の特徴ベクトルに設定する。PCAは、分散が比較的大きい300個の次元が、変換先の次元として設定される。これにより、学習装置100は、画像800の部分的な特徴を表す第二の特徴ベクトルを得ることができる。
【0125】
(12-5)学習装置100は、(11-5)と同様に、生成部404により、第一の特徴ベクトルと第二の特徴ベクトルとを結合する。
【0126】
(12-6)学習装置100は、(11-6)と同様に、分類部405により、第三の特徴ベクトルに、正解のラベルを対応付けた学習データを生成し、学習データに基づいて、モデルを更新する。これにより、学習装置100は、画像の印象を精度よく推定可能なように、モデルを更新することができる。
【0127】
次に、
図13の説明に移行し、学習装置100が、
図11および
図12の説明とは異なる手法で、第二の特徴ベクトルを生成する場合について説明する。
【0128】
図13において、(13-1)学習装置100は、(11-1)と同様に、学習用画像として、印象を示すラベルjoyと対応付けられた画像800を取得する。
【0129】
(13-2)学習装置100は、(11-2)と同様に、第一の抽出部402により、画像800から、画像800全体に関する第一の特徴ベクトルを生成する。これにより、学習装置100は、画像800全体の特徴を表す第一の特徴ベクトルを得ることができる。
【0130】
(13-3)学習装置100は、第二の抽出部403に含まれる検出部411により、画像800から、検出する候補となる1446個の物体のそれぞれの物体を検出し、検出した結果を変換部412に出力する。
【0131】
検出部411は、例えば、ImageNetで学習済みの物体検出手法を用いて、画像800の部分1101からbirdを検出し、birdが画像800に写っている確率90%を算出し、birdが画像800に写っている大きさ35%を特定する。
【0132】
また、検出部411は、同様に、画像800の部分1102からleafを検出し、leafが画像800に写っている確率95%を算出し、leafが画像800に写っている大きさ25%を特定する。この際、検出部411は、検出されなかったhuman、car、animalなどが画像800に写っている確率および大きさを、0%に設定する。これにより、学習装置100は、複数の物体の組み合わせの印象も考慮しやすくすることができる。
【0133】
(13-4)学習装置100は、第二の抽出部403に含まれる変換部412により、検出した結果に基づいて、物体に関する第二の特徴ベクトルを生成する。
【0134】
変換部412は、例えば、bird、leaf、human、car、animalなどが画像800に写っている確率に、画像800に写っている大きさで重み付けし、要素として並べた1446次元の特徴ベクトルを生成する。変換部412は、具体的には、bird、leaf、human、car、animalなどが画像800に写っている確率に、画像800に写っている大きさを乗算し、要素として並べた1446次元の特徴ベクトルを生成する。
【0135】
そして、変換部412は、生成した1446次元の特徴ベクトルを、PCAで300次元の特徴ベクトルに変換し、第二の特徴ベクトルに設定する。PCAは、分散が比較的大きい300個の次元が、変換先の次元として設定される。これにより、学習装置100は、画像800の部分的な特徴を表す第二の特徴ベクトルを得ることができる。
【0136】
(13-5)学習装置100は、(11-5)と同様に、生成部404により、第一の特徴ベクトルと第二の特徴ベクトルとを結合する。
【0137】
(13-6)学習装置100は、(11-6)と同様に、分類部405により、第三の特徴ベクトルに、正解のラベルを対応付けた学習データを生成し、学習データに基づいて、モデルを更新する。これにより、学習装置100は、画像の印象を精度よく推定可能なように、モデルを更新することができる。
【0138】
次に、
図14の説明に移行し、学習装置100が、
図11~
図13の説明とは異なる手法で、第二の特徴ベクトルを生成する場合について説明する。
【0139】
図14において、(14-1)学習装置100は、(11-1)と同様に、学習用画像として、印象を示すラベルjoyと対応付けられた画像800を取得する。
【0140】
(14-2)学習装置100は、(11-2)と同様に、第一の抽出部402により、画像800から、画像800全体に関する第一の特徴ベクトルを生成する。これにより、学習装置100は、画像800全体の特徴を表す第一の特徴ベクトルを得ることができる。
【0141】
(14-3)学習装置100は、第二の抽出部403に含まれる検出部411により、画像800から、検出する候補となる1446個の物体のそれぞれの物体を検出し、検出した結果を変換部412に出力する。
【0142】
検出部411は、例えば、ImageNetで学習済みの物体検出手法を用いて、画像800の部分1101からbirdを検出し、birdが画像800に写っている確率90%を算出し、部分1101の色特徴を特定する。色特徴は、例えば、カラーヒストグラムで表現される。カラーヒストグラムは、例えば、色の多さを表す棒グラフである。カラーヒストグラムは、具体的には、グラフ1401,1402に示すように、それぞれの輝度の色の多さを表す棒グラフである。
【0143】
また、検出部411は、同様に、画像800の部分1102からleafを検出し、leafが画像800に写っている確率95%を算出し、部分1102の色特徴を特定する。この際、検出部411は、検出されなかったhuman、car、animalなどが画像800に写っている確率を、0%に設定する。これにより、学習装置100は、複数の物体の組み合わせの印象も考慮しやすくすることができる。
【0144】
(14-4)学習装置100は、第二の抽出部403に含まれる変換部412により、検出した結果に基づいて、物体に関する第二の特徴ベクトルを生成する。
【0145】
変換部412は、例えば、bird、leaf、human、car、animalなどが画像800に写っている確率に、色特徴に基づいて重み付けし、要素として並べた1446次元の特徴ベクトルを生成する。変換部412は、具体的には、bird、leaf、human、car、animalなどが画像800に写っている確率に、ピーク値を取る輝度を乗算し、要素として並べた1446次元の特徴ベクトルを生成する。
【0146】
そして、変換部412は、生成した1446次元の特徴ベクトルを、PCAで300次元の特徴ベクトルに変換し、第二の特徴ベクトルに設定する。PCAは、分散が比較的大きい300個の次元が、変換先の次元として設定される。これにより、学習装置100は、画像800の部分的な特徴を表す第二の特徴ベクトルを得ることができる。
【0147】
(14-5)学習装置100は、(11-5)と同様に、生成部404により、第一の特徴ベクトルと第二の特徴ベクトルとを結合する。
【0148】
(14-6)学習装置100は、(11-6)と同様に、分類部405により、第三の特徴ベクトルに、正解のラベルを対応付けた学習データを生成し、学習データに基づいて、モデルを更新する。これにより、学習装置100は、画像の印象を精度よく推定可能なように、モデルを更新することができる。
【0149】
次に、
図15の説明に移行し、学習装置100が、
図11~
図14の説明とは異なる手法で、第二の特徴ベクトルを生成する場合について説明する。
【0150】
図15において、(15-1)学習装置100は、(11-1)と同様に、学習用画像として、印象を示すラベルjoyと対応付けられた画像800を取得する。
【0151】
(15-2)学習装置100は、(11-2)と同様に、第一の抽出部402により、画像800から、画像800全体に関する第一の特徴ベクトルを生成する。これにより、学習装置100は、画像800全体の特徴を表す第一の特徴ベクトルを得ることができる。
【0152】
(15-3)学習装置100は、第二の抽出部403に含まれる検出部411により、画像800から、検出する候補となる1446個の物体のそれぞれの物体を検出し、検出した結果を変換部412に出力する。
【0153】
検出部411は、例えば、ImageNetで学習済みの物体検出手法を用いて、画像800の部分1101からbirdを検出し、birdが画像800に写っている確率90%を算出する。
【0154】
また、検出部411は、同様に、画像800の部分1102からleafを検出し、leafが画像800に写っている確率95%を算出する。この際、検出部411は、検出されなかったhuman、car、animalなどが画像800に写っている確率を、0%に設定する。これにより、学習装置100は、複数の物体の組み合わせの印象も考慮しやすくすることができる。
【0155】
(15-4)学習装置100は、第二の抽出部403に含まれる変換部412により、検出した結果に基づいて、物体に関する第二の特徴ベクトルを生成する。
【0156】
変換部412は、例えば、bird、leaf、human、car、animalなどが画像800に写っている確率を、要素として並べた1446次元の特徴ベクトルを生成し、第二の特徴ベクトルに設定する。これにより、学習装置100は、画像800の部分的な特徴を表す第二の特徴ベクトルを得ることができる。
【0157】
(15-5)学習装置100は、(11-5)と同様に、生成部404により、第一の特徴ベクトルと第二の特徴ベクトルとを結合する。
【0158】
(15-6)学習装置100は、(11-6)と同様に、分類部405により、第三の特徴ベクトルに、正解のラベルを対応付けた学習データを生成し、学習データに基づいて、モデルを更新する。これにより、学習装置100は、画像の印象を精度よく推定可能なように、モデルを更新することができる。
【0159】
次に、
図16の説明に移行し、学習装置100が、
図11~
図15の説明とは異なる手法で、第二の特徴ベクトルを生成する場合について説明する。
【0160】
図16において、(16-1)学習装置100は、(11-1)と同様に、学習用画像として、印象を示すラベルjoyと対応付けられた画像800を取得する。
【0161】
(16-2)学習装置100は、(11-2)と同様に、第一の抽出部402により、画像800から、画像800全体に関する第一の特徴ベクトルを生成する。これにより、学習装置100は、画像800全体の特徴を表す第一の特徴ベクトルを得ることができる。
【0162】
(16-3)学習装置100は、第二の抽出部403に含まれる検出部411により、画像800から、検出する候補となる1446個の物体のそれぞれの物体を検出し、検出した結果を変換部412に出力する。
【0163】
検出部411は、例えば、ImageNetで学習済みの物体検出手法を用いて、画像800の部分1101からbirdを検出し、birdが画像800に写っている大きさ35%を特定する。
【0164】
また、検出部411は、同様に、画像800の部分1102からleafを検出し、leafが画像800に写っている大きさ25%を特定する。この際、検出部411は、検出されなかったhuman、car、animalなどが画像800に写っている大きさを、0%に設定する。これにより、学習装置100は、複数の物体の組み合わせの印象も考慮しやすくすることができる。
【0165】
(16-4)学習装置100は、第二の抽出部403に含まれる変換部412により、検出した結果に基づいて、物体に関する第二の特徴ベクトルを生成する。
【0166】
変換部412は、例えば、bird、leaf、human、car、animalなどが画像800に写っている大きさを、要素として並べた1446次元の特徴ベクトルを生成し、第二の特徴ベクトルに設定する。これにより、学習装置100は、画像800の部分的な特徴を表す第二の特徴ベクトルを得ることができる。
【0167】
(16-5)学習装置100は、(11-5)と同様に、生成部404により、第一の特徴ベクトルと第二の特徴ベクトルとを結合する。
【0168】
(16-6)学習装置100は、(11-6)と同様に、分類部405により、第三の特徴ベクトルに、正解のラベルを対応付けた学習データを生成し、学習データに基づいて、モデルを更新する。これにより、学習装置100は、画像の印象を精度よく推定可能なように、モデルを更新することができる。
【0169】
次に、
図17の説明に移行し、学習装置100が、
図11~
図16の説明とは異なる手法で、第二の特徴ベクトルを生成する場合について説明する。
【0170】
図17において、(17-1)学習装置100は、(11-1)と同様に、学習用画像として、印象を示すラベルjoyと対応付けられた画像800を取得する。
【0171】
(17-2)学習装置100は、(11-2)と同様に、第一の抽出部402により、画像800から、画像800全体に関する第一の特徴ベクトルを生成する。これにより、学習装置100は、画像800全体の特徴を表す第一の特徴ベクトルを得ることができる。
【0172】
(17-3)学習装置100は、第二の抽出部403に含まれる検出部411により、画像800から、検出する候補となる1446個の物体のそれぞれの物体を検出し、検出した結果を変換部412に出力する。
【0173】
検出部411は、例えば、ImageNetで学習済みの物体検出手法を用いて、画像800の部分1101からbirdを検出し、birdが画像800に写っている確率90%を算出する。
【0174】
また、検出部411は、同様に、画像800の部分1102からleafを検出し、leafが画像800に写っている確率95%を算出する。この際、検出部411は、検出されなかったhuman、car、animalなどが画像800に写っている確率を、0%に設定する。これにより、学習装置100は、複数の物体の組み合わせの印象も考慮しやすくすることができる。
【0175】
(17-4)学習装置100は、第二の抽出部403に含まれる変換部412により、検出した結果に基づいて、物体に関する第二の特徴ベクトルを生成する。
【0176】
変換部412は、例えば、画像800に写っている確率が閾値以上であるbirdおよびleafを特定する。変換部412は、特定したbirdおよびleafを、word2vecにより300次元の特徴ベクトルに変換する。変換部412は、変換した特徴ベクトルの和を、第二の特徴ベクトルに設定する。
【0177】
また、変換部412は、例えば、画像800に写っている確率が最大であるleafを、word2vecにより300次元の特徴ベクトルに変換し、第二の特徴ベクトルに設定する場合があってもよい。これにより、学習装置100は、画像800の部分的な特徴を表す第二の特徴ベクトルを得ることができる。
【0178】
(17-5)学習装置100は、(11-5)と同様に、生成部404により、第一の特徴ベクトルと第二の特徴ベクトルとを結合する。
【0179】
(17-6)学習装置100は、(11-6)と同様に、分類部405により、第三の特徴ベクトルに、正解のラベルを対応付けた学習データを生成し、学習データに基づいて、モデルを更新する。これにより、学習装置100は、画像の印象を精度よく推定可能なように、モデルを更新することができる。
【0180】
次に、
図18の説明に移行し、学習装置100が、
図11~
図17の説明とは異なる手法で、第二の特徴ベクトルを生成する場合について説明する。
【0181】
図18において、(18-1)学習装置100は、(11-1)と同様に、学習用画像として、印象を示すラベルjoyと対応付けられた画像800を取得する。
【0182】
(18-2)学習装置100は、(11-2)と同様に、第一の抽出部402により、画像800から、画像800全体に関する第一の特徴ベクトルを生成する。これにより、学習装置100は、画像800全体の特徴を表す第一の特徴ベクトルを得ることができる。
【0183】
(18-3)学習装置100は、第二の抽出部403に含まれる検出部411により、画像800から、検出する候補となる1446個の物体のそれぞれの物体を検出し、検出した結果を変換部412に出力する。
【0184】
検出部411は、例えば、ImageNetで学習済みの物体検出手法を用いて、画像800の部分1101からbirdを検出し、birdが画像800に写っている大きさ35%を特定する。
【0185】
また、検出部411は、同様に、画像800の部分1102からleafを検出し、leafが画像800に写っている大きさ25%を特定する。この際、検出部411は、検出されなかったhuman、car、animalなどが画像800に写っている大きさを、0%に設定する。これにより、学習装置100は、複数の物体の組み合わせの印象も考慮しやすくすることができる。
【0186】
(18-4)学習装置100は、第二の抽出部403に含まれる変換部412により、検出した結果に基づいて、物体に関する第二の特徴ベクトルを生成する。
【0187】
変換部412は、例えば、画像800に写っている大きさが一定以上であるbirdおよびleafを特定する。変換部412は、特定したbirdおよびleafを、word2vecにより300次元の特徴ベクトルに変換する。変換部412は、変換した特徴ベクトルの和を、第二の特徴ベクトルに設定する。
【0188】
また、変換部412は、例えば、画像800に写っている大きさが最大であるbirdを、word2vecにより300次元の特徴ベクトルに変換し、第二の特徴ベクトルに設定する場合があってもよい。これにより、学習装置100は、画像800の部分的な特徴を表す第二の特徴ベクトルを得ることができる。
【0189】
(18-5)学習装置100は、(11-5)と同様に、生成部404により、第一の特徴ベクトルと第二の特徴ベクトルとを結合する。
【0190】
(18-6)学習装置100は、(11-6)と同様に、分類部405により、第三の特徴ベクトルに、正解のラベルを対応付けた学習データを生成し、学習データに基づいて、モデルを更新する。これにより、学習装置100は、画像の印象を精度よく推定可能なように、モデルを更新することができる。
【0191】
ここでは、
図11~
図18を用いて、変換部412が、第二の特徴ベクトルを算出する複数の手法について説明したが、これに限らない。例えば、変換部412は、物体ごとの画像に写っている確率と、物体ごとの画像に写っている大きさと、物体ごとの画像に写っている部分の色特徴とのいずれか2つ以上の組み合わせに基づいて、第二の特徴ベクトルを算出する場合があってもよい。
【0192】
また、例えば、変換部412が、物体ごとの画像に写っている位置に基づいて、第二の特徴ベクトルを算出する場合があってもよい。この場合、具体的には、変換部412は、物体ごとに、画像に写っている位置が中央に近いほど、画像に写っている確率に大きい重みを付けて、要素として並べて、第二の特徴ベクトルを算出することが考えられる。
【0193】
また、例えば、変換部412が、bird、leaf、human、car、animalなどのピーク値を取る輝度をそのまま、要素として並べた1446次元の特徴ベクトルを、第二の特徴ベクトルに設定する場合があってもよい。
【0194】
(対象画像の印象を推定する一例)
次に、
図19を用いて、
図11で学習したモデルを用いて、学習装置100が対象画像の印象を推定する一例について説明する。
【0195】
図19は、対象画像の印象を推定する一例を示す説明図である。
図19において、(19-1)学習装置100は、対象画像として、画像800を取得する。学習装置100は、クライアント装置201から、画像800を受信する。
【0196】
(19-2)学習装置100は、第一の抽出部402により、画像800から、画像800全体に関する第四の特徴ベクトルを生成する。第一の抽出部402は、例えば、SENetを組み込んだResNet50により、画像800全体に関する第四の特徴ベクトルを生成する。第四の特徴ベクトルは、例えば、300次元である。これにより、学習装置100は、画像800全体の特徴を表す第四の特徴ベクトルを得ることができる。
【0197】
(19-3)学習装置100は、第二の抽出部403に含まれる検出部411により、画像800から、検出する候補となる1446個の物体のそれぞれの物体を検出し、検出した結果を変換部412に出力する。検出する候補となる物体は、例えば、bird、leaf、human、car、animalなどである。
【0198】
検出部411は、例えば、ImageNetで学習済みの物体検出手法を用いて、画像800の部分1101からbirdを検出し、birdが画像800に写っている確率90%を算出する。また、検出部411は、同様に、画像800の部分1102からleafを検出し、leafが画像800に写っている確率95%を算出する。この際、検出部411は、検出されなかったhuman、car、animalなどが画像800に写っている確率を、0%に設定する。
【0199】
(19-4)学習装置100は、第二の抽出部403に含まれる変換部412により、検出した結果に基づいて、物体に関する第五の特徴ベクトルを生成する。
【0200】
変換部412は、例えば、bird、leaf、human、car、animalなどが画像800に写っている確率を要素として並べた1446次元の特徴ベクトルを生成する。そして、変換部412は、生成した1446次元の特徴ベクトルを、PCA(Principal Component Analysis)で300次元の特徴ベクトルに変換し、正規化し、第五の特徴ベクトルに設定する。PCAは、分散が比較的大きい300個の次元が、変換先の次元として設定される。これにより、学習装置100は、画像800の部分的な特徴を表す第五の特徴ベクトルを得ることができる。
【0201】
(19-5)学習装置100は、生成部404により、第四の特徴ベクトルと第五の特徴ベクトルとを結合する。生成部404は、例えば、300次元の第四の特徴ベクトルと、300次元の第五の特徴ベクトルとを結合し、600次元の第六の特徴ベクトルを生成する。
【0202】
(19-6)学習装置100は、分類部405により、モデルを用いて、第六の特徴ベクトルに対応する、対象画像の印象を示すラベルを特定する。モデルは、例えば、SVMである。分類部405は、例えば、モデルに第六の特徴ベクトルを入力し、モデルが出力する印象を示すラベルjoyを取得し、対象画像の印象を示すラベルとして特定する。これにより、学習装置100は、画像の印象を精度よく推定することができる。
【0203】
学習装置100は、特定した対象画像の印象を示すラベルを、クライアント装置201のディスプレイに表示させる。次に、
図20を用いて、学習装置100が、特定した対象画像の印象を示すラベルを、クライアント装置201のディスプレイに表示させる一例について説明する。
【0204】
(対象画像の印象を示すラベルの表示例)
図20は、対象画像の印象を示すラベルの表示例を示す説明図である。
図20において、学習装置100は、例えば、クライアント装置201から対象画像として画像800を取得した場合、特定した印象を示すラベルjoyをクライアント装置201に送信し、画面2001を表示させる。画面2001は、対象画像である画像800と、特定した印象を示すラベルjoyを通知する表示欄2002とを含む。これにより、学習装置100は、特定した印象を示すラベルjoyを、クライアント装置201のユーザに把握可能にすることができる。
【0205】
また、学習装置100は、例えば、クライアント装置201から対象画像として画像900を取得した場合、特定した印象を示すラベルsadnessをクライアント装置201に送信し、画面2003を表示させる。画面2003は、対象画像である画像900と、特定した印象を示すラベルsadnessを通知する表示欄2004とを含む。これにより、学習装置100は、特定した印象を示すラベルsadnessを、クライアント装置201のユーザに把握可能にすることができる。
【0206】
ここでは、学習装置100が、
図11で学習したモデルを用いて、画像の印象を推定する場合について説明したが、これに限らない。例えば、学習装置100が、
図12~
図18で学習したいずれかのモデルを用いる場合があってもよい。
【0207】
(学習処理手順)
次に、
図21を用いて、学習装置100が実行する、学習処理手順の一例について説明する。学習処理は、例えば、
図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
【0208】
図21は、学習処理手順の一例を示すフローチャートである。
図21において、学習装置100は、印象を示すラベルが対応付けられた学習用画像を取得する(ステップS2101)。
【0209】
次に、学習装置100は、取得した学習用画像から、学習用画像全体に関する特徴ベクトルを抽出する(ステップS2102)。そして、学習装置100は、学習用画像全体に関する特徴ベクトルの次元数を削減し、第一の特徴ベクトルに設定する(ステップS2103)。
【0210】
次に、学習装置100は、検出する候補に設定された複数の物体のうち、取得した学習用画像に写っている物体を検出する(ステップS2104)。そして、学習装置100は、検出する候補に設定された複数の物体のうち、学習用画像に写っている確率が閾値以上である物体があるか否かを判定する(ステップS2105)。
【0211】
ここで、学習用画像に写っている確率が閾値以上である物体がない場合(ステップS2105:No)、学習装置100は、所定のベクトルを、第二の特徴ベクトルに設定する(ステップS2106)。そして、学習装置100は、ステップS2111の処理に移行する。一方で、学習用画像に写っている確率が閾値以上である物体がある場合(ステップS2105:Yes)、学習装置100は、ステップS2107の処理に移行する。
【0212】
ステップS2107では、学習装置100は、学習用画像に写っている確率が閾値以上であるそれぞれの物体のwordをベクトル変換する(ステップS2107)。そして、学習装置100は、複数のwordをベクトル変換したか否かを判定する(ステップS2108)。
【0213】
ここで、複数のwordをベクトル変換していない場合(ステップS2108:No)、学習装置100は、wordをベクトル変換して得たベクトルを、第二の特徴ベクトルに設定する(ステップS2109)。そして、学習装置100は、ステップS2111の処理に移行する。
【0214】
一方で、複数のwordをベクトル変換している場合(ステップS2108:Yes)、学習装置100は、複数のwordをベクトル変換して得たベクトルを加算し、加算後のベクトルを、第二の特徴ベクトルに設定する(ステップS2110)。そして、学習装置100は、ステップS2111の処理に移行する。
【0215】
ステップS2111では、学習装置100は、第一の特徴ベクトルと第二の特徴ベクトルとを結合し、第三の特徴ベクトルを生成する(ステップS2111)。そして、学習装置100は、第三の特徴ベクトルを、取得した学習用画像に対応付けられた印象を示すラベルと対応付けて、学習データを生成する(ステップS2112)。
【0216】
次に、学習装置100は、生成した学習データに基づいて、モデルを学習する(ステップS2113)。そして、学習装置100は、学習処理を終了する。これにより、学習装置100は、画像の印象を精度よく推定可能なモデルを学習することができる。
【0217】
ここでは、学習装置100が、1つの学習用画像を基に生成した第三のベクトルを用いて、モデルを学習する場合について説明したが、これに限らない。例えば、学習装置100は、学習用画像が複数ある場合、それぞれの学習用画像を基に学習処理を実行し、モデルを更新することを繰り返してもよい。
【0218】
(推定処理手順)
次に、
図22を用いて、学習装置100が実行する、推定処理手順の一例について説明する。推定処理は、例えば、
図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
【0219】
図22は、推定処理手順の一例を示すフローチャートである。
図22において、学習装置100は、対象画像を取得する(ステップS2201)。
【0220】
次に、学習装置100は、取得した対象画像から、対象画像全体に関する特徴ベクトルを抽出する(ステップS2202)。そして、学習装置100は、対象画像全体に関する特徴ベクトルの次元数を削減し、第四の特徴ベクトルに設定する(ステップS2203)。
【0221】
次に、学習装置100は、検出する候補に設定された複数の物体のうち、取得した対象画像に写っている物体を検出する(ステップS2204)。そして、学習装置100は、検出する候補に設定された複数の物体のうち、学習用画像に写っている確率が閾値以上である物体があるか否かを判定する(ステップS2205)。
【0222】
ここで、学習用画像に写っている確率が閾値以上である物体がない場合(ステップS2205:No)学習装置100は、所定のベクトルを、第五の特徴ベクトルに設定する(ステップS2206)。そして、学習装置100は、ステップS2211の処理に移行する。一方で、学習用画像に写っている確率が閾値以上である物体がある場合(ステップS2205:Yes)、学習装置100は、ステップS2207の処理に移行する。
【0223】
ステップS2207では、学習装置100は、学習用画像に写っている確率が閾値以上であるそれぞれの物体のwordをベクトル変換する(ステップS2207)。そして、学習装置100は、複数のwordをベクトル変換したか否かを判定する(ステップS2208)。
【0224】
ここで、複数のwordをベクトル変換していない場合(ステップS2208:No)、学習装置100は、wordをベクトル変換して得たベクトルを、第五の特徴ベクトルに設定する(ステップS2209)。そして、学習装置100は、ステップS2211の処理に移行する。
【0225】
一方で、複数のwordをベクトル変換している場合(ステップS2208:Yes)、学習装置100は、複数のwordをベクトル変換して得たベクトルを加算し、加算後のベクトルを、第五の特徴ベクトルに設定する(ステップS2210)。そして、学習装置100は、ステップS2211の処理に移行する。
【0226】
ステップS2211では、学習装置100は、第四の特徴ベクトルと第五の特徴ベクトルとを結合し、第六の特徴ベクトルを生成する(ステップS2211)。そして、学習装置100は、第六の特徴ベクトルをモデルに入力し、印象を示すラベルを取得する(ステップS2212)。
【0227】
次に、学習装置100は、取得した印象を示すラベルを出力する(ステップS2213)。そして、学習装置100は、推定処理を終了する。これにより、学習装置100は、画像の印象を精度よく推定することができ、画像の印象を推定した結果を利用可能にすることができる。
【0228】
ここで、学習装置100は、
図21および
図22の各フローチャートの一部ステップの処理の順序を入れ替えて実行してもよい。例えば、ステップS2102,S2103の処理と、ステップS2104~S2110の処理との順序は入れ替え可能である。同様に、例えば、ステップS2202,S2203の処理と、ステップS2204~S2210の処理との順序は入れ替え可能である。
【0229】
以上説明したように、学習装置100によれば、画像を取得することができる。学習装置100によれば、取得した画像から、画像全体に関する第一の特徴ベクトルを抽出することができる。学習装置100によれば、取得した画像から、物体に関する第二の特徴ベクトルを抽出することができる。学習装置100によれば、抽出した第一の特徴ベクトルと、抽出した第二の特徴ベクトルとを組み合わせて、第三の特徴ベクトルを生成することができる。学習装置100によれば、生成した第三の特徴ベクトルに、画像の印象を示すラベルを対応付けた学習データに基づいて、入力された特徴ベクトルに対応する印象を示すラベルを出力するモデルを学習することができる。これにより、学習装置100は、画像の印象を精度よく推定可能なモデルを学習することができる。
【0230】
学習装置100によれば、画像を解析した結果に基づいて、1以上の物体のそれぞれの物体が画像に写っている確率を算出することができる。学習装置100によれば、算出した確率に基づいて、第二の特徴ベクトルを抽出することができる。これにより、学習装置100は、画像の部分的な特徴を表す第二の特徴ベクトルを得ることができる。
【0231】
学習装置100によれば、画像を解析した結果に基づいて、1以上の物体のそれぞれの物体が画像に写っているか否かを判断することができる。学習装置100によれば、1以上の物体のうち、画像に写っていると判断した物体の名称に基づいて、第二の特徴ベクトルを抽出することができる。これにより、学習装置100は、画像の部分的な特徴を表す第二の特徴ベクトルを得ることができる。
【0232】
学習装置100によれば、画像を解析した結果に基づいて、1以上の物体のそれぞれの物体の画像上の大きさを特定することができる。学習装置100によれば、特定した大きさに基づいて、第二の特徴ベクトルを抽出することができる。これにより、学習装置100は、画像の部分的な特徴を表す第二の特徴ベクトルを得ることができる。
【0233】
学習装置100によれば、画像を解析した結果に基づいて、1以上の物体のそれぞれの物体が画像に写っているか否かを判断することができる。学習装置100によれば、1以上の物体のうち、画像に写っていると判断した物体の画像上の大きさを特定することができる。学習装置100によれば、特定した大きさに基づいて、第二の特徴ベクトルを抽出することができる。これにより、学習装置100は、画像の部分的な特徴を表す第二の特徴ベクトルを得ることができる。
【0234】
学習装置100によれば、画像を解析した結果に基づいて、1以上の物体のそれぞれの物体の画像上の色特徴を特定することができる。学習装置100によれば、特定した色特徴に基づいて、第二の特徴ベクトルを抽出することができる。これにより、学習装置100は、画像の部分的な特徴を表す第二の特徴ベクトルを得ることができる。
【0235】
学習装置100によれば、画像を解析した結果に基づいて、1以上の物体のそれぞれの物体が画像に写っているか否かを判断することができる。学習装置100によれば、1以上の物体のうち、画像に写っていると判断した物体の画像上の色特徴を特定することができる。学習装置100によれば、特定した色特徴に基づいて、第二の特徴ベクトルを抽出することができる。これにより、学習装置100は、画像の部分的な特徴を表す第二の特徴ベクトルを得ることができる。
【0236】
学習装置100によれば、N次元の第一の特徴ベクトルに、M次元の第二の特徴ベクトルを結合し、N+M次元の第三の特徴ベクトルを生成することができる。これにより、学習装置100は、画像の全体の特徴と、画像の部分的な特徴とを表すように、第三の特徴ベクトルを生成することができる。
【0237】
学習装置100によれば、対象画像を取得することができる。学習装置100によれば、取得した対象画像から、対象画像全体に関する第四の特徴ベクトルを抽出することができる。学習装置100によれば、取得した対象画像から、物体に関する第五の特徴ベクトルを抽出することができる。学習装置100によれば、抽出した第四の特徴ベクトルと、抽出した第五の特徴ベクトルとを組み合わせて、第六の特徴ベクトルを生成することができる。学習装置100によれば、学習したモデルを用いて、生成した第六の特徴ベクトルに対応する印象を示すラベルを出力することができる。これにより、学習装置100は、対象画像の印象を精度よく推定することができる。
【0238】
学習装置100によれば、モデルとして、サポートベクターマシンを用いることができる。これにより、学習装置100は、モデルを用いて、画像の印象を精度よく推定可能にすることができる。
【0239】
なお、本実施の形態で説明した学習方法は、予め用意されたプログラムをPCやワークステーションなどのコンピュータで実行することにより実現することができる。本実施の形態で説明した学習プログラムは、コンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。記録媒体は、ハードディスク、フレキシブルディスク、CD(Compact Disc)-ROM、MO、DVD(Digital Versatile Disc)などである。また、本実施の形態で説明した学習プログラムは、インターネットなどのネットワークを介して配布してもよい。
【0240】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0241】
(付記1)画像を取得し、
取得した前記画像から、前記画像全体に関する第一の特徴ベクトルを抽出し、
取得した前記画像から、物体に関する第二の特徴ベクトルを抽出し、
抽出した前記第一の特徴ベクトルと、抽出した前記第二の特徴ベクトルとを組み合わせて、第三の特徴ベクトルを生成し、
生成した前記第三の特徴ベクトルに、前記画像の印象を示すラベルを対応付けた学習データに基づいて、入力された特徴ベクトルに対応する印象を示すラベルを出力するモデルを学習する、
処理をコンピュータが実行することを特徴とする学習方法。
【0242】
(付記2)前記第二の特徴ベクトルを抽出する処理は、
前記画像を解析した結果に基づいて、1以上の物体のそれぞれの物体が前記画像に写っている確率を算出し、算出した前記確率に基づいて、前記第二の特徴ベクトルを抽出する、ことを特徴とする付記1に記載の学習方法。
【0243】
(付記3)前記第二の特徴ベクトルを抽出する処理は、
前記画像を解析した結果に基づいて、1以上の物体のそれぞれの物体が前記画像に写っているか否かを判断し、前記1以上の物体のうち、前記画像に写っていると判断した物体の名称に基づいて、前記第二の特徴ベクトルを抽出する、ことを特徴とする付記1または2に記載の学習方法。
【0244】
(付記4)前記第二の特徴ベクトルを抽出する処理は、
前記画像を解析した結果に基づいて、1以上の物体のそれぞれの物体の前記画像上の大きさを特定し、特定した前記大きさに基づいて、前記第二の特徴ベクトルを抽出する、ことを特徴とする付記1~3のいずれか一つに記載の学習方法。
【0245】
(付記5)前記第二の特徴ベクトルを抽出する処理は、
前記画像を解析した結果に基づいて、1以上の物体のそれぞれの物体が前記画像に写っているか否かを判断し、前記1以上の物体のうち、前記画像に写っていると判断した物体の前記画像上の大きさを特定し、特定した前記大きさに基づいて、前記第二の特徴ベクトルを抽出する、ことを特徴とする付記1~4のいずれか一つに記載の学習方法。
【0246】
(付記6)前記第二の特徴ベクトルを抽出する処理は、
前記画像を解析した結果に基づいて、1以上の物体のそれぞれの物体の前記画像上の色特徴を特定し、特定した前記色特徴に基づいて、前記第二の特徴ベクトルを抽出する、ことを特徴とする付記1~5のいずれか一つに記載の学習方法。
【0247】
(付記7)前記第二の特徴ベクトルを抽出する処理は、
前記画像を解析した結果に基づいて、1以上の物体のそれぞれの物体が前記画像に写っているか否かを判断し、前記1以上の物体のうち、前記画像に写っていると判断した物体の前記画像上の色特徴を特定し、特定した前記色特徴に基づいて、前記第二の特徴ベクトルを抽出する、ことを特徴とする付記1~6のいずれか一つに記載の学習方法。
【0248】
(付記8)前記第三の特徴ベクトルを生成する処理は、
N次元の前記第一の特徴ベクトルに、M次元の前記第二の特徴ベクトルを結合し、N+M次元の前記第三の特徴ベクトルを生成する、ことを特徴とする付記1~7のいずれか一つに記載の学習方法。
【0249】
(付記9)対象画像を取得し、
取得した前記対象画像から、前記対象画像全体に関する第四の特徴ベクトルを抽出し、
取得した前記対象画像から、物体に関する第五の特徴ベクトルを抽出し、
抽出した前記第四の特徴ベクトルと、抽出した前記第五の特徴ベクトルとを組み合わせて、第六の特徴ベクトルを生成し、
学習した前記モデルを用いて、生成した前記第六の特徴ベクトルに対応する印象を示すラベルを出力する、
処理を前記コンピュータが実行することを特徴とする付記1~8のいずれか一つに記載の学習方法。
【0250】
(付記10)前記モデルは、サポートベクターマシンである、ことを特徴とする付記1~9のいずれか一つに記載の学習方法。
【0251】
(付記11)画像を取得し、
取得した前記画像から、前記画像全体に関する第一の特徴ベクトルを抽出し、
取得した前記画像から、物体に関する第二の特徴ベクトルを抽出し、
抽出した前記第一の特徴ベクトルと、抽出した前記第二の特徴ベクトルとを組み合わせて、第三の特徴ベクトルを生成し、
生成した前記第三の特徴ベクトルに、前記画像の印象を示すラベルを対応付けた学習データに基づいて、入力された特徴ベクトルに対応する印象を示すラベルを出力するモデルを学習する、
処理をコンピュータに実行させることを特徴とする学習プログラム。
【0252】
(付記12)画像を取得し、
取得した前記画像から、前記画像全体に関する第一の特徴ベクトルを抽出し、
取得した前記画像から、物体に関する第二の特徴ベクトルを抽出し、
抽出した前記第一の特徴ベクトルと、抽出した前記第二の特徴ベクトルとを組み合わせて、第三の特徴ベクトルを生成し、
生成した前記第三の特徴ベクトルに、前記画像の印象を示すラベルを対応付けた学習データに基づいて、入力された特徴ベクトルに対応する印象を示すラベルを出力するモデルを学習する、
制御部を有することを特徴とする学習装置。
【符号の説明】
【0253】
100 学習装置
101,500,600,700,800,900,1000 画像
111~113 特徴ベクトル
200 印象推定システム
201 クライアント装置
210 ネットワーク
300 バス
301 CPU
302 メモリ
303 ネットワークI/F
304 記録媒体I/F
305 記録媒体
400 記憶部
401 取得部
402 第一の抽出部
403 第二の抽出部
404 生成部
405 分類部
406 出力部
411 検出部
412 変換部
1101,1102 部分
1401,1402 グラフ
2001,2003 画面
2002,2004 表示欄