JP6683666B2 - 識別コード読取装置及び機械学習装置 - Google Patents

識別コード読取装置及び機械学習装置 Download PDF

Info

Publication number
JP6683666B2
JP6683666B2 JP2017194037A JP2017194037A JP6683666B2 JP 6683666 B2 JP6683666 B2 JP 6683666B2 JP 2017194037 A JP2017194037 A JP 2017194037A JP 2017194037 A JP2017194037 A JP 2017194037A JP 6683666 B2 JP6683666 B2 JP 6683666B2
Authority
JP
Japan
Prior art keywords
identification code
image
read
data
learning
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
JP2017194037A
Other languages
English (en)
Other versions
JP2019067278A (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.)
FANUC Corp
Original Assignee
FANUC Corp
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 FANUC Corp filed Critical FANUC Corp
Priority to JP2017194037A priority Critical patent/JP6683666B2/ja
Priority to CN201811158864.0A priority patent/CN109614830B/zh
Priority to US16/150,430 priority patent/US10960550B2/en
Priority to DE102018007826.5A priority patent/DE102018007826A1/de
Publication of JP2019067278A publication Critical patent/JP2019067278A/ja
Application granted granted Critical
Publication of JP6683666B2 publication Critical patent/JP6683666B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme 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/1697Vision controlled systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J15/00Gripping heads and other end effectors
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/02Programme-controlled manipulators characterised by movement of the arms, e.g. cartesian coordinate type
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1408Methods for optical code recognition the method being specifically adapted for the type of code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/62Text, e.g. of license plates, overlay texts or captions on TV images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Electromagnetism (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Toxicology (AREA)
  • Medical Informatics (AREA)
  • Multimedia (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)
  • Manipulator (AREA)

Description

本発明は、識別コード読取装置及び機械学習装置に関する。
生産物の表面に1次元バーコードやQRコード(登録商標)、データマトリックスなどの識別コードを付与する方法としては、例えば識別コードを印刷したラベルを生産物の表面の貼付する手法や、生産物の表面をプリンタやレーザーマーカ、ドリルなどで識別コードの直接刻印加工をするダイレクトマーキングの手法などがある。
一般に、生産物の表面に付与された識別コードは視覚センサ等を用いて読み取られる。図6は、生産物の表面に対する識別コードの付与と、生産物の表面に付与された識別コードの読み取りとを行うことができるロボットの例を示す図である。生産物に識別コードを付与する際には、ロボットコントローラ2は、生産物の所定の位置に識別コード付与装置3を移動させるようロボット5に指令すると共に、生産物の所定の位置に識別コードを付与するように識別コード付与装置3に対して指令する。そして、識別コード付与装置3は、識別コード生成装置6から識別コードの形状を取得し、識別コード付与装置3が生産物の表面に対して該識別コードを付与する。また、生産物に付与された識別コードを読み取る際には、ロボットコントローラ2は、生産物の所定の位置に視覚センサ4を移動させるようロボット5に指令すると共に、生産物に付与された識別コードを読み取るように識別コード読取装置1に対して指令する。そして、識別コード読取装置1は、視覚センサ4を介して生産物の表面に付与された識別コードを読み取る。
しかしながら、生産物の表面に付与された識別コードの読み取りにおいては、生産物の識別コードが付与された箇所が平坦ではない場合や、識別コードが付与された位置への光のあたる角度や見る位置が適切ではない場合など、様々な要因で識別コードの読み取りに失敗することがある。このような問題を解決する従来技術として、例えば特許文献1などが開示されている。
特開2017−059266号公報
生産物の表面に付与された識別コードの読み取りに失敗するケースとしては、例えば以下のような場合がある。
●黒セル(黒バー)と白セル(白バー)とのコントラストが低い
●黒セル(黒バー)と白セル(白バー)とが反転して検出される
●生産物の表面形状などが原因で識別コードの形状が歪んで検出される
●打痕やドリル孔等で形成され識別コードの規格を厳密に満たしていない
●表面に付着した切削液等の影響で識別コードの一部の色合い等が異なって検出される
上記した識別コードの読み取りが失敗するケースでは、同じ生産物の表面に付与された識別コードであっても、視覚センサ等で検出される画像の映り具合はその状況に応じて様々なものとなる。しかしながら、上記した従来技術では、特定の状況には対応することができても、上記した様々な状況に対応することができない。
そこで本発明の目的は、読み取りに適さない識別コードであっても適切に読み取ることが可能な識別コード読取装置及び機械学習装置を提供することである。
本発明では、機械学習を用いて読み取りに適さない識別コードの画像を読み取りやすいものに修復することにより、上記課題を解決する。本発明で導入される修復方法は、以下の手順で実現される。
●手順1)識別コードとしたい文字列を決定する。
●手順2)文字列から理想的な識別コードを生成する。これを教師データとする。
●手順3)実際に識別コードを読み取る面に対して、識別コードを付与する。
●手順4)付与した識別コードを様々な状況で撮像した画像を入力データとする。
●手順5)入力データ、教師データの対を学習データとして、学習データを多数集める。
●手順6)学習データで学習器の学習を行う。
以上の手順で学習を進めた機械学習装置に対して識別コードの画像を入力すると、理想的な識別コードの画像が出力される。そして、理想的な識別コードの画像をデコードすることで識別コードを容易に読み取ることができる。更に様々な素材や形状の生産物に対して同様の操作を行い、学習データを取得し、学習を行うこともできる。そのようにすることで、単一の素材や形状だけでなく、様々が素材や形状の生産物に付与された識別コードを修復することができる。
そして、本発明の一態様は、生産物の表面に付与された識別コードを、視覚センサを用いて読み取る識別コード読取装置であって、前記視覚センサで読み取った識別コードの画像に対する前記識別コードの理想的な画像の推定を学習する機械学習装置を備え、前記機械学習装置は、前記視覚センサで読み取った識別コードの画像に係る読取画像データを、環境の現在状態を表す状態変数として観測する状態観測部と、前記識別コードの理想的な画像に係る理想画像データを、ラベルデータとして取得するラベルデータ取得部と、前記状態変数と前記ラベルデータとを用いて、前記読取画像データと、前記理想画像データとを関連付けて学習する学習部と、を備える識別コード読取装置である。
本発明の他の態様は、視覚センサで読み取った識別コードの画像に対する前記識別コードの理想的な画像の推定を学習する機械学習装置であって、前記視覚センサで読み取った識別コードの画像に係る読取画像データを、環境の現在状態を表す状態変数として観測する状態観測部と、前記識別コードの理想的な画像に係る理想画像データを、ラベルデータとして取得するラベルデータ取得部と、前記状態変数と前記ラベルデータとを用いて、前記読取画像データと、前記理想画像データとを関連付けて学習する学習部と、を備える機械学習装置である。
本発明によれば、読み取りに適さない識別コードを理想的な識別コードへと修復することが可能となるため、状況によっては読み取ることができなかった識別コードを適切に読み取ることができるようになる。
一実施形態による識別コード読取装置の概略的なハードウェア構成図である。 一実施形態による識別コード読取装置の概略的な機能ブロック図である。 識別コード読取装置の一形態を示す概略的な機能ブロック図である。 ニューロンを説明する図である。 ニューラルネットワークを説明する図である。 識別コード読取装置を組み込んだシステムの一形態を示す概略的な機能ブロック図である。 従来技術による識別コード読取装置の例を示す概略的な構成図である。
以下、本発明の実施形態を図面と共に説明する。
図1は第1の実施形態による識別コード読取装置の要部を示す概略的なハードウェア構成図である。識別コード読取装置1は、例えばロボットを制御するロボットコントローラにインタフェースや有線/無線ネットワークを介して接続されたパソコン等のコンピュータとして実装することができる。また、識別コード読取装置1は、例えばロボットを制御するロボットコントローラにインタフェースや有線/無線ネットワークを介して接続されたセルコンピュータ、ホストコンピュータ、クラウドコンピュータ等のサーバコンピュータとして実装することができる。本実施形態による識別コード読取装置1が備えるCPU11は、識別コード読取装置1を全体的に制御するプロセッサである。CPU11は、ROM12に格納されたシステム・プログラムをバス20を介して読み出し、該システム・プログラムに従って識別コード読取装置1全体を制御する。RAM13には一時的な計算データや表示データ、図示しない入力部を介してオペレータが入力した各種データ等が一時的に格納される。
不揮発性メモリ14は、例えば図示しないバッテリでバックアップされるなどして、識別コード読取装置1の電源がオフされても記憶状態が保持されるメモリとして構成される。不揮発性メモリ14には、図示しない入力装置を介して作業者が入力した各種データなどが記憶されている。不揮発性メモリ14に記憶された各種データは、利用時にはRAM13に展開されても良い。また、ROM12には、識別コード読取装置1の動作に必要な各種のシステム・プログラム(後述する機械学習装置100とのやりとりを制御するためのシステム・プログラムを含む)があらかじめ書き込まれている。
識別コード読取装置1は、ロボット5を制御するロボットコントローラ2からインタフェース18を介して指令を受けると、インタフェース19を介して視覚センサ4から識別コードの画像を取得することで識別コードを読み取る。
インタフェース21は、識別コード読取装置1と機械学習装置100とを接続するためのインタフェースである。機械学習装置100は、機械学習装置100全体を統御するプロセッサ101と、システム・プログラム等を記憶したROM102、機械学習に係る各処理における一時的な記憶を行うためのRAM103、及び学習モデル等の記憶に用いられる不揮発性メモリ104を備える。機械学習装置100は、インタフェース21を介して識別コード読取装置1が読み取った識別コードの画像等を観測することができる。また、識別コード読取装置1は、機械学習装置100から出力される理想的な識別コードの画像を解析するデコード処理を行う。
図2は、第1の実施形態による識別コード読取装置1と機械学習装置100の概略的な機能ブロック図である。図2に示した各機能ブロックは、図1に示した識別コード読取装置1が備えるCPU11、及び機械学習装置100のプロセッサ101が、それぞれのシステム・プログラムを実行し、識別コード読取装置1及び機械学習装置100の各部の動作を制御することにより実現される。本実施形態の識別コード読取装置1は、デコード部30、出力部40を備える。
デコード部30は、機械学習装置100から出力された理想的な識別コードの画像に対して、該識別コードの種類に応じたデコード処理を実行することで、該識別コードの元の文字列をデコードする。デコード部30が実行するデコード処理は一般的な識別コードのデコード処理をそのまま用いることができる。
出力部40は、デコード部30によりデコードされた文字列を表示装置などの外部装置へと出力する。
一方、識別コード読取装置1が備える機械学習装置100は、視覚センサ4で観測した識別コードの画像と、理想的な識別コードの画像との関係を表すモデル構造を学習する。図2に機能ブロックで示すように、識別コード読取装置1が備える機械学習装置100は、視覚センサ4で観測した識別コードの画像に係る読取画像データS1を含む状態変数Sとして観測する状態観測部106と、該識別コードの理想的な画像に係る理想画像データL1を含むラベルデータLを取得するラベルデータ取得部108と、状態変数SとラベルデータLとを用いて、読み取った識別コードの画像と理想的な識別コードの画像との相関性を学習する学習部110、及び学習部110による学習済みモデルを用いて読み取った識別コードの画像から推定した理想的な識別コードの画像を出力する画像出力部122を備える。
状態観測部106が観測する状態変数Sのうち、読取画像データS1は、ロボット5を制御して生産物の表面に付与された識別コードを視覚センサ4で読み取った画像情報を用いることができる。または、読取画像データS1は、生産物の表面に付与された識別コードが他の撮像手段で撮像されて、図示しないインタフェースを介して識別コード読取装置1で取得した画像情報を用いることができる。読取画像データS1は、データの数(ピクセル数を)が学習部110の入力データとして適合するように正規化しても良い。
ラベルデータ取得部108は、学習部110の学習時において、ラベルデータLとして、識別コードの理想的な画像に係る理想画像データL1を取得する。理想画像データL1は、例えば識別コード生成装置6が生成した識別コードの画像を用いることができる。または、理想画像データL1は、例えば識別コードの元となる文字列等から理想的な画像を生成するようにしても良い。または、理想画像データL1は、生産物の表面に付与された識別コードを理想的な位置関係及び照明の状態でロボット5が備える視覚センサ4により撮像して得られた画像を用いるようにしても良い。理想画像データL1は、データの数(ピクセル数を)が学習部110の出力データとして適合するように正規化しても良い。ラベルデータ取得部108は、学習部110による学習時において利用されるものであり、学習部110による学習が完了した後は機械学習装置100の必須の構成とする必要は無い。
学習部110は、機械学習と総称される任意の学習アルゴリズムに従い、状態変数S(識別コードの画像に係る読取画像データS1)に対するラベルデータL(識別コードの理想的な画像に係る理想画像データL1)を学習する。学習部110は、例えば状態変数Sに含まれる理想画像データL1と、ラベルデータLに含まれる理想画像データL1との相関性を学習することができる。学習部110は、状態変数SとラベルデータLとを含むデータ集合に基づく学習を反復実行することができる。
学習部110による学習においては、1つの識別コードに対して複数の読取画像データS1を用いた複数の学習サイクルを実行することが望ましい。より具体的には、生産物の表面に付与された1つの識別コードについて様々な撮像条件(生産物の表面に対する視覚センサ4の角度の変更、光のあたり具合の変更、切削液等による汚れ具合の変更など)で撮像した複数の読取画像データS1のそれぞれと、該識別コードに係る理想画像データL1とを用いた複数の学習サイクルを実行する。また、これを異なる識別コードについても実行する。
このような学習サイクルを繰り返すことにより、学習部110は、生産物の表面に付与された識別コードを視覚センサ4で読み取った画像(読取画像データS1)と、該識別コードの理想的な画像(理想画像データL1)との相関性を自動的に解釈する。学習アルゴリズムの開始時には読取画像データS1に対する理想画像データL1の相関性は実質的に未知であるが、学習部110が学習を進めるに従い徐々に読取画像データS1と理想画像データL1との関係を解釈し、その結果として得られた学習済みモデルを用いることで読取画像データS1に対する理想画像データL1の相関性を解釈可能になる。
画像出力部122は、学習部110が学習した結果(学習済みモデル)に基づいて、視覚センサ4から得られた識別データの画像から該識別データの理想的な画像を推定し、推定した理想的な識別データの画像をデコード部30へと出力する。画像出力部122は、生産物の表面に付与された識別コードの1つの画像から該識別データの理想的な画像を推定するようにしても良い。また、画像出力部122は、生産物の表面に付与された識別コードの複数の画像(例えば、生産物に対する視覚センサ4の角度を変更して撮像した複数の画像)を取得し、該複数の画像のそれぞれから推定される該識別データの理想的な画像を比較し(例えば多数決論理などを用いて)該識別データの理想的な画像を推定するようにしても良い。
識別コード読取装置1の一変形例として、状態観測部106は、状態変数Sとして、読取画像データS1に加えて、生産物の素材、生産物の表面処理の方法、生産物の表面に識別コードを付与する方法に係る付与状態データS2を観測するようにしても良い。付与状態データS2については、例えば予め作業者が図示しない入力装置などを介して不揮発性メモリ14などに設定しておき、状態観測部106が不揮発性メモリ14を参照することで取得することができる。
上記変形例によれば、機械学習装置100は、識別コードが付与された素材を考慮して、生産物の表面に付与された識別コードの画像からの該識別コードの理想的な画像の推定を学習することができるため、より高い精度での理想的な識別コードの画像の推定を行うことができるようになる。
上記構成を有する機械学習装置100では、学習部110が実行する学習アルゴリズムは特に限定されず、機械学習として公知の学習アルゴリズムを採用できる。図6は、図2に示す識別コード読取装置1の他の形態であって、学習アルゴリズムの他の例として教師あり学習を実行する学習部110を備えた構成を示す。教師あり学習は、入力とそれに対応する出力との既知のデータセット(教師データと称する)が与えられ、それら教師データから入力と出力との相関性を暗示する特徴を識別することで、新たな入力に対する所要の出力を推定するための相関性モデルを学習する手法である。
図3に示す識別コード読取装置1が備える機械学習装置100において、学習部110は、状態変数Sに含まれる生産物の表面に付与された識別コードを視覚センサ4で読み取った画像から該識別コードの理想的な画像を推定する相関性モデルMと識別コードの理想的な画像として得られた教師データTから識別される相関性特徴との誤差Eを計算する誤差計算部112と、誤差Eを縮小するように相関性モデルMを更新するモデル更新部114とを備える。学習部110は、モデル更新部114が相関性モデルMの更新を繰り返すことによって生産物の表面に付与された識別コードを視覚センサ4で読み取った画像からの該識別コードの理想的な画像の推定を学習する。
相関性モデルMの初期値は、例えば、状態変数Sと識別コードの理想的な画像(を構成する各ピクセル)との相関性を単純化して(例えば一次関数で)表現したものであり、教師あり学習の開始前に学習部110に与えられる。教師データTは、本発明では例えば識別コード生成装置6が生成した識別コードの画像を利用することができ、識別コード読取装置1の序盤の運用時に随時学習部110に与えられる。誤差計算部112は、学習部110に随時与えられた教師データTにより、生産物の表面に付与された識別コードを視覚センサ4で読み取った画像と該識別コードの理想的な画像との相関性を暗示する相関性特徴を識別し、この相関性特徴と、現在状態における状態変数S及びラベルデータLに対応する相関性モデルMとの誤差Eを求める。モデル更新部114は、例えば予め定めた更新ルールに従い、誤差Eが小さくなる方向へ相関性モデルMを更新する。
次の学習サイクルでは、誤差計算部112は、更新後の相関性モデルMに従って状態変数Sを用いて識別コードの理想的な画像の推定が行われ、該推定の結果と実際に取得されたラベルデータLの誤差Eを求め、モデル更新部114が再び相関性モデルMを更新する。このようにして、未知であった環境の現在状態とそれに対する推定との相関性が徐々に明らかになる。
前述した教師あり学習を進める際に、ニューラルネットワークを用いることができる。図4Aは、ニューロンのモデルを模式的に示す。図4Bは、図4Aに示すニューロンを組み合わせて構成した三層のニューラルネットワークのモデルを模式的に示す。ニューラルネットワークは、例えば、ニューロンのモデルを模した演算装置や記憶装置等によって構成できる。
図4Aに示すニューロンは、複数の入力x(ここでは一例として、入力x1〜入力x3)に対する結果yを出力するものである。各入力x1〜x3には、この入力xに対応する重みw(w1〜w3)が掛けられる。これにより、ニューロンは、次の数1式により表現される出力yを出力する。なお、数1式において、入力x、出力y及び重みwは、すべてベクトルである。また、θはバイアスであり、fkは活性化関数である。
Figure 0006683666
図4Bに示す三層のニューラルネットワークは、左側から複数の入力x(ここでは一例として、入力x1〜入力x3)が入力され、右側から結果y(ここでは一例として、結果y1〜結果y3)が出力される。図示の例では、入力x1、x2、x3のそれぞれに対応の重み(総称してw1で表す)が乗算されて、個々の入力x1、x2、x3がいずれも3つのニューロンN11、N12、N13に入力されている。
図4Bでは、ニューロンN11〜N13の各々の出力を、総称してz1で表す。z1は、入カベクトルの特徴量を抽出した特徴ベクトルと見なすことができる。図示の例では、特徴ベクトルz1のそれぞれに対応の重み(総称してw2で表す)が乗算されて、個々の特徴ベクトルz1がいずれも2つのニューロンN21、N22に入力されている。特徴ベクトルz1は、重みW1と重みW2との間の特徴を表す。
図4Bでは、ニューロンN21〜N22の各々の出力を、総称してz2で表す。z2は、特徴ベクトルz1の特徴量を抽出した特徴ベクトルと見なすことができる。図示の例では、特徴ベクトルz2のそれぞれに対応の重み(総称してw3で表す)が乗算されて、個々の特徴ベクトルz2がいずれも3つのニューロンN31、N32、N33に入力されている。特徴ベクトルz2は、重みW2と重みW3との間の特徴を表す。最後にニューロンN31〜N33は、それぞれ結果y1〜y3を出力する。
なお、三層以上の層を為すニューラルネットワーク(CNN:Convolutional Neural Networkを含む)を用いた、いわゆるディープラーニングの手法を用いることも可能である。
識別コード読取装置1が備える機械学習装置100においては、状態変数Sを入力xとして、学習部110が上記したニューラルネットワークに従う多層構造の演算を行うことで、視覚センサ4から取得した識別コードの画像の各ピクセルの値(入力x)から理想的な識別コードの画像の各ピクセル値(出力y)を推定することができる。なお、ニューラルネットワークの動作モードには、学習モードと価値予測モードとがあり、例えば学習モードで学習データセットを用いて重みwを学習し、学習した重みwを用いて価値予測モードで行動の価値判断を行うことができる。なお価値予測モードでは、検出、分類、推論等を行うこともできる。
上記した機械学習装置100の構成は、プロセッサ101が各々実行する機械学習方法(或いはソフトウェア)として記述できる。この機械学習方法は、視覚センサ4から取得した識別コードの画像から理想的な識別コードの画像の推定を学習する機械学習方法であって、プロセッサ101が、生産物の表面に付与された識別コードを視覚センサ4で読み取った画像(読取画像データS1)を現在状態を表す状態変数Sとして観測するステップと、識別コードの理想的な画像(理想画像データL1)をラベルデータLとして取得するステップと、状態変数SとラベルデータLとを用いて、読取画像データS1と、理想画像データL1とを関連付けて学習するステップとを有する。
機械学習装置100の学習部110により学習されて得られた学習済みモデルは機械学習に係るソフトウェアの一部であるプログラムモジュールとしての利用することが可能である。本発明の学習済みモデルは、CPUやGPU等のプロセッサとメモリを備えるコンピュータにて用いることができる。より具体的には、コンピュータのプロセッサが、メモリに記憶された学習済みモデルからの指令に従って、生産物の表面に付与された識別コードの画像を入力として演算を行い、演算結果に基づいて該識別コードの理想的な画像の推定結果を出力するように動作する。本発明の学習済みモデルは、外部記憶媒体やネットワーク等を介して他のコンピュータに対して複製して利用することが可能である。
また、本発明の学習済みモデルを他のコンピュータに対して複製して新しい環境で利用する際に、当該環境で得られた新たな状態変数や判定データに基づいて当該学習済みモデルに対して更なる学習を行わせることもできる。このようにした場合、当該環境による学習済みモデルから派生した学習済みモデル(以下、派生モデルとする)を得ることが可能である。本発明の派生モデルは、生産物の表面に付与された識別コードの画像から該識別コードの理想的な画像の推定結果を出力するという点では元の学習済みモデルと同じだが、元の学習済みモデルよりも新しい環境に適合した結果を出力するという点で異なる。この派生モデルもまた、外部記憶媒体やネットワーク等を介して他のコンピュータに対して複製して利用することが可能である。
更に、本発明の学習済みモデルを組み込んだ機械学習装置に対する入力に対して得られる出力を用いて、他の機械学習装置において1から学習を行うことで得られる学習済みモデル(以下、蒸留モデルとする)を作成し、これを利用することも可能である(このような学習工程を蒸留と言う)。蒸留において、元の学習済みモデルを教師モデル、新たに作成する蒸留モデルを生徒モデルとも言う。一般に、蒸留モデルは元の学習済みモデルよりもサイズが小さく、それでいて元の学習済みモデルと同等の正確度を出せるため、外部記憶媒体やネットワーク等を介した他のコンピュータに対する配布により適している。
図5は、視覚センサ4(図示せず)を備えたロボット5を制御する複数のロボットコントローラ2を有する一実施形態によるシステム170を示す。システム170は、識別コード読取装置1と、少なくとも視覚センサ4を備えたロボット5を制御する複数のロボットコントローラ2と、それらを互いに接続する有線/無線のネットワーク172とを備えて構成される。視覚センサ4をロボットの手先に(固定的に、又は、アームで把持して)取り付けるのではなく、視覚センサ4をいずれかの位置に固定設置し、生産物をロボットのハンドで把持するという構成でもよい。
上記構成を有するシステム170は、それぞれのロボット5が備えた視覚センサ4が読み取った(そして、ロボットコントローラ2を介して取得した)識別コードの画像と、該識別コードの理想的な画像との関係を識別コード読取装置1が備える機械学習装置100の学習部110が学習し、その学習結果を用いて、それぞれのロボット5が備えた視覚センサ4が読み取った識別コードの画像から、該識別コードの理想的な画像を、自動的に、しかも正確に推定することができる。このようなシステム170の構成によれば、複数のロボットコントローラ2を介してより多様なデータ集合(状態変数Sを含む)を取得し、取得したデータ集合を入力として、それぞれのロボット5が備えた視覚センサ4が読み取った識別コードの画像と、該識別コードの理想的な画像との関係の学習の速度や信頼性を向上させることができる。
システム170は、識別コード読取装置1をネットワーク172に接続されたクラウドサーバ等として実装する構成を取ることもできる。この構成によれば、複数のロボットコントローラ2のそれぞれが存在する場所や時期に関わらず、必要なときに必要な数の視覚センサ4(を備えたロボット5を制御するロボットコントローラ2)を機械学習装置100に接続することができる。
なお、ロボットを使うことで、状態変数SでラベルデータLの組を大量に取得することもできる。例えば、図6に示したロボットコントローラ2に本発明の構成を導入した場合を考える。生産物に識別コードを付与するために、ロボットコントローラ2は、生産物の所定の位置に識別コード付与装置3を移動させるようロボット5に指令する。そして、生産物の所定の位置に識別コードを付与するように識別コード付与装置3に対して指令する。識別コード付与装置3は、識別コード生成装置6から、識別コードの理想的な形状を取得し、識別コード付与装置3が生産物の表面に対して該識別コードを付与する。なお、図6では、識別コード付与装置3をロボットの手先に(固定的に、又は、アームで把持して)取り付けているが、識別コード付与装置3をいずれかの位置に固定設置し、生産物をロボットのハンドで把持するという構成でもよい。
生産物に付与された識別コードを読み取るために、ロボットコントローラ2は、生産物の所定の位置に視覚センサ4を移動させるようロボット5に指令すると共に、生産物に付与された識別コードを読み取るように識別コード読取装置1に対して指令する。そして、識別コード読取装置1は、視覚センサ4を介して生産物の表面に付与された識別コードを読み取る。このような処理を、複数の生産物や生産物の複数の箇所に対して実施することで、状態変数SでラベルデータLの組を大量に取得することができる。さらに、識別コードを読み取る際には、視覚センサ4の位置を変更したり、使用する照明の種類や明るさを変更したりすることで、さまざまな条件下での識別コードの画像を取得することができる。なお、図6では、視覚センサ4をロボットの手先に(固定的に、又は、アームで把持して)取り付けているが、視覚センサ4をいずれかの位置に固定設置し、生産物をロボットのハンドで把持するという構成でもよい。
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例のみに限定されることなく、適宜の変更を加えることにより様々な態様で実施することができる。
例えば、機械学習装置100が実行する学習アルゴリズム、機械学習装置100が実行する演算アルゴリズム等は、上述したものに限定されず、様々なアルゴリズムを採用できる。
また、上記した実施形態では識別コード読取装置1と機械学習装置100とは異なるCPU(プロセッサ)を有する装置として説明しているが、機械学習装置100は識別コード読取装置1が備えるCPU11と、ROM12に記憶されるシステム・プログラムにより実現するようにしても良い。
上記した実施形態では、生産物の表面に付与された識別コードは、ロボットにより読み取りがされているが、この作業は視覚センサ4を持った作業者の手で行なわれても良い。
また、上記した実施形態では、視覚センサ4で撮像した識別コードの画像に対して正規化以外の前処理は行なっていないが、学習部110による理想的な画像の推定を行なう前に、画像中に映っている識別コードの位置や姿勢や大きさが、理想的な識別コードと同じになるように画像に変換を加えてもよい。
1 識別コード読取装置
2 ロボットコントローラ
3 識別コード付与装置
4 視覚センサ
5 ロボット
6 識別コード生成装置
11 CPU
12 ROM
13 RAM
14 不揮発性メモリ
18,19,21 インタフェース
20 バス
30 デコード部
40 出力部
100 機械学習装置
101 プロセッサ
102 ROM
103 RAM
104 不揮発性メモリ
106 状態観測部
108 ラベルデータ取得部
110 学習部
112 誤差計算部
114 モデル更新部
122 画像出力部
170 システム
172 ネットワーク

