本開示は、ロボットを制御する方法、装置、システム及びプログラム、並びに記憶媒体に関する。
生産工学に基づいてロボットを制御するには、ニューラルネットワーク等を利用した人工知能技術を使用してロボットの制御を行うことが考えられる。所望の制御を実現するために、ニューラルネットワークは学習データに基づいて学習を行い、学習されたニューラルネットワークは対象の画像等の入力データに基づいて制御データを出力し、ロボットを制御して対象に所望の動作を行わせる。
また、製造工程での対象の属性、例えば、対象が良品か不良品かを示す属性を判定する必要があり、そのような判定は、ニューラルネットワーク等を利用して対象の画像認識を行う人工知能技術を用いて実現され得る。
しかし、ロボットが意図しない動作を行った場合、学習されたニューラルネットワークが如何にしてそのような予期せぬ制御データを出力したかが、ユーザには不明である。ニューラルネットワークの演算過程はユーザに知られていないため、ロボットの制御を改善することができない。
本開示は、上述の問題の少なくともいくつかを解決するためになされた。
本開示の実施形態の一態様によれば、ロボットを制御する方法であって、外部メモリに接続されたニューラルネットワークを使用して前記ロボットの制御を行い、前記方法は、学習されたニューラルネットワークに入力データを入力して、前記ニューラルネットワークによる演算を通じて出力データを取得し、前記入力データは対象に関する画像を含み、前記出力データは前記ロボットに関する制御データを含み、前記ロボットは前記制御データに基づいて前記対象を制御することと、前記演算中に前記ニューラルネットワークによって生成された情報の一部又は全部と前記入力データ及び/又は前記出力データとの間の関連を確立し、前記情報の一部又は全部を前記外部メモリに記録し、前記情報の一部又は全部は、前記制御データに関連する前記対象の特徴を表すこととを含むことを特徴とする方法が提供される。
前記情報の一部又は全部と前記入力データ及び/又は前記出力データとの間の関連を確立することにより、中間層(中間データ)のデータと対応する入力データ及び/又は前記出力データとの間の対応関係を知ることができ、更なる操作のために、ユーザがニューラルネットワークの中間層の情報を把握し、如何にしてニューラルネットワークがロボットを制御するのかを把握することができる。
ここで、前記情報の一部又は全部と、前記入力データ及び/又は前記出力データとの間の関連を確立することは、各入力データとそれらに対応する情報との間の関連を確立することと、各入力データのクラスとその入力データのクラスに対応する情報との間の関連を確立することと、各情報のクラスと、その情報のクラスに対応する入力データとの間の関連を確立することと、の少なくとも1つを含む。このように、同じ入力データのクラスの一般的情報又は同じ情報のクラスを知ることができ、それにより、同じ入力データのクラス又は同じ情報のクラスに対して操作を実行することができる。
ここで、前記外部メモリに前記情報の一部又は全部を記録することは、特定のデータ構造に基づいて前記入力データと前記情報の両方を保存することと、前記情報と前記関連を保存することと、前記情報を処理及び保存することと、を含む。
前記方法は、前記情報の一部又は全部と前記入力データとの相関を演算することと、第1方式で、第1相関を有する情報及び/又は前記第1相関を有する情報との関連を有する入力データを表すことによって、並びに第2方式で、第2相関を有する情報及び/又は前記第2相関を有する情報との関連を有する前記入力データを表すことによって関連を視覚化することと、を更に含むことができ、前記第1方式は前記第2方式とは異なり、前記第1相関は前記第2相関とは異なる。
前記方法は、前記情報の一部又は全部の使用頻度に基づいて前記情報の一部又は全部の重要度を演算することと、第1重要度を有する前記情報及び/又は前記第1重要度を有する前記情報との関連を有する前記入力データを第1方式で表すことにより、並びに第2重要度を有する前記情報及び/又は前記第2重要度を有する前記情報との関連を有する前記入力データを第2方式で表すことにより、関連を視覚化することと、を更に含むことができ、前記第1方式は、前記第2方式と異なり、前記第1重要度は、前記第2重要度と異なる。
このように、ユーザは、入力データ及び中間データ(前記情報の一部又は全部を含む)を、例えば、どの入力データから、予期しない中間データが引き起こされるかを直感的に知ることができる。結果として、ユーザは、可視結果に基づき、入力データ又は中間データを操作し、例えば、予期しない中間データを削除又は置換して、より良い出力結果を得ることができる。
前記方法は、前記第1方式で表された前記情報及び前記第2方式で表された前記情報のうちの少なくとも1つをユーザに通知することを更に含むことができる。
前記方法は、前記第1方式で表された前記情報及び前記第2方式で表された前記情報のうちの1つを削除又は無効化することと、前記第1方式で表された前記情報及び前記第2方式で表された前記情報のうちの1つを所定のデータで上書きすることと、前記外部メモリに、前記第1方式で表された前記情報及び前記第2方式で表された前記情報の少なくとも1つと異なる情報を保存することと、を更に含むことができる。
以上の操作により、ユーザは、内部メモリの内容を人為的に変更し、且つそれによりニューラルネットワークのメモリを変更し、予期する出力結果を得ることができる。
更に、前記方法は、前記ニューラルネットワークに再学習させることを更に含むことができる。
本開示の実施形態の一態様によれば、外部メモリに接続されたニューラルネットワークを使用して画像認識を行う画像認識方法であって、前記方法は、入力データを学習されたニューラルネットワークに入力して前記ニューラルネットワークによる演算を通じて出力データを取得し、前記入力データは、対象に関する画像を含み、前記出力データは、前記対象の属性を表すことと、前記演算中に前記ニューラルネットワークによって生成された情報の一部又は全部と前記入力データ及び/又は前記出力データとの間の関連を確立し、前記情報の一部又は全部を前記外部メモリに記録し、前記情報の一部又は全部は、前記属性に関連する前記対象の特徴を表すことを含むことを特徴とする方法が提供される。
このように、生産プロセスで対象の属性を判別する必要がある場合(例えば、属性が、対象が良品か不良品かを示す場合)、そのような判別は、ニューラルネットワーク等を利用して対象の画像認識を行った人工知能技術を使用して実現することもできる。
前記情報の一部又は全部と前記入力データ及び/又は前記出力データとの間の関連を確立することにより、中間層(中間データ)のデータと対応する入力データ及び/又は前記出力データとの間の対応関係を知ることができ、更なる操作のために、ユーザがニューラルネットワークの中間層の情報を把握し、如何にしてニューラルネットワークが対象を認識するのかを把握することができる。
本開示の実施形態の一態様によれば、入力データを学習されたニューラルネットワークに入力して、前記ニューラルネットワークによる演算を通じて出力データを取得することと、前記演算中に前記ニューラルネットワークによって生成された情報の一部又は全部と前記入力データ及び/又は前記出力データとの間の関連を確立し、前記ニューラルネットワークに接続された外部メモリに前記情報の一部又は全部を記録することと、を含むことを特徴とする情報処理方法が提供される。
前記情報の一部又は全部と前記入力データ及び/又は前記出力データとの間の関連を確立することにより、中間層のデータと対応する入力データ及び/又は前記出力データとの間の対応関係を知ることができ、更なる操作のために、ユーザがニューラルネットワークの中間層の情報を把握し、学習後のニューラルネットワークの操作状況を把握することができる。例えば、外部メモリに保存されている中間データを変更する、即ち、ニューラルネットワークのメモリを変更することで、ニューラルネットワークの出力データを変更することができる。
本開示の実施形態の更に別の態様によれば、上記の方法を実現するための装置が更に提供される。
本開示の実施形態の更に別の態様によれば、ロボットを制御するシステムが更に提供される。前記システムは、上記の方法を実行する処理ユニットを含むことができる。
本開示の実施形態の更に別の態様によれば、実行されると、上記の方法を実行するロボットを制御するプログラムが更に提供される。
本開示の実施形態の更に別の態様によれば、実行されると、上記の方法を実行するプログラムが保存された記憶媒体が更に提供される。
本開示の実施形態による方法、装置、ロボットを制御するシステム及びプログラム、画像認識のための方法、並びに記憶媒体により、更なる操作のために、ユーザは、中間層の情報を把握し、ニューラルネットワークの操作状況を把握することができる。例えば、ニューラルネットワークの予期しない出力データを訂正することができる。
また、外部メモリの内容を視覚化して明確にすることができる。別の例として、外部メモリの内容を操作して、学習状況を改善、又は出力結果を訂正することができる。
ここで説明される図面は、本開示の更なる理解を提供し、本開示の一部を構成するために使用される。本開示の概略的な実施形態及びその説明は、本開示を説明するために使用されるものであって、本開示に対する不適切な制限を構成するものではない。
本開示の実施形態によるロボットを制御するシステムのハードウェア構成を示すモード図である。
本開示の実施形態によるロボットを制御するシステムのブロック図である。
ニューラルネットワークの学習フェーズで使用される本開示の実施形態による方法のフローチャートである。
ニューラルネットワークの学習フェーズで使用される本開示の実施形態による方法の結果を示す図である。
ニューラルネットワークの作業フェーズで使用される本開示の実施形態による方法のフローチャートである。
ニューラルネットワークの作業フェーズで使用される本開示の実施形態による方法の結果を示す図である。
本開示の別の実施形態によるロボットを制御するシステムのブロック図である。
本開示の別の実施形態によるロボットを制御するシステムのブロック図である。
本開示の実施形態による方法の一例のフローチャートである。
本開示の実施形態による方法の別の例のフローチャートである。
本開示の実施形態による画像認識のための装置を示す概略図である。
当業者が本開示をよりよく理解できるようにするために、本開示の実施形態を以下で添付の図面を参照して明確かつ完全に説明する。当然、説明される実施形態は、本開示の実施形態の一部に過ぎず、実施形態の全てではない。本開示の実施形態に基づいて、如何なる創造的努力もなく当業者が得ることができる他の全ての実施形態は、本開示の保護範囲内に含まれるものとする。
近年、ニューラルネットワークのような機械学習モデルを用いた画像認識技術は、急速に開発が進められ、様々な技術分野で広く利用されている。機械学習モデルの動作モードを深く理解するために、本開示は、画像認識中の機械学習モデルの演算プロセスを検討する。本開示では、機械学習モデルの学習フェーズにおいて、学習プロセスで生成された学習データに対応する中間データを確認して、ニューラルネットワークの学習データ及びメモリ状況を知ることにより、学習データを処理することができ、例えば、より効率的な学習データを入力するか、非効率的な学習データを削除することができる。学習されたニューラルネットワークの作業フェーズでは、作業プロセスで生成された入力データや出力データに対応する中間データを確認して、ニューラルネットワークの作業状況を知り、中間データを修正することによって不適切な出力結果を訂正することもできる。
上記の中間データは、人間が便利に確認できるように処理及び視覚化されることができるため、機械学習技術と人間の判断の利点を組み合わせることができる。処理と視覚化には多くの方法があり、例えば、中間データをフィルタリングして分類することができ、中間データの異なるカテゴリを異なる色、異なる形、又は人々が注目できる他の様々な方式で表現することができ、従って、人々は、中間データの特定のクラスに注意を払うことができる。
本開示では、人々は、関心のある中間データを直接操作、例えば削除、上書き、無効化等して、ニューラルネットワークの学習又は作業プロセスを変更することができ、そのパフォーマンスを効率的に向上させ、望ましい学習又は作業結果を取得することができる。
先ず、本開示の一実施形態によるロボットを制御するシステム100のハードウェア構造について説明する。
図1Aは、本開示の一実施形態によるロボットを制御するシステム100のハードウェア構造を示すモード図である。図1Aに示すように、例えば、ロボットを制御するシステム100は、汎用コンピュータアーキテクチャを備えた汎用コンピュータによって実装されることができる。ロボットを制御するシステム100は、プロセッサ110、メインメモリ112、ストレージ114、入力インタフェース116、ディスプレイインタフェース118、及び通信インタフェース120を含む。これらのコンポーネントは、例えば内部バス122を介して相互に通信することができる。
プロセッサ110は、ストレージ114に保存されたプログラムをメインメモリ112上で展開して実行することで、後述する機能や処理を実現する。メインメモリ112は、揮発性メモリによって形成されることができ、プログラムを実行するためにプロセッサ110が必要とするワークメモリとして機能する。
入力インタフェース116は、マウスやキーボード等の入力部と接続されることができ、操作入力部を介してユーザから入力された指示を受け取る。
ディスプレイインタフェース118は、ディスプレイに接続されることができ、プログラムの実行時にプロセッサ110が生成した様々な処理結果をディスプレイに出力することができる。
通信インタフェース120は、ネットワーク200を介してPLCやデータベース装置等と通信するためのものである。
ストレージ114は、ロボットを制御するためのプログラム、OS(Operating System)等のプログラムを保存することができ、それは、コンピュータを、ロボットを制御するシステム100として用いることができる。
ストレージ114に保存されたロボットを制御するプログラムは、DVD(digital versatile disc)等の光記録媒体又はUSB(universal serial bus)メモリ等の半導体記録媒体によってロボットを制御するシステム100に実装されることができる。或いは、ネットワーク上でサーバ装置等からダウンロードしてもよい。
本実施形態によるロボットを制御するプログラムは、他のプログラムと組み合わせて提供されてもよい。この場合、ロボットを制御するプログラム自体は、上記のように組み合わされた他のプログラムに含まれるモジュールを含まないが、他のプログラムと連携する。このように、本実施形態によるロボットを制御するプログラムは、他のプログラムと組み合わせることもできる。
図1Aは、ロボットを制御するシステム100を実現するために汎用コンピュータを使用する例を示すが、本開示は、これに限定するものではなく、その機能の全部又は一部は、ASIC(application specific integrated circuit)又はFPGA(field−programmable gate array)等の専用回路によって実現されることができる。また、ロボットを制御するシステム100の処理の一部は、ネットワークに接続された外部装置上で行われてもよい。
図1Bは、本開示の実施形態によるロボットを制御するシステムのブロック図である。図1Bに示すように、ロボットを制御するシステム1は、ニューラルネットワーク10、メモリ部16、及びメモリ処理部20を含むことができる。ニューラルネットワーク10は、機械学習モデルの生成に使用され、入力部11、入力処理部12、学習部13、出力処理部14及び出力部15を含むことができる。メモリ部16はニューラルネットワーク10に電気的に接続される。或いは、メモリ部16はニューラルネットワーク10の一部であってもよい。ここで、メモリ部16は、本開示における「外部メモリ」の一例である。メモリ処理部20はメモリ部16のメモリを処理するために使用され、関連付け部21を含むことができる。
入力部11は、学習データ又はニューラルネットワーク10が作業フェーズ中に入力する入力データ等の生データの入力に使用される。学習データは、学習部13の学習のために入力される。作業フェーズでは、学習した学習部13による演算によって所望の出力データを取得するために入力データが入力される。学習データ及び入力データの例としては、例えば、生産ラインにおけるワークの画像データ等が挙げられる。学習データはラベルデータと統合することができ、ラベルデータはワークの属性、例えばワークが良品であるかどうかを表すことができる。一例として、出力データは、例えばロボットの制御データであることができ、ロボットは、ワークをつかむ又は置く等の制御データに基づいてワークを処理することができる。
入力処理部12は、入力部11から入力された生データを前処理するために使用される。例えば、生データをn次元のベクトル又は行列に変換することができる。変換の方法は特に限定せず、生データが学習部13で処理可能なフォーマットに変換される限り、従来技術の様々な方式を適用することができる。
学習部13は、入力処理部12から受信した前処理済みの生データに基づいて学習し、学習された機械学習モデルを生成する。本開示では、ニューラルネットワークを例として説明を行ったが、学習部13は他の機械学習方式で学習してもよい。
出力処理部14は学習部13の学習結果を最終的な出力の形に変換することができる。例えば、ロボットの制御の学習中に、出力処理部14は学習部13の学習結果をロボットコントローラが理解可能な制御命令に変換する。出力部15は、出力処理部14で処理された出力データを出力することに使用される。
メモリ部16は、学習フェーズ及び/又は作業フェーズ中に学習部13によって生成された中間データを保存するために使用され、従って、ニューラルネットワーク10はメモリ機能を有することができる。言い換えれば、メモリ部16の情報の一部又は全部は、学習部13による学習又は操作によって生成される。中間データは、例えば、ニューラルネットワークの中間層の演算結果を含んでもよいし、学習データ又は入力データに対応するデータ(データは中間層の演算結果に基づいて生成されることができる)を含んでもよい。一例として、例えば、画像におけるワークのクラスの判定の学習中に、学習データ又は入力データが画像データである場合、学習データ又は入力データに対応するデータは、ワークの特徴データであることができる。例えば、特徴データは、「長方形」、「円」等を表すことができる。これらの特徴は、ロボットによる予期される制御のタイプに関連し、例えば、異なる形状のワークに対して異なる操作が実行される。
メモリ部16は、関連が確立された後、情報の一部又は全部を保存することに使用することができる。例えば、図3を参照して以下に示される関連では、メモリ部16は、学習データLi及び中間データMi(「i」は、異なるメモリ空間を示す自然数である)の両方をリスト単位のデータ構造に保存することができる。エントリE30、E31はリストのエントリである。当然、メモリ部16は、他の様々な既知のデータ構造に従って保存することもできる。各中間データMiを保存するために、メモリ部16に複数のメモリスロットが存在することができる。例えば、メモリ部16は、コンテントアドレッサブル又はインデックスアドレッサブルであることができる。
或いは、保存されるデータの量を減らすために、メモリ部16は、中間データMi及び中間データMiとそれに対応する学習データLiとの間の関連のみを保存することができる。関連は、リスト、ポインタ等で表すことができる。
或いは、メモリ部16に保存されている中間データMiは、処理された中間データであることができる。例えば、Miを所定の規則に従って分類し、同じクラスのMiの値を同じ値に変更して保存することにより、ストレージ容量を更に削減し、その後の分析を簡略化する。
メモリ処理部20は入力部11から生データを受信するか、入力処理部12から処理された生データを受信する。或いは、メモリ処理部20は出力部15から出力データを受信することができる。関連付け部21は、生データ、処理された生データ、又は出力データと、メモリ部16に記憶された情報の一部又は全部との間の関連を確立することができる。
関連付け部21によって実行される操作を、図2を参照して以下で詳細に説明する。図2は、ニューラルネットワークの学習フェーズで使用される本開示の実施形態による方法のフローチャートである。
図2に示すように、ステップS20では、ニューラルネットワーク10は学習データで学習される。このような学習は、様々な既知の機械学習方式で実行できる。また、ニューラルネットワーク10は学習データとメモリ部16に保存されたコンテンツの両方で学習することができる。
例えば、ロボットの制御の学習中に、学習データはワークの画像データを含むことができる。そして、各画像データに対して、例えば、「つかむ」、「置く」等のロボットの制御データを含むことができる対応したラベルデータがあり得る。また、ラベルデータは、ワークのクラス、ワークが不良品であるか否か等に関する情報を更に含むことができる。例えば、上記の学習用のニューラルネットワーク10として、畳み込みニューラルネットワーク(CNN)を用いることができ、損失関数を最適化することで畳み込みニューラルネットワークの出力データとラベルデータとの差を最小限にすることができる。
ステップS22では、学習部13による演算によって生成された情報の一部又は全部がメモリ部16に記録される。情報の一部又は全部は、学習プロセス中に学習部13によって生成されるメモリと同等である。メモリは、学習をスピードアップするために、後続の学習に使用することができる。更に、メモリを使用して、作業フェーズで推論、演繹、その他の操作を実行できるため、ニューラルネットワーク10は分析機能だけでなく推論機能も有する。
ステップS24では、関連付け部21は、情報の一部又は全部と学習データの間の関連を確立する。
図3は、ニューラルネットワークの学習フェーズで使用される本開示の実施形態による方法の結果を示す図であり、関連の一例を示すものである。図3に示すように、Mi(iは自然数)は、情報の一部又は全部のエントリであり、中間データのエントリと見なすこともでき、ここでは、「中間データ」と総称する。
畳み込みニューラルネットワークの場合、Miは、例えば、特定の中間層によって出力された、輪郭や色等の特徴を反映するための特徴の3次元行列であり、後述するように、3次元行列は輪郭や色等の対応する特徴を反映するようにパターン化又はデジタル化されることができる。例えば、ニューラルネットワーク10の特定の中間層の出力をメモリ部16に直接保存するか、ワークの特徴を直接反映するデータに処理してから、メモリ部16に保存することができる。
図3に示す関連では、リスト30に示すように、各学習データL1、L2、L3、...と、それに対応する中間データM1、M2、M3、...の間に関連が確立される。このように、学習部13の学習過程を把握するための様々な分析を簡便に行うことができる。
別の例として、例えば、パイプライン上のロボットの学習中に、中間データM1、M2、M3、...が、例えば、ワークの形状特徴を表すことができる。ここで、良品であるワークの形状を円とすると、中間データM1は「楕円」に対応し、中間データM2は「円」に対応し、中間データM3は「楕円」に対応する等となる。従って、各学習データとそれに対応する中間データとの対応関係が適切であるか否かを人の目視により確認することができる。
具体的には、学習データL1に対応するラベルデータが「不良品」及び「ロボットがワークをつかんで不良品の箱に落とす」を含み、中間データM1が「円」ではなく「楕円」である場合、エントリE30は望ましい結果である。別の例として、学習データL3に対応するラベルデータが「輸送経路から逸脱」及び「ロボットがワークをつかんで正しい輸送経路に置く」を含む場合、対応する中間データM3は「楕円」であるが、実際には輸送ルートからの逸脱するため、学習データL3に含まれる画像内のワークは半円のみを示し、従って、エントリE31は望ましくない結果である。このような分析により、学習部13がどのように学習し、学習データが学習に適しているかを詳細に知ることができる。
或いは、別の例として、学習データの各クラスと学習データのそのクラスに対応する情報との間の関連が確立されることもできる。具体的には、学習データを予め複数のカテゴリに分けることができる。例えば、学習中にワークの品質を検出する場合、学習データは、良品に対応する学習データの第1クラスと、不良品に対応する学習データの第2クラスに事前に分類されることができる。この時点で、中間データは「スクラッチ」、「色違い」等を表すことができる。このように、学習データの第1クラスに関して、対応する中間データの分布を知ることができ、それによって学習データの有効性を相応に向上させる。
或いは、中間データは、フィルタリングされ且つ分類されることもでき、中間データの各クラスと中間データのそのクラスに対応する学習データとの間の関連が確立されることもできる。このようにして、対応する学習データの分布を知ることができ、それによって学習データの有効性を相応に向上させる。
ニューラルネットワークの学習フェーズで使用される本開示の実施形態による方法の例を図2及び図3を参照して上で説明した。ニューラルネットワークの作業フェーズで使用される本開示の実施形態による方法の例を、図4を参照して以下に説明する。
図4は、ニューラルネットワークの作業フェーズで使用される本開示の実施形態による方法のフローチャートである。図4に示すように、ステップS40では、学習されたニューラルネットワーク10に入力データが入力され、ニューラルネットワーク10による演算によって出力データが得られる。作業プロセスは、様々な既知の機械学習方式で実行することができる。
ステップS42では、学習した学習部13による演算によって生成された情報の一部又は全部がメモリ部16に記録される。前記情報の一部又は全部は、入力データに基づいて、作業フェーズ中に学習部13によって生成された中間データであることができる。
ステップS44では、関連付け部21は、情報の一部又は全部と、入力データ及び/又は出力データとの間の関連を確立する。図5は、ニューラルネットワークの作業フェーズで使用される本開示の実施形態による方法の結果を示す図であり、関連の例を示すものである。図5に示すように、例えば、リスト50のエントリE50で示すように、入力データIi、中間データMi及び出力データOiの間に1対1の関連が確立される。或いは、入力データIiと中間データMiとの間のみで関連を確立すること、又は中間データMiと出力データOiとの間のみで関連を確立することも可能である。或いは、1対1の関連を確立しないことも可能であるが、前述のように、入力データIiと中間データMiの各クラスとの間の関連、又は中間データMiの各クラスと出力データOiとの間の関連は、確立されることができる。
このような関連を確立することにより、ニューラルネットワーク10の動作プロセスを知ることができる。作業プロセスに異常があった場合、中間の演算プロセスをたどり、簡便に訂正することができる。
例えば、良品/不良品の操作を行うパイプライン上のロボットの作業フェーズでは、学習されたニューラルネットワーク10がワークの入力画像に応じた制御データを生成し、ロボットが制御データに基づいてワークを制御する。例えば、監視しているカメラが不良品の画像を撮像すると、ロボットはワークをつかんで不良品の箱に置き、輸送ルートから外れたワークを撮像すると、ロボットはワークをつかんで正しい輸送ルートに置く。この処理では、ニューラルネットワーク10に入力されたワークの画像、ニューラルネットワーク10の演算で生成された中間データ、ニューラルネットワーク10で生成された制御データがメモリ部16に保存される。
ワークに関する特定の回数の判定が実行された後、ニューラルネットワーク10はすでにメモリ(メモリ部16に保存されたコンテンツ)を有する。新しい画像を受信すると、ニューラルネットワーク10は、新しい画像に対して演算を実行して新しい中間データを取得し、メモリ部16から新しい中間データに対して最も高い評価を有する中間データを抽出し、最も高い評価を有するメモリ部16に保存されている中間データに対応する出力データ(制御データ)に基づく新しい画像に関する制御データを生成する。例えば、記載された評価は、新しい中間データとの相関、及びメモリ部16に保存された中間データの使用頻度等に基づいて決定されることができる。
従って、ニューラルネットワーク10は分析機能を備えているだけでなく、既存のメモリに基づいて推論することもできる。
図6は、本開示の別の実施形態によるロボットを制御するシステムのブロック図である。図6に示すロボットを制御するシステム2は、メモリ処理部60及びインタフェース部70において、図1Bに示すロボットを制御するシステム1と異なる。図6では、図1Bの部材と同じ部材は同じ参照符号で示され、その詳細はここでは再び説明しない。
図6に示すように、メモリ処理部60は関連付け部61、演算部62及び可視化部63を含むことができる。関連付け部61は、上述の関連付け部21と同じ構成を有することができ、その詳細はここでは再度説明しない。
演算部62は中間データMiに基づいて様々な演算を実行することができる。可視化部63は、ユーザの参照用に演算部62の演算結果に基づいて視覚化結果を生成することができる。尚、ここでいう「可視化」とは、テキスト、画像、アニメーション等、人間の目で認識可能な内容に限らず、プロンプト音等、人間の感覚で認識可能なものであってもよい。
一例として、演算部62は、中間データMiとそれに対応する入力データLiとの相関を演算することができる。或いは、中間データMiと出力データOiとの相関も演算することができる。例えば、学習されたニューラルネットワークを使用してロボットに制御データを発行し、良好なワークと不良なワークを選択する時、中間データMiは「スクラッチ」、「色違い」、「スクラッチなし」、「色違いなし」等を表すことができる。この場合、「スクラッチ」(不良なワーク)を表す中間データMiと対応する出力データOiの「非良品の箱にそれをつかんで置く」の相関が大きいのに対し、「スクラッチなし」を表す中間データMiと対応する出力データOiの「不良品の箱にそれをつかんで置く」の相関が小さい。相関を演算する具体的方法として、例えば、Miが3次元行列である場合、出力データOiを表す行列とMiとの積に基づいて相関を演算することができる。
可視化部63は、演算部62で演算された相関データに基づいて、異なる相関を有する中間データMiを異なる方式で表すことができる。例えば、第1閾値未満の相関を有する中間データMiは、ディスプレイ上で赤色として表示されることができ、第2閾値を超える相関を有する中間データMiは、ディスプレイ上で緑色として表示されることができる。ここで、第2閾値は第1閾値よりも大きい。これにより、ユーザはニューラルネットワーク10の操作を直感的に知ることができる。可視化部63が、異なる相関を有する中間データMiを表す方式は、異なる相関の度合いを有する中間データMiをユーザが知ることができる限り、特に限定するものではない。
別の例として、演算部62は、中間データMiの使用頻度に基づいて中間データMiの重要度を演算することができる。例えば、学習されたニューラルネットワーク10を使用してロボットに制御データを発行し、良好なワークと不良なワークを選択する時、中間データMiは「スクラッチ」、「色違い」、「スクラッチなし」、「色違いなし」等を表すことができる。上述したように、ニューラルネットワーク10は、メモリ部16に保存されたこれらの中間データMiを使用して、新しい画像に関する出力データを出力する。使用頻度の低い中間データMiはディスプレイに赤色で表示され、使用頻度の高い中間データMiはディスプレイに緑色で表示される。このようにして、ユーザは中間データMiの使用状況を直感的に知ることができ、不良品が有する問題(例えば、サイズの割に多くのスクラッチがある問題)について知ることができる。
インタフェース部70は、ユーザの注意を引くために様々な方法で表された中間データMiの少なくとも1つをユーザに通知することに使用される。図6では、インタフェース部70はメモリ処理部60とは別の個別の部品として示されているが、インタフェース部70をメモリ処理部60に含めることもできる。インタフェース部の一例としては、ディスプレイやスピーカー等であることができる。
図7は、本開示の更に別の実施形態によるロボットを制御するシステムのブロック図である。図7に示すロボットを制御するシステム3は、メモリ処理部60、インタフェース部70、及び操作部80において図1Bに示すロボットを制御するシステム1と異なる。図7では、図1B及び図6と同じ部分は同じ参照符号で示され、それらの詳細はここでは再び説明しない。
図7に示すように、メモリ処理部60は操作部80に接続される。操作部80は、メモリ処理部60によってメモリ部16内の中間データに対して追加、削除、無効化等の操作を実行するために使用される。図7では、操作部80はメモリ処理部60とは別の個別の部品として示されるが、操作部80をメモリ処理部60に含めることもできる。
操作部80によって実行される操作の例として、インタフェース部70によって出力された視覚化されたコンテンツに基づいて操作部80を介して、ユーザは、メモリ部16に保存され、特定方式で表される中間データを削除又は無効化することができ、又は所定のデータでメモリ部16に保存され、特定方式で表された中間データを上書きするか、所定のデータをメモリ部16に書き込むことができ、所定のデータは、特定方式で表される中間と異なる。このようにメモリ部16のメモリ内容を直接変更し、メモリ部16のメモリ内容をニューラルネットワーク10の動作に使用することにより、ニューラルネットワーク10の動作プロセスは、人為的に影響を与えられてより良い動作結果(又は出力データ)を得ることができる。
操作部80によって実行される操作の例を、図8及び図9を参照して以下に説明する。図8は、本開示の実施形態による方法の一例のフローチャートであり、メモリ部16内のコンテンツを削除する時、操作部80によって実行される操作を示す。図9は、本開示の実施形態による方法の別の例のフローチャートであり、コンテンツをメモリ部16に追加する時、操作部80によって実行される動作を示す。
図8に示すように、ステップS80では、ユーザは、インタフェース部70によって出力された視覚化されたコンテンツに基づいて、削除したいメモリ部16のストレージエントリを選択する。例えば、ワークを選択する場合、小さい相関を有する中間データMiに対応するストレージエントリが選択される。
ステップS82では、ニューラルネットワーク10は、削除したいストレージエントリと学習データ以外のメモリ部16のコンテンツを使用して学習し、アルゴリズムパラメータを最適化する。例えば、学習データのラベルデータとの差異を最小限にする操作パラメータが判定されることができる。このステップはオプションであり、必須ではない。このステップは、ステップS84の後に実行することもできる。
ステップS84では、操作部80は、例えばコンテンツアドレス又はインデックスアドレスでメモリ部16にアクセスし、ユーザに選択された削除が望まれるストレージアイテムを削除する。
ステップS86では、ニューラルネットワーク10が演算を実行して、削除されたストレージエントリに対応する新しい中間データを生成し、中間データもメモリ部16に保存される。更に、ニューラルネットワーク10は新しい中間データに対応する新しい出力データを生成し、それをメモリ部16に保存することもできる。プロセスは終了する。
図9に示すように、ステップS90では、ユーザが、インタフェース部70によって出力された視覚化されたコンテンツに基づいて、メモリ部16に追加したいストレージエントリを入力し、例えば、稀に発生する画像に対応する出力データを追加したいストレージエントリとして用い(出力データを画像に対応するラベルデータとして使用することもできる)、稀に発生する状況を処理するためのニューラルネットワーク10の機能を向上させることができる。
ステップS92では、ニューラルネットワーク10は、追加したいストレージエントリ、メモリ部16のコンテンツ及び学習データを使用することで学習し、アルゴリズムパラメータを最適化する。例えば、学習データのラベルデータでのエラーを最小限にする操作パラメータが判定されることができる。このステップはオプションであり、必須ではない。このステップは、ステップS94の後に実行することもできる。
ステップS94では、操作部80がメモリ部16を操作し、追加したいストレージアイテムをメモリ部16に保存する。
ステップS96では、ニューラルネットワーク10は新しく追加されたストレージエントリに基づいて、対応する中間データを演算する。中間データもメモリ部16に保存されることができる。プロセスは終了する。
図8及び図9を参照して上で説明したように、メモリ処理部60は操作部80によってメモリ部16の内容を操作して、その作業プロセス中に特定の入力データに対応する出力データを変更するためにニューラルネットワーク10のメモリを変更することができる。
図10は、本開示の実施形態による画像認識のための装置を示す概略図である。図10に示すように、キャリア部1020上のワークOBJは、カメラA、カメラB、及びカメラCを使用して撮像され、画像データを取得する。画像認識装置1100は、画像データと学習結果に基づいてワークOBJの品質を判定する。
この応用例では、画像認識装置1100は、ニューラルネットワークの学習に学習データを使用し、学習されたニューラルネットワークを使用してワークOBJの品質(例えば、ワークOBJの属性)を判定する。学習データは、例えば、カメラA、カメラB、カメラCで撮影されたワークOBJの画像であり、ワークOBJが良品か不良品かを示すラベルデータを有する。ニューラルネットワークの学習及び操作中に生成された中間データは、例えば外部メモリに記録されることができ、中間データは、直接又は変換後に、ワークOBJの特性、例えば、色、サイズ、スクラッチの有無等を表すか、又はこれらの特徴に対応する確率を表すことができる。画像認識のための装置1100は、中間データと対応する学習データとの間の関連を確立し、その関連を関連付けられたデータグループとして保存することができる。
この関連付けられたデータグループをテキスト形式でユーザに表示することで、ユーザはワークOBJの画像内のどの特徴が、良品であるか、不良品であるかを判定することができるか、どの特徴がワークOBJの利点及び欠点を判定するのに役に立つかを知ることができる。また、誤判定されやすい学習データに対して、学習データの特徴の学習を的確に追加して、ニューラルネットワークの判定能力を向上させることができる。
ロボットを制御するためのメモリ処理部10、60、システム1、2、3、及び画像認識のための画像認識装置1100の全部又は一部は、ソフトウェア機能的ユニットの形で実現することができる。独立した製品として販売又は使用する場合、ソフトウェア機能的ユニットは、コンピュータ可読記憶媒体に保存されることができる。この理解に基づいて、本質的に本開示の技術的解決策、又は先行技術に寄与する部分、又は技術的解決策の全部又は一部は、1つのコンピュータデバイス(パーソナルコンピュータ、サーバ、ネットワークデバイス等)に、本開示の各事例による方法のステップの全部又は一部を実行させるいくつかの命令を含む記憶媒体に保存されたソフトウェア製品の形で実装されることができる。前述の記憶媒体は、USBディスク、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、モバイルハードディスク、磁気ディスク、又は光ディスク等のプログラムコードを保存可能な様々な媒体を含むことができ、サーバ又はクラウドからダウンロード可能なデータストリームも含むことができる。
上記は、本開示の好ましい実施形態にすぎず、当業者は、本開示の原理から逸脱することなく、いくつかの改善及び修正を行うことができることに留意されたい。これらの改善及び修正は、本開示の保護の範囲内にあると見なされるべきである。
1、2、3、100 ロボットを制御するためのシステム
10 ニューラルネットワーク
11 入力部
12 入力処理部
13 学習部
14 出力処理部
15 出力部
16 メモリ部
20、60 メモリ処理部
21、61 関連付け部
30、50 リスト
62 演算部
63 可視化部
70 インタフェース部
80 操作部
1020 キャリア部
1100 画像認識装置
本開示は、ロボットを制御する方法、装置、システム及びプログラム、並びに記憶媒体に関する。
生産工学に基づいてロボットを制御するには、ニューラルネットワーク等を利用した人工知能技術を使用してロボットの制御を行うことが考えられる。所望の制御を実現するために、ニューラルネットワークは学習データに基づいて学習を行い、学習されたニューラルネットワークは対象の画像等の入力データに基づいて制御データを出力し、ロボットを制御して対象に所望の動作を行わせる。
また、製造工程での対象の属性、例えば、対象が良品か不良品かを示す属性を判定する必要があり、そのような判定は、ニューラルネットワーク等を利用して対象の画像認識を行う人工知能技術を用いて実現され得る。
しかし、ロボットが意図しない動作を行った場合、学習されたニューラルネットワークが如何にしてそのような予期せぬ制御データを出力したかが、ユーザには不明である。ニューラルネットワークの演算過程はユーザに知られていないため、ロボットの制御を改善することができない。
本開示は、上述の問題の少なくともいくつかを解決するためになされた。
本開示の実施形態の一態様によれば、ロボットを制御する方法であって、外部メモリに接続されたニューラルネットワークを使用して前記ロボットの制御を行い、前記方法は、学習されたニューラルネットワークに入力データを入力して、前記ニューラルネットワークによる演算を通じて出力データを取得し、前記入力データは対象に関する画像を含み、前記出力データは前記ロボットに関する制御データを含み、前記ロボットは前記制御データに基づいて前記対象を制御することと、前記演算中に前記ニューラルネットワークによって生成された情報の一部又は全部と前記入力データ及び/又は前記出力データとの間の関連を確立し、前記情報の一部又は全部を前記外部メモリに記録し、前記情報の一部又は全部は、前記制御データに関連する前記対象の特徴を表すこととを含むことを特徴とする
方法が提供される。
前記情報の一部又は全部と前記入力データ及び/又は前記出力データとの間の関連を確立することにより、中間層(中間データ)のデータと対応する入力データ及び/又は前記出力データとの間の対応関係を知ることができ、更なる操作のために、ユーザがニューラルネットワークの中間層の情報を把握し、如何にしてニューラルネットワークがロボットを制御するのかを把握することができる。
ここで、前記情報の一部又は全部と、前記入力データ及び/又は前記出力データとの間の関連を確立することは、各入力データとそれらに対応する情報との間の関連を確立することと、各入力データのクラスとその入力データのクラスに対応する情報との間の関連を確立することと、各情報のクラスと、その情報のクラスに対応する入力データとの間の関連を確立することと、の少なくとも1つを含む。このように、同じ入力データのクラスの一般的情報又は同じ情報のクラスを知ることができ、それにより、同じ入力データのクラス又は同じ情報のクラスに対して操作を実行することができる。
ここで、前記外部メモリに前記情報の一部又は全部を記録することは、特定のデータ構造に基づいて前記入力データと前記情報の両方を保存することと、前記情報と前記関連を保存することと、前記情報を処理及び保存することと、を含む。
前記方法は、前記情報の一部又は全部と前記入力データとの相関を演算することと、第1方式で、第1相関を有する情報及び/又は前記第1相関を有する情報との関連を有する入力データを表すことによって、並びに第2方式で、第2相関を有する情報及び/又は前記第2相関を有する情報との関連を有する前記入力データを表すことによって関連を視覚化することと、を更に含むことができ、前記第1方式は前記第2方式とは異なり、前記第1相関は前記第2相関とは異なる。
前記方法は、前記情報の一部又は全部の使用頻度に基づいて前記情報の一部又は全部の重要度を演算することと、第1重要度を有する前記情報及び/又は前記第1重要度を有する前記情報との関連を有する前記入力データを第1方式で表すことにより、並びに第2重要度を有する前記情報及び/又は前記第2重要度を有する前記情報との関連を有する前記入力データを第2方式で表すことにより、関連を視覚化することと、を更に含むことができ、前記第1方式は、前記第2方式と異なり、前記第1重要度は、前記第2重要度と異なる。
このように、ユーザは、入力データ及び中間データ(前記情報の一部又は全部を含む)を、例えば、どの入力データから、予期しない中間データが引き起こされるかを直感的に知ることができる。結果として、ユーザは、可視結果に基づき、入力データ又は中間データを操作し、例えば、予期しない中間データを削除又は置換して、より良い出力結果を得ることができる。
前記方法は、前記第1方式で表された前記情報及び前記第2方式で表された前記情報のうちの少なくとも1つをユーザに通知することを更に含むことができる。
前記方法は、前記第1方式で表された前記情報及び前記第2方式で表された前記情報のうちの1つを削除又は無効化することと、前記第1方式で表された前記情報及び前記第2方式で表された前記情報のうちの1つを所定のデータで上書きすることと、前記外部メモリに、前記第1方式で表された前記情報及び前記第2方式で表された前記情報の少なくとも1つと異なる情報を保存することと、を更に含むことができる。
以上の操作により、ユーザは、内部メモリの内容を人為的に変更し、且つそれによりニューラルネットワークのメモリを変更し、予期する出力結果を得ることができる。
更に、前記方法は、前記ニューラルネットワークに再学習させることを更に含むことができる。
本開示の実施形態の一態様によれば、外部メモリに接続されたニューラルネットワークを使用して画像認識を行う画像認識方法であって、前記方法は、入力データを学習されたニューラルネットワークに入力して前記ニューラルネットワークによる演算を通じて出力データを取得し、前記入力データは、対象に関する画像を含み、前記出力データは、前記対象の属性を表すことと、前記演算中に前記ニューラルネットワークによって生成された情報の一部又は全部と前記入力データ及び/又は前記出力データとの間の関連を確立し、前記情報の一部又は全部を前記外部メモリに記録し、前記情報の一部又は全部は、前記属性に関連する前記対象の特徴を表すことを含むことを特徴とする方法が提供される。
このように、生産プロセスで対象の属性を判別する必要がある場合(例えば、属性が、対象が良品か不良品かを示す場合)、そのような判別は、ニューラルネットワーク等を利用して対象の画像認識を行った人工知能技術を使用して実現することもできる。
前記情報の一部又は全部と前記入力データ及び/又は前記出力データとの間の関連を確立することにより、中間層(中間データ)のデータと対応する入力データ及び/又は前記出力データとの間の対応関係を知ることができ、更なる操作のために、ユーザがニューラルネットワークの中間層の情報を把握し、如何にしてニューラルネットワークが対象を認識するのかを把握することができる。
本開示の実施形態の一態様によれば、入力データを学習されたニューラルネットワークに入力して、前記ニューラルネットワークによる演算を通じて出力データを取得することと、前記演算中に前記ニューラルネットワークによって生成された情報の一部又は全部と前記入力データ及び/又は前記出力データとの間の関連を確立し、前記ニューラルネットワークに接続された外部メモリに前記情報の一部又は全部を記録することと、を含むことを特徴とする情報処理方法が提供される。
前記情報の一部又は全部と前記入力データ及び/又は前記出力データとの間の関連を確立することにより、中間層のデータと対応する入力データ及び/又は前記出力データとの間の対応関係を知ることができ、更なる操作のために、ユーザがニューラルネットワークの中間層の情報を把握し、学習後のニューラルネットワークの操作状況を把握することができる。例えば、外部メモリに保存されている中間データを変更する、即ち、ニューラルネットワークのメモリを変更することで、ニューラルネットワークの出力データを変更することができる。
本開示の実施形態の更に別の態様によれば、上記の方法を実現するための装置が更に提供される。
本開示の実施形態の更に別の態様によれば、ロボットを制御するシステムが更に提供される。前記システムは、上記の方法を実行する処理ユニットを含むことができる。
本開示の実施形態の更に別の態様によれば、実行されると、上記の方法を実行するロボットを制御するプログラムが更に提供される。
本開示の実施形態の更に別の態様によれば、実行されると、上記の方法を実行するプログラムが保存された記憶媒体が更に提供される。
本開示の実施形態による方法、装置、ロボットを制御するシステム及びプログラム、画像認識のための方法、並びに記憶媒体により、更なる操作のために、ユーザは、中間層の情報を把握し、ニューラルネットワークの操作状況を把握することができる。例えば、ニューラルネットワークの予期しない出力データを訂正することができる。
また、外部メモリの内容を視覚化して明確にすることができる。別の例として、外部メモリの内容を操作して、学習状況を改善、又は出力結果を訂正することができる。
ここで説明される図面は、本開示の更なる理解を提供し、本開示の一部を構成するために使用される。本開示の概略的な実施形態及びその説明は、本開示を説明するために使用されるものであって、本開示に対する不適切な制限を構成するものではない。
本開示の実施形態によるロボットを制御するシステムのハードウェア構成を示すモード図である。
本開示の実施形態によるロボットを制御するシステムのブロック図である。
ニューラルネットワークの学習フェーズで使用される本開示の実施形態による方法のフローチャートである。
ニューラルネットワークの学習フェーズで使用される本開示の実施形態による方法の結果を示す図である。
ニューラルネットワークの作業フェーズで使用される本開示の実施形態による方法のフローチャートである。
ニューラルネットワークの作業フェーズで使用される本開示の実施形態による方法の結果を示す図である。
本開示の別の実施形態によるロボットを制御するシステムのブロック図である。
本開示の別の実施形態によるロボットを制御するシステムのブロック図である。
本開示の実施形態による方法の一例のフローチャートである。
本開示の実施形態による方法の別の例のフローチャートである。
本開示の実施形態による画像認識のための装置を示す概略図である。
当業者が本開示をよりよく理解できるようにするために、本開示の実施形態を以下で添付の図面を参照して明確かつ完全に説明する。当然、説明される実施形態は、本開示の実施形態の一部に過ぎず、実施形態の全てではない。本開示の実施形態に基づいて、如何なる創造的努力もなく当業者が得ることができる他の全ての実施形態は、本開示の保護範囲内に含まれるものとする。
近年、ニューラルネットワークのような機械学習モデルを用いた画像認識技術は、急速に開発が進められ、様々な技術分野で広く利用されている。機械学習モデルの動作モードを深く理解するために、本開示は、画像認識中の機械学習モデルの演算プロセスを検討する。本開示では、機械学習モデルの学習フェーズにおいて、学習プロセスで生成された学習データに対応する中間データを確認して、ニューラルネットワークの学習データ及びメモリ状況を知ることにより、学習データを処理することができ、例えば、より効率的な学習データを入力するか、非効率的な学習データを削除することができる。学習されたニューラルネットワークの作業フェーズでは、作業プロセスで生成された入力データや出力データに対応する中間データを確認して、ニューラルネットワークの作業状況を知り、中間データを修正することによって不適切な出力結果を訂正することもできる。
上記の中間データは、人間が便利に確認できるように処理及び視覚化されることができるため、機械学習技術と人間の判断の利点を組み合わせることができる。処理と視覚化には多くの方法があり、例えば、中間データをフィルタリングして分類することができ、中間データの異なるカテゴリを異なる色、異なる形、又は人々が注目できる他の様々な方式で表現することができ、従って、人々は、中間データの特定のクラスに注意を払うことができる。
本開示では、人々は、関心のある中間データを直接操作、例えば削除、上書き、無効化等して、ニューラルネットワークの学習又は作業プロセスを変更することができ、そのパフォーマンスを効率的に向上させ、望ましい学習又は作業結果を取得することができる。
先ず、本開示の一実施形態によるロボットを制御するシステム100のハードウェア構造について説明する。
図1Aは、本開示の一実施形態によるロボットを制御するシステム100のハードウェア構造を示すモード図である。図1Aに示すように、例えば、ロボットを制御するシステム100は、汎用コンピュータアーキテクチャを備えた汎用コンピュータによって実装されることができる。ロボットを制御するシステム100は、プロセッサ110、メインストレージ112、ストレージ114、入力インタフェース116、ディスプレイインタフェース118、及び通信インタフェース120を含む。これらのコンポーネントは、例えば内部バス122を介して相互に通信することができる。
プロセッサ110は、ストレージ114に保存されたプログラムをメインストレージ112上で展開して実行することで、後述する機能や処理を実現する。メインストレージ112は、揮発性メモリによって形成されることができ、プログラムを実行するためにプロセッサ110が必要とするワークメモリとして機能する。
入力インタフェース116は、マウスやキーボード等の入力部と接続されることができ、操作入力部を介してユーザから入力された指示を受け取る。
ディスプレイインタフェース118は、ディスプレイに接続されることができ、プログラムの実行時にプロセッサ110が生成した様々な処理結果をディスプレイに出力することができる。
通信インタフェース120は、ネットワーク200を介してPLCやデータベース装置等と通信するためのものである。
ストレージ114は、ロボットを制御するためのプログラム、OS(Operating System)等のプログラムを保存することができ、それは、コンピュータを、ロボットを制御するシステム100として用いることができる。
ストレージ114に保存されたロボットを制御するプログラムは、DVD(digital versatile disc)等の光記録媒体又はUSB(universal serial bus)メモリ等の半導体記録媒体によってロボットを制御するシステム100に実装されることができる。或いは、ネットワーク上でサーバ装置等からダウンロードしてもよい。
本実施形態によるロボットを制御するプログラムは、他のプログラムと組み合わせて提供されてもよい。この場合、ロボットを制御するプログラム自体は、上記のように組み合わされた他のプログラムに含まれるモジュールを含まないが、他のプログラムと連携する。このように、本実施形態によるロボットを制御するプログラムは、他のプログラムと組み合わせることもできる。
図1Aは、ロボットを制御するシステム100を実現するために汎用コンピュータを使用する例を示すが、本開示は、これに限定するものではなく、その機能の全部又は一部は、ASIC(application specific integrated circuit)又はFPGA(field−programmable gate array)等の専用回路によって実現されることができる。また、ロボットを制御するシステム100の処理の一部は、ネットワークに接続された外部装置上で行われてもよい。
図1Bは、本開示の実施形態によるロボットを制御するシステムのブロック図である。図1Bに示すように、ロボットを制御するシステム1は、ニューラルネットワーク10、メモリ部16、及びメモリ処理部20を含むことができる。ニューラルネットワーク10は、機械学習モデルの生成に使用され、入力部11、入力処理部12、学習部13、出力処理部14及び出力部15を含むことができる。メモリ部16はニューラルネットワーク10に電気的に接続される。或いは、メモリ部16はニューラルネットワーク10の一部であってもよい。ここで、メモリ部16は、本開示における「外部メモリ」の一例である。メモリ処理部20はメモリ部16のメモリを処理するために使用され、関連付け部21を含むことができる。
入力部11は、学習データ又はニューラルネットワーク10が作業フェーズ中に入力する入力データ等の生データの入力に使用される。学習データは、学習部13の学習のために入力される。作業フェーズでは、学習した学習部13による演算によって所望の出力データを取得するために入力データが入力される。学習データ及び入力データの例としては、例えば、生産ラインにおけるワークの画像データ等が挙げられる。学習データはラベルデータと統合することができ、ラベルデータはワークの属性、例えばワークが良品であるかどうかを表すことができる。一例として、出力データは、例えばロボットの制御データであることができ、ロボットは、ワークをつかむ又は置く等の制御データに基づいてワークを処理することができる。
入力処理部12は、入力部11から入力された生データを前処理するために使用される。例えば、生データをn次元のベクトル又は行列に変換することができる。変換の方法は特に限定せず、生データが学習部13で処理可能なフォーマットに変換される限り、従来技術の様々な方式を適用することができる。
学習部13は、入力処理部12から受信した前処理済みの生データに基づいて学習し、学習された機械学習モデルを生成する。本開示では、ニューラルネットワークを例として説明を行ったが、学習部13は他の機械学習方式で学習してもよい。
出力処理部14は学習部13の学習結果を最終的な出力の形に変換することができる。例えば、ロボットの制御の学習中に、出力処理部14は学習部13の学習結果をロボットコントローラが理解可能な制御命令に変換する。出力部15は、出力処理部14で処理された出力データを出力することに使用される。
メモリ部16は、学習フェーズ及び/又は作業フェーズ中に学習部13によって生成された中間データを保存するために使用され、従って、ニューラルネットワーク10はメモリ機能を有することができる。言い換えれば、メモリ部16の情報の一部又は全部は、学習部13による学習又は操作によって生成される。中間データは、例えば、ニューラルネットワークの中間層の演算結果を含んでもよいし、学習データ又は入力データに対応するデータ(データは中間層の演算結果に基づいて生成されることができる)を含んでもよい。一例として、例えば、画像におけるワークのクラスの判定の学習中に、学習データ又は入力データが画像データである場合、学習データ又は入力データに対応するデータは、ワークの特徴データであることができる。例えば、特徴データは、「長方形」、「円」等を表すことができる。これらの特徴は、ロボットによる予期される制御のタイプに関連し、例えば、異なる形状のワークに対して異なる操作が実行される。
メモリ部16は、関連が確立された後、情報の一部又は全部を保存することに使用することができる。例えば、図3を参照して以下に示される関連では、メモリ部16は、学習データLi及び中間データMi(「i」は、異なるメモリ空間を示す自然数である)の両方をリスト単位のデータ構造に保存することができる。エントリE30、E31はリストのエントリである。当然、メモリ部16は、他の様々な既知のデータ構造に従って保存することもできる。各中間データMiを保存するために、メモリ部16に複数のメモリスロットが存在することができる。例えば、メモリ部16は、コンテントアドレッサブル又はインデックスアドレッサブルであることができる。
或いは、保存されるデータの量を減らすために、メモリ部16は、中間データMi及び中間データMiとそれに対応する学習データLiとの間の関連のみを保存することができる。関連は、リスト、ポインタ等で表すことができる。
或いは、メモリ部16に保存されている中間データMiは、処理された中間データであることができる。例えば、Miを所定の規則に従って分類し、同じクラスのMiの値を同じ値に変更して保存することにより、ストレージ容量を更に削減し、その後の分析を簡略化する。
メモリ処理部20は入力部11から生データを受信するか、入力処理部12から処理された生データを受信する。或いは、メモリ処理部20は出力部15から出力データを受信することができる。関連付け部21は、生データ、処理された生データ、又は出力データと、メモリ部16に記憶された情報の一部又は全部との間の関連を確立することができる。
関連付け部21によって実行される操作を、図2を参照して以下で詳細に説明する。図2は、ニューラルネットワークの学習フェーズで使用される本開示の実施形態による方法のフローチャートである。
図2に示すように、ステップS20では、ニューラルネットワーク10は学習データで学習される。このような学習は、様々な既知の機械学習方式で実行できる。また、ニューラルネットワーク10は学習データとメモリ部16に保存されたコンテンツの両方で学習することができる。
例えば、ロボットの制御の学習中に、学習データはワークの画像データを含むことができる。そして、各画像データに対して、例えば、「つかむ」、「置く」等のロボットの制御データを含むことができる対応したラベルデータがあり得る。また、ラベルデータは、ワークのクラス、ワークが不良品であるか否か等に関する情報を更に含むことができる。例えば、上記の学習用のニューラルネットワーク10として、畳み込みニューラルネットワーク(CNN)を用いることができ、損失関数を最適化することで畳み込みニューラルネットワークの出力データとラベルデータとの差を最小限にすることができる。
ステップS22では、学習部13による演算によって生成された情報の一部又は全部がメモリ部16に記録される。情報の一部又は全部は、学習プロセス中に学習部13によって生成されるメモリと同等である。メモリは、学習をスピードアップするために、後続の学習に使用することができる。更に、メモリを使用して、作業フェーズで推論、演繹、その他の操作を実行できるため、ニューラルネットワーク10は分析機能だけでなく推論機能も有する。
ステップS24では、関連付け部21は、情報の一部又は全部と学習データの間の関連を確立する。
図3は、ニューラルネットワークの学習フェーズで使用される本開示の実施形態による方法の結果を示す図であり、関連の一例を示すものである。図3に示すように、Mi(iは自然数)は、情報の一部又は全部のエントリであり、中間データのエントリと見なすこともでき、ここでは、「中間データ」と総称する。
畳み込みニューラルネットワークの場合、Miは、例えば、特定の中間層によって出力された、輪郭や色等の特徴を反映するための特徴の3次元行列であり、後述するように、3次元行列は輪郭や色等の対応する特徴を反映するようにパターン化又はデジタル化されることができる。例えば、ニューラルネットワーク10の特定の中間層の出力をメモリ部16に直接保存するか、ワークの特徴を直接反映するデータに処理してから、メモリ部16に保存することができる。
図3に示す関連では、リスト30に示すように、各学習データL1、L2、L3、...と、それに対応する中間データM1、M2、M3、...の間に関連が確立される。このように、学習部13の学習過程を把握するための様々な分析を簡便に行うことができる。
別の例として、例えば、パイプライン上のロボットの学習中に、中間データM1、M2、M3、...が、例えば、ワークの形状特徴を表すことができる。ここで、良品であるワークの形状を円とすると、中間データM1は「楕円」に対応し、中間データM2は「円」に対応し、中間データM3は「楕円」に対応する等となる。従って、各学習データとそれに対応する中間データとの対応関係が適切であるか否かを人の目視により確認することができる。
具体的には、学習データL1に対応するラベルデータが「不良品」及び「ロボットがワークをつかんで不良品の箱に落とす」を含み、中間データM1が「円」ではなく「楕円」である場合、エントリE30は望ましい結果である。別の例として、学習データL3に対応するラベルデータが「輸送経路から逸脱」及び「ロボットがワークをつかんで正しい輸送経路に置く」を含む場合、対応する中間データM3は「楕円」であるが、実際には輸送ルートからの逸脱するため、学習データL3に含まれる画像内のワークは半円のみを示し、従って、エントリE31は望ましくない結果である。このような分析により、学習部13がどのように学習し、学習データが学習に適しているかを詳細に知ることができる。
或いは、別の例として、学習データの各クラスと学習データのそのクラスに対応する情報との間の関連が確立されることもできる。具体的には、学習データを予め複数のカテゴリに分けることができる。例えば、学習中にワークの品質を検出する場合、学習データは、良品に対応する学習データの第1クラスと、不良品に対応する学習データの第2クラスに事前に分類されることができる。この時点で、中間データは「スクラッチ」、「色違い」等を表すことができる。このように、学習データの第1クラスに関して、対応する中間データの分布を知ることができ、それによって学習データの有効性を相応に向上させる。
或いは、中間データは、フィルタリングされ且つ分類されることもでき、中間データの各クラスと中間データのそのクラスに対応する学習データとの間の関連が確立されることもできる。このようにして、対応する学習データの分布を知ることができ、それによって学習データの有効性を相応に向上させる。
ニューラルネットワークの学習フェーズで使用される本開示の実施形態による方法の例を図2及び図3を参照して上で説明した。ニューラルネットワークの作業フェーズで使用される本開示の実施形態による方法の例を、図4を参照して以下に説明する。
図4は、ニューラルネットワークの作業フェーズで使用される本開示の実施形態による方法のフローチャートである。図4に示すように、ステップS40では、学習されたニューラルネットワーク10に入力データが入力され、ニューラルネットワーク10による演算によって出力データが得られる。作業プロセスは、様々な既知の機械学習方式で実行することができる。
ステップS42では、学習した学習部13による演算によって生成された情報の一部又は全部がメモリ部16に記録される。前記情報の一部又は全部は、入力データに基づいて、作業フェーズ中に学習部13によって生成された中間データであることができる。
ステップS44では、関連付け部21は、情報の一部又は全部と、入力データ及び/又は出力データとの間の関連を確立する。図5は、ニューラルネットワークの作業フェーズで使用される本開示の実施形態による方法の結果を示す図であり、関連の例を示すものである。図5に示すように、例えば、リスト50のエントリE50で示すように、入力データIi、中間データMi及び出力データOiの間に1対1の関連が確立される。或いは、入力データIiと中間データMiとの間のみで関連を確立すること、又は中間データMiと出力データOiとの間のみで関連を確立することも可能である。或いは、1対1の関連を確立しないことも可能であるが、前述のように、入力データIiと中間データMiの各クラスとの間の関連、又は中間データMiの各クラスと出力データOiとの間の関連は、確立されることができる。
このような関連を確立することにより、ニューラルネットワーク10の動作プロセスを知ることができる。作業プロセスに異常があった場合、中間の演算プロセスをたどり、簡便に訂正することができる。
例えば、良品/不良品の操作を行うパイプライン上のロボットの作業フェーズでは、学習されたニューラルネットワーク10がワークの入力画像に応じた制御データを生成し、ロボットが制御データに基づいてワークを制御する。例えば、監視しているカメラが不良品の画像を撮像すると、ロボットはワークをつかんで不良品の箱に置き、輸送ルートから外れたワークを撮像すると、ロボットはワークをつかんで正しい輸送ルートに置く。この処理では、ニューラルネットワーク10に入力されたワークの画像、ニューラルネットワーク10の演算で生成された中間データ、ニューラルネットワーク10で生成された制御データがメモリ部16に保存される。
ワークに関する特定の回数の判定が実行された後、ニューラルネットワーク10はすでにメモリ(メモリ部16に保存されたコンテンツ)を有する。新しい画像を受信すると、ニューラルネットワーク10は、新しい画像に対して演算を実行して新しい中間データを取得し、メモリ部16から新しい中間データに対して最も高い評価を有する中間データを抽出し、最も高い評価を有するメモリ部16に保存されている中間データに対応する出力データ(制御データ)に基づく新しい画像に関する制御データを生成する。例えば、記載された評価は、新しい中間データとの相関、及びメモリ部16に保存された中間データの使用頻度等に基づいて決定されることができる。
従って、ニューラルネットワーク10は分析機能を備えているだけでなく、既存のメモリに基づいて推論することもできる。
図6は、本開示の別の実施形態によるロボットを制御するシステムのブロック図である。図6に示すロボットを制御するシステム2は、メモリ処理部60及びインタフェース部70において、図1Bに示すロボットを制御するシステム1と異なる。図6では、図1Bの部材と同じ部材は同じ参照符号で示され、その詳細はここでは再び説明しない。
図6に示すように、メモリ処理部60は関連付け部61、ストレージ部62、演算部63及び可視化部64を含むことができる。関連付け部61は、上述の関連付け部21と同じ構成を有することができ、その詳細はここでは再度説明しない。
演算部63は中間データMiに基づいて様々な演算を実行することができる。可視化部64は、ユーザの参照用に演算部63の演算結果に基づいて視覚化結果を生成することができる。尚、ここでいう「可視化」とは、テキスト、画像、アニメーション等、人間の目で認識可能な内容に限らず、プロンプト音等、人間の感覚で認識可能なものであってもよい。
一例として、演算部63は、中間データMiとそれに対応する入力データLiとの相関を演算することができる。或いは、中間データMiと出力データOiとの相関も演算することができる。例えば、学習されたニューラルネットワークを使用してロボットに制御データを発行し、良好なワークと不良なワークを選択する時、中間データMiは「スクラッチ」、「色違い」、「スクラッチなし」、「色違いなし」等を表すことができる。この場合、「スクラッチ」(不良なワーク)を表す中間データMiと対応する出力データOiの「非良品の箱にそれをつかんで置く」の相関が大きいのに対し、「スクラッチなし」を表す中間データMiと対応する出力データOiの「不良品の箱にそれをつかんで置く」の相関が小さい。相関を演算する具体的方法として、例えば、Miが3次元行列である場合、出力データOiを表す行列とMiとの積に基づいて相関を演算することができる。
可視化部64は、演算部63で演算された相関データに基づいて、異なる相関を有する中間データMiを異なる方式で表すことができる。例えば、第1閾値未満の相関を有する中間データMiは、ディスプレイ上で赤色として表示されることができ、第2閾値を超える相関を有する中間データMiは、ディスプレイ上で緑色として表示されることができる。ここで、第2閾値は第1閾値よりも大きい。これにより、ユーザはニューラルネットワーク10の操作を直感的に知ることができる。可視化部64が、異なる相関を有する中間データMiを表す方式は、異なる相関の度合いを有する中間データMiをユーザが知ることができる限り、特に限定するものではない。
別の例として、演算部63は、中間データMiの使用頻度に基づいて中間データMiの重要度を演算することができる。例えば、学習されたニューラルネットワーク10を使用してロボットに制御データを発行し、良好なワークと不良なワークを選択する時、中間データMiは「スクラッチ」、「色違い」、「スクラッチなし」、「色違いなし」等を表すことができる。上述したように、ニューラルネットワーク10は、メモリ部16に保存されたこれらの中間データMiを使用して、新しい画像に関する出力データを出力する。使用頻度の低い中間データMiはディスプレイに赤色で表示され、使用頻度の高い中間データMiはディスプレイに緑色で表示される。このようにして、ユーザは中間データMiの使用状況を直感的に知ることができ、不良品が有する問題(例えば、サイズの割に多くのスクラッチがある問題)について知ることができる。
インタフェース部70は、ユーザの注意を引くために様々な方法で表された中間データMiの少なくとも1つをユーザに通知することに使用される。図6では、インタフェース部70はメモリ処理部60とは別の個別の部品として示されているが、インタフェース部70をメモリ処理部60に含めることもできる。インタフェース部の一例としては、ディスプレイやスピーカー等であることができる。
図7は、本開示の更に別の実施形態によるロボットを制御するシステムのブロック図である。図7に示すロボットを制御するシステム3は、メモリ処理部60、インタフェース部70、及び操作部80において図1Bに示すロボットを制御するシステム1と異なる。図7では、図1B及び図6と同じ部分は同じ参照符号で示され、それらの詳細はここでは再び説明しない。
図7に示すように、メモリ処理部60は操作部80に接続される。操作部80は、メモリ処理部60によってメモリ部16内の中間データに対して追加、削除、無効化等の操作を実行するために使用される。図7では、操作部80はメモリ処理部60とは別の個別の部品として示されるが、操作部80をメモリ処理部60に含めることもできる。
操作部80によって実行される操作の例として、インタフェース部70によって出力された視覚化されたコンテンツに基づいて操作部80を介して、ユーザは、メモリ部16に保存され、特定方式で表される中間データを削除又は無効化することができ、又は所定のデータでメモリ部16に保存され、特定方式で表された中間データを上書きするか、所定のデータをメモリ部16に書き込むことができ、所定のデータは、特定方式で表される中間と異なる。このようにメモリ部16のメモリ内容を直接変更し、メモリ部16のメモリ内容をニューラルネットワーク10の動作に使用することにより、ニューラルネットワーク10の動作プロセスは、人為的に影響を与えられてより良い動作結果(又は出力データ)を得ることができる。
操作部80によって実行される操作の例を、図8及び図9を参照して以下に説明する。図8は、本開示の実施形態による方法の一例のフローチャートであり、メモリ部16内のコンテンツを削除する時、操作部80によって実行される操作を示す。図9は、本開示の実施形態による方法の別の例のフローチャートであり、コンテンツをメモリ部16に追加する時、操作部80によって実行される動作を示す。
図8に示すように、ステップS80では、ユーザは、インタフェース部70によって出力された視覚化されたコンテンツに基づいて、削除したいメモリ部16のストレージエントリを選択する。例えば、ワークを選択する場合、小さい相関を有する中間データMiに対応するストレージエントリが選択される。
ステップS82では、ニューラルネットワーク10は、削除したいストレージエントリと学習データ以外のメモリ部16のコンテンツを使用して学習し、アルゴリズムパラメータを最適化する。例えば、学習データのラベルデータとの差異を最小限にする操作パラメータが判定されることができる。このステップはオプションであり、必須ではない。このステップは、ステップS84の後に実行することもできる。
ステップS84では、操作部80は、例えばコンテンツアドレス又はインデックスアドレスでメモリ部16にアクセスし、ユーザに選択された削除が望まれるストレージアイテムを削除する。
ステップS86では、ニューラルネットワーク10が演算を実行して、削除されたストレージエントリに対応する新しい中間データを生成し、中間データもメモリ部16に保存される。更に、ニューラルネットワーク10は新しい中間データに対応する新しい出力データを生成し、それをメモリ部16に保存することもできる。プロセスは終了する。
図9に示すように、ステップS90では、ユーザが、インタフェース部70によって出力された視覚化されたコンテンツに基づいて、メモリ部16に追加したいストレージエントリを入力し、例えば、稀に発生する画像に対応する出力データを追加したいストレージエントリとして用い(出力データを画像に対応するラベルデータとして使用することもできる)、稀に発生する状況を処理するためのニューラルネットワーク10の機能を向上させることができる。
ステップS92では、ニューラルネットワーク10は、追加したいストレージエントリ、メモリ部16のコンテンツ及び学習データを使用することで学習し、アルゴリズムパラメータを最適化する。例えば、学習データのラベルデータでのエラーを最小限にする操作パラメータが判定されることができる。このステップはオプションであり、必須ではない。このステップは、ステップS94の後に実行することもできる。
ステップS94では、操作部80がメモリ部16を操作し、追加したいストレージアイテムをメモリ部16に保存する。
ステップS96では、ニューラルネットワーク10は新しく追加されたストレージエントリに基づいて、対応する中間データを演算する。中間データもメモリ部16に保存されることができる。プロセスは終了する。
図8及び図9を参照して上で説明したように、メモリ処理部60は操作部80によってメモリ部16の内容を操作して、その作業プロセス中に特定の入力データに対応する出力データを変更するためにニューラルネットワーク10のメモリを変更することができる。
図10は、本開示の実施形態による画像認識のための装置を示す概略図である。図10に示すように、キャリア部1020上のワークOBJは、カメラA、カメラB、及びカメラCを使用して撮像され、画像データを取得する。画像認識装置1100は、画像データと学習結果に基づいてワークOBJの品質を判定する。
この応用例では、画像認識装置1100は、ニューラルネットワークの学習に学習データを使用し、学習されたニューラルネットワークを使用してワークOBJの品質(例えば、ワークOBJの属性)を判定する。学習データは、例えば、カメラA、カメラB、カメラCで撮影されたワークOBJの画像であり、ワークOBJが良品か不良品かを示すラベルデータを有する。ニューラルネットワークの学習及び操作中に生成された中間データは、例えば外部メモリに記録されることができ、中間データは、直接又は変換後に、ワークOBJの特性、例えば、色、サイズ、スクラッチの有無等を表すか、又はこれらの特徴に対応する確率を表すことができる。画像認識のための装置1100は、中間データと対応する学習データとの間の関連を確立し、その関連を関連付けられたデータグループとして保存することができる。
この関連付けられたデータグループをテキスト形式でユーザに表示することで、ユーザはワークOBJの画像内のどの特徴が、良品であるか、不良品であるかを判定することができるか、どの特徴がワークOBJの利点及び欠点を判定するのに役に立つかを知ることができる。また、誤判定されやすい学習データに対して、学習データの特徴の学習を的確に追加して、ニューラルネットワークの判定能力を向上させることができる。
ロボットを制御するためのメモリ処理部10、60、システム1、2、3、及び画像認識のための画像認識装置1100の全部又は一部は、ソフトウェア機能的ユニットの形で実現することができる。独立した製品として販売又は使用する場合、ソフトウェア機能的ユニットは、コンピュータ可読記憶媒体に保存されることができる。この理解に基づいて、本質的に本開示の技術的解決策、又は先行技術に寄与する部分、又は技術的解決策の全部又は一部は、1つのコンピュータデバイス(パーソナルコンピュータ、サーバ、ネットワークデバイス等)に、本開示の各事例による方法のステップの全部又は一部を実行させるいくつかの命令を含む記憶媒体に保存されたソフトウェア製品の形で実装されることができる。前述の記憶媒体は、USBディスク、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、モバイルハードディスク、磁気ディスク、又は光ディスク等のプログラムコードを保存可能な様々な媒体を含むことができ、サーバ又はクラウドからダウンロード可能なデータストリームも含むことができる。
上記は、本開示の好ましい実施形態にすぎず、当業者は、本開示の原理から逸脱することなく、いくつかの改善及び修正を行うことができることに留意されたい。これらの改善及び修正は、本開示の保護の範囲内にあると見なされるべきである。
1、2、3、100 ロボットを制御するためのシステム
10 ニューラルネットワーク
11 入力部
12 入力処理部
13 学習部
14 出力処理部
15 出力部
16 メモリ部
20、60 メモリ処理部
21、61 関連付け部
30、50 リスト
63 演算部
64 可視化部
70 インタフェース部
80 操作部
1020 キャリア部
1100 画像認識装置