(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022081122
(43)【公開日】2022-05-31
(54)【発明の名称】情報処理装置、情報処理方法及び情報処理プログラム
(51)【国際特許分類】
G06V 30/14 20220101AFI20220524BHJP
G06T 7/60 20170101ALI20220524BHJP
G06T 7/12 20170101ALI20220524BHJP
【FI】
G06K9/20 320L
G06T7/60 300A
G06T7/12
【審査請求】有
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2020192465
(22)【出願日】2020-11-19
(71)【出願人】
【識別番号】501440684
【氏名又は名称】ソフトバンク株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】特許業務法人酒井国際特許事務所
(72)【発明者】
【氏名】劉 牧
(72)【発明者】
【氏名】上園 慎哉
(72)【発明者】
【氏名】中山 卓哉
(72)【発明者】
【氏名】酒井 雅哉
【テーマコード(参考)】
5B029
5L096
【Fターム(参考)】
5B029AA01
5B029BB02
5B029CC15
5B029DD05
5B029EE04
5B029EE05
5L096BA08
5L096BA17
5L096EA18
5L096EA43
5L096FA03
5L096FA06
5L096FA12
5L096FA59
5L096FA60
5L096FA69
5L096GA02
5L096GA32
5L096GA51
(57)【要約】
【課題】画像に含まれる情報の読み取り精度を向上させる。
【解決手段】本願に係る情報処理装置は、多角形の対象物を含む画像から検出されたエッジ群を分割した部分エッジ群ごとに対象物の輪郭候補を生成する生成部と、生成部によって生成された輪郭候補とエッジ群に基づいて特定された対象物の特定済み頂点の位置とに基づいて、対象物の未特定の頂点の位置を特定する特定部と、を備える。
【選択図】
図8
【特許請求の範囲】
【請求項1】
多角形の対象物を含む画像から検出されたエッジ群を分割した部分エッジ群ごとに前記対象物の輪郭候補を生成する生成部と、
前記生成部によって生成された輪郭候補と前記エッジ群に基づいて特定された前記対象物の特定済み頂点の位置とに基づいて、前記対象物の未特定の頂点の位置を特定する特定部と、
を備える情報処理装置。
【請求項2】
前記特定部は、
前記生成部によって生成された輪郭候補のうち、前記特定済み頂点の位置から所定範囲内に位置する前記輪郭候補に基づいて、前記未特定の頂点の位置を特定する、
請求項1に記載の情報処理装置。
【請求項3】
前記特定部は、
前記特定済み頂点のうち、前記未特定の頂点を挟む2つの前記特定済み頂点の位置から所定範囲内に位置する前記輪郭候補に基づいて、前記未特定の頂点の位置を特定する、
請求項1または2に記載の情報処理装置。
【請求項4】
前記特定部は、
前記輪郭候補が交差する交差点の位置に基づいて、前記未特定の頂点の位置を特定する、
請求項1~3のいずれか1項に記載の情報処理装置。
【請求項5】
前記特定部は、
前記交差点の重心の位置を前記未特定の頂点の位置として特定する、
請求項4に記載の情報処理装置。
【請求項6】
前記生成部は、
前記画像を二値化した二値画像から検出された前記エッジ群を分割した前記部分エッジ群ごとに前記対象物の輪郭候補を生成する、
請求項1~5のいずれか1項に記載の情報処理装置。
【請求項7】
前記生成部は、
前記画像から検出される輪郭のうち、前記輪郭の内側の面積が最大となる輪郭に対応するエッジ群を分割した部分エッジ群ごとに前記対象物の輪郭候補を生成する、
請求項1~6のいずれか1項に記載の情報処理装置。
【請求項8】
前記特定部によって特定された前記未特定の頂点の位置と前記特定済み頂点の位置とに基づいて、前記画像のうち前記多角形の対象物が撮像された領域を透視変換する変換部、
をさらに備える請求項1~6のいずれか1項に記載の情報処理装置。
【請求項9】
光学文字認識の技術を用いて、前記変換部によって透視変換された領域に含まれる文字を読み取って文字データに変換する文字認識部、
をさらに備える請求項8に記載の情報処理装置。
【請求項10】
前記多角形は、四角形である、
請求項1~9のいずれか1項に記載の情報処理装置。
【請求項11】
コンピュータが実行する情報処理方法であって、
多角形の対象物を含む画像から検出されたエッジ群を分割した部分エッジ群ごとに前記対象物の輪郭候補を生成する生成工程と、
前記生成工程によって生成された輪郭候補と前記エッジ群に基づいて特定された前記対象物の特定済み頂点の位置とに基づいて、前記対象物の未特定の頂点の位置を特定する特定工程と、
を含むことを特徴とする情報処理方法。
【請求項12】
多角形の対象物を含む画像から検出されたエッジ群を分割した部分エッジ群ごとに前記対象物の輪郭候補を生成する生成手順と、
前記生成手順によって生成された輪郭候補と前記エッジ群に基づいて特定された前記対象物の特定済み頂点の位置とに基づいて、前記対象物の未特定の頂点の位置を特定する特定手順と、
をコンピュータに実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法及び情報処理プログラムに関する。
【背景技術】
【0002】
従来、画像に含まれる情報を読み取る技術が知られている。一般的に、読み取り対象となる画像には、撮影対象の表面で反射した反射光が写りこむ場合がある。また、画像に反射光が写りこむと、反射光が写りこんだ部分が白とびして、画像に含まれる情報の読み取り精度が低下する場合がある。
【0003】
そこで、読み取り対象となる画像を補正する技術が知られている。例えば、背景上に所定の模様が描画された撮影対象を撮影した画像に含まれる模様の表面で反射した光の鏡面反射成分を除去し、鏡面反射成分が除去された画像から撮影対象の表面で反射した光の拡散反射成分を除去する技術が知られている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
画像に含まれる情報の読み取り精度を向上させる技術が望まれている。
【課題を解決するための手段】
【0006】
実施形態に係る情報処理装置は、多角形の対象物を含む画像から検出されたエッジ群を分割した部分エッジ群ごとに前記対象物の輪郭候補を生成する生成部と、前記生成部によって生成された輪郭候補と前記エッジ群に基づいて特定された前記対象物の特定済み頂点の位置とに基づいて、前記対象物の未特定の頂点の位置を特定する特定部と、を備える。
【図面の簡単な説明】
【0007】
【
図1】
図1は、比較技術に係る情報処理の一例を示す説明図である。
【
図2】
図2は、比較技術に係る情報処理の一例を示す説明図である。
【
図3】
図3は、実施形態に係る情報処理装置の構成例を示す図である。
【
図4】
図4は、実施形態に係る情報処理の一例を示す説明図である。
【
図5】
図5は、実施形態に係る情報処理の一例を示す説明図である。
【
図6】
図6は、実施形態に係る情報処理の一例を示す説明図である。
【
図7】
図7は、実施形態に係る情報処理の一例を示す説明図である。
【
図8】
図8は、実施形態に係る情報処理の一例を示す説明図である。
【
図9】
図9は、実施形態に係る情報処理の一例を示す説明図である。
【
図10】
図10は、情報処理装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。
【発明を実施するための形態】
【0008】
以下に、本願に係る情報処理装置、情報処理方法及び情報処理プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る情報処理装置、情報処理方法及び情報処理プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
【0009】
(実施形態)
〔1.はじめに〕
近年、働き方改革の推進等により、ペーパーレス化が進んでいる。また、テレワークの拡大や環境問題への配慮等により、紙でできた資料を撮影して電子化データ化する需要が高まっている。このような背景の下で、OCR(Optical Character Recognition:光学文字認識)の技術が再び注目されている。
【0010】
OCRとは、画像データのテキスト部分を認識し、文字データに変換する技術である。具体的には、紙文書をスキャナーやカメラで撮影して画像データに変換する。続いて、画像データに含まれる文字を読み取って(認識して)文字データに変換する。なお、以下では、画像データのことを単に画像と記載する場合がある。
【0011】
上述したように、一般的に、読み取り対象となる画像には、紙文書等である撮影対象の表面で反射した反射光が写りこむ場合がある。また、画像に反射光が写りこむと、反射光が写りこんだ部分が白とびして、画像に含まれる文字データ等の情報の読み取り精度が低下する場合がある。
【0012】
そこで、OCRによって文字を読み取る前に、読み取り対象となる画像を補正して、読み取り精度の高い画像に変換する。そして、読み取り精度を高めた画像に含まれる文字をOCRで読み取って文字データに変換する技術が知られている。この点について、
図1を用いて詳しく説明する。
図1は、比較技術に係る情報処理の一例を示す説明図である。
【0013】
図1に示す例では、紙文書の一例として、病院で処方される処方箋を撮像した画像G1から文字を読み取って文字データに変換する例について説明する。まず、処方箋を撮像した画像G1を二値化した二値画像G2を生成する(ステップS1)。具体的には、画像G1をメッシュ状に分割して、分割された画像の各点(画素ともいう)の画素値と所定の閾値とを比較する。続いて、画素値が所定の閾値を上回る画素は白、画素値が所定の閾値以下である画素は黒に置き換えることで、二値画像G2を生成する。
【0014】
続いて、二値画像G2からエッジを検出する(ステップS2)。ここで、エッジ(edge)とは、画像中の各点のうち、色や明るさの変化(すなわち、画素値の変化)が大きい点のことを指す。また、エッジを検出するとは、画像中の明るいところと暗いところの境目を強調して取り出すことを指す。例えば、ある対象物を撮像した画像からエッジを検出すると、画像に含まれる対象物と背景との境目の点を検出することに相当する。また、連続するエッジ(以下、エッジ群ともいう)をつなげて形成される曲線は、対象物の輪郭に相当する。より具体的には、画像中の各点を画素値に置き換えて空間微分することにより、エッジを検出する。
図1に示す例では、二値画像G2の各点を画素値に置き換えて空間微分することにより、エッジを検出する。画像G3は、検出されたエッジを元の画像G1に重ねて表示した画像を示す。画像G3に示す白色の部分が、検出されたエッジの部分に相当する。
【0015】
続いて、検出されたエッジ群に基づいて、画像G3から輪郭を検出する。画像G3には、画像中の処方箋の輪郭である四角形の大きな輪郭の他にも、目に見えない小さな輪郭が多数含まれている。続いて、画像G3から検出される複数の輪郭のうち、輪郭の内側の面積が最大となる輪郭に対応するエッジ群を特定する(ステップS3)。例えば、画像G3から検出される複数の輪郭それぞれの内側の面積を算出して、ランキングすることにより、輪郭の内側の面積が最大となる輪郭を特定する。続いて、特定された輪郭線上に位置するエッジ群を特定する。画像G4は、輪郭の内側の面積が最大となる輪郭に対応するエッジ群を元の画像G1に重ねて表示した画像を示す。画像G4に示すように、輪郭の内側の面積が最大となる輪郭に対応するエッジ群は、処方箋の四角形の輪郭線上に位置するエッジ群に対応する。
【0016】
続いて、検出された輪郭線に基づいて、画像G4を透視変換する(ステップS4)。ここで、透視変換とは、入力画像中に目的となる目的画像がある場合に、透視変換行列を用いて、入力画像を目的画像にフィットするように変形させることを指す。
図1に示す例では、透視変換行列を用いて、入力画像である画像G4を目的画像である処方箋の画像G5にフィットするように変形させる。画像G5は、画像G4中の処方箋を透視変換した画像を示す。画像G5に示すように、透視変換により、斜め上の角度から撮影された画像G4中の処方箋の傾きが補正されて、真上から撮影したような形状に変換される。
【0017】
最後に、OCRの技術を用いて、透視変換後の画像G5に含まれる文字を読み取って文字データに変換する(ステップS5)。画像G6は、画像G5からOCRを用いて読み取られた文字データを表示した内容を示す。
【0018】
しかしながら、
図1で説明した比較技術では、画像から文字を精度よく読み取ることができない場合がある。この点について、
図2を用いて詳しく説明する。
図2は、比較技術に係る情報処理の一例を示す説明図である。
図2では、画像中の処方箋の四角のうち右上の角の周辺に反射光が写りこんでおり、処方箋の右上の角の周辺が白とびしている点が
図1と異なる。
【0019】
図2に示す例では、
図1と同様に、反射光が写りこんだ処方箋の画像G11を二値化した二値画像G12を生成する(ステップS1)。続いて、二値画像G12からエッジを検出する(ステップS2)。画像G13は、検出されたエッジを元の画像G11に重ねて表示した画像を示す。画像G13に示す白色の部分が、検出されたエッジの部分に相当する。ここで、
図1に示す画像G3と比べると、画像G13は、処方箋の四角の右上の角の周辺に反射光が写りこんだことにより、処方箋の四角の右上の角の周辺の輪郭が白とびして、処方箋と背景との境界上のエッジが欠落しているのがわかる。
【0020】
続いて、検出されたエッジ群に基づいて、画像G13から輪郭を検出する。続いて、画像G13から検出される複数の輪郭のうち、輪郭の内側の面積が最大となる輪郭に対応するエッジ群を特定する(ステップS3)。ここで、
図1に示す画像G4と比べると、画像G14は、処方箋の四角の右上の角の周辺の輪郭が白とびして欠落しているのがわかる。続いて、検出された輪郭線に基づいて、画像G14を透視変換する(ステップS4)。
【0021】
画像G15は、画像G14中の処方箋を透視変換した画像を示す。ここで、
図1に示す画像G5と比べると、画像G15は、処方箋の四角の右上の角の周辺の輪郭が白とびして欠落してしまったために、処方箋に対応する四角形がうまく透視変換されないことがわかる。画像G15のように、処方箋に対応する四角形がうまく透視変換されない状態だと、透視変換後の画像G15に含まれる文字をOCRによって精度よく読み取ることが困難になる。
【0022】
そこで、本願発明に係る情報処理装置100は、四角形の対象物(例えば、処方箋等の書類)を含む画像から検出されたエッジ群を分割した部分エッジ群ごとに対象物の輪郭候補を生成する。そして、情報処理装置100は、生成した輪郭候補とエッジ群に基づいて特定された対象物の特定済み頂点(
図2の例では、四角の左上、左下、右下の頂点)の位置とに基づいて、対象物の未特定の頂点(
図2の例では、四角の右上の頂点)の位置を特定する。
【0023】
このように、情報処理装置100は、例えば、画像に写りこんだ反射光により白とびして、画像処理により特定できない四角形の対象物の頂点の位置を特定することができる。これにより、情報処理装置100は、画像に含まれる四角形の対象物の輪郭を精度よく特定することができるので、画像に含まれる四角形の対象物をうまく透視変換することができる。言い換えると、情報処理装置100は、反射光が写りこんだ画像から書類等の四角形の対象物の目的画像を正しく切り取ることができる。すなわち、情報処理装置100は、OCRによって文字を読み取る前に、読み取り対象となる画像を補正して、読み取り精度の高い画像に変換することができる。したがって、情報処理装置100は、画像に含まれる文字情報の読み取り精度を向上させることができる。
【0024】
〔2.情報処理装置の構成〕
次に、
図3を用いて、実施形態に係る情報処理装置100の構成について説明する。
図3は、実施形態に係る情報処理装置100の構成例を示す図である。情報処理装置100は、通信部110と、記憶部120と、制御部130とを有してよい。なお、情報処理装置100は、情報処理装置100の管理者等から各種操作を受け付ける入力部(例えば、キーボードやマウス等)や、各種情報を表示させるための表示部(例えば、液晶ディスプレイ等)を有してもよい。
【0025】
(通信部110)
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部110は、ネットワークと有線または無線で接続され、例えば、カメラやスキャナーといった機器との間で情報の送受信を行う。
【0026】
(記憶部120)
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。例えば、記憶部120は、各種プログラム(情報処理プログラムの一例に相当)を記憶する。また、記憶部120は、取得部131が取得した画像を記憶する。
【0027】
(制御部130)
制御部130は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、情報処理装置100内部の記憶装置に記憶されている各種プログラム(情報処理プログラムの一例に相当)がRAMを作業領域として実行されることにより実現される。また、制御部130は、コントローラであり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。
【0028】
制御部130は、取得部131と、生成部132と、特定部133と、変換部134と、文字認識部135を機能部として有し、以下に説明する情報処理の作用を実現または実行してよい。なお、制御部130の内部構成は、
図3に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、各機能部は、制御部130の機能を示したものであり、必ずしも物理的に区別されるものでなくともよい。
【0029】
(取得部131)
取得部131は、書類等の四角形の対象物を含む画像をスキャナーやカメラから取得する。具体的には、取得部131は、四角形の対象物と背景とを二値化しやすいように撮影された画像を取得する。例えば、取得部131は、四角形の対象物が薄い色(例えば、白色)である場合に、対象物の背景が濃い色(例えば、黒色)である環境で撮影された画像を取得する。
【0030】
また、取得部131は、四角形の対象物が画像の真ん中に位置するように撮影された画像を取得する。例えば、取得部131は、四角形の対象物の中心位置が画像の中心位置から所定範囲内に位置するように撮影された画像を取得する。
【0031】
また、取得部131は、撮影対象である四角形の対象物が四角形を精度よく保った状態で撮影された画像を取得する。例えば、取得部131は、撮影対象である書類等の表面が平坦で滑らかな状態(書類等がくしゃくしゃでない状態)で撮影された画像を取得する。
【0032】
(生成部132)
ここから、
図4-
図6を用いて、生成部132の処理について詳しく説明する。
【0033】
まず、
図4を用いて、生成部132によるエッジ群の検出処理および部分エッジ群の生成処理について説明する。
図4は、実施形態に係る情報処理の一例を示す図である。
図4に示す例では、取得部131が、四角形の対象物を含む画像の一例として、処方箋を撮影した画像G101を取得する。生成部132は、取得部131によって取得された画像G101を二値化した二値画像G102を生成する(ステップS101)。具体的には、生成部132は、取得部131によって取得された画像G101をメッシュ状に分割して、分割された画像の各点(画素ともいう)の画素値と所定の閾値とを比較する。続いて、生成部132は、画素値が所定の閾値を上回る画素は白、画素値が所定の閾値以下である画素は黒に置き換えることで、二値画像G102を生成する(参考URL;http://labs.eecs.tottori-u.ac.jp/sd/Member/oyamada/OpenCV/html/py_tutorials/py_imgproc/py_thresholding/py_thresholding.html)。
【0034】
続いて、生成部132は、二値画像G102を生成すると、生成した二値画像G102からエッジを検出する(ステップS102)。例えば、生成部132は、二値画像中の各点を画素値に置き換えて空間微分することにより、エッジを検出する(参考URL;http://labs.eecs.tottori-u.ac.jp/sd/Member/oyamada/OpenCV/html/py_tutorials/py_imgproc/py_contours/py_contours_begin/py_contours_begin.html)。画像G103は、検出されたエッジを元の画像G101に重ねて表示した画像を示す。画像G103に示す白色の部分が、検出されたエッジの部分に相当する。
【0035】
続いて、生成部132は、エッジを検出すると、検出されたエッジに基づいて、画像G103に含まれる輪郭を検出する。画像G103には、画像中の処方箋を包含する大きな輪郭の他にも、目に見えない小さな輪郭が多数含まれている。生成部132は、輪郭を検出すると、検出した輪郭のうち、輪郭の内側の面積が最大となる輪郭に対応するエッジ群を特定する(ステップS103)。例えば、生成部132は、画像G103から検出した複数の輪郭それぞれの内側の面積を算出する。続いて、生成部132は、算出した面積をランキングすることにより、輪郭の内側の面積が最大となる輪郭を特定する。続いて、生成部132は、特定した輪郭線上に位置するエッジ群を特定する。画像G104は、輪郭の内側の面積が最大となる輪郭に対応するエッジ群(白色の線に見える点群)を元の画像G1に重ねて表示した画像を示す。画像G104に示すように、輪郭の内側の面積が最大となる輪郭に対応するエッジ群は、処方箋を示す四角形の輪郭のうち、反射光によって白とびした右上の角以外の角である左上の角、左下の角、および右下の角を含む輪郭上のエッジ群に対応する。
【0036】
続いて、生成部132は、特定したエッジ群(輪郭の内側の面積が最大となる輪郭に対応するエッジ群)を分割した部分エッジ群を生成する。例えば、生成部132は、特定したエッジ群に含まれるエッジ(例えば、10000個のエッジ)を所定数(例えば、100個)のエッジのグループごとに分割した部分エッジ群を生成する(ステップS104)。画像G105は、生成部132によって生成された部分エッジの一部を示す。生成部132は、画像G105に示す点Q1と点Q2の間に含まれる100個のエッジのグループである部分エッジ群g12、点Q2と点Q3の間に含まれる100個のエッジのグループである部分エッジ群g23、点Q3と点Q4の間に含まれる100個のエッジのグループである部分エッジ群g34、点Q4と点Q5の間に含まれる100個のエッジのグループである部分エッジE45、点Q5と点Q6の間に含まれる100個のエッジのグループである部分エッジ群g56、点Q6と点Q7の間に含まれる100個のエッジのグループである部分エッジ群g67を生成する。図示は省略するが、生成部132は、画像G105に示す白色の線に見えるエッジ群に含まれるすべてのエッジを所定数のエッジのグループに分割した部分エッジ群を生成する。
【0037】
続いて、生成部132は、部分エッジ群を生成すると、生成した部分エッジ群ごとに画像に含まれる処方箋の輪郭候補を生成する。ここから、
図5および
図6を用いて、生成部132による輪郭候補の生成処理について詳しく説明する。
【0038】
まず、
図5を用いて生成部132による輪郭候補の生成処理の概要について説明する。
図5は、実施形態に係る情報処理の一例を示す図である。
図5に示す画像G105は、
図4に示す画像G105と同じものである。例えば、生成部132は、生成した部分エッジE12、部分エッジE23、部分エッジE34、部分エッジE45、部分エッジE56、部分エッジE67それぞれに基づいて、処方箋の輪郭候補を生成する(ステップS105)。画像G106は、生成部132によって生成された輪郭候補を元の画像G101に重ねて表示した画像を示す。画像G106に示す多数の線は、それぞれ生成部132によって生成された輪郭候補を示す。
【0039】
次に、
図6を用いて生成部132による輪郭候補の生成処理について詳しく説明する。
図6は、実施形態に係る情報処理の一例を示す図である。
図6は、
図5に示す画像G105の点Q1~点Q7を含む領域の周辺を拡大した図である。
図6に示す黒点は、生成部132によって検出されたエッジを示す。なお、
図6では、見やすくするために、エッジの数を実際の数よりも少なく描いている。
【0040】
図6では、生成部132は、点Q1と点Q2の間に含まれるエッジのグループである部分エッジ群g12に基づいて、処方箋の輪郭候補L12を生成する。例えば、生成部132は、処方箋の輪郭候補L12として、最小二乗法を用いて、部分エッジ群g12のエッジグループにフィッティングする直線を生成する(参考URL;http://opencv.jp/opencv-2svn/cpp/structural_analysis_and_shape_descriptors.html)。また、生成部132は、点Q2と点Q3の間に含まれるエッジのグループである部分エッジ群g23に基づいて、処方箋の輪郭候補L23を生成する。例えば、生成部132は、処方箋の輪郭候補L23として、最小二乗法を用いて、部分エッジ群g23のエッジグループにフィッティングする直線を生成する。
【0041】
また、生成部132は、点Q4と点Q5の間に含まれるエッジのグループである部分エッジ群g45に基づいて、処方箋の輪郭候補L45を生成する。例えば、生成部132は、処方箋の輪郭候補L45として、最小二乗法を用いて、部分エッジ群g45のエッジグループにフィッティングする直線を生成する。また、生成部132は、点Q5と点Q6の間に含まれるエッジのグループである部分エッジ群g56に基づいて、処方箋の輪郭候補L56を生成する。例えば、生成部132は、処方箋の輪郭候補L56として、最小二乗法を用いて、部分エッジ群g56のエッジグループにフィッティングする直線を生成する。また、生成部132は、点Q6と点Q7の間に含まれるエッジのグループである部分エッジ群g67に基づいて、処方箋の輪郭候補L67を生成する。例えば、生成部132は、処方箋の輪郭候補L67として、最小二乗法を用いて、部分エッジ群g67のエッジグループにフィッティングする直線を生成する。
【0042】
図示は省略するが、生成部132は、
図5に示す画像G105の白色の線に見えるエッジ群に含まれるすべてのエッジを分割した部分エッジ群それぞれに基づいて、処方箋の輪郭候補をそれぞれ生成する。
【0043】
なお、
図6では、見やすくするために、フィッティングによって生成された輪郭候補が重ならないように描いているが、実際には、生成された輪郭候補の多くが重なって、一つの直線のように見える。例えば、
図6に示す輪郭候補L12と輪郭候補L23は、
図5に示す画像G106中では重なった一つの直線に見える。より具体的には、輪郭候補L12と輪郭候補L23が重なって、処方箋の左上の頂点と左下の頂点を結ぶ左端の辺に対応する一つの直線に見える。また、
図6に示す輪郭候補L45と輪郭候補L56と輪郭候補L67は、
図5に示す画像G106中では重なった一つの直線に見える。より具体的には、輪郭候補L45と輪郭候補L56と輪郭候補L67が重なって、処方箋の左上の頂点から右側に延びる処方箋の上端の辺に対応する一つの直線に見える。
【0044】
(特定部133)
ここから、
図7-
図8を用いて、特定部133の処理について詳しく説明する。
【0045】
まず、
図7を用いて、特定部133によるコーナー検出処理について説明する。
図7は、実施形態に係る情報処理の一例を示す図である。ここで、コーナーとは、全方向に対して画素値の大きな変化が観測される領域を示す。特定部133は、生成部132によって生成されたエッジ群に基づいてコーナーを検出する。例えば、
図6に示す例では、特定部133は、生成部132によって生成されたエッジ群に基づいて、点Q3と点Q4に挟まれた領域をコーナーとして検出する(参考URL;http://labs.eecs.tottoriu.ac.jp/sd/Member/oyamada/OpenCV/html/py_tutorials/py_feature2d/py_features_harris/py_features_harris.html)。
【0046】
ここで、生成部132によって特定されたエッジ群(輪郭の内側の面積が最大となる輪郭に対応するエッジ群)は、処方箋を示す四角形の輪郭のうち、反射光によって白とびした右上の角以外の角である左上の角、左下の角、および右下の角を含む輪郭上のエッジ群に対応する。そのため、特定部133によって検出されるコーナーは、処方箋を示す四角形の輪郭のうち、反射光によって白とびした右上の角以外の角である左上の頂点P1、左下の頂点P2、および右下の頂点P3に対応する。
【0047】
図7に示す例では、特定部133は、生成部132によって特定されたエッジ群に基づいて、反射光によって白とびした右上の角以外の角である左上の頂点P1、左下の頂点P2、および右下の頂点P3を特定する(ステップS106)。以下では、特定部133が、生成部132によって特定されたエッジ群に基づいて特定した頂点を特定済み頂点と記載する場合がある。画像G106は、特定部133によって特定された左上の特定済み頂点P1、左下の特定済み頂点P2、および右下の特定済み頂点P3の位置を示す。画像G107中の黒線で示す丸印は、特定部133によって特定された左上の特定済み頂点P1、左下の特定済み頂点P2、右下の特定済み頂点P3の大まかな位置を示す。また、画像G107中の黒い点線で示す丸印は、まだ特定されていない右上の頂点(以下では、未特定の頂点と記載する場合がある。)の大まかな位置を示す。
【0048】
次に、
図8を用いて、特定部133による未特定の頂点位置の特定処理について説明する。
図8は、実施形態に係る情報処理の一例を示す図である。
図8に示す画像G108は、
図5に示す画像G106に特定済み頂点P1~P3の位置を重ねて表示した図である。特定部133は、生成部132によって生成された輪郭候補とエッジ群に基づいて特定済み頂点の位置とに基づいて、対象物の未特定の頂点の位置を特定する(ステップS108)。具体的には、特定部133は、生成部132によって生成された輪郭候補のうち、特定済み頂点の位置から所定範囲内に位置する輪郭候補に基づいて、未特定の頂点の位置を特定する。例えば、特定部133は、生成部132によって生成された輪郭候補のうち、特定済み頂点P1~P3それぞれの位置から所定のピクセル(例えば、5ピクセル)以内に位置する輪郭候補を抽出する。画像G109に示す直線は、特定済み頂点P1~P3それぞれの位置から所定のピクセル(例えば、5ピクセル)以内に位置する輪郭候補を示す。
【0049】
続いて、特定部133は、特定済み頂点のうち、未特定の頂点を挟む2つの特定済み頂点P1とP3の位置から所定範囲内に位置する輪郭候補に基づいて、未特定の頂点の位置を特定する。具体的には、特定部133は、特定済み頂点P1から未特定の頂点へ向かう方向に延びる輪郭候補と特定済み頂点P3から未特定の頂点へ向かう方向に延びる輪郭候補が交差する交差点の位置に基づいて、未特定の頂点の位置を特定する。ここで、画像G109には、目には見えないが、実際には複数の輪郭候補が含まれており、それらが重なって一つの線に見える。したがって、特定済み頂点P1から未特定の頂点へ向かう方向に延びる複数の輪郭候補と特定済み頂点P3から未特定の頂点へ向かう方向に延びる複数の輪郭候補が交差する交差点の位置は、複数存在する。そこで、特定部133は、例えば、複数の交差点の重心の位置を算出して、算出した重心の位置を未特定の頂点P4の位置として特定する。続いて、特定部133は、未特定の頂点P4の位置を特定すると、特定済み頂点P1~P3の位置と特定した未特定の頂点P4の位置とに基づいて、処方箋の四角形の輪郭を特定する。
【0050】
(変換部134)
ここから、
図9を用いて、変換部134の処理について詳しく説明する。
図9は、実施形態に係る情報処理の一例を示す図である。
図9に示す画像G110の白線は、特定部133によって特定された処方箋の四角形の輪郭を示す。変換部134は、特定部133によって特定された未特定の頂点P4の位置と特定済み頂点P1~P3の位置とに基づいて、画像のうち四角形の処方箋が撮像された領域を透視変換する(ステップS109)。具体的には、変換部134は、透視変換行列を用いて、特定部133によって特定された未特定の頂点P4の位置と特定済み頂点P1~P3の位置とに基づいて、入力画像である画像G110を目的画像である処方箋の画像G111にフィットするように変形させる(参考URL;http://labs.eecs.tottoriu.ac.jp/sd/Member/oyamada/OpenCV/html/py_tutorials/py_imgproc/py_geometric_transformations/py_geometric_transformations.html)。画像G111は、画像G110中の処方箋を透視変換した画像を示す。画像G111に示すように、透視変換により、斜め上の角度から撮影された画像G110中の処方箋の傾きが補正されて、真上から撮影したような形状に変換される。
【0051】
(文字認識部135)
引き続き
図9を用いて、文字認識部135の処理について説明する。文字認識部135は、光学文字認識の技術を用いて、変換部134によって透視変換された領域の画像G111に含まれる文字を読み取って文字データに変換する(ステップS110)。画像G112は、画像G111からOCRを用いて読み取られた文字データを表示した内容を示す。
【0052】
なお、上述した
図4-
図9では、情報処理装置100が画像に含まれる四角形の対象物の右上の角の周辺に反射光が写りこんだことにより、従来の画像処理技術では特定することができない右上の頂点を特定する例について説明したが、未特定の頂点は右上の頂点に限られない。具体的には、情報処理装置100は、画像に含まれる四角形の対象物の左上、左下、または右下のいずれかの角の周辺に反射光が写りこんだことにより、左上、左下、または右下のいずれかの角の頂点を特定することができない場合についても、その位置を特定してよい。例えば、情報処理装置100は、画像に含まれる四角形の対象物の四角形の角のいずれか一つの周辺に反射光が写りこんだ場合に、未特定となった四角形の頂点のいずれか一つの位置を特定してよい。
【0053】
また、
図4-
図9では、情報処理装置100が画像に含まれる四角形の未特定の頂点を特定する例について説明したが、画像に含まれる多角形は四角形に限られない。具体的には、情報処理装置100は、画像に含まれる三角形や五角形等の多角形の頂点のいずれか一つに反射光が写りこんだ場合に、未特定となった三角形や五角形等の多角形の頂点のいずれか一つの位置を特定してよい。
【0054】
なお、上述した実施形態では、情報処理装置100が、OCRによって文字を読み取る前に、読み取り対象となる画像を補正して、読み取り精度の高い画像に変換する例について説明したが、画像補正の用途はOCRに限られない。例えば、情報処理装置100が、文字や写真、絵などの読み取り対象をスキャナーで読み取って画像データに変換する際に、読み取り精度の高い画像データに変換してもよい。これにより、情報処理装置100は、スキャナーによる読み取り精度を向上させることができる。
【0055】
〔3.効果〕
上述してきたように、実施形態に係る情報処理装置100は、生成部132と特定部133を備える。生成部132は、多角形の対象物を含む画像から検出されたエッジ群を分割した部分エッジ群ごとに対象物の輪郭候補を生成する。特定部133は、生成部132によって生成された輪郭候補とエッジ群に基づいて特定された対象物の特定済み頂点の位置とに基づいて、対象物の未特定の頂点の位置を特定する。
【0056】
このように、情報処理装置100は、例えば、画像に写りこんだ反射光により白とびして、画像処理により特定できない多角形の対象物の頂点の位置を特定することができる。これにより、情報処理装置100は、画像に含まれる多角形の対象物の輪郭を精度よく特定することができるので、画像に含まれる多角形の対象物をうまく透視変換することができる。言い換えると、情報処理装置100は、反射光が写りこんだ画像から多角形の対象物の目的画像を正しく切り取ることができる。すなわち、情報処理装置100は、OCRによって文字を読み取る前に、読み取り対象となる画像を補正して、読み取り精度の高い画像に変換することができる。したがって、情報処理装置100は、画像に含まれる情報の読み取り精度を向上させることができる。
【0057】
また、特定部133は、生成部132によって生成された輪郭候補のうち、特定済み頂点の位置から所定範囲内に位置する輪郭候補に基づいて、未特定の頂点の位置を特定する。
【0058】
これにより、情報処理装置100は、生成部132によって生成された多数の輪郭候補の中から、真の輪郭に近い輪郭候補のみを抽出することができるので、未特定の頂点の位置を精度よく特定することができる。
【0059】
また、特定部133は、特定済み頂点のうち、未特定の頂点を挟む2つの特定済み頂点の位置から所定範囲内に位置する輪郭候補に基づいて、未特定の頂点の位置を特定する。
【0060】
これにより、情報処理装置100は、未特定の頂点を通る真の輪郭に近い輪郭候補のみを抽出することができるので、未特定の頂点の位置を精度よく特定することができる。
【0061】
また、特定部133は、輪郭候補が交差する交差点の位置に基づいて、未特定の頂点の位置を特定する。例えば、特定部133は、交差点の重心の位置を未特定の頂点の位置として特定する。
【0062】
これにより、情報処理装置100は、未特定の頂点の位置を示す複数の候補の中から、尤もらしい位置を特定することができる。
【0063】
また、生成部132は、画像を二値化した二値画像から検出されたエッジ群を分割した部分エッジ群ごとに対象物の輪郭候補を生成する。また、生成部132は、画像から検出される輪郭のうち、輪郭の内側の面積が最大となる輪郭に対応するエッジ群を分割した部分エッジ群ごとに対象物の輪郭候補を生成する。
【0064】
これにより、情報処理装置100は、部分エッジ群ごとに多数の輪郭候補を生成することができるので、多数の輪郭候補の交差点に基づいて、未特定の頂点の位置を精度よく特定することができる。また、情報処理装置100は、画像に含まれる多角形の頂点の位置を精度よく特定することができるので、対象物の輪郭を精度よく特定することができる。したがって、情報処理装置100は、OCRによって画像に含まれる情報を読み取る前に、読み取り対象となる画像を補正して、読み取り精度の高い画像に変換することができる。
【0065】
また、情報処理装置100は、変換部134をさらに備える。変換部134は、特定部133によって特定された未特定の頂点の位置と特定済み頂点の位置とに基づいて、画像のうち多角形の対象物が撮像された領域を透視変換する。
【0066】
言い換えると、情報処理装置100は、反射光が写りこんだ画像から多角形の対象物の目的画像を正しく切り取ることができる。すなわち、情報処理装置100は、OCRによって文字を読み取る前に、読み取り対象となる画像を補正して、読み取り精度の高い画像に変換することができる。
【0067】
また、情報処理装置100は、文字認識部135をさらに備える。文字認識部135は、光学文字認識の技術を用いて、変換部134によって透視変換された領域に含まれる文字を読み取って文字データに変換する。
【0068】
これにより、情報処理装置100は、読み取り精度の高い画像から文字を読み取ることができるので、画像に含まれる文字情報の読み取り精度を向上させることができる。
【0069】
また、多角形は、四角形である。
【0070】
このように、情報処理装置100は、例えば、画像に写りこんだ反射光により白とびして、画像処理により特定できない四角形の対象物の頂点の位置を特定することができる。これにより、情報処理装置100は、画像に含まれる四角形の対象物の輪郭を精度よく特定することができるので、画像に含まれる四角形の対象物をうまく透視変換することができる。言い換えると、情報処理装置100は、反射光が写りこんだ画像から書類等の四角形の対象物の目的画像を正しく切り取ることができる。すなわち、情報処理装置100は、OCRによって文字を読み取る前に、読み取り対象となる画像を補正して、読み取り精度の高い画像に変換することができる。したがって、情報処理装置100は、画像に含まれる文字情報の読み取り精度を向上させることができる。
【0071】
〔4.ハードウェア構成〕
また、上述してきた実施形態に係る情報処理装置100は、例えば
図10に示すような構成のコンピュータ1000によって実現される。
図10は、情報処理装置100の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM1300、HDD1400、通信インターフェイス(I/F)1500、入出力インターフェイス(I/F)1600、及びメディアインターフェイス(I/F)1700を備える。
【0072】
CPU1100は、ROM1300またはHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
【0073】
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インターフェイス1500は、所定の通信網を介して他の機器からデータを受信してCPU1100へ送り、CPU1100が生成したデータを所定の通信網を介して他の機器へ送信する。
【0074】
CPU1100は、入出力インターフェイス1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU1100は、入出力インターフェイス1600を介して、入力装置からデータを取得する。また、CPU1100は、生成したデータを入出力インターフェイス1600を介して出力装置へ出力する。
【0075】
メディアインターフェイス1700は、記録媒体1800に格納されたプログラムまたはデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインターフェイス1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
【0076】
例えば、コンピュータ1000が実施形態に係る情報処理装置100として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムを実行することにより、制御部130の機能を実現する。コンピュータ1000のCPU1100は、これらのプログラムを記録媒体1800から読み取って実行するが、他の例として、他の装置から所定の通信網を介してこれらのプログラムを取得してもよい。
【0077】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【0078】
〔5.その他〕
また、上記実施形態及び変形例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【0079】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0080】
また、上述してきた実施形態及び変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【0081】
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、特定部は、特定手段や特定回路に読み替えることができる。
【符号の説明】
【0082】
100 情報処理装置
110 通信部
120 記憶部
130 制御部
131 取得部
132 生成部
133 特定部
134 変換部
135 文字認識部
【手続補正書】
【提出日】2022-04-25
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
多角形の対象物を含む画像から検出されたエッジ群に含まれる各エッジ画素を、前記多角形の対象物の各辺に対応するエッジ群に含まれるエッジ画素の数よりも少ない所定数のエッジ画素のグループに分割した部分エッジ群ごとに前記対象物の複数の輪郭候補を生成する生成部と、
前記生成部によって生成された前記複数の輪郭候補と前記エッジ群に基づいて特定された前記対象物の特定済み頂点の位置とに基づいて、前記対象物の未特定の頂点の位置を特定する特定部と、
を備える情報処理装置。
【請求項2】
前記特定部は、
前記生成部によって生成された前記複数の輪郭候補のうち、前記特定済み頂点の位置から所定範囲内に位置する前記複数の輪郭候補に基づいて、前記未特定の頂点の位置を特定する、
請求項1に記載の情報処理装置。
【請求項3】
前記特定部は、
前記特定済み頂点のうち、前記未特定の頂点を挟む2つの前記特定済み頂点の位置から所定範囲内に位置する前記複数の輪郭候補に基づいて、前記未特定の頂点の位置を特定する、
請求項1または2に記載の情報処理装置。
【請求項4】
前記特定部は、
前記複数の輪郭候補が交差する交差点の位置に基づいて、前記未特定の頂点の位置を特定する、
請求項1~3のいずれか1項に記載の情報処理装置。
【請求項5】
前記特定部は、
前記交差点の重心の位置を前記未特定の頂点の位置として特定する、
請求項4に記載の情報処理装置。
【請求項6】
前記生成部は、
前記画像を二値化した二値画像から検出された前記エッジ群に含まれる各エッジ画素を、前記所定数のエッジ画素のグループに分割した前記部分エッジ群ごとに前記対象物の複数の輪郭候補を生成する、
請求項1~5のいずれか1項に記載の情報処理装置。
【請求項7】
前記生成部は、
前記画像から検出される輪郭のうち、前記輪郭の内側の面積が最大となる輪郭に対応するエッジ群に含まれる各エッジ画素を、前記所定数のエッジ画素のグループに分割した部分エッジ群ごとに前記対象物の複数の輪郭候補を生成する、
請求項1~6のいずれか1項に記載の情報処理装置。
【請求項8】
前記特定部によって特定された前記未特定の頂点の位置と前記特定済み頂点の位置とに基づいて、前記画像のうち前記多角形の対象物が撮像された領域を透視変換する変換部、
をさらに備える請求項1~6のいずれか1項に記載の情報処理装置。
【請求項9】
光学文字認識の技術を用いて、前記変換部によって透視変換された領域に含まれる文字を読み取って文字データに変換する文字認識部、
をさらに備える請求項8に記載の情報処理装置。
【請求項10】
前記多角形は、四角形である、
請求項1~9のいずれか1項に記載の情報処理装置。
【請求項11】
コンピュータが実行する情報処理方法であって、
多角形の対象物を含む画像から検出されたエッジ群に含まれる各エッジ画素を、前記多角形の対象物の各辺に対応するエッジ群に含まれるエッジ画素の数よりも少ない所定数のエッジ画素のグループに分割した部分エッジ群ごとに前記対象物の複数の輪郭候補を生成する生成工程と、
前記生成工程によって生成された前記複数の輪郭候補と前記エッジ群に基づいて特定された前記対象物の特定済み頂点の位置とに基づいて、前記対象物の未特定の頂点の位置を特定する特定工程と、
を含むことを特徴とする情報処理方法。
【請求項12】
多角形の対象物を含む画像から検出されたエッジ群に含まれる各エッジ画素を、前記多角形の対象物の各辺に対応するエッジ群に含まれるエッジ画素の数よりも少ない所定数のエッジ画素のグループに分割した部分エッジ群ごとに前記対象物の複数の輪郭候補を生成する生成手順と、
前記生成手順によって生成された前記複数の輪郭候補と前記エッジ群に基づいて特定された前記対象物の特定済み頂点の位置とに基づいて、前記対象物の未特定の頂点の位置を特定する特定手順と、
をコンピュータに実行させることを特徴とする情報処理プログラム。