(57)【要約】【課題】入力画像を文書画像および情景画像へ分類すること。【解決手段】認識装置１０は、入力画像を取得する処理と、入力画像から暈け度合が異なる複数の暈け画像を生成する処理と、暈け画像ごとに当該暈け画像にラベリング処理を適用することにより得られる連結成分の数を算出する処理と、複数の暈け画像の間で連結成分の数の変化量が所定の閾値以上である暈け度合の変化が存在するか否かを判定する処理とを実行する。【選択図】図１
2017058743.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
入力画像を取得する処理と、
前記入力画像から暈け度合が異なる複数の暈け画像を生成する処理と、
暈け画像ごとに当該暈け画像にラベリング処理を適用することにより得られる連結成分の数を算出する処理と、
前記複数の暈け画像の間で前記連結成分の数の変化量が所定の閾値以上である暈け度合の変化が存在するか否かを判定する処理と
を実行させることを特徴とする認識プログラム。
【請求項２】
前記生成する処理は、前記入力画像が第１の方向に暈かされた第１の暈け画像群と、前記入力画像が前記第１の方向と垂直な方向に暈かされた第２の暈け画像群とを生成し、
前記判定する処理は、前記第１の暈け画像群の間で前記連結成分の数の変化量が所定の閾値以上である暈け度合の変化が存在し、かつ前記第２の暈け画像群の間で前記連結成分の数の変化量が所定の閾値以上である暈け度合の変化が存在するか否かを判定することを特徴とする請求項１に記載の認識プログラム。
【請求項３】
前記コンピュータに、
前記入力画像にラベリング処理を適用することにより得られる連結成分の高さの統計値または幅の統計値を算出する処理をさらに実行させ、
前記生成する処理は、前記連結成分の高さの統計値または幅の統計値から定まる更新幅にしたがって前記暈け度合を更新しながら前記複数の暈け画像を生成することを特徴とする請求項１または２に記載の認識プログラム。
【請求項４】
前記生成する処理は、前記暈け度合を第１の値から前記連結成分の高さの統計値または幅の統計値と前記入力画像の高さまたは幅とにより定まる第２の値まで更新しながら前記複数の暈け画像を生成することを特徴とする請求項３に記載の認識プログラム。
【請求項５】
コンピュータが、
入力画像を取得する処理と、
前記入力画像から暈け度合が異なる複数の暈け画像を生成する処理と、
暈け画像ごとに当該暈け画像にラベリング処理を適用することにより得られる連結成分の数を算出する処理と、
前記複数の暈け画像の間で前記連結成分の数の変化量が所定の閾値以上である暈け度合の変化が存在するか否かを判定する処理と
を実行することを特徴とする認識方法。
【請求項６】
入力画像を取得する取得部と、
前記入力画像から暈け度合が異なる複数の暈け画像を生成する生成部と、
暈け画像ごとに当該暈け画像にラベリング処理を適用することにより得られる連結成分の数を算出する算出部と、
前記複数の暈け画像の間で前記連結成分の数の変化量が所定の閾値以上である暈け度合の変化が存在するか否かを判定する判定部と
を有することを特徴とする認識装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、認識プログラム、認識方法及び認識装置に関する。
【背景技術】
【０００２】
画像に含まれる文字を認識する技術の一例として、ＯＣＲ（Optical  Character  Recognition）が知られている。
【０００３】
例えば、ＯＣＲソフトが適用される画像には、文書が撮影された画像のように、画像に含まれる内容の主体が文字である画像もあれば、風景などが撮影された画像のように、画像に含まれる内容の主体が文字以外のコンテンツ、例えば風景、図や表などである画像もある。なお、以下では、前者の画像のことを「文書画像」と記載すると共に、後者の画像のことを「情景画像」と記載する場合がある。
【０００４】
このうち、文書画像では、一定の規則、例えば文字、行や章などの書式にしたがって文字が整列する傾向にある。このため、文字画像からは、行方向、すなわち横書きまたは縦書きや行間を検出するレイアウト解析を行うことにより、画像上で文字が存在する文字領域を推定することができる。例えば、文書画像を２値化し、２値化画像を水平方向および垂直方向に走査して黒画素をカウントすることにより、黒画素のヒストグラムが方向ごとに生成される。その上で、方向ごとに生成された黒画素のヒストグラムから行方向および行間を検出し、行方向および行間にしたがって文字領域が推定される。
【０００５】
その一方で、情景画像からは、文書画像のように、文字領域を簡単に推定することはできない。なぜなら、情景画像内に文字が含まれる場合でも、例えば、風景に収まる看板の文字などのように、書式等にしたがって文字が整列するとは限らず、情景画像上で文字が局所的かつ不規則に存在するからである。それ故、情景画像のレイアウト解析が行われる場合、行方向や行間などの書式を手がかりに文字領域を推定するのが困難である。よって、情景画像上で文字と紛らわしい箇所が文字であるか否かを弁別する点に重点が置かれたアルゴリズムがレイアウト解析に用いられる。
【０００６】
このように、文書画像および情景画像の間では、レイアウト解析に適用されるアルゴリズムも異なる。このため、文書画像には、文書画像用のＯＣＲソフトが適用される一方で、情景画像には、情景画像用のＯＣＲソフトが適用される。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平０４−３３０５８７号公報
【特許文献２】特開平０８−３０５７９３号公報
【特許文献３】特開平０６−０２００９２号公報
【特許文献４】特開２０１３−１５７９５６号公報
【非特許文献】
【０００８】
【非特許文献１】秋山  照雄，増田  功  「書式指定情報によらない紙面構成要素抽出法」電子通信学会論文誌  Ｖｏｌ，Ｊ６６−Ｄ  Ｎｏ．１
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記の技術では、入力画像を文書画像および情景画像へ分類できない。
【００１０】
すなわち、文書画像および情景画像の分類は、ユーザによるオペレーション、すなわち入力画像に適用されるＯＣＲソフトを文書画像用または情景画像用のいずれの方式とするのかを切り替えるオペレーションに委ねられている実情がある。それ故、ユーザによるオペレーションがなければ、情景画像用のＯＣＲソフトが文書画像に適用されたり、文書画像用のＯＣＲソフトが情景画像に適用されたりする場合がある。この場合、文字認識の精度が低下したり、文字以外の部分から意味不明な文字が認識されたり、或いは処理時間が増大したりするといった不具合が起こる。
【００１１】
また、文書画像用のレイアウト解析を援用し、行方向や行間などが検出されるか否かにより、入力画像を文書画像または情景画像へ分類しようとしても、誤った分類が行われる場合がある。例えば、情景画像の２値化画像にストライプ状の黒画素が含まれる場合、文書画像の２値化画像と同様に、黒画素のヒストグラムから行方向や行間が検出される場合がある。この場合、入力画像が情景画像であっても誤って文書画像へ分類されてしまう。
【００１２】
１つの側面では、本発明は、入力画像を文書画像および情景画像へ分類できる認識プログラム、認識方法及び認識装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
一態様では、コンピュータに、入力画像を取得する処理と、前記入力画像から暈け度合が異なる複数の暈け画像を生成する処理と、暈け画像ごとに当該暈け画像にラベリング処理を適用することにより得られる連結成分の数を算出する処理と、前記複数の暈け画像の間で前記連結成分の数の変化量が所定の閾値以上である暈け度合の変化が存在するか否かを判定する処理とを実行させる。
【発明の効果】
【００１４】
入力画像を文書画像および情景画像へ分類できる。
【図面の簡単な説明】
【００１５】
【図１】図１は、実施例１に係る認識装置の機能的構成を示す図である。
【図２Ａ】図２Ａは、画像の一例を示す図である。
【図２Ｂ】図２Ｂは、画像の一例を示す図である。
【図２Ｃ】図２Ｃは、画像の一例を示す図である。
【図２Ｄ】図２Ｄは、画像の一例を示す図である。
【図３】図３は、画像ピラミッドの一例を示す図である。
【図４】図４は、暈け画像におけるブロブの抽出結果の一例を示す図である。
【図５】図５は、暈かし関数の一例を示す図である。
【図６】図６は、暈け画像におけるブロブの抽出結果の一例を示す図である。
【図７】図７は、暈かし関数の一例を示す図である。
【図８】図８は、実施例１に係る分類処理の手順を示すフローチャートである。
【図９】図９は、実施例１に係る暈け画像の生成処理の手順を示すフローチャートである。
【図１０】図１０は、実施例１に係るブロブ数算出処理の手順を示すフローチャートである。
【図１１】図１１は、実施例１及び実施例２に係る認識プログラムを実行するコンピュータのハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１６】
以下に添付図面を参照して本願に係る認識プログラム、認識方法及び認識装置について説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１７】
［認識装置の構成］
図１は、実施例１に係る認識装置の機能的構成を示す図である。図１に示す認識装置１０は、入力画像に含まれる文字を認識する文字認識処理を行うものである。かかる文字認識処理の一環として、入力画像から生成される暈け度合が異なる一連の暈け画像の間で、黒画素のブロブが文字単位から行単位へ暈けるブロブ数の変化の有無を判定することにより、入力画像を文書画像および情景画像へ分類する分類処理を実現する。
【００１８】
一実施形態として、認識装置１０は、上記の文字認識処理がパッケージソフトウェアやオンラインソフトウェアとして提供される文字認識プログラム、いわゆるＯＣＲソフトを所望のコンピュータにインストールさせることによって実装できる。かかるＯＣＲソフトは、上記の分類処理を実現する分類プログラムをコンポーネントとして含むアプリケーションプログラムとして提供されることとしてもよいし、分類プログラムがＯＣＲソフトにアドオンされるライブラリとして提供されることとしてもよい。例えば、スマートフォン、携帯電話機やＰＨＳ（Personal  Handyphone  System）などの移動体通信端末のみならず、タブレット端末やスレート端末などを含む携帯端末装置に文字認識プログラムをインストールさせる。これによって、携帯端末装置を認識装置１０として機能させることができる。なお、ここでは、一例として、認識装置１０が携帯端末装置として実装される場合を例示して以下の説明を行うが、パーソナルコンピュータを始めとする据置き型の端末装置に認識プログラムをインストールさせることもできる。
【００１９】
以下では、あくまで一例として、ユーザにより使用されるコンピュータで上記の文字認識プログラムが実行される場合を例示するが、必ずしもユーザのコンピュータ上で上記の文字認識プログラムが実行されずともかまわない。すなわち、ユーザのコンピュータから送信される画像を入力画像とし、当該入力画像の分類結果または当該入力画像の文字認識結果を出力する機能が実現されればよく、ネットワーク上のコンピュータ、例えばサーバ装置、物理マシンまたは物理マシン群により形成されるクラウドとして実装されることとしてもかまわない。
【００２０】
図１には、上記の文字認識処理を仮想的に実現する処理部及び処理部が参照または登録を行う記憶部が図示されているが、これらは上記の文字認識処理を行う上で最小限の処理部及び記憶部が示されているに過ぎない。すなわち、認識装置１０は、図１に示した機能部以外にも既知のコンピュータが標準装備する各種の機能部を有することとしてもかまわない。例えば、認識装置１０がタブレット端末として実装される場合には、加速度センサや角速度センサなどのモーションセンサをさらに有することとしてもよい。また、認識装置１０が移動体通信端末として実装される場合には、アンテナ、ＧＰＳ（Global  Positioning  System）受信機などの機能部をさらに有していてもかまわない。また、認識装置１０が据置き型の端末装置として実装される場合には、キーボード、マウスやディスプレイなどの入出力デバイスを有することとしてもよい。
【００２１】
図１に示すように、認識装置１０は、画像記憶部１１と、取得部１２と、変換部１３と、生成部１４と、分類部１５と、第１認識部１６ａと、第２認識部１６ｂとを有する。
【００２２】
画像記憶部１１は、画像データを記憶する記憶部である。
【００２３】
一実施形態として、画像記憶部１１には、図示しないカメラ等により撮影が行われた場合、カメラにより撮像された画像データが登録される。この他、画像記憶部１１には、図示しない通信インタフェースなどを介して、ネットワーク上の任意のコンピュータから画像データのダウンロードが行われた場合、当該ダウンロードされた画像が登録される。なお、画像記憶部１１には、任意のファイル形式、いわゆるフォーマットで画像を保存することができる。
【００２４】
図２Ａ〜図２Ｄは、画像の一例を示す図である。図２Ａ〜図２Ｄには、一部に文字を含む画像が示されている。図２Ａ及び図２Ｂには、文書のページが撮影された画像が示されている。図２Ａに示す画像には、横書きの論文の１ページが映っており、図２Ｂに示す画像には、縦書きの書籍の１ページが映っている。また、図２Ｃ及び図２Ｄには、風景が撮影された画像が示されている。図２Ｃに示す画像には、風景の中に収まる看板に「仙人岳」等の文字列が映っており、図２Ｄに示す画像には、左上のポスター、中央部の左に存在する掲示板、各所に配置された段ボールの一部に文字列が映っている。
【００２５】
このように、スマートフォンに代表される携帯端末装置等には、文書画像および情景画像が混在して保存される状況が生じる。例えば、図２Ａ及び図２Ｂに示す通り、文書がメモ代わりに撮影された文書画像が保存されたり、また、図２Ｃ及び図２Ｄに示す通り、風景等が記録として撮影された情景画像が保存されたりする。
【００２６】
これらの画像に含まれる文字を認識する技術的意義の一例として、次のような点が挙げられる。例えば、文書画像に含まれる文字を認識することにより、アプリケーション、例えばテキストエディタ、ワープロソフトや表計算ソフトにおける編集に用いることができる。また、情景画像に含まれる文字を認識することにより、当該情景画像の検索に用いるキーワードとして情景画像のメタデータへ付与できる。
【００２７】
ここで、画像記憶部１１に記憶された画像に適用するレイアウト解析を文書画像用または情景画像用のいずれの方式とするのかを切り替えるオペレーションをユーザに委ねたのでは、ユーザの利便性が損なわれる場合がある。そこで、本実施例に係る認識装置１０では、文書画像または情景画像への分類を自動化し、もってユーザによるオペレーションを省略して文字認識処理を実行できる環境を提供することを目指す。
【００２８】
取得部１２は、画像を取得する処理部である。
【００２９】
一実施形態として、取得部１２は、次のような条件で上記の分類処理を起動し、画像記憶部１１に記憶された画像を取得する。例えば、取得部１２は、図示しない操作部等を介して、画像記憶部１１に記憶された画像の中から画像の指定を受け付けた場合、当該指定が受け付けられた画像を画像記憶部１１から読み出す。この他、取得部１２は、画像記憶部１１に新規の画像が登録される度に、新規登録が行われた画像を画像記憶部１１から読み出す。この場合、取得部１２により上記の分類処理が起動され、バックグラウンドで分類処理が実行されることになる。このように取得部１２により取得された画像が上記の分類処理の入力とされる。以下では、取得部１２により取得された画像、すなわち上記の分類処理の入力とされる画像のことを「入力画像」と記載する場合がある。
【００３０】
なお、ここでは、あくまで一例として、認識装置１０が有する画像記憶部１１から画像を取得する場合を例示したが、必ずしも認識装置１０が画像を保存しておらずともかまわない。例えば、取得部１２は、図示しない通信インタフェースを介して、ネットワーク上のコンピュータ、例えばファイルサーバ、Ｗｅｂサーバやクラウドから画像を取得することもできる。この他、取得部１２は、メモリカードやＵＳＢ（Universal  Serial  Bus）メモリなどのリムーバブルメディアから画像を取得することもできる。
【００３１】
変換部１３は、入力画像の画像形式を所定の画像形式へ変換する処理部である。
【００３２】
一実施形態として、変換部１３は、取得部１２により取得された入力画像がカラー形式であるか否かを判定する。このとき、変換部１３は、入力画像がカラー形式である場合、入力画像をカラー形式からグレースケール形式へ変換する。かかるグレースケールへの変換は、任意の手法により実現することができる。例えば、入力画像がＲＧＢ表色系の画像データである場合、変換部１３は、入力画像に含まれる画素が持つＲＧＢの画素値をＬ＊ａ＊ｂ表色系やＹＵＶ表色系の画素値に変換した上で明度Ｌや輝度Ｙを各画素の画素値に設定することにより、カラー形式からグレースケール形式へ変換することができる。
【００３３】
なお、ここでは、他の表色系の画素値へ変換する場合を例示したが、あくまで一例であり、グレースケールへの変換方法はこれに限定されない。例えば、変換部１３は、ＲＧＢの画素値のうち少なくともいずれか１つの成分の画素値を代表して抽出することにより変換を実現してもよいし、複数の成分の画素値に統計処理を実行することにより１つの代表値を算出することにより変換を実現してもよい。
【００３４】
生成部１４は、入力画像から暈け度合が異なる複数の暈け画像を生成する処理部である。
【００３５】
一実施形態として、生成部１４は、変換部１３によりカラーからグレースケールへ変換された入力画像に対し、ガウスフィルタを適用してフィルタの畳み込み演算を行うことにより、暈け画像を生成する。ここで、生成部１４は、画像を水平方向に暈かすガウスフィルタを入力画像に適用する畳み込み演算と、画像を垂直方向に暈かす垂直方向用のガウスフィルタを入力画像に適用する畳み込み演算とを独立して実行する。これによって、生成部１４は、入力画像が水平方向へ暈かされた暈け画像と、入力画像が垂直方向へ暈かされた暈け画像とを生成する。以下では、前者のことを「水平暈け画像」と記載し、後者のことを「垂直暈け画像」と記載する場合がある。さらに、生成部１４は、ガウスフィルタの生成に用いるガウス関数の分散σ２、言い換えればスケールｔを初期値ｔｓから目標値ｔｅまで所定の更新幅Δｔで変化させながらガウスフィルタを計算することにより異なる暈け度合が設定されたガウスフィルタを生成し、ガウスフィルタごとに畳み込み演算を実行する。この結果、１つの入力画像から図３に示す構造を持つ画像ピラミッドが生成される。図３は、画像ピラミッドの一例を示す図である。図３に示すように、水平及び垂直の暈かし方向ごとに、水平方向のスケールｔＨが異なる一連の水平暈け画像と、垂直方向のスケールｔＶが異なる一連の垂直暈け画像とが生成される。
【００３６】
［ガウスフィルタの算出式］
ここで、上記の水平暈け画像の生成に用いる第１のガウスフィルタは、一例として、下記の式（１）にしたがって算出することができる。また、上記の垂直暈け画像の生成に用いる第２のガウスフィルタも、一例として、下記の式（２）にしたがって算出することができる。
【００３７】
【数１】
2017058743.tif 000003
【数２】
2017058743.tif 000004
【００３８】
上記の式（１）における（ｘ，ｙ）は、画像上の座標を指す。このうち、「ｘ」は、画像の水平方向に対応するＸ軸の座標を指す一方で、「ｙ」は、画像の垂直方向に対応するＹ軸の座標を指す。また、上記の式（１）における「ｔＨ」は、水平方向のスケールを指し、また、上記の式（２）における「ｔＶ」は、垂直方向のスケールを指す。また、上記の式（１）及び上記の式（２）における「ｃ」は、１よりも十分に小さく、かつ符号が正である定数を指し、実験等の結果により設定される。例えば、０．１〜０．２の値が定数ｃとして採用される。
【００３９】
これら式（１）及び式（２）を用いて、生成部１４は、スケールｔを初期値ｔｓ、例えば「０」に設定してｔ＝０のガウスフィルタを算出した後、スケールｔの値が目標値ｔｅに更新されるまでスケールｔの値をΔｔずつインクリメントしながら各スケールｔのガウスフィルタを水平及び垂直の暈かし方向ごとに算出する。これによって、行数及び列数が等しい等方性を持つガウスフィルタばかりが算出されるとは限らず、行数及び列数が異なるフィルタ、すなわち非等方性を持つガウスフィルタが算出される場合もある。例えば、スケールｔが大きくなるほど、第１のガウスフィルタの場合、行数が列数よりも大きいガウスフィルタが生成される一方で、第２のガウスフィルタの場合、列数が行数よりも大きいガウスフィルタが生成される可能性が高まる。
【００４０】
ここで、スケールｔが「０」である場合、ガウス関数の分散σ２が「０」に設定される。それ故、ｔ＝０のガウスフィルタが適用された入力画像からは、暈けがない画像、すなわち入力画像と同一の画像が暈け画像として生成されることになる。したがって、ｔ＝０のガウスフィルタは、必ずしも上記の式（１）及び上記の式（２）を用いる計算により算出せずともかまわず、入力画像をそのままｔ＝０の暈け画像として用いることができる。なお、ここで、スケールｔの初期値ｔｓを「０」とする場合を例示したが、初期値ｔｓは必ずしも「０」でなくともかまわない。
【００４１】
［フィルタサイズ］
このように、スケールｔを段階的に更新しながらガウスフィルタを算出する場合、ガウスフィルタのフィルタサイズもスケールｔに連動して変えることができる。なぜなら、スケールｔが大きく設定されるほど大きな範囲で入力画像を暈かすにもかかわらず、スケールｔに比べて小さなフィルタサイズが設定されれば、フィルタサイズが制約となって水平方向または垂直方向の暈かしが適切に機能しないからである。
【００４２】
したがって、生成部１４は、ガウスフィルタのスケールｔが大きくなるにつれてフィルタサイズも大きく設定する。例えば、第１のガウスフィルタ及び第２のガウスフィルタのフィルタサイズＬは、下記の式（３）により算出することができる。例えば、下記の式（３）における「σ」は、ガウス関数の標準偏差である。下記の式（３）における「ｎ」は、整数であり、計算速度または精度のいずれを優先するのかによってその値を変えることができる。例えば、精度よりも計算速度を優先する場合、整数ｎには「１」を採用できる。また、計算速度よりも精度を優先する場合、整数ｎには「２」を採用できる。また、下記の式（３）における「integer」は、整数型を指し、ここでは、一例として、ｎ＊σの乗算値が四捨五入等により整数へ変換される。但し、σが０でない小さな値をとる場合には、Ｌの最小値は３とされる。
【００４３】
Ｌ＝２＊integer（ｎ＊σ）＋１・・・（３）
【００４４】
分類部１５は、入力画像を文書画像および情景画像へ分類する処理部である。
【００４５】
一実施形態として、分類部１５は、入力画像から生成される暈け度合が異なる一連の暈け画像の間で、黒画素のブロブが文字単位から行単位へ暈けるブロブ数の変化の有無を判定することにより、入力画像を文書画像および情景画像へ分類する。すなわち、分類部１５は、暈け度合の変化に対する暈け画像の黒画素のブロブ数の変化量により、入力画像が書式特有の階層構造、例えば文字、行、章やページなどの階層構造を有するか否かを判別する。
【００４６】
ここで、文書画像は、図、表や写真を含んでいても、縦書きまたは横書きの文字部分が一定の割合以上で存在する公算が高い。よって、文書画像には、文字、行、章（行の一塊）、ページなどの各階層で固有のスケールを持つ画像要素が存在する。他方、情景画像は、固有のスケールを持った階層構造を持たず、様々なサイズの画像要素が点在する。
【００４７】
このことから、黒画素のブロブ数の減少量が大きい箇所が存在する場合、文字単位のブロブが行単位のブロブへ暈けたり、行単位のブロブが章単位やページ単位のブロブへ暈けたりといった暈け度合の変化があった公算が高まる。このような暈け度合の変化が存在する場合、入力画像が書式特有の階層構造を有すると推定できる結果、入力画像が文書画像である公算も高まる。一方、上記の暈け度合の変化が存在しない場合、入力画像が書式特有の階層構造を持たないと推定できる結果、入力画像が情景画像である公算が高まる。これによって、分類部１５は、入力画像を文書画像および情景画像へ自動的に分類できる。
【００４８】
図１に示す通り、分類部１５は、ブロブ数算出部１５ａと、極値算出部１５ｂと、判定部１５ｃとを有する。
【００４９】
ブロブ数算出部１５ａは、暈け画像に含まれるブロブ数を算出する処理部である。ここで言う「ブロブ」とは、ラベリング処理により同一のラベルが付与された黒画素の連結成分のことを指す。
【００５０】
一実施形態として、ブロブ数算出部１５ａは、生成部１４により生成された一連の水平暈け画像及び一連の垂直暈け画像の各暈け画像に対し、次のような処理を実行する。すなわち、ブロブ数算出部１５ａは、暈け画像に含まれる各画素が持つ画素値が閾値以上であるか否かを判定する。そして、ブロブ数算出部１５ａは、画素値が閾値以上である画素に黒に対応する画素値「０」を設定する一方で、画素値が閾値未満である画素に白に対応する画素値「１」を設定する。これによって、暈け画像に含まれる各画素が白の画素値「１」または黒の画素値「０」に２値化された２値化画像を得ることができる。
【００５１】
そして、ブロブ数算出部１５ａは、２値化画像にラベリング処理を実行する。ここで言う「ラベリング処理」とは、２値化画像上で白または黒が連続する画素に同一のラベルを割り当てる処理を指し、既知の任意の手法を適用することができる。文書内の文字は、黒または黒に準じる色で表現されるので、ここでは、一例として、黒の画素値「０」が連続する画素に同一の識別情報が割り当てられる場合を想定する。このように、暈け画像の２値化画像にラベリング処理が行われることにより、同一のラベルが付与された黒画素の連結成分が「ブロブ」として抽出される。その上で、ブロブ数算出部１５ａは、上記のラベリング処理により暈け画像の２値化画像から抽出された黒画素のブロブ数を計数し、当該黒画素のブロブ数を対数へ変換する。
【００５２】
これによって、水平及び垂直の暈かし方向ごとに、一連の暈け画像のスケールｔと、各スケールｔの暈け画像に含まれる黒画素のブロブ数の対数との対応関係が得られる。以下では、プロセッサ上で仮想的に実現される各処理部がブロブ数の対数の変化をスケールｔを独立変数とする関数として扱うこととし、当該関数のことを「暈かし関数」と記載する場合がある。さらに、暈かし関数の暈かし方向を総称する場合に「暈かし関数log  f(t)」と記載し、暈かし方向が水平方向である暈かし関数のことを指す場合に「暈かし関数log  f(tH)」と記載すると共に、暈かし方向が垂直方向である暈かし関数のことを指す場合に「暈かし関数logf  (tV)」と記載する場合がある。
【００５３】
極値算出部１５ｂは、暈かし関数の１次微分の極値を算出する処理部である。
【００５４】
一実施形態として、極値算出部１５ｂは、暈かし関数log  f(t)をスケールｔで微分することにより１次導関数dlog  f(t)/dtを算出する。さらに、極値算出部１５ｂは、暈かし関数の２次導関数d2log  f(t)/dt2を算出する。そして、極値算出部１５ｂは、暈かし関数の２次導関数d2log  f(t)/dt2の値が「０」となるゼロクロス点を検出することにより、暈かし関数の１次導関数dlog  f(t)/dtの極値、ここではガウスフィルタの暈かしによりスケールの増加に伴ってブロブ数が単調に減少するので極小値を算出する。その上で、極値算出部１５ｂは、暈かし関数の１次導関数dlog  f(t)/dtの極値が求まる度に、これまでに求められた極値数を１つインクリメントすることにより、水平および垂直の暈かし方向ごとに極値数を集計する。このようにして、水平および垂直の暈かし方向ごとに、１次導関数dlog  f(tH)/dtの極値数、および、１次導関数dlog  f(tV)/dtの極値数が求められる。
【００５５】
判定部１５ｃは、暈かし関数の１次微分の極値数が所定の条件を満たすか否かを判定する処理部である。
【００５６】
一実施形態として、判定部１５ｃは、極値算出部１５ｂにより算出された暈かし方向が水平方向である暈かし関数の１次導関数dlog  f(tH)/dtの極値数がゼロよりも大きいか否かを判定する。このとき、判定部１５ｃは、１次導関数dlog  f(tH)/dtの極値数がゼロよりも大きい場合、極値算出部１５ｂにより算出された暈かし方向が垂直方向である暈かし関数の１次導関数dlog  f(tV)/dtの極値数がゼロよりも大きいか否かをさらに判定する。ここで、１次導関数dlog  f(tV)/dtの極値数もゼロよりも大きい場合、水平および垂直の両方の暈かし方向で、入力画像が書式特有の階層構造を有すると推定できるので、入力画像が文書画像である公算が高まる。この場合、判定部１５ｃは、入力画像を「文書画像」へ分類し、文書画像用のレイアウト解析により文字認識処理を実行する第１の認識部１６ａへ入力画像を出力する。一方、１次導関数dlog  f(tH)/dtの極値数がゼロであるか、あるいは１次導関数dlog  f(tV)/dtの極値数がゼロである場合、水平または垂直の少なくともいずれかの暈かし方向で、入力画像が書式特有の階層構造を有さないと推定できるので、入力画像が情景画像である公算が高まる。この場合、判定部１５ｃは、入力画像を「情景画像」へ分類し、情景画像用のレイアウト解析により文字認識処理を実行する第２の認識部１６ｂへ入力画像を出力する。
【００５７】
ここで、図４〜図７を用いて、入力画像の分類方法の一例を説明する。図４及び図６は、暈け画像におけるブロブの抽出結果の一例を示す図である。図５及び図７は、暈かし関数の一例を示す図である。図４及び図６には、横書きの２段組の文書の１ページが撮影された入力画像の暈け画像から抽出されたブロブの抽出結果が示されている。図４には、水平方向のスケールｔＨが異なる一連の水平暈け画像から抽出されたブロブが示されると共に、図６には、垂直方向のスケールｔＶが異なる一連の垂直暈け画像から抽出されたブロブが示されている。また、図５の上段には、暈かし方向が水平方向である暈かし関数log  f(tH)が示されると共に、図５の下段には、１次導関数dlog  f(tH)/dtが示されている。さらに、図７の上段には、暈かし方向が垂直方向である暈かし関数log  f(tV)が示されると共に、図７の下段には、１次導関数dlog  f(tV)/dtが示されている。
【００５８】
図４の上段には、ｔＨ＝０の水平暈け画像（＝入力画像）からのブロブの抽出結果が示されている。この通り、スケールｔＨが初期値の段階では、暈け画像から文字単位のブロブが抽出されることがわかる。そして、スケールｔＨがΔｔ刻みで更新されると、図４の中段に示すように、文字単位のブロブが水平方向の暈かしによって行単位のブロブへ暈ける。さらに、スケールｔＨがΔｔ刻みで更新されると、図４の下段に示すように、行単位のブロブが水平方向の暈かしによってページ単位のブロブへ暈ける。
【００５９】
これら一連の水平暈け画像から算出されるブロブ数の対数から、図５の上段に示す暈かし関数log  f(tH)が得られる。この暈かし関数の２次導関数d2log  f(tH)/dt2の値が「０」となるゼロクロス点を検出することにより、暈かし関数の１次導関数dlog  f(tH)/dtの極値が算出される。すなわち、図５の下段に示すように、スケールｔ＝ｔＨＭ１の点、及び、スケールｔ＝ｔＨＭ２の点が極値として算出される。これら２つの極値は、文字単位のブロブが水平方向の暈かしによって行単位のブロブへ暈けたスケールと、行単位のブロブが水平方向の暈かしによってページ単位のブロブへ暈けたスケールとに対応する。
【００６０】
このように、水平方向の暈かしでは、１次導関数dlog  f(tH)/dtの極値数が「２」であると判別できるので、入力画像が水平方向に文字、行（段組みの一行）、ページといった３つの階層構造を持つことを推定できる。
【００６１】
一方、図６の上段には、ｔＶ＝０の垂直暈け画像（＝入力画像）からのブロブの抽出結果が示されている。この通り、スケールｔＶが初期値の段階では、暈け画像から文字単位のブロブが抽出されることがわかる。そして、スケールｔＨがΔｔ刻みで更新されると、図６の下段に示すように、文字単位のブロブが垂直方向の暈かしによってページ単位のブロブへ暈ける。
【００６２】
これら一連の垂直暈け画像から算出されるブロブ数の対数から、図７の上段に示す暈かし関数log  f(tV)が得られる。この暈かし関数の２次導関数d2log  f(tV)/dt2の値が「０」となるゼロクロス点を検出することにより、暈かし関数の１次導関数dlog  f(tV)/dtの極値が算出される。すなわち、図７の下段に示すように、スケールｔ＝ｔＶＭ１の点が極値として算出される。かかる極値は、文字単位のブロブが垂直方向の暈かしによってページ単位のブロブへ暈けたスケールに対応する。
【００６３】
このように、垂直方向の暈かしでは、１次導関数dlog  f(tV)/dtの極値数が「１」であると判別できるので、入力画像が垂直方向に文字、ページといった２つの階層構造を持つことを推定できる。
【００６４】
以上のように、１次導関数dlog  f(tH)/dtの極値数がゼロよりも大きいか否か、さらには、１次導関数dlog  f(tV)/dtの極値数がゼロよりも大きいか否かという判定を実施することにより、プロセッサは、水平および垂直の両方の暈かし方向で入力画像が書式特有の階層構造を有するか否かを推定できる。本例の場合、１次導関数dlog  f(tH)/dtの極値数がゼロよりも大きく、かつ１次導関数dlog  f(tV)/dtの極値数がゼロよりも大きいので、入力画像を「文書画像」へ正確に分類できる。
【００６５】
ここで、暈かし関数でブロブ数の代わりにブロブ数の対数を用いることとしたのは、次のような理由が挙げられる。例えば、文字単位のブロブが行単位のブロブへ暈ける場合と、行単位のブロブがページ単位のブロブへ暈ける場合とでは、ブロブ数の減少幅が大きく異なる。すなわち、行単位のブロブがページ単位のブロブへ暈ける場合の減少幅の方が、文字単位のブロブが行単位のブロブへ暈ける場合の減少幅よりも著しく小さくなることがある。このように、スケールが大きくなるほどスケールが小さい場合よりもブロブ数の減少幅が検出されづらくなる。このため、スケールが小さい場合でもスケールが大きい場合でも、同一のレベルの値をプロセッサに扱わせるために、暈かし関数には、ブロブ数の代わりにブロブ数の対数が用いられる。
【００６６】
なお、ここでは、極値数の有無を判定することにより入力画像を文書画像および情景画像へ分類する場合を例示したが、ブロブの構成単位が暈けにより切り替わる変化点はブロブ数の対数の変化量、すなわち減少幅が所定の閾値以上であるか否かにより推定することができるので、ブロブ数の対数の減少幅が閾値以上であるスケールの変化点が存在するか否かにより、入力画像を文書画像および情景画像へ分類することもできる。
【００６７】
第１認識部１６ａ及び第２認識部１６ｂは、いずれも入力画像に含まれる文字を認識する処理部である。これら第１認識部１６ａ及び第２認識部１６ｂの間では、第１認識部１６ａが文書画像用のレイアウト解析を文字認識処理に用いる一方で第２認識部１６ｂが情景画像用のレイアウト解析を文字認識処理に用いる点が異なる。
【００６８】
なお、上記の取得部１２、変換部１３、生成部１４、分類部１５、第１認識部１６ａ及び第２認識部１６ｂなどの処理部は、次のようにして実装できる。例えば、中央処理装置、いわゆるＣＰＵ（Central  Processing  Unit）などに、上記の各処理部と同様の機能を発揮するプロセスをメモリ上に展開して実行させることにより実現できる。これらの処理部は、必ずしも中央処理装置で実行されずともよく、ＭＰＵ（Micro  Processing  Unit）に実行させることとしてもよい。また、上記の各機能部は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などのハードワイヤードロジックによっても実現できる。
【００６９】
また、上記の画像記憶部１１には、一例として、各種の半導体メモリ素子、例えばＲＡＭ（Random  Access  Memory)やフラッシュメモリを採用できる。また、上記の画像記憶部１１は、必ずしも主記憶装置でなくともよく、補助記憶装置であってもかまわない。この場合、ＨＤＤ（Hard  Disk  Drive）、光ディスクやＳＳＤ（Solid  State  Drive）などを採用できる。
【００７０】
［処理の流れ］
次に、本実施例に係る認識装置１０の処理の流れについて説明する。なお、ここでは、認識装置１０により実行される（１）分類処理を説明した後に、分類処理のサブルーチンとして実行される（２）暈け画像の生成処理、（３）ブロブ数算出処理について説明することとする。
【００７１】
（１）分類処理
図８は、実施例１に係る分類処理の手順を示すフローチャートである。この処理は、一例として、画像記憶部１１に記憶された画像の中から画像の指定を受け付けた場合や画像記憶部１１に新規の画像が登録された場合に開始される。
【００７２】
図８に示すように、取得部１２により画像が取得されると（ステップＳ１０１）、変換部１３は、入力画像をカラー形式からグレースケール形式へ変換する（ステップＳ１０２）。なお、入力画像がグレースケールである場合には、ステップＳ１０２の処理はとばすことができる。
【００７３】
そして、生成部１４は、ステップＳ１０２でグレースケールへ変換された入力画像から暈け度合が異なる複数の暈け画像を生成する「暈け画像の生成処理」を実行する（ステップＳ１０３）。
【００７４】
続いて、ブロブ数算出部１５ａは、ステップＳ１０３で生成された一連の水平暈け画像及び一連の垂直暈け画像の各暈け画像ごとに当該暈け画像に含まれるブロブ数を算出する「ブロブ数算出処理」を実行する（ステップＳ１０４）。
【００７５】
その後、極値算出部１５ｂは、ステップＳ１０４で水平及び垂直の暈かし方向ごとに算出された各スケールｔの暈け画像に含まれる黒画素のブロブ数の対数から定まる暈かし関数の２次導関数d2log  f(t)/dt2の値が「０」となるゼロクロス点を検出することにより、暈かし関数の１次導関数dlog  f(t)/dtの極値を水平および垂直の暈かし方向ごとに算出する（ステップＳ１０５）。そして、極値算出部１５ｂは、ステップＳ１０５で極値が算出された回数、すなわち極値数を水平および垂直の暈かし方向ごとに集計する（ステップＳ１０６）。
【００７６】
続いて、判定部１５ｃは、ステップＳ１０６で集計された極値数のうち暈かし方向が水平方向である暈かし関数の１次導関数dlog  f(tH)/dtの極値数がゼロよりも大きいか否かを判定する（ステップＳ１０７）。
【００７７】
このとき、１次導関数dlog  f(tH)/dtの極値数がゼロよりも大きい場合（ステップＳ１０７Ｙｅｓ）、判定部１５ｃは、ステップＳ１０６で集計された極値数のうち暈かし方向が垂直方向である暈かし関数の１次導関数dlog  f(tV)/dtの極値数がゼロよりも大きいか否かをさらに判定する（ステップＳ１０８）。
【００７８】
ここで、１次導関数dlog  f(tV)/dtの極値数もゼロよりも大きい場合（ステップＳ１０８Ｙｅｓ）、水平および垂直の両方の暈かし方向で、入力画像が書式特有の階層構造を有すると推定できるので、入力画像が文書画像である公算が高まる。この場合、判定部１５ｃは、入力画像を「文書画像」へ分類し（ステップＳ１０９）、文書画像用のレイアウト解析により文字認識処理を実行する第１の認識部１６ａへ入力画像を出力し（ステップＳ１１１）、処理を終了する。
【００７９】
一方、１次導関数dlog  f(tH)/dtの極値数がゼロであるか、あるいは１次導関数dlog  f(tV)/dtの極値数がゼロである場合（ステップＳ１０７ＮｏまたはステップＳ１０８Ｎｏ）、次のような判断を下すことができる。すなわち、水平または垂直の少なくともいずれかの暈かし方向で、入力画像が書式特有の階層構造を有さないと推定できるので、入力画像が情景画像である公算が高まる。この場合、判定部１５ｃは、入力画像を「情景画像」へ分類し（ステップＳ１１０）、情景画像用のレイアウト解析により文字認識処理を実行する第２の認識部１６ｂへ入力画像を出力し（ステップＳ１１１）、処理を終了する。
【００８０】
（２）暈け画像の生成処理
図９は、実施例１に係る暈け画像の生成処理の手順を示すフローチャートである。この処理は、図８に示したステップＳ１０３の処理に対応し、ステップＳ１０２で入力画像がグレースケールへ変換された場合、あるいはステップＳ１０１でグレースケールの入力画像が取得された場合に開始される。なお、ここでは、暈かし方向が水平及び垂直のいずれの場合でも、ガウスフィルタの計算に式（１）の水平方向用のアルゴリズムまたは式（２）の垂直方向用のアルゴリズムを用いるのか以外は処理内容が同一であるので、片方の暈け画像の生成、すなわち水平暈け画像を生成する場合を例示する。
【００８１】
図９に示すように、生成部１４は、スケールｔＨを初期値ｔｓ、例えば「０」に設定する（ステップＳ３０１）。続いて、生成部１４は、暈かし方向が水平であるガウスフィルタを算出するアルゴリズム、すなわち上記の式（１）にスケールｔＨを適用することにより、当該スケールｔＨのガウスフィルタを算出する（ステップＳ３０２）。
【００８２】
続いて、生成部１４は、ステップＳ３０２で算出されたスケールｔＨのガウスフィルタをステップＳ１０２でグレースケール形式へ変換された入力画像に適用して、畳み込み演算を行う（ステップＳ３０３）。これによって、スケールｔＨの水平暈け画像が生成されることになる。
【００８３】
このとき、スケールｔＨが目標値ｔｅまで更新されていない場合（ステップＳ３０４Ｎｏ）、生成部１４は、スケールｔＨの値に所定の更新値Δｔをインクリメントし（ステップＳ３０５）、上記のステップＳ３０２及びステップＳ３０３の処理を繰り返し実行する。その後、スケールｔＨが目標値ｔｅまで更新されると（ステップＳ３０４Ｙｅｓ）、処理を終了する。
【００８４】
なお、ここでは、図９を参照して、一連の水平暈け画像が生成される場合を例示したが、垂直暈け画像を生成する場合にも、ガウスフィルタの計算に式（２）の垂直方向用のアルゴリズムを用いることにより、同様にして、一連の垂直暈け画像を生成できる。これら水平暈け画像および垂直暈け画像は、いずれの暈け画像が先に生成されることとしてもよいし、両者が並行して生成されることとしてもかまわない。
【００８５】
（３）ブロブ数算出処理
図１０は、実施例１に係るブロブ数算出処理の手順を示すフローチャートである。この処理は、図８に示したステップＳ１０４の処理に対応し、ステップＳ１０３の処理が実行された後に実行される。
【００８６】
図１０に示すように、ブロブ数算出部１５ａは、ステップＳ１０３で暈け画像の生成に用いられたスケールｔを１つ選択する（ステップＳ５０１）。続いて、ブロブ数算出部１５ａは、ステップＳ５０１で選択されたスケールｔに対応する水平暈け画像の２値化画像を生成する（ステップＳ５０２）。
【００８７】
そして、ブロブ数算出部１５ａは、ステップＳ５０２で得られた水平暈け画像の２値化画像にラベリング処理を適用して得られたブロブを計数する（ステップＳ５０３）。続いて、ブロブ数算出部１５ａは、ステップＳ５０３で得られたブロブ数を対数へ変換する（ステップＳ５０４）。
【００８８】
また、ブロブ数算出部１５ａは、ステップＳ５０１で選択されたスケールｔに対応する垂直暈け画像の２値化画像を生成する（ステップＳ５０５）。
【００８９】
そして、ブロブ数算出部１５ａは、ステップＳ５０５で得られた垂直暈け画像の２値化画像にラベリング処理を適用して得られたブロブを計数する（ステップＳ５０６）。続いて、ブロブ数算出部１５ａは、ステップＳ５０６で得られたブロブ数を対数へ変換する（ステップＳ５０７）。
【００９０】
その後、未選択のスケールがなくなるまで（ステップＳ５０８Ｙｅｓ）、未選択のスケールを選択し（ステップＳ５０１）、ステップＳ５０２〜ステップＳ５０７の処理を繰り返し実行する。そして、未選択のスケールがなくなると（ステップＳ５０８Ｎｏ）、処理を終了する。
【００９１】
［実施例１の効果］
上述してきたように、本実施例１に係る認識装置１０は、入力画像から生成される暈け度合が異なる一連の暈け画像の間で、黒画素のブロブが文字単位から行単位へ暈けるブロブ数の変化の有無を判定することにより、入力画像を文書画像および情景画像へ分類する。
【００９２】
言い換えれば、暈け度合の変化に対する暈け画像の黒画素のブロブ数の変化量により、入力画像が書式特有の階層構造、例えば文字、行、章やページなどの階層構造を有するか否かを判別する。例えば、黒画素のブロブ数の減少量が大きい箇所が存在する場合、文字単位のブロブが行単位のブロブへ暈けたり、行単位のブロブが章単位やページ単位のブロブへ暈けたりといった暈け度合の変化があった公算が高まる。
【００９３】
このような暈け度合の変化が存在する場合、入力画像が書式特有の階層構造を有すると推定できる結果、入力画像が文書画像である公算も高まる。一方、上記の暈け度合の変化が存在しない場合、入力画像が書式特有の階層構造を持たないと推定できる結果、入力画像が情景画像である公算が高まる。
【００９４】
したがって、本実施例に係る認識装置１０によれば、入力画像を文書画像および情景画像へ自動的に分類できる。
【実施例２】
【００９５】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【００９６】
［スケールの更新幅Δｔ］
上記の実施例１で説明を行ったスケールの更新幅Δｔは、その値が大きすぎるとブロブ数の対数の一次微分のグラフに極値が観測されづらくなる一方で、これとは逆に小さすぎると処理時間が増加するという傾向を持つ。
【００９７】
このことから、スケールの更新幅Δｔを適切に設定するために、次のような処理を実行することができる。例えば、入力画像が２値化された２値化画像にラベリング処理を適用することによりブロブを抽出した上で、各ブロブの外接矩形の高さの平均サイズＳｈ及び幅の平均サイズＳｗを算出する。各ブロブの外接矩形の高さの平均サイズＳｈ及び幅の平均サイズＳｗは、およそ平均文字高さおよび平均文字幅と同等のサイズになると推定できる。その上で、水平暈け画像を生成する場合には、スケールｔＨの初期値ｔｓを十分に小さい値、例えばｔＳ＝０．０００１から開始し、スケールｔＨの更新幅ΔｔをＳｗよりも小さい値、例えばΔｔ＝Ｓｗ／５と設定すると共に、目標値ｔｅまでのΔｔの更新回数を入力画像の幅／Δｔ、すなわち目標値ｔｅを入力画像の幅／２と設定することができる。また、垂直暈け画像を生成する場合には、先の水平暈け画像の説明において「Ｓｗ」を「Ｓｈ」と読み替えると共に「入力画像の幅」を「入力画像の高さ」と読み替えることにより、同様にして、スケールｔＶの更新幅Δｔや目標値ｔｅを適切に設定できる。
【００９８】
［暈け画像の生成方法］
上記の実施例１では、ガウスフィルタを用いて入力画像の暈け画像を生成する場合を例示したが、暈け画像の生成方法はこれに限定されない。例えば、入力画像を段階的に縮小することにより一連の暈け画像を生成することができる。この場合、画素を間引く処理が入力画像を適用することとなるが、当該間引き処理においては、複数の画素のうち最も画素値が低い画素、すなわち黒色に近い画素を残す一方でそれ以外の画素を間引くことにより、ガウスフィルタを用いる畳み込み演算により生成される暈け画像と同等の暈け画像を得ることができる。
【００９９】
［分散および統合］
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されておらずともよい。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、取得部１２、変換部１３、生成部１４、分類部１５、第１認識部１６ａまたは第２認識部１６ｂを認識装置１０の外部装置としてネットワーク経由で接続するようにしてもよい。一例として、取得部１２、変換部１３、生成部１４、分類部１５を有するサーバ装置を構築し、クライアント端末へ分類結果を送信することもできる。また、取得部１２、変換部１３、生成部１４、分類部１５、第１認識部１６ａまたは第２認識部１６ｂを別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記の認識装置１０の機能を実現するようにしてもよい。
【０１００】
［認識プログラム］
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図１１を用いて、上記の実施例と同様の機能を有する認識プログラムを実行するコンピュータの一例について説明する。
【０１０１】
図１１は、実施例１及び実施例２に係る認識プログラムを実行するコンピュータのハードウェア構成例を示す図である。図１１に示すように、コンピュータ１００は、操作部１１０ａと、スピーカ１１０ｂと、カメラ１１０ｃと、ディスプレイ１２０と、通信部１３０とを有する。さらに、このコンピュータ１００は、ＣＰＵ１５０と、ＲＯＭ１６０と、ＨＤＤ１７０と、ＲＡＭ１８０とを有する。これら１１０〜１８０の各部はバス１４０を介して接続される。
【０１０２】
ＨＤＤ１７０には、図１１に示すように、上記の実施例１で示した取得部１２、変換部１３、生成部１４及び分類部１５と同様の機能を発揮する認識プログラム１７０ａが記憶される。この認識プログラム１７０ａは、図１に示した取得部１２、変換部１３、生成部１４及び分類部１５の各構成要素と同様、統合又は分離してもかまわない。すなわち、ＨＤＤ１７０には、必ずしも上記の実施例１で示した全てのデータが格納されずともよく、処理に用いるデータがＨＤＤ１７０に格納されればよい。
【０１０３】
このような環境の下、ＣＰＵ１５０は、ＨＤＤ１７０から認識プログラム１７０ａを読み出した上でＲＡＭ１８０へ展開する。この結果、認識プログラム１７０ａは、図１１に示すように、認識プロセス１８０ａとして機能する。この認識プロセス１８０ａは、ＲＡＭ１８０が有する記憶領域のうち認識プロセス１８０ａに割り当てられた領域にＨＤＤ１７０から読み出した各種データを展開し、この展開した各種データを用いて各種の処理を実行する。例えば、認識プロセス１８０ａが実行する処理の一例として、図８〜図１０に示す処理などが含まれる。なお、ＣＰＵ１５０では、必ずしも上記の実施例１で示した全ての処理部が動作せずともよく、実行対象とする処理に対応する処理部が仮想的に実現されればよい。
【０１０４】
なお、上記の認識プログラム１７０ａは、必ずしも最初からＨＤＤ１７０やＲＯＭ１６０に記憶されておらずともかまわない。例えば、コンピュータ１００に挿入されるフレキシブルディスク、いわゆるＦＤ、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に認識プログラム１７０ａを記憶させる。そして、コンピュータ１００がこれらの可搬用の物理媒体から認識プログラム１７０ａを取得して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ１００に接続される他のコンピュータまたはサーバ装置などに認識プログラム１７０ａを記憶させておき、コンピュータ１００がこれらから認識プログラム１７０ａを取得して実行するようにしてもよい。
【符号の説明】
【０１０５】
１０    認識装置
１１    画像記憶部
１２    取得部
１３    変換部
１４    生成部
１５    分類部
１５ａ  ブロブ数算出部
１５ｂ  極値算出部
１５ｃ  判定部
１６ａ  第１認識部
１６ｂ  第２認識部
【図１】
2017058743.tif 000005
【図３】
2017058743.tif 000006
【図４】
2017058743.tif 000007
【図５】
2017058743.tif 000008
【図６】
2017058743.tif 000009
【図７】
2017058743.tif 000010
【図８】
2017058743.tif 000011
【図９】
2017058743.tif 000012
【図１０】
2017058743.tif 000013
【図１１】
2017058743.tif 000014
【図２Ａ】
2017058743.tif 000015
【図２Ｂ】
2017058743.tif 000016
【図２Ｃ】
2017058743.tif 000017
【図２Ｄ】
2017058743.tif 000018