トレニンーグに必要なデータを取得する

注意

ディープラーニングプロジェクトでは、最も重要なのはデータの取得です。モデルの最終的な効果は、トレーニング済みデータの品質に大きく依存します。高品質のデータセットを使用すれば、モデルトレーニングの品質と予測精度を向上させることができます。

データ取得環境を整備する

  1. 露出過度、露出不足、色ずれ、ぼやけ、遮蔽 などを避けてください。これらが発生したら、ディープラーニング・モデルに必要な特性がなくなり、モデルの効果に差し支えます。

    ../../../_images/1_overexposed1.png
    ../../../_images/2_darker_lighting.png
    ../../../_images/3_color_distortion.png
    ../../../_images/4_obscure.png
    ../../../_images/5_occluded.png
  2. 取得するデータの 背景、視角、高さ が実際の応用と一致するようにしてください。いかなるズレがあっても、実際応用のディープラーニングの効果が低下し、改めてデータを取得しなければならないこともあります。したがって、必ず事前に実際応用の状況をご確認ください。

    ../../../_images/6_background_inconsistent.png
    ../../../_images/7_field_mismatch.png
    ../../../_images/8_height_mismatch.png

取得する画像枚数

  • 対象物が単一種類である場合、約50枚画像を取得します。

  • 対象物が多種類ある場合、各種類に対して約 30 枚を取得します。取得合計数は、「30 * 種類」です。

  • 上記は一般的な数で、業界の代表的な応用ではより詳細な基準があります。詳しくは、 代表的なプロジェクトのデータ取得の実例 をご参照ください。

注意

トレーニングデータが少なすぎると、モデルに必要なサンプルは足りません。それに基づいてフィッチングされたデータを使用すれば、ディープラーニングモデルを効果的にトレーニングすることができなく、テストのエラー発生率も高くなります。一方、データが多すぎると、トレーニングの速度が遅くなります。以上のことから、必ず適切に取得してください。

取得時の物体姿勢

物体の様々な配置状況に対して、取得要件に応じて合理的に取得する必要があります。たとえば、生産現場では、供給するワークは水平方向と垂直方向があるとします。水平方向のデータだけを取得してトレーニングすれば、垂直方向のワークに対する認識効果は保証できません。また、単一ワークのデータだけを取得すれば、積み重ねられて遮蔽されたワークに対する認識効果も保証できません。なので、データを取得するときは、 実際の生産現場の様々なシーンを含める 必要があります。詳しくは:

  • 取得したデータに、実際の応用シーンにありうる 物体の向き が含まれていることを確認してください。

  • 取得したデータに、実際の応用シーンにありうる 物体の位置 が含まれていることを確認してください。

  • 取得したデータに、実際の応用シーンにありうる 物体間の関係 が含まれていることを確認してください。

注意

ある状況の取得が脱落したら、その状況のディープラーニングは実行できず、認識することもできません。エラー発生率を下げるために状況に応じてデータサンプルを追加してください。

  1. 物体の向き

    ../../../_images/9_different_towards.png

    異なる面が上向き

  2. 物体の位置

    ../../../_images/10_different_situations.png

    ボックスの中央、端、コーナーにある

    ../../../_images/11_different_layers.png

    パレットの異なる段にある

  3. 物体間の関係

    ../../../_images/12_different_positions.png

    接触しない、積み重ね

    ../../../_images/13_different_positions.png

    密接

Mech-Visionを使用してデータを取得する

上記の取得環境、取得数、取得時の物体配置状況を確認した後、Mech-Visionで下図に示すプロシージャを構築してデータを取得できます。ステップの使用については、 capture_images_from_camera をご参照ください。

../../../_images/step_combination.png

プロジェクトにおけるデータ取得の実例

  1. ある金属部品のプロジェクトでは、対象物は単一種類なので、画像を50枚取得します。物体の向きについては、平らに放置しているものもあれば、横に立っているものもありますので、取得するときにこれを考慮に入れます。物体の位置については、ボックスの中央、端、コーナーにある状況や高さも考慮する必要があります。物体間の関係については、積み重ねる状況に加えて、一部が平行に並んでいる状況を考慮する必要があります。実際に取得された画像は以下のとおりです。

    ../../../_images/14_metal_part_placement_status.png

    少量のバラ積み物体(左上)/ 集中のバラ積み物体(右上)/ 積み重ねる物体(左下) / 集中のバラ積み物体(右下)

    ../../../_images/15_metal_part_poses.png

    平らに放置 / 横に立っている / 積み込める / 並んで放置

  2. ある日用品プロジェクトでは、7種類の物体があって、これらを分類します。物体特性のデータを完全に取得するには、「単一種類の物体が異なる向きに配置される」と「複数種類の物体が混合配置される」の状況を考慮する必要があります。単一種類物体の画像を取得する際、取得枚数は「5 * 種類数」です。複数種類の物体の画像を取得する際、取得枚数は「20 * 種類数」です。物体の向きについては、平らに配置され、横に立ち、傾いているという姿勢があり、取得するときはいちいち考慮する必要があります。物体の位置については、ボックスの中央、端、コーナーにある状況も全部考慮します。物体間の関係については、積み重ねのほかに、平行に並んでいる、密接するなども考慮する必要があります。実際に取得された画像は以下の通りです。

    単独放置:

    ../../../_images/16_singel_class_subject_positions.png

    ボックスのコーナーにある(左上)/ 密接(右上) / 密に積み込まれ(左下)/ 少量のバラ積み物体(右下)

    混合放置:

    ../../../_images/17_mix_classes_subject_positions.png

    密に積み込まれ / ボックスのコーナーにある / バラ積み

  3. あるトラックシューズのプロジェクトでは、複数型番の部品があるため、画像の取得枚数は「30*型番の数」です。物体の向きについては、正面が上向き状況のみを考慮します。物体の位置については、配置方式は同じく、高・中・低層の画像データをそれぞれ取得する必要があります。物体間の関係については、規則的に配置されいるため、密接した部品に注意を払う必要があります。実際に取得された画像は以下の通りです。

    ../../../_images/18_different_layers.png

    異なる高度の視野(高、中、低)

  4. ある金属部品のプロジェクトでは、部品が一層に並んでいるので、50枚の画像を取得します。物体の向きについては、正面が上向きの画像だけを取得します。物体の位置については、ボックスの中央、端、コーナーに位置する画像を取得します。物体間の関係については、密接した状況を考慮する必要があります。実際に取得された画像は以下の通りです

    ../../../_images/19_different_situations.png

    段ごと / ボックスの端にある / ボックスのコーナーにある

  5. ある金属部品のプロジェクトでは、物体が規則的に多層に積み重ねられているため、30枚の画像を取得します。物体の向きについては、正面が上向きの状況だけを考慮する必要があります。物体の位置については、ボックスの中央、端、コーナーに位置する画像と高・中・低層の画像を取得します。物体間の関係については、密接した状況を考慮する必要があります。実際に取得された画像は以下の通りです。

    ../../../_images/20_different_layers_positions.png

    高層にある(左上) / 少量で高層にある(右上) / 低層にある段ごと(左下) / ボックスの端にある(右下)