JP2020101843A - 画像処理システム、画像処理方法、画像処理装置 - Google Patents

画像処理システム、画像処理方法、画像処理装置 Download PDF

Info

Publication number
JP2020101843A
JP2020101843A JP2018237512A JP2018237512A JP2020101843A JP 2020101843 A JP2020101843 A JP 2020101843A JP 2018237512 A JP2018237512 A JP 2018237512A JP 2018237512 A JP2018237512 A JP 2018237512A JP 2020101843 A JP2020101843 A JP 2020101843A
Authority
JP
Japan
Prior art keywords
image
handwritten
image processing
processing
data
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.)
Granted
Application number
JP2018237512A
Other languages
English (en)
Other versions
JP7262993B2 (ja
Inventor
元気 池田
Motoki Ikeda
元気 池田
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 JP2018237512A priority Critical patent/JP7262993B2/ja
Priority to EP19212118.4A priority patent/EP3671539A1/en
Priority to US16/710,661 priority patent/US11341733B2/en
Priority to KR1020190169381A priority patent/KR102613255B1/ko
Publication of JP2020101843A publication Critical patent/JP2020101843A/ja
Application granted granted Critical
Publication of JP7262993B2 publication Critical patent/JP7262993B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00127Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
    • H04N1/00326Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a data reading, recognizing or recording apparatus, e.g. with a bar-code apparatus
    • H04N1/00328Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a data reading, recognizing or recording apparatus, e.g. with a bar-code apparatus with an apparatus processing optically-read information
    • H04N1/00331Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a data reading, recognizing or recording apparatus, e.g. with a bar-code apparatus with an apparatus processing optically-read information with an apparatus performing optical character recognition
    • 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/413Classification of content, e.g. text, photographs or tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • 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
    • 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
    • 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/414Extracting the geometrical structure, e.g. layout tree; Block segmentation, e.g. bounding boxes for graphics or text
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00127Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
    • H04N1/00249Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a photographic apparatus, e.g. a photographic printer or a projector
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/21Intermediate information storage
    • H04N1/2104Intermediate information storage for one or a few pictures
    • H04N1/2112Intermediate information storage for one or a few pictures using still video cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N2201/3201Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
    • H04N2201/3261Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of multimedia information, e.g. a sound signal
    • H04N2201/3266Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of multimedia information, e.g. a sound signal of text or character information, e.g. text accompanying an image

Landscapes

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

Abstract

【課題】 読取画像中の手書き文字に所定の画像処理を施すことが可能な画像処理システムを提供する。【解決手段】 画像処理システム(100)は、背景画像と手書き画像が間隔をあけて並んだ入力画像(図6)と正解ラベル画像をペアとする学習データ(図14)に基づきニューラルネットワークを学習させ、ニューラルネットワークに基づいて読取画像中の手書き文字に画像処理を施す。【選択図】 図6

Description

本発明は、スキャン画像を処理する画像処理システムに関し、特に手書き文字認識を行う画像処理システムに関する。この画像処理システムは、例えば、複写機複合機などの画像処理装置およびこの装置に接続されたサーバによって構成される。
近年、コンピュータの普及に伴う労働環境の変化により、業務資料の電子化が進んでいる。こうした電子化の対象は手書き文字が記入された文書にも及んでおり、手書き文字を抽出する技術が検討されている。特許文献1では、医療文書で用いられるシェーマと呼ばれる図形情報をあらかじめ登録しておくことで、紙カルテのスキャン画像から手書き文字のみを抽出する技術を開示している。この技術によれば、印刷文書の余白部分に記入された、情報価値のある手書き文字を抽出することが可能となる。
特許第6140946号
しかしながら、特許文献1の技術は、手書き文字を抽出可能な原稿の対象について、改善の余地がある。なぜならば、特許文献1の技術は、あらかじめ登録しておいた図形情報を用いて手書き文字の抽出をおこなうため、図形情報が登録されていない種類の原稿については手書き文字の抽出を正確に行うことができないからである。したがって、あらかじめ登録されていない図形が含まれる原稿の読取画像からであっても、余白領域に付与された手書き文字(手書き記号、手書き図形)に対して画像処理を行うことのできる画像処理システムが望まれる。
本発明は、読取画像中の手書き文字に対して所定の画像処理を施すことが可能な画像処理システムを提供することを目的とする。特に、ニューラルネットワークを用いることで、読取画像中の手書き文字を抽出するための画像処理を施すことが可能な画像処理システムを提供することを目的とする。
本発明は、画像処理システムにおいて、背景画像と手書き画像が間隔をあけて並んだ合成画像データと、前記合成画像データに対応付けられた正解画像データと、に基づきニューラルネットワークを学習させる手段と、手書き文字を含む原稿の読取画像を取得する手段と、前記ニューラルネットワークに基づき、前記読取画像に所定の画像処理を施す手段と、を有することを特徴とするものである。
本発明によれば、読取画像から手書き文字に対して所定の画像処理を施すことが可能な画像処理システムを提供できる。特に、ニューラルネットワークを用いることで、読取画像から手書き文字を抽出するための画像処理を施すことが可能な画像処理システムを提供できる。
画像処理システムの構成を示した図である。 図2(a)は画像処理装置の構成を示す図である。図2(b)は学習装置の構成を示す図である。図2(c)は画像処理サーバの構成を示す図である。 図3(a)は画像処理システムの学習シーケンスを示す図である。図3(b)は画像処理システムの利用シーケンスを示す図である。 図4(a)はサンプル画像生成処理のフローを示す図である。図4(b)はサンプル画像受信処理のフローを示す図である。 学習データ生成処理のフローを示す図である。 画像合成により生成する入力画像の構成例を示す図である。 学習処理のフローを示す図である。 図8(a)は手書き除去依頼処理のフローを示す図である。図8(b)は手書き除去処理のフローを示す図である。 図9(a)は実施例2におけるサンプル画像取得処理のフローを示す図である。図9(b)は実施例2におけるサンプル画像受信処理のフローを示す図である。 実施例2における学習データ生成処理のフローを示す図である。 実施例3における学習データ生成処理のフローを示す図である。 背景サンプル画像生成処理の概要を示す図である。 実施例4における学習データ生成処理のフローを示す図である。 図14(a)は学習データの構成例を示す図である。図14(b)は学習データの変形例を示す図である。図14(c)は学習データの変形例を示す図である。図14(d)は学習データの変形例を示す図である。 図15(a)は手書き検出結果情報を示す図である。図15(b)は手書き検出結果情報を示す図である。 図16(a)は実施例6における画像処理システムの構成を示す図である。図16(b)は実施例6における画像処理システムの利用シーケンスを示した図である。 図17(a)はデータ生成依頼処理のフローを示す図である。図17(b)はOCR処理のフローを示す図である。 背景サンプル画像から抽出した背景部分領域の例を示す図である。 図19(a)は背景部分領域を説明するための図である。図19(b)は生成される入力画像の構成を示す図である。図19(c)は生成される入力画像の構成を示す図である。 図20(a)は印刷ジョブ選択画面を示す図である。図20(b)は学習原稿スキャン画面を示す図である。 手書き認識機能の操作画面を示す図である。 手書き画像変換処理の概要を示す図である。 図23(a)は手書き文字を含む文書の例を示す図である。図23(b)はサーチャブルPDFの操作画面を示す図である。 帳票データ生成処理の概要を示す図である。
以下、本発明を実施するための形態について実施例にて具体的な構成を挙げ、図面を用いて説明する。なお、本発明を実現するための構成は実施例に記載された構成のみに限定されるものではない。同様の効果を得られる範囲で実施例に記載の構成の一部を省略または均等物に置き換えてもよい。
(実施例1)
<画像処理システム>
図1は画像処理システムの構成を示した図である。画像処理システム100は、画像処理装置101、学習装置102、画像処理サーバ103より構成される。画像処理装置101と学習装置102、画像処理サーバ103は、ネットワーク104を介して接続されている。
画像処理装置101は、MFP等と呼ばれるデジタル複合機などであり、印刷機能やスキャン機能(画像取得部111としての機能)を有する。画像処理装置101は、白紙に手書きのみが記入された原稿をスキャン機能によりスキャンして画像データを生成する(以降この画像を「前景サンプル画像」と呼称する)。複数枚の原稿をスキャンして前景サンプル画像を複数得る。一方、画像処理装置101は、電子文書を印刷し印刷原稿を出力する。さらにこの印刷原稿をスキャンして画像データを生成する(以降この画像を「背景サンプル画像」と呼称する)。複数の印刷原稿をスキャンして、背景サンプル画像を複数得る。画像処理装置101は、ネットワーク104を介して、前景サンプル画像と背景サンプル画像を学習装置102に送信する。また、画像処理装置101は、手書き抽出を行う際に、手書き文字(手書き記号、手書き図形)が含まれる原稿をスキャンして処理対象とするスキャン画像データ(変換前画像)を得る(以降このスキャン画像データを「処理対象画像」と呼称する)。そして、処理対象画像を、ネットワーク104を介して、画像処理サーバ103に送信する。
学習装置102は、画像処理装置101が生成した前景サンプル画像と背景サンプル画像を蓄積する画像蓄積部115として機能する。またこのようにして蓄積した画像から学習データを生成する学習データ生成部112として機能する。学習データ生成部は、手書き抽出を行うニューラルネットワークを学習するために用いられるデータである。学習装置102は、生成した学習データを用いてニューラルネットワークの学習をおこなう学習部113として機能する。学習部113の学習により、学習結果(ニューラルネットワークのパラメータなど)が生成される。学習装置102は、学習結果(学習モデル)を、ネットワーク104を介して、画像処理サーバ103に送信する。ニューラルネットワークを用いる機械学習手法の一つとして、多層ニューラルネットワークを用いるディープラーニングが挙げられる。
画像処理サーバ103は、画像処理装置101が生成した処理対象画像に対して手書き抽出を行う。この際、画像処理装置101は、学習装置102が生成した学習結果を用いることで、ニューラルネットワークにより推論して処理対象画像中の手書きの画素(画素位置)を抽出(特定)する。そして、画像処理サーバ103は、抽出した手書きの画素に対して各種画像処理を施す画像変換部114として機能する。本実施例において、抽出した手書きの画素を白画素に変換して、手書きを消去する。画像処理サーバ103は、手書きを消去した処理対象画像(変換後画像)を画像処理装置101に送信する。画像処理装置101は、受信した手書きが消去された処理対象画像を印刷したり、ユーザが所望する送信先に送信したりして出力する。
<学習シーケンス>
本システムにおける学習シーケンスについて説明する。図3(a)は画像処理システムの学習シーケンスを示す図である。
ステップ301(以降の説明においてS301等と表記する)において、オペレータが手書き画像の読取指示を行うと、画像取得部111は、手書き画像を読みとり、この画像に手書きフラグを付与する(S302)。また、S303において、オペレータが背景画像の読取指示をおこなうと、画像取得部111は、背景画像を読みとり、この画像に背景フラグを付与する(S303)。
上述のように読み取られた手書き画像、背景画像は、学習データ生成部112に送信される。なお、このとき、手書き画像、背景画像にID情報を付与するとよい。このID情報は例えば、画像取得部111として機能する画像処理装置101を識別するための情報である。なお、ID情報として、画像処理装置101を操作するユーザを識別するためのユーザ識別情報や、ユーザが所属するグループを識別するめためのグループ識別情報であってもよい。
画像が送信されてくると、学習データ生成部112は、画像蓄積部115に画像を蓄積する(S306)。そして、学習データ生成部112は、このようにして蓄積したデータに基づいて学習データを生成する(S307)。このとき、特定のID情報に基づく画像のみを用いて学習データを生成してもよい。その後、学習データ生成部112は、学習部113に学習データを送信する(S308)、特定のID情報に基づく画像のみで学習データを生成した場合は、ID情報も併せて送信する。学習部113は、受信した学習データに基づき、学習モデルを更新する(S309)。学習部113は、ID情報ごとに学習モデルを保持し、対応する学習データのみで学習をおこなってもよい。このようにID情報と学習モデルを紐づけることで、特定の利用環境に特化した学習モデルを構築することができる。
<利用シーケンス>
本システムにおける利用シーケンスについて説明する。図3(b)は画像処理システムの利用シーケンスを示す図である。図22は手書き画像変換処理の概要を示す図である。
S351において、オペレータが処理対象画像の読取指示を行うと、画像取得部111は、処理対象画像を読みとり、この画像に処理対象フラグを付与する(S352)。ここで読み取られる画像は、例えば画像2201である。画像2201は手書き文字2205を含んでいる。
また、S353において、オペレータが手書き文字の加工指示(変換指示)をおこなうと、画像取得部111は、手書き文字の加工設定情報を取得する(S354)。
上述のように読み取られた処理対象画像は、加工設定情報とともに画像変換部114に送信される(S355)。なお、このとき、送信データにID情報を付与するとよい。
データを受信すると、画像変換部114は、手書き文字の加工指示を受け付ける(S356)。このとき、画像変換部114は、画像取得部111をデータの返信先として記憶する。手書き文字の加工指示を受け付けた画像変換部114は、最新の学習モデルを学習部113に要求する(S357)。これに応じて、学習部113は最新の学習モデルを画像変換部に送信する。画像変換部114からの要求時にID情報が指定されていた場合は、ID情報に対応する学習モデルを送信する(S358)。画像変換部114は、取得した学習モデルに基づいて、変換元画像から手書き文字の抽出処理(識別処理)をおこなう(S359)。抽出処理では、例えば、画像2202が取得される。そして、この抽出結果に基づいて、手書き文字に加工を施した画像を生成する。画像変換部114は、生成した変換後画像を画像取得部111に送信する(S361)。変換後画像を取得した、画像取得部は、このデータに基づく出力処理をおこなう。出力処理としては、変換後画像に基づく印刷や、変換後画像に基づく画面表示が挙げられる。
<装置構成>
上述したシステムを実現するために、各装置は次のような構成を備える。図2(a)は画像処理装置の構成を示す図である。図2(b)は学習装置の構成を示す図である。図2(c)は画像処理サーバの構成を示す図である。図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と同様である。
<操作画面>
S303、S304に示したオペレータの指示は次のような操作画面でおこなわれる。図20(a)は印刷ジョブ選択画面を示す図である。図20(b)は学習原稿スキャン画面を示す図である。
学習原稿スキャン画面2050は、表示デバイス210に表示される画面の一例である。図20(b)に示すように、学習原稿スキャン画面2050は、プレビュー領域2051、画像属性指定ボタン2052、2053、2054、スキャンボタン2055、送信開始ボタン2056を備える。
スキャンボタン2055はスキャナデバイス206にセットされた原稿の読取を開始するためのボタンである。スキャンが完了すると、プレビュー領域2051に読み取られた画像のプレビューが表示される。スキャナデバイス206に別の原稿をセットし、スキャンボタン2055を再び押すことで、複数の画像データをまとめて保持しておくこともできる。
画像属性指定ボタン2052、2053、2054は、読み取られた画像の属性を指定するためのボタンである。画像属性指定ボタン2052を選択すると読取画像に手書き画像属性が付与される。画像属性指定ボタン2053を選択すると読取画像に背景画像属性が付与される。画像属性指定ボタン2054を選択すると読取画像に余白画像属性が付与される。選択中のボタンは識別可能に強調表示される。
画像が読み取られ、画像種別が選択されると、送信開始ボタン2056が選択可能となる。
送信開始ボタン2056を選択すると、選択された画像属性が付与された読取画像が学習装置102に送信される。
印刷ジョブ選択画面2000は表示デバイス210に表示される画面の一例である。図20(b)に示すように、印刷ジョブ選択画面2000は、ジョブ情報2001、2002、プリント設定ボタン2003、画像表示ボタン2004、ジョブ削除ボタン2005、学習サーバ転送ボタン2006、プリント開始ボタン2007を備える。ジョブ情報2001、2002は画像処理装置101に保持された印刷ジョブを識別するための情報である。印刷ジョブ選択画面2000では、印刷したい印刷ジョブのジョブ情報を選択してからプリント開始ボタン2007を選択することで、プリンタデバイス205を用いた印刷処理を開始できる。また、印刷ジョブ選択画面2000においてジョブを選択し、プリント設定ボタン2003を選択すると印刷設定を変更するための印刷設定画面(不図示)が表示される。印刷ジョブ選択画面2000においてジョブを選択し、画像表示ボタン2004を選択すると印刷ジョブのプレビュー画像を表示するためのプレビュー画面(不図示)が表示される。印刷ジョブ選択画面2000においてジョブを選択し、ジョブ削除ボタン2005を選択すると選択されたジョブが削除される。印刷ジョブ選択画面2000においてジョブを選択し、学習サーバ転送ボタン2006を選択すると、学習原稿スキャン画面2050に画面遷移する。また、印刷ジョブ選択画面2000において選択されたジョブが、スキャン画像と同様に保持され、プレビュー領域2051に表示される。オペレータは、続けて画像属性指定ボタン2052、2053、2054、送信開始ボタン2056を選択することで、印刷ジョブをサンプル画像として学習装置に送信することができる。
S351、S353に示したオペレータの指示は次のような操作画面でおこなわれる。図21は手書き認識機能の操作画面を示す図である。手書き認識機能の操作画面2100では、手書き認識機能に関する各種操作をおこなうことができる。図21に示すように、操作画面2100は、プレビュー領域2101、処理指定ボタン2102、2103、2104、2105、スキャンボタン2107、送信開始ボタン2108を備える。
スキャンボタン2107は、スキャナデバイス206にセットされた原稿の読取を開始するためのボタンである。スキャンが完了すると、プレビュー領域2051に読み取られた画像のプレビューが表示される。スキャナデバイス206に別の原稿をセットし、スキャンボタン2107を再び押すことで、複数の画像データをまとめて保持しておくこともできる。処理指定ボタン2102、2103、2104、2105は、読み取られた画像に基づき実行する処理を指定(依頼情報を付与)するためのボタンである。処理指定ボタン2102を選択すると読取画像に手書き強調設定が付与される。処理指定ボタン2105を選択すると読取画像に手書き除去設定が付与される。処理指定ボタン2103を選択すると読取画像に帳票データ設定が付与される。処理指定ボタン2104を選択すると読取画像にサーチャブルPDF設定が付与される。選択中のボタンは識別可能に強調表示される。
<サンプル画像生成処理>
図4(a)はサンプル画像生成処理のフローを示す図である。
次に、画像処理装置101によるサンプル画像生成処理について説明する。図4(a)は、サンプル画像生成処理のフローチャートである。この処理は、CPU201が、ストレージ208に記録されているコントローラプログラムを読み出し、RAM204に展開して実行することで実現される。これは、ユーザが、画像処理装置101の入力デバイス209を操作することにより開始される。
まずCPU201は、S401において、手書きのみの原稿のスキャン指示が成されたか否かを判定する。ユーザが、入力デバイス209を介して、手書きのみの原稿をスキャンするための所定の操作を行った場合には、YESと判定し、S402に遷移する。そうでなければ、NOと判定し、S404に遷移する。
CPU201は、S402において、スキャナデバイス206や原稿搬送デバイス207を制御して、原稿をスキャンして前景サンプル画像を生成する。この原稿は、白紙に、人が手書きの文や図形(線分や矢印など)を記入したものであり、手書きのみが含まれる。前景サンプル画像は、フルカラー(RGB3チャンネル)の画像データとして生成される。
CPU201は、S403において、S402で生成した前景サンプル画像を、外部インタフェース211を介して、学習装置102に送信する。このとき、送信する画像データが、前景サンプル画像であることを示す情報を付与して送信する。
CPU201は、S404において、印刷内容のみの原稿をスキャンする指示が成されたか否かを判定する。ユーザが、入力デバイス209を介して、印刷内容のみの原稿をスキャンするための所定の操作を行った場合には、YESと判定し、S405に遷移する。そうでなければ、NOと判定し、S407に遷移する。
CPU201は、S405において、スキャナデバイス206や原稿搬送デバイス207を制御して、原稿をスキャンして背景サンプル画像を生成する。この原稿は、用紙に電子文書などを印刷したものであり、印刷内容のみが含まれる。背景サンプル画像は、フルカラー(RGB3チャンネル)の画像データとして生成される。
CPU201は、S406において、S405で生成した背景サンプル画像を、外部インタフェース211を介して、学習装置102に送信する。このとき、送信する画像データが、背景サンプル画像であることを示す情報を付与して送信する。
CPU201は、S407において、処理を終了するか否かを判定する。ユーザが、サンプル画像生成処理を終了する所定の操作を行った場合には、YESと判定して、処理を終了する。そうでなければ、NOと判定し、S401に遷移する。
以上の処理によって、画像処理装置101は、前景サンプル画像および背景サンプル画像を生成して学習装置102に送信する。ユーザの操作や、原稿搬送デバイス207に載置した原稿枚数に応じて、前景サンプル画像および背景サンプル画像が、それぞれ複数取得される。
<サンプル画像受信処理>
次に、学習装置102によるサンプル画像取受信処理について説明する図4(b)はサンプル画像受信処理のフローを示す図である。この処理は、CPU231が、ストレージ235に記録されている学習データ生成プログラムを読み出し、RAM234に展開して実行することで実現される。これは、ユーザが、学習装置102の電源をON(オン)にすると開始される。
CPU231は、S451において、前景サンプル画像を受信したか否かを判定する。CPU231は、外部インタフェース238を介して画像データを受信し、かつ、当該画像データが前景サンプル画像であることを示す情報が付与されていたならば、YESと判定し、S452に遷移する。そうでなければ、NOと判定し、S453に遷移する。
CPU231は、S452において、受信した前景サンプル画像を、ストレージ235の所定の領域に記録する。
CPU231は、S453において、背景サンプル画像を受信したか否かを判定する。CPU231は、外部インタフェース238を介して画像データを受信し、かつ、当該画像データが背景サンプル画像であることを示す情報が付与されていたならば、YESと判定し、S454に遷移する。そうでなければ、NOと判定し、S455に遷移する。
CPU231は、S454において、受信した背景サンプル画像を、ストレージ235の所定の領域に記録する。
CPU231は、S455において、処理を終了するか否かを判定する。ユーザが、学習装置102の電源のOFFなどの、サンプル画像受信処理を終了する所定の操作を行った場合には、YESと判定して、処理を終了する。そうでなければ、NOと判定し、S451に遷移する。
<学習データ生成処理>
次に、学習装置102による学習データ生成処理について説明する。図5は学習データ生成処理のフローを示す図である。図6は画像合成により生成する入力画像の構成例を示す図である。
この処理は、学習装置102の学習データ生成部112により実現される。これは、ユーザが、画像処理装置101の入力デバイス209を介して、所定の操作を行うことで開始される。
まずCPU231は、S501において、ストレージ235に記憶している前景サンプル画像を選択して読み出す。図4のフローチャートのS452の処理ステップにより、ストレージ235には複数の前景サンプル画像が記録されているので、その中からランダムにひとつを選択する。
CPU231は、S502において、S501で読みだした前景サンプル画像を回転して加工する。回転角度は所定の範囲(例えば−10度〜10度の間)からランダムに選択して決定する。
CPU231は、S503において、前景サンプル画像中の一部(例えば縦x横=512x512の大きさ)を切り出した画像データを生成する(以降この画像データを「前景パッチ」と呼称する)。切り出す位置はランダムに決定する。
CPU231は、S504において、S503で生成した前景パッチを、変倍して加工する。変倍率は所定の範囲(例えば、50%〜150%の間)からランダムに選択して決定する。さらに、変倍後の前景パッチの一部(例えば縦x横=256x256の大きさ)を中央から切り出して前景パッチを更新する。
CPU231は、S505において、前景パッチの各画素の輝度を変更して加工する。CPU231は、前景パッチをグレースケール化し、そしてガンマ補正を用いて前景パッチの輝度を変更する。ガンマ値は所定の範囲(例えば、0.1〜10.0の間)からランダムに選択して決定する。
CPU231は、S506において、ストレージ235に記憶している背景サンプル画像を選択して読み出す。図4のフローチャートのS454の処理ステップにより、ストレージ235には複数の背景サンプル画像が記録されているので、その中からランダムにひとつを選択する。
CPU231は、S507において、S506で読みだした背景サンプル画像を回転して加工する。回転角度は所定の範囲(例えば−10度〜10度の間)からランダムに選択して決定する。
CPU231は、S508において、背景サンプル画像の一部(S503で前景パッチを切り出したときと同じ大きさ)を切り出して画像データを生成する(以降この画像データを「背景パッチ」と呼称する)。切り出す位置はランダムに決定する。
CPU231は、S509において、S508で生成した背景パッチを、変倍して加工する。変倍率は所定の範囲(例えば、50%〜150%の間)からランダムに選択して決定する。さらに、変倍後の背景パッチの一部(S504で前景パッチを切り出したときと同じ大きさ)を中央から切り出して背景パッチを更新する。
CPU231は、S510において、背景パッチの各画素の輝度を変更して加工する。CPU231は、背景パッチをグレースケール化し、そしてガンマ補正を用いて背景パッチの輝度を変更する。ガンマ値は所定の範囲(例えば、0.1〜10.0の間)からランダムに選択して決定する。
ここまでの処理ステップによって、前景パッチと背景パッチが得られた。前景パッチと背景パッチとで、それぞれ、回転や変倍、輝度の変更を行って加工したが、これは学習データに多様性を持たせることで、当該学習データを用いて学習するニューラルネットワークの汎化性能を向上させるためである。また、前景サンプル画像も背景サンプル画像も、例えばA4用紙を300dpiの解像度でスキャンして生成したとする。この場合、その画素数は2480x3508と大きなものとなり、後述する学習処理において、RAM234に展開したり、CPU231やGPU239が参照したりするにあたり、処理効率が低下を招く。なので、上述のように、より小さな部分画像を切り出して用いるようにする。また、位置をランダムに決定して部分画像を切り出すため、一枚の前景サンプル画像から複数かつ様々な学習データを生成することができる。
CPU231は、S511において、前景パッチに対して正解ラベル画像(教師データ、正解画像データ)を生成する。CPU231は、前景パッチに対して二値化処理を行う。そして、予め定めた閾値よりも低い値である画素の値を、手書きを示す値(例えば255、以降も同様)とする。また、他の画素の値を、手書きではないことを示す値(例えば0、以降も同様)とする。このように画素の値を定めた画像データを、前景パッチに対する正解ラベル画像として生成する。
CPU231は、S512において、画像合成により生成する画像データの構成を決定する。当該画像データは、前景の画像領域と背景の画像領域、余白の画像領域を含む(以降、それぞれ「前景領域」、「背景領域」、「余白領域」と呼称する)。本処理ステップでは、これらの領域の位置および面積を決定するものである。まず、背景に対する前景の方向を決定する。上、右上、右、右下、下、左下、左、左上、の8方向からランダムに選択して決定する。次に、前景と背景の間の余白の幅を決定する。所定の範囲(例えば、1画素〜50画素の間)からランダムに選択して決定する。そして、前景領域を決定する。図6を参照しながら説明する。なお、画像合成により生成する画像データの大きさは、前景パッチ(および背景パッチ)と同じ大きさとする。また、図中において、斜線で示す領域は前景領域を、横線で示す領域は背景領域を、白地で示す領域は余白領域を、それぞれ示す。
背景に対する前景の方向が上である場合には、図6(a)の領域601に示すように、前景領域は、画像合成により生成する画像の上端部とする。この場合の前景領域の幅は、前景パッチの幅と同一である。前景領域の高さは、MIN_VAL〜前景パッチの高さ−余白の幅−MIN_VAL、の範囲からランダムに選択して決定する。ここでMIN_VALは、予め定めた前景領域および背景領域の幅ないし高さの最低限の大きさを示す値である(例えば、MIN_VAL=10画素)。
背景に対する前景の方向が右上である場合には、図6(b)の領域611に示すように、前景領域は、画像合成により生成する画像の右上端部とする。この場合の前景領域の幅は、MIN_VAL〜前景パッチの幅−余白の幅−MIN_VAL、の範囲からランダムに選択して決定する。前景領域の高さは、MIN_VAL〜前景パッチの高さ−余白の幅−MIN_VAL、の範囲からランダムに選択して決定する。
背景に対する前景の方向が右である場合には、図6(c)の領域621に示すように、前景領域は、画像合成により生成する画像の右端部とする。この場合の前景領域の幅は、MIN_VAL〜前景パッチの幅−余白の幅−MIN_VAL、の範囲からランダムに選択して決定する。前景領域の高さは、前景パッチの高さと同一である。
背景に対する前景の方向が右下である場合には、図6(d)の領域631に示すように、前景領域は、画像合成により生成する画像の右下端部とする。この場合の前景領域の幅は、MIN_VAL〜前景パッチの幅−余白の幅−MIN_VAL、の範囲からランダムに選択して決定する。前景領域の高さは、MIN_VAL〜前景パッチの高さ−余白の幅−MIN_VAL、の範囲からランダムに選択して決定する。
背景に対する前景の方向が下である場合には、図6(e)の領域641に示すように、前景領域は、画像合成により生成する画像の下端部とする。この場合の前景領域の幅は、前景パッチの幅と同一である。前景領域の高さは、MIN_VAL〜前景パッチの高さ−余白の幅−MIN_VAL、の範囲からランダムに選択して決定する。
背景に対する前景の方向が左下である場合には、図6(f)の領域651に示すように、前景領域は、画像合成により生成する画像の左下端部とする。この場合の前景領域の幅は、MIN_VAL〜前景パッチの幅−余白の幅−MIN_VAL、の範囲からランダムに選択して決定する。前景領域の高さは、MIN_VAL〜前景パッチの高さ−余白の幅−MIN_VAL、の範囲からランダムに選択して決定する。
背景に対する前景の方向が左である場合には、図6(g)の領域661に示すように、前景領域は、画像合成により生成する画像の左端部とする。この場合の前景領域の幅は、MIN_VAL〜背景パッチの幅−余白の幅−MIN_VAL、の範囲からランダムに選択して決定する。前景領域の高さは、前景パッチの高さと同一である。
背景に対する前景の方向が左上である場合には、図6(h)の領域671に示すように、前景領域は、画像合成により生成する画像の左上端部とする。この場合の前景領域の幅は、MIN_VAL〜前景パッチの幅−余白の幅−MIN_VAL、の範囲からランダムに選択して決定する。前景領域の高さは、MIN_VAL〜前景パッチの高さ−余白の幅−MIN_VAL、の範囲からランダムに選択して決定する。
前景領域に隣接して、上述のように決定した幅の余白領域を設ける。背景に対する前景の方向それぞれにおいて、図6の領域602、領域612、領域622、領域632、領域642、領域652、領域662、領域672、にそれぞれ例示するように、余白領域を決定する。
図6の領域603、領域613、領域623、領域633、領域643、領域653、領域663、領域673、にそれぞれ例示するように、画像合成により生成する画像における、前景領域および余白領域以外の領域が背景領域となる。
なお、背景に対する前景の方向が、右上や右下、左下、左上の場合には、前景領域の2辺が余白領域と接する。上述では、2辺に接する余白領域の幅は同一としたが、各辺ずつそれぞれ別にランダムに決定してもよい。
CPU231は、S513において、前景パッチおよびこれに対する正解ラベル画像から、S512で決定した前景領域に該当する部分画像を切り出す。
CPU231は、S514において、背景パッチから、S512で決定した背景領域に該当する部分画像を切り出す。
CPU231は、S515において、学習データに用いる入力画像を画像合成により生成する。CPU231は、前景パッチと同一サイズの画像データであって、全画素の値が白(画素値が255、あるいは255から若干の幅を持たせた範囲(例えば255〜250)からランダムに選択)の画像データを、ベース画像として生成する。CPU231は、ベース画像の、S512で決定した前景領域の位置に、S513で切り出した前景パッチの部分画像を貼り付けて合成する。また、CPU231は、ベース画像の、S512で決定した背景領域の位置に、S514で切り出した背景パッチの部分画像を貼り付けて合成する。このようにして画像合成により生成した合成画像データを学習データ用の入力画像とする。
CPU231は、S516において、画像を合成し、学習データ用の正解ラベル画像を生成する。CPU231は、入力画像と同一サイズの画像データであって、全画素が手書きではないことを示す値である画像データを生成する。CPU231は、当該画像データの、S512で決定した前景領域の位置に、S513で切り出した正解ラベル画像の部分画像を貼り付けて合成する。このようにして画像合成により生成した画像データを学習データ用の正解ラベル画像とする。学習データの構成は図14(a)に示す通りである。図14(a)は学習データの構成例を示す図である。
CPU231は、S517において、S515で画像合成により生成した入力画像と、S516で画像合成により生成した正解ラベル画像とを対応付け、学習データとしてストレージ235の所定の領域に保存する。本実施例では、図14(a)のような学習データが保存される。
CPU231は、S518において、学習データ生成処理を終了するか否かを判定する。CPU231は、予め決定した学習データの数(本フローチャートの開始時に、画像処理装置101の入力デバイス209を介して、ユーザが指定するなどして決定)だけ学習データを生成していたならば、YESと判定し、処理を終了する。そうでなければ、NOと判定し、S501に遷移する。
<学習処理>
次に、学習装置102による学習処理について説明する。図7は学習処理のフローを示す図である。
この処理は、学習装置102の学習部113により実現される。これは、ユーザが、画像処理装置101の入力デバイス209を介して、所定の操作を行うことで開始される。なお、本実施例において、ニューラルネットワークの学習には、ミニバッチ法を用いるものとする。
まずCPU231は、S701において、ニューラルネットワークを初期化する。すなわち、CPU231は、ニューラルネットワークを構築し、当該ニューラルネットワークに含まれる各パラメタの値を、ランダムに決定して初期化する。構築するニューラルネットワークの構造は、様々なものを用いることができるが、例えば、公知技術であるFCN(Fully Convolutional Networks)の形態を取り得る。
CPU231は、S702において、学習データを取得する。CPU231は、図5のフローチャートに示した、学習データ生成処理を実行して、所定の数(ミニバッチサイズ、例えば10)の学習データを取得する。
CPU231は、S703において、ニューラルネットワークの誤差を算出する。すなわち、各学習データに含まれる入力画像をニューラルネットワークに入力して出力を得る。当該出力は、入力画像と同じ画像サイズであり、予測結果として、手書きであると判定された画素は、画素の値が手書きを示す値、そうではないと判定された画素は、画素の値が手書きではないことを示す値である画像である。そして、当該出力と正解ラベル画像との差を評価して誤差を求める。当該評価には指標として交差エントロピーを用いることができる。
CPU231は、S704において、ニューラルネットワークのパラメタを調整する。すなわち、S703において算出した誤差をもとに、バックプロパゲーション法によってニューラルネットワークのパラメタ値を変更するものである。
CPU231は、S705において、学習を終了するか否かを判定する。これは次のようにして行う。CPU231は、S702〜S704の処理を、所定回数(例えば、60000回)行ったか否かを判定する。当該所定回数は、本フローチャートの開始時にユーザが操作入力するなどして決定することができる。所定回数行った場合には、YESと判定し、S706に遷移する。そうでない場合は、S702に遷移し、ニューラルネットワークの学習を続ける。
CPU231は、S706において、学習結果として、S704において調整したニューラルネットワークのパラメタを、画像処理サーバ103に送信する。
<手書き除去依頼処理>
次に、画像処理装置101による、手書き除去依頼処理について説明する。画像処理装置101は、手書きを含む原稿をスキャンする。そして、スキャン画像データを画像処理サーバ103に送信して、手書き除去を依頼する。図8(a)は手書き除去依頼処理のフローを示す図である。この処理は、画像処理装置101のCPU201が、ストレージ208に記録されているコントローラプログラムを読み出し、RAM204に展開して実行することにより実現される。これは、ユーザが、画像処理装置101の入力デバイス209を介して、所定の操作を行うことで開始される。
まずCPU201は、S801において、スキャナデバイス206や原稿搬送デバイス207を制御して、原稿をスキャンして処理対象画像を生成する。処理対象画像は、フルカラー(RGB3チャネル)の画像データとして生成される。
CPU201は、S802において、S801で生成した手書き処理対象を、外部インタフェース211を介して、画像処理サーバ103に送信する。
CPU201は、S803において、画像処理サーバ103から、処理結果を受信したか否かを判定する。画像処理サーバ103から、外部インタフェース211を介して、処理結果を受信していた場合には、YESと判定し、S804に遷移する。そうでない場合には、NOと判定し、S803の処理ステップを繰り返す。
CPU201は、S804において、画像処理サーバ103から受信した処理結果、すなわち、S801で生成した処理対象画像から手書き除去された画像データを出力する。換言すると読取画像中の手書きのみが削除された画像データを出力する。なお出力方法として、プリンタデバイス205により手書きが除去された画像データを印刷することができる。あるいは、ユーザが、入力デバイス209を操作して設定した送信宛先に、外部インタフェース211を介して、手書きが除去された画像データを送信することができる。
<手書き除去処理>
次に、画像処理サーバ103による手書き除去処理について説明する。画像処理サーバ103は、画像処理装置101から受信した処理対象画像に対して手書き除去処理を行う。図8(b)は手書き除去処理のフローを示す図である。この処理は、CPU261が、ストレージ265に記憶されている画像処理サーバプログラムを読み出し、RAM264に展開して実行することで実現される。これは、ユーザが、画像処理サーバ103の電源をON(オン)にすると開始される。
まずCPU261は、S851において、手書き抽出を行うニューラルネットワークをロードする。CPU261は、図7のフローチャートのS701の場合と同一のニューラルネットワークを構築する。そして、図8のフローチャートのS706において、学習装置102から送信された学習結果(ニューラルネットワークのパラメタ)を、構築したニューラルネットワークに反映する。
CPU261は、S852において、処理対象となる処理対象画像を、画像処理装置101より受信したかを判定する。外部インタフェース268を介して、処理対象画像を受信していたならば、YESと判定し、S853に遷移する。そうでなければ、NOと判定し、S856に遷移する。
CPU261は、S853において、画像処理装置101から受信した処理対象画像から手書きの画素を抽出する。CPU261は、処理対象画像をグレースケール化する。そして、このグレースケール化した処理対象画像を、S851で構築したニューラルネットワークに入力して、手書きの画素を推定させる。ニューラルネットワークの出力として、次のような画像データが得られる。処理対象画像と同じ画像サイズであり、予測結果として手書きであると判定された画素には、手書きであること示す値、手書きではないと判定された画素には、手書きではないことを示す値が、それぞれ記録された画像データ。以降この画像データを「手書き抽出結果画像」と呼称する。
CPU261は、S854において、S853で得た手書き抽出結果画像に基づいて、処理対象画像から手書きを除去する。CPU261は、処理対象画像の画素であって、手書き抽出結果画像において画素値が手書きを示す値である画素と同位置の画素を、白(RGB=(255,255,255))に変更する。
CPU261は、S855において、手書きを除去した処理対象画像を、外部インタフェース268を介して、画像処理装置101に送信する。
CPU261は、S856において、処理を終了するか否かを判定する。ユーザが、画像処理サーバ103の電源のOFFなどの所定の操作を行った場合には、YESと判定し、処理を終了する。そうでなければ、NOと判定し、S852に遷移する。
<備考>
以上、本実施例に示したとおり、手書きのみを含む画像データと印字内容のみを含む画像データとから、手書きと印刷内容が重ならないように合成して手書き抽出を行うニューラルネットワークを学習するための学習データを生成することができる。そしてこの学習データを用いてニューラルネットワークを学習し、当該学習の結果を用いて、スキャン画像データから手書きを抽出して除去することができる。
なお、本実施例では、S360における処理対象画像の加工において、手書き文字の除去をおこなった。しかしながら、処理対象画像の加工は手書き文字の除去には限られない。例えば、画像2204のように手書き文字を強調するような加工を施してもよい。
(実施例2)
本実施例では、学習データを画像合成により生成するための方法として、実施例1とは別の方法を採用するケースについて説明する。本実施例では、学習データ用の入力画像を合成する際に、画像処理装置101でスキャンした画像をベース画像として用いる。このような処理により実際のスキャン画像データと近しい画像を画像合成により生成することができる。実施例2の画像処理システムの構成は、特徴部分を除いて実施例1の画像処理システムの構成と同様である。そのため、同様の構成については、同様の符号を付し、その詳細な説明を省略する。
<サンプル画像取得処理>
本実施例における、画像処理装置101によるサンプル画像取得処理について説明する。図9(a)は実施例2におけるサンプル画像取得処理のフローを示す図である。この処理は、CPU201が、ストレージ208に記録されているコントローラプログラムを読み出し、RAM204に展開して実行することで実現される。これは、ユーザが、画像処理装置101の入力デバイス209を操作することにより開始される。
S401〜S406の処理は、図4(a)のフローチャートにおける同符合の処理ステップと同様の処理ステップである。本実施例では、S404で、NOと判定する場合には、S901に遷移する。
CPU201は、S901において、余白に用いる原稿のスキャン指示が成されたか否かを判定する。ユーザが、入力デバイス209を介して、余白に用いる原稿をスキャンする所定の操作を行った場合には、YESと判定し、S902に遷移する。そうでなければ、NOと判定し、S407に遷移する。
CPU201は、S902において、スキャナデバイス206や原稿搬送デバイス207を制御して、原稿をスキャンして画像データ(以降この画像データを「余白サンプル画像」と呼称する)を生成する。この原稿は、手書きも印刷内容も含まない用紙である。余白サンプル画像は、フルカラー(RGB3チャンネル)の画像データとして生成される。
CPU201は、S903において、S902で生成した余白サンプル画像を、外部インタフェース211を介して、学習装置102に送信する。このとき、送信する画像データが、余白サンプル画像であることを示す情報を付与して送信する。
S407の処理は、図4(a)のフローチャートにおける同符合の処理ステップと同様の処理ステップである。
以上の処理によって、画像処理装置101は、前景サンプル画像および背景サンプル画像に加えて、余白サンプル画像を生成して学習装置102に送信する。ユーザの操作や、原稿搬送デバイス207に載置した原稿枚数に応じて、前景サンプル画像および背景サンプル画像、余白サンプル画像が、それぞれ複数取得される。
<サンプル画像受信処理>
次に、本実施例における、学習装置102によるサンプル画像取受信処理について説明する。図9(b)は実施例2におけるサンプル画像受信処理のフローを示す図である。この処理は、CPU231が、ストレージ235に記録されている学習データ生成プログラムを読み出し、RAM234に展開して実行することで実現される。これは、ユーザが、学習装置102の電源をON(オン)にすると開始される。
S451〜S454の処理は、図4(b)のフローチャートにおける同符合の処理ステップと同様の処理ステップである。本実施例では、S453で、NOと判定する場合には、S951に遷移する。
CPU231は、S951において、余白サンプル画像を受信したか否かを判定する。CPU231は、外部インタフェース238を介して画像データを受信し、かつ、当該画像データが余白サンプル画像であることを示す情報が付与されていたならば、YESと判定し、S952に遷移する。そうでなければ、NOと判定し、S455に遷移する。
CPU231は、S952において、受信した余白サンプル画像を、ストレージ235の所定の領域に保存する。
<学習データ生成処理>
次に、本実施例における、学習装置102による学習データ生成処理について説明する。
図10は実施例2における学習データ生成処理のフローを示す図である。この処理は、学習装置102の学習データ生成部112により実現される。これは、ユーザが、学習装置102の入力デバイス236を介して、所定の操作を行うことで開始される。
S501〜S504の処理は、図5のフローチャートにおける同符合の処理ステップと同様の処理ステップである。
CPU231は、S1001において、前景パッチの各画素の輝度を変更して加工する。CPU231は、ガンマ補正を用いて前景パッチの輝度を変更する。ガンマ値は所定の範囲(例えば、0.1〜10.0の間)からランダムに選択して決定する。
S506〜S509の処理は、図5のフローチャートにおける同符合の処理ステップと同様の処理ステップである。
CPU231は、S1002において、背景パッチの各画素の輝度を変更して加工する。CPU231は、ガンマ補正を用いて背景パッチの輝度を変更する。ガンマ値は所定の範囲(例えば、0.1〜10.0の間)からランダムに選択して決定する。
CPU231は、S1003において、ストレージ235に記憶している余白サンプル画像を選択して読み出す。図9のスロチャートのS952の処理ステップにより、ストレージ235には複数の余白サンプル画像が記録されているので、その中からランダムにひとつを選択する。
CPU231は、S1004において、余白サンプル画像の一部(S503で前景パッチを切り出したときと同じ大きさ)を切り出した画像データを生成し、ベース画像とする。切り出す位置はランダムに決定する。
S511〜S514の処理は、図5のフローチャートにおける同符合の処理ステップと同様の処理ステップである。
CPU231は、S1005において、学習データ用の入力画像を画像合成により生成する。CPU231は、S1004で生成したベース画像の、S512で決定した前景領域の位置に、S513で切り出した前景パッチの部分画像を貼り付けて合成する。また、CPU231は、ベース画像の、S512で決定した背景領域の位置に、S514で切り出した背景パッチの部分画像を貼り付けて合成する。そして、画像合成により生成した画像をグレースケール化する。このようにして生成した画像を学習データ用の入力画像とする。
CPU231は、S1006において、学習データ用の正解ラベル画像を画像合成により生成する。この処理ステップは、図5のフローチャートにおけるS516と同様の処理である。加えて、画像合成により生成した正解ラベル画像をグレースケール化する。
S517とS518の処理は、図5のフローチャートにおける同符合の処理ステップと同様の処理ステップである。
<備考>
以上のように、ベース画像に、手書きも印刷内容も含まない用紙をスキャンして生成したスキャン画像データを用いることができる。これにより、画像合成により生成する学習データ用の入力画像を、より実際のスキャン画像データと近しいものとすることができる。
なお、印刷内容を含む用紙に手書きを行う際には、白い余白でなくても書き込むことがある。例えば、薄いベタ塗の領域などへの書き込みが考える。こうした領域への手書きを抽出するために、S902においてスキャンする原稿は、白紙のみならず、薄いベタ塗が印刷された原稿や、色紙を用いることができる。この場合には、S1005における、学習データ用の入力画像を合成する際に、前景パッチの部分画像の手書きではない画素を透過して、ベース画像に対してアルファ・ブレンディングして合成する。
(実施例3)
本実施例では、学習データ用の画像を画像合成により生成するための方法として、実施例1、2とは別の方法を採用するケースについて説明する。本実施例では、背景サンプル画像より余白を検出し、当該余白箇所に前景パッチを合成する。このような処理により、余白に手書き文字が書き込まれた状態に近しい学習データ用の画像を画像合成により生成することができる。実施例3の画像処理システムの構成は、特徴部分を除いて実施例1、2の画像処理システムの構成と同様である。そのため、同様の構成については、同様の符号を付し、その詳細な説明を省略する。
<学習データ生成処理>
本実施例における、学習装置102による学習データ生成処理について説明する。実施例3における学習データ生成処理のフローを示す図である。この処理は、学習装置102の学習データ生成部112により実現される。これは、ユーザが、学習装置102の入力デバイス236を介して、所定の操作を行うことで開始される。
まずCPU231は、S1101において、画像合成により生成する画像データの構成を決定する。これは図5のフローチャートのS512の処理ステップと同様の処理であるが、本実施例においては、背景に対する前景の方向は、上、右、下、左、の4方向からランダムに選択して決定する。画像合成により生成する画像データの構成は、図6(a)、図6(c)、図6(e)、図(g)のように決定される。
S506の処理は、図5のフローチャートにおける同符合の処理ステップと同様の処理ステップである。
CPU231は、S1102において、選択して読み出した背景サンプル画像から、部分領域を抽出する。部分領域とは、印刷内容のまとまり(オブジェクト)であり、例えば、複数の文字からなる文字行や、複数の文字行からなる文章、あるいは、図や写真、表、グラフ、といったオブジェクトである。この部分領域の抽出方法として、例えば次のような手法を取り得る。背景サンプル画像を白黒に二値化して二値画像を生成する。この二値画像において黒画素が連結する部分(連結黒画素)を抽出し、これに外接する矩形を作成していく。当該矩形の形状や大きさを評価することで、文字ないし文字の一部である矩形群を得ることができる。これら矩形群について、矩形間の距離を評価し、予め定めた閾値以下の距離である矩形の統合を行うことで、文字である矩形群を得ることができる。同様の大きさの文字の矩形が近くに並んでいる場合には、それらを統合して文字行の矩形群を得ることができる。短辺長が同様の文字行の矩形が等間隔に並んでいる場合は、それらを統合して文章の矩形群を得ることができる。また、図や写真、表、グラフなど、文字や行、文章以外のオブジェクトを内包する矩形も得ることができる。以上で抽出した矩形から、単独の文字あるいは文字の一部である矩形を除外する。残った矩形を部分領域とする。図18に、背景サンプル画像から部分領域を抽出した結果の一例を示す。図18は背景サンプル画像から抽出した背景部分領域の例を示す図である。部分領域を破線で示す。以降、本処理ステップにおいて、背景サンプル画像から抽出した部分領域を「背景部分領域」と呼称する。本処理ステップでは、背景サンプル画像から複数の背景部分領域を抽出し得る。
CPU231は、S1103において、S1102で抽出した背景部分領域の中から、ランダムにひとつを選択する。
CPU231は、S1104において、S1103で選択した背景部分領域が、S1101で決定した位置関係を満たす余白に隣接しているかを判定する。ここで余白とは、背景サンプル画像の画素であって、いずれの背景部分領域にも属さない画素の集合である。本処理ステップでは、当該背景部分領域の一部または全部を合成して生成する画像の背景領域とする場合に、近傍に前景を合成することができる余白が存在するかを判定するものである。例えば、S1101において、背景に対する前景の方向を、左と決定していた場合には、次のように判定する。当該背景部分領域の左端と背景サンプル画像の左端との距離(画素数)が、画像合成により生成する画像における前景領域の幅と余白領域の幅を加算した値よりも大きいこと。かつ、当該背景部分領域の左端から前景領域の幅と余白領域の幅を加算した値までの距離の間に、他の背景部分領域や、S1102で抽出した単体の文字や文字の一部であった矩形が存在しないこと。図19を用いて例示する。図19(a)は背景部分領域を説明するための図である。図19(b)は生成される入力画像の構成を示す図である。図19(c)は生成される入力画像の構成を示す図である。
そして、S1103において、背景部分領域1901を選択したものとする。背景部分領域1901の左端から背景サンプル画像の左端までの距離を、図示のようにd1とする。また、S1101において、合成する画像の構成を図19(b)のように決定したとする(前景領域1911、余白領域1912、背景領域1913)。図示のように、前景領域1911の幅をd3、余白領域1912の幅をd4とする。そして、図示のように、背景部分領域1901の左端からd3+d4の距離の間には、他の背景部分領域や、単体の文字や文字の一部である矩形は存在しない。このとき、d1≧d3+d4であれば、背景部分領域1901はS1101で決定した位置関係を満たす余白に隣接していると判定され、d1<d3+d4ならば、否と判定される。S1101において決定した背景に対する前景の方向が上や右、下の場合についても、同様に判定する。なお、例えば、S1101において、背景に対する前景の方向を、右と決定していた場合であり、かつ合成する画像の構成を図19(c)のように決定していたとする(前景領域1921、余白領域1922、背景領域1923)。背景部分領域1901の右端から、背景サンプル画像の右端までの距離d2に対して、前景領域の幅d5と余白領域の幅d6は、d2>d5+d6を満たすものとする。しかし、背景部分領域1901の右端からd5+d6までの距離の間に、背景部分領域1902が存在する。よってこの場合は、S1103で選択した背景部分領域はS1101で決定した位置関係を満たす余白に隣接していないと判定する。以上説明したように、S1103で選択した背景部分領域が、S1101で決定した位置関係を満たす余白に隣接していれば、YESと判定し、S501に遷移する。そうでなければ、NOと判定し、S1105に遷移する。
CPU231は、S1105において、S506で選択した背景サンプル画像について、S1102で抽出した全ての背景部分領域に対して、S1104の判定を行ったか否かを判定する。行っていた場合、YESと判定し、S1106に遷移する。これはすなわち、現在選択している背景サンプル画像から抽出される背景部分領域には、S1101で決定した位置関係を満たすものがない場合である。そうでない場合は、NOと判定し、S1103に遷移する。これはすなわち、現在選択している背景部分領域は、S1101で決定した位置関係を満たさないため、S1103に戻って、別の背景部分領域を選択するものである。以降、S1104においてYESと判定するか、S1101で再度、画像合成により生成する画像データの構成を決定しなおすまで、再度S1103の処理ステップを実行する際には、以前に選択した背景部分領域は選択しない。
CPU231は、S1106において、ストレージ235に記憶している全ての背景サンプル画像について、S1104の判定を行ったか否かを判定する。行っていた場合には、YESと判定し、S1101に遷移する。これはすなわち、ストレージ235に記憶している全ての背景サンプル画像は、S1101で決定した位置関係を満たす背景部分領域を含まないため、S1101に戻って位置関係を決定しなおすものである。そうでない場合は、NOと判定し、S506に戻る。これはすなわち、現在選択している背景サンプル画像は、S1101で決定した位置関係を満たす背景部分領域を含まないため、ステップ506に戻って、別の背景サンプル画像を選択するものである。以降、S1104においてYESと判定するか、S1101で再度、画像合成により生成する画像データの構成を決定しなおすまで、再度S506の処理ステップを実行する際には、以前に選択した背景サンプル画像は選択しない。
S501の処理は、図5のフローチャートにおける同符合の処理ステップと同様の処理ステップである。
CPU231は、S1107において、選択して読み出した前景サンプル画像から、部分領域を抽出する。S1102の処理と同様に、連結黒画素とその外接矩形を抽出して評価することで、手書きの文や図形を内包する部分領域を抽出する。以降、本処理ステップにおいて、前景サンプル画像から抽出した部分領域を「前景部分領域」と呼称する。
CPU231は、S1108において、S1107で抽出した前景部分領域の中から、ランダムにひとつを選択する。
CPU231は、S1109において、S1108で選択した前景部分領域から、S1101で決定した前景領域に該当する部分画像を切り出す。ここで、S1101で、背景に対する前景の方向を上と決定していた場合には、前景部分領域の下端から前景領域の形状・面積に相当する領域を切り出す。背景に対する前景の方向が右ならば、前景部分領域の左端から前景領域の形状・面積に相当する領域を切り出す。背景に対する前景の方向が下ならば、前景部分領域の上端から前景領域の形状・面積に相当する領域を切り出す。背景に対する前景の方向が左ならば、前景部分領域の右端から前景領域の形状・面積に相当する領域を切り出す。
CPU231は、S1110において、背景サンプル画像上であり、S1103で選択した背景部分領域に隣接する余白の、S1101で決定した位置に、S1109で切り出した前景領域を合成する。
CPU231は、S1111において、S1101で決定した構成を満たすよう、S1103で合成した前景領域を含む、背景サンプル画像上の部分領域を切り出し、学習データ用の入力画像とする。
CPU231は、S1112において、S1111で生成した入力画像を回転して加工する。回転角度は所定の範囲(例えば−10度〜10度の間)からランダムに選択して決定する。
CPU231は、S1113において、入力画像を変倍して加工する。変倍率は所定の範囲(例えば、50%〜150%の間)からランダムに選択して決定する。さらに、変倍後の入力画像の一部(例えば縦x横=256x256の大きさ)を中央から切り出して入力画像を更新する。なお、S1111において入力画像を切り出す際には、本処理ステップで切り出して更新する大きさの倍の大きさ(例えば縦x横=512x512画素)で切り出すものとする。よって、本実施例におけるS1101の処理ステップで決定する画像合成により生成する画像データの構成は、当該倍の大きさを前提とする。
CPU231は、S1114において、入力画像の各画素の輝度を変更して加工する。CPU231は、入力画像をグレースケール化し、そしてガンマ補正を用いて前景パッチの輝度を変更する。ガンマ値は所定の範囲(例えば、0.1〜10.0の間)からランダムに選択して決定する。
CPU231は、S1115において、入力画像に対する正解ラベル画像を生成する。CPU231は、入力画像を、二値化して、予め定めた閾値よりも低い値である画素の値を、手書きを示す値とし、他の画素の値を、手書きではないことを示す値とした正解ラベル画像を生成する。CPU231は、入力画像を、S1112で回転し、S1113で変倍したが、そのときの回転角度と変倍率とから、回転後かつ変倍後の入力画像中における前景領域に該当する領域を算出する。そしてこれを用いて、当該領域に該当しない正解ラベル画像の画素を全て、手書きではないことを示す値に変更する。
S517とS518の処理は、図5のフローチャートにおける同符合の処理ステップと同様の処理ステップである。
<備考>
以上、本実施例に示したとおり、背景サンプル画像から余白である領域を抽出し、当該領域に前景サンプル画像の部分画像を合成した。実際に、余白に手書きが書き込まれた状態に近しい学習データ用の画像を画像合成により生成し、手書き抽出を行うニューラルネットワークを学習するための学習データを生成することができる。
(実施例4)
本実施例では、学習データ用の画像を画像合成により生成する別の方法として、実施例1〜3とは別の方法を採用するケースについて説明する。本実施例では、帳票に記入された手書き文字を抽出するのに好ましい学習データ用の画像を画像合成により生成する。具体的には、未記入の帳票である背景サンプル画像より、記入欄内の余白を検出し、当該箇所に前景パッチを合成する。実施例4の画像処理システムの構成は、特徴部分を除いて実施例1〜3の画像処理システムの構成と同様である。そのため、同様の構成については、同様の符号を付し、その詳細な説明を省略する。
<帳票画像>
背景サンプル画像生成処理は、実施例1で図4(a)を用いて説明したとおりであるが、本実施例において、S405で背景サンプル画像を生成する際には、申し込み用紙などの帳票であって未記入のものをスキャンするものとする。未知の形式の帳票原稿に対応できるよう、様々な種類の帳票原稿をスキャンすることが望ましい。
多数の種類の帳票をスキャンして背景サンプル画像を生成する。帳票の一例を、図12に示す。図12は背景サンプル画像生成処理の概要を示す図である。帳票1200には、手書き文字の記入欄として、氏名を記入する氏名記入欄1201と、住所を記入する住所記入欄1202、電話番号を記入する電話番号記入欄1203がある。また、これら記入欄に対する見出しとして、氏名見出し1204(「氏名」)、住所見出し1205(「住所」)、電話番号見出し1206(「電話番号」)がある。また、S402で前景サンプル画像を生成する際には、帳票の記入欄に記入され得る内容を想定し、一行ないし二行程度の手書き文が記入された用紙をスキャンするものとする。
<学習データ生成処理>
本実施例における、学習装置102による学習データ生成処理について説明する。図13は実施例4における学習データ生成処理のフローを示す図である。この処理は、学習装置102の学習データ生成部112により実現される。これは、ユーザが、学習装置102の入力デバイス236を介して、所定の操作を行うことで開始される。
S501の処理は、図5のフローチャートにおける同符合の処理ステップと同様の処理ステップである。
S1107とS1108、S1109の処理は、図11のフローチャートにおける同符合の処理ステップと同様の処理ステップである。
S506の処理は、図5のフローチャートにおける同符合の処理ステップと同様の処理ステップである。
CPU231は、S1301において、選択して読み出した背景サンプル画像から、背景部分領域を抽出する。本実施例における背景部分領域は、帳票における未記入の記入欄とする。背景部分領域として記入欄を抽出する方法として、例えば次のような手法を取り得る。背景サンプル画像を白黒に二値化して二値画像を生成する。この二値画像において黒画素が連結する部分(連結黒画素)を抽出する。抽出した連結黒画素魂の中から、所定の閾値(例えば50画素)よりも長く、所定の閾値(例えば5画素)よりも細い画素魂を、罫線として抽出する。この際、画像上下端に対して概ね平行であること、あるいは、画像左右端に対して概ね平行であることを、罫線の抽出条件として加味してもよい。4本の罫線に囲まれた領域であって、当該4本の罫線を含み、内部に他の連結黒画素魂を有しない領域を、背景部分領域(記入欄)として抽出する。この処理によりひとつ以上の背景部分領域が抽出され得る。
CPU231は、S1302において、S1301で抽出した背景部分領域の中から、ランダムにひとつを選択する。
CPU231は、S1303において、背景サンプル画像の各画素の輝度を変更して加工する。CPU231は、背景サンプル画像をグレースケール化し、そしてガンマ補正を用いて前景パッチの輝度を変更する。ガンマ値は所定の範囲(例えば、0.1〜10.0の間)からランダムに選択して決定する。
CPU231は、S1304において、前景パッチを変倍して加工する。変倍率は、例えば次のようにして決定する。S1302で選択した背景部分領域の幅に対する前景パッチの幅の比率RWと、背景パッチの高さに対する前景パッチの高さの比率RHを求める。RWとRHのうち、値の大きな方を比率R1として採用する。一方、変倍後の前景パッチと背景パッチの幅(R1にRWを採用した場合)あるいは高さ(R1にRHを採用した場合)の比率を所定の範囲(例えば、0.5〜0.95)からランダムに選択して決定する(この比率をR2とする)。そして、変倍率をR2/R1とする。
CPU231は、S1305において、前景パッチの各画素の輝度を変更して加工する。CPU231は、前景パッチをグレースケール化し、そしてガンマ補正を用いて前景パッチの輝度を変更する。ガンマ値は所定の範囲(例えば、0.1〜10.0の間)からランダムに選択して決定する。
CPU231は、S1306において、背景サンプル画像の選択した背景部分領域内に、前景パッチを合成する。合成する位置は、前景パッチが背景部分領域内に収まる範囲内で、ランダムに決定して合成する。
CPU231は、S1307において、前景パッチを合成した背景部分領域を含む部分領域を切り出して入力画像を生成する。切り出す位置は、以下のように決定する。入力画像に、背景部分領域の4本の罫線のうちの少なくともひとつを含む。入力画像に合成した前景パッチを所定の割合以上含む(例えば面積で25%以上)。以上の条件を満たす範囲内で、ランダムに決定する。なお、帳票の記入欄は、一般に横長の長方形状である場合が多い。よって、割合として、記入領域の左右端の罫線が含まれないことが多くなり得る。なので、明示的に左右端の罫線を含むように切り出す位置を決定してもよい。
CPU231は、S1308において、正解ラベル画像を生成する。CPU231は、S1307で生成した入力画像の全体を二値化して正解ラベル画像を得る。そして、S1306において、背景部分領域に前景パッチを合成した位置、および、S1307で入力画像を切り出した位置、とから、入力画像中のどの領域が元の前景パッチであったかを算出する。正解ラベル画像における、算出した領域以外の領域の画素値を、手書きを示さないことを示す値に変更する。以上により正解ラベル画像を得る。
CPU231は、S1309において、入力画像および正解ラベル画像を回転して加工する。回転角度は、入力画像と正解ラベル画像とで同一とし、所定の範囲(例えば−5度〜5度の間)からランダムに選択して決定する。
CPU231は、S1310において、入力画像と正解ラベル画像を、変倍して加工する。変倍率は、入力画像と正解ラベル画像とで同一とし、所定の範囲(例えば、90%〜110%の間)からランダムに選択して決定する。さらに、変倍後の前景パッチの一部(例えば縦x横=256x256の大きさ)を切り出して前景パッチを更新する。このとき、元の前景サンプル画像の領域と、元の背景サンプル画像の領域と罫線とが含まれるように切り出し位置を決定する。
S517とS518の処理は、図5のフローチャートにおける同符合の処理ステップと同様の処理ステップである。
<備考>
以上、本実施例に示したとおり、背景サンプル画像から、帳票の記入欄に相当する余白である領域を抽出し、当該領域に前景サンプル画像の部分画像を合成した。これにより、手書きと印刷内容が重ならないように合成して、手書き抽出を行うニューラルネットワークを学習するための学習データを生成することができる。
(実施例5)
本実施例では、手書き認識結果の利用方法として、実施例1とは異なる方法を採用するケースについて説明する。本実施例では、手書き認識結果の利用方法として、処理対象画像から有益な情報の抽出を行う。具体的には、データの検索等に活用できるように、活字と手書き文字とを含む原稿からテキスト情報を抽出する処理(OCR処理)を施す。特に、本実施例では、手書き文字画像と活字画像を分けることでOCR処理の精度を向上させている。また、本実施例では複数ページを備えるドキュメントのうち、どのページに手書き文字が含まれているか等のページ構成情報を取得するための処理を施す。上述のように検索可能なデータをサーチャブルデータと呼称する。ここでは、サーチャブルデータと例として、サーチャブルPDFと帳票データを例に挙げる。なお、実施例5の画像処理システムの構成は、特徴部分を除いて実施例1〜4の画像処理システムの構成と同様である。そのため、同様の構成については、同様の符号を付し、その詳細な説明を省略する。
<画像処理システム>
本実施例では、画像処理システムに新たな装置が追加される。図16(a)は実施例5における画像処理システムの構成を示す図である。画像処理システム1600は、画像処理装置101、学習装置102、画像処理サーバ103、に加え、OCRサーバ1604を備える。
画像処理装置101、学習装置102、画像処理サーバ103については、図1を用いて説明したとおりである。OCRサーバ1604は、活字OCR部1617、手書きOCR部1616としての機能を備える。
手書きOCR部1616は、処理対象画像に含まれる手書き文字に対してOCRを行うことができる。手書きOCR部1616は、画像処理サーバ103より、処理対象画像と、処理対象画像上の領域であってOCRの対象とする手書き文字を含む領域(以降この領域を「手書きOCR対象領域」と呼称する)の情報を受信する。そして、スキャン画像中の手書きOCR対象領域に対してOCR処理を行ってテキストデータを取得する。手書きOCR部1616は当該テキストデータを画像処理サーバ103に送信する。
活字OCR部1617は、処理対象画像に含まれる活字に対してOCR(光学文字認識)を行うことができる。活字OCR部1617は、画像処理サーバ103より、処理対象画像と、処理対象画像上の領域であってOCRの対象とする活字を含む領域(以降この領域を「活字OCR対象領域」と呼称する)の情報を受信する。そして、処理対象画像中の活字OCR対象領域に対してOCRを行ってテキストデータを取得する。当該テキストデータを画像処理サーバ103に送信する。
<利用シーケンス>
本システムにおける利用シーケンスについて説明する。図16(b)は実施例6における画像処理システムの利用シーケンスを示した図である。
S1651において、オペレータが処理対象画像の読取指示を行うと、画像取得部111は、処理対象画像を読みとり、この画像に処理対象フラグを付与する(S1652)。ここで読み取られる画像は、例えば図23(a)に示すような画像群である。図23(a)に示す画像群は11ページ目の画像に手書き文字2301を含んでいる。あるいは、図24に示すような帳票原稿2400である。帳票原稿2400は氏名記入欄1201や住所記入欄1202、電話番号記入欄1203を備え、それぞれ、氏名や住所、電話番号が手書きで記入されている。
また、S1653において、オペレータがサーチャブルデータの作成指示(変換指示)をおこなうと、画像取得部111は、サーチャブルデータの作成指示情報を取得する(S1654)。
上述のように読み取られた処理対象画像は、指示情報とともに画像変換部114に送信される(S1655)。なお、このとき、送信データにID情報を付与するとよい。
データを受信すると、画像変換部114は、手書き文字の加工指示を受け付ける(S1656)。このとき、画像変換部114は、画像取得部111をデータの返信先として記憶する。手書き文字の加工指示を受け付けた画像変換部114は、最新の学習モデルを学習部113に要求する(S1657)。これに応じて、学習部113は最新の学習モデルを画像変換部114に送信する。画像変換部114からの要求時にID情報が指定されていた場合は、ID情報に対応する学習モデルを送信する(S1658)。画像変換部114は、取得した学習モデルに基づいて、変換元画像から手書き文字の抽出処理(識別処理)をおこなう(S1659)。そして、抽出処理によって生成された、手書き文字のみを含む手書き画像を、手書きOCR部1616に送信する。手書きOCR部1616は、手書き画像に手書きOCR処理を施し、テキストデータ(手書き)を取得する(S1661)。手書きOCR部1616は、取得したテキストデータ(手書き)を画像変換部114に送信する(S1662)。続けて、画像変換部114は処理対象画像から手書き文字を除去した活字画像を生成する(S1663)。そして、活字OCR部1617に活字画像を送信する(S1664)。活字画像を取得した活字OCR部1617は、活字画像に活字OCR処理を施し、テキストデータ(活字)を取得する(S1665)。そして、取得したテキストデータ(活字)を画像変換部114に送信する(S1666)。その後、画像変換部114は、テキストデータ(手書き)、テキストデータ(活字)に少なくとも基づいてサーチャブルデータを生成する(S1667)。画像変換部114は、サーチャブルデータを画像取得部111に送信する(S1668)。サーチャブルPDFデータを取得した画像取得部111は、サーチャブルデータの利用画面をオペレータに提示する(S1669)。
<操作画面>
次に、本実施例に登場するサーチャブルデータの利用方法について説明する。図23(b)はサーチャブルPDFの操作画面を示す図である。
サーチャブルPDFの取得処理が完了すると、画像処理装置101が備える表示デバイス210には、操作画面2300が表示される。なお、サーチャブルPDFを蓄積しておき、リスト画面(不図示)から指定された際に、この画面を表示してもよい。操作画面は、詳細情報領域2302、プレビュー領域2303、入力欄2304、検索ボタン2305を備える。
詳細情報領域2302は、文書名、ページ数、部数、ユーザ名等のPDFファイルの詳細情報が表示される欄である。本実施例では、ページ構成情報の抽出もおこなっているため、手書き文字がどのページに含まれているかを示す情報である「手書き有ページ」の項目も表示されている。
プレビュー領域2303は、PDFデータのプレビュー画像が表示される領域である。
入力欄2304は、ユーザ操作により任意に文字を入力可能な欄である。文字入力はソフトウェアキーボード(不図示)や、外付けのハードウェアキーボード等によって行われる。
検索ボタン2305は、PDFデータ内の文字検索を開始するためのボタンである。入力欄2304に「分かりやすい表現」が入力された状態で検索ボタン2305が選択されると、プレビュー領域2303にはp.11のプレビュー画像が表示される。このプレビュー画像では、手書き文字2301がハイライト(例えば赤枠等で強調)されている。このようなハイライト処理は、画像中の座標情報(x属性およびy属性、width属性、height属性の)にOCRで得られたテキストデータを紐づけておくことで実現される。
<データ生成依頼処理>
次に、画像処理装置101による、データ生成依頼処理について説明する。図17(a)はデータ生成依頼処理のフローを示す図である。この処理は、画像処理装置101のCPU201が、ストレージ208に記録されているコントローラプログラムを読み出し、RAM204に展開して実行することにより実現される。これは、ユーザが、画像処理装置101の入力デバイス209を介して、所定の操作を行うことで開始される。
S801とS802の処理は、図8のフローチャートにおける同符合の処理ステップと同様の処理ステップである。本実施例では、処理対象画像の送信にともない、サーチャブルデータ生成処理の依頼情報が付与される。依頼情報として、サーチャブルPDFの作成依頼または帳票データの作成依頼が挙げられる。
<データ生成処理>
次に、画像処理サーバ103によるOCR処理について説明する。図17(b)はデータ生成依頼処理のフローを示す図である。画像変換部114として機能する画像処理サーバ103は、画像処理装置101から処理対象画像を受信し、当該スキャン画像データに含まれる活字や手書き文字をOCRしてテキストデータを得る。活字に対するOCRは、活字OCR部1617に実行させる。手書き文字に対するOCRは、手書きOCR部1616に実行させる。図17(b)は、このOCR処理のフローチャートである。この処理は、CPU261が、ストレージ265に記憶されている画像処理サーバプログラムを読み出し、RAM264に展開して実行することで実現される。これは、ユーザが、画像処理サーバ103の電源をON(オン)にすると開始される。
S851とS852、S853の処理は、図8のフローチャートにおける同符合の処理ステップと同様の処理ステップである。
CPU261は、S1751において、処理対象画像から手書きOCR対象領域を抽出する。CPU261は、S853で得た手書き抽出結果画像に対して、図11に示したフローチャートのS1107の処理と同様に、手書きであることを示す画素が連結する部分とその外接矩形を抽出して評価する。これにより、手書きの文字を内包する部分領域を抽出する。手書き抽出結果画像における当該部分領域の位置およびサイズに該当する、処理対象画像上の領域を手書きOCR対象領域とする。
CPU261は、S1752において、S1751で抽出した手書きOCR対象領域と処理対象画像とを、外部インタフェース268を介して、手書きOCR部1616に送信し、手書きOCRを実行させる。手書きOCRには公知の技術を適用し実現することができる。
CPU261は、S1753において、手書きOCR部1616から、手書きOCR結果を受信したか否かを判定する。手書きOCR結果とは、手書きOCR部1616が、手書きOCR対象領域に含まれていた手書き文字を認識して得たテキストデータである。外部インタフェース268を介して、手書きOCR部1616から、手書きOCR結果を受信していたならば、YESと判定し、S1754に遷移する。そうでなければ、S1753の処理を繰り返す。
CPU261は、S1754において、処理対象画像から活字OCR対象領域を抽出する。CPU261は、処理対象画像に対して、図11のフローチャートのS1102の処理と同様に、連結黒画素とその外接矩形を抽出して評価することで、活字を内包する部分領域を抽出する。このとき、S1751で抽出した手書きOCR対象領域を、処理対象画像から除外する。
CPU261は、S1755において、S1754で抽出した活字OCR対象領域と処理対象画像とを、外部インタフェース268を介して、活字OCR部1617に送信し、活字OCRを実行させる。活字OCRには公知の技術を適用し実現することができる。
CPU261は、S1756において、活字OCR部1617から、活字OCR結果を受信したか否かを判定する。活字OCR結果とは、活字OCR部1617が、活字OCR対象領域に含まれていた活字を認識して得たテキストデータである。外部インタフェース268を介して、活字OCR部1617から、活字OCR結果を受信していたならば、YESと判定し、S1757に遷移する。そうでなければ、S1756の処理を繰り返す。
CPU261は、S1756において、依頼内容の判定を行う。依頼内容がサーチャブルPDFの生成である場合、CPU261はS1758へと処理を進める。依頼内容が帳票データの生成である場合、CPU261はS1760へと処理を進める。サーチャブルPDFの生成処理および、帳票データの生成処理について、それぞれ詳細に説明する。
<サーチャブルPDF生成処理>
次に、画像処理サーバ103によるサーチャブルPDF生成処理について説明する。図15(a)(b)は手書き検出結果情報を示す図である。操作画面2100において、ボタン2104が選択された場合、サーチャブルPDF生成処理が依頼される。サーチャブルPDF生成処理は、例えば、図23(b)のように手書き文字を含む複数ページの原稿を読みとる際に依頼される。
依頼内容がサーチャブルPDF生成処理であった場合、CPU261は、S1758においてページ構成情報を生成するための処理を行う。CPU261は、ページ構成情報の一つとして、手書き文字の検出処理をおこなう。この処理において、CPU261は、手書き抽出結果画像において、手書きと予測した画素が連結する部分を抽出する。そして、これに外接する矩形を作成し、当該矩形の形状や大きさ、矩形間の距離を評価する。これにより、手書きの単語や文などの、ひとまとまりの手書き画素の集合を内包する矩形を得ることができる。当該矩形を手書きの領域とする。CPU261は、手書き検出結果情報を示すXMLデータを生成し、取得した手書きの領域の数だけ<handwriting>タグを挿入する。各々の<handwriting>タグには、x属性およびy属性を追加し、該当する手書きの領域の始点位置のx座標およびy座標の値を記録する。また、width属性およびheight属性を追加し、該当する手書き領域の幅の画素数および高さの画素数を記録する。その様子を図15(a)に示す。手書き抽出結果画像に手書き画素が含まれない場合は、手書きの領域は取得されず、手書き検出結果情報に<handwriting>タグは挿入しない。その様子を図15(b)に示す。以上のようにして、CPU261は手書き文字を検出し、ページ構成情報に加える。
CPU261は、S1758において、処理対象画像、OCR結果(手書き、活字)、ページ構成情報を統合し、サーチャブルPDFを生成する。生成されたサーチャブルPDFは、S1761において、画像取得部111に送信される。
<帳票データ生成処理>
次に、帳票データ生成処理について詳細に説明する。操作画面2100において、ボタン2103が選択された場合、帳票データ生成処理が依頼される。帳票データ生成処理は、例えば、図24のように、手書き文字が記入された帳票原稿2400を読み取る際に依頼される。この場合、S1659では手書き抽出画像2410が生成され、S1663では手書き除去画像2420が生成される。すなわち、氏名記入欄1201と住所記入欄1202、電話番号記入欄1203に記入された手書き文字を包含する領域が、それぞれ手書きOCR対象領域として抽出されている。また、氏名見出し1204と住所見出し1205、電話番号見出し1206内に印字された活字を包含する領域が、それぞれ活字OCR対象領域として抽出されている。
CPU261は、S1760において、手書きOCR部1616ないし活字OCR部1617から受信した手書きOCR結果および活字OCR結果を統合する。
CPU261は、元となった手書きOCR対象領域および活字OCR対象領域の位置関係や、手書きOCR結果ないし活字OCR結果であるテキストデータの意味的な関係性を評価することで、手書きOCR結果および活字OCR結果の関連性を推定する。この推定は、手書き座標テーブル2430や活字座標テーブル2440に基づき行われる。
そして、氏名見出し1204内の活字OCR対象領域に対して、最も距離が近い手書きOCR対象領域として、氏名記入欄1201内の手書きOCR対象領域が特定される。かつ、当該手書きOCR対象領域の手書きOCR結果であるテキストデータが、人名を含む文字列であれば、これは氏名であると特定できる。よって、これら活字OCR結果と手書きOCR結果とを、氏名に関する項目と値のペアの関係性と評価する。同様に、住所についても、活字OCR対象領域と手書きOCR対象領域の距離、および、手書きOCR結果に地名を含むことから、両者の関係性が評価される。電話番号についても、活字OCR対象領域と手書きOCR対象領域の距離、および、手書きOCR結果が数字から構成されることから、両者の関係性が評価される。こうして、手書きOCR結果と活字OCR結果とが、ひとつ以上の項目と値のペアとして統合され、帳票データ2450(テーブルデータ)が生成される(S1761)。生成された帳票データは、S1761において、画像取得部111に送信される。この帳票データは、加工可能なドキュメントデータとして事務処理等に用いられる。
<備考>
以上、本実施例に示したとおり、ニューラルネットワークの学習結果を用いることで、処理対象画像から有益な情報を抽出することができる。例えば、スキャン画像データから手書きOCRの対象領域を抽出して手書きOCRを行うことができる。帳票ごとに、手書きOCR対象領域を、事前に登録するなどの作業を必要とせずに、手書きOCR対象領域を抽出し、手書きOCR処理に入力して処理することができる。また、事前登録ができない不定型の帳票においても、人が手書きOCR対象領域を指定するなどの作業を必要とせずに、手書きOCR対象領域を抽出し、手書きOCR処理に入力して処理することができる。また、スキャン画像データから手書きを抽出することで、複数枚の原稿の中から、手書きを含むものを検出することができる。そのため、校正原稿のように、不定型・多数の原稿の中から手書きを含むものを容易に検出することができる。
(その他の実施例)
本発明は、上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。例えば、実施例では、学習データ生成部112と学習部113は、学習装置102において実現されるものとしたが、それぞれ別体の装置において実現されるようにしても良い。この場合、学習データ生成部112を実現する装置は、学習データ生成部112が生成した学習データを、学習部113を実現する装置に送信する。そして、学習部113は受信した学習データをもとにニューラルネットワークを学習する。画像処理装置101と画像処理サーバ103とを別体の装置として説明したが、画像処理装置101が画像処理サーバ103の機能を具備しても良い。画像処理サーバ103とOCRサーバとを別体の装置として説明したが、画像処理サーバ103のOCRサーバとしての機能を具備しても良い。
本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施例の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
実施例では、学習データ生成処理より学習データを生成した。しかしながら、事前に学習データ生成処理によって学習データを大量に生成しておいて、学習処理時にそこから随時、ミニバッチサイズ分をサンプルするようにしてもよい。
実施例では、入力画像をグレースケール画像として生成したが、フルカラー画像など他の形式として生成してもよい。
実施例では、前景サンプル画像として手書き文字画像を用いることで、手書き文字を検出するための学習処理をおこなった。しかしながら、前景サンプル画像として他の画像を用いてもよい。例えば、前景サンプル画像として押印がなされた原稿の画像を取り込んでもよい。これにより、押印の検出が可能なニューラルネットワークを生成することができる。また、前景画像として、薄紙を印字面の裏側からスキャンし、前景サンプル画像として用いてもよい。これにより、裏写り画素の検出が可能なニューラルネットワークを生成することができる。
実施例では、学習データとして、図14(a)に示すような画像のペアを学習した。しかしながら、異なる種類の画像のペアによって学習を行ってもよい。例えば、図14(b)に示すような画像をペアとする学習データを用いてもよい。図14(b)は学習データの変形例を示す図である。図14(b)によれば、入力画像に対して、手書き文字の矩形領域が黒く塗り潰された正解ラベル画像が登録されている。このような学習データによれば、手書き文字の矩形領域を抽出可能な学習をおこなうことができる。手書き文字の矩形領域を検出することができれば、手書き文字の除去等、大まかな加工をおこなうことができる。また、図14(c)に示すような画像をペアとする学習データを用いてもよい。図14(c)によれば、入力画像に対して、手書き文字が強調された正解ラベル画像が登録されている。このような学習データによれば、手書き文字を強調するための学習をおこなうことができる。すなわち、図14(a)の学習データのような汎用性はないものの、少ない工数で手書き文字の強調画像を取得することができる。また、図14(d)に示すような画像をペアとする学習データを用いてもよい。図14(d)によれば、入力画像に対して、手書き文字が削除された正解ラベル画像が登録されている。このような学習データによれば、手書き文字を削除するための学習をおこなうことができる。すなわち、図14(a)の学習データのような汎用性はないものの、少ない工数で手書き文字の削除画像を取得することができる。なお、図14(c)及び図14(d)を用いる画像変換では、S701で示したFCNではなく、Image−to−Imageと呼ばれるニューラルネットワーク技術を適用する。
なお、各実施例中に登場する略称の定義は次の通りである。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のことである。PDFとは、Portable Document Formatのことである。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のことである。DPIとは、Dots per inchのことである。GPUとは、Graphics Processing Unitのことである。IDとは、Identificationのことである。
101 画像処理装置
102 学習装置
103 画像処理サーバ
1604 OCRサーバ
201 CPU
231 CPU
261 CPU

Claims (28)

  1. 背景画像と手書き画像が間隔をあけて並んだ合成画像データと、前記合成画像データに対応付けられた正解画像データと、に基づきニューラルネットワークを学習させる手段と、
    手書き文字を含む原稿の読取画像を取得する手段と、
    前記ニューラルネットワークに基づき、前記読取画像に所定の画像処理を施す手段と、を有することを特徴とする画像処理システム。
  2. 前記所定の画像処理は、前記読取画像の画素の中から前記手書き文字の画素位置を特定するための画像を生成する処理であることを特徴とする請求項1に記載の画像処理システム。
  3. 前記所定の画像処理は、前記読取画像の中から前記手書き文字を含む矩形領域を特定するための画像を生成する処理であることを特徴とする請求項1に記載の画像処理システム。
  4. 前記所定の画像処理は、前記読取画像中の手書き文字が強調された画像を生成するための処理であることを特徴とする請求項1に記載の画像処理システム。
  5. 前記所定の画像処理は、前記読取画像中の手書き文字が消去された画像を生成するための処理であることを特徴とする請求項1に記載の画像処理システム。
  6. 前記特定するための画像に基づいて、前記読取画像から手書き文字が消去された画像を生成する手段を更に有することを特徴とする請求項2に記載の画像処理システム。
  7. 前記特定するための画像に基づいて、前記読取画像から手書きOCR処理を施すべき領域を特定する手段を更に有することを特徴とする請求項2に記載の画像処理システム。
  8. 前記特定するための画像に基づいて、前記読取画像に手書き文字が含まれていることを示す情報を記憶領域に記憶させる手段を更に有することを特徴とする請求項2に記載の画像処理システム。
  9. 背景サンプル画像と手書きサンプル画像に基づき前記合成画像データを生成する学習データ生成手段を更に有することを特徴とする請求項1に記載の画像処理システム。
  10. 前記学習データ生成手段は、背景サンプル画像と手書きサンプル画像の一つの組み合わせに基づき複数の合成画像データを生成することを特徴とする請求項9に記載の画像処理システム。
  11. 前記学習データ生成手段は、前記背景サンプル画像に含まれる余白領域に対して前記手書きサンプル画像中の手書き画像を合成するように、合成画像データを生成することを特徴とする請求項9に記載の画像処理システム。
  12. 前記学習データ生成手段は、前記背景サンプル画像に含まれる背景画像と前記手書きサンプル画像に含まれる手書き画像が余白領域を挟んで並ぶように、合成画像データを生成することを特徴とする請求項9に記載の画像処理システム。
  13. 余白サンプル画像を取得する手段を備え、
    前記余白領域は前記余白サンプル画像に基づく画像領域であることを特徴とする請求項11に記載の画像処理システム。
  14. 前記学習させる手段を備える装置と、
    前記読取画像を取得する手段を備える装置と、
    前記所定の画像処理を施す手段を備える装置と、を有することを特徴とする請求項1乃至13のいずれか1項に記載の画像処理システム。
  15. 背景画像と手書き画像が間隔をあけて並んだ合成画像データと、前記合成画像データに対応付けられた正解画像データと、に基づきニューラルネットワークを学習させる工程と、
    手書き文字を含む原稿の読取画像を取得する工程と、
    前記ニューラルネットワークに基づき、前記読取画像に所定の画像処理を施す工程と、を有することを特徴とする画像処理方法。
  16. 前記所定の画像処理は、前記読取画像の画素の中から前記手書き文字の画素位置を特定するための画像を生成する処理であることを特徴とする請求項15に記載の画像処理方法。
  17. 前記所定の画像処理は、前記読取画像の中から前記手書き文字を含む矩形領域を特定するための画像を生成する処理であることを特徴とする請求項15に記載の画像処理方法。
  18. 前記所定の画像処理は、前記読取画像中の手書き文字が強調された画像を生成するための処理であることを特徴とする請求項15に記載の画像処理方法。
  19. 前記所定の画像処理は、前記読取画像中の手書き文字が消去された画像を生成するための処理であることを特徴とする請求項15に記載の画像処理方法。
  20. 前記特定するための画像に基づいて、前記読取画像から手書き文字が消去された画像を生成する工程を更に有することを特徴とする請求項16に記載の画像処理方法。
  21. 前記特定するための画像に基づいて、前記読取画像から手書きOCR処理を施すべき領域を特定する工程を更に有することを特徴とする請求項16に記載の画像処理方法。
  22. 前記特定するための画像に基づいて、前記読取画像に手書き文字が含まれていることを示す情報を記憶領域に記憶させる工程を更に有することを特徴とする請求項15に記載の画像処理方法。
  23. 背景サンプル画像と手書きサンプル画像に基づき前記合成画像データを生成する学習データ生成工程を更に有することを特徴とする請求項16に記載の画像処理方法。
  24. 前記学習データ生成工程は、背景サンプル画像と手書きサンプル画像の一つの組み合わせに基づき複数の合成画像データを生成することを特徴とする請求項23に記載の画像処理方法。
  25. 前記学習データ生成工程は、前記背景サンプル画像に含まれる余白領域に対して前記手書きサンプル画像中の手書き画像を合成するように、合成画像データを生成することを特徴とする請求項23に記載の画像処理方法。
  26. 前記学習データ生成工程は、前記背景サンプル画像に含まれる背景画像と前記手書きサンプル画像に含まれる手書き画像が余白領域を挟んで並ぶように、合成画像データを生成することを特徴とする請求項23に記載の画像処理方法。
  27. 余白サンプル画像を取得する工程を更に備え、
    前記余白領域は前記余白サンプル画像に基づく画像領域であることを特徴とする請求項26に記載の画像処理方法。
  28. 背景画像と手書き画像が間隔をあけて並んだ合成画像データと、前記合成画像データに対応付けられた正解画像データと、に基づき学習したニューラルネットワークを取得する手段と、
    手書き文字を含む原稿の読取画像を取得する手段と、
    前記ニューラルネットワークに基づき、前記読取画像に所定の画像処理を施す手段と、を有することを特徴とする画像処理装置。
JP2018237512A 2018-12-19 2018-12-19 画像処理システム、画像処理方法、画像処理装置 Active JP7262993B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2018237512A JP7262993B2 (ja) 2018-12-19 2018-12-19 画像処理システム、画像処理方法、画像処理装置
EP19212118.4A EP3671539A1 (en) 2018-12-19 2019-11-28 Method for image processing, and image-processing system
US16/710,661 US11341733B2 (en) 2018-12-19 2019-12-11 Method and system for training and using a neural network for image-processing
KR1020190169381A KR102613255B1 (ko) 2018-12-19 2019-12-18 화상 처리 방법 및 화상 처리 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018237512A JP7262993B2 (ja) 2018-12-19 2018-12-19 画像処理システム、画像処理方法、画像処理装置

Publications (2)

Publication Number Publication Date
JP2020101843A true JP2020101843A (ja) 2020-07-02
JP7262993B2 JP7262993B2 (ja) 2023-04-24

Family

ID=68731833

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018237512A Active JP7262993B2 (ja) 2018-12-19 2018-12-19 画像処理システム、画像処理方法、画像処理装置

Country Status (4)

Country Link
US (1) US11341733B2 (ja)
EP (1) EP3671539A1 (ja)
JP (1) JP7262993B2 (ja)
KR (1) KR102613255B1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10984558B2 (en) * 2019-05-09 2021-04-20 Disney Enterprises, Inc. Learning-based sampling for image matting
US11061626B2 (en) * 2019-05-24 2021-07-13 Kyocera Document Solutions Inc. Machine learning printer control system including pre-press action predictor
CN113743360B (zh) * 2021-09-16 2024-03-05 京东科技信息技术有限公司 智能化印章解析的方法和装置
CN113869168B (zh) * 2021-09-18 2022-06-28 珠海读书郎软件科技有限公司 一种融合笔尖轨迹和书写墨迹的实时文字识别方法
CN114333038B (zh) * 2022-03-03 2022-06-07 百度在线网络技术(北京)有限公司 对象识别模型的训练方法和对象识别方法、装置、设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006092027A (ja) * 2004-09-21 2006-04-06 Fuji Xerox Co Ltd 文字認識装置、文字認識方法および文字認識プログラム
JP2011018338A (ja) * 2009-07-10 2011-01-27 Palo Alto Research Center Inc スキャンされた文書画像内の前景画素群の連結グループをマーキング種類に基づき分類する方法及びシステム
JP2011018334A (ja) * 2009-07-10 2011-01-27 Palo Alto Research Center Inc 画像中のピクセルの機械支援による人為的ラベル付けのシステムおよび方法
JP2018185552A (ja) * 2017-04-24 2018-11-22 公益財団法人鉄道総合技術研究所 画像解析装置および画像解析方法、ならびにプログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5744879A (en) 1980-08-30 1982-03-13 Matsushita Electric Works Ltd Timepiece with automatic date correction type calendar
US6931589B2 (en) * 2001-11-29 2005-08-16 Orbograph Ltd. Distributed document processing
US7617164B2 (en) * 2006-03-17 2009-11-10 Microsoft Corporation Efficiency of training for ranking systems based on pairwise training with aggregated gradients
KR20080055119A (ko) * 2006-12-14 2008-06-19 삼성전자주식회사 화상형성장치 및 그 제어방법
JP2008250375A (ja) * 2007-03-29 2008-10-16 Toshiba Corp 文字入力装置、方法およびプログラム
JP5349879B2 (ja) * 2008-09-18 2013-11-20 キヤノン株式会社 情報処理装置、情報処理方法、プログラム、及び、記憶媒体
US8482827B2 (en) * 2009-06-03 2013-07-09 Hewlett-Packard Development Company, L.P. Annotation on media sheet indicating functionality to be performed in relation to image on media sheet
JP6140946B2 (ja) 2012-07-26 2017-06-07 キヤノン株式会社 文字認識システム及び文字認識装置
WO2014184417A1 (en) * 2013-05-13 2014-11-20 Nokia Corporation Method, apparatus and computer program product to represent motion in composite images
JP6373664B2 (ja) * 2014-07-09 2018-08-15 株式会社東芝 電子機器、方法及びプログラム
US9977976B2 (en) * 2016-06-29 2018-05-22 Konica Minolta Laboratory U.S.A., Inc. Path score calculating method for intelligent character recognition
US10764448B1 (en) * 2019-04-24 2020-09-01 Kyocera Document Solutions Inc. Information processing apparatus and image forming apparatus performing file conversion of handwriting comment and comment extraction method
US11568623B2 (en) * 2019-08-22 2023-01-31 Canon Kabushiki Kaisha Image processing apparatus, image processing method, and storage medium

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006092027A (ja) * 2004-09-21 2006-04-06 Fuji Xerox Co Ltd 文字認識装置、文字認識方法および文字認識プログラム
JP2011018338A (ja) * 2009-07-10 2011-01-27 Palo Alto Research Center Inc スキャンされた文書画像内の前景画素群の連結グループをマーキング種類に基づき分類する方法及びシステム
JP2011018334A (ja) * 2009-07-10 2011-01-27 Palo Alto Research Center Inc 画像中のピクセルの機械支援による人為的ラベル付けのシステムおよび方法
JP2018185552A (ja) * 2017-04-24 2018-11-22 公益財団法人鉄道総合技術研究所 画像解析装置および画像解析方法、ならびにプログラム

Also Published As

Publication number Publication date
KR20200076627A (ko) 2020-06-29
US20200202155A1 (en) 2020-06-25
JP7262993B2 (ja) 2023-04-24
EP3671539A1 (en) 2020-06-24
US11341733B2 (en) 2022-05-24
KR102613255B1 (ko) 2023-12-14

Similar Documents

Publication Publication Date Title
JP7262993B2 (ja) 画像処理システム、画像処理方法、画像処理装置
US8320019B2 (en) Image processing apparatus, image processing method, and computer program thereof
JP7387339B2 (ja) 画像処理システム、画像処理方法、及びプログラム
US9454696B2 (en) Dynamically generating table of contents for printable or scanned content
JP4502385B2 (ja) 画像処理装置およびその制御方法
JP2009146064A (ja) 画像処理装置、画像処理方法、そのプログラム及び記憶媒体
US9614984B2 (en) Electronic document generation system and recording medium
JP6540280B2 (ja) 画像処理装置およびコンピュータプログラム
JP2021179848A (ja) 画像処理システム、画像処理方法、及びプログラム
US20180270387A1 (en) Printing apparatus, server, printing method, and control method
US8181108B2 (en) Device for editing metadata of divided object
JP7379876B2 (ja) 文字認識装置、文書ファイル生成方法、文書ファイル生成プログラム
JP7147544B2 (ja) 情報処理装置、及び情報処理方法
JP2008148263A (ja) 画像形成装置及びその制御方法
JP2007028181A (ja) 画像処理装置
JP2020099030A (ja) 情報処理装置、及び情報処理方法
JP5935376B2 (ja) 複写装置
JP7414554B2 (ja) 情報処理装置、制御方法及びプログラム
JP2023015483A (ja) 画像処理装置、画像処理システム、画像処理方法、及びプログラム
JP2021131784A (ja) 画像処理システム、プログラム、画像処理方法
JP2021033577A (ja) 画像処理システムと画像処理方法、及びプログラム
JP2021060729A (ja) 画像処理システム、画像処理方法、及びプログラム
JP2023040886A (ja) 画像処理装置、方法及びプログラム
JP2023021595A (ja) 画像処理装置、画像処理システム、画像処理方法、及びプログラム
JP2016197362A (ja) 範囲指定プログラム、範囲指定方法および範囲指定装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211217

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230228

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: 20230314

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230412

R151 Written notification of patent or utility model registration

Ref document number: 7262993

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151