JP2019007891A - 機械学習装置、ロボット制御システム及び機械学習方法 - Google Patents
機械学習装置、ロボット制御システム及び機械学習方法 Download PDFInfo
- Publication number
- JP2019007891A JP2019007891A JP2017125285A JP2017125285A JP2019007891A JP 2019007891 A JP2019007891 A JP 2019007891A JP 2017125285 A JP2017125285 A JP 2017125285A JP 2017125285 A JP2017125285 A JP 2017125285A JP 2019007891 A JP2019007891 A JP 2019007891A
- Authority
- JP
- Japan
- Prior art keywords
- imaging
- machine learning
- inspected
- scratch
- unit
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01N—INVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
- G01N21/00—Investigating or analysing materials by the use of optical means, i.e. using sub-millimetre waves, infrared, visible or ultraviolet light
- G01N21/84—Systems specially adapted for particular applications
- G01N21/88—Investigating the presence of flaws or contamination
- G01N21/8851—Scan or image signal processing specially adapted therefor, e.g. for scan signal adjustment, for detecting different kinds of defects, for compensating for structures, markings, edges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/776—Validation; Performance evaluation
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J19/00—Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
- B25J19/02—Sensing devices
- B25J19/021—Optical sensing devices
- B25J19/023—Optical sensing devices including video camera means
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1612—Programme controls characterised by the hand, wrist, grip control
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/163—Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1674—Programme controls characterised by safety, monitoring, diagnostic
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1679—Programme controls characterised by the tasks executed
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1694—Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
- B25J9/1697—Vision controlled systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/217—Validation; Performance evaluation; Active pattern learning techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/28—Determining representative reference patterns, e.g. by averaging or distorting; Generating dictionaries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
- G06T7/0004—Industrial image inspection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/772—Determining representative reference patterns, e.g. averaging or distorting patterns; Generating dictionaries
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01N—INVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
- G01N21/00—Investigating or analysing materials by the use of optical means, i.e. using sub-millimetre waves, infrared, visible or ultraviolet light
- G01N21/84—Systems specially adapted for particular applications
- G01N21/88—Investigating the presence of flaws or contamination
- G01N21/8851—Scan or image signal processing specially adapted therefor, e.g. for scan signal adjustment, for detecting different kinds of defects, for compensating for structures, markings, edges
- G01N2021/8887—Scan or image signal processing specially adapted therefor, e.g. for scan signal adjustment, for detecting different kinds of defects, for compensating for structures, markings, edges based on image processing techniques
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/37—Measurements
- G05B2219/37448—Inspection process planner
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/45—Nc applications
- G05B2219/45066—Inspection robot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30108—Industrial image inspection
- G06T2207/30164—Workpiece; Machine component
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/06—Recognition of objects for industrial automation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Software Systems (AREA)
- Medical Informatics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Automation & Control Theory (AREA)
- Quality & Reliability (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Orthopedic Medicine & Surgery (AREA)
- Signal Processing (AREA)
- Chemical & Material Sciences (AREA)
- Analytical Chemistry (AREA)
- Biochemistry (AREA)
- Immunology (AREA)
- Pathology (AREA)
- Manipulator (AREA)
- Investigating Materials By The Use Of Optical Means Adapted For Particular Applications (AREA)
- Feedback Control In General (AREA)
Abstract
【課題】ロボットを使用したキズ検査を行うための機械学習装置、ロボット制御システム及び機械学習方法を提供する。【解決手段】機械学習装置10は、ロボットハンド201にワーク50又はカメラ210を持たせてワーク50のキズ検査を行うロボット制御検査システム20から、ワーク50のキズ検出箇所を含むキズ検出情報と、ロボットハンド201の移動経路とワーク50の撮像点と、カメラによる撮像回数と、を含む状態情報sを取得する状態情報取得部110と、状態sの調整情報である行動aを出力する行動情報出力部130と、キズ検出箇所を含むキズ検出情報に基づいて、強化学習における報酬の値を算出する報酬算出部121と、報酬算出部121により算出された報酬の値と、状態sと、行動aとに基づいて強化学習を行うことにより行動価値関数Qを更新する価値関数更新部140と、を備える。【選択図】図2
Description
本発明は、機械学習装置、ロボット制御システム及び機械学習方法に関する。
ロボットにワークかつカメラを持たせてワークのキズ検査を行うことは、例えば特許文献1に記載されているように、従来から行われている。例えば、特許文献1に記載されているように、まず、準備作業として、ロボットに接続された動作処理部に対して検査ルートと複数の撮像地点とを記憶させるティーチングステップを実行する。このようなティーチングステップにおいて、複数の撮像ポイントを登録し、各撮像ポイントにおいてロボットの先端に設けられたCCDカメラが撮像ポイントにおける照明手段からの反射光を検出し、検出した光学情報をパルス信号として出力するように教示することで、検査ルートと複数の撮像ポイントとが動作プログラムとしてロボットに接続された動作処理部のティーチング部に記憶される。
このように、ロボットを使用したキズ検査では、ロボットの位置を教示し、ワークの撮像個所を指定する必要がある。撮像個所の指定方法として、検査したい範囲内を均等に撮像する方法があるが、範囲全体を入念に検査する場合、以下の2点が問題になる。
第1に、キズ検査では小さなキズも見逃さないようにするため、カメラの解像力を上げた状態で検査することが多く、視野サイズを狭めて実施することが多い。このため、1回の撮像で検査できる範囲は狭くなり、狭い間隔で撮像を繰り返す必要がある。第2に、キズの写り方はカメラ・ワーク・照明の位置関係で異なり、これらの位置関係によってはキズを見逃す可能性がある。したがって、キズの見逃しを減らすためには、各個所においてカメラ・ワーク・照明の位置関係を変えながら撮像する必要がある。
このように、ロボットを使用したキズ検査では、ロボットの位置を教示し、ワークの撮像個所を指定する必要がある。撮像個所の指定方法として、検査したい範囲内を均等に撮像する方法があるが、範囲全体を入念に検査する場合、以下の2点が問題になる。
第1に、キズ検査では小さなキズも見逃さないようにするため、カメラの解像力を上げた状態で検査することが多く、視野サイズを狭めて実施することが多い。このため、1回の撮像で検査できる範囲は狭くなり、狭い間隔で撮像を繰り返す必要がある。第2に、キズの写り方はカメラ・ワーク・照明の位置関係で異なり、これらの位置関係によってはキズを見逃す可能性がある。したがって、キズの見逃しを減らすためには、各個所においてカメラ・ワーク・照明の位置関係を変えながら撮像する必要がある。
このように、ロボットを使用したキズ検査では、小さなキズも見逃さないようにするために、ワークの撮像個所を指定する際に、被検査面全体が細かく撮像されるように撮像点(撮像個所)を決めるとともに、カメラ・照明とワークの位置関係によるキズの写り方を考慮するため、同じ個所においてワークの向きが異なるように(すなわち、照明の方向が異なるように)、複数のロボット位置を教示することが必要となる。
これに対して、ワークの加工条件等により、キズがどこの部位に発生するか(キズの発生部位)、どのような形状(特徴)のキズが発生するか(キズの種類)等に何らかの傾向がある場合が多い。ワークの個所によってキズつきやすさや、機能上・見た目上で求められる検査精度は異なる。このため、例えば、人が検査する場合には、経験を積むことで、注意すべき個所は念入りに見るが、あまり不良が発生しない個所はさっと見るということが可能となる。
ロボットを使用したキズ検査においても、人が検査する場合と同様に、キズが発生する可能性が高い個所は念入りに、キズの発生頻度が少ない個所は簡潔に検査することで、撮像枚数、撮像個所を最適化し、検査のサイクルタイムを短縮することが求められている。
これに対して、ワークの加工条件等により、キズがどこの部位に発生するか(キズの発生部位)、どのような形状(特徴)のキズが発生するか(キズの種類)等に何らかの傾向がある場合が多い。ワークの個所によってキズつきやすさや、機能上・見た目上で求められる検査精度は異なる。このため、例えば、人が検査する場合には、経験を積むことで、注意すべき個所は念入りに見るが、あまり不良が発生しない個所はさっと見るということが可能となる。
ロボットを使用したキズ検査においても、人が検査する場合と同様に、キズが発生する可能性が高い個所は念入りに、キズの発生頻度が少ない個所は簡潔に検査することで、撮像枚数、撮像個所を最適化し、検査のサイクルタイムを短縮することが求められている。
本発明は、係る課題に鑑みなされたものであり、その目的は、ロボットを使用したキズ検査において、キズが発生する可能性が高い個所は念入りに、キズの発生頻度が少ない個所は簡潔に検査することで、撮像枚数、撮像個所を最適化し、検査のサイクルタイムを短縮するための機械学習装置、ロボット制御システム及び機械学習方法を提供することである。
(1)本発明の機械学習装置(例えば、後述の機械学習装置10)は、被検査物(例えば、後述のワーク50)の被検査面に照明光を照射する照明手段(例えば、後述の照明220)と、前記被検査面を撮像する撮像手段(例えば、後述のカメラ210)と、ロボットハンド(例えば、後述のロボットハンド201)を備えるロボット(例えば、後述のロボット200)と、前記撮像手段により撮像される複数の画像により前記被検査面が網羅されるように前記被検査面の上に設定される複数の撮像点を含む撮像領域を撮像する移動経路に沿って、前記被検査物又は前記撮像手段を把持する前記ロボットハンドを移動させながら、前記被検査面の上に設定された前記撮像点において前記撮像手段に撮像させる制御部(例えば、後述の制御装置300)と、前記撮像点において、前記撮像手段により前記被検査面を撮像した画像に基づいて、前記被検査面の上におけるキズを検出するキズ検査部(例えば、後述のキズ検査装置400)と、を備えるロボット制御システム(例えば、後述のロボット制御検査システム20)に対して、強化学習を行う機械学習装置であって、前記撮像点を含む撮像領域の調整情報を含む行動情報を、前記制御部に対して出力する行動情報出力部(例えば、後述の行動情報出力部130)と、予め用意された複数の被検査物のそれぞれの被検査物について、前記行動情報に基づいて、前記制御部が前記被検査物又は前記撮像手段を把持する前記ロボットハンドを移動させて、前記撮像手段により前記被検査面を撮像した画像に基づいて、前記キズ検査部により検出した前記被検査面のキズ検出箇所を含むキズ検出情報と、撮像回数と、を含む状態情報を前記制御部及び前記キズ検査部から取得する状態情報取得部(例えば、後述の状態情報取得部110)と、前記状態情報に含まれる前記キズ検出箇所を含むキズ検出情報、及び前記撮像回数に基づいて、強化学習における報酬の値を出力する報酬出力部(例えば、後述の報酬算出部121)と、前記報酬の値と、前記状態情報と、前記行動情報と、に基づいて、行動価値関数を更新する価値関数更新部(例えば、後述の価値関数更新部122)と、を備える。
(2) (1)に記載の機械学習装置において、前記報酬出力部は、前記キズ検査部により検出したキズ検出箇所の個数が、所定の撮像点を含む撮像領域を撮像した機械学習開始時の初期状態における前記キズ検査部により検出したキズ検出箇所の個数と一致する場合であって、前記撮像回数が前記機械学習開始時の初期状態における前記撮像回数よりも少ない場合に、前記報酬の値を正の値とし、前記キズ検査部により検出したキズ検出箇所の個数が、前記所定の撮像点を含む撮像領域を撮像した機械学習開始時の初期状態における前記キズ検査部により検出したキズ検出箇所の個数よりも少ない場合に、前記報酬の値を負の値としてもよい。
(3) (2)に記載の機械学習装置において、前記報酬出力部は、前記キズ検査部により検出したキズ検出箇所の個数が、前記所定の撮像点を含む撮像領域を撮像した機械学習開始時の初期状態における前記キズ検査部により検出したキズ検出箇所の個数と一致する場合に、前記撮像回数が前記機械学習開始時の初期状態における前記撮像回数よりも少ないほど前記報酬の値をより大きな値にしてもよい。
(4) (2)又は(3)に記載の機械学習装置において、前記価値関数更新部により更新された前記行動価値関数に基づいて、前記キズ検出箇所の個数が、前記機械学習開始時の初期状態における前記キズ検査部により検出したキズ検出箇所の個数と一致する行動情報であって、前記撮像回数が最小となる最適化行動情報を生成する最適化行動情報出力部、を備えてもよい。
(5) (1)に記載の機械学習装置において、前記報酬出力部は、前記キズ検査部により検出した、前記被検査面の所定の領域におけるキズ検出箇所の個数が、所定の撮像点を含む撮像領域を撮像した機械学習開始時の初期状態における前記キズ検査部により検出した、前記被検査面の所定の領域におけるキズ検出箇所の個数と一致する場合であって、撮像回数が前記機械学習開始時の初期状態における撮像回数よりも少ない場合に、前記報酬の値を正の値とし、前記キズ検査部により検出した、前記被検査面の所定の領域におけるキズ検出箇所の個数が、前記所定の撮像点を含む撮像領域を撮像した機械学習開始時の初期状態における前記キズ検査部により検出した、前記被検査面の所定の領域におけるキズ検出箇所の個数よりも少ない場合に、前記報酬の値を負の値としてもよい。
(6) (5)に記載の機械学習装置において前記報酬出力部は、前記キズ検査部により検出した、前記被検査面の所定の領域におけるキズ検出箇所の個数が、前記所定の撮像点を含む撮像領域を撮像した機械学習開始時の初期状態における前記キズ検査部により検出した、前記被検査面の所定の領域におけるキズ検出箇所の個数と一致する場合に、前記撮像回数が前記機械学習開始時の初期状態における前記撮像回数よりも少ないほど前記報酬の値をより大きな値にしてもよい。
(7) (5)又は(6)に記載の機械学習装置において、前記価値関数更新部により更新された前記行動価値関数に基づいて、前記被検査面の所定の領域における前記キズ検出箇所の個数が、前記所定の撮像点を含む撮像領域を撮像した機械学習開始時の初期状態における前記キズ検査部により検出した、前記被検査面の所定の領域におけるキズ検出箇所の個数と一致する行動情報であって、前記撮像回数が最小となる最適化行動情報を生成する最適化行動情報出力部(例えば、後述の最適化行動情報出力部150)、を備えるようにしてもよい。
(8) (1)から(7)までのいずれかに記載の機械学習装置において、他の機械学習装置との間で前記行動価値関数を共有し、前記価値関数更新部が、共有した前記行動価値関数を更新するようにしてもよい。
(9) 本発明によるロボット制御システムは、(1)から(8)までのいずれかに記載の機械学習装置を備える。
(10) 本発明による機械学習方法は、被検査物の被検査面に照明光を照射する照明手段と、前記被検査面を撮像する撮像手段と、ロボットハンドを備えるロボットと、前記撮像手段により撮像される複数の画像により前記被検査面が網羅されるように前記被検査面の上に設定される撮像点を含む撮像領域を撮像する移動経路に沿って、前記被検査物又は前記撮像手段を把持する前記ロボットハンドを移動させながら、前記被検査面の上に設定された前記撮像点において前記撮像手段に撮像させる制御部と、前記撮像点において、前記撮像手段により前記被検査面を撮像した画像に基づいて、前記被検査面の上におけるキズを検出するキズ検査部と、を備えるロボット制御システムに対して、強化学習を行う機械学習装置による機械学習方法であって、前記撮像点を含む撮像領域の調整情報を含む行動情報を、前記制御部に対して出力する行動情報出力ステップと、予め用意された複数の被検査物のそれぞれの被検査物について、前記行動情報に基づいて、前記制御部が前記被検査物又は前記撮像手段を把持する前記ロボットハンドを移動させて、前記撮像手段により前記被検査面を撮像した画像に基づいて、前記キズ検査部により検出したキズ検出箇所を含むキズ検出情報と、撮像回数と、を含む状態情報を前記制御部及び前記キズ検査部から取得する状態情報取得ステップと、前記状態情報に含まれる前記キズ検出箇所を含むキズ検出情報、及び前記撮像回数に基づいて、強化学習における報酬の値を出力する報酬出力ステップと、
前記報酬の値と、前記状態情報と、前記行動情報と、に基づいて、行動価値関数を更新する価値関数更新ステップと、を備える。
前記報酬の値と、前記状態情報と、前記行動情報と、に基づいて、行動価値関数を更新する価値関数更新ステップと、を備える。
本発明によれば、ロボットを使用したキズ検査において、キズが発生する可能性が高い個所は念入りに、キズの発生頻度が少ない個所や重要度が低い個所は簡潔に検査することで、撮像枚数、撮像個所を最適化し、検査のサイクルタイムを短縮することができる機械学習装置、ロボット制御システム及び機械学習方法を提供できる。
以下、本発明の実施形態について図面を用いて詳細に説明する。
<実施形態の全体構成>
図1は、本実施形態である機械学習システム1の全体構成を示す機能ブロック図である。また、図2は、本発明の実施形態の機械学習システム1の概要図である。図1及び図2に示すように、機械学習システム1は、機械学習装置10、ロボット制御検査システム20と、ワーク50と、を含んで構成される。ロボット制御検査システム20は、ロボット200、カメラ210、照明220、制御装置300、及びキズ検査装置400を備えている。ここで、機械学習装置10と制御装置300及びキズ検査装置400とは、図1に示すようにネットワーク70を介して接続、又は図2に示すように接続インタフェースを介して直接に接続されており、相互に通信を行うことが可能である。なお、ネットワーク70は、例えば工場内に構築されたLAN(Local Area Network)や、インターネット、公衆電話網、あるいはこれらの組み合わせである。ネットワーク70における具体的な通信方式や、優先接続及び無線接続のいずれであるか等については特に限定されない。
<実施形態の全体構成>
図1は、本実施形態である機械学習システム1の全体構成を示す機能ブロック図である。また、図2は、本発明の実施形態の機械学習システム1の概要図である。図1及び図2に示すように、機械学習システム1は、機械学習装置10、ロボット制御検査システム20と、ワーク50と、を含んで構成される。ロボット制御検査システム20は、ロボット200、カメラ210、照明220、制御装置300、及びキズ検査装置400を備えている。ここで、機械学習装置10と制御装置300及びキズ検査装置400とは、図1に示すようにネットワーク70を介して接続、又は図2に示すように接続インタフェースを介して直接に接続されており、相互に通信を行うことが可能である。なお、ネットワーク70は、例えば工場内に構築されたLAN(Local Area Network)や、インターネット、公衆電話網、あるいはこれらの組み合わせである。ネットワーク70における具体的な通信方式や、優先接続及び無線接続のいずれであるか等については特に限定されない。
機械学習装置10は、ロボット制御検査システム20を使用した被検査物としてのワーク50のキズ検査において、キズが発生する可能性が高い個所は念入りに、キズの発生頻度が少ない個所は簡潔に検査することで、撮像枚数、撮像個所を最適化し、検査のサイクルタイムを短縮するための機械学習を行う装置である。
機械学習装置10は、例えば、パーソナルコンピュータや、サーバ装置又は数値制御装置(CNC:Computerized Numerical Control)等により実現できる。機械学習装置10の詳細については後述する。
機械学習装置10は、例えば、パーソナルコンピュータや、サーバ装置又は数値制御装置(CNC:Computerized Numerical Control)等により実現できる。機械学習装置10の詳細については後述する。
ロボット制御検査システム20について説明する。前述したとおり、ロボット制御検査システム20は、ロボット200、カメラ210、照明220、制御装置300、及びキズ検査装置400を備えている。
図2に示すように、ロボット210は、様々な位置及び角度に姿勢制御されるロボットハンド201を備える。ロボット200は、例えば、ワーク置き場に用意された複数の被検査物としてのワーク50を順番に把持し、ロボットハンド201は把持したワーク50の位置姿勢を変更可能とされる。
なお、ワーク50がその外形形状において複数の被検査面を有する場合、ワーク50の有する被検査面毎にキズ検査が行われる。この場合、複数の被検査面のそれぞれの被検査面毎にキズ検査すればよい。そこで、本実施形態においては、ワーク50において所定の被検査面のキズ検査が行われる場合について説明する。
なお、ワーク50がその外形形状において複数の被検査面を有する場合、ワーク50の有する被検査面毎にキズ検査が行われる。この場合、複数の被検査面のそれぞれの被検査面毎にキズ検査すればよい。そこで、本実施形態においては、ワーク50において所定の被検査面のキズ検査が行われる場合について説明する。
カメラ210は、ワーク50の被検査面を撮像するための撮像手段であり、例えばCCDイメージセンサやCMOSイメージセンサ等の撮像素子により構成される。カメラ220は、支持体213により、ロボットハンド201により把持されるワーク50の被検査面を撮像することができるように所定の姿勢で支持される。また、照明220は、カメラ210と同様に支持体213により、ロボットハンド201により把持されるワーク50の被検査面に対して光を当てることができる所定の姿勢で支持される。照明220は、例えば、ワーク50の被検査面の周囲から光を当てるリング照明又はドーム照明、1方向から光を当てるバー照明等、被検査物に応じて適宜構成される。
本実施形態では、光学系を構成するカメラ210及び照明220は固定された状態で設けられる。すなわち、ロボット制御検査システム20においては、ロボットハンド201の動作によりロボットハンド201に把持したワーク50の位置姿勢を変更することにより、ワーク50の被検査面上に設定される撮像点を含む撮像領域がカメラ210により撮像されるように構成される。
なお、本実施形態では、ワーク50とカメラ210との相対的な位置関係を変化させるために、カメラ210を固定して、ワーク50を移動させるように構成するが、これに限定されない。例えば、ワーク50を固定して、カメラ210をロボットハンド201に把持させて、把持したカメラ210の位置姿勢を変更可能とするように構成してもよい。
本実施形態では、光学系を構成するカメラ210及び照明220は固定された状態で設けられる。すなわち、ロボット制御検査システム20においては、ロボットハンド201の動作によりロボットハンド201に把持したワーク50の位置姿勢を変更することにより、ワーク50の被検査面上に設定される撮像点を含む撮像領域がカメラ210により撮像されるように構成される。
なお、本実施形態では、ワーク50とカメラ210との相対的な位置関係を変化させるために、カメラ210を固定して、ワーク50を移動させるように構成するが、これに限定されない。例えば、ワーク50を固定して、カメラ210をロボットハンド201に把持させて、把持したカメラ210の位置姿勢を変更可能とするように構成してもよい。
<制御装置300>
制御装置300は、カメラ210により撮像される複数の画像によりワーク50の被検査面が網羅されるように被検査面の上に設定される複数の撮像点を含む移動経路に沿って、ワーク50を把持するロボットハンド201を移動させながら、ワーク50の被検査面の上に設定された各撮像点においてカメラ210に撮像させる。
より具体的には、例えば特許文献1に記載されているように、ロボット200に接続された制御装置300に対して移動経路と複数の撮像点とを記憶させるティーチングステップを実行する。このようなティーチングステップにおいて、複数の撮像点を登録し、各撮像点においてカメラ210が撮像点(撮像領域)における照明220からの反射光を撮像するように教示することで、移動経路と複数の撮像点(撮像領域)とが動作プログラムとしてロボット200に接続された制御装置300に記憶される。そうすることで、制御装置300は、登録された撮像点がカメラ210で撮像する場合の撮像点になるように、ロボットハンド201を移動するように動作指示がなされる。
図3は、制御装置300の機能ブロック図を示す。図3に示すように、制御装置300は、撮像箇所情報設定部310と、移動経路算出部320と、移動動作制御部330と、撮像制御部340と、撮像情報送信部350と、を備える。
制御装置300は、カメラ210により撮像される複数の画像によりワーク50の被検査面が網羅されるように被検査面の上に設定される複数の撮像点を含む移動経路に沿って、ワーク50を把持するロボットハンド201を移動させながら、ワーク50の被検査面の上に設定された各撮像点においてカメラ210に撮像させる。
より具体的には、例えば特許文献1に記載されているように、ロボット200に接続された制御装置300に対して移動経路と複数の撮像点とを記憶させるティーチングステップを実行する。このようなティーチングステップにおいて、複数の撮像点を登録し、各撮像点においてカメラ210が撮像点(撮像領域)における照明220からの反射光を撮像するように教示することで、移動経路と複数の撮像点(撮像領域)とが動作プログラムとしてロボット200に接続された制御装置300に記憶される。そうすることで、制御装置300は、登録された撮像点がカメラ210で撮像する場合の撮像点になるように、ロボットハンド201を移動するように動作指示がなされる。
図3は、制御装置300の機能ブロック図を示す。図3に示すように、制御装置300は、撮像箇所情報設定部310と、移動経路算出部320と、移動動作制御部330と、撮像制御部340と、撮像情報送信部350と、を備える。
<撮像箇所について>
撮像箇所情報設定部310の機能を説明する前に、図4A〜図4Eを参照して、撮像箇所について説明する。図4A〜図4Eは、(ロボットハンド201により把持される)ワーク50の被検査面とカメラ210の光軸(及び照明220の照明光)との位置関係を示す図である。
本実施形態では、前述したとおり、光学系を構成するカメラ210及び照明220は固定された状態で設けられる。すなわち、ロボット制御検査システム20においては、ロボットハンド201の動作によりロボットハンド201に把持したワーク50の位置姿勢を変更することにより、ワーク50の被検査面上に設定される撮像点を含む撮像領域をカメラ210により撮像するように構成される。
ここで、撮像点とは、図4Aに示すように、カメラ210により撮像する際の光軸上に位置する点であり、撮像領域とは、カメラ210により撮像される撮像範囲を意味する。また、カメラ210から撮像点までの距離が近い場合には、図4Bに示す撮像領域1のように撮像領域は狭くなり(視野が狭くなり)、カメラ210から撮像点までの距離を離した場合には撮像領域2のように撮像領域は広く(視野が広く)なる。このように、カメラ210によりワーク50の被検査面を撮像する場合、撮像点におけるピントの範囲内において、カメラ210から撮像点までの距離を調整することで、撮像回数の増減を図ることが可能となる。
なお、カメラ210によりワーク50の被検査面を撮像する場合、ワーク50の被検査面に形成されるキズの形状によっては、カメラ210及び照明220と、ワーク50の撮像点との位置関係を複数設定することが必要となる。
このため、撮像点を含む撮像領域がカメラ210の光軸(及び照明220の照明光)に対して、例えば図4Cに示すように垂直となる撮像以外に、同じ撮像点において、当該撮像点を含む撮像領域がカメラ210の光軸及び照明220の照明光に対して垂直でない角度となるように、例えば図4D又は図4Eに示すようにロボットハンド201の動作によりロボットハンド201に把持したワーク50の向きを調整することで、キズ検出の精度を高めることができる。
このように、カメラ210によりワーク50の被検査面を撮像する場合、撮像点、カメラ210から当該撮像点までの距離、及び当該撮像点におけるワーク50の向き(以下、これらを「撮像箇所情報」という)を指定することで、ロボットハンド201により把持されるワーク50の被検査面とカメラ210の光軸及び照明220の照明光との位置関係が一意的に定まるとともに、カメラ210により撮像される、被検査面の撮像領域が一意的に定まる。
撮像箇所情報設定部310の機能を説明する前に、図4A〜図4Eを参照して、撮像箇所について説明する。図4A〜図4Eは、(ロボットハンド201により把持される)ワーク50の被検査面とカメラ210の光軸(及び照明220の照明光)との位置関係を示す図である。
本実施形態では、前述したとおり、光学系を構成するカメラ210及び照明220は固定された状態で設けられる。すなわち、ロボット制御検査システム20においては、ロボットハンド201の動作によりロボットハンド201に把持したワーク50の位置姿勢を変更することにより、ワーク50の被検査面上に設定される撮像点を含む撮像領域をカメラ210により撮像するように構成される。
ここで、撮像点とは、図4Aに示すように、カメラ210により撮像する際の光軸上に位置する点であり、撮像領域とは、カメラ210により撮像される撮像範囲を意味する。また、カメラ210から撮像点までの距離が近い場合には、図4Bに示す撮像領域1のように撮像領域は狭くなり(視野が狭くなり)、カメラ210から撮像点までの距離を離した場合には撮像領域2のように撮像領域は広く(視野が広く)なる。このように、カメラ210によりワーク50の被検査面を撮像する場合、撮像点におけるピントの範囲内において、カメラ210から撮像点までの距離を調整することで、撮像回数の増減を図ることが可能となる。
なお、カメラ210によりワーク50の被検査面を撮像する場合、ワーク50の被検査面に形成されるキズの形状によっては、カメラ210及び照明220と、ワーク50の撮像点との位置関係を複数設定することが必要となる。
このため、撮像点を含む撮像領域がカメラ210の光軸(及び照明220の照明光)に対して、例えば図4Cに示すように垂直となる撮像以外に、同じ撮像点において、当該撮像点を含む撮像領域がカメラ210の光軸及び照明220の照明光に対して垂直でない角度となるように、例えば図4D又は図4Eに示すようにロボットハンド201の動作によりロボットハンド201に把持したワーク50の向きを調整することで、キズ検出の精度を高めることができる。
このように、カメラ210によりワーク50の被検査面を撮像する場合、撮像点、カメラ210から当該撮像点までの距離、及び当該撮像点におけるワーク50の向き(以下、これらを「撮像箇所情報」という)を指定することで、ロボットハンド201により把持されるワーク50の被検査面とカメラ210の光軸及び照明220の照明光との位置関係が一意的に定まるとともに、カメラ210により撮像される、被検査面の撮像領域が一意的に定まる。
撮像箇所情報設定部310は、ロボットハンド201により把持されるワーク50の被検査面における撮像箇所情報を設定する。なお、撮像箇所情報は、後述するように、機械学習装置100から出力される行動情報又は最適化行動情報に基づいて設定される。
移動経路算出部320は、撮像箇所情報設定部310により設定された被検査面における撮像箇所情報により一意的に決定されるロボットハンド201により把持されるワーク50の被検査面とカメラ210の光軸及び照明220の照明光との位置関係に基づいて、ロボットハンド201の移動経路を算出する。
移動動作制御部330は、撮像箇所情報設定部320により算出されたロボットハンド201の移動経路に基づいて、ロボットハンド201を移動させることで、撮像箇所情報設定部310により設定された撮像箇所情報に含まれる全ての撮像点がカメラ210で撮像する場合の撮像点になるようにロボットハンド201に把持したワーク50の被検査面とカメラ210の光軸及び照明220の照明光との位置関係を満たすように制御される。
撮像制御部340は、ロボットハンド201が移動動作制御部330により撮像箇所情報に含まれる撮像箇所に到達すると、カメラ210に対して、照明220からの反射光を撮像するように制御する。
撮像情報送信部350は、撮像制御部340により撮像したワーク50の画像を撮像箇所情報に含まれる各撮像箇所に紐付けて、キズ検査装置400に送信する。なお、撮像したワーク50の画像は、撮像するつど送信することが望ましい。ただし、撮像した画像をまとめてバッチ送信してもよい。
また、撮像情報送信部350は、撮像箇所情報及び撮像回数を機械学習装置10にも送信する。
また、撮像情報送信部350は、撮像箇所情報及び撮像回数を機械学習装置10にも送信する。
なお、制御装置300とロボット200、カメラ210、及び照明220とは、それぞれ1対1の組とされて、通信可能に接続されている。なお、制御装置300とロボット200、カメラ210、及び照明220とは、接続インタフェースを介して直接接続されても、また、LAN(Local Area Network)等のネットワークを介して接続されてもよい。
<キズ検査装置400>
図5は、キズ検査装置400の機能ブロック図を示す。図5に示すように、キズ検査装置400は、撮像情報受信部410と、キズ検出部420と、キズ検出情報送信部430と、を備える。
撮像情報受信部410は、ワーク50の被検査面の、撮像箇所情報に紐付けられたワーク50の画像を、制御装置300から受信する。
キズ検出部420は、撮像箇所情報に含まれる撮像箇所に紐付けられた画像毎に、ワーク50のキズの有無を判定する。キズの判定に際しては、例えば、輝度の値に基づいて行ってもよい。ワーク50のキズを検出した場合、当該ワーク50において、撮像箇所情報に紐付けられた画像毎にキズ検出箇所(位置情報)及びキズの数を特定する。そして、キズの検出された当該画像における位置情報を例えば、当該ワーク50の被検査面上の位置情報に変換することで、当該ワーク50の被検査面上のキズ検出箇所を特定することができる。
キズ検出情報送信部430は、キズ検出部420により検出されたワーク50の撮像箇所情報に紐付けられた画像毎のキズ検出箇所(位置情報)及びキズの数、並びに当該ワーク50の被検査面上に検出された全てのキズの位置情報及びキズの数を含む、キズ検出情報を機械学習装置10に送信する。なお、キズ検出部420によりワーク50のキズを検出できなかった場合、当該ワーク50に関するキズ検出無し情報を機械学習装置10に送信する。
図5は、キズ検査装置400の機能ブロック図を示す。図5に示すように、キズ検査装置400は、撮像情報受信部410と、キズ検出部420と、キズ検出情報送信部430と、を備える。
撮像情報受信部410は、ワーク50の被検査面の、撮像箇所情報に紐付けられたワーク50の画像を、制御装置300から受信する。
キズ検出部420は、撮像箇所情報に含まれる撮像箇所に紐付けられた画像毎に、ワーク50のキズの有無を判定する。キズの判定に際しては、例えば、輝度の値に基づいて行ってもよい。ワーク50のキズを検出した場合、当該ワーク50において、撮像箇所情報に紐付けられた画像毎にキズ検出箇所(位置情報)及びキズの数を特定する。そして、キズの検出された当該画像における位置情報を例えば、当該ワーク50の被検査面上の位置情報に変換することで、当該ワーク50の被検査面上のキズ検出箇所を特定することができる。
キズ検出情報送信部430は、キズ検出部420により検出されたワーク50の撮像箇所情報に紐付けられた画像毎のキズ検出箇所(位置情報)及びキズの数、並びに当該ワーク50の被検査面上に検出された全てのキズの位置情報及びキズの数を含む、キズ検出情報を機械学習装置10に送信する。なお、キズ検出部420によりワーク50のキズを検出できなかった場合、当該ワーク50に関するキズ検出無し情報を機械学習装置10に送信する。
機械学習装置10は、ロボット制御検査システム20を使用した被検査物としてのワーク50のキズ検査において、後述するように、所定の撮像点を含む撮像領域を予め設定し、機械学習開始時の初期状態s0において観測されるワーク50のキズ検出箇所を含むキズ検出情報を基準として、初期状態s0において観測される検出されたワーク50のキズ検出情報と同等のキズ情報を検出することのできるように撮像点を含む撮像領域を調整することで、撮像枚数、撮像個所を減らし、検査のサイクルタイムを短縮するための機械学習(強化学習)を行う。
次に、機械学習装置10に含まれる各機能ブロックの説明に先立って、強化学習の基本的な仕組みについて説明する。
強化学習において、エージェント(本実施形態における機械学習装置10に相当)は、環境の状態を観測し、ある行動を選択し、当該行動に基づいて環境が変化する。環境の変化に伴って、何らかの報酬が与えられ、エージェントはより良い行動の選択(意思決定)を学習する。
教師あり学習が、完全な正解を示すのに対して、強化学習における報酬は、環境の一部の変化に基づく断片的な値であることが多い。
このため、エージェントは、将来にわたっての報酬の合計を最大にするように行動を選択するように学習する。
強化学習において、エージェント(本実施形態における機械学習装置10に相当)は、環境の状態を観測し、ある行動を選択し、当該行動に基づいて環境が変化する。環境の変化に伴って、何らかの報酬が与えられ、エージェントはより良い行動の選択(意思決定)を学習する。
教師あり学習が、完全な正解を示すのに対して、強化学習における報酬は、環境の一部の変化に基づく断片的な値であることが多い。
このため、エージェントは、将来にわたっての報酬の合計を最大にするように行動を選択するように学習する。
このように、強化学習では、行動を学習することにより、環境に行動が与える相互作用を踏まえて適切な行動を学習、すなわち将来的に得られる報酬を最大にするための学習する方法を学ぶ。これは、本実施形態において、例えば、キズが発生する可能性が高い個所は念入りに、キズの発生頻度が少ない個所は簡潔に行うように検査することで、撮像枚数、撮像個所を最適化し、検査のサイクルタイムを短縮するという、未来に影響をおよぼすような行動を獲得できることを表している。
ここで、強化学習としては、任意の学習方法を用いることができるが、以下の説明では、或る環境の状態sの下で、行動aを選択する価値Q(s,a)を学習する方法であるQ学習(Q−learning)を用いる場合を例にとって説明をする。
Q学習では、或る状態sのとき、取り得る行動aのなかから、価値Q(s,a)の最も高い行動aを最適な行動として選択することを目的とする。
Q学習では、或る状態sのとき、取り得る行動aのなかから、価値Q(s,a)の最も高い行動aを最適な行動として選択することを目的とする。
しかしながら、Q学習を最初に開始する時点では、状態sと行動aとの組み合わせについて、価値Q(s,a)の正しい値は全く分かっていない。そこで、エージェントは、或る状態sの下で様々な行動aを選択し、その時の行動aに対して、与えられる報酬に基づいて、より良い行動の選択をすることにより、正しい価値Q(s,a)を学習していく。
また、将来にわたって得られる報酬の合計を最大化したいので、最終的に価値Q(s,a)=E[Σ(γt)rt]となるようにすることを目指す。ここでE[]は期待値を表し、tは時刻、γは後述する割引率と呼ばれるパラメータ、rtは時刻tにおける報酬、Σは時刻tによる合計である。この式における期待値は、最適な行動にしたがって状態変化した場合の期待値である。しかしQ学習の過程において、最適な行動が何であるのかは不明であるので、様々な行動を行うことにより、探索しながら強化学習をする。このような価値Q(s,a)の更新式は、例えば、次の[数1]により表すことができる。
上記の式(1)において、stは、時刻tにおける環境の状態を表し、atは、時刻tにおける行動を表す。行動atにより、状態はst+1に変化する。rt+1は、その状態の変化により得られる報酬を表している。また、maxの付いた項は、状態st+1の下で、その時に分かっている最もQ値の高い行動aを選択した場合のQ値にγを乗じたものになる。ここで、γは、0<γ≦1のパラメータで、割引率と呼ばれる。また、αは、学習係数で、0<α≦1の範囲とする。
上述した式(1)は、試行atの結果、返ってきた報酬rt+1を元に、状態stにおける行動atの価値Q(st,at)を更新する方法を表している。
この更新式は、状態stにおける行動atの価値Q(st,at)よりも、行動atによる次の状態st+1における最良の行動の価値maxa Q(st+1,a)の方が大きければ、価値Q(st,at)を大きくし、逆に小さければ、価値Q(st,at)を小さくすることを示している。つまり、或る状態における或る行動の価値を、それによる次の状態における最良の行動の価値に近づける。ただし、その差は、割引率γと報酬rt+1のあり方により変わってくるが、基本的には、ある状態における最良の行動の価値が、それに至る1つ前の状態における行動の価値に伝播していく仕組みになっている。
この更新式は、状態stにおける行動atの価値Q(st,at)よりも、行動atによる次の状態st+1における最良の行動の価値maxa Q(st+1,a)の方が大きければ、価値Q(st,at)を大きくし、逆に小さければ、価値Q(st,at)を小さくすることを示している。つまり、或る状態における或る行動の価値を、それによる次の状態における最良の行動の価値に近づける。ただし、その差は、割引率γと報酬rt+1のあり方により変わってくるが、基本的には、ある状態における最良の行動の価値が、それに至る1つ前の状態における行動の価値に伝播していく仕組みになっている。
ここで、Q学習では、すべての状態行動ペア(s,a)についての価値Q(s,a)のテーブルを作成して、学習を行う方法がある。しかし、すべての状態行動ペアの価値Q(s,a)の値を求めるには状態数が多すぎて、Q学習が収束するのに多くの時間を要してしまう場合がある。
そこで、公知のDQN(Deep Q−Network)と呼ばれる技術を利用するようにしてもよい。具体的には、価値関数Qを適当なニューラルネットワークを用いて構成し、ニューラルネットワークのパラメータを調整することにより、価値関数Qを適当なニューラルネットワークで近似することにより価値Q(s,a)の値を算出するようにしてもよい。DQNを利用することにより、Q学習が収束するのに要する時間を短くすることが可能となる。なお、DQNについては、例えば、以下の非特許文献に詳細な記載がある。
<非特許文献>
「Human−level control through deep reinforcement learning」、Volodymyr Mnih1著[online]、[平成29年3月17日検索]、インターネット〈URL:http://files.davidqiu.com/research/nature14236.pdf〉
「Human−level control through deep reinforcement learning」、Volodymyr Mnih1著[online]、[平成29年3月17日検索]、インターネット〈URL:http://files.davidqiu.com/research/nature14236.pdf〉
以上、説明したQ学習を機械学習装置10が行う。
具体的には、機械学習装置10は、予め用意された複数のワーク50(以下、「学習用ワーク」という)のそれぞれについて、制御装置300(撮像情報送信部350)から送信される撮像箇所情報と、キズ検査装置400(キズ検出情報送信部430)から送信される、当該撮像箇所情報に係る撮像箇所におけるキズ検出箇所を含むキズ検出情報と、により特定される状態を環境状態sとして観測し、当該環境状態sにて、撮像箇所情報(撮像点と撮像領域)の調整を行動aとして選択して、価値Qを学習する。
すなわち、本実施形態における機械学習は、ワーク50の全てについて学習することは実質的に困難なため、予め用意された複数の学習用ワーク50のそれぞれにおいて検出されるキズ検出情報の集合に基づいて、同じワーク50においてキズの発生し易い個所や、キズの見つかりやすい角度や位置がキズのパターンを特定されること(いわゆる標本調査)を前提としている。したがって、複数の学習用ワーク50を用意するにあたっては、標本(複数の学習用ワーク50)が当該ワーク50の母集団全体の特徴をよく表したものになるように、つまり、母集団のよい縮図となるように抽出するものとすることが望ましい。以下、学習用ワーク50の個数をM個とし、各学習用ワーク50は、インデックスk(1≦k≦M)で識別する。
具体的には、機械学習装置10は、予め用意された複数のワーク50(以下、「学習用ワーク」という)のそれぞれについて、制御装置300(撮像情報送信部350)から送信される撮像箇所情報と、キズ検査装置400(キズ検出情報送信部430)から送信される、当該撮像箇所情報に係る撮像箇所におけるキズ検出箇所を含むキズ検出情報と、により特定される状態を環境状態sとして観測し、当該環境状態sにて、撮像箇所情報(撮像点と撮像領域)の調整を行動aとして選択して、価値Qを学習する。
すなわち、本実施形態における機械学習は、ワーク50の全てについて学習することは実質的に困難なため、予め用意された複数の学習用ワーク50のそれぞれにおいて検出されるキズ検出情報の集合に基づいて、同じワーク50においてキズの発生し易い個所や、キズの見つかりやすい角度や位置がキズのパターンを特定されること(いわゆる標本調査)を前提としている。したがって、複数の学習用ワーク50を用意するにあたっては、標本(複数の学習用ワーク50)が当該ワーク50の母集団全体の特徴をよく表したものになるように、つまり、母集団のよい縮図となるように抽出するものとすることが望ましい。以下、学習用ワーク50の個数をM個とし、各学習用ワーク50は、インデックスk(1≦k≦M)で識別する。
機械学習装置10は、価値Qの学習のために、行動aをするたびに報酬を算出する。そして、機械学習装置10は、例えば、将来にわたっての報酬の合計が最大になるように最適な行動aを試行錯誤的に探索する。そうすることで、機械学習装置10は、環境状態sに対して、最適な行動aを選択することが可能となる。
この際、機械学習装置10が、各環境状態sにおいて観測されるキズ検出情報に洩れが無いかどうかを判定するために、機械学習を始めるに際して、当該複数のワーク50について、正確なキズ検出情報を検出しておく必要がある。
このため、機械学習装置10は、初期状態s0を予め設定し、初期状態s0において観測されるキズ検出情報を基準として、機械学習開始後における各状態sにおけるキズ検出情報を判定するように構成される。そして、行動aをするたびに算出される報酬は、状態sにおけるキズ検出情報の判定に基づいて算出される。
このため、機械学習装置10は、初期状態s0を予め設定し、初期状態s0において観測されるキズ検出情報を基準として、機械学習開始後における各状態sにおけるキズ検出情報を判定するように構成される。そして、行動aをするたびに算出される報酬は、状態sにおけるキズ検出情報の判定に基づいて算出される。
このようにして機械学習装置10は、価値関数Qを学習する。そして、学習した価値関数Qに基づいて、或る状態sに対して適用される行動aのうち、Qの値が最大となるような行動aを選択することで、例えば、初期状態s0おいて観測されるキズ検出情報と同じキズ検出情報を検出することのできる、最適な撮像箇所情報(撮像点と撮像領域)を得ることができる。
<機械学習装置10の機能ブロック>
次に、図6を参照して、上述した強化学習を行う機械学習装置10の機能ブロックについて説明をする。
図6に示すように、機械学習装置10は、状態情報取得部110、学習部120、行動情報出力部130、価値関数記憶部140、及び最適化行動情報出力部150を備える。また、学習部120は報酬算出部121、価値関数更新部122、及び行動情報生成部123を備える。
次に、図6を参照して、上述した強化学習を行う機械学習装置10の機能ブロックについて説明をする。
図6に示すように、機械学習装置10は、状態情報取得部110、学習部120、行動情報出力部130、価値関数記憶部140、及び最適化行動情報出力部150を備える。また、学習部120は報酬算出部121、価値関数更新部122、及び行動情報生成部123を備える。
状態情報取得部110は、制御装置300に設定された撮像箇所情報(撮像点と撮像領域)と、撮像回数と、キズ検査装置400により検出される学習用ワーク50(k)(1≦k≦M)のキズ検出情報と、を含む状態情報sを、それぞれ制御装置300及びキズ検査装置400から取得する。この状態情報sは、Q学習における環境状態sに対応する。
状態情報取得部110は、取得した状態情報sを学習部120に対して出力する。
状態情報取得部110は、取得した状態情報sを学習部120に対して出力する。
<初期状態s0における撮像箇所情報>
機械学習装置10が機械学習を始めるにあたって、初期状態s0は、例えば次のように設定される。
例えば図4Aに示すように、検査漏れやキズの見逃しが無いように、初期状態s0に含まれる撮像箇所情報の示す撮像箇所は、撮像領域を狭くし、ワーク50の被検査面が均等に撮像されるように撮像点を細かく設定することが好ましい。この際、例えば各撮像点の撮像領域が近傍の撮像点の撮像領域と重なるように撮像点及び撮像領域を設定してもよい。さらに、図4C〜図4Eに示したように、カメラ210及び照明220と学習用ワーク50の被検査面との位置関係によるキズの写り方を考慮するため、同じ撮像点において、学習用ワーク50の向きが異なるように複数の向きを設定することが好ましい。なお、本実施形態では、撮像点及び撮像領域について、図4Aに示すように均等に設定するように設定したが、これに限定されない。検査漏れやキズの見逃しが無いように、全体を細かく撮像できればよく、撮像点及び撮像領域は均等でなくともよい。
ここで、初期状態s0に含まれる撮像箇所情報に対応する撮像箇所(撮像点、カメラ210から当該撮像点までの距離、及び当該撮像点における学習用ワーク50の向き)をインデックスにより識別する。
すなわち、初期状態s0において、N個の撮像点(i)(1≦i≦N)が設定され、撮像点(i)におけるカメラ210から当該撮像点までの設定された距離をD(i)とし、撮像点(i)における学習用ワーク50の向きR(i,j)とする。ここで、撮像点(i)における学習用ワーク50の向きは、1以上のn(i)個数分定義されているとする(1≦j≦n(i))。
そうすると、前述したように、撮像点(i)における各撮像領域(i,j){1≦i≦N,1≦j≦n(i)}は、撮像点(i)、カメラ210から撮像点(i)までの設定された距離をD(i)、及び撮像点(i)における学習用ワーク50の向きR(i,j)により一意的に決まる。
機械学習装置10が機械学習を始めるにあたって、初期状態s0は、例えば次のように設定される。
例えば図4Aに示すように、検査漏れやキズの見逃しが無いように、初期状態s0に含まれる撮像箇所情報の示す撮像箇所は、撮像領域を狭くし、ワーク50の被検査面が均等に撮像されるように撮像点を細かく設定することが好ましい。この際、例えば各撮像点の撮像領域が近傍の撮像点の撮像領域と重なるように撮像点及び撮像領域を設定してもよい。さらに、図4C〜図4Eに示したように、カメラ210及び照明220と学習用ワーク50の被検査面との位置関係によるキズの写り方を考慮するため、同じ撮像点において、学習用ワーク50の向きが異なるように複数の向きを設定することが好ましい。なお、本実施形態では、撮像点及び撮像領域について、図4Aに示すように均等に設定するように設定したが、これに限定されない。検査漏れやキズの見逃しが無いように、全体を細かく撮像できればよく、撮像点及び撮像領域は均等でなくともよい。
ここで、初期状態s0に含まれる撮像箇所情報に対応する撮像箇所(撮像点、カメラ210から当該撮像点までの距離、及び当該撮像点における学習用ワーク50の向き)をインデックスにより識別する。
すなわち、初期状態s0において、N個の撮像点(i)(1≦i≦N)が設定され、撮像点(i)におけるカメラ210から当該撮像点までの設定された距離をD(i)とし、撮像点(i)における学習用ワーク50の向きR(i,j)とする。ここで、撮像点(i)における学習用ワーク50の向きは、1以上のn(i)個数分定義されているとする(1≦j≦n(i))。
そうすると、前述したように、撮像点(i)における各撮像領域(i,j){1≦i≦N,1≦j≦n(i)}は、撮像点(i)、カメラ210から撮像点(i)までの設定された距離をD(i)、及び撮像点(i)における学習用ワーク50の向きR(i,j)により一意的に決まる。
<初期状態s0におけるキズ検出情報>
初期状態s0におけるキズ検出情報は、各学習用ワーク50(k)(1≦k≦M)に対して、初期状態s0に含まれる撮像領域(i,j){1≦i≦N,1≦j≦n(i)}毎に検出される。
初期状態s0におけるキズ検出情報は、学習用ワーク50(k)毎に検出された被検査面上の全てのキズの位置情報及びキズの数を含むキズ検出情報を、キズ検出テーブル_初期状態s0として記憶部(図示せず)に記憶する。
なお、後述する機械学習(強化学習)により、前述した初期状態s0に含まれる撮像領域(i,j){1≦i≦N,1≦j≦n(i)}を調整することで、初期状態s0におけるキズ検査と同等の精度を有し、かつ撮像回数が最小となるような、撮像点及び撮像領域を求めることができる。より具体的には、状態sにおいて、学習用ワーク50(k)毎に検出された被検査面上の全てのキズの位置情報及びキズの数を含むキズ検出情報を、キズ検出テーブル_状態sとして記憶部(図示せず)に記憶する。
初期状態s0におけるキズ検出情報は、各学習用ワーク50(k)(1≦k≦M)に対して、初期状態s0に含まれる撮像領域(i,j){1≦i≦N,1≦j≦n(i)}毎に検出される。
初期状態s0におけるキズ検出情報は、学習用ワーク50(k)毎に検出された被検査面上の全てのキズの位置情報及びキズの数を含むキズ検出情報を、キズ検出テーブル_初期状態s0として記憶部(図示せず)に記憶する。
なお、後述する機械学習(強化学習)により、前述した初期状態s0に含まれる撮像領域(i,j){1≦i≦N,1≦j≦n(i)}を調整することで、初期状態s0におけるキズ検査と同等の精度を有し、かつ撮像回数が最小となるような、撮像点及び撮像領域を求めることができる。より具体的には、状態sにおいて、学習用ワーク50(k)毎に検出された被検査面上の全てのキズの位置情報及びキズの数を含むキズ検出情報を、キズ検出テーブル_状態sとして記憶部(図示せず)に記憶する。
学習部120は、或る環境状態sの下で、ある行動aを選択する場合の価値Q(s,a)を学習する部分である。この学習を行うために、学習部120は、報酬算出部121、価値関数更新部122及び行動情報生成部123を備える。
報酬算出部121は、或る状態sの下で、行動aを選択した場合の報酬を算出する。行動aを実行した場合の状態をs´とする。
報酬算出部121は、キズ検出テーブル_状態s´と、キズ検出テーブル_初期状態s0と、を学習用ワーク50(k)毎に比較することで、状態s´に含まれるキズ検出情報と、初期状態s0に含まれるキズ検出情報と、が同じ検出結果(例えば、学習用ワーク50(k)の被検査面におけるキズ検出箇所の個数が同じ結果)を示しているかどうか判断し、同じ検出結果を示している場合であって、かつ状態s´に含まれる撮像回数が、初期状態s0における撮像回数よりも少ない場合に、報酬rの値を正の値とする。より具体的には、報酬算出部121は、キズ検出テーブル_状態sと、キズ検出テーブル_初期状態s0と、を学習用ワーク50(k)毎に比較することで、同じ検出結果かどうかを判断する。
なお、状態s´に含まれる学習用ワーク50(k)のキズ検出情報と、初期状態s0に含まれる学習用ワーク50(k)のキズ検出情報と、が同じ検出結果(例えば、学習用ワーク50(k)の被検査面におけるキズ検出箇所の個数が同じ結果)を示している場合であって、かつ状態s´に含まれる撮像回数が、初期状態s0における撮像回数と等しい場合に、報酬rの値をゼロとする。
逆に、状態s´に含まれる学習用ワーク50(k)のキズ検出情報が、初期状態s0に含まれる学習用ワーク50(k)のキズ検出情報よりも少ない場合(例えば、学習用ワーク50(k)の被検査面におけるキズ検出箇所の個数が少ない場合)報酬rの値を負の値とする。なお、本実施形態における学習は、キズ検出情報が同じとなることを前提としていることから、報酬が負の値になるような行動は選択されないようにすることが望ましい。このため、負の値としては、例えば大きな負の値としてもよい。
なお、状態s´に含まれる学習用ワーク50(k)のキズ検出情報と、初期状態s0に含まれる学習用ワーク50(k)のキズ検出情報と、が同じ検出結果(例えば、ワーク50の被検査面におけるキズ検出箇所の個数が同じ結果)を示している場合、状態s´の撮像回数が初期状態s0における撮像回数よりも少ないほど報酬rの値をより大きな値にしてもよい。
報酬算出部121は、キズ検出テーブル_状態s´と、キズ検出テーブル_初期状態s0と、を学習用ワーク50(k)毎に比較することで、状態s´に含まれるキズ検出情報と、初期状態s0に含まれるキズ検出情報と、が同じ検出結果(例えば、学習用ワーク50(k)の被検査面におけるキズ検出箇所の個数が同じ結果)を示しているかどうか判断し、同じ検出結果を示している場合であって、かつ状態s´に含まれる撮像回数が、初期状態s0における撮像回数よりも少ない場合に、報酬rの値を正の値とする。より具体的には、報酬算出部121は、キズ検出テーブル_状態sと、キズ検出テーブル_初期状態s0と、を学習用ワーク50(k)毎に比較することで、同じ検出結果かどうかを判断する。
なお、状態s´に含まれる学習用ワーク50(k)のキズ検出情報と、初期状態s0に含まれる学習用ワーク50(k)のキズ検出情報と、が同じ検出結果(例えば、学習用ワーク50(k)の被検査面におけるキズ検出箇所の個数が同じ結果)を示している場合であって、かつ状態s´に含まれる撮像回数が、初期状態s0における撮像回数と等しい場合に、報酬rの値をゼロとする。
逆に、状態s´に含まれる学習用ワーク50(k)のキズ検出情報が、初期状態s0に含まれる学習用ワーク50(k)のキズ検出情報よりも少ない場合(例えば、学習用ワーク50(k)の被検査面におけるキズ検出箇所の個数が少ない場合)報酬rの値を負の値とする。なお、本実施形態における学習は、キズ検出情報が同じとなることを前提としていることから、報酬が負の値になるような行動は選択されないようにすることが望ましい。このため、負の値としては、例えば大きな負の値としてもよい。
なお、状態s´に含まれる学習用ワーク50(k)のキズ検出情報と、初期状態s0に含まれる学習用ワーク50(k)のキズ検出情報と、が同じ検出結果(例えば、ワーク50の被検査面におけるキズ検出箇所の個数が同じ結果)を示している場合、状態s´の撮像回数が初期状態s0における撮像回数よりも少ないほど報酬rの値をより大きな値にしてもよい。
価値関数更新部122は、状態sと、行動aと、行動aを状態sに適用した場合の状態s´と、上記のようにして算出された報酬の値と、に基づいてQ学習を行うことにより、価値関数記憶部140が記憶する価値関数Qを更新する。
価値関数Qの更新は、オンライン学習で行ってもよく、バッチ学習で行ってもよく、ミニバッチ学習で行ってもよい。
オンライン学習とは、或る行動aを現在の状態sに適用することにより、状態sが新たな状態s´に遷移する都度、即座に価値関数Qの更新を行うという学習方法である。また、バッチ学習とは、或る行動aを現在の状態sに適用することにより、状態sが新たな状態s´に遷移することを繰り返すことにより、学習用のデータを収集し、収集した全ての学習用データを用いて、価値関数Qの更新を行うという学習方法である。さらに、ミニバッチ学習とは、オンライン学習と、バッチ学習の中間的な、ある程度学習用データが溜まるたびに価値関数Qの更新を行うという学習方法である。
オンライン学習とは、或る行動aを現在の状態sに適用することにより、状態sが新たな状態s´に遷移する都度、即座に価値関数Qの更新を行うという学習方法である。また、バッチ学習とは、或る行動aを現在の状態sに適用することにより、状態sが新たな状態s´に遷移することを繰り返すことにより、学習用のデータを収集し、収集した全ての学習用データを用いて、価値関数Qの更新を行うという学習方法である。さらに、ミニバッチ学習とは、オンライン学習と、バッチ学習の中間的な、ある程度学習用データが溜まるたびに価値関数Qの更新を行うという学習方法である。
行動情報生成部123は、現在の状態sに対して、Q学習の過程における行動aを選択する。行動情報生成部123は、Q学習の過程において、撮像回数を減少させる行動aを生成する。例えば、図7に示すように、行動情報生成部123は、キズ検出テーブル_初期状態s0においてほとんど全ての学習用ワーク50(k)(1≦k≦M)で、キズ検出箇所の出ていない撮像箇所については、ピントの合う範囲で、カメラ210から撮像点までの距離を大きくするように調整する行動aを生成するようにしてもよい。視野が広くなることで、他の撮像箇所をカバーする場合は、撮像箇所数を減少させることができる。
より具体的には、前述したように、初期状態s0における学習用ワーク50(k)(1≦k≦M)のキズ検出情報は、初期状態s0に含まれる撮像領域(i,j){1≦i≦N,1≦j≦n(i)}毎に検出される。
行動aは、初期状態s0に含まれる撮像領域(i,j){1≦i≦N,1≦j≦n(i)}を調整することで生成することができる。
すなわち、例えば、撮像点(i)において、複数の向き(≦n(i))により同じキズを検出することが可能な場合、向きを限定するように調整する行動aを生成してもよい。
また、例えば、図7に示すように、複数の撮像領域において学習用ワーク50(k)(1≦k≦M)のキズ検出箇所がほとんど出ていない場合、複数の撮像領域に含まれる撮像点(i)を選択して、ピントの合う範囲で、カメラ210から、撮像点(i)までの距離を大きくするように調整する行動aを生成するようにしてもよい。撮像点(i)を含む撮像領域を広げることで、撮像点(i)の近傍に位置する撮像点(l)における撮像を省略して、撮像箇所数を減少させる行動aを生成することができる。
また、行動情報生成部123は、行動aをランダムに選択するという方策を取るようにしてもよい。他にも、現在の推定される行動aの価値の中で、最も価値Q(s,a)の高い行動aを選択するグリーディ法や、ある小さな確率εでランダムに行動aを選択し、それ以外では最も価値Q(s,a)の高い行動aを選択するεグリーディ法といった公知の方法により、行動aを選択する方策を取るようにしてもよい。
より具体的には、前述したように、初期状態s0における学習用ワーク50(k)(1≦k≦M)のキズ検出情報は、初期状態s0に含まれる撮像領域(i,j){1≦i≦N,1≦j≦n(i)}毎に検出される。
行動aは、初期状態s0に含まれる撮像領域(i,j){1≦i≦N,1≦j≦n(i)}を調整することで生成することができる。
すなわち、例えば、撮像点(i)において、複数の向き(≦n(i))により同じキズを検出することが可能な場合、向きを限定するように調整する行動aを生成してもよい。
また、例えば、図7に示すように、複数の撮像領域において学習用ワーク50(k)(1≦k≦M)のキズ検出箇所がほとんど出ていない場合、複数の撮像領域に含まれる撮像点(i)を選択して、ピントの合う範囲で、カメラ210から、撮像点(i)までの距離を大きくするように調整する行動aを生成するようにしてもよい。撮像点(i)を含む撮像領域を広げることで、撮像点(i)の近傍に位置する撮像点(l)における撮像を省略して、撮像箇所数を減少させる行動aを生成することができる。
また、行動情報生成部123は、行動aをランダムに選択するという方策を取るようにしてもよい。他にも、現在の推定される行動aの価値の中で、最も価値Q(s,a)の高い行動aを選択するグリーディ法や、ある小さな確率εでランダムに行動aを選択し、それ以外では最も価値Q(s,a)の高い行動aを選択するεグリーディ法といった公知の方法により、行動aを選択する方策を取るようにしてもよい。
行動情報出力部130は、学習部120から出力される行動情報aを制御装置300の撮像箇所設定部310に対して送信する。そうすることで、ロボット制御検査システム20は、次の状態s´(すなわち修正された撮像箇所情報に基づく、撮像箇所における撮像と当該撮像された画像を利用したキズ検出)に遷移する。
<行動aの生成タイミングについて>
ここで、行動情報算出部130の行動aを生成するタイミングについて説明する。本実施形態においては、(状態sに含まれる)全ての学習用ワーク50(k)(1≦k≦M)のキズ検出情報と初期状態s0に含まれる全ての学習用ワーク50(k)(1≦k≦M)のキズ検出情報とを比較することで、より効果的な行動aを生成することができることから、行動情報算出部130は、(状態sに含まれる)全ての学習用ワーク50(k)(1≦k≦M)のキズ検出情報取得後に、行動aを生成するように構成される。
これに対して、前述したように、情報作成報酬算出部121は、今回の状態sに含まれる、任意のm(1≦m≦M)における学習用ワーク50(m)のキズ検出箇所が、初期状態s0に含まれる当該学習用ワーク50(m)のキズ検出箇所よりも少ない場合、それ以降の学習用ワーク50(k)(k>m)のキズ検出情報の如何に関わらず、報酬を負の値にすることができる。
したがって、行動情報算出部130は、今回の状態sに含まれる、任意のm(1≦m≦M)における学習用ワーク50(m)のキズ検出箇所が、初期状態s0に含まれる当該学習用ワーク50(m)のキズ検出箇所よりも少ない場合、それ以降の学習用ワーク50(k)(k>m)のキズ検出情報の如何に関わらず、行動aを生成するようにしてもよい。そうすることで、今回の状態sにおける、学習用ワーク50(k)(k>m)のキズ検出作業を省略させて、行動情報出力部130により、次の状態s´(すなわち修正された撮像箇所情報に基づく、撮像箇所における撮像と当該撮像された画像を利用したキズ検出)に遷移するようにしてもよい。それにより、機械学習時間を短縮することができる。
ここで、行動情報算出部130の行動aを生成するタイミングについて説明する。本実施形態においては、(状態sに含まれる)全ての学習用ワーク50(k)(1≦k≦M)のキズ検出情報と初期状態s0に含まれる全ての学習用ワーク50(k)(1≦k≦M)のキズ検出情報とを比較することで、より効果的な行動aを生成することができることから、行動情報算出部130は、(状態sに含まれる)全ての学習用ワーク50(k)(1≦k≦M)のキズ検出情報取得後に、行動aを生成するように構成される。
これに対して、前述したように、情報作成報酬算出部121は、今回の状態sに含まれる、任意のm(1≦m≦M)における学習用ワーク50(m)のキズ検出箇所が、初期状態s0に含まれる当該学習用ワーク50(m)のキズ検出箇所よりも少ない場合、それ以降の学習用ワーク50(k)(k>m)のキズ検出情報の如何に関わらず、報酬を負の値にすることができる。
したがって、行動情報算出部130は、今回の状態sに含まれる、任意のm(1≦m≦M)における学習用ワーク50(m)のキズ検出箇所が、初期状態s0に含まれる当該学習用ワーク50(m)のキズ検出箇所よりも少ない場合、それ以降の学習用ワーク50(k)(k>m)のキズ検出情報の如何に関わらず、行動aを生成するようにしてもよい。そうすることで、今回の状態sにおける、学習用ワーク50(k)(k>m)のキズ検出作業を省略させて、行動情報出力部130により、次の状態s´(すなわち修正された撮像箇所情報に基づく、撮像箇所における撮像と当該撮像された画像を利用したキズ検出)に遷移するようにしてもよい。それにより、機械学習時間を短縮することができる。
価値関数記憶部140は、価値関数Qを記憶する記憶装置である。価値関数Qは、例えば状態s、行動a毎にテーブルとして格納してもよい。価値関数記憶部140に記憶された価値関数Qは、価値関数更新部122により更新される。また、価値関数記憶部140に記憶された価値関数Qは、他の機械学習装置100との間で共有されるようにしてもよい。価値関数Qを複数の機械学習装置100で共有するようにすれば、各機械学習装置100にて分散して強化学習を行うことが可能となるので、強化学習の効率を向上させることが可能となる。
最適化行動情報出力部150は、価値関数更新部122がQ学習を行うことにより更新した価値関数Qに基づいて、価値Q(s,a)が最大となる、撮像箇所情報を調整する行動情報a(以下、「最適化行動情報」と呼ぶ)を生成する。
より具体的には、最適化行動情報出力部150は、価値関数記憶部140が記憶している価値関数Qを取得する。この価値関数Qは、上述したように価値関数更新部122がQ学習を行うことにより更新したものである。そして、最適化行動情報出力部150は、価値関数Qと、初期状態s0とに基づいて、最適化行動情報を生成し、生成した最適化行動情報をロボット制御検査システム20に対して出力する。この最適化行動情報には、行動情報出力部130がQ学習の過程において出力する行動情報と同様に、撮像箇所情報を調整する行動情報が含まれる。
ロボット制御検査システム20では、この最適化行動情報に基づいて撮像箇所情報(撮像点と撮像領域)が修正される。
以上のように、機械学習装置10を利用することで、ロボット制御検査システム20における、撮像枚数、撮像個所を最適化することが可能となる。
以上のように、機械学習装置10を利用することで、ロボット制御検査システム20における、撮像枚数、撮像個所を最適化することが可能となる。
以上、機械学習装置10、制御装置300、及びキズ検査装置400に含まれる機能ブロックについて説明した。
これらの機能ブロックを実現するために、機械学習装置10、制御装置300、及びキズ検査装置400は、CPU(Central Processing Unit)等の演算処理装置を備える。また、機械学習装置10、制御装置300、及びキズ検査装置400は、アプリケーションソフトウェアやOS(Operating System)等の各種の制御用プログラムを格納したHDD(Hard Disk Drive)等の補助記憶装置や、演算処理装置がプログラムを実行する上で一時的に必要とされるデータを格納するためのRAM(Random Access Memory)といった主記憶装置も備える。
これらの機能ブロックを実現するために、機械学習装置10、制御装置300、及びキズ検査装置400は、CPU(Central Processing Unit)等の演算処理装置を備える。また、機械学習装置10、制御装置300、及びキズ検査装置400は、アプリケーションソフトウェアやOS(Operating System)等の各種の制御用プログラムを格納したHDD(Hard Disk Drive)等の補助記憶装置や、演算処理装置がプログラムを実行する上で一時的に必要とされるデータを格納するためのRAM(Random Access Memory)といった主記憶装置も備える。
そして、機械学習装置10、制御装置300、及びキズ検査装置400は、演算処理装置が補助記憶装置からアプリケーションソフトウェアやOSを読み込み、読み込んだアプリケーションソフトウェアやOSを主記憶装置に展開させながら、これらのアプリケーションソフトウェアやOSに基づいた演算処理を行う。また、機械学習装置10、制御装置300、及びキズ検査装置400は、この演算結果に基づいて、各装置が備える各種のハードウェアを制御する。これにより、本実施形態の機能ブロックは実現される。つまり、本実施形態は、ハードウェアとソフトウェアが協働することにより実現することができる。
具体例として、機械学習装置10は、一般的なパーソナルコンピュータに、本実施形態を実現するためのアプリケーションソフトウェアを組み込むことより実現できる。また、制御装置300は、一般的なロボット100の制御装置に本実施形態を実現するためのアプリケーションソフトウェアを組み込むことにより実現できる。また、キズ検査装置400は、一般的なパーソナルコンピュータに、本実施形態を実現するためのアプリケーションソフトウェアを組み込むことより実現できる。
なお、機械学習装置10については、機械学習に伴う演算量が多いため、例えば、パーソナルコンピュータにGPU(Graphics Processing Units)を搭載し、GPGPU(General−Purpose computing on Graphics Processing Units)と呼ばれる技術により、GPUを機械学習に伴う演算処理に利用するようにすると、高速処理できるようになるのでよい。さらには、より高速な処理を行うために、機械学習装置10は、このようなGPUを搭載したコンピュータを複数台用いてコンピュータ・クラスターを構築し、このコンピュータ・クラスターに含まれる複数のコンピュータにて並列処理を行うようにしてもよい。
次に、図8のフローチャートを参照してQ学習時の機械学習装置10について説明をする。なお、ステップS11の開始前に、標本としての複数の学習用ワーク50(k)(1≦k≦M)、初期状態s0に含まれる撮像箇所情報は事前に設定され、また初期状態s0におけるキズ検出情報は、検出され、キズ検出テーブル_初期状態s0として記憶部(図示せず)に記憶されているものとする。
ステップS11において、状態情報取得部110が制御装置300に設定された撮像箇所情報と、キズ検査装置400により検出される学習用ワーク50(k)(1≦k≦M)のキズ検出情報と、を含む状態情報sを取得する。取得した状態情報は、価値関数更新部122や行動情報生成部123に対して出力される。上述したように、この状態情報sは、Q学習における環境状態sに相当する情報である。
ステップS12において、行動情報生成部123は新たな行動情報aを生成し、生成した新たな行動情報aを、行動情報出力部130を介して制御装置300の撮像箇所設定部310に対して出力する。行動情報生成部123は前述した方策に基づいて、新たな行動情報aを出力する。なお、行動情報aを受信した制御装置300は、受信した行動情報aに基づいて現在の状態sに係る撮像箇所情報を修正した状態s´により、ロボット制御検査システム20に学習用ワーク50(k)(1≦k≦M)のキズ検査プロセスを実行させる。上述したように、この行動情報は、Q学習における行動aに相当するものである。
ステップS13において、状態情報取得部110は、ロボット制御検査システム20から新たな状態s´における状態情報s´を取得する。
取得した状態情報s´は、報酬算出部121に対して出力される。
取得した状態情報s´は、報酬算出部121に対して出力される。
ステップS14において、報酬算出部121は、初期状態s0に含まれるキズ検出情報及び撮像回数と、今回の状態情報s´に含まれるキズ検出情報及び撮像回数と、に基づいて報酬の算出を行う。
ステップS15において、報酬が正の値となったか、負の値となったか、あるいはゼロとなったかを判定する。
報酬が正の値となった場合は、ステップS16に進む。そして、ステップS16にて報酬として正の値を価値関数更新部122に対して出力する。
報酬がゼロとなった場合は、ステップS17に進む。そして、ステップS17にて報酬としてゼロを価値関数更新部122に対して出力する。
報酬が負の値となった場合は、ステップS18に進む。そして、ステップS18にて報酬として負の値を価値関数更新部122に対して出力する。
ステップS16、ステップS17及びステップS18の何れかが終了すると、処理はステップS19に進む。
報酬がゼロとなった場合は、ステップS17に進む。そして、ステップS17にて報酬としてゼロを価値関数更新部122に対して出力する。
報酬が負の値となった場合は、ステップS18に進む。そして、ステップS18にて報酬として負の値を価値関数更新部122に対して出力する。
ステップS16、ステップS17及びステップS18の何れかが終了すると、処理はステップS19に進む。
ステップS19において、ステップS16、ステップS17及びステップS18の何れかのステップにて出力された報酬の値に基づいて、価値関数更新部122が、価値関数記憶部140に記憶している価値関数Qを更新する。なお、ステップS19はオンライン更新を例示しているが、オンライン更新に替えてバッチ更新又はミニバッチ更新に置き換えてもよい。
ステップS20において、学習部120は、強化学習を終了する条件が満たされたか否かを判定する。強化学習を終了する条件は、例えば上述した処理を、所定回数繰り返したことや、所定時間繰り返したこととする。未だ強化学習を終了する条件が満たされていない場合には、ステップS20においてNoと判定され、処理は再度ステップS11に戻る。そして、上述した処理を繰り返すことにより、価値関数Qは適切な値に収束していく。
一方で、強化学習を終了する条件が満たされた場合には、ステップS20においてYesと判定され、処理は終了する。
一方で、強化学習を終了する条件が満たされた場合には、ステップS20においてYesと判定され、処理は終了する。
以上、図8を参照して説明した動作により、本実施形態では、機械学習装置100を利用することで、撮像枚数、撮像個所を最適化するための、価値関数を得ることができる。
次に、図9のフローチャートを参照して、最適化行動情報出力部150による最適化行動情報の生成時の動作について説明をする。
まず、ステップS31において、状態情報取得部110がロボット制御検査システム20から状態情報sを取得する。
まず、ステップS31において、状態情報取得部110がロボット制御検査システム20から状態情報sを取得する。
ステップS32において、最適化行動情報出力部150は、価値関数記憶部140に記憶している価値関数Qを取得する。価値関数Qは、上述したように価値関数更新部122がQ学習を行うことにより更新したものである。
ステップS33において、最適化行動情報出力部150は、ステップS31において取得した状態情報sに含まれる撮像箇所情報と、ステップS32において取得した価値関数Qとに基づいて、最適化行動情報を生成する。そして、最適化行動情報出力部150は、生成した最適化行動情報をロボット制御検査システム20(制御装置300)の撮像箇所設定部310に対して出力する。この最適化行動情報は、撮像枚数、撮像個所を最適化するための情報である。
ロボット制御検査システム20では、この最適化行動情報に基づいて、撮像枚数、撮像個所を最適化し、検査のサイクルタイムを短縮する。
以上のように、本発明に係る機械学習装置10を利用することで、キズが発生する可能性が高い個所は念入りに、キズの発生頻度が少ない個所や重要度が低い個所は簡潔に検査することで、撮像枚数、撮像個所を最適化し、検査のサイクルタイムを短縮することが可能となる。
以上のように、本発明に係る機械学習装置10を利用することで、キズが発生する可能性が高い個所は念入りに、キズの発生頻度が少ない個所や重要度が低い個所は簡潔に検査することで、撮像枚数、撮像個所を最適化し、検査のサイクルタイムを短縮することが可能となる。
<ハードウェアとソフトウェアの協働>
なお、上記の機械学習システム1に含まれる各装置のそれぞれは、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。また、上記の機械学習システム1に含まれる各装置のそれぞれにより行なわれる機械学習方法も、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
なお、上記の機械学習システム1に含まれる各装置のそれぞれは、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。また、上記の機械学習システム1に含まれる各装置のそれぞれにより行なわれる機械学習方法も、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non−transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば、光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
また、上述した実施形態は、本発明の好適な実施形態ではあるが、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
<変形例1>
上述した本実施形態においては、初期状態s0に含まれる撮像領域(i,j){1≦i≦N,1≦j≦n(i)}を調整することで、初期状態s0におけるキズ検査と同等の精度を有し、かつ撮像回数が最小となるような撮像点及び撮像領域を求める機械学習を行った。これに対して、被検査面の所定の領域におけるキズ検査について、初期状態s0におけるキズ検査と同等の精度を有し、かつ撮像回数が最小となるような撮像点及び撮像領域を求める機械学習をするようにしてもよい。
この場合、報酬算出部121は、キズ検査装置400により検出した、被検査面の所定の領域(例えば、重要度の低い個所を除いた領域)におけるキズ検出箇所の個数が、機械学習開始時の初期状態s0におけるキズ検査装置400により検出した、被検査面の所定の領域におけるキズ検出箇所の個数と一致する場合であって、撮像回数が初期状態s0における撮像回数よりも少ない場合に、報酬の値を正の値とし、キズ検査装置400により検出した、被検査面の所定の領域におけるキズ検出箇所の個数が、機械学習開始時の初期状態s0におけるキズ検査装置400により検出した、被検査面の所定の領域におけるキズ検出箇所の個数よりも少ない場合に、報酬の値を負の値とするようにすることができる。そうすることで、被検査面の所定の領域におけるキズ検査について、初期状態s0におけるキズ検査と同等の精度を有し、かつ撮像回数が最小となる最適化を行うことができる。
上述した本実施形態においては、初期状態s0に含まれる撮像領域(i,j){1≦i≦N,1≦j≦n(i)}を調整することで、初期状態s0におけるキズ検査と同等の精度を有し、かつ撮像回数が最小となるような撮像点及び撮像領域を求める機械学習を行った。これに対して、被検査面の所定の領域におけるキズ検査について、初期状態s0におけるキズ検査と同等の精度を有し、かつ撮像回数が最小となるような撮像点及び撮像領域を求める機械学習をするようにしてもよい。
この場合、報酬算出部121は、キズ検査装置400により検出した、被検査面の所定の領域(例えば、重要度の低い個所を除いた領域)におけるキズ検出箇所の個数が、機械学習開始時の初期状態s0におけるキズ検査装置400により検出した、被検査面の所定の領域におけるキズ検出箇所の個数と一致する場合であって、撮像回数が初期状態s0における撮像回数よりも少ない場合に、報酬の値を正の値とし、キズ検査装置400により検出した、被検査面の所定の領域におけるキズ検出箇所の個数が、機械学習開始時の初期状態s0におけるキズ検査装置400により検出した、被検査面の所定の領域におけるキズ検出箇所の個数よりも少ない場合に、報酬の値を負の値とするようにすることができる。そうすることで、被検査面の所定の領域におけるキズ検査について、初期状態s0におけるキズ検査と同等の精度を有し、かつ撮像回数が最小となる最適化を行うことができる。
<変形例2>
上述した実施形態では、キズの判定に際しては、例えば、予め設定される輝度の値に基づいて行ったが、これに限定されない。例えば、ワーク50の被検査面上のキズの判定方法として、同じ光学条件で、撮像したキズ無しワーク50の画像と比較することで、キズの判定を行うことができる。
この方法を適用する場合は、例えば、次のようにすることができる。すなわち、複数の学習用ワーク50(k)(1≦k≦M)を用意するにあたって、1個以上のキズ無しワーク50を用意することで、状態sにおいて、1個以上のキズ無しワーク50を撮像した画像を基準として、学習用ワーク50(k)(1≦k≦M)を撮像した画像との差分を評価することで、同じ光学条件で、状態sにおけるキズ検出を行うことができる。
上述した実施形態では、キズの判定に際しては、例えば、予め設定される輝度の値に基づいて行ったが、これに限定されない。例えば、ワーク50の被検査面上のキズの判定方法として、同じ光学条件で、撮像したキズ無しワーク50の画像と比較することで、キズの判定を行うことができる。
この方法を適用する場合は、例えば、次のようにすることができる。すなわち、複数の学習用ワーク50(k)(1≦k≦M)を用意するにあたって、1個以上のキズ無しワーク50を用意することで、状態sにおいて、1個以上のキズ無しワーク50を撮像した画像を基準として、学習用ワーク50(k)(1≦k≦M)を撮像した画像との差分を評価することで、同じ光学条件で、状態sにおけるキズ検出を行うことができる。
<変形例3>
上述した実施形態では、報酬算出部121は、報酬が正の値の場合に撮像回数がより少ないほど、報酬の値をより大きくしたが、これに限定されない。例えば、報酬算出部121は、報酬が正の値の場合にワークの検査に係るサイクルタイムがより小さいほど、報酬の値をより大きくしてもよい。
上述した実施形態では、報酬算出部121は、報酬が正の値の場合に撮像回数がより少ないほど、報酬の値をより大きくしたが、これに限定されない。例えば、報酬算出部121は、報酬が正の値の場合にワークの検査に係るサイクルタイムがより小さいほど、報酬の値をより大きくしてもよい。
<変形例4>
上述した実施形態では、機械学習装置10を、制御装置300やキズ検査装置400とは別体の装置により実現することを想定したが、機械学習装置10の機能の一部又は全部を、例えば、制御装置300やキズ検査装置400により実現するようにしてもよい。
上述した実施形態では、機械学習装置10を、制御装置300やキズ検査装置400とは別体の装置により実現することを想定したが、機械学習装置10の機能の一部又は全部を、例えば、制御装置300やキズ検査装置400により実現するようにしてもよい。
<変形例5>
上述した実施形態では、機械学習装置10を、学習を行う機能と、行動情報を生成する機能とを有するものとしたが、学習を行う機能と、行動情報を生成する機能とを別の装置で行うようにしてもよい。
上述した実施形態では、機械学習装置10を、学習を行う機能と、行動情報を生成する機能とを有するものとしたが、学習を行う機能と、行動情報を生成する機能とを別の装置で行うようにしてもよい。
<変形例6>
上述した実施形態では、機械学習装置10と制御装置300とが1対1の組として通信可能に接続されているが、例えば1台の機械学習装置10が複数の制御装置300とネットワーク70を介して通信可能に接続され、各制御装置300の機械学習を実施するようにしてもよい。
その際、機械学習装置10の各機能を、適宜複数のサーバに分散する、分散処理システムとしてもよい。また、クラウド上で仮想サーバ機能等を利用して、機械学習装置10の各機能を実現してもよい。
また、複数の同じ型名、同一仕様、又は同一シリーズの制御装置300−1〜300−nにそれぞれ、同一のロボット200が接続されている場合に、各機械学習装置10−1〜10−nにおける学習結果を共有するように構成するようにしてもよい。そうすることで、より最適なモデルを構築することが可能となる。
上述した実施形態では、機械学習装置10と制御装置300とが1対1の組として通信可能に接続されているが、例えば1台の機械学習装置10が複数の制御装置300とネットワーク70を介して通信可能に接続され、各制御装置300の機械学習を実施するようにしてもよい。
その際、機械学習装置10の各機能を、適宜複数のサーバに分散する、分散処理システムとしてもよい。また、クラウド上で仮想サーバ機能等を利用して、機械学習装置10の各機能を実現してもよい。
また、複数の同じ型名、同一仕様、又は同一シリーズの制御装置300−1〜300−nにそれぞれ、同一のロボット200が接続されている場合に、各機械学習装置10−1〜10−nにおける学習結果を共有するように構成するようにしてもよい。そうすることで、より最適なモデルを構築することが可能となる。
1 機械学習システム
10 機械学習装置
110 状態情報取得部
120 学習部
121 報酬算出部
122 価値関数更新部
123 行動情報生成部
130 行動情報出力部
140 価値関数記憶部
150 最適化行動情報出力部
20 ロボット制御検査システム
200 ロボット
201 ロボットハンド
210 カメラ
213 支持体
220 照明
300 制御装置
310 撮像箇所情報設定部
320 移動経路算出部
330 移動動作制御部
340 撮像制御部
350 撮像情報送信部
400 キズ検査装置
410 撮像情報受信部
420 キズ検出部
430 キズ検出情報送信部
50 ワーク
70 ネットワーク
10 機械学習装置
110 状態情報取得部
120 学習部
121 報酬算出部
122 価値関数更新部
123 行動情報生成部
130 行動情報出力部
140 価値関数記憶部
150 最適化行動情報出力部
20 ロボット制御検査システム
200 ロボット
201 ロボットハンド
210 カメラ
213 支持体
220 照明
300 制御装置
310 撮像箇所情報設定部
320 移動経路算出部
330 移動動作制御部
340 撮像制御部
350 撮像情報送信部
400 キズ検査装置
410 撮像情報受信部
420 キズ検出部
430 キズ検出情報送信部
50 ワーク
70 ネットワーク
Claims (10)
- 被検査物の被検査面に照明光を照射する照明手段と、
前記被検査面を撮像する撮像手段と、
ロボットハンドを備えるロボットと、
前記撮像手段により撮像される複数の画像により前記被検査面が網羅されるように前記被検査面の上に設定される複数の撮像点を含む撮像領域を撮像する移動経路に沿って、前記被検査物又は前記撮像手段を把持する前記ロボットハンドを移動させながら、前記被検査面の上に設定された前記撮像点において前記撮像手段に撮像させる制御部と、
前記撮像点において、前記撮像手段により前記被検査面を撮像した画像に基づいて、前記被検査面の上におけるキズを検出するキズ検査部と、
を備えるロボット制御システムに対して、強化学習を行う機械学習装置であって、
前記撮像点を含む撮像領域の調整情報を含む行動情報を、前記制御部に対して出力する行動情報出力部と、
予め用意された複数の被検査物のそれぞれの被検査物について、前記行動情報に基づいて、前記制御部が前記被検査物又は前記撮像手段を把持する前記ロボットハンドを移動させて、前記撮像手段により前記被検査面を撮像した画像に基づいて、前記キズ検査部により検出した前記被検査面のキズ検出箇所を含むキズ検出情報と、撮像回数と、を含む状態情報を前記制御部及び前記キズ検査部から取得する状態情報取得部と、
前記状態情報に含まれる前記キズ検出箇所を含むキズ検出情報、及び前記撮像回数に基づいて、強化学習における報酬の値を出力する報酬出力部と、
前記報酬の値と、前記状態情報と、前記行動情報と、に基づいて、行動価値関数を更新する価値関数更新部と、
を備える機械学習装置。 - 前記報酬出力部は、
前記キズ検査部により検出したキズ検出箇所の個数が、所定の撮像点を含む撮像領域を撮像した機械学習開始時の初期状態における前記キズ検査部により検出したキズ検出箇所の個数と一致する場合であって、前記撮像回数が前記機械学習開始時の初期状態における前記撮像回数よりも少ない場合に、前記報酬の値を正の値とし、
前記キズ検査部により検出したキズ検出箇所の個数が、前記所定の撮像点を含む撮像領域を撮像した機械学習開始時の初期状態における前記キズ検査部により検出したキズ検出箇所の個数よりも少ない場合に、前記報酬の値を負の値とする請求項1に記載の機械学習装置。 - 前記報酬出力部は、
前記キズ検査部により検出したキズ検出箇所の個数が、前記所定の撮像点を含む撮像領域を撮像した機械学習開始時の初期状態における前記キズ検査部により検出したキズ検出箇所の個数と一致する場合に、前記撮像回数が前記機械学習開始時の初期状態における前記撮像回数よりも少ないほど前記報酬の値をより大きな値にする、請求項2に記載の機械学習装置。 - 前記価値関数更新部により更新された前記行動価値関数に基づいて、前記キズ検出箇所の個数が、前記機械学習開始時の初期状態における前記キズ検査部により検出したキズ検出箇所の個数と一致する行動情報であって、前記撮像回数が最小となる最適化行動情報を生成する最適化行動情報出力部、を備える請求項2又は請求項3に記載の機械学習装置。
- 前記報酬出力部は、
前記キズ検査部により検出した、前記被検査面の所定の領域におけるキズ検出箇所の個数が、所定の撮像点を含む撮像領域を撮像した機械学習開始時の初期状態における前記キズ検査部により検出した、前記被検査面の所定の領域におけるキズ検出箇所の個数と一致する場合であって、撮像回数が前記機械学習開始時の初期状態における撮像回数よりも少ない場合に、前記報酬の値を正の値とし、
前記キズ検査部により検出した、前記被検査面の所定の領域におけるキズ検出箇所の個数が、前記所定の撮像点を含む撮像領域を撮像した機械学習開始時の初期状態における前記キズ検査部により検出した、前記被検査面の所定の領域におけるキズ検出箇所の個数よりも少ない場合に、前記報酬の値を負の値とする請求項1に記載の機械学習装置。 - 前記報酬出力部は、
前記キズ検査部により検出した、前記被検査面の所定の領域におけるキズ検出箇所の個数が、前記所定の撮像点を含む撮像領域を撮像した機械学習開始時の初期状態における前記キズ検査部により検出した、前記被検査面の所定の領域におけるキズ検出箇所の個数と一致する場合に、前記撮像回数が前記機械学習開始時の初期状態における前記撮像回数よりも少ないほど前記報酬の値をより大きな値にする、請求項5に記載の機械学習装置。 - 前記価値関数更新部により更新された前記行動価値関数に基づいて、前記被検査面の所定の領域における前記キズ検出箇所の個数が、前記所定の撮像点を含む撮像領域を撮像した機械学習開始時の初期状態における前記キズ検査部により検出した、前記被検査面の所定の領域におけるキズ検出箇所の個数と一致する行動情報であって、前記撮像回数が最小となる最適化行動情報を生成する最適化行動情報出力部、を備える請求項5又は請求項6に記載の機械学習装置。
- 請求項1から請求項7までのいずれか1項に記載の機械学習装置において、
他の機械学習装置との間で前記行動価値関数を共有し、
前記価値関数更新部が、共有した前記行動価値関数を更新する、機械学習装置。 - 請求項1から請求項8のいずれか1項に記載の機械学習装置を備えた、前記ロボット制御システム。
- 被検査物の被検査面に照明光を照射する照明手段と、
前記被検査面を撮像する撮像手段と、
ロボットハンドを備えるロボットと、
前記撮像手段により撮像される複数の画像により前記被検査面が網羅されるように前記被検査面の上に設定される撮像点を含む撮像領域を撮像する移動経路に沿って、前記被検査物又は前記撮像手段を把持する前記ロボットハンドを移動させながら、前記被検査面の上に設定された前記撮像点において前記撮像手段に撮像させる制御部と、
前記撮像点において、前記撮像手段により前記被検査面を撮像した画像に基づいて、前記被検査面の上におけるキズを検出するキズ検査部と、
を備えるロボット制御システムに対して、強化学習を行う機械学習装置による機械学習方法であって、
前記撮像点を含む撮像領域の調整情報を含む行動情報を、前記制御部に対して出力する行動情報出力ステップと、
予め用意された複数の被検査物のそれぞれの被検査物について、前記行動情報に基づいて、前記制御部が前記被検査物又は前記撮像手段を把持する前記ロボットハンドを移動させて、前記撮像手段により前記被検査面を撮像した画像に基づいて、前記キズ検査部により検出したキズ検出箇所を含むキズ検出情報と、撮像回数と、を含む状態情報を前記制御部及び前記キズ検査部から取得する状態情報取得ステップと、
前記状態情報に含まれる前記キズ検出箇所を含むキズ検出情報、及び前記撮像回数に基づいて、強化学習における報酬の値を出力する報酬出力ステップと、
前記報酬の値と、前記状態情報と、前記行動情報と、に基づいて、行動価値関数を更新する価値関数更新ステップと、
を備える機械学習方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017125285A JP6549644B2 (ja) | 2017-06-27 | 2017-06-27 | 機械学習装置、ロボット制御システム及び機械学習方法 |
US15/981,153 US10596698B2 (en) | 2017-06-27 | 2018-05-16 | Machine learning device, robot control system, and machine learning method |
DE102018208191.3A DE102018208191B4 (de) | 2017-06-27 | 2018-05-24 | Maschinenlernvorrichtung, Robotersteuersystem und Maschinenlernverfahren |
CN201810662342.8A CN109146082B (zh) | 2017-06-27 | 2018-06-25 | 机器学习装置、机器人控制系统和机器学习方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017125285A JP6549644B2 (ja) | 2017-06-27 | 2017-06-27 | 機械学習装置、ロボット制御システム及び機械学習方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019007891A true JP2019007891A (ja) | 2019-01-17 |
JP6549644B2 JP6549644B2 (ja) | 2019-07-24 |
Family
ID=64691875
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017125285A Active JP6549644B2 (ja) | 2017-06-27 | 2017-06-27 | 機械学習装置、ロボット制御システム及び機械学習方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10596698B2 (ja) |
JP (1) | JP6549644B2 (ja) |
CN (1) | CN109146082B (ja) |
DE (1) | DE102018208191B4 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021173644A (ja) * | 2020-04-24 | 2021-11-01 | 東海光学株式会社 | レンズ外観検査装置及び機械学習装置 |
JP2022520018A (ja) * | 2019-01-24 | 2022-03-28 | スアラブ カンパニー リミテッド | 欠陥検査装置 |
CN114454137A (zh) * | 2022-04-12 | 2022-05-10 | 西南交通大学 | 基于双目视觉的钢结构损伤智能巡检方法、系统及机器人 |
WO2022124152A1 (ja) * | 2020-12-11 | 2022-06-16 | 日立Astemo株式会社 | 検査経路生成装置、検査経路生成方法 |
CN115184366A (zh) * | 2022-07-14 | 2022-10-14 | 重庆大学 | 一种基于众包数据的路面病害检测及结算方法 |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6333871B2 (ja) * | 2016-02-25 | 2018-05-30 | ファナック株式会社 | 入力画像から検出した対象物を表示する画像処理装置 |
DE102017207069A1 (de) * | 2017-04-27 | 2018-10-31 | Robert Bosch Gmbh | Prüfvorrichtung zur optischen Prüfung eines Objektes, Produktionsanlage mit der Prüfvorrichtung und Verfahren zur optischen Prüfung des Objektes mit der Prüfvorrichtung |
JP6538751B2 (ja) * | 2017-05-18 | 2019-07-03 | ファナック株式会社 | プログラミング装置及びロボット制御方法 |
JP6756676B2 (ja) * | 2017-07-27 | 2020-09-16 | ファナック株式会社 | 製造システム |
JP6570592B2 (ja) * | 2017-09-29 | 2019-09-04 | 株式会社牧野フライス製作所 | 工作機械の機上測定方法および制御装置 |
JP7245603B2 (ja) * | 2017-11-10 | 2023-03-24 | 株式会社安川電機 | 教示装置、ロボットシステムおよび教示方法 |
JP6669714B2 (ja) * | 2017-11-28 | 2020-03-18 | ファナック株式会社 | 教示操作盤およびロボット制御システム |
US10695911B2 (en) * | 2018-01-12 | 2020-06-30 | Futurewei Technologies, Inc. | Robot navigation and object tracking |
US11688207B2 (en) * | 2018-07-26 | 2023-06-27 | Upstream Security, Ltd. | System and method for contextually monitoring vehicle state |
US11839983B2 (en) * | 2018-11-27 | 2023-12-12 | Ocado Innovation Limited | Systems and methods for robotic grasp verification |
JP6630912B1 (ja) * | 2019-01-14 | 2020-01-15 | 株式会社デンケン | 検査装置及び検査方法 |
DE102019201045B4 (de) * | 2019-01-28 | 2020-11-26 | Robert Bosch Gmbh | Verfahren, Vorrichtung und Computerprogramm zum Ermitteln einer Aktion oder Trajektorie eines Roboters |
JP7262232B2 (ja) * | 2019-01-29 | 2023-04-21 | 東京エレクトロン株式会社 | 画像認識システムおよび画像認識方法 |
CN109949827A (zh) * | 2019-03-15 | 2019-06-28 | 上海师范大学 | 一种基于深度学习与强化学习的室内声学行为识别方法 |
JP2020166371A (ja) * | 2019-03-28 | 2020-10-08 | セイコーエプソン株式会社 | 情報処理方法、情報処理装置、物体検出装置およびロボットシステム |
US11345030B2 (en) * | 2019-05-28 | 2022-05-31 | Intel Corporation | Methods and apparatus for complex assembly via autonomous robots using reinforcement learning action primitives |
JP6841297B2 (ja) * | 2019-05-31 | 2021-03-10 | 株式会社デンソー | ビジュアルサーボシステム |
DE102019116735A1 (de) * | 2019-06-20 | 2020-12-24 | Jenoptik Automatisierungstechnik Gmbh | Verfahren zur Kontrolle und Nacharbeitung eines Werkstückes mit einer lasergeschnittenen geschlossenen Innenkontur |
CN110230981B (zh) * | 2019-06-21 | 2020-08-07 | 湖南大学 | 用于大尺寸件的尺寸检测系统及尺寸检测方法 |
US11389957B2 (en) | 2019-09-30 | 2022-07-19 | Mitsubishi Electric Research Laboratories, Inc. | System and design of derivative-free model learning for robotic systems |
US11727553B2 (en) | 2019-11-12 | 2023-08-15 | Bright Machines, Inc. | Vision analysis and validation system for improved inspection in robotic assembly |
CN110908377B (zh) * | 2019-11-26 | 2021-04-27 | 南京大学 | 一种机器人导航空间约简方法 |
CN111179223B (zh) * | 2019-12-12 | 2023-05-09 | 天津大学 | 基于深度学习的工业自动化缺陷检测方法 |
CN111862029A (zh) * | 2020-07-15 | 2020-10-30 | 哈尔滨市科佳通用机电股份有限公司 | 一种铁路动车组垂向减震器螺栓部件故障检测方法 |
CN114092382A (zh) * | 2020-08-07 | 2022-02-25 | 富泰华工业(深圳)有限公司 | 产品瑕疵标记装置和方法 |
CN112362522B (zh) * | 2020-10-23 | 2022-08-02 | 浙江中烟工业有限责任公司 | 一种基于强化学习的烟叶容重测量方法 |
JP7509033B2 (ja) * | 2020-12-25 | 2024-07-02 | 新東工業株式会社 | 検査装置、検査方法、機械学習装置、及び機械学習方法 |
CN112734759B (zh) * | 2021-03-30 | 2021-06-29 | 常州微亿智造科技有限公司 | 飞拍拍摄触发点的确定方法和装置 |
CN113297952B (zh) * | 2021-05-21 | 2022-06-24 | 哈尔滨工业大学(深圳) | 一种复杂环境下绳驱柔性机器人的测量方法和系统 |
CN114273263A (zh) * | 2021-12-28 | 2022-04-05 | 厦门海辰新能源科技有限公司 | 检测系统和检测方法 |
WO2023163650A2 (en) * | 2022-02-28 | 2023-08-31 | Agency For Science, Technology And Research | Defect detection by image processing |
CN116297531B (zh) * | 2023-05-22 | 2023-08-01 | 中科慧远视觉技术(北京)有限公司 | 机器视觉检测方法、系统、介质及设备 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6917925B2 (en) | 2001-03-30 | 2005-07-12 | Intelligent Inference Systems Corporation | Convergent actor critic-based fuzzy reinforcement learning apparatus and method |
US7096207B2 (en) | 2002-03-22 | 2006-08-22 | Donglok Kim | Accelerated learning in machine vision using artificially implanted defects |
US7107107B2 (en) | 2003-01-31 | 2006-09-12 | Matsushita Electric Industrial Co., Ltd. | Predictive action decision device and action decision method |
DE102004007828B4 (de) | 2004-02-18 | 2006-05-11 | Isra Vision Systems Ag | Verfahren und System zur Inspektion von Oberflächen |
DE102004007829B4 (de) | 2004-02-18 | 2007-04-05 | Isra Vision Systems Ag | Verfahren zur Bestimmung von zu inspizierenden Bereichen |
US20060055664A1 (en) | 2004-09-13 | 2006-03-16 | Repetto Mark E | Unified user input device |
JP4862765B2 (ja) | 2007-06-29 | 2012-01-25 | 関東自動車工業株式会社 | 表面検査装置及び表面検査方法 |
JP5330138B2 (ja) | 2008-11-04 | 2013-10-30 | 本田技研工業株式会社 | 強化学習システム |
CN102819264B (zh) | 2012-07-30 | 2015-01-21 | 山东大学 | 移动机器人路径规划q学习初始化方法 |
CN104458755B (zh) | 2014-11-26 | 2017-02-22 | 吴晓军 | 一种基于机器视觉的多类型材质表面缺陷检测方法 |
EP3329433A1 (en) * | 2015-07-29 | 2018-06-06 | Illinois Tool Works Inc. | System and method to facilitate welding software as a service |
JP6625868B2 (ja) | 2015-11-18 | 2019-12-25 | ファナック株式会社 | 加工プログラムの機械学習装置、該機械学習装置を備えた加工組立システムおよび加工プログラムの機械学習方法 |
US11580375B2 (en) * | 2015-12-31 | 2023-02-14 | Kla-Tencor Corp. | Accelerated training of a machine learning based model for semiconductor applications |
CN105690392B (zh) | 2016-04-14 | 2017-11-28 | 苏州大学 | 基于行动者‑评论家方法的机器人运动控制方法和装置 |
US9671777B1 (en) | 2016-06-21 | 2017-06-06 | TruPhysics GmbH | Training robots to execute actions in physics-based virtual environment |
US20180035606A1 (en) * | 2016-08-05 | 2018-02-08 | Romello Burdoucci | Smart Interactive and Autonomous Robotic Property Maintenance Apparatus, System, and Method |
JP6514166B2 (ja) * | 2016-09-16 | 2019-05-15 | ファナック株式会社 | ロボットの動作プログラムを学習する機械学習装置,ロボットシステムおよび機械学習方法 |
US11062207B2 (en) * | 2016-11-04 | 2021-07-13 | Raytheon Technologies Corporation | Control systems using deep reinforcement learning |
US10395358B2 (en) * | 2016-11-10 | 2019-08-27 | Kla-Tencor Corp. | High sensitivity repeater defect detection |
JP6457473B2 (ja) * | 2016-12-16 | 2019-01-23 | ファナック株式会社 | ロボットおよびレーザスキャナの動作を学習する機械学習装置,ロボットシステムおよび機械学習方法 |
US10234848B2 (en) * | 2017-05-24 | 2019-03-19 | Relativity Space, Inc. | Real-time adaptive control of additive manufacturing processes using machine learning |
US11131539B2 (en) * | 2017-06-12 | 2021-09-28 | Sightline Innovation Inc. | Multimodal image data acquisition system and method |
US20190080446A1 (en) * | 2017-09-11 | 2019-03-14 | All Axis Robotics, LLC | System and method for automated defect detection |
JP6626057B2 (ja) * | 2017-09-27 | 2019-12-25 | ファナック株式会社 | 検査装置及び検査システム |
JP6936957B2 (ja) * | 2017-11-07 | 2021-09-22 | オムロン株式会社 | 検査装置、データ生成装置、データ生成方法及びデータ生成プログラム |
JP6936958B2 (ja) * | 2017-11-08 | 2021-09-22 | オムロン株式会社 | データ生成装置、データ生成方法及びデータ生成プログラム |
JP6919997B2 (ja) * | 2018-02-06 | 2021-08-18 | 株式会社日立製作所 | 制御装置、制御方法、および制御プログラム |
-
2017
- 2017-06-27 JP JP2017125285A patent/JP6549644B2/ja active Active
-
2018
- 2018-05-16 US US15/981,153 patent/US10596698B2/en active Active
- 2018-05-24 DE DE102018208191.3A patent/DE102018208191B4/de active Active
- 2018-06-25 CN CN201810662342.8A patent/CN109146082B/zh active Active
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022520018A (ja) * | 2019-01-24 | 2022-03-28 | スアラブ カンパニー リミテッド | 欠陥検査装置 |
JP7186304B2 (ja) | 2019-01-24 | 2022-12-08 | スアラブ カンパニー リミテッド | 欠陥検査装置 |
US11790512B2 (en) | 2019-01-24 | 2023-10-17 | Sualab Co., Ltd. | Defect inspection device |
JP2021173644A (ja) * | 2020-04-24 | 2021-11-01 | 東海光学株式会社 | レンズ外観検査装置及び機械学習装置 |
WO2022124152A1 (ja) * | 2020-12-11 | 2022-06-16 | 日立Astemo株式会社 | 検査経路生成装置、検査経路生成方法 |
CN114454137A (zh) * | 2022-04-12 | 2022-05-10 | 西南交通大学 | 基于双目视觉的钢结构损伤智能巡检方法、系统及机器人 |
CN115184366A (zh) * | 2022-07-14 | 2022-10-14 | 重庆大学 | 一种基于众包数据的路面病害检测及结算方法 |
Also Published As
Publication number | Publication date |
---|---|
US10596698B2 (en) | 2020-03-24 |
CN109146082B (zh) | 2020-04-28 |
JP6549644B2 (ja) | 2019-07-24 |
US20180370027A1 (en) | 2018-12-27 |
DE102018208191B4 (de) | 2022-02-10 |
CN109146082A (zh) | 2019-01-04 |
DE102018208191A1 (de) | 2019-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6549644B2 (ja) | 機械学習装置、ロボット制御システム及び機械学習方法 | |
JP6626057B2 (ja) | 検査装置及び検査システム | |
US11276158B2 (en) | Method and apparatus for inspecting corrosion defect of ladle | |
JP7028333B2 (ja) | 照明条件の設定方法、装置、システム及びプログラム並びに記憶媒体 | |
US20200294222A1 (en) | Method and apparatus for outputting information | |
US11185985B2 (en) | Inspecting components using mobile robotic inspection systems | |
KR102427381B1 (ko) | 부품의 실장 상태를 검사하기 위한 방법, 인쇄 회로 기판 검사 장치 및 컴퓨터 판독 가능한 기록매체 | |
CN110726724A (zh) | 缺陷检测方法、系统和装置 | |
JP2019048365A (ja) | 機械学習装置、ロボットシステム及び機械学習方法 | |
JP7131617B2 (ja) | 照明条件を設定する方法、装置、システム及びプログラム並びに記憶媒体 | |
JP2017064910A (ja) | ワークの取り出し動作を学習する機械学習装置、ロボットシステムおよび機械学習方法 | |
JP2021022079A (ja) | 推論装置、推論方法、及び推論プログラム | |
US20200402221A1 (en) | Inspection system, image discrimination system, discrimination system, discriminator generation system, and learning data generation device | |
CN110378227B (zh) | 修正样本标注数据的方法、装置、设备及存储介质 | |
CN116105604B (zh) | 钢管质量检测系统及检测方法 | |
CN117733439B (zh) | 一种具有焊缝成形质量实时预测功能的焊接机器人 | |
WO2014203687A1 (ja) | 画像処理方法、画像処理装置、および画像処理プログラム | |
CN114945817A (zh) | 基于缺陷检测的任务处理方法、装置及设备及存储介质 | |
CN116630327B (zh) | 基于热力图的锅炉状态异常监测系统 | |
JP2018169660A (ja) | オブジェクト姿勢検出装置、制御装置、ロボットおよびロボットシステム | |
JP2020110920A (ja) | 装置、ロボットシステム、モデル生成方法、及びモデル生成プログラム | |
CN117804344A (zh) | 宽度测量方法及装置 | |
CN111062920B (zh) | 用于生成半导体检测报告的方法及装置 | |
US20210407070A1 (en) | Methods and systems for non-destructive testing (ndt) with trained artificial intelligence based processing | |
KR102716521B1 (ko) | 인쇄 회로 기판 검사 장치 및 부품의 실장 상태를 검사하기 위한 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190522 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20190528 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190627 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6549644 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |