(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-21
(45)【発行日】2024-10-29
(54)【発明の名称】学習装置
(51)【国際特許分類】
G06N 20/00 20190101AFI20241022BHJP
【FI】
G06N20/00 130
(21)【出願番号】P 2023549265
(86)(22)【出願日】2021-09-24
(86)【国際出願番号】 JP2021035124
(87)【国際公開番号】W WO2023047542
(87)【国際公開日】2023-03-30
【審査請求日】2024-03-05
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100124811
【氏名又は名称】馬場 資博
(74)【代理人】
【識別番号】100088959
【氏名又は名称】境 廣巳
(74)【代理人】
【識別番号】100097157
【氏名又は名称】桂木 雄二
(74)【代理人】
【識別番号】100187724
【氏名又は名称】唐鎌 睦
(72)【発明者】
【氏名】澤田 あずさ
【審査官】今城 朋彬
(56)【参考文献】
【文献】特開2020-149601(JP,A)
【文献】特開2021-033544(JP,A)
【文献】中国特許出願公開第112598311(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00ー20/00
(57)【特許請求の範囲】
【請求項1】
同一の対象に対応する複数の第1のデータを含むグループと前記グループに対する第1のデータラベルとを含む第1の教師データを用い、未知対象に対応する第2のデータが属するクラスを識別する識別モデルを学習する学習手段を備え、
前記学習手段は、前記識別モデルを用いて前記第1のデータに対する識別スコアを算出し、前記識別スコアの前記グループ内での相対的な高さに依存する重みによって重み付けされた損失を用いて前記識別モデルを学習する、
学習装置。
【請求項2】
前記学習手段は、或る対象に対応する第3のデータと前記第3データに対する第2のデータラベルとを含む第2の教師データを入力し、前記第3のデータを複数に分割して得られる複数の部分データと前記第2のデータラベルとから前記第1の教師データを生成するデータ変換手段を有する、
請求項1に記載の学習装置。
【請求項3】
前記学習手段は、前記第1のデータに対する前記識別スコアの狭義単調増加関数f(s)を前記グループ内の合計値で正規化したものを、前記第1のデータの重みとして算出するように構成されている、
請求項1または2に記載の学習装置。
【請求項4】
前記狭義単調増加関数f(s)は、前記識別スコアをs、前記識別モデルの識別クラス数をNとするとき、
f(s)=s-1/N
である、
請求項3に記載の学習装置。
【請求項5】
前記狭義単調増加関数f(s)は、前記識別スコアをs、前記識別モデルの識別クラス数をNとするとき、
f(s)=(s-1/N)
2
である、
請求項3に記載の学習装置。
【請求項6】
前記狭義単調増加関数f(s)は、前記識別スコアをs、前記識別モデルの識別クラス数をNとするとき、
f(s)=exp(s-1/N)
である、
請求項3に記載の学習装置。
【請求項7】
前記識別モデルの識別クラス数をNとするとき、前記学習手段は、前記識別モデルのN成分のソフトマックス出力の最大値を前記識別スコアに用いる、
請求項1乃至6の何れかに記載の学習装置。
【請求項8】
前記識別モデルは、何れのクラスであるか確信が持てない場合に値が増加するように学習する特定のソフトマックス出力を有し、前記学習手段は、前記特定のソフトマックス出力の低さの程度を前記識別スコアに用いる、
請求項1乃至6の何れかに記載の学習装置。
【請求項9】
前記第1のデータは、時系列データである、
請求項1乃至8の何れかに記載の学習装置。
【請求項10】
前記第1のデータは、観測により得られた対象の移動軌跡を表す時系列データである、
請求項1乃至9の何れかに記載の学習装置。
【請求項11】
同一の対象に対応する複数の第1のデータを含むグループと前記グループに対する第1のデータラベルとを含む第1の教師データを用い、未知対象に対応する第2のデータが属するクラスを識別する識別モデルを学習し、
前記学習では、前記識別モデルを用いて前記第1のデータに対する識別スコアを算出し、
前記識別スコアの前記グループ内での相対的な高さに依存する重みを算出し、
前記算出した重みを用いて重み付けされた損失を算出し、
前記重み付けされた損失を用いて前記識別モデルを学習する、
学習
方法。
【請求項12】
コンピュータに、
同一の対象に対応する複数の第1のデータを含むグループと前記グループに対する第1のデータラベルとを含む第1の教師データを用い、未知対象に対応する第2のデータが属するクラスを識別する識別モデルを学習する処理、を行わせ、
前記学習では、
前記識別モデルを用いて前記第1のデータに対する識別スコアを算出する処理と、
前記識別スコアの前記グループ内での相対的な高さに依存する重みを算出する処理と、
前記算出した重みを用いて重み付けされた損失を算出する処理と、
前記重み付けされた損失を用いて前記識別モデルを学習する処理と、
を行わせるためのプログラ
ム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データが属するクラスを識別する識別モデルを機械学習する学習装置、学習方法、および記録媒体に関する。
【背景技術】
【0002】
透明または半透明な容器に封入された液体中の異物の有無を検査する装置および方法が提案されている。
【0003】
例えば、特許文献1には、液体中の物体の移動軌跡を表すデータを観測により取得し、この取得した移動軌跡データと、事前に学習しておいた液体中の異物の移動軌跡データとを比較することにより、液体中に異物が存在するか否かを検査する方法および装置が提案されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
液体中の物体の移動軌跡を観測により取得する際、同一物体の移動軌跡が断片化して観測される場合がある。即ち、観測期間中に或る物体が始点Sから終点Eまで移動したとき、始点Sから終点Eまでの移動軌跡全体が当該物体の移動軌跡として観測されることが理想的である。しかし、容器のレンズ効果、照明条件による物体の陰影の消失、影や他の物体による隠れ、物体の陰影の見えの変化等による追跡失敗などが要因となって、移動軌跡の一部分が当該物体の移動軌跡データとして観測される場合がある。例えば、始点Sから中間地点までの部分的な移動軌跡や、中間地点から別の中間地点までの部分的な移動軌跡や、中間地点から終点Eまでの部分的な移動軌跡が、物体の移動軌跡データとして観測される場合がある。このように移動軌跡全体のうちの一部分があたかも移動軌跡全体として観測される現象を、移動軌跡データの断片化と呼ぶ。
【0006】
しかしながら、このような断片化を想定して識別モデルを学習することは従来行われていなかった。そのため、断片化したデータの識別が困難である、という課題があった。このような課題は、液体中の物体の移動軌跡から物体のクラスを識別する識別モデルに限定されず、データを入力しデータのクラスを識別する識別モデル全般で発生する。
【0007】
本発明は、上述した課題を解決する学習装置を提供することにある。
【課題を解決するための手段】
【0008】
本発明の一形態に係る学習装置は、
同一の対象に対応する複数の第1のデータを含むグループと前記グループに対する第1のデータラベルとを含む第1の教師データを用い、未知対象に対応する第2のデータが属するクラスを識別する識別モデルを学習する学習手段を備え、
前記学習手段は、前記識別モデルを用いて前記第1のデータに対する識別スコアを算出し、前記識別スコアの前記グループ内での相対的な高さに依存する重みによって重み付けされた損失を用いて前記識別モデルを学習する、
ように構成されている。
【0009】
また、本発明の他の形態に係る学習方法は、
同一の対象に対応する複数の第1のデータを含むグループと前記グループに対する第1のデータラベルとを含む第1の教師データを用い、未知対象に対応する第2のデータが属するクラスを識別する識別モデルを学習し、
前記学習では、前記識別モデルを用いて前記第1のデータに対する識別スコアを算出し、
前記識別スコアの前記グループ内での相対的な高さに依存する重みを算出し、
前記算出した重みを用いて重み付けされた損失を算出し、
前記重み付けされた損失を用いて前記識別モデルを学習する、
ように構成されている。
【0010】
また、本発明の他の形態に係るコンピュータ読み取り可能な記録媒体は、
コンピュータに、
同一の対象に対応する複数の第1のデータを含むグループと前記グループに対する第1のデータラベルとを含む第1の教師データを用い、未知対象に対応する第2のデータが属するクラスを識別する識別モデルを学習する処理、を行わせ、
前記学習では、
前記識別モデルを用いて前記第1のデータに対する識別スコアを算出する処理と、
前記識別スコアの前記グループ内での相対的な高さに依存する重みを算出する処理と、
前記算出した重みを用いて重み付けされた損失を算出する処理と、
前記重み付けされた損失を用いて前記識別モデルを学習する処理と、
を行わせるためのプログラムを記録するように構成されている。
【発明の効果】
【0011】
本発明は、上述したような構成を有することにより、断片化に強く、且つ、スコアの高い誤識別を起こし難い識別モデルを獲得することができる。
【図面の簡単な説明】
【0012】
【
図1】本発明の第1の実施形態に係る学習装置を適用した検査システムのブロック図である。
【
図2】本発明の第1の実施形態における検査装置の一例を示すブロック図である。
【
図3】本発明の第1の実施形態における画像情報の構成例を示す図である。
【
図4】本発明の第1の実施形態における追跡情報の構成例を示す図である。
【
図5】本発明の第1の実施形態における検査結果情報の構成例を示す図である。
【
図6】本発明の第1の実施形態における学習フェーズの動作の一例を示すフローチャートである。
【
図7】本発明の第1の実施形態における検査フェーズの動作の一例を示すフローチャートである。
【
図8】本発明の第1の実施形態において識別モデルの機械学習に用いられる2種類の教師データの構成例を示す図である。
【
図9】本発明の第1の実施形態において識別モデル学習部が教師データ250から教師データ251を作成する方法の一例を示す模式図である。
【
図10】本発明の第1の実施形態における識別モデル学習部の学習処理の一例を示すフローチャートである。
【
図11】本発明の第1の実施形態において使用する式を示す図である。
【
図12】本発明の第1の実施形態における判定部の処理の一例を示すフローチャートである。
【
図13】本発明の第1の実施形態において教師データとして使用する浮遊物の移動軌跡の例を模式的に示す図である。
【
図14】本発明の第2の実施形態に係る学習装置のブロック図である。
【発明を実施するための形態】
【0013】
[第1の実施形態]
図1は、本発明の第1の実施形態に係る学習装置を適用した検査システム100のブロック図である。
図1を参照すると、検査システム100は、容器400に封入された液体中の異物の有無を検査するシステムである。検査システム100は、主な構成要素として、把持装置110と、照明装置120と、カメラ装置130と、検査装置200と、表示装置300と、を備えている。
【0014】
容器400は、ガラス瓶やペットボトルなどの透明または半透明な容器である。容器400の内部には、薬剤や水などの液体が封入・充填されている。また、容器400に封入された液体中には、異物が混入している可能性がある。異物としては、例えば、ガラス片、プラスチック片、ゴム片、髪の毛、繊維片、煤、などが想定される。
【0015】
把持装置110は、容器400を所定の姿勢で把持するように構成されている。所定の姿勢は任意である。例えば、容器400が正立しているときの姿勢を所定の姿勢としてよい。あるいは、容器400が正立した姿勢から所定の角度で傾いた姿勢を所定の姿勢としてよい。以下では、容器400が正立した姿勢を所定の姿勢として説明する。容器400を正立した姿勢で把持する機構は、任意である。例えば、把持する機構は、容器400を正立した姿勢で載置する台座と、台座上に載置された容器400の頭頂部であるキャップ401の上面部を押圧する部材などを含んで構成されていてよい。
【0016】
また、把持装置110は、容器400を把持した状態で、容器400を正立した姿勢から所定方向に傾斜させ、または揺動させ、または回転させるように構成されている。容器400を傾斜・揺動・回転させる機構は、任意である。例えば、傾斜・揺動・回転させる機構は、把持機構全体を、容器400を把持した状態で傾斜・揺動・回転させるモータを含んで構成されていてよい。
【0017】
また、把持装置110は、有線または無線により検査装置200と接続されている。把持装置110は、検査装置200からの指示により起動されると、容器400を把持した状態で、容器400を正立した姿勢から所定方向に傾斜・揺動・回転させる。また、把持装置110は、検査装置200からの指示により停止されると、容器400を傾斜・揺動・回転させる動作を停止し、容器400を正立した姿勢で把持する状態に復帰する。
【0018】
上記のように容器400を傾斜・揺動・回転させ、その後に静止させると、静止した容器400内で液体が慣性により流動する状態が得られる。液体が流動すると、液体に混入された異物が浮遊する状態が得られる。また、液体が流動すると、容器400の内側壁面などに付着していた気泡や液体の流動の過程で混ざり込んだ気泡が液体中を浮遊する可能性がある。従って、検査装置200は、浮遊物が異物であるか、気泡であるかを識別する必要がある。
【0019】
照明装置120は、容器400に封入された液体に対して照明光を照射するように構成されている。照明装置120は、例えば、容器400の大きさに応じたサイズの面光源である。照明装置120は、容器400からみてカメラ装置130が設置される側とは反対側に設置されている。すなわち、照明装置120による照明は、透過照明である。ただし、照明装置120の位置はこれに限定せず、例えば容器400の底面側やカメラ装置130に隣接する位置に設置して、反射光照明として撮影する形態をとってもよい。
【0020】
カメラ装置130は、容器400からみて照明装置120が設置される側とは反対側の所定位置から、容器400内の液体を、所定のフレームレートで連続して撮影する撮影装置である。カメラ装置130は、例えば、数百万画素程度の画素容量を有するCCD(Charge-Coupled Device)イメージセンサやCMOS(Complementary MOS)イメージセンサを備えたカラーカメラを含んで構成されていてよい。カメラ装置130は、有線または無線により、検査装置200と接続されている。カメラ装置130は、撮影して得られた時系列の画像を、撮影時刻を示す情報などと共に、検査装置200に対して送信するように構成されている。
【0021】
表示装置300は、LCD(Liquid Crystal Display:液晶ディスプレイ)などの表示装置である。表示装置300は、検査装置200と有線または無線により接続されている。表示装置300は、検査装置200で行われた容器400の検査結果などを表示するように構成されている。
【0022】
検査装置200は、カメラ装置130によって撮影して得られた時系列の画像に対して画像処理を行って、容器400に封入された液体中の異物の有無を検査する情報処理装置である。検査装置200は、把持装置110、カメラ装置130、および表示装置300と有線または無線により接続されている。
【0023】
図2は、検査装置200の一例を示すブロック図である。
図2を参照すると、検査装置200は、通信I/F部210と操作入力部220と記憶部230と演算処理部240とを備えている。
【0024】
通信I/F部210は、データ通信回路から構成され、有線または無線により把持装置110、カメラ装置130、表示装置300、および図示しない他の外部装置との間でデータ通信を行うように構成されている。操作入力部220は、キーボードやマウスなどの操作入力装置から構成され、オペレータの操作を検出して演算処理部240に出力するように構成されている。
【0025】
記憶部230は、ハードディスクやメモリなどの1種類あるいは多種類の1以上の記憶装置から構成され、演算処理部240における各種処理に必要な処理情報およびプログラム231を記憶するように構成されている。プログラム231は、演算処理部240に読み込まれて実行されることにより各種処理部を実現するプログラムであり、通信I/F部210などのデータ入出力機能を介して図示しない外部装置や記録媒体から予め読み込まれて記憶部230に保存される。記憶部230に記憶される主な処理情報には、画像情報232、追跡情報233、識別モデル234、および、検査結果情報235がある。
【0026】
画像情報232は、容器400内の液体をカメラ装置130によって連続して撮影して得られた時系列の画像を含んでいる。容器400内の液体中に浮遊物が存在する場合、画像情報232には、浮遊物の像が写っている。
【0027】
図3は、画像情報232の構成例を示す。この例の画像情報232は、容器ID2321と撮影時刻2322とフレーム画像2323との組からなるエントリから構成されている。容器ID2321の項目には、容器400を一意に識別するIDが設定される。容器ID2321としては、容器400に振られた通し番号、容器400に貼付されたバーコード、容器400のキャップ401などから採取された物体指紋情報などが考えられる。撮影時刻2322およびフレーム画像2323の各項目には、撮影時刻およびフレーム画像が設定される。撮影時刻2322は、同じ容器IDの他のフレーム画像と区別して識別できるような精度(例えばミリ秒単位)に設定されている。撮影時刻2322は、例えば、容器400の傾斜・揺動・回転を停止した時点からの経過時間を用いてよい。
図3の例では、フレーム画像2323毎に容器ID2321を関連付けているが、複数のフレーム画像2323のグループ毎に容器ID2321を関連付けるようにしてもよい。
【0028】
追跡情報233は、画像情報232に写っている容器400内の液体中に存在する浮遊物の像を検出して追跡した浮遊物の移動軌跡を表す時系列データを含んでいる。
図4は、追跡情報233の構成例を示す。この例の追跡情報233は、容器ID2331、追跡ID2332とポインタ2333との組、の各エントリから構成されている。容器ID2331のエントリには、容器400を一意に識別するIDが設定される。追跡ID2332とポインタ2333との組からなるエントリは、追跡対象の浮遊物毎に設けられる。追跡ID2332の項目には、追跡対象の浮遊物を同じ容器400内の他の浮遊物と識別するためのIDが設定される。ポインタ2333の項目には、追跡対象とする浮遊物の移動軌跡情報2334へのポインタが設定される。
【0029】
移動軌跡情報2334は、時刻23341と位置情報23342とサイズ23343と色23344と形状23345との組からなるエントリから構成されている。時刻23341と位置情報23342とサイズ23343と色23344と形状23345との項目には、撮影時刻とその撮影時刻における追跡対象の浮遊物の位置を示す座標値と浮遊物のサイズと浮遊物の色と浮遊物の形状とが設定される。時刻23341に設定する撮影時刻は、フレーム画像の撮影時刻2322を用いる。座標値は、例えば、予め定められた座標系における座標値であってよい。また、予め定められた座標系は、カメラを中心としてみたカメラ座標系であってもよいし、空間中のある位置を中心として考えたワールド座標系であってもよい。移動軌跡情報2334のエントリは、時刻23341の順に並べられている。先頭のエントリの時刻23341は、追跡開始時刻である。最後尾のエントリの時刻23341は、追跡終了時刻である。先頭および最後尾以外のエントリの時刻23341は、追跡中間時刻である。
【0030】
識別モデル234は、浮遊物の移動軌跡を表す時系列データから当該浮遊物の種類(クラス)を推定するモデルである。識別クラス数はNとする。Nは2、または3以上の正の整数である。例えば、N=2の場合、識別モデル234は、例えば、浮遊物が異物クラスである確率を出力する。また、N=3の場合、識別モデル234は、例えば、異物クラスである確率と泡クラスである確率とノイズクラスである確率との3つのクラスそれぞれの確率を出力する。各クラスの確率は、例えば、ソフトマックス(softmax)値として識別モデル234から出力される。識別モデル234は、例えば、RNNやLSTMなどのニューラルネットワークの再帰的構造を用いて構成してよい。或いは、識別モデル234は、パディング、プーリング処理やリサイズを用いて、固定長データの識別に帰着してもよい。
【0031】
検査結果情報235は、検査対象とする容器400に封入された液体中の異物の有無を検査した結果の情報である。
図5は、検査結果情報235の構成例を示す。この例の検査結果情報235は、容器ID2351と検査結果2352との組から構成されている。容器ID2351のエントリには、検査対象の容器400を一意に識別するIDが設定される。検査結果2352のエントリには、OK(検査合格)またはNG(検査不合格)の何れかの検査結果が設定される。NGの検査結果は、容器IDで特定される容器400に封入された液体中から検出された全ての浮遊物のうち少なくとも1つが所定値以上の確率で異物クラスであると判定されたときに出される。
【0032】
再び
図2を参照すると、演算処理部240は、MPUなどのマイクロプロセッサとその周辺回路を有し、記憶部230からプログラム231を読み込んで実行することにより、上記ハードウェアとプログラム231とを協働させて各種処理部を実現するように構成されている。演算処理部240で実現される主な処理部には、取得部241、識別モデル学習部242、および、判定部243がある。
【0033】
取得部241は、把持装置110およびカメラ装置130を制御して、容器400に封入された液体中に存在する浮遊物の像を写した画像情報232を取得するように構成されている。また、取得部241は、画像情報232を解析することにより、浮遊物の移動軌跡を表す時系列データを含む追跡情報233を取得するように構成されている。
【0034】
識別モデル学習部242は、識別モデル234の学習に用いる教師データを生成するように構成されている。また、識別モデル学習部242は、生成された教師データを用いて、識別モデル234を学習するように構成されている。
【0035】
判定部243は、学習済みの識別モデル234を用いて、取得部241によって取得された検査対象に係る容器400に封入された液体中の浮遊物の移動軌跡を表す時系列データから浮遊物のクラスを推定するように構成されている。また、判定部243は、上記推定結果に基づいて、検査対象に係る容器400に異物が混入しているか否かを表す検査結果情報235を作成するように構成されている。
【0036】
次に、検査システム100の動作を説明する。検査システム100のフェーズは、学習フェーズと検査フェーズとに大別される。学習フェーズは、識別モデル234を機械学習するフェーズである。検査フェーズは、学習済みの識別モデル234を用いて、検査対象に係る容器400に封入された液体中の異物の有無を検査するフェーズである。
【0037】
図6は学習フェーズの動作の一例を示すフローチャートである。
図6を参照すると、先ず、取得部241は、把持装置110およびカメラ装置130を制御して、容器400に封入された液体中に存在する浮遊物の像を写した画像情報232を取得する(ステップS1)。次に、取得部241は、画像情報232を解析することにより、浮遊物の移動軌跡を表す時系列データを含む追跡情報233を取得する(ステップS2)。
【0038】
次に、識別モデル学習部242は、識別モデル234の機械学習に用いる教師データを作成する(ステップS3)。次に、識別モデル学習部242は、作成した教師データを用い、入力を浮遊物の移動軌跡を表す時系列データとし、出力を浮遊物のクラスとする識別モデル234を機械学習させ、学習済みの識別モデルを生成する(ステップS4)。識別モデル234は、学習フェーズが終了すると学習済みの識別モデルとなる。
【0039】
図7は検査フェーズの動作の一例を示すフローチャートである。
図7を参照すると、先ず、取得部241は、把持装置110およびカメラ装置130を制御して、検査対象に係る容器400に封入された液体中に存在する浮遊物の像を写した画像情報232を取得する(ステップS11)。次に、取得部241は、画像情報232を解析することにより、浮遊物の移動軌跡を表す時系列データを含む追跡情報233を取得する(ステップS12)。
【0040】
次に、判定部243は、学習済みの識別モデル234を用いて、追跡情報233に含まれる浮遊物の移動軌跡を表す時系列データから浮遊物のクラスを推定する(ステップS13)。次に、判定部243は、推定した浮遊物のクラスに基づいて、検査結果情報236を作成する(ステップS14)。
【0041】
続いて、取得部241と識別モデル学習部242と判定部243を詳細に説明する。
【0042】
先ず、取得部241の詳細を説明する。
【0043】
取得部241は、先ず、容器400を正立した姿勢で把持している把持装置110を起動することにより、検査対象の容器400を傾斜・揺動・回転させる。次に、取得部241は、起動後、一定時間が経過すると、把持装置110を停止させることにより、容器400を所定の姿勢で静止させる。このように容器400を一定時間にわたって傾斜・揺動・回転させた後に静止させることにより、静止した容器400内で液体が慣性によって流動する状態が得られる。次に、取得部241は、照明装置120による透過照明の下で、容器400内の液体をカメラ装置130によって所定のフレームレートで連続して撮影する動作を開始する。即ち、取得部241は、容器400が傾斜・揺動・回転された後に静止した時刻を時刻Tsとすると、時刻Tsから上記撮影動作を開始する。
【0044】
また、取得部241は、時刻Tsから所定時間Twが経過する時刻Teまで、容器400内の液体をカメラ装置130によって連続して撮影し続ける。上記所定時間Twは、例えば、液体中を浮遊する浮遊物が全て気泡であると仮定した場合に、全ての気泡が容器400の上方に向かって移動し、もはや下方に移動するとは考えられないような移動軌跡が得られるのに必要な時間(以下、最小撮影時間長と記す)以上に設定されていてよい。最小撮影時間長は、予め実験などによって決定され、取得部241に固定的に設定されていてよい。なお、取得部241は、時刻Teに達したときに、カメラ装置130による撮影を直ちに停止してもよいし、なおもカメラ装置130による撮影を続けてもよい。
【0045】
取得部241は、カメラ装置130から取得した時系列のフレーム画像のそれぞれに、撮影時刻および容器IDを付加し、画像情報232として記憶部230に保存する。
【0046】
次に取得部241は、所定時間長分の時系列のフレーム画像が取得されると、それらのフレーム画像のそれぞれから、容器400内の液体中の浮遊物の陰影を検出する。例えば、取得部241は、以下に記載するような方法によって液体中の浮遊物の陰影を検出する。但し、取得部241は、以下に記載した以外の方法によって液体中の浮遊物の陰影を検出してよい。
【0047】
先ず、取得部241は、フレーム画像のそれぞれに対して2値化処理を行って、2値化フレーム画像を作成する。次に、取得部241は、2値化フレーム画像のそれぞれから、以下のようにして浮遊物の陰影を検出する。
【0048】
取得部241は、先ず、浮遊物の陰影を検出する対象とする2値化フレーム画像を注目中2値化フレーム画像とする。次に、注目中2値化フレーム画像と、撮影時刻がΔtだけ後の2値化フレーム画像との差分画像を生成する。ここで、Δtは、2つの画像において同じ浮遊物が一部分で重なるか、重ならない場合でもごく近接した位置に現れる程度の時間に設定される。そのため、時間差Δtは、液体および異物の性質や流動状態などに応じて定められる。上記差分画像では、2つの2値化フレーム画像で一致する画像部分は消去され、相違する画像部分だけが残される。このため、2つの2値化フレーム画像の同じ位置に現れる容器400の輪郭や傷などは消去され、浮遊物の陰影だけが現れる。取得部241は、差分画像で陰影が現れた箇所に対応する注目中2値化フレーム画像の陰影を、注目中2値化フレーム画像中に存在する浮遊物の陰影として検出する。
【0049】
取得部241は、検出された浮遊物を時系列の画像の中で追跡し、追跡の結果に応じて追跡情報233を作成する。先ず、取得部241は、追跡情報233を初期化する。この初期化では、
図4の容器ID2331のエントリに容器400の容器IDが設定される。次に、取得部241は、以下に記載するような方法によって、時系列の画像の中で、浮遊物を追跡し、その追跡結果に応じて、浮遊物毎に、
図4の追跡ID2332とポインタ2333との組のエントリ、移動軌跡情報2334を作成する。
【0050】
先ず、取得部241は、上記作成した2値化フレーム画像の時系列のうち、撮影時刻が最も過去の2値化フレーム画像に注目する。次に、取得部241は、注目中2値化フレーム画像において検出された浮遊物それぞれに、一意となる追跡IDを付与する。次に、取得部241は、検出された浮遊物毎に、注目中2値化フレーム画像において検出された浮遊物に付与した追跡IDを、
図4の追跡ID2332の項目に設定し、対応するポインタ2333で指示される移動軌跡情報2334の先頭エントリの時刻23341の項目に注目中2値化フレーム画像の撮影時刻を設定し、位置情報23342とサイズ23343と色23344と形状23345との項目に注目中2値化フレーム画像における浮遊物の座標値とサイズと色と形状とを設定する。
【0051】
次に、取得部241は、注目中2値化フレーム画像より1フレームだけ後の2値化フレーム画像に注目を移す。次に、取得部241は、注目中2値化フレーム画像において検出された浮遊物の1つに注目する。次に、取得部241は、注目中浮遊物の位置と、1フレームだけ前の2値化フレーム画像(以下、先行2値化フレーム画像と記す)において検出された浮遊物の位置とを比較し、注目中浮遊物から予め定められた閾値距離以内に浮遊物が存在すれば、注目中浮遊物と当該閾値距離以内に存在した浮遊物とは同一の浮遊物であると判定する。この場合、取得部241は、注目中の浮遊物に、同一の浮遊物と判定した浮遊物に対して付与されている追跡IDを付与する。そして、取得部241は、付与した追跡ID2332が設定されている追跡情報233のエントリのポインタ2333が指し示す移動軌跡情報2334に新たなエントリを確保し、その確保したエントリの時刻23341と位置情報23342とサイズ23343と色23344と形状23345とに、注目中2値化フレーム画像の撮影時刻と注目中浮遊物の座標値とサイズと色と形状とを設定する。
【0052】
一方、取得部241は、先行2値化フレーム画像において注目中浮遊物から閾値距離以内に浮遊物が存在しない場合、注目中浮遊物は新規な浮遊物と判定し、新たな追跡IDを付与する。次に、取得部241は、注目中浮遊物に付与した追跡IDを、新たに確保したエントリの
図4の追跡ID2332の項目に設定し、対応するポインタ2333で指示される移動軌跡情報2334の先頭エントリの時刻23341の項目に注目中2値化フレーム画像の撮影時刻を設定し、位置情報23342とサイズ23343と色23344と形状23345との項目に注目中浮遊物の座標値とサイズと色と形状とを設定する。
【0053】
取得部241は、注目中浮遊物についての処理を終えると、注目中2値化フレーム画像において検出された次の浮遊物に注目を移し、前述した処理と同様の処理を繰り返す。そして、取得部241は、注目中2値化フレーム画像において検出された全ての浮遊物について注目し終えると、1フレームだけ後のフレーム画像に注目を移し、上述した処理と同様の処理を繰り返す。そして、取得部241は、画像情報232における最後のフレーム画像まで注目し終えると、追跡処理を終了する。
【0054】
以上の説明では、取得部241は、隣接する2つのフレーム画像における浮遊物間の距離に基づいて追跡を行った。しかし、取得部241は、nフレーム(nは1以上の正の整数)を挟んで隣接する2つのフレーム画像における浮遊物間の距離に基づいて追跡を行うようにしてもよい。また、取得部241は、mフレーム(mは0以上の正の整数)を挟んで隣接する2つのフレーム画像における浮遊物間の距離に基づいて追跡を行った追跡結果と、m+jフレーム(jは1以上の正の整数)を挟んで隣接する2つのフレーム画像における浮遊物間の距離に基づいて追跡を行った追跡結果とを総合的に判断して追跡を行うようにしてもよい。
【0055】
次に、識別モデル学習部242の詳細を説明する。
【0056】
先ず、識別モデル234の機械学習に用いられる教師データについて説明する。
【0057】
図8は、識別モデル234の機械学習に用いられる2種類の教師データの構成例を示す。
図8を参照すると、1つ目の種類の教師データ250は、浮遊物の移動軌跡を表す単一の時系列データ2501とその浮遊物のクラスを表す正解ラベル2502とを含んで構成されている。時系列データ2501は、例えば、
図4に示した移動軌跡情報2334を使用してよい。或いは、時系列データ2501は、例えば、
図4に示した移動軌跡情報2334からサイズ23343、色23344、および、形状23345の1つ、または2つ、または全てを取り除いた残りの情報であってよい。また、正解ラベル2502は、時系列データ2501に対応する浮遊物の属するクラスを表している。例えば、正解ラベル2502は、各ベクトル要素に1クラスを割り当て、正解クラスのベクトル要素のみ1にし他は0にするOne-of-k表記法で表記してよい。教師データ250は、例えば、ユーザとの間の対話的処理によって作成されてよい。例えば、識別モデル学習部242は、取得部241によって取得された移動軌跡情報2334を表示装置300の画面に表示し、操作入力部220を通じてユーザから当該移動軌跡情報2334の正解ラベルを受け付ける。そして、識別モデル学習部242は、表示した移動軌跡情報2334と受け付けた正解ラベルとの組を1つの教師データ250として作成する。識別モデル学習部242は、同様の方法により、識別クラス毎に、必要十分な数の教師データ250を作成する。但し、教師データ250の作成方法は上記に限定されない。
【0058】
図13に示される移動軌跡A、B、Cは、教師データ250を構成する移動軌跡情報2334が表す浮遊物の移動軌跡の例を模式的に示している。
図13において、移動軌跡A、Bは異物、移動軌跡Cは泡によるものである。異物の移動軌跡Aでは、一部の区間で液体の流動の影響を受けて上方に移動しているが、液体より比重の重い異物は最終的には落下する。また、異物の移動軌跡Bでは、一度も上方に移動することなく、追跡開始当初から落下する傾向を示している。一方、泡の移動軌跡Cでは、一部の区間で液体の流動の影響を受けて下方に移動しているものの、最終的には上方に移動している。
【0059】
再び
図8を参照すると、2つ目の種類の教師データ251は、同一の浮遊物に対応する複数の時系列データ2511-i(i=1、2、・・・)とその浮遊物のクラスを表す正解ラベル2512とを含んで構成されている。このような教師データ251は、例えば、1つ目の種類の教師データ250から機械的に作成されてよい。
【0060】
図9は、識別モデル学習部242が教師データ250から教師データ251を作成する方法の一例を示す模式図である。
図9を参照すると、識別モデル学習部242は、選択部2421とデータ変換部2422とを含んで構成されている。先ず、識別モデル学習部242は、選択部2421を用いて、
図8を参照して説明した複数の教師データ250の中から、異物の移動軌跡を表す時系列データ2501と正解ラベル2502とを含んで構成される教師データ250’を1以上、必要十分な数だけ選択する。例えば、正解ラベル2502が、異物クラスと泡クラスとノイズクラスとの3つのクラスのベクトル要素を含む場合、教師データ250’は異物クラスに値1が設定されている正解ラベル2502を有する教師データになる。但し、異物の移動軌跡を表す時系列データ2501を有する教師データに加えて、異物以外の移動軌跡を表す時系列データ2501を有する教師データを教師データ250の中から選択して、教師データ250’に含めてもよい。
【0061】
次に、識別モデル学習部242は、データ変換部2422を用いて、教師データ250’のそれぞれから、複数の時系列データ2511-iと正解ラベル2512とを含んで構成される1つの教師データ251を生成する。具体的には、識別モデル学習部242は、教師データ250の時系列データ2501の追跡開始時刻Stから追跡終了時刻Etまでの時間を3等分する2つの中間の時刻Mt1、Mt2を算出する。次に、識別モデル学習部242は、時系列データ2501を構成する移動軌跡情報2334から、追跡開始時刻Stから中間の時刻Mt1までの時刻23341を有する全てのエントリを抽出し、この抽出して得られたエントリから構成される時系列データを1番目の時系列データ2511-1として生成する。次に、識別モデル学習部242は、時系列データ2501を構成する移動軌跡情報2334から、中間の時刻Mt1から中間の時刻Mt2までの時刻23341を有する全てのエントリを抽出し、この抽出して得られたエントリから構成される時系列データを2番目の時系列データ2511-2として生成する。次に、識別モデル学習部242は、時系列データ2501を構成する移動軌跡情報2334から、中間の時刻Mt2から追跡終了時刻Etまでの時刻23341を有する全てのエントリを抽出し、この抽出して得られたエントリから構成される時系列データを3番目の時系列データ2511-3として生成する。また、識別モデル学習部242は、教師データ250’の正解ラベル2502を、そのまま教師データ251の正解ラベル2512として生成する。
【0062】
図13に示される移動軌跡a1、a2、a3は、教師データ251を構成する3つの時系列データ2511-1、2511-2、2511-3が表す異物の移動軌跡の例を模式的に示している。この教師データ251は、
図13に示される異物の移動軌跡Aを表す教師データ250から生成されたものである。
図13を参照すると、異物の移動軌跡a1は、比較的緩やかに下降している。異物の移動軌跡a2は、比較的緩やかに上昇している。異物の移動軌跡a3は、急激に下降している。
【0063】
但し、教師データ250’の生成方法は上記に限定されない。例えば、時系列データ2501を2あるいは4以上の正の整数で分割して得られる2個あるいは4個以上の部分時系列データ2511から1つの教師データ251を作成してよい。また、時系列データ2511の個数は、全ての教師データ251で同じである必要はなく、違っていてよい。即ち、時系列データ2501を2分割して得られる2つの時系列データ2511-1、2511-2を含む教師データ251、それを3分割して得られる3つの時系列データ2511-1~2511-3を含む教師データ251、それを4分割して得られる4つの時系列データ2511-1~2511-4を含む教師データ251などが混在していてよい。また、分割元の時系列データ2501の長さ(追跡開始時刻から追跡終了時刻までの時間長)に応じて、分割数を変えてよい。例えば、長い時系列データ2501ほど分割数を多くしてよい。また、閾値以下の長さの時系列データ2501を有する教師データ250は、教師データ251の生成元として選択しないようにしてよい。また、教師データ251を構成する複数の時系列データ2511は、同一の浮遊物に係る時系列データ2501に由来するものに限定されず、同じ容器400内の互いに異なる浮遊物に係る複数の時系列データ2501に由来するものであってもよい。また、時系列データ2501を元の長さで学習する頻度が下がらないように、教師データ251に分割前の時系列データ2501を含めても良い。
【0064】
次に、教師データ250、251を用いて、識別モデル学習部242が識別モデル234を学習する方法について説明する。
【0065】
図10は、識別モデル学習部242の学習処理の一例を示すフローチャートである。
図10を参照すると、識別モデル学習部242は、先ず、教師データ250および教師データ251を含んで構成される教師データ群の中の1つの教師データに注目する(ステップS21)。次に、識別モデル学習部242は、内部変数mに値1を設定する(ステップS22)。次に、識別モデル学習部242は、注目中の教師データに含まれる第m(mはその時点の内部変数の値。従って、最初は1)番目の時系列データを識別モデル234に入力したときに識別モデル234の出力として得られる各クラスのソフトマックス値を取得する(ステップS23)。次に、識別モデル学習部242は、注目中の教師データの正解ラベルと上記ソフトマックス値との誤差を、予め与えられた損失関数を用いて個別損失l
mとして算出する(ステップS24)。ここで、損失関数は、例えば、
図11の式1で与えられるクロスエントロピーl(q,y)=-log(q
y)を使用してよい。なお、式1において、qはN成分ソフトマックス値、yは正解クラス成分である。次に、識別モデル学習部242は、内部変数mの値を1だけインクリメントする(ステップS25)。次に、識別モデル学習部242は、内部変数mの値が注目中の教師データに含まれる時系列データの数を超えたか否かを判定する(ステップS26)。識別モデル学習部242は、内部変数mの値が時系列データの数を超えていなければ、ステップS23の処理に戻って、上述した処理と同様の処理を注目中の教師データに含まれる次の時系列データに対して繰り返す。一方、内部変数mの値が時系列データの数を超えていれば、注目中の教師データに含まれる全ての時系列データについて、識別モデル234の各クラスのソフトマックス値の取得および個別損失の算出が行われたことになる。この場合、識別モデル学習部242は、ステップS27の処理へと進む。
【0066】
識別モデル学習部242は、ステップS27において、注目中の教師データの時系列データ毎に、その重要度を表す重みを算出する。例えば、識別モデル学習部242は、識別スコアがより高い時系列データほど、より重要度が高いと判断し、より大きな重みを算出する。具体的には、識別モデル学習部242は、先ず、注目中の教師データに含まれる時系列データ毎に、
図11の式2で与えられる識別スコアsを算出する。即ち、i番目の時系列データ2511-iの識別スコアs
iは、時系列データ2511-iを識別モデル234に入力したときに得られるN成分ソフトマックス値qの最大値で与えられる。但し、識別スコアs
iは上記に限定されない。例えば、識別スコアs
iは、正解クラスのソフトマックス値であってもよい。次に、識別モデル学習部242は、時系列データ毎に、狭義単調増加関数f(s)(以下、単に関数f(s)と記す)の値を算出する。次に、識別モデル学習部242は、全ての時系列データの関数f(s)の値の総和を算出する。次に、識別モデル学習部242は、時系列データ毎に、全ての時系列データの関数(f)の値の総和に対する、当該時系列データの関数f(s)の値の割合を、当該時系列データの重みw
iとして算出する。即ち、i番目の時系列データ2511-iの重みw
iは、
図11の式3で与えられる。式3におけるGは、注目中の教師データの時系列データからなるグループを意味する。このように、識別モデル学習部242は、時系列データ毎に、関数f(s)の値を注目中の教師データ内の合計値で正規化したものを重みwとして算出する。
【0067】
関数f(s)は、例えば、
図11の式4に示されるものを使用してよい。或いは、関数f(s)は、
図11の式5に示されるようなものを使用してよい。或いは、関数f(s)は、
図11の式6に示されるものを使用してよい。或いは、関数f(s)は、式7に示されるものを使用してよい。式4の関数f(s)を基準にすると、式5の関数f(s)は、相対的に重要度の低いデータと高いデータとの間の重みを増大させる効果がある。また、式6の関数は、相対的に重要度の低いデータと高いデータとの間の重みの差を、式5の関数f(s)よりもより一層増大させる効果がある。一方、式7の関数f(s)は、式4の関数を基準にして、相対的に重要度の低いデータと高いデータとの間の重みの差を低減させる効果がある。
【0068】
次に、識別モデル学習部242は、ステップS24で算出された個別損失毎に、個別損失に対してステップS27で算出された対応する重みを乗じることにより、重み付き個別損失w・lを算出する(ステップS28)。次に、識別モデル学習部242は、全ての重み付き個別損失の総和を、教師データの重み付き損失Lとして算出する(ステップS29)。重み付き損失Lは、
図11の式8で与えられる。以上のような重み付き個別損失や重み付き損失Lを用いることにより、以下のような効果(A)、(B)、(C)が生じる。
【0069】
(A)複数の時系列データ2511-1~2511-3(それぞれが1つの断片データに相当する)のうち異物クラスとして識別容易な時系列データは、その識別スコアが学習の早期に高くなり易いため、そのような時系列データ(に対応する断片データ)の重要度を上げる効果がある。識別容易な時系列データとは、クラスの識別の根拠となる特徴が顕著に含まれているデータである。例えば、容器400の液体と比べて比重の大きな異物は落下速度が相対的に早い。そのため、急速に落下する特徴を有する時系列データは識別容易な時系列データの一例である。
【0070】
(B)複数の時系列データ2511-1~2511-3のうち、異物クラスの識別の根拠となる特徴が十分に含まれていない時系列データは、場合によっては異物クラス以外のクラス、例えば泡クラスとして誤識別される可能性がある。しかし、そのような時系列データを一部に含む教師データの正解クラスは異物クラスであるため、同じ教師データに属する他の時系列データの中に高い識別スコアを獲得するものが存在していることが多い。そのため、誤識別された時系列データの重要度は相対的に低下し、それに応じて損失は相対的に下がる。この結果、誤識別の場合の識別スコアを下げる効果がある。
【0071】
(C)重み付き個別損失や重み付き損失Lは、重み付け和により正規化されているため、複数の時系列データ2511-1~2511-3の全てを軽視することはない。
【0072】
再び
図10を参照すると、次に、識別モデル学習部242は、ステップS29で算出した重み付き損失Lを最小化するように識別モデル234を学習する(ステップS30)。具体的には、識別モデル学習部242は、例えば、勾配降下法と誤差逆伝搬法を用いて、重み付き損失Lが小さくなるように識別モデル234のパラメータをチューニングする。なお、ステップS30において、識別モデル学習部242は、重み付き損失Lの代わりに、重み付きの個別損失w
1・l
1、w
2・l
2、w
3・l
3毎に、その重み付きの個別損失を最小化するように識別モデル234を学習してもよい。
【0073】
識別モデル学習部242は、注目中の教師データによる学習を終えると、教師データ群の中の次の1つの教師データに注目を移す(ステップS31)。そして、識別モデル学習部242は、ステップS32を経てステップS22に戻り、前述した処理と同様の処理を新たに注目した教師データについて繰り返す。そして、教師データ群に含まれる全ての教師データについて注目し終えると(ステップS32でYES)、
図10の処理を終了する。
【0074】
以下、
図13に示される異物の移動軌跡a1、a2、a3に対応する教師データ251と、異物の移動軌跡Aに対応する教師データ250とを例にして、識別モデル学習部242による処理をより具体的に説明する。なお、識別モデル234の識別クラス数は、説明の便宜上、異物クラスと泡クラスとノイズクラスとの3クラスとする。また、識別モデル234から出力される3クラスのソフトマックス値を、[異物クラスのソフトマックス値、泡クラスのソフトマックス値、ノイズクラスのソフトマックス値]で表記する。また、教師データ251の時系列データ2511-1は移動軌跡a1に、時系列データ2511-2は移動軌跡a2に、時系列データ2511-3は移動軌跡a3に、それぞれ対応しているものとする。
【0075】
先ず、教師データ251による学習について説明する。
【0076】
識別モデル学習部242は、最初に移動軌跡a1に対応する時系列データ2511-1に対する識別モデル234の各クラスのソフトマックス値を取得する(ステップS23)。移動軌跡a1は、比重の重い異物は下方に移動するという異物の特徴を幾分備えているため、泡やノイズのクラスよりは異物のクラスのソフトマックス値の方が大きくなることが予想される。ここでは、例えば[0.5、0.4、0.1]が取得されたとする。識別モデル学習部242は、取得したソフトマックス値と正解ラベル2512([1、0、0])とから時系列データ2511-1に対応する個別損失l1を算出する(ステップS24)。
【0077】
次に、識別モデル学習部242は、移動軌跡a2に対応する時系列データ2511-2に対する識別モデル234の各クラスのソフトマックス値を取得する(ステップS23)。移動軌跡a2は、上方に移動するという泡の特徴を幾分備えているため、異物やノイズのクラスよりは泡のクラスのソフトマックス値の方が大きくなる可能性がある。ここでは、例えば[0.4、0.5、0.1]が取得されたとする。識別モデル学習部242は、取得したソフトマックス値と正解ラベル2512([1、0、0])とから時系列データ2511-2に対応する個別損失l2を算出する(ステップS24)。
【0078】
次に、識別モデル学習部242は、移動軌跡a3に対応する時系列データ2511-3に対する識別モデル234の各クラスのソフトマックス値を取得する(ステップS23)。移動軌跡a3は、下方に移動するという異物の特徴を顕著に備えているため、泡やノイズのクラスよりは異物のクラスのソフトマックス値の方が十分に大きくなることが予想される。ここでは、例えば[0.8、0.1、0.1]が取得されたとする。識別モデル学習部242は、取得したソフトマックス値と正解ラベル2512([1、0、0])とから時系列データ2511-3に対応する個別損失l3を算出する(ステップS24)。
【0079】
次に、識別モデル学習部242は、時系列データ2511-1~2511-3それぞれの重みw1、w2、w3を算出する(ステップS27)。
【0080】
図11の式4の関数f(s)を用いる場合、w
1≒0.278、w
2≒0.278、w
3≒0.444になる。また、
図11の式5の関数f(s)を用いる場合、w
1≒0.208、w
2≒0.208、w
3≒0.583になる。また、
図11の式6の関数f(s)を用いる場合、w
1≒0.102、w
2≒0.102、w
3≒0.795になる。また、
図11の式7の関数f(s)を用いる場合、w
1≒0.299、w
2≒0.299、w
3≒0.403になる。
【0081】
次に、識別モデル学習部242は、教師データ251に関して、重み付き損失Lを算出する(ステップS28)。例えば、
図11の式5の関数f(s)を用いる場合、L=0.208・l
1+0.208・l
2+0.583・l
3になる。
【0082】
次に、識別モデル学習部242は、重み付き損失Lを最小化するように識別モデル234を学習する(ステップS30)。ここで、重み付き損失Lでは、時系列データ2511-3の個別損失l
3の重みが大きく、時系列データ2511-1、2511-2の個別損失l
1、l
2の重みは小さい。そのため、異物の特徴を顕著に備えている時系列データ2511-3は大きな重みで学習され、誤識別となった泡の特徴を備えている時系列データ2511-2や異物の特徴を僅かに備えている時系列データ2511-1は小さな重みで学習されることになる。その結果、
図13に示される移動軌跡a1(時系列データ2511-1に対応)に類似する泡の断片化した移動軌跡c1が異物として識別される識別スコア、および、移動軌跡a2(時系列データ2511-2に対応)に類似する泡の断片化した移動軌跡c2が異物として識別される識別スコアと、移動軌跡a3(時系列データ2511-3に対応)に類似する異物の移動軌跡Bが異物として識別される識別スコアとの差を拡大させるように、識別モデル234を学習することができる。
【0083】
これに対して、重み付けせずに、それぞれの時系列データ2511-1~2511-3を異物として学習すると、移動軌跡a1(時系列データ2511-1に対応)に類似する泡の断片化した移動軌跡c1が異物として識別される識別スコア、および、移動軌跡a2(時系列データ2511-2に対応)に類似する泡の断片化した移動軌跡c2が異物として識別される識別スコアと、移動軌跡a3(時系列データ2511-3に対応)に類似する異物の移動軌跡Bが異物として識別される識別スコアとの差を拡大させるように、識別モデル234を学習することが困難になる。その結果、泡の断片化した移動軌跡c1、c2を異物として高い識別スコアで誤検知する可能性が高くなる。
【0084】
続いて、教師データ250による学習について説明する。教師データ250は、唯1つの時系列データ2501を含む。
【0085】
識別モデル学習部242は、先ず時系列データ2511に対する識別モデル234の各クラスのソフトマックス値を取得する(ステップS23)。異物の移動軌跡Aは、比重の重い異物は最終的には下方に移動するという異物の特徴を備えているため、泡やノイズのクラスよりは異物のクラスのソフトマックス値の方が大きくなることが予想される。ここでは、例えば[0.7、0.2、0.1]が取得されたとする。識別モデル学習部242は、取得したソフトマックス値と正解ラベル2502([1、0、0])とから時系列データ2511に対応する個別損失l1を算出する(ステップS24)。
【0086】
次に、識別モデル学習部242は、時系列データ2511の重みw1を算出する(ステップS27)。教師データ250には唯一つの時系列データしか含まれないので、重みは1になる。
【0087】
次に、識別モデル学習部242は、教師データ250に関して、重み付き損失Lを算出する(ステップS28)。その結果、L=l1になる。
【0088】
次に、識別モデル学習部242は、重み付き損失Lを最小化するように識別モデル234を学習する(ステップS29)。
【0089】
以上のように構成され動作する識別モデル学習部242によれば、浮遊物の断片化した移動軌跡を表すデータが入力された場合であっても浮遊物のクラスを正しく識別することができる学習済みの識別モデル234を獲得することができる。その理由は、識別モデル学習部242は、断片化を想定した1つの教師データ251に属する複数の時系列データ2511-1~2511-3を用いて識別モデル234を学習するためである。
【0090】
また、識別モデル学習部242によれば、スコアの高い誤識別(Overconfidence)を起こし難い学習済みの識別モデル234を獲得することができる。その理由は、識別モデル学習部242は、識別モデル234を用いて1つの教師データ251(グループに対応する)に属する複数の時系列データ2511のそれぞれに対する識別スコアを算出し、その識別スコアの教師データ251内での相対的な高さに依存する損失関数である重み付き損失関数Lを用いて識別モデル234を学習するためである。
【0091】
続いて、判定部243の詳細を説明する。
【0092】
図12は、判定部243の処理の一例を示すフローチャートである。判定部243が
図12に示す処理を開始する時点では、検査対象に係る容器400に封入された液体中に存在する浮遊物の移動軌跡を表す時系列データを含む追跡情報233が記憶部230に保存されている。追跡情報233は、
図4を参照して説明したように浮遊物毎の追跡ID2332と、追跡ID2332に1対1に対応する移動軌跡情報2334とが記録されている。
【0093】
図12を参照すると、判定部243は、検査対象の容器400に係る追跡情報233中の1つの追跡IDに注目する(ステップS41)。次に、判定部243は、注目中の追跡IDに対応する浮遊物の移動軌跡情報2334を学習済みの識別モデル234に入力したときに出力される各クラスのソフトマックス値から、当該浮遊物の識別クラスと識別スコアとを取得する(ステップS42)。例えば、異物クラスと泡クラスとノイズクラスとの3クラスのうち、異物クラスのソフトマックス値が最大であり、その値が例えば0.8であれば、判定部243は、当該浮遊物のクラス=異物クラス、識別スコア=0.8を取得することになる。次に、判定部243は、追跡情報233中の次の1つの追跡IDに注目を移す(ステップS43)。次に、判定部243は、ステップS44を経由してステップS42に戻り、上述した処理と同様の処理を新たに注目した追跡IDに対応する浮遊物の移動軌跡情報2334に対して繰り返す。そして、判定部243は、追跡情報233中の全ての追跡IDに注目し終えると(ステップS44でYES)、ステップS45の処理へと進む。
【0094】
判定部243は、ステップS45において、ステップS42で算出した全ての識別結果のうち、最大の異物クラスの識別スコアsmaxを取得する。次に、判定部243は、この識別スコアsmaxと予め定められた判定閾値sthとを比較し、識別スコアsmaxが判定閾値sthより大きければ、検査対象の容器400には異物が混入しているとする検査結果情報235を作成する(ステップS47)。一方、判定部243は、識別スコアsmaxが判定閾値sthより大きくなければ、検査対象の容器400には異物が混入していないとする検査結果情報235を作成する(ステップS48)。
【0095】
以上説明したように、本実施形態に係る検査システム100によれば、容器400に封入された液体中の異物の有無を精度良く検査することができる。その理由は、断片化に強く、且つ、スコアの高い誤識別を起こし難い学習済みの識別モデル234を用いて検査を行うためである。
【0096】
続いて、本実施形態の変形例について説明する。
【0097】
<変形例1>
図11の式4に示される関数f(s)=sを使用する場合、識別クラス数Nの識別モデル234にN+1番目の余分なソフトマックス成分を持たせてよい。そして、識別スコアsは、その余分なソフトマックス成分の値q
N+1の低さに依存して決定してよい。即ち、識別スコアsは、
図11の式9を用いて算出してよい。この変形例では、識別モデル234は、何れのクラスに分類してよいかどうかの確信がより持てないほど、余分なソフトマックス成分の値をより大きくするように学習される。これにより、例えば異物か否かを識別する場合、識別モデル234が異物か異物でないかが半々であると高い確信度で推定したときの識別スコアsを、確信がないために異物か異物でないかは半々であると出力したときの識別スコアsよりも高くすることができる。
【0098】
<変形例2>
上記実施形態では、識別モデル学習部242は、1つの教師データ毎に、それに対応する重み付き損失Lを最小化するように識別モデル234を学習させた。しかし、2以上の複数の教師データの集合毎に、その集合に属する教師データ毎に算出された重み付き損失Lの平均損失を最小化するように識別モデル234を学習させてもよい。
【0099】
<変形例3>
これまでは、液体中の浮遊物の移動軌跡を表す時系列データから浮遊物のクラスを識別する識別モデルの学習に対して、本発明を適用した。しかし、本発明は、この種の識別モデルに適用を限定されない。例えば、本発明は、動画データに写っている人物の動きから不審人物であるか否かを判定する識別モデルの学習に適用してよい。或いは、本発明は、コンピュータ等の情報処理装置から収集される何らかの時系列データから情報処理装置の異常を検出する識別モデルの学習に適用してよい。或いは、本発明は、静止画に写っているオブジェクトのクラスを識別する識別モデルの学習に適用してよい。
【0100】
[第2の実施の形態]
図14は、本発明の第2の実施形態に係る学習装置500のブロック図である。
図14を参照すると、学習装置500は、学習手段501を備えている。
【0101】
学習手段501は、同一の対象に対応する複数の第1のデータを含むグループと当該グループに対する第1のデータラベルとを含む第1の教師データを用い、未知対象に対応する第2のデータが属するクラスを識別する識別モデル502を学習するように構成されている。また、学習手段501は、上記学習では、識別モデル502を用いて上記第1のデータに対する識別スコアを算出し、上記識別スコアの上記グループ内での相対的な高さに依存する重みによって重み付けされた損失を用いて識別モデル502を学習する、ように構成されている。学習手段501は、例えば、
図2の識別モデル学習部242と同様に構成することができるが、それに限定されない。
【0102】
以上のように構成された学習装置500は、以下のように動作する。即ち、学習手段501は、同一の対象に対応する複数の第1のデータを含むグループと当該グループに対する第1のデータラベルとを含む第1の教師データを用い、未知対象に対応する第2のデータが属するクラスを識別する識別モデル502を学習する。その学習では、学習手段501は、識別モデル502を用いて上記第1のデータに対する識別スコアを算出する。次に、学習手段501は、上記識別スコアの上記グループ内での相対的な高さに依存する重みを算出する。次に、学習手段501は、上記算出した重みを用いて重み付けされた損失を算出する。次に、学習手段501は、上記重み付けされた損失を用いて識別モデル502を学習する。
【0103】
以上のように構成され動作する学習装置500によれば、断片化に強く、且つ、スコアの高い誤識別を起こし難い学習済みの識別モデル502を獲得することができる。その理由は、学習手段501は、識別モデル502を用いて上記第1のデータに対する識別スコアを算出し、上記識別スコアの上記グループ内での相対的な高さに依存する重みによって重み付けされた損失を用いて識別モデル502を学習するためである。
【0104】
以上、上記各実施形態を参照して本発明を説明したが、本発明は、上述した実施形態に限定されるものではない。本発明の構成や詳細には、本発明の範囲内で当業者が理解しうる様々な変更をすることができる。
【産業上の利用可能性】
【0105】
本発明は、識別モデルを学習する分野全般に利用できる。
【0106】
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
[付記1]
同一の対象に対応する複数の第1のデータを含むグループと前記グループに対する第1のデータラベルとを含む第1の教師データを用い、未知対象に対応する第2のデータが属するクラスを識別する識別モデルを学習する学習手段を備え、
前記学習手段は、前記識別モデルを用いて前記第1のデータに対する識別スコアを算出し、前記識別スコアの前記グループ内での相対的な高さに依存する重みによって重み付けされた損失を用いて前記識別モデルを学習する、
学習装置。
[付記2]
前記学習手段は、或る対象に対応する第3のデータと前記第3のデータに対する第2のデータラベルとを含む第2の教師データを入力し、前記第3のデータを複数に分割して得られる複数の部分データと前記第2のデータラベルとから前記第1の教師データを生成するデータ変換手段を有する、
付記1に記載の学習装置。
[付記3]
前記学習手段は、前記第1のデータに対する前記識別スコアの狭義単調増加関数f(s)を前記グループ内の合計値で正規化したものを、前記第1のデータの重みとして算出するように構成されている、
付記1または2に記載の学習装置。
[付記4]
前記狭義単調増加関数f(s)は、前記識別スコアをs、前記識別モデルの識別クラス数をNとするとき、
f(s)=s-1/N
である、
付記3に記載の学習装置。
[付記5]
前記狭義単調増加関数f(s)は、前記識別スコアをs、前記識別モデルの識別クラス数をNとするとき、
f(s)=(s-1/N)2
である、
付記3に記載の学習装置。
[付記6]
前記狭義単調増加関数f(s)は、前記識別スコアをs、前記識別モデルの識別クラス数をNとするとき、
f(s)=exp(s-1/N)
である、
付記3に記載の学習装置。
[付記7]
前記識別モデルの識別クラス数をNとするとき、前記学習手段は、前記識別モデルのN成分のソフトマックス出力の最大値を前記識別スコアに用いる、
付記1乃至6の何れかに記載の学習装置。
[付記8]
前記識別モデルは、何れのクラスであるか確信が持てない場合に値が増加するように学習する特定のソフトマックス出力を有し、前記学習手段は、前記特定のソフトマックス出力の低さの程度を前記識別スコアに用いる、
付記1乃至6の何れかに記載の学習装置。
[付記9]
前記第1のデータは、時系列データである、
付記1乃至8の何れかに記載の学習装置。
[付記10]
前記第1のデータは、観測により得られた対象の移動軌跡を表す時系列データである、
付記1乃至9の何れかに記載の学習装置。
[付記11]
同一の対象に対応する複数の第1のデータを含むグループと前記グループに対する第1のデータラベルとを含む第1の教師データを用い、未知対象に対応する第2のデータが属するクラスを識別する識別モデルを学習し、
前記学習では、前記識別モデルを用いて前記第1のデータに対する識別スコアを算出し、
前記識別スコアの前記グループ内での相対的な高さに依存する重みを算出し、
前記算出した重みを用いて重み付けされた損失を算出し、
前記重み付けされた損失を用いて前記識別モデルを学習する、
学習装置。
[付記12]
コンピュータに、
同一の対象に対応する複数の第1のデータを含むグループと前記グループに対する第1のデータラベルとを含む第1の教師データを用い、未知対象に対応する第2のデータが属するクラスを識別する識別モデルを学習する処理、を行わせ、
前記学習では、
前記識別モデルを用いて前記第1のデータに対する識別スコアを算出する処理と、
前記識別スコアの前記グループ内での相対的な高さに依存する重みを算出する処理と、
前記算出した重みを用いて重み付けされた損失を算出する処理と、
前記重み付けされた損失を用いて前記識別モデルを学習する処理と、
を行わせるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【符号の説明】
【0107】
100 検査システム
110 把持装置
120 照明装置
130 カメラ装置
200 検査装置
300 表示装置
400 容器
401 キャップ