신경망 학습

모든 뷰가 정확하게 라벨링되었으며 학습 이미지와 테스트 이미지로 나뉜 후에, 신경망 학습은 다음 방법으로 실행됩니다:

  1. 도구 매개변수를 설정한 후 학습을 시작합니다. 두뇌 아이콘을 눌러 도구를 트레이닝하십시오. 아키텍처가 Focused일 때, 학습에 이용되는 이미지 Set(학습 Set 대화 상자에서 정의됨)의 각 이미지는 지정된 feature 크기를 이용해 전체 범위에서 샘플링됩니다.
  2. 그 결과의 샘플이 VisionPro Deep Learning의 딥 신경망에 입력됩니다.
  3. 각 샘플마다, 신경망은 특정 응답(도구 유형에 따라 다름)을 생성하며, 이 응답은 학습 이미지 내 샘플의 위치에 연결된 이미지 라벨과 비교됩니다.
  4. 샘플이 프로세싱되고 다시 프로세싱되면서 네트워크 내의 최초 가중치는 반복적으로 조정됩니다. 네트워크 트레이닝 시스템은 지속적으로 네트워크 가중치를 조정하는데, 목표는 네트워크의 응답과 사용자가 제공한 라벨 간의 오류(차이 또는 격차)를 줄이는 것입니다.
  5. 전체 프로세스는, 모든 트레이닝 이미지의 모든 샘플이 Epoch 횟수에 지정된 횟수 이상 포함될 때까지, 여러 번 반복됩니다.

 

 

  1. 샘플링 영역.

  2. 사용자가 작성한, 라벨이 지정된 결함 영역.

  3. 신경망.

  4. 네트워크의 응답.

  5. 라벨링 된 결함 (노란색)과 네트워크 응답 (파란색) 간의 불일치, 즉 오류를 줄이기 위해 가중치를 조정하는 반복 프로세스입니다.

 

신경망 학습의 구체적인 특징은 트레이닝 중인 도구 유형에 따라 다릅니다. Blue 위치 도구 네트워크 트레이닝의 목표는 사용자의 이미지 라벨에 의해 정의된 실제 feature pose 및 ID와 검출된 pose 및 ID 간의 차이를 줄이는 것입니다. Blue 위치에서 신경망은 이미지 안의 feature를 찾고 식별하도록 학습됩니다. 사용자가 수행한 Blue 도구 라벨은 이미지 내에서, 관심 대상인 모든 feature의 위치와 ID를 식별합니다. 이미지 내의 주어진 샘플링 영역에 대한 트레이닝의 목표는, 네트워크가 해당 샘플링 영역에 있는 모든 feature의 pose를 정확하게 반환하는 것입니다. 샘플링 영역에 feature가 포함되어 있지 않다면, 네트워크는 해당 샘플에 대해 아무런 응답을 생성하지 않을 것입니다.

 

  • 샘플링 영역과 샘플링 매개변수

    샘플링 영역은 사용자들이 샘플링 매개변수를 조정해 결정하며, Blue 위치은 이 샘플링 영역에 기반한 샘플러로 픽셀을 샘플링합니다. 따라서 학습을 시작하기 전에 샘플링 매개변수를 설정하여 샘플링 영역을 결정해야합니다. 샘플링 영역에 feature 픽셀이 포함되어 있지 않다면, 네트워크는 아무런 응답을 생성하지 않을 것입니다.

  • 검증(Validation)을 활용한 트레이닝

    Blue 위치는 validation을 활용한 트레이닝을 지원하지 않으며 따라서 validation 데이터 세트가 없고 도구 매개변수에서 validation 세트를 설정할 필요가 없습니다. validation 데이터를 사용하는 이유는 트레이닝된 각 신경망을 검증(validate)하여 그 검증 결과를 가지고 주어진 트레이닝 세트에서 가장 안정적이며 높은 성능을 보이는 신경망을 선택하는 것입니다.

 

도구 매개변수 설정

