(57)【要約】【課題】読み取りに適さない識別コードであっても適切に読み取ることが可能な識別コード読取装置及び機械学習装置を提供すること。【解決手段】本発明の識別コード読取装置１は、視覚センサ４で読み取った識別コードの画像に対する該識別コードの理想的な画像の推定を学習する機械学習装置１００を備え、該機械学習装置１００は、視覚センサ４で読み取った識別コードの画像に係る読取画像データを、環境の現在状態を表す状態変数として観測する状態観測部１０６と、識別コードの理想的な画像に係る理想画像データを、ラベルデータとして取得するラベルデータ取得部１０８と、状態変数とラベルデータとを用いて、読取画像データと、理想画像データとを関連付けて学習する学習部１１０と、を備える。【選択図】図２
2019067278.tif 000002
【特許請求の範囲】
【請求項１】
生産物の表面に付与された識別コードを、視覚センサを用いて読み取る識別コード読取装置であって、
前記視覚センサで読み取った識別コードの画像に対する前記識別コードの理想的な画像の推定を学習する機械学習装置を備え、
前記機械学習装置は、
前記視覚センサで読み取った識別コードの画像に係る読取画像データを、環境の現在状態を表す状態変数として観測する状態観測部と、
前記識別コードの理想的な画像に係る理想画像データを、ラベルデータとして取得するラベルデータ取得部と、
前記状態変数と前記ラベルデータとを用いて、前記読取画像データと、前記理想画像データとを関連付けて学習する学習部と、
を備える識別コード読取装置。
【請求項２】
前記学習部による学習結果を用いて前記読取画像データから前記識別コードの理想的な画像を推定して出力する画像出力部を更に備える、
請求項１に記載の識別コード読取装置。
【請求項３】
前記画像出力部は、複数の読取画像データのそれぞれから推定される前記識別コードの複数の理想的な画像に基づいて、前記識別コードの理想的な画像を推定して出力する、
請求項２に記載の識別コード読取装置。
【請求項４】
前記状態観測部は、更に前記生産物の素材、表面処理の方法、又は識別コードを付与する方法に係る付与状態データを環境の現在状態を表す状態変数として観測する、
請求項１〜３のいずれか１つに記載の識別コード読取装置。
【請求項５】
前記読み取り画像データは、前記視覚センサがアーム先端部に固定された、或いは、前記生産物がアーム先端部に把持された、ロボットを制御して前記識別コードを読み取ることで得られたものである、
請求項１〜４のいずれか１つに記載の識別コード読取装置。
【請求項６】
請求項５に記載の識別コード読取装置における学習用データの取得方法であって、
前記視覚センサがアーム先端部に固定された、或いは、前記生産物アーム先端部に把持された、ロボットを制御して前記識別コードを読み取ることにより少なくとも１つの前記読み取り画像データを取得するステップ、
を実行する学習用データの取得方法。
【請求項７】
請求項５に記載の識別コード読取装置における学習用データの付与方法であって、
識別コード付与装置がアームの先端部に固定された、或いは、前記生産物がアーム先端部に把持されたロボットを制御して前記識別コードを前記生産物に付与するステップ、
を実行する学習用データの付与方法。
【請求項８】
視覚センサで読み取った識別コードの画像に対する前記識別コードの理想的な画像の推定を学習する機械学習装置であって、
前記視覚センサで読み取った識別コードの画像に係る読取画像データを、環境の現在状態を表す状態変数として観測する状態観測部と、
前記識別コードの理想的な画像に係る理想画像データを、ラベルデータとして取得するラベルデータ取得部と、
前記状態変数と前記ラベルデータとを用いて、前記読取画像データと、前記理想画像データとを関連付けて学習する学習部と、
を備える機械学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、識別コード読取装置及び機械学習装置に関する。
【背景技術】
【０００２】
生産物の表面に１次元バーコードやＱＲコード（登録商標）、データマトリックスなどの識別コードを付与する方法としては、例えば識別コードを印刷したラベルを生産物の表面の貼付する手法や、生産物の表面をプリンタやレーザーマーカ、ドリルなどで識別コードの直接刻印加工をするダイレクトマーキングの手法などがある。
【０００３】
一般に、生産物の表面に付与された識別コードは視覚センサ等を用いて読み取られる。図６は、生産物の表面に対する識別コードの付与と、生産物の表面に付与された識別コードの読み取りとを行うことができるロボットの例を示す図である。生産物に識別コードを付与する際には、ロボットコントローラ２は、生産物の所定の位置に識別コード付与装置３を移動させるようロボット５に指令すると共に、生産物の所定の位置に識別コードを付与するように識別コード付与装置３に対して指令する。そして、識別コード付与装置３は、識別コード生成装置６から識別コードの形状を取得し、識別コード付与装置３が生産物の表面に対して該識別コードを付与する。また、生産物に付与された識別コードを読み取る際には、ロボットコントローラ２は、生産物の所定の位置に視覚センサ４を移動させるようロボット５に指令すると共に、生産物に付与された識別コードを読み取るように識別コード読取装置１に対して指令する。そして、識別コード読取装置１は、視覚センサ４を介して生産物の表面に付与された識別コードを読み取る。
【０００４】
しかしながら、生産物の表面に付与された識別コードの読み取りにおいては、生産物の識別コードが付与された箇所が平坦ではない場合や、識別コードが付与された位置への光のあたる角度や見る位置が適切ではない場合など、様々な要因で識別コードの読み取りに失敗することがある。このような問題を解決する従来技術として、例えば特許文献１などが開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１７−０５９２６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
生産物の表面に付与された識別コードの読み取りに失敗するケースとしては、例えば以下のような場合がある。
●黒セル（黒バー）と白セル（白バー）とのコントラストが低い
●黒セル（黒バー）と白セル（白バー）とが反転して検出される
●生産物の表面形状などが原因で識別コードの形状が歪んで検出される
●打痕やドリル孔等で形成され識別コードの規格を厳密に満たしていない
●表面に付着した切削液等の影響で識別コードの一部の色合い等が異なって検出される
【０００７】
上記した識別コードの読み取りが失敗するケースでは、同じ生産物の表面に付与された識別コードであっても、視覚センサ等で検出される画像の映り具合はその状況に応じて様々なものとなる。しかしながら、上記した従来技術では、特定の状況には対応することができても、上記した様々な状況に対応することができない。
【０００８】
そこで本発明の目的は、読み取りに適さない識別コードであっても適切に読み取ることが可能な識別コード読取装置及び機械学習装置を提供することである。
【課題を解決するための手段】
【０００９】
本発明では、機械学習を用いて読み取りに適さない識別コードの画像を読み取りやすいものに修復することにより、上記課題を解決する。本発明で導入される修復方法は、以下の手順で実現される。
●手順１）識別コードとしたい文字列を決定する。
●手順２）文字列から理想的な識別コードを生成する。これを教師データとする。
●手順３）実際に識別コードを読み取る面に対して、識別コードを付与する。
●手順４）付与した識別コードを様々な状況で撮像した画像を入力データとする。
●手順５）入力データ、教師データの対を学習データとして、学習データを多数集める。
●手順６）学習データで学習器の学習を行う。
【００１０】
以上の手順で学習を進めた機械学習装置に対して識別コードの画像を入力すると、理想的な識別コードの画像が出力される。そして、理想的な識別コードの画像をデコードすることで識別コードを容易に読み取ることができる。更に様々な素材や形状の生産物に対して同様の操作を行い、学習データを取得し、学習を行うこともできる。そのようにすることで、単一の素材や形状だけでなく、様々が素材や形状の生産物に付与された識別コードを修復することができる。
【００１１】
そして、本発明の一態様は、生産物の表面に付与された識別コードを、視覚センサを用いて読み取る識別コード読取装置であって、前記視覚センサで読み取った識別コードの画像に対する前記識別コードの理想的な画像の推定を学習する機械学習装置を備え、前記機械学習装置は、前記視覚センサで読み取った識別コードの画像に係る読取画像データを、環境の現在状態を表す状態変数として観測する状態観測部と、前記識別コードの理想的な画像に係る理想画像データを、ラベルデータとして取得するラベルデータ取得部と、前記状態変数と前記ラベルデータとを用いて、前記読取画像データと、前記理想画像データとを関連付けて学習する学習部と、を備える識別コード読取装置である。
【００１２】
本発明の他の態様は、視覚センサで読み取った識別コードの画像に対する前記識別コードの理想的な画像の推定を学習する機械学習装置であって、前記視覚センサで読み取った識別コードの画像に係る読取画像データを、環境の現在状態を表す状態変数として観測する状態観測部と、前記識別コードの理想的な画像に係る理想画像データを、ラベルデータとして取得するラベルデータ取得部と、前記状態変数と前記ラベルデータとを用いて、前記読取画像データと、前記理想画像データとを関連付けて学習する学習部と、を備える機械学習装置である。
【発明の効果】
【００１３】
本発明によれば、読み取りに適さない識別コードを理想的な識別コードへと修復することが可能となるため、状況によっては読み取ることができなかった識別コードを適切に読み取ることができるようになる。
【図面の簡単な説明】
【００１４】
【図１】一実施形態による識別コード読取装置の概略的なハードウェア構成図である。
【図２】一実施形態による識別コード読取装置の概略的な機能ブロック図である。
【図３】識別コード読取装置の一形態を示す概略的な機能ブロック図である。
【図４Ａ】ニューロンを説明する図である。
【図４Ｂ】ニューラルネットワークを説明する図である。
【図５】識別コード読取装置を組み込んだシステムの一形態を示す概略的な機能ブロック図である。
【図６】従来技術による識別コード読取装置の例を示す概略的な構成図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態を図面と共に説明する。
図１は第１の実施形態による識別コード読取装置の要部を示す概略的なハードウェア構成図である。識別コード読取装置１は、例えばロボットを制御するロボットコントローラにインタフェースや有線／無線ネットワークを介して接続されたパソコン等のコンピュータとして実装することができる。また、識別コード読取装置１は、例えばロボットを制御するロボットコントローラにインタフェースや有線／無線ネットワークを介して接続されたセルコンピュータ、ホストコンピュータ、クラウドコンピュータ等のサーバコンピュータとして実装することができる。本実施形態による識別コード読取装置１が備えるＣＰＵ１１は、識別コード読取装置１を全体的に制御するプロセッサである。ＣＰＵ１１は、ＲＯＭ１２に格納されたシステム・プログラムをバス２０を介して読み出し、該システム・プログラムに従って識別コード読取装置１全体を制御する。ＲＡＭ１３には一時的な計算データや表示データ、図示しない入力部を介してオペレータが入力した各種データ等が一時的に格納される。
【００１６】
不揮発性メモリ１４は、例えば図示しないバッテリでバックアップされるなどして、識別コード読取装置１の電源がオフされても記憶状態が保持されるメモリとして構成される。不揮発性メモリ１４には、図示しない入力装置を介して作業者が入力した各種データなどが記憶されている。不揮発性メモリ１４に記憶された各種データは、利用時にはＲＡＭ１３に展開されても良い。また、ＲＯＭ１２には、識別コード読取装置１の動作に必要な各種のシステム・プログラム（後述する機械学習装置１００とのやりとりを制御するためのシステム・プログラムを含む）があらかじめ書き込まれている。
【００１７】
識別コード読取装置１は、ロボット５を制御するロボットコントローラ２からインタフェース１８を介して指令を受けると、インタフェース１９を介して視覚センサ４から識別コードの画像を取得することで識別コードを読み取る。
【００１８】
インタフェース２１は、識別コード読取装置１と機械学習装置１００とを接続するためのインタフェースである。機械学習装置１００は、機械学習装置１００全体を統御するプロセッサ１０１と、システム・プログラム等を記憶したＲＯＭ１０２、機械学習に係る各処理における一時的な記憶を行うためのＲＡＭ１０３、及び学習モデル等の記憶に用いられる不揮発性メモリ１０４を備える。機械学習装置１００は、インタフェース２１を介して識別コード読取装置１が読み取った識別コードの画像等を観測することができる。また、識別コード読取装置１は、機械学習装置１００から出力される理想的な識別コードの画像を解析するデコード処理を行う。
【００１９】
図２は、第１の実施形態による識別コード読取装置１と機械学習装置１００の概略的な機能ブロック図である。図２に示した各機能ブロックは、図１に示した識別コード読取装置１が備えるＣＰＵ１１、及び機械学習装置１００のプロセッサ１０１が、それぞれのシステム・プログラムを実行し、識別コード読取装置１及び機械学習装置１００の各部の動作を制御することにより実現される。本実施形態の識別コード読取装置１は、デコード部３０、出力部４０を備える。
【００２０】
デコード部３０は、機械学習装置１００から出力された理想的な識別コードの画像に対して、該識別コードの種類に応じたデコード処理を実行することで、該識別コードの元の文字列をデコードする。デコード部３０が実行するデコード処理は一般的な識別コードのデコード処理をそのまま用いることができる。
出力部４０は、デコード部３０によりデコードされた文字列を表示装置などの外部装置へと出力する。
【００２１】
一方、識別コード読取装置１が備える機械学習装置１００は、視覚センサ４で観測した識別コードの画像と、理想的な識別コードの画像との関係を表すモデル構造を学習する。図２に機能ブロックで示すように、識別コード読取装置１が備える機械学習装置１００は、視覚センサ４で観測した識別コードの画像に係る読取画像データＳ１を含む状態変数Ｓとして観測する状態観測部１０６と、該識別コードの理想的な画像に係る理想画像データＬ１を含むラベルデータＬを取得するラベルデータ取得部１０８と、状態変数ＳとラベルデータＬとを用いて、読み取った識別コードの画像と理想的な識別コードの画像との相関性を学習する学習部１１０、及び学習部１１０による学習済みモデルを用いて読み取った識別コードの画像から推定した理想的な識別コードの画像を出力する画像出力部１２２を備える。
【００２２】
状態観測部１０６が観測する状態変数Ｓのうち、読取画像データＳ１は、ロボット５を制御して生産物の表面に付与された識別コードを視覚センサ４で読み取った画像情報を用いることができる。または、読取画像データＳ１は、生産物の表面に付与された識別コードが他の撮像手段で撮像されて、図示しないインタフェースを介して識別コード読取装置１で取得した画像情報を用いることができる。読取画像データＳ１は、データの数（ピクセル数を）が学習部１１０の入力データとして適合するように正規化しても良い。
【００２３】
ラベルデータ取得部１０８は、学習部１１０の学習時において、ラベルデータＬとして、識別コードの理想的な画像に係る理想画像データＬ１を取得する。理想画像データＬ１は、例えば識別コード生成装置６が生成した識別コードの画像を用いることができる。または、理想画像データＬ１は、例えば識別コードの元となる文字列等から理想的な画像を生成するようにしても良い。または、理想画像データＬ１は、生産物の表面に付与された識別コードを理想的な位置関係及び照明の状態でロボット５が備える視覚センサ４により撮像して得られた画像を用いるようにしても良い。理想画像データＬ１は、データの数（ピクセル数を）が学習部１１０の出力データとして適合するように正規化しても良い。ラベルデータ取得部１０８は、学習部１１０による学習時において利用されるものであり、学習部１１０による学習が完了した後は機械学習装置１００の必須の構成とする必要は無い。
【００２４】
学習部１１０は、機械学習と総称される任意の学習アルゴリズムに従い、状態変数Ｓ（識別コードの画像に係る読取画像データＳ１）に対するラベルデータＬ（識別コードの理想的な画像に係る理想画像データＬ１）を学習する。学習部１１０は、例えば状態変数Ｓに含まれる理想画像データＬ１と、ラベルデータＬに含まれる理想画像データＬ１との相関性を学習することができる。学習部１１０は、状態変数ＳとラベルデータＬとを含むデータ集合に基づく学習を反復実行することができる。
【００２５】
学習部１１０による学習においては、１つの識別コードに対して複数の読取画像データＳ１を用いた複数の学習サイクルを実行することが望ましい。より具体的には、生産物の表面に付与された１つの識別コードについて様々な撮像条件（生産物の表面に対する視覚センサ４の角度の変更、光のあたり具合の変更、切削液等による汚れ具合の変更など）で撮像した複数の読取画像データＳ１のそれぞれと、該識別コードに係る理想画像データＬ１とを用いた複数の学習サイクルを実行する。また、これを異なる識別コードについても実行する。
【００２６】
このような学習サイクルを繰り返すことにより、学習部１１０は、生産物の表面に付与された識別コードを視覚センサ４で読み取った画像（読取画像データＳ１）と、該識別コードの理想的な画像（理想画像データＬ１）との相関性を自動的に解釈する。学習アルゴリズムの開始時には読取画像データＳ１に対する理想画像データＬ１の相関性は実質的に未知であるが、学習部１１０が学習を進めるに従い徐々に読取画像データＳ１と理想画像データＬ１との関係を解釈し、その結果として得られた学習済みモデルを用いることで読取画像データＳ１に対する理想画像データＬ１の相関性を解釈可能になる。
【００２７】
画像出力部１２２は、学習部１１０が学習した結果（学習済みモデル）に基づいて、視覚センサ４から得られた識別データの画像から該識別データの理想的な画像を推定し、推定した理想的な識別データの画像をデコード部３０へと出力する。画像出力部１２２は、生産物の表面に付与された識別コードの１つの画像から該識別データの理想的な画像を推定するようにしても良い。また、画像出力部１２２は、生産物の表面に付与された識別コードの複数の画像（例えば、生産物に対する視覚センサ４の角度を変更して撮像した複数の画像）を取得し、該複数の画像のそれぞれから推定される該識別データの理想的な画像を比較し（例えば多数決論理などを用いて）該識別データの理想的な画像を推定するようにしても良い。
【００２８】
識別コード読取装置１の一変形例として、状態観測部１０６は、状態変数Ｓとして、読取画像データＳ１に加えて、生産物の素材、生産物の表面処理の方法、生産物の表面に識別コードを付与する方法に係る付与状態データＳ２を観測するようにしても良い。付与状態データＳ２については、例えば予め作業者が図示しない入力装置などを介して不揮発性メモリ１４などに設定しておき、状態観測部１０６が不揮発性メモリ１４を参照することで取得することができる。
【００２９】
上記変形例によれば、機械学習装置１００は、識別コードが付与された素材を考慮して、生産物の表面に付与された識別コードの画像からの該識別コードの理想的な画像の推定を学習することができるため、より高い精度での理想的な識別コードの画像の推定を行うことができるようになる。
【００３０】
上記構成を有する機械学習装置１００では、学習部１１０が実行する学習アルゴリズムは特に限定されず、機械学習として公知の学習アルゴリズムを採用できる。図６は、図２に示す識別コード読取装置１の他の形態であって、学習アルゴリズムの他の例として教師あり学習を実行する学習部１１０を備えた構成を示す。教師あり学習は、入力とそれに対応する出力との既知のデータセット（教師データと称する）が与えられ、それら教師データから入力と出力との相関性を暗示する特徴を識別することで、新たな入力に対する所要の出力を推定するための相関性モデルを学習する手法である。
【００３１】
図３に示す識別コード読取装置１が備える機械学習装置１００において、学習部１１０は、状態変数Ｓに含まれる生産物の表面に付与された識別コードを視覚センサ４で読み取った画像から該識別コードの理想的な画像を推定する相関性モデルＭと識別コードの理想的な画像として得られた教師データＴから識別される相関性特徴との誤差Ｅを計算する誤差計算部１１２と、誤差Ｅを縮小するように相関性モデルＭを更新するモデル更新部１１４とを備える。学習部１１０は、モデル更新部１１４が相関性モデルＭの更新を繰り返すことによって生産物の表面に付与された識別コードを視覚センサ４で読み取った画像からの該識別コードの理想的な画像の推定を学習する。
【００３２】
相関性モデルＭの初期値は、例えば、状態変数Ｓと識別コードの理想的な画像（を構成する各ピクセル）との相関性を単純化して（例えば一次関数で）表現したものであり、教師あり学習の開始前に学習部１１０に与えられる。教師データＴは、本発明では例えば識別コード生成装置６が生成した識別コードの画像を利用することができ、識別コード読取装置１の序盤の運用時に随時学習部１１０に与えられる。誤差計算部１１２は、学習部１１０に随時与えられた教師データＴにより、生産物の表面に付与された識別コードを視覚センサ４で読み取った画像と該識別コードの理想的な画像との相関性を暗示する相関性特徴を識別し、この相関性特徴と、現在状態における状態変数Ｓ及びラベルデータＬに対応する相関性モデルＭとの誤差Ｅを求める。モデル更新部１１４は、例えば予め定めた更新ルールに従い、誤差Ｅが小さくなる方向へ相関性モデルＭを更新する。
【００３３】
次の学習サイクルでは、誤差計算部１１２は、更新後の相関性モデルＭに従って状態変数Ｓを用いて識別コードの理想的な画像の推定が行われ、該推定の結果と実際に取得されたラベルデータＬの誤差Ｅを求め、モデル更新部１１４が再び相関性モデルＭを更新する。このようにして、未知であった環境の現在状態とそれに対する推定との相関性が徐々に明らかになる。
【００３４】
前述した教師あり学習を進める際に、ニューラルネットワークを用いることができる。図４Ａは、ニューロンのモデルを模式的に示す。図４Ｂは、図４Ａに示すニューロンを組み合わせて構成した三層のニューラルネットワークのモデルを模式的に示す。ニューラルネットワークは、例えば、ニューロンのモデルを模した演算装置や記憶装置等によって構成できる。
【００３５】
図４Ａに示すニューロンは、複数の入力ｘ（ここでは一例として、入力ｘ1〜入力ｘ3）に対する結果ｙを出力するものである。各入力ｘ1〜ｘ3には、この入力ｘに対応する重みｗ（ｗ1〜ｗ3）が掛けられる。これにより、ニューロンは、次の数１式により表現される出力ｙを出力する。なお、数１式において、入力ｘ、出力ｙ及び重みｗは、すべてベクトルである。また、θはバイアスであり、ｆkは活性化関数である。
【００３６】
【数１】
2019067278.tif 000003
【００３７】
図４Ｂに示す三層のニューラルネットワークは、左側から複数の入力ｘ（ここでは一例として、入力ｘ１〜入力ｘ３）が入力され、右側から結果ｙ（ここでは一例として、結果ｙ１〜結果ｙ３）が出力される。図示の例では、入力ｘ１、ｘ２、ｘ３のそれぞれに対応の重み（総称してｗ１で表す）が乗算されて、個々の入力ｘ１、ｘ２、ｘ３がいずれも３つのニューロンＮ１１、Ｎ１２、Ｎ１３に入力されている。
【００３８】
図４Ｂでは、ニューロンＮ１１〜Ｎ１３の各々の出力を、総称してｚ１で表す。ｚ１は、入カベクトルの特徴量を抽出した特徴ベクトルと見なすことができる。図示の例では、特徴ベクトルｚ１のそれぞれに対応の重み（総称してｗ２で表す）が乗算されて、個々の特徴ベクトルｚ１がいずれも２つのニューロンＮ２１、Ｎ２２に入力されている。特徴ベクトルｚ１は、重みＷ１と重みＷ２との間の特徴を表す。
【００３９】
図４Ｂでは、ニューロンＮ２１〜Ｎ２２の各々の出力を、総称してｚ２で表す。ｚ２は、特徴ベクトルｚ１の特徴量を抽出した特徴ベクトルと見なすことができる。図示の例では、特徴ベクトルｚ２のそれぞれに対応の重み（総称してｗ３で表す）が乗算されて、個々の特徴ベクトルｚ２がいずれも３つのニューロンＮ３１、Ｎ３２、Ｎ３３に入力されている。特徴ベクトルｚ２は、重みＷ２と重みＷ３との間の特徴を表す。最後にニューロンＮ３１〜Ｎ３３は、それぞれ結果ｙ１〜ｙ３を出力する。
なお、三層以上の層を為すニューラルネットワーク（ＣＮＮ：Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋを含む）を用いた、いわゆるディープラーニングの手法を用いることも可能である。
【００４０】
識別コード読取装置１が備える機械学習装置１００においては、状態変数Ｓを入力ｘとして、学習部１１０が上記したニューラルネットワークに従う多層構造の演算を行うことで、視覚センサ４から取得した識別コードの画像の各ピクセルの値（入力ｘ）から理想的な識別コードの画像の各ピクセル値（出力ｙ）を推定することができる。なお、ニューラルネットワークの動作モードには、学習モードと価値予測モードとがあり、例えば学習モードで学習データセットを用いて重みｗを学習し、学習した重みｗを用いて価値予測モードで行動の価値判断を行うことができる。なお価値予測モードでは、検出、分類、推論等を行うこともできる。
【００４１】
上記した機械学習装置１００の構成は、プロセッサ１０１が各々実行する機械学習方法（或いはソフトウェア）として記述できる。この機械学習方法は、視覚センサ４から取得した識別コードの画像から理想的な識別コードの画像の推定を学習する機械学習方法であって、プロセッサ１０１が、生産物の表面に付与された識別コードを視覚センサ４で読み取った画像（読取画像データＳ１）を現在状態を表す状態変数Ｓとして観測するステップと、識別コードの理想的な画像（理想画像データＬ１）をラベルデータＬとして取得するステップと、状態変数ＳとラベルデータＬとを用いて、読取画像データＳ１と、理想画像データＬ１とを関連付けて学習するステップとを有する。
【００４２】
機械学習装置１００の学習部１１０により学習されて得られた学習済みモデルは機械学習に係るソフトウェアの一部であるプログラムモジュールとしての利用することが可能である。本発明の学習済みモデルは、ＣＰＵやＧＰＵ等のプロセッサとメモリを備えるコンピュータにて用いることができる。より具体的には、コンピュータのプロセッサが、メモリに記憶された学習済みモデルからの指令に従って、生産物の表面に付与された識別コードの画像を入力として演算を行い、演算結果に基づいて該識別コードの理想的な画像の推定結果を出力するように動作する。本発明の学習済みモデルは、外部記憶媒体やネットワーク等を介して他のコンピュータに対して複製して利用することが可能である。
【００４３】
また、本発明の学習済みモデルを他のコンピュータに対して複製して新しい環境で利用する際に、当該環境で得られた新たな状態変数や判定データに基づいて当該学習済みモデルに対して更なる学習を行わせることもできる。このようにした場合、当該環境による学習済みモデルから派生した学習済みモデル（以下、派生モデルとする）を得ることが可能である。本発明の派生モデルは、生産物の表面に付与された識別コードの画像から該識別コードの理想的な画像の推定結果を出力するという点では元の学習済みモデルと同じだが、元の学習済みモデルよりも新しい環境に適合した結果を出力するという点で異なる。この派生モデルもまた、外部記憶媒体やネットワーク等を介して他のコンピュータに対して複製して利用することが可能である。
【００４４】
更に、本発明の学習済みモデルを組み込んだ機械学習装置に対する入力に対して得られる出力を用いて、他の機械学習装置において１から学習を行うことで得られる学習済みモデル（以下、蒸留モデルとする）を作成し、これを利用することも可能である（このような学習工程を蒸留と言う）。蒸留において、元の学習済みモデルを教師モデル、新たに作成する蒸留モデルを生徒モデルとも言う。一般に、蒸留モデルは元の学習済みモデルよりもサイズが小さく、それでいて元の学習済みモデルと同等の正確度を出せるため、外部記憶媒体やネットワーク等を介した他のコンピュータに対する配布により適している。
【００４５】
図５は、視覚センサ４（図示せず）を備えたロボット５を制御する複数のロボットコントローラ２を有する一実施形態によるシステム１７０を示す。システム１７０は、識別コード読取装置１と、少なくとも視覚センサ４を備えたロボット５を制御する複数のロボットコントローラ２と、それらを互いに接続する有線／無線のネットワーク１７２とを備えて構成される。視覚センサ４をロボットの手先に（固定的に、又は、アームで把持して）取り付けるのではなく、視覚センサ４をいずれかの位置に固定設置し、生産物をロボットのハンドで把持するという構成でもよい。
【００４６】
上記構成を有するシステム１７０は、それぞれのロボット５が備えた視覚センサ４が読み取った（そして、ロボットコントローラ２を介して取得した）識別コードの画像と、該識別コードの理想的な画像との関係を識別コード読取装置１が備える機械学習装置１００の学習部１１０が学習し、その学習結果を用いて、それぞれのロボット５が備えた視覚センサ４が読み取った識別コードの画像から、該識別コードの理想的な画像を、自動的に、しかも正確に推定することができる。このようなシステム１７０の構成によれば、複数のロボットコントローラ２を介してより多様なデータ集合（状態変数Ｓを含む）を取得し、取得したデータ集合を入力として、それぞれのロボット５が備えた視覚センサ４が読み取った識別コードの画像と、該識別コードの理想的な画像との関係の学習の速度や信頼性を向上させることができる。
【００４７】
システム１７０は、識別コード読取装置１をネットワーク１７２に接続されたクラウドサーバ等として実装する構成を取ることもできる。この構成によれば、複数のロボットコントローラ２のそれぞれが存在する場所や時期に関わらず、必要なときに必要な数の視覚センサ４（を備えたロボット５を制御するロボットコントローラ２）を機械学習装置１００に接続することができる。
【００４８】
なお、ロボットを使うことで、状態変数ＳでラベルデータＬの組を大量に取得することもできる。例えば、図６に示したロボットコントローラ２に本発明の構成を導入した場合を考える。生産物に識別コードを付与するために、ロボットコントローラ２は、生産物の所定の位置に識別コード付与装置３を移動させるようロボット５に指令する。そして、生産物の所定の位置に識別コードを付与するように識別コード付与装置３に対して指令する。識別コード付与装置３は、識別コード生成装置６から、識別コードの理想的な形状を取得し、識別コード付与装置３が生産物の表面に対して該識別コードを付与する。なお、図６では、識別コード付与装置３をロボットの手先に（固定的に、又は、アームで把持して）取り付けているが、識別コード付与装置３をいずれかの位置に固定設置し、生産物をロボットのハンドで把持するという構成でもよい。
【００４９】
生産物に付与された識別コードを読み取るために、ロボットコントローラ２は、生産物の所定の位置に視覚センサ４を移動させるようロボット５に指令すると共に、生産物に付与された識別コードを読み取るように識別コード読取装置１に対して指令する。そして、識別コード読取装置１は、視覚センサ４を介して生産物の表面に付与された識別コードを読み取る。このような処理を、複数の生産物や生産物の複数の箇所に対して実施することで、状態変数ＳでラベルデータＬの組を大量に取得することができる。さらに、識別コードを読み取る際には、視覚センサ４の位置を変更したり、使用する照明の種類や明るさを変更したりすることで、さまざまな条件下での識別コードの画像を取得することができる。なお、図６では、視覚センサ４をロボットの手先に（固定的に、又は、アームで把持して）取り付けているが、視覚センサ４をいずれかの位置に固定設置し、生産物をロボットのハンドで把持するという構成でもよい。
【００５０】
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例のみに限定されることなく、適宜の変更を加えることにより様々な態様で実施することができる。
【００５１】
例えば、機械学習装置１００が実行する学習アルゴリズム、機械学習装置１００が実行する演算アルゴリズム等は、上述したものに限定されず、様々なアルゴリズムを採用できる。
【００５２】
また、上記した実施形態では識別コード読取装置１と機械学習装置１００とは異なるＣＰＵ（プロセッサ）を有する装置として説明しているが、機械学習装置１００は識別コード読取装置１が備えるＣＰＵ１１と、ＲＯＭ１２に記憶されるシステム・プログラムにより実現するようにしても良い。
【００５３】
上記した実施形態では、生産物の表面に付与された識別コードは、ロボットにより読み取りがされているが、この作業は視覚センサ４を持った作業者の手で行なわれても良い。
また、上記した実施形態では、視覚センサ４で撮像した識別コードの画像に対して正規化以外の前処理は行なっていないが、学習部１１０による理想的な画像の推定を行なう前に、画像中に映っている識別コードの位置や姿勢や大きさが、理想的な識別コードと同じになるように画像に変換を加えてもよい。
【符号の説明】
【００５４】
１  識別コード読取装置
２  ロボットコントローラ
３  識別コード付与装置
４  視覚センサ
５  ロボット
６  識別コード生成装置
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  不揮発性メモリ
１８，１９，２１  インタフェース
２０  バス
３０  デコード部
４０  出力部
１００  機械学習装置
１０１  プロセッサ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  不揮発性メモリ
１０６  状態観測部
１０８  ラベルデータ取得部
１１０  学習部
１１２  誤差計算部
１１４  モデル更新部
１２２  画像出力部
１７０  システム
１７２  ネットワーク
【図１】
2019067278.tif 000004
【図２】
2019067278.tif 000005
【図３】
2019067278.tif 000006
【図４Ａ】
2019067278.tif 000007
【図４Ｂ】
2019067278.tif 000008
【図５】
2019067278.tif 000009
【図６】
2019067278.tif 000010