JP7479925B2 - 画像処理システム、画像処理方法、及びプログラム - Google Patents

画像処理システム、画像処理方法、及びプログラム Download PDF

Info

Publication number
JP7479925B2
JP7479925B2 JP2020085350A JP2020085350A JP7479925B2 JP 7479925 B2 JP7479925 B2 JP 7479925B2 JP 2020085350 A JP2020085350 A JP 2020085350A JP 2020085350 A JP2020085350 A JP 2020085350A JP 7479925 B2 JP7479925 B2 JP 7479925B2
Authority
JP
Japan
Prior art keywords
image
handwritten
cpu
area
handwriting
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020085350A
Other languages
English (en)
Other versions
JP2021179848A (ja
Inventor
拓也 小川
元気 池田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2020085350A priority Critical patent/JP7479925B2/ja
Priority to US17/317,673 priority patent/US11983910B2/en
Priority to EP21173730.9A priority patent/EP3910550A1/en
Priority to CN202110521173.8A priority patent/CN113673295A/zh
Publication of JP2021179848A publication Critical patent/JP2021179848A/ja
Application granted granted Critical
Publication of JP7479925B2 publication Critical patent/JP7479925B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/22Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/62Text, e.g. of license plates, overlay texts or captions on TV images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/148Segmentation of character regions
    • G06V30/153Segmentation of character regions using recognition of characters or words
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/412Layout analysis of documents structured with printed lines or input boxes, e.g. business forms or tables

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Character Discrimination (AREA)
  • Character Input (AREA)
  • Image Analysis (AREA)

Description

本発明は、画像処理システム、画像処理方法、及びプログラムに関する。
近年、ユーザにより文字が記入された帳票等の紙文書をスキャンし、当該スキャンした画像に対して手書きOCR処理を行うことにより、記入された手書き文字を電子化(データ化)することが行われている。
手書きOCRを実行する手書きOCRエンジンへは、手書き文字が記入された帳票をスキャンして得られるスキャン画像から、手書き文字の部分画像を分離して入力することが望ましい。なぜならば、手書きOCRエンジンは、手書き文字の認識に最適化されているため、活字等の特定の文字フォントで印刷された文字画像やアイコンなどの印刷されたグラフィクスが含まれると、その認識精度が低下してしまうためである。
また、手書きOCRエンジンに入力する手書き文字の画像は、帳票内に記入された文字間や項目間の区切り毎に領域を分けた画像であることが望ましい。例えば、図22(a)は帳票への氏名の記入例を示したものであり、図22(b)は図22(a)から抽出した手書き抽出画素を示したものである。図22(a)を参照すれば、罫線の存在により、記入された内容は「小木 才一郎」であることが分かる。しかし、その手書き抽出された画像である図22(b)では、「木」と「才」の文字間の区切りが不明瞭であるため、「木」と「才」が「材」の一文字として認識され、文字認識処理の結果、「小材一郎」と認識されてしまう場合があるためである。
一方、近年では、画像認識分野においてニューラルネットワークが注目されている。その一例として、ニューラルネットワークは、画像内の各画素を所定のカテゴリ(クラス)に分類することに用いられており、エンコーダとデコーダから構成されるものが知られている。このニューラルネットワークは、エンコーダで入力画像に対して畳み込み計算を行い画像の各画素のクラスを識別するための特徴マップを出力する。そして、ニューラルネットワークは、デコーダでエンコーダが出力した特徴マップに対して逆畳み込み計算を行って、入力画像の各画素がいずれのクラスに属するかを示す確率値からなる画像(確率マップ)を出力する。
上記カテゴリ分類するためのニューラルネットワークを、スキャン画像において手書き文字の画像とそれ以外の画像とを分離するタスクに応用し、入力画像から手書き文字の画素を抽出することが提案されている。すなわち、入力画像の各画素を手書き文字を構成する画素であるか否かにカテゴリ分類するものである(非特許文献1)。なお、以降では、手書き文字を構成する画素を分類して抽出する処理を「手書き抽出」、手書き抽出によって抽出された画素を「手書き抽出画素」、手書き抽出により得た画像を「手書き抽出画像」とそれぞれ呼称する。
また、上記カテゴリ分類するためのニューラルネットワークを、帳票画像内の文字が記入された領域(記入欄の領域)を分類するタスクに応用することにより、入力画像上の手書き記入を含む領域を推定して出力するためのニューラルネットワークを作成することが提案されている(非特許文献2)。なお、以降では、手書き記入を含む領域を推定する処理を「手書き領域推定」と呼称する。また、手書き領域推定によって得た領域を「手書き領域」と呼称する。
また一方、一般にニューラルネットワークは計算量が多いことが知られている。上述の手書き領域推定および手書き抽出の両方の処理(すなわち複数のタスク)を、それぞれの処理に適した複数のニューラルネットワークにより構成する場合、2つのニューラルネットワークが必要となるため、計算負荷の増加はより顕著である。特許文献1は、複数のタスク間で共通するニューラルネットワークのエンコーダの処理の一部を統合して、計算量を低減することができるニューラルネットワークが開示されている。
特開2019-177032号公報
"Recognizing Challenging Handwritten Annotations with Fully Convolutional Networks", 16th International Conference on Frontiers in Handwriting Recognition 2018 "Handwritten text line segmentation using Fully Convolutional Network", 2017 14th IAPR International Conference on Document Analysis and Recognition
特許文献1の技術によれば、複数のニューラルネットワークの間で、エンコーダ部分の計算を共有することで計算量を低減することができる。しかしながら、デコーダの計算量は依然として多いという課題がある。
上記課題を解決するために、本発明の画像処理システムは、ニューラルネットワークを用いて、処理対象画像から、認識対象のオブジェクトが含まれる領域と、前記認識対象のオブジェクトに対応する画素とを求める手段を有することを特徴とする画像処理システムであって、前記ニューラルネットワークは、前記処理対象画像に対して畳み込み処理を行うことにより特徴マップを得るエンコーダ部と、前記特徴マップに基づいて、前記認識対象のオブジェクトが含まれる領域を求める第1のデコーダ部と、前記特徴マップから、前記第1のデコーダ部で求めた前記認識対象のオブジェクトが含まれる領域に対応する部分の部分特徴マップを求める部分特徴マップ取得部と、前記部分特徴マップに基づいて、前記認識対象のオブジェクトに対応する画素を求める第2のデコーダ部と、を含む、ことを特徴とする。
本発明によれば、処理対象画像から、認識対象のオブジェクトが含まれる領域と、前記認識対象のオブジェクトに対応する画素とを求めるためのニューラルネットワークにおいて、エンコーダの計算量に加えてデコーダの計算量を低減することができる。
画像処理システムの構成を示した図である 図2(a)は画像処理装置の構成を示す図である。図2(b)は学習装置の構成を示す図である。図2(c)は画像処理サーバの構成を示す図である。図2(d)はOCRサーバの構成を示す図である 画像処理システムの学習シーケンスを示す図である。 画像処理システムの利用シーケンスを示す図である。 帳票の例を示す図である。 図5(a)は学習原稿スキャン画面を示す図である。図5(b)は手書き抽出正解データ作成画面を示す図である。図5(c)は手書き領域推定正解データ作成画面を示す図である。図5(d)は帳票処理画面を示す図である。 図6(a)は原稿サンプル画像生成処理のフローを示す図である。図6(b)は原稿サンプル画像受信処理のフローを示す図である。図6(c)は正解データ生成処理のフローを示す図である。 図7(a)は学習データ生成処理のフローを示す図である。図7(b)は学習処理のフローを示す図である。 図8(a)は手書き抽出の学習データの構成例を示す図である。図8(b)は手書き領域推定の学習データの構成例を示す図である。 図9(a)は帳票テキスト化依頼処理のフローを示す図である。図9(b)は帳票テキスト化処理のフローを示す図である。 帳票テキスト化処理におけるデータ生成処理の概要を示す図である。 ニューラルネットワークの構成を示す図である。 手書き領域と特徴マップの関係性を示す図である。 手書き領域特徴取得処理のフローを示す図である。 図14(a)は実施例2における帳票テキスト化処理のフローを示す図である。図14(b)は実施例2における手書き領域選別処理のフローを示す図である。 実施例3におけるニューラルネットワークの構成を示す図である。 図16(a)は実施例3における学習データ生成処理のフローを示す図である。図16(b)は実施例3における学習処理のフローを示す図である。 実施例3におけるにおける帳票テキスト化処理のフローを示す図である。 実施例4における帳票の例を示す図である。 図19(a)は押印抽出の学習データの構成例を示す図である。図19(b)は押印領域推定の学習データの構成例を示す図である。 図20(a)は押印照合依頼処理のフローを示す図である。図20(b)は押印照合処理のフローを示す図である。 図21(a)は処理対象画像の一例である。図21(b)は手書き領域推定および手書き抽出のニューラルネットワークの推論結果の一例である。 帳票の記入例を示す図である。
以下、本発明を実施するための形態について実施例にて具体的な構成を挙げ、図面を用いて説明する。なお、本発明を実現するための構成は実施例に記載された構成のみに限定されるものではない。同様の効果を得られる範囲で実施例に記載の構成の一部を省略または均等物に置き換えてもよい。
なお、以降では、手書き抽出画像に対して文字認識処理(OCR)を実行することを「手書きOCR」と呼ぶ。手書きされた文字を手書きOCRによってテキスト化(データ化)することができる。
(実施例1)
本実施例では、手書き領域推定および手書き抽出を、ニューラルネットワークを用いて構成する例を示す。
<画像処理システム>
図1は画像処理システムの構成を示した図である。画像処理システム100は、画像処理装置101、学習装置102、画像処理サーバ103、OCRサーバ104より構成される。画像処理装置101と学習装置102、画像処理サーバ103、OCRサーバ104は、ネットワーク105を介して接続されている。
画像処理装置101は、MFP(Multi Function Peripheral)と呼ばれるデジタル複合機などであり、印刷機能やスキャン機能(画像取得部111としての機能)を有する。
帳票の学習を行う場合、画像処理装置101は、サンプルとなる帳票などの複数枚の原稿をスキャンして、複数の画像データを生成する(以降この画像データを「原稿サンプル画像」と呼称する)。サンプルの原稿には、手書きで文字が記入された原稿を含む。そして、画像処理装置101は、ネットワーク105を介して、原稿サンプル画像を学習装置102に送信して帳票の学習処理を実行させる。
また、帳票画像の処理を行う場合、画像処理装置101は、認識対象となるオブジェクト(手書き文字)が含まれる原稿をスキャンして画像データを得る(以降この画像データを「処理対象画像」と呼称する)。そして、画像処理装置101は、得られた処理対象画像を、ネットワーク105を介して画像処理サーバ103に送信して帳票の認識処理を行わせる。
学習装置102は、画像処理装置101が生成した原稿サンプル画像を蓄積する画像蓄積部115として機能する。またこのようにして蓄積した画像から学習データを生成する学習データ生成部112として機能する。学習データは、手書き領域推定および手書き抽出を行うニューラルネットワークを学習するために用いられるデータである。学習装置102は、生成した学習データを用いて、ニューラルネットワークの学習をおこなう学習部113として機能する。学習部113の学習処理により、学習結果(ニューラルネットワークのパラメータなど)が生成される。学習装置102は、学習結果(学習モデル)を、ネットワーク105を介して、画像処理サーバ103に送信する。本発明におけるニューラルネットワークは、図11を用いて後述する。
画像処理サーバ103は、処理対象画像を変換する画像変換部114として機能する。画像変換部114は、処理対象画像から手書きOCRの対象とする画像を生成する。すなわち、画像変換部114は、画像処理装置101が生成した処理対象画像に対して手書き領域推定を行う。画像処理サーバ103は、学習装置102が生成した学習結果を用いることで、ニューラルネットワークにより推論して処理対象画像中の手書き文字が記入された領域を推定(特定)する。これにより手書き領域を得る。ここで、この手書き領域は、処理対象画像中の部分領域を示す情報であり、例えば、処理対象画像上の特定の画素位置(座標)と、当該画素位置からの幅や高さから成る情報として表現される。また、手書き領域は、帳票に記入された項目の数に応じて、複数得られる場合がある。さらに、画像変換部114は、手書き領域推定により得た手書き領域において手書き抽出を行う。この際、画像処理装置101は、学習装置102が生成した学習結果を用いることで、ニューラルネットワークにより推論して手書き領域中の手書き文字の画素(画素位置)を抽出(特定)する。そして、手書き抽出画像を得る。ここで、手書き領域は、処理対象画像における個々の記入欄等に基づき区分される領域である。一方、手書き抽出画像は、手書き領域中の手書き文字の画素を特定した画像である。すなわち、手書き領域内に活字の一部が含まれていたとしても、手書き抽出画像では手書きの画素のみが特定されており活字の画素は含まれない。したがって、手書き領域推定と手書き抽出の結果に基づけば、処理対象画像中の手書き文字のみを、個々の記入欄毎に区別して扱うことができる。そして、画像変換部114は、手書き抽出画像をOCRサーバ104に送信する。これにより、OCRサーバ104に、推定した手書き領域内の手書き文字のみが抽出された手書き抽出画像を、それぞれ手書きOCRの対象領域とすることを指示する。また、画像変換部114は、手書き領域および手書き抽出画像を参照して、処理対象画像上の特定の画素位置(座標)から手書き画素を除去した画像(以降「活字画像」と呼称する)を生成する。そして、画像変換部114は、活字画像上の領域であって、活字OCRの対象とする活字を含む領域(以降この領域を「活字領域」と呼称する)の情報を生成する。活字領域の生成については後述する。そして、画像変換部114は、活字画像と活字領域とをOCRサーバ104に送信する。これにより、OCRサーバ104に、活字画像上の活字領域を、それぞれ活字OCRすることを指示するものである。画像変換部114は、OCRサーバ104から手書きOCR結果および活字OCR結果を受信する。そしてこれを統合し、テキストデータとして画像処理装置101に送信する。以降このテキストデータを「帳票テキストデータ」と呼称する。
OCRサーバ104は、手書き文字を文字認識するのに適した手書きOCR部116と、活字文字を文字認識するのに適した活字OCR部117としての機能を備える。OCRサーバ104は、手書き抽出画像を受信すると、手書きOCR部116において、当該手書き抽出画像に対して手書きOCR処理を行ってテキストデータ(OCR結果)を取得する。手書きOCR部116は、当該テキストデータを画像処理サーバ103に送信する。また、OCRサーバ104は、活字画像と活字領域を受信すると、活字OCR部117において、活字画像中の活字領域に対して活字OCR処理を行ってテキストデータを取得する。活字OCR部117は、当該テキストデータを画像処理サーバ103に送信する。
<ニューラルネットワークの構成>
本システムにおけるニューラルネットワークの構成について説明する。図11はニューラルネットワークの構成を示す図である。本実施例のニューラルネットワーク1100は、画像の入力に対して複数種類の処理を行う。すなわち、ニューラルネットワーク1100は、入力された画像に対して、手書き領域推定、および手書き抽出を行う。そのため、本実施例のニューラルネットワーク1100は、それぞれ異なるタスクを処理する複数のニューラルネットワークを組み合わせた構造になっている。図11の例は、手書き領域推定ニューラルネットワークと、手書き抽出ニューラルネットワークが組み合わされた構造である。手書き領域推定ニューラルネットワークと手書き抽出ニューラルネットワークとで、エンコーダ(詳細後述)を共有している。なお、本実施例において、ニューラルネットワーク1100への入力画像は、グレースケール(1ch)の画像とするが、例えば、カラー(3ch)の画像など、他の形式でもよい。
ニューラルネットワーク1100は、図11に示すように、エンコーダ部1101と、手書き抽出に関する画素抽出デコーダ部1112、および、手書き領域推定に関する領域推定デコーダ部1122で構成される。エンコーダ部1101と画素抽出デコーダ部1112とによって、手書き抽出ニューラルネットワークが構成される。また、エンコーダ部1101と領域推定デコーダ部1122とによって、手書き領域推定ニューラルネットワークが構成される。2つのニューラルネットワークにおいて、両ニューラルネットワークで同様の計算を行う層であるエンコーダ部1101を共有する。そして、タスクに応じて画素抽出デコーダ部1112および1122を分岐する構造である。ニューラルネットワーク1100に画像が入力されると、エンコーダ部1101の計算を行う。そして、その計算結果(特徴マップ)を画素抽出デコーダ部1112および1122に入力し、画素抽出デコーダ部1112の計算を経て手書き抽出結果を、領域推定デコーダ部1122の計算を経て手書き領域推定結果を出力する。
エンコーダ部1101は、畳み込み層EC1,EC2,EC3,EC4とプーリング層EP1,EP2,EP3で構成される。畳み込み層EC1,EC2,EC3,EC4は、それぞれ入力に対して所定のカーネルサイズのフィルタで畳み込み計算を行って特徴を抽出し、所定のチャネル数分の特徴マップを出力する。ここで、特徴マップとは、手書き記入の特徴情報の集合である。畳み込み層EC1,EC2,EC3,EC4とプーリング層EP1,EP2,EP3の出力は特徴マップである。なお、畳み込み層EC1には入力画像が、畳み込み層EC2,EC3,EC4には直前の層(プーリング層(後述))が出力する特徴マップが入力される。プーリング層EP1,EP2,EP3は、それぞれ直前の畳み込み層EC1,EC2,EC3が出力した各特徴マップに対して、所定のカーネルサイズ領域毎の最大値を出力することで、入力された特徴マップからより重要な特徴情報を抽出する。このようにして入力画像を、手書き領域推定ないし手書き抽出に必要な特徴情報に変換する。なお、本実施例では、例えば、プーリング層EP1,EP2,EP3は、それぞれ入力された各特徴マップの解像度を半分にして出力する。
画素抽出デコーダ部1112は、逆畳み込み層DDp1,DDp2,DDp3,DDp4とアップサンプリング層DUp1,DUp2,DUp3で構成される。逆畳み込み層DDp1,DDp2,DDp3,DDp4は、それぞれ入力された各特徴マップに対して指定のカーネルサイズのフィルタで逆畳み込み計算を行う。そして、特徴マップ内の特徴情報を変換して、入力画像上の各画素のクラス(手書き画素であるか否か)を推定していく。アップサンプリング層DUp1,DUp2,DUp3は、それぞれ直前の逆畳み込み層DDp1,DDp2,DDp3が出力した各特徴マップについて解像度を上げ、プーリング層EP1,EP2,EP3で落とした解像度を復元する。なお、本実施例では、例えば、アップサンプリング層DUp1,DUp2,DUp3は、それぞれ入力された各特徴マップの解像度を2倍にして出力する。なお、逆畳み込み層DDp4は、入力画像の各画素のクラス確率値を推定したクラス毎の画像を出力する(出力枚数はチャネル数=分類したいクラス数)。逆畳み込み層DDp4からの出力を、確率分布に正規化し、画素毎に各クラスの確率を表したマップを出力する。そして、最も高い確率を持つクラス毎に画素を分けて画像化し、手書き抽出画像を出力する。ここで、確率分布に正規化する手段として、例えば、ソフトマックス関数を用いる。エンコーダ部1101と画素抽出デコーダ部1112とから成るサブネットワークにより、手書き画素抽出が成される。
以上の画素抽出デコーダ部1112の計算にあたり、プーリング層EP1,EP2,EP3を経て特徴マップの解像度を落としているため、画素抽出デコーダ部1112が計算する特徴マップは局所的な特徴が失われてしまっている。そこで、エンコーダ部1101が処理過程で抽出した特徴マップを画素抽出デコーダ部1112に渡してクラス確率値の推定精度を向上させる。すなわち、アップサンプリング層DUp1の出力に畳み込み層EC3の出力を、アップサンプリング層DUp2の出力に畳み込み層EC2の出力を、アップサンプリング層DUp3の出力に畳み込み層EC1の出力を結合する。以降、この処理手法を「スキップコネクション」と呼称する。
領域推定デコーダ部1122は、逆畳み込み層DDr1,DDr2,DDr3とアップサンプリング層DUr1,DUr2,DUr3で構成される。領域推定デコーダ部1122を構成する逆畳み込み層DDr1,DDr2,DDr3は、それぞれ画素抽出デコーダ部1112を構成する逆畳み込み層DDp1,DDp2,DDp3と同様の働きをする。アップサンプリング層DUr1,DUr2,DUr3についても、それぞれ画素抽出デコーダ部1112を構成するアップサンプリング層DUp1,DUp2,DUp3と同様の働きをする。なお、アップサンプリング層DUr3は、入力画像の各画素のクラス確率値を推定したクラス毎の画像を出力する(出力枚数はチャネル数=分類したいクラス数)。逆畳み込み層DDp3からの出力を、確率分布に正規化し、画素毎に各クラスの確率を表したマップを出力する。そして、最も高い確率を持つクラス毎に画素を分けて、手書き領域を推定する。ここで、確率分布に正規化する手段として、例えば、ソフトマックス関数を用いる。エンコーダ部1101と領域推定デコーダ部1122とから成るサブネットワークにより、手書き領域推定が成される。
そして、領域推定デコーダ部1122の計算においても、スキップコネクションを導入してクラス確率値の推定精度を向上させる。すなわち、アップリング層DUr1の出力に畳み込み層EC3の出力を、アップリング層DUr2の出力に畳み込み層EC2の出力を結合する。
なお、本実施例では、領域推定デコーダ部1122の各プーリング層の間には、畳み込み層をひとつ配置する例を示したが、複数の畳み込み層を配置してもよい。また、領域推定デコーダ部1122と画素抽出デコーダ部1112の各アップサンプリング層の間には、逆畳み込み層をひとつ配置する例を示したが、複数の逆畳み込み層を配置してもよい。また、畳み込み層とそれに続くプーリング層を一つの構成単位としてとらえた場合、本実施例では、領域推定デコーダ部1122に3つの当該構成単位を設けたが、これよりも多い、あるいは少ない数の当該構成単位を設けてもよい。また、アップサンプリング層とそれに続く逆畳み込み層を一つの構成単位としてとらえた場合、本実施例では、領域推定デコーダ部1122に2つの当該構成単位を設け、画素抽出デコーダ部1112には3つの当該構成単位を設けた。しかし、これに限らず、これよりも多い、あるいは少ない数の当該構成単位を設けてもよい。また、本実施例では、プーリング層として最大値を出力する例を示したが、カーネルに該当する特徴マップ画素の平均値を出力するものなど、他の形態のものを用いてもよい。
以上に述べた領域推定デコーダ部1122は、画素抽出デコーダ部1112を構成する逆畳み込み層DDp4を除いて同様の構成となるが、画素抽出デコーダ部1112よりも計算量の少ない構成とすることができる。例えば、領域推定デコーダ部1122の逆畳み込み層DDr1,DDr2,DDr3について、各層の出力チャネル数を、それぞれ同様の働きをする画素抽出デコーダ部1112の逆畳み込み層DDp1,DDp2,DDp3の出力チャネル数の半分とする。また、同様に、領域推定デコーダ部1122のアップサンプリング層DUr1,DUr2,DUr3について、各層の出力チャネル数を、画素抽出デコーダ部1112のアップサンプリング層DUp1,DUp2,DUp3の出力チャネル数の半分とする。この理由は、手書き部分の画素を1つ1つ抽出する手書き抽出タスクと、手書き部分の画素のまとまりである領域を推定する手書き領域推定タスクでは、タスクの難易度が異なるためである。すなわち、手書き抽出タスクより難易度が低い手書き領域推定タスクを処理する領域推定デコーダ部1122は、画素抽出デコーダ部1112よりも計算量の少ない小さな規模のニューラルネットワークとして構成することができる。領域推定デコーダ部1122の構成を簡素化することで、画素抽出デコーダ部1112と同等の複雑さの構成で手書き領域推定を行うよりもより計算量を抑えることができる。なお、本実施例では畳み込み層の数を削減したり、各畳み込み層の出力チャネル数を少なくしたりすることでニューラルネットワークの規模を小さくする例を示した。畳み込み層の数、各層の出力チャネル数に限らず、例えば、各畳み込み層の畳み込み回数を少なくしたりしてもよい。
以上のニューラルネットワーク1100は、前述したとおり、エンコーダ部1101の計算を、画素抽出デコーダ部1112および領域推定デコーダ部1122で共有する。すなわち、エンコーダ部1101の出力する特徴マップを画素抽出デコーダ部1112および領域推定デコーダ部1122の入力とするものである。ここで、手書き画素は手書き領域内に存在するものである。そのため、領域推定デコーダ部1122で推定した手書き領域に対応する部分のみに絞った特徴マップを求めて、画素抽出デコーダ部1112に入力する。これにより、手書き画素の存在しない領域である非手書き領域で手書き抽出を行う計算量を削減でき、計算量が低減できる。これについて、図9および図13を用いて後述する。
<学習シーケンス>
本システムにおける学習シーケンスについて説明する。図3Aは画像処理システムの学習シーケンスを示す図である。
ステップS301において、ユーザが画像処理装置101に対して原稿の読取指示を行うと、画像取得部111は、原稿を読み取って原稿サンプル画像を生成する(S302)。
上述のように生成された原稿サンプル画像は、学習データ生成部112に送信される(S303)。なお、このとき、原稿サンプル画像にID情報を付与するとよい。このID情報は例えば、画像取得部111として機能する画像処理装置101を識別するための情報である。なお、ID情報として、画像処理装置101を操作するユーザを識別するためのユーザ識別情報や、ユーザが所属するグループを識別するためのグループ識別情報であってもよい。
画像が送信されてくると、学習データ生成部112は、画像蓄積部115に原稿サンプル画像を蓄積する(S304)。
ユーザが学習装置102に対して原稿サンプル画像に関する正解データの付与指示を行うと(S305)、学習データ生成部112は当該正解データを取得する。そして原稿サンプル画像に紐づけて画像蓄積部115に蓄積する(S306)。正解データは、ニューラルネットワークの学習に用いるデータである。正解データの付与方法については後述する。そして、学習データ生成部112は、このようにして蓄積したデータに基づいて学習データを生成する(S307)。このとき、特定のID情報に基づく原稿サンプル画像のみを用いて学習データを生成してもよい。その後、学習データ生成部112は、学習部113に学習データを送信する(S308)、特定のID情報に基づく画像のみで学習データを生成した場合は、ID情報も併せて送信する。学習部113は、受信した学習データに基づき、学習処理を行い、学習モデルを更新する(S309)。学習部113は、ID情報ごとに学習モデルを保持し、対応する学習データのみで学習を行ってもよい。このようにID情報と学習モデルを紐づけることで、特定の利用環境に特化した学習モデルを構築することができる。
<利用シーケンス>
本システムにおける利用シーケンスについて説明する。図3Bは画像処理システムの利用シーケンスを示した図である。
S351において、ユーザが原稿(帳票)の読取指示を行うと、画像取得部111は、原稿を読み取って処理対象画像を生成する(S352)。ここで読み取られる画像は、例えば図4(a)および(b)に示すような帳票400や帳票450である。これらの帳票は氏名の記入欄(氏記入欄401と名記入欄402、および氏名記入欄451)や、住所記入欄403および452、電話番号記入欄404および453を備え、それぞれ、氏名や住所、電話番号が手書きで記入されている。また、各記入欄に対応する項目名の見出し411、412、413、414、461、462、463には、原稿に予め印刷されていた活字の画像が含まれている。なお、これら記入欄の配置(帳票のレイアウト)は、帳票作成元により決定されるため、読み取った帳票毎に異なる画像となりうる(いわゆる非定型帳票の画像である)。
上述のように読み取られた処理対象画像は、画像変換部114送信される(S353)。なお、このとき、送信データにID情報を付与するとよい。
データを受信すると、画像変換部114は、処理対象画像のテキスト化指示を受け付ける(S354)。このとき、画像変換部114は、画像取得部111をデータの返信先として記憶する。手書き文字の加工指示を受け付けた画像変換部114は、最新の学習モデルを学習部113に要求する(S355)。これに応じて、学習部113は最新の学習モデルを画像変換部114に送信する(S356)。画像変換部114からの要求時にID情報が指定されていた場合は、ID情報に対応する学習モデルを送信する。画像変換部114は、取得した学習モデルに基づいて、処理対象画像に対して、手書き領域推定および手書き抽出を行う(S357)。そして、これにより生成された手書き領域毎の手書き抽出画像を手書きOCR部116に送信する(S358)。手書きOCR部116は、手書き抽出画像について手書きOCR処理を施し、テキストデータ(手書き)を取得する(S359)。手書きOCR部116は、取得したテキストデータ(手書き)を画像変換部114に送信する(S360)。続けて、画像変換部114は処理対象画像から活字画像と活字領域とを生成する(S361)。そして、活字OCR部117に活字画像と活字領域を送信する(S362)。活字OCR部117は、活字画像に活字OCR処理を施し、テキストデータ(活字)を取得する(S363)。そして、取得したテキストデータ(活字)を画像変換部114に送信する(S364)。その後、画像変換部114は、テキストデータ(手書き)、テキストデータ(活字)に少なくとも基づいて帳票テキストデータを生成する(S365)。画像変換部114は、帳票テキストデータを画像取得部111に送信する(S366)。帳票テキストデータを取得した画像取得部111は、帳票テキストデータの利用画面をユーザに提示する(S367)。このあと、画像取得111は、帳票テキストデータの利用用途に応じて、帳票テキストデータを出力する。例えば、別体外部の業務システム(不図示)に送信したり、印刷したりして出力する。
<装置構成>
上述したシステムを実現するために、各装置は次のような構成を備える。図2(a)は画像処理装置の構成を示す図である。図2(b)は学習装置の構成を示す図である。図2(c)は画像処理サーバの構成を示す図である。図2(d)はOCRサーバの構成を示す図である。
図2(a)に示すように、画像処理装置101は、次を備える。CPU201、ROM202、RAM204、プリンタデバイス205、スキャナデバイス206、原稿搬送デバイス207、ストレージ208、入力デバイス209、表示デバイス210、及び外部インタフェース211を備える。各デバイスは、データバス203によって相互通信可能に接続されている。
CPU201は、画像処理装置101を統括的に制御するためのコントローラである。CPU201は、ROM202に格納されているブートプログラムによりOS(オペレーティングシステム)を起動する。このOS上で、ストレージ208に記憶されているコントローラプログラムが実行される。コントローラプログラムは、画像処理装置101を制御するためのプログラムである。CPU201は、データバス203によって接続されている各デバイスを統括的に制御する。RAM204は、CPU201の主メモリやワークエリア等の一時記憶領域として動作する。
プリンタデバイス205は、画像データを用紙(記録材、シート)上に印刷するものである。これには感光体ドラムや感光体ベルトなどを用いた電子写真印刷方式や、微小ノズルアレイからインクを吐出して用紙上に直接画像を印字するインクジェット方式などがあるが、どの方式でもかまわない。スキャナデバイス206は、CCDなどの光学読取装置を用いて紙などの原稿上の走査を行い、電気信号データを得てこれを変換し、画像データを生成する。また、ADF(オート・ドキュメント・フィーダ)などの原稿搬送デバイス207は、原稿搬送デバイス207上の原稿台に載置された原稿を1枚ずつスキャナデバイス206に搬送する。
ストレージ208は、HDDやSSDなどの、読み出しと書き込みが可能な不揮発メモリであり、ここには、前述のコントローラプログラムなど、様々なデータが記録される。入力デバイス209は、タッチパネルやハードキーなどから構成さる入力装置である。入力デバイス209は、ユーザの操作指示を受け付ける。そして、指示位置を含む指示情報をCPU201に伝達する。表示デバイス210は、LCDやCRTなどの表示装置である。表示デバイス210は、CPU201が生成した表示データを表示する。CPU201は、入力デバイス209より受信した指示情報と、表示デバイス210に表示させている表示データとから、いずれの操作がなされたかを判定する。そしてこの判定結果に応じて、画像処理装置101を制御するとともに、新たな表示データを生成し表示デバイス210に表示させる。
外部インタフェース211は、LANや電話回線、赤外線といった近接無線などのネットワークを介して、外部機器と、画像データをはじめとする各種データの送受信を行う。外部インタフェース211は、学習装置102やPC(不図示)などの外部機器より、PDLデータを受信する。CPU201は、外部インタフェース211が受信したPDLデータを解釈し、画像を生成する。生成した画像は、プリンタデバイス205により印刷したり、ストレージ108に記憶したりする。また、外部インタフェース211は、画像処理サーバ103などの外部機器より画像データを受信する。受信した画像データをプリンタデバイス205により印刷したり、ストレージ108に記憶したり、外部インタフェース211により、他の外部機器に送信したりする。
図2(b)の学習装置102は、CPU231、ROM232、RAM234、ストレージ235、入力デバイス236、表示デバイス237、外部インタフェース238、GPU239を備える。各部は、データバス233を介して相互にデータを送受信することができる。
CPU231は、学習装置102の全体を制御するためのコントローラである。CPU231は、不揮発メモリであるROM232に格納されているブートプログラムによりOSを起動する。このOSの上で、ストレージ235に記憶されている学習データ生成プログラムおよび学習プログラムを実行する。CPU231が学習データ生成プログラムを実行することより、学習データを生成する。また、CPU231が学習プログラムを実行することにより、手書き抽出を行うニューラルネットワークを学習する。CPU231は、データバス233などのバスを介して各部を制御する。
RAM234は、CPU231のメインメモリやワークエリア等の一時記憶領域として動作するものである。ストレージ235は、読み出しと書き込みが可能な不揮発メモリであり、前述の学習データ生成プログラムや学習プログラムを記録する。
入力デバイス236は、マウスやキーボードなどから構成さる入力装置である。表示デバイス237は、図2(a)を用いて説明した表示デバイス210と同様である。
外部インタフェース238は、図2(a)を用いて説明した外部インタフェース211と同様である。
GPU239は、画像処理プロセッサであり、CPU231と協調して画像データの生成やニューラルネットワークの学習を行う。
図2(c)の画像処理サーバ103は、CPU261、ROM262、RAM264、ストレージ265、入力デバイス266、表示デバイス267、外部インタフェース268を備える。各部は、データバス263を介して相互にデータを送受信することができる。
CPU261は、画像処理サーバ103の全体を制御するためのコントローラである。CPU261は、不揮発メモリであるROM262に格納されているブートプログラムによりOSを起動する。このOSの上で、ストレージ265に記憶されている画像処理サーバプログラムを実行する。CPU261がこの画像処理サーバプログラムを実行することより、処理対象画像に対して手書き領域推定および手書き抽出を行う。CPU261は、データバス263などのバスを介して各部を制御する。
RAM264は、CPU261のメインメモリやワークエリア等の一時記憶領域として動作するものである。ストレージ265は、読み出しと書き込みが可能な不揮発メモリであり、前述の画像処理プログラムを記録する。
入力デバイス266は、図2(b)を用いて説明した入力デバイス236と同様である。表示デバイス267は、図2(a)を用いて説明した表示デバイス210と同様である。
外部インタフェース268は、図2(a)を用いて説明した外部インタフェース211と同様である。
図2(d)のOCRサーバ104は、CPU291、ROM292、RAM294、ストレージ295、入力デバイス296、表示デバイス297、外部インタフェース298を備える。各部は、データバス293を介して相互にデータを送受信することができる。
CPU291は、OCRサーバ104の全体を制御するためのコントローラである。CPU291は、不揮発メモリであるROM292に格納されているブートプログラムによりOSを起動する。このOSの上で、ストレージ295に記憶されているOCRサーバプログラムを実行する。CPU291がこのOCRサーバプログラムを実行することより、手書き抽出画像や活字画像の手書き文字や活字を認識してテキスト化する。CPU291は、データバス293などのバスを介して各部を制御する。
RAM294は、CPU291のメインメモリやワークエリア等の一時記憶領域として動作するものである。ストレージ295は、読み出しと書き込みが可能な不揮発メモリであり、前述の画像処理プログラムを記録する。
入力デバイス296は、図2(b)を用いて説明した入力デバイス236と同様である。表示デバイス297は、図2(a)を用いて説明した表示デバイス210と同様である。
外部インタフェース298は、図2(a)を用いて説明した外部インタフェース211と同様である。
<操作画面>
図3Aの学習シーケンスにおけるS301に示したユーザの指示は、次のような操作画面で行われる。図5(a)は学習原稿スキャン画面を示す図である。学習原稿スキャン画面500は、画像処理装置101の表示デバイス210に表示される画面の一例である。図5(a)に示すように、学習原稿スキャン画面500は、プレビュー領域501、スキャンボタン502、送信開始ボタン503を備える。
スキャンボタン502はスキャナデバイス206にセットされた原稿の読取を開始するためのボタンである。スキャンが完了すると、原稿サンプル画像が生成され、プレビュー領域501に表示される。スキャナデバイス206に別の原稿をセットし、スキャンボタン502を再び押すことで、複数の原稿サンプル画像をまとめて保持しておくこともできる。
原稿が読み取られると、送信開始ボタン503が指示可能となる。送信開始ボタン503を指示すると、原稿サンプル画像が学習装置102に送信される。
また、図3Aの学習シーケンスにおけるS305に示したユーザの指示は、次のような操作画面で行われる。図5(b)は手書き抽出正解データ作成画面を示す図である。図5(c)は手書き領域推定正解データ作成画面を示す図である。ユーザは、手書き抽出正解データ作成画面および手書き領域推定正解データ作成画面の表示内容に基づいて操作し、正解データを作成する。
手書き抽出正解データ作成画面520は、学習装置102の表示デバイス237に表示される画面の一例である。なお、手書き抽出正解データ作成画面520は学習装置102にネットワークを介して接続された他の装置(PC等)の表示デバイスに表示され、当該他の装置を介して学習装置102に対する指示を行うように構成してもよい。図5(b)に示すように、手書き抽出正解データ作成画面520は、画像表示領域521、画像選択ボタン522、拡大ボタン523、縮小ボタン524、抽出ボタン525、推定ボタン526、保存ボタン527を備える。
画像選択ボタン522は、画像処理装置101から受信し、画像蓄積部115に蓄積されている原稿サンプル画像を選択するためのボタンである。画像選択ボタン522を指示すると、選択画面(不図示)が表示され、原稿サンプル画像を選択することができる。原稿サンプル画像を選択すると、画像表示領域521に選択した原稿サンプル画像が表示される。ユーザは画像表示領域521に表示された原稿サンプル画像に対して操作し、正解データを作成する。
拡大ボタン523と縮小ボタン524は、画像表示領域521の表示を拡大あるいは縮小するためのボタンである。拡大ボタン523や縮小ボタン524を指示することにより、正解データの作成が行いやすいよう、画像表示領域521に表示されている原稿サンプル画像を拡大および縮小して表示することができる。
抽出ボタン525および推定ボタン526は、手書き抽出と手書き領域推定のいずれの正解データを作成するかを選択するためのボタンである。いずれかを選択すると、選択したボタンは強調して表示される。抽出ボタン525を選択すると、手書き抽出の正解データを作成する状態となる。このボタンを選択した場合、ユーザは、手書き抽出の正解データを次のように操作して作成する。ユーザは、図5(b)に示すように、入力デバイス236を介してマウスカーソルを操作し、画像表示領域521に表示されている原稿サンプル画像中の手書き文字をなぞって選択する。学習データ生成部112は、この操作を受信すると、上記操作により選択された原稿サンプル画像上の画素位置を記録する。すなわち、手書き抽出の正解データは、原稿サンプル画像上の、手書きに該当する画素の位置である。一方、推定ボタン526を選択すると、手書き領域推定の正解データを作成する状態となる。このボタンを選択した場合、ユーザは、手書き領域推定の正解データを次のように操作して作成する。ユーザは、図5(c)に点線枠で示すように、入力デバイス236を介してマウスカーソルを操作する。そして、画像表示領域521に表示されている原稿サンプル画像中の手書き文字が記入されている罫線に囲まれた領域内(ここでは、記入欄内であり罫線は含まない)を選択する。これはすなわち、帳票の記入欄毎に領域を選択する操作である。学習データ生成部112は、この操作を受信すると、上記操作により選択された領域を記録する。すなわち、手書き領域推定の正解データは、原稿サンプル画像上の、記入欄内の領域(手書きが記入されている領域)である(以降、手書きが記入された領域を「手書き領域」と呼称する)。
保存ボタン527は、作成された正解データを保存するためのボタンである。手書き抽出の正解データは、次のような画像として、画像蓄積部115に蓄積される。原稿サンプル画像と同じサイズ(幅および高さ)を有する。ユーザにより選択された手書き文字位置の画素の値は、手書きを示す値(例えば255、以降も同様)である。それ以外の画素の値は、手書きではないことを示す値(例えば0、以降も同様)である。以降、このような手書き抽出の正解データである画像を「手書き抽出正解画像」と呼称する。手書き抽出正解画像の例を図4(c)に示す。また、手書き領域推定の正解データは、次のような画像として、画像蓄積部115に蓄積される。原稿サンプル画像と同じサイズ(幅および高さ)を有する。ユーザにより選択された手書き領域に該当する画素の値は、手書き領域であることを示す値(例えば255、以降も同様)である。また、それ以外の画素の値は手書き領域ではないことを示す値(例えば0、以降も同様)である。以降、このような手書き領域推定の正解データである画像を「手書き領域推定正解画像」と呼称する。手書き領域推定正解画像の例を図4(d)に示す。
また、図3Bの利用シーケンスにおけるS351に示したユーザの指示は、次のような操作画面で行われる。図5(d)は帳票処理画面を示す図である。図5(d)に示すように、帳票処理画面520は、プレビュー領域541、スキャンボタン542、送信開始ボタン543を備える。
スキャンボタン542はスキャナデバイス206にセットされた原稿の読取を開始するためのボタンである。スキャンが完了すると、処理対象画像が生成され、プレビュー領域541に表示される。
原稿が読み取られると、送信開始ボタン543が指示可能となる。送信開始ボタン543を指示すると、処理対象画像が学習サーバ103に送信される。
<原稿サンプル画像生成処理>
次に、画像処理装置101による原稿サンプル画像生成処理について説明する。図6(a)は原稿サンプル画像生成処理のフローを示す図である。この処理は、CPU201が、ストレージ208に記録されているコントローラプログラムを読み出し、RAM204に展開して実行することで実現される。これは、ユーザが、画像処理装置101の入力デバイス209を操作することにより開始される。
CPU201は、S601において、原稿のスキャン指示がされたか否かを判定する。ユーザが、入力デバイス209を介して、原稿をスキャンするための所定の操作(スキャンボタン502の指示)を行った場合には、YESと判定し、S602に遷移する。そうでなければ、NOと判定し、S604に遷移する。
CPU201は、S602において、スキャナデバイス206や原稿搬送デバイス207を制御して、原稿をスキャンして原稿サンプル画像を生成する。原稿サンプル画像は、グレースケールの画像データとして生成される。
CPU201は、S603において、S602で生成した原稿サンプル画像を、外部インタフェース211を介して、学習装置102に送信する。
CPU201は、S604において、処理を終了するか否かを判定する。ユーザが、原稿サンプル画像生成処理を終了する所定の操作を行った場合には、YESと判定して、処理を終了する。そうでなければ、NOと判定し、S601に遷移する。
以上の処理によって、画像処理装置101は、原稿サンプル画像を生成して学習装置102に送信する。ユーザの操作や、原稿搬送デバイス207に載置した原稿枚数に応じて、原稿サンプル画像が複数取得される。
<原稿サンプル画像受信処理>
次に、学習装置102による原稿サンプル画像受信処理について説明する。図6(b)は原稿サンプル画像受信処理のフローを示す図である。この処理は、CPU231が、ストレージ235に記録されている学習データ生成プログラムを読み出し、RAM234に展開して実行することで実現される。これは、ユーザが、学習装置102の電源をON(オン)にすると開始される。
CPU231は、S621において、原稿サンプル画像を受信したか否かを判定する。CPU231は、外部インタフェース238を介して画像データを受信していたならば、YESと判定し、S622に遷移する。そうでなければ、NOと判定し、S623に遷移する。
CPU231は、S622において、受信した原稿サンプル画像を、ストレージ235の所定の領域に記録する。
CPU231は、S623において、処理を終了するか否かを判定する。ユーザが、学習装置102の電源のOFFなどの、原稿サンプル画像受信処理を終了する所定の操作を行った場合には、YESと判定して、処理を終了する。そうでなければ、NOと判定し、S621に遷移する。
<正解データ生成処理>
次に、学習装置102による正解データ生成処理について説明する。図6(c)は正解データ生成処理のフローを示す図である。
この処理は、学習装置102の学習データ生成部112により実現される。これは、ユーザが、学習装置102の入力デバイス236を介して、所定の操作を行うことで開始される。
CPU231は、S641において、原稿サンプル画像の選択指示がされたか否かを判定する。ユーザが、入力デバイス236を介して、原稿サンプル画像を選択するための所定の操作(画像選択ボタン522の指示)を行った場合には、YESと判定し、S642に遷移する。そうでなければ、NOと判定し、S643に遷移する。
CPU231は、S642において、S641でユーザが選択した原稿サンプル画像を、ストレージ235から読み出してユーザに対して出力する(画像表示領域521に表示)。
CPU231は、S643において、ユーザが正解データの入力指示を行ったか否かを判定する。ユーザが、入力デバイス236を介して、前述したように、原稿サンプル画像上の手書き文字をなぞる、あるいは、手書き文字が記入されている罫線枠をなぞる操作を行っていたならば、YESと判定し、S644に遷移する。そうでなければ、NOと判定し、S647に遷移する。
CPU231は、S644において、ユーザが入力した正解データは、手書き抽出の正解データであるか否かを判定する。CPU231は、ユーザが手書き抽出の正解データ作成を指示する操作を行っていたならば(抽出ボタン525の選択)、YESと判定し、S645に遷移する。そうでない場合、すなわち、ユーザが入力した正解データは手書き領域推定の正解データである場合(推定ボタン526を選択している)、S646に遷移する。
CPU231は、S645において、ユーザが入力した手書き抽出の正解データを、RAM234に一時的に記憶する。前述のとおり、手書き抽出の正解データは、原稿サンプル画像中の手書きに該当する画素の位置情報である。
CPU231は、S646において、ユーザが入力した手書き領域推定の正解データをRAM234に一時的に記憶する。前述のおとり、手書き領域推定の正解データは、原稿サンプル画像上の、手書き領域に該当する領域情報である。
CPU231は、S647において、正解データの保存指示がなされたか否かを判定する。ユーザが、入力デバイス236を介して、正解データを保存するための所定の操作(保存ボタン527の指示)を行った場合には、YESと判定し、S648に遷移する。そうでなければ、NOと判定し、S650に遷移する。
CPU231は、S648において、手書き抽出正解画像を生成し、手書き抽出の正解データとして保存する。CPU231は、次のようにして手書き抽出正解画像を生成する。CPU231は、手書き抽出正解画像として、S642で読み出した原稿サンプル画像と同じサイズの画像を生成する。当該画像の全ての画素を、手書きではないことを示す値にする。次いで、S645においてRAM234に一時的に記憶した位置情報を参照し、手書き抽出正解画像上の該当する位置の画素の値を、手書きであることを示す値に変更する。このようにして生成した手書き抽出正解画像を、S642で読み出した原稿サンプル画像と関連付けて、ストレージ235の所定の領域に保存する。
CPU231は、S649において、手書き領域推定正解画像を生成し、手書き領域推定の正解データとして保存する。CPU231は、次のようにして手書き領域推定正解画像を生成する。CPU231は、手書き領域推定正解画像として、S642で読み出した原稿サンプル画像と同じサイズの画像を生成する。当該画像の全ての画素を、手書き領域ではないことを示す値にする。次いで、S646においてRAM234に一時的に記憶した領域情報を参照し、手書き領域推定正解画像上の該当する領域内の画素の値を、手書き領域であることを示す値に変更する。このようにして生成した手書き領域推定正解画像を、S642で読み出した原稿サンプル画像、および、S648において作成した手書き抽出正解画像と関連付けて、ストレージ235の所定の領域に保存する。
CPU231は、S650において、処理を終了するか否かを判定する。ユーザが、正解データ生成処理を終了する所定の操作を行った場合には、YESと判定して、処理を終了する。そうでなければ、NOと判定し、S641に遷移する。
<学習データ生成処理>
次に、学習装置102による学習データ生成処理について説明する。図7(a)は学習データ生成処理のフローを示す図である。この処理は、学習装置102の学習データ生成部112により実現される。これは、ユーザが、画像処理装置101の入力デバイス209を介して、所定の操作を行うことで開始される。
まずCPU231は、S701において、ストレージ235に記憶している原稿サンプル画像を選択して読み出す。図6(b)のフローチャートのS622の処理ステップにより、ストレージ235には複数の原稿サンプル画像が記録されているので、その中からランダムにひとつを選択する。
CPU231は、S702において、ストレージ235に記憶している手書き抽出正解画像を読み出す。S648の処理によって、S701で読み出した原稿サンプル画像に関連付けられた手書き抽出正解画像がストレージ235に記憶されているので、これを読み出す。
CPU231は、S703において、ストレージ235に記憶している手書き領域推定正解画像を読み出す。S649の処理によって、S701で読み出した原稿サンプル画像に関連付けられた手書き領域推定正解画像がストレージ235に記憶されているので、これを読み出す。
CPU231は、S704において、S701で読み出した原稿サンプル画像中の一部(例えば縦x横=256x256の大きさ)を切り出して、学習データに用いる入力画像を生成する。切り出す位置はランダムに決定する。
CPU231は、S705において、S702で読み出した手書き抽出正解画像中の一部を切り出して、手書き抽出の学習データに用いる正解ラベル画像(教師データ、正解画像データ)を生成する。以降この正解ラベル画像を「手書き抽出正解ラベル画像」と呼称する。切り出す位置およびサイズは、S704で原稿サンプル画像から入力画像を切り出した位置およびサイズと同様とする。
CPU231は、S706において、S703で読み出した手書き領域推定正解画像中の一部を切り出して、手書き領域推定の学習データに用いる正解ラベル画像を生成する(以降この正解ラベル画像を「手書き領域推定正解ラベル画像」と呼称する)。切り出す位置およびサイズは、S704で原稿サンプル画像から入力画像を切り出した位置およびサイズと同様とする。
CPU231は、S707において、S704で生成した入力画像と、S706で生成した手書き抽出正解ラベル画像とを対応付け、手書き抽出の学習データとしてストレージ235の所定の領域に保存する。本実施例では、図8(a)のような学習データが保存される。
CPU231は、S708において、S704で生成した入力画像と、S706で生成した手書き領域推定正解ラベル画像とを対応付け、手書き領域推定の学習データとしてストレージ235の所定の領域に保存する。本実施例では、図8(b)のような学習データが保存される。なお、手書き領域推定正解ラベル画像は、S704で生成した入力画像と対応付けることで、S706で生成した手書き抽出正解ラベル画像とも対応付けがされるようになっている。
CPU231は、S709において、学習データ生成処理を終了するか否かを判定する。CPU231は、予め決定した学習データの数(本フローチャートの開始時に、学習置102の入力デバイス236を介して、ユーザが指定するなどして決定)だけ学習データを生成していたならば、YESと判定し、処理を終了する。そうでなければ、NOと判定し、S701に遷移する。
以上により、ニューラルネットワーク1100の学習データが生成される。ニューラルネットワークの汎用性を高めるために、学習データの加工を行っても良い。例えば、入力画像を所定の範囲(例えば、50%~150%の間)からランダムに選択して決定する変倍率で変倍する。手書き領域推定および手書き抽出の正解ラベル画像も同様に変倍する。あるいは、入力画像を所定の範囲(例えば、-10度~10度の間)からランダムに選択して決定する回転角度で回転する。手書き領域推定および手書き抽出の正解ラベル画像も同様に回転する。変倍や回転を考慮すれば、S704やS705、S706で入力画像や手書き領域推定および手書き抽出の正解ラベル画像を切り出す際に、少し大きめのサイズ(例えば、縦x横=512x512の大きさ)で切り出す。そして、変倍および回転後に、最終的な入力画像や手書き領域推定および手書き抽出の正解ラベル画像のサイズ(例えば、縦x横=256x256)となるよう、中心部分から切り出す。あるいは、入力画像の各画素の輝度を変更して加工してもよい。すなわち、ガンマ補正を用いて入力画像の輝度を変更する。ガンマ値は所定の範囲(例えば、0.1~10.0の間)からランダムに選択して決定する。
<学習処理>
次に、学習装置102による学習処理について説明する。図7(b)は学習処理のフローを示す図である。この処理は、学習装置102の学習部113により実現される。これは、ユーザが、学習装置102の入力デバイス236を介して、所定の操作を行うことで開始される。なお、本実施例において、ニューラルネットワーク1100の学習には、ミニバッチ法を用いるものとする。
まずCPU231は、S731において、ニューラルネットワーク1100を初期化する。すなわち、CPU231は、ニューラルネットワーク1100を構築し、ニューラルネットワーク1100に含まれるパラメタの値を、ランダムに決定して初期化する。
CPU231は、S732において、学習データを取得する。CPU231は、図7(a)のフローチャートに示した、学習データ生成処理を実行して、所定の数(ミニバッチサイズ、例えば10)の学習データを取得する。
CPU231は、S733において、ニューラルネットワーク1100のエンコード部1101の出力を得る。すなわち、手書き領域推定および手書き抽出の各学習データに含まれる入力画像をニューラルネットワーク1100に入力して、エンコーダ部1112が出力する特徴マップを得る。
CPU231は、S734において、ニューラルネットワーク1100の手書き領域推定結果の誤差を算出する。すなわち、S733で取得した特徴マップを、領域推定デコーダ部1122に入力して領域推定デコーダ部1122の出力を得る。当該出力は、入力画像と同じ画像サイズであり、予測結果として、手書き領域であると判定された画素は、画素の値が手書き領域を示す値、そうではないと判定された画素は、画素の値が手書き領域ではないことを示す値である画像である。そして、当該出力と学習データに含まれる手書き領域推定正解ラベル画像との差を評価して誤差を求める。当該評価には指標として交差エントロピーを用いることができる。
CPU231は、S735において、ニューラルネットワーク1100の手書き抽出結果の誤差を算出する。すなわち、S733で取得した特徴マップを画素抽出デコーダ部1112に入力して画素抽出デコーダ部1112の出力を得る。当該出力は、入力画像と同じ画像サイズであり、予測結果として、手書きであると判定された画素は、画素の値が手書きを示す値、そうではないと判定された画素は、画素の値が手書きではないことを示す値である画像である。そして、当該出力と学習データに含まれる手書き抽出正解ラベル画像との差を評価して誤差を求める。当該評価の指標には、手書き領域推定と同様、交差エントロピーを用いることができる。
CPU231は、S736において、ニューラルネットワーク1100のパラメタを調整する。すなわち、S734とS735において算出した誤差をもとに、バックプロパゲーション法によってニューラルネットワーク1100のパラメタ値を変更するものである。
CPU231は、S737において、学習を終了するか否かを判定する。これは次のようにして行う。CPU231は、S732~S736の処理を、所定回数(例えば、60000回)行ったか否かを判定する。当該所定回数は、本フローチャートの開始時にユーザが操作入力するなどして決定することができる。所定回数行った場合には、YESと判定し、S738に遷移する。そうでない場合は、S732に遷移し、ニューラルネットワーク1100の学習を続ける。
CPU231は、S738において、学習結果として、S736において調整したニューラルネットワーク1100のパラメタを、画像処理サーバ103に送信する。
<帳票テキスト化依頼処理>
次に、画像処理装置101による、帳票テキスト化依頼処理について説明する。画像処理装置101は、手書き記入がされた帳票をスキャンして処理対象画像を生成する。そして、処理対象画像データを画像処理サーバ103に送信して、帳票テキスト化を依頼する。図9(a)は帳票テキスト化依頼処理のフローを示す図である。この処理は、画像処理装置101のCPU201が、ストレージ208に記録されているコントローラプログラムを読み出し、RAM204に展開して実行することにより実現される。これは、ユーザが、画像処理装置101の入力デバイス209を介して、所定の操作を行うことで開始される。
まずCPU201は、S901において、スキャナデバイス206や原稿搬送デバイス207を制御して、原稿をスキャンして処理対象画像を生成する。処理対象画像は、グレースケールの画像データとして生成される。
CPU201は、S902において、S901で生成した処理対象画像を、外部インタフェース211を介して、画像処理サーバ103に送信する。
CPU201は、S903において、画像処理サーバ103から、処理結果を受信したか否かを判定する。画像処理サーバ103から、外部インタフェース211を介して、処理結果を受信していた場合には、YESと判定し、S904に遷移する。そうでない場合には、NOと判定し、S903の処理ステップを繰り返す。
CPU201は、S904において、画像処理サーバ103から受信した処理結果、すなわち、S901で生成した処理対象画像に含まれる手書き文字や活字を認識して生成した帳票テキストデータを出力する。例えば、ユーザが、入力デバイス209を操作して設定した送信宛先に、外部インタフェース211を介して、帳票テキストデータを送信することができる。
<帳票テキスト化処理>
次に、画像処理サーバ103による帳票テキスト化処理について説明する。図9(b)は帳票テキスト化処理のフローを示す図である。図10は、帳票テキスト化処理における、データ生成処理の概要を示す図である。画像変換部114として機能する画像処理サーバ103は、画像処理装置101から処理対象画像を受信し、当該スキャン画像データに含まれる活字や手書き文字をOCRしてテキストデータを得る。活字に対するOCRは、活字OCR部117に実行させる。手書き文字に対するOCRは、手書きOCR部116に実行させる。帳票テキスト化処理は、CPU261が、ストレージ265に記憶されている画像処理サーバプログラムを読み出し、RAM264に展開して実行することで実現される。これは、ユーザが、画像処理サーバ103の電源をON(オン)にすると開始される。
まずCPU261は、S951において、図11に示す手書き領域推定および手書き抽出を行うニューラルネットワーク1100をロードする。CPU261は、図7(b)のフローチャートのS731の場合と同一のニューラルネットワーク1100を構築する。そして、S738において、学習装置102から送信された学習結果(ニューラルネットワーク1100のパラメタ)を、構築したニューラルネットワーク1100に反映する。
CPU261は、S952において、処理対象画像を、画像処理装置101より受信したかを判定する。外部インタフェース268を介して、処理対象画像を受信していたならば、YESと判定し、S953に遷移する。そうでなければ、NOと判定し、S965に遷移する。例として、ここでは、処理対象画像として、図10の帳票400(図4に示した帳票400)を受信したものとする。
S952の後、S953~S958において、CPU261は、画像処理装置101から受信した処理対象画像をニューラルネットワーク1100に入力し、手書き領域推定および手書き抽出を行う。ニューラルネットワーク1100は、図11を用いて前述したとおり、エンコーダ部1101の計算結果、すなわち抽出した特徴マップを、画素抽出デコーダ部1112および領域推定デコーダ部1122で共有する構成である。手書き画素は手書き領域内に存在する。このことを利用し、画素抽出デコーダ部1112が出力した特徴マップを、領域推定デコーダ部1122で推定した手書き領域に応じた領域に絞る。そして、絞った領域の特徴マップを画素抽出デコーダ部1112に入力する。これにより、手書き画素の存在しない領域である非手書き領域で手書き抽出を行う計算量を削減することができる。
CPU261は、S953において、画像処理装置101から受信した処理対象画像をS951で構築したニューラルネットワーク1100に入力し、エンコーダ部1102の出力する特徴マップを得る。
CPU261は、S954において、画像処理装置101から受信した処理対象画像から手書き領域を推定する。すなわち、CPU261は、S953で取得した特徴マップを領域推定デコーダ部1122に入力し、手書き領域を推定させる。ニューラルネットワーク1100の出力として、次のような画像データが得られる。すなわち、処理対象画像と同じ画像サイズであり、予測結果として手書き領域であると判定された画素に、手書き領域であること示す値が記録され、かつ、手書き領域ではないと判定された画素に、手書き領域ではないことを示す値が記録された画像データが得られる。なお、前述したように、図3AのS305において、ユーザは、手書き領域推定の正解データを、帳票の記入項目ごとに対応する記入欄に対応する位置に作成した。したがって、ニューラルネットワーク1100の領域推定デコーダ部1122はこれを学習しているため、記入欄ごとに手書き領域であることを示す画素を出力する。なお、ニューラルネットワーク1100の出力は、画素毎の予測結果であり、予測された領域は必ずしも正確な矩形ではなく扱いにくいため、当該領域を内包する外接矩形を設定する。外接矩形の設定には公知の技術を適用し実現することができる。それぞれの外接矩形は、処理対象画像上における左上端点と幅および高さから成る領域座標情報として表現することができる。このようにして得た矩形情報群を手書き領域とする。図10の1002に、処理対象画像(帳票400)に対して推定した手書き領域を、点線枠で示して例示する。
CPU261は、S955において、S954で推定した全ての手書き領域をもとに、S953において取得した畳み込み層EC1,EC2,EC3,EC4が出力する特徴マップにおける、各手書き領域に対応する部分の特徴マップを取得する処理を行う。なお、以降では、各畳み込み層が出力する特徴マップ上の手書き領域に対応する領域の特徴マップ(部分特徴マップ)を、「手書き領域特徴マップ」と呼称する。
ここで、ニューラルネットワーク1100に入力した画像に対する手書き領域の推定結果と、畳み込み層EC1,EC2,EC3,EC4が出力する特徴マップの関係を説明する。図12は、ニューラルネットワーク1100に入力した画像に対する手書き領域の推定結果と、畳み込み層EC1,EC2,EC3,EC4が出力する特徴マップの関係を説明する図である。ニューラルネットワーク1100は、入力画像が入力されると、エンコーダ部1101の各畳み込み層で特徴を抽出して特徴マップを出力し、領域推定デコーダ部1122で特徴マップを処理して入力画像の各画素がいずれのクラスに属するかを推定する。図12において、エンコーダ部1101の各層が抽出した特徴マップにおける破線部分の特徴が領域推定デコーダ部1122の各層で処理され、出力画像中の特徴マップの破線部分に対応する破線領域が手書き領域として出力されている。また、図12において、畳み込み層EC1,EC2,EC3が出力する特徴マップは、プーリング層EP1,EP2,EP3を経て、一定の倍率で解像度が落とされている。一方、領域推定デコーダ部1122の出力画像は、アップサンプリング層DUr1,DUr2,DUr3を経て畳み込み層EC1の特徴マップと同じ解像度になっている。
以上の手書き領域の推定結果と畳み込み層EC1,EC2,EC3,EC4が出力する特徴マップの関係を踏まえて、手書き領域特徴取得処理を説明する。図13は、手書き特徴取得処理フローを説明する図である。
CPU261は、S1301において、S954で推定した手書き領域の中から一つを選択する。
CPU261は、S1302において、畳み込み層EC4が出力した特徴マップについて、S1301で選択した手書き領域に対応する部分の特徴マップ(手書き領域特徴マップ)を取得する。具体的には、S1301で選択した手書き領域の領域座標情報に、畳み込み層EC1の出力と畳み込み層EC4の出力のサイズ比を乗算することにより、畳み込み層EC4の手書き領域特徴マップ(画素抽出デコーダ部1112に入力する特徴マップ)を算出する。ここで、S1301で選択した手書き領域は、手書き領域推定により得られた領域を内包する外接矩形として取得されている。すなわち、手書き領域は、その周辺の非手書き領域が切り離された領域である。一方で、逆畳み込み層DDp1における畳み込み処理の際には、手書き領域周辺の非手書き画素も参照させてよい。この場合、推定により得られた手書き領域を周囲に少し広げる。例えば、畳み込み処理に適用するカーネルサイズ(幅、高さ)から1を減算した幅分だけ、手書き領域を周囲に広げる。このようにして得た領域をもとに手書き領域特徴マップを算出するようにしてもよい。また、さらに周囲の非手書き画素も畳み込み処理の際に参照させてもよい。すなわち、カーネルサイズから1を減算した幅分よりも多く広げた領域を適用してもよい。
畳み込み層EC4の手書き領域特徴マップを導出した後、S1303に遷移する。
CPU261は、S1303において、スキップコネクションのために、畳み込み層EC1,EC2,EC3の手書き領域特徴マップも導出する。ここで、図12に示すように、各畳み込み層の出力は、各畳み込み層の間のプーリング層EP1,EP2,EP3により、前段の層の出力解像度を半分にした特徴マップが出力されている。このことから、S1302において算出した畳み込み層EC4の手書き領域特徴マップの座標情報(縦位置と横位置と幅と高さ)を2倍することで、畳み込み層EC3の手書き領域特徴マップを算出する。また、4倍することで、畳み込み層EC2の出力上の手書き領域特徴マップを算出する。また、8倍することで、畳み込み層EC1の手書き領域特徴マップを算出する。
CPU261は、S1304において、全ての手書き領域を処理したか否かを判定する。CPU261は、S954で推定した手書き領域について、全てS1302およびS1303の処理を行った場合にはYESと判定し、手書き領域特徴取得処理を終了する。そして、図9(b)に示す帳票テキスト化処理に戻って、S956に遷移する。
そうでない場合はNOと判定し、S1301に遷移し、次の手書き領域を選択して処理する。
CPU261は、S956において、S955において導出したエンコーダ部1101の畳み込み層EC1,EC2,EC3,EC4が出力する全ての手書き領域特徴マップを、画素抽出デコーダ部1112に入力する。そして、畳み込み層EC1,EC2,EC3,EC4それぞれが出力する特徴マップ上の全ての手書き領域の範囲内で手書き画素を推定させる。ニューラルネットワーク1100の出力として、次のような画像データが得られる。すなわち、手書き領域と同じ画像サイズであり、予測結果として手書きであると判定された画素に手書きであること示す値が記録され、手書きではないと判定された画素に手書きではないことを示す値が記録された、画像データである。そして、当該画像データ中の手書きであることを示す値の画素と同じ位置の画素を、処理対象画像から抽出して手書き抽出画像を生成する。これにより図10の手書き抽出画像1001が得られる。図示のように、手書き領域における手書きの画素のみが含まれた画像である。手書き抽出画像は、入力された手書き領域特徴マップの数だけ出力される。
CPU261は、S957において、S956で生成した全ての手書き抽出画像を、外部インタフェース268を介して、手書きOCR部116に送信する。そして、全ての手書き抽出画像に対して手書きOCRを実行させる。手書きOCRには公知の技術を適用し実現することができる。手書き抽出画像を手書きOCRすることにより、例えば、図4の住所記入欄403や電話番号記入欄404に図示したように、手書き記入欄内の活字やマークなどの印字内容が、手書きOCRの対象となってしまうことを低減する。また、氏記入欄401や名記入欄402のように隣接した項目でも、別々の手書き領域と推定させて手書きOCRすることで、文字や項目が連結されてしまうことを低減する。
CPU261は、S958において、手書きOCR部116から、全ての手書きOCR結果を受信したか否かを判定する。手書きOCR結果とは、手書きOCR部116が、手書き領域に含まれていた手書き文字を認識して得たテキストデータである。外部インタフェース268を介して、手書きOCR部116から、手書きOCR結果を受信していたならば、YESと判定し、S959に遷移する。そうでなければ、S958の処理を繰り返す。CPU261は、ここまでの処理によって、手書き領域(座標情報)とそこに含まれていた手書き文字を認識して得たテキストデータを得た。CPU261は、これらを手書き情報テーブル1003としてRAM246に記憶しておく。
CPU261は、S959において、S954で生成した手書き領域に関する座標情報と、S956で生成した全ての手書き抽出画像とに基づいて、処理対象画像から手書きを除去して活字画像を生成する。CPU261は、処理対象画像の画素であって、S956で生成した全ての手書き抽出画像において画素値が手書きを示す値である画素と同位置の画素を、白(RGB=(255,255,255))に変更する。これにより、図10の活字画像1004が得られる。
CPU261は、S960において、S959で生成した活字画像から活字領域を抽出する。CPU261は、活字領域として、活字を内包する活字画像上の部分領域を抽出する。ここで部分領域とは、印刷内容のまとまり(オブジェクト)であり、例えば、複数の文字からなる文字行や、複数の文字行からなる文章、あるいは、図や写真、表、グラフ、といったオブジェクトである。この部分領域の抽出方法として、例えば次のような手法を取り得る。活字画像を白黒に二値化して二値画像を生成する。この二値画像において黒画素が連結する部分(連結黒画素)を抽出し、これに外接する矩形を作成していく。当該矩形の形状や大きさを評価することで、文字ないし文字の一部である矩形群を得ることができる。これら矩形群について、矩形間の距離を評価し、予め定めた閾値以下の距離である矩形の統合を行うことで、文字である矩形群を得ることができる。同様の大きさの文字の矩形が近くに並んでいる場合には、それらを統合して文字行の矩形群を得ることができる。短辺長が同様の文字行の矩形が等間隔に並んでいる場合は、それらを統合して文章の矩形群を得ることができる。また、図や写真、表、グラフなど、文字や行、文章以外のオブジェクトを内包する矩形も得ることができる。以上で抽出した矩形から、単独の文字あるいは文字の一部である矩形を除外する。残った矩形を部分領域とする。図10の1005に、活字画像に対して抽出した活字領域を、点線枠で例示する。本処理ステップでは、背景サンプル画像から複数の背景部分領域を抽出し得る。
CPU261は、S961において、S959で生成した活字画像と、S960で取得した活字領域とを、外部インタフェース268を介して、活字OCR部117に送信し、活字OCRを実行させる。活字OCRには公知の技術を適用し実現することができる。
CPU261は、S962において、活字OCR部117から、活字OCR結果を受信したか否かを判定する。活字OCR結果とは、活字OCR部117が、活字領域に含まれていた活字を認識して得たテキストデータである。外部インタフェース268を介して、活字OCR部117から、活字OCR結果を受信していたならば、YESと判定し、S963に遷移する。そうでなければ、S962の処理を繰り返す。ここまでの処理によって、活字領域(座標情報)とそこに含まれていた活字を認識して得たテキストデータを得た。CPU261は、これらを活字情報テーブル1006としてRAM246に記憶しておく。
CPU261は、S963において、手書きOCR部116ないし活字OCR部117から受信した手書きOCR結果および活字OCR結果を統合する。CPU261は、元となった手書き領域および活字領域の位置関係や、手書きOCR結果ないし活字OCR結果であるテキストデータの意味的な関係性を評価することで、手書きOCR結果および活字OCR結果の関連性を推定する。この推定は、手書き情報テーブル1003や活字情報テーブル1006に基づき行われる。そして、氏見出し411内の活字領域に対して、最も距離が近い手書き領域として、氏記入欄401内の手書き領域が特定される。距離のみならず、上下・左右等の、手書き領域と活字領域の位置関係も考慮してよい。かつ、当該手書き領域の手書きOCR結果であるテキストデータが、氏名の氏を含む文字列であれば、これは氏名の氏であると特定できる。よって、これら活字OCR結果と手書きOCR結果とを、氏名の氏に関する項目と値のペアの関係性と評価する。同様に氏名の名についても、活字領域と手書き領域の距離、および手書きOCR結果に氏名の名を含む文字列であることから、両者の関係性評価され、氏名の名に関する項目と値のペアの関係性と評価する。氏と名は統合し、氏名の項目と値のペアとすることができる。さらに同様に、住所についても、活字領域と手書き領域の距離、および、手書きOCR結果に地名を含むことから、両者の関係性が評価される。電話番号についても、活字領域と手書き領域の距離、および、手書きOCR結果が数字から構成されることから、両者の関係性が評価される。こうして、手書きOCR結果と活字OCR結果とが、ひとつ以上の項目と値のペアとして統合され、帳票テキストデータ1007が生成される。
CPU261は、S964において、生成した帳票データを、画像取得部111に送信する。
CPU261は、S965において、処理を終了するか否かを判定する。ユーザが、画像処理サーバ103の電源のOFFなどの所定の操作を行った場合には、YESと判定し、処理を終了する。そうでなければ、NOと判定し、S952に遷移する。
以上、本実施例に示したとおり、手書き領域推定ニューラルネットワークと手書き抽出ニューラルネットワークの間でエンコーダ部(同様の計算をする層)を共有する構造のニューラルネットワークを用いる。そして、手書き記入を含む帳票のスキャン画像から手書き領域を推定し、当該領域に対応する手書きのみを含む手書き抽出画像を生成する。その際、手書き画素は手書き領域内に存在するので、手書き領域推定のデコーダ部で推定した手書き領域のみに絞った特徴マップを手書き抽出のデコーダ部に入力する。これにより、手書き画素の存在しない領域である非手書き領域で手書き抽出を行う計算量を削減し、生成における計算量を低減することができる。
なお、本実施例では、帳票テキスト化処理において、手書き領域推定のデコーダ部で推定した手書き領域のみに絞った特徴マップを手書き抽出のデコーダ部に入力する処理を行ったが、学習処理においても同様の処理をしてもよい。その場合、学習処理において、S734で手書き領域推定のニューラルネットワークの誤差を算出する。次に、図13に示した手書き領域特徴取得処理を行う。次に、S735で、手書き領域推定のデコーダ部で推定した手書き領域に応じた部分のみに絞った特徴マップを手書き抽出のデコーダ部に入力する。
(実施例2)
本実施例では、手書き領域推定で取得した手書き領域のみに絞った特徴マップを手書き抽出のデコーダ部に入力する際、さらに領域を絞った特徴マップを入力する方法について説明する。実施例1では、例えば、手書き領域の誤抽出や、意図せぬペンの記入用紙への接触により生じる小さなペン汚れなどにより生じてしまう手書き抽出するうえで不要な小領域の存在を考慮していない。本実施例ではこうしたケースに対して、手書き抽出のデコーダ部に入力する特徴マップの領域をさらに絞る方法を説明する。なお、実施例2の画像処理システムの構成は、特徴部分を除いて実施例1の構成と同様である。そのため、同様の構成については、同様の符号を付し、その詳細な説明を省略する。
<帳票テキスト化処理>
本実施例における、画像処理サーバ103による帳票テキスト化処理について説明する。図14(a)は実施例2における帳票テキスト化処理のフローを示す図である。この処理は、CPU261が、ストレージ265に記憶されている画像処理サーバプログラムを読み出し、RAM264に展開して実行することで実現される。これは、ユーザが、画像処理サーバ103の電源をON(オン)にすると開始される。
S951~S954の処理は、図9(b)のフローチャートにおける同符合の処理ステップと同様の処理ステップである。
CPU261は、S1401において、S954で生成した手書き領域に対して手書き領域選別処理を実行し、手書き領域の領域数を更新する。この手書き領域選別処理について、図14(b)を用いて説明する。図14(b)は実施例2における手書き領域選別処理のフローを示す図である。
CPU261は、S1451において、S954で推定した手書き領域の中から一つを選択する。
CPU261は、S1452において、S1451で選択した手書き領域について、面積が小領域か否かを判定する。CPU261は、当該手書き領域に該当する画素数を数え、数が予め定めた閾値以下であった場合にはYESと判定し、S1453に遷移する。そうでない場合はNOと判定し、S1454に遷移する。
CPU261は、S1453において、S1452でNOと判定された手書き領域に該当するS954で生成した手書き領域上の画素群に、手書き領域ではないことを示す値を記録する。これにより、面積が閾値未満の、手書き抽出するうえで不要な小領域を除去することができる。
CPU261は、S1454において、全ての手書き領域を処理したか否かを判定する。CPU261は、S954で推定した手書き領域について、全てS1452の処理を行った場合にはYESと判定し、手書き領域選別処理を終了する。そうでない場合はNOと判定し、S1451に遷移し、次の手書き領域を選択して処理する。
以上、本実施例に示したとおり、推定した手書き領域について、手書き抽出するうえで不要な小領域を除去することができる。これにより、手書き抽出で不要な領域が除去され、ニューラルネットワーク1100の手書き抽出の計算量をより低減することができる。また、手書き領域推定の誤抽出領域を除去することで、手書きOCR認識率を向上させることができる。
(実施例3)
本実施例では、実施例1、2で説明した帳票テキスト化処理の方法に加えて、処理対象画像に手書き記入があるかどうかを判定する方法について説明する。実施例1、2では、処理対象画像の手書き領域のみに絞った特徴マップを手書き抽出のデコーダ部に入力することで、ニューラルネットワーク全体の計算量を低減していた。しかし、処理対象画像に手書き記入がない場合、手書き領域推定に無駄な計算を費やすことになる。例えば、サービス利用に関する申込書は、サービス提供者窓口での配布のみならず、近年ではインターネットにフォーマットが公開されている場合がある。申込者は事前にフォーマットをダウンロードして印刷紙・記入のうえ窓口に赴くことができ、窓口における手続き時間を短縮化することができる。フォーマットは電子ファイルであるため、利用者は、記入内容を電子的に入力して印刷することも可能である。すなわちこの場合、申込書は活字のみから構成される。サービス提供者は、手書きと活字から成る帳票ないし活字のみの帳票を処理してテキスト化する。
本実施例ではこうしたケースに対して、手書き領域推定および手書き抽出を行う前に、処理対象画像に手書き記入があるかどうかを判定し、手書き記入が存在する場合に手書き領域推定および手書き抽出を行う方法を説明する。なお、以降では、処理対象画像に手書き記入があるかどうかを判定することを「手書き有無判定」と呼称する。また、手書き有無判定により手書き記入があると判定されることを「手書き有」と呼称する。また、手書き有無判定により手書き記入がないと判定されることを「手書き無」と呼称する。また、実施例3の画像処理システムの構成は、特徴部分を除いて実施例1、2の構成と同様である。そのため、同様の構成については、同様の符号を付し、その詳細な説明を省略する。
<ニューラルネットワークの構成>
本実施例におけるニューラルネットワークの構成について説明する。図15は画像処理システムのニューラルネットワークの構成を示す図である。本実施例のニューラルネットワーク1500は、画像の入力に対して複数種類の処理を行う。例えば、ニューラルネットワーク1500は、入力された画像に対して手書き有無判定、手書き領域推定、手書き抽出を行う。そのため、本実施例のニューラルネットワーク1500は、互いに異なるタスクを処理する複数のニューラルネットワークを組み合わせた構造になっている。図15の例では、手書き有無判定ニューラルネットワーク、手書き領域推定ニューラルネットワーク、手書き抽出ニューラルネットワークが組み合わされた構造である。なお、本実施例において、ニューラルネットワーク1100への入力画像は、グレースケール(1ch)の画像とするが、例えば、カラー(3ch)の画像など、他の形式でもよい。
ニューラルネットワーク1500は、図15に示すように、エンコーダ部1101と、画素抽出デコーダ部1112、領域推定デコーダ部1122、および全結合層Lで構成される。
ニューラルネットワーク1500は、従来であればエンコーダ部1101と画素抽出デコーダ部1112から構成される手書き抽出ニューラルネットワークを有する。また、同じくエンコーダ部1101と領域推定デコーダ部1122から構成される手書き領域推定ニューラルネットワークを有する。また、同じくエンコーダ部1101と全結合層Lから構成される手書き有無判定ニューラルネットワークを有する。本発明では、3つのニューラルネットワークにおいて、各ニューラルネットワークで同様の計算を行う層であるエンコーダ部1101を共有する。そして、タスクに応じて画素抽出デコーダ部1112および1122と全結合層Lを分岐する構造である。ニューラルネットワーク1500に画像が入力されると、エンコーダ部1101の計算を行う。そして、その計算結果を全結合層Lと領域推定デコーダ部1122および1112に入力し、全結合層Lの計算を経て手書き有無判定結果を出力する。また、領域推定デコーダ部1122の計算を経て手書き領域推定結果する。また、画素抽出デコーダ部1112の計算を経て手書き抽出結果を出力する。なお、本発明では、全結合層Lが「手書き無」を出力した場合、領域推定デコーダ部1122および1112の計算は行わない。詳細は後述する。
全結合層Lへの入力は、エンコーダ部1101の最終出力であるプーリング層EP3を通して得られた特徴マップを変換して生成する。当該変換には、例えば、次のような手法を用いることができる。プーリング層EP3が出力した特徴マップは、複数のチャネルから構成されるが、各チャネル内の全画素値の平均値を算出する。そして、チャネル数分計算された平均値を統合してベクトル化し、全結合層Lへの入力とする。なお、各チャネルを2x2次元の行列から1x2次元のベクトルに変換して、チャネル数分算出されるこれらベクトルと結合したベクトルを全結合層Lへの入力とするなど、他の変換手法を用いてもよい。そして全結合層Lは、前記入力を変換し、活性化関数を通すことにより、特徴を数値に変換した値である特徴変数を出力する。全結合層Lからの出力である特徴変数を、確率分布に正規化する変換を行うことで手書きがある確率および手書きがない確率に変換し、確率に応じて手書き有無判定を行う。ここで、確率分布に正規化する手段として、例えば、ソフトマックス関数を用いる。なお、本実施例において、全結合層Lはプーリング層EP3の出力を入力としたが、プーリング層EP1およびEP2の出力を入力としてもよい。
<学習データ生成処理>
次に、学習装置102による学習データ生成処理について説明する。図16(a)は学習データ生成処理のフローを示す図である。この処理は、学習装置102の学習データ生成部112により実現される。これは、ユーザが、画像処理装置101の入力デバイス209を介して、所定の操作を行うことで開始される。
S701~S708の処理は、図7(a)のフローチャートにおける同符合の処理ステップと同様の処理ステップである。
CPU231は、S1601において、S706で生成した手書き抽出正解ラベル画像が、手書きを示す値である画素を含むか否かを判定する。CPU231は、S706で生成した手書き抽出正解ラベル画像を走査して手書きを示す値があるか否かを判定する。手書きを示す値があった場合にはYESと判定し、S1602に遷移する。そうでない場合はNOと判定し、S1603に遷移する。なお、ここでは、予め手書きを示す画素値の数に対する閾値を定めておき、当該閾値を超える数の手書きを示す画素が存在した場合にYESと判定するようにしても良い。
CPU231は、S1602において、S1601でYESと判定された手書き抽出正解ラベル画像に対応するS704で生成した入力画像に対して、手書き有無判定の学習データに用いる正解ラベルとして、手書き有を示す値を生成する。なお、以降では、この正解ラベルを「手書き有無判定正解ラベル」と呼称する。その後、当該入力画像と手書き有無判定正解ラベルを対応付け、手書き有無判定の学習データとしてストレージ235の所定の領域に保存する。
CPU231は、S1603において、S1601でNOと判定された手書き抽出正解ラベル画像に対応するS704で生成した入力画像に対して、手書き有無判定正解ラベルとして、手書き無を示す値を生成する。その後、当該入力画像と手書き有無判定正解ラベルを対応付け、手書き有無判定の学習データとしてストレージ235の所定の領域に保存する。
<学習処理>
次に、学習装置102による学習処理について説明する。図16(b)は学習処理のフローを示す図である。この処理は、学習装置102の学習部113により実現される。これは、ユーザが、学習装置102の入力デバイス236を介して、所定の操作を行うことで開始される。なお、本実施例において、ニューラルネットワーク1500の学習には、ミニバッチ法を用いるものとする。
S731~S733の処理は、図7(b)のフローチャートにおける同符合の処理ステップと同様の処理ステップである。
CPU231は、S1631において、ニューラルネットワーク1500の手書き有無判定結果の誤差を算出する。すなわち、S733で取得した特徴マップを、全結合層Lに入力して全結合層Lの出力を得る。当該出力は、入力画像が手書き有である確率および手書き無である確率について、正規化した確率分布である。そして、当該出力と学習データに含まれる手書き有無判定正解ラベルとの差を評価して誤差を求める。当該評価の指標には、手書き抽出と同様、交差エントロピーを用いることができる。
S734~S735の処理は、図7(b)のフローチャートにおける同符合の処理ステップと同様の処理ステップである。
CPU231は、S1632において、ニューラルネットワーク1500のパラメタを調整する。すなわち、S1631とS734とS735において算出した誤差をもとに、バックプロパゲーション法によってニューラルネットワーク1500のパラメタ値を変更するものである。
<帳票テキスト化処理>
次に、画像処理サーバ103による帳票テキスト化処理について説明する。図17は帳票テキスト化処理のフローを示す図である。帳票テキスト化処理は、CPU261が、ストレージ265に記憶されている画像処理サーバプログラムを読み出し、RAM264に展開して実行することで実現される。これは、ユーザが、画像処理サーバ103の電源をON(オン)にすると開始される。
S951~S953の処理は、図9(b)のフローチャートにおける同符合の処理ステップと同様の処理ステップである。
CPU261は、S1701において、画像処理装置101から受信した処理対象画像に対して手書き有無判定を行う。CPU261は、S953で取得した特徴マップを全結合層Lに入力し、手書きの有無を判定させる。ニューラルネットワーク1500の出力として、判定結果として手書き有が得られた場合には手書き有であること示す値、手書き無が得られた場合には手書き無であることを示す値が出力される。
CPU261は、S1702において、処理対象画像が手書き有か否かを判定する。CPU261は、S1701の手書き有無判定で手書き有を示す値が得られた場合には、YESと判定し、S954に遷移する。そうでない場合はNOと判定し、S959に遷移する。
S954~S958の処理は、図9(b)のフローチャートにおける同符合の処理ステップと同様の処理ステップである。
CPU261は、S959において、活字画像を生成する。S1702においてYESと判定されていた場合には、図9(b)のフローチャートにおける同符合の処理ステップと同様の処理で、処理対象画像から手書きを除去して活字画像を生成する。S1702においてNOと判定されていた場合には、処理対象画像そのものを活字画像とする。
S960~S965の処理は、図9(b)のフローチャートにおける同符合の処理ステップと同様の処理ステップである。
以上、本実施例に示したとおり、手書き領域推定および手書き抽出を行う前に、処理対象画像に手書き記入があるかどうかを判定し、手書き記入が存在する場合に手書き領域推定および手書き抽出を行うことができる。これにより、処理対象画像に手書き記入がない場合の計算量を低減することができる。
(実施例4)
本実施例では、本発明のニューラルネットワーク、および構成を、実施例1、2、3とは別のタスクに適用するケースについて説明する。なお、本発明の構成とは、領域推定デコーダ部で推定した認識対象のオブジェクトを含む領域のみに絞った特徴マップを、認識対象のオブジェクトの画素を抽出するデコーダ部に入力する構成である。本実施例では、認識対象のオブジェクトとして、原稿内に含まれる押印画像(押印された印影の画像)を対象とする場合について説明する。すなわち、画素毎に、押印画像を構成する画素を抽出する処理、および、押印画像を含む領域を推定する処理について、ニューラルネットワークを用いて構成する例を示す。例えば、口座振替依頼書などでは、帳票内の押印をデータベース等に登録された押印と照合する場合がある。本実施例に示すように、押印を含む領域およびその画素を抽出することにより、照合対象の押印の抽出を自動化することができる。また、押印背景の印字(「印」などの押印箇所をガイドするための印字)と押印を分離することで、より高い精度で照合することができる。
なお、以降では、押印を含む領域を推定することを「押印領域推定」と呼び、画素毎に押印を抽出することを「押印抽出」と呼ぶ。また、実施例4の画像処理システムは、実施例1、2、3における抽出対象および領域推定対象を、手書き文字から押印に変更したものである。よって、実施例4の画像処理システムの構成および処理は、実施例1、2、3の構成および処理と同様であり、実施例1、2、3に記載の「手書き」「手書き文字」「手書き文字が記入」を「押印」と読み替えたものである。以下では、本実施例と実施例1、2、3の差分となるニューラルネットワークの学習処理に用いる学習データについて詳細を述べる。また、押印照合依頼処理および押印照合処理について詳細を述べる。なお、本実施例と実施例1、2、3で同様の構成については、同様の符号を付し、その詳細な説明を省略する。
<操作画面>
実施例1と同様に、ユーザは、押印抽出正解データ作成画面および押印領域推定正解データ作成画面の表示内容に基づいて操作し、正解データを作成する。なお、押印抽出正解データ作成画面および押印領域推定正解データ作成画面は、図5に示す画面においてユーザの指定対象が押印になったものであり、操作は同様の形態である。また、本実施例における原稿サンプル画像は、例えば図18(a)および(b)に示すような帳票1800や帳票1850である。
押印抽出の正解データは、次のような画像として、画像蓄積部115に蓄積される。原稿サンプル画像と同じサイズ(幅および高さ)を有する。ユーザにより選択された押印位置の画素の値は、押印を示す値(例えば255、以降も同様)である。それ以外の画素の値は、押印ではないことを示す値(例えば0、以降も同様)である。以降、このような押印抽出の正解データである画像を「押印抽出正解画像」と呼称する。押印抽出正解画像の例を図18(c)に示す。
また、押印領域推定の正解データは、次のような画像として、画像蓄積部115に蓄積される。原稿サンプル画像と同じサイズ(幅および高さ)を有する。ユーザにより選択された押印領域に該当する画素の値は、押印領域であることを示す値(例えば255、以降も同様)である。また、それ以外の画素の値は押印領域ではないことを示す値(例えば0、以降も同様)である。以降、このような押印領域推定の正解データである画像を「押印領域推定正解画像」と呼称する。押印領域推定正解画像の例を図18(d)に示す。
<学習データ生成処理>
学習装置102の学習データ生成部112により、実施例1と同様の学習データ生成処理が実現される。これは、ユーザが、画像処理装置101の入力デバイス209を介して、所定の操作を行うことで開始される。
実施例1と同様に、CPU231は、押印抽出の学習データに用いる正解ラベル画像(以降この正解ラベル画像を「押印抽出正解ラベル画像」と呼称する)を生成し、押印抽出の学習データとしてストレージ235の所定の領域に保存する。本実施例では、図19(a)のような学習データが保存される。
また、実施例1と同様に、CPU231は、押印領域推定の学習データに用いる正解ラベル画像(以降この正解ラベル画像を「押印領域推定正解ラベル画像」と呼称する)を生成し、押印領域推定の学習データとしてストレージ235の所定の領域に保存する。本実施例では、図19(b)のような学習データが保存される。
<押印照合依頼処理>
次に、画像処理装置101による、押印照合依頼処理について説明する。画像処理装置101は、押印された帳票をスキャンして処理対象画像を生成する。そして、処理対象画像データを画像処理サーバ103に送信して、押印照合を依頼する。図20(a)は押印照合依頼処理のフローを示す図である。この処理は、画像処理装置101のCPU201が、ストレージ208に記録されているコントローラプログラムを読み出し、RAM204に展開して実行することにより実現される。これは、ユーザが、画像処理装置101の入力デバイス209を介して、所定の操作を行うことで開始される。
S901~S903の処理は、図9(a)のフローチャートにおける同符合の処理ステップと同様の処理ステップである。
CPU201は、S2001において、画像処理サーバ103から受信した処理結果、すなわち、S901で生成した処理対象画像に含まれる押印を照合した結果を出力する。例えば、ユーザが、入力デバイス209を操作して設定した送信宛先に、外部インタフェース211を介して、照合結果を送信することができる。
<押印照合処理>
次に、画像処理サーバ103による押印照合処理について説明する。図20(b)は押印照合処理のフローを示す図である。なお、本実施例のシステムは、実施例1のOCRサーバ104の代わりに、不図示の押印照合サーバを有する。押印照合サーバは、押印画像と当該押印の登録者情報(例えば、氏名、住所、口座番号等)を関連付けて登録して蓄積する押印データベースを有する。また、送信された押印画像とデータベースに登録されている押印画像を照合して当該押印画像が登録されているか否かを出力する押印照合部を有する。画像変換部114として機能する画像処理サーバ103は、画像処理装置101から処理対象画像を受信し、当該スキャン画像データに含まれる押印を、押印照合サーバが有する押印データベースと照合して照合結果を得る。押印と押印データベースの照合は、押印照合部に実行させる。押印照合処理は、CPU261が、ストレージ265に記憶されている画像処理サーバプログラムを読み出し、RAM264に展開して実行することで実現される。これは、ユーザが、画像処理サーバ103の電源をON(オン)にすると開始される。
S951~S956の処理は、図9(b)のフローチャートにおける同符合の処理ステップについて、「手書き」を「押印」と読み替えたものと同様の処理ステップである。
CPU261は、S2051において、S956で生成した押印抽出画像を、外部インタフェース268を介して、押印照合部に送信する。そして、押印抽出画像に対して押印照合を実行させる。押印照合には公知の技術を適用し実現することができる。押印抽出画像を押印照合することにより、例えば、押印背景の「印」などの押印箇所ガイドのための印字が、押印照合の対象となってしまうことを低減する。
CPU261は、S2052において、押印照合部から、押印照合結果を受信したか否かを判定する。押印照合結果とは、押印抽出画像が押印データベースに登録されているか否かを示す値である。例えば、登録されている場合は1を、登録されていない場合は0を出力とする。外部インタフェース268を介して、押印照合部から、押印照合結果を受信していたならば、YESと判定し、S2053に遷移する。そうでなければ、S2052の処理を繰り返す。
CPU261は、S2053において、S2052において受信した押印照合結果を画像取得部111に送信する。
CPU261は、S2054において、処理を終了するか否かを判定する。ユーザが、画像処理サーバ103の電源のOFFなどの所定の操作を行った場合には、YESと判定し、処理を終了する。そうでなければ、NOと判定し、S952に遷移する。
以上、本実施例に示したとおり、本発明のニューラルネットワーク、および構成は、手書き領域推定および手書き抽出に限定されるものではなく、押印領域推定および押印抽出にも適用することができる。ここで、本発明の構成とは、認識対象の領域推定デコーダ部で推定した認識対象の領域のみに絞った特徴マップを認識対象の画素を抽出するデコーダ部に入力する構成である。他の適用例として、活字のみから構成される帳票を想定し、活字のみを含む項目である活字領域の推定と、当該領域内の活字の画素を抽出する活字画素抽出にも適用することができる。
(その他の実施例)
本発明は、上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。例えば、実施例では、学習データ生成部112と学習部113は、学習装置102において実現されるものとしたが、それぞれ別体の装置において実現されるようにしても良い。この場合、学習データ生成部112を実現する装置は、学習データ生成部112が生成した学習データを、学習部113を実現する装置に送信する。そして、学習部113は受信した学習データをもとにニューラルネットワークを学習する。画像処理装置101と画像処理サーバ103とを別体の装置として説明したが、画像処理装置101が画像処理サーバ103の機能を具備しても良い。画像処理サーバ103とOCRサーバ104とを別体の装置として説明したが、画像処理サーバ103のOCRサーバ104としての機能を具備しても良い。
本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施例の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
実施例では、活字領域の抽出をS959に示したように、画素の連結性に基づいて判定する方法を示したが、手書き領域推定と同様にニューラルネットワークを用いて推定してもよい。手書き領域推定正解画像を作成したのと同じ要領で、活字領域をユーザが選択し、それに基づいて正解データを作成、活字OCR領域推定を行うニューラルネットワークを新たに構成し、当該正解データを参照させて学習する。
実施例では、学習処理時に学習データ生成処理より学習データを生成した。しかしながら、事前に学習データ生成処理によって学習データを大量に生成しておいて、学習処理時にそこから随時、ミニバッチサイズ分をサンプルするようにしてもよい。
実施例では、入力画像をグレースケール画像として生成したが、フルカラー画像など他の形式として生成してもよい。
なお、各実施例中に登場する略称の定義は次の通りである。MFPとは、Multi Function Peripheralのことである。ASICとは、Application Specific Integrated Circuitのことである。CPUとは、Central Processing Unitのことである。RAMとは、Random‐Access Memoryのことである。ROMとは、Read Only Memoryのことである。HDDとはHard Disk Driveのことである。SSDとはSolid State Driveのことである。LANとは、Local Area Networkのことである。PDLとは、Page Description Languageのことである。OSとは、Operating Systemのことである。PCとは、Personal Computerのことである。OCRとは、Optical Character Recognition/Readerのことである。CCDとは、Charge-Coupled Deviceのことである。LCDとはLiquid Crystal Displayのことである。ADFとはAuto Documennt Feederのことである。CRTとはCathode Ray Tubeのことである。GPUとは、Graphics Processing Unitのことである。IDとは、Identificationのことである。
なお、最後の、本発明に示した方法により学習した手書き抽出のニューラルネットワークと手書き領域推定のニューラルネットワークの推論結果を例示する。図21(a)は処理対象画像の一例である。図21(b)は手書き領域推定および手書き抽出のニューラルネットワークの推論結果の一例である。図21(b)は図21(a)の処理対象画像を入力とした場合の推論結果である。図21(b)では、手書き抽出のニューラルネットワークにより抽出された手書き文字(文字部分)と手書き領域推定のニューラルネットワークにより推定された手書き領域(白ハッチ部分)とを示している。

Claims (6)

  1. ニューラルネットワークを用いて、処理対象画像から、認識対象のオブジェクトが含まれる領域と、前記認識対象のオブジェクトに対応する画素とを求める手段を有することを特徴とする画像処理システムであって、
    前記ニューラルネットワークは、
    前記処理対象画像に対して畳み込み処理を行うことにより特徴マップを得るエンコーダ部と、
    前記特徴マップに基づいて、前記認識対象のオブジェクトが含まれる領域を求める第1のデコーダ部と、
    前記特徴マップから、前記第1のデコーダ部で求めた前記認識対象のオブジェクトが含まれる領域に対応する部分の部分特徴マップを求める部分特徴マップ取得部と、
    前記部分特徴マップに基づいて、前記認識対象のオブジェクトに対応する画素を求める第2のデコーダ部と、
    を含む、ことを特徴とする画像処理システム。
  2. 前記部分特徴マップ取得部は、前記第1のデコーダ部で求めた前記認識対象のオブジェクトが含まれる領域のうち、所定の画素数以下の領域を除く領域に対応する部分の部分特徴マップを求める、ことを特徴とする請求項1に記載の画像処理システム。
  3. 前記認識対象のオブジェクトは、手書きされた文字であることを特徴とする請求項1または2に記載の画像処理システム。
  4. 前記認識対象のオブジェクトは、押印された印影であることを特徴とする請求項1または2に記載の画像処理システム。
  5. コンピュータを、請求項1乃至4のいずれか1項に記載の画像処理システムとして機能させるためのプログラム。
  6. ニューラルネットワークを用いて、処理対象画像から、認識対象のオブジェクトが含まれる領域と、前記認識対象のオブジェクトに対応する画素とを求めることを特徴とする画像処理方法であって、
    前記ニューラルネットワークは、
    前記処理対象画像に対して畳み込み処理を行うことにより特徴マップを得るエンコーダ部と、
    前記特徴マップに基づいて、前記認識対象のオブジェクトが含まれる領域を求める第1のデコーダ部と、
    前記特徴マップから、前記第1のデコーダ部で求めた前記認識対象のオブジェクトが含まれる領域に対応する部分の部分特徴マップを求める部分特徴マップ取得部と、
    前記部分特徴マップに基づいて、前記認識対象のオブジェクトに対応する画素を求める第2のデコーダ部と、
    を含む、ことを特徴とする画像処理方法。
JP2020085350A 2020-05-14 2020-05-14 画像処理システム、画像処理方法、及びプログラム Active JP7479925B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2020085350A JP7479925B2 (ja) 2020-05-14 2020-05-14 画像処理システム、画像処理方法、及びプログラム
US17/317,673 US11983910B2 (en) 2020-05-14 2021-05-11 Image processing system, image processing method, and storage medium each for obtaining pixels of object using neural network
EP21173730.9A EP3910550A1 (en) 2020-05-14 2021-05-13 Image processing apparatus and image processing method each for obtaining a region of object and pixels of the object using neural network
CN202110521173.8A CN113673295A (zh) 2020-05-14 2021-05-13 图像处理设备、图像处理方法和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020085350A JP7479925B2 (ja) 2020-05-14 2020-05-14 画像処理システム、画像処理方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2021179848A JP2021179848A (ja) 2021-11-18
JP7479925B2 true JP7479925B2 (ja) 2024-05-09

Family

ID=75919237

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020085350A Active JP7479925B2 (ja) 2020-05-14 2020-05-14 画像処理システム、画像処理方法、及びプログラム

Country Status (4)

Country Link
US (1) US11983910B2 (ja)
EP (1) EP3910550A1 (ja)
JP (1) JP7479925B2 (ja)
CN (1) CN113673295A (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7559382B2 (ja) * 2020-07-02 2024-10-02 京セラドキュメントソリューションズ株式会社 画像処理装置、画像処理方法及びプログラム
JP2022092119A (ja) * 2020-12-10 2022-06-22 キヤノン株式会社 画像処理装置、画像処理方法およびプログラム
CA3197566A1 (en) * 2020-12-11 2022-06-16 Raunak DEY Handwriting recognition
CN114359905B (zh) * 2022-01-06 2023-05-26 北京百度网讯科技有限公司 一种文本识别方法、装置、电子设备及存储介质
CN114419636A (zh) * 2022-01-10 2022-04-29 北京百度网讯科技有限公司 文本识别方法、装置、设备以及存储介质
US12073642B2 (en) * 2022-01-18 2024-08-27 Accenture Global Solutions Limited Object detection using neural networks

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108537146A (zh) 2018-03-22 2018-09-14 五邑大学 一种印刷体与手写体混合文本行提取系统
JP2019008460A (ja) 2017-06-22 2019-01-17 株式会社東芝 物体検出装置、物体検出方法およびプログラム
JP2019215647A (ja) 2018-06-12 2019-12-19 キヤノンマーケティングジャパン株式会社 情報処理装置、その制御方法及びプログラム。

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030012374A1 (en) * 2001-07-16 2003-01-16 Wu Jian Kang Electronic signing of documents
WO2012093304A1 (en) * 2011-01-05 2012-07-12 Koninklijke Philips Electronics N.V. Video coding and decoding devices and methods preserving ppg relevant information
JP5801237B2 (ja) * 2012-03-29 2015-10-28 パナソニック株式会社 部位推定装置、部位推定方法、および部位推定プログラム
EP3007448A1 (en) * 2014-10-07 2016-04-13 Canon Kabushiki Kaisha Disparity data encoding apparatus and method of controlling the same for
US11080587B2 (en) * 2015-02-06 2021-08-03 Deepmind Technologies Limited Recurrent neural networks for data item generation
JP2019177032A (ja) 2018-03-30 2019-10-17 株式会社ニデック 眼科画像処理装置、および眼科画像処理プログラム
JP2019194821A (ja) 2018-05-06 2019-11-07 英俊 古川 目標認識装置、目標認識方法及びプログラム
US11501548B2 (en) * 2019-04-02 2022-11-15 Edgeverve Systems Limited Method and system for determining one or more target objects in an image

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019008460A (ja) 2017-06-22 2019-01-17 株式会社東芝 物体検出装置、物体検出方法およびプログラム
CN108537146A (zh) 2018-03-22 2018-09-14 五邑大学 一种印刷体与手写体混合文本行提取系统
JP2019215647A (ja) 2018-06-12 2019-12-19 キヤノンマーケティングジャパン株式会社 情報処理装置、その制御方法及びプログラム。

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Kiyoaki Itoi, Makoto Nakashizuka,An Extraction Method of Handwritten Characters on Printed Documents by Maxout Filter Networks,2018 International Symposium on Intelligent Signal Processing and Communication Systems (ISPACS),米国,IEEE,2018年11月30日,https://ieeexplore.ieee.org/document/8923153
吉田 壮、他3名,深層学習を用いた中国漢代木簡の文字領域検出,電子情報通信学会技術研究報告,第119巻、第458号,日本,一般社団法人電子情報通信学会,2020年02月07日,第39-44頁

Also Published As

Publication number Publication date
EP3910550A1 (en) 2021-11-17
US11983910B2 (en) 2024-05-14
CN113673295A (zh) 2021-11-19
US20210357674A1 (en) 2021-11-18
JP2021179848A (ja) 2021-11-18

Similar Documents

Publication Publication Date Title
JP7479925B2 (ja) 画像処理システム、画像処理方法、及びプログラム
US9922400B2 (en) Image display apparatus and image display method
US7551753B2 (en) Image processing apparatus and method therefor
US8112706B2 (en) Information processing apparatus and method
JP4533273B2 (ja) 画像処理装置及び画像処理方法、プログラム
US7876471B2 (en) Image processing apparatus, control method and program thereof which searches for corresponding original electronic data based on a paper document
US20040218838A1 (en) Image processing apparatus and method therefor
JP7387339B2 (ja) 画像処理システム、画像処理方法、及びプログラム
US10650489B2 (en) Image display apparatus, control method therefor, and storage medium
US8412705B2 (en) Image processing apparatus, image processing method, and computer-readable storage medium
US11341733B2 (en) Method and system for training and using a neural network for image-processing
US11941903B2 (en) Image processing apparatus, image processing method, and non-transitory storage medium
US20230077608A1 (en) Information processing apparatus, information processing method, and storage medium
US20090290797A1 (en) Image processing for storing objects separated from an image in a storage device
JP7379063B2 (ja) 画像処理システム、画像処理方法、及びプログラム
JP2023040886A (ja) 画像処理装置、方法及びプログラム
JP2021131784A (ja) 画像処理システム、プログラム、画像処理方法
JP2023015483A (ja) 画像処理装置、画像処理システム、画像処理方法、及びプログラム
JP2023014964A (ja) 画像処理システム及び画像処理方法
JP2023137094A (ja) 画像処理装置、画像処理方法、及びプログラム
JP2021033577A (ja) 画像処理システムと画像処理方法、及びプログラム
JP7570843B2 (ja) 画像処理装置、画像形成システム、画像処理方法、およびプログラム
JP5988149B2 (ja) 項目記入装置、項目記入システム及びプログラム
JP2022167414A (ja) 画像処理装置、画像処理方法およびプログラム
JP3754721B2 (ja) 画像処理装置及びその方法

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20200616

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230508

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20231213

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240314

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240326

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240424

R150 Certificate of patent or registration of utility model

Ref document number: 7479925

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150