[第1実施形態]
図1において、本開示の技術に係る「画像処理装置」の一例である画像配信サーバ10には、複数台のユーザ端末11が接続されている。ユーザ端末11は、複数のユーザ12が各々所持する端末である。画像配信サーバ10とユーザ端末11とは、ネットワーク13を介して接続されている。ネットワーク13は、例えばインターネット、公衆通信網等のWAN(Wide Area Network)である。画像配信サーバ10において、ユーザ12は、例えば、ユーザ12毎に付与されるユーザID(Identification Data)によって識別される。なお、1つのユーザIDを複数のユーザ12で使用している場合は、1つのユーザIDに対応する複数のユーザ12を1人のユーザ12としてもよい。また、ユーザ端末11は、例えば、各ユーザIDに対応付けられた端末装置である。なお、1つのユーザIDに対して対応付けられるユーザ端末11は複数であってもよい。
ユーザ端末11は、画像36(図4参照)の画像ファイル27(図2参照)をネットワーク13経由で送受信する機能を有している。また、ユーザ端末11は、画像36を表示する機能を有している。ユーザ端末11は、例えばパーソナルコンピュータであり、デジタルカメラ15等の撮影装置で撮影した画像36、あるいはフイルム写真等をスキャナ16で読み取った画像36を取り込んで、取り込んだ画像36の画像ファイル27を、ネットワーク13経由で画像配信サーバ10にアップロードする。また、ユーザ端末11は、例えば撮影装置を内蔵するスマートフォン、タブレット端末等であり、撮影装置で撮影した画像36の画像ファイル27を、ネットワーク13経由で画像配信サーバ10にアップロードする。
画像配信サーバ10には、例えばLAN(Local Area Network)等のネットワーク(図示省略)を介して、画像データベース(以下、DB(Data Base)と略す)サーバ20およびユーザ情報DBサーバ21が接続されている。画像配信サーバ10は、ユーザ端末11からの画像ファイル27を画像DBサーバ20に送信する。画像DBサーバ20は画像DB22を有する。画像DBサーバ20は、画像配信サーバ10からの画像ファイル27を画像DB22に蓄積して管理する。また、画像DBサーバ20は、画像配信サーバ10からの要求に応じて、画像DB22に蓄積された画像ファイル27を画像配信サーバ10に送信する。
画像配信サーバ10は、ユーザ12に関する情報であるユーザ情報30(図2参照)をユーザ情報DBサーバ21に送信する。ユーザ情報DBサーバ21はユーザ情報DB23を有する。ユーザ情報DBサーバ21は、画像配信サーバ10からのユーザ情報30をユーザ情報DB23に蓄積して管理する。また、ユーザ情報DBサーバ21は、画像配信サーバ10からの要求に応じて、ユーザ情報DB23に蓄積されたユーザ情報30のうちの後述する関連人物情報32を画像配信サーバ10に送信する。なお、画像配信サーバ10は、画像DBサーバ20およびユーザ情報DBサーバ21と、ネットワーク13を介して接続されてもよい。また、画像DBサーバ20とユーザ情報DBサーバ21とは、画像DB22およびユーザ情報DB23の両方を有する1つのDBサーバであってもよい。さらに、画像配信サーバ10は、画像DBサーバ20およびユーザ情報DBサーバ21を含んでもよい。言い換えると、本開示の技術に係る「画像処理装置」は、画像配信サーバ10、画像DBサーバ20、およびユーザ情報DBサーバ21で構成されてもよい。
図2に示すように、画像DB22には、個人フォルダ25と共有フォルダ26とが設けられている。個人フォルダ25は、各々のユーザ12に対して個別に対応付けられる、1人のユーザ12に固有のフォルダである。このため、個人フォルダ25はユーザ12の人数分設けられている。個人フォルダ25には、各ユーザ12のユーザ端末11からアップロードされた画像ファイル27が格納される。画像ファイル27には、後述するように画像36が含まれる。このため、個人フォルダ25には、各ユーザ12に帰属する画像36が格納される。つまり、「ユーザに帰属する画像」は、各ユーザ12に対応付けられた画像36であり、例えば、ユーザ12のユーザ端末11から画像配信サーバ10に送信された画像ファイル27に含まれる画像36である。言い換えると、画像配信サーバ10がユーザ端末11から受信した画像フィイル27に含まれる画像36である。「ユーザに帰属する画像」は、例えば、ユーザ12が撮影装置で撮影した画像36、およびユーザ12がスキャナ16で読み取った画像36が含まれる。加えて、「ユーザに帰属する画像」には、ユーザ12が友達、家族等の他のユーザ12から譲渡された画像36、ユーザ12がインターネットサイトでダウンロードした画像36等も含まれる。
画像DB22に含まれる個人フォルダ25には、ユーザIDが対応付けられており、例えば、「個人フォルダ」の後の「(U1)」で示される。また、「個人フォルダ(U1)」とは、ユーザIDが「U1」のユーザ12の個人フォルダ25、という意である。つまり、「ユーザに帰属する画像」は、各ユーザ12のユーザIDに対応付けられる画像36を示す。
図3にも示すように、共有フォルダ26は、個人フォルダ25とは異なり、複数のユーザ12で構成されるユーザグループ28によって共有されるフォルダである。このため、共有フォルダ26には、当該共有フォルダ26を共有する複数のユーザ12のユーザIDが対応付けられている。共有フォルダ26には、ユーザIDが対応付けられたユーザ12にのみアクセス権限が与えられる。共有フォルダ26には、複数のユーザ12から画像36の画像ファイル27が格納される。共有フォルダ26は、例えば、イベント毎に作成されてもよい。また、共有フォルダ26は、例えば、イベント毎に複数のユーザ12のいずれか1人によって手動で作成されてもよいし、ユーザ12から送信された画像36を画像解析することによって、各画像36に対応するイベントを特定することで自動的に作成されてもよい。共有フォルダ26には、複数のユーザ12が対応付けられる。共有フォルダ26に対応付けられる複数のユーザ12は、例えば、共有フォルダ26に対応付けられるユーザ12のうちの特定の管理ユーザによって設定されてもよいし、共有フォルダ26に対応付けられるイベントもしくは画像36に類似する画像36を有するユーザ12が自動的に設定されてもよい。イベントは、例えば運動会、パーティー、結婚式、発表会、コンサート、スポーツの試合等である。
図3では、イベント「結婚式1」に参加した、ユーザID「U5」、「U10」、「U15」等の複数のユーザ12が、「共有フォルダ(結婚式1)」と名付けられた共有フォルダ26に、自身に帰属する画像36の画像ファイル27をアップロードする様子を示している。なお、共有フォルダ26は、例えば、ユーザグループ28を構成する複数のユーザ12のうちの1人のユーザ12によって作成される。イベントの主催者によって共有フォルダ26が作成されてもよい。なお、共有フォルダ26の名称は、本実施形態においては、ユーザ12もしくは画像配信サーバ10によって共有フォルダ26に関連付けられたイベント名としているが、これに限らない。共有フォルダ26の各々を識別する識別番号もしくは管理番号を、共有フォルダ26の名称としてもよい。
ユーザ情報DBサーバ21には、ユーザ情報30として、ユーザ基本情報31および関連人物情報32が記憶されている。ユーザ基本情報31は、各ユーザ12の基本的な情報である。関連人物情報32は、各ユーザ12に関連する関連人物45(図6参照)の情報である。これらユーザ基本情報31および関連人物情報32と、個人フォルダ25とは、ユーザIDによって互いに関連付けられている。なお、「ユーザ基本情報(U1)」および「関連人物情報(U1)」とは、「個人フォルダ(U1)」と同様に、ユーザIDが「U1」のユーザ12のユーザ基本情報31および関連人物情報32、という意である。
図4に示すように、画像ファイル27は、画像情報35、画像36、およびユーザIDを含む。画像情報35は、各画像36を識別するための画像ID、画像36の撮影日時、撮影場所、解像度、タグ等の項目を有する。撮影場所の項目には、撮影装置のGPS(Global Positioning System)機能により検出された経緯度が記録される。解像度の項目には、撮影装置に搭載される撮像素子の画素の水平方向および垂直方向のdpi(dots per inch)が記録される。タグの項目には、画像36の被写体を端的に表す単語が記録される。タグは、ユーザ12の手入力、および/または、画像36の解析により得られる。画像情報35は、これらの他にも、画像36を撮影した撮影装置の機種、画像36の水平方向および垂直方向の画素数、露出値、ISO(International Organization for Standardization)感度、焦点距離、フラッシュの有無等々、様々な項目を有する。
図5に示すように、ユーザ基本情報31には、ユーザID、ユーザ12の氏名、性別、生年月日、年齢、居所、共有フォルダ、顔画像等の項目を有する。居所の項目には、ユーザ12が居住している都道府県が記録される。共有フォルダの項目には、ユーザIDが登録されていて、アクセス権限を有している共有フォルダ26が記録される。顔画像の項目には、ユーザ12の顔画像40が記録される。ユーザ12の顔画像40は、例えばユーザ12が自ら登録する。なお、本明細書において「顔」とは、例えば、頭、耳、目、鼻、口、頬、顎等を含む人体の領域である。
図6に示すように、関連人物情報32は、ユーザID、および関連人物45の顔画像40を含む。関連人物45の顔画像40は、代表的な1枚であってもよいし、複数枚であってもよい。
関連人物45は、メイン人物45Mとサブ人物45Sとを含む。メイン人物45Mは、当該ユーザIDのユーザ12との関連性が相対的に高い人物である。サブ人物45Sは、当該ユーザIDのユーザ12との関連性が、メイン人物45Mよりも低い人物である。この関連人物45をメイン人物45Mとサブ人物45Sとに振り分ける態様は、本開示の技術に係る「第1ユーザとの関連性の高低を示す関連ランクを関連人物毎に付与」する態様の一例である。
図7において、画像配信サーバ10およびユーザ端末11を構成するコンピュータは、基本的には同じ構成であり、ストレージデバイス50、メモリ51、CPU(Central Processing Unit)52、通信部53、ディスプレイ54、および入力デバイス55を備えている。これらはバスライン56を介して相互接続されている。
ストレージデバイス50は、画像配信サーバ10およびユーザ端末11を構成するコンピュータに内蔵、またはケーブル、ネットワークを通じて接続されたハードディスクドライブである。もしくはストレージデバイス50は、ハードディスクドライブを複数台連装したディスクアレイである。ストレージデバイス50には、オペレーティングシステム等の制御プログラム、各種アプリケーションプログラム(以下、AP(Application Program)と略す)、およびこれらのプログラムに付随する各種データ等が記憶されている。なお、ハードディスクドライブに代えてソリッドステートドライブを用いてもよい。また、画像DBサーバ20、または、ユーザ情報DBサーバ21の少なくとも一方が、ストレージデバイス50に含まれてもよい。
メモリ51は、CPU52が処理を実行するためのワークメモリである。CPU52は、ストレージデバイス50に記憶されたプログラムをメモリ51へロードして、プログラムにしたがった処理を実行することにより、コンピュータの各部を統括的に制御する。
通信部53は、ネットワーク13等を介した各種情報の伝送制御を行うネットワークインターフェースである。ディスプレイ54は各種画面を表示する。各種画面にはGUI(Graphical User Interface)による操作機能が備えられる。画像配信サーバ10およびユーザ端末11を構成するコンピュータは、各種画面を通じて、入力デバイス55からの操作指示の入力を受け付ける。入力デバイス55は、キーボード、マウス、タッチパネル、音声入力用のマイクロフォン等である。
なお、以下の説明では、画像配信サーバ10を構成するコンピュータの各部には添え字の「A」を、ユーザ端末11を構成するコンピュータの各部には添え字の「B」をそれぞれ符号に付して区別する。
図8において、ユーザ端末11は、画像配信要求57を画像配信サーバ10に送信する。画像配信要求57は、例えば、ユーザ12のユーザIDを含む。画像配信サーバ10は、画像配信要求57に応じて、ユーザIDで指定される個人フォルダ25内の画像ファイル27を、画像配信要求57の送信元のユーザ端末11に配信する。また、画像配信サーバ10は、ユーザIDで指定される共有フォルダ26があった場合は、当該共有フォルダ26内の画像ファイル27を、個人フォルダ25内の画像ファイル27と併せて、画像配信要求57の送信元のユーザ端末11に配信する。なお、ユーザ端末11に配信する画像ファイル27は、1つであっても構わない。
また、ユーザ端末11は、お勧め画像配信要求58を画像配信サーバ10に送信する。お勧め画像配信要求58は、ユーザ12のユーザID、およびお勧め画像を要求する共有フォルダ26の名称を含む。お勧め画像配信要求58は、お勧め画像配信要求58をユーザ端末11から送信したユーザ12が、名称で指定される共有フォルダ26内の、自分以外のユーザ12に帰属する画像36に基づくお勧め画像を、画像配信サーバ10に提示させるための要求である。なお、本実施形態において、お勧め画像とは、お勧め画像配信要求58で指定される共有フォルダ26内の、お勧め画像配信要求58を送信したユーザ12以外のユーザ12に帰属する画像36を、お勧め画像配信要求58を送信したユーザ12に対応する関係人物情報32に基づき切り出した切り出し画像110(図25参照)である。画像配信サーバ10は、お勧め画像配信要求58に応じて、お勧め画像である切り出し画像110を含むお勧め画像情報59を、お勧め画像配信要求58の送信元のユーザ端末11に配信する。
なお、ユーザ端末11から画像配信サーバ10に送信される要求(例えば、画像配信要求57およびお勧め画像配信要求58)は、ユーザ端末11の端末IDを含んでもよい。画像配信サーバ10は、例えば、端末IDを受信することで、端末IDに対応するユーザ端末11に、要求に応じた画像(例えば、画像ファイル27)、あるいは情報(例えば、お勧め画像情報59)を配信する。ここで、端末IDは、例えば、MAC(Media Access Control)アドレス等のユーザ端末11固有のIDに限らず、IP(Internet Protocol)アドレス、ポート番号等、データの送受信においてユーザ端末11を識別するIDを含む。
ここで、お勧め画像配信要求58をユーザ端末11から送信したユーザ12は、本開示の技術に係る「第1ユーザ」の一例である。また、お勧め画像配信要求58をユーザ端末11から送信したユーザ12以外のユーザ12は、本開示の技術に係る「第1ユーザとは異なる第2ユーザ」の一例である。以下では、第1ユーザに符号12F、第2ユーザに符号12Sをそれぞれ付して区別する。また、第1ユーザ12Fの個人フォルダ25内に画像ファイル27が存在し、第1ユーザ12Fに帰属する画像36を、第1ユーザ画像36Fと表記する。さらに、第2ユーザ12Sの個人フォルダ25内に画像ファイル27が存在し、第2ユーザ12Sに帰属する画像36を、第2ユーザ画像36Sと表記する。
画像配信サーバ10のストレージデバイス50Aには、作動プログラム65が記憶されている。作動プログラム65は、画像配信サーバ10を構成するサーバコンピュータを、本開示の技術に係る「画像処理装置」として機能させるためのAPである。すなわち、作動プログラム65は、本開示の技術に係る「画像処理装置の作動プログラム」の一例である。ストレージデバイス50Aには、作動プログラム65の他に、顔配置マップセット66も記憶されている。
作動プログラム65が起動されると、画像配信サーバ10のCPU52Aは、メモリ51等と協働して、情報作成部70、要求受付部71、画像取得部72、情報取得部73、抽出部74、リードライト(以下、RW(Read Write)と略す)制御部75、トリミング部76、および配信制御部77として機能する。CPU52Aは、本開示の技術に係る「プロセッサ」の一例である。
情報作成部70は、関連人物情報32を作成する。情報作成部70は、第1画像取得要求80を画像DBサーバ20に送信する。第1画像取得要求80は、関連人物情報32が作成されていない第1ユーザ12Fの個人フォルダ25内の画像ファイル27の取得を要求するものである。また、第1画像取得要求80は、前回関連人物情報32を作成してから、予め定められた時間(以下、第1設定時間という)が経過した場合、もしくは、予め定められた枚数(以下、第1枚数という)の画像ファイル27を新たに送信した場合の少なくとも一方の場合において、第1ユーザ12Fの個人フォルダ25内の画像ファイル27の取得を要求するものである。第1画像取得要求80は、関連人物情報32が作成されていない第1ユーザ12FのユーザID、前回関連人物情報32を作成してから第1設定時間が経過した第1ユーザ12FのユーザID、もしくは第1枚数の画像ファイル27を送信した第1ユーザ12FのユーザIDを含む。第1画像取得要求80によって、関連人物情報32が作成されていない第1ユーザ12Fの個人フォルダ25内の画像ファイル27の取得を要求するタイミングは、例えば、当該第1ユーザ12Fの個人フォルダ25内に格納されている画像ファイル27が、予め定められた枚数以上となったタイミングである。あるいは、当該第1ユーザ12Fが、ユーザ端末11に画像閲覧AP115(図27参照)をインストールしたタイミングでもよい。なお、第1設定時間は、例えば1ケ月、半年、1年等である。また、第1枚数は、例えば、1以上の自然数である。
画像DBサーバ20は、第1画像取得要求80に応じた第1ユーザ12Fの個人フォルダ25内の、第1ユーザ画像36Fを含む画像ファイル27を画像DB22から読み出し、読み出した画像ファイル27を画像配信サーバ10に送信する。情報作成部70は、第1画像取得要求80に応じて画像DBサーバ20から送信された、第1ユーザ画像36Fを含む画像ファイル27を取得する。情報作成部70は、取得した画像ファイル27の第1ユーザ画像36Fを元に、関連人物情報32を作成する。情報作成部70は、作成した関連人物情報32をユーザ情報DBサーバ21に送信する。関連人物情報32が作成されていなかった場合、ユーザ情報DBサーバ21は、情報作成部70からの関連人物情報32をユーザ情報DB23に新規に登録する。一方、関連人物情報32が既に作成されていた場合、ユーザ情報DBサーバ21は、ユーザ情報DB23に記憶されている関連人物情報32を、情報作成部70からの関連人物情報32に書き換える。
要求受付部71は、ユーザ端末11からの各種要求を受け付ける。要求受付部71は、ユーザ端末11からの各種要求を受け付けた場合、各種要求に対応する指示を、画像取得部72または情報取得部73に出力する。例えば、要求受付部71は画像配信要求57またはお勧め画像配信要求58を受け付けた場合、画像配信要求57またはお勧め画像配信要求58に対応する指示を、画像取得部72または情報取得部73に出力する。
画像取得部72は、要求受付部71から出力された各種要求に対応する指示に応じて、第2画像取得要求81を画像DBサーバ20に送信する。第2画像取得要求81は、画像配信要求57またはお勧め画像配信要求58のユーザIDで指定される個人フォルダ25の画像ファイル27または共有フォルダ26の画像ファイル27のうちの少なくとも一方の取得を要求するものである。
画像DBサーバ20は、第2画像取得要求81に応じた個人フォルダ25の画像ファイル27および共有フォルダ26の画像ファイル27を画像DB22から読み出し、読み出した画像ファイル27を画像配信サーバ10に送信する。画像取得部72は、第2画像取得要求81に応じて画像DBサーバ20から送信された画像ファイル27を取得する。画像取得部72は、取得した画像ファイル27を配信制御部77に出力する。また、画像取得部72は、取得した画像ファイル27のうちの共有フォルダ26の画像ファイル27を抽出部74に出力する。なお、画像配信要求57のユーザIDで指定される共有フォルダ26がない場合は、個人フォルダ25内の画像ファイル27のみが画像取得部72において取得される。
共有フォルダ26内には、第1ユーザ12F以外のユーザ12、すなわち第2ユーザ12Sに帰属する第2ユーザ画像36Sの画像ファイル27も含まれる。このため、画像取得部72は、共有フォルダ26の画像ファイル27を取得することで、第2ユーザ12Sに帰属する第2ユーザ画像36Sを取得していることになる。
情報取得部73は、要求受付部71から出力された各種要求に対応する指示に応じて、情報取得要求82をユーザ情報DBサーバ21に送信する。情報取得要求82は、お勧め画像配信要求58に含まれるユーザIDのユーザ12、すなわち第1ユーザ12Fの関連人物情報32の取得を要求するものである。ユーザ情報DBサーバ21は、情報取得要求82に応じた関連人物情報32をユーザ情報DB23から読み出し、読み出した関連人物情報32を画像配信サーバ10に送信する。情報取得部73は、情報取得要求82に応じてユーザ情報DBサーバ21から送信された関連人物情報32を取得する。情報取得部73は、取得した関連人物情報32を抽出部74およびトリミング部76に出力する。
抽出部74は、第1ユーザ12Fの関連人物情報32に基づいて、お勧め画像配信要求58で指定される共有フォルダ26の画像ファイル27に含まれる画像36から、第1ユーザ12Fの関連人物45の顔90R(図14参照)が含まれている第2ユーザ画像36Sを抽出する。抽出部74は、抽出した第2ユーザ画像36Sをトリミング部76に出力する。
RW制御部75は、ストレージデバイス50Aへの各種情報の記憶、およびストレージデバイス50A内の各種情報の読み出しを制御する。例えば、RW制御部75は、顔配置マップセット66をストレージデバイス50Aから読み出し、読み出した顔配置マップセット66をトリミング部76に出力する。顔配置マップセット66は、第1顔配置マップ85a、第2顔配置マップ85b、第3顔配置マップ85c、および第4顔配置マップ85dで構成される。なお、以下では、第1顔配置マップ85a、第2顔配置マップ85b、第3顔配置マップ85c、および第4顔配置マップ85dを、まとめて顔配置マップ85と表記する場合がある。
トリミング部76は、顔配置マップ85を用いて、抽出部74が抽出した、第1ユーザ12Fの関連人物45の顔90Rが含まれている第2ユーザ画像36Sから、第1ユーザ12Fの関連人物45の顔90Rを含む領域を切り出す。トリミング部76は、切り出した切り出し画像110(図25参照)を配信制御部77に出力する。なお、トリミング部76は、切り出し画像110を拡大して切り出し画像110E(図25参照)とし、切り出し画像110Eを配信制御部77に出力してもよい。
配信制御部77は、画像取得部72またはトリミング部76から出力された、要求受付部71が受け付けた各種要求に対応する画像または情報をユーザ端末11に配信する制御を行う。配信制御部77は、例えば、画像取得部72から出力された画像配信要求57に応じた画像ファイル27を、画像配信要求57の送信元のユーザ端末11に配信する制御を行う。また、配信制御部77は、トリミング部76から出力された、お勧め画像配信要求58に応じたお勧め画像情報59を、お勧め画像配信要求58の送信元のユーザ端末11に配信する制御を行う。お勧め画像情報59は、例えば、切り出し画像110Eを含む。このお勧め画像情報59をユーザ端末11に配信する態様は、本開示の技術に係る「切り出し画像を第1ユーザに対して提示する」態様の一例である。
図9~図11は、情報作成部70において実行される関連人物情報32を作成する情報作成処理(ステップST100A)の手順を示す。情報作成部70は、まず、第1画像取得要求80を画像DBサーバ20に送信する(ステップST1001)。そして、情報作成部70は、第1画像取得要求80に応じて画像DBサーバ20から送信された個人フォルダ25内の画像ファイル27を取得する(ステップST1002)。
情報作成部70は、顔認識技術を用いて、取得した画像ファイル27に含まれる第1ユーザ画像36Fから、顔90が含まれた顔あり画像91を抽出する(ステップST1003)。ステップST1003で抽出した顔あり画像91は、本開示の技術に係る「予め定められた設定条件を満たす第1ユーザ画像」の一例である。
次いで、情報作成部70は、顔あり画像91に含まれる顔90の人物を認識する(ステップST1004)。言い換えると、情報作成部70は、顔あり画像91を人物毎に分類する。人物の認識または分類は、例えば以下の方法で行う。すなわち、顔あり画像91に含まれる全ての顔90の特徴量を算出し、算出した特徴量の類似度を、全ての顔90に関して総当たりで算出する。そして、類似度が予め定められた範囲内にある顔90同士を、同一人物の顔90として認識または分類する。図10では、「P1」、「P2」、「P3」、・・・といった人物を認識した例を示している。なお、本実施形態において、第1ユーザ画像36Fから顔あり画像91を抽出してから、顔あり画像91に含まれる顔90の人物を認識したが、これに限られない。顔あり画像91の抽出はせずに、第1ユーザ画像36Fの全てに対して人物の認識または分類をしてもよい。
情報作成部70は、認識した人物毎に、各人物の顔90を含む顔あり画像91の枚数、または個人フォルダ26に含まれる第1ユーザ画像36Fにおける、各人物の顔90を含む顔あり画像91の割合を算出する(ステップST1005)。そして、選定条件96にしたがって、第1ユーザ12Fの関連人物情報32を作成する(ステップST1006)。選定条件96は、第1ユーザ12Fとの関連度を示す情報である。また、選定条件96は、第1ユーザ12Fとの関連ランクに応じて異なる条件を含んでもよく、例えば、メイン人物45Mを選定するための第1選択条件93と、サブ人物を選定するための第2選択条件94とを含む。第1選択条件93は、第2選択条件92より相対的に厳しい条件であり、例えば、相対的に多くの枚数または多くの割合が必要となる条件である。選定条件96は、例えば、図10の表92に示すように、各人物の顔90を含む顔あり画像91の枚数に関連する条件である。
情報生成部70は、第1選定条件93にしたがって、認識した人物の中からメイン人物45Mを選定し、選定したメイン人物45Mの顔画像40を関連人物情報32に登録する。第1選定条件93は、顔90が含まれる顔あり画像91の枚数が最も多い人物をメイン人物45Mとする、という内容である。このため、情報作成部70は、顔90が含まれる顔あり画像91の枚数が最も多い人物を、メイン人物45Mとして選定する。図10では、顔90が含まれる顔あり画像91の枚数が最も多い人物「P1」が、メイン人物45Mとして選定された例を示している。
情報作成部70は、第2選定条件94にしたがって、認識した人物の中からサブ人物45Sを選定し、選定したサブ人物45Sの顔画像40を関連人物情報32に登録する。第2選定条件94は、顔90が含まれる顔あり画像91の枚数がメイン人物45Mの次に多い人物をサブ人物45Sとする、という内容である。このため、情報作成部70は、顔90が含まれる顔あり画像91の枚数がメイン人物45Mの次に多い人物を、サブ人物45Sとして選定する。図10では、顔90が含まれる顔あり画像91の枚数が人物「P1」の次に多い人物「P2」が、サブ人物45Sとして選定された例を示している。
なお、本実施形態において、ユーザの関連人物情報32として、関連度の異なる2種類以上の関連ランクの関連人物45(メイン人物45Mとサブ人物45S)を作成するとしたが、これに限られない。ユーザの関連人物情報32として、関連度が一定以上の1種類の関連ランクの関連人物45(例えば、メイン人物45M)のみを作成してもよいし、関連度の異なる3種類以上の関連ランクの関連人物45を選定してもよい。
また、情報作成部70は、個人フォルダ26に含まれる第1ユーザ画像36Fにおける、各人物の顔90を含む顔あり画像91の割合を算出してもよい。情報作成部70は、変形例として図11の表95に示すように、各人物の顔90を含む顔あり画像91の割合として、第1割合と第2割合を算出する。第1割合は、ステップST1003で抽出した顔あり画像91の全枚数に対する、各人物の顔90を含む顔あり画像91の枚数の割合である。例えば顔あり画像91の全枚数が1000枚であった場合を考える。この場合、人物「P1」の顔90を含む顔有画像91が200枚であれば、人物「P1」の第1割合は、表95に示すように、200/1000=0.20となる。同様に、顔あり画像91の枚数が150枚の人物「P2」の第1割合は0.15であり、顔あり画像91の枚数が80枚の人物「P3」の第1割合は0.08であり、顔あり画像91の枚数が60枚の人物「P4」の第1割合は0.06となる。
第2割合は、メイン人物45Mの顔90Rを含む顔あり画像91の枚数に対する、各人物の顔90を含む顔あり画像91の枚数の割合である。メイン人物45Mである人物「P1」の顔90Rを含む顔あり画像91の枚数は200枚である。このため、人物「P1」の第2割合は、表95に示すように100/100=1.0であり、人物「P2」の第2割合は0.75であり、人物「P3」の第2割合は0.4であり、人物「P4」の第2割合は0.3となる。なお、メイン人物45Mの顔90Rが写っている顔あり画像91も、本開示の技術に係る「予め定められた設定条件を満たす第1ユーザ画像」の一例である。
第1選択条件93には、例えば第1割合に対する第1閾値が記憶され、第2選択条件94には、例えば第2割合に対する第2閾値が記憶されている。情報作成部70は、第1割合が第1閾値以上である人物をメイン人物45Mとして選定し、第2割合が第2閾値以上である人物をサブ人物45Sとして選定し、関連人物情報32として登録してもよい。図11では、第1閾値として0.2、第2閾値として0.4がそれぞれ設定され、第1割合が0.2以上である人物「P1」がメイン人物45Mとして選定され、第2割合が0.4以上である人物「P2」および「P3」がサブ人物45Sとして選定される。なお、選定条件96は、ストレージデバイス50に記憶されており、RW制御部75によって読み出されて、情報作成部70に出力される。また、第1選択条件93と第2選択条件94は、図11に示す通り異なる割合に対応する条件であってもよいし、異なる枚数に対応する条件であってもよい。
情報作成部70は、こうして作成した関連人物情報32を、ユーザ情報DBサーバ21に送信する(ステップST1007)。以上で、情報作成部70による情報作成処理が終了する。
図12~図14は、抽出部74において実行される、第1ユーザ12Fの関連人物45の顔90Rが含まれている第2ユーザ画像36Sを抽出する抽出処理(ステップST300)の手順を示す。抽出部74は、まず、お勧め画像配信要求58で指定される共有フォルダ26の画像ファイル27から、第2ユーザ画像36Sを抽出する(ステップST3001)。より詳しくは、抽出部74は、お勧め画像配信要求58で指定される共有フォルダ26のユーザグループ28を構成するユーザ12のうち、お勧め画像配信要求58で指定されるユーザIDのユーザ12(すなわち第1ユーザ12F)以外のユーザ12を、第2ユーザ12Sとして特定する。そして、特定した第2ユーザ12SのユーザIDを含む画像ファイル27の画像36を、第2ユーザ画像36Sとして抽出する。
図13では、ユーザIDが「U1」、「U2」の2人のユーザ12で構成されるユーザグループ28の共有フォルダ26(名称「同窓会1」)を対象として、ユーザID「U1」のユーザ12のユーザ端末11から、お勧め画像配信要求58が送信された場合を例示している。この場合、ユーザID「U1」のユーザ12が第1ユーザ12Fであり、ユーザID「U2」のユーザ12が第2ユーザ12Sである。このため、抽出部74は、共有フォルダ26の画像ファイル27から、ユーザID「U2」のユーザ12に帰属する画像36を、第2ユーザ画像36Sとして抽出する。
抽出部74は、情報作成処理のステップST1003と同様に、ステップST3001で抽出した第2ユーザ画像36Sから、顔90を含む顔あり画像91を抽出する(ステップST3002)。次いで、抽出部74は、情報作成処理のステップST1004と同様に、顔あり画像91に含まれる顔90の人物を認識または分類する(ステップST3003)。図14では、「P1」、「P2」、「P3」、「P4」、・・・といった人物を認識した例を示している。なお、本実施形態において、第2ユーザ画像36Sから顔あり画像91を抽出してから、顔あり画像91に含まれる顔90の人物を認識したが、これに限られない。顔あり画像91の抽出はせずに、第2ユーザ画像36Sの全てに対して人物の認識または分類をしてもよい。
抽出部74は、ステップST3003における人物の認識結果と、情報取得部73からの第1ユーザ12Fの関連人物情報32とに基づいて、顔あり画像91から、第1ユーザ12Fの関連人物45の顔90Rが含まれている顔あり画像91Rを抽出する(ステップST3004)。顔あり画像91Rは、トリミング部76における後述するトリミング処理の対象となる。このため、以下の説明では、顔あり画像91Rを対象画像91Rと表記する。
抽出部74は、ステップST3003で認識した人物の顔90の中に、第1ユーザ12Fの関連人物45の顔90Rと一致する顔90があるか否かを判定する。ステップST3003で認識した人物の顔90の中に、第1ユーザ12Fの関連人物45の顔90Rと一致する顔90があった場合、抽出部74は、当該顔90が含まれている全ての顔あり画像91を抽出する。そして、抽出した顔あり画像91を、対象画像91Rとして扱う。なお、抽出部74は、抽出した顔あり画像91のうち、第1ユーザ12Fの関連人物45の顔90Rと一致する顔90が2つ以上含まれる顔あり画像91を、対象画像91Rとして抽出してもよい。
図14では、ユーザIDが「U1」の第1ユーザ12Fの関連人物情報32に基づいて、第2ユーザ画像36Sである顔あり画像91から、ユーザIDが「U1」の第1ユーザ12Fの、少なくとも2人の関連人物45の顔90Rが含まれている対象画像91Rを抽出する様子を例示している。
抽出部74は、こうして抽出した対象画像91Rをトリミング部76に出力する(ステップST3005)。以上で、抽出部74による抽出処理が終了する。
図15に示すように、第1顔配置マップ85aは、画像36内における2人の人物の顔90の適切な配置位置を表す。第1顔配置マップ85aは、水平方向および垂直方向に配列された複数の分割セル100で構成される。表101の「分割セル座標」に示すように、分割セル100は、水平方向および垂直方向にそれぞれ例えば1024個配列されている。
各分割セル100には、0~1の値をとる評価値が割り当てられている。具体的には、ハッチングのグラデーションで示すように、顔90が配置されるべき分割セル100に対しては、顔90が配置されるべきでない分割セル100と比べて相対的に高い値が割り当てられている。例えば、顔90が配置されるべき、座標(200、300)の分割セル100には、評価値として1が割り当てられている。対して、顔90が配置されるべきでない、座標(1023、1023)の分割セル100には、評価値として0が割り当てられている。
同様にして、図16は、画像36内における3人の人物の顔90の適切な配置位置を表す第2顔配置マップ85bを示す。また、図17は、画像36内における4人以上の人物の顔90の適切な配置位置を表す第3顔配置マップ85cを示す。さらに、図18は、画像36内における1人の人物の顔90の適切な配置位置を表す第4顔配置マップ85dを示す。このように、顔90の数毎に、第1顔配置マップ85a、第2顔配置マップ85b、第3顔配置マップ85c、および第4顔配置マップ85dという複数の顔配置マップ85が用意されている。
第1顔配置マップ85aは、ガウス分布のガウス関数にしたがった以下の式(1)および式(2)に基づいて作成される。式(1)は水平方向に関する評価値、式(2)は垂直方向に関する評価値をそれぞれ表す。第1顔配置マップ85aの各分割セル100に割り当てられる評価値は、これら式(1)および式(2)で得られた、水平方向に関する評価値および垂直方向に関する評価値の積である。
なお、Cはガウス関数の係数、μは平均、σは標準偏差(σ2は分散)である。式(1)においてC、μ、σの下に付されている「21」は、2人の人物の顔90のうちの左から数えて1番目、という意である。同様に、「22」は、2人の人物の顔90のうちの左から数えて2番目、という意である。C、μ、σの値は、例えば、C21=C22=0.9、C=1、μ21=0.3、μ22=0.7、μ=1/3、σ21=σ22=σ=0.15である。
第2顔配置マップ85bは、以下の式(3)および式(4)に基づいて作成される。式(3)は水平方向に関する評価値、式(4)は垂直方向に関する評価値をそれぞれ表す。式(4)は式(2)と同じである。第2顔配置マップ85bの各分割セル100に割り当てられる評価値は、これら式(3)および式(4)で得られた、水平方向に関する評価値および垂直方向に関する評価値の積である。
式(3)においてC、μ、σの下に付されている「31」は、3人の人物の顔90のうちの左から数えて1番目、という意である。同様に、「32」は、3人の人物の顔90のうちの左から数えて2番目、「33」は、3人の人物の顔90のうちの左から数えて3番目、という意である。C、μ、σの値は、例えば、C31=C32=C33=0.9、C=1、μ31=0.25、μ32=0.5、μ33=0.75、μ=1/3、σ31=σ32=σ33=0.1、σ=0.15である。
また、第3顔配置マップ85cは、以下の式(5)および式(6)に基づいて作成される。式(5)は水平方向に関する評価値、式(6)は垂直方向に関する評価値をそれぞれ表す。式(6)は式(2)および式(4)と同じである。第3顔配置マップ85cの各分割セル100に割り当てられる評価値は、これら式(5)および式(6)で得られた、水平方向に関する評価値および垂直方向に関する評価値の積である。
式(5)においてC、μ、σの下に付されている「4」は、4人以上の人物の顔90に関する、という意である。C、μ、σの値は、例えば、C4=C=1、μ4=0.5、μ=1/3、σ4=0.5、σ=0.15である。
また、第4顔配置マップ85dは、以下の式(7)および式(8)に基づいて作成される。式(7)は水平方向に関する評価値、式(8)は垂直方向に関する評価値をそれぞれ表す。式(8)は式(2)、式(4)および式(6)と同じである。第4顔配置マップ85dの各分割セル100に割り当てられる評価値は、これら式(7)および式(8)で得られた、水平方向に関する評価値および垂直方向に関する評価値の積である。
式(7)においてC、μ、σの下に付されている「1」は、1人の人物の顔90に関する、という意である。C、μ、σの値は、例えば、C1=C=1、μ1=0.5、μ=1/3、σ1=σ=0.15である。
このように、顔配置マップ85は、ガウス関数にしたがった式(1)~式(8)に基づいて作成される。このため、顔配置マップ85は、左右対称な評価値の分布を有する。
図19~図25は、トリミング部76において実行される、対象画像91Rから関連人物45の顔90Rを含む領域を切り出すトリミング処理(ステップST400)の手順を示す。トリミング部76は、まず、抽出部74で抽出した対象画像91Rのうちの1枚の対象画像91Rについて、当該対象画像91Rに含まれる関連人物45の顔90Rの数に応じた顔配置マップ85を、顔配置マップセット66の中から選択する(ステップST4001)。
具体的には、トリミング部76は、対象画像91Rに含まれる関連人物45の顔90Rの数が2つであった場合、第1顔配置マップ85aを選択する。対象画像91Rに含まれる関連人物45の顔90Rの数が3つであった場合は、第2顔配置マップ85bを選択する。対象画像91Rに含まれる関連人物45の顔90Rの数が4つ以上であった場合は、第3顔配置マップ85cを選択する。対象画像91Rに含まれる関連人物45の顔90Rの数が1つであった場合は、第4顔配置マップ85dを選択する。
トリミング部76は、最低解像度に合わせて顔配置マップ85を整形する(ステップST4002)。最低解像度は、トリミング処理で切り出した切り出し画像110Eを写真プリントした場合に、商品としての最低限の画質を確保するために必要な解像度である。最低解像度は、例えば画素数で表される。なお、最低解像度は、対象画像91Rの解像度に応じて予め定められてもよい。また、顔位置マップ85を整形する解像度は、最低解像度に限られない。
図21は、ステップST4002の一例を示す。より詳しくは、対象画像91Rの解像度が100dpi×100dpi、最低解像度が500画素×500画素で、100インチ×100インチの第1顔配置マップ85aを整形する場合を例示している。この場合、最低解像度をカバーするために最低限必要な顔配置マップ85のインチ数は、(500×500)/100=2500=50×50である。このためトリミング部76は、100インチ×100インチの第1顔配置マップ85aを、50インチ×50インチに整形する。
トリミング部76は、整形後の顔配置マップ85を、対象画像91Rに適用する。トリミング部76は、図22にも示すように、対象画像91R内における顔配置マップ85の適用位置を変更しつつ、適用位置毎にスコアを算出する(ステップST4003)。トリミング部76は、算出したスコアを適用位置毎に記憶する。
図22では、4人の人物の顔90が写り、かつ左から数えて2番目と3番目の人物が関連人物45である対象画像91Rに、第1顔配置マップ85aを適用した場合を例示している。第1顔配置マップ85aの適用位置が、関連人物45の顔90Rを含む位置でない場合は、当然ながらスコアは0点である。対して、第1顔配置マップ85aの適用位置が、関連人物45の顔90Rを含む位置である場合は、スコアは30点、40点等となる。なお、図22では、他の人物の顔90と区別するため、関連人物45の顔90Rを斜線のハッチングで示している。以降の図も同様である。
図20は、ステップST4003のスコアの算出のより詳しい手順を示す。まず、トリミング部76は、スコアの算出に先立って、対象画像91Rのメイン人物45Mの顔領域の画素値を第1設定値、サブ人物45Sの顔領域の画素値を第2設定値、他の領域の画素値を0にそれぞれ置換する(ステップST40031)。
図23は、表105に示すように、第1設定値として1、第2設定値として0.8を設定した場合を例示している。また、図23は、左から数えて2番目の人物がメイン人物45M、左から数えて3番目の人物がサブ人物45Sであった場合を例示している。この場合、トリミング部76は、メイン人物45Mの顔90Rの領域の画素値を1、サブ人物45Sの顔90Rの領域の画素値を0.8に置換する。また、トリミング部76は、他の領域の画素値を0に置換する。他の領域は、人物の背景の領域、メイン人物45Mおよびサブ人物45Sの胴体の領域、メイン人物45Mでもサブ人物45Sでもない人物の顔90および胴体の領域である。このように、トリミング部76は、メイン人物45Mとサブ人物45Sとで、顔90Rの領域の画素値に置換する設定値を変更することで、関連ランクを加味してスコアを算出していることになる。なお、関連人物45の顔領域に設定される設定値は、関連人物45の顔領域以外の領域に設定される設定値より大きければよい。このため、例えば、メイン人物45Mに対して設定される第1設定値と、サブ人物45Sに対して設定される第2設定値は、同一の値であってもよい。
トリミング部76は、顔配置マップ85の各分割セル100の評価値と、各分割セル100に対応する位置にある、対象画像91Rの画素の画素値とを乗算する(ステップST40032)。そして、乗算結果を積算し、積算結果をスコアとして出力する(ステップST40033)。
適用位置毎にスコアを算出した後、トリミング部76は、顔配置マップ85を拡大する(ステップST4005)。そして、再びステップST4003の処理を実行する。トリミング部76は、顔配置マップ85のサイズが、対象画像91Rのサイズと同じにならないうちは、ステップST4003の処理を繰り返す(ステップST4004でNO)。
図24は、図22と同じく、4人の人物の顔90が写り、かつ左から数えて2番目と3番目の人物が関連人物45である対象画像91Rに、第1顔配置マップ85aを適用した場合を例示している。トリミング部76は、第1顔配置マップ85aを徐々に拡大しつつ、ステップST4003の処理を行う。
顔配置マップ85のサイズが、対象画像91Rのサイズと同じとなった場合(ステップST4004でYES)、トリミング部76は、ステップST4003の処理を終える。そして、記憶したスコアのうちの最高スコアの適用位置で、顔配置マップ85に合わせて対象画像91Rを切り出し、切り出し画像110とする(ステップST4006)。トリミング部76は、全ての対象画像91Rに対して切り出し画像110を生成しないうちは、対象画像91Rを変更したうえで、ステップST4001~ステップST4006の処理を繰り返す(ステップST4007でNO)。なお、本実施形態において、トリミング部76は、顔配置マップ85を徐々に拡大するとしたが、これに限られない。顔配置マップ85の大きさを、特定の画素数もしくは解像度で規定された1つの大きさのみとしてもよい。この場合、1つの大きさの顔配置マップ85についてスコア取得し、記憶したスコアのうちの最高スコアの適用位置で対象画像91Rを切り出し、切り出し画像110としてもよい。
図25は、図22等と同じく、4人の人物の顔90が写り、かつ左から数えて2番目と3番目の人物が関連人物45である対象画像91Rに、第1顔配置マップ85aを適用した場合を例示している。トリミング部76は、スコアが最高点の300点である適用位置で、顔配置マップ85に合わせて対象画像91Rを切り出し、切り出し画像110とする。そして、切り出し画像110を、元の対象画像91Rのサイズに拡大して切り出し画像110Eとする。なお、スコアの最高点が予め定められた閾値未満であった場合は、対象画像91Rの切り出しを中止してもよい。また、本実施形態において、トリミング部76は、スコアが最高点の適用位置で、顔配置マップ85に合わせて対象画像91Rから切り出し画像110を切り出すとしたが、これに限られない。例えば、トリミング部76は、スコアが予め定められた設定値を超える適用位置であって、かつ、顔配置マップ85のサイズが異なる複数の切り出し画像110を切り出してもよい。
全ての対象画像91Rに対して切り出し画像110Eを生成した場合、トリミング部76は、生成した切り出し画像110Eをお勧め画像として出力する(ステップST4008)。以上で、トリミング部76によるトリミング処理が終了する。
図26に示すように、配信制御部77は、切り出し画像110Eとスコアの組を、お勧め画像情報59としてお勧め画像配信要求58の送信元のユーザ端末11に配信する。また、配信制御部77は、例示するように切り出し画像110Eが複数枚ある場合、切り出し画像110Eを、スコアに応じて優先的に表示されるようにする。「スコアに応じて優先的に表示されるようにする」態様の例としては、図26に示すように、スコアが高い切り出し画像110Eの表示順を高くする態様が挙げられる。なお、スコアが高い切り出し画像110Eの表示サイズを、スコアが低い切り出し画像110Eの表示サイズより相対的に大きく表示してもよい。
図27において、ユーザ端末11のストレージデバイス50Bには、画像閲覧AP115が記憶されている。画像閲覧AP115が実行されて、画像閲覧AP115に専用のウェブブラウザが起動されると、ユーザ端末11のCPU52Bは、メモリ51等と協働して、ブラウザ制御部120として機能する。ブラウザ制御部120は、ウェブブラウザの動作を制御する。ブラウザ制御部120は、画像配信サーバ10からの画像ファイル27、およびお勧め画像情報59等を受信する。ブラウザ制御部120は、画像ファイル27の画像36を表示する画像表示画面125(図28参照)、お勧め画像情報59を表示するお勧め画像情報表示画面130(図29参照)といった各種画面を生成し、ディスプレイ54Bに表示する。
また、ブラウザ制御部120は、各種画面を通じて、ユーザ12によって入力デバイス55Bから入力される様々な操作指示を受け付ける。操作指示には、画像配信サーバ10への画像配信指示、お勧め画像配信指示等がある。画像配信指示は、例えば画像閲覧AP115の起動指示が兼ねている。ブラウザ制御部120は、操作指示に応じた要求を画像配信サーバ10に送信する。具体的には、ブラウザ制御部120は、画像配信サーバ10への画像配信指示に応じて、画像配信要求57を画像配信サーバ10に送信する。また、ブラウザ制御部120は、画像配信サーバ10へのお勧め画像配信指示に応じて、お勧め画像配信要求58を画像配信サーバ10に送信する。
図28は、共有フォルダ26内の画像ファイル27に含まれる画像36を表示する画像表示画面125を示す。画像表示画面125には、複数枚の画像36が、例えば撮影日時順に一覧表示される。また、画像表示画面125には、ユーザ12に共有されている共有フォルダ26を示す情報が表示されている。画像表示画面125には、ユーザ12に共有されている共有フォルダ26を示す情報とともに、共有フォルダ26を指定する共有フォルダ指定ボタン126が表示されている。本実施形態において、共有フォルダ指定ボタン126は星形をしているが、特にこれに限らず、いずれの形状であっても良い。画像表示画面125において共有フォルダ指定ボタン126が選択された場合、コンテキストメニュー127がポップアップ表示される。コンテキストメニュー127には、お勧め画像配信指示ボタン128とキャンセルボタン129が表示される。お勧め画像配信指示ボタン128が選択された場合、ブラウザ制御部120にお勧め画像配信指示が入力され、ブラウザ制御部120から画像配信サーバ10にお勧め画像配信要求58が送信される。お勧め画像配信要求58は、指定された共有フォルダ26の情報を含む。キャンセルボタン129が選択された場合は、コンテキストメニュー127の表示が消される。
図29は、お勧め画像情報59を表示するお勧め画像情報表示画面130を示す。お勧め画像情報表示画面130には、切り出し画像110Eがお勧め画像として表示される。切り出し画像110Eは、配信制御部77によってスコアに応じて付された表示順にしたがって表示される。
切り出し画像110Eの横には、符号131でお勧めスコアとして示すように、スコアが表示される。また、切り出し画像110Eの横には、保存ボタン132およびプリント注文ボタン133が表示される。保存ボタン132が選択された場合、切り出し画像110Eが個人フォルダ25に保存される。プリント注文ボタン133が選択された場合、切り出し画像110Eの写真プリントの注文が可能となる。
次に、上記構成による作用について、図30および図31のフローチャートを参照して説明する。作動プログラム65が起動されると、画像配信サーバ10のCPU52Aは、図8で示したように、情報作成部70、要求受付部71、画像取得部72、情報取得部73、抽出部74、RW制御部75、トリミング部76、および配信制御部77として機能される。
図30に示すように、関連人物情報32を作成していない第1ユーザ12Fがいて、当該第1ユーザ12Fの最初の関連人物情報32の作成タイミングであった場合、前回関連人物情報32を作成してから第1設定時間が経過した第1ユーザ12Fがいて、当該第1ユーザ12Fの関連人物情報32の更新タイミングであった場合、もしくは第1枚数の画像ファイル27を新たに送信した第1ユーザ12Fがいて、当該第1ユーザ12Fの関連人物情報32の更新タイミングであった場合(ステップST10でYES)、情報作成部70において、図9~図11で示した情報作成処理(ステップST100A)が実行される。これにより新しい関連人物情報32が作成される。ステップST100Aは、本開示の技術に係る「情報作成ステップ」の一例である。
図31に示すように、要求受付部71においてお勧め画像配信要求58が受け付けられた場合(ステップST20でYES)、画像取得部72から画像DBサーバ20に第2画像取得要求81が送信される(ステップST21)。そして、第2画像取得要求81に応じて画像DBサーバ20から送信された個人フォルダ25内の画像ファイル27および共有フォルダ26内の画像ファイル27が、画像取得部72において取得される(ステップST200)。ステップST200は、本開示の技術に係る「画像取得ステップ」の一例である。
続いて抽出部74において、図12~図14で示した抽出処理(ステップST300)が実行される。これにより第1ユーザ12Fの関連人物45の顔90Rが含まれている第2ユーザ画像36Sが抽出される。ステップST300は、本開示の技術に係る「抽出ステップ」の一例である。
次いでトリミング部76において、図19~図25で示したトリミング処理(ステップST400)が実行される。これにより切り出し画像110Eがお勧め画像として生成される。ステップST400は、本開示の技術に係る「トリミングステップ」の一例である。
切り出し画像110Eは、トリミング部76から配信制御部77に出力される。図26で示したように、切り出し画像110Eは、配信制御部77によって、スコアとともにお勧め画像情報59とされる。また、切り出し画像110Eには、スコアに応じた表示順が付される。お勧め画像情報59は、配信制御部77によって、お勧め画像配信要求58の送信元のユーザ端末11に配信される(ステップST22)。
以上説明したように、画像配信サーバ10のCPU52Aは、情報作成部70と、画像取得部72と、抽出部74と、トリミング部76とを有する。情報作成部70は、第1ユーザ12Fに帰属する第1ユーザ画像36Fであって、顔90が含まれた顔あり画像91を元に、第1ユーザ12Fに関連する関連人物45の情報である関連人物情報32を作成する。画像取得部72は、共有フォルダ26内の画像ファイル27を取得することで、第1ユーザ12Fとは異なる第2ユーザ12Sに帰属する第2ユーザ画像36Sを取得する。抽出部74は、関連人物情報32に基づいて、第1ユーザ12Fの関連人物45の顔90Rが含まれている第2ユーザ画像36Sである対象画像91Rを抽出する。トリミング部76は、関連人物45の顔90Rが含まれている対象画像91Rから、関連人物45の顔90Rを含む領域を切り出し、切り出し画像110Eとする。したがって、第2ユーザ12Sに帰属する第2ユーザ画像36Sから、第1ユーザ12Fの関連人物情報32に基づいて切り出した切り出し画像110を、第1ユーザ12Fに提示することが可能となる。結果として、多くのユーザ12をサービスに呼び込むことが可能となる。
関連人物情報32の作成をユーザ12に頼った場合は、関連人物45の登録作業を面倒と感じて登録を怠るユーザ12がいないとも限らない。こうしたユーザ12に対しては、関連人物情報32に基づく切り出し画像110を提示することができないので、画像配信サーバ10によるサービスの提供者にとっては機会損失となる。しかし、本開示の技術では、ユーザ12に頼ることなく関連人物情報32を作成することができるため、機会損失を防ぐことができる。
情報作成部70は、2人以上の関連人物45を含む関連人物情報32を作成する。抽出部74は、2人以上の関連人物45のうちの少なくとも2人の顔90Rが含まれている対象画像91Rを抽出する。トリミング部76は、少なくとも2人の顔90Rが含まれている対象画像91Rから、少なくとも2人の顔90Rを含む領域を切り出す。このため、カップル、夫婦、家族、クラブ、サークル等を構成する第1ユーザ12Fに対して、例えば第1ユーザ12Fとその家族といった複数人の人物が含まれている、より付加価値の高い切り出し画像110Eを提示することができる。
図26で示したように、配信制御部77は、お勧め画像情報59をユーザ端末11に配信することで、関連人物45の顔90Rが含まれている第2ユーザ画像36Sである対象画像91Rから切り出した切り出し画像110Eを、第1ユーザ12Fに対して提示する。このため、第1ユーザ12Fは、切り出し画像110Eを閲覧することができ、切り出し画像110Eを自分の個人フォルダ25に保存したり、写真プリントの注文をしたりして楽しむことができる。
図25で示したように、トリミング部76は、顔配置マップ85を用いて、関連人物45の顔90Rを含む領域を切り出す。図15~図18で示したように、顔配置マップ85は、画像36内における顔90の配置位置を表す。そして、顔配置マップ85の複数の分割セル100のうち、顔90が配置されるべき分割セル100に対して相対的に高い評価値が割り当てられている。このため、適切な位置に顔90Rが配置された切り出し画像110Eを得ることができ、切り出し画像110Eの付加価値をさらに高めることができる。
図15~図18で示したように、顔配置マップ85は関連人物45の顔90Rの数毎に複数用意されている。トリミング部76は、複数の顔配置マップ85の中から、抽出部74で抽出した対象画像91Rに含まれる関連人物45の顔90Rの数に応じた1つの顔配置マップ85を選択する。このため、関連人物45の顔90Rの数に適合した顔配置マップ85を用いてトリミング処理を行うことができ、切り出し画像110Eの付加価値をさらに高めることができる。
図22および図24で示したように、トリミング部76は、対象画像91R内における顔配置マップ85の適用位置を変更しつつ、適用位置毎に評価値に応じたスコアを算出し、算出したスコアに基づいて関連人物45の顔90Rを含む領域を切り出す。このため、適切な位置に顔90Rが配置された切り出し画像110Eを得ることができ、切り出し画像110Eの付加価値をさらに高めることができる。
図6で示したように、関連人物45は、第1ユーザ12Fとの関連性が相対的に高いメイン人物45Mと、メイン人物45Mよりも第1ユーザ12Fとの関連性が低いサブ人物45Sとを含む。こうして関連人物45を振り分け、第1ユーザ12Fとの関連性の高低を示す関連ランクを付与することによって、図23で示したように、関連ランクを加味してスコアを算出することができる。
図10および図11で示したように、情報作成部70は、顔90が含まれている第1ユーザ画像36Fである顔あり画像91の枚数に基づいて、メイン人物45Mとサブ人物45Sとを振り分ける。また、情報作成部70は、予め定められた設定条件を満たす第1ユーザ画像36Fの枚数に対する、顔90が含まれている顔あり画像91の枚数の割合に基づいて、メイン人物45Mとサブ人物45Sとを振り分ける。このため、明確にメイン人物45Mとサブ人物45Sとを振り分けることができ、関連人物情報32の信頼性を高めることができる。
図26で示したように、配信制御部77は、お勧め画像情報59をユーザ端末11に配信することで、切り出し画像110Eとスコアの組を、第1ユーザ12Fに対して提示する。このため、第1ユーザ12Fは、切り出し画像110Eがどの程度適切な位置に顔90Rが配置された画像であるのかを、スコアによって確認することができる。
また、切り出し画像110Eが複数枚ある場合、複数枚の切り出し画像110Eは、スコアに応じて並べ替えられて、第1ユーザ12Fに対して提示される。このため、第1ユーザ12Fは、スコアが高い切り出し画像110Eを一目で把握することができる。
なお、図10および図11で示した、第1ユーザ画像36Fで認識された人物に対して関連ランクを付与するための選定条件96は、認識した人物毎の枚数に関連する条件、および、認識した人物毎の第1ユーザ画像36Fにおける割合に関連する条件のうちの、少なくとも一方に基づくものであってもよい。また、関連ランクに応じて、枚数に関連する条件、または割合に関連する条件を変えてもよい。例えば、メイン人物45Mの選定条件96である第1選定条件93を枚数に関連する条件とし、サブ人物45Sの選定条件96である第2選定条件94を割合に関連する条件としてもよい。
なお、メイン人物45Mは、顔90を含む顔あり画像91の枚数が最も多い人物に限らない。例えば、顔90を含む顔あり画像91の枚数が予め定められた第3閾値以上(第3閾値≦枚数)の人物を、メイン人物45Mとして選定してもよい。あるいは、第1割合および第2割合といった割合が予め定められた第4閾値以上(第4閾値≦割合)の人物を、メイン人物45Mとして選定してもよい。これらの場合は、メイン人物45Mとして選定される人物が複数人となることもある。
サブ人物45Sも同様に、上記第1実施形態で例示した第2選定条件94にしたがって選定した人物に限らない。例えば、顔90を含む顔あり画像91の枚数が、第3閾値未満、かつ予め定められた第5閾値以上(第5閾値≦枚数<第3閾値)の人物を、サブ人物45Sとして選定してもよい。あるいは、第1割合および第2割合といった割合が、第4閾値未満、かつ予め定められた第6閾値以上(第6閾値≦割合<第4閾値)の人物を、サブ人物45Sとして選定してもよい。
また、割合の算出の元となる「予め定められた設定条件を満たす第1ユーザ画像」は、例示のステップST1003で抽出した顔あり画像91、メイン人物45Mの顔90Rが含まれている顔あり画像91に限らない。例えば全ての第1ユーザ画像36Fを「予め定められた設定条件を満たす第1ユーザ画像」としてもよい。また、第1ユーザ12Fの顔90が含まれる顔あり画像91を「予め定められた設定条件を満たす第1ユーザ画像」としてもよい。こうすることで、第1ユーザ12Fと同じ画像36に収まっていて、親密度が高いと考えられるユーザ12の顔90に基づいて、関連人物情報32を作成することができる。
第1ユーザ12Fとの関連性の高低を示す関連ランクを付与する態様としては、上記第1実施形態のメイン人物45Mとサブ人物45Sに振り分ける態様に限らない。例えば、顔90を含む顔あり画像91の枚数が最も多い人物に関連ランク1を付与し、次に多い人物に関連ランク2を付与し、3番目に多い人物に関連ランク3を付与する等、顔90を含む顔あり画像91の枚数順に関連ランクを付与してもよい。同様に、第1割合等の割合順に関連ランクを付与してもよい。
図32は、上記のようにして関連ランクを付与した場合に、対象画像91Rの画素値を設定値に置換する例を示す。対象画像91Rには、関連ランク1の関連人物45_1、関連ランク2の関連人物45_2、関連ランク3の関連人物45_3のそれぞれの顔90Rが含まれている。また、表135に示すように、関連ランク1の関連人物45_1の顔90Rの領域の設定値として1、関連ランク2の関連人物45_2の顔90Rの領域の設定値として0.8、関連ランク3の関連人物45_3の顔90Rの領域の設定値として0.6、・・・がそれぞれ設定されている。また、他の領域の設定値として0が設定されている。この場合、トリミング部76は、関連人物45_1の顔90Rの領域の画素値を1、関連人物45_2の顔90Rの領域の画素値を0.8、関連人物45_3の顔90Rの領域の画素値を0.6に置換する。また、トリミング部76は、他の領域の画素値を0に置換する。なお、関連人物情報32の関連ランクの数は、1つでもよいし、3つ以上でもよい。言い換えると、関連ランクに対応する設定値の数も1つでもよいし、3つ以上でもよい。同様に、図10および図11で示した、第1ユーザ画像36Fで認識された人物に対して関連ランクを付与するための選定条件96の数も1つでもよいし、3つ以上でもよい。
上記第1実施形態では、対象画像91Rの関連人物45の顔90Rの領域の画素値を正の設定値に置換し、他の領域の画素値を0に置換しているが、これに限らない。関連人物45の顔90Rの領域の中心の領域の画素値のみを正の設定値に置換し、他の領域の画素値を0に置換してもよい。中心の領域は、例えば鼻と眉間を含む楕円形状の領域である。
図33に示すように、関連ランク1の関連人物45_1、関連ランク2の関連人物45_2、・・・というように、関連人物45毎に、スコアに応じて切り出し画像110Eに表示順を付してもよい。
上記第1実施形態では、最低解像度に合わせて顔配置マップ85を整形してから、徐々に顔配置マップ85を拡大しているが、これに限らない。反対に、対象画像91Rに合わせて顔配置マップ85を整形してから、徐々に顔配置マップ85を最低解像度に向けて縮小してもよい。また、対象画像91Rを切り出して切り出し画像110とし、切り出し画像110を元の対象画像91Rのサイズに拡大して切り出し画像110Eとしているが、これに限らない。元の対象画像91Rのサイズではなく、切り出し画像110を予め定められたサイズとしてもよい。予め定められたサイズとは、例えば、写真プリントに応じたサイズである。
なお、関連人物情報32の作成タイミングは、上記で例示したタイミングに限らない。お勧め画像配信要求58を要求受付部71で受け付けた場合に、関連人物情報32を作成してもよい。
[第2実施形態]
上記第1実施形態では、情報作成処理において、個人フォルダ25に含まれる全ての第1ユーザ画像36Fを対象として関連人物情報32を作成しているが、これに限らない。図34および図36に示す第2実施形態のように、関連人物情報32の作成に用いる第1ユーザ画像36Fを、特定の画像に絞ってもよい。
図34は、特定のイベントに関する第1ユーザ画像36Fのみを元に、関連人物情報32を作成する例である。図9および図10で示した、上記第1実施形態の情報作成処理と異なる点について重点的に説明する。この場合の情報作成処理(ステップST100B)は、第1画像取得要求80の送信(ステップST1001)、および個人フォルダ25内の画像ファイル27の取得(ステップST1002)までは、上記第1実施形態の情報作成処理(ステップST100A)と同じである。この場合においては、上記第1実施形態の情報作成処理(ステップST100A)の、画像ファイル27に含まれる第1ユーザ画像36Fから顔あり画像91を抽出する処理(ステップST1003)に代えて、個人フォルダ25内の画像ファイル27の取得後、取得した画像ファイル27に含まれる第1ユーザ画像36Fから、特定のイベントに関するイベント画像140を抽出し(ステップST1010)、イベント画像140から顔あり画像91を抽出する(ステップST1011)。そして、イベント画像140から抽出された顔あり画像91に含まれる顔の人物認識を行う(ステップ1004)。ステップ1004以降の手順は、上記第1実施形態の情報作成処理(ステップST100A)と同様であるため、説明を省略する。
図34では、画像情報35のタグに登録された単語から、結婚式、誕生日、クリスマス等の特定のイベントに関するイベント画像140を抽出する例を示している。イベント画像140としては、人物の顔90が含まれていないもの(例えばタグ「クリスマス」のケーキが写っている写真)も含まれる。情報作成部70は、こうしたイベント画像140の中から、顔90が含まれる顔あり画像91を抽出する。
このように、情報作成部70は、特定のイベントに関する第1ユーザ画像36Fであるイベント画像140のみを元に、関連人物情報32を作成する。特定のイベントには、第1ユーザ12Fとの関連性がより高い人物が参加する。このため、第1ユーザ画像36Fには度々写っているが、実際は第1ユーザ12Fとの関連性が比較的低い人物を、関連人物45として誤認識してしまう事態を避けることができる。関連人物情報32の信頼性を高めることができる。また、全ての第1ユーザ画像36Fを対象とする場合よりも、関連人物情報32の作成に掛かる負荷を減らすことができる。
なお、特定のイベントは、例示の結婚式、誕生日、クリスマス等に限らない。葬式、地元の祭り、旅行、ひな祭り、端午の節句等でもよい。誕生日、クリスマス、ひな祭り、端午の節句といったイベントに関するイベント画像140は、タグに登録された単語ではなく撮影日時から抽出してもよい。また、画像解析によって第1ユーザ画像36Fに写されているイベントを推定し、推定したイベントが特定のイベントであった場合は、当該第1ユーザ画像36Fをイベント画像140として抽出してもよい。
ステップST1010とステップST1011の手順を逆にしてもよい。すなわち、第1ユーザ画像36Fから顔あり画像91を抽出した後、顔あり画像91からイベント画像140を抽出してもよい。
図35は、特定の期間に関する第1ユーザ画像36Fのみを元に、関連人物情報32を作成する例である。図9および図10で示した、上記第1実施形態の情報作成処理と異なる点について重点的に説明する。この場合の情報作成処理(ステップST100C)は、前述の情報作成処理(ステップST100B)と同じく、第1画像取得要求80の送信(ステップST1001)、および個人フォルダ25内の画像ファイル27の取得(ステップST1002)までは、上記第1実施形態の情報作成処理(ステップST100A)と同じである。この場合においては、上記第1実施形態の情報作成処理(ステップST100A)の、画像ファイル27に含まれる第1ユーザ画像36Fから顔あり画像91を抽出する処理(ステップST1003)に代えて、個人フォルダ25内の画像ファイル27の取得後、取得した画像ファイル27に含まれる第1ユーザ画像36Fから特定の期間に関する期間画像142を抽出し(ステップST1020)、期間画像142から顔あり画像91を抽出する(ステップST1021)。そして、期間画像142から抽出された顔あり画像91に含まれる顔の人物認識を行う(ステップ1004)。ステップ1004以降の手順は、上記第1実施形態の情報作成処理(ステップST100A)と同様であるため、説明を省略する。
図35では、画像情報35の撮影日時が2019年の第1ユーザ画像36Fを、期間画像142として抽出する例を示している。情報作成部70は、こうした期間画像142の中から、顔90が含まれる顔あり画像91を抽出する。
このように、情報作成部70は、特定の期間に関する第1ユーザ画像36Fである期間画像142のみを元に、関連人物情報32を作成する。このため、日々変化する第1ユーザ12Fの人間関係を、関連人物情報32に反映させることができる。また、イベント画像140を対象とする場合と同じく、全ての第1ユーザ画像36Fを対象とする場合よりも、関連人物情報32の作成に掛かる負荷を減らすことができる。
なお、特定の期間は、例示の1年間に限らない。5年間、10年間等でもよい。また、スキャナ16で読み取った古い写真等、撮影日時が不明な第1ユーザ画像36Fに対して画像解析を施すことで撮影日時を推定し、推定した撮影日時を元に期間画像142を抽出してもよい。
ステップST1020とステップST1021の手順を逆にしてもよい。すなわち、第1ユーザ画像36Fから顔あり画像91を抽出した後、顔あり画像91から期間画像142を抽出してもよい。
第1割合および第2割合といった割合の算出に用いる「予め定められた設定条件を満たす第1ユーザ画像の枚数」を、イベント画像140の全枚数、または期間画像142の全枚数としてもよい。
例えば直近5年間の特定のイベントに関する第1ユーザ画像36Fを元に関連人物情報32を作成する等、図34に示す態様と、図35に示す態様とを、複合して実施してもよい。
図36に示すように、特定の期間毎に関連人物情報32を作成し、抽出部74において第2ユーザ画像36Sから対象画像91Rを抽出する場合に、関連人物情報32を使い分けてもよい。図36は、年度毎に関連人物情報32を作成した例を示す。この場合、例えば2019年度の関連人物情報32は、抽出部74において2019年度の第2ユーザ画像36Sから対象画像91Rを抽出する場合に用いる。こうすれば、より第1ユーザ12Fの人間関係を反映させた対象画像91Rを抽出することができ、結果として切り出し画像110Eの付加価値をより高めることができる。
なお、上記第1実施形態の、全ての第1ユーザ画像36Fを対象として関連人物情報32を作成する態様において、以下のようにしてもよい。すなわち、第1ユーザ画像36Fから抽出した顔あり画像91の中から、さらにイベント画像140を抽出する。そして、イベント画像140については、顔90を認識した人物毎に、顔90を含む顔あり画像91の枚数を算出するステップST1005において、枚数を1枚ではなく例えば5枚と算出する。あるいは、第1ユーザ画像36Fから抽出した顔あり画像91の中から期間画像142を抽出し、期間画像142については、ステップST1005において例えば5枚と算出する。第1ユーザ画像36Fから抽出した顔あり画像91の中から、イベント画像140および期間画像142を抽出し、ステップST1005において算出するイベント画像140および期間画像142の枚数を1枚より多くしてもよい。こうすれば、全ての第1ユーザ画像36Fを対象としつつも、より信頼性の高い関連人物情報32を作成することができる。
[第3実施形態]
図37および図38に示す第3実施形態では、関連人物45以外の人物の顔90に係るスコアを、関連人物45の顔90Rに係るスコアの正負とは逆の値で算出する。
図37は、第3実施形態において、対象画像91Rの画素値を設定値に置換する様子を示す。対象画像91Rには、計5人の人物の顔90が含まれている。そして、5人の人物のうちの中央に2人並んだ人物が関連人物45で、2人の関連人物45の顔90Rの上部中央に、関連人物45以外の人物の顔90が写っている。表145に示すように、設定値は、関連人物45の顔90Rの領域には1が設定されているのに対して、関連人物45以外の人物の顔90の領域には-1が設定されている。また、他の領域には0が設定されている。この場合、トリミング部76は、関連人物45の顔90Rの領域の画素値を1、関連人物45以外の人物の顔90の領域の画素値を-1、他の領域の画素値を0にそれぞれ置換する。関連人物45以外の人物の顔90の領域の画素値を-1に置換したことで、関連人物45以外の人物の顔90に係るスコアは、関連人物45の顔90Rに係るスコアとは正負が逆の、負の値で算出される。
このように、関連人物45以外の人物の顔90に係るスコアを負の値で算出することで、以下に説明する効果を奏する。まず、上記第1実施形態のように、関連人物45以外の人物の顔90に係るスコアを負の値で算出しない場合を考える。この場合、図37で示した対象画像91Rのような、関連人物45の顔90Rと、関連人物45以外の人物の顔90との距離が相対的に近い構図では、図38Aに示すように、顔配置マップ85aにしたがって切り出した切り出し画像110Eに、関連人物45以外の人物の顔90も一部写り込んでしまい、見栄えがよくない。
対して、関連人物45以外の人物の顔90に係るスコアを負の値で算出すれば、関連人物45以外の人物の顔90を含む適用位置におけるスコアが、関連人物45以外の人物の顔90を含まない適用位置におけるスコアよりも低く算出される。このため、図38Bに示すように、関連人物45以外の人物の顔90を含まない領域を切り出す確率が高くなる。したがって、切り出し画像110Eの見栄えをよくすることができ、切り出し画像110Eの付加価値をより高めることができる。
なお、上記とは逆に、関連人物45の顔90Rの領域に負の値の設定値を設定する等して、関連人物45の顔90Rに係るスコアを負の値で算出する場合、トリミング部76は、関連人物45以外の人物の顔90の領域に正の値の設定値を設定する等して、関連人物45以外の人物の顔90に係るスコアを正の値で算出する。また、関連人物45の顔90Rに係るスコアを負の値で算出する場合、トリミング部76は、スコアが最低点、もしくは、予め定められた設定値以下の適用位置に配置された顔配置マップ85で、切り出し画像110を生成してもよい。
切り出し画像110Eの見栄えをよくする方法としては、以下に示す方法を採用してもよい。すなわち、関連人物45の顔90Rと、関連人物45以外の人物の顔90との距離が、予め定められた第7閾値未満であった場合は、関連人物45の顔90Rの数と、関連人物45以外の人物の顔90の数を合計した数に応じて、使用する顔配置マップ85を選択する。そして、関連人物45以外の人物の顔90の領域に対して、関連人物45の顔90Rと同等の設定値を設定する。
図39は、2人の関連人物45の顔90R1、90R2と、関連人物45以外の1人の人物の顔90との距離が第7閾値pL未満であった場合を例示している。2人の関連人物45の顔90R1、90R2と、関連人物45以外の1人の人物の顔90との距離とは、例えば、関連人物45の顔90R1、90R2の中心をそれぞれc1、c2として、関連人物45以外の1人の人物の顔90の中心をc3とした場合、c1とc3を結ぶ線分L1の長さと、c2とc3を結ぶ線分L2の長さである。トリミング部76は、線分L1と線分L2の少なくとも一方の長さが第7閾値pL未満である場合、関連事物45以外の1人の人物を、以下に説明するように関連人物45と同様に扱ってもよい。
トリミング部76は、関連人物45の顔90Rの数によれば第1顔配置マップ85aを選択すべきところ、関連人物45の顔90Rの数と、関連人物45以外の人物の顔90の数を合計した数である3つに応じて、第2顔配置マップ85bを選択する。こうすれば、関連人物45以外の人物の顔90の全体を、図38Aで示したように一部切られることなく、切り出し画像110E内に収めることができる。なお、図39において、関連人物45と関連人物45以外の人物との距離を、顔90の中心同士を結ぶ線分の長さとしたが、これに限らない。例えば、顔90の重心同士を結ぶ線分の長さ、顔90に含まれる目、鼻等の特定部位同士を結ぶ線分の長さ、顔90の輪郭同士を結ぶ最短の線分の長さの少なくともいずれかとしてもよい。
図37および図38Bで示した態様、図38Aで示した態様、および図39で示した態様を、ユーザ12が選択可能に構成してもよい。また、これら3つの態様でそれぞれ切り出し画像110Eを生成し、3つの切り出し画像110Eをユーザ12に提示してもよい。
[第4実施形態]
上記第1実施形態では、式(1)~式(8)に基づいて予め作成された顔配置マップ85を用いているが、これに限らない。図40~図46に示す第4実施形態のように、顔あり画像91を元に顔配置マップ85を作成してもよい。
図40において、第4実施形態では、画像配信サーバ10のCPU52Aは、上記第1実施形態の各部に加えて、マップ作成部150として機能する。また、画像配信サーバ10には、画像DBサーバ20およびユーザ情報DBサーバ21に加えて、マップDBサーバ151が接続されている。なお、マップDBサーバ151は、画像DBサーバ20およびユーザ情報DBサーバ21の少なくとも一方と同一のDBサーバとして構成されてもよいし、画像配信サーバ10に含まれていてもよい。
マップ作成部150は、ユーザ12毎に顔配置マップ85を作成する。マップ作成部150は、作成した顔配置マップ85をマップDBサーバ151に送信する。マップDBサーバ151はマップDB152を有する。マップDBサーバ151は、マップ作成部150からの顔配置マップ85をマップDB152に蓄積して管理する。マップDB152は、ユーザIDに関連付けて顔配置マップ85を記憶する。
マップ作成部150は、第3画像取得要求153を画像DBサーバ20に送信する。第3画像取得要求153は、顔配置マップ85が作成されていない第1ユーザ12Fの個人フォルダ25内の画像ファイル27の取得を要求するものである。また、第3画像取得要求153は、前回顔配置マップ85を作成してから、予め定められた時間(以下、第2設定時間という)が経過した第1ユーザ12Fの個人フォルダ25内の画像ファイル27の取得を要求するものである。第3画像取得要求153は、顔配置マップ85が作成されていない第1ユーザ12FのユーザID、または前回顔配置マップ85を作成してから第2設定時間が経過した第1ユーザ12FのユーザIDを含む。第3画像取得要求153によって、顔配置マップ85が作成されていない第1ユーザ12Fの個人フォルダ25内の画像ファイル27の取得を要求するタイミングは、例えば、当該第1ユーザ12Fの個人フォルダ25内に格納されている画像ファイル27が、予め定められた枚数以上となったタイミングである。あるいは、当該第1ユーザ12Fが、ユーザ端末11に画像閲覧AP115をインストールしたタイミングでもよい。なお、第2設定時間は、例えば1ケ月、半年、1年等である。予め定められた第2枚数の画像ファイル27を新たに送信した場合に、第3画像取得要求153を送信してもよい。
画像DBサーバ20は、第3画像取得要求153に応じた個人フォルダ25内の、第1ユーザ画像36Fを含む画像ファイル27を画像DB22から読み出し、読み出した画像ファイル27を画像配信サーバ10に送信する。マップ作成部150は、第3画像取得要求153に応じて画像DBサーバ20から送信された、第1ユーザ画像36Fを含む画像ファイル27を取得する。マップ作成部150は、取得した画像ファイル27に含まれる第1ユーザ画像36Fを元に、顔配置マップ85を作成する。顔配置マップ85が作成されていなかった場合、マップDBサーバ151は、マップ作成部150からの顔配置マップ85をマップDB152に新規に登録する。一方、顔配置マップ85が既に作成されていた場合、マップDBサーバ151は、マップDB152に記憶されている顔配置マップ85を、マップ作成部150からの顔配置マップ85に書き換える。また、マップDBサーバ151は、顔配置マップ85をトリミング部76に送信する。
図41~図44は、マップ作成部150において実行される顔配置マップ85を作成するマップ作成処理(ステップST500A)の手順を示す。マップ作成部150は、まず、第3画像取得要求153を画像DBサーバ20に送信する(ステップST5001)。そして、マップ作成部150は、第3画像取得要求153に応じて画像DBサーバ20から送信された個人フォルダ25内の画像ファイル27を取得する(ステップST5002)。
マップ作成部150は、顔認識技術を用いて、取得した画像ファイル27に含まれる第1ユーザ画像36Fから、顔90が含まれる顔あり画像91を抽出する(ステップST5003)。次いで、マップ作成部150は、抽出した顔あり画像91の画質を評価する(ステップST5004)。
図43では、画質の評価結果として画質評価値を算出する場合を例示している。画質評価値は、例えば、顔90の輪郭に対してエッジ検出を行って得られた、顔90の輪郭のブレ度を示す値である。なお、画質評価値は、例えば露出度(白飛び、黒つぶれ)に応じた値であってもよいし、ブレ度、露出度等の画質を表す複数の指標を網羅的に取り込んだ値であってもよい。
マップ作成部150は、評価した画質が設定レベル以上の顔あり画像91を選定する(ステップST5005)。図43では、設定レベルが100であった場合を例示している。この場合、画質評価値が100未満の顔あり画像91は除外される。
マップ作成部150は、ステップST5005で選定した、画質が設定レベル以上の顔あり画像91を元に、顔配置マップ85を作成する(ステップST5006)。
図42は、ステップST5006の顔配置マップ85の作成のより詳しい手順を示す。まず、マップ作成部150は、顔あり画像91の人物の顔90の領域の画素値を1、他の領域の画素値を0にそれぞれ置換する(ステップST50061)。次いで、マップ作成部150は、各顔あり画像91の置換した画素値を、画素毎に積算する(ステップST50062)。マップ作成部150は、画素値の積算値を顔あり画像91の枚数で除算し、これにより得られた数値を顔配置マップ85の評価値とする(ステップST50063)。
マップ作成部150は、2人の人物の顔90が含まれている顔あり画像91から第1顔配置マップ85aを作成する。また、マップ作成部150は、3人の人物の顔90が含まれている顔あり画像91から第2顔配置マップ85bを作成する。さらに、マップ作成部150は、4人以上の人物の顔90が含まれている顔あり画像91から第3顔配置マップ85cを作成する。さらにまた、マップ作成部150は、1人の人物の顔90が含まれている顔あり画像91から第4顔配置マップ85dを作成する。
図44は、2人の人物の顔90が含まれている100枚の顔あり画像91から、第1顔配置マップ85aを作成する例を示している。顔あり画像91において、顔90は、様々な位置に配置されている。このため、ステップST50062において算出される画素値の積算値は、破線の円155内に示すように様々な値をとる。同様に、ステップST50063において算出される評価値も、破線の円156内に示すように様々な値となる。したがって、顔配置マップ85は、上記第1実施形態のように左右対称な評価値の分布とはならず、偏った評価値の分布となる。
マップ作成部150は、こうして作成した顔配置マップ85を、マップDBサーバ151に送信する(ステップST5007)。マップ作成部150は、例えば、第1ユーザ12Fの第1ユーザ画像36Fに基づき作成した顔配置マップ85を、第1ユーザ12FのユーザIDに対応付けてマップDBサーバ151に登録させる。以上で、マップ作成部150によるマップ作成処理が終了する。なお、本実施形態において、マップ作成部150は、評価した画質が設定レベル以上の顔あり画像91を選定するとしたが、これに限らない。例えば、第1ユーザ画像36Fに含まれる顔あり画像91の全てを対象として顔配置マップ85を作成してもよい。
このように、顔あり画像91を元に顔配置マップ85を作成すれば、実際の撮影傾向に適応した顔配置マップ85を作成することができる。また、顔配置マップ85の作成に用いる顔あり画像91を、画質が予め定められた設定レベル以上の画像とするので、顔配置マップ85の信頼性を高めることができる。
顔配置マップ85の作成に用いる顔あり画像91を、第1ユーザ画像36Fとするので、第1ユーザ12Fの撮影傾向に適応した顔配置マップ85を作成することができる。言い換えれば、顔配置マップ85を第1ユーザ12F用にカスタマイズすることができる。
図45および図46は、第1ユーザ12Fによって選択された第1ユーザ画像36Fを、顔配置マップ85の作成に用いる例を示す。この場合のマップ作成処理(ステップST500B)は、第1ユーザ12Fによる選択履歴がある顔あり画像91を選定する(ステップST5010)点が、マップ作成処理(ステップST500A)と異なる。選択履歴は、画像情報35に項目が用意されて記憶される。選択履歴の項目には、例えば、画像投稿に特化したSNS(Social Networking Service)に、第1ユーザ12Fの手でアップロードされた第1ユーザ画像36Fに対して「あり」が記憶される。
図46は、ステップST5002、ステップST5003、およびステップST5010の様子を示す。マップ作成部150は、選択履歴が「あり」の顔あり画像91を選定し、選択履歴が「なし」の顔あり画像91を除外する。
第1ユーザ12Fによって選択された第1ユーザ画像36Fは、第1ユーザ12Fが好む画像である。このため、第1ユーザ12Fによって選択された第1ユーザ画像36Fを選定して顔配置マップ85の作成に用いれば、第1ユーザ12Fが好む顔90の配置位置を反映させた顔配置マップ85を作成することができる。
なお、SNSにアップロードされた第1ユーザ画像36Fを、第1ユーザ12Fによって選択された第1ユーザ画像36Fとしたが、これに限らない。顔配置マップ85の作成に先立って、ユーザ端末11に第1ユーザ画像36Fを一覧表示し、一覧表示された第1ユーザ画像36Fの中から、顔配置マップ85の作成に用いる第1ユーザ画像36Fを第1ユーザ12Fに選択させてもよい。
第1ユーザ画像36Fに限らず、他の画像36を元に顔配置マップ85を作成してもよい。他の画像36としては、例えば共有フォルダ26内の画像ファイル27に含まれる第2ユーザ画像36Sが挙げられる。画像DB22に格納された全画像36を元に顔配置マップ85を作成してもよい。このように、第1ユーザ画像36Fに限らず、他の画像36を元に顔配置マップ85を作成すれば、より一般的な撮影傾向に適応した顔配置マップ85を作成することができる。なお、他の画像36を元に顔配置マップ85を作成する場合も、画質が予め定められた設定レベル以上の顔あり画像91を選定してもよいし、ユーザ12によって選択された顔あり画像91を選定してもよい。
顔あり画像91の枚数が予め定められた閾値未満であった場合は、顔配置マップ85の作成を中止してもよい。この場合は、上記第1実施形態で例示した、式(1)~式(8)に基づいて予め作成された顔配置マップ85を用いる。また、顔あり画像91から、関連人物45の顔90Rが含まれている対象画像91Rを選定し、選定した対象画像91Rを元に顔配置マップ85を作成してもよい。
縦長の画像36用の顔配置マップ85と横長の画像36用の顔配置マップ85とを分けて作成してもよい。また、1:1、4:3、16:9といった画像36のアスペクト比毎に顔配置マップ85を作成してもよい。
結婚式、運動会といったイベント毎に顔配置マップ85を作成してもよい。また、運動会の徒競走等で人物が動いている場合と、集合写真等で人物が静止している場合とで分けて顔配置マップ85を作成してもよい。
関連ランク1が付与された関連人物45_1用、関連ランク2が付与された関連人物45_2用等、関連人物45の関連ランク毎に顔配置マップ85を作成してもよい。
なお、顔配置マップ85の作成タイミングは、上記で例示したタイミングに限らない。お勧め画像配信要求58を要求受付部71で受け付けた場合に、顔配置マップ85を作成してもよい。
画質が予め定められた設定レベル以上の第1ユーザ画像36Fを用いて、関連人物情報32を作成してもよい。この場合、第1割合および第2割合といった割合の算出の元になる「予め定められた設定条件を満たす第1ユーザ画像の枚数」を、画質が予め定められた設定レベル以上の第1ユーザ画像36Fの全枚数としてもよい。
例えば特開2007-272685号公報の方法を用いて、顔配置マップ85を用いずにトリミング処理を実行してもよい。ただし、この場合は、最低解像度よりも低い解像度の切り出し画像110Eが生成されるおそれがある。対して顔配置マップ85を用いれば、スコアの最高点が予め定められた閾値未満であった場合に、対象画像91Rの切り出しを中止することもできるため、最低解像度よりも低い解像度の切り出し画像110Eが生成されるおそれはない。
対象画像91Rを、メイン人物45Mが含まれている対象画像91Rに限定してもよい。また、関連人物情報32をユーザ12が修正可能に構成してもよい。
ユーザグループ28を構成する複数のユーザ12の中に、画像ファイル27は共有フォルダ26に格納していないが、共有フォルダ26へのアクセス権限はもつユーザ12がいても構わない。
画像配信サーバ10を構成するコンピュータのハードウェア構成は種々の変形が可能である。例えば、画像配信サーバ10を、処理能力および信頼性の向上を目的として、ハードウェアとして分離された複数台のサーバコンピュータで構成することも可能である。例えば、要求受付部71、画像取得部72、情報取得部73、および配信制御部77の機能と、情報作成部70、抽出部74、RW制御部75、およびトリミング部76の機能とを、2台のサーバコンピュータに分散して担わせる。この場合は2台のサーバコンピュータで画像配信サーバ10を構成する。
このように、画像配信サーバ10のコンピュータのハードウェア構成は、処理能力、安全性、信頼性等の要求される性能に応じて適宜変更することができる。さらに、ハードウェアに限らず、作動プログラム65等のアプリケーションプログラムについても、安全性および信頼性の確保を目的として、二重化したり、あるいは、複数のストレージデバイスに分散して格納することももちろん可能である。
画像配信サーバ10の各処理部の機能の一部または全部を、ユーザ端末11が担ってもよい。
上記各実施形態において、例えば、情報作成部70、要求受付部71、画像取得部72、情報取得部73、抽出部74、RW制御部75、トリミング部76、配信制御部77、およびマップ作成部150といった各種の処理を実行する処理部(Processing Unit)のハードウェア的な構造としては、次に示す各種のプロセッサ(Processor)を用いることができる。各種のプロセッサには、ソフトウェア(作動プログラム65)を実行して各種の処理部として機能する汎用的なプロセッサであるCPU52Aに加えて、FPGA(Field Programmable Gate Array)等の製造後に回路構成を変更可能なプロセッサであるプログラマブルロジックデバイス(Programmable Logic Device:PLD)、および/またはASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が含まれる。
1つの処理部は、これらの各種のプロセッサのうちの1つで構成されてもよいし、同種または異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGAの組み合わせ、および/または、CPUとFPGAとの組み合わせ)で構成されてもよい。また、複数の処理部を1つのプロセッサで構成してもよい。
複数の処理部を1つのプロセッサで構成する例としては、第1に、クライアントおよびサーバ等のコンピュータに代表されるように、1つ以上のCPUとソフトウェアの組み合わせで1つのプロセッサを構成し、このプロセッサが複数の処理部として機能する形態がある。第2に、システムオンチップ(System On Chip:SoC)等に代表されるように、複数の処理部を含むシステム全体の機能を1つのIC(Integrated Circuit)チップで実現するプロセッサを使用する形態がある。このように、各種の処理部は、ハードウェア的な構造として、上記各種のプロセッサの1つ以上を用いて構成される。
さらに、これらの各種のプロセッサのハードウェア的な構造としては、より具体的には、半導体素子等の回路素子を組み合わせた電気回路(Circuitry)を用いることができる。
本開示の技術は、上述の種々の実施形態および/または種々の変形例を適宜組み合わせることも可能である。また、上記各実施形態に限らず、要旨を逸脱しない限り種々の構成を採用し得ることはもちろんである。さらに、本開示の技術は、プログラムに加えて、プログラムを非一時的に記憶する記憶媒体にもおよぶ。
以上に示した記載内容および図示内容は、本開示の技術に係る部分についての詳細な説明であり、本開示の技術の一例に過ぎない。例えば、上記の構成、機能、作用、および効果に関する説明は、本開示の技術に係る部分の構成、機能、作用、および効果の一例に関する説明である。よって、本開示の技術の主旨を逸脱しない範囲内において、以上に示した記載内容および図示内容に対して、不要な部分を削除したり、新たな要素を追加したり、置き換えたりしてもよいことはいうまでもない。また、錯綜を回避し、本開示の技術に係る部分の理解を容易にするために、以上に示した記載内容および図示内容では、本開示の技術の実施を可能にする上で特に説明を要しない技術常識等に関する説明は省略されている。
本明細書において、「Aおよび/またはB」は、「AおよびBのうちの少なくとも1つ」と同義である。つまり、「Aおよび/またはB」は、Aだけであってもよいし、Bだけであってもよいし、AおよびBの組み合わせであってもよい、という意味である。また、本明細書において、3つ以上の事柄を「および/または」で結び付けて表現する場合も、「Aおよび/またはB」と同様の考え方が適用される。
本明細書に記載された全ての文献、特許出願および技術規格は、個々の文献、特許出願および技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に参照により取り込まれる。