IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ソフトバンクモバイル株式会社の特許一覧

特許7602691情報処理装置、情報処理方法及び情報処理プログラム
<>
  • 特許-情報処理装置、情報処理方法及び情報処理プログラム 図1
  • 特許-情報処理装置、情報処理方法及び情報処理プログラム 図2
  • 特許-情報処理装置、情報処理方法及び情報処理プログラム 図3
  • 特許-情報処理装置、情報処理方法及び情報処理プログラム 図4
  • 特許-情報処理装置、情報処理方法及び情報処理プログラム 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-12-10
(45)【発行日】2024-12-18
(54)【発明の名称】情報処理装置、情報処理方法及び情報処理プログラム
(51)【国際特許分類】
   G06T 7/00 20170101AFI20241211BHJP
   G06V 10/24 20220101ALI20241211BHJP
   G06V 10/32 20220101ALI20241211BHJP
   G06V 10/72 20220101ALI20241211BHJP
   G06V 10/25 20220101ALI20241211BHJP
【FI】
G06T7/00 350B
G06V10/24
G06V10/32
G06V10/72
G06V10/25
【請求項の数】 12
(21)【出願番号】P 2024121301
(22)【出願日】2024-07-26
【審査請求日】2024-08-08
【早期審査対象出願】
(73)【特許権者】
【識別番号】501440684
【氏名又は名称】ソフトバンク株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】ドゥッタ リシャブ
(72)【発明者】
【氏名】佐藤 貴俊
【審査官】伊知地 和之
(56)【参考文献】
【文献】特開2023-026154(JP,A)
【文献】特開2022-159774(JP,A)
【文献】中国特許出願公開第111104941(CN,A)
【文献】特開2005-006255(JP,A)
【文献】特開平08-339416(JP,A)
【文献】特開2000-251082(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00 - 7/90
G06V 10/00 - 20/90
G06V 30/00 - 30/12
G06V 30/14 - 30/168
G06V 30/18 - 30/222
G06V 30/224
G06V 30/226 - 30/32
G06V 30/40 - 30/416
G06V 30/418
G06V 30/42 - 30/424
G06V 40/16
G06V 40/20
CSDB(日本国特許庁)
(57)【特許請求の範囲】
【請求項1】
文字列を含む画像から、機械学習モデルによって前記文字列の位置を示す矩形状の領域である文字列領域に関する文字列領域情報を抽出する抽出部と、
前記文字列領域情報に基づいて、前記文字列領域ごとに、前記文字列領域の基準方向に対する傾きを計算する計算部と、
前記文字列領域を含む画像が入力された場合に、前記文字列領域ごとに、前記文字列領域内に位置する文字列の向きが直立状態であるか、または、反転状態であるかを分類した分類結果を出力する機械学習モデルを用いて判定する判定部と、
前記計算部の計算結果および前記判定部の判定結果に基づいて、前記文字列ごとに、前記文字列の回転角度を推定する推定部と、
を備える情報処理装置。
【請求項2】
文字列を含む画像から、機械学習モデルによって前記文字列の位置を示す矩形状の領域である文字列領域に関する文字列領域情報を抽出する抽出部と、
前記文字列領域情報に基づいて、前記文字列領域ごとに、前記文字列領域の基準方向に対する傾きを計算する計算部と、
前記文字列領域ごとに、前記文字列領域内に位置する文字列の向きが直立状態であるか、または、反転状態であるかを判定する判定部と、
前記計算部の計算結果および前記判定部の判定結果に基づいて、前記文字列ごとに、前記文字列の回転角度を推定する推定部と、
を備え
前記推定部は、複数の前記文字列の計算された前記傾きの回転角度に基づいて、4以上の離散化された角度の中から1の角度を選択し、選択した1の角度を前記画像の回転角度として出力する
情報処理装置。
【請求項3】
前記推定部は、前記文字列ごとに、前記直立状態であると判定された場合に、前記文字列の回転角度は計算された前記傾きの回転角度、前記反転状態であると判定された場合に、前記文字列の回転角度は計算された前記傾きに180°を加算した回転角度を推定する、
請求項1に記載の情報処理装置。
【請求項4】
前記計算部は、
前記文字列領域の基準方向に対する傾きとして、前記文字列領域の少なくともいずれか一辺の方向の基準方向に対する傾きを計算する
請求項1又は請求項2に記載の情報処理装置。
【請求項5】
前記画像を回転させる処理を行う回転補正部をさらに備え、
前記計算部は、
前記文字列領域情報に基づいて、前記文字列領域ごとに、前記文字列領域のアスペクト比を計算し、
前記回転補正部は、
複数の前記アスペクト比の平均が、アスペクト閾値との比較に基づく所定の条件を満たす場合、前記画像を90°回転させる処理を行う
請求項1又は請求項2に記載の情報処理装置。
【請求項6】
前記推定部は、
複数の前記文字列の回転角度の平均に基づいて、前記画像の回転角度を推定し、推定した前記画像の回転角度を出力する
請求項1又は請求項2に記載の情報処理装置。
【請求項7】
前記推定部は、
4以上の離散化された角度の中から1の角度を選択し、選択した1の角度を前記画像の回転角度として出力する
請求項に記載の情報処理装置。
【請求項8】
前記抽出部は、
複数の異なる回転角度で傾いた文字列の各々を含む複数の画像の各々が入力された場合、前記複数の異なる回転角度で傾いた文字列の各々に対応する文字列領域に関する文字列領域情報を出力するように学習された前記機械学習モデルによって前記文字列領域情報を抽出する
請求項1又は請求項2に記載の情報処理装置。
【請求項9】
情報処理装置が実行するプログラムにより実現される情報処理方法であって、
文字列を含む画像から、機械学習モデルによって前記文字列の位置を示す矩形状の領域である文字列領域に関する文字列領域情報を抽出する抽出工程と、
前記文字列領域情報に基づいて、前記文字列領域ごとに、前記文字列領域の基準方向に対する傾きを計算する計算工程と、
前記文字列領域を含む画像が入力された場合に、前記文字列領域ごとに、前記文字列領域内に位置する文字列の向きが直立状態であるか、または、反転状態であるかを分類した分類結果を出力する機械学習モデルを用いて判定する判定工程と、
前記計算工程の計算結果および前記判定工程の判定結果に基づいて、前記文字列ごとに、前記文字列の回転角度を推定する推定工程と、
を含む情報処理方法。
【請求項10】
情報処理装置が実行するプログラムにより実現される情報処理方法であって、
文字列を含む画像から、機械学習モデルによって前記文字列の位置を示す矩形状の領域である文字列領域に関する文字列領域情報を抽出する抽出工程と、
前記文字列領域情報に基づいて、前記文字列領域ごとに、前記文字列領域の基準方向に対する傾きを計算する計算工程と、
前記文字列領域ごとに、前記文字列領域内に位置する文字列の向きが直立状態であるか、または、反転状態であるかを判定する判定工程と、
前記計算工程の計算結果および前記判定工程の判定結果に基づいて、前記文字列ごとに、前記文字列の回転角度を推定する推定工程と、
を備え
前記推定工程は、複数の前記文字列の計算された前記傾きの回転角度に基づいて、4以上の離散化された角度の中から1の角度を選択し、選択した1の角度を前記画像の回転角度として出力する
情報処理方法。
【請求項11】
文字列を含む画像から、機械学習モデルによって前記文字列の位置を示す矩形状の領域である文字列領域に関する文字列領域情報を抽出する抽出手順と、
前記文字列領域情報に基づいて、前記文字列領域ごとに、前記文字列領域の基準方向に対する傾きを計算する計算手順と、
前記文字列領域を含む画像が入力された場合に、前記文字列領域ごとに、前記文字列領域内に位置する文字列の向きが直立状態であるか、または、反転状態であるかを分類した分類結果を出力する機械学習モデルを用いて判定する判定手順と、
前記計算手順の計算結果および前記判定手順の判定結果に基づいて、前記文字列ごとに、前記文字列の回転角度を推定する推定手順と、
をコンピュータに実行させる情報処理プログラム。
【請求項12】
文字列を含む画像から、機械学習モデルによって前記文字列の位置を示す矩形状の領域である文字列領域に関する文字列領域情報を抽出する抽出手順と、
前記文字列領域情報に基づいて、前記文字列領域ごとに、前記文字列領域の基準方向に対する傾きを計算する計算手順と、
前記文字列領域ごとに、前記文字列領域内に位置する文字列の向きが直立状態であるか、または、反転状態であるかを判定する判定手順と、
前記計算手順の計算結果および前記判定手順の判定結果に基づいて、前記文字列ごとに、前記文字列の回転角度を推定する推定手順と、
をコンピュータに実行させ
前記推定手順は、複数の前記文字列の計算された前記傾きの回転角度に基づいて、4以上の離散化された角度の中から1の角度を選択し、選択した1の角度を前記画像の回転角度として出力する
情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法及び情報処理プログラムに関する。
【背景技術】
【0002】
従来、画像に含まれる文字を認識するOCR(Optical Character Recognition、光学的文字認識)の技術が知られている。近年では、ディープラーニングを用いたOCRであるAI-OCRに関する技術が知られている。ここで、画像に含まれる文字列が媒体上において回転している場合、または、文字列が媒体には正対していしているものの媒体自体が回転している場合には、OCRによる文字列の認識が困難になることが知られている。
【0003】
これに対し、画像に含まれる文字列の回転角度を推定する技術が知られている。例えば、所定の角度で回転させた文字である回転文字を示す画像である回転文字画像が入力層に入力された場合に、中間層による演算を経て、回転文字画像に含まれる文字の識別率を算出し、識別率の最も高い値ならびに識別率の最も高い値に対応する文字情報および所定の角度を示す回転角度情報を出力層から出力するようにコンピュータを機能させる学習モデルに関する技術が知られている。
【先行技術文献】
【非特許文献】
【0004】
【文献】特開2023-85076号報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記の従来技術では、学習モデルを用いて、回転文字画像に含まれる文字の識別率を算出し、識別率の最も高い値ならびに識別率の最も高い値に対応する文字情報および所定の角度を示す回転角度情報を出力するに過ぎないため、文字列を含む画像の回転角度を精度よく推定することを可能とすることができるとは限らない。
【0006】
本願は、文字列を含む画像の回転角度を精度よく推定することができる情報処理装置、情報処理方法及び情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本願に係る情報処理装置は、文字列を含む画像から、機械学習モデルによって前記文字列の位置を示す矩形状の領域である文字列領域に関する文字列領域情報を抽出する抽出部と、前記文字列領域情報に基づいて、前記文字列領域ごとに、前記文字列領域の基準方向に対する傾きを計算する計算部と、前記文字列領域ごとに、前記文字列領域内に位置する文字列の向きが直立状態であるか、または、反転状態であるかを判定する判定部と、前記計算部の計算結果および前記判定部の判定結果に基づいて、前記文字列ごとに、前記文字列の回転角度を推定する推定部と、を備える。
【発明の効果】
【0008】
実施形態の一態様によれば、文字列を含む画像の回転角度を精度よく推定することができる。
【図面の簡単な説明】
【0009】
図1図1は、実施形態に係る情報処理装置の構成例を示す図である。
図2図2は、実施形態に係る情報処理装置による情報処理の一例について説明するための図である。
図3図3は、実施形態に係る情報処理装置による情報処理の一例について説明するための図である。
図4図4は、実施形態に係る情報処理装置による情報処理の一例について説明するための図である。
図5図5は、情報処理装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。
【発明を実施するための形態】
【0010】
以下に、本願に係る情報処理装置、情報処理方法及び情報処理プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る情報処理装置、情報処理方法及び情報処理プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。また、以下では、AI(人工知能)と機械学習モデルを同義の用語として扱う。
【0011】
(実施形態)
〔1.はじめに〕
従来、画像に含まれる文字を認識するOCR(Optical Character Recognition、光学的文字認識)の技術が知られている。近年では、ディープラーニングを用いたOCRであるAI-OCRに関する技術が知られている。例えば、各種サービスにおける本人確認において、AI-OCRの技術を用いて、利用者が提出した身分証明書の画像に含まれる文字列を抽出し、本人認証が行われている。
【0012】
しかしながら、AI-OCRも万能ではない。具体的には、文字列の回転に対するロバストネスが低い機械学習モデルがほとんどである。そのため、少し文字列が傾いているだけで誤認識したり、認識精度が大きく下がってしまうという課題があった。ここで、文字列が傾いている場合とは、画像に含まれる文字列が媒体上において回転している場合、および、文字列が媒体には正対していしているものの媒体自体が回転している場合の両方を含む。
【0013】
これに対し、本願発明の発明者は、AI-OCR自体の精度を向上させることには限界があると考えた。また、本願発明の発明者は、文字列を含む画像の回転角度を精度よく推定し、精度よく推定した回転角度に基づいて画像を回転することにより、AI-OCRによる文字列の認識精度を向上させることに注目した。本願発明は、このような課題認識に基づき、例えば、身分証明書などの文字列を含む画像から、文字列ごとの回転角度を高精度に推定する手法に関するものである。
【0014】
具体的には、実施形態に係る情報処理装置100は、文字列を含む画像から、文字列の位置を示す矩形状の領域である文字列領域(例えば、バウンディングボックス)に関する文字列領域情報を抽出するオープンソースのAIに対し、複数の異なる回転角度で傾いた文字列の各々を含む複数の画像の各々を含む学習データを与えて事前学習させることでAIの回転ロバストネスを向上させる。例えば、オープンソースのAIは、CRAFT(非特許文献1;Youngmin Baek et al. ,"Character region awareness for text detection." , [online], [令和6年7月13日検索], 2019, Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. , https://arxiv.org/pdf/1904.01941)であってよい。また、情報処理装置100は、回転ロバストネスを向上させたAIが出力する文字列領域情報に基づいて、文字列領域の基準方向に対する傾きおよびアスペクト比を算出し、文字列領域の基準方向に対する傾きおよびアスペクト比に基づいて、文字列ごとの回転角度を高精度に推定する。これにより、情報処理装置100は、高精度に推定された複数の文字列の回転角度の平均に基づいて、文字列を含む画像の回転角度を精度よく推定することができる。
【0015】
〔2.情報処理装置の構成〕
図1を用いて、実施形態に係る情報処理装置100の構成例について説明する。図1は、実施形態に係る情報処理装置100の構成例を示す図である。情報処理装置100は、通信部110と、記憶部120と、制御部130とを有する。
【0016】
(通信部110)
通信部110は、例えば、NIC(Network Interface Card)によって実現される。通信部110は、各種ネットワークと有線または無線で接続され、外部の情報処理装置(例えば、利用者によって使用される端末装置)との間で情報の送受信を行う。
【0017】
(記憶部120)
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。記憶部120は、各種データを記憶する。また、記憶部120は、各種プログラムを記憶する。例えば、記憶部120は、実施形態に係る情報処理プログラムを記憶する。
【0018】
(制御部130)
制御部130は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、情報処理装置100内部の記憶装置に記憶されている各種プログラムがRAMを作業領域として実行されることにより実現される。また、制御部130は、コントローラであり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。
【0019】
制御部130は、抽出部131と、計算部132と、回転補正部133と、判定部134と、推定部135と、提供部136を機能部として有し、以下に説明する情報処理の作用を実現または実行してよい。なお、制御部130の内部構成は、図1に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、各機能部は、制御部130の機能を示したものであり、必ずしも物理的に区別されるものでなくともよい。
【0020】
(抽出部131)
抽出部131は、文字列を含む画像を生成する。例えば、抽出部131は、通信部110を介して、文字列が記載された媒体の画像を利用者の端末装置から取得する。例えば、媒体は、身分証明書等のカードや文書であってよい。続いて、抽出部131は、文字列が記載された媒体の画像に基づいて、文字列を含む画像を生成する。図2は、実施形態に係る情報処理装置による情報処理の一例について説明するための図である。図2の左側では、抽出部131は、「テキストボックス」という横書きの文字列T11~T13が記載された媒体の画像D1を取得する。続いて、抽出部131は、媒体の画像D1に基づいて、文字列T11~T13を含む画像G1を生成する。具体的には、抽出部131は、2次元の直交座標系(例えば、XY座標系)における媒体の画像D1の位置を示す画像G1を生成する。例えば、抽出部131は、基準方向を示すX軸と、X軸に直交するY軸とを含む平面における媒体の画像D1の位置を示す画像G1を生成する。例えば、抽出部131は、長方形状である画像G1の一組の対辺がX軸と平行であり、画像G1の他の対辺がY軸と平行であるような画像G1を生成する。例えば、抽出部131は、長方形状である画像G1の一つの角がXY座標系の原点Oに対応する画像D1を生成する。図2では、図を見やすくするために、長方形状である画像G1の左下の角がXY座標系の原点Oから少しずれている様子を示す。実際には、抽出部131は、長方形状である画像G1の左下の角がXY座標系の原点Oに対応する画像G1を生成する。
【0021】
また、抽出部131は、文字列を含む画像から、機械学習モデルによって文字列の位置を示す矩形状の領域である文字列領域に関する文字列領域情報を抽出する。例えば、文字列領域は、文字列を囲むバウンディングボックスである。また、文字列領域情報は、文字列領域そのものを含む。また、文字列領域情報は、文字列領域の四角に対応する点の各々の位置を示す座標の情報を含む。具体的には、抽出部131は、文字列を含む画像が入力された場合、文字列領域情報を出力するように学習された機械学習モデルM1を用いて、処理対象の画像から処理対象の画像に対応する文字列領域情報を抽出する。より具体的には、抽出部131は、機械学習モデルM1に処理対象の画像を入力して、機械学習モデルM1から出力される文字列領域情報を取得する。
【0022】
また、抽出部131は、複数の異なる回転角度で傾いた文字列の各々を含む複数の画像の各々が入力された場合、複数の異なる回転角度で傾いた文字列の各々に対応する文字列領域に関する文字列領域情報を出力するように学習された機械学習モデルによって文字列領域情報を抽出する。具体的には、抽出部131は、基準方向に対して反時計回りに回転角度θ(θは、0°≦θ<360°の間の任意の角度)で傾いた文字列を含む画像が入力された場合、回転角度θで傾いた文字列に対応する文字列領域に関する文字列領域情報を出力するように学習された機械学習モデルM1を用いて、処理対象の画像から処理対象の画像に対応する文字列領域情報を抽出する。
【0023】
図2では、抽出部131は、生成した画像G1を機械学習モデルM1に入力して、画像G1から画像G1に含まれる文字列T11~T13の各々の位置を示す文字列領域B11~B13の各々に関する文字列領域情報を抽出する。例えば、抽出部131は、文字列領域情報として、文字列領域B11~B13の各々を抽出する。また、抽出部131は、文字列領域情報として、文字列領域B11~B13の各々の四角の点の位置を示す座標の情報を抽出する。例えば、抽出部131は、文字列領域B11に関する文字列領域情報として、文字列領域B11そのものを抽出する。また、抽出部131は、文字列領域B11に関する文字列領域情報として、文字列領域B11の四角の点P11~P14の各々の位置を示すXY座標の情報を抽出する。
【0024】
(計算部132)
計算部132は、抽出部131によって抽出された文字列領域情報に基づいて、文字列領域の幅がゼロであるような文字列領域を計算から除外する。計算部132は、文字列領域情報に基づいて、線状の文字列領域を計算から除外する。例えば、計算部132は、抽出部131によって文字列領域の四角に対応する4つの点の位置を示すXY座標の情報が抽出されなかった文字列領域を計算から除外する。以下では、計算部132は、文字列領域の幅がゼロでない文字列領域を対象にした計算を行う。
【0025】
計算部132は、文字列領域情報に基づいて、文字列領域ごとに、文字列領域の基準方向に対する傾きを計算する。具体的には、計算部132は、文字列領域の基準方向に対する傾きとして、文字列領域の少なくともいずれか一辺の方向の基準方向に対する傾きを計算する。計算部132は、文字列領域情報に基づいて、文字列領域ごとに、文字列領域の少なくともいずれか一辺の方向の基準方向に対する傾きを計算する。
【0026】
例えば、計算部132は、抽出部131によって抽出された文字列領域の四角に対応する点の位置を示す座標の情報に基づいて、文字列領域の少なくともいずれか一辺の方向の基準方向に対する傾きを計算する。例えば、基準方向は、X軸方向と同じ方向である。なお、基準方向はY軸方向と同じ方向であってもよい。例えば、計算部132は、文字列領域の少なくともいずれか一辺の両端のうち、一方の端に対応する点の位置を示すY座標の値から他方の端に対応する点の位置を示すY座標の値を減算した値である第1の値を計算する。また、計算部132は、文字列領域の少なくともいずれか一辺の両端のうち、一方の端に対応する点の位置を示すX座標の値から他方の端に対応する点の位置を示すX座標の値を減算した値である第2の値を計算する。また、計算部132は、文字列領域の少なくともいずれか一辺の方向の基準方向に対する傾きとして、第1の値を第2の値で除した値を算出する。以下では、文字列領域の少なくともいずれか一辺の方向の基準方向に対する傾きを、文字列領域の基準方向に対する傾きと記載する場合がある。
【0027】
図2では、計算部132は、文字列領域B11の辺のうち、点P11と点P12を両端とする辺のX軸方向に対する傾きを算出する。計算部132は、文字列領域B11の四角に対応する点P11の位置を示す座標(x1,y1)および点P12の位置を示す座標(x2,y2)に基づいて、点P11と点P12を両端とする辺のX軸方向に対する傾きを計算する。例えば、計算部132は、点P12のY座標の値y2から点P11のY座標の値y1を減算した値である第1の値(y2-y1)を計算する。また、計算部132は、点P12のX座標の値x2から点P11のX座標の値x1を減算した値である第2の値(x2-x1)を計算する。また、計算部132は、第1の値(y2-y1)を第2の値(x2-x1)で除した値を点P11と点P12を両端とする辺のX軸方向に対する傾きとして算出する。
【0028】
なお、計算部132は、文字列領域の少なくともいずれか一辺の方向の基準方向に対する傾きであれば、文字列領域のどの辺の方向の基準方向に対する傾きを計算してもよい。例えば、図2では、計算部132は、文字列領域B11の辺のうち、点P11と点P12を両端とする辺のX軸方向に対する傾きを計算する代わりに、点P13と点P14を両端とする辺のX軸方向に対する傾きを計算してもよい。また、計算部132は、点P11と点P12を両端とする辺のX軸方向に対する傾きを計算する代わりに、点P11と点P14を両端とする辺のX軸方向に対する傾きを計算してもよい。また、計算部132は、点P11と点P14を両端とする辺のX軸方向に対する傾きを計算する代わりに、点P12と点P13を両端とする辺のX軸方向に対する傾きを計算してもよい。
【0029】
また、計算部132は、抽出部131によって抽出された文字列領域情報に基づいて、文字列領域ごとに、文字列領域のアスペクト比を計算する。アスペクト比は、縦横比と言い換えることもできる。具体的には、計算部132は、抽出部131によって抽出された文字列領域の四角の点の位置を示す座標の情報に基づいて、文字列領域のアスペクト比を計算する。より具体的には、計算部132は、文字列領域の少なくともいずれか一辺の辺の長さをその辺と交わる辺の長さで除した値を文字列領域のアスペクト比として算出する。なお、文字列領域の形状は、幾何学的に定義された矩形状(長方形)に限られない。具体的には、文字列領域の形状は、許容される程度の違い(誤差・ひずみ)がある場合やその形状に類似する形状をも含む。例えば、文字列領域の形状は、台形であってもよい。例えば、計算部132は、文字列領域の少なくともいずれか一辺の方向の基準方向に対する傾きの大きさ、および、その辺と交わる辺の方向の基準方向に対する傾きの大きさを計算する。続いて、計算部132は、傾きの大きさ同士の比較に基づいて、基準方向に対する傾きの大きさがより小さい方向に対応する辺を特定する。計算部132は、基準方向に対する傾きの大きさがより小さい方向に対応する辺の長さをその辺と交わる辺の長さで除した値を文字列領域のアスペクト比として算出してよい。なお、計算部132は、基準方向に対する傾きの大きさがより小さい方向を横方向、その辺と交わる辺の方向を縦方向と特定してもよい。計算部132は、縦方向の辺の長さを横方向の辺の長さで除した値を文字列領域のアスペクト比として算出してよい。
【0030】
図2では、計算部132は、文字列領域B11の辺のうち、点P11と点P12を両端とする辺のX軸方向に対する傾きΔ1の大きさおよび点P11と点P14を両端とする辺のX軸方向に対する傾きΔ2の大きさを計算する。計算部132は、傾きΔ1の大きさと傾きΔ2の大きさとを比較して、傾きΔ1の大きさの方が小さいので、基準方向に対する傾きの大きさがより小さい方向として、点P11と点P12を両端とする辺の方向を特定する。計算部132は、傾きΔ1の大きさの方が小さいので、点P11と点P12を両端とする辺の方向を横方向と特定してよい。また、計算部132は、傾きΔ1の大きさよりも傾きΔ2の大きさの方が大きいので、点P11と点P14を両端とする辺の方向を縦方向と特定してよい。また、計算部132は、点P11と点P12を両端とする辺の長さL2(横方向の辺の長さL2ともいう)を計算する。計算部132は、文字列領域B11の四角に対応する点P11の位置を示す座標(x1,y1)および点P12の位置を示す座標(x2,y2)に基づいて、横方向の辺の長さL2を計算する。計算部132は、第1の値(y2-y1)を二乗した値と第2の値(x2-x1)を二乗した値との和の正の平方根の値を横方向の辺の長さL2として算出する。また、計算部132は、横方向の辺の長さL2と同様にして、点P11と点P12を両端とする辺と交わる辺として、点P11と点P14を両端とする辺の長さL1を計算する。計算部132は、文字列領域B11の四角に対応する点P11の位置を示す座標(x1,y1)および点P14の位置を示す座標(x4,y4)に基づいて、点P11と点P14を両端とする辺の長さL1(縦方向の辺の長さL1ともいう)を計算する。また、計算部132は、点P11と点P14を両端とする辺の長さL1(縦方向の辺の長さL1ともいう)を点P11と点P12を両端とする辺の長さL2(横方向の辺の長さL2ともいう)で除した値を文字列領域B11のアスペクト比として算出する。
【0031】
(回転補正部133)
回転補正部133は、画像を回転させる処理を行う。具体的には、計算部132は、文字列領域ごとに計算した文字列領域のアスペクト比に基づいて、複数の文字列領域のアスペクト比(以下、複数のアスペクト比ともいう)の平均を計算する。回転補正部133は、計算部132によって計算された複数のアスペクト比の平均とアスペクト閾値とを比較して、複数のアスペクト比の平均が、アスペクト閾値との比較に基づく所定の条件を満たすか否かを判定する。
【0032】
一般的に、文字列を含む画像においては、文字列領域のうち、文字列に含まれる文字の連なる方向の長さの方が文字列に含まれる文字が連なる方向と直交する方向よりも長い。また、画像に含まれる文字の連なる方向が基準方向に対して平行に近い場合、文字列領域の横方向の辺の長さの方が縦方向の辺の長さよりも大きいため、複数のアスペクト比の平均は、アスペクト閾値以下になる。一方、画像に含まれる文字の連なる方向が基準方向に対して垂直に近い場合、文字列領域の縦方向の辺の長さの方が横方向の辺の長さよりも大きいため、複数のアスペクト比の平均は、アスペクト閾値を超える。そこで、回転補正部133は、画像に含まれる文字の連なる方向が基準方向に対して垂直に近いか否かを判定する。具体的には、回転補正部133は、複数のアスペクト比の平均が、アスペクト閾値を超えるか否かを判定する。回転補正部133は、複数のアスペクト比の平均が、アスペクト閾値を超える場合、複数のアスペクト比の平均が、アスペクト閾値との比較に基づく所定の条件を満たすと判定する。回転補正部133は、複数のアスペクト比の平均が、アスペクト閾値との比較に基づく所定の条件を満たす場合、画像を90°回転させる処理を行う。例えば、回転補正部133は、画像を元の状態から時計回りに90°回転させる処理を行う。言い換えると、回転補正部133は、画像を基準方向に対して時計回りに90°回転させる処理を行う。これにより、情報処理装置100は、画像に含まれる文字の連なる方向が基準方向に対して垂直に近い場合には、例えば、画像を基準方向に対して時計回りに90°回転させることで、画像に含まれる文字の連なる方向を基準方向に対して平行に近い状態にすることができる。
【0033】
図3は、実施形態に係る情報処理装置による情報処理の一例について説明するための図である。図3の左側の図は、画像に含まれる文字の連なる方向が基準方向に対して垂直に近い場合を示す。具体的には、図3の上段の左側の図は、画像に含まれる文字列の向きが基準方向(図3における水平方向または横方向に対応する方向)に対して反時計回りに90°回転している場合を示す。また、図3の上段の左側の図では、画像に含まれる文字列に対応する文字列領域B31は、縦方向の辺の長さHの方が横方向の辺の長さWよりも大きい様子を示す。回転補正部133は、文字列領域B31のアスペクト比がアスペクト閾値を超えると判定する。回転補正部133は、文字列領域B31のアスペクト比がアスペクト閾値を超えるので、文字列領域B31を含む画像を元の状態から時計回りに90°回転させる処理を行う。図3の上段の右側の図は、回転補正部133によって文字列領域B31を含む画像が元の状態から時計回りに90°回転されたことにより、回転後の画像に含まれる文字列領域B31(以下、回転後の文字列領域B31と記載する場合がある。)の向きが基準方向と平行な状態に変化した様子を示す。また、回転後の文字列領域B31内に位置する文字列の向きは、基準方向に対して回転していない状態に変化した。言い換えると、回転後の文字列領域B31内に位置する文字列の向きは、基準方向に対して反時計回りに0°回転している状態に変化した。以下では、文字列領域内に位置する文字列の向きが基準方向に対して回転していない状態(言い換えると、基準方向に対して反時計回りに0°回転している状態)を「直立状態」と記載する場合がある。
【0034】
また、図3の下段の左側の図は、画像に含まれる文字列の向きが基準方向に対して反時計回りに270°回転している点が図3の上段の左側の図と異なる。また、図3の下段の左側の図では、図3の上段の左側の図と同様に、画像に含まれる文字列に対応する文字列領域B41は、縦方向の辺の長さHの方が横方向の辺の長さWよりも大きい様子を示す。回転補正部133は、文字列領域B41のアスペクト比がアスペクト閾値を超えると判定する。回転補正部133は、文字列領域B41のアスペクト比がアスペクト閾値を超えるので、文字列領域B41を含む画像を元の状態から時計回りに90°回転させる処理を行う。図3の下段の右側の図は、回転補正部133によって文字列領域B41を含む画像が元の状態から時計回りに90°回転されたことにより、回転後の画像に含まれる文字列領域B41の向き(以下、回転後の文字列領域B41と記載する場合がある。)が基準方向と平行な状態に変化した様子を示す。また、回転後の文字列領域B41内に位置する文字列の向きは、基準方向に対して反時計回りに180°回転した状態に変化した。以下では、文字列領域内に位置する文字列の向きが基準方向に対して反時計回りに180°回転した状態を「反転状態」と記載する場合がある。
【0035】
また、抽出部131は、回転補正部133によって回転された後の回転後の画像を生成する。抽出部131は、回転後の画像から機械学習モデルM1によって文字列の位置を示す文字列領域に関する文字列領域情報を抽出してよい。計算部132は、回転後の画像から抽出された文字列領域情報に基づいて、回転後の画像に含まれる文字列領域ごとに、文字列領域の基準方向に対する傾きを計算する。
【0036】
(判定部134)
図3の上段の図と下段の図とを比較して述べたように、文字列領域の傾きが同じであっても、文字列領域内に位置する文字列の向きには、直立状態と反転状態の2通りがある。そこで、判定部134は、文字列領域ごとに、文字列領域内に位置する文字列の向きが直立状態であるか、または、反転状態であるかを判定する。判定部134は、文字列領域内に位置する文字列の向きが基準方向に対して直立状態であるか、または、反転状態であるかを判定する。ここで、文字列の向きが直立状態であるとは、文字列の向きが基準方向に対して回転していない状態を指す。言い換えると、文字列の向きが直立状態であるとは、文字列の向きが基準方向に対して反時計回りに0°回転している状態を指す。また、文字列の向きが反転状態であるとは、文字列の向きが基準方向に対して反時計回りに180°回転している状態を指す。
【0037】
具体的には、判定部134は、文字列領域を含む画像が入力された場合、文字列領域ごとに、文字列領域内に位置する文字列の向きが直立状態であるか、または、反転状態であるかを判定するように学習された機械学習モデルM2を用いて、処理対象の文字列領域内に位置する文字列の向きが直立状態であるか、または、反転状態であるかを判定する。より具体的には、機械学習モデルM2は、文字列領域内に位置する文字列の向きが直立状態であるか、または、反転状態であるかを2値で分類した分類結果を判定結果として出力するように学習された機械学習モデルであってよい。例えば、判定部134は、文字列領域を含む画像が入力された場合、文字列領域内に位置する文字列の向きが直立状態である場合は「1」(または「0」)を判定結果として出力し、反転状態である場合は「0」(または「1」)を判定結果として出力するように学習された機械学習モデルM2を用いて、処理対象の文字列領域内に位置する文字列の向きを判定する。判定部134は、処理対象の文字列領域を含む画像を機械学習モデルM2に入力して、機械学習モデルM2から出力される判定結果を取得する。
【0038】
図4は、実施形態に係る情報処理装置による情報処理の一例について説明するための図である。図4では、判定部134は、抽出部131によって生成された画像G1を機械学習モデルM2に入力して、文字列領域B11~B13の各々の内部に位置する文字列T11~T13の各々の向きが直立状態であるか、または、反転状態であるかを示す判定結果を取得する。
【0039】
(推定部135)
推定部135は、計算部132の計算結果および判定部134の判定結果に基づいて、文字列ごとに、文字列の回転角度を推定する。具体的には、推定部135は、計算部132によって計算された文字列領域の傾きに基づいて、文字列領域ごとに、文字列領域の回転角度を推定する。より具体的には、計算部132によって計算された文字列領域の傾きをa、文字列領域の基準方向に対する反時計回りの回転角度をθと表すと、aとθの間には、三角関数の関係式「a=tan(θ)」および逆関数の関係式「θ=arctan(a)」が成り立つ。例えば、推定部135は、逆関数の関係式「θ=arctan(a)」に計算部132によって計算された文字列領域の傾き(a)を代入して、文字列領域の基準方向に対する反時計回りの回転角度(θ)を計算する。
【0040】
また、推定部135は、文字列領域の基準方向に対する反時計回りの回転角度(θ)および判定部134によって判定された文字列領域内に位置する文字列の向きに基づいて、文字列領域内に位置する文字列の回転角度を推定する。より具体的には、推定部135は、文字列領域内に位置する文字列の基準方向に対する反時計回りの回転角度(φ)を推定する。例えば、推定部135は、判定部134によって判定された文字列の向きが直立状態である場合、文字列領域内に位置する文字列の基準方向に対する反時計回りの回転角度(φ)は、文字列領域の基準方向に対する反時計回りの回転角度(θ)と同じ角度(θ)であると推定する。また、推定部135は、判定部134によって判定された文字列の向きが反転状態である場合、文字列領域内に位置する文字列の基準方向に対する反時計回りの回転角度(φ)は、文字列領域の基準方向に対する反時計回りの回転角度(θ)に180°を加算した角度(θ+180°)であると推定する。
【0041】
また、推定部135は、複数の文字列の回転角度(φ)の平均(ρ)を算出する。推定部135は、複数の文字列の回転角度の平均に基づいて、画像の回転角度を推定し、推定した画像の回転角度を出力する。例えば、推定部135は、4以上の離散化された角度の中から1の角度を選択し、選択した1の角度を画像の回転角度として出力する。例えば、推定部135は、0°、90°、180°および270°の4つの離散化された角度の中から1の角度を選択し、選択した1の角度を画像の回転角度として出力する。例えば、推定部135は、複数の文字列の回転角度の平均(ρ)が0°≦ρ<90°を満たす角度である場合、4つの離散化された角度の中から0°を選択し、0°を画像の回転角度として出力する。また、推定部135は、複数の文字列の回転角度の平均(ρ)が90°≦ρ<180°を満たす角度である場合、4つの離散化された角度の中から90°を選択し、90°を画像の回転角度として出力する。また、推定部135は、複数の文字列の回転角度の平均(ρ)が180°≦ρ<270°を満たす角度である場合、4つの離散化された角度の中から180°を選択し、180°を画像の回転角度として出力する。また、推定部135は、複数の文字列の回転角度の平均(ρ)が270°≦ρ<360°を満たす角度である場合、4つの離散化された角度の中から270°を選択し、270°を画像の回転角度として出力する。なお、推定部135は、5以上の離散化された角度の中から1の角度を選択し、選択した1の角度を画像の回転角度として出力してもよい。
【0042】
(提供部136)
提供部136は、推定部135によって推定された画像の回転角度(μ)に基づいて、画像を回転する。具体的には、提供部136は、推定部135によって推定された画像の回転角度(μ)に基づいて、画像を基準方向に対して時計回りに回転角度(μ)だけ回転した回転画像を生成する。また、提供部136は、生成した回転画像に対してAI-OCRをかけて、AI-OCRによって認識された回転画像中の文字列に関する情報を提供する。例えば、提供部136は、回転画像中の文字列に関する情報を利用者の端末装置に送信する。
【0043】
〔3.変形例〕
上述した実施形態に係る処理は、上記実施形態以外にも種々の異なる形態にて実施されてよい。
【0044】
上述した実施形態では、画像に含まれる文字列が横書きであり、基準方向がX軸方向と同じ方向である場合について説明したが、画像に含まれる文字列は縦書きであってもよい。画像に含まれる文字列が縦書きである場合、基準方向はY軸方向と同じ方向であってもよい。
【0045】
また、上述した実施形態では、回転補正部は、文字列領域のアスペクト比の平均がアスペクト閾値を超える場合に、画像を基準方向に対して時計回りに90°回転させる処理を行う場合について説明したが、文字列領域のアスペクト比の平均がアスペクト閾値を下回る場合に画像を基準方向に対して時計回りに90°回転させる処理を行ってもよい。例えば、画像に含まれる文字列が縦書きであり、基準方向がY軸方向と同じ方向である場合について考える。このとき、回転補正部133は、複数のアスペクト比の平均が、アスペクト閾値を下回る場合、複数のアスペクト比の平均が、アスペクト閾値との比較に基づく所定の条件を満たすと判定する。回転補正部133は、複数のアスペクト比の平均が、アスペクト閾値との比較に基づく所定の条件を満たす場合、画像を90°回転させる処理を行う。例えば、回転補正部133は、画像を元の状態から時計回りに90°回転させる処理を行う。言い換えると、回転補正部133は、画像を基準方向に対して時計回りに90°回転させる処理を行う。
【0046】
〔4.効果〕
上述したように、実施形態に係る情報処理装置100は、抽出部131と、計算部132と、判定部134と、推定部135を備える。抽出部131は、文字列を含む画像から、機械学習モデルによって文字列の位置を示す矩形状の領域である文字列領域に関する文字列領域情報を抽出する。計算部132は、文字列領域情報に基づいて、文字列領域ごとに、文字列領域の基準方向に対する傾きを計算する。判定部134は、文字列領域ごとに、文字列領域内に位置する文字列の向きが直立状態であるか、または、反転状態であるかを判定する。推定部135は、計算部132の計算結果および判定部134の判定結果に基づいて、文字列ごとに、文字列の回転角度を推定する。
【0047】
これにより、情報処理装置100は、画像に含まれる文字列ごとに、文字列の回転角度を精度よく推定することができる。したがって、情報処理装置100は、精度よく推定された複数の文字列の回転角度に基づいて、画像の回転角度を精度よく推定することができる。
【0048】
また、計算部132は、文字列領域の基準方向に対する傾きとして、文字列領域の少なくともいずれか一辺の方向の基準方向に対する傾きを計算する。
【0049】
これにより、情報処理装置100は、文字列領域の少なくともいずれか一辺の方向の基準方向に対する傾きに基づいて、画像に含まれる文字列ごとに、文字列の回転角度を精度よく推定することができる。
【0050】
また、情報処理装置100は、画像を回転させる処理を行う回転補正部133をさらに備える。計算部132は、文字列領域情報に基づいて、文字列領域ごとに、文字列領域のアスペクト比を計算する。回転補正部133は、複数のアスペクト比の平均が、アスペクト閾値との比較に基づく所定の条件を満たす場合、画像を90°回転させる処理を行う。
【0051】
これにより、情報処理装置100は、例えば、画像に含まれる文字の連なる方向が基準方向に対して垂直に近い場合には、例えば、画像を基準方向に対して時計回りに90°回転させることで、画像に含まれる文字の連なる方向を基準方向に対して平行に近い状態にすることができる。また、情報処理装置100は、画像に含まれる文字の連なる方向を基準方向に対して平行に近い状態にすることができるので、文字列領域内に位置する文字列の向きが基準方向に対して直立状態であるか、または、反転状態であるかを精度よく判定することができる。
【0052】
また、推定部135は、複数の文字列の回転角度の平均に基づいて、画像の回転角度を推定し、推定した画像の回転角度を出力する。
【0053】
これにより、情報処理装置100は、精度よく推定された複数の文字列の回転角度の平均に基づいて、画像の回転角度を精度よく推定することができる。
【0054】
また、推定部135は、4以上の離散化された角度の中から1の角度を選択し、選択した1の角度を画像の回転角度として出力する。
【0055】
これにより、情報処理装置100は、大まかな画像の回転角度を推定することができる。
【0056】
また、抽出部131は、複数の異なる回転角度で傾いた文字列の各々を含む複数の画像の各々が入力された場合、複数の異なる回転角度で傾いた文字列の各々に対応する文字列領域に関する文字列領域情報を出力するように学習された機械学習モデルによって文字列領域情報を抽出する。
【0057】
これにより、情報処理装置100は、文字列の回転に対するロバストネスを向上させた機械学習モデルによって、文字列ごとに、精度よく文字列領域情報を抽出することができる。
【0058】
〔5.ハードウェア構成〕
また、上述してきた実施形態に係る情報処理装置100は、例えば図5に示すような構成のコンピュータ1000によって実現される。図5は、情報処理装置100の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM1300、HDD1400、通信インターフェイス(I/F)1500、入出力インターフェイス(I/F)1600、及びメディアインターフェイス(I/F)1700を備える。
【0059】
CPU1100は、ROM1300またはHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
【0060】
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インターフェイス1500は、所定の通信網を介して他の機器からデータを受信してCPU1100へ送り、CPU1100が生成したデータを所定の通信網を介して他の機器へ送信する。
【0061】
CPU1100は、入出力インターフェイス1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU1100は、入出力インターフェイス1600を介して、入力装置からデータを取得する。また、CPU1100は、生成したデータを入出力インターフェイス1600を介して出力装置へ出力する。
【0062】
メディアインターフェイス1700は、記録媒体1800に格納されたプログラムまたはデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインターフェイス1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
【0063】
例えば、コンピュータ1000が実施形態に係る情報処理装置100として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムを実行することにより、制御部130の機能を実現する。コンピュータ1000のCPU1100は、これらのプログラムを記録媒体1800から読み取って実行するが、他の例として、他の装置から所定の通信網を介してこれらのプログラムを取得してもよい。
【0064】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【0065】
〔6.その他〕
また、上記実施形態及び変形例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【0066】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0067】
また、上述してきた実施形態及び変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【符号の説明】
【0068】
100 情報処理装置
110 通信部
120 記憶部
130 制御部
131 抽出部
132 計算部
133 回転補正部
134 判定部
135 推定部
136 提供部
【要約】
【課題】文字列を含む画像の回転角度を精度よく推定する。
【解決手段】本願に係る情報処理装置は、文字列を含む画像から、機械学習モデルによって文字列の位置を示す矩形状の領域である文字列領域に関する文字列領域情報を抽出する抽出部と、文字列領域情報に基づいて、文字列領域ごとに、文字列領域の基準方向に対する傾きを計算する計算部と、文字列領域ごとに、文字列領域内に位置する文字列の向きが直立状態であるか、または、反転状態であるかを判定する判定部と、計算部の計算結果および判定部の判定結果に基づいて、文字列ごとに、文字列の回転角度を推定する推定部と、を備える。
【選択図】図1
図1
図2
図3
図4
図5