Claims (8)

  1. 生産物の表面に付与された識別コードを、視覚センサを用いて読み取る識別コード読取装置であって、
    前記視覚センサで読み取った識別コードの画像に対する前記識別コードの理想的な画像の推定を学習する機械学習装置を備え、
    前記機械学習装置は、
    前記視覚センサで読み取った識別コードの画像に係る読取画像データを、環境の現在状態を表す状態変数として観測する状態観測部と、
    前記識別コードの理想的な画像に係る理想画像データを、ラベルデータとして取得するラベルデータ取得部と、
    前記状態変数と前記ラベルデータとを用いて、前記読取画像データと、前記理想画像データとを関連付けて学習する学習部と、
    を備える識別コード読取装置。
  2. 前記学習部による学習結果を用いて前記読取画像データから前記識別コードの理想的な画像を推定して出力する画像出力部を更に備える、
    請求項1に記載の識別コード読取装置。
  3. 前記画像出力部は、複数の読取画像データのそれぞれから推定される前記識別コードの複数の理想的な画像に基づいて、前記識別コードの理想的な画像を推定して出力する、
    請求項2に記載の識別コード読取装置。
  4. 前記状態観測部は、更に前記生産物の素材、表面処理の方法、又は識別コードを付与する方法に係る付与状態データを環境の現在状態を表す状態変数として観測する、
    請求項1〜3のいずれか1つに記載の識別コード読取装置。
  5. 前記読み取り画像データは、前記視覚センサがアーム先端部に固定された、或いは、前記生産物がアーム先端部に把持された、ロボットを制御して前記識別コードを読み取ることで得られたものである、
    請求項1〜4のいずれか1つに記載の識別コード読取装置。
  6. 請求項5に記載の識別コード読取装置における学習用データの取得方法であって、
    前記視覚センサがアーム先端部に固定された、或いは、前記生産物アーム先端部に把持された、ロボットを制御して前記識別コードを読み取ることにより少なくとも1つの前記読み取り画像データを取得するステップ、
    を実行する学習用データの取得方法。
  7. 請求項5に記載の識別コード読取装置における識別コードの付与方法であって、
    識別コード付与装置がアームの先端部に固定された、或いは、前記生産物がアーム先端部に把持されたロボットを制御して前記識別コードを前記生産物に付与するステップ、
    を実行する識別コードの付与方法。
  8. 視覚センサで読み取った識別コードの画像に対する前記識別コードの理想的な画像の推定を学習する機械学習装置であって、
    前記視覚センサで読み取った識別コードの画像に係る読取画像データを、環境の現在状態を表す状態変数として観測する状態観測部と、
    前記識別コードの理想的な画像に係る理想画像データを、ラベルデータとして取得するラベルデータ取得部と、
    前記状態変数と前記ラベルデータとを用いて、前記読取画像データと、前記理想画像データとを関連付けて学習する学習部と、
    を備える機械学習装置。
