(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0014】
以下に、本発明に係るオーバーヘッド型画像読取装置、画像処理方法、および、プログラムの実施形態を図面に基づいて詳細に説明する。なお、この実施形態により本発明が限定されるものではない。特に、本実施形態においては、読み取り対象の綴じ媒体を本などとして説明することがあるが、これに限られず、ステープルで綴じられた媒体等を読み取り対象としてもよい。
【0015】
[1.本発明の実施形態の概要]
以下、本発明の実施形態の概要について
図1を参照して説明し、その後、本実施形態の構成および処理等について詳細に説明する。
図1は、本実施形態の概要を示す図である。本実施形態は、概略的に、以下の基本的特徴を有する。
【0016】
すなわち、本実施形態のオーバーヘッド型画像読取装置は、
図1に示すように、ユーザによりめくられる綴じ媒体を連続して画像読取部にて読取らせ、画像を取得する。
【0017】
そして、オーバーヘッド型画像読取装置は、モーション検出(めくり動作検出)により、ページめくり検出を行い、画像に含まれる異物(手指、および、スピン(しおりひも)等)の検出を行うことで、同一のページに対応する各画像から、手指の映り込みのない画像があるか否か判定する(ステップS−1)。
【0018】
そして、オーバーヘッド型画像読取装置は、異物の映り込みのない画像があると判定された場合、1ページ、2ページ、および、4ページのように異物の映り込みのない画像を出力画像として取得し、3ページのように異物の映り込みのない画像がないと判定された場合、画像のクロッピングによる異物除去を行い、同一のページに対応する各画像を組み合わせて出力画像を取得し(ステップS−2)、処理を終了する。
【0019】
[2.本実施形態の構成]
本実施形態に係るオーバーヘッド型画像読取装置100の構成の一例について
図2乃至
図4を参照して説明する。
図2は、オーバーヘッド型画像読取装置100の概略構成の一例を示すハードウェア構成図である。
図3は、オーバーヘッド型画像読取装置100の構成の一例を示すハードウェア構成図である。
図4は、オーバーヘッド型画像読取装置100の構成の一例を示すハードウェア構成図である。
【0020】
図2に示すように、オーバーヘッド型画像読取装置100は、概略的に、カメラ等の画像読取部110と制御装置(PC)とを備えて構成される。ここで、制御装置(PC)は、制御部(CPU)102を少なくとも備えており、本実施形態において、メモリ等を含む記憶部106と入出力インターフェース部(I/O)108とを更に備える。また、これら各部は任意の通信路を介して通信可能に接続されている。
【0021】
また、
図3に示すように、オーバーヘッド型画像読取装置100は、カメラ等の画像読取部110と制御装置(PC)とを備えて構成される。ここで、制御装置(PC)は、画像取得部102a、手検出等を行う異物検出部102b、めくり検出等を行う動作検出部102c、シーン検出等を行う検出判定部102e、画像合成等を行う出力画像取得部102f、および、記憶部106を少なくとも備えて構成される。また、これら各部は任意の通信路を介して通信可能に接続されている。
【0022】
また、
図4に示すように、オーバーヘッド型画像読取装置100は、画像読取部110と制御部102とディスク106−2と入出力部(I/O部)112とを少なくとも備えて構成される。ここで、制御部102は、手検出等を行う異物検出部102b、ページめくり動作認識およびページめくり検出等を行う動作検出部102c、抽出判定等を行う検出判定部102e、画像合成等を行う出力画像取得部102f、画像出力部102g、保管部102h、リスト管理部106a、および、一次記憶部106−1を備えて構成される。また、これら各部は任意の通信路を介して通信可能に接続されている。
【0023】
なお、本実施形態におけるオーバーヘッド型画像読取装置100は、更に、綴じ媒体の積載台を備えていてもよい。また、画像読取部110は、積載台の上部に配置され、積載台を撮像してもよい。また、制御部102は、画像読取部110を制御してもよい。
【0024】
ここで、記憶部106(一次記憶部106−1、および、ディスク106−2等)は、各種のデータベース、テーブル、および/または、ファイル(リスト管理部106a)などを格納する。記憶部106は、ストレージ手段であり、例えばRAM・ROM等のメモリ、ハードディスクのような固定ディスク装置、フレキシブルディスク、および/または、光ディスク等を用いることができる。記憶部106には、CPU(Central Processing Unit)に命令を与え各種処理を行うためのコンピュータプログラム等が記録されている。ここで、
図2は、オーバーヘッド型画像読取装置100の記憶部106の論理構成の一例を示すブロック図である。
【0025】
これら記憶部106の各構成要素のうち、リスト管理部106aは、画像の番号と、異物の映り込みに関する情報と、ページのめくり動作に関する情報と、を対応付けたリストを記憶する。ここで、画像の番号は、画像読取部110にて読取られた順番等であってもよい。また、異物は、ユーザの手(指)、スピン(しおりひも)、ペン、定規、および/または、自動ページめくり器のアーム等であってもよいし、影、他のページに対応する画像(部分)、および/または、画像のノイズ等であってもよい。また、異物の映り込みに関する情報は、異物の数、異物の座標、異物の大きさ、および/または、異物の形等に関する情報を含んでいてもよい。また、ページのめくり動作に関する情報は、めくり有無、および/または、ページの動き有無等に関する情報を含んでいてもよい。
【0026】
また、入出力インターフェース部108は、画像読取部110を、制御部102と接続する。
【0027】
また、画像読取部110は、上向きに設置された綴じ媒体等の原稿を、上方よりスキャンして原稿の画像を読み取る。ここで、画像読取部110は、上向きに設置された原稿を、リニアセンサを用いて上方よりスキャンして原稿の画像を読み取ってもよい。ここで、本実施形態において、画像読取部110は、コントローラと、モータと、リニアセンサ(ラインセンサ)と、A/Dコンバータとを備えてもよい。コントローラは、入出力インターフェース部108を介した制御部102からの指令に応じて、モータ、リニアセンサ、および、A/Dコンバータを制御する。リニアセンサは、原稿の主走査方向のラインから届く光を、ライン上の画素ごとにアナログ電荷量に光電変換する。そして、A/Dコンバータは、リニアセンサから出力されたアナログ電荷量をデジタル信号に変換し、一次元の画像(ライン画像)を出力する。モータが回転駆動すると、リニアセンサの読み取り対象の原稿ラインが副走査方向に移動する。これにより、ラインごとに一次元の画像がA/Dコンバータから出力され、制御部102は、これらを合成することにより二次元の画像を生成する。
【0028】
また、原稿を上向きに設置して、上方より画像読取部110にて原稿を撮像する場合、主走査方向のラインの一次元画像が、リニアセンサにより読み取られてもよい。そして、モータの駆動によりリニアセンサが所定の回転方向に回転すると、それに伴って、リニアセンサの読み取りラインは、所定の副走査方向(例えば、奥行方向の奥側から手前側への方向等)に移動する。これにより、二次元の原稿の画像が、画像読取部110によって読み取られることとなる。
【0029】
また、画像読取部110は、上向きに設置された原稿を、エリアセンサを用いて上方よりスキャンして原稿の画像を読み取ってもよい。ここで、本実施形態において、画像読取部110は、コントローラと、エリアセンサと、A/Dコンバータとを備えていてもよい。コントローラは、入出力インターフェース部108を介した制御部102からの指令に応じて、エリアセンサ、および、A/Dコンバータを制御する。エリアセンサは、原稿平面(主走査方向と副走査方向の2次元平面)から届く光を、画素ごとにアナログ電荷量に光電変換する。そして、A/Dコンバータは、エリアセンサから出力されたアナログ電荷量をデジタル信号に変換し、二次元の画像を出力する。これにより、二次元の画像がA/Dコンバータから出力される。なお、画像読取部110は、カメラ等であってもよい。
【0030】
また、入出力部112は、データの入出力(I/O)を行う。ここで、入出力部112は、例えば、キー入力部、タッチパネル、コントロールパッド(例えば、タッチパッド、および、ゲームパッド等)、マウス、キーボード、および、マイク等であってもよい。また、入出力部112は、アプリケーション等の表示画面を表示する表示手段(例えば、液晶または有機EL等から構成されるディスプレイ、モニタ、および、タッチパネル等)であってもよい。また、入出力部112は、音声情報を音声として出力する音声出力手段(例えば、スピーカ等)であってもよい。
【0031】
また、制御部102は、オーバーヘッド型画像読取装置100を統括的に制御するCPU等からなる。制御部102は、制御プログラムと各種の処理手順等を規定したプログラムと所要データとを格納するための内部メモリ(例えば、一次記憶部106−1)を有し、これらプログラムに基づいて種々の処理を実行するための情報処理を行う。
【0032】
ここで、制御部102は、大別して、画像取得部102aと、異物検出部102bと、動作検出部102cと、リスト格納部102dと、検出判定部102eと、出力画像取得部102fと、画像出力部102gと、保管部102hとを備える。
【0033】
画像取得部102aは、めくられる綴じ媒体を連続して画像読取部110にて読取らせ、画像を取得する。ここで、画像取得部102aは、画像読取部110にて読取られた画像等を記憶部106(一次記憶部106−1)に格納してもよい。すなわち、画像取得部102aは、画像読取部110を制御して、複数の画像を連続して取得してもよい。例えば、画像取得部102aは、画像読取部110のコントローラを制御して、モータを回転駆動させ、リニアセンサにより光電変換されA/Dコンバータによりアナログデジタル変換されたラインごとの一次元画像を合成することにより、二次元の画像を取得して記憶部106(一次記憶部106−1)に格納する処理を繰り返してもよい。
【0034】
また、例えば、画像取得部102aは、画像読取部110のコントローラを制御して、エリアセンサにより光電変換されA/Dコンバータによりアナログデジタル変換された画像を取得して記憶部106(一次記憶部106−1)に格納する処理を繰り返してもよい。すなわち、画像取得部102aは、エリアセンサでモーション撮影を行って連続画像(動画像)を取得する機能を有していてもよい。また、画像取得部102aは、画像読取部110にて読取られた画像を、射影変換(例えば、正面方向から撮影したように射影変換)してもよい。
【0035】
異物検出部102bは、画像取得部102aにより取得された各画像における、異物の映り込みを検出する。すなわち、異物検出部102bは、画像取得部102aにより取得された各画像における、手の映り込みを検出してもよい。
【0036】
動作検出部102cは、画像取得部102aにより取得された画像から、綴じ媒体のページのめくり動作を検出し、各画像に対応するページを特定する。すなわち、動作検出部102cは、画像取得部102aにより取得された画像から、ページ動作を認識し、ページめくりを検出してもよい。ここで、動作検出部102cは、画像取得部102aにより取得された画像において、異物の移動方向と、予め設定されたページのめくり方向と、が一致した場合、綴じ媒体のページのめくり動作を検出し、各画像に対応するページを特定してもよい。また、動作検出部102cは、画像取得部102aにより取得された画像において、異物の動きベクトルと、ページの動きベクトルと、が一致した場合、綴じ媒体のページのめくり動作を検出し、各画像に対応するページを特定してもよい。
【0037】
リスト格納部102dは、リストをリスト管理部106aに格納する。ここで、リスト格納部102dは、動作検出部102cにより各めくり動作の完了が検出された場合、リストをリスト管理部106aに格納する。すなわち、リスト格納部102dは、リストの管理を行ってもよい。
【0038】
検出判定部102eは、同一のページに対応する各画像から、異物の映り込みのない画像があるか否か判定する。すなわち、検出判定部102eは、同一のページに対応する各画像から、異物の映り込みのない画像が抽出されたか否か判定してもよい。ここで、検出判定部102eは、動作検出部102cによる特定された同一のページに対応する各画像から、異物検出部102bにより異物の映り込みが検出されなかった画像があるか否か判定してもよい。また、検出判定部102eは、リスト管理部106aに記憶されたリストに基づいて、同一のページに対応する各画像から、異物の映り込みのない画像があるか否か判定してもよい。また、検出判定部102eは、同一のページに対応する各画像から、異物の映り込みのある画像だけが(複数)抽出されたか否か判定してもよい。
【0039】
出力画像取得部102fは、検出判定部102eにより異物の映り込みのない画像があると判定された場合、異物の映り込みのない画像を出力画像として取得し、検出判定部102eにより異物の映り込みのない画像がないと判定された場合、同一のページに対応する各画像を組み合わせて出力画像を取得する。ここで、出力画像取得部102fは、検出判定部102eにより異物の映り込みのない画像がないと判定された場合、同一のページに対応する各画像を切り出し、合成することにより出力画像を取得してもよい。また、出力画像取得部102fは、リスト管理部106aに記憶されたリストに基づいて、異物の映り込みのない画像を出力画像として取得してもよい。
【0040】
画像出力部102gは、出力画像を入出力部112を介して出力する。ここで、画像出力部102gは、出力画像を入出力部112に表示してもよい。また、画像出力部102gは、画像読取部110にて読取られた画像等を入出力部112に表示してもよい。
【0041】
保管部102hは、出力画像を記憶部106に格納する。ここで、保管部102hは、画像読取部110にて読取られた画像等を記憶部106に格納してもよい。また、保管部102hは、画像取得部102aにより取得された画像等を記憶部106に格納してもよい。
【0042】
[3.本実施形態の処理]
上述した構成のオーバーヘッド型画像読取装置100で実行される処理の一例について、
図5乃至
図15を参照して説明する。
【0043】
[3−1.基本処理]
本実施形態のオーバーヘッド型画像読取装置100における基本処理の一例について
図5乃至
図8を参照して説明する。
図5は、本実施形態のオーバーヘッド型画像読取装置100における基本処理の一例を示すフローチャートである。
【0044】
図5に示すように、まず、画像取得部102aは、ユーザによりめくられる綴じ媒体を連続して画像読取部110にて読取らせ、画像を取得し、画像を一次記憶部106−1に格納する(ステップSA−1)。このように、画像読取部110は、非接触型の画像入力(1個以上)により連続して画像読み取りを行ってもよい。また、画像読取部110による画像読み取りは、一定間隔でなくてもよい。
【0045】
そして、保管部102hは、画像読取部110にて読取られた画像を記憶部106に格納する(ステップSA−2)。
【0046】
そして、異物検出部102bは、画像取得部102aにより取得された各画像における、ユーザの手の映り込みを検出し、手の映り込み検出結果を一次記憶部106−1に格納する(ステップSA−3)。このように、異物検出部102bは、入力された画像から手を検出してもよい。
【0047】
そして、動作検出部102cは、画像取得部102aにより取得された画像から、綴じ媒体のページ動作を認識し、綴じ媒体のページのめくり動作を検出する(ステップSA−4)。ここで、動作検出部102cは、一次記憶部106−1に記憶された画像、および、手の映り込み検出結果に基づいて、画像取得部102aにより取得された画像において、ユーザの手の移動方向と、予め設定されたページのめくり方向と、が一致した場合、綴じ媒体のページ動作を認識し、綴じ媒体のページのめくり動作を検出してもよい。すなわち、動作検出部102cは、予めめくる方向を設定することにより、手の動きでページめくりを判定してもよい。例えば、動作検出部102cは、綴じ媒体を左右に分割して手が片側から、もう一方へ移動した時の手の方向とめくり方向とが一致した時にページめくりありと判断してもよい。ここで、動作検出部102cは、ページめくり検出で失敗した場合、後でマッチング処理を行い、同一と判断した場合削除してもよい。
【0048】
また、動作検出部102cは、一次記憶部106−1に記憶された画像、および、手の映り込み検出結果に基づいて、画像取得部102aにより取得された画像において、ユーザの手の動きベクトルと、ページの動きベクトルと、が一致した場合、綴じ媒体のページ動作を認識し、綴じ媒体のページのめくり動作を検出してもよい。このように、動作検出部102cは、手の動きを検出するだけでなく、手の動きと連動する他の動きを検出してもよい。すなわち、動作検出部102cは、手とページとの動きでページめくりを判定してもよい。例えば、動作検出部102cは、手の動きベクトルとページの動きベクトルとが一致した場合、めくり動作ありと判断してもよい。ここで、動作検出部102cは、動きベクトルの方向が連続的に発生した場合に、めくり動作ありと判断してもよい。また、手の動きベクトルは、現在の手の座標と前回の手の座標とのベクトルから生成されてもよい。また、動作検出部102cは、記憶部106に記憶された全画像についてページ番号判定を行い、ページめくりを判定してもよい。
【0049】
そして、動作検出部102cは、綴じ媒体のページのめくり動作の完了を検出したか否か判定し(ステップSA−5)、各画像に対応するページを特定する。このように、動作検出部102cは、ページめくりを判定してもよい。
【0050】
そして、リスト格納部102dは、画像取得部102aにより取得された画像の番号と、ユーザの手の映り込みに関する情報と、ページのめくり動作に関する情報と、を対応付けたリストをリスト管理部106aに格納する(ステップSA−6)。
【0051】
そして、動作検出部102cは、綴じ媒体のページのめくり動作の完了を検出していないと判定した場合(ステップSA−5:No)、処理をステップSA−11に移行させる。
【0052】
一方、検出判定部102eは、動作検出部102cにより各めくり動作の完了が検出された場合(ステップSA−5:Yes)、同一のページに対応する各画像から、ユーザの手の映り込みのない画像が抽出されたか否か判定する(ステップSA−7)。ここで、画像の番号は、画像読取部110にて読取られた順番等であってもよい。また、ユーザの手の映り込みに関する情報は、ユーザの手の数、ユーザの手の座標、ユーザの手の大きさ、および/または、ユーザの手の形等に関する情報を含んでいてもよい。また、ページのめくり動作に関する情報は、めくり有無、および/または、ページの動き有無等に関する情報を含んでいてもよい。また、検出判定部102eは、同一のページに対応する各画像から、ユーザの手の映り込みのない画像があるか否か判定してもよい。また、検出判定部102eは、動作検出部102cによる特定された同一のページに対応する各画像から、異物検出部102bによりユーザの手の映り込みが検出されなかった画像があるか否か判定してもよい。また、検出判定部102eは、リスト管理部106aに記憶されたリストに基づいて、同一のページに対応する各画像から、ユーザの手の映り込みのない画像があるか否か判定してもよい。
【0053】
そして、制御部102は、リスト管理部106aに記憶されたリストに基づいて、検出判定部102eにより同一のページに対応する各画像から、当該ページに最適な画像が複数抽出されたか否か判定する(ステップSA−8)。
【0054】
そして、出力画像取得部102fは、制御部102により同一のページに対応する各画像から、当該ページに最適な画像が複数抽出されたと判定された場合(ステップSA−8:Yes)、抽出された複数の画像を切り出し、合成することにより出力画像を取得する(ステップSA−9)。ここで、出力画像取得部102fは、制御部102により同一のページに対応する各画像から、当該ページに最適な画像が複数抽出されたと判定された場合、抽出された複数の画像を組み合わせて出力画像を取得してもよい。このように、出力画像取得部102fは、ページがめくられていない画像中の手がない部分を組合せてページを形成してもよい。
【0055】
そして、出力画像取得部102fは、制御部102により同一のページに対応する各画像から、当該ページに最適な画像が複数抽出されていないと判定された場合(ステップSA−8:No)、抽出された画像(例えば、ページの動きがない手の映り込みのない画像等)を出力画像として取得し、画像出力部102gは、出力画像取得部102fにより取得された出力画像を入出力部112を介して出力する(ステップSA−10)。このように、本実施形態においては、出力画像取得部102fにより取得(形成)されたページを組合せて綴じ媒体を電子化してもよい。
【0056】
ここで、
図6を参照して、本実施形態における異物として検出される手が一つの場合の画像処理の一例について説明する。
図6は、本実施形態における画像処理の一例を示す図である。
【0057】
図6に示すように、ユーザにより片手でめくられる綴じ媒体が連続して画像読取部110にて読取られる場合、出力画像取得部102fは、ユーザの手の映り込みが検出されない各ページに対応する画像を出力画像として取得してもよい(例えば、ステップSB−1の右ページ(2ページ目)、ステップSB−2の左ページ(1ページ目)、ステップSB−4の右ページ(4ページ目)、および、ステップSB−5の左ページ(3ページ目))。また、
図6に示すように、異物検出部102bは、画像取得部102aにより取得された各画像における、ユーザの手の映り込みを検出してもよい(例えば、ステップSB−2乃至ステップSB−5)。そして、動作検出部102cは、画像取得部102aにより取得された画像、および、異物検出部102bにより検出された手の映り込み検出結果に基づいて、ページめくり方向を判定してもよい(例えば、ステップSB−2乃至ステップSB−4)。
【0058】
次に、
図7および
図8を参照して、本実施形態における異物として検出される手が二つの場合の画像処理の一例について説明する。
図7および
図8は、本実施形態における画像処理の一例を示す図である。
【0059】
図7に示すように、ユーザにより両手でめくられる綴じ媒体が連続して画像読取部110にて読取られる場合、出力画像取得部102fは、ユーザの手の映り込みが検出されない各ページに対応する画像を出力画像として取得してもよい(例えば、ステップSC−4の右ページ(4ページ目))。一方、出力画像取得部102fは、検出判定部102eにより同一のページに対応する各画像から、異物の映り込みのない画像がないと判定された場合(例えば、1ページ目乃至3ページ目)、同一のページに対応する各画像を組み合わせて出力画像を取得してもよい。
【0060】
例えば、
図8に示すように、
図7の綴じ媒体の1ページ目に対応する出力画像を取得する場合、出力画像取得部102fは、1ページ目に対応する各画像(例えば、ステップSC−2の左ページ、および、ステップSC−3の左ページ)の手の映り込みが検出される部分を左右に分割して切り出し、合成することにより出力画像を取得してもよい。
【0061】
図5に戻り、制御部102は、画像読取部110にて綴じ媒体の読み取りが終了したか否か判定する(ステップSA−11)。
【0062】
そして、制御部102は、画像読取部110にて綴じ媒体の読み取りが終了していないと判定した場合(ステップSA−11:No)、処理をステップSA−1に移行させる。
【0063】
一方、制御部102は、画像読取部110にて綴じ媒体の読み取りが終了したと判定した場合(ステップSA−11:Yes)、処理を終了する。
【0064】
このように、本実施形態においては、ペラペラめくる人の自然な動作で電子化を行うことができる。また、本実施形態においては、手がない部分の画像を組み合わせる事で、コンテンツの抜けのない画像を提供することができる。例えば、本実施形態におけるオーバーヘッド型画像読取装置100においては、連続にエリアセンサで読み取った画像の中から、手と本の動きに基づいてページめくり動作を検出し、読み取りに最適なフレームを選定する。その後、本実施形態におけるオーバーヘッド型画像読取装置100においては、選定したフレームを画像解析し、手などの異物が写り込まない場合、そのフレームを出力する。一方、本実施形態におけるオーバーヘッド型画像読取装置100においては、手などの異物が写り込んだ場合に、前後の画像の中から先ほど選んだ画像の異物が写り込んでいないフレームを探索し、2つのフレームを合成することで、手などの異物が写り込まない画像を生成して出力する。そして、本実施形態におけるオーバーヘッド型画像読取装置100においては、この制御を繰り返すことで、ペラペラめくるだけで電子化を行うことができる。
【0065】
[3−2.具体的処理]
つづいて、本実施形態のオーバーヘッド型画像読取装置100における具体的処理の一例について
図9乃至
図15を参照して説明する。
図9(
図9A乃至
図9C)は、本実施形態のオーバーヘッド型画像読取装置100における具体的処理の一例を示すフローチャートである。
【0066】
図9に示すように、まず、制御部102は、積載台に上向きに設置された本の大きさと位置とを認識する(ステップSD−1)。
【0067】
そして、画像取得部102aは、ユーザによりめくられる本を連続して画像読取部110にて読取らせ、画像を取得する(ステップSD−2)。
【0068】
そして、画像取得部102aは、取得された画像を見開きとして分割した画像(分割画像)を取得する(ステップSD−3)。
【0069】
そして、保管部102hは、画像取得部102aにより取得された画像(分割画像)を記憶部106に格納(保管)する(ステップSD−4)。
【0070】
そして、異物検出部102bは、記憶部106に記憶された画像における、ユーザの手の映り込みを検出し、手の重心を算出する(ステップSD−5)。
【0071】
ここで、
図10を参照して、本実施形態における手検出処理の一例について説明する。
図10(
図10A乃至
図10E)は、本実施形態における手検出処理の一例を示す図である。
【0072】
図10(
図10B)に示すように、画像取得部102aは、手の映り込んだRGB画像を取得する(ステップSE−1)。
【0073】
そして、
図10Cに示すように、異物検出部102bは、画像取得部102aにより取得されたRGB画像を構成する画素をRGB値からHSV値に変換(HSV空間に投射)する(ステップSE−2)。
【0074】
そして、
図10Dに示すように、異物検出部102bは、変換したHSV値を用いて、肌色の色相の値(0<H<30)で二値化処理することで二値画像を取得する(ステップSE−3)。このように、異物検出部102bは、色相による手検出を行ってもよい。また、リスト格納部102dは、二値化した手の画像(二値画像)をリストと共にリスト管理部106aに格納してもよい。
【0075】
そして、
図10Eに示すように、異物検出部102bは、取得した二値画像に基づいて、手の輪郭を抽出することで、ユーザの手の映り込みを検出し(ステップSE−4)、処理を終了する。
【0076】
図9に戻り、動作検出部102cは、ステップSD−5にて異物検出部102bにより手の映り込みが検出された画像(今の画像)の1コマ前の画像(1回前)からの手の動きを算出する(ステップSD−6)。
【0077】
そして、動作検出部102cは、今の画像の1回前からの画像の動きを算出する(ステップSD−7)。
【0078】
そして、動作検出部102cは、算出した手の動き、および、画像の動きより、本のページのめくり動作を検出する(ステップSD−8)。
【0079】
ここで、
図11を参照して、本実施形態におけるページ動作認識処理の一例について説明する。
図11(
図11A乃至
図11E)は、本実施形態におけるページ動作認識処理の一例を示す図である。
【0080】
図11に示すように、異物検出部102bは、画像読取部110にて連続して読取られた本の画像(フレーム)を取得する前処理を行う(ステップSF−1)。
【0081】
そして、
図11Bに示すように、異物検出部102bは、取得した画像(フレーム)に対してHarris corner detectorを用いて、特徴点の抽出を行う(ステップSF−2)。ここで、異物検出部102bは、画像Iの画素を(x,y)、構造テンソルをM、特徴点判別式をR、および、スライスをTとして、下記数式1に基づいて構造テンソルMを算出してもよい。
【数1】
【0082】
このMの固有値を分析する事により、以下の様に分析できる。すなわち、下記数式2であれば、I(x,y)は特徴点を持たない。また、下記数式3であれば、エッジが存在する。また、λ
1およびλ
2が正の大きな値であれば、コーナーが存在する。
【数2】
【数3】
【0083】
ここで、この固有値を簡略的に表す特徴量Rは、R=det(M)−k(tr(M))
2と算出してもよい。このとき、det(M)=λ
1λ
2=AB−C2、および、tr(M)=A+Bと算出してもよい。また、kは一般的に0.04〜0.15が良いとされている。この、R>Tが成り立つときに、Rの座標をコーナーと判定してもよい。
【0084】
そして、
図11Cに示すように、異物検出部102bは、抽出された特徴点に対して、Lucas−Kanade methodを用いて、フレーム間での特徴点移動追跡を行う(ステップSF−3)。
【0085】
そして、
図11Dに示すように、異物検出部102bは、フレーム間での特徴点移動について、Motion vector filterを用いて、水平方向のみの移動ベクトルの抽出を行う(ステップSF−4)。ここで、画素を(x,y)、時間をt、移動ベクトルの角度をθ、ならびに、T
LおよびT
Uをスライス(ベクトルのスカラ)とする。そして、めくり動作の動きは水平方向と仮定し、現在の座標を(X
t,Y
t)、次の時間の座標を(X
t+1,Y
t+1)、および、2つの座標の移動角度をωとして、異物検出部102bは、下記数式4に基づいてtanωを算出してもよい。
【数4】
【0086】
ここで、許容する水平方向の角度をθとすると、判定条件の一つは下記数式5となる。
【数5】
また、T
LおよびT
Uを、移動量の上限値および下限値とすると、二点間の距離より判定条件の一つは下記数式6となる。
【数6】
この、数式5および数式6が同時に成立するときに、異物検出部102bは、水平方向のベクトルと判断して保存してもよい。
【0087】
そして、
図11Eに示すように、異物検出部102bは、抽出された移動ベクトル全体の方向よりページの動き(移動方向)を判定(動体判定)し、本のページのめくり動作を検出し(ステップSF−5)、処理を終了する。
【0088】
図9に戻り、リスト格納部102dは、リスト管理部106aのリストに現在のページ番号、画像の保存先、手の位置、および、サイズを追加する(ステップSD−9)。
【0089】
ここで、
図12および
図13を参照して、本実施形態におけるリストの一例について説明する。
図12および
図13は、本実施形態におけるリストの一例を示す図である。
【0090】
図12には、本の見開きに対応する画像を左右に分割した、右側のリスト(画像リスト)の具体例が示されている。
図12に示すように、画像リストには、各画像の画像番号、ページのめくり有無、ページの動き有無、映り込んだ手の数、ならびに、映り込んだ各手の座標、手の大きさ、および、手の形(画像)に関する情報が含まれていてもよい。例えば、
図12においては、画像番号8乃至10の画像が、手の映り込みが無く、ページの動きも無い画像であるが、本実施形態において、出力画像取得部102fは、リストの最上部(時系列的に最も古い)画像番号8の画像を出力画像として取得してもよい。すなわち、画像番号11の画像においては、手の映り込みが検出されているが、画像処理上、異物検出部102bによる画像番号9および10の画像における、手の検出が完全では無い可能性があるため、出力画像取得部102fは、画像番号8の画像を出力画像として取得してもよい。
【0091】
また、
図13には、本の見開きに対応する画像を左右に分割した、左側のリスト(画像リスト)の具体例が示されている。例えば、
図13においては、画像番号1および2の画像以外に、手の映り込みが無い画像は無いため、出力画像取得部102fは、同一のページに対応する各画像を切り出し、合成することにより出力画像を取得してもよい。すなわち、出力画像取得部102fは、リストに基づいて、各画像から手の映り込みが重ならない部分(画像)を探索することで、各画像を切り出し、合成することにより出力画像を取得してもよい。ここで、リストの左右の番号は、同じ時間での画像であってもよい。
【0092】
図9に戻り、動作検出部102cは、綴じ媒体のページのめくり動作の完了を検出したか否か判定し(ステップSD−10)、各画像に対応するページを特定する。
【0093】
そして、動作検出部102cは、綴じ媒体のページのめくり動作の完了を検出していないと判定した場合(ステップSD−10:No)、処理をステップSD−22に移行させる。
【0094】
一方、リスト格納部102dは、綴じ媒体のページのめくり動作の完了を検出したと判定した場合(ステップSD−10:Yes)、リスト管理部106aのリストに管理部めくりフラグを追加する(ステップSD−11)。
【0095】
そして、検出判定部102eは、リスト管理部106aに記憶されたリストに基づいて、前回のリストの管理部めくりフラグの位置から現在の位置まで(画像を)探索する(ステップSD−12)。なお、前回のリストの管理部めくりフラグがない場合、検出判定部102eは、リスト管理部106aに記憶されたリストに基づいて、最初から現在の位置まで(画像を)探索してもよい。
【0096】
そして、検出判定部102eは、探索された画像における、本の位置と手の位置とを認識し、本と手とが最も分離される位置を探す(ステップSD−13)。
【0097】
そして、検出判定部102eは、探索された画像が手の映り込み(手の重なり)のある画像であるか否か判定する(ステップSD−14)。
【0098】
そして、検出判定部102eは、画像が手の重なりのある画像ではないと判定した場合(ステップSD−14:No)、処理をステップSD−18に移行させる。
【0099】
一方、検出判定部102eは、画像が手の重なりのある画像であると判定した場合(ステップSD−14:Yes)、重なった部分が重ならない画像を探す(ステップSD−15)。
【0100】
そして、検出判定部102eは、手が重なった部分が重ならない画像があるか否か判定する(ステップSD−16)。
【0101】
そして、検出判定部102eは、手が重なった部分が重ならない画像があると判定した場合(ステップSD−16:Yes)、処理をステップSD−14に移行させる。
【0102】
一方、検出判定部102eは、手が重なった部分が重ならない画像がないと判定した場合(ステップSD−16:No)、その画像を手の映り込みのある(手残りあり)画像と判定する(ステップSD−17)。
【0103】
そして、制御部102は、リスト管理部106aに記憶されたリストに基づいて、検出判定部102eにより同一のページに対応する各画像から、当該ページに最適な画像が複数抽出されたか否か判定する(ステップSD−18)。
【0104】
そして、出力画像取得部102fは、同一のページに対応する各画像から、当該ページに最適な画像が複数抽出されていないと判定した場合(ステップSD−18:No)、抽出された画像を出力画像として取得し、処理をステップSD−21に移行させる。
【0105】
そして、出力画像取得部102fは、制御部102により同一のページに対応する各画像から、当該ページに最適な画像が複数抽出されたと判定された場合(ステップSD−18:Yes)、抽出された複数の画像から手の写り込まない画像を用いて合成することにより出力画像を取得する(ステップSD−19)。
【0106】
そして、出力画像取得部102fは、手残りありの場合、手の削除処理(周りから補完)を行い、出力画像として取得する(ステップSD−20)。すなわち、出力画像取得部102fは、同一のページに対応する各画像において、手の移り込みが検出される領域(部分画像)が存在する場合、画像から手の移り込みを削除し、他(例えば、前後など)のページに対応する画像を用いて当該部分を補完してもよい。
【0107】
そして、画像出力部102gは、出力画像取得部102fにより取得された画像(出力画像)をページとして入出力部112を介して出力する(ステップSD−21)。
【0108】
そして、制御部102は、画像読取部110にて本の読み取りが終了したか否か判定する(ステップSD−22)。
【0109】
そして、制御部102は、画像読取部110にて本の読み取りが終了していないと判定した場合(ステップSD−22:No)、処理をステップSD−2に移行させる。
【0110】
一方、制御部102は、画像読取部110にて本の読み取りが終了したと判定した場合(ステップSD−22:Yes)、処理が1回目であるか否か判定する(ステップSD−23)。
【0111】
そして、制御部102は、処理が1回目であると判定した場合(ステップSD−23:Yes)、処理をステップSD−11に移行させる。
【0112】
一方、制御部102は、処理が1回目でないと判定した場合(ステップSD−23:No)、処理を終了する。
【0113】
すなわち、本実施形態においては、連続して画像読み取りを行い、各々の画像に対して手の検出を行う。そして、画像と前後の画像の動きより、手の動作を判定し、画像の動きによりページ動作を判定し、手の動作(と、それに同期したページの動き)によりページめくりを判定する。そして、本実施形態においては、これらの判定結果を元に、候補となるフレーム画像の抽出し、抽出結果が複数の場合、手がない部分の画像を合成して一つのページを生成する。そして、本実施形態においては、これらを繰り返すことで、連続して画像を生成することができる。
【0114】
ここで、
図14を参照して、本実施形態における抽出フレーム判定処理の一例について説明する。
図14は、本実施形態における抽出フレーム判定処理の一例を示すフローチャートである。
【0115】
図14において、検出判定部102eは、リスト管理部106aに記憶された左右のリストから、最初のめくり場所を探索する(ステップSG−1)。すなわち、左めくりの場合、最初のめくり場所は、右リストにあり、右めくりの場合、最初のめくり場所は、左リストにあることになる。
【0116】
そして、検出判定部102eは、リスト管理部106aに記憶されたリストに基づいて、前回のイベント(開始、終了、または、ページめくり開始)まで探索する(ステップSG−2)。
【0117】
そして、検出判定部102eは、リスト管理部106aに記憶されたリストに基づいて、同一のページに対応する各画像から、ページの動きが無い画像があるか否か判定する(ステップSG−3)。
【0118】
そして、画像出力部102gは、検出判定部102eにより同一のページに対応する各画像から、ページの動きが無い画像が無いと判定された場合(ステップSG−3:No)、エラー通知を入出力部112を介して出力し(ステップSG−4)、処理を終了する。
【0119】
一方、検出判定部102eは、同一のページに対応する各画像から、ページの動きが無い画像があると判定された場合(ステップSG−3:Yes)、リスト管理部106aに記憶されたリストに基づいて、ユーザの手の映り込みのない画像があるか否か判定する(ステップSG−5)。
【0120】
そして、出力画像取得部102fは、検出判定部102eによりユーザの手の映り込みのない画像があると判定された場合(ステップSG−5:Yes)、当該手の映り込みのない画像を出力画像として取得し、処理をステップSG−9に移行させる。ここで、出力画像取得部102fは、前のページめくりまでの時間軸の中から最適なフレーム画像を選択(1枚、または、複数)し、候補が複数ある場合、ページの動きが少ない方を選択してもよい。すなわち、出力画像取得部102fは、画像番号が大きい方、または、番号両隣の画像に動きがより少ない方の画像を出力画像として取得してもよい。
【0121】
一方、制御部102は、検出判定部102eによりユーザの手の映り込みのない画像が無いと判定された場合(ステップSG−5:No)、リスト管理部106aに記憶されたリストに基づいて、手の領域が重ならない画像を探索する(ステップSG−6)。
【0122】
ここで、
図15を参照して、本実施形態における手の領域が重ならない画像探索の一例について説明する。
図15は、本実施形態における手の領域が重ならない画像探索処理の一例を示すフローチャートである。
【0123】
図15に示すように、制御部102は、リスト管理部106aに記憶されたリストに基づいて、基準となるフレーム(画像番号)を基準データ(A)として選定する(ステップSH−1)。
【0124】
そして、制御部102は、基準データ(A)の手の形に関する情報を抽出し、手の形に関する情報に基づいて、基準データ(A)の各画素A(x,y)に二値データ(1=手、および、0=背景)を付与する(ステップSH−2)。
【0125】
そして、制御部102は、比較対象を一つ前のフレームとし、対象データ(B)として設定する(ステップSH−3)。
【0126】
そして、制御部102は、対象データ(B)が、基準データ(A)の前回のイベント(例えば、異なるページ等)であるか否か判定する(ステップSH−4)。
【0127】
そして、制御部102は、対象データ(B)が、基準データ(A)の前回のイベントであると判定した場合(ステップSH−4:Yes)、比較対象なしと判定し(ステップSH−5)、処理を終了する。
【0128】
一方、制御部102は、対象データ(B)が、基準データ(A)の前回のイベントではないと判定した場合(ステップSH−4:No)、対象データ(B)の手の形に関する情報を抽出し、対象データ(B)の各画素B(x,y)に二値データ(1=手、および、0=背景)を付与し、両データの各画素(例えば、同一座標にある画素等)の積(ΣA(x,y)B(x,y))を算出することにより、対象データの手があるデータ全てが、基準データの背景部分かを探索する(ステップSH−6)。
【0129】
そして、制御部102は、算出した結果、すなわち、積(ΣA(x,y)B(x,y))=0であるか否か判定する(ステップSH−7)。
【0130】
そして、制御部102は、算出した結果=0ではないと判定した場合(ステップSH−7:No)、処理をステップSH−3に移行させる。
【0131】
一方、制御部102は、算出した結果=0であると判定した場合(ステップSH−7:Yes)、対象ありとし、対象データ(B)のフレームを手の領域が重ならない画像に選定し(ステップSH−8)、処理を終了する。
【0132】
図14に戻り、制御部102は、手の領域が重ならない画像があるか否か判定する(ステップSG−7)。
【0133】
そして、制御部102は、手の領域が重ならない画像が無いと判定した場合(ステップSG−7:No)、処理をステップSG−4に移行させる。
【0134】
そして、出力画像取得部102fは、制御部102により手の領域が重ならない画像があると判定された場合(ステップSG−7:Yes)、選定した手の領域が重ならない画像を切り出し、合成することにより出力画像を取得する(ステップSG−8)。
【0135】
そして、画像出力部102gは、出力画像取得部102fにより取得された出力画像を入出力部112を介して、めくり方向のページ順番で出力する(ステップSG−9)。なお、ステップSG−2乃至SG−9の処理は、左右各々実施してもよい。
【0136】
そして、制御部102は、リスト管理部106aに記憶されたリストに基づいて、次のイベントの処理に移行する(ステップSG−10)。
【0137】
そして、制御部102は、リスト管理部106aに記憶されたリストに基づいて、イベントが終了であるか否か判定する(ステップSG−11)。
【0138】
そして、制御部102は、イベントが終了ではないと判定した場合(ステップSG−11:No)、処理をステップSG−2に移行させる。
【0139】
一方、制御部102は、イベントが終了であると判定した場合(ステップSG−11:Yes)、処理を終了する。
【0140】
[4.他の実施形態]
さて、これまで本発明の実施形態について説明したが、本発明は、上述した実施形態以外にも、特許請求の範囲に記載した技術的思想の範囲内において種々の異なる実施形態にて実施されてよいものである。
【0141】
例えば、オーバーヘッド型画像読取装置100は、スタンドアローンの形態で処理を行ってもよく、クライアント端末(オーバーヘッド型画像読取装置100とは別筐体である)からの要求に応じて処理を行い、その処理結果を当該クライアント端末に返却するようにしてもよい。
【0142】
また、実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
【0143】
このほか、明細書中および図面中で示した処理手順、制御手順、具体的名称、各処理の登録データもしくは検索条件等のパラメータを含む情報、画面例、または、データベース構成については、特記する場合を除いて任意に変更することができる。
【0144】
また、オーバーヘッド型画像読取装置100に関して、図示の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。
【0145】
例えば、オーバーヘッド型画像読取装置100の各装置が備える処理機能、特に制御部102にて行われる各処理機能については、その全部または任意の一部を、CPU(Central Processing Unit)および当該CPUにて解釈実行されるプログラムにて実現してもよく、また、ワイヤードロジックによるハードウェアとして実現してもよい。尚、プログラムは、後述する、コンピュータに本発明に係る方法を実行させるためのプログラム化された命令を含む、一時的でないコンピュータ読み取り可能な記録媒体に記録されており、必要に応じてオーバーヘッド型画像読取装置100に機械的に読み取られる。すなわち、ROMまたはHDD(Hard Disk Drive)などの記憶部106などには、OS(Operating System)と協働してCPUに命令を与え、各種処理を行うためのコンピュータプログラムが記録されている。このコンピュータプログラムは、RAMにロードされることによって実行され、CPUと協働して制御部を構成する。
【0146】
また、このコンピュータプログラムは、オーバーヘッド型画像読取装置100に対して任意のネットワークを介して接続されたアプリケーションプログラムサーバに記憶されていてもよく、必要に応じてその全部または一部をダウンロードすることも可能である。
【0147】
また、本発明に係るプログラムを、コンピュータ読み取り可能な記録媒体に格納してもよく、また、プログラム製品として構成することもできる。ここで、この「記録媒体」とは、メモリーカード、USBメモリ、SDカード、フレキシブルディスク、光磁気ディスク、ROM、EPROM、EEPROM、CD−ROM、MO、DVD、および、Blu−ray(登録商標) Disc等の任意の「可搬用の物理媒体」を含むものとする。
【0148】
また、「プログラム」とは、任意の言語や記述方法にて記述されたデータ処理方法であり、ソースコードやバイナリコード等の形式を問わない。なお、「プログラム」は必ずしも単一的に構成されるものに限られず、複数のモジュールやライブラリとして分散構成されるものや、OS(Operating System)に代表される別個のプログラムと協働してその機能を達成するものをも含む。なお、実施形態に示した各装置において記録媒体を読み取るための具体的な構成、読み取り手順、あるいは、読み取り後のインストール手順等については、周知の構成や手順を用いることができる。
【0149】
記憶部106に格納される各種のデータベース等(リスト管理部106a)は、RAMもしくはROM等のメモリ装置、ハードディスク等の固定ディスク装置、フレキシブルディスク、および/または、光ディスク等のストレージ手段であり、各種処理やウェブサイト提供に用いる各種のプログラム、テーブル、データベース、および/または、ウェブページ用ファイル等を格納してもよい。
【0150】
また、オーバーヘッド型画像読取装置100は、既知のパーソナルコンピュータ、ワークステーション等の情報処理装置として構成してもよく、また、該情報処理装置に任意の周辺装置を接続して構成してもよい。また、オーバーヘッド型画像読取装置100は、該情報処理装置に本発明の方法を実現させるソフトウェア(プログラム、データ等を含む)を実装することにより実現してもよい。
【0151】
更に、装置の分散・統合の具体的形態は図示するものに限られず、その全部または一部を、各種の付加等に応じて、または、機能負荷に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。すなわち、上述した実施形態を任意に組み合わせて実施してもよく、実施形態を選択的に実施してもよい。