(57)【要約】【課題】レイアウト解析方法、読書補助装置、回路及び媒体を開示する。【解決手段】該レイアウト解析方法は、画像における１つ又は複数の文字行の座標情報を取得するステップと、データ構造における該１つ又は複数の文字行の座標情報に対応する領域において文字データを設定し、該画像に対応するレイアウトモデルを生成するステップであって、該文字データは文字の存在を示すデータを含む、ステップと、生成されたレイアウトモデルを走査して該レイアウトモデルにおける前記文字データを読み取り、読み取られた該文字データの該レイアウトモデルにおける相対位置関係に基づいて、該レイアウトモデルに対して段落分けを行うステップと、を含む。【選択図】図１
2020191056.tif 000002
【特許請求の範囲】
【請求項１】
画像における１つ又は複数の文字行の座標情報を取得するステップと、
データ構造における前記１つ又は複数の文字行の座標情報に対応する領域において文字データを設定し、前記画像に対応するレイアウトモデルを生成するステップであって、前記文字データは文字の存在を示すデータを含む、ステップと、
生成されたレイアウトモデルを走査して前記レイアウトモデルにおける前記文字データを読み取り、読み取られた前記文字データの前記レイアウトモデルにおける相対位置関係に基づいて、前記レイアウトモデルに対して段落分けを行うステップと、を含む、レイアウト解析方法。
【請求項２】
画像における１つ又は複数の文字行の座標情報を取得するステップは、
前記画像に対して文字認識を行い、各文字の座標情報を取得するステップと、
隣接する文字の間隔が間隔閾値よりも小さい文字のシーケンスを文字行とするステップと、
各文字行を含む矩形それぞれの座標情報を、前記１つ又は複数の文字行それぞれの座標情報として取得するステップと、を含む、請求項１に記載のレイアウト解析方法。
【請求項３】
前記１つ又は複数の文字行の座標情報に対応する領域は、各文字行の座標情報により決定された領域と、該文字行の座標情報から垂直方向に所定の距離だけ拡張された領域とを含む、請求項１に記載のレイアウト解析方法。
【請求項４】
前記レイアウトモデルに対して段落分けを行うステップは、
隣接する前の走査行に、現在の走査行における文字データシーケンスとの水平方向の重なり率が重なり率閾値よりも大きい文字データシーケンスが存在しない場合、前記現在の走査行における該文字データシーケンスが新しい段落に属すると決定するステップ、を含む、請求項１に記載のレイアウト解析方法。
【請求項５】
前記文字データは、文字行の高さを示すデータを含み、
前記レイアウトモデルに対して段落分けを行うステップは、
現在の走査行における文字データシーケンスの文字データの値と、隣接する前の走査行における文字データシーケンスの文字データの値との差が高さの差の閾値よりも大きい場合、前記現在の走査行における該文字データシーケンスが新しい段落に属すると決定するステップ、を含む、請求項１に記載のレイアウト解析方法。
【請求項６】
前記レイアウトモデルに対して段落分けを行うステップは、
現在の走査行における文字データシーケンスと、隣接する前の走査行における複数の文字データシーケンスとの水平方向の重なり率が何れも重なり率閾値よりも大きい場合、前記現在の走査行における該文字データシーケンスが新しい段落に属すると決定するステップ、を含む、請求項１に記載のレイアウト解析方法。
【請求項７】
前記レイアウトモデルに対して段落分けを行うステップは、
現在の走査行における複数の文字データシーケンスと、隣接する前の走査行における同一の文字データシーケンスとの水平方向の重なり率が何れも重なり率閾値よりも大きい場合、前記現在の走査行における前記複数の文字データシーケンスがそれぞれ新しい段落に属すると決定するステップ、を含む、請求項１に記載のレイアウト解析方法。
【請求項８】
前記現在の走査行における文字データシーケンスが新しい段落に属すると決定するステップは、
前記現在の走査行における該文字データシーケンスの座標情報を前記新しい段落の座標情報として設定するステップ、を含む、請求項４乃至７の何れかに記載のレイアウト解析方法。
【請求項９】
前記レイアウトモデルに対して段落分けを行うステップにおいて、現在の走査行における文字データシーケンスを、隣接する前の走査行における文字データシーケンスが属する段落に分ける必要条件は、
前記現在の走査行における文字データシーケンスと前記隣接する前の走査行における文字データシーケンスとの水平方向の重なり率が重なり率閾値よりも大きいことを含む、請求項１に記載のレイアウト解析方法。
【請求項１０】
前記文字データは、文字行の高さを示すデータを含み、
前記レイアウトモデルに対して段落分けを行うステップにおいて、現在の走査行における文字データシーケンスを、隣接する前の走査行における文字データシーケンスが属する段落に分ける必要条件は、
現在の走査行における文字データシーケンスの文字データの値と、隣接する前の走査行における文字データシーケンスの文字データの値との差が高さの差の閾値以下であることを含む、請求項１に記載のレイアウト解析方法。
【請求項１１】
現在の走査行における文字データシーケンスを、隣接する前の走査行における文字データシーケンスが属する段落に分けることは、
現在の前記段落及び前記現在の走査行における文字データシーケンス両方を含むことが可能な最小の矩形の座標情報に基づいて、前記段落の現在の座標情報を更新することを含む、請求項９又は１０に記載のレイアウト解析方法。
【請求項１２】
前記レイアウトモデルに対して段落分けを行うステップは、
段落における全ての文字データシーケンスを含むことが可能な最小の矩形の座標情報に基づいて、該段落の座標情報を決定するステップ、をさらに含む、請求項９又は１０に記載のレイアウト解析方法。
【請求項１３】
前記レイアウトモデルにおける段落分けにより取得された各段落の座標情報を前記画像にマッピングし、前記画像における段落分けを取得するステップ、をさらに含む、請求項１に記載のレイアウト解析方法。
【請求項１４】
請求項１乃至１３の何れかに記載のレイアウト解析方法のステップを実行する回路部、を含むチップ回路。
【請求項１５】
画像を取得するセンサと、
請求項１４に記載のチップ回路と、
音声データを出力する音声出力装置と、を含み、
前記チップ回路は、
前記画像に対して文字認識を行い、文字データを取得する回路部と、
段落分けの結果に基づいて、各段落における文字データを前記音声データに変換する回路部と、をさらに含む、読書補助装置。
【請求項１６】
処理装置と、
命令を含むプログラムが記憶されている記憶装置と、を含み、
前記命令が前記処理装置により実行される際に、前記処理装置に請求項１乃至１３の何れかに記載のレイアウト解析方法を実行させる、電子機器。
【請求項１７】
前記プログラムは、
前記処理装置により実行される際に、段落分けの結果に基づいて各段落における文字データを音声データに変換する命令、をさらに含む、請求項１６に記載の電子機器。
【請求項１８】
命令を含むプログラムが記憶されているコンピュータ読み取り可能な記憶媒体であって、
前記命令が電子機器の処理装置により実行される際に、前記電子機器に請求項１乃至１３の何れかに記載のレイアウト解析方法を実行させる、記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、データ処理の分野に関し、特にレイアウト解析方法、読書補助装置、電子機器、並びにその対応するチップ回路及びコンピュータ読み取り可能な記憶媒体に関する。
【背景技術】
【０００２】
従来技術には、画像に対してレイアウト解析を行い、例えば画像における文字に対して段落分けを行って複数の段落を取得し、取得された段落を用いて後続の処理を行う技術がある。このようなレイアウト技術は、電子書籍の生成やオーディオブックの生成などに用いられてもよい。従来技術におけるレイアウト解析技術は、主に文字の画像データ又は文字の意味情報に依存し、画像処理、クラスタリングアルゴリズム又は意味解析アルゴリズムなどの技術を用いて画像における文字を複数の段落に分ける。このような技術は、通常アルゴリズムが複雑であり、計算量が多い。
【０００３】
この部分で説明されている方法は、必ずしも以前に構想、或いは採用されている方法ではない。他の説明がない限り、この部分で説明されている方法がこの部分に含まれているという理由だけで先行技術であると見なされるべきではない。同様に、他の説明がない限り、この部分で言及されている課題が先行技術において認識されていると見なされるべきではない。
【発明の概要】
【０００４】
本開示の１つの態様では、画像における１つ又は複数の文字行の座標情報を取得するステップと、データ構造における前記１つ又は複数の文字行の座標情報に対応する領域において文字データを設定し、前記画像に対応するレイアウトモデルを生成するステップであって、前記文字データは文字の存在を示すデータを含む、ステップと、生成されたレイアウトモデルを走査して前記レイアウトモデルにおける前記文字データを読み取り、読み取られた前記文字データの前記レイアウトモデルにおける相対位置関係に基づいて、前記レイアウトモデルに対して段落分けを行うステップと、を含む、レイアウト解析方法を提供する。
【０００５】
本開示のもう１つの態様では、本開示に記載のレイアウト解析方法のステップを実行する回路部、を含むチップ回路を提供する。
【０００６】
本開示のもう１つの態様では、画像を取得するセンサと、上記のチップ回路と、音声データを出力する音声出力装置と、を含み、前記チップ回路は、前記画像に対して文字認識を行い、文字データを取得する回路部と、段落分けの結果に基づいて、各段落における文字データを前記音声データに変換する回路部と、をさらに含む、読書補助装置を提供する。
【０００７】
本開示のもう１つの態様では、処理装置と、命令を含むプログラムが記憶されている記憶装置と、を含み、前記命令が前記処理装置により実行される際に、前記処理装置に本開示に記載のレイアウト解析方法を実行させる、電子機器を提供する。
【０００８】
本開示のもう１つの態様では、命令を含むプログラムが記憶されているコンピュータ読み取り可能な記憶媒体であって、前記命令が電子機器の処理装置により実行される際に、前記電子機器に本開示に記載のレイアウト解析方法を実行させる、記憶媒体を提供する。
【０００９】
以下で図面を参照しながら例示的な実施例を説明することにより、本開示のより多くの特徴及び利点は明らかになる。
【図面の簡単な説明】
【００１０】
図面は実施例を例示し、明細書の一部を構成するものであり、図面及び明細書の文言の説明を参照しながら実施例の例示的な態様を説明する。示される実施例は単なる例示のためのものであり、特許請求の範囲を制限するものではない。全ての図面では、同一の符号は類似の要素を示しているが、必ずしも同一の要素ではない。
【図１】本開示の例示的な実施例に係るレイアウト解析方法を示すフローチャートである。
【図２】本開示の例示的な実施例に係る文字行を含む画像及びそのレイアウトモデルの一例を示す模式図である。
【図３】本開示の例示的な実施例に係る文字行の座標情報の取得方法の一例を示すフローチャートである。
【図４】本開示の例示的な実施例に係るレイアウトモデルの生成方法の一例を示すフローチャートである。
【図５】本開示の例示的な実施例に係るレイアウトモデルのデータ構造における文字行の座標情報に対応する領域の一例を示す模式図である。
【図６】本開示の例示的な実施例に係るレイアウトモデルを走査して段落分けを行う方法の一例を示すフローチャートである。
【図７】本開示の例示的な実施例に係る段落分けのレイアウトモデルの一例を示す模式図である。
【図８】本開示の例示的な実施例に係る２つの文字データシーケンスの重なり率の計算を示す模式図である。
【図９（ａ）】図９（ａ）は本開示の例示的な実施例に係る段落分けのレイアウトモデルの一例を示す模式図である。
【図９（ｂ）】図９（ｂ）は本開示の例示的な実施例に係る段落分けのレイアウトモデルの一例を示す模式図である。
【図１０】本開示の例示的な実施例に係る段落座標情報の更新処理を示す模式図である。
【図１１】本開示の例示的な実施例に係る読書補助装置の構成を示すブロック図である。
【図１２】例示的な実施例に適用可能なコンピュータ装置の構成の一例を示すブロック図である。
【発明を実施するための形態】
【００１１】
本開示では、他の説明がない限り、様々な要素を説明するための「第１」、「第２」などの用語は、これらの要素の位置関係、時間的関係又は重要性の関係を限定するものではなく、単に１つの素子と他の素子とを区別するために用いられる。幾つかの例では、第１要素及び第２要素は、該要素の同一の例を表してもよいし、場合によって、文脈上の説明に基づいて、異なる例を表してもよい。
【００１２】
本開示において様々な実施例を説明するために用いられる用語は、単なる特定の例を説明するものであり、限定するものではない。文脈が明らかに他のことを示さない限り、要素の数を特に限定しない場合、該要素は１つでもよいし、複数であってもよい。また、本開示で用いられる用語「及び／又は」は、列挙された項目の何れか又は全ての可能な組み合わせを含む。
【００１３】
本開示では、画像について、「水平」とは文字行と実質的に平行な（例えば夾角は４５度未満である）画像のエッジの方向を意味し、「垂直」とは「平行」に垂直な画像の他のエッジの方向を意味する。レイアウトモデルについて、「水平」とはレイアウトモデルのデータ構造の行方向を意味し、画像の「水平」に対応し、「垂直」とはレイアウトモデルのデータ構造の列方向を意味し、画像の「垂直」に対応する。
【００１４】
以下の本開示の説明は、主にテキスト行が読者に対して実質的に左右方向に延びること（即ち横書きの読み物）を前提としているが、本開示の態様はこれに限定されず、テキスト行が読者に対して実質的に上下方向に延びること（即ち縦書きの読み物）にも適用されてもよく、即ち本開示のアルゴリズムは縦書きの読み物にも適用されてもよい。テキスト行が実質的に上下方向に延びる場合は、本開示の水平方向は実質的な上下方向を意味してもよく、垂直方向は実質的な左右方向を意味してもよい。言い換えれば、本開示の「水平」、「垂直」等の用語は絶対的な意味を持つものではなく、互いに垂直な方向であればよい。文字行が実質的な上下方向である場合は、本開示における「上下」と「左右」の方向を入れ替えてもよい。
【００１５】
書籍や雑誌などの読み物は通常特定のレイアウトを有し、例えば読み物の内容は複数の段落（例えば上下の段落及び左右の欄などを含む）に分けられている。人間はこのような読み物を読む際に、視野における画像を視覚的に取り込み、脳により画像における段落を認識して段落における文字を読む。一方、機械はこのような読み物を「読む」際に、正しい段落順序に従って読み物における文字を「読む」ために、画像における文字に対して文字認識を行うと共に、特定のアルゴリズムによりこれらの文字に対して段落分けを行う必要がある。例えば、紙の本を電子書籍に変換するアプリケーション、又は画像における文字を音声信号に変換して該音声信号を出力するアプリケーションでは、このような段落分けの技術を使用する場合がある。本開示では、「段落分け」とは、画像における文字又はレイアウトにおける文字データを複数の段落に分けることを意味する。上下の段落の分けは段落の分割と称されてもよく、左右の段落の分けは欄の分割と称されてもよい。
【００１６】
本開示は、文字画像に対する直接の複雑な画像処理を回避し、意味解析を行う必要がなく、文字を含む画像を模擬画像における文字分布を表すより簡単な構造を有するレイアウトモデルに変換する段落分け方法を提供し、該レイアウトモデルに含まれるデータは、例えば意味内容を含まず、文字の所在を示す簡単なデータのみを含んでもよく、該レイアウトモデルにおけるデータに対して位置解析を行うことで段落分けを行うことができる。以下は、図面を参照しながら本開示の実施例のレイアウト解析方法を詳細に説明する。
【００１７】
図１は本開示の例示的な実施例に係るレイアウト解析方法を示すフローチャートである。図１に示すように、該レイアウト解析方法は、文字行の座標情報を取得するステップ（ステップＳ１０１）、レイアウトモデルを生成するステップ（ステップＳ１０３）及びレイアウトモデルを走査して段落分けを行うステップ（ステップＳ１０５）を含んでもよい。
【００１８】
ステップＳ１０１：画像における１つ又は複数の文字行の座標情報を取得する。
【００１９】
本開示の例示的な方法は、非文字の元の画像の代わりに文字の座標情報を主に用いてレイアウト解析を行うため、このステップにおいて、後続の処理を行うために、画像から文字行の座標情報を取得する。
【００２０】
該画像は、画像センサにより取得された電子画像データであってもよい。１つの実施例では、画像センサはユーザのウェアラブルデバイス又は眼鏡などのアイテムに設けられてもよく、該画像は該画像センサにより撮影されたユーザが持っている読み物（例えば書籍又は雑誌など）のレイアウトの画像であってもよい。該画像は、文字（各国及び地域の文字、数字、符号、句読点などを含んでもよい）、ピクチャなどの内容を含んでもよい。１つの実施例では、該画像は前処理された画像であってもよく、該前処理は例えばチルト補正、ぼけ除去などを含んでもよいが、これに限定されない。１つの実施例では、該画像は、画像センサにより取得された後に記憶装置又は記憶媒体に記憶され、処理されるために読み出されてもよい。
【００２１】
該文字行は、連続した一行の文字を意味し、例えば水平方向に隣接する文字間の間隔が間隔閾値よりも小さい文字のシーケンスであってもよい。該隣接する文字間の間隔は、例えば隣接する文字の対応位置の座標間の距離、例えば隣接する文字の左上隅の座標間、右下隅の座標間、又は重心の座標間の文字行方向の距離などであってもよい。１つの実施例では、隣接する文字間の間隔が間隔閾値以下である場合、該隣接する文字が連続していると判断し、該隣接する文字を同一の文字行に分けてもよい。隣接する文字間の間隔が間隔閾値よりも大きい場合、隣接する文字が連続していない（例えばそれぞれが左右の２つの欄に属する可能性はある）と判断し、該隣接する文字を異なる文字行に分けてもよい。
【００２２】
１つの実施例では、文字行の座標情報は、該文字行を含む矩形（例えば該文字行を含む最小の矩形、又は該文字行を含む最小の矩形を上、下、左及び／又は右に所定の倍率だけ拡大して得られた矩形）の座標情報であってもよい。文字行の座標情報は例えば該矩形の４つの頂点の座標情報を含んでもよいし、該矩形の任意の頂点の座標情報、並びに該矩形の高さ情報及び長さ情報を含んでもよい。なお、文字行の座標情報の定義はこれに限定されず、文字行が占める空間位置及びサイズを表すことができればよい。
【００２３】
１つの実施例では、文字行の座標情報は、例えば他の機器（例えばリモートサーバ又はクラウドコンピュータ装置）又は他のアプリケーション（例えば光学文字認識（ＯＣＲ）などの文字認識アプリケーション）から取得されてもよいし、ローカルアプリケーションにおいて文字認識処理により取得されてもよい。
【００２４】
図２は本開示の例示的な実施例に係る文字行を含む画像及びそのレイアウトモデルの一例を示す模式図であり、画像２０１における文字行ＴＬ１〜ＴＬ６を示し、破線枠で画像２０１における各文字行を含む矩形を示している。
【００２５】
ステップＳ１０３において、データ構造における該１つ又は複数の文字行の座標情報に対応する領域において文字データを設定し、該画像に対応するレイアウトモデルを生成する。
【００２６】
このステップは、前のステップにおいて取得された文字行に対応する領域において、文字画像そのものよりも簡単な「文字データ」を設定することで、後続処理のための、該画像における文字分布を模擬するためのレイアウトモデルを構築する。
【００２７】
本開示のレイアウトモデルは、画像における文字行の位置分布を模擬するために構築されたモデルであり、各位置のデータと画像における対応位置の画素とは対応関係及びマッピング関係を有する。レイアウトモデルは、データ構造における位置において、画像における対応位置における文字の存在を示すデータを設定することによって構築される。
【００２８】
１つの実施例では、該データ構造は、記憶装置（例えばメモリ、キャッシュなど）におけるファイル、又は画素で表現される画像であってもよいし、テーブル又はデータアレイであってもよい。データ構造は、具体的なデータ構造に限定されず、その中のデータが画像における文字行を模擬することができればよい。データ構造のサイズは、画像のサイズと同じであってもよいし、画像のサイズを所定の比率だけ拡大／縮小したサイズであってもよい。例えば、画像が３８４０×２１６０の画素サイズを有する場合、データ構造（及び対応するレイアウトモデル）は画像と同じサイズを有してもよい（即ち３８４０×２１６０個の画素又はデータを有してもよい）し、水平方向に拡大／縮小してもよい（例えば１９２０×２１６０個の画素又はデータを有してもよい）し、垂直方向に拡大／縮小してもよい（例えば３８４０×１０８０個の画素又はデータを有してもよい）し、水平方向及び垂直方向両方に拡大／縮小してもよい（例えば１９２０×１０８０個の画素又はデータを有し、或いは１２８０×１０８０個の画素又はデータを有してもよい）。データ構造のサイズが画像のサイズと同じである場合でも、画像のサイズを所定の比率だけ拡大／縮小したサイズを有する場合でも、該データ構造のデータ又は画素と画像の画素とは画像における領域に基づいて対応関係又はマッピング関係を構築することができる。
【００２９】
１つの実施例では、該文字データは、文字の存在を示すデータを含み、文字の意味又は内容に関わらず、文字の座標情報に対応する領域に文字が存在するか否かを表すことができる。また、データ構造における該画像の非文字領域に対応する領域において空白データ（ｂｌａｎｋ  ｄａｔａ）を設定してもよく、該空白データは文字が存在しないことを示すデータである。１つの実施例では、文字データは例えば「１」であってもよく、空白データは例えば「０」であってもよい。なお、文字データは「０」及び「１」に限定されず、他の任意のデータであってもよく、該領域に文字又は文字行が存在するか否かを区別することができればよい。
【００３０】
１つの実施例では、レイアウトモデルのサイズが画像のサイズを拡大／縮小したものである場合、レイアウトモデルのデータ構造における文字行の座標情報に対応する領域の座標は画像の文字行領域の座標を所定の比率で拡大／縮小したものであってもよい。レイアウトモデルのデータ構造のサイズが画像のサイズよりも小さい場合、画像における複数の画素をマッピング規則に従ってレイアウトモデルにおけるデータ又は画素にマッピングする。画像における複数の画素に文字行における画素及び空白領域における画素両方が含まれる場合、該マッピング規則は、例えば複数の画素を文字データにマッピングするように規定されてもよいし、複数の画素を空白データにマッピングするように規定されてもよい。或いは、マッピング規則は、画像における複数の画素の文字行における画素の数と空白領域における画素の数との比が所定の比以上である場合、複数の画素を文字データにマッピングし、そうでない場合、空白データにマッピングすることを含んでもよい。或いは、マッピング規則は、例えばＮ個の画素行をレイアウトモデルにおける１つのデータ又は画素行にマッピングする場合、Ｎ個の画素行ごとに１つの画素行を抽出してレイアウトモデルにおける１つのデータ又は画素行にマッピングすることを含んでもよい。
【００３１】
図２に示す例は画像２０１に対応するレイアウトモデル２０３を示し、図２から分かるように、レイアウトモデル２０３における文字行ＴＬ１〜ＴＬ６に対応する領域Ｒ１〜Ｒ６において文字データ（この例では「１」である）を設定し、他の空白領域において空白データ（この例では「０」である）を設定している。図２から分かるように、レイアウトモデル２０３における文字データの位置分布は画像２０１における文字行の位置分布を好適に模擬した。レイアウトモデル２０３では、画像２０１に対する拡大／縮小の比率により、レイアウトモデル２０３のデータ構造におけるデータ行（画素行）は画像２０１における文字行に正確に対応している。なお、他の実施例では、他の拡大／縮小の比率を用い、或いは拡大／縮小しない場合、レイアウトモデル２０３における複数のデータ行（画素行）を用いて画像２０１における１つの文字行を表してもよい。例えば、図５では、レイアウトモデル５０３における２つのデータ行（画素行）を用いて画像５０１における１つの文字行を表す例が示されている。他の例では、画像２０１における文字の高さが例えば１０個の画素である場合、レイアウトモデル２０３におけるデータ構造は５個又は１０個のデータ行（画素行）を用いて１つの文字行を表してもよい。
【００３２】
ステップＳ１０５において、生成されたレイアウトモデルを走査して該レイアウトモデルにおける該文字データを読み取り、読み取られた該文字データの該レイアウトモデルにおける相対位置関係に基づいて、該レイアウトモデルに対して段落分けを行う。
【００３３】
このステップは、前のステップにおいて取得されたレイアウトモデルにおけるデータを走査して読み取り、レイアウトモデルにおける文字データに対して段落分けを行う。
【００３４】
１つの実施例では、走査は、レイアウトモデルのデータ構造をデータ又は画素ごとに走査して読み取ってもよい。例えば、レイアウトモデルが画像に対応する他の画像又はデータアレイである場合、走査は、例えば他の画像又はデータアレイを行ごとに走査してもよい。走査行は、例えば水平方向にレイアウトモデル全体にわたるデータ行又は画素行であってもよい。文字行は、図５における文字行ＴＬ１に対応する２つの走査行ＳＬ１及びＳＬ２に示すように、複数の走査行に対応してもよい。１つの走査行は、水平方向に間隔を隔てた複数の異なる文字行に関連してもよく、即ち複数の文字データシーケンスを含んでもよい。図２の例では、レイアウトモデル２０３における走査行ＳＬは、文字行ＴＬ１及びＴＬ２に関連し、即ち領域Ｒ１及びＲ２における対応する文字データシーケンスを含む。ここで、文字データシーケンスは、連続する文字データのシーケンス（即ち文字データ間には空白データが存在しない）、又は隣接する文字データ間の空白データの数が閾値よりも小さい文字データのシーケンスを意味し、該閾値は例えば１つ以上の文字データであってもよく、例えば３個の文字データ又は５個の文字データである。文字データが「１」で表される場合、典型的な文字データシーケンスは、図２及び図５に示すように、例えば連続する「１」の文字列であってもよい。
【００３５】
上記の走査により、生成されたレイアウトモデルにおける文字データ（及び空白データ）の値を読み取り、その相対位置関係を解析し、該相対位置関係に基づいてレイアウトモデルに対して段落分けを行うことができる。
【００３６】
図１に示す方法によれば、文字（文字行）を含む画像に基づいて、領域に文字行が存在するか否かを示す簡単なデータを含むレイアウトモデルを生成し、即ちより簡単な情報を含むレイアウトモデルを用いて元の画像を模擬することで、レイアウト解析問題を複雑な画像処理問題から比較的に簡単な位置分析問題に変換することができるため、レイアウト解析の基本的な精度を維持することができると共に、アルゴリズムの複雑さ及び計算量を大幅に低減させることができ、コンピュータのレイアウトを解析する時の演算負荷を軽減することができる。また、レイアウトモデルのサイズが画像のサイズを縮小するものである場合、処理すべきデータ量をさらに削減することができ、コンピュータのレイアウトを解析する時の演算負荷をさらに軽減することができる。
【００３７】
以上は図１〜図２を参照しながら本開示のレイアウト解析方法を説明した。以下は図３〜図１０を参照しながら上記ステップＳ１０１、Ｓ１０３及びＳ１０５の例示的な実施例及び他の実施例をより詳細に説明し、図３はステップＳ１０１における文字行の取得処理の一例を示し、図４はステップＳ１０３におけるレイアウトモデルの生成処理の一例を示し、図６はステップＳ１０５におけるレイアウトモデルを走査して段落分けを行う処理の一例を示す。なお、以上で図１〜図２を参照しながら説明された各定義、実施例、態様及び例などは以下で説明される実施例及びその組み合わせに適用されてもよい。
【００３８】
図３は本開示の例示的な実施例に係る文字行の座標情報の取得方法の一例を示すフローチャートであり、該方法上記のステップＳ１０１の例示的な実施例であってもよく、即ちステップＳ１０１は図３のフローチャートにおけるステップを含んでもよい。
【００３９】
ステップＳ３０１において、画像に対して文字認識を行い、各文字の座標情報を取得する。従来技術における例えば光学文字認識（ＯＣＲ）技術などの様々な文字認識技術はこのステップに用いられてもよい。文字の座標情報は、例えば文字を含む矩形の４つの頂点の座標及び／又は文字の高さ、幅の情報などを含んでもよいが、これに限定されない。全ての従来技術の文字座標は、ここの座標情報とされてもよく、文字の画像における位置及びその占有領域を表すことができればよい。
【００４０】
ステップＳ３０１の後の各ステップにおいて、画像における最初の文字から、文字の座標情報に基づいて各文字を順次処理し、文字行を取得する。
【００４１】
ステップＳ３０３において、現在処理されている文字と前の文字（直前の文字）との間隔が間隔閾値よりも小さいか否かを判断する。該間隔が間隔閾値以上である場合（ステップＳ３０３でＮＯ）、現在の文字が新しい文字行に属すると決定し（ステップＳ３０５）、そうでない場合（ステップＳ３０３でＹＥＳ）、現在の文字を、前の文字が属する文字行に分ける（ステップＳ３０９）。
【００４２】
１つの実施例では、間隔閾値は例えば応用の需要（例えば言語、符号の種類など）に応じて決定されてもよく、例えば平均の文字幅の所定倍（例えば１．２倍〜３．５倍）に設定されてもよいし、予め決定された同一の段落における平均の隣接文字の間隔の所定倍（例えば１．５倍〜３．５倍）に設定されてもよい。なお、間隔閾値の決定方法はこれに限定されず、隣接文字が同一の段落に属するか否かを区別することができればよい。
【００４３】
図２の例では、間隔閾値は、例えば文字の平均幅の２．５倍に設定されている。文字行ＴＬ１における「ｂｅ」及び「ａｓ」における隣接文字「ｅ」と「ａ」との間隔が間隔閾値よりも小さいため、該文字を同一の文字行ＴＬ１に分ける。一方、文字行ＴＬ１の末尾における「ｙｏｕｒ」の「ｒ」と文字行ＴＬ２の先頭における「Ａ」との間隔が間隔閾値以上であるため、該文字をそれぞれ異なる文字行ＴＬ１及びＴＬ２に分ける。
【００４４】
現在の文字を前の文字行又は新しい文字行に分けた後に、ステップＳ３１１において、画像に次の文字があるか否かを判断し、次の文字がある場合（ステップＳ３１１でＹＥＳ）、次の文字（直後の文字）を現在の文字とし、ステップＳ３０３以降の処理により該文字に対して文字行の分けを行い続け、次の文字がない場合（ステップＳ３１１でＮＯ）、画像における全ての文字が既に文字行に分けられたことを意味する。
【００４５】
１つの実施例では、ステップＳ３０５において現在の文字が新しい文字行に属すると決定された場合、前の文字が前の文字行の最後の文字であることを意味するため、例えばステップＳ３０７において、前の文字行を含む矩形の座標情報を、該前の文字行の座標情報としてもよい。他の実施例では、ステップＳ３０７を実行せず、ステップＳ３０５、Ｓ３０９及びＳ３１１において画像における全ての文字を対応する文字行に分けた後に、ステップＳ３１３において、各文字行について、該文字行を含む矩形の座標情報を、該文字行の座標情報として決定してもよい。１つの実施例では、該矩形の各辺はそれぞれ画像の各辺に平行となり、即ち水平方向及び垂直方向を有する。
【００４６】
従来方法における文字認識アルゴリズム（例えば光学文字認識（ＯＣＲ）には、画像における各文字を認識して該文字の座標情報を取得することができ、文字行を含む矩形及びその座標情報を決定することができる技術が存在する。様々な文字認識アルゴリズムにおける従来技術はここで適用されてもよい。従って、本開示の技術は、従来技術における文字認識アルゴリズムにより取得された結果を十分に利用することができ、アルゴリズムの効率を向上させることができる。
【００４７】
一例として、画像における文字行は、該文字行を含む矩形の水平辺（画像の水平辺に平行となる）に対して所定の傾斜度を有する。この傾斜度が傾斜度閾値（例えば２０度又は３０度）よりも小さい場合、段落分けの結果に実質的な影響がない。この傾斜度が傾斜度閾値以上である場合、文字の傾きを補正するために画像に対して前処理を行い、傾き補正後の画像に基づいて図３におけるステップ及び後続処理を行ってもよい。他の実施例では、この傾斜度が傾斜度閾値以上である場合、画像の傾きを低減させるために読み物を把持する姿勢を改善するようにユーザに提示してもよい。
【００４８】
図４は本開示の例示的な実施例に係るレイアウトモデルの生成方法の一例を示すフローチャートであり、該方法は上記のステップＳ１０３の一例とされてもよく、即ちステップＳ１０３は図４のフローチャートにおけるステップを含んでもよい。
【００４９】
例えばステップＳ１０１又は図３のフローチャートのステップにおいて文字行の座標情報が取得された後に、画像における最初の文字行から、取得された各文字行を文字行ごとに処理する。
【００５０】
ステップＳ４０１において、現在の文字行の座標情報を読み取る。ステップＳ４０３において、現在の文字行の座標情報に対応する領域を決定する。ステップＳ４０５において、データ構造における現在の文字行の座標情報に対応する領域において文字データを設定する。ステップＳ４０７において、次の文字行がまだあるか否かを判断し、次の文字行がまだある場合（ステップＳ４０７でＹＥＳ）、次の文字行（直後の文字行）を現在の文字行とし、ステップＳ４０１以降の処理により文字行の分けを行い続け、次の文字行がない場合（ステップＳ４０７でＮＯ）、画像における全ての文字行が既にレイアウトモデルとしてモデル化されたことを意味する。
【００５１】
１つの実施例では、データ構造における該１つ又は複数の文字行の座標情報に対応する領域は、データ構造における各文字行の座標情報により決定された領域を含んでもよい。画像における文字行の座標情報が矩形の座標情報である場合、データ構造における各文字行の座標情報に対応する領域において文字データを設定することは、レイアウトモデルにおける対応位置の矩形におけるデータ領域又は画素領域において文字データを設定することを意味する。図２の例では、文字行ＴＬ１〜ＴＬ６の座標情報に基づいて決定された領域Ｒ１〜Ｒ６において文字データ「１」を設定し、画像２０１のレイアウトモデル２０３を形成する。
【００５２】
１つの実施例では、該１つ又は複数の文字行の座標情報に対応する領域は、各文字行の座標情報により決定された領域だけではなく、該文字行の座標情報から垂直方向に（例えば上方及び／又は下方へ）所定の距離だけ拡張された領域をさらに含んでもよい。言い換えれば、ステップＳ４０３の前に、該文字行の座標情報から垂直方向に（例えば上及び／又は下へ）所定の距離だけ拡張するステップをさらに含んでもよい。１つの実施例では、該所定の距離は、画像における文字行に垂直な方向に隣接する文字行の行間隔（即ち、上の文字行と、隣接する下の文字行との間の空白の高さ）に依存する。上方のみ又は下方のみへ拡張する場合、該所定の距離は、例えば同一の段落における上下文字行間の全ての空白空間をカバーしてもよく、例えば画像における隣接文字行の平均行間隔の１倍〜１．５倍であってもよい。上方及び下方両方へ拡張する場合、該所定の距離は、例えば同一の段落における上下文字行間の一部の空白空間をカバーしてもよく、例えば画像における隣接文字行の平均行間隔の０．５倍〜０．７倍であってもよく、これによって、上の文字行及び下の文字行を共に拡張することでその間の空白空間をカバーすることができる。
【００５３】
図５は本開示の例示的な実施例に係るレイアウトモデルのデータ構造における文字行の座標情報に対応する領域の一例を示す模式図である。図５に示す例では、ＴＬ１及びＴＬ２は画像５０１における２つの文字行である。１つの実施例では、レイアウトモデル５０３のデータ構造における文字行ＴＬ１の座標情報に対応する領域Ｒ１は、データ構造における文字行ＴＬ１の座標情報により決定された領域５１３を含み、文字行ＴＬ２及び領域Ｒ２についても同様である。他の実施例では、レイアウトモデル５０５のデータ構造における文字行ＴＬ１の座標情報に対応する領域Ｒ１は、データ構造における文字行ＴＬ１の座標情報により決定された領域５１３だけではなく、該文字行ＴＬ１の座標情報から下方へ２つの画素行だけ拡張された領域５１５をさらに含み、文字行ＴＬ２及び領域Ｒ２についても同様である。
【００５４】
このように、以上の拡張によれば、上下２つの文字行が同一の段落にある場合、レイアウトモデルのデータ構造におけるこれらの文字行の座標情報に対応する領域は、これらの文字行そのものだけではなく、それらの間の行間の空白をカバーすることができる。よって、レイアウトモデルでは、同一の段落における上下２つの隣接文字行の対応する文字データの間に空白データが存在しておらず、一体になっているため、後の走査処理のアルゴリズムを簡略化することができる。なお、このような拡張は必須ではなく、後の走査処理のアルゴリズムにより同一の段落における上下２つの隣接文字行の間の空白データを処理してもよい。
【００５５】
図６は本開示の例示的な実施例に係るレイアウトモデルを走査して段落分けを行う方法の一例を示すフローチャートであり、該方法は上記のステップＳ１０５の一例とされてもよく、即ちステップＳ１０５は図６のフローチャートのステップを含んでもよい。
【００５６】
図６に示すように、例えばステップＳ１０３又は図４のフローチャートのステップにおいてレイアウトモデルが生成された後に、レイアウトモデルにおけるデータ又は画素を行ごとに走査してもよい。図７を参照しながら図６のフローを説明し、図７は本開示の例示的な実施例に係る段落分けのレイアウトモデルの一例を示す模式図であり、レイアウトモデル７０１における文字データに対して段落分けを行う。図７では、「１」で文字データを表し、存在する可能性のある空白データの図示を省略する。
【００５７】
ステップＳ６０１において、現在の走査行、例えば図７に示す１番目の走査行を読み取る。ステップＳ６０３において、現在の走査行に文字データが存在するか否かを判断する。現在の走査行に文字データが存在する場合（ステップＳ６０３でＹＥＳ）、ステップＳ６０５に進み、そうでない場合（ステップＳ６０３でＮＯ）、次の走査行があるか否かを判断する（ステップＳ６１３）。ステップＳ６１３において次の走査行があると判断された場合（ステップＳ６１３でＹＥＳ）、次の走査行を現在の走査行とし、ステップＳ６０１以降の処理を行い続ける。ステップＳ６１３において次の走査行がないと判断された場合（ステップＳ６１３でＮＯ）、レイアウトモデルに対する走査が終了すると判断する。図７における１番目の走査行には連続する文字データのシーケンス（即ち「文字データシーケンス」）ＳＴＤＳ１及びＳＴＤＳ２が存在するため、文字データが存在すると判断し、ステップＳ６０５に進む。
【００５８】
ステップＳ６０５において、現在の走査行における現在の文字データシーケンス（例えば図７における１番目の走査行における文字データシーケンスＳＴＤＳ１）について、隣接する前の走査行（直前の走査行）に、現在の走査行における文字データシーケンスとの水平方向の重なり率が重なり率閾値よりも大きい文字データシーケンスが存在するか否か（規則（ａ））を判断する。該当する文字データシーケンスが存在する場合（ステップＳ６０５でＹＥＳ）、現在の走査行の文字データシーケンスを、隣接する前の走査行の文字データシーケンスが属する段落に分け（ステップＳ６０９）、該当する文字データシーケンスが存在しない場合（ステップＳ６０５でＮＯ）、現在の走査行における文字データシーケンスが新しい段落に属すると決定する（ステップＳ６０７）。
【００５９】
特に、ステップＳ６０５において、隣接する前の走査行に、現在の走査行における文字データシーケンスとの重なり率が重なり率閾値よりも大きい文字データシーケンスが存在しないと決定された場合、（１）隣接する前の走査行に文字データシーケンスが存在しないこと、或いは（２）隣接する前の走査行に文字データシーケンスが存在し、且つ該文字データシーケンスと現在の走査行における現在の文字データシーケンスとの重なり率が重なり率閾値以下であることを意味する。（１）の場合は、隣接する前の走査行が文字データを有しない空白走査行であり、現在の走査行における現在の文字データシーケンスが新しい段落の最初の文字データを表す可能性が高いことを意味する。一方、（２）の場合は、隣接する前の走査行に文字データが存在するが、該文字データシーケンスと現在の文字データシーケンスとの水平方向の重なり部分が少ないため、現在の文字データシーケンスが前の走査行における文字データシーケンスの属する段落に属さない可能性が高く、新しい段落（例えば別の段落又は別の欄）に属する可能性が高いことを意味する。本開示では、２つの文字データシーケンスの水平方向の重なり部分とは、この２つの文字データシーケンスの水平方向の座標軸上の投影の共通部分を意味する。
【００６０】
１つの実施例では、２つの文字データシーケンスの重なり率は、ＯＶＲ＝ｍａｘ（ＯＶＬ／Ｌ１，ＯＶＬ／Ｌ２）で定義されてもよく、ここで、ｍａｘは括弧内の比較的に大きい数値を表し、ＯＶＬは２つの文字データシーケンスの水平方向の重なりの長さ（例えば文字データの数又は画素の数）を表し、Ｌ１及びＬ２は、２つの文字データシーケンスの長さ（例えば文字データの数又は画素の数）をそれぞれ表す。図８は２つの文字データシーケンスの重なり率の計算を示す模式図である。図８の例では、ＯＶＬ＝１２、Ｌ１＝２０、Ｌ２＝１７となるため、これら２つの文字データシーケンスの重なり率ＯＶＲ＝ｍａｘ（ＯＶＬ／Ｌ１，ＯＶＬ／Ｌ２）＝１２／１７となる。なお、ここで重なり率の概念と算出方法を示しているが、これに限定されず、２つの欄の水平方向の重なり状況を表すことができればよい。
【００６１】
該重なり率閾値は、具体的な応用需要に応じて予め決定されてもよい。１つの実施例では、重なり率閾値は、例えば０．５〜０．８の範囲内の任意の値に設定されてもよい。
【００６２】
ステップＳ６０７及びＳ６０９において、現在の走査行を隣接する前の走査行の文字データシーケンスが属する段落に分け、或いは新しい段落に分けた後に、ステップＳ６１１において、現在の走査行に次の文字データシーケンスがまだあるか否かを判断する。現在の走査行に次の文字データシーケンスがまだある場合（ステップＳ６１１でＹＥＳ）、ステップＳ６０５に進み、現在の走査行における次の文字データシーケンスを処理し続ける。現在の走査行に次の文字データシーケンスがない場合（ステップＳ６１１でＮＯ）、現在の走査行における文字データシーケンスが既に処理されたことを意味し、ステップＳ６１３に進み、次の走査行がまだあるか否かを判断する。
【００６３】
図７の例では、１番目の走査行について隣接する前の走査行が存在しないため、文字データシーケンスＳＴＤＳ１が新しい段落Ｐ１に属すると決定する。１番目の走査行には、文字データシーケンスＳＴＤＳ１に加えて、次の文字データシーケンスＳＴＤＳ２が存在するため、文字データシーケンスＳＴＤＳ２を処理し続け、同様に、文字データシーケンスＳＴＤＳ２が新しい段落Ｐ２に属すると決定する。
【００６４】
文字データシーケンスＳＴＤＳ２の後に、１番目の走査行には次の文字データシーケンスが存在しないため、２番目の走査行を処理し続ける。２番目の走査行における文字データシーケンスＳＴＤＳ３と、隣接する前の走査行、即ち１番目の走査行における文字データシーケンスＳＴＤＳ１との重なり率が１であり、重なり率閾値（例えば０．７５）よりも大きいため、文字データシーケンスＳＴＤＳ３を、文字データシーケンスＳＴＤＳ１が属する段落Ｐ１に分ける。同様に、文字データシーケンスＳＴＤＳ４を、文字データシーケンスＳＴＤＳ２が属する段落Ｐ２に分け、文字データシーケンスＳＴＤＳ５を、文字データシーケンスＳＴＤＳ３が属する段落Ｐ１に分ける。
【００６５】
４番目の走査行における文字データシーケンスＳＴＤＳ６について、隣接する前の走査行、即ち３番目の走査行には文字データシーケンスＳＴＤＳ５が存在するが、この２つの文字データシーケンス間の重なり率は０であるため、文字データシーケンスＳＴＤＳ６を新しい段落Ｐ３に分ける。
【００６６】
６番目の走査行における文字データシーケンスＳＴＤＳ７について、隣接する前の走査行、即ち５番目の走査行には文字データシーケンスが存在しないため、文字データシーケンスＳＴＤＳ７を新しい段落Ｐ４に分ける。７番目の走査行における文字データシーケンスＳＴＤＳ８は、文字データシーケンスＳＴＤＳ７との重なり率が重なり率閾値よりも大きいため、段落Ｐ４に分けられる。
【００６７】
以上のように、図６のフローチャートにおける走査方法により、図７の例におけるレイアウトモデルは段落Ｐ１〜Ｐ４に分けられた。
【００６８】
１つの実施例では、文字データは、文字行の高さを示すデータを含んでもよい。該文字行の高さを示すデータは、例えば所定の高さ（例えば文字の平均高さの数分の一、例えば１０分の一であってもよいが、これに限定されない）に基づいて正規化し、整数部分を得てもよい（例えば四捨五入又は切り上げなど）。例えば、所定の高さを１個の画素とする場合、文字行の高さが１０個の画素の文字行の文字データは１０に設定されてもよい。この実施例では、ステップＳ６０５に以下の判断規則（規則（ｂ））を追加してもよい。即ち、現在の走査行における文字データシーケンスの文字データの値と、隣接する前の走査行における文字データシーケンスの文字データの値との差が高さの差の閾値よりも大きい場合、該現在の走査行における該文字データシーケンスが新しい段落に属すると決定する。言い換えれば、ステップＳ６０５において、「現在の走査行における文字データシーケンスの文字データの値と、隣接する前の走査行における文字データシーケンスの文字データの値との差が高さの差の閾値以下である」という条件は、現在の走査行における文字データシーケンスを、隣接する前の走査行における文字データシーケンスが属する段落に分ける必要条件とされてもよい。該高さの差の閾値は、所定の画素数、例えば３個の画素又は５個の画素などであってもよいし、比率であってもよく、例えば比較対象のうち比較的に小さい文字行の高さの数分の一などであってもよい。
【００６９】
１つの実施例では、ステップＳ６０５に以下の判断規則（規則（ｃ））を追加してもよい。即ち、現在の走査行における文字データシーケンスと、隣接する前の走査行における複数の文字データシーケンスとの水平方向の重なり率が何れも重なり率閾値よりも大きい場合、該現在の走査行における該文字データシーケンスが新しい段落に属すると決定する。
【００７０】
図９（ａ）は本開示の例示的な実施例に係る段落分けのレイアウトモデルの一例を示す模式図であり、文字データシーケンスＳＴＤＳ１及びＳＴＤＳ３を段落Ｐ１に分け、文字データシーケンスＳＴＤＳ２及びＳＴＤＳ４を段落Ｐ２に分けることを示している。３番目の走査行における文字データシーケンスＳＴＤＳ５について、その隣接する前の走査行、即ち２番目の走査行には重なり率が重なり率閾値よりも大きい文字データシーケンスＳＴＤＳ３及びＳＴＤＳ４が存在しているが、上記規則（ｃ）を考慮すると、文字データシーケンスＳＴＤＳ５と２番目の走査行における複数の文字データシーケンスＳＴＤＳ３及びＳＴＤＳ４との水平方向の重なり率が何れも重なり率閾値よりも大きいため、規則（ａ）及び規則（ｃ）の共同作用により、文字データシーケンスＳＴＤＳ５を新しい段落Ｐ３に分ける。
【００７１】
１つの実施例では、ステップＳ６０５に以下の判断規則（規則（ｄ））を追加してもよい。即ち、現在の走査行における複数の文字データシーケンスと、隣接する前の走査行における同一の文字データシーケンスとの水平方向の重なり率が何れも重なり率閾値よりも大きい場合、該現在の走査行における該複数の文字データシーケンスがそれぞれ新しい段落に属すると決定する。
【００７２】
図９（ｂ）は本開示の例示的な実施例に係る段落分けのレイアウトモデルの一例を示す模式図であり、文字データシーケンスＳＴＤＳ１及びＳＴＤＳ２を段落Ｐ１に分けることを示している。現在の走査行、即ち３番目の走査行における文字データシーケンスＳＴＤＳ３及びＳＴＤＳ４について、その隣接する前の走査行、即ち２番目の走査行には重なり率が重なり率閾値よりも大きい文字データシーケンスＳＴＤＳ２が存在しているが、上記規則（ｄ）を考慮すると、３番目の走査行における複数の文字データシーケンスＳＴＤＳ３及びＳＴＤＳ４と２番目の走査行における文字データシーケンスＳＴＤＳ２との水平方向の重なり率が何れも重なり率閾値よりも大きいため、規則（ａ）及び規則（ｄ）の共同作用により、文字データシーケンスＳＴＤＳ３及びＳＴＤＳ４をそれぞれ新しい段落Ｐ２及びＰ３に分ける。
【００７３】
規則（ｃ）及び規則（ｄ）により、レイアウトの形式が変化した（例えば１つの走査行が欄の分けられていないレイアウトを表し、且つ隣接走査行が欄の分けられたレイアウトを表した）場合、レイアウトの形式が異なる走査行における文字データシーケンスが異なる段落に属すると判断してもよい。
【００７４】
なお、上記規則（ａ）〜（ｄ）の任意の２つ以上を組み合わせて用いる場合、組み合わせて用いられた規則うちの任意の１つも現在の文字データシーケンスを新しい段落に分ける十分条件である。即ち、任意の規則を満たす場合、現在の文字データシーケンスを新しい段落に分ける。言い換えれば、これらの規則を組み合わせて用いる場合、組み合わせて用いられた規則の全てを満たさない場合のみ、現在の文字データシーケンスを、隣接する前の走査行における文字データシーケンスに分ける。上記規則（ｂ）〜（ｄ）の任意の１つ以上により、適用シナリオにおける隣接し、且つ実際に異なる段落に属する文字を区別することができる。
【００７５】
１つの実施例では、ステップＳ６０７において現在の走査行の文字データシーケンスが新しい段落に属すると決定された場合、該現在の走査行の該文字データシーケンスの座標情報を該新しい段落の座標情報として設定してもよい。「段落の座標情報」は、例えば該段落における全ての文字データシーケンスを含むことが可能な最小の矩形の座標情報であり、例えば左上座標（Ｘ１，Ｙ１）、右上座標（Ｘ２，Ｙ１）、左下座標（Ｘ１，Ｙ２）及び右下座標（Ｘ２，Ｙ２）で表されてもよい。例えば、Ｘ座標軸について右方向を正方向とし、Ｙ座標軸について下方向を正方向とする。なお、本開示の方法は、他の方向の座標系を用いて実施されてもよく、座標軸方向に応じて座標の正負の符号を調整すればよい。現在の文字データシーケンスが新しい段落に属すると決定された場合、該新しい段落には現時点で該現在の文字データシーケンスのみが含まれ、新しい段落の左上座標と左下座標と重なり、右上座標と右下座標と重なる。現在の文字データシーケンスの始点（例えば左）座標及び終点（例えば右）座標がそれぞれ例えば（ＣＸ１，ＣＹ１）及び（ＣＸ２，ＣＹ１）である場合、該新しい段落の座標情報は、左上座標（ＣＸ１，ＣＹ１）、右上座標（ＣＸ２，ＣＹ１）、左下座標（ＣＸ１，ＣＹ１）及び右下座標（ＣＸ２，ＣＹ１）である。
【００７６】
１つの実施例では、ステップＳ６０９において現在の走査行における文字データシーケンスを、隣接する前の走査行における文字データシーケンスが属する段落に分けると決定された場合、現在の該段落及び該現在の走査行における文字データシーケンス両方を含むことが可能な最小の矩形の座標情報に基づいて、該段落の現在の座標情報を更新してもよい。１つの実施例では、現在の段落が左上座標（Ｘ１，Ｙ１）、右上座標（Ｘ２，Ｙ１）、左下座標（Ｘ１，Ｙ２）及び右下座標（Ｘ２，Ｙ２）を有し、現在の文字データシーケンスが始点座標（ＣＸ１，ＣＹ１）及び終点座標（ＣＸ２，ＣＹ１）を有すると仮定する場合、現在の文字データシーケンスを含むものにより更新された段落の座標情報は、左上座標（ｍｉｎ（Ｘ１，ＣＸ１），Ｙ１）、右上座標（ｍａｘ（Ｘ２，ＣＸ２），Ｙ１）、左下座標（ｍｉｎ（Ｘ１，ＣＸ１），ＣＹ１）及び左上座標（ｍａｘ（Ｘ２，ＣＸ２），ＣＹ１）であり、ここで、ｍｉｎは最小値の取得を表し、ｍａｘは最大値の取得を表す。
【００７７】
図１０は本開示の例示的な実施例に係る段落座標情報の更新処理を示す模式図である。図１０の例では、３番目の走査行（現在の走査行）における文字データシーケンスＳＴＤＳ３（現在の文字データシーケンス）を、２番目の走査行（隣接する前の走査行）における文字データシーケンスが属する段落Ｐ１（現在の段落）に分ける。この場合は、段落Ｐ１には文字データシーケンスＳＴＤＳ３が新たに含まれるため、上記の方法により文字データシーケンスＳＴＤＳ３の座標に基づいて段落Ｐ１の座標を更新してもよい。具体的には、段落Ｐ１の現在の座標情報は、現在の段落Ｐ１及び現在の走査行における文字データシーケンスＳＴＤＳ３両方を含むことが可能な最小の矩形（即ち矩形Ｐ１＿ＵＤ）の座標情報に更新されてもよい。この例では、ＣＸ１＜Ｘ１、且つＣＸ２＞Ｘ２となるため、更新後の段落Ｐ１（即ち矩形Ｐ１＿ＵＤ）の座標情報は、左上座標（ＣＸ１，Ｙ１）、右上座標（ＣＸ２，Ｙ１）、左下座標（ＣＸ１，ＣＹ１）及び右下座標（ＣＸ２，ＣＹ１）である。
【００７８】
１つの実施例では、上述したように文字データシーケンスを段落に分けた後に段落の座標を毎回生成又は更新することではなく、レイアウトモデルにおける全ての文字データシーケンスを対応する段落に分けた後に、各段落について段落の座標情報を生成してもよい。この場合は、段落における全ての文字データシーケンスを含むことが可能な最小の矩形の座標情報を、該段落の座標情報とする。該段落における全ての文字データシーケンスが始点座標（ＣＸ１ｉ，ＣＹ１ｉ）及び終点座標（ＣＸ２ｉ，ＣＹ１ｉ）を有するとし、ここでｉが該段落におけるｉ番目の文字データシーケンスを表す場合、該段落の座標情報は、左上座標（ｍｉｎ（ＣＸ１ｉ），ｍｉｎ（ＣＹ１ｉ））、右上座標（ｍａｘ（ＣＸ２ｉ），ｍｉｎ（ＣＹ１ｉ））、左下座標（ｍｉｎ（ＣＸ１ｉ），ｍａｘ（ＣＹ１ｉ））及び右下座標（ｍａｘ（ＣＸ２ｉ），ｍａｘ（ＣＹ１ｉ））である。
【００７９】
図６のフローチャートにおける例示的な方法によれば、レイアウトモデルの走査が終了した際に、レイアウトモデルに対して段落分けを行うことができ、アルゴリズムが簡単であり、計算量が少ない。
【００８０】
図面に示されていないが、本開示の方法は、レイアウトモデルの段落分けが完了した後に、レイアウトモデルにおける段落分けにより取得された各段落の座標情報を前記画像にマッピングし、該画像における段落分けを取得するステップ、をさらに含んでもよい。レイアウトモデルのサイズが画像のサイズと同一である場合、画像における段落の座標情報はレイアウトモデルにおける段落の座標情報と一致する。レイアウトモデルのサイズが画像のサイズに比べて拡大／縮小される場合、画像における段落の座標情報は、レイアウトモデルにおける段落の座標情報に対して逆に拡大／縮小されてもよい。
【００８１】
以上は図面を参照しながら本開示のレイアウト解析方法の一例を説明した。レイアウト解析を行った後に、後続処理を行ってもよく、例えば文字認識結果及び段落分けの結果に基づいて各段落において認識された文字データを音声データに変換してもよく、これは例えばオーディオブックに関連するアプリケーション及び視覚障碍者補助のアプリケーションに適用されてもよい。
【００８２】
本開示の１つの態様は読書補助装置を含んでもよい。図１１は本開示の例示的な実施例に係る読書補助装置の構成を示すブロック図である。図１１に示すように、読書補助装置１１００は、上記の画像（例えば静止画像又はビデオ画像であってもよく、画像は文字を含んでもよい）を取得するセンサ１１０１、及び上記の任意の方法のステップを実行する回路部を有するチップ回路１１０３を含む。該チップ回路は、画像に対して文字認識を行い、文字データを取得する回路部と、段落分けの結果に基づいて、各段落における文字データを音声データに変換する回路部とをさらに含んでもよい。該画像に対して文字認識を行い、文字データを取得する回路部は、例えば任意の文字認識（例えば光学文字認識（ＯＣＲ））ソフトウェア又は回路を用いてもよく、該段落分けの結果に基づいて、各段落における文字データを音声データに変換する回路部は、例えば任意の文字音声変換ソフトウェア又は回路を用いてもよい。これらの回路部は、例えばＡＳＩＣチップ又はＦＰＧＡチップにより実現されてもよい。読書補助装置１１００は、該音声データ（即ちヴォイスデータ）を出力する音声出力装置１１０５（例えば、スピーカ、イヤホンなど）をさらに含んでもよい。
【００８３】
本開示の１つの態様では電子機器をさらに含んでもよく、該電子機器は、処理装置と、命令を含むプログラムが記憶されている記憶装置と、を含み、該命令が該処理装置により実行される際に、該処理装置に上記の任意の方法を実行させてもよい。１つの実施例では、該プログラムは、該処理装置により実行される際に、段落分けの結果に基づいて各段落における文字データを音声データに変換する命令をさらに含んでもよい。１つの実施例では、該電子機器は、例えば読書補助装置であってもよい。１つの実施例では、該電子機器は、読書補助装置と通信する他の機器（例えば携帯電話、コンピュータ、サーバ等）であってもよい。該電子機器が読書補助装置と通信する他の機器である場合、読書補助装置は撮影された画像を該他の装置に送信し、他の装置は上記の任意の方法を実行し、方法による処理結果（例えばレイアウト解析結果、文字認識結果、及び／又は文字データから変換された音声データ等）を読書補助装置に返送し、読書補助装置は後の処理（例えばユーザに音声データを再生する）を実行してもよい。
【００８４】
１つの実施例では、該読書補助装置は、ウェアラブルデバイス、例えば眼鏡の形態の着用可能な装置、頭部装着装置（ヘルメット又は帽子など）、耳に装着可能な装置、眼鏡（例えばフレーム、テンプル等）に取り付け可能な付属品、帽子に取り付け可能な付属品などとして実施されてもよい。
【００８５】
該読書補助装置によれば、視覚障害のあるユーザは、視覚正常の読者と同様に、同様な読書姿勢により通常の読み物（例えば書籍、雑誌など）を「読む」ことができる。「読む」の過程では、読書補助装置は、上述した実施例における方法により、取り込まれたレイアウト画像に対して段落分けを自動的に行ない、段落分けの後の順序に従って段落における文字を音声に変換し、スピーカ又はイヤホン等の出力装置によりユーザに音声を再生する。
【００８６】
本開示の１つの態様は命令を含むプログラムが記憶されているコンピュータ読み取り可能な記憶媒体を含んでもよく、該命令が電子機器の処理装置により実行される際に、該電子機器に上記の任意の方法を実行させる。図１２を参照しながらコンピュータ装置２０００を説明し、コンピュータ装置２０００は本開示の各態様のハードウェア装置に適用可能な例である。コンピュータ装置２０００は、処理及び／又は計算を実行する任意の機器であってもよく、例えばワークステーション、サーバ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、パーソナルデジタルアシスタント、スマートフォン、オンボードコンピュータ、ウェアラブルデバイス又はその任意の組み合わせであってもよいが、これらに限定されない。１つの実施例では、上記の読書補助装置又は電子機器の全て又は少なくとも一部は、コンピュータ装置２０００、又は類似の装置若しくはシステムにより実現されてもよい。
【００８７】
コンピュータ装置２０００は、（場合によっては１つ又は複数のインタフェースを介して）バス２００２に接続され、或いはバス２００２と通信する素子を含んでもよい。例えば、コンピュータ装置２０００は、バス２００２、１つ又は複数の処理装置２００４（上記の読書補助装置に含まれる処理装置又はチップ回路を実施するために用いられてもよい）、１つ又は複数の入力装置２００６、及び１つ又は複数の出力装置２００８を含んでもよい。１つ又は複数の処理装置２００４は、任意のタイプの処理装置であってもよく、１つ又は複数の汎用プロセッサ及び／又は１つ又は複数の専用プロセッサ（例えば特定処理プロセッサ）を含んでもよいが、これに限定されない。入力装置２００６は、コンピュータ装置２０００に情報を入力することができる任意のタイプの装置であってもよく、センサ（例えば上記の画像を取得するセンサ）、マウス、キーボード、タッチパネル、マイクロフォン、及び／又はリモコンを含んでもよいが、これに限定されない。出力装置２００８は、情報を提示することができる任意のタイプの装置であってもよく、ディスプレイ、スピーカ（例えば、上述の音声データを出力する出力装置）、ビデオ／オーディオ出力端末、バイブレータ、及び／又はプリンタを含んでもよいが、これに限定されない。コンピュータ装置２０００は、非一時的な記憶装置２０１０を含み、或いは非一時的な記憶装置２０１０に接続されてもよい。該非一時的な記憶装置２０１０（例えば上記のコンピュータ読み取り可能な記憶媒体を実施するために用いられてもよい）は、データを記憶可能な非一時的な任意の記憶装置であってもよく、ディスクドライブ、光記憶装置、固体メモリ、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ若しくは他の任意の磁気媒体、光ディスク若しくは他の任意の光学媒体、ＲＯＭ（読み出し専用メモリ）、ＲＡＭ（ランダムアクセスメモリ）、キャッシュメモリ及び／又は他の任意のメモリチップ若しくはカートリッジ、及び／又はコンピュータがデータ、命令及び／又はコードを読み取ることができる他の任意の媒体であってもよいが、これらに限定されない。非一時的な記憶装置２０１０はインタフェースから取り外すことができる。非一時的な記憶装置２０１０は、上記の方法及びステップを実現するためのデータ／プログラム（命令を含む）／コードを有してもよい。コンピュータ装置２０００は、通信装置２０１２をさらに含んでもよい。通信装置２０１２は、外部装置及び／又はネットワークと通信を行うことが可能な任意のタイプの装置又はシステムであってもよく、モデム、ネットワークカード、赤外線通信装置、無線通信装置、及び／又はチップセット、例えばブルートゥース（登録商標）装置、１３０２．１１デバイス、ＷｉＦｉデバイス、ＷｉＭａｘデバイス、セルラ通信デバイス及び／又は類似のデバイスであってもよいが、これらに限定されない。
【００８８】
コンピュータ装置２０００は、作業用記憶装置２０１４（上記の読書補助装置に含まれる記憶装置を実施するために用いられてもよい）をさらに含んでもよく、該作業用記憶装置２０１４は、処理装置２００４の作業のためのプログラム（命令を含む）及び／又はデータを記憶可能な任意の作業用記憶装置であってもよく、ランダムアクセスメモリ及び／又は読み出し専用メモリを含んでもよいが、これらに限定されない。
【００８９】
作業用記憶装置２０１４にソフトウェア要素（プログラム）があってもよく、該ソフトウェア要素は、オペレーティングシステム２０１６、１つ又は複数のアプリケーションプログラム２０１８、ドライバプログラム及び／又は他のデータ及びコードを含んでもよいが、これらに限定されない。ソフトウェア要素（プログラム）の命令の実行可能なコード又はソースコードは、非一時的なコンピュータ読み取り可能な記憶媒体（例えば上記の記憶装置２０１０）に記憶されてもよく、実行される際に作業用記憶装置２０１４に記憶されてもよい（コンバイルされ、且つ／或いはインストールされてもよい）。ソフトウェア要素（プログラム）の命令の実行可能なコード又はソースコードは遠隔地からダウンロードされてもよい。
【００９０】
図１２に示すコンピュータ装置２０００が本開示の実施形態に適用される時に、記憶装置２０１４は、本開示のフローチャートのステップを実行するためのプログラムコード及び／又は文字内容を含む認識されるべき画像を記憶してもよい。ここで、アプリケーション２０１８は、第三者により提供される光学文字認識アプリケーション（例えばＡｄｏｂｅ）、音声変換アプリケーション、編集可能な文字処理アプリケーション等を含んでもよい。入力装置２００６は、文字内容を含む画像を取得するためのセンサであってもよい。記憶された文字内容を含む画像又は取得された画像は、ＯＣＲアプリケーションにより処理された後に、文字を含む出力結果となり、出力装置２００８は例えば音声再生のためのスピーカ又はイヤホンであり、処理装置２００４は記憶装置２０１４におけるプログラムコードにより本開示の各態様の方法のステップを実行する。
【００９１】
なお、具体的な要求に応じて各種の変形を行ってもよい。例えば、カスタムハードウェアを用いてもよいし、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、又はそれらの任意の組み合せで特定の構成要素（上述のチップ回路など）を実現してもよい。例えば、開示された方法及び装置の一部又は全部（例えば、上記のチップ回路における各回路部）は、本開示に係る論理及びアルゴリズムに基づいて、アセンブリ言語又はハードウェアプログラミング言語（例えばＶＥＲＩＬＯＧ、ＶＨＤＬ、Ｃ＋＋等）を用いてハードウェア（例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）及び／又はプログラマブルロジックアレイ（ＰＬＡ）を含むプログラマブルロジック回路）に対してプログラミングを行うことで実現されてもよい。
【００９２】
コンピュータ装置２０００の構成要素はネットワークに分散されてもよい。例えば、プロセッサを用いて処理を実行し、該プロセッサから離れた他のプロセッサを用いて他の処理を実行してもよい。コンピュータシステム２０００の他の構成要素も同様に分散さてもよい。従って、コンピュータ装置２０００は、複数の場所で処理を実行する分散コンピュータシステムとして解釈されてもよい。
【００９３】
図面を参照しながら本開示の実施形態又は実施例を説明したが、上述した方法、システム及び装置は例示的な実施形態又は実施例に過ぎず、本発明の範囲はこれらの実施形態又は実施例に制限されず、添付の特許請求の範囲及びその均等物によってのみ限定される。実施形態又は実施例における各要素は、省略されてもよく、それらと同等の要素によって置き換えられてもよい。また、本開示に記載されているものとは異なる順序でステップを実行してもよい。さらに、実施形態又は実施例の各要素を様々な方法で組み合わせてもよい。なお、技術の進化に伴い、本明細書で説明されている要素は本開示の後に現れる同等の要素によって置き換えられてもよい。
【図１】
2020191056.tif 000003
【図２】
2020191056.tif 000004
【図３】
2020191056.tif 000005
【図４】
2020191056.tif 000006
【図５】
2020191056.tif 000007
【図６】
2020191056.tif 000008
【図７】
2020191056.tif 000009
【図８】
2020191056.tif 000010
【図９（ａ）】
2020191056.tif 000011
【図９（ｂ）】
2020191056.tif 000012
【図１０】
2020191056.tif 000013
【図１１】
2020191056.tif 000014
【図１２】
2020191056.tif 000015
【手続補正書】
【提出日】令和2年2月25日(2020.2.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
画像における１つ又は複数の文字行の座標情報を取得するステップと、
データ構造における前記１つ又は複数の文字行の座標情報に対応する領域において文字データを設定し、前記画像に対応するレイアウトモデルを生成するステップであって、前記文字データは文字の存在を示すデータを含み、且つ文字の意味に関わらない、ステップと、
生成されたレイアウトモデルを走査して前記レイアウトモデルにおける前記文字データを読み取り、読み取られた前記文字データの前記レイアウトモデルにおける相対位置関係に基づいて、前記レイアウトモデルに対して段落分けを行うステップと、を含む、レイアウト解析方法。
【請求項２】
画像における１つ又は複数の文字行の座標情報を取得するステップは、
前記画像に対して文字認識を行い、各文字の座標情報を取得するステップと、
隣接する文字の間隔が間隔閾値よりも小さい文字のシーケンスを文字行とするステップと、
各文字行を含む矩形それぞれの座標情報を、前記１つ又は複数の文字行それぞれの座標情報として取得するステップと、を含む、請求項１に記載のレイアウト解析方法。
【請求項３】
前記１つ又は複数の文字行の座標情報に対応する領域は、各文字行の座標情報により決定された領域と、該文字行の座標情報から垂直方向に所定の距離だけ拡張された領域とを含む、請求項１に記載のレイアウト解析方法。
【請求項４】
前記レイアウトモデルに対して段落分けを行うステップは、
隣接する前の走査行に、現在の走査行における文字データシーケンスとの水平方向の重なり率が重なり率閾値よりも大きい文字データシーケンスが存在しない場合、前記現在の走査行における該文字データシーケンスが新しい段落に属すると決定するステップ、を含む、請求項１に記載のレイアウト解析方法。
【請求項５】
前記文字データは、文字行の高さを示すデータを含み、
前記レイアウトモデルに対して段落分けを行うステップは、
現在の走査行における文字データシーケンスの文字データの値と、隣接する前の走査行における文字データシーケンスの文字データの値との差が高さの差の閾値よりも大きい場合、前記現在の走査行における該文字データシーケンスが新しい段落に属すると決定するステップ、を含む、請求項１に記載のレイアウト解析方法。
【請求項６】
前記レイアウトモデルに対して段落分けを行うステップは、
現在の走査行における文字データシーケンスと、隣接する前の走査行における複数の文字データシーケンスとの水平方向の重なり率が何れも重なり率閾値よりも大きい場合、前記現在の走査行における該文字データシーケンスが新しい段落に属すると決定するステップ、を含む、請求項１に記載のレイアウト解析方法。
【請求項７】
前記レイアウトモデルに対して段落分けを行うステップは、
現在の走査行における複数の文字データシーケンスと、隣接する前の走査行における同一の文字データシーケンスとの水平方向の重なり率が何れも重なり率閾値よりも大きい場合、前記現在の走査行における前記複数の文字データシーケンスがそれぞれ新しい段落に属すると決定するステップ、を含む、請求項１に記載のレイアウト解析方法。
【請求項８】
前記現在の走査行における文字データシーケンスが新しい段落に属すると決定するステップは、
前記現在の走査行における該文字データシーケンスの座標情報を前記新しい段落の座標情報として設定するステップ、を含む、請求項４乃至７の何れかに記載のレイアウト解析方法。
【請求項９】
前記レイアウトモデルに対して段落分けを行うステップにおいて、現在の走査行における文字データシーケンスを、隣接する前の走査行における文字データシーケンスが属する段落に分ける必要条件は、
前記現在の走査行における文字データシーケンスと前記隣接する前の走査行における文字データシーケンスとの水平方向の重なり率が重なり率閾値よりも大きいことを含む、請求項１に記載のレイアウト解析方法。
【請求項１０】
前記文字データは、文字行の高さを示すデータを含み、
前記レイアウトモデルに対して段落分けを行うステップにおいて、現在の走査行における文字データシーケンスを、隣接する前の走査行における文字データシーケンスが属する段落に分ける必要条件は、
現在の走査行における文字データシーケンスの文字データの値と、隣接する前の走査行における文字データシーケンスの文字データの値との差が高さの差の閾値以下であることを含む、請求項１に記載のレイアウト解析方法。
【請求項１１】
現在の走査行における文字データシーケンスを、隣接する前の走査行における文字データシーケンスが属する段落に分けることは、
現在の前記段落及び前記現在の走査行における文字データシーケンス両方を含むことが可能な最小の矩形の座標情報に基づいて、前記段落の現在の座標情報を更新することを含む、請求項９又は１０に記載のレイアウト解析方法。
【請求項１２】
前記レイアウトモデルに対して段落分けを行うステップは、
段落における全ての文字データシーケンスを含むことが可能な最小の矩形の座標情報に基づいて、該段落の座標情報を決定するステップ、をさらに含む、請求項９又は１０に記載のレイアウト解析方法。
【請求項１３】
前記レイアウトモデルにおける段落分けにより取得された各段落の座標情報を前記画像にマッピングし、前記画像における段落分けを取得するステップ、をさらに含む、請求項１に記載のレイアウト解析方法。
【請求項１４】
請求項１乃至１３の何れかに記載のレイアウト解析方法のステップを実行する回路部、を含むチップ回路。
【請求項１５】
画像を取得するセンサと、
請求項１４に記載のチップ回路と、
音声データを出力する音声出力装置と、を含み、
前記チップ回路は、
前記画像に対して文字認識を行い、文字を取得する回路部と、
段落分けの結果に基づいて、各段落における文字を前記音声データに変換する回路部と、をさらに含む、読書補助装置。
【請求項１６】
処理装置と、
命令を含むプログラムが記憶されている記憶装置と、を含み、
前記命令が前記処理装置により実行される際に、前記処理装置に請求項１乃至１３の何れかに記載のレイアウト解析方法を実行させる、電子機器。
【請求項１７】
前記プログラムは、
前記処理装置により実行される際に、段落分けの結果に基づいて各段落における文字を音声データに変換する命令、をさらに含む、請求項１６に記載の電子機器。
【請求項１８】
命令を含むプログラムが記憶されているコンピュータ読み取り可能な記憶媒体であって、
前記命令が電子機器の処理装置により実行される際に、前記電子機器に請求項１乃至１３の何れかに記載のレイアウト解析方法を実行させる、記憶媒体。
【外国語明細書】
2020191056000001.pdf