(57)【要約】【課題】  ＯＣＲの誤認識部分およびその周囲のテキストに基づき学習したニューラルネットワークを用いて、ＯＣＲによって得られたテキストを補正する画像処理システムを提供する。【解決手段】  画像処理システム（１００）は、印刷データ（３０１）から抽出した正解テキスト（３０５）および印刷データを基に生成され画像（３０３）にＯＣＲ処理を施して取得したＯＣＲテキスト（３０４）の対である学習データ（３０６）に基づきニューラルネットワークを学習し、処理対象画像からＯＣＲテキスト（１００１）を取得し、ニューラルネットワークにこのＯＣＲテキストを入力することで、テキストＡＩ補正の結果（１００４）を取得する。【選択図】  図１
2020102166.tif 000002
【特許請求の範囲】
【請求項１】
印刷データに含まれる第１のテキスト情報および前記印刷データに基づく画像にＯＣＲ処理を施して取得した第２のテキスト情報が対応付けられた学習データに基づき学習したニューラルネットワークモデルを取得する手段と、
読取画像を取得する手段と、
前記読取画像にＯＣＲ処理を施すことで生成される第３のテキスト情報を取得する手段と、
前記ニューラルネットワークモデルに基づいて、前記第３のテキスト情報の入力にしたがい第４のテキスト情報を出力する手段と、を有することを特徴とする画像処理システム。
【請求項２】
前記学習データに基づいて前記ニューラルネットワークモデルを学習させる手段を有することを特徴とする請求項１に記載の画像処理システム。
【請求項３】
前記第１のテキスト情報および前記第２のテキスト情報に基づいて前記学習データを生成する手段を有することを特徴とする請求項１または２に記載の画像処理システム。
【請求項４】
前記印刷データに基づいて前記第１のテキスト情報および前記第２のテキスト情報を生成する手段を有すること特徴とする請求項１乃至３のいずれか１項に記載の画像処理システム。
【請求項５】
前記印刷データのうちの１ページ分の情報に基づき複数の学習データが生成されることを特徴とする請求項１乃至４のいずれか１項に記載の画像処理システム。
【請求項６】
前記第１のテキスト情報と前記第２のテキスト情報は互いの関係が所定の条件を満たす組み合わせであることを特徴とする請求項１乃至５のいずれか１項に記載の画像処理システム。
【請求項７】
前記所定の条件は、所定の方法で算出される類似度が所定値以上であることを特徴とする請求項６に記載の画像処理システム。
【請求項８】
前記印刷データはＰＤＬ形式のデータであることを特徴とする請求項１乃至７のいずれか１項に記載の画像処理システム。
【請求項９】
少なくとも前記第４のテキスト情報に基づくデータを所定の宛先に送信する手段を有することを特徴とする請求項１乃至８のいずれか１項に記載の画像処理システム。
【請求項１０】
前記所定の宛先はＥメールアドレスで指定される宛先であるであることを特徴とする請求項９に記載の画像処理システム。
【請求項１１】
前記所定の宛先はローカルストレージに確保される記憶領域であることを特徴とする請求項９に記載の画像処理システム。
【請求項１２】
前記所定の宛先はクラウドサーバであることを特徴とする請求項９に記載の画像処理システム。
【請求項１３】
前記所定の宛先はネットワーク接続された他の装置が提供する共有フォルダであることを特徴とする請求項９に記載の画像処理システム。
【請求項１４】
前記第４のテキスト情報に基づくデータはＰＤＦ形式のデータであることを特徴とする請求項９乃至１３のいずれか１項に記載の画像処理システム。
【請求項１５】
前記ＰＤＦ形式のデータは検索可能な文字情報を含むことを特徴とする請求項１４に記載の画像処理システム。
【請求項１６】
外部装置から受信した印刷データを学習データの生成に用いる決定をおこなう決定手段を有することを特徴とする請求項１乃至１５のいずれか１項に記載の画像処理システム。
【請求項１７】
前記決定手段に関する設定が可能な設定画面を表示デバイスに表示させる手段を有することを特徴とする請求項１６に記載の画像処理システム。
【請求項１８】
外部装置から受信した印刷データであって印刷指示可能に保持されている印刷データの中から前記決定の対象とする印刷データを指定可能な指定画面を表示デバイスに表示させる手段を有することを特徴とする請求項１６に記載の画像処理システム。
【請求項１９】
外部装置から受信した第１の印刷データを学習データの生成に用いられない印刷データであると決定し、外部装置から受信した第２の印刷データを学習データの生成に用いられる印刷データであると決定する手段を有することを特徴とする請求項１乃至１７のいずれか１項に記載の画像処理システム。
【請求項２０】
前記第１の印刷データはＰＤＦファイルに基づくデータであり、前記第２のＰＤＬデータはＰＤＦファイルとは異なるファイルに基づくデータであることを特徴とする請求項１９に記載の画像処理システム。
【請求項２１】
前記第１の印刷データおよび前記第２の印刷データの一方は、元となったファイルの拡張子が所定の拡張子である印刷データであり、前記第１の印刷データおよび前記第２の印刷データの他方は、元となったファイルの拡張子が前記所定の拡張子とは異なる印刷データであることを特徴とする請求項１９に記載の画像処理システム。
【請求項２２】
前記第１の印刷データおよび前記第２の印刷データの一方は、所定のユーザ情報が付与された印刷データであり、前記第１の印刷データおよび前記第２の印刷データの他方は、前記所定のユーザ情報が付与されていない印刷データであることを特徴とする請求項１９に記載の画像処理システム。
【請求項２３】
前記第１の印刷データおよび前記第２の印刷データの一方は、送信元が所定のアドレスの印刷データであり、前記第１の印刷データおよび前記第２の印刷データの他方は、送信元が前記所定のアドレスとは異なるアドレスの印刷データであることを特徴とする請求項１９に記載の画像処理システム。
【請求項２４】
前記第１の印刷データおよび前記第２の印刷データの一方は、所定のアプリケーション情報が付与された印刷データであり、前記第１の印刷データおよび前記第２の印刷データの他方は、所定のアプリケーション情報が付与されていない印刷データであることを特徴とする請求項１９に記載の画像処理システム。
【請求項２５】
前記第１の印刷データおよび前記第２の印刷データの一方は、所定のプロトコルで送信されてきた印刷データであり、前記第１の印刷データおよび前記第２の印刷データの他方は、前記所定のプロトコルと異なるプロトコルで送信されてきた印刷データであることを特徴とする請求項１９に記載の画像処理システム。
【請求項２６】
前記第１の印刷データおよび前記第２の印刷データの一方は、所定のテキスト情報が含まれる印刷データであり、前記第１の印刷データおよび前記第２の印刷データの他方は、前記所定のテキスト情報が含まれない印刷データであることを特徴とする請求項１９に記載の画像処理システム。
【請求項２７】
前記第１の印刷データおよび前記第２の印刷データの一方は、所定のフラグ情報が付与された印刷データであり、前記第１の印刷データおよび前記第２の印刷データの他方は、前記所定のフラグ情報が付与されていない印刷データであることを特徴とする請求項１９に記載の画像処理システム。
【請求項２８】
印刷データに含まれる第１のテキスト情報および前記印刷データに基づく画像にＯＣＲ処理を施して取得した第２のテキスト情報が対応付けられた学習データに基づき学習したニューラルネットワークモデルを取得する工程と、
読取画像を取得する工程と、
前記読取画像にＯＣＲ処理を施すことで生成される第３のテキスト情報を取得する工程と、
前記ニューラルネットワークモデルに基づいて、前記第３のテキスト情報の入力にしたがい第４のテキスト情報を出力する工程と、を有することを特徴とする画像処理方法。
【請求項２９】
印刷データに含まれる第１のテキスト情報および前記印刷データに基づく画像にＯＣＲ処理を施して取得した第２のテキスト情報が対応付けられた学習データに基づき学習したニューラルネットワークモデルを取得する工程と、
読取画像を取得する工程と、
前記読取画像にＯＣＲ処理を施すことで生成される第３のテキスト情報を取得する工程と、
前記ニューラルネットワークモデルに基づいて、前記第３のテキスト情報の入力にしたがい第４のテキスト情報を出力する工程と、をコンピュータに実行させるプログラム。
【請求項３０】
印刷データに含まれる第１のテキスト情報および前記印刷データに基づく画像にＯＣＲ処理を施して取得した第２のテキスト情報が対応付けられた学習データに基づき学習したニューラルネットワークモデルを取得する手段と、
原稿を読み取って読取画像を取得する手段と、
前記読取画像にＯＣＲ処理を施すことで生成される第３のテキスト情報を取得する手段と、
前記ニューラルネットワークモデルに基づいて、前記第３のテキスト情報の入力にしたがい第４のテキスト情報を出力する手段と、を有することを特徴とする情報処理装置。
【請求項３１】
画像処理装置と通信可能な情報処理装置であって、
印刷データに含まれる第１のテキスト情報および前記印刷データに基づく画像にＯＣＲ処理を施して取得した第２のテキスト情報が対応付けられた学習データに基づき学習したニューラルネットワークモデルを取得する手段と、
前記画像処理装置から読取画像を取得する手段と、
前記読取画像にＯＣＲ処理を施すことで生成される第３のテキスト情報を取得する手段と、
前記ニューラルネットワークモデルに基づいて、前記第３のテキスト情報の入力にしたがい第４のテキスト情報を前記画像処理装置に送信する手段と、を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像から文字情報の取得するためのＯＣＲ処理を行う画像処理システム、画像処理システムに用いられる画像処理装置、情報処理装置に関する。画像処理装置はスキャナや複写機複合機等して用いられ、情報処理装置はサーバ装置等として用いられる。
【背景技術】
【０００２】
画像データに含まれる文字画像を文字として認識し、テキストデータ化する技術として、Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅｃｏｇｎｉｔｉｏｎと呼ばれる技術が知られている（以降、ＯＣＲと呼称する）。ＯＣＲは、電子化したデータが持つ文字情報を活用するために利用される。例えば、ＭＦＰ等と呼称される画像処理装置には、ＯＣＲによって取得したテキストデータを画像データに合成してサーチャブルＰＤＦデータを生成する機能が搭載されている。サーチャブルＰＤＦは、画像データに含まれる文字画像を文字として検索することが可能であり、利便性に優れる。
【０００３】
ところで、既存のＯＣＲ技術では、画像中の文字を誤認識して誤りを含むテキストデータを出力してしまうケースも多い。こうした誤認識の原因としては、画像に含まれる背景や罫線などの文字以外の情報の影響や、画像の斜向、画像に含まれるノイズの影響が挙げられる。このようにＯＣＲによって得られるテキストに誤りが含まれていると、文字情報を使った各種機能の利便性が低下してしまう。
【０００４】
特許文献１では、ＯＣＲの誤り規則と補正用の辞書を作成し、ＯＣＲによって得られたテキストを補正する技術が提案されている。誤り規則とは、テキスト補正対象を検出するための規則であり、例えば、漢字と漢字の間にカタカナが一文字出現する場合にこのカタカナを補正対象とする規則が挙げられる。この規則の場合、「重カ（カタカナ）加速度」という文字列に含まれる「カ」が補正対象となる」。また、補正用の辞書とは、誤認識と正しい内容のパターンを辞書として保持するものである。例えば、「重カ（カタカナ）」と「重力（漢字）」の対が辞書に保持されており、該当するパターンが出現した場合に対応する内容に置き換える処理が行われる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−１５０４３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１の技術はテキスト補正の精度について改善の余地がある。例えば、「動」という文字を「重力」という単語とする種類の誤認識の場合、特許文献１の誤り規則では検出することができない。また仮に、「重力」という単語を検出した際に必ず「動」という文字に変換する規則・補正辞書を利用した場合、ＯＣＲにより「重力加速度」として正しく認識された言葉が「動加速度」という別の言葉に置き換えられてしまう虞がある。したがって、ＯＣＲ後のテキスト補正処理は、単語や文字単位での補正処理ではなく、前後の文脈が考慮された補正処理であることが望ましい。すなわち、ＯＣＲの誤認識部分のテキストだけでなく、その周囲のテキストも含めて学習したニューラルネットワークを用いてテキスト補正処理が行われることが望ましい。
【０００７】
本発明の目的は、ＯＣＲの誤認識部分およびその周囲のテキストに基づき学習したニューラルネットワークを用いて、ＯＣＲによって得られたテキストを補正するシステムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、画像処理システムにおいて、印刷データに含まれる第１のテキスト情報および前記印刷データに基づく画像にＯＣＲ処理を施して取得した第２のテキスト情報が対応付けられた学習データに基づき学習したニューラルネットワークモデルを取得する手段と、読取画像を取得する手段と、前記読取画像にＯＣＲ処理を施すことで生成される第３のテキスト情報を取得する手段と、前記ニューラルネットワークモデルに基づいて、前記第３のテキスト情報の入力にしたがい第４のテキスト情報を出力する手段と、を有することを特徴とするものである。
【発明の効果】
【０００９】
本発明によれば、ＯＣＲの誤認識部分およびその周囲のテキストに基づき学習したニューラルネットワークを用いて、ＯＣＲによって得られたテキストを補正するシステムを提供できる。
【図面の簡単な説明】
【００１０】
【図１】画像処理システムの構成を示した図である。
【図２】図２（ａ）は画像処理装置の構成を示す図である。図２（ｂ）は学習装置の構成を示す図である。図２（ｃ）は画像処理サーバの構成を示す図である。
【図３】学習データの成り立ちを示す図である。
【図４】学習データの一例を示した図である。
【図５】図５（ａ）はスキャン機能の設定画面を示す図である。図５（ｂ）はスキャン機能に送信指示画面を示す図である。
【図６】画像処理システムの利用シーケンスを示す図である。
【図７】学習処理のフローを示す図である。
【図８】図８（ａ）はスキャン処理のフローを示す図である。図８（ｂ）はＯＣＲ処理のフローを示す図である。
【図９】図９（ａ）は読取原稿の構成を示す図である。図９（ｂ）はＯＣＲ結果を示す図である。図９（ｃ）はＯＣＲ結果の成型について説明するための図である。
【図１０】図１０（ａ）は日本語におけるテキスト補正の例を示す図である。図１０（ｂ）は日本語におけるテキスト補正の例２を示す図である。図１０（ｃ）は日本語におけるテキスト補正の例３を示す図である。
【図１１】図１１（ａ）は英語におけるテキスト補正の例を示す図である。図１１（ｂ）は中国語におけるテキスト補正の例を示す図である。
【図１２】実施例２における画像処理システムの構成を示した図である。
【図１３】自動学習設定画面を示す図である。
【図１４】実施理２における画像処理システムの学習シーケンスを示す図である。
【図１５】図１５（ａ）は学習データ生成依頼処理のフローを示す図である。図１５（ｂ）は学習データ生成処理のフローを示す図である。
【図１６】画像シミュレーション処理のフローを示す図である。
【図１７】テキストマッチングを説明する図である。
【図１８】テキストマッチング処理のフローを示す図である。
【図１９】図１９（ａ）実施例３における画像処理システムの学習シーケンスを示す図である。図１９（ｂ）はプリンタドライバ画面である。
【図２０】図２０（ａ）は実施例４における画像処理システムの学習シーケンスを示す図である。図２０（ｂ）は印刷ジョブ選択画面を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態について実施例にて具体的な構成を挙げ、図面を用いて説明する。なお、本発明を実現するための構成は実施例に記載された構成のみに限定されるものではない。同様の効果を得られる範囲で実施例に記載の構成の一部を省略または均等物に置き換えてもよい。
【００１２】
（実施例１）
＜画像処理システム＞
図１は、画像処理システムの構成を示した図である。画像処理システム１００は、画像処理装置１０１と、学習装置１０２、ＯＣＲサーバ１０３より構成される。画像処理装置１０１、学習装置１０２およびＯＣＲサーバ１０３は、ネットワーク１０４を介して接続されている。
【００１３】
画像処理装置１０１は、ＭＦＰなどであり、印刷機能やスキャン機能を有する装置であり、画像取得部１１１として機能する。画像処理装置１０１は、文字画像が含まれる原稿をスキャンして処理対象とするスキャン画像データを生成する（以後、このスキャン画像データを「処理対象画像」と呼称する）。そして、処置対象画像を、ネットワーク１０４を介してＯＣＲサーバ１０３に送信する。
【００１４】
学習装置１０２は、系列変換モデルの学習を行い、学習結果（ニューラルネットワークのパラメータなど）を生成する学習部１１３として機能する。学習装置１０２は、学習結果を、ネットワーク１０４を介してＯＣＲサーバ１０３に送信する。
【００１５】
ＯＣＲサーバ１０３は、画像処理装置１０１が生成した処理対象画像に対してＯＣＲ処理を行うＯＣＲ部１１４として機能する。ＯＣＲサーバ１０３は、処理対象画像中の文字が含まれる領域の部分画像（以後、「文字領域画像」と呼称する。また、処理対象画像を生成する元のデータから取得される文字テキストを「正解テキスト」と呼称する。）を抽出し、各文字領域画像に対してＯＣＲを実行する。その後、ＯＣＲサーバ１０３は、ＯＣＲによって取得したテキスト（以後、ＯＣＲテキストと呼称する）に対して、学習装置１０２が生成した学習結果を用いて、ニューラルネットワークによる変換を行う。すなわち、画像処理サーバはテキスト補正部１１５としての機能をそなえる。以後、この変換を、「テキストＡＩ補正」と呼び、テキストＡＩ補正によって得られたテキストを「補正テキスト」と呼称する。ニューラルネットワークを用いる機械学習手法の一つとしては、多層ニューラルネットワークを用いるディープラーニングが挙げられる。そして、ＯＣＲサーバ１０３は、変換により取得した補正テキストを画像処理装置１０１に送信する。画像処理装置１０１は、ＯＣＲサーバ１０３から受信した補正テキストを用いて、必要に応じてスキャンデータを生成し、ユーザが所望する送信先への送信や画像処理装置１０１内のストレージ２０８などに保存を行う。
【００１６】
＜利用シーケンス＞
図６は画像処理システムの利用シーケンスを示す図である。ここでは、ユーザが画像処理装置１０１を用いて原稿をスキャンし、サーチャブルＰＤＦを生成するケースについて説明する。本実施例では、ＯＣＲによって得られたテキストにテキストＡＩ補正が行われるため精度の高いテキストを得ることができる。そのため、このテキストを用いた利便性の高いデータ（特にサーチャブルＰＤＦ）を提供することができる。
【００１７】
まず、画像処理システム１００を提供するメーカのエンジニアは、学習装置１０２にテキストＡＩ補正用の学習をおこなわせるべく、学習データの入力を行う（ステップ６０１、以降Ｓ６０１等と表記する）。学習装置１０２は、入力された学習データを用いて、ニューラルネットワークの学習処理を行う（Ｓ６０２）。学習装置１０２は、Ｓ６０２が終了すると、ＯＣＲサーバ１０３に対して、学習結果を送信する（Ｓ６０３）。これらの工程は、以降に説明する工程よりも前に予め行われる工程である。
【００１８】
その後、ユーザは、画像処理システム１００の利用を開始すべく、画像処理装置１０１にスキャンしたい原稿をセットする（Ｓ６０４）。画像処理装置１０１は、表示デバイス２１０に図５に示すような設定画面を表示する。ユーザは、入力デバイス２０９を介してスキャン指示を行う（Ｓ６０５）。画像処理装置１０１は、スキャナデバイス２０６によって原稿を読み取り、処理対象画像を取得する（Ｓ６０６）。画像処理装置１０１は、取得した処理対象画像および、テキストＡＩ補正の設定情報をＯＣＲサーバ１０３に送信する（Ｓ６０７）。
【００１９】
ＯＣＲサーバ１０３は、受信した処理対象画像に対してＯＣＲ処理を実行し、ＯＣＲテキストを取得する（Ｓ６０８）。ＯＣＲサーバ１０３は、画像処理装置１０１内の設定で、テキストＡＩ補正処理がＯＮになっていた場合、Ｓ６０８で取得したＯＣＲテキストに対して、テキストＡＩ補正処理を実行する（Ｓ６０９）。テキストＡＩ補正処理は、あらかじめ学習済みのニューラルネットワークのモデルにＯＣＲテキストを入力することで実現される。ＯＣＲサーバ１０３は、Ｓ６０９で取得した補正テキストを画像処理装置１０１に送信する（Ｓ６１０）。画像処理装置１０１は、受信したテキストを用いてスキャンデータを作成する（Ｓ６１１）。スキャンデータとは、図５の５０１内でユーザによって指定されたファイル形式のデータであり、ＰＤＦかつＯＣＲが指定された場合は、テキスト情報が埋め込まれたサーチャブルＰＤＦが生成される。画像処理装置１０１は、生成したスキャンデータをユーザが指定した送信先に送信するなどして出力を行う（Ｓ６１２）。
【００２０】
＜装置構成＞
上述画像処理システムを実現するために、画像処理装置１０１、学習装置１０２、ＯＣＲサーバ１０３は以下に示す構成を備える。図２（ａ）は画像処理装置の構成を示す図である。図２（ｂ）は学習装置の構成を示す図である。図２（ｃ）は画像処理サーバの構成を示す図である。
【００２１】
図２（ａ）に示すように画像処理装置１０１は、次を備える。ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０４、プリンタデバイス２０５、スキャナデバイス２０６、原稿搬送デバイス２０７、ストレージ２０８、入力デバイス２０９、表示デバイス２１０、及び外部インタフェース２１１を備える。各デバイスは、データバス２０３によって相互通信可能に接続されている。
【００２２】
ＣＰＵ２０１は、画像処理装置１０１を統括的に制御するためのコントローラである。ＣＰＵ２０１は、ＲＯＭ２０２に格納されているブートプログラムによりＯＳ（オペレーティングシステム）を起動する。このＯＳ上で、ストレージ２０８に記憶されているコントローラプログラムが実行される。コントローラプログラムは、画像処理装置１０１を制御するためのプログラムである。ＣＰＵ２０１は、データバス２０３によって接続されている各デバイスを統括的に制御する。ＲＡＭ２０４は、ＣＰＵ２０１の主メモリやワークエリア等の一時記憶領域として動作する。
【００２３】
プリンタデバイス２０５は、画像データを用紙（記録材、シート）上に印刷するデバイス（印刷デバイス、画像形成デバイス）ある。これには感光体ドラムや感光体ベルトなどを用いた電子写真印刷方式や、微小ノズルアレイからインクを吐出して用紙上に直接画像を印字するインクジェット方式などがあるが、どの方式でもかまわない。スキャナデバイス２０６は、ＣＣＤなどの光学読取装置を用いて紙などの原稿上の走査を行い、電気信号データを得てこれを変換し、スキャン画像データを生成するデバイス（画像読取デバイス）である。また、ＡＤＦ（オート・ドキュメント・フィーダ）などの原稿搬送デバイス２０７は、原稿搬送デバイス２０７上の原稿台に載置された原稿を１枚ずつスキャナデバイス２０６に搬送する。スキャナデバイス２０６は、原稿搬送デバイス２０７が搬送してきた原稿を読み取る機能の他に、画像処理装置１０１が持つ原稿台（不図示）上に載置された原稿を読み取る機能を備えていてもよい。
【００２４】
ストレージ２０８は、ＨＤＤなどの、読み出しと書き込みが可能な不揮発メモリであり、ここには、前述のコントローラプログラムなど、様々なデータが記録される。入力デバイス２０９は、タッチパネルやハードキーなどから構成さるデバイス（入力装置）である。入力デバイス２０９は、ユーザの操作指示を受け付ける。そして、指示位置を含む指示情報をＣＰＵ２０１に伝達する。表示デバイス２１０は、ＬＣＤやＣＲＴなどの表示装置である。表示デバイス２１０は、ＣＰＵ２０１が生成した表示データを表示する。ＣＰＵ２０１は、入力デバイス２０９より受信した指示情報と、表示デバイス２１０に表示させている表示データとから、いずれの操作が成されたかを判定する。そしてこの判定結果に応じて、画像処理装置１０１を制御するとともに、新たな表示データを生成し表示デバイス２１０に表示させる。
【００２５】
外部インタフェース２１１は、ＬＡＮや電話回線、赤外線といった近接無線などのネットワークを介して、外部機器と、画像データをはじめとする各種データの送受信を行う。外部インタフェース２１１は、学習装置１０２やＰＣ（不図示）などの外部機器より、ＰＤＬデータ（ページ記述言語で描画内容を記述したデータ、ＰＤＬ形式のデータ）を受信する。ＣＰＵ２０１は、外部インタフェース２１１が受信したＰＤＬデータを解釈し、画像を生成する。生成した画像は、プリンタデバイス２０５により印刷したり、ストレージ２０８に記憶したりする。また、外部インタフェース２１１は、ＯＣＲサーバ１０３などの外部機器より画像データを受信する。受信した画像データをプリンタデバイス２０５により印刷したり、ストレージ２０８に記憶したり、外部インタフェース２１１により、他の外部機器に送信したりする。
【００２６】
図２（ｂ）の学習装置１０２は、ＣＰＵ２３１、ＲＯＭ２３２、ＲＡＭ２３４、ストレージ２３５、入力デバイス２３６、表示デバイス２３７、外部インタフェース２３８、ＧＰＵ２３９を備える。各部は、データバス２３３を介して相互にデータを送受信することができる。
【００２７】
ＣＰＵ２３１は、学習装置１０２の全体を制御するためのコントローラである。ＣＰＵ２３１は、不揮発メモリであるＲＯＭ２３２に格納されているブートプログラムによりＯＳを起動する。このＯＳの上で、ストレージ２３５に記憶されている学習データ生成プログラムおよび学習プログラムを実行する。ＣＰＵ２３１が学習データ生成プログラムを実行することより、学習データを生成する。また、ＣＰＵ２３１が学習プログラムを実行することにより、テキストＡＩ補正を行うニューラルネットワークを学習する。ＣＰＵ２３１は、データバス２３３などのバスを介して各部を制御する。
【００２８】
ＲＡＭ２３４は、ＣＰＵ２３１のメインメモリやワークエリア等の一時記憶領域として動作するものである。ストレージ２３５は、読み出しと書き込みが可能な不揮発メモリであり、前述の学習プログラムを記録する。
【００２９】
入力デバイス２３６は、マウスやキーボードなどから構成さる入力装置である。表示デバイス２３７は、図２（ａ）を用いて説明した表示デバイス２１０と同様である。
【００３０】
外部インタフェース２３８は、図２（ａ）を用いて説明した外部インタフェース２１１と同様である。
【００３１】
ＧＰＵ２３９は、画像処理プロセッサであり、ＣＰＵ２３１と協調してニューラルネットワークの学習を行う。
【００３２】
図２（ｃ）のＯＣＲサーバ１０３は、ＣＰＵ２６１、ＲＯＭ２６２、ＲＡＭ２６４、ストレージ２６５、入力デバイス２６６、表示デバイス２６７、外部インタフェース２６８を備える。各部は、データバス２６３を介して相互にデータを送受信することができる。
【００３３】
ＣＰＵ２６１は、ＯＣＲサーバ１０３の全体を制御するためのコントローラである。ＣＰＵ２６１は、不揮発メモリであるＲＯＭ２６２に格納されているブートプログラムによりＯＳを起動する。このＯＳの上で、ストレージ２６５に記憶されているＯＣＲサーバプログラムを実行する。ＣＰＵ２６１がこのＯＣＲサーバプログラムを実行することより、処理対象画像に対してＯＣＲ処理および変換処理を行う。ＣＰＵ２６１は、データバス２６３などのバスを介して各部を制御する。
【００３４】
ＲＡＭ２６４は、ＣＰＵ２６１のメインメモリやワークエリア等の一時記憶領域として動作するものである。ストレージ２６５は、読み出しと書き込みが可能な不揮発メモリであり、前述のＯＣＲサーバプログラムを記録する。
【００３５】
入力デバイス２６６は、図２（ｂ）を用いて説明した入力デバイス２３６と同様である。表示デバイス２６７は、図２（ａ）を用いて説明した表示デバイス２１０と同様である。
【００３６】
外部インタフェース２６８は、図２（ａ）を用いて説明した外部インタフェース２１１と同様である。
【００３７】
＜学習データ＞
Ｓ６０１においてエンジニアが学習装置１０２に入力した学習データについて説明する。学習データは、学習部１１３がニューラルネットワークを学習するために用いるデータである。ニューラルネットワークを学習するためには、変換前のデータと変換後のデータの対が必要となる。本実施例では、ＯＣＲテキストを変換前のデータ、正解テキストを変換後のデータとして用いる。図４は、ストレージ２３５が保持する学習データの一例を示したものである。
【００３８】
そのため、ストレージ２３５では、入力された学習データがリスト４００に示す状態で保持されている。図４に示すように、変換前テキスト列４０２にＯＣＲテキストが、変換後テキスト列４０３に正解データが保持されている。変換前テキスト列４０２には、例えば誤認識をした文字列４０４が含まれている。学習部１１３は、ＩＤ列４０１のＩＤを参照し、ＯＣＲテキストと正解テキストの対を適宜呼び出して学習を行う。
【００３９】
なお、ＯＣＲテキストは必ず誤認識をした文字列４０４を含んでいる必要はなく、正解テキストとＯＣＲテキストが同一であるような対を含んでもよい。これは、実際の入力には、誤認識を含んでいないテキストも存在するためである。また、正しい文脈をニューラルネットワークに学習させる、といった効果も得られるからである。
【００４０】
また、上述の学習データの保持手段は一例であり、変換前と変換後のテキスト対が正しく取得できる形態であれば、学習データの保持形態は上述した形態に限らない。
【００４１】
図３は学習データの成り立ちを示す図である。図３に示すように学習データ３０６は、正解テキストとＯＣＲテキスト（入力テキスト）の対からなるデータである。正解テキスト３０５は、文字属性オブジェクトを抽出するなどして、ＰＤＬデータ３０１（電子ドキュメント）から直接的に取得される。ＯＣＲテキスト３０４（入力テキスト）は、ＰＤＬデータ３０１を印刷することで得られる印刷原稿３０２をスキャンしてスキャン画像３０３にし、このスキャン画像３０３にＯＣＲ処理を施すことで得られる。
【００４２】
ここでは、エンジニアの開発環境下にある印刷装置（不図示）で印刷原稿３０２が印刷される。次に、エンジニアの開発環境下にあるスキャナ（不図示）で印刷原稿３０２が読み取られる。そして、エンジニアの開発環境下にある情報処理装置（不図示）によりスキャン画像３０３にＯＣＲ処理が施される。これらの工程に用いる装置は、プリンタデバイス２０５、スキャナデバイス２０６と同機種であることが望ましい。また、ＯＣＲ処理に用いるソフトウェアは、ＯＣＲサーバ１０３で用いられるソフトウェアと同じものを用いることが望ましい。
【００４３】
また、正確なテキスト補正を行うには大量の学習データを用いてニューラルネットワークを学習する必要があるが、ここでは既に十分に学習されている前提で説明を行う。
【００４４】
＜操作画面＞
図５（ａ）はスキャン機能の設定画面を示す図である。スキャン機能に送信指示画面を示す図である。
【００４５】
画像処理装置１０１の入力デバイス２０９を介してスキャン機能の利用が指示された場合、画像処理装置１０１は、表示デバイス２１０に送信指示画面５５０を表示する。送信指示画面５５０は、宛先設定ボタン５５１，５５２，５５３，５５４，５５５、宛先欄５５６、読取方式指定ボタン５５７、５５８、５５９、５６０、スキャンボタン５６１、送信ボタン５６２を備える。
【００４６】
スキャンボタン５６１はスキャナデバイス２０６にセットされた原稿の読取を開始するためのボタンである。スキャナデバイス２０６にセットする原稿を取り換え、再びスキャンボタン５６１を選択することで、複数の画像をスキャンして保持することも可能である。なおＡＤＦを用いればスキャンボタン５６１をもう一度選択することで複数ページ分の画像を保持することができる。
【００４７】
送信ボタン５６２は、スキャンボタン５６１によりスキャンされた画像を宛先欄５５６に設定された宛先に送信するためのボタンである。
【００４８】
宛先欄５５６は、宛先設定ボタン５５１，５５２，５５３，５５４，５５５等によって設定された宛先を表示する欄である。ソフトウェアキーボード（付図示）を表示させる等して、宛先欄５５６を直接入力することも可能である。
【００４９】
宛先設定ボタン５５１はアドレス帳の中から宛先を指定する画面（不図示）を呼び出すためのボタンである。アドレス帳は、ローカルまたはサーバに保存されており、ユーザ名とメールアドレスが紐づけられている。上述画面ではこれらの情報がリスト表示され、選択可能となっている。
【００５０】
宛先設定ボタン５５２はローカルボックスを宛先に指定する画面（不図示）を呼び出すためのボタンである。ローカルボックスは、ストレージ２０８を利用したデータ記憶領域（ローカルストレージであるストレージ２０８に確保される記憶領域）であり、複数のボックスがボックス番号等で管理されている。上述画面では、宛先として指定するボックスのボックス番号等を指定できる。
【００５１】
宛先設定ボタン５５３はクラウドサービス（クラウドサーバ）を宛先に指定する画面（不図示）を呼び出すためのボタンである。クラウドサービスはデータを保存可能なデータストレージサービスである。上述画面では、利用するサービスの指定およびアカウント設定等を行うことが出来る。
【００５２】
宛先設定ボタン５５４はログイン中のユーザに紐づけられたアドレスを指定するボタンである。このボタンでは、ログイン中のユーザに紐付くＥメールアドレス等をワンタッチで宛先に指定することができる。
【００５３】
宛先設定ボタン５５５はネットワーク上の共有フォルダ（ネットワーク接続された他の装置が提供する共有フォルダ）を宛先に指定する画面（不図示）を呼び出すためのボタンである。共有フォルダは、例えば、画像処理装置１０１が所属するローカルネットワーク上の他の装置（不図示）によって提供されている。上述画面では、アドレス設定や各種ネットワーク設定を行うことが出来る。
【００５４】
読取方式指定ボタン５５７は、カラー／モノクロ等、読取画像の色の指定が可能な画面を呼び出すためのボタンである。
【００５５】
読取方式指定ボタン５５８は、３００＊３００ｄｐｉ／６００＊６００ｄｐｉ等、読取画像の解像度を指定可能な画面を呼び出すためのボタンである。
【００５６】
読取方式指定ボタン５５９は、自動／Ａ４／Ａ５等、読取画像の読取サイズを指定可能な画面を呼び出すためのボタンである。
【００５７】
読取方式指定ボタン５６０は、読取画像の変換形式を指定可能な画面５００を呼び出すためのボタンである。
【００５８】
設定画面５００は、画像データのファイル形式を設定するための設定ボタン群５０１を含み、設定ボタン群５０１は、画像データのファイル形式として選択可能なＪＰＥＧ、ＰＤＦ、ＴＩＦＦ、ＸＰＳおよびＯＯＸＭＬに対応する各設定ボタンを含む。画像処理装置１０１は、ユーザが設定ボタン群５０１の中から選択した設定ボタンに対応するファイル形式に画像データを変換する。例えば、ユーザがＰＤＦボタン５０２を選択すると、詳細情報としてサーチャブルＰＤＦデータの生成に必要なＯＣＲ処理を行うか否かを設定するためのＯＣＲボタン５０３が表示される。また、ユーザがＯＣＲボタン５０３を選択すると、詳細情報としてテキストＡＩ補正ボタン５０４が表示される。テキストＡＩ補正ボタンがチェックされている場合、ＯＣＲ処理で取得したテキストデータに対して後述するテキストＡＩ補正処理が実行される。ＯＫボタン５０５が選択されると設定画面５００で設定された設定内容が保存され、送信指示画面５５０に遷移する。
【００５９】
キャンセルボタン５０６が選択されると、設定画面５００で設定された設定内容が破棄され、送信指示画面５５０に遷移する。
【００６０】
なお、上述内容は実施形態を説明するための一例であり、設定画面および設定の項目はこれに限定されない。例えば、設定画面中にＯＣＲ対象とする言語を選択するボタンを表示してもよい。また、テキストＡＩ補正の有無の設定は、スキャン機能の指示時に表示される画面ではなく、画像処理装置１０１全体の設定を行う画面に設けてもよい。また、テキストＡＩ補正の有無はユーザ側で明示的に切り替えるのではなく、常に実行されるような形態をとってもよい。
【００６１】
＜学習処理＞
次に学習装置１０２による学習処理について説明する。図７は、学習処理のフローチャートである。この処理は、学習装置１０２の学習部１１３によって実現される。詳細には、ＣＰＵ２３１が、ストレージ２３５に記録されている学習プログラムを読み出し、ＲＡＭ２３４に展開して実行することで実現される。この処理は、新たな学習データが入力されることで開始される。なお、本実施例において、ニューラルネットワークの学習には、ミニバッチ法を用いるものとする。
【００６２】
まずＣＰＵ２３１は、Ｓ７０１において、ニューラルネットワークを初期化する。すなわち、ＣＰＵ２３１は、ニューラルネットワークを構築し、当該ニューラルネットワークに含まれる各パラメータの値をランダムに決定して初期化する。構築するニューラルネットワークの構造は、様々なものを用いることができるが、例えば、既知の系列変換モデルの形態を取り得る。系列変換は、文を、単語または文字などの系列とみなし、その系列を順次入力として受け付け、系列に含まれる文脈などの情報をモデル内で解釈する。そして、解釈した内容に基づいて同様に系列を順次することによって変換を実現する。
【００６３】
ＣＰＵ２３１は、Ｓ７０２において、学習データを取得する。ＣＰＵ２３１は、３ストレージ２３５が保持する学習データを、所定の数（ミニバッチサイズ、例えば１０個）の学習データを読み出し取得する。なお、ニューラルネットワークの学習方法によって、入力対象とするテキストの単位は異なる。そのため、必要に応じて学習データ毎にテキストの分割処理を行う。分割処理とは、例えば、単語単位であれば、わかち書きによる分割、文字単位であれば一文字ずつの分割、などが挙げられる。なお、本実施例においては、分割単位を文字単位として説明を行うが、分割単位や分割手段はそれに限定されず、本発明を実現可能な形態であれば、どのような形態を選択してもよい。
【００６４】
ＣＰＵ２３１は、Ｓ７０３において、ニューラルネットワークの誤差を算出する。すなわち、各学習データに含まれるＯＣＲテキストをニューラルネットワークに入力して出力を得る。当該出力は、可変長のテキストであり、出力されたテキスト（補正テキスト）と、それに対応する正解テキストとの差を評価して誤差を求める。当該評価には指標として交差エントロピーを用いることができる。
【００６５】
ＣＰＵ２３１は、Ｓ７０４において、ニューラルネットワークのパラメータを調整する。すなわち、Ｓ７０３において算出した誤差をもとに、バックプロパゲーション法によってニューラルネットワークのパラメータ値を変更するものである。
【００６６】
ＣＰＵ２３１は、Ｓ７０５において、学習を終了するか否かを判定する。これは、次のようにして行う。ＣＰＵ２３１は、Ｓ７０２〜Ｓ７０４の処理を、所定回数（例えば、６００００回）行ったか否かを判定する。当該所定回数は、本フローチャートの開始時にユーザが操作入力するなどして決定することができる。所定回数行った場合には、ＹＥＳと判定し、Ｓ７０６に遷移する。そうでなければ、ＮＯと判定し、Ｓ７０２に遷移し、ニューラルネットワークの学習を続ける。
【００６７】
ＣＰＵ２３１は、Ｓ７０６において、学習結果として、Ｓ７０４において調整したニューラルネットワークのパラメータを、ＯＣＲサーバ１０３に送信する。
【００６８】
＜スキャン処理＞
次に、画像処理装置１０１による、スキャン処理について説明する。画像処理装置１０１は、文字画像を含む画像をスキャンし、スキャンした画像をＯＣＲサーバ１０３に送信してＯＣＲ処理を依頼する。図８（ａ）は、このスキャン処理のフローチャートである。この処理は、画像処理装置１０１のＣＰＵ２０１が、ストレージ２０８に記録されているコントローラプログラムを読み出し、ＲＡＭ２０４に展開して実行することによって実現される。この処理は、ユーザが、画像処理装置１０１の入力デバイス２０９を介して、所定の操作を行うことで開始される。
【００６９】
まずＣＰＵ２０１は、Ｓ８０１において、スキャナデバイス２０６や原稿搬送デバイス２０７を制御して、原稿をスキャンして処理対象画像を生成する。処理対象画像は、フルカラー（ＲＧＢ３チャネル）の画像データとして生成される。
【００７０】
ＣＰＵ２３１は、Ｓ８０２において、ＯＣＲ処理が必要かどうかを判定する。ユーザによってＯＣＲが必要なスキャン設定がされていた場合は、ＹＥＳと判定し、Ｓ８０３に遷移する。そうでなければ、ＮＯと判定し、Ｓ８０５に遷移する。
【００７１】
ＣＰＵ２０１は、Ｓ８０３において、Ｓ８０１で生成した処理対象画像を、外部インタフェース２１１を介して、ＯＣＲサーバ１０３に送信する。
【００７２】
ＣＰＵ２０１は、Ｓ８０４において、ＯＣＲサーバ１０３から、処理結果を受信したか否かを判定する。ＯＣＲサーバ１０３から、外部インタフェース２１１を介して、処理結果を受信していた場合には、ＹＥＳと判定し、Ｓ８０５に遷移する。そうでなければ、ＮＯと判定し、Ｓ８０４の処理ステップを繰り返す。
【００７３】
ＣＰＵ２０１は、Ｓ８０５において、ＯＣＲサーバ１０３から受信した処理結果を用いてスキャンデータを生成する。ＯＣＲサーバ１０３から得られる処理結果は、すなわち、Ｓ８０１で生成した処理対象画像に対してＯＣＲおよびテキストＡＩ補正を実行した結果として得られる補正テキストである。Ｓ８０５で生成されるスキャンデータとは、ユーザがスキャン指示時に設定したファイル形式を持つデータであり、例えばＰＤＦ形式が指定されていた場合は、文字情報を埋め込んだサーチャブルＰＤＦが生成される。
【００７４】
ＣＰＵ２０１は、Ｓ８０６において、Ｓ８０５で生成されたスキャンデータの出力を行う。出力方法としては、ユーザが入力デバイス２０９を操作して設定した送信宛先に、外部インタフェース２１１を介して、送信することができる。あるいは、ユーザが入力デバイス２０９を操作して設定したストレージ２０８内の保存領域に保存することができる。
【００７５】
＜ＯＣＲ処理＞
次に、ＯＣＲサーバ１０３によるＯＣＲ処理について説明する。ＯＣＲサーバ１０３は、画像処理装置１０１から受信した処理対象画像に対してＯＣＲ処理を実行する。図８（ｂ）は、このＯＣＲ処理のフローチャートである。この処理は、ＣＰＵ２６１が、ストレージ２６５に記憶されているＯＣＲサーバプログラムを読み出し、ＲＡＭ２６４に展開して実行することで実現される。これは、ユーザが、ＯＣＲサーバ１０３の電源をＯＮ（オン）にすると開始される。
【００７６】
まず、ＣＰＵ２６１は、Ｓ８１０において、テキストＡＩ補正を行うニューラルネットワークをロードする。ＣＰＵ２６１は、図７のフローチャートのＳ７０１の場合と同一のニューラルネットワークを構築する。そして、図７のフローチャートのＳ７０６において、学習装置１０２から送信された学習結果（ニューラルネットワークのパラメータ）を、構築したニューラルネットワークに反映する。
【００７７】
ＣＰＵ２６１は、Ｓ８１１において、処理対象画像を、画像処理装置１０１より受信したかを判定する。外部インタフェース２６８を介して、処理対象画像を受信していたならば、ＹＥＳと判定し、Ｓ８１２に遷移する。そうでなければ、ＮＯと判定し、Ｓ８１９に遷移する。
【００７８】
ＣＰＵ２６１は、Ｓ８１２において、画像処理装置１０１から受信した処理対象画像から文字領域画像を抽出する。文字領域の抽出には、公知の技術を適用し、実現することができる。処理対象画像から文字領域画像を抽出する例を図９（ａ）に示す。図９（ａ）は読取原稿の構成を示す図である。文字領域画像の抽出を実行すると、１ページ分の処理対象画像９０１中から、文字が含まれる矩形領域９０２〜９０５が検出され、検出された矩形領域の部分画像が抽出される。この例のように処理対象画像中に存在する文字が分かれて存在する場合、文字領域を複数検出し、文字領域画像が複数得られることがある。
【００７９】
ＣＰＵ２６１は、Ｓ８１３において、Ｓ８１２で取得した文字領域画像に対してＯＣＲを実行する。ＯＣＲでは、文字領域画像中に含まれる文字をテキストとして認識した結果であるＯＣＲテキストが取得できる。ＯＣＲには、公知の技術を適用し、実現することができる。文字領域画像からＯＣＲテキストを取得する例を図９（ｂ）に示す。図９（ｂ）はＯＣＲ結果を示す図である。テキスト９１１〜テキスト９１４は、Ｓ８１２で取得した文字領域画像を示す矩形領域９０２〜９０５に対してそれぞれＯＣＲを実行して得られたテキストである。上述の通り、処理対象画像によっては、複数の文字領域画像が取得され、その全てにＯＣＲを実行するため、ＯＣＲテキストも複数取得される。
【００８０】
ＣＰＵ２６１は、Ｓ８１４において、Ｓ８１２で取得した全ての文字領域画像に対してＯＣＲを実行したかを判定する。全ての文字領域画像に対してＯＣＲを実行していた場合には、ＹＥＳと判定し、Ｓ８１５に遷移する。そうでなければ、ＮＯと判定し、Ｓ８１３に遷移する。
【００８１】
ＣＰＵ２６１は、Ｓ８１５において、テキストＡＩ補正処理の設定がＯＮか否かを判定する。ＯＮであれば、ＹＥＳと判定し、Ｓ８１６に遷移する。そうでなければ、ＮＯと判定し、Ｓ８１８に遷移する。
【００８２】
ＣＰＵ２６１は、Ｓ８１６において、ＯＣＲテキストの成型を実行する。ＣＰＵ２６１は、Ｓ８１３で取得したＯＣＲテキストに対して、入力単位への分割を行う。ここでの入力単位は、Ｓ８１０で構築したニューラルネットワークが学習された時と同様の形式をとる。また、対象とするＯＣＲテキストが複数の文からなる場合や短文である場合、所定の文量（例えば、読点までを１文とし、２文単位や、一定の文字数を超える文数など）になるように分割もしくは統合してもよい。
【００８３】
本ステップにおけるデータの成型例について、図９（ｃ）を用いて説明する。図９（ｃ）は、Ｓ８１３において、取得したＯＣＲテキスト９１１〜９１４に対して成型を行うか否か判断結果を示したものである。ここでは、入力単位を読点までを１文とし、２文単位の入力を行うように成型する例を示す。テキスト９１１およびテキスト９１２は、ＯＣＲの結果、１文であるため、入力条件より短い。このような場合、２つのテキスト（９１１および９１２）を結合したテキスト９３１を生成するように処理を行う。テキスト９１３は、入力単位の条件を満たすため、成型処理は行われない。テキスト９１４は、ＯＣＲの結果、４文であるため、入力条件より長い。このような場合、テキスト９１４を読点に基づいて分割したテキスト９３２およびテキスト９３３を生成するように処理を行う。なお、テキストの結合対象の決定方法は。テキストとして取得された順番や抽出された文字領域の位置関係など、同一の処理対象画像から取得されたテキストであれば、その方法を限定しない。
【００８４】
ＣＰＵ２６１は、Ｓ８１７において、テキストの補正を実行する。Ｓ８１６で成型したＯＣＲテキストを、Ｓ８１０で構築したニューラルネットワークに入力して、テキストの補正を行わせる。ニューラルネットワーク内部では、Ｓ８１６で成型した入力単位で推定が行われ、それらをまとめた文単位の補正テキストが出力として得られる。
【００８５】
ＣＰＵ２６１は、Ｓ８１８において、Ｓ８１３で取得した全てのＯＣＲテキストに対してテキストＡＩ補正処理を実行したかを判定する。全てのＯＣＲテキストに対してテキストＡＩ補正処理を実行していた場合には、ＹＥＳと判定し、Ｓ８１９に遷移する。そうでなければ、ＮＯと判定し、Ｓ８１６に遷移する。
【００８６】
ＣＰＵ２６１は、Ｓ８１９において、Ｓ８１７によって得られたテキストを、外部インタフェース２６８を介して、画像処理装置１０１に送信する。
【００８７】
ＣＰＵ２６１は、Ｓ８２０において、処理を終了するか否かを判定する。ユーザが、ＯＣＲサーバ１０３の電源をＯＦＦするなどの所定の操作を行った場合には、ＹＥＳと判定し、処理を終了する。そうでなければ、ＮＯと判定し、Ｓ８１１に遷移する。
【００８８】
次に、ＯＣＲサーバ１０３によって行われるテキストＡＩ補正処理による変換例を示す。図１０（ａ）は日本語におけるテキスト補正の例を示す図である。図１０（ｂ）は日本語におけるテキスト補正の例２を示す図である。図１０（ｃ）は日本語におけるテキスト補正の例３を示す図である。
【００８９】
図１０（ａ）のＯＣＲテキスト１００１中には、正しいテキストである「重力」１００２と、ＯＣＲが「変動」を誤認識した結果出現したテキスト「変重力」１００３が混在した状態である。ＯＣＲテキスト１００１にテキストＡＩ補正を行った結果が補正テキスト１００４である。補正テキスト１００４では、正しいテキストであるテキスト１００２（「重力」）は補正が行われず、誤認識されていたテキスト１００３（「変重力」）がテキスト１００５（「変動」）として補正が行われている。
【００９０】
この例における補正は、辞書に基づいて、単純に文字列を変換するような場合には切り分けができない。一方、文脈を考慮したニューラルネットワークによる補正では、正しい補正が実現される。これは、ＯＣＲテキスト１００１全体を補正の対象として変換モデルに入力し、文脈を考慮することにより、変換モデルがテキスト１００３（「変重力」）のみを誤認識と判断し、学習時の傾向から「重力」→「動」という変換を行っている。
【００９１】
図１０（ｂ）のＯＣＲテキスト１０１１中には、ＯＣＲが「映像撮影」を誤認識した結果出現したテキスト１０１２（「映像撮所」）が存在する。このＯＣＲテキスト１０１１にテキストＡＩ補正を行った結果が補正テキスト１０１３である。補正テキスト１０１３では、テキスト１０１２（「映像撮所」）を正しいテキスト１０１４（「映像撮影」）に変換した出力が行われている。
【００９２】
テキストを変換するニューラルネットワークモデルは、入力テキスト中の文脈を解釈し、誤認識した文字列を、同テキスト内に含まれる別の文字列で置き換えるといった機能を持つ。この例における補正は、ニューラルネットワークが、文脈からテキスト１０１２（「映像撮所」）を誤りと判断し、補正対象と認識している。そして、補正内容として、同じく文脈からテキスト１０１５（「映像撮影」）に注目し、「映像撮所」という系列を「映像撮影」として置き換えることによって実現している。このように、ニューラルネットワークを用いると、文脈を考慮した補正が実現可能である。
【００９３】
図１０（ｃ）のＯＣＲテキスト１０２１中には、ＯＣＲが「ローラ」を誤認識した結果出現したテキスト１０２２（「日―ラ」）が存在する。このＯＣＲテキスト１０２１にテキストＡＩ補正を行った結果が補正テキスト１０２３である。補正テキスト１０２３では、テキスト１０２２（「日―ラ」）を正しいテキスト１０２４（「ローラ」）に変換した出力が行われている。
【００９４】
テキストを変換するニューラルネットワークは、学習データから入力テキスト中に出現する単語の共起性などを学習して出力の参考とする。この例における補正は、テキスト１０２５（樹脂」）という単語がテキスト中に多く出現する場合に、ローラという単語が出現する場合が多いなどという知見をニューラルネットワークが学習し、補正内容に反映されている。
【００９５】
なお、本発明が対象とする言語は日本語に限らず、同様に学習データを作成し、学習装置１０２によって、ニューラルネットワークのモデルを学習することにより、その他の言語にもテキストＡＩ補正処理を適用することが可能である。
【００９６】
図１１（ａ）は英語におけるテキスト補正の例を示す図である。図１１（ｂ）は中国語におけるテキスト補正の例を示す図である。図１１（ａ）、（ｂ）を用いて、日本語以外のＯＣＲテキストに対して本発明を適用した場合の例を示す。
【００９７】
図１１（ａ）のＯＣＲテキスト１１０１中には、ＯＣＲが「ｆｉｒｓｔ」中の「ｉ」を「ｒ」として誤認識した結果出現したテキスト１１０２（「ｆｒｒｓｔ」）が存在する。また、単語間のスペースが消失して１単語として出力されたテキスト１１０３（「ｐａｒｔｉｃｌｅｉｓ２０％」）が存在する。このＯＣＲテキスト１１０１に学習済みのニューラルネットワークを用いたテキストＡＩ補正を行った結果が補正テキスト１１０４である。補正テキスト１１０４では、テキスト１１０２（「ｆｒｒｓｔ」）およびテキスト１１０３（「ｐａｒｔｉｃｌｅｉｓ２０％」）を、それぞれテキスト１１０５（「ｆｉｒｓｔ」）およびテキスト１１０６（「ｐａｒｔｉｃｌｅ  ｉｓ  ２０％」）と正しく補正したテキストを出力している。これらは、ニューラルネットワークのモデルが入力テキスト中に出現する文脈に注目し、テキスト１１０２（「ｆｒｒｓｔ」）のような文字の置換やテキスト１１０３のような文字の結合を補正するような変換を実現したと考えられる。特に、１１０６中に含まれる「２０％」部の分離は、同テキスト内に含まれる「５０％」１１０７部など類似した系列に注目し、モデルが変換を行う際のガイドとなっている。
【００９８】
次に図１１（ｂ）のＯＣＲテキスト１１１１中には、ＯＣＲが「指示」を誤認識した結果出現したテキスト１１１２（「｜旨示」）が存在する。このＯＣＲテキスト１１１１に学習済みのニューラルネットワークを用いたテキストＡＩ補正を行った結果が補正テキスト１１１３である。補正テキスト１１１３では、テキスト１１１２（「｜旨示」）を、テキスト１１１４（「指示」）と正しく補正したテキストを出力している。
【００９９】
これは、日本語の場合と同様に、ニューラルネットワークがテキストの文脈および、テキスト中に同様に含まれるテキスト１１１５（「指示」）に反応し、テキスト１１１２（「｜旨示」）を補正するように出力を行っている。
【０１００】
図１１より、本発明は、日本語テキストだけではなく、英語や中国語など、他の言語に関しても適用可能であることを示した。
【０１０１】
＜備考＞
以上、本実施例に示したように、ＯＣＲテキストを正解テキストに変換するニューラルネットワークを学習し、当該学習の結果を用いて、ＯＣＲテキストを補正することができる。
【０１０２】
また、本実施例において、日本語、英語、中国語への適用例を説明したが、対象とする言語はこれに限らず、同様の形態を他の言語に適用してもよい。
【０１０３】
（実施例２）
実施例１では、学習データの作成方法として、電子データを印刷する等の工程をエンジニアが事前に行う例を挙げた。本実施例では、実際に運用される顧客環境にカスタマイズした学習モデルを作ることで、テキスト補正の精度を向上させる例について説明する。詳細には印刷機能を利用する際に用いられるＰＤＬデータから学習データを生成する手段を提案する。実施例２の画像処理システムの構成は、特徴部分を除いて実施例１の画像処理システムの構成と同様である。そのため、同様の構成については、同様の符号を付し、その詳細な説明を省略する。
【０１０４】
＜画像処理システム＞
図１２は本実施例における、画像処理システム１２００の構成を示した図である。画像処理システム１２００は、画像処理装置１０１、学習装置１０２、ＯＣＲサーバ１０３、端末装置１２０１より構成される。画像処理装置１０１、学習装置１０２、ＯＣＲサーバ１０３、端末装置１２０１は、ネットワーク１０４を介して接続されている。画像処理装置１０１、ＯＣＲサーバ１０３、ネットワーク１０４については、図１を用いて説明したとおりである。
【０１０５】
端末装置１２０１は、画像処理装置１０１に対して印刷ジョブを送信できるパーソナルコンピュータやタブレットなどである。端末装置１２０１は、ユーザが、操作部（不図示）を介して印刷指示を実行すると、印刷ジョブ（ＰＤＬデータを含む）を画像処理装置１０１に送信する。画像処理装置１０１は、端末装置１２０１からのジョブに従って印刷処理を行うと共に、学習装置１０２にＰＤＬデータを送信する。学習装置１０２は、ＰＤＬデータから正解テキストとＯＣＲテキストを生成し、生成したテキスト対を学習データとして保持する。
【０１０６】
本実施例において、学習装置１０２は、学習データ生成部１２１０を備えている。学習データ生成部１２１０は、テキストマッチング部１２１２、画像シミュレーション部１２１１を有し、ニューラルネットワークの学習に必要な学習データを生成する。テキストマッチング部１２１２は、正解テキストとＯＣＲテキストを正しい対として組み合わせることにより学習データを生成する。画像シミュレーション部１２１１は、ＰＤＬデータからスキャン相当の画像データをシミュレーションによって生成する。学習データ生成部１２１０は、生成した学習データを、ストレージ２３５に保持する。学習データ生成部１２１０は、ＣＰＵ２３１が学習データ生成プログラムをＲＡＭ２３４に展開して実行することによって実現される。
【０１０７】
学習部１１３は、ストレージ２３５に保持された学習データを用いて、ニューラルネットワークを学習する。学習部１１３は、ＣＰＵ２３１が学習プログラムをＲＡＭ２３４に展開して実行することによって実現される。
【０１０８】
＜学習シーケンス＞
学習シーケンスについて図１４を用いて説明する。図１４は、実施例２における画像処理システムの学習シーケンスを示す図である。
【０１０９】
まず、ユーザは、画像処理装置１０１の操作部を介して本発明で説明する学習データ生成処理を実行するか否かの設定を「ＯＮ」に設定する（Ｓ１４０１）。
【０１１０】
次に、ユーザが、端末装置１２０１の操作部を用いて印刷指示を行うと（Ｓ１４０２）、端末装置１２０１は、画像処理装置１０１に印刷ジョブ（ＰＤＬデータ含む）を送信する（Ｓ１４０３）。画像処理装置１０１は、端末装置１２０１から印刷ジョブを受け取ると、学習装置１０２に対して学習データ生成指示および印刷ジョブに含まれるＰＤＬデータを送信し（Ｓ１４０４）、印刷処理を実施する（Ｓ１４１１）。学習装置１０２は、Ｓ１４０４で取得したＰＤＬデータから正解テキストを生成する（Ｓ１４０５）。学習装置１０２は、ＰＤＬデータに対してシミュレーションを行い、処理対象画像を生成する（Ｓ１４０６）。そして、ＯＣＲサーバ１０３に対して生成した処理対象画像を送信する（Ｓ１４０７）。ＯＣＲサーバ１０３は、受信した処理対象画像に対して、ＯＣＲを実行し、ＯＣＲテキストを取得し（Ｓ１４０８）、取得したＯＣＲテキストを、学習装置１０２に送信する（Ｓ１４０９）。学習装置１０２は、Ｓ１４０５およびＳ１４０９によって得られた正解テキストおよびＯＣＲテキストに対してマッチング処理を行うことによって、学習に用いる形態に成型し、ストレージ２３５に保持する（Ｓ１４１０）。学習装置１０２は、テキストマッチングによって得られた学習データに基づき学習をおこない、学習モデルを更新する（Ｓ１４１２）。更新された学習モデルは、学習が完了したタイミングまたはＯＣＲサーバ１０３から要求されたタイミングでＯＣＲサーバに送信される。なお、学習装置１０２での処理に併行して画像処理装置１０１では、Ｓ１４０３で受信した印刷ジョブに基づく印刷処理が実行される（Ｓ１４１１）。
【０１１１】
＜操作画面＞
Ｓ１４０１における設定は、図１３に示す画面によって行われる。図１３は自動学習設定画面を示す図である。
【０１１２】
自動学習設定画面１３００は、ＯＮボタン１３０１、ＯＦＦボタン１３０２、フィルタ項目１３０３、フィルタ項目１３０４、フィルタ項目１３０５、ＯＫボタン１３０６を備える。
【０１１３】
ＯＮボタン１３０１は、受信した印刷データを自動学習に用いることを許可する設定にするための指示ボタンである。ＯＦＦボタン１３０２、受信した印刷データを自動学習に用いることを許可する設定にするための指示ボタンである。自動学習設定画面１３００では、ＯＮボタン１３０１またはＯＦＦボタン１３０２のいずれか一方を選択状態にすることができる。
【０１１４】
ＯＮボタン１３０１が選択されている状態では、印刷データが保持する情報に基づいて各種フィルタ設定を行うことができる。すなわち、複数種類の印刷データがある場合に一方の印刷データを自動学習対象に指定し、他方の印刷データを自動学習対象から外すといった設定を行うことが出来る。フィルタ項目１３０３ではジョブの属性に基づいて、印刷データを自動学習対象にするか否かのフィルタ設定を行うことができる。例えば、通常プリント属性が付与された印刷データを学習するか否か、セキュアプリント（パスワード付きプリント）属性が付与された印刷データを学習するか否かを設定できる。また、通信プロトコルがＬＰＲの印刷データを学習するか否か、通信プロトコルがＩＰＰの印刷データを学習するか否かを設定できる。また、送信元アドレス（ＩＰアドレス）が特定のアドレスの印刷データを学習するか否か、送信元アプリケーション情報が特定のアプリケーション情報の印刷データを学習するか否かを設定できる。
【０１１５】
フィルタ項目１３０４では印刷データに付与されたユーザ情報の属性に基づいて、印刷データを自動学習対象にするか否かのフィルタ設定を行うことができる。例えば、装置で管理するユーザリストに登録されているユーザ属性（正規ユーザ属性）が付与された印刷データを学習するか否か、ユーザリストに登録されていないユーザ属性（非正規ユーザ属性）が付与された印刷データを学習するか否かを設定できる。また、ユーザ属性が付与されていない印刷データ（ユーザ不明データ）を学習するか否かを設定できる。また、ユーザ名／グループ名を指定して、そのユーザ名／グル―プ名が付与された印刷データを学習するか否かを設定することもできる。
【０１１６】
フィルタ項目１３０５では印刷データに含まれるテキストに基づいて、印刷データを自動学習対象にするか否かのフィルタ設定を行うことができる。タイトル名に特定のワードを含む印刷データを学習するか否か、本文中に特定のワードを含む印刷データを学習するか否か、等が設定できる。なお、複数ワードの組み合わせによってフィルタ方法を指定してもよい。
【０１１７】
フィルタ項目１３０７では印刷データの元となった電子データの拡張子の情報に基づいて、印刷データを自動学習対象にするか否かのフィルタ設定を行うことができる。この拡張子情報は、印刷データに付与されたジョブ情報から取得する。あるいは、印刷データのタイトル名の一部から抜き出して取得する。拡張子情報の例としては、「ｊｐｇ」「ｐｎｇ」「ｂｍｐ」「ｔｉｆ」「ｇｉｆ」等の画像に関する拡張子や、「ｔｘｔ」「ｄｏｃ」「ｄｏｃｘ」「ｐｐｔ」「ｐｐｔｘ」「ｘｌｓ」「ｘｌｓｘ」「ｈｔｍ」「ｈｔｍｌ」「ｘｐｓ」「ｐｄｆ」等のドキュメントに関する拡張子が挙げられる。このうち、画像に関する拡張子「ｊｐｇ」「ｐｎｇ」「ｂｍｐ」「ｔｉｆ」が付与された印刷データは、文字情報（正解テキスト）を取得できない可能性が高い。そのため、これらの拡張子が付与された学習データは学習対象から外すことが望ましい。
【０１１８】
また、ドキュメントに関する拡張子のうち、「ｐｄｆ」は文書管理アプリケーションからプリンタドライバにデータが渡される工程で文字情報がベクタ情報に置き換えられているケースが多い。ベクタ情報となってしまった文字はテキスト情報として抽出することが困難である。そのため、「ｐｄｆ」が含まれる印刷データを学習対象から外してもよい。なお、プリンタドライバを介さずに、画像処理装置１０１がＰＤＦファイル（ＰＤＦ形式のデータ）を直接的に取得し、印刷するケースも存在する（ダイレクト印刷）。ダイレクト印刷には、ネットワークを介するネットワークダイレクト印刷や、ＵＳＢメモリ等のメディアを介するメディアダイレクト印刷がある。
【０１１９】
このケースでは、拡張子が「ｐｄｆ」であっても文字情報（正解テキスト）が含まれている可能性が高い。したがって、より効率的な運用を望むのであれば、単純に拡張子「ｐｄｆ」を学習対象から外すのではなく、異なる方法でフィルタを設定することが望ましい。例えば、フィルタ項目１３０３において、送信元アプリケーションに「Ａｃｒｏｂａｔ（商標）」が含まれるものを学習対象から外す設定を施すことで、文字情報がベクタ情報に置きかえられてしまった印刷データを学習対象から除外することができる。以上で述べたフィルタ設定は、ユーザに任意で設定させるのではなく、原則のフィルタ設定として適用してもよい。以降では、拡張子に基づくフィルタのみ行い、他のフィルタを用いないケースについて説明する。
【０１２０】
＜学習データ生成依頼処理＞
次に、本実施例における、画像処理装置１０１による、学習データ生成依頼処理について説明する。画像処理装置１０１は、学習装置１０２に対してＰＤＬデータを送信して、学習データ生成処理を依頼する。
【０１２１】
図１５（ｂ）は学習データ生成処理のフローを示す図である。図１５（ａ）は、この学習データ生成依頼処理のフローチャートである。この処理は、画像処理装置１０１のＣＰＵ２０１が、ストレージ２０８に記録されているコントローラプログラムを読み出し、ＲＡＭ２０４に展開して実行することによって実現される。これは、画像処理装置１０１が、端末装置１２０１からの印刷ジョブを受け付けることで開始される。
【０１２２】
まずＣＰＵ２０１は、Ｓ１５０１において、端末装置１２０１から印刷ジョブを受信したか否かを判定する。印刷ジョブを受信していた場合は、ＹＥＳと判定し、Ｓ１５０２に遷移する。そうでなければ、ＮＯと判定し、Ｓ１５０６に遷移する。
【０１２３】
ＣＰＵ２０１は、Ｓ１５０２において、画像処理装置１０１の設定で自動学習がＯＮか否かを判定する。ＯＮである場合は、ＹＥＳと判定し、Ｓ１５０３に遷移する。そうでなければ、ＮＯと判定し、Ｓ１５０５に遷移する。
【０１２４】
ＣＰＵ２０１は、Ｓ１５０３において、ＰＤＬデータが学習対象の条件に合致しているか否かを判定する。詳細には、図１３で説明した項目にしたがって、学習対象か否かを判定している。例えば、元となったファイルの拡張子として、画像に関する拡張子「ｊｐｇ」「ｐｎｇ」「ｂｍｐ」「ｔｉｆ」「ｇｉｆ」等が付与されたＰＤＬデータの場合、正解テキストを含んでいる可能性が低いため、ＮＯと判定し、Ｓ１５０５に遷移する。元となったファイルの拡張子として、画像に関する拡張子ではない拡張子が付与されたＰＤＬデータの場合、正解テキストを含んでいる可能性が高い。そのため、ＹＥＳと判定しＳ１５０４に遷移する。画像に関する拡張子ではない拡張子は「ｔｘｔ」「ｄｏｃ」「ｄｏｃｘ」「ｐｐｔ」「ｐｐｔｘ」「ｘｌｓ」「ｘｌｓｘ」「ｈｔｍ」「ｈｔｍｌ」「ｘｐｓ」「ｐｄｆ」が例として挙げられる。
【０１２５】
なお、拡張子による判別ではなく、ＰＤＬデータを解析して文字属性オブジェクトを確認し、その確認結果に基づいて判定してもよい。すなわち、文字属性オブジェクトを含む解析結果が得られたらＹＥＳと判定してＳ１５０４へ遷移し、文字属性オブジェクトを含まない解析結果が得られたらＮＯと判定してＳ１５０５に遷移する。
【０１２６】
ＣＰＵ２０１は、Ｓ１５０４において、ＰＤＬデータを、外部インタフェース２１１を介して、学習装置１０２に送信し、学習データ生成処理の依頼を行う。
【０１２７】
ＣＰＵ２０１は、Ｓ１５０５において、印刷処理を実行する。印刷処理は、ＭＦＰなどの画像処理装置が行う一般的な処理のため、詳細は割愛する。
【０１２８】
ＣＰＵ２０１は、Ｓ１５０６において、処理を終了するか否かを判定する。ユーザが、画像処理装置１０１の電源をＯＦＦするなど、印刷ジョブの受信処理を終了する所定の操作を行った場合には、ＹＥＳと判定して処理を終了する。そうでなければ、Ｓ１５０１に遷移する。
【０１２９】
＜学習データ生成処理＞
次に、本実施例における、学習装置１０２による、学習データ生成処理について説明する。図１５（ｂ）は、この学習データ生成処理のフローチャートである。学習装置１０２は、画像処理装置１０１から受信したＰＤＬデータから学習データ（正解テキストおよびＯＣＲテキストのペア）を生成する学習データ生成処理を行う。この処理は、ＣＰＵ２３１が、ストレージ２３５に記憶されている学習データ生成プログラムを読み出し、ＲＡＭ２３４に展開して実行することで実現される。
【０１３０】
ＣＰＵ２３１は、Ｓ１５１１において、ＰＤＬデータを画像処理装置１０１から受信したか否かを判定する。外部インタフェース２６８を介して、ＰＤＬデータを受信していたならば、ＹＥＳと判定し、Ｓ１５１２に遷移する。そうでなければ、ＮＯと判定し、Ｓ１５０８に遷移する。
【０１３１】
ＣＰＵ２３１は、Ｓ１５１２において、受信したＰＤＬデータから、正解テキストを生成する。換言すると、ＣＰＵ２３１は、ＰＤＬデータを解釈し、ＰＤＬデータ内に含まれる文字属性オブジェクトを正解テキストとして取得する。ＰＤＬデータの解釈手段は、ＭＦＰなどで用いられるインタプリタなど公知の技術を適用し、実現することができる。
【０１３２】
ＣＰＵ２３１は、Ｓ１５１３において、画像シミュレーション部１２１１によるシミュレーションを行い、ＰＤＬデータから処理対象画像を生成する。前述したように、ＯＣＲの出力結果は画像中のノイズなどの劣化要因によって影響を受けるため、ＰＤＬデータから生成したラスタ画像と実際に原稿をスキャンした画像では、得られるＯＣＲテキストが異なってしまう。そのため、ＰＤＬデータから生成したラスタ画像をそのまま学習データに用いると、テキストＡＩ補正の精度が低い虞がある。
【０１３３】
そこで、本実施例では、原稿をスキャンした場合に発生しうる劣化要因を含めた処理対象画像をシミュレーションによって生成する。そのため、この画像にＯＣＲ処理を施すことにより、実際に原稿をスキャンしたときの結果に近いＯＣＲテキストを取得することができる。
【０１３４】
画像シミュレーション処理の詳細については後述するため、ここでは説明を割愛する。
【０１３５】
ＣＰＵ２３１は、Ｓ１５１４において、Ｓ１５１３で生成した処理対象画像を、ＯＣＲサーバ１０３に送信し、ＯＣＲ処理を依頼する。このとき、テキストＡＩ補正処理の設定値をＯＦＦとする情報を付与することで、テキストＡＩ補正がされていないテキスト情報を得ることが出来る。なお、テキストＡＩ補正がなされていないテキスト情報が得られるのであれば、学習用ＯＣＲ依頼を示すフラグ情報等を別途設けてもよい。
【０１３６】
ＣＰＵ２３１は、Ｓ１５１５において、ＯＣＲサーバ１０３から、処理結果を受信したか否かを判定する。ＯＣＲサーバ１０３から、外部インタフェース２１１を介して、処理結果を受信していた場合には、ＹＥＳと判定し、Ｓ１５１６に遷移する。そうでなければ、ＮＯと判定し、Ｓ１５１５の処理ステップを繰り返す。
【０１３７】
ＣＰＵ２３１は、Ｓ１５１６において、Ｓ１５１２で取得した正解テキストおよびＳ１５１５で取得したＯＣＲテキストを用いて、学習データの生成を行う。ここでいう学習データの生成とは、正解テキストとＯＣＲテキストの対を生成することであり、テキストマッチング処理によって実現される。テキストマッチング処理の詳細については後述するため、ここでは説明を割愛する。
【０１３８】
ＣＰＵ２３１は、Ｓ１５１７において、Ｓ１５１６のテキストマッチング処理で得られた正解テキストとＯＣＲの対を学習データとして、ストレージ２３５に保持する。
【０１３９】
ＣＰＵ２３１は、Ｓ１５１８において、処理を終了するか否かを判定する。ユーザが学習装置１０２の電源をＯＦＦするなどの所定の操作を行った場合には、ＹＥＳと判定し、処理を終了する。そうでなければ、ＮＯと判定し、Ｓ１５１１に遷移する。
【０１４０】
＜画像シミュレーション処理＞
次に、学習装置１０２の画像シミュレーション部１２１１が実行する画像シミュレーション処理について図１６を用いて説明する。この処理は、ＣＰＵ２３１が、ストレージ２３５に記憶されている画像シミュレーションプログラムを読み出し、ＲＡＭ２３４に展開して実行することで実現される。図１６は画像シミュレーション処理のフローチャートである。
【０１４１】
まず、ＣＰＵ２３１は、Ｓ１６０１において、画像処理装置１０１から受信したＰＤＬデータの解釈を行う。ＰＤＬデータには印刷対象のドキュメント構造を示すデータが含まれており、画像を生成する際に必要な情報を取得する。
【０１４２】
ＣＰＵ２３１は、Ｓ１６０２において、Ｓ１６０１で取得したドキュメント情報に基づいて、ビットマップ画像などのラスタ画像を生成する。この処理は、ＲＩＰ（Ｒａｓｔｅｒ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｏｒ）と呼ばれる公知のモジュールによって実現される。Ｓ１６０１およびＳ１６０２における処理は、ＭＦＰなどの画像処理装置が印刷処理で実行する際に内部的に行われている処理であり、公知技術であるため、詳細な説明は割愛する。
【０１４３】
次に、ＣＰＵ２３１は、Ｓ１６０３において、Ｓ１６０２で生成したラスタ画像に基づいて、処理対象画像のシミュレーションを行う。ここでの、シミュレーションとは、スキャン時に画像上に発生する劣化要因をラスタ画像に付与することである。本実施例では、劣化要因の要素として「画像ぼかし」、「ノイズ付与」、「画像斜行」を例に挙げる。これらの劣化要因は、公知の画像処理技術で実現可能である。例えば、「画像ぼかし」は、画像の画素を間引きするダウンサンプリングで、「画像斜行」は画像の回転変換で実現が可能である。この際、各処理の度合をパラメータ設定する必要があるが、各パラメータがとりうる範囲をあらかじめ設定しておき、画像シミュレーションごとに範囲内でランダムに設定されるなどの形態をとる。パラメータがとりうる範囲は、例えば、実際のスキャン画像とパラメータを振って生成された画像との類似度を予め評価し、一番近いパラメータを採用するなどが考えられる。
【０１４４】
なお、本実施例では、シミュレーション手段として公知の画像処理手段の組み合わせを挙げたが、処理対象画像のシミュレーション手段はこの限りではない。例えば、ラスタ画像と実際にスキャンして得られた画像の対を学習データとした画像変換を行うニューラルネットワークを学習し、これを適用することによって処理対象画像を生成してもよい。
また、シミュレーション時に含む劣化要因は上述した要素（「画像ぼかし」、「ノイズ付与」、「画像斜行」）に限らず、別の要素を実現する処理を実行してもよい。
【０１４５】
＜テキストマッチング処理＞
次に、図１７を用いて、学習装置１０２が学習データを生成する際にＳ１５１６で実行されるテキストマッチング処理について説明する。図１７は、テキストマッチングの例を示した図である。
【０１４６】
図１７には、Ｓ１５１２で得られ、３つのテキスト（１７０２〜１７０４）が含まれた正解テキスト１７０１と、正解テキスト１７０１に対応するＯＣＲテキスト１７０５を例として挙げている。本実施例では、ニューラルネットワークへの入力を読点で区切られた１文単位という設定とし、正解テキスト１７０１とＯＣＲテキスト１７０５から学習データを作成することを考える。
【０１４７】
読点単位で分割を行いたい場合、単純な処理を考えると、正解テキスト１７０１とＯＣＲテキスト１７０５を読点単位で分割し、順番にマッチングすればよい。しかし、ＯＣＲで生成したテキストの場合には誤認識が含まれるため、読点を誤認識した場合にただしくマッチングできない場合が存在する。図１７においては、ＯＣＲテキスト１７０５中に存在する読点１７０７が「・」に置き換わってしまい、読点単位で分割すると、２文が混在したテキスト１７０８が出現する。この状態でマッチングを行うと、テキスト１７０２とテキスト１７０６、テキスト１７０３とテキスト１７０８といったように、誤ったマッチングが行われ、正しい学習データを得ることができない。
【０１４８】
そこで、本実施例では、学習データを生成する際に学習装置１０２のテキストマッチング部１２１２によるテキストマッチング処理を行うことによって、適切なテキスト対を取得する。
【０１４９】
本実施例における、学習装置１０２による、テキストマッチング処理のフローについて説明する。図１８は、このテキストマッチング処理のフローチャートである。学習装置１０２は、正解テキストおよび、ＯＣＲテキストに対してこの処理を実行し正解データの生成を行う。この処理は、ＣＰＵ２３１が、ストレージ２３５に記憶されているテキストマッチング処理プログラムを読み出し、ＲＡＭ２３４に展開して実行することで実現される。
【０１５０】
ＣＰＵ２３１は、Ｓ１８０１において、テキストの分割を行う。本実施例では、ニューラルネットワークへの入力を１文単位と設定しているため、正解テキストとＯＣＲテキストをそれぞれ読点毎に区切ったテキストを取得する処理を行う。Ｓ１８０１で分割したテキストは、座標情報等に基づいて順番をソートするとよい。
【０１５１】
ＣＰＵ２３１は、Ｓ１８０２において、正解テキストのうち、先頭のテキストを取得する。ＣＰＵ２３１は、Ｓ１８０３において、ＯＣＲテキストのうち、先頭のテキストを取得する。
【０１５２】
ＣＰＵ２３１は、Ｓ１８０４において、取得した２つのテキストについてテキスト類似度の算出を行う。ここでのテキスト類似度とは、二つのテキストがどれだけ似ているかを評価する尺度であり、例えば、レーベンシュタイン距離など公知の技術を用いることによって算出することができる。
【０１５３】
ＣＰＵ２３１は、Ｓ１８０５において、Ｓ１８０４で算出したテキスト類似度が所定値以上か否かを判定する。所定値以上の場合は、ＹＥＳと判定し、Ｓ１８０７に遷移する。そうでなければ、ＮＯと判定し、Ｓ１８０６に遷移する。
【０１５４】
ＣＰＵ２３１は、Ｓ１８０７において、テキスト類似度が所定値を超えたと判断された正解テキストとＯＣＲテキストのテキスト対をストレージ２３５に保持する。保持を行ったら、Ｓ１８０８に遷移する。
【０１５５】
ＣＰＵ２３１は、Ｓ１８０６において、Ｓ１８０５で用いたＯＣＲテキストが分割されたＯＣＲテキストの最後のテキストか否かを判定する。最後のＯＣＲテキストの場合はＹＥＳと判定し、Ｓ１８０８へと処理を進める。そうでない場合はＮＯと判定し、Ｓ１８０９へと処理を進める。
【０１５６】
ＣＰＵ２３１は、Ｓ１８０９において、Ｓ１８０５で用いたＯＣＲテキストの次の順番のＯＣＲテキストを取得し、Ｓ１８０４へと処理を進める。このようにステップを進めることで、取得中の正解テキストとすべてのＯＣＲテキストを総当たりで比較することができる。
【０１５７】
ＣＰＵ２３１は、Ｓ１８０８において、Ｓ１８０５で用いた正解テキストが分割された正解テキストの最後のテキストか否かを判定する。最後の正解テキストの場合はＹＥＳと判定し、Ｓ１８０８へと処理を進める。そうでない場合はＮＯと判定し、Ｓ１８１０へと処理を進める。
【０１５８】
ＣＰＵ２３１は、Ｓ１８１０において、Ｓ１８０５で用いた正解テキストの次の順番の正解テキストを取得し、Ｓ１８０３へと処理を進める。このようにステップを進めることで、分割されたすべての正解テキストについて、ＯＣＲテキストとのテキスト類似度比較をおこなうことができる。
【０１５９】
＜備考＞
以上、画像処理システム１２００における学習データの生成方法について説明した。画像処理装置１０１の印刷機能が利用される際に、ＰＤＬデータから、正解テキストを取得する。また、シミュレーションによってＰＤＬデータからスキャン相当の処理対象画像を取得し、ＯＣＲを実行することによってＯＣＲテキストを取得する。学習装置１０２は、これらのテキストをテキストマッチング処理によって組み合わせることによって、学習データを生成する。これにより、ニューラルネットワークの学習に必要な学習データを手間なく収集することが可能となる。
【０１６０】
また、本実施例では、印刷機能に利用されるＰＤＬデータをニューラルネットワークの学習に用いるか否かを設定できる。そのため、テキストＡＩ補正の精度を維持したいユーザおよびテキストＡＩ補正の精度を向上させたいユーザの両方の要望に対応することができる。また、印刷機能に利用されるＰＤＬデータのうち、どのＰＤＬを学習対象にするかについて、詳細にカスタマイズすることができる。そのため、より精度の高い学習をおこなうことができる。また、学習に向かないデータを学習対象から除外することで、ＰＤＬデータを取得してから学習を行うまでに必要な一連の処理コストや通信コストを低減することができる。
【０１６１】
なお、本実施例では、テキスト間の類似度評価を行いテキストの対応付けを行う手段を挙げたが、テキスト間の対応付けという点で本発明の範囲を外れない範囲で別の手段をとってもよい。例えば、ＯＣＲテキストと正解テキストの対を学習データとして、文章の区切り位置を推定するニューラルネットワークを学習し、それをテキストマッチング部１２１２で実行するという形態が挙げられる。
【０１６２】
（実施例３）
実施例２では、学習データの作成方法として、印刷データの自動学習設定を画像処理装置の設定項目として設けた。本実施例では、端末装置から印刷指示をする際に、学習させるか否かを指定するケースについて説明する。
【０１６３】
なお、実施例３の画像処理システムの構成は、特徴部分を除いて実施例２の画像処理システムの構成と同様である。そのため、同様の構成については、同様の符号を付し、その詳細な説明を省略する。
【０１６４】
＜学習シーケンス＞
学習シーケンスについて図１９（ａ）を用いて説明する。図１９（ａ）は実施例３における画像処理システムの学習シーケンスを示す図である。
【０１６５】
まず、ユーザは、操作部（表示デバイス、入力デバイス）を介して、端末装置１２０１においてプリンタドライバを立ち上げ、送信予定の印刷ジョブを学習データとして指定する操作を行う（Ｓ１９０１）。なお、端末装置１２０１は図２（ｃ）で示したＯＣＲサーバ１０３と同等の構成を持っているものとする。
【０１６６】
続いて、端末装置１２０１の操作部を用いてユーザが印刷指示を行うと（Ｓ１４０２）、端末装置１２０１は、画像処理装置１０１に印刷ジョブ（ＰＤＬデータ含む）を送信する（Ｓ１９０３）。なお、この印刷ジョブには学習データフラグが付与されており、このフラグを検知した画像処理装置１０１はこのＰＤＬデータを学習装置１０２に送信する（Ｓ１９０４）。その後に続くＳ１４０５〜Ｓ１４１２の処理は前述した内容と同じであるため説明を省略する。
【０１６７】
＜操作画面＞
Ｓ１９０１、Ｓ１９０２において、ユーザが操作するプリンタドライバ画面について説明する。図１９（ｂ）はプリンタドライバ画面の図である。
【０１６８】
プリンタドライバ画面１９５０は、文書編集アプリーション等から印刷機能を呼び出された際に表示される画面である。
【０１６９】
プリンタドライバ画面１９５０は、チェック欄１９５１とキャンセルボタン１９５２と印刷ボタン１９５３を備える。
【０１７０】
チェック欄１９５１は、印刷ジョブとして画像処理装置１０１に送信するＰＤＬデータをテキストＡＩ補正の学習に用いるか否かを指定するための欄である。チェック欄にチェックを入れると学習対象となり、チェック欄のチェックを外すと学習対象外となる。
【０１７１】
キャンセルボタン１９５２は印刷機能の利用を中止するためのボタンである。キャンセルボタン１９５２を選択すると、プリンタドライバ画面１９５０は閉じられる。
【０１７２】
印刷ボタン１９５３は、印刷ジョブを画像処理装置１０１に送信する処理を開始するためのボタンである。チェック欄１９５１をチェックし、印刷ボタン１９５３を選択すると、学習データフラグが付与された印刷ジョブの送信が開始される。
【０１７３】
＜備考＞
以上、画像処理システム１２００における学習データの生成元データの指定方法について、実施例２と異なる形態を説明した。これにより、端末装置１２０１側のジョブ設定において、学習対象の指定をおこなう例が示された。本実施例では、プリンタドライバ側でジョブ毎に学習対象を指定できるため、ユーザの要望にあった学習をおこなうことができる。
【０１７４】
（実施例４）
実施例２では、学習データの作成方法として、印刷データの自動学習設定を画像処理装置の設定項目として設けた。本実施例では、画像処理装置に蓄積されたＰＤＬデータについて、学習させるか否かをユーザが指定するケースについて説明する。なお、実施例４の画像処理システムの構成は、特徴部分を除いて実施例２の画像処理システムの構成と同様である。そのため、同様の構成については、同様の符号を付し、その詳細な説明を省略する。
【０１７５】
＜学習シーケンス＞
学習シーケンスについて図２０（ａ）を用いて説明する。図２０（ａ）は実施例４における画像処理システムの学習シーケンスを示す図である。ユーザが、端末装置１２０１の操作部を用いて印刷指示を行うと（Ｓ２００１）、端末装置１２０１は、画像処理装置１０１に印刷ジョブ（ＰＤＬデータ含む）を送信する（Ｓ２００２）。画像処理装置１０１は、端末装置１２０１から印刷ジョブを受け取ると、印刷ジョブに含まれるＰＤＬデータをストレージ２０８に格納し、書誌情報を用いてリスト管理する（Ｓ２００３）。なお、この格納処理は、画像処理装置１０１に設定された留め置き設定（格納処理設定）に基づき実行してもよいし、印刷ジョブに含まれる留め置きフラグ（格納処理フラグ）に基づき実行してもよい。
【０１７６】
格納されたジョブは、印刷ジョブ選択画面（指定画面）に選択可能に表示される。その後、ユーザが印刷ジョブ選択画面からジョブを選択し、学習用のジョブと指定すると（Ｓ２００４）、格納されたＰＤＬデータが学習装置１０２に送信される（Ｓ２００５）。その後に続くＳ１４０５〜Ｓ１４１２の処理は前述した内容と同じであるため説明を省略する。なお、本実施例では、印刷処理Ｓ１４１１は実行されない。
【０１７７】
＜操作画面＞
Ｓ２００４の後、画像処理装置１０１の操作画面で表示可能となるジョブ選択画面について説明する。図２０（ｂ）は印刷ジョブ選択画面を示す図である。
【０１７８】
印刷ジョブ選択画面２０５０はジョブリスト２０５１、設定ボタン２０５２、表示ボタン２０５３、削除ボタン２０５４、学習サーバ転送ボタン２０５５、プリント開始ボタン２０５６を備える。
【０１７９】
ジョブリスト２０５１は、ストレージ２０８に格納され、印刷指示可能なジョブの一覧である。ここでは、画像処理装置１０１にログイン中のユーザＡに紐付くジョブのみが表示されている。ジョブリスト２０５１は、複数のジョブのなかから少なくとも一つのジョブを指定し、選択状態にすることができる。
【０１８０】
設定ボタン２０５２は、ジョブリスト２０５１で選択中のジョブについて印刷設定を変更する画面を呼び出すためのボタンである。表示ボタン２０５３は、ジョブリスト２０５１で選択中のジョブのプレビュー画面を呼び出すためのボタンである。削除ボタン２０５４は、ジョブリスト２０５１で選択中のジョブをジョブリスト２０５１から削除するためのボタンである。学習サーバ転送ボタン２０５５は、ジョブリスト２０５１で選択中のジョブを学習装置１０２に送信するためのボタンである。プリント開始ボタン２０５６は、ジョブリスト２０５１で選択中のジョブに基づく印刷を開始するためのボタンである。
【０１８１】
＜備考＞
以上、画像処理システム１２００における学習データの生成元データの指定方法について、実施例２および３と異なる形態について説明した。これにより、画像処理装置１０１で既に受信済みの印刷データを学習対象に指定する例が示された。本実施例では、画像処理装置１０１の操作画面でジョブ毎に学習対象を指定できるため、ユーザの要望にあった学習をおこなうことができる。
【０１８２】
なお、本実施例では、印刷ジョブ選択画面において一つのジョブを選択し、学習装置に送信するケースについて説明した。しかしながら、印刷ジョブ選択画面において複数のデータを指定して、まとめて送信可能にしてもよい。
【０１８３】
（その他の実施例）
本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施例の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【０１８４】
実施例２のＳ１６０２では、ＰＤＬデータの改変を行わずにラスタイメージを作成した。しかしながら、ＰＤＬデータを改変してからラスタイメージの作成を行ってもよい。例えば、ＯＣＲ部１１４が文字以外の画像要素（例えば背景画像）を効果的に除去してＯＣＲ処理を施すことが可能であるならば、Ｓ１６０２におけるラスタイメージ生成前に文字属性オブジェクト以外のオブジェクト情報を削除してもよい。そして文字属性オブジェクトのみのラスタイメージを作成してもよい。
【０１８５】
実施例１〜４において、学習装置１０２は、データが入力されたことに従って受動的に学習処理をおこなった。しかしながら、学習装置１０２は、学習データあるいは学習データの元となるデータを能動的に取得してもよい。たとえば、不図示の文書管理サーバにアクセスして取得した文書データからＰＤＬデータを生成し、本実施例のように学習データを生成するような構成でもよい。
【０１８６】
また、学習装置１０２は、他の条件をトリガーとして学習処理を開始してもよい。例えば、学習データ生成処理が実行され、一定数の学習データがストレージ２３５に保存されるたびに学習処理を実行する、などでもよい。
【０１８７】
本発明は、上述の実施例の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【０１８８】
本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。例えば、実施例２では、学習データ生成部１２１０と学習部１１３は、学習装置１０２において実現されるものとしたが、それぞれ別体の装置において実現されるようにしても良い。この場合、学習データ生成部１２１０を実現する装置は、学習データ生成部１２１０が生成した学習データを、学習部１１３を実現する装置に送信する。そして、学習部１１３は受信した学習データをもとにニューラルネットワークを学習する。また、画像処理装置１０１とＯＣＲサーバ１０３とを別体の装置として説明したが、画像処理装置１０１がＯＣＲサーバ１０３の機能を具備しても良い。
【０１８９】
なお、各実施例中に登場する略称の定義は次の通りである。
ＭＦＰとは、Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌのことである。ＬＣＤとはＬｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙのことである。ＡＤＦとはＡｕｔｏ  Ｄｏｃｕｍｅｎｎｔ  Ｆｅｅｄｅｒのことである。ＣＲＴとはＣａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅのことである。ＰＣとは、Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒのことである。ＬＡＮとは、Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋのことである。ＡＳＩＣとは、Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔのことである。ＣＰＵとは、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔのことである。ＧＰＵとは、Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔのことである。ＲＡＭとは、Ｒａｎｄｏｍ‐Ａｃｃｅｓｓ  Ｍｅｍｏｒｙのことである。ＲＯＭとは、Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙのことである。ＨＤＤとはＨａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅのことである。ＳＳＤとはＳｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅのことである。ＣＣＤとは、Ｃｈａｒｇｅ−Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅのことである。ＲＩＰとはＲａｓｔｅｒ  ｉｍａｇｅ  ｐｒｏｃｅｓｓｏｒのことである。ＵＳＢとはＵｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓのことである。ＯＳとは、Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍのことである。ＰＤＬとは、Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅのことである。ＰＤＦとは、Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔのことである。ＩＰＰとはＩｎｔｅｒｎｅｔ  Ｐｒｉｎｔｉｎｇ  Ｐｒｏｔｏｃｏｌのことである。ＬＰＲとはＬｉｎｅ  Ｐｒｉｎｔｅｒ  Ｄａｅｍｏｎ  Ｐｒｏｔｏｃｏｌのことである。ＯＣＲとは、Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅｃｏｇｎｉｔｉｏｎ／Ｒｅａｄｅｒのことである。ＤＰＩとは、Ｄｏｔｓ  ｐｅｒ  ｉｎｃｈのことである。ＩＤとは、Ｉｄｅｎｔｉｆｉｃａｔｉｏｎのことである。
【符号の説明】
【０１９０】
１００  画像処理システム
１０１  画像処理装置
１０２  学習装置
１０３  ＯＣＲサーバ
３０５  正解テキスト
３０４  入力テキスト（ＯＣＲテキスト）
３０６  学習データ
１２０１  端末装置
【図１】
2020102166.tif 000003
【図２】
2020102166.tif 000004
【図３】
2020102166.tif 000005
【図４】
2020102166.tif 000006
【図５】
2020102166.tif 000007
【図６】
2020102166.tif 000008
【図７】
2020102166.tif 000009
【図８】
2020102166.tif 000010
【図９】
2020102166.tif 000011
【図１０】
2020102166.tif 000012
【図１１】
2020102166.tif 000013
【図１２】
2020102166.tif 000014
【図１３】
2020102166.tif 000015
【図１４】
2020102166.tif 000016
【図１５】
2020102166.tif 000017
【図１６】
2020102166.tif 000018
【図１７】
2020102166.tif 000019
【図１８】
2020102166.tif 000020
【図１９】
2020102166.tif 000021
【図２０】
2020102166.tif 000022