IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 楽天株式会社の特許一覧

特許7439042画像処理装置、画像処理方法及びプログラム
<>
  • 特許-画像処理装置、画像処理方法及びプログラム 図1
  • 特許-画像処理装置、画像処理方法及びプログラム 図2
  • 特許-画像処理装置、画像処理方法及びプログラム 図3
  • 特許-画像処理装置、画像処理方法及びプログラム 図4
  • 特許-画像処理装置、画像処理方法及びプログラム 図5
  • 特許-画像処理装置、画像処理方法及びプログラム 図6
  • 特許-画像処理装置、画像処理方法及びプログラム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-16
(45)【発行日】2024-02-27
(54)【発明の名称】画像処理装置、画像処理方法及びプログラム
(51)【国際特許分類】
   G06T 7/00 20170101AFI20240219BHJP
   G06T 7/70 20170101ALI20240219BHJP
   G06V 20/64 20220101ALI20240219BHJP
   G06Q 30/0601 20230101ALI20240219BHJP
   H04N 23/60 20230101ALI20240219BHJP
【FI】
G06T7/00 C
G06T7/70 B
G06V20/64
G06Q30/0601
H04N23/60 100
H04N23/60 500
【請求項の数】 10
(21)【出願番号】P 2021211599
(22)【出願日】2021-12-24
(65)【公開番号】P2023095608
(43)【公開日】2023-07-06
【審査請求日】2022-01-18
(73)【特許権者】
【識別番号】399037405
【氏名又は名称】楽天グループ株式会社
(74)【代理人】
【識別番号】100122275
【弁理士】
【氏名又は名称】竹居 信利
(72)【発明者】
【氏名】中澤 満
(72)【発明者】
【氏名】友岡 高志
【審査官】小池 正彦
(56)【参考文献】
【文献】特開2020-022072(JP,A)
【文献】特開2013-165366(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
G06T 7/70
H04N 23/60
G06Q 30/0601
G06V 20/64
(57)【特許請求の範囲】
【請求項1】
対象物を示す撮像画像を受け入れる受入手段と、
ユーザに対し前記対象物に係る撮像方向の指示を行う指示手段と、
前記ユーザの所定の意思入力を受けて、当該意思入力を受けたときに、前記受入手段が受け入れた撮像画像に基づいて撮像方向の推定を行う推定手段と、
前記指示の内容である撮像方向と前記推定の結果である撮像方向とに基づき前記対象物に係る所定の検証処理を行う検証手段と、を有する画像処理装置。
【請求項2】
請求項1に記載の画像処理装置であって、
前記撮像画像に基づき前記対象物の特徴点を抽出することで前記対象物の認識を行う認識手段と、
前記認識の結果に基づき前記特徴点を内包する仮想包囲体を、前記対象物に重ね合わせて表示し、前記指示の内容である撮像方向と対応する領域を前記仮想包囲体上で強調して表示する表示手段と、をさらに有する画像処理装置。
【請求項3】
請求項2に記載の画像処理装置であって、
前記認識手段は、前記認識の結果に基づき前記対象物の形状を決定し、
前記表示手段は、前記対象物の形状に基づき前記仮想包囲体の形状を決定する画像処理装置。
【請求項4】
請求項2または3に記載の画像処理装置であって、
前記仮想包囲体は、複数の面オブジェクトを含んで構成され、
前記表示手段は、前記指示の内容である撮像方向に対応する前記面オブジェクトを強調して表示する画像処理装置。
【請求項5】
請求項1から4のいずれかに記載の画像処理装置であって、
前記指示手段は、前記推定の結果である撮像方向に基づき、他の撮像方向に係る追加の指示を行い、
前記推定手段は、前記追加の指示の後に、前記ユーザの所定の意思入力を受けて、当該意思入力を受けたときに、前記受入手段が受け入れた前記対象物の撮像画像に基づいて撮像方向に係る追加の推定を行い、
前記検証手段は、前記追加の指示に係る他の撮像方向と前記追加の推定の結果である撮像方向とをさらに用いて、前記対象物に係る所定の検証処理を行う画像処理装置。
【請求項6】
請求項5に記載の画像処理装置であって、
撮像方向が異なる複数の撮像画像に基づき前記対象物の三次元形状の再現を行う再現手段を、さらに有し、
前記追加の指示に係る他の撮像方向は、前記再現に必要となる複数の撮像方向のうち、前記推定に係る撮像方向と異なる撮像方向である画像処理装置。
【請求項7】
請求項5または6に記載の画像処理装置であって、
前記追加の指示に係る他の撮像方向は、前記推定の結果である撮像方向と鏡像関係を有する撮像方向である画像処理装置。
【請求項8】
請求項5または6に記載の画像処理装置であって、
前記撮像画像に基づき前記対象物の特徴点を抽出することで前記対象物の認識を行う認識手段と、
前記認識の結果に基づき前記特徴点を内包する仮想包囲体を、前記対象物に重ね合わせて表示し、前記指示の内容である撮像方向と対応する領域を前記仮想包囲体上で強調して表示する表示手段を有し、
前記仮想包囲体は、複数の面オブジェクトを含んで構成され、
前記追加の指示に係る他の撮像方向は、前記推定の結果である撮像方向と対応する前記面オブジェクトに隣接する他の前記面オブジェクトに対応する方向である画像処理装置。
【請求項9】
受入手段が対象物を示す撮像画像を受け入れるステップと、
指示手段がユーザに対し前記対象物に係る撮像方向の指示を行うステップと、
推定手段が前記ユーザの所定の意思入力を受けて、当該意思入力を受けたときに、前記受入手段が受け入れた撮像画像に基づいて撮像方向の推定を行うステップと、
検証手段が前記指示の内容である撮像方向と前記推定の結果である撮像方向とに基づき前記対象物に係る所定の検証処理を行うステップと、
をコンピュータのプロセッサに実行させる画像処理方法。
【請求項10】
対象物を示す撮像画像を受け入れる受入手段と、
ユーザに対し前記対象物に係る撮像方向の指示を行う指示手段と、
前記ユーザの所定の意思入力を受けて、当該意思入力を受けたときに、前記受入手段が受け入れた撮像画像に基づいて撮像方向の推定を行う推定手段と、
前記指示の内容である撮像方向と前記推定の結果である撮像方向とに基づき前記対象物に係る所定の検証処理を行う検証手段と、
としてコンピュータを機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像の撮像に関する指示を行う画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【0002】
ユーザ間での商品などの売買を仲介する、いわゆるC2C(Customer to Customer)マーケットプレイスサービス等の電子商取引サービスが広く利用されている。電子商取引サービスでは、ユーザは商品の撮像画像を掲示する場合がある。このとき、電子商取引サービスは、商品の撮像画像を駆使してユーザ間取引を好適に支援することができる余地がある。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2020-022072号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1には、本人確認時にオンラインで提出される画像が、その場で撮影されたものであることを担保することが可能な技術に関する発明が開示されている。当該発明は、本人確認を目的とするものであり、電子商取引サービスにおける商品確認においてなされたものではない。
【0005】
本発明は上記実情に鑑みて為されたもので、電子商取引サービスにおける商品確認を行い、ユーザ間取引を支援することのできる画像処理装置、画像処理方法及びプログラムを提供することを、その目的の一つとする。
【課題を解決するための手段】
【0006】
上記従来例の問題点を解決する本発明の一態様は、画像処理装置であって、対象物を示す撮像画像を受け入れる受入手段と、ユーザに対し前記対象物に係る撮像方向の指示を行う指示手段と、受け入れた前記撮像画像に基づき撮像方向の推定を行う推定手段と、前記指示の内容である撮像方向と前記推定の結果である撮像方向とに基づき前記対象物に係る実在性の検証を行う検証手段と、を有する画像処理装置である。
【発明の効果】
【0007】
本発明によれば、商品確認を可能として、ユーザ間取引を支援できる。
【図面の簡単な説明】
【0008】
図1】本発明の実施の態様に係る画像処理装置の構成例を表すブロック図である。
図2】本発明の実施の態様に係る画像処理装置の例を表す機能ブロック図である。
図3】本発明の実施の態様に係る画像処理装置が設定する仮想包囲体の例を表す説明図である。
図4】本発明の実施の態様に係る画像処理装置が設定する仮想包囲体の例を表すもう一つの説明図である。
図5】本発明の実施の態様に係る画像処理装置の動作例を表すフローチャート図である。
図6】本発明の実施の態様に係る画像処理装置が案内する撮像方向の一例を表す説明図である。
図7】本発明の実施の態様に係る画像処理装置が設定する仮想包囲体のもう一つの例を表す説明図である。
【発明を実施するための形態】
【0009】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る画像処理装置1は、例えばスマートフォン等のカメラ機能を有する情報処理装置によって実現でき、図1に例示するように、制御部11,記憶部12,操作部13,表示部14,通信部15、及び撮像部16を含んで構成される。またこの画像処理装置1は、サーバ装置2に対して、ネットワークを介して通信可能に接続されてもよい。
【0010】
この制御部11は、CPU等のプログラム制御デバイスであり、記憶部12に格納されたプログラムに従って動作する。本実施の形態の例では、この制御部11は、ユーザの指示に従って撮像部16を制御し、被写体である対象物の撮像画像を受け入れる。ここで撮像画像は、プレビュー画像など、撮像部16によって対象物を撮像して得た撮像画像を、表示処理等のためにRAM等の揮発性メモリに一時的に格納したものであってもよいし、記憶部12に記録するため、撮像部16によって対象物を撮像して得た撮像画像であってもよい。
【0011】
制御部11は、上記受け入れた撮像画像に基づき対象物を認識するとともに、撮像画像における対象物の撮像方向の推定を行う。そして制御部11は、当該対象物の認識の結果と、当該推定の結果に少なくとも基づいて、対象物を撮像する他の方向を追加で指示する。この制御部11の動作例については後に述べる。
【0012】
本実施の形態において、撮像方向とは、撮像機能を有する装置(カメラなど)のアングルおよびポジションの情報を示す。例として、後述のxy平面からの仰角が大きい場合、その撮像方向は、ハイアングルおよびハイポジションを示すものと解される。なお、本明細書において、「撮像方向」の語は簡単に、「方向」などとも表記する。
【0013】
記憶部12は、メモリデバイスやディスクデバイス等であり、制御部11によって実行されるプログラムを格納する。このプログラムは、コンピュータ可読かつ非一時的な記録媒体に格納されて提供され、この記憶部12に複写されたものであってもよい。
【0014】
操作部13は、表示部14に重ね合わせて配されたタッチパネル等であり、ユーザの操作を受け入れて、当該操作の内容を表す情報を、制御部11に出力する。表示部14は、ディスプレイ等であり、制御部11から入力される指示に従って画像を表示する。
【0015】
通信部15は、ネットワークや、携帯電話回線網を介して通信を行うためのインタフェースであり、例えばネットワークを介して受信されるデータを制御部11に出力し、また制御部11から入力される指示に従って、データを、ネットワークを介して外部のサーバ等に宛てて送出する。撮像部16は、カメラ等であり、撮像画像を逐次的に、制御部11に出力する。
【0016】
本実施の形態では、この画像処理装置1と通信可能に接続されるサーバ装置2は、画像処理装置1から、画像処理装置1で撮像され、記録された撮像画像のアップロードを受け入れる。
【0017】
次に、本実施の形態の制御部11の動作について説明する。本実施の形態において制御部11は、記憶部12に格納されたプログラムを実行することで、図2に例示するように、受入部21(受入手段に相当)と、記録部22と、認識部23(認識手段に相当)と、指示部24(指示手段に相当)と、推定部25(推定手段に相当)と、検証部26(検証手段に相当)とを機能的に含む構成を実現する。なお、各手段または各ステップの構成は、各部の構成を適宜、組み合わせたものであってもよく、その実現態様は特に制限されない。
【0018】
ユーザは、机などの平面上に撮像の対象となる対象物を配し、画像処理装置1(例えばスマートフォン)を操作して、このプログラムを起動する。以下、撮像部16は、撮像画像を逐次的に出力する。
【0019】
受入部21は、撮像部16から入力される、撮像部16にて撮像画像を逐次的に受け入れる。受入部21は、この撮像画像を、表示部14に表示出力することとしてもよい。
【0020】
記録部22は、ユーザの意思入力に応じて、受入部21が最後に受け入れた撮像画像を記憶部12に記録してよい。
【0021】
認識部23は、受入部21が逐次的に受け入れる撮像画像を処理の対象(以下処理対象画像と呼ぶ)として、当該処理対象画像に撮像された対象物の認識を行う。具体的にこの認識部23は、処理対象画像が三次元空間を撮像したものと仮定して、仮想的な三次元座標(XYZ直交座標)を設定する。
【0022】
すなわち認識部23は、処理対象画像から所定の特徴点(Scale-Invariant Feature Transform(SIFT)等で得られる画像特徴点でよい)を抽出して、対象物が配されている平面を検出し、この平面上の一点を原点とし、平面に平行にXY直交座標を決定する。例えば認識部23は、Y座標の正の方向を、座標の決定処理の際に最後に撮像された処理対象画像のカメラの視線方向を上記平面に射影した方向とし、X座標の正の方向を上記Y座標に直交し、Y座標の正の方向を見たとき、右方向となるように設定する。また認識部23は、上記平面の法線方向をZ座標正の方向として、仮想的なXYZ直交座標(ワールド座標と呼ぶ)を設定する。もっともこの座標の設定方法は一例であり、他の方法が採用されてもよい。
【0023】
さらに認識部23は、処理対象画像から対象物に関する所定の特徴点を抽出し、対象物が撮像されている範囲(例えば対象物に外接する直方体)をバウンディング・ボックスとして特定する。つまり認識部23は、このバウンディング・ボックスとなる多面体の頂点座標の組を特定して取得する。なお認識部23は、この直方体を、その底面が上記平面と一致するよう設定し、この直方体の底面の中心(ワールド座標系で表される)を原点とし、ワールド座標のX,Y,Z軸にそれぞれ平行なx′,y′,z軸となる座標系を仮に設定する。そして認識部23は、バウンディング・ボックスとなった多面体の一つの面を所定の方法で正面方向として選択し、上記仮に設定した座標系のx′,y′軸をz軸周りに回転して、y′軸が正面方向の法線方向(かつその正の方向がバウンディング・ボックスの正面から対象物に向かう向き)となるように設定して、当該回転角δを得る。認識部23は、この回転角δだけ回転した後のx′,y′軸の方向をそれぞれx,y軸とし、対象物に関するxyz直交座標系(対象物座標系)を設定する。
【0024】
ここで正面方向を選択する方法としては、例えばバウンディング・ボックスの面のうち、最初に取得された撮像画像の撮像方向に最も近く、かつ最も大きい面を正面とする方法や、ユーザにより人為的に正面を選択させる方法などがあるが、対象物の正面方向を定めることができれば、これらの例に限られるものではない。
【0025】
また認識部23は、予め登録されている参照用の商品画像と比較する等の処理により、対象物の名称(対象物が商品であれば商品名)等を認識してもよい。認識部23は、対象物の認識の結果に基づき対象物の形状を決定してもよい。この例では、認識部23は、あらかじめ認識の結果である対象物の名称等に対し、その形状を表す情報を関連づけた情報テーブルを参照して、対象物の形状を決定する。
【0026】
これらのワールド座標系や対象物座標系の設定、あるいは名称等の認識を行う処理は、一般的なAR(Augmented Reality)処理モジュール(例えば米国アップル社の提供するARKitや、米国グーグル社のARCoreなど)の物体認識機能を利用して、あるいは、機械学習(https://ai.googleblog.com/2020/03/real-time-3d-object-detection-on-mobile.htmlに記載の処理、ないしArsalan Mousavian, et al., 3D Bounding Box Estimation Using Deep Learning and Geometry, arXiv:1612.00496v2などに記載の処理など)によって実現できるものであるので、ここでの詳しい説明は省略する。なお、本実施の形態において、机などの平面に配された対象物とは、物体認識の支援を目的としたARマーカー等のパターン画像を呈する平面に配された対象物であってもよい。
【0027】
指示部24は、被写体である対象物に係る撮像方向をユーザに対し指示する。本実施の形態の例では、この指示部24は、図2に例示したように、オブジェクト設定部241と、指定方向決定部242と、指示表示部243とを含む。
【0028】
オブジェクト設定部241は、認識部23が得た、撮像された対象物を取り囲むバウンディング・ボックスに外接、または当該バウンディング・ボックスを内包する、所定形状の仮想的な包囲体(仮想包囲体)を設定する。ここで、仮想包囲体とは、例として、ARオブジェクトなどのXRオブジェクトに相当する。なお、本実施形態では、当該バウンディング・ボックスに外接する、または当該バウンディング・ボックスを内包するよう仮想包囲体を設定する場合について例示するが、対象物の、当該対象物上にある特徴点の部分を内包するよう仮想包囲体を設定すればよく、その態様に制限はない。
【0029】
例えばこのオブジェクト設定部241は、図3に例示するように、対象物(T)を撮像した処理対象画像に対し、中心を対象物座標系の原点とし、認識部23が設定したバウンディング・ボックス(B)に外接する半球(r)を仮想的に設定し、さらにこの半球の半径を所定の比率で拡大した半球(R)を設定する。なお、対象物の特徴点又はバウンディング・ボックス(B)を直接的に内包するよう当該半球(R)を設定してよい。
【0030】
またこの指示部24のオブジェクト設定部241は、認識部23により決定された対象物の形状に基づき仮想包囲体の形状を決定し設定してもよい。例として、対象物が矩形の箱状体をなすと決定された場合、指示部24は、当該形状を拡大して得られる矩形の仮想包囲体を設定してよい。また、例として、対象物が所定の比率を超えて扁平な形状であると決定された場合、指示部24は、半球状に代えて扁平な矩形の仮想包囲体を設定することとしてもよい。
【0031】
オブジェクト設定部241は、例として、さらにこの仮想包囲体の表面である半球表面を複数の面オブジェクトに分割して、各面オブジェクトを表す座標の情報を得る。ここで、半球表面とは、半球(R)を指す。また、ここで面オブジェクトのそれぞれは平面であってもよく、その場合半球表面は近似的に複数の面オブジェクト(メッシュに相当)に分割され、各面オブジェクトを表す座標の情報はそれぞれの頂点の座標の値(対象物座標系での値でよい)となる。この分割の方法は特に限定はされず、有限要素法を用いたメッシュ分割の方法や、Catmull-Clark分割(OpenSubDivライブラリなどを利用して実現できる)など、適宜な方法を採用すればよい。この例では、上記複数の面オブジェクトが、本発明における複数の仮想的なオブジェクトに相当する。なお、分割により得られる面オブジェクトの形状やサイズは一定でなくてもよく、互いに異なる形状やサイズのメッシュを含む複数の面オブジェクトに分割されてもよい。
【0032】
また指定方向決定部242は、対象物の撮像方向を指示する。例えば指定方向決定部242は、撮像方向を表す角度(対象物座標系のz軸周りのy軸方向からの回転角α′と、xy平面からの仰角β′と)をランダムに決定し、当該決定した撮像方向を表す情報(方向情報)を出力することとしてもよい。この指定方向決定部242の他の例については後に述べる。
【0033】
指示表示部243は、受入部21が撮像画像を受け入れるごとに、当該撮像画像に仮想包囲体を重ね合わせて表示する。
【0034】
この指示表示部243は、受入部21が撮像画像を受け入れるごとに、認識部23が設定したワールド座標系の、当該撮像画像における各軸方向を決定する。この処理は、特徴点の追跡の処理によって行うことができ、上述のAR処理モジュール等を利用して行うことができる。また指示表示部243は、このワールド座標系に基づいて対象物座標系を設定する(原点のワールド座標系での座標及びxy座標軸のXY座標系に対する回転角δを用いる)。
【0035】
そして指示表示部243は、指定方向決定部242が生成した方向情報に基づいて、オブジェクト設定部241が設定した面オブジェクトのうち、その法線方向(面オブジェクトが曲面であればそれに外接する六面体のうち最も広い面の法線に平行な方向)であって、対象物座標系の原点から遠ざかる方向(面方向と呼ぶ)を表す角度の情報が、上記方向情報に最も近い面オブジェクトを特定する。
【0036】
ここで面方向を表す角度の情報は、方向情報と比較可能な方法で定める。ここでは対象物座標系において面方向に平行で、対象物座標系の原点を通る線分の、対象物座標系のz軸周りの角度θ′と、原点を含むxy面からの仰角φ′とで表しておく。
【0037】
指示表示部243は、指示の内容である撮像方向と対応する方向情報に基づいて特定した面オブジェクトを強調して表示する。換言すると、指示表示部243は、上記生成した複数の面オブジェクトのうち、上記方向情報に基づいて特定した面オブジェクトと、そうでない面オブジェクトとを互いに区別可能な態様で、受入部21が受け入れた撮像画像に重ね合わせて表示する。例えば、指示表示部243は、指定方向決定部242が決定した方向情報に基づいて特定した面オブジェクトと、そうでない面オブジェクトとのそれぞれを、互いに異なる色で塗りつぶし、撮像画像に半透明合成する。
【0038】
これによりユーザは、球面状に配された複数の面オブジェクトのうち、色の異なっている方向が指示された方向であるとして認識できる。この例では、方向情報が表す方向とは異なる方向から撮像画像が取得されている間は、図4(a)に例示するように、他の方向に指示された方向情報が表す方向を表す面オブジェクト(P)が表示される。またユーザが、方向を調整して、方向情報が表す方向から撮像画像が取得されるようになると、図4(b)に例示するように、方向情報が表す方向に近い方向にある面オブジェクトの色が、対象物に重ね合わせて表示された状態となる。ユーザはこれを参照して、撮影画像の記録のための意思入力(シャッター操作など)を行ってよい。なお、この入力に応じて画像処理装置1が記録する撮像画像には、仮想包囲体などの画像の合成は行わない。
【0039】
なお、図3図4の例では、図示を見やすくするため、対象物の奥側にある面オブジェクトの図示を省略しているが、実際には奥側の面オブジェクトも描画されていてよい。さらに図4の例では、半球を緯度方向に4分割しているが、この分割数は2以上の整数であれば任意であり、さらに多くの分割がされていてもよい。経度方向についても同様に、分割数は2以上の整数であれば任意である。
【0040】
そしてユーザは、表示部14に表示された上記半透明合成結果の画像を参照しつつ、他の部分と色の異なる面オブジェクトを通じて対象物を見ることとなる撮像方向で、対象物の撮像を行うよう求められる。
【0041】
推定部25は、受入部21が受け入れた撮像画像に基づき撮像方向の推定を行う。この推定部25は、認識部23が設定したxyz直交座標系のy座標とカメラの視線方向(画像中央の縦方向)との角度差α(z軸周りの回転角)と、xy平面からのカメラの視線方向の角度(仰角)βとを得る。つまり、この推定は、カメラ座標系と対象物座標系との変換パラメータを取得することで行うことができる。
【0042】
検証部26は、指示の内容である撮像方向と推定の結果である撮像方向とに基づき対象物に係る所定の検証処理(以降、単に検証処理と呼ぶ)を行う。具体的な例として、この検証処理では、対象物の実在性を検証する。ここで実在性とは、対象物がユーザの手元に実在するか否かを示す。つまり、本実施形態の一例に係る検証処理は、対象物に係る実在性の検証の処理であり、ユーザがその場で対象物を撮像したか否かを検証することを指す。本実施の形態の例では、検証部26は、推定部25により推定された撮像方向と、指示部24が指示した撮像方向(指定方向決定部242が決定した方向情報の表す撮像方向)とに基づいて、検証処理を行う。
【0043】
例として、検証部26は、推定部25により推定された撮像方向である、対象物座標系のz軸周りのy軸方向からの回転角αとxy平面からの仰角βとの組(α,β)と、指定方向決定部242が決定した方向情報の表す対象物座標系のz軸周りのy軸方向からの回転角α′とxy平面からの仰角β′との組(α′,β′)との差Δを求める。
【0044】
この差Δは、角度差であるので、例えばα,α′について、
【数1】

として求めればよい。なおここでarctan2は、広く知られたatan2関数を意味する。
【0045】
検証部26はこの角度差Δが予め定めたしきい値を下回るときに、指定方向決定部242が決定した方向情報の表す撮像方向から、ユーザがその場で実際に対象物を撮像したと判断する。
【0046】
本実施の形態においてこの検証処理の内容は特に限定はされないが、撮像画像のメタデータ等に、検証処理の結果に基づく検証情報を含めることとしてもよい。このような検証情報としては例えば、当該検証結果を少なくとも示す情報に基づいて演算されるハッシュ値を、サーバ装置2に予め保持させた公開鍵で復号可能なように暗号化した情報等を用いることができる。
【0047】
[動作]
本実施の形態の一例に係る画像処理装置1は以上の構成を備えており、次のように動作する。なお、以下の例では、サーバ装置2がいわゆるC2Cマーケットプレイスサービス等の電子商取引サービスを提供するものであり、ユーザが当該C2Cマーケットプレイスサービスに出品する商品について、撮像画像のアップロードを受け入れるものとする。
【0048】
ユーザは、机などの平面上に出品する商品を配しておく。そしてユーザはスマートフォンを操作して、当該スマートフォンを画像処理装置1として機能させるためのプログラムを起動する。これにより当該スマートフォンが画像処理装置1として動作することとなる。
【0049】
画像処理装置1は、撮像部16で撮像した画像を撮像画像として、逐次的に表示部14に表示する処理を行うとともに、図5に例示する処理を開始し、撮像画像を処理対象画像として、当該処理対象画像から所定の特徴点を抽出して、対象物が配されている平面(机の面)を検出する(S11)。
【0050】
また画像処理装置1は、当該検出した平面上の一点を原点として、当該平面内にXY直交座標を設定し、さらに当該平面の法線方向をZ座標の方向として、仮想的なXYZ直交座標系であるワールド座標系を設定する(S12)。
【0051】
さらに画像処理装置1は、処理対象画像から対象物に関する所定の特徴点を抽出して、撮像されている対象物に外接する直方体をバウンディング・ボックスとして特定する。画像処理装置1は、当該バウンディング・ボックスとなった多面体の一つの面を、既に述べた例のような方法で正面方向として選択し、当該正面方向の面を法線方向とするy軸と、上記平面内にあって、y軸に直交するx軸と、Z軸に平行なz軸とを規定して、対象物に関するxyz直交座標系(対象物座標系)を設定する(S13)。
【0052】
また画像処理装置1は、ユーザに対して指示する、対象物の撮像方向を表す角度(対象物座標系のz軸周りのy軸方向からの回転角α′と、xy平面からの仰角β′と)を決定する(S14)。ここでは上記回転角α′,仰角β′を、0≦α′≦2π(ラジアン),0≦β′≦π/2(ラジアン)の範囲でそれぞれランダムに決定するものとする。
【0053】
画像処理装置1は、以下、撮像部16にて撮像された撮像画像を受け入れるごとに、当該撮像画像を、表示部14に表示出力しつつ、当該撮像画像内に撮像された対象物を取り囲むバウンディング・ボックスに外接、または当該バウンディング・ボックスを内包する、半球状の仮想的な包囲体(仮想包囲体)を設定する(S15)。
【0054】
画像処理装置1は、ステップS15で設定した半球の表面を、複数の面オブジェクトに分割する(S16)。ここでは各面オブジェクトは平面であるものとし、各面オブジェクトの形状と位置は、対象物座標系で表現しておく。
【0055】
また画像処理装置1は、特徴点のトラッキング等の方法で、受け入れた撮像画像におけるワールド座標系の各軸方向を決定し、またステップS14で決定した方向情報に基づいて、ステップS16で設定した面オブジェクトのうち、その法線方向(面オブジェクトが曲面であればそれに外接する六面体のうち最も広い面の法線に平行な方向)であって、対象物座標系の原点から遠ざかる方向(面方向と呼ぶ)を表す角度の情報が、上記方向情報に最も近い面オブジェクトを特定する(S17)。
【0056】
そして画像処理装置1は、当該方向情報に基づいて特定した面オブジェクトと、そうでない面オブジェクトとを互いに区別可能な態様で、撮像画像に半透明合成して表示する(S18)。
【0057】
画像処理装置1は、ユーザが所定の意思入力(画像を記録する意思を表す操作)を行うまで(S19:Noである間)、ステップS14からS18の処理を繰り返す。なお、ユーザが上記意思入力を行うことで(S19:Yes)、最後に取得した撮像画像を記録することとしてもよい(S20)。
【0058】
画像処理装置1は、当該撮像された対象物の撮像方向を推定する(S21)。画像処理装置1は、ステップS21で推定した撮像方向と、ステップS14で決定した撮像方向との差が予め定めたしきい値を下回るか否かを調べる(S22)。
【0059】
そしてこの差が予め定めたしきい値を下回るならば(S22:Yes)、画像処理装置1は、ステップS20で記録した撮像画像に、所定の検証情報を含める検証処理を実行する(S23)。また画像処理装置1は、ステップS22において、上記差が予め定めたしきい値を下回らない場合(S22:No)、ユーザに対して指定した撮像方向から撮像するよう求めるメッセージを表示し(S24:指示表示)、ステップS14、またはステップS15に戻って処理を続ける(A)。
【0060】
なお、画像処理装置1は、ステップS23の実行後も、さらに別の撮像画像を取得させるために、ステップS14に戻って処理を続けてもよい(B)。
【0061】
画像処理装置1は、予め定めた終了条件が満足されると、図5の処理を終了して、図5の処理の間に記録された撮像画像を、サーバ装置2へ送出してアップロードする。
【0062】
サーバ装置2では、撮像画像に所定の検証情報が含まれるか否かを判断して、検証情報が含まれる場合は、その旨の情報とともに撮像画像を、他のユーザに提示する。
【0063】
この例では、あるユーザが商品出品のために商品を撮像する際に、本実施の形態の画像処理装置1を用い、画像処理装置1が指定する方向から撮像した商品の撮像画像を少なくとも一つサーバ装置2へアップロードする。このとき、画像処理装置1は、画像処理装置1自身が指定した方向から商品の撮像画像が撮像されていることを以て当該撮像画像に検証情報を含める。
【0064】
これによりサーバ装置2は、当該商品を出品するユーザの手元にある商品の画像であることを検証する情報とともに、当該商品の画像を他のユーザ(購入希望者)に提示でき、購入希望者であるユーザは、この検証された画像を参照することで、安心して購入手続を行うことができるようになる。
【0065】
[方向指定の変形例]
ここまでに示した例では、画像処理装置1は、指定方向決定部242の処理(図5のステップS14の処理)として、指示する対象物の撮像方向をランダムに決定することとしていたが、本実施の形態はこれに限られない。
【0066】
指示部24は、例として、推定部26による推定の結果である撮像方向に基づき他の方向に係る追加の指示を行ってもよい。このとき、推定部25は、追加の指示を経て受け入れた対象物の撮像画像に基づき撮像方向に係る追加の推定を行う。検証部26は、当該追加の指示に係る他の方向と、追加の推定の結果である撮像方向とにさらに基づいて、検証処理を行う。なお、指示部24は、追加の指示および推定を複数回、繰り返し行ってもよい。
【0067】
例えば画像処理装置1は、図5に例示した処理を繰り返し実行して複数の撮像画像を得る場合、過去に撮像されて記録された画像の撮像時に利用した方向を避けて他の方向を指示してもよい。
【0068】
この例では、指定方向決定部242は、過去(例えば過去所定回数分あるいは、今回プログラムが起動されて以降)に決定した方向情報を記憶しておく。そして指定方向決定部242は、指示する撮像方向を表す角度である、対象物座標系のz軸周りのy軸方向からの回転角α′と、xy平面からの仰角β′とを決定する際に、0≦α′≦2π(ラジアン),0≦β′≦π/2(ラジアン)の範囲でそれぞれランダムに仮決定し、当該ランダムに仮決定した角度と、記憶している、過去に決定した方向情報に含まれる角度との差(上記(1)式により求められる)がいずれも予め定めたしきい値を超えるときに、当該仮決定した角度が表す撮像方向を、推奨方向情報として出力する。また仮決定した角度と、過去に決定した角度とが予め定めたしきい値を超えないときには、撮像方向を表す角度をランダムに仮決定する処理から繰り返す。
【0069】
またランダムに仮決定した角度と、予め定められた角度との差が予め定めたしきい値を超えないときには、撮像方向を表す角度をランダムに仮決定する処理から繰り返してもよい。ここで予め定められた角度は、例えば対象物の正面方向(正面を表す方向を予め取得しておく。なお、正面を特定する方法は、例えば設定したバウンディング・ボックスの最も広い面の法線方向としておくこととしてもよい)や側面、背面など、比較的一般的に撮像時に用いられる方向を表すものとして複数定めておく。この例によると、ランダムに決定した方向が、一般的な方向となってしまうことを防止できる。
【0070】
さらに指定方向決定部242は、過去(例えば過去所定回数分あるいは、今回プログラムが起動されて以降)に撮像され、記録された撮像画像に含まれる対象物の撮像方向の推定結果に基づいて指示する撮像方向を決定してもよい。例えば指定方向決定部242は、過去に記録された撮像画像に基づいて推定部25が推定した対象物の撮像方向の情報を参照し、当該推定された撮像方向とは異なる撮像方向(他の方向)を表す方向情報を生成する。具体的な例として、この他の方向は、前回記録した撮像画像に基づいて推定された撮像方向に対し、対象物を挟んで対向する方向としてもよい。また、前回の撮像方向が、対象物座標系のz軸周りのy軸方向からの回転角α′、xy平面からの仰角β′で表される方向であれば、指定方向決定部242は、新たな撮像方向を表すα″,β″をそれぞれ、α″=α′+πおよびβ″=β′としてもよい。なお、当該追加の指示に係る他の方向S′は、図6に例示されるように推定部25による推定の結果である対象物Tの撮像方向Sに対して所定の対称面Pを介して鏡像の位置にある関係(鏡像関係)となっていてもよい。ここで対称面Pは、対象物の中心(対象物を取り囲むバウンディング・ボックスの中心でよい)を通る面として設定してよい。図6(a)はXY平面の法線方向から見た平面図であり、図6(b)はZY平面の法線方向から見た右側面図である。図6(a),(b)の例では説明を簡便にするため、対称面PはZY平面に平行としている。また上記他の方向は、推定部25による推定の結果である撮像方向と相対する方向であってもよく、推定部25による推定の結果である撮像方向と対応する面オブジェクトと隣接する他の面オブジェクトと対応する方向であってもよい。
【0071】
なおこの場合に、今回プログラムが起動されて以降に撮像され、記録された撮像画像に基づいて推定部25が推定した対象物の撮像方向の情報が表す角度との差((1)式で演算すればよい)が予め定めたしきい値を下回る場合は、画像処理装置1は、撮像の処理を終了してもよい。
【0072】
さらに別の例では、指定方向決定部242は、記録した撮像画像に基づいて対象物の三次元形状の再現に必要となる撮像方向を決定し、既に撮像されている撮像方向とは異なる撮像方向の一つを、対象物を撮像する他の方向として決定してもよい。なお、画像処理装置1は、撮像方向が異なる複数の撮像画像に基づき対象物の三次元形状の再現を行う再現手段に相当する再現部31をさらに含んでよい。なお、この再現部31は、三次元形状の再現を行わない場合には、必ずしも必要でないため、図2において破線で示している。
【0073】
このような処理は、例えば西山学,ほか「高精細3次元形状復元のための多視点カメラワーク最適化」(https://vision.kuee.kyoto-u.ac.jp/japanese/happyou/pdf/Nishiyama_2004_P_173.pdf)などに開示された方法を用いるなどして行うことができる。
【0074】
さらに指定方向決定部242は、対象物の種類を考慮して撮像方向を決定してもよい。この例では、指定方向決定部242は、認識部23が取得した対象物の形状の情報などを参照し、当該形状の情報と、今回プログラムが起動されて以降など、過去に撮像され、記録された撮像画像に基づいて推定部25が推定した対象物の撮像方向の情報とから指示する撮像方向を決定する。
【0075】
例えば指定方向決定部242は、認識部23が取得した対象物の形状が円柱状であれば、推定部25が推定した対象物の撮像方向の情報が表す角度に対して、仰角を異ならせた撮像方向の情報を指示する撮像方向として決定する。つまり、対称の形状では同じ画像となってしまうことを避けたものである。同様に、N角柱の形状であれば、過去に撮像された方向に対し、z軸周りの回転角において2π/N×m(mは自然数)のラジアンの角度の方向となる方向を避けて撮像方向を決定することとしてもよい。
【0076】
また指定方向決定部242は、認識部23が対象物の名称などの情報を取得したときには、当該名称に関連付けて予め指定された撮像方向を避けて指示する撮像方向を決定してもよい。あるいは指定方向決定部242は、既に用いられた撮像方向に対して、認識部23が取得した名称に関連付けて予め指定された角度だけ変更した方向を、指示する撮像方向として決定してもよい。
【0077】
この例によれば、例えば商品名「遊技用カード」に対して予めz軸周りにπ/7,2π/7,3π/7…だけ移動した角度を指示する撮像方向として決定するよう設定されている場合、指定方向決定部242は、撮像画像に基づいて推定された撮像方向に対し、z軸周りにπ/7,2π/7,3π/7…だけ移動した角度を逐次的に指示することとなる。この例によると、商品の特性に応じた角度を避け、あるいは特性に応じて決められた角度で撮像を指示できる。
【0078】
[仮想包囲体形状の変形例]
また本実施の形態において仮想包囲体の形状は、上述のような半球体に限られない。仮想包囲体は、例えば図7に例示するような六角柱や八角柱などの多角柱形状であってもよいし、サッカーボールのような、多角形を組み合わせた形状であってもよい。図7の例では、六角柱(H)形状の例を示している。
【0079】
さらに仮想包囲体を複数の面オブジェクトに分割する場合に、分割された面オブジェクトは、互いに異なる形状のものを含んでもよい。なお、柱状体のように、比較的広い面を有する仮想包囲体においては、面オブジェクトへの分割方法によっては、互いに同じ方向の法線を有する複数の面オブジェクトへ分割されてしまう場合も考えられる。なお、複数の面オブジェクトのそれぞれは、矩形を呈してよく、三角形を呈してよく、同一の面積を呈する必要はなく、その幾何学的特徴および面積に制限はない。
【0080】
そこで、画像処理装置1は、仮想包囲体を面オブジェクトへの分割した後、互いに同じ方向の法線を有する複数の面オブジェクトがある場合には、当該同じ方向の法線を有する複数の面オブジェクトを一つの面オブジェクトとしてグループ化してもよい。つまり、画像処理装置1は、推奨方向情報に含まれる方向の方向に最も近い法線を有する面オブジェクトを選択したとき、当該選択した面オブジェクトと同じ方向の法線を有する他の面オブジェクトがある場合には、当該他の面オブジェクトも選択されたものとして扱う。
【符号の説明】
【0081】
1 画像処理装置、2 サーバ装置、11 制御部、12 記憶部、13 操作部、14 表示部、15 通信部、16 撮像部、21 受入部、22 記録部、23 認識部、24 指示部、25 推定部、26 検証部、241 オブジェクト設定部、242 指定方向決定部、243 指示表示部。
図1
図2
図3
図4
図5
図6
図7