(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-13
(45)【発行日】2023-03-22
(54)【発明の名称】電子文書における強調テキストの識別
(51)【国際特許分類】
G06F 16/583 20190101AFI20230314BHJP
G06V 30/14 20220101ALI20230314BHJP
G06V 30/242 20220101ALI20230314BHJP
G06V 30/246 20220101ALI20230314BHJP
G06V 30/28 20220101ALI20230314BHJP
【FI】
G06F16/583
G06V30/14 340K
G06V30/242
G06V30/246
G06V30/28
【外国語出願】
(21)【出願番号】P 2018115900
(22)【出願日】2018-06-19
【審査請求日】2021-05-21
(32)【優先日】2017-06-30
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】507031918
【氏名又は名称】コニカ ミノルタ ラボラトリー ユー.エス.エー.,インコーポレイテッド
(74)【代理人】
【識別番号】110001254
【氏名又は名称】弁理士法人光陽国際特許事務所
(72)【発明者】
【氏名】メイ, イ
【審査官】酒井 恭信
(56)【参考文献】
【文献】特開平07-225812(JP,A)
【文献】特開平11-203305(JP,A)
【文献】特開平09-297765(JP,A)
【文献】特開平06-020092(JP,A)
【文献】特開平09-044594(JP,A)
【文献】特開2016-072958(JP,A)
【文献】米国特許第05825919(US,A)
【文献】米国特許出願公開第2015/0278167(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00 - 16/958
G06V 30/00 - 30/424
(57)【特許請求の範囲】
【請求項1】
システムのプロセッサーが実行する、強調テキストを識別する方法であって、
複数行のテキストを含み、各行のテキストが複数の単語又は文字を含む入力画像に水平方向の圧縮を実行し、水平方向に圧縮された画像を生成する工程、
前記水平方向に圧縮された画像に水平方向の形態的膨張を実行して、前記複数行のテキストのうちの別々の行にそれぞれ対応するクラスターを含む、水平方向に膨張した画像を形成する工程、
クラスター毎に境界ボックスを計算して複数の境界ボックスを生じさせる工程、
すべての前記境界ボックスに亘る第1の平均密度を計算する工程、
前記複数の境界ボックスのそれぞれについて前記第1の平均密度と前記境界ボックスの密度とを比較する工程、及び
前記複数の境界ボックス
のうち、前記境界ボックスの密度から前記第1の平均密度を差し引いた値が第1の閾値を超える境界ボックスを、太字の単語又は文字を有す
る特定の境界ボックス
として識別する工程、
を含み、
前記特定の境界ボックスは複数のテキスト要素を含み、前記テキスト要素は単語又は文字であり、前記特定の境界ボックスはテキスト要素領域により分割され、各テキスト要素領域は前記複数のテキスト要素のうち互いに異なる一つのテキスト要素を覆い、
前記方法は、
前記特定の境界ボックス内のすべてのテキスト要素領域に亘る第2の平均密度を計算する工程、
各テキスト要素領域について前記第2の平均密度と前記テキスト要素領域の密度とを比較する工程、及び
前記複数のテキスト要素のうち、前記テキスト要素を含むテキスト要素領域の密度から前記第2の平均密度を差し引いた値が第2の閾値を超えるテキスト要素を、太字の強調テキストである特定のテキスト要素として識別する工程、
をさらに含む、方法。
【請求項2】
前記第1の平均密度を計算する前記複数の境界ボックスは、前記水平方向に圧縮された画像に設けられている、請求項1に記載の方法。
【請求項3】
各境界ボックスは上方区域及び下方区域を含み、前記上方区域及び前記下方区域のうちの少なくとも1つは単語又は文字の小部分を含み、
前記上方区域及び前記下方区域は前記第1の平均密度を計算する前記工程で用いられない、請求項1又は2に記載の方法。
【請求項4】
前記水平方向に圧縮された画像から下線を検出する工程をさらに含み、前記第1の平均密度を計算する前記複数の境界ボックスは前記下線を排除している、請求項1~3のいずれか1項に記載の方法。
【請求項5】
前記第2の平均密度を計算する前記テキスト要素領域は、前記入力画像に設けられている、請求項
1~4のいずれか1項に記載の方法。
【請求項6】
前記第2の平均密度を計算する前記テキスト要素領域は、前記水平方向に圧縮された画像に設けられている、請求項
1~4のいずれか1項に記載の方法。
【請求項7】
各テキスト要素領域は上方区域及び下方区域を含み、前記上方区域及び前記下方区域のうちの少なくとも1つは前記複数のテキスト要素のうちの1つ以上の小部分を含み、
前記上方区域及び前記下方区域は、前記第2の平均密度を計算する前記工程で用いられない、請求項
1~
6のいずれか1項に記載の方法。
【請求項8】
前記特定の境界ボックスは下線を含み、
前記第2の平均密度を計算する前記テキスト要素領域は前記下線を排除している、請求項
1~
7のいずれか1項に記載の方法。
【請求項9】
強調テキストを識別するシステムであって、
プロセッサー、及び
前記プロセッサーと通信し、命令を格納する記憶装置を備え、
前記プロセッサーは、格納された前記命令に従って強調テキストを識別する処理を実行するように構成されており、
前記処理は、
複数行のテキストを含み、各行のテキストが複数の単語又は文字を含む入力画像に水平方向の圧縮を実行し、水平方向に圧縮された画像を生成すること、
前記水平方向に圧縮された画像に水平方向の形態的膨張を実行して、前記複数行のテキストのうちの別々の行にそれぞれ対応するクラスターを含む、水平方向に膨張した画像を形成すること、
クラスター毎に境界ボックスを計算して複数の境界ボックスを生じさせること、
すべての前記境界ボックスに亘る第1の平均密度を計算すること、
前記複数の境界ボックスのそれぞれについて前記第1の平均密度と前記境界ボックスの密度とを比較すること、及び
前記複数の境界ボックス
のうち、前記境界ボックスの密度から前記第1の平均密度を差し引いた値が第1の閾値を超える境界ボックスを、太字の単語又は文字を有す
る特定の境界ボックス
として識別すること、
を含み、
前記特定の境界ボックスは複数のテキスト要素を含み、前記テキスト要素は単語又は文字であり、前記特定の境界ボックスはテキスト要素領域により分割され、各テキスト要素領域は前記複数のテキスト要素のうち互いに異なる一つのテキスト要素を覆い、
前記処理は、
前記特定の境界ボックス内のすべてのテキスト要素領域に亘る第2の平均密度を計算すること、
各テキスト要素領域について前記第2の平均密度と前記テキスト要素領域の密度とを比較すること、及び
前記複数のテキスト要素のうち、前記テキスト要素を含むテキスト要素領域の密度から前記第2の平均密度を差し引いた値が第2の閾値を超えるテキスト要素を、太字の強調テキストである特定のテキスト要素として識別すること、
をさらに含む、システム。
【請求項10】
前記第1の平均密度を計算する前記境界ボックスは、前記水平方向に圧縮された画像に設けられている、請求項
9に記載のシステム。
【請求項11】
各境界ボックスは上方区域及び下方区域を含み、前記上方区域及び前記下方区域のうちの少なくとも1つは単語又は文字の小部分を含み、
前記上方区域及び前記下方区域は前記第1の平均密度の前記計算で用いられない、請求項
9又は
10に記載のシステム。
【請求項12】
前記処理は前記水平方向に圧縮された画像から下線を検出することをさらに含み、前記第1の平均密度を計算する前記複数の境界ボックスは前記下線を排除している、請求項
9~
11のいずれか1項に記載のシステム。
【請求項13】
前記第2の平均密度を計算する前記テキスト要素領域は、前記入力画像に設けられている、請求項
9~12のいずれか1項に記載のシステム。
【請求項14】
前記第2の平均密度を計算する前記テキスト要素領域は、前記水平方向に圧縮された画像に設けられている、請求項
9~12のいずれか一項に記載のシステム。
【請求項15】
各テキスト要素領域は上方区域及び下方区域を含み、前記上方区域及び前記下方区域のうちの少なくとも1つは前記複数のテキスト要素のうちの1つ以上の小部分を含み、
前記上方区域及び前記下方区域は、前記第2の平均密度の前記計算で用いられない、請求項
9~
14のいずれか1項に記載のシステム。
【請求項16】
前記特定の境界ボックスは下線を含み、
前記第2の平均密度を計算する前記テキスト要素領域は前記下線を排除している、請求項
9~
15のいずれか1項に記載のシステム。
【請求項17】
システムのプロセッサーにより実行されると、前記システムに強調テキストを識別する処理を実行させるプログラムであって、
前記処理は、
複数行のテキストを含み、各行のテキストが複数の単語又は文字を含む入力画像に水平方向の圧縮を実行し、水平方向に圧縮された画像を生成すること、
前記水平方向に圧縮された画像に水平方向の形態的膨張を実行して、前記複数行のテキストのうちの別々の行にそれぞれ対応するクラスターを含む、水平方向に膨張した画像を形成すること、
クラスター毎に境界ボックスを計算して複数の境界ボックスを生じさせること、
すべての前記境界ボックスに亘る第1の平均密度を計算すること、
前記複数の境界ボックスのそれぞれについて前記第1の平均密度と前記境界ボックスの密度とを比較すること、及び
前記複数の境界ボックス
のうち、前記境界ボックスの密度から前記第1の平均密度を差し引いた値が第1の閾値を超える境界ボックスを、太字の単語又は文字を有す
る特定の境界ボックス
として識別すること、
を含み、
前記特定の境界ボックスは複数のテキスト要素を含み、前記テキスト要素は単語又は文字であり、前記特定の境界ボックスはテキスト要素領域により分割され、各テキスト要素領域は前記複数のテキスト要素のうち互いに異なる一つのテキスト要素を覆い、
前記処理は、
前記特定の境界ボックス内のすべてのテキスト要素領域に亘る第2の平均密度を計算すること、
各テキスト要素領域について前記第2の平均密度と前記テキスト要素領域の密度とを比較すること、及び
前記複数のテキスト要素のうち、前記テキスト要素を含むテキスト要素領域の密度から前記第2の平均密度を差し引いた値が第2の閾値を超えるテキスト要素を、太字の強調テキストである特定のテキスト要素として識別すること、
をさらに含む、プログラム。
【請求項18】
前記第1の平均密度を計算する前記境界ボックスは、前記水平方向に圧縮された画像に設けられている、請求項
17に記載のプログラム。
【請求項19】
各境界ボックスは上方区域及び下方区域を含み、前記上方区域及び前記下方区域のうちの少なくとも1つは単語又は文字の小部分を含み、
前記上方区域及び前記下方区域は前記第1の平均密度の前記計算で用いられない、請求項
17又は
18に記載のプログラム。
【請求項20】
前記処理は前記水平方向に圧縮された画像から下線を検出することをさらに含み、前記第1の平均密度を計算する前記複数の境界ボックスは前記下線を排除している、請求項
17~
19のいずれか1項に記載のプログラム。
【請求項21】
前記第2の平均密度を計算する前記テキスト要素領域は、前記入力画像に設けられている、請求項
17~20のいずれか1項に記載のプログラム。
【請求項22】
前記第2の平均密度を計算する前記テキスト要素領域は、前記水平方向に圧縮された画像に設けられている、請求項
17~20のいずれか1項に記載のプログラム。
【請求項23】
各テキスト要素領域は上方区域及び下方区域を含み、前記上方区域及び前記下方区域のうちの少なくとも1つは前記複数のテキスト要素のうちの1つ以上の小部分を含み、
前記上方区域及び前記下方区域は、前記第2の平均密度の前記計算で用いられない、請求項
17~
22のいずれか1項に記載のプログラム。
【請求項24】
前記特定の境界ボックスは下線を含み、
前記第2の平均密度を計算する前記テキスト要素領域は前記下線を排除している、請求項
17~
23のいずれか1項に記載のプログラム。
【請求項25】
強調テキストを識別する処理装置であって、
複数行のテキストを含み、各行のテキストが複数の単語又は文字を含む入力画像に水平方向の圧縮を実行し、水平方向に圧縮された画像を生成する手段と、
前記水平方向に圧縮された画像に水平方向の形態的膨張を実行して、前記複数行のテキストのうちの別々の行にそれぞれ対応するクラスターを含む、水平方向に膨張した画像を形成する手段と、
クラスター毎に境界ボックスを計算して複数の境界ボックスを生じさせる手段と、
すべての前記境界ボックスに亘る第1の平均密度を計算する手段と、
前記複数の境界ボックスのそれぞれについて前記第1の平均密度と前記境界ボックスの密度とを比較する手段と
、
前記複数の境界ボックス
のうち、前記境界ボックスの密度から前記第1の平均密度を差し引いた値が第1の閾値を超える境界ボックスを、太字の単語又は文字を有す
る特定の境界ボックス
として識別する手段と、
を備え、
前記特定の境界ボックスは複数のテキスト要素を含み、前記テキスト要素は単語又は文字であり、前記特定の境界ボックスはテキスト要素領域により分割され、各テキスト要素領域は前記複数のテキスト要素のうち互いに異なる一つのテキスト要素を覆い、
前記処理装置は、
前記特定の境界ボックス内のすべてのテキスト要素領域に亘る第2の平均密度を計算する手段と、
各テキスト要素領域について前記第2の平均密度と前記テキスト要素領域の密度とを比較する手段と、
前記複数のテキスト要素のうち、前記テキスト要素を含むテキスト要素領域の密度から前記第2の平均密度を差し引いた値が第2の閾値を超えるテキスト要素を、太字の強調テキストである特定のテキスト要素として識別する手段と、
をさらに備える、処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は概ね画像処理に関し、より詳細にはテキストを含む画像の処理に関する。
【背景技術】
【0002】
テキストを含む用紙のシートをスキャナーに置いて各ページにテキスト画像が載っている電子文書を作成する場合がある。スキャナーは、PDF(Portable Document Format)、JPEG(Joint Photographic Experts Group)、GIF(Graphics Interchange Format)、TIFF(Tagged Image File Format)、PNG(Portable Network Graphics)等、任意のデジタル形式でテキスト画像を出力することができる。通常、スキャン処理では、下線の付与や太字化といった、スタイル強調がなされた単語又は文字にタグ付けを行う方法でのテキスト画像の符号化は行われない。
【発明の概要】
【発明が解決しようとする課題】
【0003】
状況によってはスタイル強調がなされた単語又は文字(本明細書では強調テキストと称する)を識別することが望ましい場合がある。タグを付けると、強調テキストは、さらなる処理の対象となることができる。例えば、あるシステムは、強調テキストのみを対象とした文字認識処理を実行し、文書中の他の単語を処理せずに文書の簡単な要約を生成することができる。文字認識処理で他のテキスト(非強調テキスト)を無視すれば、演算資源を節約し、処理にあまり時間がかからずに済む。演算コストが主要な関心事ではない場合であっても、強調テキストの認識精度が低いことは多くの文字認識(OCR)ソフトウェアで問題となる場合がある。テキスト画像に複数のテキストスタイルの混在があれば、精度はさらに悪くなる可能性がある。したがって、強調テキストを識別することで、異なる文字識別アルゴリズムを強調テキストに適用して文字認識精度を向上させることができる。別の例としては、コンピューターを用いて電子文書を読む人が電子文書内の強調テキストに直接ジャンプしようとする場合が挙げられ、この場合、電子文書に文字認識処理を施す必要がない。したがって、強調テキストを効率的かつ有効に識別する方法及びシステムが必要となる。
【課題を解決するための手段】
【0004】
おおまかに言えば、本発明は強調テキストを識別する方法、システム、プログラム及び処理装置を対象にする。
【0005】
本発明の側面では、システムのプロセッサーが実行する方法は、複数行のテキストを含み、各行のテキストが複数の単語又は文字を含む入力画像に水平方向の圧縮を実行し、水平方向に圧縮された画像を生成する工程、前記水平方向に圧縮された画像に水平方向の形態的膨張を実行して、前記複数行のテキストのうちの別々の行にそれぞれ対応するクラスターを含む、水平方向に膨張した画像を形成する工程、クラスター毎に境界ボックスを計算して複数の境界ボックスを生じさせる工程、すべての前記境界ボックスに亘る第1の平均密度を計算する工程、前記複数の境界ボックスのそれぞれについて前記第1の平均密度と前記境界ボックスの密度とを比較する工程、及び前記複数の境界ボックスのうち、前記境界ボックスの密度から前記第1の平均密度を差し引いた値が第1の閾値を超える境界ボックスを、太字の単語又は文字を有する特定の境界ボックスとして識別する工程、を含み、前記特定の境界ボックスは複数のテキスト要素を含み、前記テキスト要素は単語又は文字であり、前記特定の境界ボックスはテキスト要素領域により分割され、各テキスト要素領域は前記複数のテキスト要素のうち互いに異なる一つのテキスト要素を覆い、前記方法は、前記特定の境界ボックス内のすべてのテキスト要素領域に亘る第2の平均密度を計算する工程、各テキスト要素領域について前記第2の平均密度と前記テキスト要素領域の密度とを比較する工程、及び前記複数のテキスト要素のうち、前記テキスト要素を含むテキスト要素領域の密度から前記第2の平均密度を差し引いた値が第2の閾値を超えるテキスト要素を、太字の強調テキストである特定のテキスト要素として識別する工程、をさらに含む。
【0006】
本発明の側面では、システムは、プロセッサー、及び前記プロセッサーと通信し、命令を格納する記憶装置を備える。前記プロセッサーは、格納された前記命令に従って強調テキストを識別する処理を実行するように構成されている。前記処理は、複数行のテキストを含み、各行のテキストが複数の単語又は文字を含む入力画像に水平方向の圧縮を実行し、水平方向に圧縮された画像を生成すること、前記水平方向に圧縮された画像に水平方向の形態的膨張を実行して、前記複数行のテキストのうちの別々の行にそれぞれ対応するクラスターを含む、水平方向に膨張した画像を形成すること、クラスター毎に境界ボックスを計算して複数の境界ボックスを生じさせること、すべての前記境界ボックスに亘る第1の平均密度を計算すること、前記複数の境界ボックスのそれぞれについて前記第1の平均密度と前記境界ボックスの密度とを比較すること、及び前記複数の境界ボックスのうち、前記境界ボックスの密度から前記第1の平均密度を差し引いた値が第1の閾値を超える境界ボックスを、太字の単語又は文字を有する特定の境界ボックスとして識別すること、を含み、前記特定の境界ボックスは複数のテキスト要素を含み、前記テキスト要素は単語又は文字であり、前記特定の境界ボックスはテキスト要素領域により分割され、各テキスト要素領域は前記複数のテキスト要素のうち互いに異なる一つのテキスト要素を覆い、前記処理は、前記特定の境界ボックス内のすべてのテキスト要素領域に亘る第2の平均密度を計算すること、各テキスト要素領域について前記第2の平均密度と前記テキスト要素領域の密度とを比較すること、及び前記複数のテキスト要素のうち、前記テキスト要素を含むテキスト要素領域の密度から前記第2の平均密度を差し引いた値が第2の閾値を超えるテキスト要素を、太字の強調テキストである特定のテキスト要素として識別すること、をさらに含む。
【0007】
本発明の側面では、プログラムは、システムのプロセッサーにより実行されると、システムに強調テキストを識別する処理を実行させる。前記処理は、複数行のテキストを含み、各行のテキストが複数の単語又は文字を含む入力画像に水平方向の圧縮を実行し、水平方向に圧縮された画像を生成すること、前記水平方向に圧縮された画像に水平方向の形態的膨張を実行して、前記複数行のテキストのうちの別々の行にそれぞれ対応するクラスターを含む、水平方向に膨張した画像を形成すること、クラスター毎に境界ボックスを計算して複数の境界ボックスを生じさせること、すべての前記境界ボックスに亘る第1の平均密度を計算すること、前記複数の境界ボックスのそれぞれについて前記第1の平均密度と前記境界ボックスの密度とを比較すること、及び前記複数の境界ボックスのうち、前記境界ボックスの密度から前記第1の平均密度を差し引いた値が第1の閾値を超える境界ボックスを、太字の単語又は文字を有する特定の境界ボックスとして識別すること、を含み、前記特定の境界ボックスは複数のテキスト要素を含み、前記テキスト要素は単語又は文字であり、前記特定の境界ボックスはテキスト要素領域により分割され、各テキスト要素領域は前記複数のテキスト要素のうち互いに異なる一つのテキスト要素を覆い、前記処理は、前記特定の境界ボックス内のすべてのテキスト要素領域に亘る第2の平均密度を計算すること、各テキスト要素領域について前記第2の平均密度と前記テキスト要素領域の密度とを比較すること、及び前記複数のテキスト要素のうち、前記テキスト要素を含むテキスト要素領域の密度から前記第2の平均密度を差し引いた値が第2の閾値を超えるテキスト要素を、太字の強調テキストである特定のテキスト要素として識別すること、をさらに含む。
本発明の側面では、処理装置は、強調テキストを識別する。処理装置は、複数行のテキストを含み、各行のテキストが複数の単語又は文字を含む入力画像に水平方向の圧縮を実行し、水平方向に圧縮された画像を生成する手段と、前記水平方向に圧縮された画像に水平方向の形態的膨張を実行して、前記複数行のテキストのうちの別々の行にそれぞれ対応するクラスターを含む、水平方向に膨張した画像を形成する手段と、クラスター毎に境界ボックスを計算して複数の境界ボックスを生じさせる手段と、すべての前記境界ボックスに亘る第1の平均密度を計算する手段と、前記複数の境界ボックスのそれぞれについて前記第1の平均密度と前記境界ボックスの密度とを比較する手段と、前記複数の境界ボックスのうち、前記境界ボックスの密度から前記第1の平均密度を差し引いた値が第1の閾値を超える境界ボックスを、太字の単語又は文字を有する特定の境界ボックスとして識別する手段と、を備え、前記特定の境界ボックスは複数のテキスト要素を含み、前記テキスト要素は単語又は文字であり、前記特定の境界ボックスはテキスト要素領域により分割され、各テキスト要素領域は前記複数のテキスト要素のうち互いに異なる一つのテキスト要素を覆い、前記処理装置は、前記特定の境界ボックス内のすべてのテキスト要素領域に亘る第2の平均密度を計算する手段と、各テキスト要素領域について前記第2の平均密度と前記テキスト要素領域の密度とを比較する手段と、前記複数のテキスト要素のうち、前記テキスト要素を含むテキスト要素領域の密度から前記第2の平均密度を差し引いた値が第2の閾値を超えるテキスト要素を、太字の強調テキストである特定のテキスト要素として識別する手段と、をさらに備える。
【0008】
本発明の特徴及び利点は、以下の詳細な説明を添付の図面と併せて読めばより容易に理解できる。
【図面の簡単な説明】
【0009】
【
図1】電子文書中の強調テキストを識別する例示的な処理を示す流れ図である。
【
図5】本明細書で説明するいずれの処理でも用いられ、アジア言語テキストを含まない例示的な入力画像(画像0)の表現である。
【
図6】
図5の入力画像に対する水平方向の圧縮の例示的結果の表現である。
【
図7】本明細書で説明するいずれの処理でも用いられ、アジア言語テキストを含む例示的な入力画像(画像0)の表現である。
【
図8】
図7の入力画像に対する水平方向の圧縮の例示的結果の表現である。
【
図9】ノイズ除去の前及び後の
図6の一部の拡大図である。
【
図10】水平方向及び垂直方向に連続した形態的膨張の一例を示す図である。
【
図11】水平方向に連続した形態的膨張の一例を示す図である。
【
図12】水平方向の形態的膨張の前及び後の
図6の一部と、水平方向の形態的膨張により形成されたクラスターを示す。
【
図14】
図12のクラスターから計算した境界ボックスを示す。
【
図15】
図14で計算した境界ボックスに対応する水平方向圧縮テキストを示す。
【
図16A】テキストが上方区域及び下方区域よりも密度が大きい水平方向中央区域を有することを示す密度分布を持った水平方向圧縮テキストと、対応する映像を示す。
【
図16B】上方区域及び下方区域よりも大きい密度の水平方向の中央領域を有するテキストを示す。
【
図17】上方区域及び下方区域よりも密度が大きい水平方向の中央区域を有しないアジア言語テキストを示す。
【
図21】電子文書中の強調テキストを識別する例示的な処理を示す流れ図である。
【発明を実施するための形態】
【0010】
本明細書で用いるように、「アジア言語テキスト」という文言は、表語文字、音節表記の仮名等を主に含むテキストを指す。表語文字は、単語又は句を表す文字である。表語文字の例は、中国語及び日本語の漢字である。音節文字である仮名は、平仮名及び片仮名を含み、これらは日本語の筆記体系の一部である。「アジア言語テキスト」という文言は、主にローマ字を用いて記載されるいくつかのアジア言語のテキストを含まない。主にローマ字を用いて記載することができるアジア言語の例としては、タガログ語(フィリピン)、マレー語、及びベトナム語が挙げられる。
【0011】
本明細書で用いるように、「太字」、「太字にした」、及び「太字の」は強調スタイルのことをいい、ある文字が文書中の他の文字よりも太くなっている。
【0012】
ここで本発明の側面を示すための例示的図面をより詳細に参照する。電子文書中の強調テキストを識別する例示的な方法を
図1に示す。同一の参照番号はいくつかの図面間で対応する要素又は類似の要素を指す。
図1には破線A-A’が記載されており、これは
図2に対応している。
図2には破線B-B’が記載されており、これは
図3に対応している。また、
図2には破線B2-B’が記載されており、これは
図4に対応している。
【0013】
図1のブロック100の処理で、入力テキスト画像は水平方向に圧縮されるので、画像の水平方向の領域(画像幅)が小さくなる。垂直方向の圧縮は行われないので、画像の垂直方向の領域(画像の高さ)は小さくならない。入力テキスト画像は、デジタル形式、例えばPDF、JPEG、GIF、TIFF、PNG等であってもよい。入力テキスト画像は、画像0とも称し、画像0を水平方向に圧縮した結果を画像1と称する。画像0は、テキストを含み、必要であれば画像、例えば写真や図解を含む。画像0は、強調スタイルの単語又は文字を強調スタイルでない単語又は文字と区別するように符号化されていない。強調スタイルの例としては、下線及び太字が挙げられる。強調スタイルの単語又は文字を、本明細書では強調テキストと称する。
【0014】
画像0を文字認識処理で符号化しないようにしても良い。この場合、画像0は画素群を特定のアジア言語の文字として区別する方法では符号化しない。
【0015】
ブロック100の水平方向の圧縮は、様々な方法で行うことができる。出願人は、下記の副処理に対して重大な悪影響をもたらすことなく水平方向の圧縮を行いつつ、演算資源を節約して強調テキストを識別する処理を完了するのに必要な時間を短縮することができることを発見した。
【0016】
水平方向の圧縮処理の一例では、画像0は複数の垂直区分に分割され、各区分は1画素の幅である。Nの垂直区分群は、1画素幅の1つの垂直区分に変換される。この垂直区分を合成区分と称する。例えばN=4の場合、第1群の4個の区分が第1の合成区分に変換され、次群の4個の垂直区分が第2の合成区分に変換されるといった具合である。平均アルゴリズム又は他のアルゴリズムを4個の区分に適用し、合成区分の個々の画素の値(黒又は白)を決定する。
【0017】
水平方向の圧縮処理の別の例では、画像0は複数の垂直区分に分割される。区分は交互に取り除かれる。例えば、第1の区分は残り、第2の区分は取り除かれ、第3の区分は残り、第4の区分は取り除かれるといった具合である。残った各区分は、画素幅W1の水平方向の大きさを有することができる。W1は、1、5未満、又は他の値であってもよい。取り除かれた各区分は、画素幅W2の水平方向の大きさを有することができる。W2は、1より大きく、5より大きく、又は他の値であってもよい。他の水平方向の圧縮処理を用いることができる。
【0018】
図5に例示的な入力画像である画像0を示す。この入力画像は強調語を含む。例えば「Customer value」等、いくつかの単語が太字になっている。他の単語、例えば「Document summarization algorithm」は下線が引かれている。「MAJOR TECHNOLOGY」という単語は、太字でかつ下線が引かれている。
図6に、水平方向に圧縮された画像である画像1の一例を示す。この画像は、
図5の画像0にブロック100の処理を適用した結果である。画像1の個々の単語は、明瞭でないかもしれない。
【0019】
図7に、アジア言語テキストの例示的な入力画像である画像0を示す。3つの段落があり、段落見出しの文字は太字になっている。また、見出しのいくつかの文字は、太字になっており、かつ下線が引かれている。
図8に、水平方向に圧縮された画像である画像1の一例を示す。この画像は、
図7の画像0にブロック100の処理をかけた結果である。画像1の個々の文字は、明瞭でないかもしれない。
【0020】
ブロック102の処理で、ごま塩ノイズを画像1から除去して画像2を生成する。ごま塩ノイズは、当技術分野でインパルスノイズとも称し、まばらに発生する白色及び/又は黒色の画素である。当技術分野で既知の様々なフィルタリングアルゴリズムをブロック102の処理で用いてごま塩ノイズを除去することができる。出願人は、この段階でごま塩ノイズを除去することで、下記の特定の副処理の精度を向上させることができることを発見した。
図9は、ごま塩ノイズ除去の一例である。図面の左側は画像1を示し、図
6の下側部分を拡大したものである。図面の右側は画像2を示し、ブロック102の処理結果である。画像1及び画像2の両方は、水平方向に圧縮され、垂直方向には圧縮されない画像の例である。
【0021】
ブロック104の処理で、水平方向線の検出を画像2に対して実行する。例えば、狭くて暗色の区域を形成し、水平方向長さの垂直方向高さに対する比Rが非常に大きい、水平方向に連続する画素を探すアルゴリズムを用いることができる。このアルゴリズムは、Rを閾値と比較し、Rが閾値よりも大きい場合に、繋がっている画素を下線として識別することができる。これに加えて、あるいはこれに代えて、他の基準、例えば直線度及び長さを用いて繋がっている画素を下線として識別することができる。当技術分野で既知の線検出アルゴリズムを用いてもよい。例えば、ハフ変換又は線分検出器(LSD)を用いてもよい。
図9に戻って、図面の右側は、ブロック104の処理で2つの下線が識別された画像2を示す。
【0022】
ブロック104の処理で下線を検出後、下線に関連する単語の位置及び/又は内容を記憶装置14(
図24)に保存することができる。位置は、ページ番号、行番号、及び/又はページの座標であってもよい。例えば、位置及び/又は内容を記憶装置14の参照テーブルに保存してもよい。これに代えて、又はさらに、入力画像(画像X)は、太字の単語又は文字があるものとして入力画像(画像0)の下線位置を入力画像の他の領域と区別するタグで符号化してもよい。タグは、ページ番号、行番号、及び/又はページの座標を含んでもよい。
【0023】
ブロック105の処理で、変更可能な文書の種類を初期化する。文書の種類を「不明」に設定する。
【0024】
処理はブロック105から
図2に進む。
図2のブロック200の処理で、水平方向の形態的膨張を画像2に対して実行し、画像3を生成する。画像3は、水平方向に膨張した画像の一例である。一般的には、形態的膨張は、対象、例えば画像の前景要素の境界を膨張させる。対象は、形態的膨張の後に厚みが増したように見える。当技術分野で知られているように、形態的膨張用のアルゴリズムでは構造化要素を用いて境界を拡張させてもよい。
【0025】
図10に示すように、構造化要素(円)を文字の境界縁部に沿って当てがい、水平方向及び垂直方向に境界を拡張させる。水平方向の形態的膨張では、境界を垂直方向ではなく水平方向に拡張する。
図11に示すように、水平方向の形態的膨張を実行する際には、文字の境界縁部に沿って当てがう構造化要素として、細い水平方向の線を用いることができる。
【0026】
図12に、考察のために水平方向の形態的膨張を誇張した例を示す。図面の左側は、画像2の下方部を示す。図面の右側は、水平方向に形態的膨張をした後の画像2の同じ部分を示す。
図12の圧縮テキストは、
図13に示すテキストの2つの行に対応する。圧縮テキストに実行された水平方向の形態的膨張には、文字間の隙間を埋める効果がある。結果として、個々の文字が結合し、また個々の単語が結合する。例えば、
図13の画像0におけるテキストのある行(「knowledge distribution」)は、
図12の画像3の1つのクラスターに変換され、テキストの別の行(「Step3: create SUMMARY CONNTENT」)は、別のクラスターに変換されている。出願人は、これらのクラスターの信頼性が境界ボックスを計算する一行のテキストを表すことを発見した。
【0027】
図2のブロック202の処理で、画像3のクラスターを決定する。換言すれば、クラスターは、画像3全体で識別される。クラスターを識別した後、その境界ボックスを計算する。本明細書で用いる「境界ボックス」という用語は、クラスターを囲む矩形の外周を有する最小面積の箱形の領域のことである。つまり、境界ボックスは、クラスターの画素を囲むできるだけ小さなボックスである。画像3で識別された各境界ボックスは、重なり合うことはない。
図14に、ブロック202の処理で2つのクラスターについて計算された例示的な境界ボックスの概略を示す。
【0028】
ブロック203の処理で、画像3ではなく画像2からすべての境界ボックスに亘る平均密度(AVE1)を計算する。画像2と画像3の両方が水平方向に圧縮されているが、画像3のみにクラスターの生成のための形態的膨張が施されており、このクラスターから境界ボックスが計算される。ブロック203の処理では、画像3から計算した境界ボックスに基づいてテキストの各行の平均密度を求めるために画像2を用いる。
図15に、AVE1を計算する際に画像2に設けられた境界ボックスを示す。
【0029】
AVE1は、画像2のすべての境界ボックスから足し合わせた複数の正規化画素値の合計を、画像2のすべての境界ボックスから足し合わせたすべての画素(黒色及び白色)の総数で割って計算することができる。他の平均法を用いてすべての境界ボックスのAVE1を計算することもできる。
【0030】
正規化画素値の合計を計算する例示的な処理は、以下の通りである。画素は、0から最大値(例えば、グレースケールの画素では最大値=255)までの値を取ることができる。各画素値は、その画素値を最大値で割り商を求めて正規化される。正規化画素値の合計は、すべての商の合計である。
【0031】
AVE1は、第1の平均密度の一例である。AVE1は、画像3ではなく画像2から演算される。AVE1は、水平方向に圧縮された画像である画像2に設けられた境界ボックスから生成される。
【0032】
ブロック204の処理で、境界ボックスが太字の単語を含んでいるかを判断するループが始まる。ループは最初の境界ボックスで始まり、すべての境界ボックスが処理されるまで後続の処理ブロックが繰り返される。このループは、平均密度(AVE1)を境界ボックスのそれぞれの密度と比較する処理の一例である。
【0033】
ブロック206の処理で、現行の境界ボックス内の画像2の部分の密度を計算する。この密度を局所ボックス密度と呼ぶ。局所ボックス密度は、画像2の現行の境界ボックスにおける正規化画素値の合計を、画像2の現行の境界ボックスにおけるすべての画素(黒色及び白色)の総数で割ったものとして計算される。他の平均法を用いて局所ボックス密度を計算することもできる。
【0034】
ブロック208の処理で、局所ボックス密度をAVE1と比較する。ブロック208の処理では、局所ボックス密度とAVE1の間の差を局所ボックス密度-AVE1として計算することができる。この差が閾値(Δ1)を越えない場合、ブロック208の処理結果はNoである(ブロック208:No)。この差が閾値を超える場合、ブロック208の処理結果はYesである(ブロック208:Yes)。
【0035】
局所ボックス密度がAVE1+Δ1より大きくない場合(ブロック208:No)、現行の境界ボックスは太字の単語を含まないと判断し、処理はブロック214に進む。ブロック214の処理で、処理すべき他の境界ボックスがあるかを確認する。無い場合(ブロック214:No)、処理は
図1に戻り、終了してもよい。Yesの場合(ブロック214:Yes)、次の境界ボックスを処理する。
【0036】
局所ボックス密度>AVE1+Δ1の場合(ブロック208:Yes)、ブロック210の処理で、現行の境界ボックスが太字の単語又は文字を含むと判断する。入力画像(画像0)の太字の領域を入力画像の他の領域と区別するタグで、出力画像(画像X)を、太字の単語又は文字を有するものとして符号化してもよい。太字の領域は、現行の境界ボックス内の区域に対応する。タグは、現行のページ番号、行番号、及び境界ボックスの座標を含んでもよい。
【0037】
太字の特定の単語又は文字を識別することにより処理は進む。しかし、現行の境界ボックスがアジア言語テキストを含むかどうかに応じて処理は異なる。
【0038】
ブロック211及びブロック212の処理で、文書の種類が非アジア言語テキスト又はアジア言語テキストとして識別されているかを確認する。
図1のブロック105で、文書の種類が不明に設定された場合、処理はブロック213に進む(ブロック211及びブロック212の処理の重要性は、下記の
図21に関連して明らかになる)。
【0039】
ブロック213の処理で、現行の境界ボックスがアジア言語テキストを含むか確認する。処理により、現行の境界ボックスに対応する画像領域が、上方区域及び/又は下方区域より大きい密度を有する水平方向の中央区域を含むかを確認してもよい。この目的に用いる画像は、画像0又は画像2であってもよい。より大きな密度を有する水平方向の中央区域が存在する場合、現行の境界ボックスがアジア言語テキストを含まないと判断する(ブロック213:No)。より大きい密度を有する水平方向の中央領域が存在しない場合、現行の境界ボックスはアジア言語テキストか、全部大文字のテキストを含む(ブロック213:Yes)。「全部大文字のテキスト」という文言は、すべて大文字、例えばa、b、cでなくA、B、Cを含むテキストのことをいう。
【0040】
図16Aに、現行の境界ボックスに対応することができる画像2の領域内の例示的なテキストを示す。現行の境界ボックスは、「Step3: create SUMMARY CONNTENT」という複数の単語を含み、これらは水平方向に圧縮されている。画像2の現行の境界ボックスにおける区域について、密度曲線が計算される。
図16Aに、境界ボックスの垂直方向に対応する垂直軸を有するグラフを示す。水平軸は密度に対応する。曲線上の各地点は、現行の境界ボックス内の同じ垂直位置にある画素の総計密度値を表す。現行の境界ボックス内の同じ垂直位置にあるすべての画素値を用いて、総計密度値を計算する。
【0041】
例えば、各総計密度値は、現行の境界ボックス内の同じ垂直位置にある画素値の平均であってもよい。画素は、0~最大値の値を有することができ、各総計密度値は、現行の境界ボックス内の同じ垂直位置にあるすべての画素値の平均に等しい。グレースケールの画素では、最大値は255になる場合がある。あるいは、総計密度値は、現行の境界ボックス内の同じ垂直位置にある画素値の合計になる場合がある。あるいは、画素値を正規化してもよい。各画素値において、正規化には、画素値を最大値で割って商を求めることが含まれる。次に、各総計密度値を、現行の境界ボックス内の同じ垂直位置に対応する商の合計として計算する。
【0042】
密度曲線は、急激な降下2、3、4、5、及び6を含む。境界ボックスの下方部にある、隣接し互いに間隔を置いた急激な降下、例えば降下2及び3は、下線を表すパルスピークに対応しているとみなされる。したがって、下線は、パルスピークが密度曲線内に存在する場合に識別される。
【0043】
中央の平坦部の両側にある急激な降下、例えば降下4及び5は、境界ボックスの上方及び下方の水平方向の区域よりも大きい密度を有する境界ボックスの中央区域に対応するものとみなされる。すなわち、より大きい密度を有する中央区域は、密度曲線の中央の平坦部の両側に急激な降下がある場合に識別される。
【0044】
この処理では、密度曲線に谷があるかを確認してもよい。つまり、この処理では、密度曲線上の少なくともN個の地点(例えば、N個の画素の位置)が、パルスピークと境界ボックスの中身の残りの間でゼロ又はゼロに近いかを確認してもよい。Nは1、5、10、又は他の数であってもよい。実際には、この処理により(例えばパルスピークで表される)下線が(例えば密度曲線の残りの部分で表される)テキストの中央区域から離れているかを確認する。
図16Aでは、密度曲線上のいくつかの地点はパルスピークと密度曲線の残りの部分との間でゼロに近く、したがって下線はテキストから離れている。
【0045】
下線が検出されると、下線がテキストから離れている場合には、ブロック213の処理で非アジア言語テキストが識別される。下線がテキストから離れていない場合、ブロック213での処理結果はYesであり、アジア言語テキストが識別されることを意味する。
【0046】
下線が検出されないと、より大きい密度の中央区域がなければブロック213の処理でアジア言語テキスト又は全部大文字のテキストが識別される。より大きい密度の中央区域がある場合、ブロック213での処理結果はNoであり、非アジア言語テキスト(アジア言語テキストや全部大文字のテキストではない)が識別されることを意味する。
【0047】
図16Aの例では、非アジア言語テキスト(アジア言語テキストや全部大文字のテキストではない)がブロック213の処理で識別される。この例の現行の境界ボックスは、画像0の複数の単語「create SUMMARY CONNTENT」を含み、これらの単語は水平方向に圧縮されている。SUMMARY CONNTENTには下線が引かれている。密度曲線では、谷が検出される。
【0048】
図16Bに、現行の境界ボックスに対応することができる画像0及び画像2の領域内の別の例示的テキストを示す。画像0及び画像2のこれらの領域には、下線は含まれない。また、上方及び下方の水平方向の区域よりも大きい密度を有する中央の水平方向の区域があるので、これらの領域は、アジア言語テキストを含まないと判断する(ブロック213:No)。中央の水平方向の区域を、
図16Aで考察した方法で識別してもよい。上方区域は、単語「knowledge」の上方の小部分、具体的には文字k、l、及びdの上部分を含む。下方区域は、単語「knowledge」の下方の小部分、具体的には文字gの下部分を含む。
【0049】
図17に、現行の境界ボックスに対応することができる画像0及び画像2の領域内におけるもう1つの例示的テキストを示す。画像0及び画像2のこれらの領域には、下線は含まれない。また、より大きい密度を有する中央の水平方向の区域はないので、これらの領域は、アジア言語テキスト又は全部大文字のテキストを含むと判断する(ブロック213:Yes)。全部大文字のテキストを含む現行の境界ボックス(例えば、
図5の複数の単語「MAJOR TECHNOLOGY」を含む境界ボックス)の画像0と画像
2の領域には、より大きな密度を有する中央領域がないと予測されるので、ブロック213の処理の結果はYesである。
【0050】
ブロック213での処理結果がNoである場合、処理は
図3に進む。
図3では、ブロック210の処理で(テキストの一行を表す)現行の境界ボックスが太文字を含み、アジア言語テキストを含まないことをすでに確認済みである。
【0051】
図18に示すように、
図3のブロック300の処理で、現行の境界ボックスの中央の水平方向の区域を画像0の領域から抽出して画像0Xを生成する。境界ボックスの上方及び下方の区域を画像0から取り除いて画像0Xを生成する。文字k、l、d、g、t、i、及びbの上方又は下方の小部分は切り取ってある。
【0052】
ブロック301の処理で、単語を分離する。互いに比較的隣接して配置された各文字群を単語として識別する。上方及び下方の区域を取り除いたので、単語で塞がっている領域を単語中央領域と呼ぶ。
図18に、画像0Xの一部において識別された2つの単語中央領域の例を示す。単語中央領域が及ぶ範囲は、切り取られた文字又は単語を囲むできるだけ小さい箱であってもよい。
【0053】
各境界ボックス内の単語は、テキスト要素の例である。単語中央領域は、テキスト要素領域の一例である。現行の境界ボックスは、多くのテキスト要素領域(単語中央領域)により分割され、テキスト要素領域は、現行の境界ボックスを完全には覆わない場合がある。例えば、単語間の間隔を単語中央領域から除外することで、ブロック302、ブロック306、及びブロック308における後続の副処理の有効性及び効率性を向上させることができる。
【0054】
ブロック302の処理で、現行の境界ボックスのすべての単語中央領域に亘る平均密度(AVE2)を計算する。現行の境界ボックスは、
図2のブロック204又はブロック216の処理で規定される。AVE2は、画像0Xの現行の境界ボックス中のすべての単語中央領域から足し合わせた正規化画素値の合計を、画像0Xの現行の境界ボックス中のすべての単語中央領域から足し合わせたすべての画素(黒色及び白色)の総数で割って計算することができる。他の平均法を用いてすべての単語中央領域に亘るAVE2を計算することもできる。上方区域及び下方区域が画像0Xにはないことを除き、画像0Xは画像0と同じである。
【0055】
ブロック302の処理のAVE2は、第2の平均密度の一例である。AVE2は、画像0Xから計算される。AVE2は、画像0Xである境界ボックスから生成される。画像0Xは、水平方向に圧縮された画像ではない。ブロック302の処理では、上方区域及び下方区域は、AVE2を計算する際に用いられない。
【0056】
ブロック304の処理で、単語が太字かを判断するループが始まる。ループは最初の単語中央領域で始まり、すべての単語中央領域が処理されるまで後続の処理ブロックが繰り返される。ループは、第2の平均密度(AVE2)を各テキスト要素領域(単語中央領域)の密度と比較する処理の一例である。
【0057】
ブロック306の処理で、現行の単語中央領域の密度を計算する。この密度を局所単語密度という。局所単語密度は、画像0Xの現行の単語中央領域における正規化画素値の合計を、画像0Xの現行の単語中央領域におけるすべての画素(黒色及び白色)の総数で割って計算することができる。他の平均法を用いて現行の単語中央領域を計算することもできる。
【0058】
ブロック308の処理で、局所単語密度をAVE2と比較する。ブロック308の処理では、局所単語密度とAVE2の間の差を局所単語密度-AVE2として計算することができる。差が閾値(Δ2)を超えない場合には、ブロック308の処理結果はNoである(ブロック308:No)。差が閾値を超える場合にはブロック308の処理結果はYesである(ブロック308:Yes)。
【0059】
局所単語密度がAVE2+Δ2よりも大きくない場合(ブロック308:No)、単語中央領域は太字の単語に対応しないと判断し、処理はブロック312に進む。局所単語密度>AVE2+Δ2である場合(ブロック308:Yes)、ブロック310の処理で、現行の単語中央領域は太字の単語に対応すると判断する。この判断の結果、単語の位置及び/又は内容を記憶装置14(
図24)に保存することができる。この位置は、ページ番号、行番号、及び/又はページ内の単語の座標であってもよい。例えば、位置及び/又は内容を記憶装置14の参照テーブルに保存してもよい。これに代えて、又はこれに加えて、出力画像(画像X)は、太文字を有するものとして入力画像(画像0)の太字領域を入力画像の他の領域と区別するタグで符号化してもよい。太字領域は、現行の単語中央領域内の単語に対応する。タグはページ番号、行番号、及び/又はページ内の単語の座標を含んでもよい。
【0060】
処理はブロック312に進む。ブロック312の処理で、処理すべき別の単語中央領域があるかを確認する。Yesの場合(ブロック312:Yes)、次の単語中央領域を処理する。そうでない場合(ブロック312:No)、処理は
図2のブロック214に戻る。ブロック214の処理で、処理すべき別の境界ボックスがあるかを確認する。無い場合(ブロック214:No)、処理は
図1に戻り、終了してもよい。Yesの場合(ブロック214:Yes)、次の境界ボックスを処理する。
【0061】
上記の
図3の処理は、現行の境界ボックスがアジア言語テキストを含まない場合に(ブロック213:No)実行される。次に説明する
図4の処理は、現行の境界ボックスがアジア言語テキスト又は全部大文字のテキストを含む場合に(ブロック213:Yes)実行される。
図2に示すように、現行の境界ボックスがアジア言語テキスト又は全部大文字のテキストを含む場合、処理はブロック213から
図4に進む。
【0062】
図4で(一行のテキストを表す)現行の境界ボックスが太文字を含み(ブロック210)、境界ボックスがアジア言語テキストを含む(ブロック213)ことをすでに確認済みである。出願人は、下線がアジア言語テキストの太文字の判断に悪影響を及ぼす可能性があることを発見しており、したがって、処理において下線を無視することで、処理の有効性及び効率性を向上させることができる。
【0063】
図19に、アジア言語テキストの一例を示す。図面の右側に、クラスターに対して境界ボックスを計算した画像3(ブロック200の水平方向の形態的膨張の結果)の一部を示す。図面の左側に、同じ境界ボックスに対応する画像0のアジア言語テキストを示す。
【0064】
図4のブロック400の処理で、現行の境界ボックスの画像0に水平方向の下線があるかを判断する。
図1のブロック104における処理結果を、この判断に用いることができる。あるいは、ブロック400で、別の下線判断アルゴリズムを用いることもできる。ブロック400では、現行の境界ボックス内に存在するかもしれない任意の下線を識別する。
【0065】
図20に示すように、ブロック401の処理で、ブロック400で識別したすべての下線を現行の境界ボックスの画像0から除去して画像0Yを生成する。また、文字を分離する。互いに比較的隣接して配置された各記号群が文字領域を規定する。
図20に、画像0Yの現行の境界ボックス内で規定された2つの例示的文字領域を示す。なお、画像0Yの文字領域には、画像0にあった下線(
図19)はない。文字領域が及ぶ範囲は、文字の記号を囲むできるだけ小さい箱であってもよい。
【0066】
各境界ボックスの文字は、テキスト要素の例である。文字領域は、テキスト要素領域の例である。現行の境界ボックスは、多くのテキスト要素領域(文字領域)により分割され、テキスト要素領域は、現行の境界ボックスを完全には覆わない場合がある。例えば、文字間の間隔を文字領域から除外することで、ブロック402、ブロック406、及びブロック408における後続の副処理の有効性及び効率性を向上させることができる。
【0067】
ブロック402の処理で、現行の境界ボックスのすべての文字領域に亘る平均密度(AVE2)を計算する。現行の境界ボックスは、
図2のブロック204又はブロック216の処理で規定される。AVE2は、画像0Yの現行の境界ボックス中のすべての文字領域から足し合わせた正規化画素値の合計を、画像0Yの現行の境界ボックス中のすべての文字領域から足し合わせたすべての画素(黒色及び白色)の総数で割って計算することができる。他の平均法を用いてすべての文字領域に亘るAVE2を計算することもできる。画像0の下線が画像0Yにないことを除き、画像0Yは画像0と同じである。
【0068】
ブロック402のAVE2は、第2の平均密度の一例である。AVE2は、画像0Yから計算される。AVE2は、画像0Yである境界ボックスから生成される。画像0Yは、水平方向に圧縮された画像ではない。また、ブロック400で水平方向の下線を除去したので、下線の画素は、ブロック402でAVE2を計算する際には含まれない。
【0069】
ブロック404の処理で、文字が太字かを判断するループが始まる。ループは最初の文字領域で始まり、すべての文字領域が処理されるまで後続の処理ブロックが繰り返される。ループは、第2の平均密度(AVE2)を各テキスト要素領域(文字領域)の密度と比較する処理の一例である。
【0070】
ブロック406の処理で、現行の文字領域の密度を計算する。この密度を局所文字密度という。局所文字密度は、画像0Yの現行の文字領域における正規化画素値の合計を、画像0Yの現行の文字領域におけるすべての画素(黒色及び白色)の総数で割って計算することができる。他の平均法を用いて局所文字密度を計算することもできる。
【0071】
ブロック408の処理で、局所文字密度をAVE2と比較する。ブロック408の処理では、局所文字密度とAVE2の間の差を局所文字密度-AVE2として計算することができる。差が閾値(Δ2)を超えない場合には、ブロック408の処理結果はNoである(ブロック408:No)。差が閾値を超える場合には、ブロック408の処理結果はYesである(ブロック408:Yes)。
【0072】
局所文字密度がAVE2+Δ2よりも大きくない場合(ブロック408:No)、文字領域は太文字に対応しないと判断し、処理はブロック412に進む。ブロック408のΔ2の値は、ブロック308のΔ2の値と同じであってもよいし、異なっていてもよい。
【0073】
局所文字密度>AVE2+Δ2である場合(ブロック408:Yes)、ブロック410の処理で、現行の文字領域が太文字に対応すると判断する。この判断の結果、文字の位置及び/又は内容を記憶装置14(
図24)に保存することができる。この位置は、ページ番号、行番号、及び/又はページ内の文字の座標であってもよい。例えば、位置及び/又は内容は、記憶装置14の参照テーブルに保存してもよい。これに代えて、又はこれに加えて、出力画像(画像X)は、太文字を有するものとして入力画像(画像0)の太字領域を入力画像の他の領域と区別するタグで符号化してもよい。太字領域は、現行の文字領域内の文字に対応する。タグは、ページ番号、行番号、及び/又はページ内の文字の座標を含んでもよい。
【0074】
処理はブロック412に進む。ブロック412の処理で、処理すべき別の文字領域があるかを確認する。Yesの場合(ブロック412:Yes)、次の文字領域を処理する。そうでない場合(ブロック412:No)、処理は
図2のブロック214に戻る。ブロック214の処理で、処理すべき別の境界ボックスがあるかを確認する。Yesの場合(ブロック214:Yes)、次の境界ボックスを処理する。そうでない場合(ブロック214:No)、処理は
図1に戻り、終了してもよい。
【0075】
終了せずに、太字テキストの箇所(
図3で識別された太字の単語又は
図4で識別された太文字)を入力画像(画像0)に符号化することで出力画像(画像X)を生成してもよい。出力画像は、電子文書の一部を構成してもよい。出力画像又は電子文書を記憶装置14(
図24)に保存し、及び/又はネットワークI/F22経由でネットワーク24に送信してもよい。
【0076】
図1の方法は、以下のように要約することができる。境界ボックスは、水平方向の圧縮(ブロック100)及びその後の水平方向の形態的膨張(ブロック200)から生じるクラスターに基づいており、クラスターに基づく境界ボックスは、
図2の処理に従って個々に処理され、境界ボックスのいずれかが太字の単語又は文字を含むかを判断する。局所ボックス密度とすべての境界ボックスに亘る平均密度(AVE1)の間の差が閾値(Δ1)を超えない場合に、現行の境界ボックスは除去される。閾値を超える場合、境界ボックス内の各単語(文字群)を
図3の処理に従って評価して単語が太字かを判断し、あるいは境界ボックス内のアジア言語テキストの各文字を
図4の処理に従って評価して文字が太字かを判断する。
図3及び
図4の処理は、水平方向に圧縮されなかった画像(画像0X及び画像0Y)に基づく。
【0077】
図21に、電子文書内の強調テキストを識別する別の例示的な方法を示す。
図21の方法は、以下のように要約することができる。下線がないか、アジア言語テキストがある場合、強調テキストを識別する方法は、
図2~
図4のように進行する。そうでない場合、方法は、
図22及び
図23の処理に従って進み、この処理は、水平方向に圧縮された画像を密度計算に用いる。水平方向に圧縮した画像を用いると、
図2及び
図3の処理と比べて演算資源を節約し、有効性を向上させ、処理時間を短くすることができる。
図22では、局所ボックス密度とすべての境界ボックスに亘る平均密度との間の差が閾値よりも大きくない場合、現行の境界ボックスを除去する。平均密度は、水平方向の圧縮したテキストから計算される。除去されていない境界ボックスをさらに処理し、水平方向に圧縮したテキストに基づいて
図24の処理に従って太字の単語を探す。
【0078】
図21に再び戻り、ブロック2100の処理で、入力テキスト画像(画像0)を水平方向に圧縮して画像1を生成する。ブロック100の水平方向の圧縮の説明がここでは妥当する。ブロック2102の処理で、ごま塩ノイズを画像1から除去して画像2を生成する。ブロック102のノイズ除去の説明がここでは妥当する。ブロック2104で、水平方向の下線検出を画像2に実行する。ブロック104及び
図16Aの下線検出の説明がここでは妥当する。
【0079】
ブロック2106の処理で、下線がブロック2104で検出されたかを確認する。下線が検出された場合、下線に関連する単語又は文字の位置及び/又は内容を記憶装置14(
図24)に保存してもよい。この位置は、ページ番号、行番号、及び/又は下線に関連する単語もしくは文字のページの座標であってもよい。例えば、位置及び/又は内容は、記憶装置14の参照テーブルに保存してもよい。これに代えて、又はこれに加えて、出力画像(画像X)は、下線を引いた単語又は文字を有するものとして入力画像(画像0)の下線領域を入力画像の他の領域と区別するタグで符号化してもよい。タグは、ページ番号、行番号、及び/又は下線に関連する単語又は文字のページの座標を含んでもよい。
【0080】
下線が検出されなかった場合(ブロック2106:No)、処理は
図2に戻る。下線が検出された場合(ブロック2106:Yes)、ブロック2108の処理でアジア言語テキストがあるかを確認する。ブロック213、
図16A、
図16B、及び
図17のアジア言語テキスト判断の説明がここでは妥当する。アジア言語テキストがある場合、ブロック2111の処理で文書の種類をアジア言語テキストに設定し、処理は
図2に戻る。そうでなければ、ブロック2109で文書の種類を非アジア言語テキストに設定し、処理はブロック2110に進む。
【0081】
ブロック2110の処理で、下線を画像2から除去して画像4を生成し、処理は
図22に進む。なお、画像4はブロック2100の処理から派生したので、水平方向に圧縮されたテキストを含む。また、ブロック2108の処理の結果、画像4はアジア言語テキストを含まない。
【0082】
ブロック2200の処理で、水平方向の形態的膨張を画像4に実行して画像5を生成する。画像5は、水平方向に拡張した画像の一例である。
図2のブロック200における水平方向の形態的膨張の説明がここでは妥当する。画像5は、画像4の水平方向の形態的膨張から生じたクラスターを含む。クラスターにより、それぞれが一行のテキストに対応する境界ボックスの正確な計算が容易になる。
【0083】
ブロック2202の処理で、画像5のクラスターを判定する。言い換えれば、画像5全体でクラスターを識別する。クラスターを識別した後、その境界ボックスを計算する。画像5で識別された境界ボックスが重なり合うことはない。
【0084】
ブロック2203の処理で、中央の水平方向の区域を画像4の各境界ボックスから抽出する。
図3のブロック300における中央区域抽出の説明がここでは妥当する。画像4及び画像5の両方が水平方向に圧縮されるが、画像5のみに形態的膨張を実行して(それぞれが一行のテキストを表す)複数のクラスターを生成する。これらのクラスターから境界ボックスが計算される。ここでブロック2203の処理で、計算した境界ボックスを画像4に当てはめ、複数行の水平方向に圧縮されたテキストを含む中央区域を抽出する。水平方向に圧縮されたテキストから文字の上方と下方の小部分を切り取ってある。
【0085】
ブロック2204の処理で、すべての境界ボックス中央区域に亘る平均密度(AVE1)を計算する。境界ボックスの上方区域及び下方区域の画素は計算に含まれない。AVE1は、画像4のすべての境界ボックス中央区域から足し合わせた正規化画素値の合計を、画像4のすべての境界ボックス中央区域から足し合わせたすべての画素(黒色及び白色)の総数で割って計算することができる。他の平均法を用いてすべての境界ボックス中央区域に亘るAVE1を計算することもできる。
【0086】
AVE1は、第1の平均密度の一例である。AVE1は画像4から計算される。AVE1は、画像4である境界ボックスから計算される。画像4は、水平方向に圧縮された画像である。また、ブロック2110の処理における水平方向の下線の除去及び/又はブロック2203の処理における下方区域の除去により、ブロック2104で検出した下線は、ブロック2204の処理でAVE1を計算する際には用いられない。
【0087】
ブロック2206の処理で、境界ボックス中央区域が太字の単語を含むかを判断するループが始まる。ループは最初の境界ボックス中央区域で始まり、すべての境界ボックス中央区域が処理されるまで後続の処理ブロックが繰り返される。このループは、平均密度(AVE1)を境界ボックスのそれぞれの密度と比較する処理の一例である。
【0088】
ブロック2208の処理で、現行の境界ボックス中央区域内の画像4の部分の密度を計算する。この密度を局所ボックス中央区域密度という。局所ボックス中央区域密度は、画像4の現行の境界ボックスの中央区域内の正規化画素値の合計を、画像4の現行の境界ボックスの中央区域内のすべての画素(黒色及び白色)の総数で割って計算することができる。他の平均法を用いて局所ボックス中央区域密度を計算することもできる。
【0089】
ブロック2210のAVE1は、第1の平均密度の別の例である。局所ボックス中央区域密度及びAVE1の両方は、上方区域及び下方区域からではなく境界ボックスの中央区域から計算する。上方区域及び下方区域は、ブロック2210の処理でAVE1を計算する際には用いられない。これらは、下方区域、中央区域、及び上方区域から計算される
図2の局所ボックス密度及びAVE1とは異なる。
図22のように中央区域に計算を限定することで、演算資源を節約し、有効性を向上させ、処理時間を短くすることができる。
【0090】
ブロック2210の処理で、局所ボックス中央区域密度をAVE1と比較する。ブロック2210の処理では、局所ボックス中央区域密度間の差を局所ボックス中央区域密度-AVE1として計算することができる。差が閾値(Δ1)を超えない場合、ブロック2210の処理結果はNoである(ブロック2210:No)。差が閾値を超える場合、ブロック2210の処理結果はYesである(ブロック2210:Yes)。
【0091】
局所ボックス中央区域密度がAVE1+Δ1よりも大きくない場合(ブロック2210:No)、現行の境界ボックスは太字の単語を含まないと判断し、処理はブロック2212に進む。ブロック2210のΔ1の値は、
図2のブロック208のΔ1の値と同じか異なる。ブロック2212の処理で、処理すべき別の境界ボックスがあるかを確認する。無い場合(ブロック2212:No)、処理は
図21に戻り、終了してもよい。Yesの場合(ブロック2212:Yes)、次の境界ボックスを処理する。
【0092】
局所ボックス中央区域密度>AVE1+Δ1である場合(ブロック2210:Yes)、処理は
図23に進み、現行の境界ボックス内の個々の単語を評価する。
【0093】
図23のブロック2300の処理で、単語を分離する。画像4で互いに比較的隣接して配置された各文字群を単語として識別する。単語で塞がれた領域を単語中央領域という。上方区域及び下方区域が含まれていないからである。単語中央領域が及ぶ範囲は境界ボックスの中央区域内の水平方向に圧縮された文字部分を囲むできるだけ小さい箱であってもよい。
【0094】
各境界ボックス内の水平方向に圧縮された単語は、テキスト要素の例である。単語中央領域は、テキスト要素領域の一例である。現行の境界ボックスは、多くのテキスト要素領域(単語中央領域)により分割され、現行の境界ボックスを完全には覆わない場合がある。例えば、単語間の間隔を単語中央領域から除外することで、ブロック2301、ブロック2306、及びブロック2308の副処理の有効性及び効率性を向上させることができる。
【0095】
ブロック2301で、平均密度(AVE2)を現行の境界ボックスのすべての単語中央領域に亘って計算する。現行の境界ボックスは、
図22のブロック2206又はブロック2214の処理で規定される。AVE2は、画像4の現行の境界ボックス内のすべての単語中央領域から足し合わせた正規化画素値の合計を、画像4の現行の境界ボックス内のすべての単語中央領域から足し合わせたすべての画素(黒色及び白色)の総数で割って計算することができる。他の平均法を用いてAVE2を計算することもできる。
【0096】
ブロック2301のAVE2は、第2の平均密度の一例である。AVE2は、画像4から計算される。AVE2は、画像4である境界ボックスから計算される。画像4は、水平方向に圧縮された画像である。また、ブロック2100の処理で水平方向の下線を除去し、及び/又はブロック2203で下方区域を除去したので、下線の画素は、ブロック2301の処理でAVE2を計算する際には含まれない。
【0097】
ブロック2302で、単語が太字かを判断するループが始まる。ループは第1の単語中央領域で始まり、すべての単語中央領域が処理されるまで後続の処理ブロックが繰り返される。このループは、第2の平均密度(AVE2)を各テキスト要素領域(単語中央領域)の密度と比較する処理の一例である。
【0098】
ブロック2306の処理で、現行の単語中央領域の密度を計算する。この密度を局所単語密度という。局所単語密度は、画像4の現行の単語中央領域内の正規化画素値の合計を、画像4の現行の単語中央領域内のすべての画素(黒色及び白色)の総数で割って計算することができる。他の平均法を用いて局所単語密度を計算することもできる。
【0099】
局所単語密度及び平均密度(AVE2)は、水平方向に圧縮された画像、つまり画像4から計算される。これらは、水平方向に圧縮された画像から計算されたものではない、
図3の局所単語密度及びAVE2とは異なる。
図23のように水平方向に圧縮された画像から計算することで、演算資源を節約し、有効性を向上させ、処理時間を短くすることができる。
【0100】
ブロック2308の処理で、局所単語密度をAVE2と比較する。ブロック2308の処理では、局所単語密度とAVE2の間の差を局所単語密度-AVE2として計算することができる。差が閾値(Δ2)を超えない場合、ブロック2308の処理結果はNoである(ブロック2308:No)。差が閾値を超える場合、ブロック2308の処理結果はYesである(ブロック2308:Yes)。
【0101】
局所単語密度がAVE2+Δ2よりも大きくない場合(ブロック2308:No)、単語中央領域は太字の単語に対応しないと判断し、処理はブロック2312に進む。ブロック2308の処理のΔ2の値は、ブロック308及びブロック408の処理のΔ2の値と同じか異なる場合がある。
【0102】
局所単語密度>AVE2+Δ2である場合(ブロック2308:Yes)、ブロック2310の処理で、現行の単語中央領域は太字の単語に対応すると判断する。この判断の結果、単語の位置及び/又は内容を記憶装置14(
図24)に保存することができる。位置は、ページ番号、行番号及び/又は太字の単語のページ内の座標を含んでもよい。例えば、位置及び/又は内容を記憶装置14の参照テーブルに保存してもよい。これに代えて、又はこれに加えて、出力画像(画像X)は、太字の単語を有するものとして入力画像(画像0)の太字の領域を入力画像の他の領域と区別するタグで符号化してもよい。太字の領域は、現行の単語中央領域内の単語に対応する。タグは、ページ番号、行番号、及び/又は太字の単語のページ内の座標を含んでもよい。
【0103】
処理はブロック2312に進み、処理すべき別の単語中央領域があるかを確認する。Yesの場合(ブロック2312:Yes)、次の単語中央領域を処理する。そうでない場合(ブロック2312:No)、処理は
図22のブロック2212に戻る。ブロック2212の処理で、処理すべき別の境界ボックスがあるかを確認する。Yesの場合(ブロック2212:Yes)、次の境界ボックスを処理する。そうでない場合(ブロック2212:No)、処理は
図21に戻り、終了してもよい。
【0104】
終了せずに、太字のテキスト(太字の文字又は単語)の位置を入力画像(画像0)に符号化して出力画像(画像X)を生成してもよい。出力画像は、電子文書の一部を構成してもよい。出力画像又は電子文書を記憶装置14(
図24)に保存し、及び/又はネットワークI/F22経由でネットワーク24に送信してもよい。
【0105】
図24に、上記の処理を行うように構成されている例示的なシステム10を示す。システム10は、サーバー、コンピューターワークステーション、パーソナルコンピューター、ラップトップコンピューター、タブレット、スマートフォン、ファックス機、印刷機、プリンターとスキャナーを組み合わせた機能を有する多機能周辺装置(multi-functional peripheral、MFP)、又は1つ以上のコンピュータープロセッサー及びメモリーを含む他の種類の機器であってもよい。
【0106】
システム10は、1つ以上のコンピュータープロセッサー12(CPU)、1つ以上のコンピューター記憶装置14、1つ以上の入力装置16、及び1つ以上の出力装置18を含む。1つ以上のコンピュータープロセッサー12は、集合的にプロセッサー12と称する。プロセッサー12は、命令を実行するように構成されている。プロセッサー12は、命令を実行する集積回路を含んでもよい。命令は、上記の処理を行う1つ以上のソフトウェアモジュールの形で具現化してもよい。1つ以上のソフトウェアモジュールは、集合的に画像解析プログラム20と称する。
【0107】
1つ以上のコンピューター記憶装置14は、集合的に記憶装置14と称する。記憶装置14は、ランダムアクセスメモリー(RAM)モジュール、読み取り専用メモリー(ROM)モジュール、及び他の電子装置のいずれか1つ又はこれらの組み合わせを含む。記憶装置14は、大容量記憶装置、例えば光学式ドライブ、磁気装置、又はソリッドステートフラッシュドライブを含んでもよい。記憶装置14は、画像解析プログラム20を格納する非一時的コンピューター可読媒体を含む。
【0108】
1つ以上の入力装置16は、集合的に入力装置16と称する。入力装置16により使用者がデータを入力してシステム10とやり取りすることができる。入力装置16は、ボタン付きキーボード、タッチ感応スクリーン、マウス、電子ペン、及び他の種類の装置のうちの1つ以上を含んでもよい。入力装置16を用いて入力画像(画像0)を生成してもよい。入力装置16は、画像0を物理的文書ページから生成するようになっている光学式センサ、例えばCCDセンサを含んでもよい。
【0109】
1つ以上の出力装置18は、集合的に出力装置18と称する。出力装置18は、液晶表示装置、プロジェクター、又は他の種類の画像表示装置を含んでもよい。出力装置18を用いて上記の処理の入力画像(画像0)又は出力画像を表示してもよい。出力装置18は、入力画像を紙に印刷するように構成されている静電プリンターを含んでもよい。
【0110】
システム10は、ネットワーク24、例えばローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、インターネット、及び電話通信事業者経由で他の機械とシステム10が通信できるようになっているネットワークインタフェース(I/F)22を含む。ネットワークI/F22は、ネットワーク24経由でのアナログ通信又はデジタル通信ができる回路を含んでもよい。例えば、ネットワークI/F22は、入力画像(画像0)を受信するようになっていてもよい。ネットワークI/F22は、上記処理の出力画像を送信するようになっていてもよい。システム10の上記の構成要素は、通信バス26を介して互いに通信可能に結合されている。
【0111】
本発明のいくつかの具体的な形態を図示及び説明しているが、本発明の範囲を逸脱することなく様々な変更を行うことができることも明らかである。本発明の様々な形態を構成するために、開示した実施形態の特定の特徴及び側面の様々な組み合わせ又は部分的組み合わせを互いに結合させ、又は置き換える可能性があることも考えられる。したがって、添付の特許請求の範囲による場合を除き、本発明を限定することを意図していない。