(57)【要約】      （修正有）【課題】検査において対象物体が適切な状態でない場合に、適切な状態に修正する方法を出力できる情報処理装置を提供する。【解決手段】情報処理システム１００は、対象物体４を光源２が照射する光により撮像装置１が撮像した画像を用いて対象物体４の状態の検査を行う。情報処理システム１００は、画像に基づいて該対象物体４の一部分の位置を示す位置情報を取得する取得手段を備える情報処理装置１０と、対象物体４の一部分の位置が所定の条件を満たさない場合、位置情報と上記条件とに基づいて、現在の対象物体４の状態と目標とする対象物体４の状態との差異に関する情報を出力する出力装置３とを有する。【選択図】図１
2020123042.tif 000002
【特許請求の範囲】
【請求項１】
対象物体を撮像した画像を用いて該対象物体の状態を検査する情報処理装置であって、
前記画像に基づいて該対象物体の一部分の位置を示す位置情報を取得する取得手段と、
前記対象物体の一部分の位置が所定の条件を満たさない場合、前記位置情報と前記条件とに基づいて、現在の前記対象物体の状態と目標とする前記対象物体の状態との差異に関する情報を出力する出力手段とを有することを特徴とする情報処理装置。
【請求項２】
前記出力手段は、前記対象物体の一部分の位置が所定の条件を満たさない場合、前記位置情報と前記条件とに基づいて、現在の前記対象物体の状態と目標とする前記対象物体の状態との差異を示すベクトルから得られる情報を出力することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記ベクトルから得られる情報は、前記差異の大きさを示す情報であることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記ベクトルから得られる情報は、前記差異の向きを示す矢印であることを特徴とする請求項２または３に記載の情報処理装置。
【請求項５】
前記出力手段は、前記対象物体の一部分の位置が所定の条件を満たさない場合、前記位置情報と前記条件とに基づいて、前記対象物体の状態を回転させる方向を出力することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記出力手段は、前記対象物体の位置と前記対象物体が目標とする状態との差異に基づいて、前記対象物体を動かす方向を表示装置に表示させることを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記出力手段は、前記対象物体の位置と前記対象物体が目標とする状態との差異に基づいて、前記対象物体を動かす方向を、投影装置によって投影させることを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記出力手段は、前記対象物体の位置と前記対象物体が目標とする状態との差異に基づいて、前記対象物体を動かす方向を、音声装置によって再生させることを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
前記画像は、前記撮像装置から前記対象物体までの距離を示す距離情報であって、
前記取得手段は、前記距離情報に基づいて、前記対象物体の表面を示す３次元位置の集合を取得することを特徴とする請求項１乃至８のいずれか１項に記載の情報処理装置。
【請求項１０】
前記対象物体の状態は、該対象物体が有する蓋と所定の平面とが成す傾きを示すことを特徴とする請求項１乃至９のいずれか１項に記載の情報処理装置。
【請求項１１】
前記対象物体の状態は、該対象物体が有する部品の有無を示す情報を含むことを特徴とする請求項１乃至１０のいずれか１項に記載の情報処理装置。
【請求項１２】
前記対象物体の状態を示すモデルに基づいて、前記対象物体の一部分の位置が所定の範囲内に存在することを第１の条件として設定する設定手段と、
前記設定手段によって設定された前記第１の条件と、前記位置情報とに基づいて、前記対象物体が前記第１の条件を満たすか否かを判定する判定手段とを更に有することを特徴とする請求項１乃至１１のいずれか１項に記載の情報処理装置。
【請求項１３】
前記画像に含まれる前記対象物体の画像情報に基づいて、前記画像のうち検査対象とする領域を決定する領域決定手段を更に有し、
前記設定手段は、前記領域決定手段によって決定された領域に対して、前記対象物体が満たすべき位置または姿勢の少なくとも一方を前記条件として設定することを特徴とする請求項１乃至１２のいずれか１項に記載の情報処理装置。
【請求項１４】
前記設定手段は、前記撮像装置と前記対象物体との距離について所定の範囲内を満たすことを第２の条件としてさらに設定し、
前記出力手段は、前記第２の条件と前記位置情報とに基づいて、前記第２の条件を満たさない場合に、前記撮像装置の姿勢を修正する指示を出力することを特徴とする請求項１乃至１３のいずれか１項に記載の情報処理装置。
【請求項１５】
所定の領域に含まれる複数の対象物体の有無を検査する情報処理装置であって、
前記領域において撮像装置と前記対象物体との距離情報を含む距離画像を取得する取得手段と、
前記距離画像に基づいて、前記領域に所定の条件を満たさない前記距離情報が含まれる部分領域が検出された場合、前記部分領域に異常があることを出力する出力手段を有する情報処理装置。
【請求項１６】
前記出力手段は、前記条件が満たされた場合は、前記対象物体が所定の状態を満たしていることを出力することを特徴とする請求項１乃至１５のいずれか１項に記載の情報処理装置。
【請求項１７】
コンピュータを、請求項１乃至１６のいずれか１項に記載の情報処理装置として機能させるためのプログラム。
【請求項１８】
対象物体を撮像した画像を用いて該対象物体の状態を検査する情報処理方法であって、
前記画像に基づいて該対象物体の一部分の位置を示す位置情報を取得する取得工程と、
前記対象物体の一部分の位置が所定の条件を満たさない場合、前記位置情報と前記条件とに基づいて、現在の前記対象物体の状態と目標とする前記対象物体の状態との差異に関する情報を出力する出力工程とを有することを特徴とする情報処理方法。
【請求項１９】
撮像装置と、該撮像装置によって対象物体を撮像した画像を用いて該対象物体の状態を検査する情報処理装置とから成る情報処理システムであって、
前記情報処理装置は、
前記画像に基づいて該対象物体の一部分の位置を示す位置情報を取得する取得手段と、
前記対象物体の一部分の位置が所定の条件を満たさない場合、前記位置情報と前記条件とに基づいて、現在の前記対象物体の状態と目標とする前記対象物体の状態との差異に関する情報を出力する出力手段とを有することを特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像画像から対象物体を検査する技術に関する。
【背景技術】
【０００２】
近年工場等の生産現場において、人が行っていた検査作業を機械によって自動化するため、画像を用いた検査装置が導入されている。例えば、生産ラインにおける製品の状態検査では、製品を多様な計測機器によって計測した結果から製品の状態を判定する。例えば、特許文献１では、ペットボトルの蓋の浮きを検査する際、製品の横から撮像した画像に基づいて蓋の状態を検出する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−４９２８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１では、対象物体の浮きが検知された場合、ユーザに異常が通知されるが、傾いた蓋を適切な姿勢に修正する方法をユーザは直ちに知ることができない。一方で、特許文献１より生産性の高いシステムを構築する場合、検査で不良品であると判定された製品を、向きや位置を正しい状態に修正させる方法を人やロボットに知らせることで、不良品の発生率を低下させることが期待できる。
【０００５】
本発明は、上記の課題に鑑みてなされたものであり、検査において対象物体が適切な状態でない場合に、適切な状態に修正する方法を出力する。
【課題を解決するための手段】
【０００６】
上記の目的を達成する本発明に係る情報処理装置は、対象物体を撮像した画像を用いて該対象物体の状態を検査する情報処理装置であって、前記画像に基づいて該対象物体の一部分の位置を示す位置情報を取得する取得手段と、前記対象物体の一部分の位置が所定の条件を満たさない場合、前記位置情報と前記条件とに基づいて、現在の前記対象物体の状態と目標とする前記対象物体の状態との差異に関する情報を出力する出力手段とを有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、検査において対象物体が適切な状態でない場合に、適切な状態に修正する方法を出力できる。
【図面の簡単な説明】
【０００８】
【図１】情報処理システムの構成例を示す図である。
【図２】情報処理システムの機能構成例を示すブロック図である。
【図３】情報処理システムが実行する処理を説明するフローチャートである。
【図４】対象物体が成す平面の傾きを説明する図である。
【図５】検査対象となる領域を設定する例を説明する図である。
【図６】テンプレートマッチングを利用して領域を設定する例を説明する図である。
【図７】対象物体の検査で観察された状態を説明する図である。
【図８】対象物体の目標状態を説明する図である。
【図９】対象物体の目標状態と検査で観察された状態の差分を説明する図である。
【図１０】ユーザへの提示方法の一例を説明する図である。
【図１１】情報処理システムの構成例を示す図である。
【図１２】情報処理システムの機能構成例を示すブロック図である。
【図１３】情報処理システムが実行する処理を説明するフローチャートである。
【図１４】検査対象となる領域を設定する方法の一例を説明する図である。
【図１５】撮像装置と対象物体との距離の例を説明する図である。
【図１６】ユーザへの提示方法の一例を説明する図である。
【図１７】情報処理システムの構成例を示す図である。
【図１８】情報処理システムの機能構成例を示すブロック図である。
【図１９】情報処理システムが実行する処理を説明するフローチャートである。
【図２０】検査対象となる領域を設定する例を説明する図である。
【図２１】検査の条件を設定する方法の一例を説明する図である。
【図２２】ＮＧ検出の箇所の一例を説明する図である。
【図２３】情報処理装置のハードウェア構成例を示す図である。
【図２４】情報処理システムの構成例を示す図である。
【発明を実施するための形態】
【０００９】
以下、添付の図面を参照して、本発明の好適な実施形態を説明する。
【００１０】
＜第一実施形態＞
本実施形態における検査とは、主に対象物体の一部分が平面であるか確かめる検査を指す。具体的には、工場や物流倉庫等における梱包工程や物流工程で行われる検査を想定している。検査では、対象物体（ここでは製品の梱包箱）の外装（蓋、キャップ等の傾きや有無）もしくは内装（中蓋の傾きや有無）が所定の条件を満たしていることを確認する。
【００１１】
第一の実施形態では、製品の化粧箱などの出荷時に、画像から得られる情報を用いて、対象物体の一部分が平面を成しているか否かの検査を行う。対象物体である外箱の蓋に浮きがあるかどうかの検査で条件を満たさない（蓋が閉まっていない、浮いている）場合に、人またはロボットに対して蓋の姿勢を修正するような指示を提示する情報処理装置について述べる。なお、ここで説明する蓋は簡単の為、上面（製品の天地が正しい場合の上面であって、撮像装置に正対する面）がなめらかな平面になっているものについて述べる。
【００１２】
図１は、本実施形態における情報処理装置１０を備える情報処理システム１００の構成例である。撮像装置１は、デジタルカメラなど、レンズと電子撮像素子を有する計測装置であり、対象物体４の状態を画像情報として取得する。画像情報として二次元のカラー画像情報や、ステレオカメラであれば撮像装置１から対象物体４までの距離を示す距離画像情報が取得できる。撮像装置１から出力される画像情報は情報処理装置１０に入力される。光源２は、例えば照明装置であって、対象物体の模様やエッジを顕在化する照明を照射する。または、光源２が投影装置（例えば、プロジェクタ）である場合は、光源２がパターン光を照射することで撮像装置１が距離画像を取得する。撮像装置１および光源２は、撮像対象に対して配置を固定するほか、ロボットなどの移動する機構部分に搭載しても構わない。また、撮像装置１は複数配置してもよい。
【００１３】
出力装置３は、例えば、対象物体４の一部を修正するための情報を出力するディスプレイ（表示装置）で構成され、ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を用いてユーザへの指示情報を出力する。ここで、指示情報とは、現在の対象物体の状態と対象物体が目標とする状態との差異を示す情報である。具体的には、目標の状態からどれほど離れているかを示す位置情報、目標の状態に近似するためどれほど移動させるかを示す修正方法が挙げられる。出力装置については、表示装置でなくても、スピーカーなどの音や音声を再生する再生装置でもよい。音声装置による出力では、合成された発話を指示情報とする。また、対象物体の表面に指示情報を投影するプロジェクタといった投影装置を出力装置として用いてよい。または、仮想現実を使った出力方法でもよい。具体的な出力装置としてはＨＭＤ（Ｈｅａｄ  Ｍｏｕｎｔｅｄ  Ｄｉｓｐｌａｙ）やＡＲ（Ａｕｇｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ）グラス等のウェアラブルデバイスが挙げられる。これらの出力装置を用いて、ＭＲ（Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ）、ＡＲ、ＶＲ（Ｖｉｒｔｕａｌ  Ｒｅａｌｉｔｙ）で対象物体４に対する指示情報を提示する。これらの出力装置のいずれか、もしくは複数を組み合わせることで、対象物体が不良品である場合に修正する方法を速やかにユーザに提示することを可能とし、不良品の修正にかかる時間を短縮できる。
【００１４】
対象物体４は、ここでは工場等の生産ラインで扱われる梱包物、製品や部品といった物体を指す。対象物体４は、製造装置からベルトコンベア等で次々に排出され、１つあるいは複数同時に撮像装置１の撮影範囲に入っている。本実施形態では、対象物体が撮像装置の撮影範囲に移動する場合を示した。製品陳列などの作業において、棚に固定して配置されている複数の対象物体に対して、向きや位置が異なっているものを修正する場合には、本システムを可動にすることで対応することができる。なお、ここでは、対象物体４を情報から撮像することによって、対象物体の一部分である蓋の状態が目標とする状態であるか否かを検査する。具体的には、蓋が閉まった状態で、（水平面と平行な）平面を成している状態を目標の状態であるとする。
【００１５】
図２は、情報処理システム１００および情報処理装置１０の機能ブロック図である。情報処理装置１０は、設定部１０１と、画像情報取得部１０２と、領域決定部１０３と、位置情報取得部１０４と、判定部１０５と、修正方法取得部１０６と、出力方法決定部１０７と、出力制御部１０８と、を備える。
【００１６】
設定部１０１は、情報処理システム１００が行う検査における判定条件を設定する。なお、ここで判定条件は、対象物体の一部分の位置が所定の範囲内に含まれることを条件とする。または、判定条件は、対象物体の一部分の姿勢（Ｘ，Ｙ，Ｚの３次元位置と、それに対応する回転方向との６次元の情報）が所定の範囲内に含まれることを条件とする。判定条件は、検査内容や対象物体によって異なる。判定条件の設定方法は後述する。設定部１０１は、設定した判定条件を判定部１０５に送る。
【００１７】
画像情報取得部１０２は、撮像装置１から出力される画像情報（距離画像）を取得する。ここでは、画像情報は撮像装置から対象物体までの距離を示す距離情報である。距離画像の各画素には距離情報が対応している。画像取得部１０２は、取得した画像情報を領域決定部１０３に出力する。画像取得部１０２は、例えばキャプチャボードやメモリ（ＲＡＭ）で構成される。
【００１８】
領域決定部１０３は、画像取得部１０２より入力された画像情報（距離画像）のうち、検査対象とする領域を決定する。領域の決定方法は後述する。領域決定部１０３は、決定した領域情報を位置情報取得部１０４に送る。
【００１９】
位置情報取得部１０４は、画像情報（距離画像）に基づいて、領域決定部１０３から入力された領域における対象物体の位置情報を取得する。ここで、位置情報とは、対象物体の一部分の少なくとも３次元位置を表す。例えば、対象物体の上面の３次元位置の集合である。具体的には、対象物体の上面を示す平面と水平面との成す角（傾き）である。また、位置情報は３次元座標のそれぞれの座標軸についての姿勢についての情報を含む。位置情報取得部１０４は、位置情報を判定部１０５に送る。
【００２０】
判定部１０５は、設定部１０１から入力された判定条件と、位置情報取得部１０４から入力された位置情報と、に基づき、対象物体の一部分が判定条件を満たしているかどうかを判定する。判定条件を満たしている場合には”ＯＫ”、満たしていない場合には”ＮＧ”の判定を行う（以後、この判定結果を検査ＯＫ／ＮＧの結果と呼ぶ。）判定部１０５は、検査ＯＫ／ＮＧの結果を修正方法取得部１０６に送る。なお、ＯＫである場合は、対象物体が目標とする状態であることを示す情報を出力装置に出力する。
【００２１】
修正方法取得部１０６は、判定部１０５から入力された判定結果に基づき、判定がＮＧの場合、ＯＫの条件を満たすために対象物体を動かす向きまたは移動量を示す修正方法を取得する。修正方法の取得方法については後述する。修正方法取得部１０６は、取得した修正方法を出力方法決定部１０７に送る。
【００２２】
出力方法決定部１０７は、修正方法取得部１０６から入力された修正方法に基づき、ユーザへの修正方法の出力方法について決定する。出力方法決定部１０７は、決定した修正出力方法を出力制御部１０８に送る。
【００２３】
出力制御部１０８は、現在の対象物体の状態と目標とする対象物体の状態との差異に関する情報をユーザに提示する。現在の対象物体の状態と目標とする対象物体の状態との差異に関する情報は、例えば、対象物体の有無に関する情報も含む。また、対象物体が目標とする状態（位置や姿勢）に対してどれくらい差があるかを示すベクトル情報でもよい。具体的には、対象物体の位置が所定の条件を満たさない場合、位置情報と所定の条件とに基づいて、対象物体の状態を変化させる方向をユーザに提示する。出力制御部１０８は、出力方法決定部１０７から取得した出力方法に基づいて、ユーザへ指示情報の出力を行う。出力制御部１０８は、出力方法決定部１０７から出力方法を取得したら、出力装置３に指示トリガーを送る。
【００２４】
図３は、情報処理システムが実行する処理を説明するフローチャートである。図３に示される処理は、図２３に示す情報処理装置１０のＣＰＵ１１が、ＲＯＭ１２もしくは外部メモリ１４に格納されたプログラムを読み出して実行することにより実現される。ただし、図３の処理の一部または全部が、専用のハードウェアにより実現されてもよい。図３の処理は、例えばオペレータが情報処理システム１００を起動したときに開始される、ただし、開始のタイミングは、情報処理システム１００の起動時に限定されるものではない。以下の説明では、各工程（ステップ）について先頭にＳを付けて表記することで、工程（ステップ）の表記を省略する。また、情報処理システム１００は必ずしもこのフローチャートで説明するすべてのステップを行わなくてもよい。
【００２５】
まずＳ１において、ＣＰＵ１１は、情報処理システム１００の初期化処理を行う。すなわち、ＣＰＵ１１は、ＲＯＭ１２もしくは外部メモリ１４に格納されたプログラムをロードし、ＲＡＭ１３上に展開して実行可能な状態とする。また、情報処理装置１０に接続された各機器のパラメータの読み込みや初期位置への復帰を行い、使用可能な状態にする。
【００２６】
Ｓ２では、設定部１０１が、対象物体の状態を示すモデルに基づいて、検査ＯＫ／ＮＧの判定条件を設定する。判定条件とは、例えば、蓋の浮き検査の場合は対象物体４の上面の傾きについての条件（傾きを許容する範囲）である。また、モデルとは、対象物体の目標とする状態を示す。具体的には、蓋の面の状態を平面の方程式であらわすモデルである。このモデルは、情報処理装置の図示しない記憶部に保持されている。もしくは、情報処理装置が外部装置から図示しない通信部を介してモデルを取得する。対象物体４の蓋の浮きをチェックしたい場合、対象物体４の蓋が所定の軸に対して回転した状態になっているならば、蓋の部分領域の傾きを検査することで浮きのチェックができる。撮像装置１が対象物体４の置かれている面に対して正対設置しているとすると、対象物体４の蓋の面が浮いていない場合、撮像装置１は対象物体４の蓋の面に対しても正対する。そのため、対象物体４の蓋が撮像装置１に対して正対していない場合は、蓋が傾いている、すなわち蓋に浮きがあると考えられる。ここでは検査で正しいと判別される蓋の面の状態を平面の方程式であらわされるモデルに置き換え、その面の傾きを以下のように定義する。式（１）の平面の方程式より、対象の平面の単位法線ベクトルは式（２）のように求まる。
Ａｘ＋Ｂｙ＋Ｃｚ＋Ｄ＝０…（１）
【００２７】
【数１】
2020123042.tif 000003
【００２８】
ここで、ｎｘ、ｎｙ、ｎｚは、それぞれ図４に示すように、Ｘ、Ｙ、Ｚ方向の基本ベクトルである。式（２）より、単位法線ベクトルと基本ベクトルｎｘ、ｎｙ、ｎｚそれぞれとのなす角θを傾きとして以下の式（３）〜（５）のように定義する。
θｘ＝１８０ｃｏｓ−１ｎｘ／π…（３）
θｙ＝１８０ｃｏｓ−１ｎｙ／π…（４）
θｚ＝１８０ｃｏｓ−１ｎｚ／π…（５）
【００２９】
そのため、対象物体４の蓋がカメラの光軸に対して正対している（閉まっている、浮いていない）場合には、観察される平面はカメラの光軸に対してＸ、Ｙ、Ｚ方向の傾きはそれぞれ以下のようになる。
θｘ＝９０°…（６）
θｙ＝９０°…（７）
θｚ＝０°…（８）
【００３０】
もし検査において、各方向ともに±３°以内であれば検査ＯＫとするのであれば、以下のように判定ＯＫとなる範囲を設定する。
８７．００°≦θｘ≦９３．００°…（９）
８７．００°≦θｙ≦９３．００°…（１０）
−３．００°≦θｚ≦３．００°…（１１）
【００３１】
Ｓ３では、撮像装置２が、対象物体４の撮像を行う。画像に対象物体が収まるように撮像する。一定の時間間隔でシャッターを切るようにしてもよい。映像として撮像してもよい。
【００３２】
Ｓ４では、画像取得部１０２が、撮像装置１が出力する対象物体４の画像情報を取得し、領域決定部１０３に送る。
【００３３】
Ｓ５では、領域決定部１０３は、画像取得部１０２より入力された画像情報（距離画像）のうち、検査領域を決定する。領域を決定する方法は、例えば事前にユーザが設定しておいてもいいし、取得した画像情報に基づいて設定してもよい。
【００３４】
事前にユーザが設定しておく方法としては、オフライン時に、オンライン時と同様の位置関係で対象物体４を撮像しておいた画像を利用する。例えば図５のように、対象物体４の二次元画像情報に対して、ユーザがマウスでドラッグすることで領域を決定する。または、図５のように設定した領域の左上と右下の点の座標値を入力することで、領域を決定してもよい。
【００３５】
取得した画像情報に基づいて設定する方法としては、例えば二次元画像情報を用いて、テンプレートマッチングを行う。図６のようにカメラのマークをテンプレートとして用意しておき、ランタイムでカメラのマークをテンプレートマッチングしたら、その位置を基準とした所定の領域を検査領域として設定する。所定の領域は事前に設定しておくことで、対象物体４の位置が変化しても、対象物体４の同じ領域を検査領域として設定することができる。
【００３６】
なお、領域を設定する際は、カラー画像に対してでもよいし、距離画像に対してでもよい。カラー画像と距離画像は位置合わせができているものとするので、一方の画像で領域を設定しても、もう一方の画像でも同じ位置で領域が設定される。
【００３７】
Ｓ６では、位置情報取得部１０４が、対象物体の対象面の少なくとも位置を示す位置情報を取得する。位置情報は、距離を計測可能な撮像装置である場合は、画像座標系における対象物体の表面の３次元位置を示す情報である。対象物体の天地が正しい場合、撮像装置（が有するセンサ）から対象物体の上面までの距離を計測する。例えば設定Ｓ５で設定した領域に対して、平面を求め、求めた平面の傾きを取得する。具体的には、まず、Ｓ４で取得した距離画像情報を、カメラパラメータを使ってカメラ座標系における三次元点群に変換する。通常、観測される三次元点群には観測ノイズが含まれることから、ＲＡＮＳＡＣ（Ｒａｎｄｏｍ  Ｓａｍｐｌｅ  Ｃｏｎｓｅｎｓｕｓ）などのロバスト推定によって領域に含まれるノイズではない点の一部を用いて平面フィッティングを行う。ノイズ除去には、ロバスト推定のほかにも収縮膨張処理を行ったり、バイラテラルフィルタなどのフィルタを利用したりしてもよい。ロバスト推定で用いるＲＡＮＳＡＣの繰り返し回数や、外れ値とみなす範囲の閾値のパラメータは、ユーザが任意に設定できるようにすることで、解像度が大きく点群が多い場合の処理時間の短縮が行える。
【００３８】
Ｓ７では、判定部１０５が、設定部１０１から入力された判定条件と、位置情報取得部１０４から入力された位置情報と、に基づき、対象物体が判定条件を満たしているかどうかを判定する。Ｓ２で設定した判定条件に対して、Ｓ６で取得した位置姿勢の結果がＯＫに当てはまるか否かで判定を行う。具体的には、Ｓ６で取得したθｘ、θｙ、θｚそれぞれの値が、Ｓ２で設定した範囲に収まっているかどうかをもって判定する。収まっていない場合はＮＧとしてＳ８へ、収まっている場合はＯＫとしてＳ１１へ遷移する。なお、判定条件が満たされた場合は、出力制御部１０８が、対象物体の現在の状態が目標の状態を満たしていることを示す情報を出力するように出力装置を制御する。
【００３９】
Ｓ８では、修正方法取得部１０６が、判定部１０５から入力された判定結果に基づき、対象物体の状態（位置または姿勢）が所定の条件を満たさない場合、所定の条件を満たすように対象物体を動かす向きまたは移動量を示す修正方法を取得する。判定部１０５によって条件を満たさないと判定された現在の対象物体の状態（位置または姿勢）を、Ｓ２で設定された条件を満たす所定の状態（位置または姿勢）に修正するために行う。例えば、図７（ａ）のように、現在の対象物体の状態として、蓋が浮いている場合を考える。このとき、対象物体の浮きを確認する方法として、距離画像を画面に提示することで傾きの程度を目視できて有用である。距離画像はそれぞれ図７（ｂ）（ｃ）のようになる。距離画像の提示方法としては画素ごとの距離値に応じて手前（カメラから近い）にある方が黒く（パターンが濃い）、奥（カメラから遠い）にある方が白く（パターンが薄い）表示されているものとする。ただし、遠近の白黒を反転させてもよいし、距離値をカラーマップに変換させて表示させてもよい。Ｓ２で設定した判定条件より、検査ＯＫとなる望ましい目標状態は図８のような状態である。このとき、目標状態は判定条件で設定した値の間の値とする。例えば、Ｓ２で設定した範囲が式（９）〜（１１）の場合は、その中央値である式（６）〜（８）を修正後の位置・姿勢である目標状態の値とする。
【００４０】
目標状態を設定したら、現在の位置姿勢との差分を求め、現在の状態を目標状態へ変化させるためにどのように位置姿勢を変更すればよいかを求める。例えば図９のような状態の場合、設定した範囲の面を目標状態に変化させるには、図示する回転中心であるＸ軸方向に対して＋１５°回転させる必要がある。
【００４１】
Ｓ９では、出力方法決定部１０７は、修正方法取得部１０６から入力された修正方法に基づき、ユーザへの修正方法の出力方法について決定する。例えば、ディスプレイ（表示装置）に表示することを決定する。または、スピーカー（音声装置）、プロジェクタ（投影装置）、ＨＭＤ（頭部装着型表示装置）やＡＲグラスなどにより出力することを決定してもよい。
【００４２】
どの方法により出力するかは、事前に設定しておいてもよい。例えば、事前にユーザの位置と出力方法の対応関係を設定しておく。フローチャートを実行する際に、ユーザの位置に基づいて情報処理装置が出力方法を決定してもよい。例えば、ユーザの位置や、工場の騒音レベルといった状況に応じて出力方法を設定しておく。具体的には、ユーザとディスプレイとの距離が所定の範囲内（例えば３ｍ以内）である場合は、ディスプレイに出力し、ユーザとディスプレイとの距離が所定の範囲外（３ｍ以上）である場合は音声で出力する。例えば、ディスプレイに取り付けられたカメラなどで、ユーザがディスプレイの前にいないことが分かる場合、ディスプレイには表示せず、スピーカーなど他の手段により指示情報（修正方法）の出力を行う。または、ユーザが対象物体を見ていることが分かる場合、プロジェクタを使うことによって、対象物体に対してプロジェクションすることで指示情報の出力を行う。または、周囲の音がうるさい（音量の計測結果が所定の閾値を超える）場合、音声での指示を行わず、代わりにディスプレイに表示することで提示してもよい。また、接続されている出力装置が複数ある場合は、組み合わせて指示情報を提示してもよい。例えば、表示装置と音声装置が出力装置として用いられている場合は、２つの装置で指示情報を出力する。
【００４３】
Ｓ１０では、出力制御部１０８は、現在の対象物体の状態と目標とする対象物体の状態との差異に関する情報をユーザに提示する。この情報は、例えば、現在の対象物体の状態と目標とする対象物体の状態に変化させるためのベクトル情報から得られる向きや量を示す情報である。例えば、Ｓ９においてディスプレイで指示すると決定した場合、Ｓ８での取得結果に基づいて、対象物体を動かす方向または量を表示装置に表示させる。例えば、図１０のように、Ｘ方向の回転軸を示し、その回転軸に対して＋１５°回転させるように、矢印で方向を、数値で角度を示すことで指示する。指示する際は、例えば図１０（ａ）のように二次元画像に対して重畳表示してもよいし、あるいは図１０（ｂ）のように距離画像に重畳表示してもよい。また、上方向から見た図だけでなく、三次元点群に対して二次元カラー画像情報を位置合わせして、色がついた三次元点群情報を利用して任意の視点から見た画像を生成して、修正方法を重畳表示してもよい。または、Ｓ９でその他の方法で出力することを決定した場合、決定した方法に従ってユーザへ修正を指示する。スピーカーを使って音声で指示する場合は、図１０に示した内容を、音声によってユーザへ伝える。例えば、箱上面をＸ軸方向に対して＋１５°回転させる、といったように指示する。または、プロジェクタを使ってプロジェクションで指示する場合は、図１０に示した内容を対象物体に対してプロジェクションすることで、ディスプレイを使った場合と同様の内容を伝える。または、ＨＭＤやＡＲグラスを使って指示する場合は、図１０に示した内容をＨＭＤやＡＲグラスを使って仮想空間あるいは現実空間の対象物体に対して重畳表示してディスプレイを使った場合と同様の内容を伝える。なお、指示情報は、現在の対象物体の状態と目標とする対象物体の状態との差の絶対値またはベクトル情報であってもよい。この場合、対象物体の位置情報を指示情報として提示すればよい。
【００４４】
Ｓ１１では、ＣＰＵ１１は、次の対象物体４があるかどうかの判定をする。そして、ＣＰＵ１１は、対象物体４が存在しない場合には処理を終了すると判断して図３に示す処理を終了する。対象物体４が存在する場合には、処理を継続すると判断してＳ３に戻る。判定方法は、例えば、Ｓ４で取得した対象物体４の画像情報に基づき対象物体４の有無を判定してもよいし、または、事前に処理回数を設定しておき、その回数に達したかで判定してもよい。対象物体４の供給場所にセンサを配置しておき、そのセンサ情報から判定してもよい。センサ情報とは、例えば供給場所に重量センサを配置しておき、供給場所の重さを計測することで秤量によって対象物体４の有無を計測してもよい。あるいは、これら以外の方法で判定してもよい。
【００４５】
設定部１０１は、対象物体の形状を示すモデルを用いて絶対的な条件を設定するほか、複数の対象物体の画像を用いて相対的な条件を設定してもよい。絶対的な条件が、傾きや回転量といった具体的な数値の範囲（閾値）である。それに対して、相対的な条件は、例えば、検査を行った対象物体の位置情報の平均値を用いる。ある対象物体の位置情報と平均値との差が所定の値より大きくなる対象物体を異常な状態として検出する。
【００４６】
なお、上述した各処理部のうち、修正方法取得部１０６については、その代わりとして、機械学習された学習済みモデルを代わりに用いて修正方法を取得してもよい。その場合には、例えば、その処理部への入力データと出力データとの組合せを学習データとして複数個準備し、それらから機械学習によって知識を獲得し、獲得した知識に基づいて入力データに対する出力データを結果として出力する学習済みモデルを生成する。学習済みモデルは、例えばニューラルネットワークモデルで構成可能である。そして、その学習済みモデルは、前記処理部と同等の処理をするためのプログラムとして、ＣＰＵあるいはＧＰＵなどと協働で動作することにより、前記処理部の処理を行う。なお、上記学習済みモデルは、必要に応じて一定の処理後に更新しても良い。
【００４７】
以上のように、本実施形態では、検査ＯＫ／ＮＧを判定するための判定条件を設定した後、撮像装置により対象物体の画像情報を得る。次いで、画像情報に基づき検査領域を決定し、対象面の位置姿勢を取得し、判定条件に基づきＯＫ／ＮＧ判定をする。そして、ＮＧの場合は、どのように修正すればＯＫ判定になるかを取得し、その修正の出力方法を決定し、ユーザへ修正方法の指示の出力を行う。
【００４８】
このようにすることで、該当工程の検査に慣れていないユーザでも、検査ＮＧのときの修正方法が分かるため、容易に不良品を適切な状態に修正することができる。
【００４９】
＜第二実施形態＞
次に、本発明の第二実施形態について説明する。第二実施形態では、検査を行う前の事前設定として、撮像装置を設置する位置と姿勢を求める方法について述べる。そのために距離の統計情報を取得するよう構成したものである。対象面の位置姿勢として距離統計情報と平面の傾きを取得し、判定条件に基づきＯＫ／ＮＧ判定をすることで、撮像装置１に対して対象面が正対設置しているかを判定する。判定ＮＧの場合は、どのように撮像装置の姿勢を修正する方法を取得し、その修正方法の出力方法を決定し、修正方法を出力する。こうすることで、撮像装置１を対象面に対して容易に正対設置できるため、情報処理システムの事前設定に割く時間を短縮することができる。
【００５０】
図１１は、本実施携帯における情報処理装置１０’を備える情報処理システム１００’の構成例を示す図である。図１１は機器構成の一例であり、本発明の適用範囲を限定するものではない。
【００５１】
対象物体４’は、例えばベルトコンベア上を流れるトレイのような、情報処理システム１００’によって検査されることが想定される物体である。検査とは、例えばトレイ上面の位置姿勢を計測することで、撮像装置１にトレイが正対設置しているかどうかを判定することである。本実施形態では、対象物体４‘として、トレイを流しているベルトコンベアも含む。その場合はベルトコンベア上面を対象面として検査する。または、トレイに載せられている部品でもよく、その場合は部品上面を対称面として検査する。
【００５２】
図１２は、本実施形態における情報処理システム１００’および情報処理装置１０’の機能ブロック図である。図１２に示す情報処理システム１００’および情報処理装置１０’は、図２に示す情報処理システム１００および情報処理装置１０に対して、設定部１０１と、位置情報取得部１０４と、判定部１０５と、修正方法取得部１０６と、の処理が異なる。
【００５３】
設定部１０１’は、距離統計情報に基づいて、情報処理システム１００の行う検査ＯＫ／ＮＧの判定条件を設定する。設定部１０１’は、設定した判定条件を判定部１０５’に送る。第一実施形態において傾きを判定条件として設定したのに対して、本実施形態においては距離統計情報として、距離の最大値、距離の最小値、距離の最大最小の差、距離の平均値、距離の偏差、距離の中央値のいずれか一つ以上を判定条件として設定する。
【００５４】
位置情報取得部１０４’は、領域決定部１０３から入力された領域における位置姿勢を取得する。位置情報取得部１０４’は、位置情報を判定部１０５’に送る。第一実施形態において面の傾きを取得したのに対して、本実施形態においては面の距離統計情報も取得する。本実施形態では、距離統計情報として距離の中央値と偏差を利用することで、対象面が目標の距離にあり、かつ、面の高さのバラツキが少ないことをもって、対象面が傾いていない、すなわちカメラに対して正対しているかどうかを判定する。
【００５５】
判定部１０５’は、設定部１０１’から入力された判定条件と、位置情報取得部１０４’から入力された位置情報と、に基づき、検査ＯＫ／ＮＧの判定を行う。判定部１０５’は、検査ＯＫ／ＮＧの結果を修正方法取得部１０６’に送る。第一実施形態に対して面の傾きで判定していたのに対して、本実施形態においては、面の傾きと距離統計情報に基づいて判定を行う。
【００５６】
修正方法取得部１０６’は、判定部１０５’から入力された判定結果に基づき、判定がＮＧの場合、ＯＫに修正するための方法を取得する。修正方法取得部１０６’は、取得した修正方法を出力方法決定部１０７に送る。第一実施形態において、面の傾きを修正するよう出力方法を決定したのに対して、本実施形態では、対象物体の面の傾きと撮像装置までの距離を修正するよう出力方法を決定する。
【００５７】
本実施形態における情報処理システム１００’および情報処理装置１０’が実行する検査装置制御手順を示すフローチャートを図１３として示す。第一実施形態に示した図３と処理内容が異なる部分があるため、それぞれについて説明する。
【００５８】
Ｓ２’では、設定部１０１’が、距離統計情報に基づいて、検査ＯＫ／ＮＧの判定条件を設定する。判定条件とは、例えば距離の統計情報と面の傾きである。対象物体４’に対して撮像装置１が正対設置しているかチェックしたい場合、対象物体４’の対象面に対して、撮像装置１が所定の範囲内に含まれる距離と傾きであることを検査する。距離の統計情報として、例えば検査領域の距離の最大値、距離の最小値、距離の最大最小の差、距離の平均値、距離の偏差、距離の中央値を利用する。例えば、撮像装置１から対象面までの距離統計情報として、距離中央値ｄｍｅｄが２ｍｍ以内、距離の偏差ｄｄｅｖが３ｍｍ以内で検査する場合、以下のように判定ＯＫとなる範囲を設定する。
３９８ｍｍ≦ｄｍｅｄ≦４０２ｍｍ…（１２）
０ｍｍ≦ｄｄｅｖ≦３ｍｍ…（１３）
【００５９】
また、面の傾きを各方向ともに±３°以内であれば検査ＯＫにするのであれば、第一実施形態のＳ２と同様に式（９）〜（１１）を設定する。
【００６０】
Ｓ１２では、出力制御部１０８が、撮像装置１の位置姿勢を調整して、撮像装置１を固定する方法をユーザに提示する。最初の固定は、ユーザが対象面と撮像装置１を目視確認しながら、所定の位置姿勢に対して固定することで行う。その後、対象面の位置姿勢を取得して、距離統計情報と面の傾きに基づいて検査を行い、修正が必要な場合は、修正の指示に従い、撮像装置１の位置姿勢を適宜修正するように指示情報の出力を行う。
【００６１】
Ｓ１３では、位置情報取得部１０４’が、対象物体の対象面の位置情報として、距離統計情報の取得を行う。例えば、図１４の破線部分ようにトレイ上面４隅に検査領域を設定した場合、この領域内における距離統計情報を求める。
【００６２】
Ｓ１４では、判定部１０５’が、撮像装置と対象面との位置関係（距離）が所定の範囲内にあるかどうかの所定の条件（第２の条件）についてＯＫ／ＮＧ判定を行う。Ｓ２’で設定した判定条件に対して、Ｓ１２で取得した結果がＯＫに当てはまるか否かで判定を行う。具体的には、Ｓ１３で取得した距離中央値ｄｍｅｄ、距離の偏差ｄｄｅｖが、Ｓ２’で設定した式（１２）、（１３）の範囲に収まっているかどうかをもって判定する。収まっていない場合はＮＧとしてＳ１５へ、収まっている場合はＯＫとしてＳ６’へ遷移する。
【００６３】
Ｓ１５では、修正方法取得部１０６’が、対象物体と撮像装置との位置関係（距離）が所定の条件（第２の条件）を満たすように、撮像装置の状態を修正する方法の取得が行われる。具体的には、取得した距離統計情報を、Ｓ２で設定した検査ＯＫとする範囲に収めるために、撮像装置の位置または姿勢をどのように変更すればいいかを取得する。例えば、図１５に示すように、撮像装置１から対象面までの距離が４０５ｍｍの場合、判定条件として設定した目標値４００ｍｍに対して、５ｍｍ離れている。そのため、修正方法としては、撮像装置１を対象面に５ｍｍ近づける必要がある。
【００６４】
Ｓ１６では、出力方法決定部１０７が、修正方法をユーザへ指示する方法を決定する。例えば、ディスプレイに表示することを決定する。または、スピーカー、プロジェクタ、ＨＭＤやＡＲグラスなどにより出力することを決定してもよい。例えば、撮像装置１を対象面に正対設置させる場合、ユーザは撮像装置１と対象物体４’を見ていて、ディスプレイは見ていないことが想定される。そのため、スピーカーを使って音声でＳ１５の取得結果として、撮像装置１を５ｍｍ対象面に対して近づける旨を出力したり、その旨を対象面にプロジェクションしたりすることでユーザへ修正方法を提示するようにする。
【００６５】
Ｓ１７では、前記提示部は、第２の条件と位置情報とに基づいて、第２の条件を満たさない場合に、撮像装置の位置または姿勢を修正するようにユーザに対して指示情報を提示する。例えば、図１６（ａ）のようにスピーカーを使って「５ｍｍ近づけてください」と発話させてもよい。図１６（ｂ）のように「５ｍｍ近づけてください」と指示内容を対象面にプロジェクションしてもよい。
【００６６】
Ｓ６’〜Ｓ１０’では、第一実施形態Ｓ６〜Ｓ１０と同様に、面の傾きを取得し、傾きの判定を行い、ＮＧの場合はその修正方法を取得し、修正を指示する方法を決定し、修正情報を出力する。ただし、図１３に示すように、距離統計情報と面の傾きについて順番に修正指示情報を出力してもよい。面の傾きから出力してもよい。両方同時に出力してもよい。両方同時に出力する場合は、Ｓ１５〜１７の説明で示したように距離情報だけでなく、傾き情報も合わせて指示情報の出力を行う。
【００６７】
以上のように、本実施形態では、撮像装置１を対象面に正対設置させるための判定条件を設定した後、撮像装置により対象面の画像情報を得る。次いで、画像情報から得られた画像情報に基づき推定領域を決定し、対象面の位置姿勢として距離統計情報と面の傾きを取得し、判定条件に基づきＯＫ／ＮＧ判定をする。そして、ＮＧの場合は、どのように修正すればＯＫ判定になるかを取得し、その修正の出力方法を決定し、ユーザへ修正方法を出力する。
【００６８】
こうすることで、撮像装置１を対象面に対して容易に正対設置させることができるため、装置を立ち上げる準備時間を短縮できる。
【００６９】
＜第三実施形態＞
次に、本発明の第三実施形態について説明する。第三実施形態では、上述した第一実施形態に対して、さらに、位置情報取得部１０４において、領域情報を取得するよう構成したものである。領域情報とは、設定した検査領域において、設定した距離の範囲内における面積と、中心位置と、のいずれか一つ以上のことである。なお、面積、中心位置は、検査領域の一部に対して求めてもよい。一部に対して求める場合、ユーザが設定した任意の領域に対して求めてもよいし、ある条件を満たす領域に対して求めてもよい。条件とは、例えば、画像を２値化処理し、処理後の領域を設定し、処理後の領域ごとに求めてもよいし、処理後の領域全体に対して求めてもよい。
【００７０】
具体的には、上述した第一実施形態と同様に、まず、検査ＯＫ／ＮＧを判定するための判定条件を設定した後、撮像装置により対象物体の画像情報を得る。次いで、画像情報から得られた画像情報に基づき推定領域を決定し、対象面の位置姿勢として領域情報を取得し、判定条件に基づきＯＫ／ＮＧ判定をすることで、対象物体が存在するかどうかの有無を検査する。判定ＮＧの場合は、どのような修正をすればＯＫ判定になるかを取得し、その修正の出力方法を決定し、ユーザへ修正の指示情報の出力を行う。
【００７１】
こうすることで、一度の撮影で検査領域内の物体の有無を検査し修正方法を知れるため、例えば物流現場におけるペットボトルの出荷前のキャップ有無検査工程を効率的に行える。
【００７２】
図１７は、本実施形態における情報処理装置１０’’を備える情報処理システム１００’’の構成例を示す図である。図１７は機器構成の一例であり、本発明の適用範囲を限定するものではない。
【００７３】
対象物体４’’は、出荷前工程ダンボールに詰められたペットボトルの箱のような、情報処理システム１００’’によって検査されることが想定される物体である。本実施懈怠における検査とは、例えばペットボトルのキャップの有無検査である。または、ペットボトル本体の有無、ペットボトルの位置、キャップの有無に加えてキャップの種類を検査してもよい。
【００７４】
図１８は、本実施形態における情報処理システム１００’’および情報処理装置１０’’の機能ブロック図である。図１８に示す情報処理システム１００’’および情報処理装置１０’’は、図２に示す情報処理システム１００に対して、設定部１０１と、領域決定部１０３と、位置情報取得部１０４と、判定部１０５と、修正方法取得部１０６と、の処理が異なる。
【００７５】
設定部１０１’’は、領域情報に基づいて、情報処理システム１００の行う検査ＯＫ／ＮＧの判定条件を設定する。設定部１０１’’は、設定した判定条件を判定部１０５’’に送る。第一実施形態において傾きを判定条件として設定したのに対して、本実施形態においては領域情報として、設定した領域における面積、中心座標Ｘ、Ｙを設定する。
【００７６】
領域決定手段１０３’’は、画像取得部１０２より入力された画像情報において、検査対象とする領域を決定する。領域は、第一、第二実施形態のように画像のＸＹ平面での設定に加え、距離の範囲を設定してもよい。領域決定部１０３’’は、決定した領域情報を位置情報取得部１０４’’に送る。
【００７７】
位置情報取得部１０４’’は、領域決定部１０３’’から入力された領域における位置姿勢を取得する。位置情報取得部１０４’’は、位置情報を判定部１０５’’に送る。第一実施形態において面の傾きを取得したのに対して、本実施形態においては領域情報として、領域の面積、中心座標Ｘ、Ｙを取得する。なお、面積と中心座標は、領域全体でも、領域の一部でも、複数の領域に対して求めてもよい。前処理として収縮、膨張処理などのノイズを低減させる処理を行ってから取得してもよい。
【００７８】
判定部１０５’’は、設定部１０１’’から入力された判定条件と、位置情報取得部１０４’’から入力された位置情報と、に基づき、検査ＯＫ／ＮＧの判定を行う。判定部１０５’’は、検査ＯＫ／ＮＧの結果を修正方法取得部１０６’’に送る。第一実施形態に対して面の傾きで判定していたのに対して、本実施形態においては、領域情報に基づいて判定を行う。
【００７９】
修正方法取得部１０６’’は、判定部１０５’’から入力された判定結果に基づき、判定がＮＧの場合、ＯＫに修正するための方法を取得する。修正方法取得部１０６’’は、取得した修正方法を出力方法決定部１０７に送る。第一実施形態において、面の傾きを修正するよう出力方法を決定したのに対して、本実施形態では、領域情報を修正するよう出力方法を決定する。例えば、ペットボトルのキャップの有無検査を行う場合、箱内の一部のペットボトルのキャップが無い場合、該当する箇所のペットボトルを入れ替えるよう指示を提示する。
【００８０】
本実施形態における情報処理システム１００’’および情報処理装置１０’’が実行する検査手順を示すフローチャートを図１９として示す。第一の実施形態に示した図３と処理内容が異なる部分があるため、それぞれについて説明する。
【００８１】
Ｓ２’’では、検査ＯＫ／ＮＧの判定条件を設定する。判定条件とは、例えば領域の面積、中心座標Ｘ、Ｙである。対象物体４’’であるペットボトルに対して、キャップの有無をチェックしたい場合、検査領域内の面積を利用する。具体的には、図２０の破線四角形の枠のように、画像に対して検査領域を設定する場合、枠内の斜線部分がキャップの領域となる。そのため、この斜線部分の面積を判定条件として設定する。例えば、画像においてキャップ一個の面積がｓであるとすると、９つのキャップがあるならば９ｓとなる。検査において、面積のバラツキ±５％までをＯＫとすると、面積Ｓの範囲は、以下のように判定ＯＫとなる範囲を設定する。
０．９５×９ｓ≦Ｓ≦１．０５×９ｓ…（１４）
【００８２】
あるいは、画像全体でなく、一部の領域ごとに設定してもよい。その場合の面積をＳｂとすると、ＯＫとする範囲は以下のように設定する。
０．９５×ｓ≦Ｓｂ≦１．０５×ｓ…（１５）
【００８３】
さらに、それぞれの領域が図２２のように一定間隔で並んでいるとすると、それぞれの領域の中心座標（Ｘｎ，Ｙｎ）を用いて、所定の位置（ｘｎ，ｙｎ）に存在するかを判定する。バラツキ±２ｍｍ以内の位置をＯＫとすると、９つの対象物体ｎ＝１、２、…、９に対して、以下の条件を設定する。
（ｘｎ−２）ｍｍ≦Ｘｎ≦（ｘｎ＋２）ｍｍ…（１６）
（ｙｎ−２）ｍｍ≦Ｙｎ≦（ｙｎ＋２）ｍｍ…（１７）
【００８４】
なお、面積および中心位置は画像座標系において画素数を用いて設定してもよいし、ワールド座標系に変換して物理量を用いて設定してもよいし、他の座標系、単位系へ変換して設定してもよい。
【００８５】
Ｓ５’’では、検査領域を決定する。領域を決定する方法は、第一実施形態のように、例えば事前にユーザが設定しておいてもいいし、取得した画像情報に基づいて設定してもよい。本実施形態において、領域は平面に加えて、距離も設定する。例えば、ペットボトルのキャップを検査する場合、ペットボトルのキャップ上面までの距離を領域として設定する。これは図２１のように、撮像装置１から対象物体４’’のペットボトルのキャップ上面までの距離が４００ｍｍであるはずの場合、その±１０ｍｍを検査領域として設定する。なお、図２１は、図２２に示す距離画像におけるＸ−Ｘ’の断面を横から見た図である。
【００８６】
Ｓ１８では、対象面の位置姿勢検査として、領域情報の取得を行う。例えば、図２０の斜線部分の面積を求める。面積の求め方は、Ｓ４で取得した距離画像情報において、Ｓ５’’において設定した領域情報を用いて対象領域を決定した後に、画像のＸＹの領域内で、かつ、設定した距離情報の範囲に含まれる画素の数を求める。面積は合計で求めてもよいし、領域ごとに求めてもよい。
【００８７】
Ｓ１９では、目標の領域があるかどうかのＯＫ／ＮＧの判定を行う。Ｓ２’’で設定した判定条件に対して、Ｓ１８で取得した位置姿勢の結果がＯＫとする範囲に当てはまるか否かで判定を行う。具体的には、Ｓ１８で取得した領域の面積および中心位置が、Ｓ２’’で設定した範囲に収まっているかどうかをもって判定する。収まっていない場合はＮＧとしてＳ２０へ、収まっている場合はＯＫとしてＳ１１’’へ遷移する。
【００８８】
Ｓ２０では、検査をＯＫに修正するための方法の取得が行われる。具体的には、取得した領域情報を、Ｓ２’’で設定した検査ＯＫとする範囲に収めるために、位置姿勢をどのように修正すればいいかを取得する。例えば、図２２のように判定ＮＧの領域がある場合、修正すべきペットボトルが分かるように、該当箇所をユーザに示す。
【００８９】
Ｓ２１では、修正方法をユーザへ指示する方法を決定する。例えば、プロジェクタを使って、領域内のＮＧ箇所に対してプロジェクションする。または、スピーカーを使って、図２２のように、二行目三列目の箇所がＮＧであることを音声で出力する。あるいは、図２２のように、ディスプレイにＮＧ箇所を表示して提示してもよい。
【００９０】
Ｓ２２では、出力装置を使って、Ｓ２１で決定した出力方法に基づき、ユーザへ修正を指示する。
【００９１】
Ｓ１１’’では、ＣＰＵ１１は、次の対象物体４があるかどうかの判定をする。そして、ＣＰＵ１１は、対象物体４’’が存在しない場合には処理を終了すると判断して図１９に示す処理を終了する。対象物体４’’が存在する場合には、処理を継続すると判断してＳ３に戻る。
【００９２】
以上のように、本実施形態では、対象物体の有無検査をするための判定条件を設定した後、撮像装置により対象物体の画像情報を得る。次いで、検査領域を決定し、対象面の位置姿勢として領域情報、ここでは面積と中心座標Ｘ，Ｙを取得し、判定条件に基づきＯＫ／ＮＧ判定をする。そして、ＮＧの場合は、該当箇所をユーザに提示する。
【００９３】
こうすることで、一度の撮影で検査領域内の物体の有無を検査し修正方法を知れるため、例えば物流現場におけるペットボトルの出荷前のキャップ有無検査工程を効率的に行える。
【００９４】
（ハードウェア構成）
情報処理装置１０は、例えばパーソナルコンピュータ（ＰＣ）により構成されている。図２３は、情報処理装置１０のハードウェア構成の一例である。情報処理装置１０は、ＣＰＵ１１と、ＲＯＭ１２と、ＲＡＭ１３と、外部メモリ１４と、入力部１５と、表示部１６と、通信Ｉ／Ｆ１７と、システムバス１８とを備える。ＣＰＵ１１は、情報処理装置１０における動作を統括的に制御するものであり、システムバス１８を介して、各構成部（１１〜１７）を制御する。ＲＯＭ１２は、ＣＰＵ１１が処理を実行するために必要なプログラムを記憶する不揮発性メモリである。なお、当該プログラムは、外部メモリ１４や着脱可能な記憶媒体（不図示）に記憶されていてもよい。ＲＡＭ１３は、ＣＰＵ１１の主メモリ、ワークエリアとして機能する。すなわち、ＣＰＵ１１は、処理の実行に際してＲＯＭ１２から必要なプログラムをＲＡＭ１３にロードし、当該プログラムを実行することで各種の機能動作を実現する。
【００９５】
外部メモリ１４は、例えば、ＣＰＵ１１がプログラムを用いた処理を行う際に必要な各種データや各種情報を記憶している。また、外部メモリ１４には、例えば、ＣＰＵ１１がプログラムを用いた処理を行うことにより得られた各種データや各種情報が記憶される。入力部１５は、例えばキーボードやマウスのポインティングデバイスにより構成され、オペレータが入力部１５を介して当該情報処理装置１０に指示を与えることができるようになっている。表示部１６は、液晶ディスプレイ（ＬＣＤ）等のモニタで構成される。通信Ｉ／Ｆ１７は、外部機器と通信するためのインターフェースである。システムバス１８は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、外部メモリ１４、入力部１５、表示部１６及び通信Ｉ／Ｆ１７を通信可能に接続する。このように、情報処理装置１０は、通信Ｉ／Ｆ１７を介して、外部機器である撮像装置１、光源２、出力装置３、とそれぞれ通信可能に接続されており、これらの外部機器の動作を制御する。
【００９６】
第一実施形態によれば、対象面が傾いていることを検査して、傾きがある場合は修正方法をユーザへ提示することによって、ユーザは容易に修正方法が分かるため、短時間で修正でき、作業の効率化が図れる。
【００９７】
第二実施形態によれば、撮像装置１から対象面までの傾きと距離に基づき撮像装置１を対象面に正対設置させる方法をユーザへ提示することによって、ユーザは容易に撮像装置１を対象面に正対設置させることができるため、作業の効率化が図れる。
【００９８】
第三実施形態によれば、対象物体の有無を検査して対象物体がない箇所をユーザへ指示することによって、ユーザは容易に修正すべき箇所を認識できるため、作業の効率化が図れる。
【００９９】
＜その他の実施形態＞
第一〜第三実施形態において、出力方法決定部１０７は、図２４のように、状況認識部１０９の取得した環境と、ユーザの状態と、に基づいて出力方法を決定してもよい。状況認識部１０９は、例えばマイクであり、環境情報として、周囲の音を認識する。ここで、周囲の音がうるさい場合、出力方法決定部１０７は、例えばうるさい環境において音で出力するのは適切ではないと判断し、ディスプレイに表示する方法や、対象物体にプロジェクションすることで出力する方法を決定する。また、状況認識部１０９は、例えば撮像装置であり、ユーザの状態として、ユーザの位置を認識する。ここで、ユーザがディスプレイの遠くにいる場合、ディスプレイに指示情報を表示してもユーザが見ることが困難なので、音声で出力する。または、ユーザが対象物体を見ている場合、対象物体にプロジェクションすることで指示情報を提示する方法を決定する。
【０１００】
第一〜第三実施形態において、出力方法決定部は、出力方法を決定するのではなく、機械装置の制御情報を決定してもよい。制御情報を機械装置に送り、対象物体を目標状態になるような制御情報を決定する。例えば、図２４（ｂ）のような構成を取ってもよい。図２４（ｂ）において、機械装置２０は、例えば多関節ロボットであり、ロボットアーム等のマニピュレータ１１２や、ロボットハンド等の把持装置１１１、マニピュレータ１１２と把持装置１１１を制御するコントローラ１１０を備える。また、機械装置２０は、マニピュレータ１１２の各関節の角度を変更することで把持装置１１１の位置姿勢を変更可能な位置姿勢変更機構を備える。位置姿勢変更機構は、電動モータによって駆動されてもよいし、油圧や空気圧等の流体圧で作動するアクチュエータによって駆動されてもよい。この位置姿勢変更機構は、情報処理装置１０から出力される動作指示情報に従って駆動される。また、機械装置２０は、多関節ロボットに限定されるものではなく、数値制御（Ｎｕｍｅｒｉｃａｌ  Ｃｏｎｔｒｏｌ：ＮＣ）可能な可動式の機械であってもよい。コントローラは、マニピュレータ１１２に付随するロボットコントローラでもよいし、プログラマブルロジックコントローラ（ＰＬＣ）でもよいし、これら以外でもマニピュレータ１と把持装置３を制御できる装置であればよい。コントローラ１１０は、機械装置２０の近くに設置されていてもよいし、マニピュレータ１１２と一体化していてもよいし、他の場所に設置されていてもよい。コントローラ１１０はマニピュレータ１１２、把持装置１１１の制御を行う。機械装置２０は、出力方法決定部１０７が決定した出力方法に基づき修正を実行する。例えば第一実施形態の場合、対象物体４の面の傾きを直すようにマニピュレータ１１２および把持装置１１１が動作する。このような構成にすることで、人手に頼らずにロボットで不良品を修正できる。
【０１０１】
第一〜第三実施形態において、カラー画像を検査領域の設定だけでなく、検査自体に利用してもよい。例えば、第三実施形態において、ペットボトルのキャップの有無検査を行った後、有ると判定した場合、さらにカラー画像を利用して種類の検査を行ってもよい。具体的には、有無検査でキャップがあると判定されたそれぞれの領域に対して、該当する箇所のカラー画像を利用して、キャップ部分のテクスチャ情報を利用することにより、対象のキャップであるかどうかを判定する。
【０１０２】
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、データ通信用のネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。また、そのプログラムをコンピュータが読み取り可能な記録媒体に記録して提供してもよい。
【符号の説明】
【０１０３】
１  撮像装置
２  光源
３  出力装置
４  対象物体
１０  情報処理装置
１００  情報処理システム
【図１】
2020123042.tif 000004
【図２】
2020123042.tif 000005
【図３】
2020123042.tif 000006
【図４】
2020123042.tif 000007
【図５】
2020123042.tif 000008
【図６】
2020123042.tif 000009
【図７】
2020123042.tif 000010
【図８】
2020123042.tif 000011
【図９】
2020123042.tif 000012
【図１０】
2020123042.tif 000013
【図１１】
2020123042.tif 000014
【図１２】
2020123042.tif 000015
【図１３】
2020123042.tif 000016
【図１４】
2020123042.tif 000017
【図１５】
2020123042.tif 000018
【図１６】
2020123042.tif 000019
【図１７】
2020123042.tif 000020
【図１８】
2020123042.tif 000021
【図１９】
2020123042.tif 000022
【図２０】
2020123042.tif 000023
【図２１】
2020123042.tif 000024
【図２２】
2020123042.tif 000025
【図２３】
2020123042.tif 000026
【図２４】
2020123042.tif 000027