以下、添付図面を参照して、本発明の一実施形態について詳細に説明する。なお、図面の説明において同一又は相当要素には同一符号を付し、重複する説明を省略する。
図1は、本発明の一実施形態に係る情報処理装置10の機能構成を示す図である。情報処理装置10は、評価モデルにより出力された画像データの評価値に応じて、当該評価モデルに関連付けられた操作を当該画像データについて推奨される操作として出力する装置である。本実施形態では一例として、情報処理装置10は、スマートフォン及びタブレット端末等のユーザが所有する携帯端末に実装されている。ただし、情報処理装置10は、これに限られず、例えばパーソナルコンピュータ及びサーバ装置等の据置型のコンピュータ装置等であってもよい。
評価モデルとは、画像データの所定の特徴量を入力して当該画像データの評価値を出力するものであり、例えば一以上の特徴量を示す数値を説明変数として入力することで目的変数としての評価値が求まる関数として表現され得る。評価モデルは、例えば正例(評価値が「1」)となるべき複数の画像データ及び負例(評価値が「0」)となるべき複数の画像データを学習データとして用いた所定の機械学習を実行することにより得られる。このような評価モデルにより一の画像データについて得られる評価値が大きい(1に近い)ことは、一の画像データが正例として入力された画像データに類似する度合いが大きいことを示す。一方、上記評価値が小さい(0に近い)ことは、一の画像データが正例として入力された画像データに類似する度合いが小さいことを示す。従って、正例又は負例として用いられる画像データの特徴に応じて、生成される評価モデルの特徴も異なる。例えば写真の教科書等において良い見本として掲載されている写真(画像データ)を正例として用いて評価モデルを生成した場合、教科書的なセオリーに則って撮影された写真程高い評価値を出力する傾向のある評価モデルが得られると考えられる。また、特定の人が好きな写真を正例として用いて評価モデルを生成した場合、当該特定の人の嗜好に合致する度合いが大きい写真程高い評価値を出力する傾向のある評価モデルが得られると考えられる。
評価モデルに関連付けられた操作とは、画像データに対するユーザの操作であって、評価モデルにより出力される評価値と相関のある操作である。評価値と相関のある操作とは、評価値についての所定の傾向(例えば、評価値が高いこと)に対応する所定の傾向(例えば、実行される確率が高いこと)を有する操作を示す。例えば、特定の評価モデルによる評価値が高い(例えば所定の閾値以上である)画像データについて、ユーザによって所定のSNS(Social Networking Service)サイトに投稿され易い傾向がある場合について考える。この場合、当該特定の評価モデルには、画像データを所定のSNSサイトに投稿するというユーザの操作が、当該評価モデルにより出力される評価値と相関のある操作として関連付けられ得る。情報処理装置10は、このような関連付けを示す関連付け情報を生成すると共に、このような関連付け情報を参照することにより、任意の画像データについて推奨される操作を示す情報を出力することができる。例えば、情報処理装置10は、推奨される操作を示す情報を情報処理装置10のディスプレイ等に出力することで、ユーザに提示することができる。また、情報処理装置10は、推奨される操作を示す情報を例えば当該操作を実行する所定のアプリケーションに出力することで、当該操作を当該アプリケーションによって自動的に実行することもできる。
図1に示すように、情報処理装置10は、機能的な構成要素として、データ格納部11と、評価モデル格納部12と、操作履歴格納部13と、評価履歴格納部14と、生成部15と、関連付け情報格納部16と、評価部17と、出力部18と、を備える。生成部15は、関連付け情報を生成するための第1の処理を実行するための機能的な構成要素として、操作履歴取得部151と、抽出部152と、評価モデル生成部153と、第1関連付け部154と、を有する。また、生成部15は、関連付け情報を生成するための第2の処理を実行するための機能的な構成要素として、上述した操作履歴取得部151と、評価履歴取得部155と、操作抽出部156と、第2関連付け部157と、を有する。
データ格納部11は、複数の画像データを格納する。画像データは、例えば予め設定された解像度(例えば4000×3000ピクセル)で撮像された画像の情報であり、各画素の画素値(例えば、輝度、明度、及び色彩等を数値で表現した値)を示す情報等を含む。また、画像データには、例えばExif(Exchangeable image file format)情報等の補助情報が埋め込まれていてもよい。Exif情報は、例えば撮影日時、シャッター速度、及び焦点距離等のような、撮影条件及び撮影時のカメラの設定等に関する情報を含む。
評価モデル格納部12は、複数の評価モデルを格納する。評価モデル格納部12に格納されている各評価モデルは、それぞれ固有の特徴を有するモデル(すなわち、互いに異なる正例又は負例のセットを用いて生成された評価モデル)である。本実施形態では一例として、評価モデル格納部12は、プロカメラマンであるA氏が撮影結果に納得している写真を正例として用いて生成された評価モデル(モデルA)と、プロカメラマンであるB氏が撮影結果に納得している写真を正例として用いて生成された評価モデル(モデルB)と、を格納している。
操作履歴格納部13は、情報処理装置10を使用するユーザ(以下単に「ユーザ」)によって、データ格納部11に格納された画像データに対して実行された操作の履歴(操作履歴)を格納する。例えば、操作履歴は、操作が実行された操作日時及び操作内容等を対応付けた情報である。ただし、操作履歴のデータ形式は特定の態様に限られない。例えば、操作履歴は、操作日時を含まず、各操作が実行されたか否かを示す情報であってもよい。
図2は、操作履歴格納部13に格納される操作履歴の一例を示す図である。図2に示すように、操作履歴に含まれる個々の情報(図2に示すテーブルの1レコード分の情報)は、画像IDと操作内容とを関連付けた情報である。画像IDは、データ格納部11に格納されている画像データを一意に特定するための識別情報である。操作内容は、画像IDにより特定される画像データに対してユーザによって実行された操作の内容を示す情報である。図2の例は、画像IDが「1000」及び「1001」の2つの画像データに対して「アルバムへ保存」という操作が実行され、画像IDが「1002」及び「1003」の2つの画像データに対して「SNSへ投稿」という操作が実行されたことを示している。
なお、このような操作履歴の生成(すなわち、操作内容の記録)は、例えば以下のようにして行われる。すなわち、操作履歴格納部13は、画像データに対して実行される操作を監視し、予め登録された操作内容(操作パターン等)のいずれかが画像データに対して実行されたことを検知すると、操作対象とされた画像データの画像IDと検知された操作内容とを関連付けた情報(図2に示すテーブルの1レコード分の情報)を追加する。予め登録される操作内容の例としては、図2に示した例のように、「アルバムへ保存」といった特定の領域(ここでは一例としてユーザが気に入った画像データが登録されるアルバム領域)への画像データの保存、及び「SNSへ投稿」といった所定のSNSサイトへの画像データの投稿等が挙げられる。ただし、予め登録される操作内容は、これらの例に限られない。予め登録される操作内容は、例えば特定の宛先(例えばユーザの母親の連絡先として設定されたメールアドレス)へのメールに画像データを添付して送信する操作等であってもよいし、このような操作よりも比較的単純なデータ操作(例えば、画像データを削除する操作等)であってもよい。
評価履歴格納部14は、評価モデル格納部12に格納された各評価モデル(本実施形態では一例としてモデルA及びモデルB)により、データ格納部11に格納された各画像データについて出力(算出)された評価値を格納する。
図3は、評価履歴格納部14に格納される評価履歴の一例を示す図である。図3に示すように、評価履歴に含まれる個々の情報(図3に示すテーブルの1レコード分の情報)は、画像IDと評価モデルIDと評価値とを関連付けた情報である。評価モデルIDは、評価モデル格納部12に格納されている評価モデルを一意に特定するための識別情報である。評価値は、評価モデルIDにより特定される評価モデルにより、画像IDにより特定される画像データについて出力された評価値である。図3の例では、画像IDが「1000」の画像データについて、モデルAによって評価値「0.68」が出力され、モデルBによって評価値「0.78」が出力されたこと等を示している。
なお、このような評価履歴は、例えば、後述する評価部17が各評価モデルを用いて各画像データについての評価値を算出する毎に、評価履歴格納部14に格納される。
生成部15は、評価モデルと、画像データに対するユーザの操作であって、評価モデルにより出力される評価値と相関のある操作とを関連付けた関連付け情報を生成する。生成部15は、例えば、以下に述べる第1の処理及び第2の処理等を実行することにより、関連付け情報を生成する。生成部15は、第1の処理及び第2の処理の両方を実行してもよいし、いずれか一方のみを実行してもよい。
(第1の処理)
第1の処理においては、生成部15は、画像データに対してユーザにより実行された操作に関連付けられる評価モデルを新たに生成し、生成された評価モデルを当該操作に関連付けることで関連付け情報を生成する。具体的には、生成部15は、操作履歴取得部151と、抽出部152と、評価モデル生成部153と、第1関連付け部154とにより、上述の処理を実行する。
操作履歴取得部151は、画像データと、当該画像データに対してユーザにより実行された操作とを関連付けた操作履歴を取得する。本実施形態では、操作履歴取得部151は、操作履歴格納部13を参照することにより、操作履歴格納部13に格納された操作履歴を取得することができる。ここでは一例として、操作履歴取得部151は、図2に示した操作履歴を取得するものとする。
抽出部152は、操作履歴取得部151により取得された操作履歴を参照し、一の操作が実行された一又は複数の画像データを正例として抽出し、一の操作が実行されていない一又は複数の画像データを負例として抽出する。例えば、一の操作が上述した「アルバムへ保存」の操作である場合、抽出部152は、「アルバムへ保存」の操作が実行された画像データ(画像IDが「1000」の画像データ及び画像IDが「1001」の画像データ)を正例として抽出する。一方、抽出部152は、「アルバムへ保存」の操作が実行されていない画像データ(画像IDが「1002」の画像データ及び画像IDが「1003」の画像データ)を負例として抽出する。
評価モデル生成部153は、抽出部152により抽出された正例及び負例を用いた機械学習を実行することにより、評価モデルを生成する。評価モデル生成部153は、このようにして生成された評価モデルを評価モデル格納部12に格納する。
評価モデル生成部153により実行される機械学習としては、例えば重回帰分析、Convolutional Neural Network、及びSVM(サポートベクターマシン)等の従来公知の手法が利用され得る。また、評価モデル生成部153により生成される評価モデルは、特定の態様に限定されないが、例えば、画像データの所定の特徴量(例えば、各画素の画素値、Exif情報に埋め込まれた各種情報(例えばシャッター速度、及び焦点距離等)等)を説明変数として入力し、当該画像データの評価値を目的変数として出力する回帰モデル等である。
第1関連付け部154は、評価モデル生成部153により生成された評価モデルと上記一の操作(ここでは一例として「アルバムへ保存」の操作)とを関連付けた関連付け情報を生成する。第1関連付け部154は、このようにして生成された関連付け情報を関連付け情報格納部16に格納する。
上述した第1の処理によれば、一の操作が実行された画像データ(正例)と当該一の操作が実行されていない画像データ(負例)とを用いて新たな評価モデルを生成することで、当該評価モデルと一の操作とを関連付けた関連付け情報を生成することができる。例えば、既存の評価モデル(評価モデル格納部12に格納された評価モデル)の中に一の操作(上記例では「アルバムへ保存」)に関連付けることが適切な評価モデルが存在しない場合等に、上記第1の処理は適している。
(第2の処理)
第2の処理においては、生成部15は、既存の評価モデルにより出力された画像データについての評価値と当該画像データに対して実行されたユーザ操作とに基づいて、当該既存の評価モデルにより出力された評価値と相関のある操作を抽出する。そして、生成部15は、当該既存の評価モデルと抽出された操作とを関連付けることで関連付け情報を生成する。具体的には、生成部15は、上述した操作履歴取得部151と、評価履歴取得部155と、操作抽出部156と、第2関連付け部157とにより、上述の処理を実行する。
操作履歴取得部151は、上述の通り、操作履歴格納部13を参照することにより、操作履歴格納部13に格納された操作履歴を取得する。ここでは一例として、操作履歴取得部151は、図2に示した操作履歴を取得するものとする。
評価履歴取得部155は、画像データと、評価モデルと、当該画像データについて当該評価モデルにより出力された評価値とを関連付けた評価履歴を取得する。本実施形態では、評価履歴取得部155は、評価履歴格納部14を参照することにより、評価履歴格納部14に格納された評価履歴を取得することができる。ここでは一例として、評価履歴取得部155は、図3に示した評価履歴を取得するものとする。
操作抽出部156は、操作履歴取得部151により取得された操作履歴及び評価履歴取得部155により取得された評価履歴に基づいて、一又は複数の評価モデルにより出力された評価値と相関のある操作を抽出する。操作を抽出する処理は特定の態様に限定されないが、操作抽出部156は、例えば以下に述べる第1〜第3の抽出例の処理を実行することにより、操作を抽出することができる。
(第1の抽出例)
操作抽出部156は、一の評価モデルにより出力された評価値が所定の閾値α(例えばα=0.7)以上である画像データを抽出する。そして、操作抽出部156は、抽出された一以上の画像データのうち所定の閾値β(例えばβ=50%)以上の割合の画像データに対して特定の操作が実行されている場合に、当該特定の操作を当該一の評価モデルにより出力された評価値と相関のある操作として抽出してもよい。なお、この例における閾値α及びβは、事前の実験及び検証等によって得られた適正値であってもよいし、ユーザ等によって任意に設定された値であってもよい。
図2及び図3の例では、モデルA(一の評価モデル)により出力された評価値が0.7以上である画像データ(画像IDが「1001」、「1002」、及び「1003」の3つの画像データ)について、2/3(≒66.7%)の割合で「SNSへ投稿」の操作が実行されている。従って、操作抽出部156は、「SNSへ投稿」の操作をモデルAにより出力された評価値と相関のある操作として抽出する。また、モデルB(一の評価モデル)により出力された評価値が0.7以上である画像データ(画像IDが「1000」及び「1001」の2つの画像データ)について、2/2(=100%)の割合で「アルバムへ保存」の操作が実行されている。従って、操作抽出部156は、「アルバムへ保存」の操作をモデルBにより出力された評価値と相関のある操作として抽出する。
(第2の抽出例)
操作抽出部156は、画像データ毎に最大の評価値を出力した評価モデルを特定し、最大の評価値を出力した評価モデルとして一の評価モデルが特定された画像データを抽出する。そして、操作抽出部156は、抽出された一以上の画像データのうち所定の閾値γ(例えばγ=50%)以上の割合の画像データに対して特定の操作が実行されている場合に、当該特定の操作を当該一の評価モデルにより出力された評価値と相関のある操作として抽出してもよい。なお、この例における閾値γは、事前の実験及び検証等によって得られた適正値であってもよいし、ユーザ等によって任意に設定された値であってもよい。
図2及び図3の例では、最大の評価値を出力した評価モデルがモデルA(一の評価モデル)である画像データ(画像IDが「1002」及び「1003」の2つの画像データ)について、2/2(=100%)の割合で「SNSへ投稿」の操作が実行されている。従って、操作抽出部156は、「SNSへ投稿」の操作をモデルAにより出力された評価値と相関のある操作として抽出する。また、最大の評価値を出力した評価モデルがモデルB(一の評価モデル)である画像データ(画像IDが「1000」及び「1001」の2つの画像データ)について、2/2(=100%)の割合で「アルバムへ保存」の操作が実行されている。従って、操作抽出部156は、「アルバムへ保存」の操作をモデルBにより出力された評価値と相関のある操作として抽出する。
(第3の抽出例)
一の評価モデルによる評価値だけでは、相関のある操作を一意に抽出できない場合がある。例えば、上述した第1又は第2の抽出例の手法では、一のモデル(以下「モデルC」)により出力された評価値が高い場合と相関のある操作として「SNSへ投稿」及び「アルバムへ保存」の2つの操作が抽出され、モデルCにより出力された評価値が低い場合と相関のある操作として「削除」及び「アルバムへ保存」の2つの操作が抽出され、他のモデル(以下「モデルD」)により出力された評価値が高い場合と相関のある操作として「アルバムへ保存」及び「削除」の2つの操作が抽出され、モデルDにより出力された評価値が低い場合と相関のある操作として「SNSへ投稿」及び「アルバムへ保存」の2つの操作が抽出されるような場合があり得る。このような場合、単一のモデル(モデルC又はモデルD)の評価値のみを考慮しただけでは、相関のある操作を一意に特定することができない。そこで、第3の抽出例では、操作抽出部156は、複数(ここでは2つ)の評価モデルにより出力された評価値の組み合わせに基づいて、相関のある一の操作を抽出する。
例えば、操作抽出部156は、複数の評価モデル(ここではモデルC,D)により出力された評価値の組み合わせのパターン毎に、画像データを抽出する。ここでは一例として、操作抽出部156は、モデルCの評価値が所定の閾値t1以上であり且つモデルDの評価値が所定の閾値t2以上であるパターンA、モデルCの評価値が閾値t1以上であり且つモデルDの評価値が閾値t2未満であるパターンB、モデルCの評価値が閾値t1未満であり且つモデルDの評価値が閾値t2以上であるパターンC、及びモデルCの評価値が閾値t1未満であり且つモデルDの評価値が閾値t2未満であるパターンDの各々に対応する画像データを抽出する。
続いて、操作抽出部156は、一のパターン(例えばパターンA)について抽出された一以上の画像データのうち所定の閾値γ(例えばγ=50%)以上の割合の画像データに対して特定の操作が実行されている場合に、当該特定の操作を当該一のパターンと相関のある操作として抽出する。これにより、操作抽出部156は、例えばパターンAと相関のある操作として一の操作(例えば「アルバムへ保存」の操作)を抽出し得る。同様に、操作抽出部156は、パターンBと相関のある操作として「SNSへ投稿」の操作、パターンCと相関のある操作として「削除」の操作、パターンDと相関のある操作として「アルバムへ保存」の操作をそれぞれ抽出し得る。このように、複数の評価モデルの評価値の組み合わせに基づくことにより、一の評価モデルの評価値だけでは相関のある操作を一意に特定できない場合であっても、相関のある操作を一意に特定し得る。これにより、後述する出力部18により、推奨される操作を示す情報として一の操作を示す情報を出力することが可能となる。その結果、ユーザに対して適切な一の操作(ユーザが実行しようと思う可能性が高いと考えられる操作)をレコメンドすること等が可能になる。
第2関連付け部157は、一又は複数の評価モデルと操作抽出部156により抽出された操作とを関連付けた関連付け情報を生成する。操作抽出部156が上述の第1及び第2の抽出例によって操作を抽出した場合には、第2関連付け部157は、一の評価モデルと操作抽出部156により抽出された操作とを関連付けた関連付け情報を生成する。上記例においては、操作抽出部156は、モデルAと「SNSへ投稿」の操作とを関連付けた関連付け情報、及びモデルBと「アルバムへ保存」の操作とを関連付けた関連付け情報を生成する。一方、操作抽出部156が上述の第3の抽出例によって操作を抽出した場合には、第2関連付け部157は、複数(ここでは2つ)の評価モデルと操作抽出部156により抽出された操作とを関連付けた関連付け情報を生成する。具体的には、第2関連付け部157は、モデルC及びモデルDの評価値の組み合わせの各パターン(本実施形態では一例として上述した4つのパターンA〜D)と各パターンについて抽出された操作とを関連付けた関連付け情報を生成する。上記例では、第2関連付け部157は、パターンAと「アルバムへ保存」の操作とを関連付けた関連付け情報、パターンBと「SNSへ投稿」の操作とを関連付けた関連付け情報、パターンCと「削除」の操作とを関連付けた関連付け情報、及びパターンDと「アルバムへ保存」の操作とを関連付けた関連付け情報を生成する。第2関連付け部157は、このようにして生成された関連付け情報を関連付け情報格納部16に格納する。
上述した第2の処理によれば、既存の一又は複数の評価モデルにより出力される評価値と相関のある操作を抽出することで、新たな評価モデルを生成することなく、既存の一又は複数の評価モデルと抽出された操作とを関連付けた関連付け情報を生成することができる。
なお、上述した第3の抽出例では、操作抽出部156は、3つ以上の評価モデルの評価値の組み合わせのパターン毎に、相関のある操作を抽出してもよい。この場合、第2関連付け部157によって、3つ以上の評価モデルの評価値の組み合わせのパターンと当該パターンについて抽出された操作とを関連付けた関連付け情報が生成される。
また、生成部15は、操作抽出部156及び第2関連付け部157の処理を実行する代わりに、以下の処理を実行してもよい。すなわち、生成部15は、操作履歴取得部151により取得された操作履歴及び評価履歴取得部155により取得された評価履歴に基づいて、複数の評価モデルの各々の評価値と実行された操作とが判明している画像データを学習データ(正解データ)として取得する。そして、生成部15は、このようにして取得された学習データを用いた機械学習(例えば決定木分析等)を実行することにより、複数の評価モデルの評価値を説明変数として入力し、一の操作を目的変数として出力する分類モデル(例えば決定木)を生成する。このようにして生成される分類モデルは、説明変数として入力される複数の評価モデルの評価値と、目的変数として出力される一の操作とを関連付けた関連付け情報に相当する。
上述した第1及び第2の処理(第1及び第2の抽出例)では、評価モデルにより出力された評価値が高い場合に、当該評価モデルと特定の操作とを関連付ける例について説明したが、評価モデルにより出力された評価値が低い場合に実行され易い傾向を有する操作もあり得る。従って、例えば、第1関連付け部154は、上述した第1の処理において、評価モデルにより出力された評価値が所定の閾値以下の画像データを抽出し、抽出された当該画像データに基づいて上述同様の処理を実行してもよい。また、第2関連付け部157は、上述した第2の処理において、画像データ毎に最低の評価値を出力した評価モデルに着目して、上述同様の処理を実行してもよい。
関連付け情報格納部16は、生成部15(第1関連付け部154又は第2関連付け部157)により生成された関連付け情報を格納する。具体的には、関連付け情報格納部16には、例えば評価モデルIDと操作内容とを互いに関連付けた一又は複数の組情報が格納される。ただし、関連付け情報格納部16に格納される関連付け情報のデータ構造は上記例に限られない。例えば、上述した第2の処理の第3の抽出例により生成された関連付け情報は、複数の評価モデルの各々の評価値の組み合わせのパターンを示す情報と当該パターンに対応する操作内容とを互いに関連付けた情報として関連付け情報格納部16に格納され得る。また、関連付け情報格納部16には、生成部15が関連付け情報として生成した分類モデル(例えば決定木)を示す情報も格納され得る。
評価部17は、評価モデル格納部12に格納されている評価モデルを用いて一の画像データの評価値を算出する。ここで、一の画像データは、例えばユーザによって評価対象として選択された画像データである。本実施形態では一例として、評価部17は、評価モデル格納部12に格納されている各評価モデルにより、一の画像データについての評価モデル毎の評価値を算出し、算出結果を出力部18に出力する。
出力部18は、評価部17により算出された評価モデル毎の評価値を取得すると共に、関連付け情報格納部16に格納された関連付け情報を参照する。そして、出力部18は、評価部17により算出された評価値に応じて、関連付け情報格納部16に格納された関連付け情報において評価モデルに関連付けられた操作を示す情報を、一の画像データについて推奨される操作を示す情報として出力する。
例えば、関連付け情報格納部16に、モデルAと「SNSへ投稿」の操作とを関連付けた関連付け情報が格納されている場合について考える。この場合、出力部18は、例えばモデルAにより出力された一の画像データの評価値が所定の閾値(例えば0.7)以上であるか否かを判定する。そして、出力部18は、所定の閾値以上と判定した場合に、上記関連付け情報においてモデルAに関連付けられた「SNSへ投稿」の操作を示す情報を一の画像データについて推奨される操作を示す情報として出力してもよい。或いは、出力部18は、一の画像データについて最大の評価値を出力した評価モデルがモデルAであるとき、モデルAに関連付けられた「SNSへ投稿」の操作を示す情報を一の画像データについて推奨される操作を示す情報として出力してもよい。ただし、出力部18が、評価部17により算出された評価値に応じて、関連付け情報において評価モデルに関連付けられた操作を示す情報を出力するか否かを判定する手法は、上記例に限られない。例えば、出力部18は、上記2つの判定を組み合わせた処理を実行してもよい。すなわち、出力部18は、一の画像データについて最大の評価値を出力した評価モデルがモデルAであり、且つ、モデルAにより出力された一の画像データの評価値が所定の閾値(例えば0.7)以上であるとき、モデルAに関連付けられた「SNSへ投稿」の操作を示す情報を一の画像データについて推奨される操作を示す情報として出力してもよい。また、出力部18は、上述した第2の処理の第3の抽出例によって生成された関連付け情報(複数の評価モデルの評価値の組み合わせのパターンと一の操作とを関連付けた情報)を参照することで、一の画像データに対する複数の評価モデルの評価値の組み合わせのパターンに関連付けられた操作を示す情報を、推奨される操作を示す情報として出力してもよい。
出力部18が推奨される操作を示す情報を出力する対象となる出力先は、特に限定されない。例えば、出力部18は、推奨される操作を示す情報を、情報処理装置10のディスプレイ等に表示出力してもよい。より具体的には、出力部18は、推奨される操作を示す情報と共に、当該操作を実行するか否かをユーザに選択させるためのメニュー画面等を表示出力してもよい。この場合、ユーザに、推奨される操作を実行するか否かを選択させることが可能となる。これにより、ユーザの意思に基づいて推奨される操作を実行することが可能となる。
一方、例えば自動実行を許可する設定等がユーザによって予め設定されている場合等には、出力部18は、推奨される操作を示す情報を、当該操作を実行するアプリケーション等に直接出力してもよい。この場合、推奨される操作を当該アプリケーション等によって自動的に実行することが可能となる。これにより、推奨される操作を実行するか否かについてのユーザの確認の手間を省くことができる。
図4〜図6に示すフローチャートを参照して、情報処理装置10の動作の一例を説明する。図4は、情報処理装置10の動作の一例を示すフローチャートである。図5は、関連付け情報を生成するための第1の処理(図4のステップS1の処理の第1の例)の手順を示すフローチャートである。図6は、関連付け情報を生成するための第2の処理(図4のステップS1の処理の第2の例)の手順を示すフローチャートである。
図4に示すように、まず、生成部15が、評価モデルと、画像データに対するユーザの操作であって、評価モデルにより出力される評価値と相関のある操作とを関連付けた関連付け情報を生成する(ステップS1)。図5及び図6を参照して、ステップS1において生成部15が関連付け情報を生成するために実行する処理の例(第1の処理及び第2の処理)について説明する。
図5を参照して、第1の処理の手順の一例について説明する。まず、操作履歴取得部151が、操作履歴格納部13から操作履歴(図2参照)を取得する(ステップS101)。続いて、抽出部152が、関連付け情報を生成する対象となる操作(一の操作)を選択し(ステップS102)、選択された操作が実行された画像データを正例として抽出し(ステップS103)、選択された操作が実行されていない画像データを負例として抽出する(ステップS104)。例えば、図2に示す操作履歴が取得され、「アルバムへ保存」の操作が関連付け情報を生成する対象として選択された場合、画像IDが「1000」及び「1001」の画像データが正例として抽出され、画像IDが「1002」及び「1003」の画像データが負例として抽出される。
続いて、評価モデル生成部153が、抽出部152により抽出された正例及び負例を用いた機械学習を実行することにより、新たな評価モデルを生成する。(ステップS105)。評価モデル生成部153により生成された評価モデルは、評価モデル格納部12に格納される。
続いて、第1関連付け部154が、評価モデル生成部153により生成された評価モデルと上記選択された操作(ここでは一例として「アルバムへ保存」の操作)とを関連付けた関連付け情報を生成する(ステップS106)。第1関連付け部154により生成された関連付け情報は、関連付け情報格納部16に格納される。
図6を参照して、第2の処理の手順の一例について説明する。まず、操作履歴取得部151が、操作履歴格納部13から操作履歴(図2参照)を取得する(ステップS201)。また、評価履歴取得部155が、評価履歴格納部14から評価履歴(図3参照)を取得する(ステップS202)。
続いて、操作抽出部156は、操作履歴取得部151により取得された操作履歴及び評価履歴取得部155により取得された評価履歴に基づいて、一又は複数の評価モデルにより出力された評価値と相関のある操作を抽出する(ステップS203)。例えば操作抽出部156は、上述した第1〜第3の抽出例のいずれかの処理を実行することにより、操作を抽出する。例えば上述した第1又は第2の抽出例の処理が実行される場合、図2及び図3の操作履歴及び評価履歴の例では、操作抽出部156は、「SNSへ投稿」の操作をモデルAにより出力された評価値と相関のある操作として抽出し、「アルバムへ保存」の操作をモデルBにより出力された評価値と相関のある操作として抽出する。
続いて、第2関連付け部157が、一又は複数の評価モデルと操作抽出部156により抽出された操作とを関連付けた関連付け情報を生成する(ステップS204)。例えば上述した第1又は第2の抽出例の処理が実行される場合、第2関連付け部157は、モデルAと「SNSへ投稿」の操作とを関連付けた関連付け情報、及びモデルBと「アルバムへ保存」の操作とを関連付けた関連付け情報を生成する。第2関連付け部157により生成された関連付け情報は、関連付け情報格納部16に格納される。関連付け情報格納部16に格納された関連付け情報は、後述する出力部18によって参照される。
図4に戻り、ステップS2において、評価部17が、評価対象として選択された一の画像データの評価値を算出する。例えば、評価部17は、一の画像データについて、評価モデル格納部12に格納されている各評価モデルを用いて評価モデル毎の評価値を算出する。
続いて、出力部18が、評価部17により算出された評価値に応じて、関連付け情報格納部16に格納された関連付け情報において評価モデルに関連付けられた操作を示す情報を、一の画像データについて推奨される操作を示す情報として出力する(ステップS3)。例えば、出力部18は、モデルAによる評価値が所定の閾値以上である画像データについては、関連付け情報においてモデルAに関連付けられた「SNSへ投稿」の操作を示す情報を、推奨される操作を示す情報として出力する。例えば、出力部18は、推奨される操作を実行するか否かをユーザに選択させるためのメニュー画面をディスプレイ等に表示出力してもよいし、推奨される操作を示す情報をアプリケーション等に出力し、当該アプリケーションに当該推奨される操作を実行させてもよい。
図7を参照して、コンピュータを情報処理装置10として機能させるための情報処理プログラムPについて説明する。
情報処理プログラムPは、メインモジュールP10、データ格納モジュールP11、評価モデル格納モジュールP12、操作履歴格納モジュールP13、評価履歴格納モジュールP14、生成モジュールP15、関連付け情報格納モジュールP16、評価モジュールP17、及び出力モジュールP18を備える。メインモジュールP10は、情報処理装置10としての処理を統括的に制御する部分である。データ格納モジュールP11、評価モデル格納モジュールP12、操作履歴格納モジュールP13、評価履歴格納モジュールP14、生成モジュールP15、関連付け情報格納モジュールP16、評価モジュールP17、及び出力モジュールP18を実行することにより実現される機能は、それぞれ、情報処理装置10のデータ格納部11、評価モデル格納部12、操作履歴格納部13、評価履歴格納部14、生成部15、関連付け情報格納部16、評価部17、及び出力部18の機能と同様である。
情報処理プログラムPは、例えば、CD−ROM、DVD若しくはROM等の記録媒体又は半導体メモリによって提供される。また、情報処理プログラムPは、搬送波に重畳されたコンピュータデータ信号としてネットワークを介して提供されてもよい。
以上述べた情報処理装置10によれば、一の画像データについて評価モデルにより出力された評価値に応じて、当該評価モデルの評価値と相関のあるユーザの操作(例えば、当該評価モデルの評価値が高い場合に当該ユーザにより実行される傾向がある操作)を、当該一の画像データについて推奨される操作として出力することができる。従って、情報処理装置10によれば、ユーザの特性(嗜好及び行動特性等)に応じた画像データに対する操作を出力することができる。
なお、上記実施形態の説明に用いたブロック図(図1)は、機能単位のブロックを示している。これらの機能ブロック(構成部)は、ハードウェア及び/又はソフトウェアの任意の組み合わせによって実現される。また、各機能ブロックの実現手段は特に限定されない。すなわち、各機能ブロックは、物理的及び/又は論理的に結合した1つの装置により実現されてもよいし、物理的及び/又は論理的に分離した2つ以上の装置を直接的及び/又は間接的に(例えば、有線及び/又は無線で)接続し、これら複数の装置により実現されてもよい。
例えば、上記実施形態における情報処理装置10は、上記実施形態の情報処理装置10の処理を行うコンピュータとして機能してもよい。図8は、本実施形態に係る情報処理装置10のハードウェア構成の一例を示す図である。上述の情報処理装置10は、物理的には、プロセッサ1001、メモリ1002、ストレージ1003、通信装置1004、入力装置1005、出力装置1006、及びバス1007等を含むコンピュータ装置として構成されてもよい。
なお、以下の説明では、「装置」という文言は、回路、デバイス、ユニット等に読み替えることができる。情報処理装置10のハードウェア構成は、図8に示された各装置を1つ又は複数含むように構成されてもよいし、一部の装置を含まずに構成されてもよい。
情報処理装置10における各機能は、プロセッサ1001、メモリ1002等のハードウェア上に所定のソフトウェア(プログラム)を読み込ませることで、プロセッサ1001が演算を行い、通信装置1004による通信、メモリ1002及びストレージ1003におけるデータの読み出し及び/又は書き込みを制御することで実現される。
プロセッサ1001は、例えば、オペレーティングシステムを動作させてコンピュータ全体を制御する。プロセッサ1001は、周辺装置とのインターフェース、制御装置、演算装置、レジスタ等を含む中央処理装置(CPU:Central Processing Unit)で構成されてもよい。
また、プロセッサ1001は、プログラム(プログラムコード)、ソフトウェアモジュール、及び/又はデータを、ストレージ1003及び/又は通信装置1004からメモリ1002に読み出し、これらに従って各種の処理を実行する。プログラムとしては、上述の実施の形態で説明した動作の少なくとも一部をコンピュータに実行させるプログラムが用いられる。例えば、情報処理装置10の生成部15は、メモリ1002に格納され、プロセッサ1001で動作する制御プログラムによって実現されてもよく、図1に示した他の機能ブロックについても同様に実現されてもよい。上述の各種処理は、1つのプロセッサ1001で実行される旨を説明してきたが、2以上のプロセッサ1001により同時又は逐次に実行されてもよい。プロセッサ1001は、1以上のチップで実装されてもよい。なお、プログラムは、電気通信回線を介してネットワークから送信されてもよい。
メモリ1002は、コンピュータ読み取り可能な記録媒体であり、例えば、ROM(Read Only Memory)、EPROM(Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM)、RAM(Random Access Memory)等の少なくとも1つで構成されてもよい。メモリ1002は、レジスタ、キャッシュ、メインメモリ(主記憶装置)等と呼ばれてもよい。メモリ1002は、上記実施形態に係る情報処理方法(図4〜図6のフローチャートに示される手順等)を実施するために実行可能なプログラム(プログラムコード)、ソフトウェアモジュール等を保存することができる。
ストレージ1003は、コンピュータ読み取り可能な記録媒体であり、例えば、CD−ROM(Compact Disc ROM)等の光ディスク、ハードディスクドライブ、フレキシブルディスク、光磁気ディスク(例えば、コンパクトディスク、デジタル多用途ディスク、Blu−ray(登録商標)ディスク)、スマートカード、フラッシュメモリ(例えば、カード、スティック、キードライブ)、フロッピー(登録商標)ディスク、磁気ストリップ等の少なくとも1つで構成されてもよい。ストレージ1003は、補助記憶装置と呼ばれてもよい。上述の記憶媒体は、例えば、メモリ1002及び/又はストレージ1003を含むデータベース、サーバ、その他の適切な媒体であってもよい。
通信装置1004は、有線及び/又は無線ネットワークを介してコンピュータ間の通信を行うためのハードウェア(送受信デバイス)であり、例えばネットワークデバイス、ネットワークコントローラ、ネットワークカード、通信モジュール等ともいう。
入力装置1005は、外部からの入力を受け付ける入力デバイス(例えば、キーボード、マウス、マイクロフォン、スイッチ、ボタン、センサ等)である。出力装置1006は、外部への出力を実施する出力デバイス(例えば、ディスプレイ、スピーカー、LEDランプ等)である。なお、入力装置1005及び出力装置1006は、一体となった構成(例えば、タッチパネル)であってもよい。
また、プロセッサ1001及びメモリ1002等の各装置は、情報を通信するためのバス1007で接続される。バス1007は、単一のバスで構成されてもよいし、装置間で異なるバスで構成されてもよい。
また、情報処理装置10は、マイクロプロセッサ、デジタル信号プロセッサ(DSP:Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)、FPGA(Field Programmable Gate Array)等のハードウェアを含んで構成されてもよく、当該ハードウェアにより、各機能ブロックの一部又は全てが実現されてもよい。例えば、プロセッサ1001は、これらのハードウェアの少なくとも1つで実装されてもよい。
以上、本発明について詳細に説明したが、当業者にとっては、本発明が本明細書中に説明した実施形態に限定されるものではないということは明らかである。本発明は、特許請求の範囲の記載により定まる本発明の趣旨及び範囲を逸脱することなく修正及び変更された態様として実施することができる。従って、本明細書の記載は、例示説明を目的とするものであり、本発明に対して何ら制限的な意味を有するものではない。
本明細書で説明した各態様/実施形態の処理手順、シーケンス、フローチャート等は、矛盾の無い限り、順序を入れ替えてもよい。例えば、本明細書で説明した方法については、例示的な順序で様々なステップの要素を提示しており、提示した特定の順序に限定されない。
入出力された情報等は特定の場所(例えば、メモリ)に保存されてもよいし、管理テーブルで管理されてもよい。入出力される情報等は、上書き、更新、又は追記され得る。出力された情報等は削除されてもよい。入力された情報等は他の装置へ送信されてもよい。
判定は、1ビットで表される値(0か1か)によって行われてもよいし、真偽値(Boolean:true又はfalse)によって行われてもよいし、数値の比較(例えば、所定の値との比較)によって行われてもよい。
本明細書で説明した各態様/実施形態は単独で用いられてもよいし、組み合わせて用いられてもよいし、実行に伴って切り替えて用いられてもよい。
ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語と呼ばれるか、他の名称で呼ばれるかを問わず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行可能ファイル、実行スレッド、手順、機能等を意味するよう広く解釈されるべきである。
また、ソフトウェア、命令等は、伝送媒体を介して送受信されてもよい。例えば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア及びデジタル加入者回線(DSL)等の有線技術及び/又は赤外線、無線及びマイクロ波等の無線技術を使用してウェブサイト、サーバ、又は他のリモートソースから送信される場合、これらの有線技術及び/又は無線技術は、伝送媒体の定義内に含まれる。
本明細書で説明した情報及び信号等は、様々な異なる技術のいずれかを使用して表されてもよい。例えば、上記の説明全体に渡って言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、チップ等は、電圧、電流、電磁波、磁界若しくは磁性粒子、光場若しくは光子、又はこれらの任意の組み合わせによって表されてもよい。
なお、本明細書で説明した用語及び/又は本明細書の理解に必要な用語については、同一の又は類似する意味を有する用語と置き換えてもよい。
また、本明細書で説明した情報、パラメータ等は、絶対値で表されてもよいし、所定の値からの相対値で表されてもよいし、対応する別の情報で表されてもよい。
上述したパラメータに使用される名称はいかなる点においても限定的なものではない。さらに、これらのパラメータを使用する数式等は、本明細書で明示的に開示したものと異なる場合もある。
本明細書で使用する「に基づいて」という記載は、別段に明記されていない限り、「のみに基づいて」を意味しない。言い換えれば、「に基づいて」という記載は、「のみに基づいて」と「に少なくとも基づいて」との両方を意味する。
本明細書で使用する「第1の」、「第2の」等の呼称を使用した要素へのいかなる参照も、それらの要素の量又は順序を全般的に限定するものではない。これらの呼称は、2つ以上の要素間を区別する便利な方法として本明細書で使用され得る。従って、第1及び第2の要素への参照は、2つの要素のみがそこで採用され得ること、又は何らかの形で第1の要素が第2の要素に先行しなければならないことを意味しない。
「含む(including)」、「含んでいる(including)」、及びそれらの変形が、本明細書あるいは特許請求の範囲で使用されている限り、これら用語は、用語「備える」と同様に、包括的であることが意図される。さらに、本明細書あるいは特許請求の範囲において使用されている用語「又は(or)」及び「或いは(or)」は、排他的論理和ではないことが意図される。
本明細書において、文脈又は技術的に明らかに1つのみしか存在しない装置であることが示されていなければ、複数の装置をも含むものとする。
本開示の全体において、文脈から明らかに単数を示したものではなければ、複数のものを含むものとする。