JP2017194037A 2017-10-04 2017-10-04 識別コード読取装置及び機械学習装置 Active JP6683666B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2017194037A JP6683666B2 (ja) 2017-10-04 2017-10-04 識別コード読取装置及び機械学習装置
CN201811158864.0A CN109614830B (zh) 2017-10-04 2018-09-30 识别代码读取装置以及机器学习装置
US16/150,430 US10960550B2 (en) 2017-10-04 2018-10-03 Identification code reading apparatus and machine learning device
DE102018007826.5A DE102018007826A1 (de) 2017-10-04 2018-10-04 Identifikationscode-lesevorrichtung und maschinelle lernvorrichtung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017194037A JP6683666B2 (ja) 2017-10-04 2017-10-04 識別コード読取装置及び機械学習装置

Publications (2)

Publication Number Publication Date
JP2019067278A JP2019067278A (ja) 2019-04-25
JP6683666B2 true JP6683666B2 (ja) 2020-04-22

Family

ID=65728142

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017194037A Active JP6683666B2 (ja) 2017-10-04 2017-10-04 識別コード読取装置及び機械学習装置

Country Status (4)

Country Link
US (1) US10960550B2 (ja)
JP (1) JP6683666B2 (ja)
CN (1) CN109614830B (ja)
DE (1) DE102018007826A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022100505A1 (de) 2021-01-18 2022-07-21 Keyence Corporation Optische-Informationen-Lesevorrichtung
US11694048B2 (en) 2021-03-03 2023-07-04 Keyence Corporation Optical information reading device

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7522435B2 (ja) 2020-05-21 2024-07-25 国立大学法人 鹿児島大学 コード復号装置、コード復号方法及びプログラム
EP3961477B1 (en) 2020-08-24 2023-06-07 Saint-Gobain Glass France Method for detecting and reading a matrix code marked on a glass substrate
WO2022211064A1 (ja) * 2021-03-31 2022-10-06 株式会社デンソーウェーブ 情報読取装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3822592B2 (ja) * 2003-10-24 2006-09-20 東芝テリー株式会社 無線タグ所有物体の特定装置及び方法
JP2007090448A (ja) * 2005-09-27 2007-04-12 Honda Motor Co Ltd 二次元コード検出装置及びそのプログラム、並びに、ロボット制御情報生成装置及びロボット
US9164507B2 (en) * 2013-12-06 2015-10-20 Elwha Llc Systems and methods for modeling driving behavior of vehicles
US9881349B1 (en) * 2014-10-24 2018-01-30 Gopro, Inc. Apparatus and methods for computerized object identification
US9805296B2 (en) * 2016-02-23 2017-10-31 The Chinese University Of Hong Kong Method and apparatus for decoding or generating multi-layer color QR code, method for recommending setting parameters in generation of multi-layer QR code, and product comprising multi-layer color QR code
CN108698178B (zh) * 2016-02-26 2020-12-15 株式会社富士 机器人手臂控制系统
WO2018053847A1 (zh) * 2016-09-26 2018-03-29 达闼科技(北京)有限公司 一种智能库存管理系统、服务器、方法、终端和程序产品
JP6266746B2 (ja) 2016-12-28 2018-01-24 株式会社キーエンス 光学的情報読取装置
CN107220577A (zh) * 2017-05-12 2017-09-29 广州智慧城市发展研究院 一种基于机器学习的二维码定位方法及系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022100505A1 (de) 2021-01-18 2022-07-21 Keyence Corporation Optische-Informationen-Lesevorrichtung
US11854163B2 (en) 2021-01-18 2023-12-26 Keyence Corporation Optical information reading device
US11694048B2 (en) 2021-03-03 2023-07-04 Keyence Corporation Optical information reading device
US12039400B2 (en) 2021-03-03 2024-07-16 Keyence Corporation Optical information reading device