Deep Learning 도구를 추가하고 나면, 학습에 앞서 도구 매개변수에 액세스해 도구의 성능을 조정하고, 런타임 작업 중에 도구가 이미지를 어떻게 프로세싱할지 조정할 수 있습니다. VisionPro Deep Learning 도구 매개변수들은 신경망 모델이 트레이닝되는 과정과 도구가 통계값을 계산하는 과정을 제어합니다.대부분의 응용 프로그램에서 조정할 수 있는 공통적인 매개변수는 다음과 같습니다.

  • Feature Size(Feature 크기)
  • 트레이닝 셋
  • 변화
  • Sampling Density(샘플링 밀도)

 

Tip: 일반적으로 매개변수 기본값 설정이 대개의 이미지 Set에 잘 적용됩니다. 최초 트레이닝 시에는, feature 크기 매개변수를 설정하는 이외에 다른 매개변수를 조정하지 말고 트레이닝해 보십시오.

 

아키텍처 매개변수

아키텍처 매개변수는 사용할 신경망 모델 종류를 결정합니다. 이 옵션은 학습과 프로세싱이 더 오래 걸려도 더 정밀한 결과를 얻고 싶을 때 유용합니다. High Detail과 High Detail Quick 아키텍처는 도구가 이미지 전체를 동일하게 고려하는 반면, Focused 모드는 이미지에서 유용한 정보가 있는 일부분에만 집중합니다. 그러므로, Focused 모드는 네트워크가 정보를 놓칠 수 있으며, 특히 이미지 전체에서 중요한 세부 사항이 있을 경우 그 가능성이 큽니다.

 

네트워크 모델 매개변수

네트워크 모델 매개변수를 이용하면 트레이닝된 도구 네트워크의 크기를 줄일 수 있으며, 이렇게 하면 프로세싱에 필요한 시간이 줄어듭니다. 기본값('대')은 표준 도구 행태 및 성능을 유지합니다. 다른 두 가지 값('소' 및 '중')을 런타임 실행이 점진적으로 빨라집니다.

대 이외의 값을 선택하면 도구의 결과가 달라질 수 있습니다. 대개 이 차이는 크지 않지만, 이 옵션을 이용할 때는 사용자의 라벨 지정 데이터를 이용해 도구 성능을 확인해야 합니다.

 

트레이닝 매개변수

트레이닝 도구 매개변수는 트레이닝 과정을 제어합니다. 도구를 트레이닝한 후 트레이닝 도구 매개변수를 변경한다면, 해당 트레이닝이 무효화되고 해당 도구를 다시 트레이닝해야 합니다.

매개변수 설명

트레이닝 셋

학습 세트 대화 상자를 띄웁니다. 새로운 학습을 시작할 때마다 신경망의 학습 샘플로 무작위 선택할 샘플 Set 및 라벨 지정된 이미지의 백분율을 지정하는 데 이 대화 상자를 이용합니다.

Epoch 횟수

트레이닝 중 수행할 최적화의 반복 횟수를 지정합니다. 응용 프로그램의 복잡도가 제한적이거나, 다양한 매개변수 설정을 테스트하기 위해 품질이 낮은 모델이 유용한 경우에는 이 값을 낮출 수 있습니다.

Epoch는 전체 학습 세트를 신경망에 넘겨주는 것을 지칭하는 용어입니다.

해당 도구들은 트레이닝 이미지 Set 데이터를 대략 50회 정도 보아야 합니다(그리고 정밀 조정 영역에 있어야 합니다). 따라서 50이 기본 설정이며, 이는 일반적으로 대부분의 표준 응용 프로그램에 충분합니다.

더 적은 epoch을 사용하도록 선택하면 신경망이 트레이닝에 갇히거나 문제를 정확하게 해결할 수없는 반면 너무 많은 epoch는 결과를 과적합 (일명 오버 트레이닝) 할 수 있습니다. (즉, 학습 이미지만 학습합니다, 학습된 이미지 이외의 것은 무효로 간주됩니다.) 트레이닝 이미지 Set를 이용해 일반화될 때까지 네트워크를 트레이닝하는 것이 중요합니다. Epoch를 지나치게 늘리면, 트레이닝 이미지 Set를 오버피팅 또는 오버트레이닝할 위험을 감수해야 합니다.

