以下に、図面を参照して、この発明の好適な実施の形態を詳しく説明する。なお、以下の実施形態では、本発明を特定の状況に対応したアプリケーションの一機能として説明しているが、あくまで例示であり、本発明の範囲を限定する趣旨のものではない。
<第1の実施形態>
本実施形態では、読み取り台に上向きに配置した対象物から情報を読み取り、対象物に記載されている情報をユーザが選択することができるユーザーインターフェースを提供する情報処理装置を例に挙げて説明する。なお、情報処理装置で扱う対象物の一例としては、名刺や、紙に印刷された文書が挙げられる。
図1(a)は、本実施形態における情報処理装置100のハードウェア構成図である。図1(a)において、CPU(Central Processing Unit)101は、各種処理のための演算や論理判断などを行い、システムバス107に接続された各構成要素を制御する。ROM(Read−Only Memory)102は、後述するフローチャートに示す各種処理手順を含むCPUによる制御のためのプログラムデータを格納する。RAM(Random Access Memory)103は、データメモリであり、CPU101の上記プログラムのワーク領域、エラー処理時のデータの退避領域、上記制御プログラムのロード領域などを有する。記憶装置104はハードディスクや情報処理装置の外部に接続された記憶装置などであり、本実施形態に係る電子データなどの各種データやプログラムを記憶する。CPU101は、ROM102もしくは記憶装置104に記憶された処理ステップやプログラムを読み出して実行する。これらの処理ステップやプログラムは、ディスクデバイスを始めとする記憶媒体から読み出されたり、ネットワーク通信によって取得されたりして、ROM102もしくは記憶装置104に記憶されることができる。その際、CPU101がコントローラとして機能する。本実施形態において、CPU101は、図3などのフローチャートに示された工程を実行することで、後述する情報処理装置100の各機能部として動作する。
撮像装置105は、ユーザが操作を行う作業空間を撮像して撮像画像を取得する。また、撮像装置105は、名刺などの対象物を高解像度で撮像した画像(以下プレ撮像画像と呼ぶ)を取得する。取得した撮像画像は、入力画像として情報処理装置に入力され、情報処理装置で行なう処理で用いられる。投影装置106は、後述する読み取り台120に、プレ撮像画像、電子データ、ユーザーインターフェース部品などを含む投影画像を投影する。例えば、投影装置106は、名刺などの対象物を表すプレ撮像画像や、後述するようにユーザに通知を行なう通知オブジェクトを含む投影画像を投影する。投影装置106は、対象物を表すプレ撮像画像の上に通知オブジェクトの画像を重畳させた投影画像を投影することが可能である。なお、本実施形態では、投影装置106は1つの投影部を備えているものとして説明するが、複数の投影部を備え、各投影部が上記の対象物の画像や通知オブジェクトの画像を投影するような構成でもよい。
本実施形態では、基本的に撮像装置105の位置と撮像画角と投影装置106の位置と投影画角とが固定の場合を例にして説明する。具体的には撮像画角と投影画角とが同じであるものとして説明する。ただし、後述するように、最初に読み取り台上に置かれた名刺を読み取ってプレ撮像画像を得る際には撮像画角や位置は適宜変更されることになる。また、本実施形態では、撮像装置105及び投影装置106が、情報処理装置100内に構成される例を説明しているが、撮像装置および投影装置は、有線あるいは無線のインターフェースによって接続された外部装置でも良い。
図1(b)は、本実施形態における情報処理装置100の外観の一例を示す図である。本実施形態では、読み取り台120に対し、撮像装置105は上部に設置され、読み取り台120に上向きに置かれた対象物121を俯瞰撮像する。そして、情報処理装置は、読み取り台120の上面の読み取り対象面を読み取り、読み取り対象面に記載されている情報を文字認識する。また、投影装置106も同様に、読み取り台120の上面あるいは対象物121上に、対象物の画像を含むユーザーインターフェースを構成する画像や、情報処理装置100が生成した電子データ等を含む投影画像などを投影する。本実施形態では、撮像装置105と投影装置106は同一の筐体で構成される。ただし、撮像装置105の設置位置、撮像画角、投影装置106の設置位置、投影画角の情報を情報処理装置が予め把握していれば、それぞれ別の場所に設置されてもよい。また、本実施形態では、投影装置106が読み取り台の上面に投影を行うことによって、ユーザに対する通知を行うが、これに限らず、一般的なディスプレイなどの表示装置を構成しても良い。
図1(c)は、本実施形態における情報処理装置100の機能構成を表す図である。情報処理装置100は、撮像制御部111、検出部112、認識部113、保持部114、判定部115、設定部116、通知部117、投影制御部118、生成部119を有する。本実施形態では、これらの各機能部は、CPU101がROM102に格納された各プログラムをRAM103に展開し実行することでその機能を実現する。ただし、これらの機能部をハードウェアで実現する情報処理装置によっても同様に実現可能である。
撮像制御部111は、カメラやビデオカメラ等の撮像装置105を制御する。撮像制御部111は撮像装置105を制御して、読み取り台全体を撮像する。その後、撮像制御部111は、後述する検出部112の検出結果に基づいて読み取り台で上向きに置かれた対象物を撮像装置105に撮像させ、プレ撮像画像を取得する。その後、撮像制御部111は、読み取り台の上面に投影画像が投影される領域が撮像範囲に含まれるような撮像画角となるように撮像装置105を制御し、投影画像が投影される領域を含む撮像画像を取得する。 検出部112は、プレ撮像画像を取得するために、読み取り台上面全体を撮像した撮像画像から読み取り台上の対象物を検出する。撮像制御部111においては、検出部112によって検出された対象物が撮像範囲となるように撮像画角を制御して撮像することで、対象物を表すプレ撮像画像が取得されることになる。
また、検出部112は、投影画像が投影される領域を撮像した撮像画像から、対象物を表す対象物画像(すなわち、投影画像に含まれるプレ撮像画像)の読み取り台上面における位置を示す座標情報を取得する。また、その対象物画像に記載されている情報が存在する領域の読み取り台上面における位置を示す座標情報を取得する。ここで、対象物画像に記載されている情報とは、文字や画像など対象物の読み取り対象面に記載されている情報である。
また、検出部112は、撮像画像から、ユーザが読み取り台に置いた指を検出し、読み取り台上面における指の位置を示す座標情報を取得する。本実施形態では、撮像装置105で撮像した対象物のプレ撮像画像を含む投影画像を投影する。この投影画像が投影される領域を含む領域を撮像装置105が撮像することで、撮像画像が得られる。そして、投影画像上の所定の領域をユーザがタッチすることで所定の領域がユーザによって指定される。つまり、ユーザが読み取り台に置いた指についても撮像装置105で撮像した撮像画像に含まれて得られることになるのである。なお、ここでは検出部が検出する座標情報は読み取り台上面における位置を示す情報として説明したが、投影画像に含まれている位置を示す情報として取得する形態でもよい。また、検出部112が撮像画像から読み取り台上面における座標位置を取得する例を説明したが、これに限られるものではない。例えば、赤外線カメラを用いて、赤外線照射によって赤外線反射率の違いから対象物の位置を示す座標情報や指の位置を示す座標情報を求めてもよいし、超音波センサなどの専用のセンサを用いてもよい。
認識部113は、文字認識(OCR処理)を行う対象領域を決定する。例えば認識部113は、撮像制御部111に投影画像が投影される領域を撮像させて得られた撮像画像を入力する。そして入力した撮像画像に含まれる対象物画像の領域に含まれる情報を文字認識する。あるいは、前述のように対象物を高解像度で撮像したプレ撮像画像自体を、文字認識を行なう対象として決定してもよい。認識部113は、決定した対象領域の画像を、文書ファイルとして入力するとともに、入力した文書内容の文字認識を行う。
保持部114は、情報処理装置100が対象物から読み取った情報を保持する。保持する情報の例としては、認識部113が、文字認識処理を実行した画像データ(文書ファイル)と、文字認識した情報の蓄積データとが挙げられる。なお、文書ファイルを保持するか否かは、ユーザにより設定可能としてもよい。蓄積データは、対象物の種類毎に分類されて蓄積することができる。例えば、名刺Aに含まれるデータとして、TEL、名前などのデータが名刺Aに対応する蓄積データとして蓄積され、名刺Bに含まれるデータとして、TEL、名前などのデータが名刺Bに対応するデータとして蓄積されることになる。
判定部115は、検出部112によって検出された対象物画像における対象物の読み取り対象面から選択可能な情報を、認識部113によって文字認識した結果を用いて判定する。本実施形態では、対象物画像に記載されている情報に電話番号、ファクシミリ番号、住所、メールアドレス、URLがあるかを、認識部113が文字認識した結果を用いて判定する。
設定部116は、判定部115による判定により、読み取り対象面から選択可能な情報があると判定された場合、ユーザがその情報の操作を指示できる領域を設定する。本実施形態では、ユーザは投影画像上に指を置くことで指示を行なう。また、本実施形態では、前述のように投影領域と撮像領域とは同じ領域であるものとする。従って、設定部116は、読み取り台上の座標において対象物の画像を投影した場合の投影画像における、ユーザが操作を指示できる領域を設定する。なお、ユーザが操作を指示できる領域の座標系は投影画像内における座標系でもよいし、読み取り台上における座標系でもよい。
通知部117は、情報処理装置100を操作するユーザに通知する内容を制御する。本実施形態では、読み取り対象面から選択可能な情報が含まれていると判定部115によって判定された場合、通知部117は、設定部116による設定に応じて、ユーザが情報の操作を指示できる領域をユーザに通知する。本実施形態では、通知部117は、生成部119に、読み取り台上面に通知オブジェクトを表す画像を生成させ、投影制御部118がその生成された画像を読み取り台に投影する。本実施形態では、通知オブジェクトとは、ユーザが、読み取り対象面の情報を選択するためのユーザーインターフェースを構成する画像や文字である。具体的には、読み取り対象面から選択可能な属性項目(例えば、「住所」、「電話番号」など)を示す画像や文字である。詳細は後述する。この通知オブジェクトを表す画像は、投影画像に含まれる形で(合成されて)投影されることになる。
投影制御部118は、投影装置106を制御し、通知部117によって通知された、通知オブジェクトを表す画像を含む投影画像を読み取り台上面に投影する。投影装置106が投影する画像は、前述のように、プレ撮像画像や通知オブジェクトなどを含む画像である。
生成部119は、保持部114に保持されている蓄積データに基づいて、電子データを生成して保持部114に保持する。また、生成された電子データは、投影制御部118によって読み取り台上に投影することができる。ここで電子データとは、例えば保持部に保持されている蓄積データ(つまり、対象物から文字認識処理によって文字認識されたデータ)である。また、ユーザによって適宜修正されてもよい。
以下では、本実施形態を実現する環境の一例として、読み取り台に上向きに置かれた名刺を撮像し、撮像した名刺の内容を認識して印刷用の電子データを生成するアプリケーションを説明する。一例としては、名刺の記載事項を文字認識して、入場証を発券するような利用形態が挙げられる。もちろん、この例に限られるものではなく、様々な形態で利用することができる。
図2(a)は、読み取り台120上に名刺が置かれており、かつ、ユーザが操作するインターフェースが投影画像202として投影された状況の一例を示している。読み取り台120には、読み取り対象物である名刺201が載置され、読み取り対象物を撮像したプレ撮像画像に基づいて投影画像202が投影されている。ユーザ200は投影画像202に含まれている対象物画像上に指を置くことで、読み取り対象物である名刺から選択する情報を指定する。
図2(b)は投影画像202の一例を示す図である。オブジェクト203は読み取り対象物である名刺201を撮像したプレ撮像画像を拡大した画像、すなわち対象物画像である。オブジェクト204は、ユーザに情報の選択を促す通知である。オブジェクト205はユーザが選択した情報を表示する領域である。図2(b)でのオブジェクト205では、ユーザはまだ情報を選択していないため、空欄になっている。なお、このオブジェクト205には、前述のように生成部119によって生成された電子データが投影画像に含まれて投影されることになる。
本実施形態では、前述のように認識部113によって対象物画像に記載されている記載事項を文字認識して対象物に記載されている情報が得られる形態である。ここで、認識部113による認識結果が必ずしも正しい認識結果とならない場合がある。そこで、図2(b)に示すように、ユーザに所定の項目(ここでは電話番号を例に挙げる)を指定させることで、その指定に応じて情報処理装置100は、認識部113が認識した電話番号を電子データとして投影する。図には示していないが、情報処理装置100は、ユーザに対してこの装置が認識している電話番号が正しいかの確認を促すメッセージを併せて投影してもよい。また、ソフトウェアキーボードなどを併せて投影し、修正があればユーザからの修正操作を受け付けるような構成としてもよい。本実施形態では、このような場面において、情報処理装置が、ユーザが本来指定したかった項目ではなく、隣接して記載されている別の項目を誤って選択してしまうことを抑制する技術である。詳細は後述する。
図3は、本実施形態の情報処理装置が実行する、読み取り対象物である名刺の情報を読み取り、印刷用の電子データを生成する処理の流れの一例を示すフローチャートである。なお、以下で説明する処理は、CPU101がROM102などに格納されたプログラムをRAM103に読み出して実行することにより実現される。
なお、図3の処理の開始時点においては、図2(a)に示すように、読み取り台120上に投影画像202が投影されている状態であるものとする。すなわち、読み取り台120全体を撮像した撮像画像から名刺201の領域を検出部112が検出し、その検出した領域を高解像度で撮像したプレ撮像画像を取得する。そして、図2(a)および(b)で示すようなプレ撮像画像を含む投影画像202が読み取り台120上に投影されている状態であるものとする。
まず、ステップS301では、撮像制御部111が、撮像装置105を制御して読み取り台上を撮像させることにより、読み取り台上を撮像した撮像画像を取得する。本実施形態では撮像装置105の撮像画角と投影装置106の投影画角とは同じであるものとするので、撮像画像は投影画像が投影されている領域を撮像した画像となる。本実施形態では、撮像制御部111は、ステップS301以降、一定の周期で読み取り台上の撮像させる制御を繰り返し、続く処理ステップにおいて、各機能部は、撮像制御部111の制御により撮像された最新の撮像画像に基づいて処理を実行する。なお、ここでは撮像制御部111が動画を撮像する制御を行なう例を示す。各機能部は動画の最新のフレームを取得して後述する各処理を行う。
次に、ステップS302において、検出部112が、ステップS301において取得された撮像画像を基に対象物を検出する。すなわち、検出部112は、撮像画像における対象物画像の領域を検出し、その位置情報を取得する。図2(a)や図2(b)に示すように、投影画像202には読み取り対象物である対象物画像以外の画像が含まれているので、ステップS302においては撮像画像から対象物画像の領域を検出する処理を行なう。撮像画像から対象物画像の領域を検出する検出方法には、例えば、次のような方法がある。まず、ステップS302で撮像制御部111が取得した撮像画像に、SobelやLaplacianフィルタといった公知のエッジ強調手法を適用することにより、対象物の四辺に該当する画素を際立たせる。そして、検出部112は、ハフ変換や最小近似法などの公知の直線抽出手法を用いて、対象物の四辺を示す位置情報を求める。撮像装置105の画角と読み取り台120の相対位置が固定であれば、撮像画像中の対象物の四辺の位置情報と、読み取り台120における対象物の相対位置と、から対象物の読み取り台の上面における座標情報を得ることができる。なおこの方法は一例であり、赤外線カメラを用いて、赤外線照射によって読み取り台120と文書の赤外線反射率の違いから対象物の読み取り台上での座標情報を求めてもよいし、超音波センサなどの専用のセンサを用いてもよい。検出部112が読み取り台上での対象物を検出する処理であればどのような手法でもよい。
ステップS303において検出部112は、読み取り対象面に含まれる情報が存在する領域をステップS302で検出した対象物画像の領域の中から検出する。本実施形態では、検出部112は、対象物画像(名刺画像)の領域の中から文字が存在する領域を検出し、文字領域の境界を読み取り台の上面における座標情報として取得する。ただし、ステップS303では、対象物画像の領域の中から、文字コンテンツがありそうな領域を抽出できればよい。文字コンテンツがありそうな領域を抽出する技術として、特開2009−123206号が知られている。この技術では、入力画像からエッジ画像を生成し、エッジ画像から連結画素塊(Connected Component:以後CCと言う。)を生成する。生成したCCの大きさなどの特徴量から、文字らしいと推定されるCCの座標情報を候補としてハフ変換した結果、直線に並ぶ候補CC群を文字領域と判定する。ただし、文字コンテンツの存在を推定する方法は、これに限らない。例えば、ステップS302で検出した対象物画像の領域を撮像画像から切り出し、切り出した画像を二値化した画像、もしくは、エッジを抽出した画像を生成し、対象物画像内部に存在する画素塊を何らかの文字コンテンツが存在する領域としてもよい。
図4(a)は、投影画像202を撮像した撮像画像の中から対象物画像の領域を切り出した画像を示している。図4(a)において、点線で囲まれた領域は、ステップS303の処理によって推定された文字領域を示している。
ステップS304では、対象物に含まれる情報の操作が指示できる領域を設定する処理が認識部113、判定部115、および設定部116などによって実行される。この処理の詳細は後述する。
ステップS305において検出部112は、読み取り台上のユーザの指の位置からユーザの操作指示を検出する。すなわち、検出部112は、撮像画像の中からユーザの指の位置を検出する。そして、その検出した指の位置に基づいてユーザの操作指示を検出する。本実施形態では、ユーザが指を置いた位置から、読み取り対象物である名刺の読み取り面に記載されている情報のうち1つを選択し、保持部114に保持する。この処理の詳細は後述する。
ステップS306において生成部119は、保持部114に保持されている情報に基づいて、電子データを生成する。本実施形態では、名刺から選択した情報を印刷可能なフォーマットに変換する。さらに、変換したフォーマットをプリンタに送信し、印刷する。
図5は、上述したフローチャートのステップS304において実行される、対象物に含まれる情報の操作の指示ができる領域を設定する処理の一例を示すフローチャートである。以下、図5を参照して操作指示領域設定処理を説明する。
本実施形態では、図2(b)に示す、読み取り対象物の名刺を拡大投影したオブジェクト203の上にユーザが指を置くと、その指の位置に対応する情報が選択されることになる。名刺内には電話番号や住所などの複数の情報が含まれているため、どの情報を操作対象とするかは、ユーザの指の位置に基づいて決定される。このユーザの指の位置と取り込む情報とを対応付けるために、操作指示領域を設定する。操作指示領域とは、ユーザの操作指示を受け付ける領域のことである。操作指示領域は、例えば読み取り台の座標情報によって特定される。後述するように操作指示領域には、処理対象の値が関連付けられる。そして、操作指示領域をユーザが指で指定することで、その操作指示領域に関連付けられている処理対象の値が選択されることになるのである。以下、図5のフローチャートに基づいて詳細に説明する。
ステップS501において認識部113は、撮像画像に含まれる対象物画像における、ステップS303で検出された文字領域を解析して、記載されている文字情報を認識する。ステップS502において認識部113は、認識した文字情報を単語単位に分割する。本実施形態では、文字情報に含まれる空白を基に分割を行う。図4(b)において、実線で囲まれた領域はステップS502の処理によって推定された単語位置を示している。
以降のステップS503からステップS506までは、ステップS502で分割された単語を処理対象としてフローを進める。ステップS503において判定部115は、処理対象の単語が読み取りたい情報の項目名であるかを判定する。項目名とは、その情報の種別の特定が可能な情報であり、たとえば”Tel”,”Phone”,”電話”などの予め定義されている文字列のことである。一方、電話番号そのものの数値の文字列は、読み取りたい情報の値になる。
本実施形態では、保持部114にあらかじめ項目名の一覧を定義しておく。そして、判定部115は、保持部114に保持されている一覧に処理対象の単語が含まれるかを判定する。処理対象の単語と一致する項目名が保持部114で保持する一覧に含まれるのであれば、ステップS504へ遷移する。
ステップS504において設定部116は、処理対象の単語を項目名として設定し、かつ、処理対象の単語の右に隣接した単語をその項目名の値として設定する。なお、本実施形態では左から右に文字が記載されている形態を想定した場合の例を示している。従って、例えば右から左に向けて文字が記載されるような形態においては、ステップS504の処理としては、処理対象の単語の左に隣接した単語をその項目名の値として設定することになる。具体的な例を挙げて説明する。ステップS503において処理対象の単語が図4(b)の単語401”Tel”であったとする。この場合、定義されている項目名と一致する単語であるので、この処理対象の単語401は項目名と判定される。この結果、処理はステップS504へ遷移する。ステップS504において設定部116は、単語401の文字情報を項目名として設定する。さらに設定部116は、処理対象の単語401の右に隣接する単語402(“044−123−4567”の文字列)を、その項目名の値として設定する。
続くステップS505において設定部116は、ユーザが値を操作指示することができる領域である操作指示領域を項目名の位置に設定する。図4(b)の例においては、値(単語402)をユーザが操作指示できる操作指示領域を、項目名である単語401の位置に設定する。これにより、電話番号の種別を意味する”Tel”の部分をユーザが指で指示することにより操作指示をすることで、電話番号の値(“044−123−4567”の文字列)への操作が可能になる。このように、本実施形態においては操作指示領域を項目名の値の位置ではなく項目名の位置に設定する。このように設定することでユーザが指定した項目とは異なる項目が情報処理装置によって選択されてしまうことを抑制することができる。なお、後述するが、本実施形態では操作指示領域を項目名の位置に設定することが一つの特徴であり、操作指示領域を項目名の値の位置に設定することを除外するわけではない。つまり、操作指示領域として項目名と項目名の値との両方を設定する形態でもよい。以下では、操作指示領域を項目名の位置に設定する形態に基づいて説明する。
ステップS506において判定部115は、対象物画像中に存在する全ての単語に対し、項目名の判定処理(ステップS503に該当)を実行したかを判定する。YESならば、ステップS507へ、NoならばステップS503へ遷移する。
ステップS507において判定部115は、対象物画像に含まれる単語のうち、項目名でも、値でもない、未定義と判定された単語をグループ化する。本実施形態では単語の配置された位置から、同一の行と判別できる単語群、及び、同一の行同士が上下で隣接している単語群をグループ化して一つの単語として設定する。図4(c)において、実線で囲まれた領域はステップS507の処理によってグループ化した単語を示している。なお、図4(c)においては既に項目名および値として判定された単語は実線で囲まれていない。
以降のステップS508からステップS510までは、グループ化した単語を処理対象の単語としてフローを進める。ステップS508において判定部115は、処理対象のグループ化した単語が、値の分類ルールに適合するかを判定する。適合する場合は、ステップS509に遷移する。ここで、分類ルールとは値の文字情報から情報の種別を判別するための条件である。たとえば、文字情報に地名が含まれていれば、その情報の種別は住所と判別できる。また、文字情報が”http”や”www”で始まれば、その情報の種別はURLと判別できる。つまり、項目名に明示がなくても項目の種別を判別することができる場合がある。本実施形態では、保持部114は、ステップS508で用いられる分類ルールを予め定義した一覧を保持する。そして、判定部115は、保持部114で保持する分類ルールに基づいてステップS508の判定を行なう。
ステップS509において設定部116は、処理対象のグループ化した単語の項目名として分類ルールで定義されている項目を設定し、処理対象のグループ化した単語を、その項目名の値として設定する。例えば、図4(c)において、処理対象のグループ化した単語403がステップS508において入力された場合、文字情報に地名を含むので住所の分類ルールに当てはまると判定され、ステップS509へ遷移する。そして、ステップS509では、処理対象のグループ化した単語403の項目名として、“住所”を設定し、処理対象のグループ化した単語403の文字情報を“値”として設定する。そして、ステップS510に遷移する。
ステップS510において設定部116は、ユーザが値の操作指示できる操作指示領域を、ステップS509で設定した“値”の位置の近辺に設定する。また、設定部116は、その操作指示ができる位置にアイコンを投影する指示も合わせて設定する。つまり、情報の種別を意味する単語が対象物画像に存在しないので、情報の種別を意味する通知オブジェクト(例えば“Adress”と標記されたアイコン)を、値の位置に近辺に投影する指示を設定する。投影制御部118は、この指示が設定されると、対応する位置に通知オブジェクトを含めた投影画像を投影する。これにより、ユーザが投影されたアイコンの位置を指で指定すると、このグループ化した単語の“値”が選択されることになる。ステップS510において設定する操作指示領域の位置は、対象物画像でほかの単語が存在しない範囲とする。具体的には、認識部が抽出した位置情報と重ならない位置とする。
その後、ステップS511において処理対象のグループ化した単語について全て処理が行なわれた場合は処理を終了し、そうでない場合はステップS507に戻り処理を繰り返す。
以上、ステップS304において実行される、対象物に含まれる情報の操作の指示ができる操作指示領域を設定する処理を説明した。本実施形態では、ステップS304にて、図6に示すような操作指示領域の設定情報が生成され、保持部114に設定される。図6に示す設定情報は、項目名と値と操作指示領域と通知オブジェクトの有無とが関連付けられたテーブル情報の一例を示している。
図7は、上述したフローチャートのステップS305において実行される、ユーザの操作指示を検出する処理の一例を示すフローチャートである。本実施形態は、図2(c)のように投影画像に指を置くと、その名刺に含まれている情報を選択する。
ステップS601において検出部112は、ユーザが読み取り台に置いた指を検出する。そして、読み取り台上における指の位置を示す位置情報を取得する。指の位置の検出は、撮影画像から指に対応する領域を検出することで求めても良いし、赤外線などを用いて検出してもよい。
なお、ここではユーザの指の位置に基づく処理を例に挙げて説明したが、ユーザが所定の位置を指定する形態であればいずれの形態でもよい。例えば、指ではなく、指示棒などで所定の位置を指定する形態でもよいし、レーザポインタのような指示装置を用いて指示する形態でもよい。
ステップS602において判定部115は、ステップS601で検出したユーザの指の位置が情報の操作を指示できる操作指示領域に含まれるかを判定する。YesならステップS603へ、NoならS601へ遷移する。
ステップS603において通知部117は、図6に示す操作指示領域の設定情報を参照して、操作指示領域に関連付けられた“値”を投影制御部118に出力する。投影制御部118は、この“値”を例えば投影画像に含めて投影して、ユーザに正しい値であるかを確認させる。
以下、図2(b)および図6の例において、対象物画像に項目名が存在する単語と、対象物画像に項目名が存在しない単語について具体例を説明する。まず、対象物画像に項目名が存在する単語を説明する。対象物画像に項目名が存在する単語は、図2(b)の場合には、電話番号、FAX番号、メールアドレスである。ここでは電話番号を例に挙げる。図2(b)の対象物画像(オブジェクト203)においては、電話番号の項目名”Tel”と値”044−123−4567”との両方が記載されている。ここで図2(b)に示すように電話番号を選択するように要求された場合、ユーザは、項目名”Tel”の部分を指で押さえる(図2(c)の指示206参照)。その結果、操作対象の値は項目名”Tel”ではなく、図6の設定情報に示すように、その項目名”Tel”に関連付けられている電話番号の値となる。この結果、図2(c)の領域207に示すように、操作対象となった値が投影画像に含まれて投影され、読み取り台上に表示されることになる。なお、値の位置もその情報の操作を指示できる操作指示領域に含めてよい。たとえば、電話番号の値”044−123−4567”の部分を指で押さえても、電話番号の値を操作対象としたことになる。
なお、項目名は一般的に各行の端部や単語の端部に記載されている場合が多い。つまり、値のように、(項目名を含む)文字列の中央部分に記載されている領域を選択する場合に比べて、端部に記載されている項目名を選択する場合の方が、他の選択候補が減ることになる。本実施形態の例では、例えば項目名”Tel”の左側は空白領域になっている。つまり、項目名を選択する形態を採用すると、他の選択候補の数が、値を選択する場合に比べて少なくなるので、誤選択がされてしまうことを抑制することができる。
次に、対象物画像に項目名が存在しない単語について具体例を説明する。対象物画像に項目名が存在しない単語は、図2(b)の場合、住所とURLとが該当する。図2(b)の対象物画像には、住所の値は存在するが、住所の項目名は存在しないため、情報の種別の判定は分類ルールに基づいて判定している。この場合、例えば図8(a)に示すように、ユーザが住所を選択操作する場合は、その項目名を示すアイコンなどの通知オブジェクトを他の文字情報と重ならない位置に生成し、投影制御部118が投影する(図8(a)通知オブジェクト701参照)。この場合、ユーザは通知オブジェクト701を指で押さえることで、図6の設定情報に示すように、操作対象の値はその通知オブジェクトに関連付けられている住所の値となる。この結果、図8(b)の領域702に操作対象となった値が表示される。
なお、通知オブジェクトが投影されるタイミングは任意のタイミングとすることができる。例えば、図3のステップS304の処理が終了した時点で設定されている全ての通知オブジェクトを投影してもよい。あるいは、ユーザに所定の項目を選択させる場合に、その所定の項目に関連する項目の通知オブジェクトのみを、その選択を要求するタイミングで投影する処理でもよい。例えば、図8(a)に示すように、ユーザに住所の選択を要求するような場合に、その要求に連動して、住所に関連する通知オブジェクトが投影される形態を採用してもよい。
以上説明したように、本実施形態では、読み取り台に置かれた対象物を、撮像制御部を用いて上方から読み取る際に、対象物に予め定義された項目名が含まれているか判定する。そして、項目名が対象物に含まれている場合は、その項目名の位置を、その項目名に対応する値をユーザが操作指示できる領域と設定する。一方、項目名がない場合は、他の情報の位置と重ならない位置に通知オブジェクトを投影し、この通知オブジェクトの位置を、その通知オブジェクトに対応する値をユーザが操作指示できる領域と設定する。従ってユーザは、項目名や通知オブジェクトを押さえるだけで、処理対象の情報(値)を選択することができる。
<実施形態1の変形例1>
以下、実施形態1の変形例を説明する。変形例1は、対象物画像に項目名が存在しているケースであっても、通知オブジェクトを投影する形態である。対象物画像に項目名が存在しているケースであっても、その項目名に対応する値の操作を指示する操作指示領域として、他の情報の位置と重ならない位置を設定し、その位置に通知オブジェクトを投影してもよい。このような処理によれば項目名が小さく、ユーザが指で押さえるには十分でないサイズの場合においても、誤った情報を装置が選択してしまうことを抑制することができる。
図9(a)は項目名”tel”を意図する通知オブジェクト901を他の情報と重ならない位置に投影する例を示している。ユーザは通知オブジェクト901を指で押さえることで、操作対象の値は、電話番号の値となり、図9(b)の領域902に操作対象となった値が表示される。
<実施形態1の変形例2>
変形例2は、第1の実施形態と変形例1において設定した、操作指示領域の位置をユーザの位置に基づいて決定する形態である。例えば図10(a)のように、操作対象の値の位置より上に通知オブジェクトを配置すると、読み取りたい単語がユーザの指の下に隠れてしまう。このため、ユーザは操作対象が正しく認識されたかの判断ができない。よって、通知オブジェクトをユーザが指定する際に隠れない位置に通知オブジェクトを配置する。例えば、図10(a)に示すように、投影画像に対してユーザが下側に位置しているとすると、通知オブジェクトを、読み取りたい単語の上側ではない位置、例えば、読み取りたい値より下に配置する。
図10(b)は“FAX”を意図する通知オブジェクトに指を置いた時に、FAXの値とユーザの指が重ならないよう、“FAX”を示す通知オブジェクトを、“FAX”の値の位置より下に投影した例を示している。
以上説明したように変形例2では、ユーザの指の位置に重ならない位置に配置オブジェクトを配置する。これにより、ユーザは、通知オブジェクトの表示に従うだけで、ユーザによって操作対象が正しく認識された状態で操作したい情報を指定することができる。
<その他の実施形態>
なお、上記の処理は、撮像装置で読み取り台上の対象物をプレ撮像し、プレ撮像した画像を投影装置を用いて投影し、その投影画像を撮像装置で撮像した画像に基づく処理を例に挙げて説明したが、この形態に限られるものではない。例えば、スキャナで読み取った画像をタッチパネルディスプレイに表示し、このタッチパネルディスプレイ上に表示される画像からユーザが操作指示をするような形態でもよい。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。