(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-13
(45)【発行日】2024-02-21
(54)【発明の名称】情報処理装置及び情報処理プログラム
(51)【国際特許分類】
G06T 7/60 20170101AFI20240214BHJP
A63F 13/80 20140101ALI20240214BHJP
【FI】
G06T7/60 200K
A63F13/80 A
(21)【出願番号】P 2020071893
(22)【出願日】2020-04-13
【審査請求日】2023-02-28
(73)【特許権者】
【識別番号】000005496
【氏名又は名称】富士フイルムビジネスイノベーション株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】河田 祐一
(72)【発明者】
【氏名】本庄 俊太郎
【審査官】笠田 和宏
(56)【参考文献】
【文献】特開平08-022507(JP,A)
【文献】特開平11-003433(JP,A)
【文献】特開2019-008580(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/60
A63F 13/80
(57)【特許請求の範囲】
【請求項1】
プロセッサを備え、前記プロセッサは、
罫線を有する対象物を含む画像を取得し、
前記画像に対して予め定めた特定の処理を行って前記対象物の外枠となる外郭を認識し、
認識した前記外郭が予め定めた条件を満たす場合は、前記罫線を認識する第1処理を実行し、
認識した前記外郭が前記条件を満たさない場合は、前記第1処理より処理負荷が高い方法で前記罫線を認識する第2処理を実行する処理を行う情報処理装置。
【請求項2】
前記プロセッサは、前記特定の処理として前記画像を2値化して前記外郭を認識し、前記第1処理として2値化した2値化画像から罫線を認識する請求項1に記載の情報処理装置。
【請求項3】
前記第2処理は、前記対象物上に配置される配置物の予め定めた中心範囲を通る仮想線と、画像から認識した罫線と、を用いて罫線を認識する請求項1又は請求項2に記載の情報処理装置。
【請求項4】
前記仮想線は、前記配置物の予め定めた中心範囲に対して、予め定めた閾値距離内に存在する、別の前記配置物の前記中心範囲同士を結んだ線である請求項3に記載の情報処理装置。
【請求項5】
前記プロセッサは、前記仮想線と、前記画像から認識した罫線とを用いて、最外罫線を検出し、前記最外罫線と、前記対象物の予め定めた罫線数とを用いて、前記対象物の罫線を認識する請求項3又は請求項4に記載の情報処理装置。
【請求項6】
前記プロセッサは、前記仮想線と、前記画像から認識した罫線とを用いて、最外罫線を検出し、前記最外罫線内の等間隔に存在する交点を検出することで前記対象物の罫線を認識する請求項3又は請求項4に記載の情報処理装置。
【請求項7】
前記予め定めた条件は、認識した前記外郭の領域が予め定めた矩形である場合に成立する請求項1~6の何れか1項に記載の情報処理装置。
【請求項8】
前記プロセッサは、前記画像が前記対象物を任意の俯角から見た画像の場合、真上から見た画像に補正する処理を更に行う請求項1~7の何れか1項に記載の情報処理装置。
【請求項9】
コンピュータに、
罫線を有する対象物を含む画像を取得し、
前記画像に対して予め定めた特定の処理を行って前記対象物の外枠となる外郭を認識し、
認識した前記外郭が予め定めた条件を満たす場合は、前記罫線を認識する第1処理を実行し、
認識した前記外郭が前記条件を満たさない場合は、前記第1処理より処理負荷が高い方法で前記罫線を認識する第2処理を実行する処理を実行させるための情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置及び情報処理プログラムに関する。
【背景技術】
【0002】
非特許文献1には、画像から棋譜を自動生成するシステムが提案されている。具体的には、非特許文献1では、囲碁盤の画像を取り込み、画像から囲碁盤の部分の画像を抽出して、領域抽出した画像からエッジ検出を行う。そして、2値画像にしてHough変換を用いて直線を検出し、直線の情報から囲碁盤を検出することが記載されている。
【先行技術文献】
【非特許文献】
【0003】
【文献】林山 剛久、柳井 啓司、野下 浩平、「囲碁対局テレビ番組からの棋譜自動生成システム」、情報処理学会研究報告、日本、2002年5月9日、34号、p161-168
【発明の概要】
【発明が解決しようとする課題】
【0004】
対局中の画像を取得して棋譜を記録するシステムでは、罫線を認識する方法が複数あった。そこで、本発明は、単一の方法で罫線を認識する場合に比べて、処理負荷が低い罫線認識装置及び罫線認識プログラムを提供することを目的とする。
【課題を解決するための手段】
【0005】
上記目的を達成するために、第1態様に係る情報処理装置は、プロセッサを備え、前記プロセッサは、罫線を有する対象物を含む画像を取得し、前記画像に対して予め定めた特定の処理を行って前記対象物の外枠となる外郭を認識し、認識した前記外郭が予め定めた条件を満たす場合は、前記罫線を認識する第1処理を実行し、認識した前記外郭が前記条件を満たさない場合は、前記第1処理より処理負荷が高い方法で前記罫線を認識する第2処理を実行する処理を行う。
【0006】
第2態様に係る情報処理装置は、第1態様に係る情報処理装置において、前記プロセッサは、前記特定の処理として前記画像を2値化して前記外郭を認識し、前記第1処理として2値化した2値化画像から罫線を認識する。
【0007】
第3態様に係る情報処理装置は、第1態様又は第2態様に係る情報処理装置において、前記第2処理は、前記対象物上に配置される配置物の予め定めた中心範囲を通る仮想線と、画像から認識した罫線と、を用いて罫線を認識する。
【0008】
第4態様に係る情報処理装置は、第3態様に係る情報処理装置において、前記仮想線は、前記配置物の予め定めた中心範囲に対して、予め定めた閾値距離内に存在する、別の前記配置物の前記中心範囲同士を結んだ線である。
【0009】
第5態様に係る情報処理装置は、第3態様又は第4態様に係る情報処理装置において、前記プロセッサは、前記仮想線と、前記画像から認識した罫線とを用いて、最外罫線を検出し、前記最外罫線と、前記対象物の予め定めた罫線数とを用いて、前記対象物の罫線を認識する。
【0010】
第6態様に係る情報処理装置は、第3態様又は第4態様に係る情報処理装置において、前記プロセッサは、前記仮想線と、前記画像から認識した罫線とを用いて、最外罫線を検出し、前記最外罫線内の等間隔に存在する交点を検出することで前記対象物の罫線を認識する。
【0011】
第7態様に係る情報処理装置は、第1態様~第6態様の何れか1の態様に係る情報処理装置において、前記予め定めた条件は、認識した前記外郭の領域が予め定めた矩形である場合に成立する。
【0012】
第8態様に係る情報処理装置は、第1態様~第7態様の何れか1の態様に係る情報処理装置において、前記プロセッサは、前記画像が前記対象物を任意の俯角から見た画像の場合、真上から見た画像に補正する処理を更に行う。
【0013】
第9態様に係る情報処理プログラムは、コンピュータに、罫線を有する対象物を含む画像を取得し、前記画像に対して予め定めた特定の処理を行って前記対象物の外枠となる外郭を認識し、認識した前記外郭が予め定めた条件を満たす場合は、前記罫線を認識する第1処理を実行し、認識した前記外郭が前記条件を満たさない場合は、前記第1処理より処理負荷が高い方法で前記罫線を認識する第2処理を実行する処理を実行させる。
【発明の効果】
【0014】
第1態様によれば、単一の方法で罫線を認識する場合に比べて、処理負荷が低い罫線認識装置を提供できる。
【0015】
第2態様によれば、背景色と対象物が類似しない場合に、対象物の罫線を検出することが可能となる。
【0016】
第3態様によれば、罫線が画像上で直接認識できない状況であっても罫線を正確に認識することが可能となる。
【0017】
第4態様によれば、対象物上に配置された配置物で隠れた罫線を仮想線として検出することが可能となる。
【0018】
第5態様によれば、最外罫線及び最外罫線内の他の罫線を認識することが可能となる。
【0019】
第6態様によれば、最外罫線及び最外罫線内の他の罫線を認識することが可能となる。
【0020】
第7態様によれば、対象物の外郭の領域が矩形であるか否かで、第1処理と第2処理を切り替えて実行することが可能となる。
【0021】
第8態様によれば、対象物を斜めから撮影した画像であっても、真上から見た画像に変換することができる。
【0022】
第9態様によれば、単一の方法で罫線を認識する場合に比べて、処理負荷が低い罫線認識プログラムを提供できる。
【図面の簡単な説明】
【0023】
【
図1】本実施形態に係る罫線認識装置の概略構成を示す図である。
【
図2】本実施形態に係る罫線認識装置における情報処理装置の電気系の要部構成を示すブロック図である。
【
図3】本実施形態に係る罫線認識装置における情報処理装置の機能構成を示す機能ブロック図である。
【
図4】矩形検出可能な例、及び矩形検出不可能な例を示す図である。
【
図5】第1罫線検出部の詳細な機能構成の一例を示す機能ブロック図である。
【
図6】斜めから撮影した碁盤の罫線認識手法の一例を示す図である。
【
図7】第2罫線検出部の詳細な機能構成の一例を示す機能ブロック図である。
【
図8】直線検出、最外罫線検出、及び碁盤の罫線検出の一例を示す図である。
【
図10】本実施形態に係る情報処理装置において、棋譜を生成する際に碁盤の罫線を認識する処理の流れの一例を示すフローチャートである。
【
図11】等間隔または等比間隔の線を特定する手法を帳票認識技術に応用する例を説明するための図である。
【発明を実施するための形態】
【0024】
以下、図面を参照して本発明の実施の形態の一例を詳細に説明する。
図1は、本実施形態に係る罫線認識装置の概略構成を示す図である。
【0025】
本実施形態に係る罫線認識装置10は、一例として、対象物としての碁盤16の罫線を認識して棋譜を生成する例を説明する。
【0026】
罫線認識装置10は、碁盤16を撮影する撮影部12によって撮影された画像を情報処理装置14が取得し、情報処理装置14が、画像から碁盤16の罫線を認識する処理を行う。なお、情報処理装置14は、
図1では、ノート型のパーソナルコンピュータとして示すが、これに限るものではなく、例えば、カメラを備えたスマートフォン等の携帯端末を適用してもよい。また、撮影部12は、スマートフォンのカメラを適用してもよい。
【0027】
続いて、本実施形態に係る情報処理装置14の電気系の要部構成について説明する。
図2は、本実施形態に係る罫線認識装置10における情報処理装置14の電気系の要部構成を示すブロック図である。
【0028】
本実施の形態に係る情報処理装置14は、
図2に示すように、CPU(Central Processing Unit)14A、ROM(Read Only Memory)14B、RAM(Random Access Memory)14C、HDD(hard disk drive)14D、キーボード14E、ディスプレイ14F、及び通信回線I/F(インタフェース)部14Gを備えている。CPU14Aは、情報処理装置14の全体の動作を司る。ROM14Bは、各種制御プログラムや各種パラメータ等が予め記憶される。RAM14Cは、CPU14Aによる各種プログラムの実行時のワークエリア等として用いられる。HDD14Dは、各種のデータやアプリケーション・プログラム等が記憶される。キーボード14Eは各種の情報を入力するために用いられる。ディスプレイ14Fは、各種の情報を表示するために用いられる。通信回線I/F部14Gは、ネットワーク等の通信回線に接続可能され、当該通信回線に接続された他の装置と各種データの送受信を行う。以上の情報処理装置14の各部はシステムバス14Hにより電気的に相互に接続されている。なお、本実施の形態に係る情報処理装置14では、HDD14Dを記憶部として適用しているが、これに限らず、フラッシュメモリ等の他の不揮発性の記憶部を適用してもよい。
【0029】
以上の構成により、本実施の形態に係る情報処理装置14は、CPU14Aにより、ROM14B、RAM14C、及びHDD14Dに対するアクセス、キーボード14Eを介した各種データの取得、ディスプレイ14Fに対する各種情報の表示を各々実行する。また、情報処理装置14は、CPU14Aにより、通信回線I/F部14Gを介した通信データの送受信の制御を実行する。
【0030】
ここで、情報処理装置14のCPU14AがROM14Bに記憶されたプログラムを実行することにより実現される機能構成について説明する。
図3は、本実施形態に係る罫線認識装置における情報処理装置14の機能構成を示す機能ブロック図である。
【0031】
情報処理装置14は、画像取得部18、罫線認識部20、及び描画表示処理部30の機能を有する。
【0032】
画像取得部18は、撮影部12が罫線を有する碁盤16を撮影することによって得られる画像を撮影部12から取得する。
【0033】
罫線認識部20は、画像取得部18が取得した画像から碁盤16の罫線を認識する処理を行う。本実施形態では、罫線認識部20は、罫線を有する対象物としての碁盤16を含む画像を取得し、画像に対して予め定めた特定の処理を行って対象物の外枠となる外郭を認識し、認識した外郭が予め定めた条件を満たす場合は、罫線を認識する第1処理を実行し、認識した外郭が条件を満たさない場合は、第1処理より処理負荷が高い方法で罫線を認識する第2処理を実行する処理を行う。なお、罫線認識部20は、画像取得部18が取得した画像から碁石17を検出する処理も行ってもよい。
【0034】
罫線認識部20は、
図3に示すように、2値化処理部22、矩形検出部24、第1罫線検出部26、及び第2罫線検出部28の機能を有する。
【0035】
2値化処理部22は、予め定めた閾値を用いて、画像取得部18が取得した画像を「0」または「1」の2値に2値化する。
【0036】
矩形検出部24は、2値化処理部22によって2値化された「0」または「1」のどちらかで構成される領域が、予め定めた条件を満たしているか否かを判定する。本実施形態では、碁盤16の外枠となる外郭に対応する予め定めた矩形が検出されたか否かを判定する。例えば、
図4に示す矩形検出可能な例に示す矩形が検出された場合を予め定めた条件を満たす場合とし、
図4に示す矩形検出不可能な例に示す領域が検出された場合を予め定めた条件を満たさない場合とする。なお、
図4に示す矩形検出可能な例は、閉じた領域が四角形(例えば、境界が4本の直線で構成され、向かい合う線が平行)の例を示す。一方、
図4に示す矩形検出不可能な例は、境界が4本の直線で構成されず、向かい合う線が平行でない、閉じていない領域)の例を示す。
【0037】
第1罫線検出部26は、矩形検出部24によって矩形が検出されて予め定めた条件を満たす場合に、画像から碁盤16の罫線を検出する。本実施形態では、2値化によって矩形の領域が検出できた場合に、そのまま2値化によって把握した領域に基づいて、検出した領域内での最外罫線を特定し、その最外罫線を基準に台形補正を行って、正方形として認識する。そして、特定した最外罫線を基準に、碁盤16のサイズに合わせて罫線で等分することで、碁盤16の罫線または交点の位置を特定する。なお、2値化によって、その碁盤16の領域における交点の位置を記憶しておけば、碁石17が配置された場合に、その碁石17の碁盤16上の座標が特定される。
【0038】
第1罫線検出部26は、詳細には、
図5に示すように、最外罫線特定部32、台形補正部34、及び碁盤罫線特定部36の機能を有する。
【0039】
最外罫線特定部32は、2値化によって把握した領域に基づいて、検出した領域内での最外罫線を特定する。
【0040】
台形補正部34は、斜め上から撮影されている場合に、碁盤16が台形になっているため、真上から撮影した画像となるように補正する台形補正を行う。本実施形態では、台形補正を行うことで、碁盤16の枡目の台形が正方形に補正される。なお、撮影部12が、真上から撮影している場合には台形補正部34は省略する。また、台形補正は省略する形態としてもよい。
【0041】
碁盤罫線特定部36は、特定した最外罫線を基準に、ユーザによって予め入力された碁盤16のサイズ(例えば、9路なら9等分、13路なら13等分、19路なら19等分)に合わせて罫線で等分することで、碁盤16の罫線または交点の位置を特定する。
【0042】
一方、第2罫線検出部28は、矩形検出部24によって矩形が検出されず、予め定めた条件を満たさない場合に、第1罫線検出部26より処理負荷が高い方法で、画像から碁盤16の罫線を検出する。本実施形態では、2値化によって矩形の領域が検出できなかった場合に、画像について線抽出処理を行う。碁盤16の罫線以外の様々な線を認識してしまうため、その中から罫線を特定するために、X軸Y軸方向に走査する。そして、走査線と、検出した線との交点を見つけていき、その交点が、等間隔で連続n個(間隔は植木算方式なため、n=インプットした碁盤16のサイズで7路盤なら7個)存在した場合にその等間隔に並んだ交点のうち最も外側にある交点をつないだ線を最外罫線として特定する。ここで、碁盤を真上から撮影した画像の場合は、交点が等間隔で連続n個存在するかを特定すればよいが、碁盤を任意の俯角から撮影した場合は、遠近があるため等比数列を用いて、条件を満たす間隔の交点が連続n個存在するかで特定する(
図6を参照)。なお、X軸及びY軸は碁盤16の枡目状の罫線各々に沿う方向の軸とする。石が置かれた場合は、円形抽出し、円形の概中心座標を通る仮想線を更に用いて罫線を認識する。
【0043】
第2罫線検出部28は、詳細には、
図7に示すように、直線検出部40、最外罫線検出部42、台形補正部44、円形抽出部46、仮想線検出部48、及び碁盤罫線決定部50の機能を有する。
【0044】
直線検出部40は、画像取得部18が取得した画像内に含まれる直線を全て検出する。例えば、Canny法とHough変換を使って、
図8の上段に示すように、画像内の直線を全て検出する。すなわち、Canny法を用いて画像の輪郭部分を抽出する処理を行って、Hough変換によって直線を検出する処理を行うことで画像内の全ての直線を検出する。なお、
図8では、碁盤16の真上から撮影した画像として示す。
【0045】
最外罫線検出部42は、直線検出部40の検出結果から碁盤16の罫線のうち最外の罫線を検出する。例えば、
図8の中段に示すように、検出した罫線の最も外側の罫線を検出する。具体的には、直線検出部40では、碁盤16の罫線以外の様々な線を認識してしまうため、その中から罫線を特定するために、X軸Y軸方向に走査する。そして、走査線と、検出した線との交点を見つけていき、その交点が、等間隔で連続n個存在した場合にその等間隔に並んだ交点のうち最も外側にある交点をつないだ線を最外罫線として特定する。
【0046】
台形補正部44は、
図1に示すように、斜め上から撮影されている場合に、碁盤16が台形になっているため、真上から撮影した画像となるように補正する台形補正を行う。本実施形態では、台形補正を行うことで、碁盤16の枡目の台形が正方形に補正される。なお、撮影部12が、真上から撮影している場合には台形補正部44は省略する。また、台形補正は省略する形態としてもよい。
【0047】
円形抽出部46は、画像取得部18が取得した画像内に円形の物体があるか否かを判断して、円形の物体がある場合は円形抽出を行って碁石17を検出する。例えば、Hough変換で、円の半径を変えながら走査して円を抽出する。
【0048】
仮想線検出部48は、円形抽出部46によって抽出された円形物体の予め定めた中心範囲の一例としての中心座標を特定し、予め定めた閾値距離内に存在する、別の円形物体の中心座標同士を仮想線で結ぶことにより仮想線を検出する。本実施形態では、円形物体の中心の、XY軸方向におけるすぐ隣に、別の円形物体がある場合には、中心同士を仮想線で結ぶロジックとする。さらに具体的にいうと、画像上で1つの碁石17の中心を通るXY軸の線をつくって、それが、別の円形物体の領域を通ったと判定したら、その碁石17同士の中心同士を仮想線で結ぶ処理を行う。例えば、
図9の点線で示すように、仮想線を検出する。
【0049】
碁盤罫線決定部50は、碁盤16が何路盤であるかを決定して、最外罫線検出部42によって検出された最外罫線内の枡目の罫線を決定する。碁盤16が何路盤であるかの決定は、例えば、ユーザに前もって碁盤16が何路盤かを特定するために罫線数を入力させる形態としてもよい。或いは、ユーザに碁盤16のサイズを入力させることなしに画像から自動でサイズを検知し、罫線数を決定してもよい。或いは、アプリケーションやサービス毎に予め定められた罫線数を決定してもよい。碁盤16の罫線の決定方法の一例としては、直線検出部40によって検出された直線、及び仮想線検出部48によって検出された仮想線に対して、最外罫線検出部42によって検出された最外罫線内についてXY軸方向に画像をスキャンして、等間隔、或いは等比間隔に存在する交点を検出することで枡目の罫線を決定してもよい。等間隔に存在する交点を検出する際には、ユーザによって予め入力された罫線数に応じた間隔の交点を検出してもよい。或いは、最外罫線検出部42によって検出された最外罫線内をユーザによって予め入力された罫線数で等分することにより、
図8の下段に示すように、碁盤16の各罫線を決定してもよい。以下では、後者の例を説明する。なお、円形抽出部46によって円形物体が抽出された場合、仮想線検出部48によって検出された仮想線と、直線検出部40によって検出された直線とを用いて、最外罫線検出部42が最外罫線を検出して、碁盤罫線決定部50が碁盤16の罫線を決定する。罫線を特定した場合に、領域を碁盤の大きさに基づいて等分(例えば、9路盤の場合、特定した最外罫線を基準に9等分)し、交点座標を特定することができる(
図6の4、5、6)。
【0050】
また、罫線を決定し、交点座標を特定した後、碁石の色を認識する処理を行い、描画表示処理部30は、罫線認識部20の罫線認識結果から得られる碁盤16の画像と碁石17とを描画してディスプレイ14Fに表示する処理を行う。
【0051】
続いて、上述のように構成された本実施形態に係る情報処理装置14で行われる具体的な処理について説明する。
図10は、本実施形態に係る情報処理装置14において、棋譜を生成する際に碁盤16の罫線を認識する処理の流れの一例を示すフローチャートである。なお、
図10の処理は、碁石17を検出する処理は省略し、罫線を認識する部分のみを抽出した処理として示す。
【0052】
ステップ100では、CPU14Aが、碁盤16の画像を取得してステップ102へ移行する。すなわち、画像取得部18が、罫線を有する碁盤16を撮影することによって得られる画像を撮影部12から取得する。
【0053】
ステップ102では、CPU14Aが、取得した画像に対して2値化処理を行ってステップ104へ移行する。すなわち、2値化処理部22が、予め定めた閾値を用いて、画像取得部18が取得した画像を2値化する。
【0054】
ステップ104では、CPU14Aが、2値化された画像から矩形を検出してステップ106へ移行する。
【0055】
ステップ106では、CPU14Aが、矩形の検出結果が、予め定めた条件成立であるか否かを判定する。該判定は、矩形検出部24が、2値化処理部22によって2値化された「0」または「1」のどちらかで構成される領域が、予め定めた条件を満たしているか否かを判定する。具体的には、碁盤16の外枠となる外郭に対応する予め定めた矩形が検出されたか否かを判定する。例えば、
図4に示す矩形検出可能な例に示す矩形が検出された場合を予め定めた条件成立の場合とし、
図4に示す矩形検出不可能な例に示す領域が検出された場合を予め定めた条件不成立の場合とする。該判定が否定された場合にはステップ108へ移行し、肯定された場合にはステップ114へ移行する。
【0056】
ステップ108では、CPU14Aが、2値化画像から最外罫線を検出してステップ110へ移行する。すなわち、最外罫線特定部32が、2値化によって把握した領域に基づいて、検出した領域内での最外罫線を特定する。
【0057】
ステップ110では、CPU14Aが、罫線が検出された画像に対して台形補正を行ってステップ112へ移行する。すなわち、台形補正部34が、
図1に示すように、斜め上から撮影されている場合に、碁盤16が台形になっているため、真上から撮影した画像となるように補正する台形補正を行う。なお、撮影部12が、真上から撮影している場合には当該ステップ110は省略する。
【0058】
ステップ112では、CPU14Aが、碁盤16の罫線を特定してステップ130へ移行する。すなわち、碁盤罫線特定部36が、特定した最外罫線を基準に、ユーザによって予め入力された碁盤16のサイズ(例えば、9路なら9等分、13路なら13等分、19路なら19等分)に合わせて罫線で等分することで、碁盤16の罫線または交点の位置を特定する。
【0059】
一方、ステップ114では、CPU14Aが、取得した画像から直線を検出してステップ116へ移行する。すなわち、直線検出部40が、取得した画像内に含まれる直線を全て検出する。例えば、Canny法を用いて画像の輪郭部分を抽出する処理を行って、Hough変換によって直線を検出する処理を行うことで、
図8の上段に示すように、画像内の全ての直線を検出する。
【0060】
ステップ116では、CPU14Aが、取得した画像から円形領域の検出を行ってステップ118へ移行する。すなわち、円形抽出部46が、画像取得部18が取得した画像内に円形の物体があるか否かを判断して、円形の物体がある場合は円形抽出を行って碁石17を検出する。例えば、Hough変換で、円の半径を変えながら走査して円を抽出する。
【0061】
ステップ118では、CPU14Aが、円形領域があるか否かを判定する。該判定は、円形抽出部46によって円形領域が抽出されたか否かを判定し、該判定が否定された場合にはステップ120へ移行し、肯定された場合にはステップ122へ移行する。
【0062】
ステップ120では、CPU14Aが、検出した直線から碁盤16の枠となる最外罫線を検出してステップ126へ移行する。すなわち、最外罫線検出部42が、
図8の中段に示すように、直線検出部40の検出結果から碁盤16の罫線のうち最外の罫線を検出する。
【0063】
一方、ステップ122では、CPU14Aが、仮想線を検出してステップ124へ移行する。すなわち、仮想線検出部48が、円形抽出部46によって抽出された円形領域の中心座標を特定し、予め定めた閾値距離内(例えば、抽出された円形領域から、罫線方向への上下左右の四方の方向への予め定めた距離内)に存在する、別の円形物体の中心座標同士を仮想線で結ぶことにより、
図9の点線で示すような仮想線を検出する。
【0064】
ステップ124では、CPU14Aが、検出した直線と仮想線を用いて最外罫線を検出してステップ126へ移行する。すなわち、最外罫線検出部42が、直線検出部40によって検出された直線と、仮想線検出部48によって検出された仮想線とを用いて、碁盤16の罫線のうち最外の罫線を検出する。
【0065】
ステップ126では、CPU14Aが、罫線が検出された画像に対して台形補正を行ってステップ128へ移行する。すなわち、台形補正部44が、
図1に示すように、斜め上から撮影されている場合に、碁盤16が台形になっているため、真上から撮影した画像となるように補正する台形補正を行う。なお、撮影部12が、真上から撮影している場合には当該ステップ106は省略する。
【0066】
ステップ128では、CPU14Aが、碁盤16の罫線を決定してステップ130へ移行する。すなわち、碁盤罫線決定部50が、最外罫線内をユーザによって予め入力された罫線数で等分することにより、
図8の下段に示すように、碁盤16の各罫線を決定する。
【0067】
ステップ130では、CPU14Aが、盤面描画表示を行ってステップ132へ移行する。すなわち、描画表示処理部30が、罫線認識部20の罫線認識結果から、交点座標を特定し、当該交点の位置に存在する碁石の色の認識結果を描画してディスプレイ14Fに表示する処理を行う。なお、罫線を含む碁盤16の画像を表示してもよい。
【0068】
ステップ132では、CPU14Aが、罫線を認識する処理を終了するか否かを判定する。該判定は、例えば、ユーザによって終了を指示する操作がキーボード14E等によって行われたか否かを判定する。該判定が否定された場合にはステップ100に戻って上述の処理を繰り返し、判定が肯定されたところで一連の処理を終了する。
【0069】
なお、上記の実施形態では、罫線上に碁石17が配置される碁盤16の罫線を認識する例を一例として説明したが、罫線の認識は碁盤16に限定されるものではない。例えば、罫線間に駒が配置される将棋や罫線間に石が配置されるリバーシ等の罫線間に駒や石が配置されて画像上で罫線の少なくとも一部が隠れている部分を含む画像となる他の盤上遊戯の罫線などを認識する形態に適用してもよいし、盤上遊戯に限らず、何らかの線やマークの上に対象物が存在している画像から、隠れた線やマークを認識できる形態(例えば、道路上に、車両が複数台並んだ状態で、上から撮影し、車両の下に隠れた道路上の交通標識や線を特定する技術)に適用してもよい。
【0070】
また、上記の実施形態では、予め定めた特定の処理として、2値化処理を行って碁盤16の外枠となる外郭を認識する例を説明したが、特定の処理はこれに限るものではない。例えば、赤外線等を用いて距離を検出して碁盤16の外郭を検出する処理など他の碁盤16の外郭となる矩形を検出する方法を適用してもよい。
【0071】
また、上記の実施形態において、第1罫線検出部26及び第2罫線検出部28のそれぞれの罫線検出方法は一例であって、これに限るものではない。例えば、碁盤16の最外罫線の4角の位置を検出したところで記憶しておいて、4角の位置のずれに応じて各罫線の位置を認識する方法や、罫線の交点を探す方法等を、処理負荷に応じて、第1罫線検出部26または第2罫線検出部28に適用してもよい。
【0072】
また、上記の実施形態では、第1罫線検出部26に台形補正部34及び碁盤罫線特定部36の機能を有し、第2罫線検出部28に台形補正部44及び碁盤罫線決定部50の機能を有する例を説明したが、これに限るものではない。例えば、台形補正を行う機能及び碁盤の罫線を特定・決定する機能の少なくとも一方は、第1罫線検出部26及び第2罫線検出部28の機能に含まない形態としてもよい。
【0073】
また、上記の実施形態では、最外罫線を検出して台形補正を行ってから碁盤16の罫線を決定する順に処理を行う例を説明したが、処理順はこれに限定されるものではない。例えば、最外罫線を決定して碁盤16の罫線を決定した後に、最後に台形補正を行う順としてもよい。
【0074】
また、本実施形態で説明した、碁盤16の画像をX軸、Y軸方向に走査し、等間隔または等比間隔の線を特定する手法は、碁盤16に限るものではなく、
図11に示すように帳票を認識する技術に応用してもよい。具体的には、帳票は、帳票の種別毎にXY方向の罫線数や罫線間比率が決まっているため、罫線間の距離の比率で帳票の種別を判断してもよい。例えば、真上ではなく、任意の俯角からスマートフォンなどで帳票等を読み取った場合や文字認識がし難い場合であっても、帳票をX軸、Y軸方向に走査することで、罫線を特定し、特定された罫線間の距離の比率を特定することで、帳票の種別が特定される。例えば、
図10に示すように、帳票を斜め上から撮影した画像を、X軸方向に走査すると、縦方向の罫線の間隔が6つ特定され、その間隔の比率が1:4:7:2:6であるとする。その情報をもとに、帳票種別データベースと照合し、当該帳票が、出生届であることが特定される。
【0075】
また、上記の実施形態において、CPUをプロセッサの一例として説明したが、プロセッサとは広義的なプロセッサを指し、汎用的なプロセッサ(例えばCPU等)や、専用のプロセッサ(例えばGPU: Graphics Processing Unit、ASIC: Application Specific Integrated Circuit、FPGA: Field Programmable Gate Array、プログラマブル論理デバイス等)を含むものである。
【0076】
また、上記の実施形態におけるプロセッサの動作は、1つのプロセッサによって成すのみでなく、物理的に離れた位置に存在する複数のプロセッサが協働して成すものであってもよい。また、プロセッサの各動作の順序は上記各実施形態において記載した順序のみに限定されるものではなく、適宜変更してもよい。
【0077】
また、上記の実施形態に係る情報処理装置14で行われる処理は、ソフトウエアで行われる処理としてもよいし、ハードウエアで行われる処理としてもよいし、双方を組み合わせた処理としてもよい。また、情報処理装置14で行われる処理は、プログラムとして記憶媒体に記憶して流通させるようにしてもよい。
【0078】
また、本発明は、上記に限定されるものでなく、上記以外にも、その主旨を逸脱しない範囲内において種々変形して実施可能であることは勿論である。
【符号の説明】
【0079】
10 罫線認識装置
12 撮影部
14 情報処理装置
14A CPU
16 碁盤
17 碁石