Tip:
  • 트레이닝 이미지 Set에 이미지가 많거나, 트레이닝 이미지 Set의 이미지 크기가 feature 크기에 비해 크다면, Epoch 횟수 설정을 늘려야 할 수도 있습니다.
  • 트레이닝 이미지 Set가 매우 작다면 오버피팅의 위험이 있습니다. 트레이닝 이미지 Set가 크고 네트워크가 Set 내 모든 샘플을 다루는 경우, 트레이닝 이미지 Set가 작고 네트워크가 그 샘플 Set에 들어 있는 경우보다 네트워크가 훨씬 더 일반적입니다.

 

학습 매개변수 상세 정보: Epoch 횟수

Epoch 횟수 매개변수를 이용하면 네트워크 개선을 얼마나 할지 제어할 수 있습니다. 신경망 학습 항목에 설명된대로 학습 프로세스는 네트워크를 통해 입력 샘플을 반복적으로 처리하고 네트워크 결과를 사용자 제공 레이블과 비교 한 다음이 오류를 줄이기 위해 네트워크 가중치를 조정합니다. 네트워크 노드의 수와 이에 따른 가중치의 수가 많으므로, 이 과정은 거의 무한하게 반복되며, 각 반복 단계마다 점진적으로 오류가 개선됩니다. Epoch 횟수 매개변수 설정을 늘리면, 수행하는 트레이닝의 반복 회수가 늘어납니다. 이렇게 하면 이미지 트레이닝 시간이 늘어나는 대신 트레이닝의 네트워크 오류가 줄어듭니다.

하지만, 트레이닝에 사용되는 이미지만이 아니라 모든 이미지에 대해 정확하게 수행하는 것이 네트워크 트레이닝의 목적입니다. Epoch 횟수가 늘어나면, 네트워크는 오버피팅(VisionPro Deep Learning 용어)이 발생할 수 있는데, 이는 학습된 이미지의 오류가 줄어들면서 동시에 학습되지 않은 이미지의 오류가 늘어나는 현상입니다. 이러한 이유로, Epoch 횟수를 조정하면서 모든 이미지에 대한 네트워크 성능을 주의 깊게 지켜봐야 합니다. 데이터셋마다 최적 값이 다르고, 특히 데이터셋의 통계적 다양성에 따라 최적값이 다르기 때문에, 사용하는 데이터셋에 맞는 최적 Epoch를 선택해야 합니다.

 

변화 매개변수

VisionPro Deep Learning 신경망은 이미지 내에서 실제로 보이는 feature만을 학습하도록 트레이닝할 수 있습니다. 이상적인 세계에서는, 트레이닝 이미지 Set가 정상적인 이미지와 부품 변동을 모두 표현할 수 있는 대표적인 이미지 Set가 될 것입니다. 하지만, 대개의 경우 대표성이 없는 이미지 Set로 트레이닝을 해야 합니다. 특히, 이미지 Set는 단기간에 수집되므로, 시간에 따른 정상적인 부품과 조명의 변동, 카메라의 광학적, 외부적 특성의 변경 또는 조정 등은 반영되지 않는 경우가 많습니다.

VisionPro Deep Learning 트레이닝 시스템에서 사용자는 다음과 같은 변화 매개변수를 이용해 실제 작업 중 예상되는 외관 변동을 지정함으로써, 이미지 Set을 보완할 수 있습니다:

  • Luminance(밝기)
  • Contrast(명암대비)
  • Rotation (회전)
  • Scale(크기)

 

변화 매VisionPro Deep Learning개변수를 이용하면, 도구가 인공적으로 트레이닝할 이미지를 생성하므로, 변화량이 큰 응용 프로그램의 결과를 개선할 수 있습니다. 다음 매개변수들은 모든 도구에 공통입니다. 변화 매개변수는 결합할 수도 있습니다. 이렇게 하면 매개변수를 별개로 이용하거나 결합하여 이용함으로써 더욱 복잡한 이미지를 생성할 수 있습니다.변화 매개변수들은 여러 종류를 함께 사용할 수도 있습니다. 이렇게 하면 매개변수를 별개로 이용하거나 결합하여 이용함으로써 더욱 복잡한 이미지를 생성할 수 있습니다.

