以下に、本願に係る画像処理装置、画像処理方法及び画像処理プログラムの各実施形態を図面に基づいて詳細に説明する。なお、この実施形態により本願に係る画像処理装置、画像処理方法及び画像処理プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
〔1.画像処理の一例〕
本願に係る画像処理装置100(図5参照)は、画像データを取得し、取得した画像データに含まれる特徴点をマーカーとして検出する。また、画像処理装置100は、検出したマーカーの位置に所定のオブジェクトを重畳して表示させたり、当該マーカーに付与されたサービス情報等を画像データに表示させてユーザに提供したりといった、AR(拡張現実)に関する画像処理を行う。
具体的には、画像処理装置100は、画像データに含まれる所定の図形のうち、マーカーとして利用するための図形を予め登録する。その後、画像処理装置100は、例えば画像処理装置100を利用するユーザから、マーカーとして検出される図形を含む画像データを受け付ける。画像処理装置100は、受け付けた画像データからマーカーを検出する。そして、画像処理装置100は、当該マーカーに予め設定されている加工情報(例えば、マーカーに重畳させるオブジェクトや、当該マーカーに付与された情報など)に基づいて、画像データを加工する。一例として、画像処理装置100は、受け付けた画像データを、マーカーの位置に新たなオブジェクトを重畳させた新たな画像データに加工する。そして、画像処理装置100は、加工した画像データをユーザに返送する。すなわち、ユーザは、マーカーとして検出される図形を含む画像データを画像処理装置100に送信することで、マーカーとして検出された位置に新たなオブジェクトが加工された画像データを取得することができる。なお、ユーザは、例えば、マーカーとして検出される図形をカメラ等で撮像することにより、加工元となる画像データを取得することができる。
ここで、画像処理装置100は、画像データにおいてマーカーとして検出する図形(特徴点)として、例えばQRコード(登録商標)のように識別子や特徴情報が付与された特徴点を用いるのではなく、画像データに含まれる自然な特徴点をマーカーとして利用することを特徴とする。一例として、画像処理装置100は、画像データに含まれる2つの円の図形をAR処理用のマーカーとして利用する。具体的には、画像処理装置100は、画像データに含まれる2つの円の位置関係、および、2つの円のうち1つの円の径であって、所定の基準に対する径の比率を、マーカーを検出するための特徴点として利用する。これにより、画像処理装置100は、QRコードのような明確にマーカーとして認識される特異な図形ではなく、ユーザにとって違和感なく画像内に溶け込んだ特徴点(実施形態では、2つの円)をマーカーとして利用することができる。
実施形態に係る画像処理装置100が実行するこのような画像処理について、以下、図を用いて詳細に説明する。
まず、図1から図4を用いて、画像処理装置100が利用する画像データ、および、画像処理装置100が実行する画像処理の一例について説明する。図1では、画像処理装置100が利用する画像データについて説明する。図1は、実施形態に係る画像データの一例を示す図(1)である。
図1に示すように、画像処理装置100は、複数の円を画像内に含む画像データP01を処理に利用する。例えば、画像処理装置100は、画像データP01を取得した場合に、画像データP01に含まれる円M01〜M08を検出する。なお、画像データP01に含まれる円であって、実施形態に係る画像処理に用いられる円は、直径と半径とが略同一である真円であるものとする。すなわち、画像処理装置100は、処理に用いる画像として、少なくとも2つの真円を含む画像データを取得する。
図1の例では、画像処理装置100は、画像データP01から、円M01〜M08という8つの真円を検出する。ここで、画像処理装置100は、マーカーとして用いる2円の組合せ(ペア)の指定を受け付ける。例えば、画像処理装置100は、画像処理装置100を管理する管理者による入力に従って、ペアの指定を受け付ける。図1の例では、画像処理装置100は、円M01〜M08のうち、円M01と円M02を、マーカーとして用いるペアとする指定を受け付ける(ステップS01)。なお、画像処理装置100は、ペアの指定を人為的に受け付けず、自動的に指定するようにしてもよい。
さらに、画像処理装置100は、指定されたペアに対して、基準円と変化円の指定を受け付ける。実施形態において、基準円は、変化円を特定するために用いられる基準となる円である。また、変化円は、マーカーとして検出される際に、所定の基準に対する径の比率が算出される円である。すなわち、2円のペアによって構成されるマーカーは、変化円の径の比率を変更することで、異なるマーカーとして検出されることが可能になる。例えば、所定の基準に対する変化円の径の比率が「1」であるペアと、所定の基準に対する変化円の径の比率が「1.05」であるペアとでは、異なるマーカーとして検出される。なお、所定の基準とは、変化円の径の比率を求めることが可能な数値であれば、どのような数値でもよい。実施形態に係る所定の基準の一例は、基準円の径の長さである。
図1の例では、画像処理装置100は、円M01を変化円M011、円M02を基準円M021として指定を受け付けたものとする。この場合、画像処理装置100は、基準円M021と変化円M011との位置関係、および、変化円M011の径の比率を、マーカーとして検出するための特徴情報として登録する。なお、基準円M021と変化円M011との位置関係の検出処理や、変化円M011の径の比率の算出処理の詳細については、後述する。
次に、変化円の径の比率に関して、図2を用いて説明する。図2は、実施形態に係る画像データの一例を示す図(2)である。図2に示す例において、画像データP01が含む変化円M011は、所定の基準に対する変化円の径の比率が「1」であるものとする。また、画像データP02が含む変化円M012は、所定の基準に対する変化円の径の比率が「1.05」であるものとする。また、画像データP03が含む変化円M013は、所定の基準に対する変化円の径の比率が「1.1」であるものとする。
画像処理装置100は、予め画像データP01に基づいて、基準円M021と変化円M011とをマーカーとして検出するペアとして登録しているものとする。さらに、画像処理装置100は、変化円M011の径の比率を変化させた場合に対応するマーカーについても、各々が異なるマーカーとして検出されるように登録することができる。例えば、画像処理装置100は、変化円M011に対して所定の基準に対する変化円の径の比率が「1.05」である変化円M012と、基準円M021とのペアを、基準円M021と変化円M011とのマーカーとは異なるマーカーとして登録できる。また、画像処理装置100は、変化円M011に対して所定の基準に対する変化円の径の比率が「1.1」である変化円M013と、基準円M021とのペアを、基準円M021と変化円M011や、基準円M021と変化円M012とのマーカーとは異なるマーカーとして登録できる。すなわち、画像処理装置100は、変化円の比率ごとに異なるマーカーとしての識別子を設定し、登録する。
例えば、ユーザが、画像データP02を含む画像データを画像処理装置100に送信したとする。この場合、画像処理装置100は、基準円M021と変化円M012の位置関係から、これらが登録済みのマーカーであることを検出する。さらに、画像処理装置100は、変化円M012が有する径の比率に基づいて、かかるマーカーに設定された識別子を検出する。すなわち、画像処理装置100は、変化円M012が有する径の比率に基づいて、かかるマーカーを一意に特定することができる。このことは、画像データに含まれる被写体(ここでは、猫のイラスト)の類似性から、ユーザ(人間)からは同じ画像と認識されることが想定される画像データP01、画像データP02、画像データP03であっても、画像処理装置100によれば、それぞれの画像から、異なるマーカーとして検出可能であることを意味する。
なお、このように比率が変わるマーカーに関して、画像処理装置100は、全ての画像データを取得して、登録することを要しない。すなわち、画像処理装置100は、一枚の画像データP01から抽出した2つの真円のうち、一つを変化円として設定した場合には、かかる変化円の径の比率の設定を受け付けるだけで、各々の比率を有する変化円と基準円のペアを識別可能なマーカーとして登録することができる。
次に、図3を用いて、実際に画像処理装置100がマーカーを検出する処理について説明する。図3は、実施形態に係る検出処理の一例を示す図である。図3では、画像データP01、画像データP02、画像データP03が全て含まれる画像データP10について、画像処理装置100がマーカーを検出する処理を行った場合について示している。
画像処理装置100は、ユーザから、画像データP01、画像データP02、画像データP03に対応する画像が含まれる画像データP10を受け付ける。図3の例において、画像データP01、画像データP02、画像データP03に対応する画像とは、それぞれ対応する画像データが紙にプリントアウトされたものである。例えば、ユーザは、それらを机上に置いてデジタルカメラ等で撮像することによって、画像データP10を作成するものとする。
ここで、真円が撮像される場合には、カメラが真円を真正面から撮像するなどの特殊な例を除き、撮像された画像では真円が楕円として表される。例えば、図3に示すように、基準円M021や、変化円M011や、変化円M012や、変化円M013は、画像データP10において、楕円として表される。
そこで、画像処理装置100は、ユーザから画像を受け付けた場合、まず当該画像に含まれる、楕円を含む円形の図形を検出する。図3の上図に示すように、画像処理装置100は、画像データP10に含まれる円を検出する。なお、画像処理装置100は、マーカーとして検出する基準円M021や変化円M011以外にも、円として判定可能な図形であれば、円として検出する。
続いて、画像処理装置100は、検出した複数の円の各々を組み合わせて、ペアを作成する。そして、画像処理装置100は、各ペアの位置関係を判定する。かかる判定処理において、画像処理装置100は、処理対象となる画像データに対して射影変換処理を行う。例えば、画像処理装置100は、処理対象とする2つの楕円の楕円パラメータ(例えば、楕円の長径と短径の長さ、および、長径と短径を延長した線分)に基づいて、当該楕円を真正面から見た真円となるよう射影変換を行う。かかる射影変換処理を通じて、画像処理装置100は、画像データP10に含まれる全ての円のうち、マーカーとして登録済みの位置関係にあるペアを検出する(ステップS02)。
図3の下図では、画像データP10において、画像処理装置100がマーカーとして検出したペアを示している。図3の下図に示すように、画像処理装置100は、ペアの位置関係から、基準円M021と変化円M011、基準円M021と変化円M012、基準円M021と変化円M013のそれぞれのペアを検出する。
また、図3の下図に示すように、画像処理装置100は、基準円M021と変化円M011においては、変化円M011の径の比率が、所定の基準に対して1(100%)であると判定する。さらに、画像処理装置100は、基準円M021と変化円M012においては、変化円M012の径の比率が、所定の基準に対して1.05(105%)であると判定する。さらに、画像処理装置100は、基準円M021と変化円M013においては、変化円M013の径の比率が、所定の基準に対して1.1(110%)であると判定する。
このように、画像処理装置100によれば、予め画像に含まれる2円をマーカーとして登録しておくことで、変化円の径の比率を変えただけで識別可能なマーカーを複数設定することができる。言い換えれば、画像処理装置100によれば、画像に含まれる図柄をほとんど変化させることなく、画像に含まれる円の径を変化させるだけで、異なるマーカーとして識別させることのできるマーカーを複数設定することができる。
また、画像処理装置100は、画像データ内に含まれる各々の楕円について射影変換処理を行うことにより、予めマーカーとして登録されていた2つの円のペアを適切に検出することができる。すなわち、画像処理装置100によれば、マーカーとして検出されるための画像が様々な角度から撮像されたとしても、その画像データからマーカーを検出することができる。これにより、画像処理装置100は、様々な状況に対してロバストな画像処理(安定性のある画像処理)を行うことができる。このような処理について、実際にユーザが画像処理装置100を利用する場合の一例について、図4を用いて説明する。
図4は、実施形態に係る画像処理の一例を示す図である。図4では、画像処理システム1において、画像処理が行われる一連の流れについて説明する。図4に示すように、実施形態に係る画像処理システム1には、ユーザ端末10と、画像処理装置100とが含まれる。ユーザ端末10と画像処理装置100とは、図示しないネットワークN(例えば、インターネット)を介して互いに通信可能に接続される。なお、画像処理システム1に含まれる各装置の台数は、図4に示した例に限られない。例えば、画像処理システム1には、複数台のユーザ端末10が含まれてもよい。
ユーザ端末10は、マーカーを利用した画像の加工や、マーカーを利用した情報提供サービスを画像処理装置100に要求するユーザによって利用される情報処理装置である。例えば、ユーザ端末10は、スマートフォン等の携帯電話機や、タブレット端末等により実現される。なお、ユーザ端末10は、デスクトップ型PC(Personal Computer)や、ノート型PC、PDA(Personal Digital Assistant)等であってもよい。また、ユーザ端末10は、被写体を撮像するための撮像機能(例えば、カメラアプリ)や、撮像に利用されるレンズ等を有していてもよい。また、以下では、ユーザをユーザ端末10と読み替える場合がある。例えば、「ユーザが所定の図形を撮像する」とは、実際には、「ユーザが利用するユーザ端末10が所定の図形を撮像する」ことを意味する場合がある。
実施形態において、ユーザ端末10を利用するユーザは、例えば、マーカーとして登録された図形を撮像することにより、画像処理装置100から種々のサービスを受けるユーザである。具体的には、ユーザは、例えば街中や社内に掲示された図形を撮像し、撮像によって取得された画像データを画像処理装置100に送信することで、種々のサービスを受けることができる。
画像処理装置100は、実施形態に係る画像処理を実行するサーバ装置である。具体的には、実施形態に係る画像処理装置100は、マーカーとして登録されている図形が含まれる画像データをユーザから取得する。そして、画像処理装置100は、画像データ内に含まれる図形(特徴点)を、画像処理用のマーカーとして検出する。そして、画像処理装置100は、検出したマーカーに設定されている所定の加工処理を実行する。以下、画像処理装置100が行う画像処理について、流れに沿って説明する。
まず、ユーザは、画像処理の元となる画像データを作成する。例えば、ユーザは、マーカーとして検出されるための図形である基準円M021と変化円M011とを含む画像データP01を含む画像データを作成する。例えば、当該マーカーを含む画像データP01に対応する画像が、任意の場所に掲示されているポスター等である場合には、ユーザは、当該ポスターを撮像すること等により、マーカーを含む画像データである画像データP11を作成することができる(ステップS11)。このようなユーザの操作により、ユーザ端末10は、画像データP11を取得する。
続いて、ユーザ端末10は、ユーザの操作に従って、画像データP11を画像処理装置100に送信する(ステップS12)。例えば、ユーザ端末10は、画像処理装置100によって実行される画像処理サービスを提供するウェブページにおいて、画像データP11をアップロードすることにより、画像データP11の画像データを送信する。
画像処理装置100は、画像内に、少なくとも2つの円の図形が含まれる画像データP11をユーザ端末10から受け付ける。画像処理装置100は、受け付けた画像データP11に、マーカーとして登録済みの図形が含まれているかを検出する。言い換えれば、画像処理装置100は、画像データP11に対してマーカーの検出処理を実行する(ステップS13)。図3を用いて説明したように、画像処理装置100は、画像内の円状の図形を複数抽出し、そのうち、マーカーとして予め登録されているペアと同じ位置関係にあるペアを検出する。また、画像処理装置100は、位置関係に基づいてペアが検出された場合には、変化円の径の比率を算出する。そして、画像処理装置100は、径の比率に基づいてマーカーを識別することで、画像データP11に含まれるマーカーを一意に特定する。
続いて、画像処理装置100は、特定したマーカーに設定されている加工情報を参照する。そして、画像処理装置100は、画像データP11に含まれるマーカーに対して、設定された加工情報を付与する。言い換えれば、画像処理装置100は、特定されたマーカーに対応するサービスであって、ユーザに提供するサービスの情報を画像データP11に付与する(ステップS14)。
図4の例では、画像処理装置100は、サービスとして、マーカーを利用した道案内サービスを提供しているものとする。この場合、画像処理装置100は、画像データP11に含まれているマーカーを特定し、当該マーカーに設定された情報を画像データP11に付与することで、新たな画像データP111に加工する。
具体的には、画像処理装置100は、図4に示すように、画像データP11において特定されたマーカーの位置にAR処理を行い、道案内の矢印を付与する。図4において、画像データP111には、画像データP11に比べて、矢印A01、矢印A02および矢印A03が追加されている。また、画像データP111には、矢印A03の近傍に「Room 102」といった文字が追加されている。
例えば、画像処理装置100は、基準円M021と変化円M011の位置関係に基づいて、矢印A01を付与する。また、画像処理装置100は、画像データP11内における矢印A01との直角方向に、矢印A02を付与する。さらに、画像処理装置100は、矢印A01と矢印A02とから特定される平面に対する法線方向について、矢印A03を付与する。このことは、画像処理装置100に、画像データP01が掲示される位置を示す位置情報が予め登録されており、かつ、画像データP11に含まれるマーカーに対して道案内として重畳表示する内容(図4に示す一例では、画像データP01が掲示されている場所から法線方向に、「Room 102」という部屋が存在することを示す情報等)が登録されていることを示している。
なお、画像処理装置100は、画像データP01に含まれるマーカーが、変化円M011ではなく、変化円M012によって構成されていた場合には、変化円M011の場合とは異なる情報(例えば、違う向きの矢印や、違う部屋番号を示す情報など)を画像データP11に付与することもできる。
そして、画像処理装置100は、加工済みの画像データである画像データP111をユーザ端末10に送信する(ステップS15)。ユーザ端末10は、画像データP111を受信する。そして、ユーザは、画像データP111に付与された情報を利用する(ステップS16)。すなわち、ユーザは、画像データP11を撮像して画像処理装置100に送信して画像データP111の返送を受けることにより、現実世界において画像データP11を見ただけでは得られない道案内情報を、画像処理装置100のAR処理によって、ユーザ端末10を介して取得することができる。
上述してきたように、実施形態に係る画像処理装置100は、円として抽出可能な図形を少なくとも2つ含んだ画像データを受け付ける。そして、画像処理装置100は、受け付けられた画像データに含まれる2つの円のペアから算出されるパラメータと、画像処理に用いられるマーカーとして予め登録済みである2つの真円のペアから算出されるパラメータとを照合することによって、当該画像データに含まれる2つの円のペアをマーカーとして特定する。
このように、実施形態に係る画像処理装置100は、画像に含まれる2円を、所定の画像処理で利用するマーカーとして特定することができる。このため、画像処理装置100によれば、QRコードのような特異なマーカーを画像データ内に含ませることなく、AR処理等の画像処理を実行することができる。すなわち、画像処理装置100は、画像処理において、違和感なくマーカーが含まれた画像データを利用することができる。
〔2.画像処理装置の構成〕
次に、図5を用いて、実施形態に係る画像処理装置100の構成について説明する。図5は、実施形態に係る画像処理装置100の構成例を示す図である。図5に示すように、画像処理装置100は、通信部110と、記憶部120と、制御部130とを有する。
(通信部110について)
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部110は、図示しないネットワークNと有線又は無線で接続され、ユーザ端末10との間で情報の送受信を行う。
(記憶部120について)
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。図5に示すように、記憶部120は、マーカー情報記憶部121と、加工情報記憶部122とを有する。
(マーカー情報記憶部121について)
マーカー情報記憶部121は、画像処理装置100に登録されたマーカーに関する情報を記憶する。ここで、図6に、実施形態に係るマーカー情報記憶部121の一例を示す。図6に示した例では、マーカー情報記憶部121は、「画像データID」、「マーカーID」、「基準円ID」、「変化円ID」、「特徴情報」、「個別マーカーID」、「変化円の比率」といった項目を有する。
「画像データID」は、マーカーの登録にあたって、画像処理装置100にユーザから入稿された画像データを識別するための識別情報を示す。なお、画像データIDが示す情報には、例えば、入稿された日時や、入稿元となるユーザ端末10を識別する情報が含まれてもよい。また、実施形態では、識別情報を参照符号と共通させる場合がある。例えば、画像データIDが「P01」である画像データは、「画像データP01」を示すものとする。
「マーカーID」は、マーカーを識別するための識別情報を示す。「基準円ID」は、基準円を識別するための識別情報を示す。「変化円ID」は、変化円を識別するための識別情報を示す。なお、上述のように、基準円や変化円は、ユーザが任意に指定することが可能である。
「特徴情報」は、マーカーを一意に特定するために用いられる、マーカーの特徴を示す情報である。例えば、特徴情報は、基準円と変化円の位置関係を示す変数(パラメータ)である。図6に示す例では、特徴情報を「F01」といった概念で示しているが、実際には、特徴情報の項目には、マーカーを一意に特定するために用いられるパラメータ等が記憶される。
「個別マーカーID」は、変化円の径の比率ごとにマーカーを識別する際のマーカーの識別情報を示す。「変化円の比率」は、所定の基準に対する変化円の径の比率を示す。
すなわち、図6では、画像データID「P01」で識別される画像データP01がユーザから入稿され、画像データP01において登録されたマーカーのマーカーIDが「MA01」であることを示している。また、マーカーMA01は、基準円ID「M021」で識別される基準円M021と、変化円ID「M011」で識別される変化円M011とのペアによるマーカーであり、その特徴情報は「F01」であることを示している。また、径の比率ごとの個別マーカーIDは、それぞれ「MA11」、「MA12」、「MA13」であり、それぞれの径の比率は、「1」、「1.05」、「1.1」であることを示している。
(加工情報記憶部122について)
加工情報記憶部122は、特定されたマーカーに対して行われる所定の画像加工処理の内容を記憶する。ここで、図7に、実施形態に係る加工情報記憶部122の一例を示す。図7に示した例では、加工情報記憶部122は、「個別マーカーID」、「加工情報」、「位置情報」といった項目を有する。
「個別マーカーID」は、図6で示した同一の項目に対応する。「加工情報」は、マーカーが特定された場合に、当該マーカーに対して行う画像処理の内容を示す。図7に示した例では、加工情報を「H01」といった概念で示しているが、実際には、加工情報の項目には、マーカーに対して加工処理を行う内容(例えば、図4で示したような矢印A01等を表示させる処理等)や、マーカーに重畳させるオブジェクトの画像データや、マーカーの位置に表示させるテキストデータ等が記憶される。
「位置情報」は、マーカーが配置された位置の情報を示す。マーカーが配置された位置とは、例えば、マーカーが画像データ内に含まれる場合に、当該画像データに対応する画像(例えばポスターなど)が掲示される位置を示す。図7に示した例では、位置情報を「G01」といった概念で示しているが、実際には、位置情報の項目には、マーカーが配置された位置を示す経度や緯度等が記憶される。なお、位置情報には、例えば、マーカーが配置される向きや、配置される高さ情報等が記憶されてもよい。
すなわち、図7では、個別マーカーID「MA11」で識別されるマーカーMA11には、加工情報「H01」が設定されており、マーカーMA11は、位置情報「G01」で示される場所に配置されていることを示している。なお、加工情報や位置情報は、マーカーの利用態様に応じて、画像処理装置100の管理者等によって適宜更新されてもよい。
(制御部130について)
制御部130は、例えば、コントローラ(controller)であり、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、画像処理装置100内部の記憶装置に記憶されている各種プログラム(画像処理プログラムの一例に相当)がRAMを作業領域として実行されることにより実現される。また、制御部130は、コントローラ(controller)であり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。
制御部130は、図5に示すように、取得部131と、検出部132と、登録部133と、受付部134と、算出部135と、特定部136と、加工部137と、送信部138とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部130の内部構成は、図5に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、制御部130が有する各処理部の接続関係は、図5に示した接続関係に限られず、他の接続関係であってもよい。
(取得部131について)
取得部131は、各種情報を取得する。例えば、取得部131は、ユーザから送信される画像データであって、円状の図形を含む画像データを取得する。具体的には、取得部131は、画像処理装置100にマーカーを登録することを所望するユーザから、マーカーとして登録可能な2つの真円を含む画像データを取得する。
(検出部132について)
検出部132は、取得部131によって取得された画像データから、マーカーとして登録するための円を検出する。具体的には、検出部132は、画像データ内に含まれる円状の図形であって、長径と短径が略同一である真円を検出する。
検出部132は、既知の種々の手法により円状の図形を検出する。例えば、検出部132は、画像データ内において近傍のピクセル同士の特徴量を検出する。例えば、検出部132は、ピクセルにおいて色を示すデータを検出する。そして、検出部132は、所定の閾値以上の色の隔たりのある箇所を検出することで、円状の図形を検出する。また、検出部132は、Taubin法等を用いて円状の図形を検出するようにしてもよい。
なお、検出部132は、取得部131によって取得された画像データにおいて、円状の図形が真円でない場合、上述した射影変換を行うことにより、真円を検出する。取得部131によって取得された画像データにおける円状の図形が真円でない場合とは、例えば、真円をユーザが撮像することにより作成された画像データを、取得部131が取得した場合等が該当する。
一般に、マーカーを利用した画像データに関する射影変換処理は、画像データ内におけるマーカー(実施形態では、マーカーとして登録される前の真円)と、当該画像データを撮像した撮像装置(例えば、ユーザ端末10やデジタルカメラ)との回転角R及び平行移動量Tというパラメータを算出することで実現される。
ここで、実施形態に係る画像処理装置100が行う射影変換処理について、画像データP01を例に挙げて説明する。まず、画像処理装置100は、元の画像データP01内の円を検出する。この例では、画像処理装置100は、円M01及び円M02を検出するものとする。上述のように、画像データP01に含まれる円M01及び円M02は真円であるが、画像データP01が撮像された画像では、円M01及び円M02は楕円となる。
画像処理装置100は、検出した各楕円のパラメータに基づいて、各楕円の法線を推定する。楕円の法線は、一つの楕円につき2本算出される。このため、画像処理装置100は、二つの円M01及び円M02から算出された法線の解を組み合わせることで、円M01及び円M02を含む平面を推定できる。さらに、画像処理装置100は、推定した平面の法線を推定できる。
画像処理装置100は、推定した平面の法線を、元の画像データP01におけるワールド座標系(空間の中での物体の位置を示すための座標系。「世界座標系」や「グローバル座標系」と表記される場合もある)におけるY軸と仮定する。そして、画像処理装置100は、適当な円心同士(例えば、円M01及び円M02の中心)を結ぶベクトルをワールド座標系における仮のX軸とする。これらの情報に基づいて、画像処理装置100は、画像内の円M01又はM02と撮像装置との回転角Rの関係を求めることができる。また、画像処理装置100は、円心同士の距離を1と仮定することで、仮の平行移動量Tを算出することができる。画像処理装置100は、仮のパラメータである回転角R及び平行移動量Tを用いて、検出された円の本来の大小関係を求めれば、どの円が楕円として検出できたのかを決定することができる。そして、画像データP01における円の位置情報は既知であるから、検出された円のワールド座標系における位置に基づいて、画像処理装置100は、正しいX軸と平行移動量Tを推定することができる。これにより、画像処理装置100は、真円が撮像されて楕円として表示された画像であっても、射影変換によって真円を検出することができる。なお、かかる射影変換処理は、後述する算出部135や特定部136によって行われてもよい。
例えば、射影変換処理が行われた状況を示す図として、図8を例に挙げる。図8は、実施形態に係る変換処理の一例を示す図である。画像データ内では楕円として示される円M100に対して、検出部132が射影変換処理を実行したとする(ステップS20)。円M100が射影変換処理された結果、円M100は、真円M101として識別される画像データへと変換される。
(登録部133について)
登録部133は、画像処理に用いるマーカーを登録する。具体的には、登録部133は、少なくとも2つの真円を含む画像データにおいて、少なくともいずれか一つの真円を、所定の基準に対する径の比率が算出される円である変化円とし、また、変化円以外の円であって、変化円の径の比率および2つの真円の位置関係を示す値を算出するための基準となる円を基準円とし、当該変化円および基準円による1組のペアをマーカーとして登録する。
例えば、登録部133は、検出部132によって検出された真円をユーザ端末10に表示させる。そして、登録部133は、ユーザ端末10を介して、ユーザから、どの真円のペアをマーカーとして登録するかの指定を受け付ける。また、登録部133は、ペアのうち、基準円と変化円の指定を受け付ける。
登録部133は、指定された基準円と変化円について、マーカーを特定するための特徴情報とともに、マーカー情報記憶部121に記憶する。例えば、登録部133は、ペアとなる2円の位置関係を示すパラメータを登録する。
登録部133は、2円の位置関係を示すパラメータとして、種々の既知の情報を用いてよい。例えば、登録部133は、画像データを構成する画素データと、予め画像データにおいて真円の位置を示す座標との関係性を示すマッピングデータを取得している場合には、かかる情報を用いて2円の位置関係を示すパラメータを登録するようにしてもよい。
また、登録部133は、2円を示す式におけるトレース(trace)の値を求めてもよい。一般に、円の方程式は、下記の式で示すことができる。
上記式(1)において、x、yは、画像データ上の座標を示す。上記式(1)を構成する要素(a〜f)は、一般に、ベクトルと行列を用いて近似値を求めることができる。まず、下記式(2)の関係が成立する。
上記式(2)において、Xはベクトルを示す。また、Xtは転置されたベクトルを示す。なお、Xは下記式(3)によって示されるものとする。
上記式(2)において、Mは、上記式(1)および下記式(4)の関係を満たす行列として示される。
そして、基準円Mkと変化円Mhのトレースは、以下の式を用いて示すことができる(なお、添え字である「k」は基準の意味を表し、「h」は変化の意味を示すものとする。また、添え字には、standardの意味として「s」を用いたり、variableの意味として「v」を用いたりしてもよい。)。
登録部133は、上記のように求めた基準円Mkと変化円Mhのトレースの値を特徴情報として登録してもよい。例えば、登録部133は、上記式(5)や(6)で求められる2円のトレースの値(I)を登録する。そして、例えば後述する特定部136は、登録されたトレースの値と、受付部134によって受け付けられた画像データに含まれる円のトレースの値とが、所定の閾値以内にある場合に、受付部134によって受け付けられた画像データに含まれる円を、登録されていたマーカーとして特定することができる。
また、登録部133は、変化円の所定の基準に対する径の比率を登録する。例えば、登録部133は、ユーザから指定された径の比率を登録し、登録された径の比率ごとに異なるマーカーとして登録する。
この場合、登録部133は、径の比率を算出するために用いられるパラメータとともに、径の比率を登録するようにしてもよい。すなわち、後述する特定部136がマーカーを特定するために用いる画像データにおいては、マーカーとして特定される図形が楕円であり、特定処理において射影変換処理が行われることが想定される。この場合、登録部133が単に径の比率の数値のみを登録したとすると、登録時のデータと、受付部134に受け付けられた画像データにおける円のデータとで、射影変換による歪みのため、値に齟齬がでる可能性がある。このため、登録部133は、射影変換が行われた場合であっても、不変となるパラメータを利用して、径の比率を登録する。
例えば、登録部133は、基準円の径の比率を所定の基準として、基準円と変化円の半径の比を登録する。変化円について射影変換が行われた場合には、当該変化円の径の比率を特定するための基準円についても同様に射影変換が行われるため、登録部133は、基準円と変化円の半径の比を利用することで、射影変換後でも不変のパラメータを登録することができる。
また、他の一例として、登録部133は、基準円と変化円の中心や半径を利用した復比をパラメータとして登録しておいてもよい。この点について、図9を用いて説明する。図9は、実施形態に係る算出処理の一例を示す図である。図9に示すように、2円の中心を通る線分上に各点を配置した場合、以下の関係性が成立する。
例えば、登録部133は、上記式(7)または上記式(8)等をパラメータとして登録することができる。これは、図9で示した2円が、基準円と変化円であると仮定すると、円心BEの距離は、変化円の径の長さによらず一定であることによる。すなわち、変化円の径の変化のみによって、上記のパラメータは変化する。具体的には、変化円の径の比率が「1」か「1.1」であるかといった事象は、上記式(7)や(8)を算出することで特定することができる。なお、復比を利用する場合、画像データ上における楕円のまま算出処理を行うことが可能であるため、射影変換処理を実行する手間を省くことができることから、処理負荷を軽減させることができる。
(受付部134について)
受付部134は、ユーザ端末10から入稿される画像データを受け付ける。具体的には、受付部134は、円として抽出可能な図形を少なくとも2つ含んだ画像データを受け付ける。受付部134は、ユーザ端末10から直接画像データを受け付けてもよいし、例えば画像処理装置100が提供する画像処理サービスに係るウェブサイト等を介して、画像データを受け付けてもよい。
(算出部135について)
算出部135は、受付部134によって受け付けられた画像データに対して、所定の算出処理を実行する。例えば、算出部135は、画像データを読み込み、画像データ内の円状の図形を検出する。かかる処理は、検出部132で説明した処理と同様の処理であってよい。そして、算出部135は、検出された円状の図形を射影変換し、真円を検出する。
そして、算出部135は、検出された真円について、それぞれペアを作成し、ペアの位置関係を示すパラメータを算出する。例えば、算出部135は、検出された真円の中心や、真円を構成する所定の画素の座標情報に基づいて、2円の位置関係を示すパラメータを算出する。例えば、算出部135は、登録部133によってマーカーの元となる画像データにおけるマッピングデータが登録されている場合には、マッピングデータに基づいて、登録部133によって登録されたマーカーのパラメータと、受付部134によって受け付けられた画像データにおける2円のパラメータとが、所定の閾値以内であるか否かを判定する。例えば、後述する特定部136は、算出部135によって、両者のパラメータが所定の閾値以内であると算出された場合には、受付部134によって受け付けられた画像データにおける2円をマーカーとして特定する。
また、算出部135は、マーカーとして特定された2円のうち、1つの円について、所定の基準に対する径の比率を算出する。上述のように、マーカーとして登録された円が撮像されている場合、画像データに対して射影変換処理が行われる。このため、算出部135は、単に画像データにおける径の長さを算出しても、径の比率を正確に算出できない場合がある。そこで、算出部135は、射影変換が行われた後であっても不変なパラメータを用いて、径の比率を算出する。
一例として、算出部135は、基準円の径の比率を所定の基準として、基準円と変化円の半径の比を算出してもよい。また、他の一例として、算出部135は、図9で示したような、基準円と変化円の中心間や半径等の復比を算出してもよい。上述のように、算出部135は、かかるパラメータを算出することにより、変化円における径の比率を算出することができる。言い換えれば、算出部135による算出処理により、特定部136は、変化円における径の比率を一意に特定することができる。
(特定部136について)
特定部136は、受付部134によって受け付けられた画像データに含まれるマーカーを特定する。具体的には、特定部136は、受付部134によって受け付けられた画像データに含まれる2つの円のペアから算出されるパラメータと、画像処理に用いられるマーカーとして予め登録済みである2つの真円のペアから算出されるパラメータとを照合することによって、画像データに含まれる2つの円のペアをマーカーとして特定する。この場合、登録済みの2つの真円のペアとは、登録部133によってマーカーとして登録された2つの円のペアを示す。すなわち、特定部136は、画像データに含まれる2つの円から算出される所定のパラメータと、登録部133によって登録されたマーカーに対応するパラメータとを照合することによって、画像データに含まれる2つの円をマーカーとして特定する。
例えば、特定部136は、パラメータとして、2つの円の位置関係を示す値と、2つの円のうちいずれか一方の円における、所定の基準に対する当該一方の円の径の比率とを用いて、画像データに含まれる2つの円をマーカーとして特定する。特定部136は、登録済みのマーカーにおける2円の位置関係と、受付部134によって受け付けられた2円の位置関係との類似性を示す値として、例えば上述したマッピングデータを用いてもよいし、トレースの値を用いてもよい。
一例として、特定部136は、画像データに含まれる2つの円から算出される所定のパラメータのうち、変化円における所定の基準に対する径の比率の数値に基づいて、登録部133によって登録されたマーカーのうち、いずれのマーカーに該当するかを特定する。すなわち、特定部136は、変化円における所定の基準に対する径の比率の数値に基づいて、同じ基準円と変化円とのペアであっても、径の比率が異なる場合には、異なるマーカーとして特定することができる。これにより、画像処理装置100は、マーカーが含まれる画像に同じような図柄を採用した場合であっても、変化円の径をわずかに変えるのみで異なるマーカーとして特定することができるため、手軽に多数のマーカーを識別することができる。
また、特定部136は、受付部134によって受け付けられた画像データに含まれる円状の図形が真円となるよう画像データを射影変換し、射影変換後の真円の所定のペアが有するパラメータに基づいて、画像データに含まれるマーカーを特定してもよい。このように、特定部136は、射影変換を行うことによって、例えば、マーカーとして特定されるための図形がユーザから撮像された角度等によらず、的確にマーカーを特定することができる。
また、特定部136は、上述した算出部135が算出するパラメータに基づいて、2円をマーカーとして特定してもよい。具体的には、特定部136は、登録部133によって、基準円の径の比率を所定の基準とした基準円と変化円の半径の比が登録されている場合には、かかる値を算出されるパラメータとして、マーカーの特定処理を行う。また、特定部136は、登録部133によって、基準円と変化円の中心間や半径等の復比が登録されている場合には、かかる値を算出されるパラメータとして、マーカーの特定処理を行う。このように、特定部136は、マーカーとして特定される画像が撮像された状況等によらずに、不変の値をとるパラメータに基づいてマーカーを特定する。これにより、特定部136は、画像データの状況によらない、安定性の高い特定処理を行うことができる。
(加工部137について)
加工部137は、特定部136によって特定されたマーカーを含む画像データを、当該マーカーに設定されている加工情報に基づいて加工する。具体的には、加工部137は、加工情報記憶部122を参照して、画像データに含まれるマーカーに対して予め設定されている加工情報を読み出す。そして、加工部137は、読み出した加工情報に従い、ユーザから受け付けた画像データを加工する。
例えば、加工部137は、マーカーに重畳するように新たなオブジェクトを追加するよう、画像データを加工する。具体的には、加工部137は、図4で示したように、マーカーに対して所定の矢印や、テキストデータ等を重畳させた加工画像データを生成する。
(送信部138について)
送信部138は、加工部137によって加工された画像データを、受付部134によって受け付けられた画像データの送信元に送信する。具体的には、実施形態に係る送信部138は、受付部134によって受け付けられた画像データの送信元(ユーザ端末10)に対して、当該送信元から送信された画像データを加工した後の画像データを送信する。なお、送信部138は、かかる送信処理について、例えば、画像処理サービスを提供するウェブサイト等を介して画像データを送信してもよい。
〔3.画像処理手順〕
次に、図10及び図11を用いて、実施形態に係る画像処理装置100による画像処理の手順について説明する。図10は、実施形態に係る画像処理手順を示すフローチャート(1)である。図10では、実施形態に係る画像処理手順のうち、登録処理に関する手順を説明する。
図10に示すように、画像処理装置100に係る取得部131は、登録するマーカーを含む画像データを取得したか否かを判定する(ステップS101)。取得部131は、画像データを取得していない場合には(ステップS101;No)、画像データを取得するまで待機する。
一方、取得部131が画像データを取得した場合には(ステップS101;Yes)、検出部132は、取得した画像データに含まれる真円を検出する(ステップS102)。そして、登録部133は、検出された真円の中から、基準円と変化円とする2円を決定する(ステップS103)。例えば、登録部133は、検出された真円をユーザに提示し、ユーザから指定を受け付けることにより、基準円と変化円とを決定する。
続いて、登録部133は、変化円と基準円のパラメータを算出する(ステップS104)。具体的には、登録部133は、変化円と基準円の位置関係を示すパラメータを算出する。
また、登録部133は、所定の基準に対する変化円の径の比率を決定する(ステップS105)。例えば、登録部133は、径の比率として、「1」と、「1.05」と、「1.1」とを採用すること等を決定する。
そして、登録部133は、決定した径の比率ごとに異なるマーカーとして、マーカー情報記憶部121に登録する(ステップS106)。
次に、図11を用いて、実施形態に係る画像処理手順のうち、特定処理に関する手順を説明する。図11は、実施形態に係る画像処理手順を示すフローチャート(2)である。
図11に示すように、画像処理装置100に係る受付部134は、ユーザ端末10から画像データの入稿を受け付けたか否かを判定する(ステップS201)。受付部134は、画像データの入稿を受け付けていない場合には(ステップS201;No)、画像データの入稿を受け付けるまで待機する。
一方、受付部134が画像データの入稿を受け付けた場合には(ステップS201;Yes)、算出部135は、画像データに含まれる楕円を検出する(ステップS202)。
そして、算出部135は、検出された楕円のペアにおける位置関係を示す値を算出する(ステップS203)。例えば、算出部135は、所定の楕円のペアについて、各々のトレースを算出する。
そして、特定部136は、画像データに含まれる楕円が、マーカーとして登録されている変化円と基準円であることを特定する(ステップS204)。具体的には、特定部136は、算出部135によって算出されたトレースと、登録されている基準円と変化円とのトレースとが、所定の閾値以内であるか否かを判定し、所定の閾値以内である場合に、算出部135によって算出されたトレースに対応する楕円のペアが変化円と基準円であると特定する。
さらに、算出部135は、変化円の径の比率を算出する(ステップS205)。そして、特定部136は、変化円の径の比率に基づいて、受け付けた画像データに含まれる所定の2円をマーカーとして一意に特定する(ステップS206)。
〔4.変形例〕
上述してきた実施形態に係る画像処理装置100は、上記実施形態以外にも種々の異なる形態にて実施されてよい。そこで、以下に、上記の画像処理装置100の他の実施形態について説明する。
〔4−1.円の組合せ〕
上記実施形態では、2円の組合せをペアにして、マーカーの登録を行うことを説明した。ここで、画像処理装置100は、ペアとなる組合せについて、異なる3円間で登録を行ってもよい。
例えば、画像処理装置100は、図1において、円M01を変化円M011として、円M02を基準円M021として登録する例を示した。このとき、画像処理装置100は、円M01を変化円M011とするとともに、円M02のみならず、円M03を基準円として登録しておいてもよい。この場合、画像処理装置100は、円M01と円M02との位置関係を示すパラメータや、径の比率とともに、円M01と円M03との位置関係を示すパラメータや、径の比率を登録する。
そして、画像処理装置100は、マーカーの登録後に、ユーザから画像データP01を含む画像データを受け付けたとする。このとき、ユーザから受け付けた画像データにおいて、画像データP01に含まれる円M02が何らかの物体の影になり、隠れてしまう事態等が起こり得る。ユーザから受け付ける画像データは、例えば図3のような画像データP10等が想定されるが、かかる画像データにおいて、画像データP10に含まれる画像データP01の全ての円が撮像されていない場合がありうる。例えば、円M01と円M03が撮像されているものの、円M02が撮像されていない(すなわち、画像処理装置100が画像データからは認識できない)場合がある。
かかる場合、画像処理装置100は、円M01と円M02の位置関係を算出できずとも、円M01と円M03の位置関係を算出することにより、円M01と円M03とをマーカーとして特定することができる。このように、画像処理装置100は、2円のみの関係性を登録するのではなく、3円以上の円を用いて互いにペアとして登録することにより、撮像の状況のよくない画像データからでも、2円をマーカーとして検出する精度を向上させることができる。これにより、画像処理装置100は、より安定性の高い特定処理を行うことができる。
なお、画像処理装置100は、3円を処理に用いるのみならず、2円と、2円の近傍の所定位置とを用いて、上記処理を行ってもよい。例えば、画像処理装置100は、登録処理に際して、2円とともに、2円の中間点におけるパラメータを登録する。例えば、画像処理装置100は、2円の中間点の画素の特徴量を登録する。この場合、画像処理装置100は、中間点の色情報そのものを登録してもよいし、2円に含まれる所定の画素と、当該中間点における画素の色情報との比較情報を登録してもよい。そして、画像処理装置100は、特定処理の際に、マーカーとして特定する2円のペアの候補が複数特定された場合に、ペアの中間点の画像特徴量を判定する。そして、画像処理装置100は、登録されていた画像特徴量により近似する中間点を有する2円のペアをマーカーとして特定する。これにより、画像処理装置100は、マーカーとして2円を特定する際の精度を向上させることができる。なお、画像処理装置100は、2円の近傍の所定位置として、必ずしも2円の中間点に限らず、任意の点を、マーカーを特定するための第三の要素として登録しておいてもよい。また、画像処理装置100は、点の特徴量として、画素の特徴量のみならず、例えば、円の中心との座標関係(例えば、円の中心と中間点とのベクトル情報)等の情報をパラメータとして登録しておいてもよい。
このように、画像処理装置100は、登録に用いる所定の画像データにおいて、基準円および変化円と所定の位置関係にある任意の点(例えば、基準円と変化円の中心を結んだ際の中間点など)の特徴量を含めて、当該基準円および変化円をマーカーとして登録する。そして、画像処理装置100は、受付部134によって受け付けられた画像データに含まれる2つの円から算出される所定のパラメータおよび2つの円と所定の位置関係にある任意の点(例えば、受け付けられた画像データにおいて特定された2つの円の中心を結んだ際の中間点など)の特徴量と、予め登録されたマーカーに対応するパラメータとを照合することによって、受け付けられた画像データに含まれる2つの円をマーカーとして特定する。かかる処理により、画像処理装置100は、2つの円のパラメータに加えて、さらに特定する要素を増やすことができるため、より安定性の高い特定処理を実行することができる。
〔4−2.端末による処理〕
上記実施形態では、画像処理装置100がユーザ端末10から画像データを受け付け、マーカーを特定する処理を実行する例を示した。ここで、本願に係る画像処理装置に対応する装置は、画像処理装置100でなく、ユーザ端末10であってもよい。
すなわち、ユーザ端末10は、例えば図5で示した画像処理装置100と同様の構成を有し、画像データからマーカーを特定する処理を実行する。具体的には、ユーザ端末10は、マーカーを含む画像を撮像し、画像データを取得すると、当該画像データに対してマーカーの特定処理を実行する。そして、ユーザ端末10は、撮像した画像データに対して、所定の加工処理を実行する。これにより、ユーザ端末10は、マーカーに予め設定されていたサービス情報等を含む画像データを取得することができる。
この場合、ユーザ端末10は、マーカーの登録情報自体は、画像処理装置100に登録されているデータを利用するようにしてもよい。また、ユーザ端末10は、自身で加工情報を保持していてもよいし、処理に用いる加工情報のみを画像処理装置100にアクセスして取得するようにしてもよい。このように、本願に係る処理は、必ずしもサーバ装置である画像処理装置100によって実行されることを要さず、ユーザ端末10によって実行されてもよい。
〔4−3.マーカーの利用〕
上記実施形態では、画像処理装置100は、画像データ内のマーカーを特定し、画像データに情報を加工する処理を実行することを説明した。かかる処理は、必ずしも加工画像の生成に用いられるのみならず、単に、画像データ内のマーカーを特定する処理として用いられてもよい。すなわち、画像処理装置100は、加工された画像データを生成するためにマーカーを特定するという目的に限られず、単に1枚の画像データにおけるビジュアルマーカーを特定する処理として、上記手法を採用してもよい。
〔4−4.マーカーの特定〕
上記実施形態では、画像処理装置100が、図柄を含む画像データにおける2つの真円をマーカーとして登録するとともに、ユーザから送信された、図柄を含む画像データからマーカーを特定する処理を行う例を示した。ここで、画像処理装置100が扱う画像データには、必ずしも図柄が含まれていることを要さない。上述のように、画像処理装置100は、2つの円の位置関係と、変化円における径の比率をパラメータとして、マーカーの特定処理を行う。このため、画像処理装置100は、図柄によらず、マーカーの特定処理を行うことができる。
〔4−5.処理される画像のバリエーション〕
上記実施形態では、画像処理装置100が、ユーザから受け付けた画像データからマーカーを特定する例を示した。ここで、ユーザから受け付けるデータは、必ずしも静止画像に限らず、動画像であってもよい。この場合、画像処理装置100は、連続する画像データから円を検出するとともに、いずれの円がマーカーとして登録されているかを特定する。また、画像処理装置100は、かかる処理において、例えばストラクチャーフロムモーション(Structure From Motion)のような既知の手法を適宜用いてもよい。かかる手法によれば、画像処理装置100は、種々の視点位置から撮像された複数の画像データに基づいて画像の3次元形状を復元することが可能となるため、複数の画像データ間で対応付けされた対応点(実施形態の例では、円として検出される図形の特徴点)を検出することができる。
より具体的には、画像処理装置100は、動画における前後のフレーム(動画を構成する画像)を参照し、2円をマーカーとして検出する。この場合、画像処理装置100は、所定のフレームのみでは2円を明確に検出できない場合であっても、前後のフレームから取得される2円の位置情報に基づいて、所定のフレームにおける2円のマーカーを検出するようにしてもよい。すなわち、画像処理装置100は、動画等の時系列が連続する複数の画像を処理する場合には、処理対象とする画像の前後の時系列の画像における2円のパラメータに基づいて、処理対象とする画像のマーカーを検出してもよい。すなわち、画像処理装置100は、所定の画像において2円のいずれかが検出不可能な場合でも、時間的に前後の画像を用いることによって、検出処理を補完することができる。
このように、画像処理装置100は、円として抽出可能な図形を少なくとも2つ含んだ画像データを少なくとも一つ含む、複数の画像データ(例えば動画)を受け付ける。そして、画像処理装置100は、受け付けられた複数の画像データのうち所定の画像データにおいて、当該複数の画像データのうち当該所定の画像データとは異なる、いずれかの画像データに含まれる2つの円のペアから算出されるパラメータと、画像処理に用いられるマーカーとして予め登録済みである2つの真円のペアから算出されるパラメータとを照合した結果に基づいて、当該所定の画像データに含まれると推定される2つの円のペアをマーカーとして特定する。言い換えれば、画像処理装置100は、処理対象とする画像データから2つの円が明確に特定できない場合(例えば、撮像において円の一部が何らかの原因で遮られ、画像データに含まれない場合)であっても、前後の画像データにおいて特定された2円の位置情報の推移等を特定できるので、処理対象とする画像データにおける2円を推定できる。これにより、画像処理装置100は、よりロバストな特定処理を行うことができる。
〔5.その他〕
また、上述した各実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図5に示した算出部135と特定部136とは統合されてもよい。また、画像処理装置100は、ユーザ等の利用者とデータのやりとりを主に行うフロントエンドサーバと、生成処理等を行うバックエンドサーバとに分散される態様であってもよい。この場合、フロントエンドサーバは、少なくとも、取得部131と受付部134と送信部138とを有する。また、バックエンドサーバは、少なくとも、特定部136を有する。また、画像処理装置100は、記憶部120を内部に備えるのではなく、外部のストレージサーバを利用する態様であってもよい。
また、上述してきた各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
〔6.ハードウェア構成〕
また、上述してきた実施形態に係る画像処理装置100やユーザ端末10は、例えば図12に示すような構成のコンピュータ1000によって実現される。以下、画像処理装置100を例に挙げて説明する。図12は、画像処理装置100の機能を実現するコンピュータ1000の一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM1300、HDD1400、通信インターフェイス(I/F)1500、入出力インターフェイス(I/F)1600、及びメディアインターフェイス(I/F)1700を有する。
CPU1100は、ROM1300又はHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を記憶する。通信インターフェイス1500は、通信網500(実施形態のネットワークNに対応する)を介して他の機器からデータを受信してCPU1100へ送り、また、通信網500を介してCPU1100が生成したデータを他の機器へ送信する。
CPU1100は、入出力インターフェイス1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU1100は、入出力インターフェイス1600を介して、入力装置からデータを取得する。また、CPU1100は、入出力インターフェイス1600を介して生成したデータを出力装置へ出力する。
メディアインターフェイス1700は、記録媒体1800に格納されたプログラム又はデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインターフェイス1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
例えば、コンピュータ1000が画像処理装置100として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムを実行することにより、制御部130の機能を実現する。また、HDD1400には、記憶部120内の各データが格納される。コンピュータ1000のCPU1100は、これらのプログラムを記録媒体1800から読み取って実行するが、他の例として、他の装置から通信網500を介してこれらのプログラムを取得してもよい。
〔7.効果〕
上述してきたように、実施形態に係る画像処理装置100は、受付部134と、特定部136とを有する。受付部134は、円として抽出可能な図形を少なくとも2つ含んだ画像データを受け付ける。特定部136は、受付部134によって受け付けられた画像データに含まれる2つの円のペアから算出されるパラメータと、画像処理に用いられるマーカーとして予め登録済みである2つの真円のペアから算出されるパラメータとを照合することによって、当該画像データに含まれる2つの円のペアをマーカーとして特定する。
このように、実施形態に係る画像処理装置100は、画像に含まれる2円を、所定の画像処理で利用するマーカーとして特定することができる。このため、画像処理装置100によれば、QRコードのような特異なマーカーを画像データ内に含ませることなく、AR処理等の画像処理を実行することができる。すなわち、画像処理装置100は、画像処理において、違和感なくマーカーが含まれた画像データを利用することができる。
また、特定部136は、パラメータとして、2つの円の位置関係を示す値と、2つの円のうちいずれか一方の円における、所定の基準に対する当該一方の円の径の比率とを用いて、画像データに含まれる2つの円をマーカーとして特定する。
このように、実施形態に係る画像処理装置100は、位置関係と径の比率とに基づいてマーカーを特定する。これにより、画像処理装置100は、精度よくマーカーを特定することができる。
また、実施形態に係る画像処理装置100は、少なくとも2つの真円を含む所定の画像データにおいて、少なくともいずれか一つの真円を、所定の基準に対する径の比率が算出される円である変化円とし、また、変化円以外の円であって、変化円の径の比率および2つの真円の位置関係を示す値を算出するための基準となる円を基準円とし、当該変化円および基準円による1組のペアをマーカーとして登録する登録部133をさらに備える。また、特定部136は、画像データに含まれる2つの円から算出される所定のパラメータと、登録部133によって登録されたマーカーに対応するパラメータとを照合することによって、当該画像データに含まれる2つの円をマーカーとして特定する。
このように、実施形態に係る画像処理装置100は、予め登録したデータに基づいてマーカーを特定する。このため、画像処理装置100は、例えばユーザが望む所定の画像データに含まれる真円をマーカーとして登録することができるため、ユーザにとって利便性のよい画像処理を実現することができる。
また、登録部133は、所定の基準に対する径の比率の数値が各々異なる変化円と基準円との各ペアを、各々が異なるマーカーとして登録する。特定部136は、画像データに含まれる2つの円から算出される所定のパラメータのうち、変化円における所定の基準に対する径の比率の数値に基づいて、登録部133によって登録されたマーカーのうち、いずれのマーカーに該当するかを特定する。
このように、実施形態に係る画像処理装置100は、径の比率ごとに、各々を異なるマーカーとして登録することができる。これにより、画像処理装置100は、マーカーごとに異なる情報を提供することを所望する場合であっても、マーカーとして複数の異なる図柄等を用意することなく、径の比率を変えるのみで対応することができる。このように、画像処理装置100は、利便性に優れた画像処理を実現することができる。
また、登録部133は、変化円と基準円との位置関係を示す値として、当該変化円と基準円とのトレースを登録する。特定部136は、受付部134によって受け付けられた画像データに含まれる2つの円から算出されるトレースと、登録部133によって登録された変化円と基準円とのトレースとが所定の閾値以内である場合に、当該画像データに含まれる2つの円をマーカーとして特定する。
このように、実施形態に係る画像処理装置100は、画像データ上の座標を基に、円のトレースを算出して、マーカーを特定する。これにより、画像処理装置100は、マーカーを精度よく特定することができる。
また、登録部133は、所定の画像データにおいて基準円および変化円と所定の位置関係にある任意の点の特徴量を含めて、基準円および変化円をマーカーとして登録する。特定部136は、受付部134によって受け付けられた画像データに含まれる2つの円から算出される所定のパラメータおよび2つの円と所定の位置関係にある任意の点の特徴量と、登録部133によって登録されたマーカーに対応するパラメータとを照合することによって、画像データに含まれる2つの円をマーカーとして特定する。
このように、実施形態に係る画像処理装置100は、2つの円に加えて、例えば2つの円の中間点等の特徴量を特定するための要素に追加することで、より安定性の高い特定処理を実行することができる。
また、特定部136は、受付部134によって受け付けられた画像データに含まれる円状の図形が真円となるよう当該画像データを射影変換し、射影変換後の真円の所定のペアが有するパラメータに基づいて、当該画像データに含まれるマーカーを特定する。
このように、実施形態に係る画像処理装置100は、射影変換を行うことによって、例えば、マーカーとして特定されるための図形がユーザから撮像された角度等によらず、的確にマーカーを特定することができる。
また、特定部136は、射影変換によって、画像データに含まれる円状の図形が真円に変換された場合の2つの真円の半径の比率に基づいて、当該画像データに含まれるマーカーを特定する。
このように、実施形態に係る画像処理装置100は、射影変換を行った場合であっても不変となるパラメータを利用してマーカーを特定する。これにより、画像処理装置100は、マーカーとして特定されるための図形がユーザから撮像された角度等によらずにマーカーを特定することができる。
また、特定部136は、画像データに含まれる2つの円における、2つの円の中心を通る直線と、各々の円との交点及び2つの円の中心のいずれかの点間の長さの比の比を示す値である復比に基づいて、当該画像データに含まれるマーカーを特定する。
このように、実施形態に係る画像処理装置100は、2つの円における復比に基づいてマーカーを特定する。かかる処理によれば、画像処理装置100は、必ずしも射影変換を行うことを要さないため、画像処理における処理負荷を軽減することができる。
また、実施形態に係る画像処理装置100は、特定部136によって特定されたマーカーを含む画像データを、当該マーカーに設定されている加工情報に基づいて加工する加工部137と、加工部137によって加工された画像データを、受付部134によって受け付けられた画像データの送信元に送信する送信部138と、をさらに備える。
このように、実施形態に係る画像処理装置100は、特定したマーカーに対して、例えばAR処理のような加工を行うとともに、加工済みの画像データをユーザに返送する。これにより、画像処理装置100は、マーカーを利用した情報提供など、ユーザにとって有用な処理を実行することができ、ユーザの満足度を向上させることができる。
また、受付部134は、円として抽出可能な図形を少なくとも2つ含んだ画像データを少なくとも一つ含む、複数の画像データを受け付ける。特定部136は、受付部134によって受け付けられた複数の画像データのうち所定の画像データにおいて、複数の画像データのうち所定の画像データとは異なる、いずれかの画像データに含まれる2つの円のペアから算出されるパラメータと、画像処理に用いられるマーカーとして予め登録済みである2つの真円のペアから算出されるパラメータとを照合した結果に基づいて、所定の画像データに含まれると推定される2つの円のペアをマーカーとして特定する。
このように、実施形態に係る画像処理装置100は、動画などの連続する画像データにおいては、例えば、前後の画像データにおいて特定されたマーカーに基づいて、処理対象とする画像データのマーカーを特定することができる。これにより、画像処理装置100は、よりロバストな特定処理を行うことができる。
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
また、上述した画像処理装置100は、複数のサーバコンピュータで実現してもよく、また、機能によっては外部のプラットフォーム等をAPI(Application Programming Interface)やネットワークコンピューティングなどで呼び出して実現するなど、構成は柔軟に変更できる。
また、特許請求の範囲に記載した「手段」は、「部(section、module、unit)」や「回路」などに読み替えることができる。例えば、特定手段は、検出部や検出回路に読み替えることができる。