難題の対処法

以下の方法でトレーニング、推論の速度とモデルの精度を改善できます。

データセットの種類を確保

モデルトレーニングのデータに現場のあらゆる状況を反映する必要がありますが、現場では、異なる角度や移動範囲を反映する画像を全部取得するのは困難です。その場合、データ拡張 を通して、元画像に基づいてより多様なデータを生成します。

データ拡張パラメータの調整

../../_images/data_augmentation.png

注意

現場の状況に合わせてデータ拡張を実行してください。例えば、ワークの回転が発生しない現場で、回転のパラメータを入れるとモデルの精度が落ちます。

輝度

画像の明るさです。顕著な照明変化が伴う場合、輝度の範囲を調整し、異なる照明環境のデータセットを作成します。

コントラスト

画像の明暗の差です。対象物が背景に溶け込む場合、コントラスト を調整して、はっきり分離できるようにします。

並進

画像の全てのピクセルに指定したオフセットで移動します。物体(箱やパレットなど)の位置が大幅に変わる場合、このパラメータで縦と横方向の並進量を調整します。

回転

画像がある点を中心に一定の角度回転して新たな画像になります。対象物の姿勢変化が大きい場合、 ニーズに応じて様々な角度回転した画像データを作成します。普通、初期値を使用すればいいです。

スケーリング

画像をある比例で縮小、拡大します。対象物が配置されている高さの変化が大きい場合、このパラメータを調整して異なる高さで撮影する対象物の画像を生成します。

左右反転

画像が左右 180° 反転します。対象物が左右対称する場合、この設定をオンにします。

../../_images/flip_horizontally.png
上下反転

画像が上下 180° 反転します。対象物が上下対称する場合、この設定をオンにします。

../../_images/flip_vertically.png
ラベル膨張

画像にラベルを付けた欠陥領域を拡大します。「欠陥セグメンテーション」モジュールにのみ対応できます。普通は使用しませんが、欠陥の寸法が小さい場合に使用できます。

モデルトレーニングの速度と精度を向上

普通はデフォルトのパラメータ値を使用すればいいです。モデルトレーニングの速度と精度を向上されるには、トレーニングパラメータ を調整して改めてモデルトレーニングを実行することができます。

トレーニングパラメータの調整

../../_images/training_parameters.png
入力画像のサイズ

トレーニングを実行するときにニューラルネットワークに入力する画像の寸法(単位はピクセル)です。デフォルトの設定を使用すればいいです。図像にある物体または欠陥領域が小さい場合、入力画像のサイズ を大きく調整する必要があります。画像の寸法が大きいほどモデルの精度は高くなりますがトレーニングの速度も遅くなります。

バッチサイズ

ニューラルネットワークのトレーニングを実行するたびに使用するサンプル数です。デフォルトの設定を使用すればいいです。トレーニングの速度を向上させるにはこのパラメータ値を大きく調整します。ただし、あまり大きく調整したらメモリ使用量も高くなります。

モデルタイプ

「欠陥セグメンテーション」モジュール:

  • 標準:普通は 標準 モードを使用することを推奨します。

  • 拡張:モデルの効果が良くないまたは高い精度が求められる場合に使用します。ただし、このモードではトレーニングの速度が遅くなります。

「インスタンスセグメンテーション」モジュール:

  • 標準(GPU を推奨):モデルを GPU で推論実行するときに使用します。

  • 軽量(CPUを推奨):モデルを CPU で推論実行するときに使用します。

評価間隔

モデルトレーニング時、毎回評価するまで実行するトレーニングのエポック数です。評価間隔が大きいほど評価する回数は少なくなり、トレーニングのスピードも速くなります。

エポックの合計数

通常はデフォルト設定を使用しても構いません。対象物の特徴が複雑な場合、この数を増やしてください。モデルはより良く収束しますが、一方で学習時間が長くなります。

注意

エポック合計数が大きいほど効果は良くなるわけではありません。合計数が大きすぎると過学習が起きるかもしれません。

学習率

学習率は 1 回のトレーニングでニューラルネットワーク内の重みやバイアスを更新する量の調整値です。デフォルトの設定を使用することを推奨します。チャートの損失曲線がゆっくりと収束する場合は、学習率 を適切に上げます。曲線の変化が激しい場合は下げます。

GPU ID

お使いのデバイスのグラフィックスカード情報です。複数の GPU がある場合、それを指定することもできます。

モデルの簡略化

デフォルトではチェックしません。トレーニングセットが簡単な場合、これをチェックしてトレーニングと推論の速度を向上させます。

モデルの微調整

トレーニング済みモデルの微調整

前回のトレーニングの最適モデルに基づいてトレーニングを実行します。時間の削減に役立ちます。

スーパーモデルの微調整

既存のスーパーモデルに基づいて微調整を行います。既存のスーパーモデルを選択してからモデル予測の効果が良くない画像を追加してトレーニングを実行すれば時間の削減に役立ちます。

スーパーモデル:段ボール箱のスーパーモデルは クリックでダウンロード

モデル微調整のパラメータ

../../_images/model_finetuning.png

モデル推論の速度と精度を向上

デプロイ設定 のパラメータを調整します。

デプロイ設定のパラメータを調整

../../_images/deployment_settings.png
バッチサイズ

ニューラルネットワークのトレーニングを実行するたびに使用するサンプル数です。デフォルトの設定を使用すればいいです。「欠陥セグメンテーション」モジュールでは、画像の寸法が大きくて欠陥領域が小さい場合、このパラメータ値を適切に大きく調整すると速度をあげられます。ただし、メモリ使用量が高くなります。

浮動小数点精度
  • FP32:モデルの認識精度は高くなりますが、推論速度は遅くなります。

  • FP16:モデルの認識精度は低くなりますが、推論速度は速くなります

画像前処理のデバイス
  • GPU:モデルを使用して推論を実行する前に画像データを処理する場合に、GPU を使用することを推奨します。

  • CPU:画像の寸法が大きくて画像前処理の速度を向上させる場合に、CPU を使用することを推奨します。

エクスポートするモデルタイプ
  • dlkmo:このタイプは、エクスポートする前の最適化に約5分間かかり、モデルトレーニングと推論にそれぞれ異なるグラフィックスカード型番を使用することができます

  • dlkmt:このタイプは最適化せずに直接エクスポートすることができますが、トレーニングと推論に使用するグラフィックカード型番は一致しなければなりません

GPU ID

モデルの推論を実行するデバイスのグラフィックスカード情報です。複数の GPU がある場合、それを指定することができます。