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

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

▶ キヤノン株式会社の特許一覧

特許7581306クライアント端末、クライアント端末の制御方法及びプログラム
<>
  • 特許-クライアント端末、クライアント端末の制御方法及びプログラム 図1
  • 特許-クライアント端末、クライアント端末の制御方法及びプログラム 図2
  • 特許-クライアント端末、クライアント端末の制御方法及びプログラム 図3
  • 特許-クライアント端末、クライアント端末の制御方法及びプログラム 図4
  • 特許-クライアント端末、クライアント端末の制御方法及びプログラム 図5
  • 特許-クライアント端末、クライアント端末の制御方法及びプログラム 図6
  • 特許-クライアント端末、クライアント端末の制御方法及びプログラム 図7
  • 特許-クライアント端末、クライアント端末の制御方法及びプログラム 図8
  • 特許-クライアント端末、クライアント端末の制御方法及びプログラム 図9
  • 特許-クライアント端末、クライアント端末の制御方法及びプログラム 図10
  • 特許-クライアント端末、クライアント端末の制御方法及びプログラム 図11
  • 特許-クライアント端末、クライアント端末の制御方法及びプログラム 図12
  • 特許-クライアント端末、クライアント端末の制御方法及びプログラム 図13
  • 特許-クライアント端末、クライアント端末の制御方法及びプログラム 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-01
(45)【発行日】2024-11-12
(54)【発明の名称】クライアント端末、クライアント端末の制御方法及びプログラム
(51)【国際特許分類】
   H04N 1/00 20060101AFI20241105BHJP
   G06V 30/00 20220101ALI20241105BHJP
【FI】
H04N1/00 350
G06V30/00 S
【請求項の数】 21
(21)【出願番号】P 2022192636
(22)【出願日】2022-12-01
(65)【公開番号】P2024079933
(43)【公開日】2024-06-13
【審査請求日】2023-06-08
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100126240
【弁理士】
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100223941
【弁理士】
【氏名又は名称】高橋 佳子
(74)【代理人】
【識別番号】100159695
【弁理士】
【氏名又は名称】中辻 七朗
(74)【代理人】
【識別番号】100172476
【弁理士】
【氏名又は名称】冨田 一史
(74)【代理人】
【識別番号】100126974
【弁理士】
【氏名又は名称】大朋 靖尚
(72)【発明者】
【氏名】松田 浩太郎
【審査官】橋爪 正樹
(56)【参考文献】
【文献】特開2020-140564(JP,A)
【文献】特開2013-229007(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 1/00
G06V 30/00-30/424
(57)【特許請求の範囲】
【請求項1】
原稿が読み取られて得られ画像データと、前記画像データに対する文字認識処理により前記画像データから認識される1以上の文字列と、を取得する取得手段と、
記画像データのうちの少なくとも一部、および、前記1以上の文字列のうちの少なくとも一部から構成されるリストの表示を制御する表示制御手段と、
を有し、
前記表示制御手段は、ユーザーによる指示に基づいて、前記画像データのうちの表示される領域を、前記画像データにおける1つのページ内で変化させるように制御することが可能であり、
記リストは、前表示される領域が変化すると、前記画像データのうちの当該表示される領域において認識された文字列が表示されるように変化することを特徴とするクライアント端末。
【請求項2】
前記ユーザーによる指示は、前記画像データのうちの少なくとも一部の表示を拡大する指示、および、前記画像データのうちの少なくとも一部の表示を縮小する指示の少なくとも1つであり、当該指示に基づいて、前記画像データのうちの前記表示される領域が変化することを特徴とする請求項1に記載のクライアント端末。
【請求項3】
前記リストは、スクロール可能な形式で表示され、
前記表示制御手段は、前記表示される領域において認識された文字列が表示されるように、前記リストを所定の位置にスクロールして表示することを特徴とする請求項1に記載のクライアント端末。
【請求項4】
前記表示制御手段は、前記表示される領域において認識された文字列が表示されるように、前記表示される領域に含まれる文字列のみを前記リストに含ませることを特徴とする請求項1に記載のクライアント端末。
【請求項5】
前記表示制御手段は、前記表示される領域において認識された文字列のうち、文字列の一部のみが当該領域に含まれる文字列については、前記リストにおいて文字列の全体が当該領域に含まれる文字列よりも下部に配置させるように前記リストの表示を制御し、
文字列の一部のみが当該領域に含まれる文字列が複数ある場合には、前記画像データにおいてより上部にある文字列が、前記リストにおいてより上部に配置されることを特徴とする請求項1に記載のクライアント端末。
【請求項6】
前記表示制御手段は、前記表示される領域において認識された文字列のうち、文字列の一部のみが当該領域に含まれる文字列については、前記リストに含ませないことを特徴とする請求項1に記載のクライアント端末。
【請求項7】
前記文字認識処理においては、さらに、Keyとなる文字列と、当該Keyに対応するValueとなる文字列との組み合わせ認識されることを特徴とし、
前記表示制御手段は、前記表示される領域において認識された文字列のうち、前記Keyとなる文字列については、前記リストの下部に配置させるように前記リストの表示を制御し、
前記Keyとなる文字列が複数ある場合には、前記画像データにおいてより上部にある文字列が、前記リストにおいてより上部に配置されることを特徴とする請求項1に記載のクライアント端末。
【請求項8】
前記リストに含まれる、表示された文字列の選択を受け付ける受付手段と、
前記画像データに対して、当該画像データに関する情報を設定する設定手段をさらに有する請求項1に記載のクライアント端末。
【請求項9】
前記表示制御手段は、前記受付手段で選択された文字列を前記リストから抽出して表示するように制御することを特徴とする請求項8に記載のクライアント端末。
【請求項10】
前記設定手段は、前記受付手段で選択された文字列を用いて前記情報を設定することを特徴とする請求項8に記載のクライアント端末。
【請求項11】
前記情報は、前記画像データを含むファイルのファイル名、当該ファイルが保存されるフォルダー名、及び、前記ファイルに設定されるメタデータの少なくとも1つであることを特徴とする請求項8に記載のクライアント端末。
【請求項12】
前記クライアント端末は、カメラを備え、
前記取得手段は、前記画像データを、当該カメラで原稿を撮影することにより取得することを特徴とする請求項1に記載のクライアント端末。
【請求項13】
前記クライアント端末は、スキャナーを備え、
前記取得手段は、前記画像データを、当該スキャナーで原稿をスキャンすることにより取得することを特徴とする請求項1に記載のクライアント端末。
【請求項14】
前記クライアント端末は、ストレージサーバを備え、
前記取得手段は、前記画像データを、当該ストレージサーバから取得することを特徴とする請求項1に記載のクライアント端末。
【請求項15】
前記クライアント端末は、タッチパネルを備え、
前記表示制御手段は、当該タッチパネル上に、前記画像データのうちの少なくとも一部、および、前記リストを表示するように制御することを特徴とする請求項1に記載のクライアント端末。
【請求項16】
前記文字認識処理を行う文字認識手段
をさらに有する請求項1に記載のクライアント端末。
【請求項17】
前記クライアント端末は、サーバーと通信可能であり、
前記文字認識処理は、前記サーバーにおいて実行され、
前記取得手段は、前記サーバーから前記1以上の文字列を取得する
ことを特徴とする請求項1に記載のクライアント端末。
【請求項18】
前記リストにおいては、前記1以上の文字列のうちの少なくとも一部が上下方向に並べて表示される
ことを特徴とする請求項1に記載のクライアント端末。
【請求項19】
前記リストは、上下方向にスクロール可能な形式で表示され、
前記表示制御手段は、前記画像データから認識される前記1以上の文字列のうち、前記表示される領域内で先頭に位置する文字列が、前記リストが表示される表示領域において先頭に表示されるように、前記リストを所定の位置にスクロールして表示する
ことを特徴とする請求項18に記載のクライアント端末。
【請求項20】
原稿が読み取られて得られ画像データと、前記画像データに対する文字認識処理により前記画像データから認識される1以上の文字列と、を取得する取得工程と、
記画像データのうちの少なくとも一部、および、前記1以上の文字列のうちの少なくとも一部から構成されるリストの表示を制御する表示制御工程と、
を有し、
前記表示制御工程においては、ユーザーによる指示に基づいて、前記画像データのうちの表示される領域を、前記画像データにおける1つのページ内で変化させるように制御することが可能であり、
記リストは、前表示される領域が変化すると、前記画像データのうちの当該表示される領域において認識された文字列が表示されるように変化することを特徴とするクライアント端末の制御方法。
【請求項21】
コンピューターに、
原稿が読み取られて得られ画像データと、前記画像データに対する文字認識処理により前記画像データから認識される1以上の文字列と、を取得する取得手順と、
記画像データのうちの少なくとも一部、および、前記1以上の文字列のうちの少なくとも一部から構成されるリストの表示を制御する表示制御手順と、
を実行させるためのプログラムであって、
前記表示制御手順においては、ユーザーによる指示に基づいて、前記画像データのうちの表示される領域を、前記画像データにおける1つのページ内で変化させるように制御することが可能であり、
記リストは、前表示される領域が変化すると、前記画像データのうちの当該表示される領域において認識された文字列が表示されるように変化することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像データに含まれる文字列のリストを表示するユーザーインターフェースに関するものである。
【背景技術】
【0002】
近年、デジタルトランスフォーメーションの流れの一環として、紙文書をデジタル化して、以降の文書処理業務をITシステムで効率化するニーズが増えている。まず紙文書をスキャンまたは撮影して、画像を電子ファイルにする。文書には、発注書、請求書、申請書などの種別があり、画像ファイルから文書に記載されている文字列を文字認識処理(OCR)で抽出し活用することによって、これら各種文書処理業務を効率化できる。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2020-086717号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1には、画像データに対して文字認識処理を行うことにより取得した文字列のリストを表示し、当該リスト上で選択された文字列を、当該画像データを含むファイルの送信先フォルダー名に使用する技術が開示されている。当該リストは1ページごとに、対応する画像データとともに表示される。
【0005】
しかし、1ページ分の画像データ内で、表示される領域を変化させることは開示されていない。例えば、画像データを拡大・縮小したり、画像データ内で移動したりすることで、表示される領域を変化させることが考えられる。特許文献1では、表示される領域の変化に合わせて文字列のリストを適切に表示することができない。
【0006】
本発明の目的は、画像データに対して文字認識処理を行うことにより取得した文字列のリストを、当該画像データの表示される領域の変化に合わせて適切に表示することである。
【課題を解決するための手段】
【0007】
上記目的を達成するために、本発明のクライアント端末は、原稿が読み取られて得られ画像データと、前記画像データに対する文字認識処理により前記画像データから認識される1以上の文字列と、を取得する取得手段と、前記画像データのうちの少なくとも一部、および、前記1以上の文字列のうちの少なくとも一部から構成されるリストの表示を制御する表示制御手段と、を有し、前記表示制御手段は、ユーザーによる指示に基づいて、前記画像データのうちの表示される領域を、前記画像データにおける1つのページ内で変化させるように制御することが可能であり、記リストは、前表示される領域が変化すると、前記画像データのうちの当該表示される領域において認識された文字列が表示されるように変化することを特徴とする。
【発明の効果】
【0008】
本発明に係るクライアント端末によれば、画像データに対して文字認識処理を行うことにより取得した文字列のリストを、拡大や縮小などの指示に基づく、当該画像データの表示される領域の変化に合わせて適切に表示する仕組みを提供することができる。
【図面の簡単な説明】
【0009】
図1】本発明を実施するためのシステム構成およびネットワーク構成を示す図である。
図2】本発明における情報処理装置の情報処理機能に関するハードウェア構成図である。
図3】本発明のシステムのソフトウェアおよびハードウェア構成を説明する図である。
図4】本発明における処理を示すフローチャートである。
図5】本発明における原稿画像を説明する図である。
図6】本発明におけるUIの一例を示す図である。
図7】本発明におけるUIの一例を示す図である。
図8】本発明におけるUIの一例を示す図である。
図9】本発明におけるUIの一例を示す図である。
図10】本発明におけるUIの一例を示す図である。
図11】本発明におけるUIの一例を示す図である。
図12】本発明における原稿画像を説明する図である。
図13】本発明におけるUIの一例を示す図である。
図14】本発明におけるUI制御の処理を示すフローチャートである。
【発明を実施するための形態】
【0010】
<第1の実施形態>
以下、本発明を実施するための形態について図面を用いて説明する。なお、以下の実施の形態は特許請求の範囲に係る発明を限定するものではなく、また、実施の形態で説明されている特徴の組み合わせのすべてが発明の解決手段に必須のものとは限らない。
【0011】
図1は、本発明を実施するためのシステム構成およびネットワーク構成の一例を示している。101は、インターネット・イントラネットなどのネットワークである。111はクライアント端末である。121はスキャナー端末である。131はアプリケーションサーバーである。クライアント端末111としては、パーソナルコンピューター、ラップトップコンピューター、タブレットコンピューター、スマートフォンなどの形態・種別が存在する。スキャナー端末121としては、オフィス複合機、インクジェット複合機、スキャン専用端末など、様々な機種が存在する。アプリケーションサーバー131は、オンプレミスのサーバーや、クラウドでホスティングされる仮想マシンサーバー、SaaS(Software as a Service)などの提供形態が存在する。
【0012】
図2は、クライアント端末111、スキャナー端末121、アプリケーションサーバー131の情報処理機能のモジュール構成図を示している。202はネットワークインターフェースであり、LANなどのネットワークに接続して、他のコンピューターやネットワーク機器との通信を行う。通信の方式としては、有線・無線のいずれでもよい。204は組込済みプログラムおよびデータが記録されているROMである。205は一時メモリ領域のRAMである。206はHDDやフラッシュメモリに代表されるような二次記憶装置である。203はCPUであり、ROM204、RAM205、二次記憶装置206などから読み込んだプログラムを実行する。207はGPUである。GPU207は画像処理に特化したプロセッサーで、画像処理の実行、ディスプレイへの出力画像の描画、機械学習など大量・並列の演算処理を担当する。GPU207は、必ずしも備えていなくてもよい。201はユーザーインターフェースであり、ディスプレイ、キーボード、マウス、ボタン、タッチパネルなどによる、情報や信号の入出力を行う。これらのハードウェアを備えないコンピューターは、リモートデスクトップやリモートシェルなどにより、他のコンピューターから接続・操作することも可能である。各部は入出力インターフェース208を介して接続されている。
【0013】
図3は、本システムのソフトウェアおよびハードウェア構成を示す図である。各ハードウェアにインストールされたソフトウェアは、それぞれのCPU203で実行され、ネットワーク接続の矢印で図示するように、相互に通信可能な構成となっている。また、GPU207を備えるハードウェアにおいては、画像処理はGPU207で実行するように構成することも可能である。
【0014】
301は、クライアント端末111で実行されるクライアントアプリケーションである。クライアントアプリケーション301は、クライアント端末111のOSにインストールして実行するネイティブアプリケーションの形態を取ることが多い。これはOSが提供するカメラやファイルなどの全機能にアクセス可能なアプリケーションを作成可能なためである。しかしながら、それら必要な機能にブラウザーから利用可能なAPIがOSで提供されている場合は、HTML,JavaScript等から成るWebアプリケーションをブラウザーで実行する形態としてもよい。その場合は、クライアントアプリケーション301はブラウザーとなる。本実施形態では、クライアントアプリケーション301はいわゆる汎用的なスマートフォン、タブレットPCなどのクライアント端末111で使用することを想定して以降説明する。しかしながら、スキャナー端末121がクライアントアプリケーション301を実行するために必要なOSやタッチパネルUIなどの構成を備えていれば、スキャナー端末121で実行する構成としてもよい。
【0015】
311は、ファイルを保存・管理するためのファイルストレージである。このように、クライアント端末111はストレージサーバを備えるように構成しても良い。ファイルストレージ311は、ファイル格納部312、メタデータ管理部313から成る。ファイル格納部312は、ファイル自体のバイナリデータを格納・管理する。メタデータ管理部313は、ファイルごとのメタデータを格納・管理する。ファイルのメタデータとしては、一般的なものとしては作成日時、サイズ、作成ユーザー名などが挙げられるが、任意のメタデータを扱ってよいものとする。
【0016】
321は、OCR(Optical Character Recognition)などの文字認識処理を含む画像処理を実行する画像処理部である。画像処理部321は、ファイル一時格納部322、画像処理実行部323から成る。ファイル一時格納部322は、後述する画像処理実行部323の画像処理の実行対象となるファイルおよび実行結果を格納する。画像処理実行部323は、ファイル一時格納部322から処理対象のファイルを読み出し、OCRによる文字認識処理等を実行し、実行結果ファイルをファイル一時格納部322に保存する。324はカメラである。クライアントアプリケーション301は、カメラ324で撮影した画像を取得するように構成してもよい。
【0017】
331は、スキャナー端末121に装備されているスキャナーである。スキャナー331は、光学センサーによって原稿面を走査して反射光や色を読み取る。332は画像形成部であり、スキャナー331で読み取った光学測定値から原稿のページ画像を形成する。333は通信インターフェースである。通信インターフェース333は、LAN、USB、WiFi、Bluetoothなどの有線あるいは無線の通信プロトコルによって、外部機器との通信を制御する。クライアントアプリケーション301は、通信インターフェース333に接続して、スキャナー331による原稿スキャンを開始し、画像形成部332が生成した画像を取得することができる。
【0018】
ファイルストレージ311および画像処理部321は、ファイルストレージ341および画像処理部351としてアプリケーションサーバー131に配置してもよい。341~353は、前述した311~323と同様のため説明は省略する。
【0019】
図4は全体の処理の流れを説明するフローチャートである。図4に示すクライアントアプリケーション301が行う処理は、クライアント端末111の二次記憶装置206に記録されたプログラムをRAM205に読み込んだ後、CPU203の演算処理として実行される。前述したように、画像処理についてはGPU207で実行される。なお、本実施形態においては、以降の処理をクライアント端末111のクライアントアプリケーション301が行う構成を説明するが、これに限らない。前述したように、スキャナー端末が以降の処理を行うように構成してもよい。
【0020】
クライアントアプリケーション301は、カメラ324、スキャナー端末333、ファイルストレージ311、341のいずれかから原稿画像を取得する(S401)。本発明においては、1枚の原稿に基づいて画像データを取得する。具体的には、後述する図6に示す画面610において、クライアントアプリケーション301は、カメラ選択ボタン612の押下を検知する。クライアントアプリケーション301は、当該押下を検知すると、ユーザーインターフェース201に画面620を表示する。ユーザーは、クライアント端末111の備えるカメラ324を用いて、原稿の撮影を行う。クライアントアプリケーション301は、画面620において、撮影ボタン623の押下を検知すると、撮影された画像データを取得する。また、スキャナー端末333から画像データを取得する場合は、ユーザーはスキャナー選択ボタン611を押下する。クライアントアプリケーション301は、当該押下を検知すると、ユーザーインターフェース201に画面630を表示する。ユーザーは、画面630において、スキャンに関する設定を行う。クライアントアプリケーション301は、ユーザーによるスキャンボタン635の押下を検知すると、スキャン実行指示を示す情報をスキャナー端末121へ送信する。当該情報を受信したスキャナー端末121はスキャナー331を用いてスキャンを実行する。当該スキャンにより得られた画像データは、通信インターフェース333を介してクライアントアプリケーション301へ送信され、クライアントアプリケーション301は当該画像データを取得する。ファイルストレージ311から画像データを取得する場合は、ユーザーは、画面610においてローカルファイルボタン613の押下をする。クライアントアプリケーション301は、当該押下を検知すると、ユーザーインターフェース201に画面640を表示する。そして、画面640に表示されたファイルの中からユーザーによるファイルの選択を受け付ける。クライアントアプリケーション301は、ユーザーにより選択されたファイルを、ファイルストレージ311から取得する。なお、ファイルストレージ341から画像データを取得する処理は、取得元がアプリケーションサーバーのファイルストレージ341である点を除いて、ファイルストレージ311から取得する場合と同様である。
【0021】
クライアントアプリケーション301は、画像処理部321に画像を入力し、画像処理部321は画像をファイル一時格納部322に保存する。画像処理実行部323はファイル一時格納部322の画像ファイルを読込み、文字認識処理(OCR)を実行し、画像処理結果をファイル一時格納部322に出力する(S402)。クライアントアプリケーション301は、画像処理部321から画像処理結果を取得する(S403)。アプリケーションサーバー131の画像処理部351を使用する場合でも、アクセス先が351になるだけで手順は同様である。クライアント端末111が十分な性能のCPUやGPUを備えない場合、この構成を取ってアプリケーションサーバー131に画像処理をオフロードすることができる。クライアントアプリケーション301は、画像と画像処理結果のOCR文字列をUIに表示し、OCR文字列の選択を受け付ける(S404)。クライアントアプリケーション301は、選択されたOCR文字列をフォルダー名、ファイル名、メタデータの少なくとも1つに使用して、画像ファイルを宛先のファイルストレージ311または341に保存する(S405)。
【0022】
以降、S403、S404、S405の処理詳細について、図5~14を用いて説明する。
【0023】
図5は、S401で取得した原稿画像のページ全体画像500を示している。本実施形態では、英語のPURCHASE ORDER(発注書)の文書の画像を使って以降の説明をする。なお、文書の言語や文書種別は任意のものでよい。原稿画像500には、発注書に記載されている様々な情報(日付、番号、会社名、住所、電話番号、商品名、価格等)が文字列として含まれている。501は、原稿画像500と、画像処理によって得られたOCR文字列領域502の関係を示す直交座標系を説明する図である。S402で、原稿画像500を入力として画像処理を実行し、S403で画像処理結果を取得すると、画像処理結果として次のような情報が得られる。OCR文字列「PURCHASE ORDER」とOCR文字列領域502の始点座標・幅・高さである。また、得られたOCR文字列とOCR文字列領域どうしの位置・サイズ情報から、いわゆるKey-Value型の文字列ペアであるか、KeyとValueのどちらの文字列か、といった追加の解析情報も画像処理結果に含めることができる。例えば、OCR結果の文字列の構文解析を行い、コロン(:)等のKeyの後ろによく使われる文字の検出に基づいて、KeyとValueを検出することができる。もしくは、Keyとなる文字列の指定をユーザーから予め受け付けておき、当該文字列を検出したら、対応するValueとなる文字列も特定するよう構成してもよい。原稿画像500内において、Key―Value型の文字列ペアにあたるものは、例えば、「PO Number:」と「2022-P001-07525」のペア、「Company Name:」と「XYZ Corporation」のペアである。原稿画像500から得られた画像処理結果であるOCR文字列配列をテーブル形式にまとめたものがテーブル1となる。テーブル1には、前述のOCR文字列領域の位置・サイズ情報も含まれるが、煩雑になるためテーブルへの記載を省略する。文字列配列ごとにOCR文字列領域の位置・サイズ情報が必ず存在する前提で以降の説明を続ける。
【0024】
【表1】
【0025】
図6、7、8、9、10、11、13がクライアントアプリケーション301のUI説明図である。これらのUIは、例えば、クライアント端末111のユーザーインターフェース201に表示される。例えば、スマートフォン等のタッチパネル上に表示される。図12は、図11の説明補助用の原稿画像内領域説明図である。図14がUI処理フローを説明するフローチャートである。
【0026】
以降、これらの図を用いてクライアントアプリケーション301のUI制御処理を順番に説明する。
【0027】
610は、画像の読込み画面である。ユーザーが、原稿画像の取得元をスキャナー端末121、カメラ324、ファイルストレージ311、341のいずれかから選択する画面である。クライアントアプリケーション301は、ユーザーによるスキャナー選択ボタン611の押下を検知すると、スキャナー端末121を原稿画像の取得元として画像データを取得する。ユーザーによるカメラ選択ボタン612の押下を検知すると、カメラ324を原稿画像の取得元として画像データを取得する。ユーザーによるローカルファイルボタン613の押下を検知すると、ファイルストレージ311を原稿画像の取得元として画像データを取得する。ユーザーによるアプリケーションサーバーボタン614の押下を検知するとファイルストレージ341を原稿画像の取得元として画像データを取得する。
【0028】
カメラ324を原稿画像の取得元にした場合、クライアントアプリケーション301は、ユーザーインターフェース201に、カメラ撮影画面620を表示する。621がカメラ324の撮影エリア表示部であり、ユーザーは撮影ボタン623を押下して、原稿622を撮影する。クライアントアプリケーション301は、戻るボタン624の押下を検知すると、1つ前の画面(ここでは、画面610)を表示する。戻るボタンの動作はすべて同様なので、以降では説明を省略する。
【0029】
スキャナー端末121を原稿画像の取得元にした場合、クライアントアプリケーション301は、スキャン設定画面630を表示する。631、632、633は、それぞれ片面・両面の読み込み設定、カラー・白黒のカラーモード、解像度を選択するドロップダウンコントロールである。クライアントアプリケーション301は、ユーザーによるスキャンボタン635の押下を検知すると、通信インターフェース333を介してスキャナー端末121にセットした原稿をスキャンし、生成された画像データを取得する。
【0030】
ファイルストレージ311または341を原稿画像の取得元にした場合、クライアントアプリケーション301は、画像ファイル読込み画面640を表示する。641はファイルストレージ内のフォルダーパスを表示するコントロールである。642がフォルダーナビゲーション用のリストビューコントロールである。ユーザーは、642を押下して、目的のフォルダーまで移動する。上のフォルダーに戻る場合はコントロール641を押下する。643がファイルストレージ内のファイルを選択するためのリストビューコントロールである。クライアントアプリケーションは、643で原稿画像として取得する画像ファイルの選択をユーザーから受け付けた後、次へボタン644の押下を検知すると、読込み対象ファイルを643で示すファイルと決定し、次の画面(ここでは、画面710)を表示する。次へボタンの動作はすべて同様なので、以降では説明を省略する。ここまでがS401の処理に相当する。
【0031】
クライアントアプリケーション301は、スキャナー端末121、カメラ324、ファイルストレージ311、341のいずれかから原稿画像を取得したら、画像の確認画面710を表示する。711は原稿画像のプレビューである。クライアントアプリケーション301は、ユーザーによる次へボタンの押下を検知すると、原稿画像を入力として画像処理部321または351で画像処理を実行する。ここまでがS402の処理に相当する。
【0032】
クライアントアプリケーション301はバックグラウンドで画像処理の実行が終了するのを待機しつつ、宛先フォルダー指定画面720を表示する。721は宛先のファイルストレージ311、341のいずれかのフォルダーパスを表示している。722がカレントフォルダー以下のサブフォルダーの一覧を表示するリストビューコントロールである。クライアントアプリケーション301は、722の押下を検知すると、画面730を表示してカレントフォルダーを731に表示する。ユーザーは、目的の宛先フォルダーまで画面を遷移した後、次へボタンを押下する。クライアントアプリケーション301は、次へボタンの押下を検知して、宛先フォルダーを決定する。
【0033】
以降の処理を図14のフローチャートも用いて説明する。図14に示す処理は、S403およびS404を詳細に説明した処理である。以降の処理においては、S403およびS404即ちS1401~S1406を、4回繰り返す。1回目は画像データを含むファイルの保存先となるサブフォルダー名の決定、2回目はファイル名の決定、3回目は当該ファイルに設定されるメタデータの決定、4回目は、当該ファイルに設定されるタグの決定のための処理である。
【0034】
まず、サブフォルダー名の決定の処理について説明する。サブフォルダー名の決定の処理は、画像データを取得し画像処理を実行したことを契機に開始される。クライアントアプリケーション301は画像処理部321または351から画像処理結果として原稿画像とテーブル1に示すOCR文字列配列とを取得する(S1401)。ここまでがS403の処理に相当する。クライアントアプリケーション301は次に使用するリストビューのために、テーブル2に示すリストビュー配列を作成し、テーブル1のOCR文字列配列を取り込む(S1402)。テーブル2のリストビュー配列番号以外は、テーブル1のOCR文字列配列データそのものである。リストビュー配列番号を並べ替えることによって、どのOCR文字列データをどのような順序でリストビューに表示するかを変化させる。
【0035】
【表2】
【0036】
クライアントアプリケーション301は、画面730で次へボタンの押下を検知し宛先フォルダーが特定すると、サブフォルダー指定画面810を表示する。なお、宛先フォルダーの特定は、S1402以前に行われていてもよい。また、サブフォルダー名の決定の処理においては、サブフロー1及びサブフロー2は説明せず、処理も行わない構成を説明するが、これに限らない。サブフォルダー名の決定の処理においてもサブフロー1及びサブフロー2を行ってもよい。サブフロー1及びサブフロー2の詳しい処理は、メタデータの決定の処理及びタグの決定の処理において説明する。
【0037】
811は原稿画像のプレビューエリアである。プレビューエリア811は、スワイプ操作によって原稿画像500の上下方向・左右方向ページ内移動が可能である。811では原稿画像500の上部3分の1程度しか表示できていないが、スクロール操作によりページ下部へ移動・表示エリアを変えることができる。またピンチ操作で、画像のズームイン・ズームアウトにより表示エリアを変えることができる。812は画像から抽出されたOCR文字列を列挙表示・選択するためのリストビューコントロールである。813はリストビューコントロール812のアイテム数が多く表示しきれない場合に表示されるスクロールインジケーターである。
【0038】
クライアントアプリケーション301は取得した原稿画像をプレビューエリア811に表示する(S1403)。そして、プレビューエリア811の先頭に表示されているOCR文字列「PURCHASE ORDER」を、リストビュー配列の表示先頭にセットする(S1404)。即ち、テーブル2において、リストビュー配列番号1を表示先頭であると設定する。そして、表示先頭のリストビュー配列番号のOCR文字列をリストビューコントロール812の先頭にセットして、テーブル2のリストビュー配列をリストビューコントロール812に表示する(S1405)。本実施形態において、リストビューコントロール812は、スワイプ操作で上下方向にスクロール可能であり、テーブル2のリストビュー配列番号の順にアイテムが表示される。ここで、スクロール可能なリストにおいて、画面に表示される文字列には限りがある。本実施形態においては、表示先頭にセットされた文字列が、画面に表示されるように、リストがスクロールされて表示される。820が、同じくサブフォルダー指定画面であるが、プレビューエリア811をスワイプ操作することによって、原稿画像500を下方向にスクロールした結果の画面を示している。クライアントアプリケーション301はプレビューエリアに対して811から821のように移動及びズームの少なくとも1つの操作がされたことを検出する(S1406)。検出した場合、クライアントアプリケーション301は、プレビューエリアに、移動・ズーム後の原稿画像500のプレビューを更新して表示する(S1403)。プレビューエリア821で、OCR文字列「Phone:」が先頭になったことに連動して、クライアントアプリケーション301は、テーブル2のリストビュー配列の表示先頭をリストビュー配列番号10にセットする(S1404)。クライアントアプリケーション301は、リストビューコントロール822をリストビュー配列番号10の「Phone:」文字列が先頭にくるよう表示を更新する(S1405)。具体的には、クライアントアプリケーション301は、リストビューコントロール822を所定の位置まで下にスクロールし、OCR文字列「Phone:」がリストビューコントロール822の表示エリアにおいて先頭に表示されるように制御する。以降、この繰り返しでプレビューエリア811の移動・ズームを検知すると、プレビューエリア821の表示更新、それに連動してリストビューコントロール822の表示先頭を変更して表示を更新する。なお、本実施形態では、リストビューコントロール822をスクロールさせることで、プレビューエリア821に表示される画像の表示範囲に合わせて、リストの表示制御を行った。他にも、リストに含まれる文字列を、プレビューエリア821に表示される、画像データの一部の領域に含まれる文字列のみとしてもよい。それにより、プレビューエリア821の先頭に表示されるOCR文字列を、リストビューコントロールの表示エリアにおいても先頭に表示されるように、リストの表示を制御してもよい。
【0039】
本実施形態では、サブフォルダー名に文字列配列番号13である「XCamera Company」を選択して指定するユースケースとする。前述のプレビューエリア821の表示エリアとリストビュー822の先頭表示が連動して、目的とする「XCamera Company」文字列がリストビュー822内に表示されたら、ユーザーは822をタップして選択する。クライアントアプリケーション301は、ユーザーによるリスト内の文字列の選択を受付けると、選択済み状態を示すため、822をハイライト表示する。また、822の選択された文字列に対応して、プレビューエリア821内の「XCamera Company」文字列領域823をハイライト表示するこれにより、ユーザーは、原稿画像内のどこの文字列領域が選択されたかを確認できる。クライアントアプリケーション301は、次へボタンの押下を検知すると、次の画面に遷移して本フローを終了する。
【0040】
続いて、S1401~S1406の2回目の処理を説明する。画像データのファイル名を決定する処理である。S1401およびS1402は、サブフォルダー名の決定の処理と同様である。なお、2回目以降の処理ではS1401およびS1402は省略してもよい。その場合は、1回目のS1401およびS1402で取得した原稿画像、OCR文字列配列およびリストビュー配列を、以降の処理でも用いる。また、2回目の処理でも、サブフロー1は省略する。S1403において、クライアントアプリケーション301は、画面910を表示する。910は、ファイル名指定画面である。ここでは、原稿画像内から複数のOCR文字列を選択するユースケースを説明する。プレビューエリア911、リストビュー912は、811、812と同様である。ユーザーは、リストビュー内のOCR文字列922を長押しタップして選択する。クライアントアプリケーション301は、長押しタップを検知すると、922のリストビューコントロールが選択済み状態であることを示すために、チェックマーク及びハイライト表示を行う。また、OCR文字列922に対応するOCR文字列領域923をプレビューエリア911内でハイライト表示する。ユーザーは、さらにリストビュー内のOCR文字列931を長押しタップして選択する。クライアントアプリケーション301は、931への長押しタップを検知すると、931のリストビューコントロールが選択済み状態であることを示すためにチェックマークおよびハイライト表示を行う。また、OCR文字列931に対応するOCR文字列領域932をプレビューエリア911内でハイライト表示する。933は、選択済みOCR文字列が複数ある場合、順番を並べ替えるためのコントロールである。ユーザーは、933を長押しして、選択したOCR文字列を好みの位置までドラッグする。その結果、選択したOCR文字列922、931の並べ替え後の結果が941となる。クライアントアプリケーション301は、次へボタンの押下を検知すると、次の画面に遷移して本フローを終了する。
【0041】
続いて、S1401~S1406の3回目の処理を説明する。画像データを含むファイルに設定されるメタデータを決定する処理である。S1401およびS1402は、サブフォルダー名の決定の処理と同様である。ここでは、サブフロー1の処理も行うケースを説明する。
【0042】
S1411で、クライアントアプリケーション301は、Key文字列をリストの下位に表示するかを判定する。具体的には、画面1020に示すトグルスイッチ1021がONであるか否かを確認する。ONでない、即ちOFFである場合、S1403に進み、クライアントアプリケーション301はメタデータ指定画面1010を表示する。プレビューエリア1011、リストビュー1012は、811、812と同様である。1013がクライアントアプリケーション301の設定ボタンである。設定ボタン1013を押下すると設定画面1020が開く。1021がKey-Value型文字列ペアのうちKey文字列をリストの下位にするかどうかのトグルスイッチである。1022がプレビューで文字列の一部のみ表示の場合、リストの下位にするかどうかのトグルスイッチである。1022については別の図で後述する。画面1010では、トグルスイッチ1021がOFFの場合を示しており、テーブル2のリストビュー配列に示す通りの表示順序でリストビューコントロール1012が表示されている。
【0043】
トグルスイッチ1021がONである場合(S1411)は、クライアントアプリケーション301はテーブル3に示すようにリストビュー配列をKey-Value種別がKeyであるOCR文字列を下位に並べ替える(S1412)。
【0044】
【表3】
【0045】
そして、クライアントアプリケーション301は、リストビューコントロール1031に示すように、テーブル3で並べ替えられた順番でリストビューを表示する。これにより、原稿画像500内に存在する文字列のうち「PO Number:」「Company Name」など、フォルダー名、ファイル名、メタデータ等の入力に使われる可能性が低い文字列をリストの下位に移動することができる。1031のリストビューコントロールに表示可能なアイテム数には限りがあるため、使用される可能性が低い文字列候補を表示対象アイテムから除くことは有効である。
【0046】
また、サブフロー1は、S1403において原稿画像プレビューを表示した後に行われても良い。具体的には、画面1010が表示されている間に設定ボタン1013の押下を検知すると、クライアントアプリケーション301は画面1020を表示する。画面1020上で、トグルスイッチ1021がOFFからONに切り替えられた上でOKボタンが押下されたことを検知すると、クライアントアプリケーション301は、Key文字列をリストビュー配列の下位に移動し、更新されたリストビューを再表示する。また、クライアントアプリケーション301は、トグルスイッチ1021がONからOFFに切り替えられた上でOKボタンが押下されたことを検知する。そして、クライアントアプリケーション301は、Key文字列をリストビュー配列の下位に移動する前の元のリストビュー配列に従って、リストビューの表示を更新する。
【0047】
ここではメタデータ“Company Name”の値として「XYZ Corporation」のOCR文字列を選択して入力するユースケースを説明する。トグルスイッチ1021がOFFの場合、目的のOCR文字列「XYZ Corporation」はリストビューコントロール1012の表示可能範囲には表示されていない。トグルスイッチ1021がONの場合、テーブル3のようにKey文字列がリストの下位に移動される効果で、目的のOCR文字列「XYZ Corporation」がリストビューコントロール1031内に表示可能となる。ユーザーが目的のOCR文字列「XYZ Corporation」をリストビューコントロール1041でタップして選択すると、クライアントアプリケーション301は、当該OCR文字列をハイライト表示する。また、プレビューエリア内でOCR文字列領域1042もハイライト表示する。クライアントアプリケーション301は、次へボタンの押下を検知すると、次の画面へ遷移して本フローを終了する。
【0048】
続いて、S1401~S1406の4回目の処理を説明する。画像データを含むファイルに設定されるタグを決定する処理である。S1401およびS1402は、サブフォルダー名の決定の処理と同様である。また、サブフロー1は省略する。ここでは、S1404に代えてサブフロー2を行うフローを説明する。S1403において、クライアントアプリケーション301は、画面1110を表示する。1110はタグ指定画面である。タグはメタデータの一種であり、一般的にはKey-Value型メタデータのような厳密な型定義が不要で、自由に付加データを1つ以上付与することができる。ラベルなどとも呼ばれる。プレビューエリア1111、リストビュー1112は、811、812と同様である。図12に示すように、プレビューエリア1111は原稿画像500の一部領域1201を拡大表示している状態である。このとき、1201を含む領域1202に含まれる文字列に着目してリストビュー配列を構成するとテーブル4のようになる。右端にプレビュー表示状態を示すカラムが追加してある。
【0049】
【表4】
【0050】
プレビュー表示状態は、プレビューエリア1111内で当該OCR文字列が全表示されているか、一部表示されているか、非表示なのかを示している。設定画面1020のトグルスイッチ1022がOFFの場合、テーブル4のリストビュー配列の順序でリストビューコントロール1112に表示される。
【0051】
S1421で、クライアントアプリケーション301は、トグルスイッチ1022がONに設定されたか否かを判定する。具体的には、まず、クライアントアプリケーション301は、S1403で表示された画面1110上での設定ボタン1113の押下を検知すると画面1020を表示する。画面1020でトグルスイッチ1022がONに設定された上でOKボタンの押下を検知した場合は、トグルスイッチ1022がONに設定されたと判定する。OFFに設定された上でOKボタンの押下を検知した場合は、トグルスイッチ1022がONに設定されていないと判定する。トグルスイッチ1022がONに設定された(S1421)場合、クライアントアプリケーション301はプレビューエリアと同じ高さのページ領域1202内のOCR文字列を列挙し、プレビュー表示状態を全表示・一部表示・非表示に区分する(S1422)。クライアントアプリケーション301はリストビュー配列を、プレビュー表示状態カラムで全表示・一部表示・非表示の順によってテーブル5に示すように並べ替える(S1423)。
【0052】
【表5】
【0053】
クライアントアプリケーション301は、S1422で列挙したOCR文字列のうち、S1423で並べ替え後、最も小さいリストビュー配列番号をリストビュー配列の表示先頭にセットする(S1424)。本実施形態ではテーブル5のリストビュー配列番号9のOCR文字列「Description」になる。テーブル5のプレビュー表示状態で並べ替えたリストビュー配列をリストビューコントロール1121に表示する(S1405)。この処理により、原稿画像500内の領域1202内のOCR文字列のうち、全表示・一部表示されている文字列をより上位の候補としてリストビューコントロール1121内に表示できる。なお、上述した処理は、サブフロー1のようにS1402とS1403の間で行われても良い。即ち、クライアントアプリケーション301は、S1403で画面1110を表示する前に、トグルスイッチ1022の設定を確認し、設定に従ったリストビュー配列に基づいてリストビューを表示してもよい。
【0054】
ユーザーは、リストビューコントロール1121からタグに使用するOCR文字列1131、1132を長押しタップして選択済みにする。クライアントアプリケーション301は、長押しタップを検知すると、リストビューコントロール1131、1132に対して、選択済みを示すチェックマーク及びハイライト表示をする。また、プレビューエリア1111内では、選択されたOCR文字列領域1133、1134をハイライト表示する。クライアントアプリケーション301は、次へボタンの押下を検知すると、次の画面へ遷移して本フローを終了する。当該次の画面は、後述する画面1300である。
【0055】
なお、本実施形態においては、ユーザーがプレビューエリア821の画像を移動及びズームの少なくとも1つを行った場合に、リストの表示を切り替える制御を行う例を示した。例えば、図8に示す画面820は画面810のプレビューエリア811から下へ、表示する領域を移動させた例である。また、図11に示す画面1110は、ユーザーの指示に従い、プレビューエリア内で一部領域を拡大表示するようなズームインを行った例である。これに限らず、ユーザーがプレビューエリア内でズームアウトのための指示を行い画像データの表示を縮小した場合にも、リストの表示を切り替える制御を行っても良い。例えば、図11に示す画面1110のように、OCR文字列「Part No.」がリストビューコントロール1112の表示エリアにおいて先頭に表示されている状態から、ユーザーがプレビューエリア1111においてズームアウトのための指示を行う。このようにして、原稿画像500全体を表示するように画像を縮小させた場合、クライアントアプリケーション301は、OCR文字列「PURCHASE ORDER」をリストビュー配列の先頭にセットする。そして、リストビューコントロール812と同様にリストを表示するように制御を行う。
【0056】
1300は宛先への保存画面である。1301は、宛先のファイルストレージ311または341の宛先名を示すテキストコントロールである。1302は、図7、8で指定・構成したフォルダーパスを示すテキストコントロールである。1303は、図9で指定・構成したファイル名を示すテキストコントロールである。1304は、図10で指定・構成したファイル名を示すテキストコントロールである。1305は、図11で指定・構成した1つ以上のタグを示すテキストコントロールである。保存ボタン1306を押下すると、クライアントアプリケーション301は、原稿画像を宛先のストレージ311または314に、指定されたフォルダーパス、ファイル名で保存する。またメタデータ(タグ等を含む)が指定されている場合は、原稿画像に加えメタデータを宛先のストレージ311または314に同時に保存する。ここまでが全体フローのS405に相当する。
【0057】
本実施形態では、クライアントアプリケーションで画像から所望のOCR文字列を選択するためのUI制御方法を説明した。クライアント端末が、十分な大きさのディスプレイを備えない、タッチパネルUI特有のタップ・スワイプ・ピンチ操作という制約がある場合でも、画像内の所望のOCR文字列を容易かつ素早く選択することが可能となる。これにより、画像内のOCR文字列を選択するためのタッチパネルUIにおいて、画像内の所望のOCR文字列を選択する作業の効率を高める、という冒頭で説明した課題を解決している。
【0058】
<その他の実施形態>
本発明は、上述の各実施形態の1以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピューターにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASICやFPGA)によっても実現可能である。
【符号の説明】
【0059】
111 クライアント端末
301 クライアントアプリケーション
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14