Tip: 학습 세트에 런타임 중 나타날 수 있는 변동이 포함되어 있지 않다면, 변화 매개변수를 이용할 수 있습니다. 예를 들어, 부품이 +/-45도 회전할 것으로 예상된다면, 회전 매개변수를 설정할 수 있으며, 이렇게 하면 소프트웨어는 학습 중에 해당 각도만큼 이미지를 회전할 것입니다. 하지만 Cognex는 최선의 결과를 얻기 위해 실제 부품 변동의 샘플 이미지를 이용하도록 권장합니다. 부품이 회전하면, 음영이 달라지며, 인위적으로 이미지를 돌린 회전에서는 이러한 음영의 차이가 도구에 캡처되지 않기 때문입니다.
Note: 변화로는 실제 이미지를 수집하고 트레이닝하는 것을 대체할 수 없습니다. 특히, 이미지 변화는 실제 부품의 외관 또는 장면의 실제 변화를 대략적으로 나타내는 이상이 될 수 없습니다.

 

각 변화 유형별로, 사용자는 변동의 범위를 지정할 수 있습니다.

매개변수 설명

Rotation (회전)

가능한 방향을 지정해, 회전 각도 변동을 유도할 구간별 균등 분포를 정의합니다([0°,0°]로 설정하면 회전 변화가 적용되지 않습니다).

예를 들어, [-10°, 10°] 또는 [170°, 190°]로 설정하면, -10도에서 10도 사이, 또는 170도에서 190도 사이의 부품이 검출됩니다. 이러한 설정은 부품의 방향을 정규적인 방향으로 지정하거나 작은 각도의 변동이 있으면서 위 아래가 바뀌지만 그 사이는 아니게 지정할 수 있는 경우에 특히 유용합니다.

Scale(크기)

1을 평균으로 하는 정규 분포를 지정하여 크기의 변동 요인을 추출합니다(0%로 설정하면, 적용되지 않습니다).

예를 들어, 크기를 100%로 설정하면, 원래 이미지 크기의 반부터 두 배까지(원래의 0.5x부터 2.0x까지)의 이미지를 제공합니다.

기존 = 가능한 변화 =

Aspect-Ratio(종횡비)

1을 평균으로 하는 정규 분포를 지정하여 종횡비의 변동 요인을 추출합니다(0%로 설정하면, 적용되지 않습니다).

Shear(기울이기)

1을 평균으로 하는 정규 분포를 지정하여 기울이기의 변동 요인을 추출합니다(0%로 설정하면, 적용되지 않습니다).

Flip(반전)

샘플링 중 이미지의 무작위 반전을 수직, 수평, 수직/수평 모두 중 어느 방향으로 할지 선택합니다. 이는 개체 또는 표면에 해당 대칭성이 있을 때 유용합니다.

이 설정을 이용하면 트레이닝 데이터 양을 크게 늘릴 수 있습니다.

수평
수직
둘 모두

Luminance(밝기)

1을 평균으로 하는 정규 분포를 지정하여 밝기의 변동 요인을 추출합니다(0%로 설정하면, 적용되지 않습니다)..

Contrast(명암대비)

1을 평균으로 하는 정규 분포를 지정하여 명암대비의 변동 요인을 추출합니다(0%로 설정하면, 적용되지 않습니다).

Invert Contrast(대비 반전)

트레이닝 샘플에 명암대비 반전을 시뮬레이션하기 위해 무작위로 명암대비를 반전할지 여부를 선택합니다.

Note: 명암대비 반전 매개변수를 이용하려면 전문가 모드를 이용해야 합니다. 이는 도움말 메뉴에서 활성화합니다.

 

변화 매개변수 상세 정보: "스케일 변화" 또는 "방향" 매개변수 (Features 매개변수)가 활성화되었을 때

Features 매개변수스케일 변화 매개변수가 활성화되고 균일로 설정되면, 스케일 변화 매개변수가 사라지고 크기 범위 프로세싱 매개변수가 추가되어 스케일을 런타임 시 조정할 수 있습니다.

스케일 변화 매개변수가 활성화되고 비균일로 설정되면, 크기종횡비 변화 매개변수가 제거되고, 크기 범위종횡비 프로세싱 매개변수가 추가되어, 런타임 중 수정할 수 있습니다.

