当業者が本発明をよりよく理解するために、以下に添付図を参照しながら本発明の好適な実施形態について詳細に説明する。本明細書と添付図では、実質的に同じステップと要素について、同じ符号を付し、これらのステップと要素の重複説明を省略することに留意されたい。
本発明の実施例による堆積物体の認識方法と装置はカメラ装置を含む機械選別システムに適用可能である。例えば、カメラ装置は両眼カメラのようなステレオカメラであってもよい。また、ステレオカメラの具体的な形態はこれに限定されず、例えば、三眼カメラ或いはTOFまたは自動調光モードに基づくカメラなど、画像内の対象の深さ情報を取得できる他のいずれかのカメラであってもよい。また、本発明の実施例では、カメラ装置は、堆積物体の頂部深さマップを撮影するように、堆積物体の上方に配置されてもよい。
図1は本発明の一実施例による堆積物体の認識方法100を説明するフローチャートである。以下、図1を参照して本発明の実施例における堆積物体の認識方法について説明する。図1に示すように、ステップS101において、堆積物体の深さマップを取得する。本発明の実施例では、堆積物体の深さマップは上記カメラ装置で取得された堆積物体の頂部深さマップであってもよい。
ステップS102では、取得した深さマップに基づき堆積物体を複数の物体領域に分割する。本発明の一実施例に基づき、分水嶺アルゴリズムを利用し、深さマップ中の深さ値の大きさに対応する水位線を徐々に低下させ、深さマップに基づいて堆積物体を複数の物体領域に分割してもよい。具体的には、各水位線で取得した深さマップ中に新規物体が出現したか否かを決定してもよい。例えば、水位線を徐々に低下させる過程では、新規物体は現在の水位線より高い水位線で出現した新規物体から独立するものであってもよい。
特定の水位線で新規物体が出現したことを決定し、且つ決定した物体領域が存在しない場合、新規物体を新規物体領域として定める。また、水位線を徐々に低下させる過程において、次の水位線で当該新規物体領域に対して領域拡張を行って定めてもよい。
他方で、特定の水位線で新規物体が出現したことを決定し、且つ決定した物体領域が存在する場合、深さマップにおける新規物体の位置と決定した物体領域の位置との間の距離が所定の閾値以上か否かを決定する。深さマップ中の新規物体の位置と決定した物体領域の位置との間の距離が所定の閾値以上である場合、新規物体を新規物体領域として定め、そうでない場合、新規物体を決定された物体領域に属するものと決定する。例えば、新規物体の中心位置と決定した物体領域の中心位置との間の距離を深さマップにおける新規物体の位置と決定した物体領域の位置との間の距離として算出してもよい。また、水位線を徐々に低下させる過程において、次の水位線ですべての決定した物体領域に対して別々に領域拡張を行ってもよい。さらに、次の水位線で決定した物体領域に含まれるすべての物体を当該物体領域の拡張に用いてもよい。
図2は本発明の一例による堆積物体を複数の物体領域に分割することを示す概略図である。図2に示すように、水位線が位置「P1」まで低下する場合、点「A」は水面から露出し、即ち、位置「P1」に新規物体が出現したことを決定する。この場合に決定した物体領域が存在しないため、物体Aを新規物体領域として定め、次の水位線で領域拡張の実行を開始する。水位線が位置「P2」まで低下する場合、物体Aの存在する物体領から独立した新規物体が出現しないため、即ち、位置「P2」に新規物体が出現していないことを決定する。水位線が位置「P3」まで低下する場合に、点「B」は水面から露出する。図2に示すように、水位線が位置「P3」まで低下する場合、点「B」は決定した点「A」の存在する物体領域から独立しているため、位置「P3」に新規物体が出現したことを決定する。図2に示す実例において、点「B」の位置と点「A」の存在する物体領域の位置との間の距離が所定の閾値Tより大きい。したがって、点「B」を新規物体領域として定める。引き続き水位線が位置「P4」まで低下し、点「C」は水面から露出し、図2に示すように、水位線が位置「P4」まで低下する場合に、点「C」は決定した点「A」の存在する物体領域及び点「B」の存在する物体領域から独立しているため、位置「P4」に新規物体が出現したことを決定する。図2に示す実例において、点「C」の位置と点「B」の存在する物体領域の位置との間の距離が所定の閾値Tより小さい。したがって、点「C」を決定した物体領域に属するものと決定し、新規物体領域として定めない。この方法で、堆積物体を複数の物体領域に分割できるとともに、それらの複数の物体領域は互いに重畳しないことが可能になる。
その後、ステップS103では、各物体領域について頂部物体層の分割位置を決定し、決定した分割位置に基づいて当該物体領域の頂部物体層を抽出する。本発明の一例に基づき、堆積物体中の単一物体の平均高さを取得してもよい。例えば、堆積物体中の単一物体の平均高さを事前に記憶しておいてもよい。各物体領域については、単一物体の平均高さに基づき当該物体領域の頂部物体層の分割位置を決定してもよい。
図3は本発明の一実施例における物体領域の頂部物体層の分割位置を決定する方法300を説明するフローチャートである。図3に示すように、ステップS301において、深さマップ中の当該物体領域の最高点と単一物体の平均高さによって基準位置を算出する。例えば、深さマップ中の最小深さ値(即ち物体領域の最高点に対応する深さ値)に単一物体の平均高さを加算して得られた深さ値を基準位置としてもよい。
例えば、当該基準位置を直接物体領域の頂部物体層の分割位置としてもよい。代替として、実際に得られた深さマップに関連して当該基準位置を補正し、より正確な分割位置を取得してもよい。具体的には、ステップS302において、深さマップの深さヒストグラムを生成する。物体階層化位置が通常、深さヒストグラム内のトラフ点に存在するため、ステップS303において、生成した深さヒストグラムにおいて、基準位置付近のトラフ点の位置を当該物体領域の頂部物体層の分割位置として取得する。例えば、以下の最大化比較演算子を求める公式(1)によって基準位置T1をさらに補正してもよい。
式中、hkは画像深さヒストグラムの第K個位置の深さ統計値であり、nとaは予め決定されたウィンドウ半径である。公式(1)によって[Tl-a,Tl+a]の範囲内で深さマップヒストグラムの前のトラフ点を補正値T2として決定でき、このトラフ点は2側最大化比較差値を備える。補正値T2を分割位置としてもよい。
図4は本発明の別の実施例における物体領域の頂部物体層の分割位置を決定する方法400を説明するフローチャートである。図4に示すように、ステップS401では、前記深さマップで当該物体領域中の物体エッジを検出して、当該物体領域のエッジ深さヒストグラムを生成する。物体エッジの深さ情報に物体自身の深さ情報と当該物体を支持する下層物体の深さ情報を同時に含むことを期待するため、好ましくは、深さマップで当該物体領域中の物体エッジを検出した後に、深さデータの抽出前に物体エッジが物体をカバーできることを確保するように検出した物体エッジに対して膨張処理を行ってもよく、それによって膨張後のエッジ二値画像を取得する。そして、前記膨張後のエッジ二値画像をマスクマップとして、前記深さマップに基づき物体エッジに対応する深さを取得し、当該物体領域のエッジ深さヒストグラムを算出する。
ステップS402では、エッジ深さヒストグラムをクラスタリングしてクラスタポイントを取得する。ステップS403では、深さマップ中の当該物体領域の最高点と単一物体の平均高さに基づき基準位置を算出する。例えば、上記のように、深さマップ中の最小深さ値(即ち物体領域内の最高点に対応する深さ値)に単一物体の平均高さを加算して得られた深さ値を基準位置としてもよい。
その後、ステップS404では、取得したクラスタポイントのうち、前記基準位置に最も近い目標クラスタポイントに基づき当該物体領域の頂部物体層の分割位置を決定する。本発明の一例に基づき、ステップS404において、深さマップの深さヒストグラムを生成し、その後、生成した深さヒストグラムにおいて、前記目標クラスタポイント付近のトラフ点の位置を当該物体領域の頂部物体層の分割位置として取得してもよい。例えば、上記公式(1)によって深さヒストグラムにおいて、目標クラスタポイント付近のトラフ点の位置を当該物体領域の頂部物体層の分割位置として取得してもよい。具体的には、公式(1)における基準位置T1を目標クラスタポイントL1に置き換えることにより、目標クラスタポイント付近のトラフ点の位置を当該物体領域の頂部物体層の分割位置として取得してもよい。
以下、図5aから図5dに関連して本発明の実施例による生成したエッジ深さヒストグラムをさらに説明する。図5aは堆積物体500を示す例示的説明図である。ステップS102に基づいて堆積物体500を物体領域510、520、530に分割してもよい。図5bはそれぞれ物体領域510、520、530に対応する深さヒストグラムである。ステップS401に基づき、堆積物体500の深さマップで当該物体領域中の物体エッジを検出して、当該物体領域のエッジ深さヒストグラムを生成する。図5cは堆積物体500のエッジ検出結果を示す図である。上記のように、図5cに示すエッジ検出結果に基づいて膨張後のエッジ二値画像を生成し、膨張後のエッジ二値画像をマスクマップとしてもよい。図5dはマスクマップの対応する物体領域510、520と530のエッジ深さヒストグラムを示す図である。上記のように、図5bと図5dの二つの異なる深さヒストグラムに関連して、各物体領域の最上層位置を取得でき、それによって最上層画像を分割できる。
図3と図4に示す物体領域における頂部物体層の分割位置の決定方法により、単一の閾値を使用して頂部物体層を分割するのではなく、実際に取得した堆積物体の深さマップに基づいて各物体領域の頂部物体層の分割位置を決定することになり、それによって頂部物体層の分割の正確性を向上させる。
図1に戻り、ステップS104では、各物体領域の頂部物体層を抽出した後に、各物体領域の頂部物体層に含まれる物体を認識する。例えば、各物体領域の頂部物体層に単一物体しか含まない場合、該物体を認識してもよい。
また、例えば、頂部物体層に相互に凝着する複数の物体を含んでもよい。この場合、本発明の一実施例に基づき、ステップS104では、各物体領域内の頂部物体層を分割し、当該物体領域に位置する頂部物体層に含まれるすべての物体を認識してもよい。例えば、各物体領域の頂部物体層の距離図を生成してもよい。分水嶺アルゴリズムを用いた領域の拡張方法を利用し、各物体領域の頂部物体層を物体部分領域に分割し、その後、分割された物体部分領域に基づき各物体領域の頂部物体層に含まれる物体を認識する。図10は本発明の一実施例による物体分割方法を示すフローチャートである。
図10に示すように、ステップS1010では、被分割物体を含む、頂部物体層の地形図を取得する。地形図(Topographic image)は画像と映像処理分野における新規のデータ変換領域の画像であり、それは「高い」と「低い」という概念のある領域を備えるため、山地地形の表面のように見える。典型的な地形図はグラデーションマップ、距離図、及び深さマップなどを含む。本開示では、一例として、距離図を地形図として本発明を詳細に説明する。
距離図及びグレースケール画像を距離図に変換する方法は共に本分野でよく用いられる画像処理方法であり、ここで、理解を容易にするため、以下で簡単に説明する。具体的には、当該ステップでは、まず被分割物体を含む画像を二値画像に変換し、その後当該二値画像に距離変換を行って距離図を取得してもよい。
二値画像は、画素値が1である、目標物体と画素値が0である、背景の二種の画素のみを含むと理解されてもよい。距離変換は二値画像の処理と操作ではよく用いられる方法であり、それは目標細分化、骨格抽出、形状補間、及びマッチング、凝着物体の分離などに広範に応用されている。距離変換の結果は別の二値画像ではなく、グレースケール画像、即ち距離図になるものであり、当該距離図における各画素の画素値は当該画素とそれに最も近い背景画素との間の距離を示す。なお、距離図を地形図とする場合に、距離図における各画素の値が地形内の高さに対応し、当該点が地形内にある海抜を表す。
図10に示す方法は単層にタイル張りされた不規則な凝着物体の分割に適用可能である。以下、これについて詳細に説明する。鶏唐揚げが典型的な不規則な凝着物体であり、説明を容易にするために、以下、鶏唐揚げを例にとり説明する。図11(a)は取得した被分割物体(鶏唐揚げ)を含む画像を示す図である。図11(a)はランダムに平らに置かれている9個の鶏唐揚げを示し、堆積された鶏唐揚げを階層化操作することによって得られた頂部物体層の画像であってもよい。図11(b)は図11(a)に示す画像から変換されて得られた二値画像を示す図であり、ここで黒色画素は背景を表す一方で、白色画素は目標物体であり、つまり鶏唐揚げである。図11(c)は図11(b)に示す二値画像に距離変換を行うことで得られた距離図を示す図である。図11(c)に示すように、鶏唐揚げの中心位置に近ければ近いほど画素の値が大きくなり、明るくなる一方で、鶏唐揚げのエッジ位置に近ければ近いほど画素の値が小さくなり、暗くなる。
代替的に、当該ステップでは、後続の水位線低下処理の効率を向上させるために、変換して得られた距離図における各画素の画素値を適切な範囲(例えば、0-255)に正規化してもよい。
ステップS1020において,前記地形図の中で初期クラスタ領域を定める。
この初期クラスタ領域はいくつかの連通している画素点によって集合されたブロック領域であり、それは前景画像の中に存在し、各被分割物体のシード点を表す。理想的には、定められた初期クラスタ領域は一つの被分割物体に対応する。当該ステップにおいて、所定の閾値を利用して前記地形図に二値化を行うことによって前記初期クラスタ領域を定めてもよく、前記所定の閾値は、可能な限り所定の閾値を利用してすべての被分割物体を適切に定めるように被分割物体の形状、大きさなどの事前知識によって決定されてもよい。例えば、依然として被分割物体を鶏唐揚げとし、地形図を距離図とする例で説明すると、通常鶏唐揚げの大きさは相対的に一致し、正規分布型を満たす。そのため、許容可能な信頼区間を設定し、二値化実行の閾値を決定してもよい。その後、距離図中の各画素の値を当該閾値と比較して該距離図を二値化させることで、初期クラスタ領域を取得してもよい。例えば、図11(d)は図11(c)に示す距離図の中で定められた初期クラスタ領域を例示する概略図であり、ここで、各白色ブロックは各鶏唐揚げのシード点を表す。
上記所定の閾値を利用して距離図に二値化を行う方法は単に初期クラスタ領域を定める例示的な方法にすぎず、他の適切な方法、例えば形態学における収縮演算子、または機械学習内のK-Means、最近傍KNN法などの方法を採用して初期化クラスタ領域を定めることもできる。
ステップS1030において、水位線が最低水位に低下するまで、分水嶺アルゴリズムを利用して各水位線で前記初期クラスタ領域に拡張を行う。
分水嶺アルゴリズムは本分野でよく用いられる画像処理方法であるため、ここでは詳しく説明しない。当該ステップにおいて、分水嶺アルゴリズムを採用し、水位が高所から最低水位まで低下することをシミュレーションし、水位が低下する過程において領域拡張処理を行う。上記のように、分水嶺アルゴリズムはノイズに敏感であるため過度な分割を容易に引き起こす。この問題に対処して、通常の分水嶺アルゴリズムと異なり、当該ステップにおいて、水位が低下する過程に新しく出現した、初期クラスタ領域以外の他の孤立領域に拡張を行わず、各水位線で定められた初期クラスタ領域のみに拡張を行う。以下ではこれについて、図12(a)と12(b)に関連して詳しく説明する。
図12(a)と12(b)は本開示の実施例の物体分割方法に基づき水位線で領域拡張を行う時の例示的な場合を示す図である。図12(a)左側の小丘が地形図の正面図を表し、当該丘右側の峰が初期クラスタ領域aを表し、図12(a)右側が当該地形図の上面図であると仮定する。また、水位線が高所から水位「A」に低下する時、小丘の一つの局部が突起して水面から浮上して新しい孤立領域sを形成すると仮定する。当該新しい孤立領域は右側の上面図中で小円形で表示され、小円形右側の黒円は初期クラスタ領域aが現在の水位「A」で拡張された領域を表す。この時に該新しく水面から浮上した孤立領域sに拡張を行わず、且つその次の各水位でもそれに拡張を行わない。図12(b)に示すように、水位線が引き続き水位「B」に低下した時、黒円が表す初期クラスタ領域aは引き続き当該孤立領域s(図中の明色外周部分は初期クラスタ領域aが当該水位「B」で新しく拡張された部分を表す)に接続されるまで拡張され、こうして当該孤立領域sは拡張された初期クラスタ領域aに吸収される(図3(b)の最も右側の黒い中実の形状に示す)。
上記で説明された場合において、水位線が水位「B」に低下した時に孤立領域sに接続されるまで新しく拡張された初期クラスタ領域はただ一つだけである。当該水位線において、複数の初期クラスタ領域が拡張されて当該孤立領域sに接続される場合、この複数の初期クラスタ領域の中から一つを選択して当該孤立領域sに接続するまで拡張させるとともに、他の初期クラスタ領域が拡張される時に該孤立sに接続されないように制御できる。各種の適切な方法を採用して複数の初期クラスタ領域の中から一つの初期クラスタ領域を選択して当該孤立領域に接続するまで拡張させることができる。例えば、従来の方法として、固定の交替拡張方式を採用して選択を行ってもよい。また、例えば競争拡張方式を採用して選択を行ってもよい。競争拡張方式において、複数の初期クラスタ領域が拡張されて孤立領域sに接続される時、競争力が最も強い領域を選択して当該孤立領域sに接続するまで拡張させ、競争力は必要に応じて任意に設定してもよい。例えば、競争力は、当該複数の初期クラスタ領域が前の水位線における拡張速度或いは絶対的増加量、現在の水位線における面積の大きさ、孤立領域Sまでの距離などであってもよい。
当該ステップにおいて、一般的な処理方式として、領域拡張を行う水位線の初期水位は最高水位である。代替的に、この前のステップS1020において所定の閾値を利用して距離図に二値化を行うことで初期クラスタ領域を定めるとすれば、当該ステップS1030において、水位線の初期水位は当該所定の閾値であってもよい。
以上、添付図に関連して本開示の実施例における、分水嶺アルゴリズムを利用して各水位線で初期クラスタ領域に拡張を行う処理過程について詳しく説明した。当該拡張過程において、水位が低下する過程において新しく出現した他の孤立領域に拡張を行わず、各水位線では定められた初期クラスタ領域のみに拡張を行うため、全拡張過程において新しい領域が導入されず、最終的に拡張されて得られた領域(分割された物体に対応する)の数は最初に定められた初期クラスタ領域の数になる。初期クラスタ領域の数が制御可能であるため、分割の結果も制御可能になり、それによって過度な分割の発生を回避できる。
しかし、他方では、分割結果が初期クラスタ領域の定めに依存するため、初期クラスタ領域の定めが正確ではない場合、例えば物体が緊密に凝着することによってすべての被分割物体が定められない場合、最終的に拡張されて得られた領域の数は実際物体の数より少なく、即ちすべての物体を分割出来なかった。例えば、上記で説明されたように、11(a)に示す被分割の鶏唐揚げを含む画像には平らに置かれている9個の鶏唐揚げを含んでいるが、図11(d)に示すように、初期クラスタ領域の定めにより、8個の領域しか定められていない。当該ステップS1030における領域拡張処理により、図11(e)に示される8個の領域を取得し、即ち8個の物体が分割されたことになる。図11(e)からわかるように、当該図において、斜線で定められた領域は実際に緊密に凝着している二つの鶏唐揚げを含み、初期クラスタ領域が定められた時にそのうちの一つしか定められていないため、最終的にこの凝着している二つの鶏唐揚げを分割できないことになる。このような場合に対処して、本開示の実施例の物体分割方法に基づき以下で説明されるステップによって更に処理を行う。
図10に戻り、ステップS1040において、拡張された各初期クラスタ領域に一つの物体しか含まないか否かを決定し、もし判定結果がYESであれば、拡張された各初期クラスタ領域を分割された物体とし、分割を終了する。そうでない場合ステップS1050を実行する。
もし緊密に凝着しているなどの原因でS1020において複数の物体は初期クラスタ領域として定められた場合、当該初期クラスタ領域がステップS1030によって処理されて得られた拡張後の初期クラスタ領域の外形は明らかに他の正確に分割された物体と異なる。そのため、当該ステップS1040において、拡張された各初期クラスタ領域について、その中に含まれる物体が一つ以上か否かを判定してもよい。一つの実例として、拡張された初期クラスタ領域のサイズによってその中に含まれる物体が一つ以上か否かを判定してもよい。例えば、拡張された初期クラスタ領域のサイズ(長さ、幅或いは面積)が1.5倍の単一物体の平均サイズより大きい場合、その中に含まれる物体は一つ以上である可能性が高い。別の実例として、拡張された初期クラスタ領域の形状に基づきその中に含まれる物体が一つ以上であるか否かを判定してもよい。例えば、フーリエ記述子の低周波数係数を採用して形状情報を記述し、その後決定木などの機械学習方法を採用してある拡張された初期クラスタ領域に含まれる物体が一つ以上か否かを判定してもよい。
ステップS1050において、一つ以上の物体を含む拡張された各初期クラスタ領域に対し、ステップS1010において変換されて得られた地形図中の当該拡張された初期クラスタ領域に対応する部分を被分割地形図とし、該被分割地形図の中で少なくとも二つの初期クラスタ領域を改めて定める。以下では図11(e)-11(g)に関連してこれについて説明する。
当該ステップS1040において図11(e)中の斜線で定められた領域に一つ以上の物体が含まれることを決定したと仮定し、当該ステップS1050において、図11(f)に示すように、地形図から当該領域に対応する部分を抽出して被分割地形図とし、図11(f)において該部分は点線でマークされている。その後、当該被分割地形図の中で少なくとも二つの初期クラスタ領域を改めて定める。当該初期クラスタ領域を改めて定める処理は上記のステップS1020についての説明に類似するため、ここでは詳しく説明せず、その相違点のみについて説明する。
依然として二値化方法を採用して初期クラスタ領域を定めるステップを例にとり説明する。前記ステップS1020において、可能な限り所定の閾値を利用してすべての被分割物体を適切に定めるように被分割物体の形状、大きさなどの事前知識に基づき閾値を決定してもよい。なお、当該ステップS1050において、少なくとも二つの初期クラスタ領域を改めて定めることができるように採用された閾値を調整することになる。例えば、図11(g)では、図11(f)中の点線でマークされた被分割地形図に対して改めて定められた初期クラスタ領域が示されている。
上記ステップS1050における処理により、一つ以上の物体を含む各領域に対して地形図からそれに対応する部分を抽出して被分割地形図とし、当該被分割地形図の中で少なくとも二つの初期クラスタ領域を改めて定める。その後、処理はステップS1030に戻され、このような各被分割地形図に対してS1030-S1050を繰り返し実行する。より詳細には、各被分割地形図には一つ以上の物体が含まれるため、このような各被分割地形図を新しい地形図とし、改めて定められた少なくとも二つの初期クラスタ領域に対してステップS1030-S1050の処理を再び実行し、ステップS1040において各被分割地形図について、拡張された各初期クラスタ領域に一つの物体しか含まないことが決定されるまで、この過程を繰り返す。なお、当該過程は実際に反復分割の過程であり、ステップS1040における、一つ以上の物体が含まれると決定された各領域について、初期の地形図から対応する部分を抽出し、拡張された各初期クラスタ領域に一つの物体しか含まず、即ちすべての物体が分割されるまで、独立した入力として反復分割に入れる。図11(h)は当該反復分割によって取得された最終的な分割結果を示し、該図中の各領域には一つの鶏唐揚げしか含まないことがわかる。
理解を容易にするため、以下では図13に関連して反復分割について簡単に説明する。図13はツリー構造図の方式で反復分割を示す概略図である。図13に示すように、13個のボールの分割が行われ、左にある3個のボールが相互に凝着すると仮定する。最初の分割(即ち第一回の反復)において、4個のボールが二つの部分に分割され、左3個、右1個になる。左の3個には一つ以上の分割予定物体が含まれるため、左の3個のボールに対して第二回の反復分割を継続する。第二回の反復分割により、3個のボールは二つの部分に分割され、左2個、右1個になる。続いて左の2個のボールに第三回の反復分割を行い、最終的にすべてのボールは相互に分割されることになる。
以上、添付図を参照して本開示の実施例による物体分割方法を説明した。当該方法に基づき、分水嶺アルゴリズムを利用して分割を行う過程において、水位が低下する過程で新しく出現した他の孤立領域に拡張を行わずに、定められた初期クラスタ領域のみに拡張を行い、そのため、全拡張過程では新しい領域が導入されず、それによって過度な分割の発生を回避できる。他方で、反復分割の方式によって物体が緊密に凝縮することで定められた初期クラスタ領域が不正確になるという欠陥を補い、それによって凝着物体の有効分割を実現する。
なお、上記の説明において、特に不規則な凝着物体について本開示の実施例における物体分割方法を説明したが、この説明は本発明を制限するものではない。本開示の実施例による上記物体分割方法は、規則的な物体又は非凝着物体の分割にも同様に適用可能である。
本実施例による堆積物体の認識方法において、深さ図に基づき堆積物体を複数の物体領域に分割し、各物体領域にそれぞれ頂部物体層の分割と物体抽出を行うことにより、効果的にカメラ視野に露出し、遮蔽されることがなく、堆積物体最上層に位置する複数の物体を認識でき、したがって、機械システムが乱雑な堆積物体から物体を認識・把持できる効率を大幅に向上させる。
また、上記のフローチャート中の各ステップは添付図に示す順序に従って実行されるとは限らないことに留意されたい。例えば図4において、まず深さ図における当該物体領域の最高点と単一物体の平均高さによって基準位置を算出するステップ(ステップS403)を実行し、続いて当該物体領域のエッジ深さヒストグラムを生成させるステップ(ステップS401)或いはエッジ深さヒストグラムにクラスタリングを行ってクラスタポイントを取得するステップ(ステップS402)を実行できる。また、ステップS403とステップS401を同時に実行し、またはステップS403とステップS402を同時に実行できる。
以下では、図6を参照して本発明の実施例における堆積物体の認識装置を説明する。図6は本発明の一実施例による堆積物体の認識装置600を示す例示的な構造ブロック図である。図7に示すように、本実施例の堆積物体の認識装置600は深さ図取得ユニット610、領域分割ユニット620、物体層抽出ユニット630と認識ユニット640を含む。堆積物体の認識装置600の各ユニットは、それぞれ上記図1の堆積物体の認識方法100の各ステップ/機能を実行できる。したがって、以下では堆積物体の認識装置600の主な構成例のみについて説明し、上記図1から図5までに関連して説明した詳細内容を省略する。
具体的には、深さ図取得ユニット610は堆積物体の深さ図を取得する。本発明の実施例において、堆積物体の深さ図は上記カメラ装置によって取得された堆積物体の頂部深さ図であってもよい。
領域分割ユニット620は取得された深さ図によって堆積物体を複数の物体領域に分割する。本発明の一実例に基づき、分水嶺アルゴリズムを利用し、深さ図内の深さ値の大きさに対応する水位線を徐々に低下させ、深さ図に基づき堆積物体を複数の物体領域に分割してもよい。具体的には、領域分割ユニットは物体検出モジュールと領域決定モジュールを含み得る。物体検出モジュールは各水位線で取得された深さ図に新規物体が出現したか否かを決定してもよい。例えば、水位線を徐々に低下させる過程において、新規物体は現在の水位線より高い水位線で出現した新規物体と独立してもよい。
特定の水位線で新規物体出現したことを決定したとともに決定した物体領域が存在しない場合に、領域決定モジュールは新規物体を新規物体領域として定めてもよい。また、水位線を徐々に低下させる過程において、次の水位線で新規物体領域に対して領域成長を行って定めてもよい。
他方で、特定な水位線で新規物体が出現したことを決定したとともに決定した物体領域が存在する場合に、領域決定モジュールは、深さ図中の新規物体の位置と決定した物体領域の位置との間の距離が所定の閾値以上か否かを決定してもよい。深さ図中の新規物体の位置と決定した物体領域の位置との間の距離が所定の閾値以上である場合、新規物体を新規物体領域として定め、そうでない場合、新規物体を決定された物体領域に属するものと決定する。例えば、新規物体の中心位置と決定した物体領域の中心位置との間の距離を深さ図中の新規物体の位置と決定した物体領域の位置との間の距離として算出してもよい。また、水位線を徐々に低下させる過程において、次の水位線ですべての決定した物体領域に対して領域拡張を行って定めてもよい。さらに、次の水位線で決定した物体領域に含まれるすべての物体を当該物体領域の拡張に用いてもよい。
その後、物体層抽出ユニット630は各物体領域に対して頂部物体層の分割位置を決定し、決定した分割位置に基づき当該物体領域の頂部物体層を抽出する。本発明の一例に基づき、堆積物体中の単一物体の平均高さを取得してもよい。例えば、堆積物体中の単一物体の平均高さを事前に記憶しておいてもよい。各物体領域について、単一物体の平均高さに基づき当該物体領域の頂部物体層の分割位置を決定してもよい。
図7は本発明の実施例の物体層抽出ユニットを説明する例示的な構造ブロック図である。図7に示すように、物体層抽出ユニット630は基準位置算出モジュール710、深さヒストグラム生成モジュール720と分割位置決定モジュール730を含んでよい。
具体的には、基準位置算出モジュール710は深さ図中の当該物体領域の最高点と単一物体の平均高さに基づき基準位置を算出してもよい。例えば、深さ図中の最小深さ値(即ち物体領域内の最高点に対応する深さ値)に単一物体の平均高さを加算して取得された深さ値を基準位置としてもよい。
例えば、決定モジュール730は当該基準位置を直接物体領域の頂部物体層の分割位置としてもよい。或いは、実際に取得された深さ図に関連して当該基準位置を補正し、より正確な分割位置を取得してもよい。具体的には、深さヒストグラム生成モジュール720は深さ図の深さヒストグラムを生成してもよい。物体階層化位置が通常深さヒストグラムのトラフ点の位置に存在するため、分割位置決定モジュール730は生成した深さヒストグラムにおいて、基準位置付近のトラフ点の位置を当該物体領域の頂部物体層の分割位置として取得してもよい。例えば、上記の最大化比較演算子を求める公式(1)によって基準位置T1をさらに補正してもよい。
図8は本発明の別の実施例における物体層抽出ユニット630'を説明する例示的な構造ブロック図である。図8に示すように、物体層抽出ユニット630'はエッジ深さヒストグラム生成モジュール810、クラスタポイント取得モジュール820、基準位置算出モジュール830と分割位置決定モジュール840を含んでよい。
具体的には、エッジ深さヒストグラム生成モジュール810は前記深さ図で当該物体領域中の物体エッジを検出し、当該物体領域のエッジ深さヒストグラムを生成する。物体エッジの深さ情報に物体自体の深さ情報と当該物体を支持する下層物体の深さ情報を同時に含むことを希望するため、好適には、深さ図で当該物体領域中の物体エッジを検出した後に、深さデータの抽出前に物体エッジが物体をカバーできることを確保するように検出した物体エッジに膨張処理を行い、その後膨張後のエッジ二値画像を取得する。そして前記膨張後のエッジ二値画像をマスクマップとして、前記深さ図に基づき物体エッジに対応する深さを取得し、当該物体領域のエッジ深さヒストグラムを算出する。
クラスタポイント取得モジュール820はエッジ深さヒストグラムにクラスタリングを行ってクラスタポイントを取得する。また、基準位置算出モジュール830は深さ図中の当該物体領域の最高点と単一物体の平均高さに基づき基準位置を算出してもよい。例えば、上記のように、深さ図中の最小深さ値(即ち物体領域内の最高点に対応する深さ値)に単一物体の平均高さを加算して取得された深さ値を基準位置としてもよい。
次に、分割位置決定モジュール840は取得されたクラスタポイントのうち、前記基準位置に最も近い目標クラスタポイントに基づき当該物体領域の頂部物体層の分割位置を決定してもよい。本発明の一例に基づき、分割位置決定モジュール840は、深さ図の深さヒストグラムを生成し、その後、生成した深さヒストグラムにおいて、前記目標クラスタポイント付近のトラフ点の位置を当該物体領域の頂部物体層の分割位置として取得してもよい。例えば、上記公式(1)に基づき深さヒストグラムにおいて、目標クラスタポイント付近のトラフ点の位置を当該物体領域の頂部物体層の分割位置として取得してもよい。具体的には、公式(1)における基準位置T1を目標クラスタポイントL1に置き換えることにより、目標クラスタポイント付近のトラフ点の位置を当該物体領域の頂部物体層の分割位置として取得してもよい。
図7と図8に示す物体層抽出ユニットは、単一の閾値を用いて頂部物体層を分割することなく、実際に取得された堆積画像の深さ図に基づき各物体領域の頂部物体層の分割位置を決定するため、頂部物体層に分割を行う時の正確性を向上させる。
図6に戻り、認識ユニット640は各物体領域の頂部物体層を抽出した後に、各物体領域の頂部物体層に含まれる物体を認識する。例えば、各物体領域の頂部物体層に一つの物体しか含まない時、当該物体に対して認識を行ってもよい。また、例えば頂部物体層には相互に凝着する複数の物体が含まれてもよい。この場合で本発明の一実施例に基づき、認識ユニット640は各物体領域中の頂部物体層に分割を行い、当該物体領域に位置する頂部物体層に含まれるすべての物体を認識してもよい。例えば、認識ユニット640は上記の図10-13に関連して説明した分割方法によって物体部分領域を分割して各物体領域の頂部物体層に含まれる物体を認識してもよい。
本実施例による堆積物体の認識装置において、深さ図に基づき堆積物体を複数の物体領域に分割し、それぞれ各物体領域に頂部物体層の分割と物体抽出を行うことにより、効果的にカメラ視野に露出し、遮蔽されることなく、堆積物体最上層に位置する複数の物体を認識でき、したがって機械システムが乱雑な堆積物体から物体を認識・把持できる効率を大幅に向上させる。
また、本発明の別の実例に基づき、本発明は更に堆積物体の認識システムによって実施してもよい。図9は本発明の実施例による堆積物体の認識システム900を示す全体のハードウェアブロック図である。図9に示すように、堆積物体の認識システム900は、例えばステレオカメラで採集された画像などを外部から入力するために用いられ、例えば画像伝送路、画像入力ポートなどを含みうる入力装置910、上記の本発明の実施例による堆積物体の認識方法を実行するために用いられ、例えばコンピュータ中央処理装置又は他の処理能力を有するチップなどを含むことができ、また、インターネットのようなネットワークなどに接続され(図示されず)、処理過程の必要に応じて遠隔に処理された結果などを伝送できる処理装置920、上記堆積物体の認識過程を実行することで得られた結果を外部に出力するために用いられ、例えばディスプレイ及び通信ネットワーク及びそれと接続された遠隔出力装置などを含みうる出力装置930、及び揮発性或いは不揮発性方式で上記採集された画像などを記憶するために用いられ、またコンピュータ実行可能命令を記憶できる記憶装置940を含むことができる。処理装置920は、上記の本発明の実施例による堆積物体の認識方法を実行するために記憶装置940に記憶された命令を読み取り、実行できる。記憶装置940は、例えばランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、ハードディスク、或いは半導体メモリなどの様々な揮発性メモリ或いは不揮発性メモリを含むことができる。
当業者によく知られているように、本発明はシステム、装置、方法又はコンピュータプログラム製品として実現できる。そのため、本発明は、具体的に、完全なハードウェア、または完全なソフトウェア(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、更にハードウェアとソフトウェアの組み合わせの形態として実現してもよく、本明細書では一般的に「アセンブリ」、「モジュール」、「装置」又は「システム」と呼ばれる。また、いくつかの実施例において、本発明は、更に一つまたは複数のコンピュータ可読媒体におけるコンピュータプログラム製品の形態として実現してよく、当該コンピュータ可読媒体にはコンピュータ読み取り可能なプログラムコードを含む。
一つまたは複数のコンピュータ可読媒体の任意の組み合わせを採用できる。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体であってもよい。コンピュータ可読記憶媒体は、例えば電子、磁気、光、電磁気、赤外線、又は半導体のシステム、装置又はデバイス、或いはこれらの任意の組み合わせとすることができるが、これらに限定されるものではない。コンピュータ可読記憶媒体の更に具体的な例(非網羅的なリスト)は、一つまたは複数のリード線がある電気接続、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROM或いはフラッシュメモリ)、光ファイバ、携帯可能なコンパクトディスクリードオンリーメモリ(CD-ROM)、光記憶デバイス、磁気記憶デバイス、又は上記の任意の適切な組み合わせを含む。本明細書では、コンピュータ可読記憶媒体は、プログラムを含む或いは記憶する任意の有形媒体であってもよく、当該プログラムは命令実行システム、装置或いはデバイスによって使用されてよいし、或いはそれと組み合わせて使用されてよい。
コンピュータ可読信号媒体はベースバンドにおいて或いは一部の搬送波として伝播するデータ信号を含んでよく、その中にコンピュータ読み取り可能なプログラムコードを載せる。このように伝播するデータ信号は、多種の形態を採用でき、電磁信号、光信号又は上記の任意の適切な組み合わせを含むが、これらに限定されるものではない。コンピュータ可読信号媒体はさらに、コンピュータ可読記憶媒体以外のいずれかのコンピュータ可読媒体であってよいし、当該コンピュータ可読媒体は命令実行システム、装置又はデバイスに使用され、或いはこれらに組み合わせて使用されるためのプログラムを送信、伝播又は伝送することができる。
添付図中のフローチャートとブロック図は本発明の複数の実施例のシステム、方法とコンピュータプログラム製品によれば実現可能な体系アーキテクチャ、機能と操作を示す。この点に関して、フローチャート又はブロック図中の各ブロックは一つのモジュール、プログラムセグメント或いはコードの一部を代表することができ、前記モジュール、プログラムセグメント或いはコードの一部は一つまたは複数の規定された論理機能を実現するための実行可能なコマンドを含む。ブロック図及び/又はフローチャート中の各ブロック、及び、ブロック図及び/又はフローチャート中のブロックの組み合わせは、規定された機能又は操作を実行する専用のハードウェアに基づいたシステムによって実現でき、或いは専用ハードウェアとコンピュータ命令の組み合わせによって実現できることにも留意されたい。
以上、本発明の各実施例を説明したが、上記の説明は、例示的なものであり、網羅的ではなく、且つ開示された各実施例に限定されるものではない。説明した各実施例の範囲と精神を逸脱しない限り、当業者にとって、多くの修正と変更が可能であることは言うまでもない。本明細書に用いられる用語の選択は、各実施例の原理、実際の応用、或いは市場における技術への改善を最もよく解釈すること、或いは他の当業者が本明細書に開示された各実施例を理解できることを目的とする。