(57)【要約】【課題】効果的に画像から対象領域を特定することができる情報処理装置及びプログラムを提供する。【解決手段】実施形態によれば、情報処理装置は、インターフェースと、プロセッサと、を備える。インターフェースは、画像を取得する。プロセッサは、前記画像を構成する画素が対象領域の第１の端領域であることに関連する第１の端領域スコアを算出し、前記画素が前記対象領域の第２の端領域であることに関連する第２の端領域スコアを算出し、前記対象領域の中腹領域を特定し、前記中腹領域及び前記第１の端領域スコアに基づいて前記第１の端領域の第１の境界を特定し、前記中腹領域及び前記第２の端領域スコアに基づいて前記第２の端領域の第２の境界を特定し、前記第１の境界及び前記第２の境界に基づいて前記対象領域を特定する。【選択図】      図１
2020135272.tif 000002
【特許請求の範囲】
【請求項１】
画像を取得するインターフェースと、
対象領域の中腹領域を特定し、
前記画像を構成する画素が前記対象領域の第１の端領域であることに関連する第１の端領域スコアを算出し、
前記画素が前記対象領域の第２の端領域であることに関連する第２の端領域スコアを算出し、
前記中腹領域及び前記第１の端領域スコアに基づいて前記第１の端領域の第１の境界を特定し、
前記中腹領域及び前記第２の端領域スコアに基づいて前記第２の端領域の第２の境界を特定し、
前記第１の境界及び前記第２の境界に基づいて前記対象領域を特定する、
プロセッサと、
を備える情報処理装置。
【請求項２】
前記プロセッサは、
前記中腹領域から第１の方向に沿って画素ごとに前記第１の端領域スコアが所定の閾値以下であるか否かを順に判定し、前記第１の端領域スコアが所定の閾値以下である画素の座標に基づいて前記第１の境界を特定し、
前記中腹領域から前記第１の方向と異なる第２の方向に沿って画素ごとに前記第２の端領域スコアが所定の閾値以下であるか否かを順に判定し、前記第２の端領域スコアが所定の閾値以下である画素の座標に基づいて前記第２の境界を特定する、
請求項１に記載の情報処理装置。
【請求項３】
前記プロセッサは、
前記中腹領域における前記第１の方向の端から前記第１の方向に沿って画素ごとに前記第１の端領域スコアが所定の閾値以下であるか否かを順に判定し、前記第１の端領域スコアが所定の閾値以下である画素の座標に基づいて前記第１の境界を特定し、
前記中腹領域における前記第２の方向の端から前記第２の方向に沿って画素ごとに前記第２の端領域スコアが所定の閾値以下であるか否かを順に判定し、前記第２の端領域スコアが所定の閾値以下である画素の座標に基づいて前記第２の境界を特定する、
請求項２に記載の情報処理装置。
【請求項４】
前記プロセッサは、
前記中腹領域における中心線から前記第１の方向に沿って画素ごとに前記第１の端領域スコアが所定の閾値以下であるか否かを順に判定し、前記第１の端領域スコアが所定の閾値以下である画素の座標に基づいて前記第１の境界を特定し、
前記中心線から前記第２の方向に沿って画素ごとに前記第２の端領域スコアが所定の閾値以下であるか否かを順に判定し、前記第２の端領域スコアが所定の閾値以下である画素の座標に基づいて前記第２の境界を特定する、
請求項２に記載の情報処理装置。
【請求項５】
前記第２の方向は、前記第１の方向と逆方向である、
請求項２乃至４の何れか１項に記載の情報処理装置。
【請求項６】
前記第１の端領域は、前記中心線よりも上部に形成される上端領域であり、
前記第２の端領域は、前記中心線よりも下部に形成される下端領域である、
請求項４に記載の情報処理装置。
【請求項７】
前記対象領域は、１行の文字列から構成される文字行を表示する領域である、
請求項１乃至６の何れか１項に記載の情報処理装置。
【請求項８】
前記プロセッサは、
前記画素が前記中腹領域であることに関連する中腹領域スコアを算出し、
前記中腹領域スコアに基づいて前記中腹領域を特定する、
請求項１乃至７の何れか１項に記載の情報処理装置。
【請求項９】
前記プロセッサは、深層学習によって得られたモデルに基づいて前記第１の端領域スコア及び前記第２の端領域スコアを算出する、
請求項１乃至８の何れか１項に記載の情報処理装置。
【請求項１０】
プロセッサによって実行されるプログラムであって、
前記プロセッサに、
画像を取得させ、
対象領域の中腹領域を特定させ、
前記画像を構成する画素が前記対象領域の第１の端領域であることに関連する第１の端領域スコアを算出させ、
前記画素が前記対象領域の第２の端領域であることに関連する第２の端領域スコアを算出させ、
前記中腹領域及び前記第１の端領域スコアに基づいて前記第１の端領域の第１の境界を特定させ、
前記中腹領域及び前記第２の端領域スコアに基づいて前記第２の端領域の第２の境界を特定させ、
前記第１の境界及び前記第２の境界に基づいて前記対象領域を特定させる、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
情報処理装置には、文字列の画像から文字を認識するものがある。そのような情報処理装置は、画像から行ごとに文字列を含む領域（対象領域）を特定し、対象領域ごとに文字認識処理を行う。
【０００３】
しかしながら、情報処理装置は、行が曲がっている又は傾いている場合などに、対象領域の特定に失敗することがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−０４４８１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記の課題を解決するため、効果的に画像から対象領域を特定することができる情報処理装置及びプログラムを提供する。
【課題を解決するための手段】
【０００６】
実施形態によれば、情報処理装置は、インターフェースと、プロセッサと、を備える。インターフェースは、画像を取得する。プロセッサは、前記画像を構成する画素が対象領域の第１の端領域であることに関連する第１の端領域スコアを算出し、前記画素が前記対象領域の第２の端領域であることに関連する第２の端領域スコアを算出し、前記対象領域の中腹領域を特定し、前記中腹領域及び前記第１の端領域スコアに基づいて前記第１の端領域の第１の境界を特定し、前記中腹領域及び前記第２の端領域スコアに基づいて前記第２の端領域の第２の境界を特定し、前記第１の境界及び前記第２の境界に基づいて前記対象領域を特定する。
【図面の簡単な説明】
【０００７】
【図１】図１は、実施形態に係る情報処理装置の構成例を示すブロック図である。
【図２】図２は、実施形態に係る中腹領域などの例を示す図である。
【図３】図３は、実施形態に係る上端領域の例を示す図である。
【図４】図４は、実施形態に係る下端領域の例を示す図である。
【図５】図５は、実施形態に係る中腹領域の例を示す図である。
【図６】図６は、実施形態に係る中腹領域の他の例を示す図である。
【図７】図７は、実施形態に係る情報処理装置の動作例を示す図である。
【図８】図８は、実施形態に係る情報処理装置の動作例を示す図である。
【図９】図９は、実施形態に係る情報処理装置が特定した文字行領域の例を示す図である。
【図１０】図１０は、実施形態に係る情報処理装置の動作例を示すフローチャートである。
【図１１】図１１は、実施形態に係る情報処理装置の動作例を示すフローチャートである。
【図１２】図１２は、実施形態に係る情報処理装置の動作例を示すフローチャートである。
【図１３】図１３は、実施形態に係る対象領域の例を示す図である。
【図１４】図１４は、実施形態に係る情報処理装置の動作の変形例を示す図である。
【図１５】図１５は、実施形態に係る情報処理装置が特定した領域の例を示す図である。
【発明を実施するための形態】
【０００８】
以下、実施形態について、図面を参照して説明する。
【０００９】
実施形態に係る情報処理装置は、画像から行ごとに文字列を含む領域を特定する。即ち、情報処理装置は、１行の文字列（文字行）を含む領域（文字行領域（対象領域））を特定する。たとえば、情報処理装置は、画像から文字を認識するために用いられる。また、情報処理装置は、文字行領域から文字を認識するものであってもよい。
【００１０】
図１は、実施形態に係る情報処理装置１０の構成例を示す。図１は、情報処理装置１０の構成例を示すブロック図である。図１が示すように、情報処理装置１０は、プロセッサ１１、ＲＯＭ１２、ＲＡＭ１３、ＮＶＭ１４、インターフェース１５、操作部１６及び表示部１７などを備える。
【００１１】
プロセッサ１１と、ＲＯＭ１２、ＲＡＭ１３、ＮＶＭ１４、インターフェース１５、操作部１６及び表示部１７と、は、データバスなどを介して互いに接続する。
【００１２】
なお、情報処理装置１０は、図１が示すような構成の他に必要に応じた構成を具備したり、情報処理装置１０から特定の構成が除外されたりしてもよい。
【００１３】
プロセッサ１１は、情報処理装置１０全体の動作を制御する機能を有する。プロセッサ１１は、内部キャッシュ及び各種のインターフェースなどを備えてもよい。プロセッサ１１は、内部メモリ、ＲＯＭ１２又はＮＶＭ１４が予め記憶するプログラムを実行することにより種々の処理を実現する。
【００１４】
なお、プロセッサ１１がプログラムを実行することにより実現する各種の機能のうちの一部は、ハードウエア回路により実現されるものであってもよい。この場合、プロセッサ１１は、ハードウエア回路により実行される機能を制御する。
【００１５】
ＲＯＭ１２は、制御プログラム及び制御データなどが予め記憶された不揮発性のメモリである。ＲＯＭ１２に記憶される制御プログラム及び制御データは、情報処理装置１０の仕様に応じて予め組み込まれる。
【００１６】
ＲＡＭ１３は、揮発性のメモリである。ＲＡＭ１３は、プロセッサ１１の処理中のデータなどを一時的に格納する。ＲＡＭ１３は、プロセッサ１１からの命令に基づき種々のアプリケーションプログラムを格納する。また、ＲＡＭ１３は、アプリケーションプログラムの実行に必要なデータ及びアプリケーションプログラムの実行結果などを格納してもよい。
【００１７】
ＮＶＭ１４は、データの書き込み及び書き換えが可能な不揮発性のメモリである。ＮＶＭ１４は、たとえば、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）又はフラッシュメモリなどから構成される。ＮＶＭ１４は、情報処理装置１０の運用用途に応じて制御プログラム、アプリケーション及び種々のデータなどを格納する。
【００１８】
インターフェース１５は、文字行の画像を取得するためのインターフェースである。インターフェース１５は、外部装置とデータを送受信する。たとえば、インターフェース１５は、スキャナと接続する。また、インターフェース１５は、文字列の画像を格納するメモリと接続するものであってもよい。また、インターフェース１５は、ネットワークを通じて画像を取得するものであってもよい。たとえば、インターフェース１５は、ＵＳＢ（Universal Serial Bus）接続又はＬＡＮ（Local Area Network）接続をサポートする。
【００１９】
操作部１６は、オペレータから種々の操作の入力を受け付ける。操作部１６は、入力された操作を示す信号をプロセッサ１１へ送信する。操作部１６は、タッチパネルから構成されてもよい。
【００２０】
表示部１７は、プロセッサ１１からの画像データを表示する。たとえば、表示部１７は、液晶モニタから構成される。操作部１６がタッチパネルから構成される場合、表示部１７は、操作部１６と一体的に形成されてもよい。
【００２１】
次に、情報処理装置１０が実現する機能について説明する。情報処理装置１０が実現する機能は、プロセッサ１１がＲＯＭ１２又はＮＶＭ１４などに格納されるプログラムを実行することで実現される。
【００２２】
まず、情報処理装置１０のプロセッサ１１は、文字列を含む画像を取得する機能を有する。  
プロセッサ１１は、インターフェース１５を通じて、文字列を含む画像を取得する。たとえば、インターフェース１５がスキャナと接続する場合、プロセッサ１１は、スキャナに画像をスキャンさせる信号を送信して、スキャナから画像を取得する。
【００２３】
また、インターフェース１５がメモリに接続する場合、プロセッサ１１は、メモリが格納する画像を取得する。  
また、インターフェース１５がネットワークに接続する場合、プロセッサ１１は、ネットワークを通じて外部装置に画像を要求するリクエストを送信して、外部装置から画像を取得する。  
プロセッサ１１が文字列を含む画像を取得する方法は、特定の方法に限定されるものではない。
【００２４】
また、プロセッサ１１は、取得した画像の各画素について中腹領域スコアを算出する機能を有する。  
中腹領域スコアは、画素が中腹領域であることに関連するスコアである。たとえば、中腹領域スコアは、画素が中腹領域であることの尤度である。
【００２５】
中腹領域は、文字行領域の中腹に形成される領域である。  
図２は、中腹領域について説明するための図である。  
図２は、文字行２０、中心線２１及び中腹領域２２を示す。ここでは、文字行２０は、一行の文字列である。  
文字行２０の高さＨは、たとえば、文字行２０の平均的な高さである。
【００２６】
中心線２１は、文字行２０の中心に引かれる線である。中心線２１は、文字行２０が記載される方向（記載方向）（図２では、左右方向）に延びる。即ち、中心線２１は、記載方向に直交する方向（直交方向）において、文字行２０の中心に形成される。
【００２７】
中腹領域２２は、文字行２０（文字行２０の文字行領域）の中腹に形成される領域である。中腹領域２２は、直交方向において、文字行２０の中腹に形成される。即ち、中腹領域２２は、直交方向において、文字行２０の上端及び下端から離れた位置に形成される。ここでは、中腹領域２２は、中心線２１を中心に形成される。即ち、中腹領域２２は、中心線２１から直交方向の一方に所定の距離離れた線と逆方向に所定の距離離れた線との間に形成される領域である。
【００２８】
また、中腹領域２２は、記載方向において文字行２０の一端から他端に掛けて形成される。  
中腹領域２２は、文字行２０の高さＨの１／Ｎ倍の高さに形成される。即ち、中腹領域２２は、直交方向において、Ｈの１／Ｎ倍の幅に形成される。ここでは、Ｎは、３である。なお、Ｎの値は、１以上の任意の値でよい。また、中腹領域２２の高さは、高さＨに関係なく所定の値、たとえば３や５、でもよい。
【００２９】
たとえば、プロセッサ１１は、人工知能を用いて中腹領域スコアを算出する。プロセッサ１１は、既知の中腹領域の画像を教師データとして深層学習して得られた学習モデル（たとえば、ネットワーク）などを用いて中腹領域スコアを算出する。
【００３０】
また、プロセッサ１１は、取得した画像の各画素について上端領域スコア（第１の端領域スコア）を算出する機能を有する。
【００３１】
上端領域スコアは、画素が上端領域（第１の端領域）であることに関連するスコアである。たとえば、上端領域スコアは、画素が上端領域であることの尤度である。ここでは、上端領域スコアは、数値が高いほど画素が上端領域である蓋然性が大きいことを示す。
【００３２】
上端領域は、文字行領域の上端に形成される領域である。即ち、上端領域は、文字行領域において上方向（第１の方向）に形成される領域である。
【００３３】
図３は、上端領域について説明するための図である。  
図３は、文字行２０、中心線２１及び上端領域２３を示す。文字行２０及び中心線２１は、前述の通りである。
【００３４】
上端領域２３は、直交方向において、文字行２０（文字行２０の文字行領域）の上端の領域である。ここでは、上端領域２３は、中心線２１よりも直交方向において上部に形成される。
【００３５】
たとえば、プロセッサ１１は、人工知能を用いて上端領域スコアを算出する。プロセッサ１１は、既知の上端領域の画像を教師データとして深層学習して得られた学習モデル（たとえば、ネットワーク）などを用いて上端領域スコアを算出する。
【００３６】
また、プロセッサ１１は、取得した画像の各画素について下端領域スコア（第２の端領域スコア）を算出する機能を有する。
【００３７】
下端領域スコアは、画素が下端領域（第２の端領域）であることに関連するスコアである。たとえば、下端領域スコアは、画素が下端領域であることの尤度である。下端領域スコアは、数値が高いほど画素が下端領域である蓋然性が大きいことを示す。
【００３８】
下端領域は、文字行領域の上端に形成される領域である。即ち、下端領域は、文字行領域において上方向に対向する下方向（第２の方向）に形成される領域である。
【００３９】
図４は、下端領域について説明するための図である。  
図４は、文字行２０、中心線２１及び下端領域２４を示す。文字行２０及び中心線２１は、前述の通りである。
【００４０】
下端領域２４は、直交方向において、文字行２０（文字行２０の文字行領域）の下端の領域である。ここでは、下端領域２４は、中心線２１よりも直交方向において下部に形成される。
【００４１】
たとえば、プロセッサ１１は、人工知能を用いて下端領域スコアを算出する。プロセッサ１１は、既知の下端領域の画像を教師データとして深層学習して得られた学習モデル（たとえば、ネットワーク）などを用いて下端領域スコアを算出する。
【００４２】
なお、中腹領域スコア、上端領域スコア及び下端領域スコアの学習モデルは、Fully Convolutional Networkにsigmoid_cross_entropyをロスとして用いることで実現できる。また、学習モデルは、U-net等のモデル又はSVM、Logistic Regression等の機械学習モデルでもよく、画素ごとに中腹領域スコア、上端領域スコア及び下端領域スコアを出力できるものであればよい。
【００４３】
また、プロセッサ１１は、中腹領域スコアに基づいて画像から中腹領域を特定する機能を有する。
【００４４】
たとえば、プロセッサ１１は、中腹領域スコアを所定の閾値で二値化した画像を生成する。プロセッサ１１は、生成した画像に対してラベリング処理を行うことで、文字行領域ごとに中腹領域を特定する。
【００４５】
なお、プロセッサ１１が中腹領域を特定する方法は、特定の方法に限定されるものではない。
【００４６】
図５は、プロセッサ１１が特定した中腹領域の例を示す。ここでは、プロセッサ１１は、文字列３０及び文字列４０が記載された画像を取得するものとする。
【００４７】
図５が示すように、プロセッサ１１は、文字列３０内に中腹領域３２を特定する。また、プロセッサ１１は、文字列４０内に中腹領域４２を特定する。文字列３０と文字列４０とは、一部重複するが、プロセッサ１１は、中腹領域３２と中腹領域４２とを異なる中腹領域として特定する。
【００４８】
また、図６は、プロセッサ１１が特定した中腹領域の他の例を示す。ここでは、プロセッサ１１は、文字列５０が記載された画像を取得するものとする。
【００４９】
図６が示すように、プロセッサ１１は、文字列５０内に中腹領域５２を特定する。文字列５０は、所定の角度で傾いている。また、文字列５０は、途中で折れ曲がる。しかしながら、プロセッサ１１は、文字列５０の傾き及び折れ曲がりに沿って中腹領域５２を特定する。
【００５０】
また、プロセッサ１１は、特定した中腹領域及び算出した上端領域スコアに基づいて、上端領域の上端（第１の境界）を探索する機能を有する。  
即ち、プロセッサ１１は、文字行領域の上端を形成する線（上端線）を探索する。
【００５１】
図７は、プロセッサ１１が上端線６５を探索する動作例を説明するための図である。  
ここでは、取得した画像の横軸をＸ軸とし、縦軸をＹ軸とする。また、Ｘ軸において、左側から右側に掛けてＸ座標の値が上昇するものとする。また、Ｙ軸において、上側から下側に掛けてＹ座標の値が上昇するものとする。また、プロセッサ１１は、中腹領域６２を特定したものとする。
【００５２】
たとえば、プロセッサ１１は、中腹領域６２の左端のＸ座標を取得する。左端のＸ座標を取得すると、プロセッサ１１は、左端のＸ座標における中腹領域６２の上端（第１の方向の端）のＹ座標を取得する。プロセッサ１１は、中腹領域６２の上端のＹ座標から上部に進み、上端線の座標を探索する。
【００５３】
プロセッサ１１は、中腹領域６２の上端のＹ座標から上部に進みながら、各座標における上端領域スコアを取得する。プロセッサ１１は、上端領域スコアが所定の閾値以下になるまで上部に進む。即ち、プロセッサ１１は、中腹領域６２の上端のＹ座標から上方向に沿って画素ごとに上端領域スコアが所定の閾値以下となるか否かを順に判定する。プロセッサ１１は、上端領域スコアが所定の閾値以下になると探索を終了する。プロセッサ１１は、上端領域スコアが所定の閾値以下になる座標を上端座標リストに格納する。
【００５４】
ここで、上端座標リストは、上端線の座標を格納するリストである。  
プロセッサ１１は、中腹領域６２の左端のＸ座標から右端のＸ座標まで上記の動作を繰り返して、上端線を探索する。
【００５５】
また、プロセッサ１１は、特定した中腹領域及び算出した下端領域スコアに基づいて、下端領域の下端（第２の境界）を探索する機能を有する。  
即ち、プロセッサ１１は、文字行領域の下端を形成する線（下端線）を探索する。
【００５６】
図８は、プロセッサ１１が下端線６６を探索する動作例を説明するための図である。  
たとえば、プロセッサ１１は、中腹領域６２の左端のＸ座標を取得する。左端のＸ座標を取得すると、プロセッサ１１は、左端のＸ座標における中腹領域６２の下端（第２の方向の端）のＹ座標を取得する。プロセッサ１１は、中腹領域６２の下端のＹ座標から下部に進み、下端線の座標を探索する。
【００５７】
プロセッサ１１は、中腹領域６２の下端のＹ座標から下部に進みながら、各座標における下端領域スコアを取得する。プロセッサ１１は、下端領域スコアが所定の閾値以下になるまで下部に進む。即ち、プロセッサ１１は、中腹領域６２の下端のＹ座標から下方向に沿って画素ごとに下端領域スコアが所定の閾値以下となるか否かを順に判定する。プロセッサ１１は、下端領域スコアが所定の閾値以下になると探索を終了する。プロセッサ１１は、下端領域スコアが所定の閾値以下になる座標を下端座標リストに格納する。
【００５８】
ここで、下端座標リストは、下端線の座標を格納するリストである。  
プロセッサ１１は、中腹領域６２の左端のＸ座標から右端のＸ座標まで上記の動作を繰り返して、下端線を探索する。
【００５９】
また、プロセッサ１１は、上端線及び下端線に基づいて文字行領域を特定する機能を有する。  
プロセッサ１１は、上端線と下端線との間の領域を文字行領域として特定する。
【００６０】
図９は、プロセッサ１１が特定した文字行領域６７の例を示す。図９が示すように、プロセッサ１１は、上端線６５と下端線６６との間の領域を文字行領域６７として特定する。即ち、プロセッサ１１は、上端線６５と下端線６６と中腹領域６２の左端のＸ座標においてＹ軸方向に延びる直線と右端のＸ座標においてＹ軸方向に延びる直線とに囲まれた領域を文字行領域６７として特定する。
【００６１】
プロセッサ１１は、文字行領域６７を特定すると、文字行リストに文字行領域６７を格納する。文字行リストは、取得された画像における各文字行領域を格納する。
【００６２】
次に、情報処理装置１０の動作例について説明する。図１０は、情報処理装置１０の動作例について説明するためのフローチャートである。
【００６３】
まず、情報処理装置１０のプロセッサ１１は、インターフェース１５を通じて画像を取得する（Ｓ１１）。画像を取得すると、プロセッサ１１は、画像の各画素について中腹領域スコアを算出する（Ｓ１２）。
【００６４】
各画素について中腹領域スコアを算出すると、プロセッサ１１は、各画素について上端領域スコアを算出する（Ｓ１３）。各画素について上端領域スコアを算出すると、プロセッサ１１は、各画素について下端領域スコアを算出する（Ｓ１４）。
【００６５】
各画素について下端領域スコアを算出すると、プロセッサ１１は、各画素の中腹領域スコアに基づいて画像から中腹領域を特定する（Ｓ１５）。中腹領域を特定すると、プロセッサ１１は、文字行領域の特定を完了したか判定する（Ｓ１６）。たとえば、プロセッサ１１は、特定した各中腹領域について文字行領域を特定したか判定する。
【００６６】
文字行領域の特定を完了していないと判定すると（Ｓ１６、ＮＯ）、プロセッサ１１は、中腹領域及び上端領域スコアなどに基づいて上端線を探索する（Ｓ１７）。上端線を探索すると、プロセッサ１１は、中腹領域及び下端領域スコアなどに基づいて下端線を探索する（Ｓ１８）。
【００６７】
下端線を探索すると、プロセッサ１１は、上端線及び下端線に基づいて文字行領域を特定する（Ｓ１９）。文字行領域を特定すると、プロセッサ１１は、文字行リストに文字行領域を格納する（Ｓ２０）。文字行リストに文字行領域を格納すると、プロセッサ１１は、Ｓ１６に戻る。
【００６８】
文字行領域の特定を完了したと判定すると（Ｓ１６、ＹＥＳ）、プロセッサ１１は、文字行リストを出力する（Ｓ２１）。文字行リストを出力すると、プロセッサ１１は、動作を終了する。
【００６９】
次に、プロセッサ１１が上端線を探索する動作例（Ｓ１７）について説明する。図１１は、プロセッサ１１が上端線を探索する動作例（Ｓ１７）について説明するためのフローチャートである。
【００７０】
まず、プロセッサ１１は、中腹領域を取得する（Ｓ３１）。中腹領域を取得すると、プロセッサ１１は、Ｘに中腹領域の左端のＸ座標（Ｌｅｆｔ）を代入する（Ｓ３２）。ＸにＬｅｆｔを代入すると、プロセッサ１１は、Ｘが中腹領域の右端のＸ座標（Ｒｉｇｈｔ）よりも大きいか判定する（Ｓ３３）。
【００７１】
ＸがＲｉｇｈｔ以下であると判定すると（Ｓ３３、ＮＯ）、プロセッサ１１は、座標Ｘにおける中腹領域の上端の座標（Ｙｕ）をＹに代入する（Ｓ３４）。ＹｕをＹに代入すると、プロセッサ１１は、座標（Ｘ，Ｙ）における上端領域スコアが所定の閾値以下であるか判定する（Ｓ３５）。
【００７２】
座標（Ｘ，Ｙ）における上端領域スコアが所定の閾値以下でないと判定すると（Ｓ３５、ＮＯ）、プロセッサ１１は、ＹにＹ−１を代入する（Ｓ３６）。ＹにＹ−１を代入すると、プロセッサ１１は、Ｓ３５に戻る。
【００７３】
座標（Ｘ，Ｙ）における上端領域スコアが所定の閾値以下であると判定すると（Ｓ３５、ＹＥＳ）、プロセッサ１１は、上端座標リストに座標（Ｘ，Ｙ）を格納する（Ｓ３７）。上端座標リストに座標（Ｘ，Ｙ）を格納すると、プロセッサ１１は、ＸにＸ＋１を代入する（Ｓ３８）。
【００７４】
ＸにＸ＋１を代入すると、プロセッサ１１は、Ｓ３３に戻る。  
Ｘが中腹領域の右端のＸ座標（Ｒｉｇｈｔ）よりも大きいと判定すると（Ｓ３３、ＹＥＳ）、プロセッサ１１は、動作を終了する。
【００７５】
次に、プロセッサ１１が下端線を探索する動作例（Ｓ１８）について説明する。図１２は、プロセッサ１１が下端線を探索する動作例（Ｓ１８）について説明するためのフローチャートである。
【００７６】
まず、プロセッサ１１は、中腹領域を取得する（Ｓ４１）。中腹領域を取得すると、プロセッサ１１は、Ｘに中腹領域の左端のＸ座標（Ｌｅｆｔ）を代入する（Ｓ４２）。ＸにＬｅｆｔを代入すると、プロセッサ１１は、Ｘが中腹領域の右端のＸ座標（Ｒｉｇｈｔ）よりも大きいか判定する（Ｓ４３）。
【００７７】
ＸがＲｉｇｈｔ以下であると判定すると（Ｓ４３、ＮＯ）、プロセッサ１１は、座標Ｘにおける中腹領域の下端の座標（Ｙｄ）をＹに代入する（Ｓ４４）。ＹｄをＹに代入すると、プロセッサ１１は、座標（Ｘ，Ｙ）における下端領域スコアが所定の閾値以下であるか判定する（Ｓ４５）。
【００７８】
座標（Ｘ，Ｙ）における下端領域スコアが所定の閾値以下でないと判定すると（Ｓ４５、ＮＯ）、プロセッサ１１は、ＹにＹ＋１を代入する（Ｓ４６）。ＹにＹ＋１を代入すると、プロセッサ１１は、Ｓ４５に戻る。
【００７９】
座標（Ｘ，Ｙ）における下端領域スコアが所定の閾値以下であると判定すると（Ｓ４５、ＹＥＳ）、プロセッサ１１は、下端座標リストに座標（Ｘ，Ｙ）を格納する（Ｓ４７）。下端座標リストに座標（Ｘ，Ｙ）を格納すると、プロセッサ１１は、ＸにＸ＋１を代入する（Ｓ４８）。
【００８０】
ＸにＸ＋１を代入すると、プロセッサ１１は、Ｓ４３に戻る。  
Ｘが中腹領域の右端のＸ座標（Ｒｉｇｈｔ）よりも大きいと判定すると（Ｓ４３、ＹＥＳ）、プロセッサ１１は、動作を終了する。
【００８１】
なお、プロセッサ１１は、文字行リストが格納する文字行領域に基づいて文字の認識処理を行ってもよい。また、プロセッサ１１は、文字行リストを外部装置に送信してもよい。
【００８２】
また、プロセッサ１１は、さらに下端領域スコアに基づいて上端線を探索してもよい。たとえば、プロセッサ１１は、座標を上部に進めながら、下端領域スコアが上端領域スコアを上回る座標を上端線の座標として特定してもよい。また、プロセッサ１１は、座標を上部に進めながら、上端領域スコアが所定の閾値以下となる場合又は下端領域スコアが上端領域スコアを上回る場合、座標を上端線の座標として特定してもよい。
【００８３】
また、プロセッサ１１は、さらに上端領域スコアに基づいて下端線を探索してもよい。たとえば、プロセッサ１１は、座標を下部に進めながら、上端領域スコアが下端領域スコアを上回る座標を下端線の座標として特定してもよい。また、プロセッサ１１は、座標を下部に進めながら、下端領域スコアが所定の閾値以下となる場合又は上端領域スコアが下端領域スコアを上回る場合、座標を下端線の座標として特定してもよい。
【００８４】
また、プロセッサ１１は、上端線を探索する際に、座標を上部に進めながら各座標の上端領域スコアを算出してもよい。
【００８５】
また、プロセッサ１１は、下端線を探索する際に、座標を下部に進めながら各座標の下端領域スコアを算出してもよい。
【００８６】
また、プロセッサ１１は、中心線の座標から上端線を探索してもよい。たとえば、プロセッサ１１は、中心線のＹ座標から上部に座標を進めて、上端線を探索する。
【００８７】
また、プロセッサ１１は、中心線の座標から下端線を探索してもよい。たとえば、プロセッサ１１は、中心線のＹ座標から下部に座標を進めて、下端線を探索する。
【００８８】
また、プロセッサ１１は、文字行領域以外の領域を特定するものであってもよい。プロセッサ１１が特定する対象は、特定の構成に限定されるものではない。
【００８９】
次に、情報処理装置１０の変形例について説明する。  
情報処理装置１０は、中腹領域から３以上の方向に境界を探索する。
【００９０】
図１３は、情報処理装置１０のプロセッサ１１が取得する撮影画像の例を示す。図１３が示すように、撮影画像は、認識する対象として対象領域７１を含む。
【００９１】
対象領域７１は、所定の対象物が表示される領域である。たとえば、対象領域７１は、所定の人、動物又は物品が表示される領域である。対象領域７１は、任意の形状を有する。対象領域７１に表示される対象物及び対象領域７１の形状は、特定の構成に限定されるものではない。
【００９２】
次に、プロセッサ１１の動作例について説明する。  
図１４は、プロセッサ１１の動作例を説明するための図である。図１４が示すように、プロセッサ１１は、中腹領域７２から８方向に境界を探索する。
【００９３】
まず、プロセッサ１１は、各画素において中腹領域スコアを算出する。ここでは、中腹領域は、対象領域の内部に形成され対象領域の境界に接しない領域である。たとえば、中腹領域は、対象領域の中心部に所定の半径で形成される円型の領域である。
【００９４】
また、プロセッサ１１は、各画素において、各方向の端領域スコアを算出する。端領域は、対象領域内において所定の方向に形成される領域である。端領域スコアは、画素が端領域であることに関連するスコアである。
【００９５】
ここでは、プロセッサ１１は、各画素において、０度方向、４５度方向、９０度方向、１３５度方向、１８０度方向、２２５度方向、２７０度方向及び３１５度方向の端領域スコアを算出する。
【００９６】
また、プロセッサ１１は、中腹領域スコアに基づいて中腹領域を特定する。プロセッサ１１が中腹領域を特定する方法は、前述の通りである。
【００９７】
図１４が示す例では、プロセッサ１１は、中腹領域７２を特定する。  
また、プロセッサ１１は、中腹領域７２及び各端領域スコアに基づいて、各方向の端領域の境界を探索する。
【００９８】
プロセッサ１１は、所定の方向における中腹領域７２の端から当該方向に向って当該方向の端領域の境界を探索する。たとえば、プロセッサ１１は、当該方向の端領域スコアが所定の閾値以下となる点を端領域の境界の一点（境界点）として特定する。同様に、プロセッサ１１は、各方向において、境界点を探索する。
【００９９】
図１５は、プロセッサ１１が探索した境界点を示す。図１５が示すように、プロセッサ１１は、境界点８１乃至境界点８８を探索する。
【０１００】
境界点８１乃至境界点８８は、プロセッサ１１が０度方向、４５度方向、９０度方向、１３５度方向、１８０度方向、２２５度方向、２７０度方向及び３１５度方向にそれぞれ探索して得られた境界点である。
【０１０１】
プロセッサ１１は、探索した境界点に基づいて対象物が表示される対象領域を特定する。たとえば、プロセッサ１１は、探索した境界点を線（たとえば、直線）で結んで形成される領域を検出対象が表示される対象領域として特定する。
【０１０２】
図１５が示す例では、プロセッサ１１は、検出対象が表示される対象領域として、領域７３を特定する。  
領域７３は、境界点８１乃至境界点８８を直線で結んで形成される。
【０１０３】
なお、プロセッサ１１は、境界点８１乃至境界点８８を曲線で結んで形成される領域を検出対象が表示される対象領域として特定してもよい。プロセッサ１１が境界点から検出対象が表示される対象領域を特定する方法は、特定の方法に限定されるものではない。
【０１０４】
また、プロセッサ１１は、所定の方向の境界点として複数の境界点を探索してもよい。たとえば、プロセッサ１１は、所定の幅で所定の方向に探索を行い複数の境界点を探索してもよい。
【０１０５】
また、プロセッサ１１は、３Ｄ空間において所定の領域を特定するものであってもよい。たとえば、プロセッサ１１は、３Ｄ空間において中腹領域を特定し中腹領域から複数の方向に境界線（又は、境界点）を探索してもよい。
【０１０６】
以上のように構成された情報処理装置は、１行の文字列から構成される文字行の中腹領域を特定する。情報処理装置は、中腹領域に基づいて上端領域の上端を探索する。また、情報処理装置は、中腹領域に基づいて上端領域の下端を探索する。情報処理装置は、探索した上端及び下端に基づいて文字行の領域を特定する。その結果、情報処理装置は、文字行が傾いている又は曲がっている場合などにおいても適切に文字行の領域を特定することができる。
【０１０７】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１０８】
１０…情報処理装置、１１…プロセッサ、１２…ＲＯＭ、１３…ＲＡＭ、１４…ＮＶＭ、１５…インターフェース、１６…操作部、１７…表示部、２０…文字行、２１…中心線、２２…中腹領域、２３…上端領域、２４…下端領域、３０…文字列、３２…中腹領域、４０…文字列、４２…中腹領域、５０…文字列、５２…中腹領域、６２…中腹領域、６５…上端線、６６…下端線、６７…文字行領域、７１…対象領域、７２…中腹領域、７３…領域、８１乃至８８…境界点。
【図１】
2020135272.tif 000003
【図２】
2020135272.tif 000004
【図３】
2020135272.tif 000005
【図４】
2020135272.tif 000006
【図５】
2020135272.tif 000007
【図６】
2020135272.tif 000008
【図７】
2020135272.tif 000009
【図８】
2020135272.tif 000010
【図９】
2020135272.tif 000011
【図１０】
2020135272.tif 000012
【図１１】
2020135272.tif 000013
【図１２】
2020135272.tif 000014
【図１３】
2020135272.tif 000015
【図１４】
2020135272.tif 000016
【図１５】
2020135272.tif 000017