(58)【調査した分野】(Int.Cl.,DB名)
1つもしくは複数のプロセッサ、メモリ及びデジタル画像センサを有するデバイスによって実行される、複数ページの印刷ドキュメントの画像シーケンスをキャプチャする方法であって、
前記プロセッサが、
前記複数ページの印刷ドキュメントの第1の印刷ページのプレビュー画像を観察し、前記プレビュー画像は前記デジタル画像センサによって生成され、
画像をいつキャプチャするかを示すユーザ指示なしに、前記プレビュー画像の第1品質測定値が第1品質閾値を越えた場合に、前記第1の印刷ページの静止画像をキャプチャし、
ユーザから画像のキャプチャが完了したことを示す指示を受信するまで、前記複数ページの印刷ドキュメントのその他のページの観察及びキャプチャを繰り返し、
前記ユーザからの画像のキャプチャが完了したことを示す指示を受信した場合、
キャプチャした前記静止画像を単一のデジタルドキュメントに連結し、
前記単一のデジタルドキュメントを保存する、
方法。
印刷ページの各々の画像をキャプチャすることは、前記静止画像をキャプチャした後、前記印刷ページをめくるように、前記ユーザに報知することをさらに含む、請求項1に記載の方法。
画像のキャプチャが完了したことを示す前記ユーザからの前記指示の受信に応じて、識別された前記セットのキャプチャされた前記静止画像の各々の評価、識別及び観察及びキャプチャ動作の繰り返しを行う、
請求項7に記載の方法。
キャプチャした前記静止画像を前記単一のデジタルドキュメントに連結することは、前記静止画像がキャプチャされた順序に基づいてキャプチャした前記静止画像を順序付けることを含む、
請求項1〜12のいずれか1項に記載の方法。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、ハンドヘルドデバイスを用いたユーザによる複数ページのドキュメントのスキャンに対する認識的及び身体的要求を低減する。ユーザの観点からは、デバイスが位置付けられ、安定させられると、ページをめくりながら、ドキュメントのビデオを撮影するのと同様の経験である。開示の実装は、高い品質のスキャンを保証するために必要なことを行う。これにより、ユーザは、片手でページをめくりながら、もう一方の片手でデバイスを安定的に保持する、という、よりシンプルなタスクに認識的及び身体的なリソースをフォーカスすることができる。
【課題を解決するための手段】
【0006】
実装のいくつかにおいて、キャプチャ処理の間、アプリケーションは、(a)自動撮影を可能とするためにプレビューフレームの画像品質を分析し、(b)再撮影が必要であるかを判定するためにキャプチャ画像の画像品質を分析し、(c)ユーザがページをめくってよい場合、ユーザに(例えば、音によって)伝達する。キャプチャの後、実装のいくつかは、ユーザの注意を、レビューが必要な画像だけに向けさせる、画像品質を高めるストリームラインユーザインターフェイスを提供する。これにより、全ての画像をレビューする必要を低減する。実装のいくつかは、(例えば、ページの各々の2以上のフォトをキャプチャし、次に、ページの各々のもっともよい1つのフォトを自動的に選択する)バーストモードキャプチャと、ストリームライン両面ドキュメントキャプチャ及びレビューと、をサポートする。
【0007】
以下に記述するように、ユーザは画像をキャプチャするためにボタンを押下する必要がない。代替的に、キャプチャは、画像品質が十分適切であるかを決定することをユーザに要求することなしに、実行される。開示の実装は、複数ページドキュメントの画像をキャプチャすることに対処し、いつキャプチャを行うかを判定し、乏しい品質(例えば、明瞭でない、もしくは、フレーミングが適切でない)の撮影をやり直し、キャプチャ画像を再度順序付ける方法を含む。加えて、実装のいくつかは、単一のページの複数回の撮影をサポートする。これにより、複数ページのキャプチャを実行する場合、保存済画像の品質を改善することができる。
【0008】
ページ全体の最適キャプチャをサポートするために、実装のいくつかは、コーナーがステープルで留められているドキュメントについて、自動的にページのエッジを識別し、指などの無関係なオブジェクトによってページの部分が覆われている画像のキャプチャを避けることができる。
【0009】
実装のいくつかによれば、複数ページの印刷ドキュメントの画像のシーケンスをキャプチャする方法は、スマートフォンなどのハンドヘルドデバイスによって実行される。デバイスは1つもしくは複数のプロセッサ、メモリ及びデジタル画像センサを有する。デバイスは、複数ページ印刷ドキュメントの最初の印刷ページのプレビュー画像を観察する。プレビュー画像はデジタル画像センサによって生成される。いつ画像をキャプチャするかを示すユーザの指示なしに、デバイスは、プレビュー画像の第1品質測定値が第1品質閾値を越えた場合に、最初の印刷ページの静止画像をキャプチャする。実装のいくつかにおいて、ユーザは画像キャプチャを報知され、これにより、ユーザは、印刷ドキュメントの次のページに移動すべきことを知る。デバイスは、画像のキャプチャが完了したことを示すユーザからの指示を受信するまで、その他のページを観察し、キャプチャする処理を繰り返す。指示は、能動的(例えば、明示的に「終了」ボタンを押下すること、もしくは、スキャンアプリケーションを閉じること)もしくは受動的(例えば、所定の期間、移動がない、もしくは、デバイスが動作していない)であってよい。画像のキャプチャが完了したことを示すユーザからの指示の受信に応じて、デバイスは、キャプチャされた静止画像を単一のデジタルドキュメントに連結し、単一のデジタルドキュメントを保存する。
【0010】
実装のいくつかによれば、印刷ページの各々の画像をキャプチャすることは、静止画像をキャプチャした後、第2品質測定値によって、最高解像度でキャプチャされた静止画像の少なくとも部分を評価し、第2品質測定値が第2品質閾値を下回る場合、キャプチャした静止画像を廃棄し、ユーザに廃棄画像を報知し、印刷ページの各々のプレビュー画像の観察を繰り返す、ことを含む。
【0011】
実装のいくつかによれば、印刷ページの各々の画像をキャプチャすることは、さらに、静止画像をキャプチャした後、第2品質測定値に応じて、最高解像度でキャプチャされた静止画像の少なくとも部分を評価し、その品質測定値を第2品質測定値と比較することを含む。第2品質測定値が第2品質閾値を下回る場合、印刷ページの各々のプレビュー画像の観察を繰り返し、第2品質測定値が第2品質閾値以上である場合、静止画像がキャプチャされたことをユーザに報知する。
【0012】
実装のいくつかによれば、画像のキャプチャが完了したことを示すユーザからの指示の受信に応じて、デバイスはその他の動作のいくつかを実行する。デバイスは、キャプチャされた静止画像の各々を評価し、第2品質スコアの各々をキャプチャした静止画像の各々に割り当てる。デバイスは、割り当てられた第2品質スコアに応じて、キャプチャした静止画像をソートする。次に、デバイスは、ソートされた順序でキャプチャされた静止画像をレビューするようにユーザに促し、ユーザによって選択された画像のための観察及びキャプチャ動作を繰り返す。このレビュー処理において、ユーザによって選択されたキャプチャされた静止画像はより高い品質を有するキャプチャ画像と置換される。
【0013】
本発明の第1の態様は、1つもしくは複数のプロセッサ、メモリ及びデジタル画像センサを有するデバイスによって実行される、複数ページの印刷ドキュメントの画像シーケンスをキャプチャする方法であって、前記プロセッサが、前記複数ページの印刷ドキュメントの第1の印刷ページのプレビュー画像を観察し、前記プレビュー画像は前記デジタル画像センサによって生成され、画像をいつキャプチャするかを示すユーザ指示なしに、前記プレビュー画像の第1品質測定値が第1品質閾値を越えた場合に、前記第1の印刷ページの静止画像をキャプチャし、前記ユーザから画像のキャプチャが完了したことを示す指示を受信するまで、前記複数ページの印刷ドキュメントのその他のページの観察及びキャプチャを繰り返し、前記ユーザからの画像のキャプチャが完了したことを示す指示を受信した場合、キャプチャした前記静止画像を単一のデジタルドキュメントに連結し、前記単一のデジタルドキュメントを保存する。
【0014】
本発明の第2の態様は、第1の態様の方法であって、前記印刷ページの各々の画像をキャプチャすることは、前記静止画像をキャプチャした後、前記印刷ページをめくるように、前記ユーザに報知することをさらに含む。
【0015】
本発明の第3の態様は、第1または第2の態様の方法であって、前記印刷ページの各々の画像をキャプチャすることは、前記静止画像をキャプチャした後、第2品質測定値に応じて、最高解像度でキャプチャした前記静止画像の少なくとも部分を評価し、前記第2品質測定値が第2品質閾値を下回る場合、前記印刷ページの各々のキャプチャが繰り返されることを前記ユーザに報知し、前記印刷ページの各々のプレビュー画像の観察を繰り返す、ことをさらに含む。
【0016】
本発明の第4の態様は、第1または第2の態様の方法であって、前記印刷ページの各々の画像をキャプチャすることは、前記静止画像をキャプチャした後、第2品質測定値に応じて、最高解像度でキャプチャした前記静止画像の少なくとも部分を評価し、前記第2品質測定値が第2品質閾値を下回る場合、前記印刷ページの各々のプレビュー画像の観察を繰り返し、前記第2品質測定値が第2品質閾値以上である場合、前記静止画像がキャプチャされたことを前記ユーザに報知する、ことをさらに含む。
【0017】
本発明の第5の態様は、第1〜第4のいずれかの態様の方法であって、キャプチャした前記静止画像の各々を評価し、キャプチャした前記静止画像の各々に第2品質スコアの各々を割り当て、割り当てられた前記第2品質スコアによってキャプチャした前記静止画像をソートし、ソートされた順序でキャプチャされた前記静止画像をレビューすることを前記ユーザに促し、前記ユーザによって選択された画像の観察及びキャプチャ動作を繰り返し、選択された、キャプチャされた前記静止画像をより高い品質を有するキャプチャ画像と置換する、ことをさらに含む。
【0018】
本発明の第6の態様は、第5の態様の方法であって、画像のキャプチャが完了したことを示す前記ユーザからの前記指示の受信に応じて、評価、ソート及び促すことを行う。
【0019】
本発明の第7の態様は、第1〜第4のいずれかの態様の方法であって、キャプチャした前記静止画像の各々を評価し、キャプチャした前記静止画像の各々に第2品質スコアの各々を割り当て、対応する第2品質スコアが第2品質閾値を下回るキャプチャされた静止画像のセットを識別し、識別された前記セットのキャプチャされた前記静止画像の各々の観察及びキャプチャ動作を繰り返し、識別された前記セットのキャプチャされた静止画像をより高い品質を有するキャプチャ画像と置換する。
【0020】
本発明の第8の態様は、第7の態様の方法であって、画像のキャプチャが完了したことを示す前記ユーザからの前記指示の受信に応じて、識別された前記セットのキャプチャされた前記静止画像の各々の評価、識別及び観察及びキャプチャ動作の繰り返しを行う。
【0021】
本発明の第9の態様は、第1〜第8のいずれかの態様の方法であって、前記ユーザからの前記指示は、前記ハンドヘルドデバイスのユーザインターフェイスのボタン押下を含む。
【0022】
本発明の第10の態様は、第1〜第8のいずかの態様の方法であって、前記ユーザからの前記指示は前記ユーザからの音声コマンドを含む。
【0023】
本発明の第11の態様は、第1〜第10のいずれかの態様の方法であって、前記複数ページの印刷ドキュメントの単一の印刷ページに対応する2以上のキャプチャされた静止画像を決定し、前記単一の印刷ページに対応するキャプチャされた前記静止画像の1つを選択し、選択された前記1つを除いて、前記単一の印刷ページに対応するキャプチャされた前記静止画像の全てを廃棄する。
【0024】
本発明の第12の態様は、第11の態様の方法であって、画像のキャプチャが完了したことを示す前記ユーザからの指示の受信に応じて、判定、選択、廃棄を行う。
【0025】
本発明の第13の態様は、第1〜第11のいずれかの態様の方法であって、前記複数ページの印刷ドキュメントが両面ドキュメントであることを示す前記ユーザからの指示を受信し、前記複数ページの印刷ドキュメントのページの順序に対応しない順序で、前記複数ページの印刷ドキュメントの静止画像をキャプチャし、キャプチャした前記静止画像を前記単一のデジタルドキュメントに連結することは、前記複数ページの印刷ドキュメントの前記ページの順序に対応して、キャプチャした前記静止画像を順序付けることを含む。
【0026】
本発明の第14の態様は、第1〜第12のいずれかの態様の方法であって、キャプチャした前記静止画像を前記単一のデジタルドキュメントに連結することは、前記静止画像がキャプチャされた順序に基づいてキャプチャした前記静止画像を順序付けることを含む。
【0027】
本発明の第15の態様は、第1〜第14のいずれかの態様の方法であって、前記プレビュー画像を観察することは、第1のプレビュー画像の4つのドキュメントエッジラインを識別し、前記4つのドキュメントエッジラインによって形成された矩形の内部の前記第1のプレビュー画像に変換ポイントがあるか否かを判定し、前記矩形の内部に1つもしくは複数の変換ポイントがある場合、前記ユーザに画像侵入を報知する、ことをさらに含む。
【0028】
本発明の第16の態様は、1つもしくは複数のプロセッサ、メモリ及び前記メモリに記憶されている1つもしくは複数のプログラム、を含む、複数ページの印刷ドキュメントの画像のシーケンスをキャプチャするシステムであって、1つもしくは複数の前記プログラムは、前記複数ページの印刷ドキュメントの第1の印刷ページのプレビュー画像を観察し、前記プレビュー画像はデジタル画像センサによって生成され、画像をいつキャプチャするかを示すユーザ指示なしに、前記プレビュー画像の第1品質測定値が第1品質閾値を越えた場合に、前記第1の印刷ページの静止画像をキャプチャし、前記ユーザから画像のキャプチャが完了したことを示す指示を受信するまで、前記複数ページの印刷ドキュメントのその他のページの観察及びキャプチャを繰り返し、前記ユーザからの画像のキャプチャが完了したことを示す指示を受信した場合、キャプチャした前記静止画像を単一のデジタルドキュメントに連結し、前記単一のデジタルドキュメントを保存する、命令を含む。
【0029】
本発明の第17の態様はプログラムであって、複数ページの印刷ドキュメントの第1の印刷ページのプレビュー画像を観察し、前記プレビュー画像はデジタル画像センサによって生成され、画像をいつキャプチャするかを示すユーザ指示なしに、前記プレビュー画像の第1品質測定値が第1品質閾値を越えた場合に、前記第1の印刷ページの静止画像をキャプチャし、前記ユーザから画像のキャプチャが完了したことを示す指示を受信するまで、前記複数ページの印刷ドキュメントのその他のページの観察及びキャプチャを繰り返し、前記ユーザからの画像のキャプチャが完了したことを示す指示を受信した場合、キャプチャした前記静止画像を単一のデジタルドキュメントに連結し、前記単一のデジタルドキュメントを保存する、ことをコンピュータに実行させる。
【発明の効果】
【0030】
ハンドヘルドデバイスを用いたユーザによる複数ページのドキュメントのスキャンに対する認識的及び身体的要求を低減する。
【発明を実施するための形態】
【0032】
同様の参照符号は、図の対応する部分を参照する。
【0033】
図1は、本発明の実装のいくつかが実施される状況を示す。
図1では、ページ106及び108の2ページを有する複数ページドキュメントが示されている。ページ106及び108はコーナー114で(例えば、ステープルによって)接続されている。
図1において、ドキュメントは片面印刷されている。ページ108の表面は視認可能であり、ページ106の裏面(ブランク)も視認可能である。この例示において、ユーザの左手112は、適切にドキュメントを維持するためにページ106を押え付けている。
【0034】
ドキュメントの上方に、ユーザの右手110によって保持されているハンドヘルドデバイス102がある。ディスプレイスクリーン104は、ハンドヘルドデバイス102の反対側の面にあるデジタル画像センサ252からのプレビュー画像を表示する(
図2B及び
図2C)。ハンドヘルドデバイス102がページ108の上方に適切に位置付けされ、画像が十分に明瞭であれば、ハンドヘルドデバイス102のスキャンアプリケーション224はページ108のフォトを撮影し、次のページに移るためにページをめくるようユーザに指示する。実装のいくつかにおいて、ハンドヘルドデバイス102は次のページに移るようにユーザに報知するための可聴音を使用する。
図4〜8にさらに詳細に記載するように、実装のいくつかは、ページの各々のフォトを複数回ユーザに撮影させる(後でもっともよいフォトを自動的に選択する)か、もしくは、キャプチャされたフォトの品質測定値を直接的に計算し、当該品質測定値が所定の品質閾値を下回るか否かをユーザに知らせる(品質測定値が所定の品質閾値を下回る場合には、キャプチャしたフォトは廃棄される)。
【0035】
図2Aは実装のいくつかによるハンドヘルドデバイス102を例示するブロック図である。ハンドヘルドデバイス102は、スマートフォンもしくはデジタル画像センサ252を有するその他のモバイルデバイスであってよい。ハンドヘルドデバイス102は、一般的に、1つもしくは複数の処理ユニット(CPU)202、1つもしくは複数のネットワークもしくはその他の通信インターフェイス204、メモリ214、及び、これらの構成要素を相互に接続するための1つもしくは複数の通信バス212を含む。通信バス212はシステムの構成要素の間の通信を相互に接続し制御する電気回路構成要素(チップセットと呼ばれることもある)を含んでいてもよい。ハンドヘルドデバイス102は、ディスプレイデバイス208(例えば、ディスプレイスクリーン104)及び入力デバイス/機構210(例えば、タッチスクリーン、物理的なボタン、音声による指示のためのマイクなど)を含むユーザインターフェイス206も含む。メモリ214は、DRAM、SRAM、DDR RAM、もしくはその他のランダムアクセスソリッドステートメモリデバイスなどの高速ランダムアクセスメモリを含む。メモリ214は、1つもしくは複数の磁気ディスクストレージデバイス、光ディスクストレージデバイス、フラッシュメモリデバイス、もしくはその他の不揮発性ソリッドステートストレージデバイスなどの不揮発性メモリを含んでもよい。メモリ214は、CPU202から離れた位置に配置される1つもしくは複数のストレージデバイスをオプションで含んでいてもよい。メモリ214、もしくは、メモリ214内の不揮発性メモリデバイスは、コンピュータ可読記憶媒体を含む。
【0036】
実装のいくつかにおいて、メモリ214は以下のプログラム、モジュール及びデータ構造、もしくは、プログラム、モジュール及びデータ構造のサブセットを記憶する。
●オペレーティングシステム216:オペレーティングシステム216は、様々な基本システムサービスを扱うためのプロシージャ及びハードウェア依存タスクを実行するためのプロシージャを含む。
●通信モジュール218:通信モジュール218は、1つもしくは複数の通信インターフェイス204(有線もしくは無線)及びインターネット、その他のワイドエリアネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワークなどの1つもしくは複数の通信ネットワークを介して、ハンドヘルドデバイス102をその他のコンピュータシステムに接続するために使用される。
●ユーザインターフェイスモジュール220:ユーザインターフェイスモジュール220は、入力デバイス210を介してユーザから指示を受信し、ディスプレイデバイス208にユーザインターフェイスオブジェクトを生成する。
●ウェブブラウザ222:ウェブブラウザ222は、通信ネットワークを介してリソース、ウェブページ、ウェブアプリケーションへのユーザのアクセスを可能とする。
●スキャンアプリケーション224:スキャンアプリケーション224は、以下で
図3A〜
図15Cによって説明するように、ユーザが、印刷された複数ページドキュメントのデジタル画像を効率的に作成することを可能とする。
【0037】
以下の様々なモジュール、パラメータ及びデータがスキャンアプリケーション224に含まれる。
○鮮明度計算モジュール226:鮮明度計算モジュール226は、米国特許出願第13/586,784号に記述されているような技術を使用する。
○1つもしくは複数の鮮明度閾値228:鮮明度閾値228はいつキャプチャし、及び/または、いつキャプチャしたフォト(保存画像)236を廃棄するかを判断するために使用される。
○フォトフレーミングモジュール230:フォトフレーミングモジュール230は、(
図3A〜
図3Cによって詳細に後述するように、)デジタル画像センサ252に対して、印刷されたページ108を適切にフレーミングするよう促す。
○画像侵入検出モジュール232:画像侵入検出モジュール232は、(
図13及び
図14によって詳細に後述するように、)(指などの)オブジェクトが印刷されたページ上に突出していることを検出し、ユーザに警告する。
○1つもしくは複数のプレビュー画像(もしくはプレビュー画像バッファ)234:プレビュー画像234は、いつフォトをキャプチャするかを判断するために、鮮明度計算モジュール226にデジタル画像センサ252によって提供される低解像度画像である。
○1つもしくは複数の保存(キャプチャ)画像236:保存画像236は、デジタル画像センサ252の最高解像度で撮影される。
○0もしくは複数のユーザプリファランス238:ユーザプリファランス238は、鮮明度閾値228、フォトをキャプチャした後プレビュー画像234を評価する前、次のページのためにどれぐらい待機するのか(例えば、0.5秒)、保存ドキュメントのデフォルトフォーマット(例えば、PDF)、保存ドキュメントのためのデフォルトディレクトリ位置、ユーザインターフェイスのエレメントのレイアウトなどを特定することができる。
【0038】
●1つもしくは複数のデジタルドキュメント240:デジタルドキュメント240は、キャプチャ画像236を連結して、スキャンアプリケーション224によって構築される。
【0039】
上記識別された要素の各々は、前述した1つもしくは複数のメモリデバイスに記憶されてもよいし、上記機能を実行するための命令セットに対応していてもよい。命令セットは1つもしくは複数のプロセッサ(例えば、CPU202)によって実行されてもよい。上記識別されたモジュールもしくはプログラム(すなわち、命令セット)は、別個のプログラム、プロシージャ、もしくはモジュールとして実装されなくてもよい。様々な実装において、これらのモジュールの様々なサブセットを組み合わせてもよいし、再構成してもよい。実装のいくつかにおいて、メモリ214は、上記識別されたモジュール及びデータ構造のサブセットを記憶していてもよい。さらに、メモリ214は、上記されていないモジュール及びデータ構造を記憶していてもよい。
【0040】
図2Aはハンドヘルドデバイス102を示しているが、
図2Aは、ここで記述されている実装の構造的な概要よりも、ハンドヘルドデバイスにあってもよい様々な特徴の機能的な記述を行うことを意図している。実際には、当業者に認識されるように、別個に示されているアイテムは組み合わされてもよいし、アイテムのいくつかは分割されてもよい。
【0041】
ここで記述されている方法の各々は、コンピュータ可読記憶媒体に記憶され、ハンドヘルドデバイス102の1つもしくは複数のプロセッサによって実行される命令によって実行されてもよい。図(例えば、
図4〜8)に示されている動作の各々は、コンピュータメモリもしくはコンピュータ可読記憶媒体に記憶されている命令に対応していてもよい。
【0042】
図2B及び
図2Cはハンドヘルドデバイス102にあってもよい特徴を示す。
図2Bは、ユーザインターフェイスを提供するディスプレイスクリーン104を有するハンドヘルドデバイス102の前面を示す。ハンドヘルドデバイスのいくつかは、様々な機能を実行するための1つもしくは複数の物理的なボタン250を含む。ハンドヘルドデバイス102の裏面(
図2C)には、最高解像度デジタル画像及び低解像度プレビュー画像を生成することができるデジタル画像センサ252がある。ハンドヘルドデバイス102のいくつかは、画像品質をよりよくするためにオブジェクトに照射するために使用することができるフラッシュ/ライト254を含む。ハンドヘルドデバイス102のいくつかはラッチ258を有するバッテリ収納部256を有する。当業者であれば、デジタル画像センサを有するハンドヘルドデバイスが、スマートフォン、タブレットコンピュータ、PDA (personal digital assistant)、デジタルカメラ、パーソナルメディアプレーヤなど、多くの異なる形態をとってよいことを認識することができる。ハンドヘルドデバイス102のいくつかは、ディスプレイスクリーン104と同じ面にデジタル画像センサ252を有していてもよい。
【0043】
図3A〜
図3Cは、実装のいくつかにおいてスキャンアプリケーション224によって提供されるユーザインターフェイスを例示する。ユーザインターフェイスは、ハンドヘルドデバイス102のディスプレイスクリーン104に表示される。これらの画像の各々において、スキャンアプリケーション224の制御の下、デジタル画像センサ252はドキュメントページ108のプレビュー画像を撮影している。実装のいくつかにおいて、スキャンアプリケーション224は適切なフレーミング及び/または画像品質のためにプレビュー画像を評価する。例示されている実装において、外側のプレビュー画像フレーム(314A、314B及び314C)は単一の静的な形状及び色を有する。実装のいくつかは、外側のプレビュー画像フレーム(314A、314B及び314C)を省略する。その他の実装において、プレビュー画像フレームの色もしくは他の特性(例えば、太さ)は、ページ108の適切なフレーミングを示すため及び/もしくはプレビュー画像の品質を示すために変更される。
【0044】
図3Aに例示されている実装において、内側のプレビュー画像フレーム(フレーミング矩形)302A/304Aはプレビュー画像についてのフィードバックを提供する。暗色部分304Aはページ108の右辺及び下辺がカットされないように位置付けされていることを示す。明色部分302Aはページ108の左辺及び上辺がプレビュー画像においてカットされていることを示す。
図3Bにおいて、ページ108に対してハンドヘルドデバイス102を(例えば、ハンドヘルドデバイス102を動かすことによって、)再位置付けした。したがって、ページ108の左辺はプレビュー画像においてカットされなくなっている。スキャンアプリケーション224は、左辺も含むようになった暗色部分304Bによるフィードバックを提供する。ページ108の上辺だけが、明色部分302Bによって示されるようにカットされている。最終的に、
図3Cにおいて、いずれの辺もカットされないように、ユーザはページ108に対してハンドヘルドデバイス102を再位置付けする。スキャンアプリケーション224は、内側のプレビュー画像フレーム全てを暗色部分304Cに含めることによって、いずれの辺もカットされていないことを示す。実装のいくつかにおいて、ページ108の全ての辺が適切に位置付けされた場合、内側のプレビュー画像フレームを完全に異なる色もしくは形状に変更する。
【0045】
実装のいくつかにおいて、内側のプレビュー画像フレームによって提供されるものと同様のフィードバックが外側のプレビュー画像フレーム(314A、314B、314C)に使用される。その他の実装において、内側のプレビュー画像フレームはまったく使用されず、フレーミングフィードバックは外側のプレビュー画像フレーム(314A、314B、314C)によって提供される。
【0046】
実装のいくつかは、
図3Dに例示されるように、異なるフィードバックを提供するために、内側及び外側のフレーミング矩形を使用する。
図3Dに例示されている実装において、(
図3A〜
図3Cにおいて内側のプレビュー画像フレーム302A/304A、302B/304B、304Cについて例示されているように、)外側のフレーミング矩形316D/318Dはプレビュー画像においてページ108のどの辺がカットされているかに関するフィードバックを提供する。ページ108の下辺はプレビュー画像においてカットされていない。したがって、外側のフレーミング矩形の対応する部分318Dは暗色で表示されている。実装のいくつかは色を利用し、下辺を青もしくはその他の暗色で表示する。
図3Dにおいて、ページ108の上辺、左辺及び右辺はプレビュー画像においてカットされている。したがって、外側のフレーミング矩形の上辺、左辺及び右辺316Dは明色で表示されている。色を使用する場合、実装のいくつかは、上辺、左辺及び右辺を黄もしくは、暗色で表示される下辺318Dと容易に区別することが可能なその他の色で表示する。
【0047】
図3Dに例示されている実装において、内側のフレーミング矩形320D/322Dのセグメントは、当該セグメントがプレビュー画像のページ108上に全て含まれている否かを示すために色もしくは濃淡を付されている。上辺セグメント322Dはページ108上に全て含まれている。したがって、濃いパターンを付されるか、もしくは、暗色(例えば、青)が付される。下辺、左辺及び右辺セグメント320Dはページ108上に全て含まれていない。したがって、下辺、左辺及び右辺セグメント320Dには、淡いパターンが付されるか、もしくは明色(例えば、黄)が付される。この例示において、内側のフレーミング矩形の下辺セグメントは、ページ108のいずれの部分もカバーしていない。内側フレーミング矩形の左辺及び右辺セグメントはページ108上に部分的に含まれている。したがって、下辺、左辺及び右辺セグメント320Dには、淡いパターンが付されるか、もしくは明色(例えば、黄)が付される。その他の実装において、色もしくは濃淡は、セグメントがページ108をカバーする割合を示す。例えば、上辺セグメント322Dの暗い青は上辺セグメント322Dがページ108を完全にカバーしていることを示す。下辺セグメントの黄は下辺セグメントがページ108を全くカバーしていないことを示す。左辺及び右辺セグメントの中間色もしくは中間的な濃淡は左辺及び右辺セグメントがページ108を部分的にカバーしていることを示す。
【0048】
実装のいくつかは、フレーミングフィードバックがどのように提供されるかについてのユーザ設定可能オプション(ユーザプリファランス)238を提供する。例えば、実装のいくつかは、どのフレーミング矩形を表示するか、どの色もしくは濃淡パターンを使用するか、及び、フレーミング矩形の各々について色もしくは濃淡パターンが何を示すか、を決定するユーザプリファランスを有する。
【0049】
図3Cは、画像が(例えば、ステープリングによる)コーナー306を含んでもよいことを示している。
図11及び
図12について以下に説明するように、コーナー306は、スキャンアプリケーション224によるページ108の適切なフレーミングを妨げない。
【0050】
実装のいくつかはディスプレイスクリーン104の下部に1つもしくは複数の制御手段もしくは情報アイコンを含む。
図3A〜
図3Cは、ドキュメントのスキャンが終了したことをユーザに示すためのボタン308を含む。実装のいくつかにおいて、ボタン308は、「Fin」、「Done」、「終了」、「済み」もしくはスキャンの完了を伝えるのに適したその他のラベルを付されている。実装のいくつかにおいて、スキャンアプリケーション224は音声コマンドに応答し、ユーザは、例えば、「終了した」もしくは「終わった」などと言うことによって完了を伝えることができる。音声コマンドをサポートする実装のいくつかはインターフェイスにボタン308を含まない。
【0051】
実装のいくつかにおいて、スキャンアプリケーション224は、ディスプレイスクリーン104のユーザインターフェイスに視認可能なディスプレイインジケータ310及び312などのその他の情報を提供する。実装のいくつかにおいて、アイコン312はプレビュー画像の品質のための最小閾値を示し、バー310は現在のプレビュー画像の品質を示す(品質が高いほど、バーは右に伸びる)。
【0052】
図4は、実装のいくつかによるスキャンアプリケーション224の制御の下で複数ページ印刷ドキュメントの静止画像のシーケンスをキャプチャする基本操作を例示する。印刷ドキュメントは書籍、(上部もしくは下部でページが綴じられている)バインダ、(ステープルで綴じられている、もしくは、綴じられていない)ページのスタックなどであってよい。「印刷ドキュメント」は、電子的に保存されているデジタルドキュメントではない、物理的なページを有するハードコピードキュメントである。例えば、アート(art)のページもしくはノートの手描きのページのシーケンスは「印刷ドキュメント」である。
【0053】
ユーザが複数ページの印刷ドキュメントのスキャンを開始すると(402)、スキャンアプリケーション224は、プロセスが完了したことをユーザが示す(404)までページをスキャンするループ処理を開始する。スキャンアプリケーション224をオープンする、もしくは、スキャンアプリケーション224のユーザインターフェイスの特定のボタン(例えば、「スキャン開始」)をタップする、など、多くの方法で、ユーザがスキャンを開始する(402)ことができることを、当業者であれば認識する。ユーザが完了したことを示すと(404)、デジタルドキュメントの形態でキャプチャした画像を保存することによって、処理を終了する(422)。特定のボタン(例えば、「Fin」、「Finished」もしくは「完了」)をタップする、スキャンアプリケーション224をクローズする、ハンドヘルドデバイス102を置く(例えば、動きがないことを検出する)、所定のタイムアウト期間の間操作しない、など、多くの方法によって、ユーザはスキャンの完了を示す(404)ことができることを、当業者であれば認識する。
図7及び
図8は、実装のいくつかにおいて使用されるキャプチャ後のレビュー処理を例示する。
【0054】
ハンドヘルドデバイス102で実行されるスキャンアプリケーション224は、デジタル画像センサ252によって撮影されたプレビュー画像234を受信する(406)。一般的に、プレビュー画像は低解像度で撮影される。低解像度ではあるが、プレビュー画像は、ページ108が適切にフレーミングされているか否かを判断するためには十分であり、1つもしくは複数の画像品質測定値(例えば、画像がどの程度鮮明であるか)をスキャンアプリケーション224に計算させることができる(408)。複数の品質測定値を使用する実装のいくつかにおいて、複数の品質測定値を組み合わせて単一の品質値とする。プレビュー画像の個別の品質測定値もしくはプレビュー画像の組み合わされた品質測定値が所定の品質閾値を下回る場合(410)、スキャンアプリケーション224は品質についてのフィードバックをユーザに提供し(412)、再びプレビュー画像を取得する(406)。実装のいくつかにおいて、フィードバックはディスプレイスクリーン104において(例えば、バー310で)行われ、もしくは、可聴指標で行われる。品質が十分でない画像についてのフィードバックは、よりよいフォーカスを提供するために、ユーザがハンドヘルドデバイス102を安定させるまでの間及び/もしくはハンドヘルドデバイス102の向きを変更するまでの間、数秒間継続されてもよい。
【0055】
画像品質を計算する方法の1つは、米国特許出願番号第13/293,845号に記載されている。実装のいくつかは、デバイスが移動しているか否か判定するために、加速度計の測定値も使用する。静止しているデバイスの鮮明度はよいが、動きがないことは画像が高品質であることを保証するためには十分ではない。例えば、記載されている実装は、フォーカス、フレーミング、回転、影、照明、及び深度(距離)の変動を考慮する。
【0056】
プレビュー画像234もしくはキャプチャ画像236の鮮明度を計算するために、実装のいくつかは、画像のエッジにおける画素間のグレースケール値の差を計算する。差は、エッジウィンドウにおける2つの画素間のグレースケールの傾きを含み、傾き、複数の傾き、もしくは傾きの差に基づいたエッジの鮮明度の推定を行うことができる。
【0057】
実装のいくつかにおいて、鮮明度計算モジュール226は画像(プレビュー画像234もしくはキャプチャ画像236)を撮影し、平滑化された(x方向、y方向、もしくはx方向及びy方向で平滑化された)画像のコピーを生成する。平滑化は、任意の平滑化技術もしくはメディアンフィルタなどのフィルタで行うことが可能である。鮮明度計算モジュール226は、次に、平滑化された画像のエッジ画素を囲む複数の第1画素を含む第1ウィンドウを識別し、第1ウィンドウに対応するオリジナル(平滑化されていない)画像の第2ウィンドウを識別する。第2ウィンドウはオリジナル画像のエッジ画素を囲む複数の第2画素を含み、複数の第2画素は複数の第1画素に対応する。実装のいくつかにおいて、ウィンドウの画素だけが平滑化されるように、オリジナル画像の識別されたウィンドウの画素について、即座に、平滑化画像が生成される。鮮明度計算モジュール226は、第1ウィンドウ及び第2ウィンドウのx軸方向及びy軸方向の少なくとも一方に亘って、第1ウィンドウの第1画素対及び第2ウィンドウの第2画素対の間のグレースケール値の決定された差に基づいてエッジ鮮明度を推定する。
【0058】
プレビュー画像の個別の品質測定値もしくはプレビュー画像の品質測定値の組み合わせが、上記品質閾値以上である場合(410)、スキャンアプリケーション224は最高解像度フォトの撮影に進む。これは、画像品質測定値が適切である、というフィードバックを提供し、ページ108の実用フォトをキャプチャすることを含む。十分な品質に関するフィードバックは、品質が十分でない画像に関するフィードバックを提供するために使用されるのと同様の視認可能手段(例えば、バー310)を含むことができるが、その他の視認可能な指標もしくは可聴指標を含んでもよい。
図4の実装において、キャプチャフォトは保存される(418)。実装のいくつかにおいて、スキャンアプリケーション224は、可聴「クリック」音もしくは光の点滅(例えば、フラッシュ)など、フォトが撮影されたことを示すフィードバックを提供する(420)。フォトが撮影され保存されると、スキャンアプリケーション224は、印刷ドキュメントの次のページのフォトを撮影するための準備が整う。ユーザが完了の指標(指示)を提供する(例えば、「Fin」ボタン308をタップする)ことによって、ループ処理を終了してもよい。
【0059】
図5の処理フローは、
図4の処理フローと同様であるが、フォトの各々についてキャプチャ後の評価を行う点が異なる。フォトがキャプチャされる(416)と、スキャンアプリケーション224はキャプチャフォトの1つもしくは複数の品質測定値を計算する(502)。一般的に、プレビュー画像について計算された品質測定値(408)と同様の品質測定値が計算されるが、最高解像度を有するキャプチャ画像は、品質測定値の評価をサポートするためのより詳細な情報を提供する。さらに、プレビュー画像が非常に鮮明だったとしても、フォトをキャプチャする際に、ユーザはハンドヘルドデバイス102を動かしてしまうかもしれず、その場合、不鮮明なキャプチャ画像が生成される。
【0060】
スキャンアプリケーション224は、鮮明度閾値228などのフォト品質閾値とフォトの品質測定値(複数の、もしくは、組み合わせることによって単一とされた品質測定値)とを比較する。品質測定値が適切でない場合(504)、スキャンアプリケーション224は品質測定値についてのフィードバックを提供し(412)、同じページ108について新しいプレビュー画像を取得する(406)。実装のいくつかにおいて、スキャンアプリケーション224は、印刷ドキュメントのページをめくらないようにユーザに報知するために、可聴フィードバック(「ビープ」など)を提供する。一方、フォトの品質測定値が適切である場合(504)、スキャンアプリケーション224は、フォトの保存(例えば、不揮発性記憶媒体への保存)に進む(418)。
【0061】
プレビュー画像を評価するために使用される品質測定値がキャプチャフォトを評価するために使用される品質測定値と同様である場合でも、閾値が異なっていてもよい。例えば、ユーザはキャプチャフォトのための品質閾値をより高く設定することができる。実装のいくつかにおいて、ユーザは品質閾値を任意に設定することが可能である。
【0062】
図6の処理フローは、
図5の処理フローと同様であるが、印刷ページ108の各々について2つ以上のフォトをキャプチャする点で異なる。プレビュー画像の品質が適切であるとのフィードバックをユーザに提供した後(414)、スキャンアプリケーション224は印刷ページ108の2つ以上のフォトを撮影し(602)、その後、キャプチャフォトの各々についてフォト品質測定値を計算する(604)。少なくとも1つのキャプチャフォトについてのフォト品質測定値がフォト品質閾値を越えている場合(606)、スキャンアプリケーション224は、フォトの1つを選択し(608)、選択したフォトを保存する(418)。一般的に、選択されるフォトはもっとも高い品質測定値を有するフォトである。キャプチャフォトの全てについて品質測定値がフォト品質閾値を下回る場合、スキャンアプリケーション224は品質測定値についてのフィードバックを提供し(412)、その後、新しいプレビュー画像を取得する(406)。
【0063】
図7及び
図8は、スキャンアプリケーション224の制御の下で実行される処理フローを例示する。当該処理フローは、印刷ドキュメントの画像が全てキャプチャされた後のレビュー処理を含む。スキャン処理の最後にバッチレビュー処理が行われる場合、多くの実装では、ページの各々を処理する間に行われる
図5及び
図6に例示されるレビュー処理が省略される。
図7及び
図8において、フローの上半分は、
図4によって上記した画像キャプチャ処理を例示する。
図7及び
図8の下半分はバッチレビュー処理を例示する。当該バッチレビュー処理において、1つもしくは複数のキャプチャされ保存された画像を廃棄し、より高い品質を有する新しいキャプチャ画像と置換する。
図7及び
図8のレビュー処理が完了すると、スキャンアプリケーション224は、PDFなどのデジタルドキュメント240を生成するために、適切な順序で、キャプチャされ保存された画像(236)を連結し、生成したデジタルドキュメント240を保存する。
【0064】
図7において、スキャンアプリケーション224は置換が必要とされるキャプチャ画像を識別する。画像キャプチャが完了したことをユーザが伝えた後(404)、スキャンアプリケーション224はレビュー処理を実行する。スキャンアプリケーション224は、保存画像の各々についてフォト品質測定値を計算する(702)。上記したように、フォト品質測定値は、フォトの各々についての単一の測定値、複数の測定値、もしくは複数の測定値を組み合わせて形成された単一の品質スコアであってよい。スキャンアプリケーション224は、重複フォトを識別する(704)。重複フォトとは、同一の印刷ページについて2つ以上保存されているフォトである。重複フォトは意図的に生成されていてもよいし、意図的でなく(例えば、第1のフォトを撮影した後、印刷ページ108上にハンドヘルドデバイス102を留めていた場合などに)生成されていてもよい。重複フォトの各々のセットについて、スキャンアプリケーション224は残しておくために1つの保存フォト236を選択し、他のフォトは廃棄する(704)。一般的に、実装は、品質測定値に基づいて、残しておくためのフォトを選択する。
【0065】
スキャンアプリケーション224は、次に、フォト品質閾値を下回る品質測定値を有する全ての保存フォトのセットを識別する(706)。このセットに該当するフォトがなければ(708)、レビュー処理は完了する(712)。このセットに該当するフォトがあれば、スキャンアプリケーション224は再度撮影する必要があるフォトが存在することをユーザに報知し、ユーザが該当フォトの各々を再撮影するよう促す(710)。ディスプレイスクリーン104は、どのフォトを再撮影する必要があるか示す。フォトの再撮影には、画像キャプチャ処理において以前使用された処理と同一のキャプチャ処理を使用する。実装のいくつかにおいて、再撮影が完了した後にレビュー処理を再度行う。実装のいくつかにおいて、
図5のステップ502〜ステップ504もしくは
図6のステップ602〜608に例示するように、最初のバッチレビュー処理の後、個々のフォトが一つ一つ評価されてもよい。
【0066】
図7のレビュー処理と同様に、
図8のレビュー処理は、保存フォトの各々のフォト品質測定値を計算するスキャンアプリケーション224によって開始される(802)。上記したように、フォト品質測定値は、フォトの各々についての単一の測定値、複数の測定値、もしくは複数の測定値を組み合わせて形成された単一の品質スコアであってよい。スキャンアプリケーション224は、重複フォトを識別する(804)。重複フォトは意図的に生成されていてもよいし、意図的でなく(例えば、第1のフォトを撮影した後、印刷ページ108上にハンドヘルドデバイス102を留めていた場合などに)生成されていてもよい。重複フォトのセットの各々について、スキャンアプリケーション224は残しておくために1つの保存フォト236を選択し、他のフォトは廃棄する(804)。一般的に、実装は、品質測定値に基づいて、残しておくためのフォトを選択する。
【0067】
図8の処理フローにおいて、(重複フォトを廃棄した後、)スキャンアプリケーション224は全てのフォトを提示する(806)。実装のいくつかにおいて、フォトはフォトの品質測定値に基づいて昇順に提示される(
図9B参照)。この方法において、ユーザはもっとも不適切な画像から扱うことができ、ある時点で、残りの保存フォトが適切であると判断することができる。実装のいくつかにおいて、フォトは撮影された順序で提示される。この方法によれば、(印刷ドキュメントの必要なページを探し回ることなく、最初の)撮影と同様の順序で必要なフォトを再撮影することが容易となる(
図9A参照)。ユーザがフォトの再撮影を行わないことを選択した場合(808)、レビュー処理が完了する(812)。一方、ユーザが再撮影を行うことを決定したフォトがある場合(808)、スキャンアプリケーション224は選択されたフォトの各々のキャプチャ処理に戻る(810)。選択されたフォトは廃棄され、再撮影されたより品質の高いフォトと置換される。
【0068】
図9A〜
図9Cは、実装のいくつかにおいて、レビュー処理で使用されるグラフィカルユーザインターフェイスを例示する。実装のいくつかにおいて、レビューユーザインターフェイスが、スキャンアプリケーション224の制御の下で、ハンドヘルドデバイス102のディスプレイ104に提示される。
図9Aにおいて、「page(ページ)」(902)が選択されている場合、プリント画像がスキャンされた順序で、ページ画像がソートされる。ユーザインターフェイスは、最初のページ904などのキャプチャ画像のサムネイル画像を含む。より大きく表示されるキャプチャフォトは、(例えば、サムネイル画像を表示しているスクリーン104の部分をタッチすることにより、)ユーザがサムネイル画像を選択した場合に提示される。サムネイル画像に隣接して、キャプチャ画像についての補足情報906が提示される。この例示において、最初の画像は「Page 1(ページ1)」として識別され、キャプチャ画像の品質スコアは69(Score 69)である。実装のいくつかにおいて、品質スコアの範囲は0(例えば、ブランク画像)から100(例えば、完璧な画像)である。実装のいくつかは、複数の品質測定値を計算し、複数の品質測定値を組み合わせて単一の合成スコアとする。
【0069】
例示するユーザインターフェイスは、同一ページのフォトのキャプチャを再度ユーザに行わせるための「Retry(リトライ)」ボタン908をキャプチャフォトの各々について含む。ボタンがタップされると、スキャンアプリケーション224は対応するページの現存するフォトを廃棄し、
図7及び
図8に例示されているフォトキャプチャ処理を開始する。実装のいくつかは、同一のページの再キャプチャを開始することなく、対応する保存フォトを単に廃棄する「Del(削除)」ボタンを有する。
【0070】
実装のいくつかは、ユーザに追加画像をキャプチャさせる「Add(追加)」ボタン912を含む。例えば、印刷ドキュメントのオリジナルスキャンの間に不注意でページを抜かしてしまった場合、ユーザは抜かしたページのキャプチャを開始するために、「Add」ボタン912をタップしてもよい。実装のいくつかは、ドキュメントとして現在のキャプチャフォトを保存するためのボタン914を含む。
図9A〜
図9Cにおいて、このボタンは「PDF」というラベルが付されており、保存デジタルドキュメントはPDF形式で保存されることを示す。その他の実装は、ダイアログボックスを提示する「save(保存)」ボタン914を有する。当該ダイアログボックスはユーザにデジタルドキュメントの特性を特定させる。当該特性は、ファイルの名称、ファイルの位置、ファイルの保存形式(例えば、PDF)を含む。
【0071】
図9Bは
図9Aと同様であるが、サムネイル画像が品質スコアに基づいてソートされており、もっとも低いスコアがもっとも上に提示されている点が異なる。ユーザインターフェイスにおいて、ユーザは「score(スコア)」オプションボタン916を有する。
【0072】
図9Cは
図9A及び
図9Bと同様であるが、ドキュメントが両面印刷で指定されている点が異なる。両面印刷ドキュメントについて、ユーザは表面だけ、裏面だけ、もしくは両面を見ることを所望するかもしれない。オプションボタン918はユーザがどの面を見ることを所望するかの選択を可能にする。
【0073】
図10は、実装のいくつかにおいて、両面印刷ドキュメントのページを効率的にスキャンすることができる方法を例示している。この例示において、印刷用紙の枚数が4でページ数が8である。表面はページ1、3、5及び7であり、一方、裏面はページ2、4、6及び8である。スキャン処理を単純化するために、ユーザは、まず、昇順で表面をスキャンし、次に、降順で裏面をスキャンする。スキャン順序は、1、3、5、7、8、6、4、2である。
【0074】
図11及び
図12は、スキャンアプリケーション224の実装のいくつかによるページフレーミングのための処理を例示する。処理は、
図3A〜
図3Cによっても例示される。フレーミングのために、スキャンアプリケーション224は内側プレビュー画像フレーム1104及び外側プレビュー画像フレーム1102を識別する。これらのプレビュー画像フレームはフレーミング矩形としても参照される。スキャンの最適化のために、ページの各々のエッジは2つのフレーミング矩形の間に収まるべきである。
【0075】
プレビュー画像フレーム1102及び1104の間の領域はタイルに分割される。タイルには、コーナータイル1108及び非コーナータイル1106がある。
図11及び
図12において、コーナータイルは白であり、非コーナータイルは薄いグレーで示されている。
図11及び
図12のタイルは正方形であるが、正方形に限定することは要求されない。ハンドヘルドデバイス102がドキュメントページ108上に適切に位置付けされると、ドキュメントページの外側の輪郭はタイルに収まる。
図12に示されるように、4つのドキュメントエッジライン1200−1、1200−2、1200−3及び1200−4はタイルの中に収まっている。
図12は、2つの小さなエッジライン1202−1及び1202−2を有するコーナータイル1108を示す。当該コーナータイル1108は、ドキュメントの残りのページに印刷ページ108がステープルで留められているコーナーを示している可能性が高い。
【0076】
フレーミングの目的は、エッジを含むページ全体をキャプチャすることである。無関係な背景はその後除去される。実装のいくつかは、オープンソースコンピュータビジョンライブラリ(OpenCV)の機能を使用し、キャニー(Canny)エッジ検出手段によるエッジの識別を行い、輪郭を検出し、輪郭の各々の境界ボックスを計算し、次に、ページのエッジの候補としてもっとも大きい輪郭から順に1つもしくは複数の輪郭を識別する。
【0077】
輪郭の各々は、次に、フレーミング矩形1102及び1104の間に収まっているか否かを判定するために、検討される。コーナータイルを除くタイルの各々は、最小数の(オプションで最大数の)輪郭ポイントを含むか否かについて検討される。例えば、実装のいくつかは、少なくともタイルの高さの0.8倍の輪郭ポイントをタイルの各々が含んでいる場合に、エッジを識別する。当該高さは画素数で計測される。これにより、キャプチャ画像において「ノイズ」によっていくつかのエッジポイントが失われても許容される。
【0078】
コーナータイル1108は含まれない。コーナータイル1108において、輪郭画素の数は、ページコーナーと内側のフレーミング矩形のコーナーとの近さによるからである(エッジがコーナータイルに適切に収まっていたとしても、非常に小さい数であり得る。)。さらに、ドキュメントがステープルで綴じられている場合、ステープルで留められているコーナーの輪郭は隣接するページを含む。これは、
図12の右上のコーナーに例示されている。
【0079】
実装のいくつかにおいて、画像の部分を覆う指もしくは他のオブジェクトなどの「ページへの侵入」を識別する。この技術は、一般的に、プレビュー画像に適用されるが、キャプチャ画像に適用されてもよい。
図13は、ページの右側から侵入しているオブジェクト1302(指)を含む画像を例示している。このような侵入があると、ページ輪郭1310(ページの外郭)を検証することによって、(非コーナー)エッジタイル1106の各々の内部で輪郭の方向に比較的大きい変化を識別することができる。(
図13においてページ輪郭1310の全ての部分にラベルを付してはいない。)実装のいくつかは、輪郭ポイントの2次微分の絶対値を計算し、最大許容値の閾値と照合する。2次微分は、ノイズ及び量子化の影響を最小化するために数個の画素(例えば、3個の画素)の差を用いて計算されるべきである。侵入がない場合、2次微分は比較的小さい。
【0080】
実装のいくつかは、非コーナータイル1106の内部の輪郭ポイントによって形成されたラインを(例えば、ハフ変換を用いて)識別し、次に、エッジタイル1106の1つもしくは複数において、輪郭ポイントと識別されたラインとの間の距離に、非常に大きな変動があるか否かを検討する。
【0081】
実装のいくつかにおいて、スキャンアプリケーション224は輪郭方向の変換ポイントを検出し、4つのドキュメントエッジラインを検出する。変換ポイントは、隣接する輪郭ポイントの各々の対の間のベクトルを計算し、所定の量より大きく(例えば、80度)方向が変化するポイントを識別する。実装のいくつかは、より効率的な計算のために輪郭ポイントをサンプリングする。エッジラインは、ハフ変換などの標準的な技術を用いて計算することができる。ドキュメントエッジライン1310は、画像において歪曲しているかもしれないので、実装のいくつかは、(グレーで例示する)境界四辺形1306によってドキュメントエッジライン1310を近似する。実装のいくつかにおいて、境界四辺形1306は画像の辺に平行な軸を有する矩形として選択される。変換ポイントのいくつかが境界四辺形1306の内部にある場合、いくつかの無関係なオブジェクトが存在する。
【0082】
これは、
図13に例示されている。ページ輪郭1310はドキュメントエッジに沿っており、輪郭方向の変換ポイントは大きなドット1308で描画されている。境界四辺形1306は4つのドキュメントエッジラインを近似する。楕円1304の内部の変換ポイント1308は境界四辺形1306の内部にあり、ドキュメントが侵入オブジェクトを有することを示している。実装のいくつかは、ページ侵入として分類するために所定の量より多い(例えば、5画素より多い、もしくは20画素より多い)突出を要求する。
【0083】
図13において、ページの左辺は境界四辺形1306の内部で内側にたわんでいるが、当該ページの左辺はページ侵入とはみなされない。実装のいくつかは、変換ポイントがないため、非侵入としてページの左辺を認識する。上記したように、その他の実装は、輪郭1310の2次微分が小さいため、ページの左辺を非侵入として識別する。
【0084】
図14のフローチャートには、ドキュメント侵入を識別するための処理が示されている。処理は、ページ輪郭1310を識別する(1404)ことによって開始される(1402)。
図13について上記されたように、処理は輪郭方向の変換点を検出する(1406)。識別された輪郭を用いて、処理は境界四辺形1306によってページ輪郭を近似する(1408)。
図13の左上コーナーに例示されるように、コーナーの小さいドキュメントエッジ部分は4つのドキュメントエッジラインに含まれない。次に、処理は、ページ輪郭1310によって形成される領域内部の変換ポイントのいずれかを識別する(1410)。
図13に例示されるように、一般的に、ページ輪郭1310は歪曲するかもしくは湾曲する。したがって、ページ輪郭1310を近似する四辺形1306(例えば、矩形)が代わりに使用される。境界四辺形1306(もしくはページ輪郭1310)内部に変換ポイントがある場合、処理はユーザに侵入があることを報知する(1412)。実装のいくつかは、侵入がある位置もユーザに報知する(1412)。報知の後、処理は終了する(1414)。
【0085】
図15A〜
図15Cは、実装のいくつかにおいて、複数ページ印刷ドキュメントのページの画像のシーケンスをキャプチャする(1502)ための処理(1500)のフローダイアグラムである。処理は、1つもしくは複数のプロセッサ202、メモリ214、及びデジタル画像センサ252を有するハンドヘルドデバイス102によって実行される(1504)。いくつかの例において、ハンドヘルドデバイス102は、スキャンされる複数ページドキュメントが両面印刷ドキュメントであることを示す指標をユーザから受信する(1506)。実装のいくつかは、スキャンされるドキュメントが両面印刷であることを示すためにユーザが使用するボタンもしくはその他のユーザインターフェイスコントロールを含む。実装のいくつかにおいて、ユーザは音声コマンドを用いて両面印刷ドキュメントであることを示す。実装のいくつかにおいて、スキャンされるドキュメントが片面印刷であるか両面印刷であるかについて、ユーザが設定することが可能なデフォルトの設定が存在する。ユーザが設定することができるデフォルトの設定は、ユーザプリファランスの部分として保存される。
【0086】
ハンドヘルドデバイス102のスキャンアプリケーション224は、複数ページ印刷ドキュメントの最初の印刷ページ108のプレビュー画像234を観察する(1508)。プレビュー画像234はデジタル画像センサによって生成される(1510)。一般的に、プレビュー画像234は最高解像度を有さない。スキャンアプリケーション224は、フレーミング品質成分及び/もしくは鮮明度品質成分を含む第1品質値を計算する。第1の品質は、第1品質閾値(鮮明度閾値228及び/もしくはフレーミング品質閾値)と比較され、第1のページの第1品質値が第1品質閾値を越えた場合、スキャンアプリケーション224は第1の印刷ページの静止画像をキャプチャする(1512)。いつ画像をキャプチャするのかを示すユーザの指標(指示)なしに(すなわち、キャプチャの条件が整うと自動的に)キャプチャが行われる(1514)。実装のいくつかにおいて、スキャンアプリケーション224は、ドキュメントのページをめくるべきことをユーザが知るように、キャプチャをユーザに報知する(1516)。
【0087】
実装のいくつかにおいて、キャプチャ画像236が十分な品質を有することを確認するために、ドキュメントの次のページに移る前、当該ページのキャプチャ後すぐに、キャプチャ画像は評価される。これらの実施形態において、第2品質値によって、最高解像度のキャプチャ静止画像236の少なくとも部分が評価される(1518)。実装のいくつかにおいて、第2品質値が第2品質閾値を下回る場合、スキャンアプリケーション224は同一の印刷ページのプレビュー画像234の観察を繰り返す(1520)。実装のいくつかにおいて、スキャンアプリケーション224は第2品質値が第2品質閾値より下回るキャプチャ画像236を廃棄する。プレビュー画像234の観察処理、静止画像236のキャプチャ処理、キャプチャした静止画像236の評価処理は、ページの画像の第2品質値が第2品質閾値を下回り続ける場合、1頁について複数回行われてもよい。
【0088】
実装のいくつかにおいて、スキャンアプリケーション224は、キャプチャ画像の第2品質値が第2品質閾値以上の場合、静止画像がキャプチャされたことをユーザに報知する(1522)。これらの実装において、ユーザがドキュメントのページをめくらないように、評価処理の後にだけキャプチャをユーザに報知する。ハンドヘルドデバイス102はいくつかの(もしくは多くの)画像のキャプチャ及び評価を行うことができるが、画像がキャプチャされるまで、ユーザは、ページをめくらず、ハンドヘルドデバイス102を安定させ、動かさないように保たせるべきである。
【0089】
画像がキャプチャされたことをユーザに報知する代替的な実装では、スキャンアプリケーション224は、キャプチャした画像の品質が第2品質閾値を下回る場合、ユーザに再び報知する(1524)。これにより、キャプチャ処理を繰り返すように、ユーザに警告する。実装のいくつかにおいて、ユーザプリファランス238は、フォトキャプチャの品質及び速度をユーザに制御させる第1及び/もしくは第2品質閾値を含む。実装のいくつかは、画像キャプチャの報知を画像評価処理の前に行うか後に行うか指定するためのユーザプリファランス238も含む。以下でより詳細に記述するように、実装のいくつかは画像の全てがキャプチャされた後、バッチ画像評価処理を行う。
【0090】
キャプチャ後すぐにキャプチャ画像を評価することにはいくつか弱点がある。例えば、いくつかの印刷ページは、(例えば、「オリジナル」ドキュメントが不明瞭であるため、)たいへん高い品質でキャプチャすることは本質的に困難であるかもしれない。したがって、スキャンアプリケーション224が十分適切な画像をキャプチャすることは困難であるかもしれないし、不可能であるかもしれない。他の例においては、キャプチャ画像236は第2品質閾値を越えているかもしれず、したがって、次のページに移動するようユーザを促すかもしれない。しかしながら、これによれば、より適切な品質の画像がキャプチャされる可能性を見過ごすことになる。実装のいくつかは、画像キャプチャのバーストモードをサポートすることによってこれらの及びその他の問題に対処する。バーストモードにおいて、スキャンアプリケーション224は、バーストで同一の印刷ページの複数の画像をキャプチャし、ユーザにフィードバック(例えば、キャプチャの各々の後の「クリック」音もしくは所定の数(例えば、5もしくは10)の画像がキャプチャされたことを示す音)を提供する。バーストモードが使用されると、重複画像がグループとして評価され、グループの各々の中でもっともよいフォトが選択される。ユーザが不注意で同一のページの画像を複数キャプチャする可能性があることに留意されたい。複数画像の意図的な及び意図的でないキャプチャは、双方とも、以下のように対処される。
【0091】
スキャンアプリケーション224は、画像キャプチャが完了したことを示すユーザの指標を受信するまで、観察及び複数ページの印刷ドキュメントの追加ページのキャプチャを繰り返す(1526)。いくつかの例において、ユーザからの指標は、ハンドヘルドデバイス102のユーザインターフェイスのボタン(例えば、「Done」、「Finished]、「完了」など)のクリック(1528)、もしくはユーザからの音声コマンドの受信(1530)など、能動的である。
【0092】
その他の例では、ユーザからの指標は、所定期間不活性状態が継続する(1532)、もしくは、ハンドヘルドデバイス102の動きが所定期間検出されない(1534)、など受動的である。受動的な指標は、(不活性であり、動きもなく)一定の期間、ハンドヘルドデバイス102が置かれていること、もしくは、ハンドヘルドデバイス102がポケットに入れられていること、を含む。ポケットの中のデバイスは動くかもしれないが、ポケット内部のプレビュー画像234は第1品質閾値に適合しないため、キャプチャ画像は得られない(すなわち、不活性である)。一般的な実装は、画像のキャプチャが完了したことを示す能動的方法及び受動的方法の双方をサポートする。
【0093】
実装のいくつかは、複数ページ印刷ドキュメントのページの順序に対応しない順序で複数ページドキュメントの静止画像をキャプチャすることをサポートする(1536)。両面印刷ドキュメントについて、このような例を
図10によって説明した。さらに、実装のいくつかは、印刷ページのページ番号を(例えば、印刷ページの所定領域(上部マージンもしくは下部マージンなど)のOCRを用いて、)識別する。これらの実装において、スキャンアプリケーション224は、ページ番号の順序に基づいてキャプチャ画像を後でソートすることができる。
【0094】
画像が全てキャプチャされ、ユーザがキャプチャ処理が完了したことを示した後、もしくは、画像キャプチャ処理と並行して実行されてもよい動作がいくつかある。実装のいくつかにおいて、双方の態様がサポートされ、十分な処理リソース(例えば、CPU性能、メモリの空き)がある場合に、並行処理が行われる。実装のいくつかにおいて、上記観察及びキャプチャ動作1508、1512、1526と並行して、以下の動作の1つもしくは複数が処理される(1538)。
●キャプチャ生成画像236の各々を評価し、キャプチャ静止画像の各々に第2品質スコアを割り当てる(1540)。
●割り当てられた第2品質スコアによってキャプチャ静止画像236をソートする(1542)。
●対応する第2品質スコアが第2品質閾値を下回るキャプチャ静止画像236のセットを識別する(1544)。
及び/もしくは、
●2つ以上のキャプチャ静止画像236が複数ページ印刷ドキュメントの単一印刷ページに対応していることを判定する(1546)。
●判定が行われると、単一の印刷ページに対応するキャプチャ静止画像236の1つ(一般的には、もっとも高い品質スコアを有する1つ)を選択し(1548)、単一の印刷ページに対応するその他のキャプチャ静止画像236の全てを廃棄する(1550)(すなわち、選択した画像を残し、残りを廃棄する)。
実装のいくつかにおいて、廃棄する画像が不揮発性メモリ(例えば、ハードディスク)にある場合、それらは物理的に削除される。その他の実装において、廃棄される画像が揮発性メモリ(例えば、RAM)にある場合、「廃棄」画像に割り当てられている物理的スペースは消去される必要がない、すなわちすぐに上書きされる。
【0095】
スキャンアプリケーション224が、画像のキャプチャが完了したことを示すユーザの指標を受信すると、スキャンアプリケーション224はいくつかの追加的な動作を実行する(1552)。レビュー処理については、
図7及び
図8を用いて上述した。実装のいくつかにおいて、スキャンアプリケーション224はキャプチャ静止画像236の各々を評価し、キャプチャ静止画像236に第2品質スコアの各々を割り当てる(1554)。実装のいくつかにおいて、第2品質スコアはキャプチャ画像の鮮明度もしくはキャプチャ画像のフレーミング品質を識別する単一の数値、もしくは、鮮明度及びフレーミングの双方を考慮した複合スコアである。その他の実装において、第2品質スコアは鮮明度スコア及びフレーミングスコアなどのサブスコアのセットを含む。(複数の値を含む)閾値と複数の値を有するスコアとを比較した場合、サブスコアの各々が複数の値を有する閾値の対応するサブ値を越えた場合だけ、スコアは閾値を越える。例えば、鮮明度を示すサブスコアは閾値の鮮明度の値を越えなければならず、フレーミングを示すサブスコアは閾値のフレーミングの値を越えなければならない。
【0096】
実装のいくつかにおいて、スキャンアプリケーション224は、割り当てられている第2品質スコアによって、キャプチャ静止画像236をソートする(1556)。実装のいくつかにおいて、スキャンアプリケーション224は、
図9Bに例示されているように、ソートされた順序でキャプチャ静止画像をレビューするようにユーザに促す(1558)。スキャンアプリケーション224は、ユーザによって選択された画像の観察及びキャプチャオペレーション(1508、1512)を繰り返す。これにより、選択されたキャプチャ静止画像はより高い品質を有するキャプチャ画像と置き換えられる。
【0097】
その他の実装において、スキャンアプリケーション224は、対応する第2品質スコアが第2品質閾値を下回るキャプチャ静止画像236のセットを自動的に識別する(1560)。スキャンアプリケーション224は、次に、識別されたセットの中のキャプチャ静止画像の各々について観察及びキャプチャオペレーションを繰り返す(1562)。これにより、識別されたセットの中のキャプチャ静止画像はより高い品質のキャプチャ画像と置換される。
【0098】
実装のいくつかにおいて、第2品質閾値はユーザが設定することが可能なプリファランス238であり、ユーザはどの品質レベルで満足するかを決定することができる。実装のいくつかは、(一般的には、
図9Bに例示するようにソートされている)キャプチャ画像236の手動レビューと第2品質スコアが第2品質閾値を下回るキャプチャ画像の自動識別との双方をサポートする。これらの実装において、アプリケーションは、使用するオプションをレビューする、ユーザが設定することが可能なプリファランスを含む。もちろん、実装のいくつかは、(最後に行う)バッチレビュー及び(画像の各々及び画像のまとまりがキャプチャされたときに行う)動的レビューの双方をサポートする。
【0099】
実装のいくつかにおいて、スキャンアプリケーション224は、2つ以上のキャプチャ静止画像236が複数ページ印刷ドキュメントの単一の印刷ページに対応することを判定する(1564)。この判定が行われると、スキャンアプリケーション224は単一の印刷ページに対応するキャプチャ静止画像236の1つ(一般的には、もっとも高い品質スコアを有する1つ)を選択し(1566)、単一の印刷ページに対応するその他のキャプチャ静止画像236の全てを廃棄する(すなわち、選択した1つを残し、残りを廃棄する)(1568)。実装のいくつかにおいて、廃棄する画像が不揮発性メモリ(例えば、ハードディスク)にある場合、それらは物理的に削除される。その他の実装において、廃棄される画像が揮発性メモリ(例えば、RAM)にある場合、「廃棄」画像に割り当てられている物理的スペースは消去される必要がない、すなわちすぐに上書きされる。
【0100】
画像のキャプチャが完了したことを示すユーザからの指標の受信に応じてどのレビュー処理が行われるかに拘わらず、スキャンアプリケーションは、最後に、単一のデジタルドキュメント240にキャプチャ静止画像を連結する(1570)。実装のいくつかにおいて、キャプチャ静止画像は複数ページの印刷ドキュメントのページの順序に対応して順序付けられ(1572)、ページが印刷ドキュメントに対応するデジタルドキュメント240を生成する。いくつかの例において、
図10に例示されているような両面印刷ドキュメントについて、再度順序付けが行われる。さらに、実装のいくつかは、印刷ドキュメントのページ番号を識別し、キャプチャされた順序に拘わらず、当該ページ番号に基づいてキャプチャ画像を順序付ける。実装のいくつかは、上部マージンもしくは下部マージンなどの画像の指定された部分で光学文字認識(OCR)を用いてページ番号を識別する。その他の実装は、静止画像がキャプチャされた順序に基づいて、キャプチャ静止画像を順序付ける(1574)。実装のいくつかは、デジタルドキュメント240にキャプチャ画像を保存する2つ以上のソート順をサポートし、ソート順オプションを選択するために1つもしくは複数のユーザプリファランスを含む。画像のソート(ソートは任意であるが、)及び連結後、スキャンアプリケーション224は単一のデジタルドキュメント240を保存する(1576)。
【0101】
説明を目的として、特定の実装を用いて上述した。しかしながら、例示的な上記説明は、本発明を網羅すること、もしくは、開示の特定の形態に本発明を限定することを意図していない。多くの修正及び変更が上記教示の観点から可能である。本発明の原理及び現実的な適用を説明するために最適な実装を選択し、説明した。これにより、当業者であれば、本発明及び特定の使用に適合する様々な変更を含む様々な実装をもっとも適切に活用することが可能である。
【0102】
本出願は、米国特許出願第13/586,784号(2012年8月15日出願、「スキャン画像品質評価に基づくスマートドキュメントキャプチャ」)に関連し、当該出願は、参照により、その全体がここに組み込まれる。