(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024067409
(43)【公開日】2024-05-17
(54)【発明の名称】文字認識装置、文字認識方法及びプログラム
(51)【国際特許分類】
G06V 30/194 20220101AFI20240510BHJP
G06V 30/196 20220101ALI20240510BHJP
【FI】
G06V30/194
G06V30/196 A
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022177461
(22)【出願日】2022-11-04
(71)【出願人】
【識別番号】000006208
【氏名又は名称】三菱重工業株式会社
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100162868
【弁理士】
【氏名又は名称】伊藤 英輔
(74)【代理人】
【識別番号】100161702
【弁理士】
【氏名又は名称】橋本 宏之
(74)【代理人】
【識別番号】100189348
【弁理士】
【氏名又は名称】古都 智
(74)【代理人】
【識別番号】100196689
【弁理士】
【氏名又は名称】鎌田 康一郎
(72)【発明者】
【氏名】安田 秀策
(72)【発明者】
【氏名】村田 拓也
(72)【発明者】
【氏名】小川 草太
(72)【発明者】
【氏名】斎藤 真由美
【テーマコード(参考)】
5B064
【Fターム(参考)】
5B064DA14
5B064DA27
5B064EA18
(57)【要約】
【課題】図面に記載された文字を精度よく認識する文字認識装置を提供する。
【解決手段】文字認識装置は、図面に記載された文字ではない表示物の画像データに対して代替文字を正解ラベルとして付した第1の学習データを取得する学習データ取得部と、前記第1の学習データを学習して文字認識モデルを作成する学習部と、文字および文字ではない表示物を含む認識対象の画像データを取得する認識対象データ取得部と、前記文字認識モデルに基づいて、前記認識対象の画像データから文字を認識し、認識した文字から前記代替文字を削除した残りの文字を認識結果として出力する認識部と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
図面に記載された、文字ではない表示物の画像データに対して代替文字を正解ラベルとして付した第1の学習データを取得する学習データ取得部と、
前記第1の学習データを学習して文字認識モデルを作成する学習部と、
文字および前記文字ではない表示物を含む認識対象の画像データを取得する認識対象データ取得部と、
前記文字認識モデルに基づいて、前記認識対象の画像データから文字を認識し、認識した文字から前記代替文字を削除した残りの文字を認識結果として出力する認識部と、
を備える文字認識装置。
【請求項2】
前記学習データ取得部は、さらに、前記図面に記載された文字の画像データに対して正解ラベルを付した第2の学習データを取得し、
前記学習部は、前記第2の学習データを学習して前記文字認識モデルを作成する、
請求項1に記載の文字認識装置。
【請求項3】
前記認識部が出力する前記認識結果を補正する後処理部、
をさらに備え、
前記後処理部は、前記認識結果の文字列の先頭および末尾のうちの一方にのみ所定の対になる一組の文字の一方が含まれる場合、前記先頭および前記末尾のうちの他方に前記対になる一組の文字の他方を追加することにより、前記認識結果を補正する、
請求項1又は請求項2に記載の文字認識装置。
【請求項4】
前記認識部が出力する前記認識結果を補正する後処理部、
をさらに備え、
前記後処理部は、前記認識結果を辞書に登録された登録文字列と比較し、前記認識結果が登録文字列に類似する場合、前記認識結果を類似する前記登録文字列に置き換えることにより、前記認識結果を補正する、
請求項1又は請求項2に記載の文字認識装置。
【請求項5】
前記認識部が出力する前記認識結果を補正する後処理部、
をさらに備え、
前記後処理部は、1つ又は複数の文字列が所定の条件を満たす場合には所定の文字が前記1つ又は複数の文字列の所定の位置に含まれていることを定める規則に基づいて、前記認識結果に前記所定の文字を追加することにより、前記認識結果を補正する、
請求項1又は請求項2に記載の文字認識装置。
【請求項6】
前記認識部が、複数の前記文字認識モデルの各々に基づいて、前記認識対象の画像データから文字を認識する場合、各々の前記文字認識モデルに基づく前記認識結果を統合する統合部、
をさらに備え、
前記統合部は、最も認識率の高い前記文字認識モデルが認識できなかった文字を他の前記文字認識モデルが認識できた場合、前記他の前記文字認識モデルのうち最も認識率が高い前記文字認識モデルが認識した文字を前記認識結果として出力する、
請求項1又は請求項2に記載の文字認識装置。
【請求項7】
図面に記載された文字ではない表示物の画像データに対して代替文字を正解ラベルとして付した第1の学習データを取得するステップと、
前記第1の学習データを学習して文字認識モデルを作成するステップと、
文字および前記文字ではない表示物を含む認識対象の画像データを取得するステップと、
前記文字認識モデルに基づいて、前記認識対象の画像データから文字を認識し、認識した文字から前記代替文字を削除した残りの文字を認識結果として出力するステップと、
を有する文字認識方法。
【請求項8】
コンピュータに、
図面に記載された文字ではない表示物の画像データに対して代替文字を正解ラベルとして付した第1の学習データを取得するステップと、
前記第1の学習データを学習して文字認識モデルを作成するステップと、
文字および前記文字ではない表示物を含む認識対象の画像データを取得するステップと、
前記文字認識モデルに基づいて、前記認識対象の画像データから文字を認識し、認識した文字から前記代替文字を削除した残りの文字を認識結果として出力するステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、文字認識装置、文字認識方法及びプログラムに関する。
【背景技術】
【0002】
原子力等のプラント設計業務では、図面上のシンボル、機器番号、図面番号などを手掛かりに複数の図面を照合する作業が多い。現状では、紙図面に対し人手で機器の種別判定や機器番号の読み取り、関連付けを行っており、多大な工数を要している。この作業の自動化には、OCR(Optical Character Recognition)による機器番号の読み取り、シンボル認識による機器の種別判定、機器番号と機器の情報関連付けなどが必要である。特許文献1には、建築図面から建築構造物の重量の算出に必要な寸法などの文字を読み取る技術について開示がある。特許文献1では、建築図面から構造物の柱、壁、鉄骨などを認識して文字から分離し、文字領域を対象に認識処理を行うことで文字の認識精度を高めている。また、特許文献2には、図面に描かれた弁、ポンプ、電子素子などのシンボルの認識の精度を向上する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2019-207530号公報
【特許文献2】特開2022-63599号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
図面の文字認識精度を低下させる要因の一つに、図面上に出現するシンボルなどに起因する文字の誤認識が挙げられるが、特許文献1、2には、このような要因による誤認識への有効な手段は開示されていない。図面の文字認識を向上する方法が必要とされている。
【0005】
本開示は、上記課題を解決することができる文字認識装置、文字認識方法及びプログラムを提供する。
【課題を解決するための手段】
【0006】
本開示の文字認識装置は、図面に記載された、文字ではない表示物の画像データに対して代替文字を正解ラベルとして付した第1の学習データを取得する学習データ取得部と、前記第1の学習データを学習して文字認識モデルを作成する学習部と、文字および前記文字ではない表示物を含む認識対象の画像データを取得する認識対象データ取得部と、前記文字認識モデルに基づいて、前記認識対象の画像データから文字を認識し、認識した文字から前記代替文字を削除した残りの文字を認識結果として出力する認識部と、を備える。
【0007】
本開示の文字認識方法は、図面に記載された文字ではない表示物の画像データに対して代替文字を正解ラベルとして付した第1の学習データを取得するステップと、前記第1の学習データを学習して文字認識モデルを作成するステップと、文字および前記文字ではない表示物を含む認識対象の画像データを取得するステップと、前記文字認識モデルに基づいて、前記認識対象の画像データから文字を認識し、認識した文字から前記代替文字を削除した残りの文字を認識結果として出力するステップと、を有する。
【0008】
本開示のプログラムは、コンピュータに、図面に記載された文字ではない表示物の画像データに対して代替文字を正解ラベルとして付した第1の学習データを取得するステップと、前記第1の学習データを学習して文字認識モデルを作成するステップと、文字および前記文字ではない表示物を含む認識対象の画像データを取得するステップと、前記文字認識モデルに基づいて、前記認識対象の画像データから文字を認識し、認識した文字から前記代替文字を削除した残りの文字を認識結果として出力するステップと、を実行させる。
【発明の効果】
【0009】
上述の文字認識装置、文字認識方法及びプログラムによれば、図面に記載された文字の認識率を向上することができる。
【図面の簡単な説明】
【0010】
【
図1】実施形態に係る文字認識装置の一例を示すブロック図である。
【
図2】実施形態に係る学習済みOCRモデルの効果の一例を示す図である。
【
図3A】実施形態に係る誤認識の一例を示す第1の図である。
【
図3B】実施形態に係る誤認識の一例を示す第2の図である。
【
図4】実施形態に係る誤認識防止のための学習手法について説明する図である。
【
図5A】実施形態に係る誤認識の他の例を示す第1の図である。
【
図5B】実施形態に係る誤認識の他の例を示す第2の図である。
【
図6】実施形態に係る認識率向上のための処理の一例を示すフローチャートである。
【
図7】実施形態に係る図面の文字認識処理の一例を示すフローチャートである。
【
図8】実施形態に係る後処理の一例を示すフローチャートである。
【
図9】実施形態に係る後処理の効果の一例を示す図である。
【
図10】本実施形態に係る文字認識装置のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0011】
<実施形態>
以下、本開示の文字認識方法について図面を参照して説明する。
(構成)
図1は、実施形態に係る文字認識装置の一例を示すブロック図である。文字認識装置10は、1台又は複数台のコンピュータによって構成される。文字認識装置10は、図面に記載された文字を精度よく認識する。図示するように文字認識装置10は、データ取得部11と、入力受付部12と、処理部13と、出力部14と、記憶部15と、を備える。
【0012】
データ取得部11は、機械やプラント等の図面に記載された文字および/又は文字ではない表示物を含む画像データを取得する。例えば、データ取得部11は、画像データに正解ラベルが付された学習用の画像データや、文字認識対象用の画像データを取得する。文字とは、英数字、カナ、ひらがな、漢字、かっこやハイフンなどの記号(読み取り対象の記号文字)であり、図面から読み取りたい対象の文字である。文字ではない表示物とは、図面に含まれる接点記号などのシンボル、表の罫線などの読み取り対象ではない表記である。一般的なOCRモデルを使用して、図面の文字を読み取ると、文字ではない表示物が読み取り対象の文字と誤認識されることが多い。後述するように、文字認識装置10は、このような誤認識を防ぐ機能を有している。
【0013】
入力受付部12は、キーボード、マウス、タッチパネル、入力インタフェース等の入力装置を用いて構成され、これらの入力装置を用いて入力される、文字認識率向上のための各種設定や文字認識処理の実行指示などを受け付ける。
【0014】
処理部13は、文字認識処理や文字認識用の深層学習モデル(OCRモデルと呼ぶ。)作成などの処理を実行する。処理部13は、学習部131と、文字認識部132と、後処理部133と、を備える。
学習部131は、文字認識用に提供されている一般的なOCRモデル(例えば、FOTS、MaskTextSpotter等)を追加学習させて、図面の文字認識に特化したOCRモデルを作成する。OCRモデルは、例えば、深層学習モデルである。屋外画像などの一般画像で学習された一般的な学習済みOCRモデルによる文字認識では、図面のシンボル周辺の文字や表の内部の文字などを実用的な精度で認識することができない。また、図面には、文字のほかにも多様なシンボル、表、図などが記載されており、誤認識を誘発しやすい。また、図面に記載された文字は、一般に読み取り対象とされている文字とは形態が大きく異なる場合があり、認識精度が低下する。これに対し、学習部131では、後述する2つの手法によりOCRモデルの追加学習を行って、図面の文字認識に特化したOCRモデルを作成し、図面の文字認識率の向上を図る。
【0015】
文字認識部132は、学習部131が作成したOCRモデルを用いて図面の文字認識を行う。
後処理部133は、文字認識部132の文字認識結果に対して後処理を行う。後処理とは、図面の文字認識に特化したOCRモデルを用いても発生する誤認識を補正する処理である。また、後処理部133は、複数のOCRモデルによる図面文字の認識結果を統合する統合処理を行う。
【0016】
出力部14は、処理部13による図面の文字の認識結果を表示装置、他装置、電子ファイル等へ出力する。
記憶部15は、文字認識に必要な各種データを記憶する。例えば、記憶部15は、データ取得部11が取得した画像データ、入力受付部12が受け付けた設定情報などを取得する。また、記憶部15は、1つ又は複数のOCRモデルを記憶している。
図1には、便宜的にOCRモデル1を記載している。例えば、OCRモデルが2つ記憶されている場合、OCRモデル1、OCRモデル2のように記載する。OCRモデル1、2の区別が不要な場合には単にOCRモデルと記載する。後述するように、本実施形態では、一例として2つのOCRモデル、OCRモデル1とOCRモデル2を組み合わせることによって(統合処理)、文字認識率の向上を図るが、組み合わせるOCRモデルの数に限定は無い。3種類以上のOCRモデルを使用してもよいし、1種類のOCRモデルだけを使用してもよい。(1種類のOCRモデルのみを使用する場合には、統合処理による文字認識率の向上を図ることはできないが、後述するように本実施形態では複数の手法により、図面の文字認識率を向上することができるので、1種類のOCRモデルのみを使用する場合であっても、それらの手法により、文字認識率を向上することができる。)複数のOCRモデルを使用する場合、学習部131、文字認識部132は、各OCRモデル用の機能(プログラム)を備えることになる。例えば、学習部131がOCRモデル1の作成を行うときには、学習部131は、OCRモデル1用に構築された機能(OCRモデル1用の学習部)により追加学習を行い、文字認識部132がOCRモデル2を用いて文字認識を行う場合には、文字認識部132は、OCRモデル2用に構築された機能(OCRモデル2用の文字認識部)を使って文字認識を行う。以下では、OCRモデル1用の学習部131、OCRモデル2用の学習部131といった記載を行わずに、単に学習部131がOCRモデル1を作成する、文字認識部132がOCRモデル2を用いて文字認識を行う、のように記載するが、実態としては上記したように各OCRモデル用の機能を用いて処理を行う。
【0017】
本実施形態では、大きく分類して、一般的なOCRモデルを学習させて図面の文字認識に特化したモデルを作成する手法、OCRモデルの認識結果に対して後処理を行うことによって認識精度を向上する手法、の2通りの文字認識率向上手法を提供する。
【0018】
<OCRモデルの学習による文字認識率向上の手法>
最初に一般的なOCRモデルを学習させて図面の文字認識に特化したモデルを作成する手法について説明する。
(手法A)図面に記載された読み取り対象の文字に対して正解ラベルを付した学習データを作成し、作成した学習データを用いて、学習部131に学習させる(例えば、深層学習モデルのfine-tuningを行う。)。これにより、図面に特化した深層学習モデルを学習する。図面に特化するよう深層学習モデルを学習することで、文字認識自体の精度向上が可能となり、相対的にシンボル等の誤認識を減らすことができる。図面文字認識に適した学習データを学習して作成したOCRモデルの図面文字認識率の一例を
図2に示す。
図2のグラフ2aは、OCRモデル1における学習前後の文字認識率を示している。
図2のグラフ2bは、OCRモデル1とは異なるOCRモデル2における学習前後の文字認識率を示している。図示するように、OCRモデル1、2の何れにおいても、実際に図面に記載された文字を学習することによって、文字列検出率、文字列認識率が大幅に向上している。
【0019】
(手法B)図面のシンボルや罫線など、誤認識を誘発しやすい表示物に対して代替文字を割り当てて深層学習モデルを学習し、シンボルや罫線などを割り当てた代替文字として認識させる。
図3A、
図3Bに誤認識の例を示す。図の範囲3a,3bは文字認識の対象範囲を表している。
図3Aは、図面には「ABCシンボル(円の上方向に線が伸びる形状、接点記号)」が表記されているところ、一般的なOCRモデルが「ABCO(アルファベットのオー)」と誤認識する例を示している。
図3Bは、図面の表の枠に中に「ABC」と表記されているところ一般的なOCRモデルが表の左側の罫線を「1」と誤認識して「1ABC」と誤認識する例を示している。このような誤認識に対し、誤認識を誘発した表示物に対して、図面では使用される予定がない文字を割り当てる。例えば、
図3Aのシンボルに対しては「@」を割り当て、
図3Bの罫線に対しては「|」を割り当てる。手法2では、まず、手法1によって作成されたOCRモデルによって、図面の文字認識を実行した結果から、残存する誤認識箇所を洗い出して、代替文字を学習させる対象を特定する。ここでは
図3A、
図3Bで説明した誤認識が特定されたとする。代替文字を学習する対象を特定した後の処理を
図4に示す。1.まず、接点記号及び票の罫線を代替文字とした学習データを作成する。例えば、手法1で使用した学習データを加工して、
図3Aの範囲3aに対して正解ラベル「ABC@」を付し、
図3Bの範囲3bに対して正解ラベル「|ABC」を付して学習データを作成する。代替文字は、図面では使用予定のない文字、かつ、誤認識を生じさせる表示物に形状が類似していることが望ましい。形状が類似する代替文字を選択することで次に行う学習処理の負荷を軽減することができる。2.次に学習部131が、1.で作成した学習データをOCRモデルに学習させる。これにより、
図3Aの範囲3aの文字列を「ABC@」、
図3Bの範囲3bの文字列を「|ABC」と認識するOCRモデルが作成される。3.次に2.で作成したOCRモデルの認識結果から代替文字を削除する処理を行うよう文字認識部132に設定する。文字認識部132は、例えば、代替文字が認識結果の文字列の最初か最後にあれば単に代替文字を削除する。例えば、認識結果が「ABC@」の場合、文字認識部132は、認識結果から@を削除して「ABC」とする。また、代替文字が認識結果の途中にある場合、文字認識部132は、代替文字を境に文字列を分割した後、代替文字を削除する。例えば、認識結果が「ABC@DEF」の場合、文字認識部132は、認識結果を「ABC」と「DEF」とする。例えば、認識結果が「A|B|C」の場合、文字認識部132は、認識結果を「A」と「B」と「C」とする。文字認識部132は、代替文字を削除した後の文字や文字列を認識結果として出力する。
【0020】
<後処理による文字認識率向上の手法>
次にOCRモデルの認識結果に対して、後処理部133が、後処理を行うことによって認識精度を向上する手法について説明する。上記の方法では、誤認識しやすいシンボルや罫線の影響を排除できるが、括弧やハイフンなどの図面において重要な意味を有する認識したい対象である記号文字の誤認識を防ぐことが難しい。
【0021】
<手法1>
後処理部133は、認識結果の文字列の先頭と末尾の一方にのみ対になる一組の文字(例えば、括弧)が存在する場合、文字列端の他方にも対になる他方の文字を追加する。例えば、片方の括弧が不足している場合にもう片方の括弧を補完するような処理である。
図5Aに片方の括弧が認識されなかった認識結果の一例を示す。
図5Aは、図面に「(ABC1)」と表記されているところ、文字認識部132によって「ABC1)」と認識された例を示している。後処理部133は、文字列の後端に一方の括弧があり、先頭に括弧が無い場合、先頭の括弧を補完し「(ABC1)」と補正する。このように、後処理部133は、括弧の形状に基づいて、文字列後端の括弧の形状が閉じる側の括弧の形状をしている場合、文字列の先頭にもう片方の括弧を補完するようにしてもよい。同様に先頭にのみ括弧(始め側の括弧)が存在する場合には、後処理部133は、文字列の後端にもう一方の括弧を補完することも可能である。また、補完対象の括弧は、図示したものに限らず他の形状のものであっても構わない。また、補完対象となるのは、括弧に限定されず他の対となる一組の文字であってもよい。また、ユーザは、補完対象となる括弧や対となる文字の組合せを任意に設定することができてもよい。例えば、ユーザは、「<」と「>」が対になる文字の組み合わせてあることを文字認識装置10に設定する。入力受付部12は、ユーザの設定を受け付け、記憶部15にその設定を登録する。後処理部133は、ユーザによる設定に基づいて括弧等を補完する処理を行う。手法1により、例えば、片方の括弧を補完することができる。片方の括弧を補完することにより、括弧の認識漏れを低減することができる。
【0022】
<手法2>
後処理部133は、文字認識部132の認識結果を、辞書に登録された文字列と比較し、認識結果が辞書に登録された文字列に類似する場合に、認識結果を登録された文字列に置き換える処理を行ってもよい。具体的には、命名規則から作成した辞書や、類似文字の設定を行い、誤認識を修正する。例えば、ある部品の名称が「ABC-D$」($は任意の数字を表す。)であって、この部品名が図面に多数、記載されるとする。この場合、ユーザは、「ABC-D$」を辞書へ登録するよう文字認識装置10へ指示する。入力受付部12は、この指示を受け付け、記憶部15に「ABC-D$」を記憶部15の辞書へ登録する。辞書登録された「ABC-D$」は、文字認識部132によって「ABC-D$」に類似した文字列が認識された場合には、後処理部133が、認識された文字列を「ABC-D$」に変換(補正)することを意味する。例えば、文字認識部132によって「RBC-D1」という文字列が認識されると、後処理部133は、この認識結果を「ABC-D1」に補正する。どのような文字列が「ABC-D$」に類似すると判定されるかについては、例えば、類似文字の設定を記憶部15に登録しておき、後処理部133は、類似文字の設定に基づいて、ある文字列が「ABC-D$」に類似するかどうかを判定してもよい。類似文字の設定例として、「R」と「A」を類似する文字(OCRモデルによって「R」が「A」と認識されたり、「A」が「R」と認識されたりし易い。)として記憶部15に登録しておく、後処理部133は、この設定を参照して、「RBC-D1」を「ABC-D1」に変換する。後処理部133は、変換後の「ABC-D1」と「ABC-D$」を比較する。この場合、数字「$」を含めて一致するので、後処理部133は、「RBC-D1」と辞書に登録された「ABC-D$」は類似すると判定し、「RBC-D1」を「ABC-D1」に補正する。例えば、文字認識部132によって「FBC-D1」という文字列が認識されると、「F」、「B」、「C」、「D」の何れについても類似する文字の設定が無いため、後処理部133は、「FBC-D1」をそのまま「ABC-D$」と比較する。この場合、例えば「FBC」と「ABC」は異なるため、後処理部133は、認識された「FBC-D1」は辞書登録された「ABC-D$」とは異なると判定し、「FBC-D1」に対しては辞書登録に基づく補正を行わない。なお、辞書登録は、ユーザが行ってもよいし、文字認識部132による認識結果を出力部14が表示装置に表示して、ユーザの確認のもと辞書に登録するようにしてもよい。例えば、図面中に「ABC-D1」、「ABC-D2」、「ABC-D3」があり、OCRモデルがこれらの文字列を認識した場合、数字を$に変換すると「ABC-D$」が3つとなる。この認識結果を出力部14が表示装置に提示し、ユーザが辞書への登録を指示する。すると、入力受付部12が「ABC-D$」を記憶部15が記憶する辞書へ登録する。これにより、例えば、図面に対する専門知見に基づいた辞書登録や類似文字の設定を行うことができ、図面に対する専門知見に基づいた誤認識の修正が可能となる。
【0023】
<手法3>
後処理部133は、1つ又は複数の文字列が所定の条件を満たす場合、所定の文字が1つ又は複数の文字列の所定の位置に含まれていることを定める規則に基づいて、認識結果の文字列の所定の位置に所定の文字を追加することにより、認識結果を補正する、例えば、図面中、複数行に跨って文字列を表記する場合には、最上段の文字列以外の先頭にハイフンを表示する規則があるとする。このような規則があることを前提として、複数行の文字列が認識され、2行目以降の先頭にハイフンが無ければ、後処理部133は、2行目以降の先頭にハイフンを追加する。(例えば、複数行の文字列が認識された場合、それらは独立した文字列ではなく、複数行に跨って表記された文字列であるとここでは仮定する。)
図5Bに2行に跨る文字列の2行目において「-D1」と表記されているところ、文字認識部132によって「D1」と認識された例を示す。このような場合、後処理部133は、2行目の先頭に「-」を追加する。手法3によれば、適切に規則を設定することにより、例えば、「-(ハイフン)」を含む文字列と想定される文字列に対してハイフンを補完することができる。ハイフンを含む機器番号や図面内の文字列の改行に対応した文字認識が可能となり、長文等の文字認識率を向上することができる。
【0024】
<手法4>
後処理部133は、複数のOCRモデルの認識結果を統合する。例えば、後処理部133は、最も認識率の高いOCRモデルが認識できなかった文字を他のOCRモデルが認識できた場合、他のOCRモデルのうち最も認識率が高いOCRモデルが認識した文字を認識結果として選択する。例えば、OCRモデル1、2のうち、OCRモデル2の文字認識率が高いとすると、後処理部133は、OCRモデル2が認識できた文字については、OCRモデル1で認識できたかどうかにかかわらず、OCRモデル2が認識した文字を認識結果として採用し、OCRモデル2で認識できなかった文字について、OCRモデル1で認識できた場合には、OCRモデル1が認識した文字を認識結果として採用する。これにより、認識率が高いOCRモデル2の認識結果を尊重しつつ、OCRモデル2が認識できない文字については、OCRモデル1の認識結果によって補完することができる。
なお、OCRモデル1とOCRモデル2の組合せは、異なるOCRモデルをベースとして図面の文字認識に特化させるように作成したモデルの組合せ(例えば、OCRモデル1はFOTSをベースに作成したモデル、OCRモデル2はMaskTextSpotterをベースに作成したモデル等)でもよいし、同じOCRモデルを異なる条件で学習させたモデルの組合せ(例えば、OCRモデル1はFOTSに“学習データ1”を学習させて作成したモデル、OCRモデル2はFOTSに“学習データ2”を学習させて作成したモデル等)であってもよい。
【0025】
(動作)
次に文字認識装置10の処理の流れを説明する。
最初に
図6を参照して、図面の文字認識のための準備処理について説明する。
図6は、実施形態に係る認識率向上のための処理の一例を示すフローチャートである。
学習部131は、図面文字用の学習データを学習して、図面の文字認識に特化したOCRモデルを作成する(ステップS11)。この処理は、上記の手法Aに対応する。次に、学習部131は、シンボルや罫線など誤認識の原因となる表示物の代替文字を学習する(ステップS12)。また、代替文字の学習に合わせて、文字認識部132に対して、認識結果から代替文字を削除するよう設定する。この処理は、上記の手法Bに対応する。次に、後処理部133に対して、ユーザが、後処理に関する設定を行う(ステップS13)。この処理は、上記の手法1~4のための準備である。手法1については補完する括弧等の文字の設定を行う。手法2については辞書登録や類似文字の設定を行う。手法3についてはハイフン等を追加する条件(2行に跨る場合であって、2行目の先頭に-が無い)、追加する文字(「-」)、追加する位置(2行目の先頭)など規則の設定を行う。手法4については、使用する複数のOCRモデルについて、文字認識率の順位を設定する。入力受付部12は、これらの設定を受け付け、記憶部15に登録する。なお、ユーザは、手法1~4のうち、実行する手法の設定だけを行えばよい。
【0026】
次に
図7、
図8を参照して、図面の文字を認識する処理について説明する。
図7は、実施形態に係る図面の文字認識処理の一例を示すフローチャートである。
まず、データ取得部11が、認識対象の画像データを取得する(ステップS21)。データ取得部11は、画像データを記憶部15に記録する。次に文字認識部132が、OCRモデル1、2を用いて画像データから文字を認識する処理を行う。文字認識部132は、OCRモデル1を用いて記憶部15に記録された画像データの文字認識を行う(ステップS22)。文字認識部132は、OCRモデル1の文字認識結果を取得して、代替文字を削除する(ステップS23)。文字認識部132は、代替文字を削除した結果を後処理部133へ出力する。次に後処理部133は、後処理を行う(ステップS24)。
【0027】
図8に実施形態に係る後処理の一例を示す。後処理部133は、文字認識部132から認識結果を取得する(ステップS31)。次に、後処理部133は、括弧を含む文字列に対する後処理を行う(ステップS32)。例えば、後処理部133は、認識結果「ABC)を「(ABC)」に補正する。この処理は、上記の手法1に対応する。次に、後処理部133は、辞書に基づく後処理を行う(ステップS33)。例えば、辞書に「RBC-D1」が登録され、類似文字として「A」と「R」が類似することが設定されている場合、後処理部133は、認識結果「RBC-D1」を「ABC-D1」に補正する。この処理は、上記の手法2に対応する。次に、後処理部133は、ハイフンを含む文字列に対する後処理を行う(ステップS34)。例えば、後処理部133は、2行目の認識結果「D1」を「-D1」に補正する。
【0028】
同様にして、文字認識部132は、OCRモデル2を用いて記憶部15に記録された画像データの文字認識を行う(ステップS25)。文字認識部132は、OCRモデル2による文字認識結果を取得して、代替文字を削除する(ステップS26)。文字認識部132は、代替文字を削除した結果を後処理部133へ出力する。次に後処理部133は、後処理を行う(ステップS27)。後処理については、OCRモデル1に関して、
図8を用いて説明した内容と同様である。なお、ステップS22~ステップS24の処理と、ステップS25~ステップS27の処理は、並行して行ってもよいし、何れか一方を先に行ってもよい。
【0029】
次に後処理部133は、ステップS22~ステップS24の処理を行って得られた認識結果と、ステップS25~ステップS27の処理を行って得られた認識結果を統合する(ステップS28)。後処理部133は、認識率が高いOCRモデル2による認識結果を正として、OCRモデル2が認識できなかった文字について、OCRモデル1が認識できている場合にはOCRモデル1の認識結果を採用する処理を行って、認識結果を統合する。次に出力部14が、統合処理後の認識結果を表示装置等に出力する(ステップS29)。
【0030】
図6のステップS13の説明で、文字認識率が高い順にOCRモデルの順番を設定することとしたが、ステップS23、ステップS26の処理を実行し終えた段階又はステップS24、ステップS27の処理を実行し終えた段階で、どちらのOCRモデルの認識率が高いかを検証し、その検証結果に基づいてステップS28以降を実行してもよい。また、後処理の手法1~4については全く実行しないように構成してもよいし、一部のみを実行するように構成してもよい。また、
図8のステップS32~ステップS34の処理順は任意の順番で実行することができる。
【0031】
後処理によって文字列の認識率が向上する過程の一例を
図9に示す。
図9を参照すると、ステップS31~ステップS34、ステップS28の後処理を実行する度に図面文字の認識精度が向上していることを確認することができる。
【0032】
(効果)
以上説明したように、本実施形態によれば、実際の図面の文字を学習すること、及び図面特有のシンボルや罫線などを文字の一種とみなして一旦は文字認識し、文字認識結果から図面特有のシンボル等に対応する代替文字を除外することによって、図面に記載された文字の認識率を向上することができる。また、文字認識後も後処理による文字の補完、補正を行うことにより、文字の認識率を向上させることができる。さらに複数のOCRモデルの認識結果を統合することで、複数のOCRモデルの長短を補完しあうことが可能となり、文字認識装置10全体としての認識率および頑強性を向上することができる。
【0033】
図10は、実施形態に係る文字認識装置のハードウェア構成の一例を示す図である。
コンピュータ900は、CPU901、主記憶装置902、補助記憶装置903、入出力インタフェース904、通信インタフェース905を備える。
上述の文字認識装置10は、コンピュータ900に実装される。そして、上述した各機能は、プログラムの形式で補助記憶装置903に記憶されている。CPU901は、プログラムを補助記憶装置903から読み出して主記憶装置902に展開し、当該プログラムに従って上記処理を実行する。また、CPU901は、プログラムに従って、記憶領域を主記憶装置902に確保する。また、CPU901は、プログラムに従って、処理中のデータを記憶する記憶領域を補助記憶装置903に確保する。
【0034】
なお、文字認識装置10の全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各機能部による処理を行ってもよい。ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、CD、DVD、USB等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また、このプログラムが通信回線によってコンピュータ900に配信される場合、配信を受けたコンピュータ900が当該プログラムを主記憶装置902に展開し、上記処理を実行しても良い。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【0035】
以上のとおり、本開示に係るいくつかの実施形態を説明したが、これら全ての実施形態は、例として提示したものであり、発明の範囲を限定することを意図していない。これらの実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で種々の省略、置き換え、変更を行うことができる。これらの実施形態及びその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【0036】
<付記>
各実施形態に記載の文字認識装置、文字認識方法及びプログラムは、例えば以下のように把握される。
【0037】
(1)第1の態様に係る文字認識装置10は、図面に記載された、文字ではない表示物の画像データに対して代替文字を正解ラベルとして付した第1の学習データを取得する学習データ取得部と、前記第1の学習データを学習して文字認識モデルを作成する学習部と、文字および文字ではない表示物を含む認識対象の画像データを取得する認識対象データ取得部と、前記文字認識モデルに基づいて、前記認識対象の画像データから文字を認識し、認識した文字から前記代替文字を削除した残りの文字を認識結果として出力する認識部と、を備える。
これにより、図面固有のシンボルや記号、表の罫線など文字の誤認識の原因となる表示物の影響を低減し、文字認識を行うことができ、文字認識率を向上することができる。
データ取得部11は、学習データ取得部の一例である。OCRモデル1、2は文字認識モデルの一例である。データ取得部11は、認識対象データ取得部の一例である。文字認識部132は、認識部の一例である。
【0038】
(2)第2の態様に係る文字認識装置10は、(1)の文字認識装置であって、前記学習データ取得部は、さらに、前記図面に記載された文字の画像データに対して正解ラベルを付した第2の学習データを取得し、前記学習部は、前記第2の学習データを学習して前記文字認識モデルを作成する。
図面の文字は、一般的なOCRモデルが学習した文字と形状が異なる場合があり、文字認識率低下の原因となっている。実際の図面に記載された文字に正解ラベルを付して学習することにより、図面の文字認識に特化したOCRモデルを作成することができ、図面の文字認識率を大幅に向上することができる(
図2)。
【0039】
(3)第3の態様に係る文字認識装置10は、(1)~(2)の文字認識装置であって、前記認識部が出力する前記認識結果を補正する後処理部、をさらに備え、前記後処理部は、前記認識結果の文字列の先頭および末尾のうちの一方にのみ所定の対になる一組の文字の一方が含まれる場合、前記先頭および前記末尾のうちの他方に前記対になる一組の文字の他方を追加することにより、前記認識結果を補正する。
これにより、例えば、片方の括弧を補完することができる。片方の括弧を補完することにより、括弧の認識漏れを低減し、文字認識率を向上することができる。後処理部133は後処理部の一例である。
【0040】
(4)第4の態様に係る文字認識装置10は、(1)~(3)の文字認識装置であって、前記認識部が出力する前記認識結果を補正する後処理部、をさらに備え、前記後処理部は、前記認識結果を辞書に登録された登録文字列と比較し、前記認識結果が登録文字列に類似する場合、前記認識結果を類似する前記登録文字列に置き換えることにより、前記認識結果を補正する。
図面に対する専門知見に基づいた辞書登録や、類似文字の設定を行うことにより、図面に対する専門知見に基づいた誤認識修正が可能となる。後処理部133は後処理部の一例である。
【0041】
(5)第5の態様に係る文字認識装置10は、(1)~(4)の文字認識装置であって、前記認識部が出力する前記認識結果を補正する後処理部、をさらに備え、前記後処理部は、1つ又は複数の文字列が所定の条件を満たす場合には所定の文字が前記1つ又は複数の文字列の所定の位置に含まれていることを定める規則に基づいて、前記認識結果に前記所定の文字を追加することにより、前記認識結果を補正する。
これにより、例えば、「-(ハイフン)」を含む文字列と想定される文字列に対してハイフンを補完することができる。ハイフンを含む機器番号や図面内の文字列の改行に対応可能となり、長文等の文字認識率向上が可能となる。後処理部133は後処理部の一例である。
【0042】
(6)第6の態様に係る文字認識装置10は、(1)~(5)の文字認識装置であって、前記認識部が、複数の前記文字認識モデルの各々に基づいて、前記認識対象の画像データから文字を認識する場合、各々の前記文字認識モデルに基づく前記認識結果を統合する統合部、をさらに備え、前記統合部は、最も認識率の高い前記文字認識モデルが認識できなかった文字を他の前記文字認識モデルが認識できた場合、前記他の前記文字認識モデルのうち最も認識率が高い前記文字認識モデルが認識した文字を前記認識結果として出力する。
これにより、複数の文字認識モデル(OCRモデル、文字認識用の深層学習モデル)の長短を補完しあうことが可能となり、システム(文字認識装置10)全体としての認識率と頑強性の向上が可能となる。後処理部133は統合部の一例である。
【0043】
(7)第7の態様に係る文字認識方法は、図面に記載された文字ではない表示物の画像データに対して代替文字を正解ラベルとして付した第1の学習データを取得するステップと、前記第1の学習データを学習して文字認識モデルを作成するステップと、文字および文字ではない表示物を含む認識対象の画像データを取得するステップと、前記文字認識モデルに基づいて、前記認識対象の画像データから文字を認識し、認識した文字から前記代替文字を削除した残りの文字を認識結果として出力するステップと、を有する。
【0044】
(8)第8の態様に係るプログラムは、コンピュータに、図面に記載された文字ではない表示物の画像データに対して代替文字を正解ラベルとして付した第1の学習データを取得するステップと、前記第1の学習データを学習して文字認識モデルを作成するステップと、文字および文字ではない表示物を含む認識対象の画像データを取得するステップと、前記文字認識モデルに基づいて、前記認識対象の画像データから文字を認識し、認識した文字から前記代替文字を削除した残りの文字を認識結果として出力するステップと、を実行させる。
【符号の説明】
【0045】
1、2・・・OCRモデル
10・・・文字認識装置
11・・・データ取得部
12・・・入力受付部
13・・・処理部
131・・・学習部
132・・・文字認識部
133・・・後処理部
14・・・出力部
15・・・記憶部
900・・・コンピュータ
901・・・CPU
902・・・主記憶装置
903・・・補助記憶装置
904・・・入出力インタフェース
905・・・通信インタフェース