以下、添付図面を参照しながら、本発明に係る情報処理装置、情報処理システム、情報処理方法およびプログラムの実施の形態を詳細に説明する。なお、以下の実施の形態により本発明が限定されるものではない。また、各実施の形態は、内容を矛盾させない範囲で、適宜組み合わせることができる。また、以下では、本発明に係る情報処理装置を、複合機(MFP:Multifunction Peripheral)に適用した場合を例に挙げて説明するが、これに限定されるものではない。なお、複合機とは、印刷機能、複写機能、スキャナ機能、及びファクシミリ機能のうち少なくとも2つの機能を有する装置である。
図1は、本実施形態の情報処理システムのハードウェア構成例を示すブロック図である。情報処理システム100は、図1に示すように、MFP1と、サーバ装置30とを備える。MFP1は、インターネットなどのネットワーク40を経由してサーバ装置30と接続されている。図1では、サーバ装置30と接続されるMFPの台数が1台である場合を例示しているが、これに限らず、MFPの台数は任意である。
図1に示すように、MFP1は、コピー機能、スキャナ機能、ファクス機能、プリンタ機能などの各種の機能を実現可能な本体10と、ユーザの操作に応じた入力を受け付ける操作部20と、を備える。本体10と操作部20は、専用の通信路300を介して相互に通信可能に接続されている。通信路300は、例えばUSB(Universal Serial Bus)規格のものを用いることもできるが、有線か無線かを問わず任意の規格のものであってよい。
なお、本体10は、操作部20で受け付けた入力に応じた動作を行うことができる。また、本体10は、クライアントPC(パーソナルコンピュータ)等の外部装置とも通信可能であり、外部装置から受信した指示に応じた動作を行うこともできる。
次に、本体10のハードウェア構成について説明する。図1に示すように、本体10は、CPU11と、ROM12と、RAM13と、HDD(ハードディスクドライブ)14と、通信I/F(インタフェース)15と、接続I/F16と、エンジン部17とを備え、これらがシステムバス18を介して相互に接続されている。
CPU11は、本体10の動作を統括的に制御する。CPU11は、RAM13をワークエリア(作業領域)としてROM12またはHDD14等に格納されたプログラムを実行することで、本体10全体の動作を制御し、上述したコピー機能、スキャナ機能、ファクス機能、プリンタ機能などの各種機能を実現する。
通信I/F15は、クライアントPC(パーソナルコンピュータ)等の外部装置と通信するためのインタフェースである。接続I/F16は、通信路300を介して操作部20と通信するためのインタフェースである。
エンジン部17は、コピー機能、スキャナ機能、ファクス機能、および、プリンタ機能を実現させるための、汎用的な情報処理及び通信以外の処理を行うハードウェアである。例えば、原稿の画像をスキャンして読み取るスキャナ(画像読取部)、用紙等のシート材への印刷を行うプロッタ(画像形成部)、ファクス通信を行うファクス部などを備えている。更に、印刷済みシート材を仕分けるフィニッシャや、原稿を自動給送するADF(自動原稿給送装置)のような特定のオプションを備えることもできる。
次に、操作部20のハードウェア構成について説明する。図1に示すように、操作部20は、CPU21と、ROM22と、RAM23と、フラッシュメモリ24と、通信I/F25と、接続I/F26と、操作パネル(以下、操作パネルを「表示画面」ともいう。)27とを備え、これらがシステムバス28を介して相互に接続されている。
CPU21は、操作部20の動作を統括的に制御する。CPU21は、RAM23をワークエリア(作業領域)としてROM22またはフラッシュメモリ24等に格納されたプログラムを実行することで、操作部20全体の動作を制御し、ユーザから受け付けた入力に応じた情報(画像)の表示などの後述する各種機能を実現する。
通信I/F25は、ネットワーク40を介してサーバ装置30と通信するためのインタフェースである。接続I/F26は、通信路300を介して本体10と通信するためのインタフェースである。
操作パネル27は、ユーザの操作に応じた各種の入力を受け付けるとともに、各種の情報(例えば受け付けた入力に応じた情報、MFP1の動作状況を示す情報、設定状態などを示す情報など)を表示する。この例では、操作パネル27は、タッチパネル機能を搭載した液晶表示装置(LCD)で構成されるが、これに限られるものではない。例えばタッチパネル機能が搭載された有機EL表示装置で構成されてもよい。さらに、これに加えて又はこれに代えて、ハードウェアキー等の操作部やランプ等の表示部を設けることもできる。
次に、サーバ装置30のハードウェア構成について説明する。図1に示すように、サーバ装置30は、CPU31と、ROM32と、RAM33と、HDD(ハードディスクドライブ)34と、通信I/F(インタフェース)35とを備え、これらがシステムバス38を介して相互に接続されている。
CPU31は、サーバ装置30の動作を統括的に制御する。CPU31は、RAM33をワークエリア(作業領域)としてROM32またはHDD34等に格納されたプログラムを実行することで、サーバ装置30全体の動作を制御し、後述の各種機能を実現する。また、通信I/F35は、ネットワーク40を介して操作部20と通信するためのインタフェースである。
次に、MFP1のソフトウェア構成について説明する。図2は、MFP1のソフトウェア構成の一例を示す模式図である。図2に示すように、本体10は、アプリ層101と、サービス層102と、OS層103とを有する。アプリ層101、サービス層102、および、OS層103の実体は、ROM12やHDD14等に格納されている各種ソフトウェアである。CPU11が、これらのソフトウェアを実行することにより、各種の機能が提供される。
アプリ層101のソフトウェアは、ハードウェア資源を動作させて所定の機能を提供するためのアプリケーションソフトウェア(以下の説明では、単に「アプリ」と称する場合がある)である。例えばアプリとしては、コピー機能を提供するためのコピーアプリ、スキャナ機能を提供するためのスキャナアプリ、ファクス機能を提供するためのファクスアプリ、プリンタ機能を提供するためのプリンタアプリなどが挙げられる。
サービス層102のソフトウェアは、アプリ層101とOS層103との間に介在し、アプリに対し、本体10が備えるハードウェア資源を利用するためのインタフェースを提供するためのソフトウェアである。より具体的には、ハードウェア資源に対する動作要求の受付、動作要求の調停を行う機能を提供するためのソフトウェアである。サービス層102が受け付ける動作要求としては、スキャナによる読み取りやプロッタによる印刷等の要求が考えられる。
なお、サービス層102によるインタフェースの機能は、本体10のアプリ層101だけではなく、操作部20のアプリ層201に対しても提供される。すなわち、操作部20のアプリ層201(アプリ)も、サービス層102のインタフェース機能を介して、本体10のハードウェア資源(例えばエンジン部17)を利用した機能を実現することができる。
OS層103のソフトウェアは、本体10が備えるハードウェアを制御する基本機能を提供するための基本ソフトウェア(オペレーティングシステム)である。サービス層102のソフトウェアは、各種アプリからのハードウェア資源の利用要求を、OS層103が解釈可能なコマンドに変換してOS層103に渡す。そして、OS層103のソフトウェアによりコマンドが実行されることで、ハードウェア資源は、アプリの要求に従った動作を行う。
同様に、操作部20は、アプリ層201と、サービス層202と、OS層203とを有する。操作部20が備えるアプリ層201、サービス層202及びOS層203も、階層構造については本体10側と同様である。ただし、アプリ層201のアプリにより提供される機能や、サービス層202が受け付け可能な動作要求の種類は、本体10側とは異なる。アプリ層201のアプリは、操作部20が備えるハードウェア資源を動作させて所定の機能を提供するためのソフトウェアであってもよいが、主として本体10が備える機能(コピー機能、スキャナ機能、ファクス機能、プリンタ機能)に関する操作や表示を行うためのUI(ユーザインタフェース)の機能や、MFP1で実行される名刺管理機能を提供するためのソフトウェアである。
なお、本実施形態では、機能の独立性を保つために、本体10側のOS層103のソフトウェアと操作部20側のOS層203のソフトウェアが互いに異なる。つまり、本体10と操作部20は、別々のオペレーティングシステムで互いに独立して動作する。例えば、本体10側のOS層103のソフトウェアとしてLinux(登録商標)を用い、操作部20側のOS層203のソフトウェアとしてAndroid(登録商標)を用いることも可能である。
以上のように、本実施形態のMFP1において、本体10と操作部20は別々のオペレーティングシステムで動作するため、本体10と操作部20との間の通信は、共通の装置内のプロセス間通信ではなく、異なる装置間の通信として行われる。操作部20が受け付けた入力(ユーザからの指示内容)を本体10へ伝達する動作(コマンド通信)や、本体10が操作部20へイベントを通知する動作などがこれに該当する。ここでは、操作部20が本体10へコマンド通信を行うことにより、本体10の機能を使用することができる。また、本体10から操作部20に通知するイベントには、本体10における動作の実行状況、本体10側で設定された内容などが挙げられる。
また、本実施形態では、操作部20に対する電力供給は、本体10から通信路300を経由して行われているので、操作部20の電源制御を、本体10の電源制御とは別に(独立して)行うことができる。
次に、MFP1およびサーバ装置30の機能について説明する。図3は、本実施形態に係るMFPおよびサーバ装置の機能構成例を示す図である。以下では、MFP1で実行される名刺管理機能を提供するアプリ(以下の説明では、「名刺管理アプリ」と称する)に関する機能を中心に説明する。
まずMFP1側の機能について説明する。図3に示すように、操作部20は、受付部210と、表示制御部211と、起動処理部212と、第1画像取得部213と、第2画像取得部214と、名刺画像取得部215と、名刺画像決定部216と、第1判定部217と、第2判定部218と、記憶部219と、名刺情報取得部220と、名刺管理部221とを有する。
受付部210は、各種の入力を受け付ける。この例では、受付部210は、タッチパネル機能が搭載された操作パネル27の画面(画像が表示される面)に対するユーザのタッチ操作による入力を受け付ける。
表示制御部211は、各種の画像を操作パネル(表示画面)27に表示する制御を行う。MFP1の起動直後やユーザが何も操作を行っていない状態においては、表示制御部211は、図4に示すようなホーム画面を操作パネル27に表示する制御を行う。図4に示すように、ホーム画面上には、複数種類のアプリと1対1に対応する複数のアイコンが表示される。本実施形態では、操作部20のアプリ層201には、前述の名刺管理アプリが搭載されており、名刺管理アプリに対応するアイコン50がホーム画面上に表示される。
表示制御部211は、後述する第1判定部217および第2判定部218のうち少なくとも一方を用いて判定した結果に基づいて、各種の画像を表示する操作部20の表示画面27に表示させる画像を異ならせる制御を行う。
表示制御部211は、後述する第1判定部217の判定結果が同じ位置である、または後述する第2判定部218の判定結果が同じ画像である、のどちらか一方または両方である場合に、例えば図13に示すように、表面名刺画像と裏面名刺画像とが同じ画像である可能性が高い名刺画像に対してその旨を通知する画像を操作部20の表示画面27に表示する。なお、通知する画像は任意に設定することができる。
表示制御部211は、表面名刺画像と裏面名刺画像とが同じ画像である可能性が高い名刺画像がある場合に、例えば図12に示すように、複数の名刺の裏面を第2画像データとして再度読み込むか否かを選択する画像と、名刺画像を記憶部に記憶させるか否かを選択する画像とを前記操作部20の表示画面27に表示する。なお、選択する画像は任意に設定することができる。
表示制御部211は、例えば図13に示すように、関連付けた表面名刺画像または裏面名刺画像の何れか一方を破棄し、残りの名刺画像を記憶部に記憶させるか否かを選択する画像を操作部20の表示画面27に表示する。なお、選択する画像は任意に設定することができる。
表示制御部211は、例えば図11に示すように、第1判定部217で判定した結果が同じ位置でない、および第2判定部218で判定した結果が同じ画像でない場合に、読み取り完了を選択する画像を操作部20の表示画面27に表示する。なお、選択する画像は任意に設定することができる。
表示制御部211は、例えば図11に示すように、関連付けた表面名刺画像と裏面名刺画像とを複数並べて操作部20の表示画面27に表示する。
表示制御部211は、例えば図8に示すように、複数の表面名刺画像を操作部20の表示画面27に表示すると共に、名刺ごとに切り分けた表面名刺画像の枚数を操作部20の表示画面27に表示する。なお、表面名刺画像の枚数を操作部20の表示画面27に表示させないようにしてもよい。
起動処理部212は、ユーザからの入力に応じて、何れかのアプリを起動する。本実施形態では、ホーム画面が表示されている状態において、何れかのアイコンのタッチ操作による入力を受付部210で受け付けた場合、起動処理部212は、タッチ操作が行われたアイコンを起動する制御を行う。例えばユーザが、名刺管理アプリに対応するアイコン50をタッチする操作を行った場合、起動処理部212は、名刺管理アプリを起動する制御を行う。この例では、名刺管理アプリが起動すると、図5に示すように、表示制御部211は、名刺読取の指定、名刺確認の指定、名刺印刷の指定、ホーム画面への遷移の何れかの選択を促す選択画面61を表示する制御を行う。なお、選択画面は任意に設定することができる。
また、図5に示す、名刺管理アプリの選択画面61が表示されている状態において、例えばユーザが、名刺読取を指定するアイコン71をタッチする操作を行った場合、表示制御部211は、例えば図6に示すように、読み取り条件設定画面62と読取開始を指定するアイコン72を表示する制御を行う。この例では、読み取り条件として、Color/Mono Color、解像度、濃度などを指定するアイコンと、さらに詳細設定画面を表示させるアイコンと、読取開始を指定するアイコン72を表示する制御を行う。
図3に戻って説明を続ける。第1画像取得部213は、ユーザからの名刺読取開始の指定に応じて、スキャナの読み取り面(コンタクトガラス)上に配置した複数の名刺の表面を第1画像データとして取得する。例えば図6に示す読み取り条件設定画面62において、読取開始を指定するアイコン72をタッチする入力を受け付けた場合、第1画像取得部213は、例えば図7に示すような、スキャナの読み取り面(コンタクトガラス)上に配置した複数の名刺の表面名刺画像81a〜84aを第1画像データ91として取得する。そして、表示制御部211は、第1画像取得部213が第1画像データ91を取得した場合、図8に示す取得後のプレビュー画面63に、例えば、取得した複数の名刺の表面名刺画像81a〜84aを表示する制御を行う。また、この例では、「4枚読み取れました。」という取得した名刺の枚数を表示する制御を行う。なお、表示する文言等は任意に設定することができる。また、この例では、第1画像データの再度読取開始を指定するアイコン73と、次に複数の名刺の裏面読取開始を指定するアイコン74を表示する制御を行う。
図3に戻って説明を続ける。第2画像取得部214は、ユーザからの名刺読取開始の指定に応じて、スキャナの読み取り面(コンタクトガラス)上に配置した複数の名刺の裏面(例えば、ユーザが手動で名刺を裏返した面)を第2画像データとして取得する。例えば図8に示す取得後のプレビュー画面63において、裏面読取開始を指定するアイコン74をタッチする入力を受け付けた場合、第2画像取得部214は、例えば図9および図10に示すような、スキャナの読み取り面(コンタクトガラス)上に配置した複数の名刺の裏面名刺画像81b〜84b、81c〜84cを第2画像データ92、93として取得する。
表示制御部211は、第2画像取得部214が第2画像データ92を取得した場合、例えば図11に示す取得後のプレビュー画面64に、先に取得した複数の名刺の表面名刺画像81a〜84aと共に、取得した複数の名刺の裏面名刺画像81b〜84bを表示する制御を行う。また、この例では、「読み取り完了しました。」と表示する制御を行う。なお、表示する文言等は任意に設定することができる。また、この例では、第2画像データの再度読取開始を指定するアイコン75と、読み取り完了を指定するアイコン76を表示する制御を行う。また、例えば図12に示す取得後のプレビュー画面65に、先に取得した複数の名刺の表面名刺画像81a〜84aと共に、取得した複数の名刺の裏面名刺画像81c〜84cを表示する制御を行う。この例では、「読み取り完了しました。」と表示する制御を行う。なお、表示する文言等は任意に設定することができる。また、この例では、第2画像データの再度読取開始を指定するアイコン75と、このまま名刺画像を記憶させることを指定するアイコン77を表示する制御を行う。
また、表示制御部211は、第2画像取得部214が第2画像データ93を取得した場合、例えば図13に示す取得後のプレビュー画面66に、先に取得した複数の名刺の表面名刺画像81a〜84aと共に、取得した複数の名刺の裏面名刺画像81c〜84cを表示する制御を行う。また、この例では、「正しく読み取れていない可能性があります。」と表示する制御を行う。すなわち、ユーザに対して、取得後のプレビュー画面66に、表示された表面名刺画像82aと裏面名刺画像82cが同じ名刺画像である旨を通知するためである。なお、表示する文言等は任意に設定することができる。また、この例では、第2画像データの再度読取開始を指定するアイコン75と、一方の画像を破棄して画像を記憶させることを指定するアイコン78を表示する制御を行う。つまり、実際の名刺が表面名刺画像82aと裏面名刺画像82cが同じであった場合には、同じ名刺画像を重複して記憶させることがないようにすることができる。
図3に戻って説明を続ける。名刺画像取得部215は、第1画像取得部213で取得した複数の名刺の表面名刺画像81a〜84aである第1画像データ91を解析して名刺を示す表面名刺画像を抽出して、抽出した表面名刺画像81a〜84aごとに対応した位置情報を生成して取得する。また、名刺画像取得部215は、第2画像取得部214で取得した複数の名刺の裏面名刺画像81b〜84b、81c〜84cである第2画像データ92、93を解析して名刺を示す裏面名刺画像を抽出して、抽出した裏面名刺画像81b〜84b、81c〜84cごとに対応した位置情報を生成して取得する。
ここで、図7を参照して、第1画像データ91を解析して名刺を示す表面名刺画像を抽出して、抽出した表面名刺画像81a〜84aごとに対応した位置情報を生成して取得する方法について説明する。図7は、複数の名刺の表面名刺画像と第1画像の関係の一例を示す図である。
名刺画像取得部215は、第1画像データ91に対して座標(x,y)情報を保持している。例えば、図7において、第1画像データ91には左上座標(0,0)を原点として、右下座標(40,30)が任意に設定されていると仮定する。なお、第1画像データ91の左上下と右上下とに示された数値は、第1画像データ91における座標「(x,y)=(幅,高さ)」を表している。名刺画像取得部215は、第1画像データ91に対して画像認識処理を実行し、複数の名刺の表面名刺画像81a〜84aを認識する。その際に、認識した表面名刺画像81a〜84aの位置座標(x,y)から位置情報を生成して取得する。
図7の例では、表面名刺画像81aは、始点座標「(x,y)=(5,5)」、終点座標「(x,y)=(15,11)」の領域に位置しており、表面名刺画像81aの重心位置の座標は、「(x,y)=(10,8)」である。また、表面名刺画像82aは、始点座標「(x,y)=(7,17)」、終点座標「(x,y)=(17,23)」の領域に位置しており、表面名刺画像82aの重心位置の座標は、「(x,y)=(12,20)」である。また、表面名刺画像83aは、始点座標「(x,y)=(24,6)」、終点座標「(x,y)=(34,12)」の領域に位置しており、表面名刺画像83aの重心位置の座標は、「(x,y)=(29,9)」である。また、表面名刺画像84aは、始点座標「(x,y)=(25,18)」、終点座標「(x,y)=(35,24)」の領域に位置しており、表面名刺画像84aの重心位置の座標は、「(x,y)=(30,21)」である。
このように、名刺画像取得部215は、第1画像データ91に対して画像認識処理を実行して、複数の名刺の表面名刺画像81a〜84aを認識すると共に、第1画像データ91に対する座標(x,y)情報から、認識した表面名刺画像81a〜84aの始点座標、終点座標、重心位置の座標を生成して取得する。そして、名刺画像取得部215は、取得した表面名刺画像81a〜84aの重心位置の座標を後述する名刺画像決定部216、第1判定部217に受け渡す。なお、画像認識処理としては任意の画像認識技術を適用することができる。
名刺画像取得部215は、取得した表面名刺画像81a〜84aの始点座標、終点座標に基づいて、第1画像データ91から名刺ごとの表面名刺画像を抽出して、複数の表面名刺画像81a〜84aを取得する。そして、複数の表面名刺画像81a〜84aと当該名刺画像81a〜84aの名刺位置情報(座標)とを対応付けて保持すると共に、後述する記憶部219に記憶させる。
また、一般に名刺の大きさ(サイズ)は、おおよそ略同一である(規格により同じ大きさで統一されている)という特徴がある。そのため、予め名刺の大きさ(名刺の画像領域)を任意に設定しておくことで、始点座標または終点座標の何れか一方を認識して座標を取得することで、第1画像データ91から任意に設定した名刺の大きさに基づき、名刺ごとの画像を抽出して、複数の表面名刺画像81a〜84aを取得することもできる。
なお、名刺画像取得部215が保持している第1画像データ91に対する座標(x,y)情報は、スキャナの読み取り面(コンタクトガラス)の座標(x1,y1)情報と同じである。つまり、第1画像取得部213がスキャナの読み取り面(コンタクトガラス)上に配置した複数の名刺の表面を第1画像データ91として取得する際に、名刺の表面名刺画像81a〜84aの位置座標を同時に認識する方法でも複数の表面名刺画像81a〜84aと当該表面名刺画像に対応した名刺位置情報を取得することができる。例えば、図7はスキャナの読み取り面(コンタクトガラス)上に配置した複数の名刺の表面であると仮定する。図7において、y軸方向が主走査方向で、x軸方向が副走査方向であるとする。スキャナが名刺の表面を走査する際に、図7に示したような座標(x1,y1)情報を同時に取得する。
次に、図9および図10を参照して、第2画像データ92、93を解析して名刺を示す裏面名刺画像81b〜84b、81c〜84cを抽出して、抽出した表面名刺画像81a〜84aごとに対応した位置情報を生成して取得する方法について説明する。図9および図10は、複数の名刺の裏面名刺画像と第2画像の関係の一例を示す図である。
名刺画像取得部215は、第2画像データ92に対して座標(x,y)情報を保持している。例えば、図9において、左上座標(0,0)を原点として、右下座標(40,30)が任意に設定されていると仮定する。なお、第2画像データ92の左上下と右上下とに示された数値は、第2画像データ92における座標「(x,y)=(幅,高さ)」を表している。名刺画像取得部215は、第2画像データ92に対して画像認識処理を実行し、複数の名刺の裏面名刺画像81b〜84bを認識する。その際に、認識した裏面名刺画像81b〜84bの位置座標(x,y)から位置情報を生成して取得する。
例えば、裏面名刺画像81bは、始点座標「(x,y)=(6,4)」、終点座標「(x,y)=(16,10)」の領域に位置しており、裏面名刺画像81bの重心位置の座標は、「(x,y)=(11,7)」である。また、裏面名刺画像82bは、始点座標「(x,y)=(6,17)」、終点座標「(x,y)=(16,23)」の領域に位置しており、裏面名刺画像82bの重心位置の座標は、「(x,y)=(11,20)」である。また、裏面名刺画像83bは、始点座標「(x,y)=(23,5)」、終点座標「(x,y)=(33,11)」の領域に位置しており、裏面名刺画像83bの重心位置の座標は、「(x,y)=(28,8)」である。また、裏面名刺画像84bは、始点座標「(x,y)=(24,18)」、終点座標「(x,y)=(34,24)」の領域に位置しており、裏面名刺画像84bの重心位置の座標は、「(x,y)=(29,21)」である。
同様に、名刺画像取得部215は、第2画像データ93に対して座標(x,y)情報を保持している。名刺画像取得部215は、第2画像データ93に対して画像認識処理を実行し、複数の名刺の裏面名刺画像81c〜84cを認識する。その際に、認識した裏面名刺画像81c〜84cの位置座標(x,y)から位置情報を生成して取得する。
例えば、裏面名刺画像81cは、始点座標「(x,y)=(6,4)」、終点座標「(x,y)=(16,10)」の領域に位置しており、裏面名刺画像81cの重心位置の座標は、「(x,y)=(11,7)」である。また、裏面名刺画像82cは、始点座標「(x,y)=(7,17)」、終点座標「(x,y)=(17,23)」の領域に位置しており、裏面名刺画像82cの重心位置の座標は、「(x,y)=(12,20)」である。また、裏面名刺画像83cは、始点座標「(x,y)=(23,5)」、終点座標「(x,y)=(33,11)」の領域に位置しており、裏面名刺画像83cの重心位置の座標は、「(x,y)=(28,8)」である。また、裏面名刺画像84cは、始点座標「(x,y)=(24,18)」、終点座標「(x,y)=(34,24)」の領域に位置しており、裏面名刺画像84cの重心位置の座標は、「(x,y)=(29,21)」である。
このように、名刺画像取得部215は、第2画像データ92、93に対して画像認識処理を実行して、複数の名刺の裏面名刺画像81b〜84b、81c〜84cを認識すると共に、第2画像データ92、93に対する座標(x,y)情報から、認識した裏面名刺画像81b〜84b、81c〜84cの始点座標、終点座標、重心位置の座標を生成して取得する。そして、名刺画像取得部215は、取得した裏面名刺画像81b〜84b、81c〜84cの重心位置の座標を後述する名刺画像決定部216、第2判定部218に受け渡す。なお、画像認識処理としては任意の画像認識技術を適用することができる。
名刺画像取得部215は、取得した裏面名刺画像81b〜84b、81c〜84cの始点座標、終点座標に基づいて、第2画像データ92、93から名刺ごとの裏面名刺画像を抽出して、複数の裏面名刺画像81b〜84b、81c〜84cを取得する。そして、複数の裏面名刺画像81b〜84b、81c〜84cと当該名刺画像81b〜84b、81c〜84cの名刺位置情報とを対応付けて保持すると共に、後述する記憶部219に記憶させる。
また、一般に名刺の大きさ(サイズ)は、おおよそ略同一である(規格により同じ大きさで統一されている)という特徴がある。そのため、予め名刺の大きさ(名刺の画像領域)を任意に設定しておくことで、始点座標または終点座標の何れか一方を認識して座標を取得することで、第2画像データ92から任意に設定した名刺の大きさに基づき、名刺ごとの画像を抽出して、複数の裏面名刺画像81b〜84b、81c〜84cを取得することもできる。
なお、名刺画像取得部215が保持している第2画像データ92、93に対する座標(x,y)情報は、スキャナの読み取り面(コンタクトガラス)の座標(x1,y1)情報と同じである。つまり、第2画像取得部214がスキャナの読み取り面(コンタクトガラス)上に配置した複数の名刺の裏面を第2画像データとして取得する際に、名刺の裏面名刺画像81b〜84b、81c〜84cの位置座標を同時に認識する方法でも複数の裏面名刺画像81b〜84b、81c〜84cと当該裏面名刺画像に対応した名刺位置情報を取得することができる。例えば、図9および図10はスキャナの読み取り面(コンタクトガラス)上に配置した複数の名刺の表面であると仮定する。図9および図10において、y軸方向が主走査方向で、x軸方向が副走査方向であるとする。スキャナが名刺の表面を走査する際に、図9および図10に示したような座標(x1,y1)情報を同時に取得する。
図3に戻って説明を続ける。名刺画像決定部216は、複数の表面名刺画像81a〜84aと複数の裏面名刺画像81b〜84b、81c〜84cとを、それぞれに対応した名刺位置情報に基づき、複数の表面名刺画像81a〜84aごとに複数の裏面名刺画像81b〜84b、81c〜84cの何れか1つを関連付けて1つの名刺画像81〜84(図11、12参照)として名刺ごとに決定する。
名刺画像決定部は、表面名刺画像の位置情報と裏面名刺画像の位置情報が予め設定した閾値の範囲内にあるものを関連付けて1つの名刺画像と決定する。
ここで、図7、図9および図10を参照して、表面名刺画像81a〜84aと、裏面名刺画像81b〜84b、81c〜84cとを関連付けて1つの名刺画像81〜84として名刺ごとに決定する方法について説明する。
名刺画像決定部216は、名刺画像取得部215が取得した表面名刺画像81a〜84aと当該名刺画像81a〜84aに対応付けられた重心位置の座標(位置情報)を受け付けて保持している。
上述したように、図7において、例えば、表面名刺画像81aの重心位置の座標は、「(x,y)=(10,8)」である。また、表面名刺画像82aの重心位置の座標は、「(x,y)=(12,20)」である。また、表面名刺画像83aの重心位置の座標は、「(x,y)=(29,9)」である。また、表面名刺画像84aの重心位置の座標は、「(x,y)=(30,21)」である。
また、名刺画像決定部216は、名刺画像取得部215が取得した裏面名刺画像81b〜84bと当該名刺画像81b〜84bに対応付けられた重心位置の座標(位置情報)を受け付けて保持している。
上述したように、図9において、例えば、裏面名刺画像81bの重心位置の座標は、「(x,y)=(11,7)」である。また、表面名刺画像82bの重心位置の座標は、「(x,y)=(11,20)」である。また、裏面名刺画像83bの重心位置の座標は、「(x,y)=(28,8)」である。また、裏面名刺画像84bの重心位置の座標は、「(x,y)=(29,21)」である。
また、名刺画像決定部216は、名刺画像取得部215が取得した裏面名刺画像81c〜84cと当該名刺画像81c〜84cに対応付けられた重心位置の座標(位置情報)を受け付けて保持している。
上述したように、図10において、例えば、裏面名刺画像81cの重心位置の座標は、「(x,y)=(11,7)」である。また、表面名刺画像82cの重心位置の座標は、「(x,y)=(12,20)」である。また、裏面名刺画像83cの重心位置の座標は、「(x,y)=(28,8)」である。また、裏面名刺画像84cの重心位置の座標は、「(x,y)=(29,21)」である。
名刺画像決定部216は、保持している表面名刺画像81a〜84aの重心位置の座標(位置情報)と、保持している裏面名刺画像81b〜84bの重心位置の座標(位置情報)とに基づいて、それぞれの重心位置の座標(位置情報)が、ある閾値の範囲内にある表面名刺画像と裏面名刺画像とを関連付けて1つの名刺画像として名刺ごとに決定する。
具体的には、例えば、表面名刺画像81aの重心位置の座標は、「(x,y)=(10,8)」であり、裏面名刺画像81bの重心位置の座標は、「(x,y)=(11,7)」であるため、重心位置の座標の違いは、「(x,y)=(1,1)」となる。
これに対して、例えば、表面名刺画像81aの重心位置の座標は、「(x,y)=(10,8)」であり、裏面名刺画像82bの重心位置の座標は、「(x,y)=(11,20)」であるため、重心位置の座標の違いは、「(x,y)=(1,12)」となる。
また、表面名刺画像81aの重心位置の座標は、「(x,y)=(10,8)」であり、裏面名刺画像83bの重心位置の座標は、「(x,y)=(28,8)」であるため、重心位置の座標の違いは、「(x,y)=(18,0)」となる。
すなわち、重心位置の座標(位置情報)の違いの閾値を、例えば、「(x,y)=(5,5)」の範囲内と設定することにより、上記の例では、この関係を満たすのは、表面名刺画像81aと裏面名刺画像81bとであるので、表面名刺画像81aと裏面名刺画像81bとを関連付けて1つの名刺画像81と決定する。なお、重心位置の座標(位置情報)の違いの閾値は、任意に設定することができる。
このように、名刺画像決定部216は、表面名刺画像の重心位置の座標(位置情報)と裏面名刺画像の重心位置の座標(位置情報)の違いが、ある閾値の範囲内にある表面名刺画像と裏面名刺画像とを関連付けて1つの名刺画像と決定する。
同様にして、名刺画像決定部216は、表面名刺画像82aと裏面名刺画像82bとを関連付けて1つの名刺画像82と決定する。また、名刺画像決定部216は、表面名刺画像83aと裏面名刺画像83bとを関連付けて1つの名刺画像83と決定する。また、名刺画像決定部216は、表面名刺画像84aと裏面名刺画像84bとを関連付けて1つの名刺画像84と決定する。名刺画像決定部216は、関連付けて決定した名刺画像81〜84を表示制御部211に受け渡す。そして、表示制御部211は、例えば図11に示すように、プレビュー画面64に関連付けた表面名刺画像81a〜84aと裏面名刺画像81b〜84bとを並べて表示させる。
また、同様にして、名刺画像決定部216は、表面名刺画像81aと裏面名刺画像81cとを関連付けて1つの名刺画像81と決定する。また、名刺画像決定部216は、表面名刺画像82aと裏面名刺画像82cとを関連付けて1つの名刺画像82と決定する。また、名刺画像決定部216は、表面名刺画像83aと裏面名刺画像83cとを関連付けて1つの名刺画像83と決定する。また、名刺画像決定部216は、表面名刺画像84aと裏面名刺画像84cとを関連付けて1つの名刺画像84と決定する。名刺画像決定部216は、関連付けて決定した名刺画像81〜84を表示制御部211に受け渡す。そして、表示制御部211は、例えば図12に示すように、プレビュー画面65に関連付けた表面名刺画像81a〜84aと裏面名刺画像81c〜84cとを並べて表示させる。
このようにして、名刺画像決定部216は、複数の表面名刺画像81a〜84aと複数の裏面名刺画像81b〜84b、81c〜84cとを、それぞれに対応した名刺位置情報に基づき、複数の表面名刺画像81a〜84aごとに複数の裏面名刺画像81b〜84b、81c〜84cの何れか1つを関連付けて1つの名刺画像81〜84として名刺ごとに決定する。名刺画像決定部216は、名刺ごとに決定した名刺画像をそれぞれの名刺ごとに記憶部219に記憶させる。また、名刺画像決定部216は、関連付けた名刺画像81〜84の情報を後述する第1判定部217、第2判定部218に受け渡す。
図3に戻って説明を続ける。第1判定部217は、名刺画像決定部216で関連付けた複数の名刺画像81〜84に対して、表面名刺画像に対応した名刺位置情報と裏面名刺画像に対応した名刺位置情報とを比較して同じ位置であるか否かを判定する。
ここで、図7、図9および図10を参照して、表面名刺画像81a〜84aに対応した名刺位置情報と、裏面名刺画像81b〜84b、81c〜84cに対応した名刺位置情報とを比較する方法について説明する。
第1判定部217は、名刺画像取得部215が取得した表面名刺画像81a〜84aと当該名刺画像81a〜84aに対応付けられた重心位置の座標(位置情報)を受け付けて保持している。また、第1判定部217は、名刺画像取得部215が取得した裏面名刺画像81b〜84b、81c〜84cと当該名刺画像81b〜84b、81c〜84cに対応付けられた重心位置の座標(位置情報)を受け付けて保持している。
名刺画像決定部216において説明したように、図7において、例えば、表面名刺画像81aの重心位置の座標は、「(x,y)=(10,8)」である。また、表面名刺画像82aの重心位置の座標は、「(x,y)=(12,20)」である。また、表面名刺画像83aの重心位置の座標は、「(x,y)=(29,9)」である。また、表面名刺画像84aの重心位置の座標は、「(x,y)=(30,21)」である。
また、図9において、例えば、裏面名刺画像81bの重心位置の座標は、「(x,y)=(11,7)」である。また、裏面名刺画像82bの重心位置の座標は、「(x,y)=(11,20)」である。また、裏面名刺画像83bの重心位置の座標は、「(x,y)=(28,8)」である。また、裏面名刺画像84bの重心位置の座標は、「(x,y)=(29,21)」である。
また、図10において、例えば、裏面名刺画像81cの重心位置の座標は、「(x,y)=(11,7)」である。また、裏面名刺画像82cの重心位置の座標は、「(x,y)=(12,20)」である。また、裏面名刺画像83cの重心位置の座標は、「(x,y)=(28,8)」である。また、裏面名刺画像84cの重心位置の座標は、「(x,y)=(29,21)」である。
第1判定部217は、名刺画像決定部216で関連付けた名刺画像81〜84について、表面名刺画像81aの重心位置の座標「(x,y)=(10,8)」と裏面名刺画像81bの重心位置の座標「(x,y)=(11,7)」を比較する。この例では、表面名刺画像81aの重心位置の座標(位置情報)と裏面名刺画像81bの重心位置の座標(位置情報)は異なっているため、第1判定部217は、同じ位置でないと判定する。同様にして、表面名刺画像82aの重心位置の座標「(x,y)=(12,20)」と、裏面名刺画像82bの重心位置の座標「(x,y)=(11,20)」を比較して、同じ位置でないと判定する。同様にして、表面名刺画像83aの重心位置の座標「(x,y)=(29,9)」と、裏面名刺画像83bの重心位置の座標「(x,y)=(28,8)」を比較して、同じ位置でないと判定する。同様にして、表面名刺画像84aの重心位置の座標「(x,y)=(30,21)」と、裏面名刺画像84bの重心位置の座標「(x,y)=(29,21)」を比較して、同じ位置でないと判定する。
また、第1判定部217は、名刺画像決定部216で関連付けた名刺画像81〜84について、表面名刺画像81aの重心位置の座標「(x,y)=(10,8)」と裏面名刺画像81cの重心位置の座標「(x,y)=(11,7)」を比較する。この例では、表面名刺画像81aの重心位置の座標(位置情報)と裏面名刺画像81cの重心位置の座標(位置情報)は異なっているため、第1判定部217は、同じ位置でないと判定する。同様にして、第1判定部217は、表面名刺画像82aの重心位置の座標「(x,y)=(12,20)」と、裏面名刺画像82cの重心位置の座標「(x,y)=(12,20)」を比較する。この例では、同じ位置であると判定する。つまり、表面名刺画像82aと裏面名刺画像82cの重心位置の座標(位置情報)は同じであるため、表面名刺画像82aと裏面名刺画像82cは同じ名刺画像である可能性が高い。すなわち、裏面名刺画像82cを読み込む時に名刺を裏返し忘れた可能性が高いと判定することができる。表示制御部211は、第1判定部217が名刺を裏返し忘れた可能性が高いと判定した場合、例えば図13に示すように、「正しく読み取れていない可能性があります。」と表示する制御を行う。すなわち、ユーザに対して、読み込み後のプレビュー画面66に、表示された表面名刺画像82aと裏面名刺画像82cが同じ名刺画像である可能性が高い旨を通知する。
同様にして、表面名刺画像83aの重心位置の座標「(x,y)=(29,9)」と、裏面名刺画像83cの重心位置の座標「(x,y)=(28,8)」を比較して、同じ位置でないと判定する。同様にして、表面名刺画像84aの重心位置の座標「(x,y)=(30,21)」と、裏面名刺画像84cの重心位置の座標「(x,y)=(29,21)」を比較して、同じ位置でないと判定する。
図3に戻って説明を続ける。第2判定部218は、名刺画像決定部216で関連付けた複数の名刺画像81〜84に対して、表面名刺画像と裏面名刺画像とを比較して同じ画像であるか否かを判定する。
第2判定部218は、名刺画像決定部216が、表面名刺画像と裏面名刺画像とを関連付けた名刺画像の情報を受け付けて保持している。すなわち、名刺画像81には表面名刺画像81aと裏面名刺画像81bとが関連付けられ、名刺画像82には表面名刺画像82aと裏面名刺画像82bとが関連付けられ、名刺画像83には表面名刺画像83aと裏面名刺画像83bとが関連付けられ、名刺画像84には表面名刺画像84aと裏面名刺画像84bとが関連付けられた情報を受け付けて保持している。
同様に、第2判定部218は、名刺画像81には表面名刺画像81aと裏面名刺画像81cとが関連付けられ、名刺画像82には表面名刺画像82aと裏面名刺画像82cとが関連付けられ、名刺画像83には表面名刺画像83aと裏面名刺画像83cとが関連付けられ、名刺画像84には表面名刺画像84aと裏面名刺画像84cとが関連付けられた情報を受け付けて保持している。
第2判定部218は、例えば、関連付けられた表面名刺画像81aと裏面名刺画像81bを画像認識処理を実行した後に比較して、同じ画像であるか否かを判定する。なお、画像認識処理としては任意の画像認識技術を用いることができる。
具体的には、図7および図9において、第2判定部218は、表面名刺画像81aと裏面名刺画像81bは同じ画像ではないと判定する。同様に、第2判定部218は、表面名刺画像82aと裏面名刺画像82bは同じ画像ではないと判定する。同様に、第2判定部218は、表面名刺画像83aと裏面名刺画像83bは同じ画像ではないと判定する。同様に、第2判定部218は、表面名刺画像84aと裏面名刺画像84bは同じ画像ではないと判定する。
また、図7および図10において、第2判定部218は、表面名刺画像81aと裏面名刺画像81cは同じ画像ではないと判定する。同様に、第2判定部218は、表面名刺画像82aと裏面名刺画像82cは同じ画像であると判定する。すなわち、表面名刺画像82aと裏面名刺画像82cは同じ画像であるため、裏面名刺画像82cを読み込む時に名刺を裏返し忘れたと判定することができる。表示制御部211は、第2判定部218が名刺を裏返し忘れた可能性が高いと判定した場合、例えば図13に示すように、「正しく読み取れていない可能性があります。」と表示する制御を行う。すなわち、ユーザに対して、読み込み後のプレビュー画面66に、表示された表面名刺画像82aと裏面名刺画像82cが同じ名刺画像である可能性が高い旨を通知する。
同様に、第2判定部218は、表面名刺画像83aと裏面名刺画像83cは同じ画像ではないと判定する。同様に、第2判定部218は、表面名刺画像84aと裏面名刺画像84cは同じ画像ではないと判定する。
ここで、表示制御部211が、第1判定部217および第2判定部218のうち少なくとも一方を用いて判定した結果に基づいて、各種の画像を表示する操作部20の表示画面27に表示させる画像を異ならせる制御について説明する。図14は、第1判定部および第2判定部で判定した結果と表示画面へ表示する画像の関係の一例を示す図である。
表示制御部211は、第1判定部217、第2判定部218で判定した結果が、表面名刺画像と裏面名刺画像の位置が異なり、表面名刺画像と裏面名刺画像が異なる場合、表示画面27に、例えば「読み取り完了しました。このまま記憶しますか。」という画像を表示する。すなわち、名刺画像の位置が異なり、名刺画像が異なるのは、名刺を裏返したために位置がずれた可能性が高く、表面名刺画像と裏面名刺画像が正しく読み取れた可能性が高いと判定することができる。
表示制御部211は、第1判定部217、第2判定部218で判定した結果が、表面名刺画像と裏面名刺画像の位置が異なり、表面名刺画像と裏面名刺画像が同じ画像である場合、表示画面27に、例えば「正しく読み取れていない可能性があります。読み取り直しますか。このまま記憶しますか。」という画像を表示する。すなわち、名刺画像の位置が異なり、名刺画像が同じ画像であるのは、名刺を裏返そうと動かしたが裏返し忘れた可能性が高く、表面名刺画像と裏面名刺画像が同じである可能性が高いと判定することができる。
表示制御部211は、第1判定部217、第2判定部218で判定した結果が、表面名刺画像と裏面名刺画像の位置が同じであり、表面名刺画像と裏面名刺画像が異なる場合、表示画面27に、例えば「正しく読み取れていない可能性があります。読み取り直しますか。このまま記憶しますか。」という画像を表示する。すなわち、名刺画像の位置が同じで、名刺画像が異なるのは、名刺を裏返し忘れた可能性が高く、表面名刺画像と裏面名刺画像のどちらかが画像認識ミスである可能性が高いと判定することができる。
表示制御部211は、第1判定部217、第2判定部218で判定した結果が、表面名刺画像と裏面名刺画像の位置が同じであり、表面名刺画像と裏面名刺画像が同じである場合、表示画面27に、例えば「同じ画像の可能性が高いです。読み取り直しますか。このまま記憶しますか。」という画像を表示する。すなわち、名刺画像の位置が同じで、名刺画像が同じ画像であるのは、裏返し忘れた可能性が高く、表面名刺画像と裏面名刺画像がおおよそ同じであると判定することができる。
なお、表示画面へ表示する画像は上記に限ることはなく任意に設定することができる。
このように、表示制御部211は、第1判定部217、第2判定部218のうち少なくとも一方を用いて判定した結果に基づいて、操作部20の表示画面27に表示させる画像を異ならせる制御を行うことで、名刺の裏返し忘れを防止して名刺の裏面名刺画像データの取得忘れを防止することができる。また、複数の名刺をまとめて読み込む際に、名刺を裏返し忘れても正しい表面名刺画像と裏面名刺画像を読み込んで名刺管理データを生成して名刺管理することができる。また、裏返し忘れではなく、表面名刺画像と裏面名刺画像が同じ名刺であった場合、同じであることを識別することができる。
図3に戻って説明を続ける。記憶部219は、名刺画像決定部216が名刺ごとに決定した名刺画像をそれぞれの名刺ごとに記憶する。また、記憶部219は、複数の表面名刺画像81a〜84aと当該名刺画像81a〜84aの名刺位置情報(座標)とを対応付けて記憶する。また、記憶部219は、複数の裏面名刺画像81b〜84b、81c〜84cと当該名刺画像81b〜84b、81c〜84cの名刺位置情報(座標)とを対応付けて記憶する。
名刺情報取得部220は、記憶部219に記憶した複数の名刺の名刺画像に含まれる文字を認識する読み取り処理を行い、文字列データを含む名刺情報を取得する。読み取り処理として、例えば、1つの名刺画像として関連付けられた表面名刺画像と裏面名刺画像に対してOCR(Optical Character Recognition:光学文字認識)などの読み取り処理を実行する。これにより、名刺情報取得部220は、名刺画像に記載された文字列データと文字列に係る属性データとが文字列ごとに対応付けられた情報を名刺情報として取得する。すなわち、名刺情報取得部220は、名刺情報を名刺画像ごとに取得する。なお、OCRなどの読み取り処理は任意の技術を適用することができる。
例えば、図11に示した名刺画像81において、表面名刺画像81aからは、名刺に記載された文字列に対応する文字列情報が、名刺情報(A株式会社 田中一郎)として取得される。また、関連付けられた裏面名刺情報81bからは、名刺に記載された文字列に対応する文字列情報が、名刺情報(A Incorporated company Ichirou Tanaka)として取得される。これにより、名刺画像81と名刺情報とがそれぞれの名刺に対応する読み取り名刺データとして保存される。
そして、名刺情報取得部220は、名刺画像と取得した名刺情報とを名刺データとして記憶部219に記憶させる。なお、名刺データは、記憶部219に記憶させるのではなく、名刺管理データ記憶部311に記憶させるようにしてもよい。
名刺管理部221は、名刺情報取得部220が取得した名刺データ(名刺画像と名刺情報)に基づき、名刺ごとの登録情報を生成し、名刺管理データとしてサーバ装置30に送信して名刺管理データ記憶部311に記憶させる。また、名刺管理部221は、名刺管理データをサーバ装置30との間で送受信する。また、名刺管理部221は、名刺管理アプリが提供する名刺管理に関する全体の制御を行う。具体的には、名刺の検索、名刺の読み取り、名刺の確認、名刺の印刷など名刺管理に関する制御である。なお、名刺管理アプリが提供する名刺管理機能はプログラムにより任意に設定することができる。
以上に説明した受付部210、表示制御部211、起動処理部212、第1画像取得部213、第2画像取得部214、名刺画像取得部215、名刺画像決定部216、第1判定部217、第2判定部218、記憶部219、名刺情報取得部220、および、名刺管理部221各々の機能は、CPU21が、RAM23をワークエリア(作業領域)としてROM22またはフラッシュメモリ24等に格納されたプログラムを実行することにより実現されるが、これに限らず、例えば操作部20の上記各部の機能のうちの少なくとも一部が専用のハードウェア回路(例えば半導体集積回路等)で実現されてもよい。
次に、サーバ装置30の機能について説明する。図3に示すように、サーバ装置30は、通信部310と、名刺管理データ記憶部311とを有する。
通信部310は、ネットワーク40を介して操作部20と通信する。例えば操作部20から送信される名刺管理データを受信する一方、名刺管理データ記憶部311に記憶している名刺管理データを操作部20へ送信することもできる。
名刺管理データ記憶部311は、操作部20から受信した、名刺ごとの名刺管理データを記憶する。また、操作部20からの指示により、名刺管理データを通信部310を介して操作部20へ送信する。
以上に説明した通信部310、および、名刺管理データ記憶部311の各々の機能は、CPU31が、RAM33をワークエリア(作業領域)としてROM32またはHDD34等に格納されたプログラムを実行することにより実現されるが、これに限らず、例えばサーバ装置30の上記各部の機能のうちの少なくとも一部が専用のハードウェア回路(例えば半導体集積回路等)で実現されてもよい。また、上述の記憶部219は、例えばROM32やHDD34等により実現されてもよい。
図15は、本実施形態に係る情報処理システムの動作処理の一例を示すフローチャート図である。ここでは、ユーザが、複数の名刺の表面名刺画像と裏面名刺画像を取得する場合における情報処理システム100の動作処理の一例を説明する。
ユーザが、名刺管理アプリに対応するアイコン50をタッチする操作を行った場合、操作部20(起動処理部212)は、名刺管理アプリを起動する制御を行う。前述したように、名刺管理アプリが起動すると、操作部20(表示制御部211)は、名刺読取の指定、名刺確認の指定、名刺印刷の指定、ホーム画面への遷移の何れかの選択を促す選択画面61を表示する制御を行う。ユーザが、選択画面61で、名刺読取を指定するアイコン71をタッチする操作を行った場合、表示制御部211は、例えば図6に示すように、読み取り条件設定画面62と読取開始を指定するアイコン72を表示する制御を行う。
次に、ユーザが、読取開始を指定するアイコン72をタッチする操作を行った場合(ステップS10)、第1画像取得部213は、スキャナの読み取り面(コンタクトガラス)上に配置した複数の名刺の表面を第1画像データとして取得する(ステップS11)。
次に、名刺画像取得部215は、例えば図7に示すような、第1画像取得部213で取得した複数の名刺の表面名刺画像81a〜84aである第1画像データ91を解析して名刺を示す表面名刺画像81a〜84aを抽出して、抽出した表面名刺画像ごとに対応した位置情報を生成して取得する(ステップS12)。
そして、表示制御部211は、第1画像取得部213が第1画像データ91の取得を終了した場合、例えば図8に示す取得後のプレビュー画面63に、取得した複数の名刺の表面名刺画像81a〜84aと取得した名刺の枚数を表示する制御を行う(ステップS13)。
次に、第2画像取得部214は、ユーザからの名刺読取開始の指定に応じて、スキャナの読み取り面(コンタクトガラス)上に配置した複数の名刺の裏面(例えば、ユーザが手動で名刺を裏返した面)名刺画像81b〜84b、81c〜84cを第2画像データ92、93として取得する(ステップS14)。
次に、名刺画像取得部215は、例えば図9および図10に示すような、第2画像取得部214で取得した複数の名刺の裏面名刺画像81b〜84b、81c〜84cである第2画像データ92、93を解析して名刺を示す裏面名刺画像81b〜84b、81c〜84cを抽出して、抽出した裏面名刺画像ごとに対応した位置情報を生成して取得する(ステップS15)。
次に、名刺画像決定部216は、複数の表面名刺画像81a〜84aと複数の裏面名刺画像81b〜84b、81c〜84cとを、それぞれに対応した名刺位置情報に基づき、複数の表面名刺画像81a〜84aごとに、複数の裏面名刺画像81b〜84b、81c〜84cの何れか1つを関連付けて1つの名刺画像81〜84として名刺ごとに決定する(ステップS16)。そして、例えば図11および図12に示す取得後のプレビュー画面64、65に、関連付けた名刺画像81〜84を表示する制御を行う(ステップS17)。
次に、第1判定部217は、名刺画像決定部216で関連付けた名刺画像81〜84のそれぞれに対して、表面名刺画像に対応した名刺位置情報と裏面名刺画像に対応した名刺位置情報とを比較して同じ位置であるか否かを判定する(ステップS18)。表面名刺画像の名刺位置情報と裏面名刺画像の名刺位置情報が同じ位置である場合(ステップS18:Yes)、第2判定部218は、名刺画像決定部216で関連付けた名刺画像81〜84のそれぞれに対して、表面名刺画像と裏面名刺画像とを比較して同じ画像であるか否かを判定する(ステップS19)。
表面名刺画像の名刺位置情報と裏面名刺画像の名刺位置情報が同じ位置でない場合(ステップS18:No)、第2判定部218は、名刺画像決定部216で関連付けた名刺画像81〜84のそれぞれに対して、表面名刺画像と裏面名刺画像とを比較して同じ画像であるか否かを判定する(ステップS21)。
表面名刺画像と裏面名刺画像が同じ画像である場合(ステップS19:Yes)、表示制御部211は、図13に示すように、関連付けた表面名刺画像と裏面名刺画像を表示画面27に表示して、同じ画像の可能性が高い名刺画像に対して、その旨を表示する(ステップS20)。その後、ステップS23に移行する。
表面名刺画像と裏面名刺画像が同じ画像でない場合(ステップS19:No)、表示制御部211は、関連付けた表面名刺画像と裏面名刺画像を表示画面27に表示して、裏面名刺画像が正しく取得できていない旨を表示する(ステップS22)。その後、ステップS23に移行する。
表面名刺画像と裏面名刺画像が同じ画像である場合(ステップS21:Yes)、表示制御部211は、関連付けた表面名刺画像と裏面名刺画像を表示画面27に表示して、裏面名刺画像が正しく取得できていない旨を表示する(ステップS22)。その後、ステップS23に移行する。
表面名刺画像と裏面名刺画像が同じ画像でない場合(ステップS21:No)、ステップS24に移行する。
ステップS23に戻り、表示制御部211は、複数の名刺の裏面を再度第2画像データして読み込みを行うか否かを判定する(ステップS23)。再度読み込みを行う場合(ステップS23:Yes)、ステップS14に戻り、処理を継続する。
再度読み込みを行わない場合(ステップS23:No)、関連付けた表面名刺画像と裏面名刺画像を名刺画像として記憶するか否かを判定する(ステップS24)。名刺画像を記憶しない場合(ステップS24:No)、ステップS14に戻り、処理を継続する。
名刺画像を記憶する場合(ステップS24:Yes)、関連付けた表面名刺画像と裏面名刺画像を名刺画像として記憶部219に記憶して(ステップS25)、処理を終了する。
以上に説明したように、本実施形態では、名刺管理アプリが実行されると、複数の名刺の表面を第1画像データとして取得し、第1画像データを解析して名刺を示す表面名刺画像を抽出して、抽出した表面名刺画像ごとに対応した位置情報を生成して取得する。また、複数の名刺の裏面を第2画像データとして取得し、第2画像データを解析して名刺を示す裏面名刺画像を抽出して、抽出した裏面名刺画像ごとに対応した位置情報を生成して取得する。そして、表面名刺画像と、裏面名刺画像とを関連付けて1つの名刺画像として名刺ごとに決定する。その後、表面名刺画像の位置情報と裏面名刺画像の位置情報が同じ位置であるか否かと、表面名刺画像と裏面名刺画像が同じ画像であるか否かを判定したうちの少なくとも一方の結果に基づいて、同じ画像である可能性が高いと判定した場合にその旨を操作部20の表示画面27に表示させるので、名刺の裏返し忘れを防止することができる。これにより、ユーザは、名刺の裏面名刺画像データの取得忘れを防止することができる、という有利な効果を達成できる。
以上、本発明に係る実施形態について説明したが、本発明は、上述の実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上述の実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
なお、本実施形態の情報処理システム100は本発明の範囲を限定する物ではなく、MFP1が名刺ごとの名刺管理データを記憶する機能を備えてもよいし、サーバ装置30が名刺ごとの名刺管理データを記憶する機能を備えてもよい。また、システムを構成するサーバ装置は複数台でもよく、どのサーバ装置に機能を備えさせてもよい。
なお、本実施形態のMFP1と、サーバ装置30とが接続されたシステム構成は一例であり、用途や目的に応じて様々なシステム構成例があることは言うまでもない。
(変形例)
以下、変形例を記載する。以下の変形例同士は任意に組み合わせることもできる。また、以下の変形例は、上述の実施形態と任意に組み合わせることもできる。
(1)変形例1
例えば、上述の表示制御部211は、第1判定部217および第2判定部218のうち少なくとも一方を用いて判定した結果に基づいて、操作部20の表示画面27に表示させる画像を異ならせる制御を行うが、第1判定部217および第2判定部218を備えずに、表示制御部211が、関連付けた表面名刺画像と裏面名刺画像とを複数並べて操作部20の表示画面27に表示することにより、名刺の裏返し忘れを通知する機能を有するようにしてもよい。この場合、関連付けた表面名刺画像と裏面名刺画像とを並べて表示画面27に表示させることで、ユーザに、目視で名刺の裏返し忘れを通知して認識させることができる。
(2)変形例2
例えば、サーバ装置30側の名刺管理データ記憶部311が記憶する名刺管理データを操作部20が記憶する形態であってもよい。つまり、上述の名刺管理データ記憶部311が操作部20に搭載される形態であってもよい。要するに、上述した情報処理システム100の各部の機能は、本体10、操作部20、および、サーバ装置30に適宜に分散して搭載することができる。
(3)変形例3
上述の実施形態では、本体10と操作部20は、別々のオペレーティングシステムで互いに独立して動作しているが、これに限らず、例えば本体10と操作部20が同じオペレーティングシステムで動作する形態であってもよい。
(プログラム)
上述した実施形態の情報処理システム100で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよいし、インターネット等のネットワーク経由で提供または配布するように構成してもよい。また、各種プログラムを、ROM等に予め組み込んで提供するように構成してもよい。