방향 매개변수가 활성화되면, 회전 변화 매개변수가 제거되며 각도 범위 프로세싱 매개변수가 추가되어, 런타임에 방향을 수정할 수 있습니다.

Note: 스케일 변화 매개변수에 관한 자세한 내용은 스케일 조정됨를 참조하십시오.
Note: 방향 매개변수에 관한 자세한 내용은 방향 있음를 참조하십시오.

 

마지막으로 사용한 매개변수 복원: 매개변수 복원

매개변수 복원 버튼은 도구 파라미터 값을 마지막 트레이닝 작업에서 선택했던 값으로 쉽게 되돌릴 수 있도록 설계되었습니다. 마지막 트레이닝 시 사용된 도구 파라미터의 값을 기억합니다. 값을 변경하고 이 변경 사항을 되돌리려면 버튼을 클릭하여 마지막 트레이닝 시 사용된 도구 파라미터 값으로 돌아갈 수 있습니다. 다만, 도구를 트레이닝 한 적이 없거나 도구 파라미터 값의 초기 세팅에서 변경 사항이 없으면 비활성화 상태로 유지됩니다.

다음은 매개변수 복원의 작동 방식을 설명합니다:

  1. 현재 도구가 트레이닝 되지 않은 경우에는 매개변수 복원 버튼은 비활성화 상태로 유지됩니다.

  2. 현재의 도구가 학습이 이루어지고, 파라미터의 값을 변경하면 버튼이 활성화됩니다. 파라미터 원복의 체크 포인트가 마지막 트레이닝 시의 파라미터 값으로 설정됩니다.

  3. 매개변수 복원 버튼을 클릭하면 변경된 파라미터는 체크 포인트 값으로 되돌아 갑니다.

  4. 파라미터를 일부 변경하여 현재 도구를 다시 트레이닝 하면, 파리미터 원복의 체크 포인트가 변경된 트레이닝 값으로 업데이트됩니다. 다시 말하면, 도구 매개 변수의 값을 다시 변경하지 않으면 버튼이 비활성화됩니다.

  5. 다른 변경을 한 후 매개변수 복원 버튼을 다시 클릭하면 변경된 값이 업데이트 된 체크 포인트 값으로 되돌아 갑니다.

프로세싱 파라미터의 값을 변경한 후 트레이닝한 도구를 다시 프로세싱(만)하면 파라미터 원복의 체크 포인트가 업데이트되지 않으므로 매개 변수 복원이 활성화됩니다. 체크 포인트는 트레이닝이 완료된 후에만 업데이트됩니다.

비 활성화

활성화

Note: 마지막 트레이닝 시의 값으로 복원할 수 없는 파라미터는 다음과 같습니다.
  1. 변경하면 도구가 리셋되는 비가역적 파라미터

    1. 네트워크 모델, 배타적, Feature 크기, 마스킹 모드, 컬러, 원형대칭, 스케일 변화, S스케일 변화 모드 (균일/비균일), 레거시 모드, 방향, 디테일

  2. 본질상 이 매개변수들은 비가역적임

    1. 낮은 Precision, Simple Regions

  3. 기타 비가역적 매개변수들

    1. 트레이닝 Set, Green 분류 High Detail 및 Green 분류 도구 High Detail Quick 모드의 히트맵 (이 파라미터는 성능에 영향을 주지 않음)

    2. 읽기 도구에서 마스킹 모드의 Overlay 파라미터

 

신경망 트레이닝 제어

Blue 위치 학습은 도구 매개변수와 학습 세트를 설정함으로 조정할 수 있습니다.

 

트레이닝 셋

네트워크 학습 단계에 가장 큰 영향을 미치는 요소는 학습 Set 구성입니다. 네트워크 학습 단계를 제어하는 최선의 방법은 해당 도구에 대한 적절한 학습 Set를 구축하는 것입니다. 이렇게 함으로써, 해당 도구가 이미지/뷰를 적절히 일반화하는지 여부를 판단할 수 있도록 이미지/뷰를 범주로 분류할 수 있습니다.

Note: 트레이닝과 프로세싱 속도를 높이는 방법은 속도 최적화에서 확인하십시오.
Note: 트레이닝, 프로세싱에 관한 일반적인 팁과 도움말은 응용 프로그램 설계을 확인하십시오.