JP7378934B2 - 情報処理装置、情報処理方法及びシステム - Google Patents

情報処理装置、情報処理方法及びシステム Download PDF

Info

Publication number
JP7378934B2
JP7378934B2 JP2019013224A JP2019013224A JP7378934B2 JP 7378934 B2 JP7378934 B2 JP 7378934B2 JP 2019013224 A JP2019013224 A JP 2019013224A JP 2019013224 A JP2019013224 A JP 2019013224A JP 7378934 B2 JP7378934 B2 JP 7378934B2
Authority
JP
Japan
Prior art keywords
target object
information
condition
information processing
distance
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019013224A
Other languages
English (en)
Other versions
JP2020123042A5 (ja
JP2020123042A (ja
Inventor
大輔 山田
智昭 肥後
一彦 小林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2019013224A priority Critical patent/JP7378934B2/ja
Priority to US16/745,159 priority patent/US11842508B2/en
Priority to CN202010076174.1A priority patent/CN111507935A/zh
Publication of JP2020123042A publication Critical patent/JP2020123042A/ja
Publication of JP2020123042A5 publication Critical patent/JP2020123042A5/ja
Application granted granted Critical
Publication of JP7378934B2 publication Critical patent/JP7378934B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • G06T7/0006Industrial image inspection using a design-rule based approach
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/26Discovering frequent patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/28Determining representative reference patterns, e.g. by averaging or distorting; Generating dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • G06T7/0008Industrial image inspection checking presence/absence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • G06T7/001Industrial image inspection using an image reference approach
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/75Determining position or orientation of objects or cameras using feature-based methods involving models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/97Determining parameters from multiple pictures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10004Still image; Photographic image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20092Interactive image processing based on input by user
    • G06T2207/20104Interactive definition of region of interest [ROI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30108Industrial image inspection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/12Acquisition of 3D measurements of objects

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Image Analysis (AREA)

Description

本発明は、撮像画像から対象物体を検査する技術に関する。
近年工場等の生産現場において、人が行っていた検査作業を機械によって自動化するため、画像を用いた検査装置が導入されている。例えば、生産ラインにおける製品の状態検査では、製品を多様な計測機器によって計測した結果から製品の状態を判定する。例えば、特許文献1では、ペットボトルの蓋の浮きを検査する際、製品の横から撮像した画像に基づいて蓋の状態を検出する。
特開平11-49287号公報
特許文献1では、対象物体の浮きが検知された場合、ユーザに異常が通知されるが、傾いた蓋を適切な姿勢に修正する方法をユーザは直ちに知ることができない。一方で、特許文献1より生産性の高いシステムを構築する場合、検査で不良品であると判定された製品を、向きや位置を正しい状態に修正させる方法を人やロボットに知らせることで、不良品の発生率を低下させることが期待できる。
本発明は、上記の課題に鑑みてなされたものであり、検査において対象物体が適切な状態でない場合に、適切な状態に修正する方法を出力する。
上記の目的を達成する本発明に係る情報処理装置は、複数部分からなる対象物体を撮像した画像を用いて前記対象物体が有する平面である第1の平面と所定の第2の平面とが成す傾きである前記対象物体の状態を検査する情報処理装置であって、前記対象物体のうち前記第1の平面を含む所定部分の位置を示す位置情報を、前記画像に基づいて取得する取得手段と、前記所定部分の位置が所定の条件を満たさない場合、前記位置情報と前記条件とに基づいて、現在の前記対象物体の状態と目標とする前記対象物体の状態との差異に関する情報を出力する出力手段とを有することを特徴とする。
本発明によれば、検査において対象物体が適切な状態でない場合に、適切な状態に修正する方法を出力できる。
情報処理システムの構成例を示す図である。 情報処理システムの機能構成例を示すブロック図である。 情報処理システムが実行する処理を説明するフローチャートである。 対象物体が成す平面の傾きを説明する図である。 検査対象となる領域を設定する例を説明する図である。 テンプレートマッチングを利用して領域を設定する例を説明する図である。 対象物体の検査で観察された状態を説明する図である。 対象物体の目標状態を説明する図である。 対象物体の目標状態と検査で観察された状態の差分を説明する図である。 ユーザへの提示方法の一例を説明する図である。 情報処理システムの構成例を示す図である。 情報処理システムの機能構成例を示すブロック図である。 情報処理システムが実行する処理を説明するフローチャートである。 検査対象となる領域を設定する方法の一例を説明する図である。 撮像装置と対象物体との距離の例を説明する図である。 ユーザへの提示方法の一例を説明する図である。 情報処理システムの構成例を示す図である。 情報処理システムの機能構成例を示すブロック図である。 情報処理システムが実行する処理を説明するフローチャートである。 検査対象となる領域を設定する例を説明する図である。 検査の条件を設定する方法の一例を説明する図である。 NG検出の箇所の一例を説明する図である。 情報処理装置のハードウェア構成例を示す図である。 情報処理システムの構成例を示す図である。
以下、添付の図面を参照して、本発明の好適な実施形態を説明する。
<第一実施形態>
本実施形態における検査とは、主に対象物体の一部分が平面であるか確かめる検査を指す。具体的には、工場や物流倉庫等における梱包工程や物流工程で行われる検査を想定している。検査では、対象物体(ここでは製品の梱包箱)の外装(蓋、キャップ等の傾きや有無)もしくは内装(中蓋の傾きや有無)が所定の条件を満たしていることを確認する。
第一の実施形態では、製品の化粧箱などの出荷時に、画像から得られる情報を用いて、対象物体の一部分が平面を成しているか否かの検査を行う。対象物体である外箱の蓋に浮きがあるかどうかの検査で条件を満たさない(蓋が閉まっていない、浮いている)場合に、人またはロボットに対して蓋の姿勢を修正するような指示を提示する情報処理装置について述べる。なお、ここで説明する蓋は簡単の為、上面(製品の天地が正しい場合の上面であって、撮像装置に正対する面)がなめらかな平面になっているものについて述べる。
図1は、本実施形態における情報処理装置10を備える情報処理システム100の構成例である。撮像装置1は、デジタルカメラなど、レンズと電子撮像素子を有する計測装置であり、対象物体4の状態を画像情報として取得する。画像情報として二次元のカラー画像情報や、ステレオカメラであれば撮像装置1から対象物体4までの距離を示す距離画像情報が取得できる。撮像装置1から出力される画像情報は情報処理装置10に入力される。光源2は、例えば照明装置であって、対象物体の模様やエッジを顕在化する照明を照射する。または、光源2が投影装置(例えば、プロジェクタ)である場合は、光源2がパターン光を照射することで撮像装置1が距離画像を取得する。撮像装置1および光源2は、撮像対象に対して配置を固定するほか、ロボットなどの移動する機構部分に搭載しても構わない。また、撮像装置1は複数配置してもよい。
出力装置3は、例えば、対象物体4の一部を修正するための情報を出力するディスプレイ(表示装置)で構成され、GUI(Graphical User Interface)を用いてユーザへの指示情報を出力する。ここで、指示情報とは、現在の対象物体の状態と対象物体が目標とする状態との差異を示す情報である。具体的には、目標の状態からどれほど離れているかを示す位置情報、目標の状態に近似するためどれほど移動させるかを示す修正方法が挙げられる。出力装置については、表示装置でなくても、スピーカーなどの音や音声を再生する再生装置でもよい。音声装置による出力では、合成された発話を指示情報とする。また、対象物体の表面に指示情報を投影するプロジェクタといった投影装置を出力装置として用いてよい。または、仮想現実を使った出力方法でもよい。具体的な出力装置としてはHMD(Head Mounted Display)やAR(Augmented Reality)グラス等のウェアラブルデバイスが挙げられる。これらの出力装置を用いて、MR(Mixed Reality)、AR、VR(Virtual Reality)で対象物体4に対する指示情報を提示する。これらの出力装置のいずれか、もしくは複数を組み合わせることで、対象物体が不良品である場合に修正する方法を速やかにユーザに提示することを可能とし、不良品の修正にかかる時間を短縮できる。
対象物体4は、ここでは工場等の生産ラインで扱われる梱包物、製品や部品といった物体を指す。対象物体4は、製造装置からベルトコンベア等で次々に排出され、1つあるいは複数同時に撮像装置1の撮影範囲に入っている。本実施形態では、対象物体が撮像装置の撮影範囲に移動する場合を示した。製品陳列などの作業において、棚に固定して配置されている複数の対象物体に対して、向きや位置が異なっているものを修正する場合には、本システムを可動にすることで対応することができる。なお、ここでは、対象物体4を情報から撮像することによって、対象物体の一部分である蓋の状態が目標とする状態であるか否かを検査する。具体的には、蓋が閉まった状態で、(水平面と平行な)平面を成している状態を目標の状態であるとする。
図2は、情報処理システム100および情報処理装置10の機能ブロック図である。情報処理装置10は、設定部101と、画像情報取得部102と、領域決定部103と、位置情報取得部104と、判定部105と、修正方法取得部106と、出力方法決定部107と、出力制御部108と、を備える。
設定部101は、情報処理システム100が行う検査における判定条件を設定する。なお、ここで判定条件は、対象物体の一部分の位置が所定の範囲内に含まれることを条件とする。または、判定条件は、対象物体の一部分の姿勢(X,Y,Zの3次元位置と、それに対応する回転方向との6次元の情報)が所定の範囲内に含まれることを条件とする。判定条件は、検査内容や対象物体によって異なる。判定条件の設定方法は後述する。設定部101は、設定した判定条件を判定部105に送る。
画像情報取得部102は、撮像装置1から出力される画像情報(距離画像)を取得する。ここでは、画像情報は撮像装置から対象物体までの距離を示す距離情報である。距離画像の各画素には距離情報が対応している。画像取得部102は、取得した画像情報を領域決定部103に出力する。画像取得部102は、例えばキャプチャボードやメモリ(RAM)で構成される。
領域決定部103は、画像取得部102より入力された画像情報(距離画像)のうち、検査対象とする領域を決定する。領域の決定方法は後述する。領域決定部103は、決定した領域情報を位置情報取得部104に送る。
位置情報取得部104は、画像情報(距離画像)に基づいて、領域決定部103から入力された領域における対象物体の位置情報を取得する。ここで、位置情報とは、対象物体の一部分の少なくとも3次元位置を表す。例えば、対象物体の上面の3次元位置の集合である。具体的には、対象物体の上面を示す平面と水平面との成す角(傾き)である。また、位置情報は3次元座標のそれぞれの座標軸についての姿勢についての情報を含む。位置情報取得部104は、位置情報を判定部105に送る。
判定部105は、設定部101から入力された判定条件と、位置情報取得部104から入力された位置情報と、に基づき、対象物体の一部分が判定条件を満たしているかどうかを判定する。判定条件を満たしている場合には”OK”、満たしていない場合には”NG”の判定を行う(以後、この判定結果を検査OK/NGの結果と呼ぶ。)判定部105は、検査OK/NGの結果を修正方法取得部106に送る。なお、OKである場合は、対象物体が目標とする状態であることを示す情報を出力装置に出力する。
修正方法取得部106は、判定部105から入力された判定結果に基づき、判定がNGの場合、OKの条件を満たすために対象物体を動かす向きまたは移動量を示す修正方法を取得する。修正方法の取得方法については後述する。修正方法取得部106は、取得した修正方法を出力方法決定部107に送る。
出力方法決定部107は、修正方法取得部106から入力された修正方法に基づき、ユーザへの修正方法の出力方法について決定する。出力方法決定部107は、決定した修正出力方法を出力制御部108に送る。
出力制御部108は、現在の対象物体の状態と目標とする対象物体の状態との差異に関する情報をユーザに提示する。現在の対象物体の状態と目標とする対象物体の状態との差異に関する情報は、例えば、対象物体の有無に関する情報も含む。また、対象物体が目標とする状態(位置や姿勢)に対してどれくらい差があるかを示すベクトル情報でもよい。具体的には、対象物体の位置が所定の条件を満たさない場合、位置情報と所定の条件とに基づいて、対象物体の状態を変化させる方向をユーザに提示する。出力制御部108は、出力方法決定部107から取得した出力方法に基づいて、ユーザへ指示情報の出力を行う。出力制御部108は、出力方法決定部107から出力方法を取得したら、出力装置3に指示トリガーを送る。
図3は、情報処理システムが実行する処理を説明するフローチャートである。図3に示される処理は、図23に示す情報処理装置10のCPU11が、ROM12もしくは外部メモリ14に格納されたプログラムを読み出して実行することにより実現される。ただし、図3の処理の一部または全部が、専用のハードウェアにより実現されてもよい。図3の処理は、例えばオペレータが情報処理システム100を起動したときに開始される、ただし、開始のタイミングは、情報処理システム100の起動時に限定されるものではない。以下の説明では、各工程(ステップ)について先頭にSを付けて表記することで、工程(ステップ)の表記を省略する。また、情報処理システム100は必ずしもこのフローチャートで説明するすべてのステップを行わなくてもよい。
まずS1において、CPU11は、情報処理システム100の初期化処理を行う。すなわち、CPU11は、ROM12もしくは外部メモリ14に格納されたプログラムをロードし、RAM13上に展開して実行可能な状態とする。また、情報処理装置10に接続された各機器のパラメータの読み込みや初期位置への復帰を行い、使用可能な状態にする。
S2では、設定部101が、対象物体の状態を示すモデルに基づいて、検査OK/NGの判定条件を設定する。判定条件とは、例えば、蓋の浮き検査の場合は対象物体4の上面の傾きについての条件(傾きを許容する範囲)である。また、モデルとは、対象物体の目標とする状態を示す。具体的には、蓋の面の状態を平面の方程式であらわすモデルである。このモデルは、情報処理装置の図示しない記憶部に保持されている。もしくは、情報処理装置が外部装置から図示しない通信部を介してモデルを取得する。対象物体4の蓋の浮きをチェックしたい場合、対象物体4の蓋が所定の軸に対して回転した状態になっているならば、蓋の部分領域の傾きを検査することで浮きのチェックができる。撮像装置1が対象物体4の置かれている面に対して正対設置しているとすると、対象物体4の蓋の面が浮いていない場合、撮像装置1は対象物体4の蓋の面に対しても正対する。そのため、対象物体4の蓋が撮像装置1に対して正対していない場合は、蓋が傾いている、すなわち蓋に浮きがあると考えられる。ここでは検査で正しいと判別される蓋の面の状態を平面の方程式であらわされるモデルに置き換え、その面の傾きを以下のように定義する。式(1)の平面の方程式より、対象の平面の単位法線ベクトルは式(2)のように求まる。
Ax+By+Cz+D=0…(1)
Figure 0007378934000001
ここで、n、n、nは、それぞれ図4に示すように、X、Y、Z方向の基本ベクトルである。式(2)より、単位法線ベクトルと基本ベクトルn、n、nそれぞれとのなす角θを傾きとして以下の式(3)~(5)のように定義する。
θx=180cos-1/π…(3)
θy=180cos-1/π…(4)
θz=180cos-1/π…(5)
そのため、対象物体4の蓋がカメラの光軸に対して正対している(閉まっている、浮いていない)場合には、観察される平面はカメラの光軸に対してX、Y、Z方向の傾きはそれぞれ以下のようになる。
θx=90°…(6)
θy=90°…(7)
θz=0°…(8)
もし検査において、各方向ともに±3°以内であれば検査OKとするのであれば、以下のように判定OKとなる範囲を設定する。
87.00°≦θx≦93.00°…(9)
87.00°≦θy≦93.00°…(10)
-3.00°≦θz≦3.00°…(11)
S3では、撮像装置2が、対象物体4の撮像を行う。画像に対象物体が収まるように撮像する。一定の時間間隔でシャッターを切るようにしてもよい。映像として撮像してもよい。
S4では、画像取得部102が、撮像装置1が出力する対象物体4の画像情報を取得し、領域決定部103に送る。
S5では、領域決定部103は、画像取得部102より入力された画像情報(距離画像)のうち、検査領域を決定する。領域を決定する方法は、例えば事前にユーザが設定しておいてもいいし、取得した画像情報に基づいて設定してもよい。
事前にユーザが設定しておく方法としては、オフライン時に、オンライン時と同様の位置関係で対象物体4を撮像しておいた画像を利用する。例えば図5のように、対象物体4の二次元画像情報に対して、ユーザがマウスでドラッグすることで領域を決定する。または、図5のように設定した領域の左上と右下の点の座標値を入力することで、領域を決定してもよい。
取得した画像情報に基づいて設定する方法としては、例えば二次元画像情報を用いて、テンプレートマッチングを行う。図6のようにカメラのマークをテンプレートとして用意しておき、ランタイムでカメラのマークをテンプレートマッチングしたら、その位置を基準とした所定の領域を検査領域として設定する。所定の領域は事前に設定しておくことで、対象物体4の位置が変化しても、対象物体4の同じ領域を検査領域として設定することができる。
なお、領域を設定する際は、カラー画像に対してでもよいし、距離画像に対してでもよい。カラー画像と距離画像は位置合わせができているものとするので、一方の画像で領域を設定しても、もう一方の画像でも同じ位置で領域が設定される。
S6では、位置情報取得部104が、対象物体の対象面の少なくとも位置を示す位置情報を取得する。位置情報は、距離を計測可能な撮像装置である場合は、画像座標系における対象物体の表面の3次元位置を示す情報である。対象物体の天地が正しい場合、撮像装置(が有するセンサ)から対象物体の上面までの距離を計測する。例えば設定S5で設定した領域に対して、平面を求め、求めた平面の傾きを取得する。具体的には、まず、S4で取得した距離画像情報を、カメラパラメータを使ってカメラ座標系における三次元点群に変換する。通常、観測される三次元点群には観測ノイズが含まれることから、RANSAC(Random Sample Consensus)などのロバスト推定によって領域に含まれるノイズではない点の一部を用いて平面フィッティングを行う。ノイズ除去には、ロバスト推定のほかにも収縮膨張処理を行ったり、バイラテラルフィルタなどのフィルタを利用したりしてもよい。ロバスト推定で用いるRANSACの繰り返し回数や、外れ値とみなす範囲の閾値のパラメータは、ユーザが任意に設定できるようにすることで、解像度が大きく点群が多い場合の処理時間の短縮が行える。
S7では、判定部105が、設定部101から入力された判定条件と、位置情報取得部104から入力された位置情報と、に基づき、対象物体が判定条件を満たしているかどうかを判定する。S2で設定した判定条件に対して、S6で取得した位置姿勢の結果がOKに当てはまるか否かで判定を行う。具体的には、S6で取得したθx、θy、θzそれぞれの値が、S2で設定した範囲に収まっているかどうかをもって判定する。収まっていない場合はNGとしてS8へ、収まっている場合はOKとしてS11へ遷移する。なお、判定条件が満たされた場合は、出力制御部108が、対象物体の現在の状態が目標の状態を満たしていることを示す情報を出力するように出力装置を制御する。
S8では、修正方法取得部106が、判定部105から入力された判定結果に基づき、対象物体の状態(位置または姿勢)が所定の条件を満たさない場合、所定の条件を満たすように対象物体を動かす向きまたは移動量を示す修正方法を取得する。判定部105によって条件を満たさないと判定された現在の対象物体の状態(位置または姿勢)を、S2で設定された条件を満たす所定の状態(位置または姿勢)に修正するために行う。例えば、図7(a)のように、現在の対象物体の状態として、蓋が浮いている場合を考える。このとき、対象物体の浮きを確認する方法として、距離画像を画面に提示することで傾きの程度を目視できて有用である。距離画像はそれぞれ図7(b)(c)のようになる。距離画像の提示方法としては画素ごとの距離値に応じて手前(カメラから近い)にある方が黒く(パターンが濃い)、奥(カメラから遠い)にある方が白く(パターンが薄い)表示されているものとする。ただし、遠近の白黒を反転させてもよいし、距離値をカラーマップに変換させて表示させてもよい。S2で設定した判定条件より、検査OKとなる望ましい目標状態は図8のような状態である。このとき、目標状態は判定条件で設定した値の間の値とする。例えば、S2で設定した範囲が式(9)~(11)の場合は、その中央値である式(6)~(8)を修正後の位置・姿勢である目標状態の値とする。
目標状態を設定したら、現在の位置姿勢との差分を求め、現在の状態を目標状態へ変化させるためにどのように位置姿勢を変更すればよいかを求める。例えば図9のような状態の場合、設定した範囲の面を目標状態に変化させるには、図示する回転中心であるX軸方向に対して+15°回転させる必要がある。
S9では、出力方法決定部107は、修正方法取得部106から入力された修正方法に基づき、ユーザへの修正方法の出力方法について決定する。例えば、ディスプレイ(表示装置)に表示することを決定する。または、スピーカー(音声装置)、プロジェクタ(投影装置)、HMD(頭部装着型表示装置)やARグラスなどにより出力することを決定してもよい。
どの方法により出力するかは、事前に設定しておいてもよい。例えば、事前にユーザの位置と出力方法の対応関係を設定しておく。フローチャートを実行する際に、ユーザの位置に基づいて情報処理装置が出力方法を決定してもよい。例えば、ユーザの位置や、工場の騒音レベルといった状況に応じて出力方法を設定しておく。具体的には、ユーザとディスプレイとの距離が所定の範囲内(例えば3m以内)である場合は、ディスプレイに出力し、ユーザとディスプレイとの距離が所定の範囲外(3m以上)である場合は音声で出力する。例えば、ディスプレイに取り付けられたカメラなどで、ユーザがディスプレイの前にいないことが分かる場合、ディスプレイには表示せず、スピーカーなど他の手段により指示情報(修正方法)の出力を行う。または、ユーザが対象物体を見ていることが分かる場合、プロジェクタを使うことによって、対象物体に対してプロジェクションすることで指示情報の出力を行う。または、周囲の音がうるさい(音量の計測結果が所定の閾値を超える)場合、音声での指示を行わず、代わりにディスプレイに表示することで提示してもよい。また、接続されている出力装置が複数ある場合は、組み合わせて指示情報を提示してもよい。例えば、表示装置と音声装置が出力装置として用いられている場合は、2つの装置で指示情報を出力する。
S10では、出力制御部108は、現在の対象物体の状態と目標とする対象物体の状態との差異に関する情報をユーザに提示する。この情報は、例えば、現在の対象物体の状態と目標とする対象物体の状態に変化させるためのベクトル情報から得られる向きや量を示す情報である。例えば、S9においてディスプレイで指示すると決定した場合、S8での取得結果に基づいて、対象物体を動かす方向または量を表示装置に表示させる。例えば、図10のように、X方向の回転軸を示し、その回転軸に対して+15°回転させるように、矢印で方向を、数値で角度を示すことで指示する。指示する際は、例えば図10(a)のように二次元画像に対して重畳表示してもよいし、あるいは図10(b)のように距離画像に重畳表示してもよい。また、上方向から見た図だけでなく、三次元点群に対して二次元カラー画像情報を位置合わせして、色がついた三次元点群情報を利用して任意の視点から見た画像を生成して、修正方法を重畳表示してもよい。または、S9でその他の方法で出力することを決定した場合、決定した方法に従ってユーザへ修正を指示する。スピーカーを使って音声で指示する場合は、図10に示した内容を、音声によってユーザへ伝える。例えば、箱上面をX軸方向に対して+15°回転させる、といったように指示する。または、プロジェクタを使ってプロジェクションで指示する場合は、図10に示した内容を対象物体に対してプロジェクションすることで、ディスプレイを使った場合と同様の内容を伝える。または、HMDやARグラスを使って指示する場合は、図10に示した内容をHMDやARグラスを使って仮想空間あるいは現実空間の対象物体に対して重畳表示してディスプレイを使った場合と同様の内容を伝える。なお、指示情報は、現在の対象物体の状態と目標とする対象物体の状態との差の絶対値またはベクトル情報であってもよい。この場合、対象物体の位置情報を指示情報として提示すればよい。
S11では、CPU11は、次の対象物体4があるかどうかの判定をする。そして、CPU11は、対象物体4が存在しない場合には処理を終了すると判断して図3に示す処理を終了する。対象物体4が存在する場合には、処理を継続すると判断してS3に戻る。判定方法は、例えば、S4で取得した対象物体4の画像情報に基づき対象物体4の有無を判定してもよいし、または、事前に処理回数を設定しておき、その回数に達したかで判定してもよい。対象物体4の供給場所にセンサを配置しておき、そのセンサ情報から判定してもよい。センサ情報とは、例えば供給場所に重量センサを配置しておき、供給場所の重さを計測することで秤量によって対象物体4の有無を計測してもよい。あるいは、これら以外の方法で判定してもよい。
設定部101は、対象物体の形状を示すモデルを用いて絶対的な条件を設定するほか、複数の対象物体の画像を用いて相対的な条件を設定してもよい。絶対的な条件が、傾きや回転量といった具体的な数値の範囲(閾値)である。それに対して、相対的な条件は、例えば、検査を行った対象物体の位置情報の平均値を用いる。ある対象物体の位置情報と平均値との差が所定の値より大きくなる対象物体を異常な状態として検出する。
なお、上述した各処理部のうち、修正方法取得部106については、その代わりとして、機械学習された学習済みモデルを代わりに用いて修正方法を取得してもよい。その場合には、例えば、その処理部への入力データと出力データとの組合せを学習データとして複数個準備し、それらから機械学習によって知識を獲得し、獲得した知識に基づいて入力データに対する出力データを結果として出力する学習済みモデルを生成する。学習済みモデルは、例えばニューラルネットワークモデルで構成可能である。そして、その学習済みモデルは、前記処理部と同等の処理をするためのプログラムとして、CPUあるいはGPUなどと協働で動作することにより、前記処理部の処理を行う。なお、上記学習済みモデルは、必要に応じて一定の処理後に更新しても良い。
以上のように、本実施形態では、検査OK/NGを判定するための判定条件を設定した後、撮像装置により対象物体の画像情報を得る。次いで、画像情報に基づき検査領域を決定し、対象面の位置姿勢を取得し、判定条件に基づきOK/NG判定をする。そして、NGの場合は、どのように修正すればOK判定になるかを取得し、その修正の出力方法を決定し、ユーザへ修正方法の指示の出力を行う。
このようにすることで、該当工程の検査に慣れていないユーザでも、検査NGのときの修正方法が分かるため、容易に不良品を適切な状態に修正することができる。
<第二実施形態>
次に、本発明の第二実施形態について説明する。第二実施形態では、検査を行う前の事前設定として、撮像装置を設置する位置と姿勢を求める方法について述べる。そのために距離の統計情報を取得するよう構成したものである。対象面の位置姿勢として距離統計情報と平面の傾きを取得し、判定条件に基づきOK/NG判定をすることで、撮像装置1に対して対象面が正対設置しているかを判定する。判定NGの場合は、どのように撮像装置の姿勢を修正する方法を取得し、その修正方法の出力方法を決定し、修正方法を出力する。こうすることで、撮像装置1を対象面に対して容易に正対設置できるため、情報処理システムの事前設定に割く時間を短縮することができる。
図11は、本実施携帯における情報処理装置10’を備える情報処理システム100’の構成例を示す図である。図11は機器構成の一例であり、本発明の適用範囲を限定するものではない。
対象物体4’は、例えばベルトコンベア上を流れるトレイのような、情報処理システム100’によって検査されることが想定される物体である。検査とは、例えばトレイ上面の位置姿勢を計測することで、撮像装置1にトレイが正対設置しているかどうかを判定することである。本実施形態では、対象物体4‘として、トレイを流しているベルトコンベアも含む。その場合はベルトコンベア上面を対象面として検査する。または、トレイに載せられている部品でもよく、その場合は部品上面を対称面として検査する。
図12は、本実施形態における情報処理システム100’および情報処理装置10’の機能ブロック図である。図12に示す情報処理システム100’および情報処理装置10’は、図2に示す情報処理システム100および情報処理装置10に対して、設定部101と、位置情報取得部104と、判定部105と、修正方法取得部106と、の処理が異なる。
設定部101’は、距離統計情報に基づいて、情報処理システム100の行う検査OK/NGの判定条件を設定する。設定部101’は、設定した判定条件を判定部105’に送る。第一実施形態において傾きを判定条件として設定したのに対して、本実施形態においては距離統計情報として、距離の最大値、距離の最小値、距離の最大最小の差、距離の平均値、距離の偏差、距離の中央値のいずれか一つ以上を判定条件として設定する。
位置情報取得部104’は、領域決定部103から入力された領域における位置姿勢を取得する。位置情報取得部104’は、位置情報を判定部105’に送る。第一実施形態において面の傾きを取得したのに対して、本実施形態においては面の距離統計情報も取得する。本実施形態では、距離統計情報として距離の中央値と偏差を利用することで、対象面が目標の距離にあり、かつ、面の高さのバラツキが少ないことをもって、対象面が傾いていない、すなわちカメラに対して正対しているかどうかを判定する。
判定部105’は、設定部101’から入力された判定条件と、位置情報取得部104’から入力された位置情報と、に基づき、検査OK/NGの判定を行う。判定部105’は、検査OK/NGの結果を修正方法取得部106’に送る。第一実施形態に対して面の傾きで判定していたのに対して、本実施形態においては、面の傾きと距離統計情報に基づいて判定を行う。
修正方法取得部106’は、判定部105’から入力された判定結果に基づき、判定がNGの場合、OKに修正するための方法を取得する。修正方法取得部106’は、取得した修正方法を出力方法決定部107に送る。第一実施形態において、面の傾きを修正するよう出力方法を決定したのに対して、本実施形態では、対象物体の面の傾きと撮像装置までの距離を修正するよう出力方法を決定する。
本実施形態における情報処理システム100’および情報処理装置10’が実行する検査装置制御手順を示すフローチャートを図13として示す。第一実施形態に示した図3と処理内容が異なる部分があるため、それぞれについて説明する。
S2’では、設定部101’が、距離統計情報に基づいて、検査OK/NGの判定条件を設定する。判定条件とは、例えば距離の統計情報と面の傾きである。対象物体4’に対して撮像装置1が正対設置しているかチェックしたい場合、対象物体4’の対象面に対して、撮像装置1が所定の範囲内に含まれる距離と傾きであることを検査する。距離の統計情報として、例えば検査領域の距離の最大値、距離の最小値、距離の最大最小の差、距離の平均値、距離の偏差、距離の中央値を利用する。例えば、撮像装置1から対象面までの距離統計情報として、距離中央値dmedが2mm以内、距離の偏差ddevが3mm以内で検査する場合、以下のように判定OKとなる範囲を設定する。
398mm≦dmed≦402mm…(12)
0mm≦ddev≦3mm…(13)
また、面の傾きを各方向ともに±3°以内であれば検査OKにするのであれば、第一実施形態のS2と同様に式(9)~(11)を設定する。
S12では、出力制御部108が、撮像装置1の位置姿勢を調整して、撮像装置1を固定する方法をユーザに提示する。最初の固定は、ユーザが対象面と撮像装置1を目視確認しながら、所定の位置姿勢に対して固定することで行う。その後、対象面の位置姿勢を取得して、距離統計情報と面の傾きに基づいて検査を行い、修正が必要な場合は、修正の指示に従い、撮像装置1の位置姿勢を適宜修正するように指示情報の出力を行う。
S13では、位置情報取得部104’が、対象物体の対象面の位置情報として、距離統計情報の取得を行う。例えば、図14の破線部分ようにトレイ上面4隅に検査領域を設定した場合、この領域内における距離統計情報を求める。
S14では、判定部105’が、撮像装置と対象面との位置関係(距離)が所定の範囲内にあるかどうかの所定の条件(第2の条件)についてOK/NG判定を行う。S2’で設定した判定条件に対して、S12で取得した結果がOKに当てはまるか否かで判定を行う。具体的には、S13で取得した距離中央値dmed、距離の偏差ddevが、S2’で設定した式(12)、(13)の範囲に収まっているかどうかをもって判定する。収まっていない場合はNGとしてS15へ、収まっている場合はOKとしてS6’へ遷移する。
S15では、修正方法取得部106’が、対象物体と撮像装置との位置関係(距離)が所定の条件(第2の条件)を満たすように、撮像装置の状態を修正する方法の取得が行われる。具体的には、取得した距離統計情報を、S2で設定した検査OKとする範囲に収めるために、撮像装置の位置または姿勢をどのように変更すればいいかを取得する。例えば、図15に示すように、撮像装置1から対象面までの距離が405mmの場合、判定条件として設定した目標値400mmに対して、5mm離れている。そのため、修正方法としては、撮像装置1を対象面に5mm近づける必要がある。
S16では、出力方法決定部107が、修正方法をユーザへ指示する方法を決定する。例えば、ディスプレイに表示することを決定する。または、スピーカー、プロジェクタ、HMDやARグラスなどにより出力することを決定してもよい。例えば、撮像装置1を対象面に正対設置させる場合、ユーザは撮像装置1と対象物体4’を見ていて、ディスプレイは見ていないことが想定される。そのため、スピーカーを使って音声でS15の取得結果として、撮像装置1を5mm対象面に対して近づける旨を出力したり、その旨を対象面にプロジェクションしたりすることでユーザへ修正方法を提示するようにする。
S17では、前記提示部は、第2の条件と位置情報とに基づいて、第2の条件を満たさない場合に、撮像装置の位置または姿勢を修正するようにユーザに対して指示情報を提示する。例えば、図16(a)のようにスピーカーを使って「5mm近づけてください」と発話させてもよい。図16(b)のように「5mm近づけてください」と指示内容を対象面にプロジェクションしてもよい。
S6’~S10’では、第一実施形態S6~S10と同様に、面の傾きを取得し、傾きの判定を行い、NGの場合はその修正方法を取得し、修正を指示する方法を決定し、修正情報を出力する。ただし、図13に示すように、距離統計情報と面の傾きについて順番に修正指示情報を出力してもよい。面の傾きから出力してもよい。両方同時に出力してもよい。両方同時に出力する場合は、S15~17の説明で示したように距離情報だけでなく、傾き情報も合わせて指示情報の出力を行う。
以上のように、本実施形態では、撮像装置1を対象面に正対設置させるための判定条件を設定した後、撮像装置により対象面の画像情報を得る。次いで、画像情報から得られた画像情報に基づき推定領域を決定し、対象面の位置姿勢として距離統計情報と面の傾きを取得し、判定条件に基づきOK/NG判定をする。そして、NGの場合は、どのように修正すればOK判定になるかを取得し、その修正の出力方法を決定し、ユーザへ修正方法を出力する。
こうすることで、撮像装置1を対象面に対して容易に正対設置させることができるため、装置を立ち上げる準備時間を短縮できる。
<第三実施形態>
次に、本発明の第三実施形態について説明する。第三実施形態では、上述した第一実施形態に対して、さらに、位置情報取得部104において、領域情報を取得するよう構成したものである。領域情報とは、設定した検査領域において、設定した距離の範囲内における面積と、中心位置と、のいずれか一つ以上のことである。なお、面積、中心位置は、検査領域の一部に対して求めてもよい。一部に対して求める場合、ユーザが設定した任意の領域に対して求めてもよいし、ある条件を満たす領域に対して求めてもよい。条件とは、例えば、画像を2値化処理し、処理後の領域を設定し、処理後の領域ごとに求めてもよいし、処理後の領域全体に対して求めてもよい。
具体的には、上述した第一実施形態と同様に、まず、検査OK/NGを判定するための判定条件を設定した後、撮像装置により対象物体の画像情報を得る。次いで、画像情報から得られた画像情報に基づき推定領域を決定し、対象面の位置姿勢として領域情報を取得し、判定条件に基づきOK/NG判定をすることで、対象物体が存在するかどうかの有無を検査する。判定NGの場合は、どのような修正をすればOK判定になるかを取得し、その修正の出力方法を決定し、ユーザへ修正の指示情報の出力を行う。
こうすることで、一度の撮影で検査領域内の物体の有無を検査し修正方法を知れるため、例えば物流現場におけるペットボトルの出荷前のキャップ有無検査工程を効率的に行える。
図17は、本実施形態における情報処理装置10’’を備える情報処理システム100’’の構成例を示す図である。図17は機器構成の一例であり、本発明の適用範囲を限定するものではない。
対象物体4’’は、出荷前工程ダンボールに詰められたペットボトルの箱のような、情報処理システム100’’によって検査されることが想定される物体である。本実施懈怠における検査とは、例えばペットボトルのキャップの有無検査である。または、ペットボトル本体の有無、ペットボトルの位置、キャップの有無に加えてキャップの種類を検査してもよい。
図18は、本実施形態における情報処理システム100’’および情報処理装置10’’の機能ブロック図である。図18に示す情報処理システム100’’および情報処理装置10’’は、図2に示す情報処理システム100に対して、設定部101と、領域決定部103と、位置情報取得部104と、判定部105と、修正方法取得部106と、の処理が異なる。
設定部101’’は、領域情報に基づいて、情報処理システム100の行う検査OK/NGの判定条件を設定する。設定部101’’は、設定した判定条件を判定部105’’に送る。第一実施形態において傾きを判定条件として設定したのに対して、本実施形態においては領域情報として、設定した領域における面積、中心座標X、Yを設定する。
領域決定手段103’’は、画像取得部102より入力された画像情報において、検査対象とする領域を決定する。領域は、第一、第二実施形態のように画像のXY平面での設定に加え、距離の範囲を設定してもよい。領域決定部103’’は、決定した領域情報を位置情報取得部104’’に送る。
位置情報取得部104’’は、領域決定部103’’から入力された領域における位置姿勢を取得する。位置情報取得部104’’は、位置情報を判定部105’’に送る。第一実施形態において面の傾きを取得したのに対して、本実施形態においては領域情報として、領域の面積、中心座標X、Yを取得する。なお、面積と中心座標は、領域全体でも、領域の一部でも、複数の領域に対して求めてもよい。前処理として収縮、膨張処理などのノイズを低減させる処理を行ってから取得してもよい。
判定部105’’は、設定部101’’から入力された判定条件と、位置情報取得部104’’から入力された位置情報と、に基づき、検査OK/NGの判定を行う。判定部105’’は、検査OK/NGの結果を修正方法取得部106’’に送る。第一実施形態に対して面の傾きで判定していたのに対して、本実施形態においては、領域情報に基づいて判定を行う。
修正方法取得部106’’は、判定部105’’から入力された判定結果に基づき、判定がNGの場合、OKに修正するための方法を取得する。修正方法取得部106’’は、取得した修正方法を出力方法決定部107に送る。第一実施形態において、面の傾きを修正するよう出力方法を決定したのに対して、本実施形態では、領域情報を修正するよう出力方法を決定する。例えば、ペットボトルのキャップの有無検査を行う場合、箱内の一部のペットボトルのキャップが無い場合、該当する箇所のペットボトルを入れ替えるよう指示を提示する。
本実施形態における情報処理システム100’’および情報処理装置10’’が実行する検査手順を示すフローチャートを図19として示す。第一の実施形態に示した図3と処理内容が異なる部分があるため、それぞれについて説明する。
S2’’では、検査OK/NGの判定条件を設定する。判定条件とは、例えば領域の面積、中心座標X、Yである。対象物体4’’であるペットボトルに対して、キャップの有無をチェックしたい場合、検査領域内の面積を利用する。具体的には、図20の破線四角形の枠のように、画像に対して検査領域を設定する場合、枠内の斜線部分がキャップの領域となる。そのため、この斜線部分の面積を判定条件として設定する。例えば、画像においてキャップ一個の面積がsであるとすると、9つのキャップがあるならば9sとなる。検査において、面積のバラツキ±5%までをOKとすると、面積Sの範囲は、以下のように判定OKとなる範囲を設定する。
0.95×9s≦S≦1.05×9s…(14)
あるいは、画像全体でなく、一部の領域ごとに設定してもよい。その場合の面積をSとすると、OKとする範囲は以下のように設定する。
0.95×s≦S≦1.05×s…(15)
さらに、それぞれの領域が図22のように一定間隔で並んでいるとすると、それぞれの領域の中心座標(Xn,Yn)を用いて、所定の位置(xn,yn)に存在するかを判定する。バラツキ±2mm以内の位置をOKとすると、9つの対象物体n=1、2、…、9に対して、以下の条件を設定する。
(x-2)mm≦X≦(x+2)mm…(16)
(y-2)mm≦Y≦(y+2)mm…(17)
なお、面積および中心位置は画像座標系において画素数を用いて設定してもよいし、ワールド座標系に変換して物理量を用いて設定してもよいし、他の座標系、単位系へ変換して設定してもよい。
S5’’では、検査領域を決定する。領域を決定する方法は、第一実施形態のように、例えば事前にユーザが設定しておいてもいいし、取得した画像情報に基づいて設定してもよい。本実施形態において、領域は平面に加えて、距離も設定する。例えば、ペットボトルのキャップを検査する場合、ペットボトルのキャップ上面までの距離を領域として設定する。これは図21のように、撮像装置1から対象物体4’’のペットボトルのキャップ上面までの距離が400mmであるはずの場合、その±10mmを検査領域として設定する。なお、図21は、図22に示す距離画像におけるX-X’の断面を横から見た図である。
S18では、対象面の位置姿勢検査として、領域情報の取得を行う。例えば、図20の斜線部分の面積を求める。面積の求め方は、S4で取得した距離画像情報において、S5’’において設定した領域情報を用いて対象領域を決定した後に、画像のXYの領域内で、かつ、設定した距離情報の範囲に含まれる画素の数を求める。面積は合計で求めてもよいし、領域ごとに求めてもよい。
S19では、目標の領域があるかどうかのOK/NGの判定を行う。S2’’で設定した判定条件に対して、S18で取得した位置姿勢の結果がOKとする範囲に当てはまるか否かで判定を行う。具体的には、S18で取得した領域の面積および中心位置が、S2’’で設定した範囲に収まっているかどうかをもって判定する。収まっていない場合はNGとしてS20へ、収まっている場合はOKとしてS11’’へ遷移する。
S20では、検査をOKに修正するための方法の取得が行われる。具体的には、取得した領域情報を、S2’’で設定した検査OKとする範囲に収めるために、位置姿勢をどのように修正すればいいかを取得する。例えば、図22のように判定NGの領域がある場合、修正すべきペットボトルが分かるように、該当箇所をユーザに示す。
S21では、修正方法をユーザへ指示する方法を決定する。例えば、プロジェクタを使って、領域内のNG箇所に対してプロジェクションする。または、スピーカーを使って、図22のように、二行目三列目の箇所がNGであることを音声で出力する。あるいは、図22のように、ディスプレイにNG箇所を表示して提示してもよい。
S22では、出力装置を使って、S21で決定した出力方法に基づき、ユーザへ修正を指示する。
S11’’では、CPU11は、次の対象物体4があるかどうかの判定をする。そして、CPU11は、対象物体4’’が存在しない場合には処理を終了すると判断して図19に示す処理を終了する。対象物体4’’が存在する場合には、処理を継続すると判断してS3に戻る。
以上のように、本実施形態では、対象物体の有無検査をするための判定条件を設定した後、撮像装置により対象物体の画像情報を得る。次いで、検査領域を決定し、対象面の位置姿勢として領域情報、ここでは面積と中心座標X,Yを取得し、判定条件に基づきOK/NG判定をする。そして、NGの場合は、該当箇所をユーザに提示する。
こうすることで、一度の撮影で検査領域内の物体の有無を検査し修正方法を知れるため、例えば物流現場におけるペットボトルの出荷前のキャップ有無検査工程を効率的に行える。
(ハードウェア構成)
情報処理装置10は、例えばパーソナルコンピュータ(PC)により構成されている。図23は、情報処理装置10のハードウェア構成の一例である。情報処理装置10は、CPU11と、ROM12と、RAM13と、外部メモリ14と、入力部15と、表示部16と、通信I/F17と、システムバス18とを備える。CPU11は、情報処理装置10における動作を統括的に制御するものであり、システムバス18を介して、各構成部(11~17)を制御する。ROM12は、CPU11が処理を実行するために必要なプログラムを記憶する不揮発性メモリである。なお、当該プログラムは、外部メモリ14や着脱可能な記憶媒体(不図示)に記憶されていてもよい。RAM13は、CPU11の主メモリ、ワークエリアとして機能する。すなわち、CPU11は、処理の実行に際してROM12から必要なプログラムをRAM13にロードし、当該プログラムを実行することで各種の機能動作を実現する。
外部メモリ14は、例えば、CPU11がプログラムを用いた処理を行う際に必要な各種データや各種情報を記憶している。また、外部メモリ14には、例えば、CPU11がプログラムを用いた処理を行うことにより得られた各種データや各種情報が記憶される。入力部15は、例えばキーボードやマウスのポインティングデバイスにより構成され、オペレータが入力部15を介して当該情報処理装置10に指示を与えることができるようになっている。表示部16は、液晶ディスプレイ(LCD)等のモニタで構成される。通信I/F17は、外部機器と通信するためのインターフェースである。システムバス18は、CPU11、ROM12、RAM13、外部メモリ14、入力部15、表示部16及び通信I/F17を通信可能に接続する。このように、情報処理装置10は、通信I/F17を介して、外部機器である撮像装置1、光源2、出力装置3、とそれぞれ通信可能に接続されており、これらの外部機器の動作を制御する。
第一実施形態によれば、対象面が傾いていることを検査して、傾きがある場合は修正方法をユーザへ提示することによって、ユーザは容易に修正方法が分かるため、短時間で修正でき、作業の効率化が図れる。
第二実施形態によれば、撮像装置1から対象面までの傾きと距離に基づき撮像装置1を対象面に正対設置させる方法をユーザへ提示することによって、ユーザは容易に撮像装置1を対象面に正対設置させることができるため、作業の効率化が図れる。
第三実施形態によれば、対象物体の有無を検査して対象物体がない箇所をユーザへ指示することによって、ユーザは容易に修正すべき箇所を認識できるため、作業の効率化が図れる。
<その他の実施形態>
第一~第三実施形態において、出力方法決定部107は、図24のように、状況認識部109の取得した環境と、ユーザの状態と、に基づいて出力方法を決定してもよい。状況認識部109は、例えばマイクであり、環境情報として、周囲の音を認識する。ここで、周囲の音がうるさい場合、出力方法決定部107は、例えばうるさい環境において音で出力するのは適切ではないと判断し、ディスプレイに表示する方法や、対象物体にプロジェクションすることで出力する方法を決定する。また、状況認識部109は、例えば撮像装置であり、ユーザの状態として、ユーザの位置を認識する。ここで、ユーザがディスプレイの遠くにいる場合、ディスプレイに指示情報を表示してもユーザが見ることが困難なので、音声で出力する。または、ユーザが対象物体を見ている場合、対象物体にプロジェクションすることで指示情報を提示する方法を決定する。
第一~第三実施形態において、出力方法決定部は、出力方法を決定するのではなく、機械装置の制御情報を決定してもよい。制御情報を機械装置に送り、対象物体を目標状態になるような制御情報を決定する。例えば、図24(b)のような構成を取ってもよい。図24(b)において、機械装置20は、例えば多関節ロボットであり、ロボットアーム等のマニピュレータ112や、ロボットハンド等の把持装置111、マニピュレータ112と把持装置111を制御するコントローラ110を備える。また、機械装置20は、マニピュレータ112の各関節の角度を変更することで把持装置111の位置姿勢を変更可能な位置姿勢変更機構を備える。位置姿勢変更機構は、電動モータによって駆動されてもよいし、油圧や空気圧等の流体圧で作動するアクチュエータによって駆動されてもよい。この位置姿勢変更機構は、情報処理装置10から出力される動作指示情報に従って駆動される。また、機械装置20は、多関節ロボットに限定されるものではなく、数値制御(Numerical Control:NC)可能な可動式の機械であってもよい。コントローラは、マニピュレータ112に付随するロボットコントローラでもよいし、プログラマブルロジックコントローラ(PLC)でもよいし、これら以外でもマニピュレータ1と把持装置3を制御できる装置であればよい。コントローラ110は、機械装置20の近くに設置されていてもよいし、マニピュレータ112と一体化していてもよいし、他の場所に設置されていてもよい。コントローラ110はマニピュレータ112、把持装置111の制御を行う。機械装置20は、出力方法決定部107が決定した出力方法に基づき修正を実行する。例えば第一実施形態の場合、対象物体4の面の傾きを直すようにマニピュレータ112および把持装置111が動作する。このような構成にすることで、人手に頼らずにロボットで不良品を修正できる。
第一~第三実施形態において、カラー画像を検査領域の設定だけでなく、検査自体に利用してもよい。例えば、第三実施形態において、ペットボトルのキャップの有無検査を行った後、有ると判定した場合、さらにカラー画像を利用して種類の検査を行ってもよい。具体的には、有無検査でキャップがあると判定されたそれぞれの領域に対して、該当する箇所のカラー画像を利用して、キャップ部分のテクスチャ情報を利用することにより、対象のキャップであるかどうかを判定する。
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、データ通信用のネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。また、そのプログラムをコンピュータが読み取り可能な記録媒体に記録して提供してもよい。
1 撮像装置
2 光源
3 出力装置
4 対象物体
10 情報処理装置
100 情報処理システム

Claims (16)

  1. 撮像装置によって対象物体を撮像した画像から得られる前記対象物体までの距離に関する距離情報を取得する取得手段と、
    前記取得手段によって取得された前記距離情報に基づいて、前記対象物体の一部の平面と所定の平面との成す角度を推定する推定手段と、
    前記推定手段によって推定された前記対象物体の一部の平面と所定の平面との角度が、複数の前記対象物体を撮像して得られた複数の距離情報に基づいて設定された条件を満たさない場合、前記角度と前記条件とに基づいて、前記対象物体の一部を前記対象物体の現在の状態から条件を満たす状態へと移動させる方向に関する情報を出力する出力手段とを有することを特徴とする情報処理装置。
  2. 前記出力手段は、前記角度が前記条件を満たさない場合、前記角度と前記条件とに基づいて、前記現在の状態と前記条件を満たす状態との差異を示すベクトルから得られる情報を出力することを特徴とする請求項1に記載の情報処理装置。
  3. 前記ベクトルから得られる情報は、前記差異の大きさを示す情報であることを特徴とする請求項2に記載の情報処理装置。
  4. 前記ベクトルから得られる情報は、前記差異の向きを示す矢印であることを特徴とする請求項2または3に記載の情報処理装置。
  5. 前記出力手段は、前記角度が前記条件を満たさない場合、前記角度と前記条件とに基づいて、前記対象物体を回転させる方向を出力することを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。
  6. 前記出力手段は、前記現在の状態と前記条件を満たす状態との差異に基づいて、前記対象物体を動かす方向を表示装置に表示させることを特徴とする請求項1乃至5のいずれか1項に記載の情報処理装置。
  7. 前記出力手段は、前記現在の状態と前記条件を満たす状態との差異に基づいて、前記対象物体を動かす方向を、投影装置によって投影させることを特徴とする請求項1乃至6のいずれか1項に記載の情報処理装置。
  8. 前記出力手段は、前記現在の状態と前記条件を満たす状態との差異に基づいて、前記対象物体を動かす方向を、音声装置によって再生させることを特徴とする請求項1乃至7のいずれか1項に記載の情報処理装置。
  9. 前記取得手段は、前記距離情報に基づいて、前記対象物体の表面を示す3次元位置の集合を取得することを特徴とする請求項1乃至8のいずれか1項に記載の情報処理装置。
  10. 前記複数の対象物体のそれぞれの距離情報は、互いに異なる前記画像から得られることを特徴とする請求項1に記載の情報処理装置。
  11. 推定手段は、前記取得手段によって取得された前記距離情報に基づいて、前記対象物体の有無を推定し、
    前記出力手段は、前期推定手段によって前記対象物体の一部が無いと推定された場合、対象物体の一部が無いことを示す情報を出力することを特徴とする請求項1に記載の情報処理装置。
  12. 前記画像に含まれる前記対象物体の画像情報に基づいて、前記画像のうち検査対象とする領域を決定する領域決定手段と、
    前記領域決定手段によって決定された領域に対して、前記対象物体が満たすべき位置または姿勢の少なくとも一方を前記条件として設定する条件設定手段と、を有することを特徴とする請求項1乃至1のいずれか1項に記載の情報処理装置。
  13. 前記出力手段は、前記角度が前記条件を満たす場合は、前記条件を満たしていることを出力することを特徴とする請求項1に記載の情報処理装置。
  14. コンピュータを、請求項1乃至13のいずれか1項に記載の情報処理装置として機能させるためのプログラム。
  15. 撮像装置によって対象物体を撮像した画像から得られる前記対象物体までの距離に関する距離情報を取得する取得工程と、
    前記取得工程によって取得された前記距離情報に基づいて、前記対象物体の一部の平面と所定の平面との成す角度を推定する推定工程と、
    前記推定工程によって推定された前記対象物体の一部の平面と所定の平面との角度が、複数の前記対象物体を撮像して得られた複数の距離情報に基づいて設定された条件を満たさない場合、前記角度と前記条件とに基づいて、前記対象物体の一部を前記対象物体の現在の状態から条件を満たす状態へと移動させる方向を出力する出力工程とを有することを特徴とする情報処理方法。
  16. 撮像装置によって対象物体を撮像した画像から得られる前記対象物体までの距離に関する距離情報を取得する取得手段と、
    前記取得手段によって取得された前記距離情報に基づいて、前記対象物体の一部の平面と所定の平面との成す角度を推定する推定手段と、
    前記推定手段によって推定された前記対象物体の一部の平面と所定の平面との角度が、複数の前記対象物体を撮像して得られた複数の距離情報に基づいて設定された条件を満たさない場合、前記角度と前記条件とに基づいて、前記対象物体の一部を前記対象物体の現在の状態から条件を満たす状態へと移動させる方向を出力する出力手段とを有することを特徴とする情報処理システム。
JP2019013224A 2019-01-29 2019-01-29 情報処理装置、情報処理方法及びシステム Active JP7378934B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2019013224A JP7378934B2 (ja) 2019-01-29 2019-01-29 情報処理装置、情報処理方法及びシステム
US16/745,159 US11842508B2 (en) 2019-01-29 2020-01-16 Information processing apparatus, information processing method, and system that inspects a state of a target object using distance information
CN202010076174.1A CN111507935A (zh) 2019-01-29 2020-01-23 信息处理装置、信息处理方法和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019013224A JP7378934B2 (ja) 2019-01-29 2019-01-29 情報処理装置、情報処理方法及びシステム

Publications (3)

Publication Number Publication Date
JP2020123042A JP2020123042A (ja) 2020-08-13
JP2020123042A5 JP2020123042A5 (ja) 2022-02-03
JP7378934B2 true JP7378934B2 (ja) 2023-11-14

Family

ID=71732711

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019013224A Active JP7378934B2 (ja) 2019-01-29 2019-01-29 情報処理装置、情報処理方法及びシステム

Country Status (3)

Country Link
US (1) US11842508B2 (ja)
JP (1) JP7378934B2 (ja)
CN (1) CN111507935A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022063395A (ja) * 2020-10-12 2022-04-22 トヨタ自動車株式会社 位置補正システム、位置補正方法及び位置補正プログラム
US11501502B2 (en) * 2021-03-19 2022-11-15 International Business Machines Corporation Augmented reality guided inspection

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004084140A1 (ja) 2003-03-18 2004-09-30 Fujitsu Limited 撮影装置
JP2012193980A (ja) 2011-03-15 2012-10-11 Omron Corp 画像処理装置および画像処理プログラム
JP2015038466A (ja) 2013-07-16 2015-02-26 株式会社キーエンス 三次元画像処理装置、三次元画像処理方法及び三次元画像処理プログラム並びにコンピュータで読み取り可能な記録媒体及び記録した機器
JP2017010327A (ja) 2015-06-23 2017-01-12 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
JP2017061025A (ja) 2015-09-25 2017-03-30 キヤノン株式会社 ロボット制御装置、ロボット制御方法及びコンピュータプログラム

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1149287A (ja) 1997-08-07 1999-02-23 C G A Kk キャップ浮き検査装置
JP4492654B2 (ja) * 2007-08-29 2010-06-30 オムロン株式会社 3次元計測方法および3次元計測装置
KR100840023B1 (ko) * 2007-11-13 2008-06-20 (주)올라웍스 셀프 촬영 시 얼굴의 구도를 잡도록 도와주는 방법 및시스템
US7992365B2 (en) * 2008-01-11 2011-08-09 Parata Systems, Llc Devices and methods for verifying capping of vials in system for dispensing prescriptions
JP6167622B2 (ja) * 2013-04-08 2017-07-26 オムロン株式会社 制御システムおよび制御方法
JP6242098B2 (ja) * 2013-07-16 2017-12-06 株式会社キーエンス 三次元画像処理装置、三次元画像処理方法及び三次元画像処理プログラム並びにコンピュータで読み取り可能な記録媒体及び記録した機器
JP6271953B2 (ja) * 2013-11-05 2018-01-31 キヤノン株式会社 画像処理装置、画像処理方法
JP6278752B2 (ja) * 2014-03-05 2018-02-14 株式会社キーエンス 形状検査装置及び形状検査方法
JP6632208B2 (ja) * 2015-03-24 2020-01-22 キヤノン株式会社 情報処理装置、情報処理方法、プログラム
JP6572600B2 (ja) * 2015-04-09 2019-09-11 セイコーエプソン株式会社 情報処理装置、情報処理装置の制御方法、および、コンピュータープログラム
US9852500B2 (en) * 2015-07-15 2017-12-26 GM Global Technology Operations LLC Guided inspection of an installed component using a handheld inspection device
JP6348093B2 (ja) * 2015-11-06 2018-06-27 ファナック株式会社 入力データから検出対象物の像を検出する画像処理装置および方法
US10171730B2 (en) * 2016-02-15 2019-01-01 Canon Kabushiki Kaisha Information processing apparatus, method of controlling information processing apparatus, and storage medium
US10194990B2 (en) * 2016-04-27 2019-02-05 Arthrology Consulting, Llc Method for augmenting a surgical field with virtual guidance content
CN107645628B (zh) * 2016-07-21 2021-08-06 中兴通讯股份有限公司 一种信息处理方法及装置
KR20190013224A (ko) * 2017-08-01 2019-02-11 엘지전자 주식회사 이동 단말기
JP6881188B2 (ja) * 2017-09-27 2021-06-02 オムロン株式会社 位置検出装置およびプログラム
JP2019067323A (ja) * 2017-10-05 2019-04-25 ソニー株式会社 情報処理装置、情報処理方法、及び記録媒体
FR3074907B1 (fr) * 2017-12-08 2019-12-27 Tiama Methode et machine pour controler un procede de formage
US10413172B2 (en) * 2017-12-11 2019-09-17 1-800 Contacts, Inc. Digital visual acuity eye examination for remote physician assessment
US11397077B2 (en) * 2018-01-05 2022-07-26 Stmicroelectronics, Inc. Power and security adjustment for face identification with reflectivity detection by a ranging sensor
KR102537784B1 (ko) * 2018-08-17 2023-05-30 삼성전자주식회사 전자 장치 및 그 제어 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004084140A1 (ja) 2003-03-18 2004-09-30 Fujitsu Limited 撮影装置
JP2012193980A (ja) 2011-03-15 2012-10-11 Omron Corp 画像処理装置および画像処理プログラム
JP2015038466A (ja) 2013-07-16 2015-02-26 株式会社キーエンス 三次元画像処理装置、三次元画像処理方法及び三次元画像処理プログラム並びにコンピュータで読み取り可能な記録媒体及び記録した機器
JP2017010327A (ja) 2015-06-23 2017-01-12 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
JP2017061025A (ja) 2015-09-25 2017-03-30 キヤノン株式会社 ロボット制御装置、ロボット制御方法及びコンピュータプログラム

Also Published As

Publication number Publication date
US20200242796A1 (en) 2020-07-30
US11842508B2 (en) 2023-12-12
CN111507935A (zh) 2020-08-07
JP2020123042A (ja) 2020-08-13

Similar Documents

Publication Publication Date Title
US9529945B2 (en) Robot simulation system which simulates takeout process of workpieces
JP5850962B2 (ja) ビジュアルフィードバックを利用したロボットシステム
JP6734253B2 (ja) ワークを撮像する視覚センサを備える撮像装置
JP6892286B2 (ja) 画像処理装置、画像処理方法、及びコンピュータプログラム
US9511493B2 (en) Information processing apparatus and method for controlling the same
JP6317618B2 (ja) 情報処理装置およびその方法、計測装置、並びに、作業装置
JP6520451B2 (ja) 外観撮影装置及び外観撮影方法
JP2008021092A (ja) ロボットシステムのシミュレーション装置
US9905016B2 (en) Robot identification system
JP2009214265A (ja) ロボット教示装置
JP7378934B2 (ja) 情報処理装置、情報処理方法及びシステム
JP2015090298A (ja) 情報処理装置、情報処理方法
US10726569B2 (en) Information processing apparatus, information processing method, and non-transitory computer-readable storage medium
US20190255706A1 (en) Simulation device that simulates operation of robot
JP6180158B2 (ja) 位置姿勢計測装置、位置姿勢計測装置の制御方法、およびプログラム
JP6337445B2 (ja) ロボット、処理装置及び検査方法
JP5857803B2 (ja) 産業用機械の干渉判定装置、干渉判定方法、コンピュータプログラムおよび記録媒体
JP2020091126A (ja) 計測装置、システム、表示方法及びプログラム
JP6285765B2 (ja) 情報処理装置、情報処理方法
JP7494652B2 (ja) 外観検査準備装置および外観検査準備方法
WO2022163580A1 (ja) 視覚センサにて取得される3次元の位置情報から断面画像を生成する処理装置および処理方法
WO2024004681A1 (ja) ロボット教示装置、外観検査システムおよびロボット教示方法
WO2022249295A1 (ja) ロボットシミュレーション装置
WO2023157083A1 (ja) ワークの位置を取得する装置、制御装置、ロボットシステム、及び方法
TW202305749A (zh) 模擬裝置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220126

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220126

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230407

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230627

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230822

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20231003

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231101

R151 Written notification of patent or utility model registration

Ref document number: 7378934

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151