欠陥セグメンテーションモジュールの使用例
本節では、Mech-DLK ランドのデータ(ダウンロード先)を提供し、欠陥セグメンテーションモジュールの使用方法を説明します。欠陥のラベル付け、パラメータ調整、およびトレーニング・検証・往復の流れを通じて、少量のデータで欠陥検出モデルを効率的にトレーニングさせる方法を解説します。
| また、お手元のデータも使用できます。ラベル付けの段階に多少異なりますが、全体の操作はほぼ同じです。 |
事前準備
お手元のデータを使用する場合には、データ収集方法のガイドに従ってデータ収集を完了してください。欠陥が全部はっきり見えるようにデータを収集してください。
-
プロジェクトを新規作成して欠陥セグメンテーションモジュールを追加:Mech-DLK を起動し、ホーム画面のプロジェクトを新規作成をクリックします。保存パスを選択し、プロジェクト名を入力して新しいプロジェクトを作成します。メイン画面の右上にあるモジュールバーで、入力モジュール下の + ボタンをクリックし、モジュール追加ウィンドウで欠陥セグメンテーションモジュールを選択します。
-
画像をインポート:取得した画像データをインポートするか、前述のデータ圧縮ファイルを解凍して使用します。ランドに過剰はんだ、銅線露出、また合格品の画像を含む必要はあります。以下の方法で画像をインポートしてください。
-
方法 1
画像またはフォルダを画像リストにドラッグします。ドラッグによるデータセットのインポートには対応していません。
-
方法 2
画像リストの上のインポート/エクスポートボタンをクリックします。データの種類に応じてインポートオプションを選択します。
-
前のモジュールからインポート:前のモジュールの画像をインポートします。
-
画像をインポート:一枚または複数枚の画像をインポートします。
-
フォルダをインポート:フォルダにある全ての画像をインポートします(サブフォルダー内の画像を除く)。
-
データセットをインポート:Mech-DLK からエクスポートしたDLKDB 形式(.dlkd)のデータセットをインポートします。
-
-
-
ROI 設定:各画像の欠陥位置が近い場合、ROI ツールでモデルトレーニング用の領域を指定できます。これにより背景による干渉を回避できます。このプロジェクトでは、欠陥は全部ランドに位置しているのでツールバーの
をクリックして ROI を設定し、
をクリックして適用します。設定は、全ての画像に適用されます。
-
マスクを使用して干渉を回避(オプション):欠陥領域と欠陥以外の領域とは似ている特徴があり、または重なり合いがある場合にマスクを使用して欠陥認識に影響が出る領域を隠すことができます。過剰はんだとはんだ点とは、外観や反射特性では非常に類似しており、はんだ点は画像内における位置がほぼ一定であるため、下図のようにマスクを全体に使用してはんだ点を隠します。
-
ROI または全部の画像に適用するマスクを使用する時、画像に対象物の位置が一定であることを確認してください。対象物の位置が大きく異なる時に、樹形モジュール調整してください。対象物検出モジュールまたはすばやく位置決めモジュールで対象物の位置決めまたは位置合わせを実行してから、欠陥セグメンテーションを連携してモデルをトレーニングします。
-
できる限りマスクを欠陥以外の領域を全部隠すように設定してください。
-
より詳細なマスク使用方法については、高度な使用例:マスク使用をご参照ください。
-
データのラベル付け
-
クラス新規作成:複数のクラスの作成に対応し、欠陥の特徴に基づいてクラスを作成してラベル付けに使用できます。
-
一部の画像にラベルを付ける:画像をいちいちラベル付けする必要はありません。数枚かの画像にだけ正確なラベルを付ければいいです。トレーニングの手間を軽減し、また潜在的な問題特定にも役に立ちます。例えばここの例では、5枚だけラベル付けします。
-
ラベル付けツールを選択:欠陥がきれいに見えて輪郭もはっきりしているのでスマートラベル付けツールを推奨します。
-
明らかに異なっている欠陥をラベル付け:ラベル付け方法のガイドに従ってください。欠陥の差がある画像を優先的ラベル付けしてください。欠陥の位置や大きさ、形状、色などが明らかに異なっている画像を使用すると汎用性の高いモデルを出力できます。欠陥の輪郭に沿って付けてください。マスクを使用する場合にマスクとラベルを重なり合いのようにしてください。
-
例えば、以下の画像では、欠陥の位置と形状が似ており輝度だけが異なります。なのでその 1 枚だけをラベル付ければいいです。
-
下図では、欠陥の下図も位置も異なっているのでいずれもラベル付けします。
Ctrl を押したままホイールを奥に回せば画像を拡大できます。
-
-
ラベル付き画像をトレーニングセットに追加:ラベル付き画像を全部トレーニングセットに追加します。正確にラベル付けた画像を使用してトレーニングしてください。
-
1枚以上の画像を OK 画像に設定:欠陥無し画像を OK 画像に設定してトレーニングセットに移動します。データリストから欠陥のない画像を選択してから
をクリックするか、右クリックメニューの OK に設定をクリックし後、トレーニングセットに移動をクリックします。
モデルのトレーニング
-
パラメータ設定:トレーニングタブのトレーニングパラメータの右の
をクリックしてパラメータを設定します。モデルトレーニングを参考にして下さい。-
*データ拡張*を設定し、インポートした画像を修正してより多様なデータを取得します。この機能により、データ数が少ない場合にも汎用性の高いモデルを取得できます。ここの例では、以下のように設定します。
-
インポートした画像にある部品の位置、姿勢、照明などは現場とはほとんど変わりませんが、効果のよりいいモデルを取得するために適切にデータを拡張することを推奨します。ただ、欠陥の特徴損失が発生しないようにしてください。この例では、過剰はんだの位置や輝度、形状などは一定ではない、かつ撮影時の照明も差があるため、データ拡張パラメータを設定しなくてもいいです。
-
普通はパラメータ値をあんまり高くしないでください。
-
-
トレーニングパラメータを設定します。一般的なプロジェクトでは、間隔エポックや学習率、GPU ID などは、初期値のままでいいです。
-
欠陥分割が困難で高精度が必要な場合にモデルタイプを高精度にしてください。この例では、欠陥が大きくて輪郭がはっきり見えるので高速度に設定します。
-
入力画像のサイズを調整する時に、欠陥の特徴損失が発生しないようにしてください。画像リストから 1 枚の画像を選択して右クリックメニューの拡大・縮小メニューをクリックすれば画像のスケーリング効果を確認することが可能でう。元画像の欠陥領域とラベル付き画像のラベル領域がはっきり見えたら大丈夫です。
-
入力画像のサイズが小さいほどトレーニングと推論のスピードがアップします。
-
サイズが大きいが画像のほうは、精度のより高いモデルが取得できますがトレーニングと推論の速度は下がります。
-
画像が大きくて欠陥が小さい場合に、グリッド線ツールを使用してください。
-
-
グラフィックスカードに対応できる限り、パッチサイズを大きくすれば推論の速度が上がります。
-
初回のトレーニングを開始する時、エポック数を高くして(500 に設定)ください。これにより、ゆっくりとモデル精度の変化を把握することができます。エポック数をあんまり低くすると最高精度に上らないことがあります。例えばここの例では、一回目のトレーニングにエポック数を 500 に設定します。
-
-
トレーニング実行:パラメータ設定後、トレーニングパラメータのトレーニングをクリックしてトレーニングを開始します。
-
トレーニング状況確認:トレーニングタブからモデルのトレーニング状況をリアルタイムで確認できます。
-
「トレーニングチャート」から状況確認:トレーニングタブのチャートを表示ボタンをクリックしてトレーニングチャートを表示して、曲線の変化から精度の推移を把握します。正確度曲線が全体的に上昇傾向、損失曲線が全体的に低下傾向になると、トレーニングが正常に進行していることになります。
-
実際の状況に応じてトレーニングを中止(オプション):モデルの正確度が要求水準に達した場合、時間節約のため「トレーニングセンター」ボタンをクリックし、タスクリストから対象プロジェクトを選択して
をクリックすると、トレーニングが中止されます。また、トレーニングの完了まで待ち、正確度の推移を観測して初歩的にモデルの効果を評価することもできます。
| エポックを重ねても正確度曲線に上昇傾向が見られない場合は、トレーニングに問題がある可能性があります。トレーニングを中止し、各パラメータ設定を確認した上で、データセットにおけるラベル抜けや誤りの有無をチェックし、修正後にトレーニングを再開してください。 |
モデルの検証
-
モデル検証:トレーニング終了・中止後、検証タブに切り替えて検証ボタンをクリックし、モデルの検証を行います。
-
トレーニングセットのモデル検証結果を確認:検証終了後、検証タブの検証統計から検証の結果を確認できます。
-
詳細レポートをクリックして詳細レポートウィンドウを開いて詳細な結果データを確認します。
-
レポートのラベル付け結果マッチングには、モデル推論(検証)の結果と手動ラベルとのマッチング関係を示します。
-
表の縦は手動で付けたラベル、横は推論の結果です。青いセルは両方が一致していることを示します。その他のセルは不一致が存在することを示しており、モデル最適化の参考になります。
-
セルのデータをクリックすると、ソフトウェアのメイン画面の画像リストに対応する画像のみが表示されます。
検証結果に見逃しや誤検出がある場合、トレーニング効果を改善する必要があります。ラベル付けをチェックしてトレーニングパラメータを調整してから再トレーニングを行ってください。 詳細レポートウィンドウの右下にあるレポートをエクスポートボタンをクリックし、サムネイルレポートまたは完全画像レポートをエクスポートすることが選択できます。
テストセット内の見逃しや誤検出がある画像を全て手動的にラベル付けしてトレーニングセットに移動する必要はありません。一部の画像を追加でラベル付けしてトレーニングセットに加えてモデルを再トレーニング・検証します。残りの画像は検証の参照として使用されます。 -
-
再トレーニング:新たにラベル付けした画像をトレーニングセットに追加してから、トレーニングボタンをクリックして、再トレーニングを開始します。
-
モデル検証結果の再チェック:再トレーニング終了後、再び検証ボタンをクリックしてモデルの検証を行い、各データセットにおけるモデルの検証結果を確認します。
-
モデルの微調整(オプション):開発者モードをオンにしてトレーニングパラメータ設定でモデルを微調整することが可能です。詳細な説明は、モデルの追加学習をご参照ください。
-
モデルの最適化:モデルが使用要件を満たすまで上記の手順を繰り返します。
モデルのエクスポート
モデルをエクスポートをクリックします。表示されたウィンドウで保存場所を指定し、モデルをエクスポートをクリックします。
エクスポートされたモデルは Mech-Vision とMech-DLK SDK、Mech-MSR に使用できます。クリックして詳細な説明を確認します。