以下、図面を参照して開示の技術の実施形態を詳細に説明する。
〔第1実施形態〕
図1には、本実施形態に係る画像処理装置10が示されている。画像処理装置10は、利用者が指定した画像に対して付加的な画像(例えば広告や何らかの情報を表わす画像等)を重畳する処理を行う。以下、付加的な画像を重畳用画像といい、重畳用画像が重畳される元々の画像を原画像といい、原画像に重畳用画像が重畳された画像を重畳画像という。なお、重畳画像は、例えば、利用者に対して予め定められた手段を用いて提供される(閲覧可能な状態にする)が、該重畳画像を利用者に提供する処理を画像処理装置10とは別の装置で行ってもよいし、画像処理装置10が行ってもよい。本実施形態では、重畳画像を利用者に提供する処理についての説明を省略する。
画像処理装置10は、入力部12、画像選択部14、領域特定部16、重畳用画像選択部18、重畳領域決定部20、重畳部22、出力部24、画像記憶部26、認識結果記憶部28、重畳用画像記憶部30、重畳画像記憶部32、及び画像認識部40を有する。なお、ここでは、画像記憶部26、認識結果記憶部28、重畳用画像記憶部30、及び重畳画像記憶部32が、画像処理装置10に設けられている場合を例に挙げて説明するが、これら記憶部が画像処理装置10とは別の装置に設けられていてもよい。また、本実施形態では、画像認識部40が画像処理装置10内に設けられている場合を例に挙げて説明するが、画像認識部40が画像処理装置10とは別の装置に設けられていてもよい。
画像記憶部26には、原画像の画像データが複数記憶されている。また、画像記憶部26には、原画像記憶部26に画像データが記憶された個々の原画像の属性情報を登録した原画像テーブルも記憶されている。図2に、原画像テーブルの一例を示す。原画像テーブルには、原画像の属性情報として、原画像ID、画像パス、選択用タグ、画像サイズ、及び認識結果テーブルIDの各情報が登録されている。
「原画像ID」は、原画像の各々に付与される識別情報である。「画像パス」は、個々の原画像の画像データが記憶されている記憶領域のアドレスである。「選択用タグ」は、原画像テーブルに登録されている複数の原画像の中から、原画像を選択する際のキーワードとして予め付与されている情報である。選択用タグとして、例えば、原画像に含まれる画像の内容を示す情報が登録されていてもよい。「画像サイズ」は、原画像の大きさを示す情報であって、“横(=水平方向、x軸方向)の画素数×縦(=垂直方向、y軸方向)の画素数”で表わされている。「認識結果テーブルID」は、対応する認識結果テーブルを特定する情報である。本実施形態では、後述するように、原画像毎に、原画像に含まれるオブジェクト(物体、人の顔、文字などの認識対象をいう)を認識する画像認識処理が行われるが、該画像認識処理により得られた認識結果は、認識結果テーブルに登録される。この認識結果テーブルを特定する情報が認識結果テーブルIDである。従って、1つの原画像に対応して、1つの認識結果テーブルが対応付けられ、対応付けられた認識結果テーブルIDが原画像テーブルに登録される。
認識結果テーブルは、画像認識部40によって生成され、認識結果記憶部28に記憶される。図3に、認識結果テーブルの一例を示す。認識結果テーブルには、認識結果を表わす情報として、認識結果ID、カテゴリ、認識内容、位置(左上)、及びオブジェクトサイズの各情報が登録されている。
「認識結果テーブルID」は、認識結果テーブル毎に付与される識別情報である。一方、「カテゴリ」、「認識内容」、「位置(左上)」、及び「オブジェクトサイズ」の各情報は、画像認識部40により原画像から認識されたオブジェクト毎に付与される。
「カテゴリ」は、オブジェクトを認識した認識処理部の種類を示す。本実施形態では、後述するように、複数種類の認識処理部を備えた画像認識部40により画像認識処理が行われ(図5も参照)、各認識処理部により認識される認識対象の種類が異なる。本例では、「カテゴリ」により、オブジェクトを認識した認識処理部が特定されることとなる。例えば、物体を認識対象とする認識処理部(物体認識部42)により認識されたオブジェクトは、カテゴリとして“物体認識”を示す情報が登録される。また、例えば、顔を認識対象とする認識処理部(顔認識部44)により認識されたオブジェクトは、カテゴリとして“顔認識”を示す情報が登録される。また、文字を認識対象とする認識処理部(文字認識部46)により認識されたオブジェクトは、カテゴリとして“テキスト”を示す情報が登録される。「認識内容」は、認識されたオブジェクトの内容を示す情報である。例えば、図3に示す認識結果テーブルには、カテゴリが“物体認識”のオブジェクトが3つ登録されており、これら3つのオブジェクトの認識内容として、各々“家屋”、“自動車”、“人”が登録されている。
「位置(左上)」は、認識されたオブジェクトの原画像における位置を示す情報である。本実施形態では、原画像の左下の頂点をxy座標系の原点(0,0)としたときの、オブジェクトの左上の座標値が「位置(左上)」として登録される。「オブジェクトサイズ」は、オブジェクトの大きさを示す情報であって、“横の画素数×縦の画素数”で表わされている。なお、ここでは、「オブジェクトサイズ」を例えばオブジェクトに外接する矩形領域等のサイズとした例を説明しているが、これに限られるものではなく、個々のオブジェクトの形状及びサイズを表わす情報を認識結果テーブルに格納するようにしてもよい。
重畳用画像記憶部30には、重畳用画像の画像データが複数記憶されている。また、重畳用画像記憶部30には、重畳用画像記憶部30に画像データが記憶されている重畳用画像の各々の属性情報を登録した重畳用画像テーブルも記憶されている。図4に、重畳用画像テーブルの一例を示す。重畳用画像テーブルには、重畳用画像の属性情報として、重畳用画像ID、画像パス、マッチング用タグ、及び画像サイズの各情報が登録されている。
「重畳用画像ID」は、重畳用画像の各々に付与された識別情報である。「画像パス」は、重畳用画像の画像データが記憶されている記憶領域のアドレスである。「マッチング用タグ」は、記憶されている複数の重畳用画像の中から重畳用画像を選択する際のキーワードとして予め付与されている情報である。本実施形態において、「マッチング用タグ」は、原画像テーブルに登録された「選択用タグ」として用いられたキーワードのいずれかに対応するように付与されている。原画像の選択用タグに対応するマッチング用タグが付与された重畳用画像は、該原画像に重畳する画像として後述する重畳用画像選択部18により選択される。「画像サイズ」は、重畳用画像の大きさを示す情報であって、“横の画素数×縦の画素数”で表わされている。本実施形態では、重畳用画像の形状が矩形である場合を例に挙げて説明するが、重畳用画像は矩形でなくてもよい。
重畳画像記憶部32には、重畳画像の画像データが記憶される。
入力部12は、重畳対象の原画像を画像記憶部26から選択するためのキーワードを、画像選択情報として利用者に入力させる。入力部12は、例えば、利用者に画像選択情報の入力を促す画像や音声を出力し、利用者は、該画像や音声に従って、例えばキーボード等の操作部を操作して画像選択情報を入力する。利用者は、画像選択情報を入力することにより原画像を指定することができる。なお、本実施形態では、画像選択情報がキーワードである場合について説明するが、原画像の特徴を示す情報であってもよいし、原画像を特定するための条件を表わす情報であってもよい。
また、入力部12は、重畳対象の原画像から、利用者によって注目される注目領域を特定するためのキーワードを、注目対象に関する情報(注目領域特定情報)として利用者に入力させる。入力部12は、例えば、利用者に注目領域特定情報の入力を促す画像や音声を出力し、利用者は、該画像や音声に従って、例えばキーボード等の操作部を操作して注目領域特定情報を入力する。本実施形態では、注目領域特定情報がキーワードである場合について説明するが、注目領域特定情報は、注目領域の特徴を示す情報であってもよいし、注目領域を特定するための条件を表わす情報であってもよい。なお、画像選択情報が「衛星写真」、注目領域特定情報が「雲」等のように互いに異なるキーワードとなる場合もあれば、画像選択情報及び注目領域特定情報の双方が同じキーワード(例えば「自動車」等)となる場合もある。後者の場合には、注目領域特定情報の入力を省略し、画像選択情報を注目領域特定情報と兼用してもよい。
画像選択部14は、上記入力された画像選択情報に基づいて、画像記憶部26に記憶されている複数の原画像から重畳対象の原画像を選択する。
領域特定部16は、上記入力された注目領域特定情報(或いは画像選択情報)に基づいて、利用者によって注目される注目領域を、画像選択部14で選択された原画像から特定する。
重畳用画像選択部18は、重畳用画像記憶部30に記憶された重畳用画像の中から、原画像に重畳させる重畳用画像を選択する。本実施形態では、重畳用画像選択部18は、画像選択部14で選択された原画像の選択用タグに対応するマッチング用タグが対応付けられた重畳用画像を選択する。
重畳領域決定部20は、原画像における注目領域を除外した領域(以下、非注目領域という)から、重畳用画像選択部18で選択された重畳用画像を重畳する領域である重畳領域を決定する。本実施形態では、原画像に重畳用画像を重畳するときの重畳用画像の倍率を可変としており、重畳領域決定部20は、非注目領域から、重畳用画像を最大サイズ(最大面積)となる倍率で重畳可能な領域を探索し、該領域を重畳領域として決定する。
重畳部22は、画像選択部14で選択された原画像のうち、重畳領域決定部20で決定された重畳領域に、重畳用画像選択部18で選択された重畳用画像を、重畳領域内で最大サイズとなるようにその倍率を変更した状態で重畳し、重畳画像を生成する。
出力部24は、重畳部22で生成された重畳画像を重畳画像記憶部32に出力し、重畳画像記憶部32に記憶させる。重畳画像記憶部32に記憶された重畳画像は、利用者に提供される。
ここで、画像認識部40について説明する。図5は、画像認識部40の構成を示す構成図である。画像認識部40は、認識対象であるオブジェクトの種類に応じた認識処理部を複数備えている。本実施形態では、画像認識部40は、認識処理部として、物体認識部42、顔認識部44、及び文字認識部46の3つの認識処理部を備えている。
物体認識部42は、原画像に含まれる物体の画像を認識し、該物体の種類(内容)、物体の大きさ、及び原画像における位置を示す情報を出力する。顔認識部44は、原画像に含まれる人の顔を認識し、認識した顔の位置及び大きさを示す情報を出力する。文字認識部46は、原画像に含まれる文字を認識し、認識した文字の内容、位置及び大きさを示す情報を出力する。
図6は、画像認識処理の一例を説明する説明図である。図6(A)に示す原画像に対して、物体認識部42、顔認識部44、及び文字認識部46の各々が認識処理を実行する。これにより、図6(B)に示すように、オブジェクトO1〜O5の5つのオブジェクトが認識される。オブジェクトO1〜O3は、物体認識部42により認識された物体オブジェクトである。オブジェクトO4は、顔認識部44により認識された顔オブジェクトである。オブジェクトO5は、文字認識部46により認識された文字オブジェクトである。そして、これら各オブジェクトO1〜O5の各々の情報が、図6(C)に示す認識結果テーブルに登録される。
図7は、文字認識部46の文字認識処理の具体例を説明する説明図である。ここでは、原画像に含まれる文字は、画像化されており、テキスト情報ではない。図7(A)に示す原画像には複数の文字列を表わす画像が含まれているが、これら文字列を表わす画像の各々が文字認識部46により認識対象のオブジェクトとして認識される。例えば、図7(A)に示す原画像内の「八王子市」の文字列を表わす画像(以下、文字画像という)を文字オブジェクトとして文字認識部46が認識すると、該文字オブジェクトの内容「八王子市」、位置及び大きさを示す情報が、文字認識部46から出力される。
なお、文字認識部46は、例えば、該文字画像全体を含む矩形領域を文字オブジェクトの領域として抽出してもよい。この場合、例えば、文字画像に外接する矩形領域を、文字オブジェクトの領域として抽出してもよい。また、図7(B)に示すように、文字画像を含み、該文字画像に外接する矩形領域よりも大きな矩形領域を該「八王子市」の文字画像に紐付け、該紐付けた領域を文字オブジェクトの領域として抽出してもよい。図7(B)では、八王子市だけでなく、「あきる野市」や「奥多摩町」等の他の文字画像についても、同様に、文字画像に外接する矩形領域よりも大きな領域が各文字画像に紐付けられている。従って、図7(B)に示すように、認識された複数のオブジェクトの領域の一部が互いに重なる場合もあり得る。なお、このように紐付けられる領域は矩形でなくてもよく、例えば、円形であってもよい。
なお、文字認識部46だけでなく、物体認識部42で認識される物体オブジェクトについても、物体の画像に外接する矩形領域を物体オブジェクトの領域として抽出してもよいし、該矩形領域よりも大きな矩形領域を物体オブジェクトの領域として抽出してもよい。同様に、顔認識部44で認識される顔オブジェクトについても、顔の画像に外接する矩形領域を顔オブジェクトの領域として抽出してもよいし、該矩形領域よりも大きな矩形領域を顔オブジェクトの領域として抽出してもよい(図6(B)も参照)。以下では、画像認識部40により認識される各オブジェクトの領域の形状が矩形である場合を例に挙げて説明する。
また、本実施形態では、画像認識部40が、3つの認識処理部を備えて構成されている場合を例に挙げて説明するが、画像認識部40を構成する認識処理部の数及び種類は、これらに限定されない。例えば、画像認識の対象である原画像の種類に応じて、原画像に含まれることが想定されるオブジェクトに対応した認識処理部を設けることができる。
なお、画像処理装置10は、例えば図8に示すコンピュータ50で実現することができる。コンピュータ50はCPU(Central Processing Unit)52、ディスプレイ54、キーボード56、通信IF(Interface)58、不揮発性の第1記憶部60、メモリ66、及び不揮発性の第2記憶部64を備え、これらはバス70を介して互いに接続されている。
第1記憶部60には、コンピュータ50を画像処理装置10として機能させるための画像処理プログラム62及び画像認識プログラム群64が記憶されている。CPU30は、画像処理プログラムを第1記憶部60から読み出してメモリ66に展開し、画像処理プログラムが有するプロセスを実行する。
画像処理プログラム62は、入力プロセス、画像選択プロセス、領域特定プロセス、重畳用画像選択プロセス、重畳領域決定部プロセス、重畳プロセス、及び出力プロセスを有する。CPU52は、入力プロセスを実行することで、図1に示す入力部12として動作する。またCPU52は、画像選択プロセスを実行することで、図1に示す画像選択部14として動作する。またCPU52は、領域特定プロセスを実行することで、図1に示す領域特定部16として動作する。またCPU52は、重畳用画像選択プロセスを実行することで、図1に示す重畳用画像選択部18として動作する。またCPU52は、重畳領域決定プロセスを実行することで、図1に示す重畳領域決定部20として動作する。またCPU52は、重畳プロセスを実行することで、図1に示す重畳部22として動作する。またCPU52は、出力プロセスを実行することで、図1に示す出力部24として動作する。
画像認識プログラム群64は、物体認識プログラム、顔認識プログラム、及び文字認識プログラムを有する。CPU52は、物体認識プログラムを実行することで、図5に示す物体認識部42として動作する。CPU52は、顔プログラムを実行することで、図5に示す顔認識部44として動作する。CPU52は、文字認識プログラムを実行することで、図5に示す文字認識部46として動作する。
第2記憶部68には、画像記憶部26、認識結果記憶部28、重畳用画像記憶部30、及び重畳画像記憶部32の各記憶部に相当する記憶領域が設けられている。
通信IF58は、他の装置と通信するためのインタフェースである。
次に本実施形態の作用として、画像処理装置10で行われる画像処理について、図9〜図11のフローチャート及び図12〜図14の説明図を参照して説明する。図9は、画像処理装置10で行われる画像処理の一例を示すフローチャートである。図10は、注目領域を特定する処理(以下、注目領域特定処理という)の一例を示すフローチャートである。図11は、重畳用画像を最大サイズ(最も大きな面積)となる倍率で重畳可能な領域を非注目領域から探索する処理(以下、最大領域探索処理という)の一例を示すフローチャートである。図12は、画像選択情報の入力から注目領域を特定するまでの処理の流れを概念的に説明する説明図である。図13は、重畳用画像、非注目領域、及び重畳領域の具体例を示す図である。図14は、図11に示す最大領域探索処理を模式的に説明する説明図である。
なお、本実施形態において、図9を用いて説明する画像処理が開始される前に、画像認識部40による画像認識が実行され、画像記憶部26に記憶されている各原画像についての認識結果テーブルが既に認識結果記憶部28に記憶されているものとする。
ステップ100において、入力部12は、例えば、利用者に画像選択情報の入力を促す画像をディスプレイ54に表示して、利用者に画像選択情報を入力させる。利用者は、例えばキーボード56等の操作部を操作して画像選択情報を入力する。図12(A)に、ディスプレイ54に表示された入力画面の一例を示す。この入力画面は、画像選択情報としてのキーワードを入力するエリア72と、検索ボタン74とを有する。利用者が例えばキーボード56を操作して、エリア72に画像選択情報としてのキーワードを入力し、その後検索ボタン74をマウス等(不図示)によりクリックすると、画像選択情報の入力が完了し、原画像の検索(選択)が開始される。なお、入力部12は、通信回線やLAN等のネットワークに接続された他の装置と通信し、該他の装置から入力された画像選択情報を取得してもよい。
ステップ102において、画像選択部14は、利用者により入力された画像選択情報に基づいて、画像記憶部26に記憶された複数の原画像から原画像を選択する。例えば、画像選択部14は、画像テーブルを参照し、利用者が入力した画像選択情報に該当する選択用タグを有する原画像を選択する。
なお、画像選択部14は、原画像の選択用タグとして複数のキーワードが対応付けられている場合には、該複数のキーワードの少なくとも1つに上記画像選択情報が該当する場合に、該原画像を選択するようにしてもよい。また、画像選択部14は、利用者が複数のキーワードを画像選択情報とし入力した場合には、該複数のキーワードの少なくとも1つに対応する選択用タグが付与された原画像を選択するようにしてもよい。また、画像選択部14は、該複数のキーワードの全てに対応する選択用タグが付与された原画像を選択するようにしてもよい。また、画像選択部14は、画像選択情報と選択用タグとが類似していれば、完全に一致していなくても、選択用タグが画像選択情報に該当すると判断して原画像を選択するようにしてもよい。
図12(B)に示す原画像テーブルを例に挙げると、利用者が入力した画像選択情報「自動車」に対応する選択用タグを有する原画像は、原画像ID「A01」の原画像であるため、画像選択部14は、原画像ID「A01」の原画像(図12(C))を選択する。なお、利用者が入力した画像選択情報に該当する選択用タグを有する原画像が複数存在する場合には、例えば、該当する複数の原画像をディスプレイ54に一覧表示し、所望の原画像を利用者に選択させることができる。
ステップ104において、入力部12は、例えば、利用者に画像選択情報の入力を促す画像をディスプレイ54に表示して、利用者に注目領域特定情報を入力させる。利用者は、例えばキーボード56等の操作部を操作して注目領域特定情報を入力する。なお、入力部12は、通信回線やLAN等のネットワークに接続された他の装置と通信し、該他の装置から入力された注目領域特定情報を取得してもよい。また、前述したように、画像選択情報が注目領域特定情報として使用される場合には、ステップ104(注目領域特定情報の入力)は省略される。従って、図9ではステップ104を破線で示した。
ステップ106において、領域特定部16は、上記入力された注目領域特定情報(或いは画像選択情報)に基づいて、画像選択部14で選択された原画像から注目領域を特定する。
図10を参照して、注目領域特定処理の具体例を説明する。ステップ200において、領域特定部16は、上記画像選択部14により選択された原画像の画像認識結果(すなわち、認識結果テーブルに登録された情報)を取得する。ステップ202において、領域特定部16は、認識結果テーブルに登録されている各オブジェクトが、注目オブジェクトか否かを判断する。ここで、注目オブジェクトとは、上記注目領域特定情報(或いは画像選択情報)に該当する認識内容を有するオブジェクトをいう。上記説明した例では、認識内容が「自動車」であるオブジェクトが注目オブジェクトとして抽出される(図12(D)も参照)。なお、領域特定部16は、注目領域特定情報(或いは画像選択情報)と認識内容とが類似していれば、完全に一致していなくても、該認識内容が注目領域特定情報(或いは画像選択情報)に該当すると判断し、注目オブジェクトとして抽出するようにしてもよい。
ステップ204では、領域特定部16は、注目オブジェクトが複数か否かを判断する。注目オブジェクトが複数である場合には、領域特定部16は、ステップ206において、注目オブジェクトの領域をマージ(合成)する。ステップ208において、領域特定部16は、該マージした領域を注目領域として特定する。該特定された注目領域を除外した領域が非注目領域となる。
一方、注目オブジェクトが1つである場合には、領域特定部16は、ステップ204において否定判断し、ステップ210において、注目オブジェクトの領域を注目領域として特定する(図12(E)も参照)。該特定された注目領域を除外した領域が非注目領域となる。
ステップ108において、重畳用画像選択部18は、画像選択部14で選択された原画像に重畳させる重畳用画像を重畳用画像記憶部30に記憶された重畳用画像から選択する。本実施形態では、重畳用画像選択部18は、画像選択部14で選択された原画像の選択用タグに対応するマッチング用タグが対応付けられた重畳用画像を選択するものとする。なお、例えば、画像選択部14で選択された原画像の選択用タグとして複数のキーワードが対応付けられている場合には、該複数のキーワードの少なくとも1つに該当するマッチング用タグが対応付けられた重畳用画像を選択してもよい。また、選択用タグとして記憶された複数のキーワードの各々に対応する複数のマッチング用タグが対応付けられている重畳用画像を選択してもよい。また、原画像IDと重畳用画像IDとを予め対応付けて記憶しておき、画像選択部14で選択された原画像の原画像IDに対応付けられた重畳用画像IDが付与された重畳用画像を選択するようにしてもよい。
ステップ110において、重畳領域決定部20は、非注目領域から、重畳用画像選択部18で選択された重畳用画像を重畳する領域である重畳領域を決定する。本実施形態では、重畳領域決定部20は、非注目領域から、重畳用画像を最大サイズ(最大面積)となる倍率で重畳可能な領域を探索し、該領域を重畳領域として決定する。本実施形態では、重畳部22は、重畳用画像に利用者の注意が向きやすいように重畳用画像の倍率を変更し、非注目領域のうち可能な限り大きなサイズに拡大(元の重畳用画像のサイズによっては縮小)して原画像に重畳するようにしている。そこで、重畳領域決定部20は、重畳用画像を最も大きなサイズで重畳できる領域を非注目領域から探索して、この領域を重畳領域として決定する。なお、本実施形態では、重畳部22は、重畳用画像の縦横比(アスペクト比)及び傾きについては、重畳用画像記憶部30に記憶されている元の重畳用画像の状態を維持したまま、倍率のみを変更するものとする。
以下、図11を参照して、最大領域探索処理について具体例を詳細に説明する。本実施形態では、図13(B)に示すように、原画像を格子状に分割し、領域特定部16により抽出された非注目領域から、格子領域を基準とした非注目領域を抽出する。重畳領域決定部20は、格子領域を基準とした非注目領域を対象として、最大領域探索処理を行う。なお、格子領域を小さくするほど、領域特定部16により抽出された非注目領域との誤差は小さくなる。
ステップ300において、重畳領域決定部20は、非注目領域を格子状に分割したときの格子領域を単位として、重畳用画像の縦横比を満たす最小の矩形領域の幅をwidth_baseにセットし、該最小の矩形領域の高さをheight_baseにセットする。
ステップ302では、max_sizeに0をセットする。ここで、max_sizeは、1格子領域を1単位とした最大面積値がセットされる変数である。
ステップ304において、重畳領域決定部20は、非注目領域のうち1つの格子領域を起点として選択する。ここでは、起点を、重畳領域の候補となる矩形領域の左下の頂点である場合を例に挙げて説明するが、これに限定されず、重畳領域の候補となる矩形領域の4つの頂点のいずれかとすることができる。更に、重畳領域決定部20は、widthに0をセットし、heightに0をセットする。
ステップ306において、重畳領域決定部20は、widthにwidth_baseを加算し、heightにheight_baseを加算する。
ステップ308において、重畳領域決定部20は、非注目領域内で、現在選択されている格子領域を起点として、現在の幅(width)を横方向の長さ、高さ(height)を縦方向の長さとする矩形領域を確保できるか否かを判断する。
ステップ310において、重畳領域決定部20は、上記ステップ308における判断の結果、上記矩形領域を確保可能と判断した場合には、ステップ312に進む。
ステップ312において、重畳領域決定部20は、変数sizeに、height×widthの値をセットする。
ステップ314において、重畳領域決定部20は、変数max_sizeと変数sizeを比較し、変数max_sizeが変数sizeより小さいか否かを判断する。重畳領域決定部20は、ステップ314で肯定判断した場合には、ステップ316において、変数max_sizeに変数sizeの値をセットし、この時点の起点の情報も記憶しておき、ステップ306に戻って処理を繰り返す。なお、ステップ316において記憶された起点の情報は、変数max_sizeが次に更新されるまで保持される。一方、重畳領域決定部20は、ステップ314で否定判断した場合には、ステップ316の処理は行わずに、ステップ306に戻る。
一方、ステップ310において、重畳領域決定部20は、上記ステップ308における判断の結果、上記矩形領域を確保不可能と判断した場合には、ステップ318に進む。
ステップ318において、重畳領域決定部20は、非注目領域の全ての格子領域を起点として上記処理を繰り返したか否かを判断する。重畳領域決定部20は、ステップ318において否定判断した場合には、ステップ320において、起点の格子領域を変更し、widthに0をセットし、heightに0をセットして、ステップ306に戻る。
また、重畳領域決定部20は、ステップ318において、肯定判断した場合には、ステップ322において、この時点でmax_sizeの面積を有する矩形領域が、最大面積の矩形領域であると判断する。そして、重畳領域決定部20は、該最大面積の矩形領域を重畳領域として特定する。
図11に示す処理例が図14に模式的に示されている。図14では、非注目領域がグレーで示されている。なお、ここでは図13(A)に示すように、縦横比が「縦(高さ):横(幅)=1:1」の正方形状の重畳用画像を原画像に重畳する場合を例に挙げて説明する。本例では、まず、図14(A)に示すように、起点が選択される。図14(A)において、黒色で塗りつぶされた格子領域が起点である。なお、重畳用画像が正方形であるため、ステップ300においては、width_baseには1がセットされると共に、height_baseには1がセットされる。
そして、図14(B)に示すように、まず、幅1、高さ1の矩形領域の面積1が変数max_sizeにセットされる。次に、width及びheightに1が加算されて、幅及び高さが2とされた場合には、図14(C)に示すように、2×2の正方形状の矩形領域を確保できるため(黒塗りの領域)、矩形面積4が変数max_sizeにセットされる。次に、width及びheightに1が加算されて、幅及び高さが3とされた場合には、図14(D)に示すように、矩形面積9が変数max_sizeにセットされる。
次に、width及びheightに1が加算されて、幅及び高さが4とされた場合には、図14(D)に示すように、非注目領域内において、幅及び高さ4の矩形領域を確保することができない。従って、変数max_sizeは更新されない。次に、width及びheightに1が加算されて、幅及び高さが5とされた場合にも、図14(E)に示すように、非注目領域内において、幅及び高さ5の矩形領域を確保することができない。なお、幅及び高さが4の矩形領域を確保できない場合には、幅及び高さが5の矩形領域も確保できないことが自明であるため、上記図11に示すフローチャートでは、width及びheightを更新せずに、起点を次の格子領域にずらしている。
従って、図14(A)に示す格子領域を起点とした場合には、重畳用画像の縦横比を満たす範囲内で面積が最大だったのは、幅3、高さ3のときの面積9であるため、重畳領域決定部20は、変数max_sizeに9がセットされた状態でwidthを増加し、起点をずらす。重畳領域決定部20は、非注目領域の形がいびつな場合であっても、もれなく探索するため、起点の位置を変えながら、全ての格子領域を起点として探索するようにしている。
このような処理により、図13(A)に示すように、重畳用画像が正方形状であって、図13(B)に示すグレーの領域が格子領域を基準とする非注目領域である場合には、図13(C)に示す黒塗りの領域が重畳領域として抽出され、決定される。なお、図11に示した重畳領域の決定において、例えば、重畳領域の最大サイズを注目領域のサイズ以下にする等のように、何らかの制限を設けてもよい。
なお、上記では重畳用画像が正方形状である場合について説明したが、重畳用画像が幅と高さとが異なる長方形状である場合も、同様に処理すればよい。この場合、図11に例示した処理において、重畳用画像の縦横比が、「幅:高さ=4:3」である場合には、ステップ300において、width_baseには4がセットされると共に、height_baseには3がセットされる。これにより、例えば図15に示す非注目領域内から重畳領域を探索すると、4:3を満たす最小の長方形、2番目に大きな長方形、及び3番目に大きな長方形の3つの長方形が探索される。このうち、最も大きな3番目の長方形の面積108が、変数max_sizeにセットされた状態で上記図11の最大領域探索処理が終了する。従って、3番目の長方形の領域が重畳領域として決定される。
また、ここでは、非注目領域を格子状に分割したときの格子領域を単位として重畳領域探索処理を行う例について説明したが、画素単位で重畳領域探索処理を行うようにしてもよい。
図9において、ステップ110で重畳領域が決定された後は、ステップ112で、重畳部22は、画像選択部14で選択された原画像のうち重畳領域決定部20で決定された重畳領域に、重畳用画像選択部18で選択された重畳用画像を重畳し重畳画像を生成する。このとき、重畳部22は、重畳用画像が上記決定した重畳領域の大きさとなるように、重畳用画像の倍率を変更して重畳領域に重畳する。なお、重畳部22は、元の重畳用画像のサイズが重畳領域のサイズより小さい場合には、縦横同じ拡大率で拡大して重畳する。また、重畳部22は、元の重畳用画像のサイズが決定された重畳領域のサイズより大きい場合には、拡大はしなくてもよく、例えば、縦横同じ縮小率で縮小して重畳するようにしてもよい。更にまた、重畳領域のサイズが注目領域のサイズよりも大きい場合には、注目領域のサイズよりも重畳用画像のサイズが小さくなるように倍率を変更した状態で重畳領域に重畳してもよい。図16(A)に重畳対象の原画像の一例を示し、図16(B)に、(A)の原画像に重畳用画像を重畳した重畳画像の一例を示す。図16(A)に示す自動車のオブジェクトの領域が注目領域である。図16(B)では、該注目領域を除外した非注目領域に重畳用画像が重畳されている。この例では、重畳用画像は注目領域のサイズよりも小さなサイズで重畳されている。
ステップ114において、出力部24は、重畳部22で生成された重畳画像を重畳画像記憶部32に出力し、重畳画像記憶部32に記憶させる。
このように、本実施形態では、利用者の指定に応じて、原画像を選択し、利用者の指定に応じて、利用者によって注目される注目領域を特定し、該注目領域を除外した非注目領域から決定した重畳領域に重畳用画像を重畳するようにした。従って、利用者により利用される画像毎に利用者によって注目される注目領域の位置及び大きさが変動する場合であっても、該画像内の利用者の利便性を損なわない領域に重畳用画像を重畳することができる。
また、本実施形態では、上記画像処理が開始される前に、画像認識部40による画像認識処理が実行される例について説明したが、これに限定されず、ステップ106の注目領域を特定する処理の前に画像認識処理が実行されればよい。従って、例えば、ステップ102の後であってステップ106の前に、ステップ102で選択された原画像について画像認識を行って、オブジェクトを抽出し、認識結果テーブルを作成するようにしてもよい。
また、本実施形態では、非注目領域から面積が最大となる領域を探索して重畳領域として決定する例について説明したが、面積が最大となる領域でなくても、非注目領域のいずれかの領域を重畳領域として決定するようにしてもよい。例えば、非注目領域の予め定められた条件を満たす領域、一例を挙げれば、注目領域に最も近い領域等、を重畳領域として決定してもよい。これによっても、利用者により利用される画像毎に利用者によって注目される注目領域の位置及び大きさが変動する場合であっても、該画像内の利用者の利便性を損なわない領域に重畳用画像を重畳することができる。
更にまた、上記では、領域特定部16が画像選択情報又は注目領域特定情報に基づいて注目領域を特定する例について説明したが、これに限定されない。例えば、領域特定部16が、画像選択情報又は注目領域特定情報に基づいて、利用者によって注目されない非注目領域を特定するものであってもよい。例えば、領域特定部16は、注目オブジェクトを除くオブジェクトの領域及び画像認識部40により認識されなかった領域を抽出し、これら領域をマージした領域を非注目領域として抽出するようにしてもよい。重畳領域決定部20は、領域特定部16により特定された非注目領域から上述したように重畳領域を決定する。
また、上記では、原画像から注目領域を除外した非注目領域とする例について説明したが、例えば、オブジェクトが存在しない領域を非注目領域として特定してもよい。
〔第2実施形態〕
次に開示の技術の第2実施形態を説明する。第2実施形態では、複数の重畳用画像を原画像に重畳する際に、各重畳用画像について重畳領域を決定して原画像に重畳する例について説明する。なお、第2実施形態において、画像処理以外は先に説明した第1実施形態と同一であるので、各部分に同一の符号を付して構成の説明を省略し、以下、本第2実施形態に係る画像処理について説明する。
図17に、重畳用画像テーブルの一例を示す。図17に示す重畳用画像テーブルには、マッチング用タグが互いに等しい重畳用画像が複数(この例では2つ)登録されている。従って、重畳用画像を選択する際に第1実施形態で説明した手法を用いる場合には、この2つの重畳用画像が、自動車という選択用タグが付与された原画像に重畳する重畳用画像として選択されることとなる。また、本実施形態の重畳用画像テーブルには、重畳用画像に対応させて優先度も登録される。優先度は、例えば、重畳用画像の提供者が予め指定することができる。
図18は、第2実施形態に係る画像処理を示すフローチャートである。
ステップ400からステップ408までの処理は、図9を用いて説明したステップ100からステップ108までの処理と同じであるため、説明を省略する。ただし、本実施形態では、ステップ408において重畳用画像が複数選択される場合がある。
ステップ410において、重畳領域決定部20は、ステップ408において、複数の重畳用画像が選択されたか否かを判断する。重畳領域決定部20は、ステップ410において肯定判断した場合には、ステップ412において、優先度の高い重畳用画像から順に、非注目領域内から重畳領域を決定する。
本実施形態でも、重畳領域決定部20は、非注目領域から、重畳用画像を最大サイズとなる倍率で重畳可能な領域を探索し、該領域を重畳領域として決定する。重畳領域の決定方法は、第1実施形態で説明した方法と同様に行えばよいため、ここでは説明を省略する。ただし、ステップ408で選択された複数の重畳用画像のうち、優先度が最も高い重畳用画像を除く他の重畳用画像については、非注目領域内の先に決定された重畳領域と重ならない領域を重畳領域として決定する。すなわち、重畳領域を決定する際に、該重畳領域を決定する重畳用画像より優先度の高い重畳用画像に対して先に決定された重畳領域を非注目領域から除いた領域から、重畳領域を決定する。これにより、優先度の高い重畳用画像ほど大きな面積の重畳領域が割り当てられる。
ステップ414において、重畳部22は、重畳用画像の各々を、各重畳用画像に対して決定された重畳領域の各々に重畳し、重畳画像を生成する。
一方、ステップ410で否定判断された場合には、ステップ416及びステップ418の処理が行われる。なお、ステップ416及びステップ418の処理は、第1実施形態において図9を用いて説明したステップ110及びステップ112の処理と同じであるため、説明を省略する。更に又、ステップ414及びステップ418の後に行われるステップ420の処理も、第1実施形態において図9を用いて説明したステップ114の処理と同じであるため、説明を省略する。
このように、複数の重畳領域の各々に複数の重畳用画像を重畳させる場合であっても、該画像内の利用者の利便性を損なわない領域に各重畳用画像を重畳することができる。
なお、重畳用画像の縦横比を固定とする場合において、原画像に重畳するN個(Nは2以上の整数)の重畳用画像の縦横比が等しい場合には、先に縦横比を満たす範囲内で面積の降順で上位N個の重畳領域を探索し、該重畳領域の情報を保持しておいてもよい。そして、優先度が高い重畳用画像ほどサイズの大きな重畳領域に重畳されるように、各重畳領域を決定するようにしてもよい。
〔第3実施形態〕
次に開示の技術の第3実施形態を説明する。第3実施形態では、1つの重畳用画像を原画像に重畳する際に、非注目領域から複数の重畳領域候補が抽出され、該複数の重畳領域候補の中から1つの重畳領域を決定する例について説明する。なお、第3実施形態において、画像処理以外は先に説明した第1実施形態と同一であるので、各部分に同一の符号を付して構成の説明を省略し、以下、本第3実施形態に係る画像処理について、図19を参照して説明する。図19は、第3実施形態に係る画像処理を示すフローチャートである。
なお、本実施形態においても、図19を用いて説明する画像処理が開始される前に、画像認識部40による画像認識が実行され、画像記憶部26に記憶されている各原画像についての認識結果テーブルが認識結果記憶部28に記憶されているものとする。
ステップ500からステップ508までの処理は、図9を用いて説明したステップ100からステップ108までの処理と同じであるため、説明を省略する。
ステップ510において、重畳領域決定部20は、非注目領域から、重畳用画像を最大サイズ(最も大きな面積)となる倍率で重畳可能な領域を探索し、該領域を重畳領域候補として抽出する。重畳領域候補の探索は、例えば、第1実施形態において図11を用いて説明した方法と同様に行えばよい。なお、ここでは、重畳領域決定部20は、ステップ314での否定判断後ステップ306の処理に戻る前に変数max_sizeと変数sizeとを比較し、両者が等しければ、この時点の起点の情報を追加的に記憶し、変数max_sizeが次に更新されるまで保持する(図示省略)。すなわち、本実施形態では、変数max_sizeと同じ面積を有する矩形領域が複数探索された場合には、該矩形領域の各々の情報が重畳領域候補として保持される。
ステップ512において、重畳領域決定部20は、複数の重畳領域候補が抽出されたか否かを判断する。重畳領域決定部20がステップ512において肯定判断した場合には、ステップ514において、入力部12が、例えば、重畳領域の位置を指定するための位置情報の入力を利用者に促す画像をディスプレイ54に表示して、利用者に該位置情報を入力させる。利用者は、例えばキーボード56等の操作部を操作して位置情報を入力する。
ステップ516において、重畳領域決定部20は、入力された位置情報に基づいて、複数の重畳領域候補の中から、重畳領域を決定する。
一方、重畳領域決定部20は、ステップ512において否定判断した場合には、重畳領域候補は1つであるため、ステップ518において、該重畳領域候補を重畳領域として決定する。
重畳領域が決定した後に行われるステップ520及びステップ522の処理は、第1実施形態において図9を用いて説明したステップ112及びステップ114と同じであるため、ここでは説明を省略する。
このように、本実施形態では、利用者の指定に応じて、複数の重畳領域候補から利用者の指定に応じて重畳領域を決定することができるため、該画像内の利用者の利便性を損なわない領域に重畳用画像を重畳することができる。
なお、上記では、利用者がその都度位置を指定し、該位置に基づいて重畳領域を決定する例について説明したが、これに限定されず、例えば、重畳領域決定部20が、予め定められた条件に基づいて複数の重畳領域候補から重畳領域を決定するようにしてもよい。例えば、注目領域に最も近い重畳領域候補を重畳領域として決定する等の条件が予め設定されていた場合には、該条件に従って、注目領域に最も近い重畳領域候補を重畳領域として決定するようにしてもよい。また、原画像の中心からの距離が最小の位置の重畳領域候補を重畳領域として決定する条件が予め設定されていた場合には、原画像の中心に近い位置の重畳領域候補を重畳領域として決定するようにしてもよい。また、重畳領域を決定するための条件は、利用者が予め設定するようにしてもよいし、重畳用画像を提供した提供者が設定するようにしてもよい。
更にまた、複数の重畳領域候補が抽出される例は、上記で説明した例に限られない。例えば、利用者がオブジェクト毎に優先度を定め、該優先度に応じて注目領域及び非注目領域を特定するケースにおいても、重畳領域候補が複数抽出される場合もある。以下、優先度を用いる場合に行われる画像処理の一例を説明する。図20は、優先度を用いる場合の画像処理のフローチャートである。また、図21は、優先度を用いて注目領域を特定する場合の注目領域特定処理のフローチャートである。
図20のステップ600からステップ602までの処理は、図9を用いて説明したステップ100からステップ102までの処理と同じであるため、説明を省略する。
ステップ604において、入力部12は、例えば、選択した原画像に対応する認識結果テーブルの各オブジェクトに対し、優先度の入力を利用者に促す画像をディスプレイ54に表示して、利用者に該各オブジェクトの優先度を入力させる。利用者は、例えばキーボード56等の操作部を操作して優先度を入力する。また、注目領域特定情報として、重畳用画像の重畳を許可するか否かの重畳許可情報も優先度毎に入力される。
図22(A)は、優先度の指定結果を示す優先度テーブルの一例を示す図である。優先度テーブルは、例えば、第2記憶部68に記憶される。ここで、優先度は0〜2までの3段階で指定されている。0が最も優先度が高く、2が最も優先度が低い。図22(A)に例示した優先度テーブルには、内容が「認識なし」の認識結果が含まれているが、これは、物体認識部42により物体として認識されなかった領域を示している。本例では、実際にオブジェクトが認識されなかった領域も仮想的なオブジェクトとして該優先度テーブルに登録するようにしている。優先度テーブルは、原画像毎且つ利用者毎に生成される。また、図示は省略するが、利用者の指定により、優先度0のオブジェクトの領域は、重畳用画像の重畳が禁止されており、優先度1、2のオブジェクトの領域は、重畳用画像の重畳が許可されているものとする(重畳許可情報)。各オブジェクトの優先度及び重畳許可情報は利用者に応じて異なる。
ステップ608において、領域特定部16は、優先度に応じて、注目領域及び非注目領域を特定する。ここで、図21を参照して、領域特定部16の処理を詳細に説明する。領域特定部16は、ステップ700において、ステップ602で選択された原画像の画像認識結果として対応付けられている認識結果テーブルの情報を取得する。ステップ702において、領域特定部16は、各オブジェクトに対して指定された優先度を優先度テーブルから取得する。ステップ704において、領域特定部16は、同じ優先度の領域(オブジェクト)をマージする。図22(B)にマージ後の各領域の位置及びサイズを登録した領域テーブルの一例を示す。なお、マージ後の領域は矩形に限定されず、矩形以外の複雑な形状を有していてもよい。ステップ706において、領域特定部16は、マージ後の領域のうち優先度が最も高い領域を注目領域として特定し、それ以外の領域の各々を非注目領域として特定する。図22(B)に示す例では、優先度が1の領域と優先度が2の領域の各々が非注目領域となる。なお、ここでは、優先度が最も高い領域を注目領域として特定する例について説明するが、利用者の指定によっては、例えば、優先度が最も高い領域及び優先度が2番目に高い領域を、非注目領域として特定してもよい。
続いて、図20のステップ610において、重畳領域決定部20は、全ての非注目領域のうち、重畳用画像の重畳が許可されている優先度の非注目領域を、処理対象として設定する。ステップ612において、重畳領域決定部20は、処理対象として設定された非注目領域が複数あるか否かを判断する。上記例では、重畳が許可されている非注目領域は、優先度1の非注目領域、及び優先度2の非注目領域の2つであるため、ステップ612では肯定判断される。
重畳領域決定部20は、ステップ612で肯定判断した場合には、ステップ616において、処理対象として設定した非注目領域毎に、重畳用画像を最大サイズで重畳できる領域を、重畳領域候補として抽出する。ステップ616における処理は、非注目領域毎に第1実施形態の図9を用いて説明したステップ110と同様に行えばよいため、ここでは説明を省略する。
ステップ618においては、入力部12が、例えば、複数の重畳領域候補のいずれかの位置を指定するための位置情報の入力を利用者に促す画像をディスプレイ54に表示して、利用者に該位置情報を入力させる。例えば、利用者に対して、図23に示すように非注目領域P02、及び非注目領域P03の各々で抽出された重畳領域候補の位置を表形式で表示するようにしてもよいし、原画像の各重畳領域候補の位置に枠画像を重畳させた画像を表示するようにしてもよい。これに対して、利用者は、例えばキーボード56等の操作部を操作して該複数の重畳領域候補のいずれかの位置を指定するための位置情報を入力する。
ステップ620において、重畳領域決定部20は、入力された位置情報に基づいて、複数の重畳領域候補の中から、重畳領域を決定する。
一方、ステップ612において否定判断された場合には、処理対象として設定された非注目領域は1つであることを示している。従って、重畳領域決定部20は、ステップ614において、該処理対象として設定された非注目領域について、重畳用画像を最大サイズで重畳できる領域を、重畳領域候補として抽出する。ステップ616における処理は、第1実施形態の図9を用いて説明したステップ110と同様に行えばよいため、ここでは説明を省略する。
ステップ614又はステップ620の後(重畳領域が決定した後)に行われるステップ622及びステップ624の処理は、第1実施形態において図9を用いて説明したステップ112及びステップ114と同じであるため、ここでは説明を省略する。
なお、ステップ614及びステップ616においても、図19を参照して説明したように、非注目領域毎に同じ面積の重畳領域候補が複数探索される場合がある。この場合には、図19を参照して説明したように複数の重畳領域候補から重畳領域を決定するようにしてもよい。
なお、本実施形態においても、上記画像処理が開始される前に画像認識部40による画像認識処理が実行される例について説明したが、画像認識処理は図19のステップ506或いは図20のステップ604の処理の前に実行されればよく、上記例に限定されない。
また、第3実施形態で説明した処理内容を、第2実施形態で説明した処理内容に適用してもよい。すなわち、優先度の異なる複数の非注目領域から抽出された複数の重畳領域候補の中から、優先度の高い重畳用画像ほど、大きな重畳領域が割り当てられるように、重畳領域を決定することもできる。
〔第4実施形態〕
次に開示の技術の第4実施形態を説明する。第1実施形態から第3実施形態では、重畳用画像の傾き及び縦横比は変更せずに、倍率のみを変更可能とする例について説明したが、本実施形態では、倍率だけでなく、傾き及び縦横比の少なくとも一方も変更可能とする例について説明する。なお、第4実施形態において、画像処理装置10の構成は、先に説明した第1実施形態と同一であるので、各部分に同一の符号を付して画像処理装置10の構成の説明を省略する。
まず、重畳用画像の倍率及び傾きを変更可能とする場合について説明する。例えば、図24(A)に示す形状及び大きさの非注目領域が領域特定部16により特定されたとする。重畳用画像が、図24(B)に示す形状の画像である場合、重畳用画像の傾きや縦横比を変更せずに、重畳用画像の倍率をその面積が非注目領域内に収まる範囲内で最大となるように変更したとしても、変更後の重畳用画像の面積はそれほど大きくはならない。しかしながら、図24(C)に示すように重畳用画像の傾きを非注目領域の形状に合わせて変更し、重畳用画像の倍率をその面積が非注目領域内に収まる範囲内で最大となるように変更すれば、傾きを変更しない場合に比べてその面積を大きくすることができる。
このように重畳用画像の倍率だけでなく傾きも変更する場合には、重畳領域決定部20は、図25に示すように、非注目領域に対して回転させた(傾きを変更した)格子を重ねたときの各格子領域を起点として、図11を用いて説明した最大領域探索処理を行う。また、重畳領域決定部20は、例えば、…-15°、-10°、-5°、0°、+5°、+10°、+15°…のように、傾き(回転角度)を段階的に変化させ、各回転角度毎に最大領域探索処理を行う。この変化の幅を小さくするほど、探索精度が高まる。
重畳領域決定部20は、このようにして探索した領域の中で最大面積の領域を重畳領域として決定する。重畳部22は、該重畳領域に重畳用画像を重畳して重畳画像を生成するが、このとき、該重畳領域を探索したときの回転角度まで重畳用画像を回転させ、更に重畳用画像が上記決定した重畳領域の大きさとなるよう、重畳用画像の倍率を変更して重畳する。
次に、重畳用画像の倍率及び縦横比を変更可能とする場合について説明する。例えば、図26(A)に示す形状及び大きさの非注目領域が領域特定部16により特定されたとする。重畳用画像が、図26(B)に示す形状の画像である場合、重畳用画像の傾きや縦横比を変更せずに、重畳用画像の倍率をその面積が非注目領域内に収まる範囲内で最大となるように変更したとしても、変更後の重畳用画像の面積はそれほど大きくはならない。しかしながら、図26(C)に示すように重畳用画像の縦横比を非注目領域の形状に合わせて変更し、重畳用画像の倍率をその面積が非注目領域内に収まる範囲内で最大となるように変更すれば、縦横比を変更しない場合に比べてその面積を大きくすることができる。
このように縦横比の変更が可能である場合には、最大領域探索処理において、縦横比を考慮する必要がない。従って、重畳領域決定部20は、例えば、図11に示す最大領域探索処理に代えて、図27に示す最大領域探索処理を行ってもよい。なお、本実施形態においても、図13(B)に示すように、原画像を予め定められた大きさで格子状に分割し、領域特定部16により抽出された非注目領域から、格子領域を基準とした非注目領域を抽出する。重畳領域決定部20は、格子領域を基準とした非注目領域を対象として、最大領域探索処理を行う。
ステップ800において、重畳領域決定部20は、変数max_sizeに1をセットする。ここでは、原画像を予め定められた大きさの格子状に分割したときの各格子領域を単位として表わされる最も小さい面積1が、変数max_sizeの初期値としてセットされる。
ステップ802において、重畳領域決定部20は、非注目領域のうち1つの格子領域を起点として選択する。更に、重畳領域決定部20は、縦方向の変数であるheightに1をセットし、横方向の変数であるwidthに1をセットする(図28(A)も参照)。
ステップ804において、重畳領域決定部20は、非注目領域のうち、現在選択されている格子領域を起点とし、現状の幅(width)を矩形領域の横方向の長さとしたときに、該矩形領域の高さ方向の長さをどれだけ伸ばせるかを探索する。そして、重畳領域決定部20は、探索の結果、伸ばすことができた最大の高さをheightにセットする。
ステップ806において、重畳領域決定部20は、変数sizeに、height×widthの値をセットする。
ステップ808において、重畳領域決定部20は、変数max_sizeと変数sizeを比較し、変数max_sizeが変数sizeより小さいか否かを判断する。重畳領域決定部20は、ステップ808で肯定判断した場合には、ステップ810において、変数max_sizeに変数sizeの値をセットし、この時点の起点の情報も記憶しておき、ステップ812に進む。ここで記憶された起点の情報は変数max_sizeの次に更新されるまで保持される。一方、重畳領域決定部20は、ステップ808で否定判断した場合には、ステップ810の処理は行わずに、ステップ812に進む。
ステップ812において、重畳領域決定部20は、非注目領域内において、幅(width)を伸ばせるか否かを判断する。重畳領域決定部20は、ステップ812で肯定判断した場合には、ステップ814に進む。重畳領域決定部20は、ステップ814において、変数widthに1を加算し、ステップ804に戻って、上記処理を繰り返す。
また、重畳領域決定部20は、ステップ812において、否定判断した場合には、ステップ816において、非注目領域の全ての格子領域を起点として上記処理を繰り返したか否かを判断する。重畳領域決定部20は、ステップ816において否定判断した場合には、ステップ818において、起点の格子領域を変更し、widthに1をセットし、heightに1をセットして、ステップ804に戻る。
重畳領域決定部20は、ステップ816において、肯定判断した場合には、ステップ820において、この時点でmax_sizeの面積を有する矩形領域が、最大面積の矩形領域であると判断する。そして、重畳領域決定部20は、該最大面積の矩形領域を重畳領域として特定する。
図27に示す処理例が図28に模式的に示されている。図28において、非注目領域がグレーで示されている。本例において、まず、図28(A)に示すように、起点が選択される。図28(A)において、黒色で塗りつぶされた格子領域が起点である。ここで、変数max_sizeの初期値として1がセットされる。
そして、図28(B)に示すように、幅1のときの最大面積4が変数max_sizeにセットされる。次に、widthに1が加算されて、幅が2とされた場合には、図28(C)に示すように、最大で2×3の矩形領域を確保できるため(黒塗りの領域)、幅2のときの矩形面積6が変数max_sizeにセットされる。次に、widthに1が加算されて、幅が3とされた場合には、図28(D)に示すように、幅3のときの最大の矩形面積9が変数max_sizeにセットされる。次に、widthに1が加算されて、幅が4とされた場合には、図28(E)に示すように、幅4のときの最大の矩形面積は8であるが、幅3のときの最大の矩形面積9より小さいため、変数max_sizeは変更されない。次に、widthに1が加算されて、幅が5とされた場合には、図28(F)に示すように、幅5のときの最大の矩形面積は5であるが、幅3のときの最大の矩形面積9より小さいため、変数max_sizeは変更されない。
従って、図28(A)に示す格子領域を起点とした場合において、面積が最大だったのは、幅3、高さ3のときの面積9であるため、重畳領域決定部20は、変数max_sizeに9がセットされた状態でwidthを増加し、起点をずらす。重畳領域決定部20は、非注目領域の形がいびつな場合であっても、もれなく探索するため、起点の位置を変えながら、全ての格子領域を起点として探索するようにしている。
このように、この例では、縦横比の制約がないため、非注目領域のうち確保できる最大の矩形領域が探索される。なお、ここでは、非注目領域を格子状に分割したときの格子領域を単位として重畳領域探索処理を行う例について説明したが、画素単位で重畳領域探索処理を行うようにしてもよい。
重畳領域決定部20は、このようにして探索した最大面積の領域を重畳領域として決定する。なお、図27に示した重畳領域の決定において、例えば、重畳領域の最大サイズを注目領域のサイズ以下にする等のように、何らかの制限を設けてもよい。重畳部22は、該重畳領域に重畳用画像を重畳して重畳画像を生成するが、このとき、重畳用画像が上記決定した重畳領域の大きさとなるよう、重畳用画像の縦横比及び倍率を変更して重畳する。なお、重畳領域のサイズが注目領域のサイズよりも大きい場合には、注目領域のサイズよりも重畳用画像のサイズが小さくなるように倍率を変更した状態で重畳領域に重畳してもよい。
なお、画像処理装置10を、傾き、縦横比、及び倍率の全てを変更可能に構成することもできる。この場合には、重畳領域決定部20は、図25を用いて説明したように、非注目領域に対して段階的に格子の傾き(回転角度)を変えつつ、傾き毎に図28を用いて説明した最大領域探索処理を行い、全傾きに亘って最大サイズとなる領域を重畳領域として決定する。
なお、本実施形態においても、第2実施形態で説明したように、原画像に複数の重畳用画像を重畳させる場合には、優先度の高い重畳用画像から順に重畳領域を決定してもよい。また、原画像に重畳する重畳用画像の数をN個(Nは2以上の整数)とした場合に、面積の降順で上位N個の重畳領域を先に探索して、該重畳領域の位置及びサイズの情報を保持しておいてもよい。そして、優先度が高い重畳用画像ほどサイズの大きな重畳領域に重畳されるように、各重畳領域を決定するようにしてもよい。また、第3実施形態で説明したように、優先度の異なる非注目領域から重畳領域候補を抽出して、重畳領域を決定する場合にも、傾き及び縦横比を可変とする本実施形態の処理方法を適用して、重畳領域を決定することができる。
なお、原画像に重畳用画像を重畳すると共にシステム管理側から重畳用画像の提供者側(例えば広告主側)に対して重畳用画像の重畳に係る料金を請求する等のサービスを提供する際に、上記画像処理装置10を適用してもよい。また、このサービスにおいて、重畳用画像の傾き、縦横比、及びサイズを変更可能とする場合、傾き、縦横比、及びサイズ(面積)によって提供者が負担する料金を異ならせてもよい。更に又、重畳用画像の傾き、縦横比、及びサイズを変更可能とする場合、重畳用画像の提供者が、重畳条件として、重畳用画像の傾き、縦横比、及びサイズの少なくとも1つについて許容範囲を指定するようにしてもよい。例えば、画像処理装置10の入力部12が、指定画面をディスプレイ54に表示して、キーボード56等の操作部を提供者が操作することにより、該許容範囲の指定情報を入力させるように構成してもよい。或いは、入力部12が、画像処理装置10とは別の端末装置に通信IF58を介して指定画面を表示させ、重畳用画像の提供者が該端末装置を操作して該指定画面に入力した指定情報を、通信IF58を介して取得してもよい。
図29(A)に、傾き及び縦横比の許容範囲を指定する指定画面80の一例を示す。指定画面80には、重畳用画像の傾きの許容範囲を指定する指定エリア82と、重畳用画像の縦横比の許容範囲を指定する指定エリア84と、が含まれている。
指定エリア82では、「傾き不可」、「±10度」、「±30度」、及び「任意の傾きを許容」、の4つの条件を指定可能である。例えば、提供者が、重畳用画像の回転角度を常に0度として重畳用画像を傾けて原画像に重畳させることを禁止したい場合には、「傾き不可」を指定することができる。また、提供者が、回転角度を−10度から+10度までの範囲内で、重畳用画像の傾きの変更を許可する場合には、「±10度」を指定することができる。±30度も同様である。また、提供者が、傾きに制限を設けたくない場合には、「任意の傾きを許容」を指定することができる。
指定エリア84では、「縦横比固定」、「縦横比±5%変形許容」、及び「縦横比±10%変形許容」の3つの条件を指定可能である。例えば、重畳用画像の提供者が、縦横比を元の重畳用画像の縦横比のまま固定としたい場合には、「縦横比固定」を指定することができる。また、提供者が縦横比を元の重畳用画像の縦横比の−5%から+5%までの変形を許容する場合には、「縦横比±5%変形許容」を指定することができる。ここで、「縦横比−5%」とは、「横の長さ/縦の長さ」が0.95となるように重畳用画像を変形することを意味する。また、「縦横比+5%」とは、「横の長さ/縦の長さ」が1.05となるように重畳用画像を変形することを意味する。また、提供者が縦横比を元の重畳用画像の縦横比の−10%から+10%までの変形を許容する場合には、「縦横比±10%変形許容」を指定することができる。
また、重畳用画像の傾き及び縦横比の許容範囲だけでなく許容サイズも指定する場合の指定画面86を図29(B)に示す。指定画面86には、上記指定エリア82,84と共に、重畳用画像の許容サイズを指定する指定エリア88も設けられている。
指定エリア82では、小、中、大の3つのサイズを指定可能である。重畳用画像の提供者は、重畳用画像をなるべく大きくさせることを希望するのが一般的であるが、例えば、サイズに応じて料金が異なる場合等には、料金を抑えるため、重畳用画像の提供者が重畳用画像のサイズを指定することもあり得る。
なお、小、中、大、という抽象的な項目に対して、予め実際の面積を表わす値や、倍率が対応付けられていてもよい。例えば、「小」に対して面積r1以上r2未満の範囲が対応付けられ、「中」に対して面積r2以上r3未満の範囲が対応付けられ、「大」に対して面積r3以上r4未満の範囲が対応付けられていてもよい。また、面積を表わす単位は、格子領域の数であってもよいし、画素数であってもよい。更に又、「小」に対して倍率s1以上s2未満の範囲が対応付けられ、「中」に対して倍率s2以上s3未満の範囲が対応付けられ、「大」に対して倍率s3以上s4未満の範囲が対応付けられていてもよい。
なお、上記指定画面80、88及び各指定エリア82、84、86は一例であって、重畳条件の指定方法を上記に限定するものではない。
このように重畳用画像の提供者から指定された重畳条件は、重畳用画像テーブルに登録しておくことができる。図30(A)に示すように、重畳用画像IDに対応付けて、重畳条件を特定する重畳条件IDを登録し、図30(B)に示すように、重畳条件テーブルに、重畳条件IDに対応付けて重畳条件を登録しておいてもよい。
重畳領域決定部20は、重畳用画像選択部18により選択された重畳用画像に対応付けて登録されている重畳条件を参照して、該重畳条件を満たす範囲内で最大領域探索処理を実行すればよい。例えば、指定された傾きの許容範囲が±10度の場合には、回転角度を−10度から+10度までの範囲内で段階的に変更して、最大領域を探索すればよい。また、縦横比についても許容範囲が指定されている場合には、縦横比を許容範囲内で段階的に変更して、最大領域を探索すればよい。例えば、縦横比の許容範囲として1.25〜1.40が指定された場合を例に挙げると、元の重畳用画像の形状が「横:縦=4:3」である場合には、「横の長さ/縦の長さ(縦横比)」は1.33となる。重畳領域決定部20は、該重畳用画像の元々の縦横比1.33の矩形領域だけでなく、指定された許容範囲内の縦横比1.25(横:縦=5:4)及び1.40(横:縦=7:5)の各々を満たす矩形領域についても、探索されるように上記最大領域探索処理を実行する。傾き、縦横比、及びサイズの各々の許容範囲が重畳条件として指定されている場合には、重畳領域決定部20は、各条件を満たす範囲内で最大の面積となるように重畳領域を決定すればよい。
ところで、上記各実施形態では重畳用画像の面積が最大となるように重畳領域を決定し、重畳用画像の倍率等を変更して重畳する例について説明したが、重畳用画像の提供者が、面積を多少犠牲にしても傾きや縦横比の変更を小さめにしたいと希望する場合もある。この場合には、重畳領域決定部20は、例えば、まず、面積以外の他の重畳条件を段階的に変更して各条件下で最大面積の領域を探索し、面積が極大となる重畳条件を抽出する。重畳領域決定部20は、該抽出した重畳条件及び該条件の下で探索された最大面積、該他の重畳条件の変更量が0(最小)のときに探索された最大面積、該他の重畳条件の変更範囲内で探索された最大面積のうち最も大きな面積を、該他の重畳条件と共に提示する。重畳用領域の提供者は、提示された面積及び該面積に対応する他の重畳条件の組み合わせの中から1つを選択する。重畳領域決定部20は、選択された組み合わせが示す面積の領域を重畳領域として決定することができる。
一例として、傾きと面積との組み合わせを考える。まず、重畳領域決定部20は、傾きを-90度から+90度までの範囲で(或いは、重畳用画像の提供者から指定された許容範囲内で)段階的に変更し、それぞれの傾きについて図27を用いて説明した最大領域探索処理を行って最大面積を探索する。図31に、探索結果の一例をプロットした図を示す。重畳領域決定部20は、傾きが最小のときの探索結果、傾きに対して面積が極大となったときの探索結果、及び傾きの変更範囲内で面積が最大となったときの探索結果を示す情報を提示する。提示方法は特に限定されないが、例えば、ディスプレイ54に図31に示すグラフを表示してもよいし、表形式で表示してもよい。また、重畳領域決定部20は、画像処理装置10とは異なる別の端末装置に表示するように制御してもよい。重畳用画像の提供者は、該提示された探索結果(組み合わせ)から1つを選択することができる。例えば、キーボード56を操作して、選択してもよいし、上記組み合わせの提示が他の端末装置に表示された場合には、該他の端末装置を操作することによって、希望する組み合わせを選択し、選択結果を通信IF58を介して画像処理装置10に送信してもよい。
重畳領域決定部20は、選択された組み合わせを示す情報を取得し、該組み合わせに対応する矩形領域を、重畳用画像を重畳する重畳領域として決定する。
なお、縦横比及び面積の組み合わせを考える場合も、上記と同様に処理すればよい。更にまた、傾き、縦横比、及び面積の組み合わせを考える場合には、重畳領域決定部20は、傾き、縦横比、及び面積を軸とする3次元状のグラフにおいて面積が極大となった探索結果を抽出し、上述したように提示するようにしてもよい。
なお、ここでは、組み合わせを提示して重畳用画像の提供者に選択させる例について説明したが、これに限定されず、提供者に選択させずに、予め定められた条件を満たす組み合わせを選択して重畳領域を決定するようにしてもよい。予め定められた条件とは、例えば、極大となる組み合わせのうち、最も面積が大きい組み合わせ、或いは最も傾きが小さい組み合わせ、面積が予め定められた値以上で最も傾きが小さい組み合わせ等が挙げられる。
また、傾き、縦横比、及び面積の各々に評価値を付与して、評価値の合計値が最も大きくなる組み合わせを求め、この組み合わせを満たす領域を重畳領域として決定してもよい。なお、評価値は、傾きについては、例えば、傾きが大きくなるほど評価値が小さくなるようにしてもよい。縦横比については、縦横比が1に近いほど評価値が高くなるようにしてもよい。面積については、面積が大きくなるほど評価値が大きくなるようにしてもよい。また、傾き、縦横比、面積の各パラメータに応じて重み付けを変更し、各パラメータの評価値×重み付けの合計値を求め、該合計値が最も大きくなる組み合わせを求め、この組み合わせを満たす領域を重畳領域として決定してもよい。
また、重畳領域決定部20が、上記極大となる組み合わせのうち予め定められた条件を満たす組み合わせを選択する場合において、上記評価値の手法を適用してもよい。すなわち、極大となる組み合わせの各々について上記評価値の合計を求め、該合計値が最も大きくなる組み合わせの領域を重畳領域として決定する等である。
なお、上記各実施形態では、重畳用画像の傾き、縦横比、及び倍率を変更可能に構成したが、これに限定されず、例えば、重畳用画像の色を変更してもよい。重畳用画像が重畳される領域の周辺の色に合わせて重畳用画像が目立つように、変更することにより、より利用者の注意が向きやすくなる。
また、上記各実施形態では、利用者が画像選択情報或いは注目領域特定情報として入力したキーワードに基づいて注目領域の特定を行う例について説明したが、これに限定されない。例えば、インターネット上の中古車販売サイトから利用者に対して画像を配信するサービスに画像処理装置10を適用する場合、該サイトの特徴から、利用者は車に注目することは明らかである。従って、領域特定部16は、原画像のうち車の画像領域を注目領域として特定し、重畳領域決定部20は、該注目領域以外を非注目領域として重畳領域を決定すればよい。この場合には、利用者が中古車販売サイトにアクセスすることにより、該サイトの特徴である「車」を注目領域特定情報として指定したことになる。
また、例えば、入力部12により、ディスプレイ54等の表示手段に複数のカテゴリをツリー状に表示したカテゴリメニューから、利用者にカテゴリを選択させることにより、注目領域特定情報を入力させるようにしてもよい。具体例を挙げれば、利用者が、動物−哺乳類−猫、というツリー状のカテゴリメニューを辿って猫を選択した場合には、領域特定部16は、原画像のうち猫の画像領域を注目領域として特定してもよい。なお、例えば、画像認識部40の認識レベルによっては、カテゴリメニューの中層のレベル「哺乳類」までしか認識されず、哺乳類の種類が区別して認識されない場合には、領域特定部16は、原画像のうち哺乳類の画像領域を注目領域として特定してもよい。
また、上記各実施形態では、重畳用画像を重畳する原画像が静止画である場合を例に挙げて説明したが、原画像が動画であってもよい。原画像が動画の場合には、動画像を構成する各フレームについて、上記実施形態と同様の処理を実施することにより、利用者の利便性を損なうことのない領域に重畳用画像を重畳することができる。なお、動画像の場合には、重畳領域を周知の技術でトラッキング(領域の動きを追跡する)ことで、重畳領域に重畳用画像を重畳させ続けることができる。
更に、上記では画像処理プログラムが第1記憶部60に記憶されている態様を説明したが、画像処理プログラムは、CD−ROMやDVD−ROM、USBメモリ等の可搬型の記録媒体に記録されている形態で提供することも可能である。
なお、画像処理装置10は、例えば半導体集積回路、より詳しくはASIC(Application Specific Integrated Circuit)等で実現することも可能であり、画像処理装置10の各機能部は例えば電子回路等で実現することも可能である。
本明細書に記載された全ての文献、特許出願及び技術規格は、個々の文献、特許出願及び技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に参照により取り込まれる。