(57)【特許請求の範囲】
【請求項１】
画像上の所定の領域の輪郭線上に位置する複数の輪郭点を検出する輪郭抽出部と、
前記複数の輪郭点のうち、前記輪郭線の一部を、前記所定の領域の外を通って短絡する第１の短絡経路の両端となる第１及び第２の輪郭点を検出する短絡経路検出部と、
前記第１の短絡経路から、前記複数の輪郭点のうちの前記第１の輪郭点と前記第２の輪郭点間の前記輪郭線に沿った第１の経路上に位置する最も遠い輪郭点までの長さを第１の窪みの深さとして算出し、前記第１の短絡経路の長さに対する前記第１の窪みの深さの比が第１の閾値よりも大きくなる場合に、前記第１の経路と前記第１の短絡経路とで囲まれた前記所定の領域に含まれない部分を窪み部分と判定する窪み判定部と、
を有する画像認識装置。
【請求項２】
前記窪み判定部は、前記第１の短絡経路の長さに対する前記第１の経路の長さの比が第２の閾値よりも大きくなる場合に、前記第１の経路と前記第１の短絡経路とで囲まれた前記所定の領域に含まれない部分を窪み部分と判定する請求項１に記載の画像認識装置。
【請求項３】
前記第１の経路上に位置し、かつ、前記第１の経路の一部を、前記所定の領域の外を通って短絡する直線の両端となる二つの輪郭点の組のうち、当該直線の長さに対する当該二つの輪郭点間の前記輪郭線に沿った経路の距離の比が最大となる第３及び第４の輪郭点を検出し、前記窪み部分を、前記第３の輪郭点と前記第４の輪郭点間の前記輪郭線に沿った第２の経路と前記第３の輪郭点と前記第４の輪郭点間を前記所定の領域の外を通って短絡する第２の短絡経路とで囲まれた前記所定の領域に含まれない部分に修正するか否か判定する修正部をさらに有する、請求項１または２に記載の画像認識装置。
【請求項４】
画像上の所定の領域の輪郭線上に位置する複数の輪郭点を検出し、
前記複数の輪郭点のうち、前記輪郭線の一部を、前記所定の領域の外を通って短絡する短絡経路の両端となる第１及び第２の輪郭点を検出し、
前記短絡経路から、前記複数の輪郭点のうちの前記第１の輪郭点と前記第２の輪郭点間の前記輪郭線に沿った第１の経路上に位置する最も遠い輪郭点までの長さを第１の窪みの深さとして算出し、前記短絡経路の長さに対する前記第１の窪みの深さの比が第１の閾値よりも大きくなる場合に、前記第１の経路と前記短絡経路とで囲まれた前記所定の領域に含まれない部分を窪み部分と判定する、
ことを含む画像認識方法。
【請求項５】
前記第１の経路上に位置し、かつ、前記第１の経路の一部を、前記所定の領域の外を通って短絡する直線の両端となる二つの輪郭点の組のうち、当該直線の長さに対する当該二つの輪郭点間の前記輪郭線に沿った経路の距離の比が最大となる第３及び第４の輪郭点を検出し、前記窪み部分を、前記第３の輪郭点と前記第４の輪郭点間の前記輪郭線に沿った第２の経路と前記第３の輪郭点と前記第４の輪郭点間を前記所定の領域の外を通って短絡する第２の短絡経路とで囲まれた前記所定の領域に含まれない部分に修正するか否か判定することをさらに含む、請求項４に記載の画像認識方法。
【請求項６】
画像上の所定の領域の輪郭線上に位置する複数の輪郭点を検出し、
前記複数の輪郭点のうち、前記輪郭線の一部を、前記所定の領域の外を通って短絡する短絡経路の両端となる第１及び第２の輪郭点を検出し、
前記短絡経路から、前記複数の輪郭点のうちの前記第１の輪郭点と前記第２の輪郭点間の前記輪郭線に沿った第１の経路上に位置する最も遠い輪郭点までの長さを第１の窪みの深さとして算出し、前記短絡経路の長さに対する前記第１の窪みの深さの比が第１の閾値よりも大きくなる場合に、前記第１の経路と前記短絡経路とで囲まれた前記所定の領域に含まれない部分を窪み部分と判定する、
ことをコンピュータに実行させる画像認識用コンピュータプログラム。
【請求項７】
前記第１の経路上に位置し、かつ、前記第１の経路の一部を、前記所定の領域の外を通って短絡する直線の両端となる二つの輪郭点の組のうち、当該直線の長さに対する当該二つの輪郭点間の前記輪郭線に沿った経路の距離の比が最大となる第３及び第４の輪郭点を検出し、前記窪み部分を、前記第３の輪郭点と前記第４の輪郭点間の前記輪郭線に沿った第２の経路と前記第３の輪郭点と前記第４の輪郭点間を前記所定の領域の外を通って短絡する第２の短絡経路とで囲まれた前記所定の領域に含まれない部分に修正するか否か判定することをさらにコンピュータに実行させる、請求項６に記載の画像認識用コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、画像上に写っている所定の領域の窪み部分を検出する画像認識装置、画像認識方法及び画像認識用コンピュータプログラムに関する。
【背景技術】
【０００２】
従来より、画像に写っている被写体を検出する技術が研究されている。画像認識装置は、被写体を検出できれば、その被写体に応じた様々な処理をその画像に対して適用できる。例えば、画像認識装置は、被写体が見易くなるように、被写体に応じて画像を階調変換したり、画像から被写体が写っている領域をトリミングできる。
【０００３】
被写体を正確に検出するためには、被写体となる物が事前に分かっていることが好ましい。被写体となる物が分かっていれば、画像認識装置は、画像から被写体を検出するためにその物の特徴、例えば、形状、色、テクスチャといった情報を利用できるためである。しかしながら、実際には、画像認識装置は、画像に写っている被写体について未知であることがある。このような場合、画像認識装置は、被写体がどのような物体であるかを認識することは困難である。また画像認識装置は、画像に写っている個々の被写体の範囲を識別することも困難である。
【０００４】
一方、画像から被写体を検出するために、特定の形状、例えば、一部が窪んだ形状を持つ領域を検出する技術が提案されている（例えば、特許文献１〜５を参照）。例えば、特許文献１に開示された医療診断用画像処理装置は、所望器官の輪郭に対応する境界線を輪郭線として抽出し、その輪郭線の形状を修正して所望器官の輪郭線として抽出する。この画像処理装置は、輪郭線の形状を修正する際に、二つの凸変曲点間に凹変曲点が存在すると、二つの凸変曲点で挟まれた部分をくぼみ部分として除去する。また特許文献２に開示された臓器容積計測装置は、臓器境界上の６点を初期点として指定し、指定された初期点に基づいて境界抽出を実行し、その境界抽出結果から臓器断面ごとに順に境界存在範囲を設定してその内部における境界を抽出する。この装置は、境界を抽出する際、隣接する複数の境界点間の位置関係によって臓器境界のくぼみ部分を検出する。
【０００５】
また特許文献３に開示された画像解析装置は、対象領域を含む画像から、対象領域の形状がくびれている部分の対象領域の境界線の区間を抽出する。この画像解析装置は、境界線に沿った所定の間隔ごとに、境界線の法線方向に沿って境界線から所定距離離れた対象領域外点を設定し、その対象領域外点中心とする円内の各点に重みを付す。そして画像解析装置は、重みが重くなったところを窪んだ領域として検出する。
【０００６】
さらに、特許文献４に開示された図形のベクトル化方法は、輪郭上の連続する複数の画素について、輪郭のエッジ方向を表すチェーンコードに基づいて、凹状の直角部分を検出する。さらに、特許文献５に開示された画像処理方法は、相隣接する包絡点間の境界画素を一方の包絡点から他方の包絡点に向かって順次追跡し、境界画素の中心と相隣接する包絡点間を結ぶ直線との距離を評価して凹部を検出する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平８−８９５０３号公報
【特許文献２】特開２０００−１０７１８３号公報
【特許文献３】特開２０１０−２２４８７５号公報
【特許文献４】特開昭６４−６８８８９号公報
【特許文献５】特開平１−２８４９８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１〜３に開示された技術は、検出すべき被写体に関する情報を用いて被写体の輪郭線または境界線の窪みを検出するものである。例えば、特許文献１に開示された技術は、被写体の輪郭が緩い弧となるという情報に基づいているので、所望器官の輪郭線の曲率の変化に基づいて輪郭線の窪みを検出できる。したがって、これらの技術は、写っている被写体に関する情報が無い画像に適用することは困難であった。また特許文献４に開示された技術は、凹状の直角部分を検出することはできても、様々な形状の輪郭の窪みの検出に適用することは困難であった。また特許文献５に開示された技術では、予め被写体の輪郭線の包絡点が検出されていることが前提となっているので、そもそも、被写体が写っている領域すら分かっていない画像に対して輪郭の窪みを検出することは困難であった。
【０００９】
そこで本明細書は、画像に写っている被写体に関する情報が無くても、画像上の所定の領域の窪みを検出可能な画像認識装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
一つの実施形態によれば、画像認識装置が提供される。この画像認識装置は、画像上の所定の領域の輪郭線上に位置する複数の輪郭点を検出する輪郭抽出部と、複数の輪郭点のうち、輪郭線の一部を、所定の領域の外を通って短絡する短絡経路の両端となる第１及び第２の輪郭点を検出する短絡経路検出部と、第１の輪郭点と第２の輪郭点間の輪郭線に沿った経路と短絡経路とで囲まれた所定の領域に含まれない部分を、短絡経路の長さまたは輪郭線に沿った経路の長さに基づいて窪み部分か否か判定する窪み判定部とを有する。
【００１１】
本発明の目的及び利点は、請求項において特に指摘されたエレメント及び組み合わせにより実現され、かつ達成される。
上記の一般的な記述及び下記の詳細な記述の何れも、例示的かつ説明的なものであり、請求項のように、本発明を限定するものではないことを理解されたい。
【発明の効果】
【００１２】
本明細書に開示された画像認識装置は、画像に写っている被写体に関する情報が無くても、画像上の所定の領域の窪みを検出することができる。
【図面の簡単な説明】
【００１３】
【図１】被写体が写っている被写体領域と、その被写体領域の周囲にある、注目すべき被写体が写っていない背景領域とを含む画像の一例である。
【図２】一つの実施形態による画像認識装置を搭載した撮像装置の概略構成図である。
【図３】領域の窪みの一例を示す図である。
【図４】制御部の機能ブロック図である。
【図５】（ａ）は、輪郭線上の任意の画素についての近傍画素と、輪郭線の方向を表す番号との関係を表す図であり、（ｂ）は、図３に示された領域の輪郭線上の各画素の輪郭線の方向と番号とを示す図である。
【図６】輪郭点ごとに設定される対岸輪郭点番号リストの一例を示す図である。
【図７】窪み判定部により実行される窪み判定処理の動作フローチャートを示す図である。
【図８】検出された窪み部分の一例を示す図である。
【図９】修正部により実行される窪み範囲修正処理の動作フローチャートを示す図である。
【図１０】窪み検出処理の動作フローチャートを示す図である。
【発明を実施するための形態】
【００１４】
以下、図を参照しつつ、一つの実施形態による画像認識装置について説明する。
発明者は、画像上で背景領域が窪んでいる部分には、注目すべき何らかの被写体が写っている可能性が高いという知見を得た。
【００１５】
図１は、被写体が写っている被写体領域と、その被写体領域の周囲にある、注目すべき被写体が写っていない背景領域とを含む画像の一例である。画像１００の中央部にはヌイグルミが写った被写体領域１１０が存在し、その周囲には、注目すべき物体が写っておらず、ヌイグルミが立て掛けられた椅子の背もたれに掛けられたタオルが写っている領域１２０と、椅子の座面または背後の壁が写っている領域１３０が存在する。領域１２０及び領域１３０は、注目すべき被写体が写っていないので、背景領域とみなせる。ただし、領域１２０に写っている物体（タオル）の模様及び色は、領域１３０に写っている物体（椅子の座面など）の模様及び色と異なっているために、領域１２０と領域１３０とは別個の領域として区分される。ここで領域１２０に注目すると、被写体領域１１０が領域１２０の中央に位置しているために、被写体領域１１０が、領域１２０の下辺を入口とする大きな窪み部分となっている。一方、領域１２０と領域１３０の境界１４０は直線状となっていないため、その境界には微小な凹凸が存在する。しかし、このような微小な凹凸を持つ境界は、注目すべき被写体と背景領域との境界である可能性は低い。
【００１６】
そこでこの画像認識装置は、画像を少なくとも二つの領域に区分し、それら領域のうちの、背景領域と推定される注目領域（例えば、図１における領域１２０）が窪んでいる部分を検出する。その際、この画像認識装置は、輪郭線上の二つの輪郭点を始点及び終点とする、注目領域外を通って輪郭線を短絡する経路を検出する。そしてこの画像認識装置は、その始点から終点までの短絡経路と、その始点から終点までの輪郭線に沿った経路とで囲まれた部分が窪んでいるか否かを判定する。
【００１７】
図２は、一つの実施形態による画像認識装置を搭載した撮像装置の概略構成図である。撮像装置１は、撮像光学系２と、イメージセンサ３と、メモリ４と、ユーザインターフェース５と、制御部６とを有する。なお、撮像装置１は、例えば、デジタルカメラあるいはカメラ付携帯電話とすることができる。さらに撮像装置１は、撮像装置１を通信ネットワークまたは他の機器に接続するための通信インターフェース回路（図示せず）を有していてもよい。
【００１８】
撮像光学系２は、イメージセンサ３上に物体の像を結像する。そのために、撮像光学系２は、例えば、少なくとも1枚のレンズを有する。また撮像光学系２は、単焦点レンズであってもよく、あるいは、ズームレンズであってもよい。
【００１９】
イメージセンサ３は、撮像光学系２により結像された像が写った画像を生成する。そのために、イメージセンサ３は、２次元状に配列された固体撮像素子、例えば、Charge Coupled Device(CCD)イメージセンサまたはComplementary Metal Oxide Semiconductor(CMOS)イメージセンサを有する。イメージセンサ３により生成される画像の画素数は、例えば、30万、100万、200万、800万あるいは1200万若しくは1800万とすることができる。またイメージセンサ３により生成される画像はカラー画像であり、本実施形態では、画素ごとに赤色(R)、緑色(G)及び青色(B)の３色の成分を持つ。各色成分は、例えば、0〜255の何れかの値をとり、色成分値が大きいほど、その色の輝度が高い。あるいは、イメージセンサ３により生成される画像は、各画素の輝度値が、例えば、0〜255で表されるモノクロ画像であってもよい。
イメージセンサ３は、生成した画像を制御部６へ出力する。
【００２０】
メモリ４は、例えば、読み書き可能な揮発性あるいは不揮発性の半導体メモリを有する。そしてメモリ４は、制御部６から受け取った画像及びその画像に写っている所定の領域の窪み部分を検出するために検出されたその領域の輪郭線上の画素の座標などを記憶する。またメモリ４は、撮像装置１に対して取り外し自在であってもよい。
【００２１】
ユーザインターフェース５は、シャッタースイッチなど、１以上の操作スイッチ及び液晶ディスプレイなどの表示装置を有する。そしてユーザインターフェース５は、操作スイッチの操作に応じた信号を制御部６へ出力する。そのため、ユーザは、ユーザインターフェース５を操作することにより、所定の物体に焦点を合わせるよう撮像光学系２の少なくとも一部を光軸に沿って移動させたり、撮像装置１に撮影を行わせることができる。またユーザは、シャッター速度、絞りなどの撮影条件または画像サイズを設定できる。さらにユーザは、メモリ４に記憶されている画像を消去したり、図示しない通信インターフェースを介して接続された他の機器へ、メモリ４に記憶されている画像を出力させることができる。
【００２２】
制御部６は、一つまたは複数のプロセッサ及びその周辺回路を有する。そして制御部６は、撮像装置１の各部と信号線を介して接続されており、撮像装置１全体を制御する。例えば、制御部６は、ユーザインターフェース５からシャッタースイッチが押下されたことを示す信号を受け取ると、設定された撮影条件で撮影を行い、イメージセンサ３から画像を受け取る。
【００２３】
また制御部６は、画像認識装置の一例であり、イメージセンサ３から取得した画像を少なくとも二つの領域に区分し、そのうちの一つの領域の窪み部分を検出する。そして制御部６は、例えば、窪み部分の外接矩形を画像とともに表示装置に表示する。あるいは制御部６は、窪み部分内の画素値の分布を解析して、その分布に応じて画像全体に対する処理を実行してもよい。例えば、制御部６は、窪み部分内の輝度値の最大値と最小値を検出し、その最小値と最大値とが、それぞれ、予め定められた第１及び第２の輝度値となるように、画像全体に対して階調変換処理を行ってもよい。
【００２４】
図３は、検出対象となる窪み部分を説明するための、イメージセンサ３から取得した画像の一部に写っている、背景領域と推定される一つの領域の例を示す図である。図３に示された領域３００内の各マスは、それぞれ、一つの画素を表す。領域３００の下側には、二つの画素３０１と画素３０２を端点として凹状に窪んでいる窪み部分３１０が存在する。領域３００が画像上に写っている背景であるとするならば、この凹状の窪み部分３１０には、何らかの被写体が写っていると考えられる。そのため、制御部６は、このような窪み部分３１０を検出する。
【００２５】
ここで、窪み部分３１０を囲っている、画素３０１から３０２までの領域３００の輪郭線３１１に着目すると、その二つの画素間の輪郭線距離は、その二つの画素を、領域３００の外を通って短絡する線分３１２の長さよりも大きくなる。そして、その輪郭線よりも短絡する線分の方が、領域３００の外接矩形に近くなる。一方、領域３００の上側の輪郭に位置する画素３０３と画素３０４の間でも、領域３００は僅かに凹んでいる。しかし、このような僅かな凹みに相当する部分に含まれる画素の数は少ないので、その部分に被写体の重要な部分が写っている可能性は低い。したがって、このような僅かな凹みは、検出しなくてもよい。このような僅かな窪みについては、その窪みの入口に相当する二つの画素間の輪郭線の長さは、その二つの画素を短絡する線分の長さと略等しくなる。
そこで、制御部６は、窪み部分の入口に相当する輪郭上の二点を検出し、その二点間を短絡する経路の長さと、その二点間の輪郭線距離とに基づいて、領域の窪み部分を検出する。
【００２６】
図４は、画像認識装置としての機能に関する制御部６の機能ブロック図である。制御部６は、輪郭抽出部６１と、輪郭方向検出部６２と、外接領域決定部６３と、短絡経路検出部６４と、窪み判定部６５と、修正部６６とを有する。
制御部６が有するこれらの各部は、制御部６が有するプロセッサ上で実行されるコンピュータプログラムにより実現される機能モジュールである。あるいは、制御部６が有するこれらの各部は、その各部に対応する回路が集積された一つの集積回路として制御部６に実装されてもよい。
【００２７】
輪郭抽出部６１は、イメージセンサ３から取得した画像全体を少なくとも二つの領域に区分し、そのうちの注目領域の輪郭を検出する。先ず、輪郭抽出部６１は、例えば、画像の各画素の値を２値化することで、画像を二つの領域に区分する。この場合、輪郭抽出部６１は、画像の各画素の色成分値を、HSV表色系あるいはHLS表色系の値に変換し、各画素の明度または輝度の平均値を２値化閾値として算出する。なお、画像がモノクロ画像である場合には、表色系の変換処理は省略される。そして輪郭抽出部６１は、画像を、２値化閾値以上の明度または輝度を持つ画素の集合である高輝度領域と、２値化閾値未満の明度または輝度を持つ画素の集合である低輝度領域に区分する。
【００２８】
あるいは、輪郭抽出部６１は、所定の値の範囲に含まれる画素値を持つ画素の集合を一つの領域とし、その所定の範囲に含まれない画素値を持つ画素の集合を他の領域としてもよい。この場合、所定の値の範囲は、例えば、想定される背景に応じて予め設定される。また画素値は、例えば、HSV表色系あるいはHLS表色系における色相または彩度であってもよく、あるいは、RGB表色系の色成分値の何れかであってもよい。
【００２９】
さらにまた、輪郭抽出部６１は、画像中の任意の画素、例えば、画像中の左上端の画素を着目画素とし、その着目画素に隣接する画素のうち、着目画素の画素値との差が所定範囲内に収まる画素値を持つ画素を着目画素と連結する。なお、所定範囲は、例えば、同一の物体の像とみなせる画素値の差の最大値に設定される。輪郭抽出部６１は、着目画素に連結された画素を次の着目画素として同様の処理を繰り返す。そして輪郭抽出部６１は、連結された画素の集合を一番目の領域とする。また輪郭抽出部６１は、一番目の領域に含まれなかった画素のうちで着目画素を設定し、上記と同様の処理を繰り返すことにより、画像を複数の領域に区分してもよい。
【００３０】
あるいは、輪郭抽出部６１は、画像を複数の領域に区分する他の様々な方法の何れかに従って、画像を複数の領域に区分してもよい。例えば、輪郭抽出部６１は、画像中の各画素の画素値を、k-means法といったクラスタリング法に従って複数のグループに分類し、各グループに属する画素の集合をそれぞれ一つの領域としてもよい。
また、輪郭抽出部６１は、画像を複数の領域に区分した後に、孤立点を解消するために、複数の領域のうちの少なくとも一つの領域について、モルフォロジーの膨張収縮演算あるいは収縮膨張演算を行ってもよい。さらに、輪郭抽出部６１は、各領域についてラベリング処理を行うことで、互いに分離した複数のサブ領域を検出した場合には、各サブ領域をそれぞれ別個の領域としてもよい。
【００３１】
輪郭抽出部６１は、複数の領域のうち、注目する領域を設定する。例えば、輪郭抽出部６１は、複数の領域のうち、背景領域である可能性が最も高い領域を注目領域に設定する。そのために、輪郭抽出部６１は、例えば、各領域について画素値の分散を求め、その分散値が最も小さい領域を注目領域とする。あるいは、輪郭抽出部６１は、各領域について画素値の平均値を求め、その平均値が想定される背景に応じて予め設定された基準値に最も近い領域を注目領域としてもよい。この場合も、画素値は、例えば、明度または輝度、色相若しくは彩度であってもよく、あるいは、RGB表色系の色成分値の何れかであってもよい。あるいはまた、輪郭抽出部６１は、領域ごとに、その領域に含まれる画素の数、すなわち、各領域の面積を求め、面積が最大となる領域を注目領域としてもよい。
【００３２】
輪郭抽出部６１は、注目領域を決定すると、注目領域の輪郭線上に位置する画素を検出する。そのために、輪郭抽出部６１は、注目領域内の各画素を順次注目画素に設定する。そして輪郭抽出部６１は、注目画素の上下左右の何れかに隣接する画素が注目領域と異なる領域に含まれるか否か判定する。そして輪郭抽出部６１は、何れか一つの隣接画素でも注目領域と異なる領域に含まれる場合、注目画素を注目領域の輪郭線上に位置する画素と判定し、一方、全ての隣接画素が注目領域に含まれる場合、注目画素を注目領域の輪郭線上に位置する画素ではないと判定する。なお、輪郭抽出部６１は、注目画素が画像端に位置する場合も、その注目画素を注目領域の輪郭線上に位置する画素としてもよい。また、輪郭抽出部６１は、注目画素の上下左右に隣接する画素だけでなく、斜め方向に隣接する画素についても注目領域と異なる領域に含まれるか否か判定してもよい。そして輪郭抽出部６１は、それら８個の隣接画素のうちの何れかが注目領域と異なる領域に含まれる場合、注目画素を注目領域の輪郭線上に位置する画素と判定してもよい。なお、以下では、便宜上、注目領域の輪郭線上に位置する画素を輪郭点と呼ぶ。
輪郭抽出部６１は、各輪郭点の座標をメモリ４に記憶する。
【００３３】
輪郭方向検出部６２は、注目領域の各輪郭点について、その輪郭点近傍での輪郭線の方向を求める。例えば、輪郭方向検出部６２は、メモリ４に記憶された各輪郭点の座標を参照して、注目領域の最も左上端に位置する輪郭点を注目輪郭点に設定する。そして輪郭方向検出部６２は、その注目輪郭点の識別番号を'1'に設定する。輪郭方向検出部６２は、注目輪郭点に対して、上方から時計回り順に、隣接する画素が輪郭点か否か判定する。そして輪郭方向検出部６２は、注目輪郭点から最初に検出された隣接する輪郭点へ向かう方向を、その注目輪郭点における輪郭線の方向とする。輪郭方向検出部６２は、検出された輪郭点を次の注目輪郭点とし、次の注目輪郭点の識別番号を、前の注目輪郭点の識別番号に'1'を追加した値とする。そして輪郭方向検出部６２は、次の注目輪郭点について、前の注目輪郭点以外で隣接する輪郭点を検出し、その隣接する輪郭点へ向かう方向を、次の注目輪郭点についての輪郭線の方向とする。輪郭方向検出部６２は、既に注目輪郭点に設定された輪郭点が、現在の注目輪郭点に隣接する輪郭点として検出されるまで、同様の処理を繰り返し実行する。したがって、最後に注目輪郭点に設定された輪郭点の識別番号は、輪郭点の総数、すなわち、輪郭線の全長を表す。
【００３４】
図５（ａ）は、注目輪郭点に隣接する画素と、輪郭線の方向を表す番号との対応関係を表す図であり、図５（ｂ）は、図３に示した領域の各輪郭点について求めた輪郭線方向を示す図である。
【００３５】
図５（ａ）に示されるように、注目輪郭点５０に隣接する各画素には、その画素に対応する輪郭線の方向を表す、'0'〜'7'までの何れかの番号が付されている。例えば、注目輪郭点の上方に隣接する画素には方向を表す番号として'0'が付されており、時計回りに沿って方向を表す番号は1ずつ増加する。
【００３６】
図５（ｂ）において、領域５００の各輪郭点について、左側に輪郭点の識別番号が表され、右側に輪郭線の方向が表されている。例えば、最も左上端に位置する輪郭点５０１について、識別番号は'1'であり、右側に輪郭点が隣接しているので、輪郭線の方向を表す番号は'2'となる。また、例えば、窪み部分５１０の入口に位置する二つの輪郭点のうちの一つである輪郭点５０２は、輪郭点５０１から数えて31番目の輪郭点であるので、その識別番号は'31'であり、左上方に次の輪郭点が隣接しているので、輪郭線の方向を表す番号は'7'となる。さらに、窪み部分５１０の入口に位置する二つの輪郭点のうちの他の一つである輪郭点５０３は、輪郭点５０１から数えて50番目の輪郭点であるので、その識別番号は'50'であり、左隣に次の輪郭点が隣接しているので、輪郭線の方向を表す番号は'6'となる。またこの例では、輪郭線の全長は64画素である。
輪郭方向検出部６２は、輪郭点ごとに、輪郭点の座標とともに、その輪郭点の識別番号及び輪郭線方向を表す番号をメモリ４に記憶する。
【００３７】
外接領域決定部６３は、注目領域の外接矩形を求める。そこで外接領域決定部６３は、注目領域の輪郭点のうち、最も左側に位置する輪郭点を求め、その輪郭点の水平座標を外接矩形の左端の座標とする。また外接領域決定部６３は、注目領域の輪郭点のうち、最も右側に位置する輪郭点を求め、その輪郭点の水平座標を外接矩形の右端の座標とする。同様に、外接領域決定部６３は、注目領域の輪郭点のうち、最も上側に位置する輪郭点及び下側に位置する輪郭点を求め、それら輪郭点の垂直座標を、それぞれ、外接矩形の上端及び下端の座標とする。
【００３８】
また、外接領域決定部６３は、注目領域を所定角度（例えば、５°）ずつ、例えばアフィン変換によって回転させ、回転角ごとに外接矩形及びその外接矩形の面積を求めてもよい。そして外接領域決定部６３は、外接矩形の面積が最小となる角度について求めた外接矩形を、注目領域の外接矩形としてもよい。
外接領域決定部６３は、検出された外接矩形の４個のコーナーの座標をメモリ４に記憶する。あるいは、外接領域決定部６３は、外接矩形の４本の境界線のそれぞれについての傾きと切片の値をメモリ４に記憶してもよい。
【００３９】
短絡経路検出部６４は、複数の輪郭点のうち、輪郭線の一部を、注目領域の外を通って短絡する経路の両端となる二つの輪郭点を検出する。そのために、短絡経路検出部６４は、各輪郭点を順次注目輪郭点として、その注目輪郭点を始点とし、かつ、注目領域以外の領域へ向かう直線を設定する。その直線が注目領域の輪郭線と交差する場合、短絡経路検出部６４は、その直線を短絡経路とする。そして短絡経路検出部６４は、短絡経路と輪郭線が交差する輪郭点を対岸輪郭点として検出する。対岸輪郭点は、注目輪郭点とともに短絡経路の両端となる。
【００４０】
まず、短絡経路検出部６４は、各輪郭点について、対岸輪郭点を探索する走査直線の傾きの範囲である探索方向範囲を設定する。そのために、短絡経路検出部６４は、例えば、注目輪郭点から隣接する二つの輪郭点へ向かうそれぞれの方向に挟まれ、かつ、注目領域外へ向かう方向を含むように探索方向範囲を設定する。再度図５（ａ）及び図５（ｂ）を参照すると、例えば、輪郭点５０２については、識別番号'30'で表された輪郭点から時計回りに識別番号'32'で表された輪郭点までの間の、番号'3'から'6'で表される方向が含まれるように探索方向範囲が設定される。同様に、輪郭点５０３については、識別番号'49'で表された輪郭点から時計回りに識別番号'51'で表された輪郭点までの間の、番号'2'から'5'で表される方向が探索方向範囲に含まれる。さらに他の例として、識別番号が'33'である輪郭点５０４については、識別番号'32'で表された輪郭点から時計回りに識別番号'34'で表された輪郭点までの間の、番号'4'から'7'及び'0'で表される方向が探索方向範囲に含まれる。
【００４１】
次に、短絡経路検出部６４は、注目輪郭点について、探索方向範囲内の探索方向ごとに走査直線を設定する。そして短絡経路検出部６４は、走査直線上の各画素について、注目輪郭点から離れる方向へ順に、注目領域の他の輪郭点か否か判定する。そして短絡経路検出部６４は、走査直線上の画素が他の輪郭点であれば、その走査直線を短絡経路とし、走査直線上で検出された輪郭点を、注目輪郭点の対岸輪郭点として、探索方向とともに注目輪郭点と関連付けてメモリ４に記憶する。また、ある探索方向の走査直線上で他の輪郭点が検出される前に、その走査直線が注目領域の外接矩形の何れかの辺と交差した場合には、短絡経路検出部６４は、その探索方向には対岸輪郭点が存在しないと判定する。すなわち、その探索方向には注目輪郭点を始点とする短絡経路は存在しない。
【００４２】
再度図５（ｂ）を参照すると、例えば、輪郭点５０２について、方向'3'〜'5'の走査直線は、他の輪郭点が検出される前に外接矩形の下辺５２０と交差するので、それらの方向には対岸輪郭点は存在しない。一方、方向'6'の走査直線（すなわち、左側へ向かう水平方向の直線）上には、輪郭点５０３が存在する。したがって、輪郭点５０２については、方向'6'と関連付けて対岸輪郭点５０３の識別番号'50'が記憶される。
また、識別番号が'33'である輪郭点５０４について、方向'4'及び'5'の走査直線は、他の輪郭点が検出される前に外接矩形の下辺５２０と交差するので、それらの方向には対岸輪郭点は存在しない。一方、方向'6'の走査直線上には、識別番号'48'を持つ輪郭点が存在する。同様に、方向'7'及び方向'0'の走査直線上には、それぞれ、識別番号'43'を持つ輪郭点及び識別番号'38'を持つ輪郭点が存在する。そのため、輪郭点５０４について、方向'6'、'7'及び'0'のそれぞれと関連付けて、対岸輪郭点の識別番号'48'、'43'及び'38'がメモリ４に記憶される。
【００４３】
図６は、メモリ４に記憶される、輪郭点ごとに設定される対岸輪郭点番号リストの一例を示す図である。図６に示された対岸輪郭点番号リスト６００は、図５（ｂ）に示された輪郭点５０４に対応する。対岸輪郭点番号リスト６００の左側の列は、短絡経路の方向を表し、右側の列は、対応する方向に存在する対岸輪郭点の識別番号を表す。上記のように、輪郭点５０４については、方向'6'、'7'及び'0'において対岸輪郭点が検出されているので、対岸輪郭点番号リスト６００では、方向'6'、'7'及び'0'に関する欄に、それぞれ、対岸輪郭点の識別番号'48'、'43'及び'38'が格納されている。その他の方向には、対岸輪郭点は存在しないので、その他の方向に対応する欄には、それぞれ、何れの輪郭点の識別番号とも異なる番号、例えば、'0'が格納される。
【００４４】
なお、上記の実施形態では、探索方向は、図５（ａ）に示された、45°間隔で設定された８方向の何れかであるが、探索方向の設定間隔は45°より狭くてもよい。例えば、探索方向は、15°間隔、22.5°間隔あるいは30°間隔で設定されてもよい。
【００４５】
窪み判定部６５は、輪郭点から対岸輪郭点までの短絡経路と、輪郭点から対岸輪郭点までの注目領域の輪郭線に沿った輪郭線とで囲まれた、注目領域に含まれていない部分が注目領域の窪み部分か否か判定する。
【００４６】
図７は、窪み判定処理の動作フローチャートを示す図である。
窪み判定部６５は、初期化処理を実行する（ステップＳ１０１）。具体的には、窪み判定部６５は、輪郭点と対岸輪郭点間の輪郭線距離の最大値lcmax、輪郭点と対岸輪郭点間の直線距離lld、窪みの深さdepthといったパラメータの値を0に設定する。その後、窪み判定部６５は、注目する輪郭点を順次変更しつつ、注目輪郭点と注目輪郭点に対して検出された対岸輪郭点間の輪郭線距離を求めることにより、輪郭点と対岸輪郭点間の輪郭線距離の最大値lcmaxを求める（ステップＳ１０２）。なお、輪郭点と対岸輪郭点間の輪郭線距離は、輪郭点の識別番号と対岸輪郭点の識別番号との差の絶対値で表される。ただし、輪郭点と対岸輪郭点の間に、識別番号の最大値となる輪郭点が含まれる場合には、小さい方の識別番号に、識別番号の最大値を加えた値から、大きい方の識別番号を引いた差の絶対値が輪郭線距離となる。最大値lcmaxに対応する輪郭点c1max及び対岸輪郭点c2maxは、窪み部分の入口の両端の候補となる。そこで窪み判定部６５は、輪郭点c1max及び対岸輪郭点c2maxの識別番号をメモリ４に記憶する。例えば、図５（ｂ）に示した例では、輪郭点５０２と輪郭点５０３間の輪郭線距離（50-31=19）が最長となるので、輪郭点５０２の識別番号'31'とと輪郭点５０３の識別番号'50'とがメモリ４に記憶される。
【００４７】
窪み判定部６５は、輪郭線距離の最大値lcmaxに対応する窪みの深さdepthを算出する（ステップＳ１０３）。窪み判定部６５は、例えば、輪郭点c1maxから対岸輪郭点c2maxまでの間の各輪郭点（以下、便宜上中間輪郭点と呼ぶ）について、輪郭線方向に対する法線に沿って、中間輪郭点からその法線と輪郭点c1maxと対岸輪郭点c2maxとを結ぶ直線との交点までの距離を求める。そして窪み判定部６５は、中間輪郭点から交点までの距離の最大値を窪みの深さdepthとする。例えば、図５（ｂ）に示した例では、識別番号'39'〜'42'の輪郭点の何れかから、輪郭点５０２と輪郭点５０３を結ぶ直線までの距離（8画素）が窪みの深さdepthとなる。あるいは、窪み判定部６５は、各中間輪郭点について、その中間輪郭点から輪郭点c1maxと対岸輪郭点c2maxとを結ぶ直線に達するまでの、注目領域の外を通る経路の最小画素数を深さの経路長として求めてもよい。そして窪み判定部６５は、深さの経路長の最大値を窪みの深さdepthとしてもよい。なお、深さの経路長を求めるために、窪み判定部６５は、様々な最短経路の探索法の何れか、例えば、ダイクストラの最短経路探索法を利用できる。
【００４８】
また窪み判定部６５は、輪郭線距離の最大値lcmaxに対応する輪郭点c1maxと対岸輪郭点c2max間の短絡経路長、すなわち、輪郭点c1maxと対岸輪郭点c2max間の直線距離lldを算出する（ステップＳ１０４）。図５（ｂ）に示した例では、直線距離lldは、輪郭点５０２と輪郭点５０３を結ぶ直線の長さ（9画素）となる。
その後、窪み判定部６５は、輪郭線距離の最大値lcmaxが所定の閾値Th1よりも大きいか否か判定する（ステップＳ１０５）。なお、所定の閾値Th1は、例えば、注目領域の輪郭点の総数の1/10に設定される。あるいは、所定の閾値Th1は、画像全体に含まれる画素数に基づいて決定されてもよい。例えば、所定の閾値Th1は、検出された窪み部分の画素値の解析結果に応じた画像処理を行うために必要な、窪み部分の輪郭線長の最小値、例えば、画像全体の画素数の1/10000〜1/1000に設定される。
輪郭線距離の最大値lcmaxが所定の閾値Th1以下である場合（ステップＳ１０５−Ｎｏ）、窪み判定部６５は、その最大値lcmaxに対応する輪郭点c1maxと対岸輪郭点c2max間は窪みとみなさない。そこで窪み判定部６５は窪み検出処理を終了する。
【００４９】
一方、輪郭線距離の最大値lcmaxが所定の閾値Th1よりも大きい場合（ステップＳ１０５−Ｙｅｓ）、窪み判定部６５は、輪郭点c1maxと対岸輪郭点c2max間の直線距離lldに対する輪郭線距離の最大値lcmaxの比が所定の閾値Th2よりも大きいか否か判定する（ステップＳ１０６）。なお、閾値Th2は、例えば、1.5〜3に設定される。
比(lcmax/lld)が閾値Th2以下である場合（ステップＳ１０６−Ｎｏ）、窪み判定部６５は、直線距離lldに対する深さdepthの比が所定の閾値Th3よりも大きいか否か判定する（ステップＳ１０７）。なお、閾値Th3は、例えば、0.5〜1に設定される。そしてその比(depth/lld)が閾値Th3以下である場合（ステップＳ１０７−Ｎｏ）、すなわち、輪郭点c1maxと対岸輪郭点c2max間の輪郭線が短絡経路に対してそれほど長くなく、かつ、深さも浅いことになる。そのため、窪み判定部６５は輪郭点c1maxと対岸輪郭点c2max間は注目領域の窪みではないと判定する。
【００５０】
一方、比(lcmax/lld)が閾値Th2よりも大きい場合（ステップＳ１０６−Ｙｅｓ）、窪み判定部６５は、c1maxとc2max間の短絡経路と輪郭線に沿った経路で囲まれた、注目領域に含まれない部分を窪み部分として検出する（ステップＳ１０８）。同様に、比(depth/lld)が閾値Th3よりも大きい場合（ステップＳ１０７−Ｙｅｓ）も、窪み判定部６５は、c1maxとc2max間の短絡経路と輪郭線に沿った経路で囲まれた、注目領域に含まれない部分を窪み部分として検出する。そして窪み判定部６５は、c1maxとc2max間の各輪郭点の識別番号及び座標を検出された窪み部分を表すデータとしてメモリ４に記憶する。これは、比(lcmax/lld)が閾値Th2より大きければ、輪郭点c1maxと対岸輪郭点c2max間の輪郭線が短絡経路に対して相対的に長く、それだけ輪郭線が注目領域の外接矩形に対して凹状に遠回りしていると推定されることによる。また、比(depth/lld)が閾値Th3よりも大きい場合には、輪郭点c1maxと対岸輪郭点c2maxを窪みの入口としたときに、入口の幅、すなわち短絡経路の長さに対してくぼみの奥行きが相対的に長いと推定されることによる。
【００５１】
窪み判定部６５は、c1maxとc2max間の各輪郭点についての全ての対岸輪郭点の識別番号を'0'に置換する（ステップＳ１０９）。なお、c1maxとc2max間の各輪郭点についての各輪郭点の対岸輪郭点の識別番号は、例えば、修正部６６によって使用される可能性があるので、メモリ４は、c1maxとc2max間の各輪郭点についての置換前の対岸輪郭点の識別番号を、別途記憶しておくことが好ましい。その後窪み判定部６５は、ステップＳ１０２以降の処理を繰り返す。これにより、窪み判定部６５は、注目領域に複数の窪み部分があっても、それぞれの窪み部分を検出できる。
なお、窪み判定部６５は、ステップＳ１０３の手順とステップＳ１０４の手順の順序を入れ替えてもよい。また窪み判定部６５は、ステップＳ１０５の判定を行わず、ステップＳ１０７の判定結果とステップＳ１０８の判定結果のみに基づいて、c1maxとc2max間の短絡経路と輪郭線に沿った経路で囲まれた部分を窪み部分か否か判定してもよい。
【００５２】
修正部６６は、窪み判定部６５により検出された窪み部分のうち、より窪みらしい部分のみを選択するよう、窪み部分を修正する。
【００５３】
図８を参照しつつ、窪み部分を修正することが好ましい場合について説明する。画像に重畳されたノイズの影響、あるいは、その画像に写っている被写体と背景の境界と画素間の境界とが一致しないことにより、本来、直線状あるいは緩やかな曲線状となる注目領域の輪郭に凹凸が生じることがある。例えば、図８では、突起状となった輪郭点８０１が注目領域８００に含まれている。そのため、輪郭点８０１の対岸輪郭点として、輪郭点８０２が検出されることとなり、輪郭点８０１と輪郭点８０２間の輪郭線で囲まれた部分８１０が窪み部分として検出されることになる。しかし、実際には、輪郭点８０３から輪郭点８０４間の輪郭線で囲まれた部分８２０の方が窪み部分として適切であることは明らかである。そして、輪郭線８０１と輪郭線８０２間の短絡経路長に対する輪郭線距離の比よりも、輪郭線８０３と輪郭線８０４間の短絡経路長に対する輪郭線距離の比の方が大きくなる。
【００５４】
そこで修正部６６は、一旦検出された窪み部分を囲う輪郭線の両端点内の各輪郭点について、対岸輪郭点までの短絡経路の長さと輪郭線距離とを求め、短絡経路長に対する輪郭線距離の比に基づいて窪み部分を修正する。
【００５５】
図９は、修正部６６による窪み範囲修正処理の動作フローチャートである。先ず、修正部６６は、修正後の窪み部分の入口となる二つの輪郭点（以下、便宜上、補正入口候補点と呼ぶ）の探索範囲を設定する（ステップＳ２０１）。窪み部分の修正によって窪み部分から除かれる部分は、検出されている窪み部分の入口近辺である可能性が高い。そこで、窪み部分の入口から遠い、検出された窪み部分を囲う輪郭線の中点付近は、探索範囲から除くことが好ましい。そのため、探索範囲は、例えば、窪み部分の入口の二つの輪郭点c1max、c2maxを両端とする輪郭線のうち、その二つの輪郭点の中点を中心とした、窪み部分の輪郭線長の所定割合を除いた部分に設定される。なお、所定割合は、例えば、1/10〜1/4に設定される。例えば、図８において、検出された窪み部分の入口に相当する輪郭点は輪郭点８０１と輪郭点８０２である。そのため、中点は、輪郭点８０１からの輪郭線距離と輪郭点８０２からの輪郭線距離が等しい輪郭点８０５となる。また、所定割合を1/10とすれば、輪郭点８０１と輪郭点８０２間の輪郭線距離は30画素なので、輪郭点８０５及び輪郭点８０５に隣接する二つの輪郭点が探索範囲から除かれる。したがって、探索範囲は、輪郭点８０５の二つ隣の輪郭点８０６から輪郭点８０１までの範囲と、輪郭点８０５の二つ隣の輪郭点８０７から輪郭点８０２までの範囲とを含む。
【００５６】
修正部６６は、探索範囲内の各輪郭点について、その輪郭点と対岸輪郭点間の短絡経路長である直線距離と輪郭線距離とを求める。そして修正部６６は、輪郭点と対岸輪郭点間の短絡経路長に対する輪郭線距離の比の最大値maxrateを求める（ステップＳ２０２）。修正部６６は、その比の最大値maxrateに対応する二つの輪郭点を補正入口候補点mc1、mc2に設定する（ステップＳ２０３）。例えば、図８では、輪郭点８０３と輪郭点８０４間の短絡経路長に対する輪郭線距離の比は(15/2=7.5)となり、探索範囲内で最大となる。そこで、輪郭点８０３と輪郭点８０４が補正入口候補点mc1、mc2に設定される。
【００５７】
修正部６６は、補正入口候補点mc1、mc2間の輪郭線の窪みの深さmdepthを算出する（ステップＳ２０４）。なお、修正部６６は、窪み判定部６５が窪みの深さdepthを求める処理と同様の処理を行って、補正入口候補点mc1、mc2間の輪郭線の窪みの深さmdepthを求める。
【００５８】
修正部６６は、修正前の窪み部分の深さdepthに対する、補正入口候補点について求められた窪み部分の深さmdepthの比(mdepth/depth)が、所定の閾値Th4よりも大きいか否か判定する（ステップＳ２０５）。なお、閾値Th4は、例えば0.7〜0.9に設定される。そしてmdepth/depthが閾値Th4よりも大きければ（ステップＳ２０５−Ｙｅｓ）、修正部６６は、窪み部分を輪郭点mc1と輪郭点mc2間の短絡線と輪郭線とで囲まれた、注目領域に含まれない部分に修正する（ステップＳ２０６）。そして修正部６６は、窪み範囲修正処理を終了する。
一方、mdepth/depthが閾値Th4以下であれば（ステップＳ２０５−Ｎｏ）、修正部６６は、窪み部分を修正せずに窪み範囲修正処理を終了する。
【００５９】
なお、変形例によれば、maxrateが、窪み判定部６５により検出された窪み部分の入口の輪郭点c1maxとc2max間の短絡経路長に対する輪郭線距離の比rate未満である場合、修正部６６は、窪み部分を修正せずに、窪み範囲修正処理を終了してもよい。あるいは、maxrateがrateよりも大きい場合、修正部６６は、ステップＳ２０５の判定を行わず、窪み部分を輪郭点mc1と輪郭点mc2間の短絡線と輪郭線とで囲まれた部分に修正してもよい。
【００６０】
図１０は、制御部６により実行される、窪み検出処理の動作フローチャートを示す。なお、この窪み検出処理は、例えば、制御部６がイメージセンサ３から画像を受け取る度に実行される。
先ず、制御部６の輪郭抽出部６１は、画像を複数の領域に区分する（ステップＳ３０１）。そして輪郭抽出部６１は、複数の領域の中から注目領域を設定する（ステップＳ３０２）。その後、輪郭抽出部６１は、注目領域の輪郭点を検出する（ステップＳ３０３）。
【００６１】
制御部６の輪郭方向検出部６２は、各輪郭点における輪郭方向を決定する（ステップＳ３０４）。また制御部６の外接領域決定部６３は、注目領域の外接矩形を求める（ステップＳ３０５）。
さらに、制御部６の短絡経路検出部６４は、各輪郭点について、注目領域外を通る短絡経路及び対岸輪郭点を検出する（ステップＳ３０６）。そして制御部６の窪み判定部６５は、窪み判定処理を実行する（ステップＳ３０７）。
制御部６は、検出された窪み部分が有るか否か判定する（ステップＳ３０８）。検出された窪み部分が無ければ（ステップＳ３０８−Ｎｏ）、制御部６は、窪み検出処理を終了する。一方、検出された窪み部分が有れば（ステップＳ３０８−Ｙｅｓ）、制御部６の修正部６６は、窪み部分の修正処理を実行する（ステップＳ３０９）。そして制御部６は、窪み検出処理を終了する。
【００６２】
以上に説明してきたように、この画像認識装置は、画像上の注目領域が窪んでいる部分は、窪みが無い場合と比べて輪郭線が長くなり、かつ注目領域の外接矩形内に輪郭線が含まれるという特徴に基づいて、その窪み部分を検出する。そのため、この画像認識装置は、画像に写っている被写体に関する情報が無くても、窪み部分を検出できる。また、この画像認識装置は、注目領域の窪み部分の画素値の分布と、注目領域の周囲の領域内の画素値の分布とが類似しており、両者を別の領域として分離することが困難な場合でも、画像上で被写体が写っている可能性の高い窪み部分だけを検出できる。
【００６３】
なお、本発明は上記の実施形態に限定されるものではない。例えば、制御部は、修正部の機能を有さなくてもよい。また窪み判定部は、窪みの深さを考慮せず、窪み部分の入口に位置する二つの輪郭点間の短絡経路長に対する輪郭線距離の比のみに基づいて、その二つの輪郭点間の輪郭線で囲われた部分が窪み部分か否かを判定してもよい。
【００６４】
また、変形例によれば、窪み判定部は、注目領域の周囲の領域とつながっていない、注目領域で完全に周囲を囲まれた領域も窪み部分として検出してもよい。この場合、注目領域と、その周囲の領域との境界（以下、この境界を外周境界と呼ぶ）に位置する注目領域の輪郭線の長さよりも、注目領域の全ての輪郭線の長さの方が大きくなる。また、外周境界上に位置する少なくとも一つの輪郭点は、対岸輪郭点を持たない。そこで窪み判定部は、対岸輪郭点を持たない輪郭点と連結された注目領域の輪郭点の集合を外周輪郭線として検出し、外周輪郭線上の輪郭点の総数が、注目領域の全ての輪郭点の合計よりも少なければ、外周輪郭線と連結されていない輪郭点で囲まれた領域を窪み部分として検出する。
【００６５】
また、他の実施形態によれば、画像認識装置は、撮像装置とは別個に設けられてもよい。例えば、画像認識装置は、撮像装置と通信ネットワークを介して接続可能な他のコンピュータあるいはサーバに実装されていてもよい。この場合、撮像装置は、画像を撮影する度に、その画像を撮像装置の識別コードとともに通信ネットワークを介して画像認識装置へ転送する。そして画像認識装置は、受け取った画像に対して窪み検出処理を実行する。
【００６６】
また、図１０に示された窪み検出処理をプロセッサに実行させるコンピュータプログラムは、光記録媒体または磁気記録媒体といった記録媒体に記録された形で提供されてもよい。
【００６７】
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。
【００６８】
以上説明した実施形態及びその変形例に関し、更に以下の付記を開示する。
（付記１）
画像上の所定の領域の輪郭線上に位置する複数の輪郭点を検出する輪郭抽出部と、
前記複数の輪郭点のうち、前記輪郭線の一部を、前記所定の領域の外を通って短絡する第１の短絡経路の両端となる第１及び第２の輪郭点を検出する短絡経路検出部と、
前記第１の輪郭点と前記第２の輪郭点間の前記輪郭線に沿った第１の経路と前記第１の短絡経路とで囲まれた前記所定の領域に含まれない部分を、前記第１の短絡経路の長さまたは前記第１の経路の長さに基づいて窪み部分か否か判定する窪み判定部と、
を有する画像認識装置。
（付記２）
前記窪み判定部は、前記第１の短絡経路の長さに対する前記第１の経路の長さの比が第１の閾値よりも大きくなる場合に、前記第１の経路と前記第１の短絡経路とで囲まれた前記所定の領域に含まれない部分を窪み部分と判定する付記１に記載の画像認識装置。
（付記３）
前記窪み判定部は、前記第１の短絡経路から前記複数の輪郭点のうちの前記第１の経路上に位置する最も遠い輪郭点までの長さを第１の窪みの深さとして算出し、前記第１の短絡経路の長さに対する前記第１の窪みの深さの比が第２の閾値よりも大きくなる場合に、前記第１の経路と前記第１の短絡経路とで囲まれた前記所定の領域に含まれない部分を窪み部分と判定する付記１に記載の画像認識装置。
（付記４）
前記第１の経路上に位置し、かつ、前記第１の経路の一部を、前記所定の領域の外を通って短絡する直線の両端となる二つの輪郭点の組のうち、当該直線の長さに対する当該二つの輪郭点間の前記輪郭線に沿った経路の距離の比が最大となる第３及び第４の輪郭点を検出し、前記窪み部分を、前記第３の輪郭点と前記第４の輪郭点間の前記輪郭線に沿った第２の経路と前記第３の輪郭点と前記第４の輪郭点間を前記所定の領域の外を通って短絡する第２の短絡経路とで囲まれた前記所定の領域に含まれない部分に修正するか否か判定する修正部をさらに有する、付記１〜３の何れか一項に記載の画像認識装置。
（付記５）
前記修正部は、前記第２の経路上に位置する輪郭点のうち、前記第２の短絡経路から最も遠い輪郭点までの長さを第２の窪みの深さとして算出し、前記第２の短絡経路の長さに対する前記第２の窪みの深さの比が第３の閾値よりも大きい場合、前記窪み部分を前記第２の経路と前記第２の短絡経路とで囲まれた前記所定の領域に含まれない部分に修正する、付記４に記載の画像認識装置。
（付記６）
前記修正部は、前記第２の短絡経路の長さに対する前記第２の経路の長さの比が、前記第１の短絡経路の長さに対する前記第１の経路の長さの比よりも大きい場合、前記窪み部分を前記第２の経路と前記第２の短絡経路とで囲まれた前記所定の領域に含まれない部分に修正する、付記４に記載の画像認識装置。
（付記７）
画像上の所定の領域の輪郭線上に位置する複数の輪郭点を検出し、
前記複数の輪郭点のうち、前記輪郭線の一部を、前記所定の領域の外を通って短絡する短絡経路の両端となる第１及び第２の輪郭点を検出し、
前記第１の輪郭点と前記第２の輪郭点間の前記輪郭線に沿った経路と前記短絡経路とで囲まれた前記所定の領域に含まれない部分を、前記短絡経路の長さまたは前記経路の長さに基づいて窪み部分か否か判定する、
ことを含む画像認識方法。
（付記８）
画像上の所定の領域の輪郭線上に位置する複数の輪郭点を検出し、
前記複数の輪郭点のうち、前記輪郭線の一部を、前記所定の領域の外を通って短絡する短絡経路の両端となる第１及び第２の輪郭点を検出し、
前記第１の輪郭点と前記第２の輪郭点間の前記輪郭線に沿った経路と前記短絡経路とで囲まれた前記所定の領域に含まれない部分を、前記短絡経路の長さまたは前記経路の長さに基づいて窪み部分か否か判定する、
ことをコンピュータに実行させる画像認識用コンピュータプログラム。
（付記９）
画像上の所定の領域の輪郭線上に位置する複数の輪郭点を検出する輪郭抽出部と、
前記複数の輪郭点のうち、前記輪郭線の一部を、前記所定の領域の外を通って短絡する短絡経路の端点とならない第１の輪郭点と接続された輪郭点により形成される外周輪郭線に含まれる輪郭点の個数が前記所定の領域の輪郭点の総数よりも少ない場合、前記複数の輪郭点のうちの前記外周輪郭線と連結されていない輪郭点で囲まれた前記所定の領域に含まれない部分を窪み部分と判定する窪み判定部と、
を有する画像認識装置。
【符号の説明】
【００６９】
１    撮像装置
２    撮像光学系
３    イメージセンサ
４    メモリ
５    ユーザインターフェース
６    制御部
６１    輪郭抽出部
６２    輪郭方向検出部
６３    外接領域決定部
６４    短絡経路検出部
６５    窪み判定部
６６    修正部
【図１】
0005708305.tif 000002
【図２】
0005708305.tif 000003
【図３】
0005708305.tif 000004
【図４】
0005708305.tif 000005
【図５】
0005708305.tif 000006
【図６】
0005708305.tif 000007
【図７】
0005708305.tif 000008
【図８】
0005708305.tif 000009
【図９】
0005708305.tif 000010
【図１０】
0005708305.tif 000011