(57)【特許請求の範囲】
【請求項１】
物体群に対する距離計測の結果に基づいて該物体群の存在範囲を特定する特定手段と、
前記存在範囲を前記物体のサイズに基づいて複数の小領域に区分した場合に、該複数の小領域のうち前記距離計測により得られる距離値が小さい順に一部の小領域を特定し、該一部の小領域のそれぞれについて、該小領域を含み且つ該小領域よりも大きいサイズの領域を物体の探索領域として決定する決定手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記決定手段は、
前記物体群に対する距離計測により得られる距離値の代表値を求め、該距離計測を行う装置から該代表値だけ離間した位置に物体を配置した場合に該装置から見える該物体のサイズを求め、前記存在範囲を該求めたサイズに基づいて複数の小領域に区分した場合に、該複数の小領域のうち距離値が小さい順に一部の小領域を特定し、該一部の小領域のそれぞれについて、該小領域を含み且つ該小領域よりも大きいサイズの領域を前記探索領域として決定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記決定手段は、
前記複数の小領域のそれぞれのサイズを、該小領域に対応する距離値に応じて修正し、該修正の後、前記複数の小領域のうち距離値が小さい順に一部の小領域を特定し、該一部の小領域のそれぞれについて、該小領域を含み且つ該小領域よりも大きいサイズの領域を前記探索領域として決定することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記決定手段は、前記存在範囲を前記サイズ若しくは前記サイズの定数倍のサイズを有する小領域毎に区分することを特徴とする請求項１乃至３の何れか１項に記載の情報処理装置。
【請求項５】
前記特定手段は、
前記物体群を配置していない状態で行った距離計測の結果と、前記物体群を配置した状態で行った距離計測の結果と、を用いて前記存在範囲を特定することを特徴とする請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項６】
前記探索領域のサイズは、前記小領域のサイズの定数倍であることを特徴とする請求項１乃至５の何れか１項に記載の情報処理装置。
【請求項７】
前記探索領域のサイズは、前記装置から前記特定した小領域に対応する距離値だけ離間した位置に物体を配置した場合に該装置から見える該物体のサイズの定数倍であることを特徴とする請求項２又は３に記載の情報処理装置。
【請求項８】
更に、
前記決定手段が決定した探索領域を示す情報を、前記物体を操作するための装置に対して出力することを特徴とする請求項１乃至７の何れか１項に記載の情報処理装置。
【請求項９】
情報処理装置が行う情報処理方法であって、
前記情報処理装置の特定手段が、物体群に対する距離計測の結果に基づいて該物体群の存在範囲を特定する特定工程と、
前記情報処理装置の決定手段が、前記存在範囲を前記物体のサイズに基づいて複数の小領域に区分した場合に、該複数の小領域のうち前記距離計測により得られる距離値が小さい順に一部の小領域を特定し、該一部の小領域のそれぞれについて、該小領域を含み且つ該小領域よりも大きいサイズの領域を物体の探索領域として決定する決定工程と
を備えることを特徴とする情報処理方法。
【請求項１０】
コンピュータを、請求項１乃至８の何れか１項に記載の情報処理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、距離計測技術に関するものである。
【背景技術】
【０００２】
従来より、いわゆる部品のバラ積みピッキングを実現するビジョンシステムが存在している。例えば、特許文献１のように、対象物体である部品の様々な方向からの撮影データを事前に取得しておいて、入力画像と該事前に取得した撮影データとをパターンマッチングすることで対象物体の位置・姿勢を決定する方法が存在している。但し、この方法では部品のサイズに比べて探索領域のサイズが大幅に大きい場合、検出に非常に時間がかかってしまうという欠点があった。このような欠点に対応するために、例えば特許文献２のように、バラバラに山積みされた部品群の中で最も高い地点を求め、その地点を中心とした部品探索領域を設定することで、部品検出処理の高速化を実現する手法が開示されている。この高い地点を求める方法は、ロボットを用いて部品を把持するという目的からすると理にかなっている。なぜなら、高い位置にある部品を検出できればその部品は表層にある可能性が高いので、他の部品との干渉もなく、安全にピッキング出来る確率が高くなるからである。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第３３００６８２号公報
【特許文献２】特開２０１１−１３３２７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術においては以下の課題が存在した。つまり、山積み状態にある部品群までの距離を測定する際に計測ノイズが発生することによって、本来高い位置にない部分が選択されることがあった。より具体的には、従来の方法を用いて高いと推定される場所を求めても、それが実際は部品積載状態の谷の場所に位置してしまうことがあった。そして、その結果、その場所から検出された部品の把持が不可能になり、ピッキング可能な部品が検出できない、という課題があった。
【０００５】
また、部品が少なくなってきた時、本来部品が存在するはずのない場所が距離測定ノイズによって高くなり、そこが探索領域として設定されることがあった。その結果として、求めた部品探索領域に部品が１つも検出できない、または、誤って部品ではない物体を部品として認識してしまうという課題もあった。
【０００６】
本発明はこのような問題に鑑みてなされたものであり、山積み状態にある物体群の中から高い位置にある物体を高速かつ安定的に特定するための技術を提供する。
【課題を解決するための手段】
【０００７】
本発明の一様態は、物体群に対する距離計測の結果に基づいて該物体群の存在範囲を特定する特定手段と、
前記存在範囲を前記物体のサイズに基づいて複数の小領域に区分した場合に、該複数の小領域のうち前記距離計測により得られる距離値が小さい順に一部の小領域を特定し、該一部の小領域のそれぞれについて、該小領域を含み且つ該小領域よりも大きいサイズの領域を物体の探索領域として決定する決定手段と
を備えることを特徴とする。
【発明の効果】
【０００８】
本発明の構成によれば、山積み状態にある物体群の中から高い位置にある物体を高速かつ安定的に特定することができる。
【図面の簡単な説明】
【０００９】
【図１】情報処理装置が行う処理のフローチャート。
【図２】情報処理装置のハードウェア構成例を示すブロック図。
【図３】ステップＳ１０３における処理を説明する図。
【図４】ステップＳ１１１を説明する図。
【図５】小領域群を示す図。
【図６】情報処理装置が行う処理のフローチャート。
【図７】部品山積み状態を示す図。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施例の１つである。
【００１１】
［第１の実施形態］
本実施形態では、物体群に対する距離計測の結果に基づいて該物体群の存在範囲を特定し、該存在範囲を物体のサイズに基づいて複数の小領域に区分した場合に、該複数の小領域に対応する上記結果に基づいて、該複数の小領域から物体の探索領域を決定する情報処理装置の一例について説明する。
【００１２】
先ず、本実施形態に係る情報処理装置のハードウェア構成例について、図２のブロック図を用いて説明する。なお、図２の構成を有する装置には、例えば、一般のＰＣ（パーソナルコンピュータ）が適用可能であるが、以下に説明する各処理を実現可能な構成であれば、如何なる装置に適用しても構わない。例えば、図２に示す構成を、撮像装置等の装置に組み込んでも構わない。また、図２の構成を、ネットワークを介して互いにデータ通信が可能な複数の装置で構成しても構わない。
【００１３】
ＣＰＵ２０１は、ＲＡＭ２０３に格納されているコンピュータプログラムやデータを用いて処理を実行することで、情報処理装置全体の動作制御を行うと共に、情報処理装置が行うものとして後述する各処理を実行若しくは制御する。
【００１４】
ＲＯＭ２０２には、ブートプログラムや設定データなどが格納されている。
【００１５】
ＲＡＭ２０３は、ＲＯＭ２０２や２次記憶装置２０４からロードされたコンピュータプログラムやデータ、Ｉ／Ｏデバイス２０９から入力されたデータ、等を格納するためのエリアを有する。更に、ＲＡＭ２０３は、ＣＰＵ２０１が各種の処理を実行する際に用いるワークエリアを有する。このように、ＲＡＭ２０３は、各種のエリアを適宜提供することができる。
【００１６】
２次記憶装置２０４は、ハードディスクドライブ装置などの大容量情報記憶装置である。２次記憶装置２０４には、ＯＳ（オペレーティングシステム）２１１や、情報処理装置が行うものとして後述する各処理をＣＰＵ２０１に実行させるためのコンピュータプログラムやデータが保存されている。このコンピュータプログラムには、モジュール２１３やアプリケーション２１２などが含まれる。また、このデータには、データ２１４が含まれている。また、２次記憶装置２０４には、以下の説明において既知の情報として取り扱う情報も保存されている。２次記憶装置２０４に保存されているコンピュータプログラムやデータは、ＣＰＵ２０１による制御に従って適宜ＲＡＭ２０３にロードされ、ＣＰＵ２０１による処理対象となる。
【００１７】
ディスプレイ２０６は、ＣＲＴや液晶画面等により構成されており、ＣＰＵ２０１による処理結果を画像や文字などでもって表示することができる装置である。なお、ディスプレイ２０６の代わりに、プロジェクタなど、ＣＰＵ２０１による処理結果を画像や文字として投影する装置を用いても構わない。
【００１８】
キーボード２０７やマウス２０８は、情報処理装置の操作者が操作することで各種の指示をＣＰＵ２０１に対して入力することができる、ユーザインターフェースとして機能する装置である。
【００１９】
Ｉ／Ｏデバイス２０９は、情報処理装置に対して様々な情報を入力する機器、様々な情報を情報処理装置から外部の装置に対して出力する機器、を含むものである。本実施形態では、Ｉ／Ｏデバイス２０９は、少なくとも、距離計測範囲内の各位置までの３次元距離を計測可能な機器を含んでいる。
【００２０】
例えば、Ｉ／Ｏデバイス２０９が３次元距離計測を行う機器（例えば、ＴＯＦセンサ装置等の３次元入力装置）である場合には、該機器の距離計測範囲内の各位置までの３次元距離を計測することができる。
【００２１】
また例えば、Ｉ／Ｏデバイス２０９が２台のステレオカメラである場合には、該２台のステレオカメラのそれぞれは対象物体を含む撮像画像を撮像し、ＣＰＵ２０１は該２台のステレオカメラのそれぞれによる撮像画像を用いて三角測量技術を適用することで、該撮像画像に写っている空間の各位置までの３次元距離を求めることができる。
【００２２】
また例えば、Ｉ／Ｏデバイス２０９が１台のパターン光投影装置（プロジェクタ）と、１台以上の撮像装置と、を有する場合、パターン光投影装置は、投影パターン（例えば、空間符号化画像や位相シフト法に用いられる空間的三角関数画像）を対象物体に投影し、撮像装置は該投影パターンが投影された対象物体の画像を撮像し、ＣＰＵ２０１は該画像を用いて周知の技術を適用することで、対象物体までの距離の計測を行うことができる。また、同様の目的のために、パターン光投影装置でランダムドットパターンを対象物体に投影し、該対象物体を２台の撮像装置で撮影する方法もある。また、同様の目的のために、レーザースリット光を用いた光切断法を用いても良い。
【００２３】
また、Ｉ／Ｏデバイス２０９は、情報処理装置が後述する各処理により求めた、対象物体の候補位置に係る情報を、該対象物体を把持するためのロボット等の外部の機器に対して送出する機器であっても良い。
【００２４】
ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、２次記憶装置２０４、ディスプレイ２０６、キーボード２０７、マウス２０８、Ｉ／Ｏデバイス２０９、は何れも、バス２０５に接続されている。
【００２５】
次に、物体群のうち１つの物体の位置を探索するための探索候補位置を求めるために情報処理装置が行う処理について、同処理のフローチャートを示す図１を用いて説明する。以下では、物体が部品である場合について説明するが、物体が他のものであったとしても、以下の説明は同様に適用することができる。
【００２６】
＜ステップＳ１０１＞
先ず、ＣＰＵ２０１は、部品群（バラ積みされた部品群）を配置する場所を表すデータを部品なし状態データ１０２として取得する。例えば、部品群をバラ積みするパレットと呼ばれる容器のみを表すデータを部品なし状態データ１０２として取得する。パレットと呼ばれる容器のみを表すデータを部品なし状態データ１０２として取得する方法には様々な方法が考えられる。
【００２７】
例えば、上記のパターン光投影装置と撮像装置とを用いて（この場合、Ｉ／Ｏデバイス２０９はパターン光投影装置及び撮像装置を有することになる）、パターン光が投影された容器の撮像画像を取得し、ＣＰＵ２０１が、該撮像画像中の各画素位置に対応する３次元距離（撮像装置から該画素位置に写っている空間中の位置までの３次元距離）を表す距離画像（距離画像中の画素位置（ｘ、ｙ）における画素値は、撮像装置から撮像画像中の画素位置（ｘ、ｙ）に写っている空間中の位置までの３次元距離を表す）を、部品なし状態データ１０２として求めても良い。
【００２８】
また、上記のパターン光投影装置及び撮像装置の代わりに、ＴＯＦセンサ装置などのセンサ装置を用いても同様の距離画像（各画素の画素値がＴＯＦセンサ装置などのセンサ装置からの距離を表す距離画像）を部品なし状態データ１０２として取得することができる（この場合、Ｉ／Ｏデバイス２０９はＴＯＦセンサ装置などのセンサ装置を有することになる）。
【００２９】
なお、部品群をパレットではなく机など適当な面上に配置する場合には、該面を表すデータを部品なし状態データ１０２として取得することになる。その場合も、上記の方法を用いることで、各画素の画素値がＩ／Ｏデバイス２０９からの距離を表す距離画像を取得することができる。
【００３０】
以下では、部品なし状態データ１０２は、各画素の画素値がＩ／Ｏデバイス２０９からの距離を表す距離画像であるものとして説明する。
【００３１】
このように、部品なし状態データ１０２は、Ｉ／Ｏデバイス２０９により取得することができる。Ｉ／Ｏデバイス２０９はこのようにして取得した部品なし状態データ１０２をＲＡＭ２０３や２次記憶装置２０４に格納するので、ＣＰＵ２０１は、ＲＡＭ２０３や２次記憶装置２０４に格納された部品なし状態データ１０２を取得することになる。
【００３２】
＜ステップＳ１０３＞
次に、ＣＰＵ２０１は、上記場所に配置した部品群（バラ積みされた部品群）を表すデータを山積み状態データ１０４として取得する。ステップＳ１０１で、パレットの距離画像を部品なし状態データ１０２として取得した場合、ステップＳ１０３では、パレット上にバラ積みされた部品群の距離画像を、山積み状態データ１０４として取得する。すなわち、山積み状態データ１０４は、部品なし状態データ１０２を取得する際にＩ／Ｏデバイス２０９が距離計測を行った範囲内に部品群を配置してから、部品なし状態データ１０２と同様の方法でＩ／Ｏデバイス２０９によって取得したデータである。然るに、山積み状態データ１０４もまた、各画素の画素値がＩ／Ｏデバイス２０９からの距離を表す距離画像である。Ｉ／Ｏデバイス２０９はこのようにして取得した山積み状態データ１０４をＲＡＭ２０３や２次記憶装置２０４に格納するので、ＣＰＵ２０１は、ＲＡＭ２０３や２次記憶装置２０４に格納された山積み状態データ１０４を取得することになる。
【００３３】
パターン光投影装置と撮像装置とを有するＩ／Ｏデバイス２０９を用いて山積み状態データ１０４を取得するための処理について、図３を用いて説明する。図３（ａ）は、山積みされた部品群３０４が収容されているパレット３０３を側面から見た図、図３（ｂ）は、山積みされた部品群３０４が収容されているパレット３０３を上面から見た図、である。
【００３４】
図３（ａ）に示す如く、Ｉ／Ｏデバイス２０９は、対象物体（ここでは部品）に対して規定のパターン光を投影するプロジェクタと、該パターン光が投影された該対象物体を撮像するカメラと、を有しており、ＣＰＵ２０１は、カメラによる撮像画像を用いて、該カメラから対象物体上の各点までの３次元距離を周知の技術でもって求めることができる。図３（ａ）において３０２はカメラの画角（撮像範囲）を示している。
【００３５】
なお、パレット３０３は、典型的な形としては直方体の箱の上の面がないような物体であるが、その形状は直方体に限るものではなく、基本的にはどのような形でも構わない。例えば、底面の４辺が上枠の４辺より短い四角錐台の形となっていてもよい。また、パレットのコーナはラウンドしてもよいし、パレットの辺が曲がっていてもよい。
【００３６】
＜ステップＳ１０５＞
ＣＰＵ２０１は、山積み状態データ１０４が表す距離画像において、部品が存在するであろう範囲を、部品存在範囲１０６として求める。例えば、部品なし状態データ１０２と山積み状態データ１０４とで位置的に対応する画素の画素値を比較し、部品なし状態データ１０２の画素位置（ｘ、ｙ）における画素の画素値＜山積み状態データ１０４の画素位置（ｘ、ｙ）における画素の画素値である場合には、山積み状態データ１０４における画素位置（ｘ、ｙ）は部品存在範囲１０６に含まれているものと判断する。このような判断を、全ての画素位置について行うことで、山積み状態データ１０４上で部品が存在するものとおぼしき領域を求めることができる。
【００３７】
なお、本ステップでは、山積み状態データ１０４上で部品が存在するものとおぼしき領域を求めることができるのであれば、他の方法を用いても構わない。例えば、背景差分法を用いて、山積み状態データ１０４において部品なし状態データ１０２と画素値が規定値以上異なる画素位置を特定し、該特定した画素位置の集合を部品存在範囲１０６として特定しても構わない。また、部品なし状態データ１０２におけるパレットの領域を特定し、該特定したパレットの領域に対応する山積み状態データ１０４上の領域を部品存在範囲１０６として特定しても構わない。また、山積み状態データ１０４を得るために撮像装置が撮像した撮像画像をディスプレイ２０６に表示し、ディスプレイ２０６に表示された撮像画像を見たユーザがキーボード２０７やマウス２０８を用いて指定した領域を部品存在範囲１０６として特定しても構わない。また、部品なし状態データ１０２を得るためにカメラが撮像した撮像画像と、山積み状態データ１０４を得るためにカメラが撮像した撮像画像と、で位置的に対応する画素間で画素値の差分を計算し、該差分が閾値以上となる画素から成る山積み状態データ１０４上の領域を部品存在範囲１０６として特定しても構わない。
【００３８】
＜ステップＳ１０７＞
次に、ＣＰＵ２０１は、山積み状態データ１０４を用いて、Ｉ／Ｏデバイス２０９の位置からみた山積み状態の部品群３０４における代表的な部品のサイズ（推定サイズ）を推定する。
【００３９】
例えば、山積み状態データ１０４において部品存在範囲１０６に属する画素の画素値から代表値を求める。本実施形態では、山積み状態データ１０４において部品存在範囲１０６に属する画素の画素値の平均値を代表値とする。図３（ａ）において３０５は、Ｉ／Ｏデバイス２０９（カメラ）からの、代表値が表す距離を表している。なお、代表値は他の方法を用いて求めても良く、山積み状態データ１０４において部品存在範囲１０６に属する画素の画素値の中央値や最頻値などの統計量をもって代表値としても構わない。
【００４０】
次に、ＣＰＵ２０１は、「代表値が表す距離だけＩ／Ｏデバイス２０９から離間した位置に部品を配置した場合にＩ／Ｏデバイス２０９から見える該部品のサイズ」を、部品投影サイズ１０８として求める。例えば、部品のバウンディングボックスの長辺の長さＬ、カメラの焦点距離ｆ、代表値Ｄ、カメラの解像度Ｒ、から部品投影サイズ１０８＝Ｒ×ｆ×Ｌ／Ｄを求める。また、予め作成した部品のモデルを用いて、「代表値が表す距離だけＩ／Ｏデバイス２０９から離間した位置に該モデルを配置した場合にＩ／Ｏデバイス２０９から見える該モデルの画像」を、該モデルの姿勢を様々な姿勢に変化させながら生成し、該生成したそれぞれの画像におけるモデルの領域の一辺の平均値や最大値を部品投影サイズ１０８として求めても構わない。例えば、モデルとしては、部品の形状を表現するＣＡＤモデルを用いることができる。
【００４１】
すなわち、ステップＳ１０７では、「山積み状態データ１０４において部品存在範囲１０６に属する画素の画素値から求めた代表値が表す距離だけＩ／Ｏデバイス２０９から離間した位置に部品を配置した場合にＩ／Ｏデバイス２０９から見える該部品のサイズ」を求めることができるのであれば、そのための処理は特定の処理に限るものではない。
【００４２】
＜ステップＳ１０９＞
次に、ＣＰＵ２０１は、山積み状態データ１０４及び部品投影サイズ１０８を用いて、概略高さマップ１１０を作成する。概略高さマップ１１０とは、山積み状態データ１０４における部品存在範囲１０６を複数の小領域（セル）に区分した場合に、それぞれの小領域における代表的な距離値を表すデータ、である。「小領域における代表的な距離値」とは、該小領域内の画素値の平均値や中央値などの統計値である。
【００４３】
なお、小領域の形状は特定の形状に限るものではないが、そのサイズは、部品投影サイズ１０８に基づくサイズとなる。例えば、図３（ｂ）の場合、３０６で示す如く、小領域は正方形となっており、その一辺は、部品投影サイズ１０８若しくはその定数倍のサイズを有する。また、例えば、図５（ａ）の場合、小領域は円形となっており、行毎にその中心位置がずれており且つ互いに重複する領域を有するものとなっている。また、その直径（半径でも良い）は、部品投影サイズ１０８若しくはその定数倍のサイズを有する。また、例えば、図５（ｂ）の場合、小領域は六角形となっており、ハニカム構造を形成している。また、小領域に外接する円の直径（半径でも良い）は、部品投影サイズ１０８若しくはその定数倍のサイズを有する。なお、小領域の一辺が部品投影サイズ１０８若しくはその定数倍のサイズを有するようにしても構わない。
【００４４】
一般的に、部品存在範囲１０６を区分する小領域（正方形でも円形でも六角形でも良い）のサイズが小さすぎると、特許文献２と近いアルゴリズムとなり、距離測定ノイズに影響され、山積み部品において位置が高い（Ｉ／Ｏデバイス２０９により近い）部品の特定が不安定となる。一方、部品存在範囲１０６を区分する小領域のサイズが大きすぎると図３（ａ）の部品群３０４にあるような部品山積みの表面起伏が正確に評価できなくなり、山積み部品において位置が高い（Ｉ／Ｏデバイス２０９により近い）部品の特定が不正確となる。
【００４５】
これに対し、本実施形態では、山積み状態データ１０４における部品存在範囲１０６を複数の小領域（セル）に区分する場合に、そのサイズを、部品投影サイズ１０８若しくはその定数倍のサイズ、とする。
【００４６】
図３（ａ）に示したように、パレット３０３の中に部品が山積みされた状態において、カメラから部品までの距離３０５は非常に大きく変化する場合がある。特にパレットが深くて大量に部品を積載することができる場合、部品山積みを入れ替えた最初の頃はパレットの上枠近くに表層部品が存在するが、パレット中に部品が残りわずかになる頃は、カメラと部品との間の距離は、ほぼカメラとパレット底面との距離となる。この時、仮にカメラから部品までの距離３０５が当初より２倍長くなったとすると、部品投影サイズ１０８は２分の１となる。このように部品投影サイズが２分の１に変化した場合でも、上記の小領域のサイズを本実施形態のように変化させずに固定し、それを元に山積み部品において位置が高い（Ｉ／Ｏデバイス２０９により近い）部品を特定しようとしても、その特定が不正確になってしまう。これに対し、本実施形態によれば、現在の山積み状態に最適なサイズを有する小領域を単位に部品存在範囲１０６を区分するので、安定して正確な特定（山積み部品において位置が高い（Ｉ／Ｏデバイス２０９により近い）部品の特定）が実現できる。
【００４７】
＜ステップＳ１１１＞
ＣＰＵ２０１は、概略高さマップ１１０を参照して、部品存在範囲１０６を区分したそれぞれの小領域のうち、代表的な距離値が最も小さい小領域を中心小領域として特定する。そしてＣＰＵ２０１は、中心小領域、及び該中心小領域を囲む周囲の小領域群、から成る小領域群を、部品探索領域１１２として特定する。ステップＳ１１１における処理について、図４を用いて説明する。
【００４８】
図４（ａ）は、山積みされた部品群４０２を収容している状態のパレット４０１を上から見た図を示しており、概略高さマップ１１０が表す小領域群の一部４０３を模式的に重ねて示している。図４（ａ）では、中心小領域として小領域４０４が選択されており、小領域４０４、及び小領域４０４を囲む周囲の小領域群、から成る小領域群４０５を部品探索領域として特定している。この部品探索領域の縦横サイズは、例えば、小領域の縦横サイズの４倍である。
【００４９】
なお、中心小領域を中心とする部品探索領域のサイズは、小領域の整数倍に限るものではない。例えば、距離３０５の代わりに中心小領域内の画素値の平均値を用いて部品投影サイズ１０８を求め、中心小領域を中心とする部品探索領域の縦横サイズを、該求めた部品投影サイズ１０８の定数倍としても構わない。
【００５０】
図４（ｂ）は、山積みされた部品群４０２を収容している状態のパレット４０１を上から見た図を示しており、概略高さマップ１１０が表す小領域群の一部４０３を模式的に重ねて示している。図４（ｂ）では、中心小領域として小領域４０６が選択されており、小領域４０６、及び小領域４０６を囲む周囲の小領域群、から成る小領域群４０７を部品探索領域として特定している。この部品探索領域の縦横サイズは、例えば、小領域の縦横サイズの４倍である。なお、部品探索領域（小領域群４０７）においてパレット４０１からはみ出した部分は削除してもよい。その際は、部品探索領域の面積は通常の場合より小さくなる。
【００５１】
図４（ｃ）は、山積みされた部品群４０２を収容している状態のパレット４０１を上から見た図を示しており、概略高さマップ１１０が表す小領域群の一部４０３を模式的に重ねて示している。図４（ｃ）でも、中心小領域として小領域４０６が選択されているが、パレットからはみ出している部分を逆側に押し込めるべく、部品探索領域（小領域群４０７）をシフトした部品探索領域（小領域群４０８）を設定している。この部品探索領域の縦横サイズは、例えば、小領域の縦横サイズの４倍である。パレットからはみ出した部分を削除するのではなく、図４（ｃ）の例のように部品探索領域自体を移動させることで、常に部品探索領域の面積が一定となる。
【００５２】
このように、ステップＳ１１１では、概略高さマップ１１０を参照して、部品存在範囲１０６を区分したそれぞれの小領域のうち、代表的な距離値が最も小さい小領域を中心小領域として特定し、該中心小領域を含む部品探索領域を設定するのであれば、部品探索領域の設定方法は特定の方法に限らない。
【００５３】
また、図４では部品探索領域が１つの矩形として設定される例を示したが、複数の矩形を部品探索領域として選んでもよいし、矩形ではなく例えば円形の領域を部品探索領域としてもよい。複数の場所を部品探索領域として設定する場合は、例えばそれぞれの小領域を代表的な距離値が小さい順にソートし、距離値が最も小さい順に上位から所定個数の小領域を中心小領域として選択し、それぞれの中心小領域について、該中心小領域を含む部品探索領域を設定するようにしても構わない。また、その際に互いに重なりがない、もしくは重なりが一定割合以下となるように部品探索領域を選ぶ方法もある。
【００５４】
［第２の実施形態］
本実施形態では、図１のフローチャートに従った処理の代わりに、図６のフローチャートに従った処理を実行する点が、第１の実施形態と異なる。以下では、第１の実施形態との差分について重点的に説明し、以下で特に触れない限りは、第１の実施形態と同様であるものとする。また、図６において、図１に示した処理ステップと同じ処理ステップには同じステップ番号を付しており、該処理ステップに係る説明は省略する。
【００５５】
本実施形態が適用されるのに好適な部品山積み状態を図７に示す。図７において、図３に示したものと同じものには同じ参照番号を付しており、これに係る説明は省略する。図７でも図３と同様、パターン光投影装置と撮像装置とを有するＩ／Ｏデバイス２０９を用いて、部品群７０４に対する山積み状態データ１０４を取得する。図７（ａ）は、山積みされた部品群７０４が収容されているパレット７０３を側面から見た図、図７（ｂ）は、山積みされた部品群７０４が収容されているパレット７０３を上面から見た図、である。
【００５６】
図７では、部品群の山の形状（特に高さ）において、カメラからの最近点と最遠点の差が、図３と比べても大きい。具体的には、図７（ｂ）に示す如く、小領域群７０６において、小領域７０７における代表的な距離値と、小領域７０９における代表的な距離値と、は大きく異なる。結果として、その地点におけるその高さでの部品投影サイズ７０８と部品投影サイズ７１０とでは大きく異なってくる。
【００５７】
本実施形態では、それぞれの小領域について求めた代表的な距離値を用いて、それぞれの小領域に対応する部品投影サイズ１０８を第１の実施形態で説明した方法でもって再計算し、それぞれの小領域について求めた代表的な距離値を該小領域について再計算した部品投影サイズ１０８に基づいて修正する。この処理を施すことによって、小領域毎に部品投影サイズが大きく異なる場合でも本実施形態の情報処理方法なら対応できることになる。
【００５８】
具体的には、ステップＳ６１１では、それぞれの小領域について求めた代表的な距離値を用いて、それぞれの小領域に対応する部品投影サイズ１０８を第１の実施形態で説明した方法でもって再計算し、該小領域のサイズを該小領域について再計算した部品投影サイズ１０８若しくはその定数倍のサイズに変更する。そして、サイズ変更後のそれぞれの小領域について、該小領域内の画素値から代表的な画素値を、該小領域に対する代表的な距離値として求める。そして以降では、それぞれの小領域の代表的な距離値として、このステップＳ６１１で該小領域について求めた代表的な距離値を用いる。
【００５９】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６０】
２０１：ＣＰＵ  ２０３：ＲＡＭ  ２０４：２次記憶装置
【図１】
0006512852.tif 000002
【図２】
0006512852.tif 000003
【図３】
0006512852.tif 000004
【図４】
0006512852.tif 000005
【図５】
0006512852.tif 000006
【図６】
0006512852.tif 000007
【図７】
0006512852.tif 000008