Also Published As

Publication number Publication date
US10960550B2 (en) 2021-03-30
JP2019067278A (ja) 2019-04-25
US20190099892A1 (en) 2019-04-04
DE102018007826A1 (de) 2019-04-04
CN109614830B (zh) 2021-06-01
CN109614830A (zh) 2019-04-12

Similar Documents

Publication Publication Date Title
JP6683666B2 (ja) 識別コード読取装置及び機械学習装置
CN109816624B (zh) 外观检查装置
JP6810087B2 (ja) 機械学習装置、機械学習装置を用いたロボット制御装置及びロボットビジョンシステム、並びに機械学習方法
CN109814615B (zh) 控制装置以及机器学习装置
CN105082132B (zh) 力‑扭矩任务的快速机器人模仿学习
CN106256512B (zh) 包括机器视觉的机器人装置
JP7458741B2 (ja) ロボット制御装置及びその制御方法及びプログラム
JP6629815B2 (ja) 寿命推定装置及び機械学習装置
US11059180B2 (en) Control device and machine learning device
Huang et al. Grasping novel objects with a dexterous robotic hand through neuroevolution
CN114730407A (zh) 使用神经网络对工作环境中的人类行为进行建模
JP7209657B2 (ja) 情報処理装置及び方法
JP7148322B2 (ja) 画像処理装置
CN114585487A (zh) 通过使用基于视觉的机器人任务模型训练模拟到真实模型来减轻现实差距
CN110942083A (zh) 拍摄装置以及拍摄系统
Qiu et al. Robotic fabric flattening with wrinkle direction detection
JP7372076B2 (ja) 画像処理システム
JP7376318B2 (ja) アノテーション装置
CN116724224A (zh) 加工面判定装置、加工面判定程序、加工面判定方法、加工系统、推论装置及机器学习装置
US20210142049A1 (en) Motion recognition apparatus, motion recognition method, non-transitory computer readable storage medium, and motion recognition system
JP7502448B2 (ja) 検査装置
WO2022065273A1 (ja) 外観検査のためのモデル作成装置及び外観検査装置
EP4350614A1 (en) Trained model generating device, trained model generating method, and recognition device
Kanakis et al. Check for updates Cognitive Exoskeletons: Harnessing AI for Enhanced Wearable Robotics in Shipbuilding
CN117813184A (zh) 机器人的保持形态决定装置、保持形态决定方法、以及机器人控制系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181221

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20190520

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190906

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20190930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191008

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191126

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: 20200225

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200326

R150 Certificate of patent or registration of utility model

Ref document number: 6683666

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150