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

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

▶ ブラザー工業株式会社の特許一覧

<>
  • 特開-プログラムおよびデバイス 図1
  • 特開-プログラムおよびデバイス 図2
  • 特開-プログラムおよびデバイス 図3
  • 特開-プログラムおよびデバイス 図4
  • 特開-プログラムおよびデバイス 図5
  • 特開-プログラムおよびデバイス 図6
  • 特開-プログラムおよびデバイス 図7
  • 特開-プログラムおよびデバイス 図8
  • 特開-プログラムおよびデバイス 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022044454
(43)【公開日】2022-03-17
(54)【発明の名称】プログラムおよびデバイス
(51)【国際特許分類】
   H04N 1/00 20060101AFI20220310BHJP
   H04N 1/387 20060101ALI20220310BHJP
   G06V 30/412 20220101ALI20220310BHJP
【FI】
H04N1/00 C
H04N1/00 L
H04N1/387 110
G06K9/20 340C
【審査請求】未請求
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2020150081
(22)【出願日】2020-09-07
(71)【出願人】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110000291
【氏名又は名称】特許業務法人コスモス国際特許商標事務所
(72)【発明者】
【氏名】野尻 弘也
【テーマコード(参考)】
5B029
5C062
5C076
【Fターム(参考)】
5B029AA01
5B029BB02
5B029CC16
5B029CC26
5B029CC28
5C062AA05
5C062AA13
5C062AA35
5C062AB02
5C062AB20
5C062AB25
5C062AB38
5C062AB41
5C062AB42
5C062AB43
5C062AB44
5C062AC02
5C062AC06
5C062AC08
5C062AC22
5C062AC24
5C062AC51
5C062AC64
5C062AF01
5C062AF06
5C062AF07
5C062AF10
5C062AF12
5C062BA04
5C076AA17
5C076AA19
5C076AA24
(57)【要約】
【課題】複数の画像を抽出条件ごとに纏めた画像データを生成する場合において、ユーザの原稿セットにかかる手間を軽減するための技術を提供すること。
【解決手段】スキャナドライバ23によれば、PC1は、ユーザIF13を介してグルーピング条件52とソート条件53との入力を受け付け、受け付けた条件をスキャン設定として設定し、スキャナ3からスキャンデータを取得する。スキャナ3は、PC1からスキャンコマンドを受信すると、セットされた複数の原稿を1枚ずつ読み取り、読み取った原稿ごとのスキャンデータをPC1に送信する。さらにPC1は、スキャナ3から受信した複数のスキャンデータから、スキャン設定として設定されたグルーピング条件52を満たす画像を抽出し、抽出された複数の画像を、設定されたソート条件53に従って並べ替え、並べ替えた画像を纏めた画像データを生成する。
【選択図】図8
【特許請求の範囲】
【請求項1】
情報処理装置のコンピュータに、
前記情報処理装置のユーザインタフェースを介して抽出条件の入力を受け付け、受け付けた前記抽出条件を設定する第1設定処理と、
前記ユーザインタフェースを介してソート条件の入力を受け付け、受け付けた前記ソート条件を設定する第2設定処理と、
画像読取装置から画像を取得する取得処理と、を実行させ、前記画像読取装置は、前記情報処理装置からスキャンコマンドを受信すると、セットされた複数の原稿を1枚ずつ読み取り、読み取った前記原稿ごとの画像を前記情報処理装置に送信し、
さらに前記コンピュータに、前記画像読取装置によって読み取られた前記原稿ごとの前記画像を受信することで、前記取得処理にて前記画像読取装置から複数の前記画像を取得した場合に、
受信した複数の前記画像から、前記第1設定処理にて設定された前記抽出条件を満たす第1画像を抽出する抽出処理と、
前記抽出処理にて抽出された複数の前記第1画像を、前記第2設定処理にて設定された前記ソート条件に従って並べ替えるソート処理と、
前記ソート処理にて並べ替えられた前記第1画像を纏めた第1画像データを生成する生成処理と、
を実行させる、
ことを特徴とするプログラム。
【請求項2】
請求項1に記載するプログラムにおいて、
前記第1設定処理では、前記ユーザインタフェースを介してテキストの入力を受け付け、入力された前記テキストを前記抽出条件として設定し、
前記抽出処理では、受信した前記画像ごとに、前記画像に含まれるテキストを取得し、受信した複数の前記画像から、前記画像から取得された前記テキストに前記第1設定処理にて設定された前記抽出条件が含まれる前記画像を、前記第1画像として抽出する、
ことを特徴とするプログラム。
【請求項3】
請求項2に記載するプログラムにおいて、
前記第1設定処理では、前記ユーザインタフェースを介してテキストの入力を受け付け、入力された前記テキストを前記情報処理装置のメモリに登録し、登録されている前記テキストの中から選択された前記テキストを前記抽出条件として設定する、
ことを特徴とするプログラム。
【請求項4】
請求項1または請求項2に記載するプログラムにおいて、
前記コンピュータに、
前記ユーザインタフェースを介して前記抽出条件の入力を受け付け、受け付けた前記抽出条件を前記情報処理装置のメモリに登録する登録処理を実行させ、
前記第1設定処理では、前記登録処理にて登録されている前記抽出条件の中から、前記ユーザインタフェースを介して少なくとも1つの前記抽出条件の選択を、前記抽出条件の入力として受け付け、選択された前記抽出条件を設定する、
ことを特徴とするプログラム。
【請求項5】
請求項1から請求項4のいずれか1つに記載するプログラムにおいて、
さらに前記コンピュータに、前記スキャンコマンドに応じて前記画像読取装置によって読み取られた前記原稿ごとの前記画像を受信した場合に、
受信した前記画像ごとに、前記画像の向きを解析し、受信した複数の前記画像の向きが一方向に揃うように前記画像を回転させる回転処理を実行させ、
前記生成処理では、前記回転処理にて向きが揃えられた前記第1画像を纏めた前記第1画像データを生成する、
ことを特徴とするプログラム。
【請求項6】
請求項1から請求項5のいずれか1つに記載するプログラムにおいて、
前記コンピュータに、
前記生成処理にて生成された前記第1画像データを含むファイルを出力する出力処理を実行させる、
ことを特徴とするプログラム。
【請求項7】
請求項1から請求項6のいずれか1つに記載するプログラムにおいて、
前記生成処理では、受信した複数の前記画像に、前記抽出処理にて抽出されなかった第2画像がある場合に、前記第2画像を含む第2画像データを、前記第1画像を纏めた前記第1画像データとは別に生成する、
ことを特徴とするプログラム。
【請求項8】
請求項7に記載するプログラムにおいて、
前記コンピュータに、前記第2画像が複数ある場合に、
前記第2画像ごとに、前記第2画像の特徴量を取得する特徴取得処理と、
複数の前記第2画像を、前記特徴取得処理にて取得された前記特徴量を用いて、前記特徴量に基づく分類条件に従って分類する分類処理と、を実行させ、
前記生成処理では、前記第1画像データを生成し、さらに前記分類処理によって分類された前記第2画像ごとに纏めた前記第2画像データも生成する、
ことを特徴とするプログラム。
【請求項9】
請求項8に記載するプログラムにおいて、
前記取得処理では、オートサイズを指定した前記スキャンコマンドを前記情報処理装置から受信した前記画像読取装置から、原稿のサイズに応じたサイズの前記画像を取得し、
前記特徴取得処理では、前記第2画像のサイズを前記特徴量として取得し、
前記分類処理では、前記第2画像のサイズが所定範囲内であることを前記分類条件として、複数の前記第2画像を分類する、
ことを特徴とするプログラム。
【請求項10】
請求項8に記載するプログラムにおいて、
前記特徴取得処理では、前記第2画像の画像的特徴を示す情報を前記特徴量として取得し、
前記分類処理では、前記画像的特徴に基づく前記分類条件によって、複数の前記第2画像を分類する、
ことを特徴とするプログラム。
【請求項11】
請求項1から請求項10のいずれか1つに記載するプログラムにおいて、
前記抽出処理では、
受信した複数の前記画像から、前記第1設定処理にて設定された前記抽出条件を満たす前記第1画像を抽出した後、抽出した前記第1画像ごとに、前記第1設定処理にて設定された前記抽出条件に対応する抽出情報を前記第1画像のページ情報に格納し、
前記生成処理では、
同じ前記抽出情報が前記ページ情報に格納された前記第1画像について同じページ番号を付与し、前記抽出処理にて抽出された前記第1画像を、前記ページ番号ごとに纏めた前記第1画像データを生成する、
ことを特徴とするプログラム。
【請求項12】
情報処理装置のコンピュータに、
画像読取装置から画像を取得する取得処理を実行させ、前記画像読取装置は、前記情報処理装置からスキャンコマンドを受信すると、セットされた複数の原稿を1枚ずつ読み取り、読み取った前記原稿ごとの画像を前記情報処理装置に送信し、
さらに前記コンピュータに、前記画像読取装置によって読み取られた前記原稿ごとの前記画像を受信することで、前記取得処理にて前記画像読取装置から複数の前記画像を取得した場合に、
受信した前記画像ごとに、前記画像の特徴量を取得する特徴取得処理と、
受信した複数の前記画像を、前記特徴取得処理にて取得された前記特徴量を用いて、前記特徴量に基づく分類条件に従って分類する分類処理と、
前記分類処理にて分類された前記画像ごとに纏めた分類画像データを生成する生成処理と、
を実行させる、
ことを特徴とするプログラム。
【請求項13】
ユーザインタフェースと、
コンピュータと、
を備えるデバイスであって、
前記コンピュータは、
前記ユーザインタフェースを介して抽出条件の入力を受け付け、受け付けた前記抽出条件を設定する第1設定処理と、
前記ユーザインタフェースを介してソート条件の入力を受け付け、受け付けた前記ソート条件を設定する第2設定処理と、
前記ユーザインタフェースを介してスキャン指示を受け付けた場合に、複数の原稿が1枚ずつ読み取られた前記原稿ごとの画像を取得する画像取得処理と、
前記画像取得処理にて取得した複数の前記画像から、前記第1設定処理にて設定された前記抽出条件を満たす第1画像を抽出する抽出処理と、
前記抽出処理にて抽出された複数の前記第1画像を、前記第2設定処理にて設定された前記ソート条件に従って並べ替えるソート処理と、
前記ソート処理にて並べ替えられた前記第1画像を纏めた第1画像データを生成する生成処理と、
を実行する、
ことを特徴とするデバイス。
【請求項14】
ユーザインタフェースと、
コンピュータと、
を備えるデバイスであって、
前記コンピュータは、
前記ユーザインタフェースを介してスキャン指示を受け付けた場合に、複数の原稿が1枚ずつ読み取られた前記原稿ごとの画像を取得する画像取得処理と、
前記画像取得処理にて取得した前記画像ごとに、前記画像の特徴量を取得する特徴取得処理と、
前記画像取得処理にて取得した複数の前記画像を、前記特徴取得処理にて取得された前記特徴量を用いて、前記特徴量に基づく分類条件に従って分類する分類処理と、
前記分類処理にて分類された前記画像ごとに纏めた分類画像データを生成する生成処理と、
を実行する、
ことを特徴とするデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書に開示される技術分野は、複数の原稿を読み取り、読み取った複数の原稿の画像に基づく画像データを生成する技術に関する。
【背景技術】
【0002】
従来、複数の原稿を読み取り、読み取った複数の原稿の画像を1ページ分の領域に配置した画像データを生成する技術が知られている。例えば特許文献1には、読み取ったN個の画像を縮小し、縮小したN個の画像を1ページのN等分した領域に配置した配置画像データを生成する、いわゆるNin1機能を有する画像処理装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2009-296409号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
画像処理装置は、読み取った原稿の順に画像を配置する。そのため、複数の原稿の読み取り結果から日付や社名等の抽出条件で纏めた画像データを得ようとすると、あらかじめユーザが原稿を抽出条件ごとに連続するように並べ替えてからその原稿束を画像読取装置にセットする必要がある。この原稿を並び替えてセットする作業は、ユーザにとって手間になり易い。
【0005】
本明細書は、複数の画像を抽出条件ごとに纏めた画像データを生成する場合において、ユーザの原稿セットにかかる手間を軽減するための技術を開示する。
【課題を解決するための手段】
【0006】
この課題の解決を目的としてなされたプログラムは、情報処理装置のコンピュータに、前記情報処理装置のユーザインタフェースを介して抽出条件の入力を受け付け、受け付けた前記抽出条件を設定する第1設定処理と、前記ユーザインタフェースを介してソート条件の入力を受け付け、受け付けた前記ソート条件を設定する第2設定処理と、画像読取装置から画像を取得する取得処理と、を実行させ、前記画像読取装置は、前記情報処理装置からスキャンコマンドを受信すると、セットされた複数の原稿を1枚ずつ読み取り、読み取った前記原稿ごとの画像を前記情報処理装置に送信し、さらに前記コンピュータに、前記画像読取装置によって読み取られた前記原稿ごとの前記画像を受信することで、前記取得処理にて前記画像読取装置から複数の前記画像を取得した場合に、受信した複数の前記画像から、前記第1設定処理にて設定された前記抽出条件を満たす第1画像を抽出する抽出処理と、前記抽出処理にて抽出された複数の前記第1画像を、前記第2設定処理にて設定された前記ソート条件に従って並べ替えるソート処理と、前記ソート処理にて並べ替えられた前記第1画像を纏めた第1画像データを生成する生成処理と、を実行させる、ことを特徴としている。
【0007】
本明細書に開示されるプログラムを実行することにより、情報処理装置は、画像読取装置から取得した複数の画像から、ユーザによって設定された抽出条件によって第1画像を抽出し、ユーザによって設定されたソート条件に従って第1画像を並べ替え、並べ替えられた第1画像を纏めた第1画像データを生成する。これにより、ユーザが原稿を並べ替えることなく原稿をセットしたとしても、抽出条件とソート条件に基づいて画像データが生成されることから、ユーザが事前に原稿を並べ替える手間を省くことができる。
【0008】
上記プログラムの処理を実行するデバイス、プログラムの機能を実現するための制御方法、および当該プログラムを格納するコンピュータにて読取可能な記憶媒体も、新規で有用である。
【発明の効果】
【0009】
本発明によれば、複数の画像を抽出条件ごとに纏めた画像データを生成する場合において、ユーザの原稿セットにかかる手間を軽減するための技術が実現される。
【図面の簡単な説明】
【0010】
図1】実施の形態にかかるスキャンシステムの概略構成図である。
図2】スキャン処理の手順を示すフローチャートである。
図3】Nin1条件設定画面の例を示す説明図である。
図4】会社名編集画面の例を示す説明図である。
図5】グルーピング処理の手順を示すフローチャートである。
図6】ヘッダ情報および配置情報の例を示す説明図である。
図7】配置処理の手順を示すフローチャートである。
図8】配置結果の例を示す説明図である。
図9】配置結果の例を示す説明図である。
【発明を実施するための形態】
【0011】
以下、スキャンシステムを具体化した実施の形態について、添付図面を参照しつつ詳細に説明する。本形態は、パーソナルコンピュータ(以下、「PC」とする)とそのPCに接続されるスキャナとを含むスキャンシステムを開示するものである。
【0012】
本形態のスキャンシステム100は、図1に示すように、PC1と、スキャナ3と、を含み、これらが互いに接続されたシステムである。PC1は、少なくともスキャナ3との通信機能を備え、スキャナ3へのスキャンコマンドの送信、スキャナ3から読取結果であるスキャンデータの受信、等を行う装置である。PC1は、情報処理装置の一例であり、デバイスの一例である。PC1に代えて、例えば、スマートフォン、タブレットコンピュータであってもよい。
【0013】
本形態のPC1は、図1に示すように、CPU11と、メモリ12と、を含むコントローラ10を備えている。また、PC1は、ユーザインタフェース(以下、「ユーザIF」とする)13と、通信インタフェース(以下、「通信IF」とする)14と、を備え、これらがコントローラ10に電気的に接続されている。なお、図1中のコントローラ10は、PC1の制御に利用されるハードウェアやソフトウェアを纏めた総称であって、実際にPC1に存在する単一のハードウェアを表すとは限らない。
【0014】
CPU11は、メモリ12から読み出したプログラムに従って、また、ユーザの操作に基づいて、各種の処理を実行する。CPU11は、コンピュータの一例である。メモリ12は、PC1を起動するための起動プログラム、スキャナ3を使用するための各種のアプリケーションプログラム(以下、「アプリ」とする)等の各種のプログラムや、画像データ、文書データ等の各種のデータが記憶される記憶領域である。メモリ12は、各種の処理が実行される際の作業領域としても利用される。
【0015】
本形態のPC1のメモリ12には、図1に示すように、OS21と、スキャンアプリ22と、スキャナドライバ23と、会社名データベース(以下、「会社名DB」とする)24と、人名データベース(以下、「人名DB」とする)25と、が記憶されている。OS21は、例えば、Windows(登録商標)、macOS(登録商標)、Linux(登録商標)、iOS(登録商標)、Android(登録商標)である。
【0016】
スキャンアプリ22は、例えば、スキャンを実行させる装置の指定、スキャンデータの保存形式や保存場所の指定、スキャン実行の指示等のユーザの指示を受け付けるプログラムである。スキャンアプリ22は、さらに、スキャナから受信したスキャンデータに基づいて、画像の編集の指示を受け付けても良い。
【0017】
スキャナドライバ23は、スキャナ3の動作を制御するプログラムであり、スキャンに関する各種の設定を受け付ける。スキャナドライバ23は、スキャナ3のモデルに対応したプログラムであり、例えば、スキャンアプリ22にてスキャナ3でのスキャンの実行指示を受け付けた場合に、スキャンアプリ22によって起動される。スキャナドライバ23は、プログラムの一例である。スキャナドライバ23は、スキャンアプリ22の一部であっても良い。
【0018】
本形態のスキャナドライバ23は、スキャナ3から受信した複数のスキャンデータに基づいて、所定の条件に基づいて抽出した複数のスキャンデータを集約し、1つに纏めた画像データを生成するNin1機能を有する。例えば、経理関係の書類などの多数の書類を管理するユーザは、各書類をスキャンして取得した画像データやコピーを作成して、管理あるいは提出する場合がある。領収書や納品書などの経理関係の書類はA4サイズ等よりも小さいものが多く、複数の書類を纏めた1つの画像データを生成する、あるいは、1枚に纏めてコピーすることで、管理が容易になる。本形態のスキャナドライバ23は、Nin1機能を実行させる指示であるNin1指示を受け付ける。なお、本形態でのNin1指示は、画像を縮小せずに纏める指示であり、Nは固定値ではなく、読み取った画像の枚数等によって決まる可変値である。
【0019】
スキャナドライバ23は、Nin1機能に関する詳細な設定であるNin1設定として、同じ1枚に纏める画像の条件を受け付ける。会社名DB24と人名DB25とは、画像の条件としてユーザによる入力を受け付けた情報であり、会社名DB24は会社名として登録された情報を、人名DB25は人名として登録された情報を、それぞれ含む。スキャナドライバ23は、Nin1設定にて画像の条件を受け付ける際に、会社名DB24または人名DB25を参照する場合がある。
【0020】
メモリ12の一例は、PC1に内蔵されるROM、RAM、HDD等に限らず、CPU11が読み取り可能かつ書き込み可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、non-transitoryな媒体である。non-transitoryな媒体には、上記の例の他に、CD-ROM、DVD-ROM等の記録媒体も含まれる。また、non-transitoryな媒体は、tangibleな媒体でもある。一方、インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、non-transitoryなコンピュータが読み取り可能なストレージ媒体には含まれない。
【0021】
ユーザIF13は、情報を報知するための画面を表示するハードウェアと、ユーザによる操作を受け付けるハードウェアと、を含む。ユーザIF13は、表示機能と操作受け付け機能とを有するタッチパネルであっても良いし、表示機能を有するディスプレイと、操作受け付け機能を有するキーボード、マウス、トラックボール等との組であっても良い。
【0022】
通信IF14は、スキャナ3等の外部装置と通信を行うためのハードウェアを含む。通信IF14の通信規格は、イーサネット(登録商標)、Wi-Fi(登録商標)、USB等である。通信IF14は、複数の通信規格に対応する複数の構成を含んでいても良い。
【0023】
本形態のスキャナ3は、PC1との通信機能と、原稿の画像を読み取ってスキャンデータを生成する画像読取機能と、を有する装置である。スキャナ3は、画像読取装置の一例である。本形態のスキャナ3は、図1に示すように、自動原稿搬送装置(以下、「ADF」とする)31を備え、ADF31にセットされた複数枚の原稿束から原稿を1枚ずつ自動的に搬送して、連続して読み取ることができる。スキャナ3は、スキャン単機能の装置に限らず、例えば、複合機、コピー機、FAX装置であってもよい。
【0024】
本形態のスキャナ3のADF31は、様々なサイズの原稿が重なった原稿束を受け付け可能である。また、スキャナ3は、スキャンした原稿のサイズを取得する機能を有している。スキャナ3は、原稿のサイズを取得する指示であるオートサイズの指定を含むスキャンコマンドを受信した場合、原稿1枚ごとのスキャンデータに原稿のサイズを示す原稿サイズ情報を付加して送信する。原稿サイズ情報には、原稿の搬送方向のサイズを示す原稿長さ情報と、原稿の搬送方向に直交する方向のサイズを示す原稿幅情報と、が含まれる。
【0025】
次に、スキャナドライバ23による処理について説明する。なお、以下の処理は、基本的に、プログラムに記述された命令に従ったCPU11の処理を示す。すなわち、以下の説明における「判断」、「抽出」、「選択」、「算出」、「決定」、「特定」、「取得」、「受付」、「制御」等の処理は、CPU11の処理を表している。CPU11による処理は、OSのAPIを用いたハードウェア制御も含む。本明細書では、OSの記載を省略して各プログラムの動作を説明する。すなわち、以下の説明において、「プログラムBがハードウェアCを制御する」という趣旨の記載は、「プログラムBがOSのAPIを用いてハードウェアCを制御する」ことを指してもよい。また、プログラムに記述された命令に従ったCPU11の処理を、省略した文言で記載することがある。例えば、「CPU11が行う」のように記載することがある。また、プログラムに記述された命令に従ったCPU11の処理を、「プログラムAが行う」のようにCPUを省略した文言で記載することがある。
【0026】
なお、「取得」は要求を必須とはしない概念で用いる。すなわち、CPU11が要求することなくデータを受信するという処理も、「CPUがデータを取得する」という概念に含まれる。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。また、「要求する」、「指示する」とは、要求していることを示す情報や、指示していることを示す情報を相手に出力することを示す概念である。また、要求していることを示す情報や指示していることを示す情報のことを、単に、「要求」、「指示」とも記載する。
【0027】
また、CPU11による、情報Aは事柄Bであることを示しているか否かを判断する処理を、「情報Aから、事柄Bであるか否かを判断する」のように概念的に記載することがある。CPU11による、情報Aが事柄Bであることを示しているか、事柄Cであることを示しているか、を判断する処理を、「情報Aから、事柄Bであるか事柄Cであるかを判断する」のように概念的に記載することがある。
【0028】
以下、本形態のスキャンシステム100において、PC1にて実行されるスキャン処理の手順について、図2のフローチャートを参照して説明する。スキャン処理は、スキャンアプリ22等にてスキャナ3によるスキャンの実行指示を受け付けたことを契機に、PC1のCPU11にて実行される。本形態のスキャン処理は、スキャナドライバ23による処理である。
【0029】
スキャン処理では、CPU11は、スキャン設定を取得する(S101)。スキャン設定は、スキャンの実行指示を受け付ける前にスキャンアプリ22またはスキャナドライバ23にて設定されている各種のパラメータであり、ユーザの操作等に基づいて設定されている。
【0030】
スキャン設定の受け付けについて説明する。本形態のスキャナドライバ23は、スキャン設定としてNin1が選択された場合、例えば、図3に示すように、Nin1の詳細な設定であるNin1設定を受け付けるNin1条件設定画面50をユーザIF13に表示させ、ユーザの入力を受け付ける。図3に示すNin1条件設定画面50には、キャンバスサイズ51と、グルーピング条件52と、ソート条件53と、のそれぞれについてユーザの入力を受け付ける入力欄が含まれる。図3は、第1設定処理および第2設定処理の一例である。
【0031】
キャンバスサイズ51は、グループに纏められた複数の画像を配置する1枚のキャンバスのサイズを示す情報である。キャンバスサイズは、印刷を実行する場合には、印刷用紙のサイズとなる。キャンバスサイズの情報には、例えば、キャンバスの幅と高さの各サイズ、各画像間の距離であるスペースのサイズ、の情報が含まれる。
【0032】
グルーピング条件52は、スキャンデータをグループに分類する際の条件を示す情報である。スキャナドライバ23は、グルーピング条件52に基づいて、複数の原稿の画像をグルーピングし、グループごとに1つの画像に纏めるNin1を実行する。グルーピング条件52には、例えば、図3に示すように、書類の種類、会社名、人名、日付の項目がある。スキャナドライバ23は、1以上の項目の選択を受け付け、選択された各項目について、さらに具体的な抽出条件の指定を受け付ける。抽出条件は、例えば、具体的な書類名、会社名、人名、を示すテキストである。
【0033】
スキャナドライバ23は、グルーピング条件52として、いずれかの項目が選択された場合、その項目に登録されている抽出条件を表示し、ユーザの指定を受け付ける。スキャナドライバ23は、例えば、会社名の項目が選択された場合、会社名DB24に登録されている全ての会社名を読み出し、図3に示すように、ユーザIF13に一覧表示させて、ユーザの選択を受け付ける。スキャナドライバ23は、人名の項目が選択された場合、人名DB25に登録されている全ての人名を読み出し、ユーザの選択を受け付ける。
【0034】
なお、スキャナドライバ23は、会社名DB24や人名DB25の編集も受け付ける。スキャナドライバ23は、例えば、図3に示すように、会社名の一覧表示にて編集ボタン521を表示させ、編集ボタン521の操作を受け付けた場合、図4に示すように、会社名編集画面60を表示させる。会社名編集画面60には、テキスト入力欄61と追加ボタン62とが含まれる。スキャナドライバ23は、テキスト入力欄61にテキストが入力され、追加ボタン62への操作を受け付けた場合、入力されたテキストを会社名DB24に登録する。図4は、登録処理の一例である。人名についても同様である。会社名DB24に登録された会社名や人名DB25に登録された人名は、グルーピング条件52の抽出条件として一覧表示に表示され、ユーザの選択が可能となる。
【0035】
なお、予めスキャナドライバ23に記憶されている抽出条件があっても良い。例えば、スキャナドライバ23は、書類の種類の項目の抽出条件として、請求書、領収書、納品書、Invoice等のテキストを予めメモリ12に記憶していても良い。あるいは、スキャナドライバ23は、書類の種類の項目の抽出条件についてもDBを備え、ユーザの入力を受け付けても良い。
【0036】
また、スキャナドライバ23は、日付の記載パターンを複数記憶しており、日付の項目が選択された場合、その記載パターンに当てはまる文字列を画像中から抽出し、抽出した文字列に基づいて日付の情報を取得する。日付の記載パターンとしては、例えば、算用数字による表記として、yyyy/mm/dd、mm dd yyyy、dd-mm-yyyy、令和x年mm月dd日、があり、さらに、Jan等の文字による月表記、漢数字による表記、がある。なお、日付の項目の抽出条件は、所定の月や日等の指定を受け付け、指定された月や日に該当するか否かでグルーピングしても良いし、月分類や日分類等のグルーピングする単位の指定を受け付け、指定された単位でグルーピングしても良い。
【0037】
ソート条件53は、グルーピング条件52によって分類された各グループ内で、画像を配置する順序を決定する条件を示す情報である。スキャナドライバ23は、ソート条件53として、例えば、年、月、日、による昇順または降順のソートの他、ソートしない条件も受け付ける。また、スキャナドライバ23は、ソート条件53を、重複して選択できないラジオボタンによる形式で受け付ける。なお、グルーピング条件52として日付の項目が選択された場合、ソート条件53としては、グルーピング条件52にて指定された抽出条件よりも短い時間の単位でのみ受け付けるとしても良い。
【0038】
図2のスキャン処理の説明に戻る。スキャン処理では、CPU11は、S101にて取得したスキャン設定にNin1の指示が含まれているか否かを判断する(S102)。Nin1が含まれていないと判断した場合(S102:NO)、CPU11は、通常のスキャンの処理を行う(S103)。通常のスキャンとは、1枚の原稿ごとに1つの画像データを生成する処理であり、既存の技術であるので説明を省略する。
【0039】
Nin1が含まれていると判断した場合(S102:YES)、CPU11は、オートサイズの指定を付加したスキャンコマンドを生成し(S105)、生成したスキャンコマンドをスキャナ3に送信する(S106)。
【0040】
スキャナ3は、受信したスキャンコマンドに基づいて、ADF31にセットされた原稿を1枚ずつスキャンし、スキャンデータと原稿サイズ情報とをPC1に送信する。なお、スキャナ3は、1枚の原稿をスキャンするごとにスキャンデータを送信してもよいし、複数枚の原稿のスキャンデータを纏めて送信してもよい。スキャナ3は、ADF31にセットされた全ての原稿のスキャンが終了すると、終了情報をPC1に送信する。
【0041】
スキャナ3は、継続スキャン機能を有しても良い。継続スキャン機能を有するスキャナ3は、ADF31にセットされた全ての原稿のスキャンが終了した後、継続するか終了するかの指示を受け付ける。継続の指示を受け付けた場合、スキャナ3は、新たにADF31にセットされた原稿をさらにスキャンし、スキャンデータと原稿サイズ情報とを継続してPC1に送信する。この場合、スキャナ3は、終了の指示を受け付けた後、終了情報をPC1に送信する。
【0042】
CPU11は、スキャナ3から終了情報を受信したか否かを判断する(S107)。終了情報を受信していないと判断した場合(S107:NO)、CPU11は、スキャナ3からスキャンデータと原稿サイズ情報とを受信し(S108)、受信した情報を順次、テンポラリファイルとして保存する(S109)。S108は、取得処理の一例である。テンポラリファイルとして保存することで、RAMの容量による制限を受け難い。終了情報を受信したと判断した場合(S107:YES)、CPU11は、グルーピング処理を実行する(S111)。
【0043】
グルーピング処理は、Nin1設定にてグルーピング条件52として指定された各抽出条件に一致する文字列が含まれる画像を、それぞれ1つのグループとして、複数のスキャンデータをグループに纏める処理である。グルーピング処理の手順について、図5のフローチャートを参照して説明する。以下では、図3に示したように、会社名(A社、B社)および月単位でグルーピングし、かつ、日順でソートする指示を受けた場合の例を用いて説明する。
【0044】
グルーピング処理では、CPU11は、テンポラリファイルを1つずつ読み出し(S201)、読み出したテンポラリファイルの画像を、含まれる文字の向きが揃うように回転させる(S202)。S202は、回転処理の一例である。CPU11は、例えば、画像から抽出される文字の言語によって原稿の向きを解析し、画像の向きが一方向に揃うように回転させる。また、CPU11は、画像の回転に合わせて、必要に応じて、原稿サイズ情報の原稿長さ情報と原稿幅情報とを変更する。文字の向きを揃えることで、出力される画像が見やすいものとなる。なお、文字の向きを揃えるか否かをユーザに問い合わせてもよい。
【0045】
そして、CPU11は、回転後のテンポラリファイルの画像に文字認識(OCR)処理を施し、画像に含まれる文字列を取得する(S203)。さらに、CPU11は、取得した文字列から、グルーピング条件52にて指定されている抽出条件やソート条件53にて指定されているソート条件に、該当する文字列を抽出する(S204)。CPU11は、取得した文字列から「A社」または「B社」を示すテキスト、および、日付を示していると判断できる文字列、の抽出を試行する。
【0046】
CPU11は、グルーピング条件52を満たす文字列が抽出されたか否かを判断する(S205)。具体的には、CPU11は、グルーピング条件52として指定されている抽出条件のうちの、少なくとも1つと一致する文字列が抽出されたか否かを判断する。S205は、抽出処理の一例である。抽出条件と一致する文字列が抽出されたと判断した場合(S205:YES)、CPU11は、抽出された文字列を含むグルーピング情報をテンポラリファイルのヘッダ情報に格納する(S206)。
【0047】
CPU11は、例えば、1枚目の画像のテンポラリファイルの画像に、A社を示す文字列とX月を示す日付の情報とが含まれると判断した場合、図6に示すように、グルーピング情報として「A社X月」の情報をヘッダ情報に格納する。抽出条件と一致する文字列が抽出された画像は、第1画像の一例である。グルーピング情報は、抽出情報の一例であり、グルーピング情報を含むヘッダ情報は、ページ情報の一例である。
【0048】
さらに、CPU11は、ソート条件53にて指定されている条件に該当する文字列が抽出されたか否かを判断する(S207)。抽出されたと判断した場合(S207:YES)、CPU11は、ソート情報としてヘッダ情報に付加する(S208)。例えば、同じ1枚目の画像に、P日を示す日付の情報が含まれる場合、図6に示すように、ソート情報として「P日」の情報をヘッダ情報に付加する。なお、ソート条件53の指定を受け付けていない場合には、ソート情報は空欄のままとなる。
【0049】
一方、グルーピング条件52の抽出条件と一致する文字列が抽出されなかったと判断した場合(S205:NO)、CPU11は、テンポラリファイルの画像の特徴量を抽出する(S211)。抽出条件と一致する文字列が抽出されなかった画像は、第2画像の一例であり、S211は、特徴取得処理の一例である。なお、Nin1設定としてグルーピング条件52が指定されていない場合、CPU11は、全てのテンポラリファイルについてS211を実行する。
【0050】
CPU11は、特徴量として、例えば、原稿のサイズ、画像に含まれるマークや枠線等の部分画像の情報、画像に含まれる色の情報、を抽出する。スキャナドライバ23は、特徴量として使用する情報の種類に関するユーザの選択を受け付けても良い。例えば、特徴量として原稿のサイズを用いる場合、CPU11は、原稿のサイズの情報を、スキャンデータに添付されてスキャナ3から受信した原稿サイズ情報に基づいて取得する。
【0051】
CPU11は、抽出された特徴量を示す情報を、グルーピング情報として、テンポラリファイルのヘッダ情報に付加する(S212)。例えば、テンポラリファイルの原稿サイズが縦Hmm横Wmmであれば、グルーピング情報として、「原稿サイズH×W」の情報をヘッダ情報に付加する。同じ特徴量を含む画像であれば、同じグルーピング情報が付加される。例えば、同じサイズの原稿の画像には、同じグルーピング情報が付加される。グルーピング情報が特徴量を示す情報である場合、グルーピング情報は、分類条件の一例である。
【0052】
なお、特徴量として部分画像の情報や色の情報を用いる場合、CPU11は、例えば、画像の局所的な特徴を抽出する既存のプログラムを用いても良い。また、抽出された特徴量と抽出条件との関係を、例えば、機械学習によってスキャナドライバ23に学習させても良い。そして、CPU11は、特徴量と抽出条件とを示す情報をメモリ12に保存し、次回以降のスキャン時に抽出条件として利用しても良い。部分画像の情報や色の情報は、画像的特徴の一例である。
【0053】
S212の後、CPU11は、S207に進んで、ソート条件53にて指定されている条件に該当する文字列が抽出されたか否かを判断する。なお、グルーピング条件52が指定されておらず、ソート条件53のみが指定されている場合、CPU11は、ソート条件53として指定されている時間の単位より長い単位の時間でグルーピングしても良い。CPU11は、例えば、ソート条件53として日にちが指定されている場合、月単位でグルーピングしても良い。また、グルーピング条件52としてグルーピングしない指示を受け付けても良く、その場合、CPU11は、S211とS212とをスキップして、特徴量の抽出を行わない。
【0054】
S208の後、または、ソート条件53に該当する文字列が抽出されなかったと判断した場合(S207:NO)、CPU11は、全てのテンポラリファイルについて処理が終了したか否かを判断する(S215)。終了していないと判断した場合(S215:NO)、CPU11は、S201に戻って、次のテンポラリファイルを読み出し、同様に処理を行う。
【0055】
全てのテンポラリファイルについて処理が終了したと判断した場合(S215:YES)、CPU11は、各テンポラリファイルの配置情報を決定する。CPU11は、まず、グループごとの順序を示すページ番号を付与する(S221)。具体的には、CPU11は、ヘッダ情報に付加されているグルーピング情報が共通のテンポラリファイルは同じ番号であって、グルーピング情報が異なるテンポラリファイルは異なる番号となるように、順にページ番号を付与する。例えば、図6に示すように、ヘッダ情報に「A社X月」が記憶されているすべてのテンポラリファイルにグループ順「1」のページ番号を付与する。
【0056】
また、グルーピング情報が共通の特徴量であれば、CPU11は、共通のページ番号を付与する。CPU11は、例えば、グルーピング情報として所定の部分画像の情報が付加されている画像に、共通のページ番号を付与する。この場合、S221は、分類処理の一例である。なお、本形態では、CPU11は、グルーピング情報が原稿サイズ情報である場合、ある程度の誤差を許容する。CPU11は、例えば、原稿のサイズが縦横ともに所定範囲内であれば、同じページ番号を付与する。さらに、CPU11は、グルーピング情報が付加されていない全ての画像にも、グルーピングされた画像とは異なるページ番号であって、共通のページ番号を付与する。
【0057】
さらに、CPU11は、ヘッダ情報のソート条件の情報に基づいて、グループ内での配置の順序を決定する(S222)。CPU11は、例えば、日にちの昇順でのソートが指定されており、P<Q<Rとすると、図6に示すように、同じグループの1枚目と4枚目の画像について、ソート情報としてP日が記憶されている1枚目の画像を先順とし、ソート情報としてR日が記憶されている4枚目の画像を後順とする。CPU11は、各画像の順序を決定した後、グルーピング処理を終了して、スキャン処理に戻る。
【0058】
なお、グルーピング条件52とソート条件53とのいずれも指定されていない場合、CPU11は、OCRを行う必要はない。また、スキャナドライバ23は、Nin1設定として、グルーピング条件52やソート条件53を受け付けないものであっても良く、その場合もOCRを行う必要はない。OCRを行わないグルーピング処理では、CPU11は、S201の後、S211に進み、読み出したテンポラリファイルについて、特徴量を抽出する。この場合、グルーピング処理のS202~S208は、無くても良い。
【0059】
図2のスキャン処理の説明に戻る。S111のグルーピング処理が終了した後、CPU11は、配置処理を実行する(S112)。配置処理は、グルーピング処理にて決定されたグループと順序の情報に基づいて、各テンポラリファイルの画像を纏めて配置した画像データを生成する処理である。
【0060】
配置処理の手順について、図7のフローチャートを参照して説明する。配置処理では、CPU11は、まず、Nin1条件設定画面50(図3参照)にて受け付けたキャンバスサイズを取得する(S301)。そして、CPU11は、各画像に付与された配置情報に基づいて、ページ番号ごとに纏めた画像データを生成する。
【0061】
そのために、CPU11は、まず、グループ内の順序が1の画像をキャンバスの左上の位置に配置する(S302)。次に、CPU11は、同じページ番号であって次順の画像を、前の画像の後ろに配置する(S303)。Nin1条件設定画面50のキャンバスサイズ51にて、0より大きいスペースが設定されている場合には、CPU11は、前の画像との間にスペースを空けて配置する。S303にて画像を順に配置する処理は、ソート処理の一例である。
【0062】
例えば、図6に示した配置情報の例では、図8に示すように、1ページ目のキャンバスには、1枚目の画像と4枚目の画像とが配置される。なお、図8では、1枚目の画像の右隣に4枚目の画像を配置している、すなわち、横方向優先での配置となっているが、縦方向優先での配置であってもよく、配置方向についてもユーザの指定を受け付けてもよい。
【0063】
CPU11は、S303にて配置した画像が、キャンバス内に入ったか否かを判断する(S304)。キャンバス内に入ったと判断した場合(S304:YES)、CPU11は、同じグループでさらに次の画像が有るか否かを判断する(S305)。次の画像が有ると判断した場合(S305:YES)、CPU11は、S303に進み、次の画像をさらに配置する。
【0064】
S303にて配置した画像が、キャンバス内に入らなかったと判断した場合(S304:NO)、CPU11は、S303にて配置した画像を除いて、キャンバスに配置された画像を纏めて画像データを作成する(S311)。そして、CPU11は、次のキャンバスを用意し(S312)、S302に進んで、S303にて配置しようとした画像を新たなキャンバスの左上に配置する。同じグループの画像がさらに有れば、CPU11は、新たなキャンバスに続けて配置する。
【0065】
また、同じグループの次の画像が無いと判断した場合(S305:NO)、CPU11は、キャンバスに配置されている画像を纏めて画像データを作成し、S311にて作成した画像データと纏めて画像ファイルを作成する(S315)。S311およびS315は、生成処理の一例であり、S311やS315にて生成される画像データは、第1画像データまたは第2画像データの一例である。
【0066】
これにより、例えば、図8に示すように、各画像が配置された複数のページの画像データが作成される。CPU11は、PDF、JPEG、BMP、等の形式の画像ファイルを作成し、そのグループのグルーピング情報を作成した画像ファイルの名称とする。なお、CPU11は、各ページの画像データを纏めて複数ページの1つの画像ファイルとしてもよいし、ページごとに画像ファイルを作成して複数の画像ファイルとしてもよい。また、ファイル構成についても、Nin1設定にてユーザの指示を受け付けてもよい。
【0067】
さらに、CPU11は、全てのグループについて、画像ファイルの作成が終了したか否かを判断する(S316)。終了していないと判断した場合(S316:NO)、CPU11は、S302に進み、次のキャンバスを用意して、次のグループの画像を配置する。
【0068】
そして、全てのグループについて、画像ファイルの作成が終了したと判断した場合(S316:YES)、CPU11は、配置処理を終了して、スキャン処理に戻る。なお、CPU11は、配置処理によって画像ファイルを作成した後、全てのテンポラリファイルを削除する。
【0069】
なお、前述したように、グルーピング条件52が指定されていないNin1設定の場合、CPU11は、各画像の特徴量をグルーピング情報とした。特徴量によって分類された画像を纏めた画像データは、分類画像データの一例である。例えば、特徴量として原稿サイズ情報を用いた場合、図9に示すように、同じサイズの原稿を纏めた画像データが生成される。このようにすれば、図8の例に比較して、空白の少ないデータとなる可能性が高い。単に、複数の原稿を纏めてコピーしたい場合などに好適である。
【0070】
図2のスキャン処理の説明に戻る。S112の配置処理が終了した後、または、S103の後、CPU11は、生成した画像データを出力して(S115)、スキャン処理を終了する。S115は、出力処理の一例である。CPU11は、ユーザの指定に基づいて、所定のフォルダにファイルを保存するか、または画像データの印刷を行う。なお、CPU11は、グルーピング条件の一部によるフォルダ分けの指示を受け付けてもよい。CPU11は、例えば、会社名ごとのフォルダを作成して、その会社名を名称に含むファイルをそのフォルダに保存してもよい。
【0071】
なお、本形態では、PC1が備えるスキャナドライバ23の処理として説明したが、例えば、スキャナ3自身が、Nin1機能を備えていても良い。つまり、スキャナ3が、自身のユーザIFを介して、Nin1設定を含むスキャン設定の入力を受け付けても良い。このようなスキャナ3は、自身のユーザIFを介してスキャン指示を受け付けた場合、原稿を読み取って画像を取得し、自身のユーザIFを介して受け付け済みのスキャン設定に基づいて画像データを生成する。受け付け済みのスキャン設定にNin1設定が含まれていれば、スキャナ3は、複数の原稿を読み取った画像を纏めた画像データを生成する。この場合、スキャナ3は、デバイスの一例であり、原稿を読み取って画像を取得する処理は、画像取得処理の一例である。
【0072】
以上、詳細に説明したように、本形態のスキャンシステム100によれば、PC1は、スキャナドライバ23によって、スキャナ3から取得した複数のスキャンデータのうち、グルーピング条件52として選択された抽出条件を含む画像を、ソート条件53にて指定された順序で並べ替えた画像データを生成する。従って、ユーザが事前に原稿を並べ替える手間を省くことができる。
【0073】
さらに、本形態では、テキストによる抽出条件の入力を受け付けるので、ユーザが抽出条件を設定し易い。また、入力されたテキストをメモリ12の会社名DB24や人名DB25に登録しておき、抽出条件の設定の際、その登録されたテキストから選択させるので、同じ抽出条件を設定する際、同じテキストの入力の手間を省くことができ、同じ抽出条件を再利用することが容易になる。
【0074】
さらに、本形態では、複数の画像の向きを揃えるので、生成された画像データの見栄えが良くなる。また、ユーザが事前に原稿の向きを揃える手間を省くことができる。
【0075】
さらに、本形態では、抽出条件に一致する文字列が抽出されなかった画像を纏めた画像データも生成する。その場合、特徴量を抽出し、特徴量に基づいて自動的に分類するので、読み取った画像が無駄になることを回避でき、画像データをユーザが利用し易い。特に、本形態では、特徴量として原稿サイズの情報や部分画像の情報を利用できる。原稿サイズや部分画像は書類の種類によって異なる傾向にあることから、これらの情報に基づいて分類することで、適切な分類が期待できる。
【0076】
なお、本実施の形態は単なる例示にすぎず、本発明を何ら限定するものではない。したがって本発明は当然に、その要旨を逸脱しない範囲内で種々の改良、変形が可能である。例えば、スキャンシステム100を構成するPCやスキャナは、1台に限らず、複数台有ってもよい。
【0077】
また、本形態では、画像の縮小は行わないとしたが、縮小しても良い。例えば、同じグループの全ての画像が、指定されたキャンバスサイズに入るように、画像の縮小を行っても良い。また、キャンバスサイズは、全てのページで一律であるとしたが、可変であっても良い。つまり、画像を縮小せずキャンバスサイズを大きくして、同じグループの全ての画像が1つのキャンバスに入るように配置しても良い。
【0078】
また、本形態では、グルーピング条件52の抽出条件に該当する文字列が抽出されなかった場合、特徴量を抽出するとしたが、特徴量の抽出はしなくても良い。例えば、抽出条件に該当する文字列が抽出されなかった画像を、1つのグループとして纏めてファイルを作成しても良い。この場合、グルーピング処理のS211とS212とは無くてよく、S205にてNOと判断した場合、CPU11は、S207に進む。
【0079】
また、本形態では、特徴量として、原稿サイズと部分画像との両方を抽出可能であるとしたが、いずれか一方のみでも良い。例えば、部分画像のみを特徴量として用いる場合、原稿サイズの情報を取得しなくても良いことから、スキャンコマンドにオートサイズの指定を付加する必要はない。
【0080】
また、本形態では、全てのスキャンデータを受信してからグルーピングとソートとを行うとしたが、スキャンデータの受信とグルーピング処理とを並行して行っても良い。つまり、グルーピング処理のS201~S208およびS211~S212は、受信したスキャンデータに対して、順次実行しても良い。また、テンポラリファイルとして保存する前に原稿の向きを揃える処理を行っても良い。
【0081】
また、例えば、スキャナ3は、ADF31を備えていないものでも良い。その場合、ユーザは、原稿台に1枚ずつ原稿をセットしてスキャン実行指示を行う必要があるが、原稿の順序や向きを揃える必要はない。また、スキャナ3は、オートサイズの機能を備えていなくても良い。
【0082】
また、実施の形態に開示されている任意のフローチャートにおいて、任意の複数のステップにおける複数の処理は、処理内容に矛盾が生じない範囲で、任意に実行順序を変更できる、または並列に実行できる。
【0083】
また、実施の形態に開示されている処理は、単一のCPU、複数のCPU、ASICなどのハードウェア、またはそれらの組み合わせで実行されてもよい。また、実施の形態に開示されている処理は、その処理を実行するためのプログラムを記録した記録媒体、または方法等の種々の態様で実現することができる。
【符号の説明】
【0084】
1 PC
3 スキャナ
11 CPU
12 メモリ
13 ユーザIF
図1
図2
図3
図4
図5
図6
図7
図8
図9