비전을 위한 딥러닝

이 항목은 VisionPro Deep Learning이 어떻게 작동하는지 전체 워크플로우를 소개하며 설명합니다.

 

워크플로우 요약

  1. 이미지 수집

    명암 대비가 중요한 표준 머신 비전 applications에서 이미지 품질에 대한 모범 사례를 따르십시오. 이미지 내의 결함 및 feature는 사람이 구분할 수 있어야 합니다. 조명의 일관성, 작업 거리, 카메라 트리거 타이밍 등 가능한 모든 변수를 통제하십시오.

     

  2. 라벨

    이는 정상과 불량 구분, 관심 대상 feature 지정, 문자 정의, 이미지에 있는 것들의 유형 등 ground-truth를 도구에 적용하는 것입니다. 모든 뷰에 정확한 라벨을 지정해야 합니다.

     

  3. 도구 매개변수 설정

    Deep Learning 도구 매개변수를 이용하여 네트워크의 트레이닝 및 이미지 프로세싱을 조정합니다. 조정할 수 있는 공통적인 매개변수는 다음과 같습니다.

    • Feature 사이즈/패치 사이즈
    • 트레이닝 셋
    • Perturbation parameters(변화 매개변수)
    • Sampling Density(샘플링 밀도)

    일반적으로, 매개변수 기본값 설정이 대개의 이미지 Set에 잘 적용됩니다. 먼저, feature 크기 이외의 매개변수는 조정하지 않은 상태로 트레이닝을 해 보십시오.

     

  4. 트레이닝

    학습이란 도구, 즉 신경망 네트워크가 사용자가 만든 라벨에 기반하여 feature(픽셀)을 학습하는 과정입니다. 예를 들어, Red 분석 도구는 사용자가 표시한 라벨에 기반하여 각 이미지에 있는 결함/정상 픽셀을 학습합니다. Red 분석 도구를 학습하는 목적은 새로운 이미지가 주어졌을 때 이미지에 결함이 있는지 여부를 정확하게 검사할 수 있도록 충분히 학습하는 것입니다. 트레이닝에서는 가능한 변동을 트레이닝 Set에 모두 포함하고 이미지에 정확한 라벨을 지정하는 것이 매우 중요합니다. 트레이닝 시간은 응용 프로그램, 도구 설정, 네트워크 트레이닝에 이용하는 PC의 GPU에 따라 달라집니다.

     

  5. 마킹 검토

    마킹은 각 이미지에 대해 Deep Learning이 제공하는 결과이며, 도구마다 고유의 그래픽으로 표시합니다. 라벨은 개발자에 의해 생성됩니다. 마킹은 VisionPro Deep Learning에 의해 생성됩니다.

     

  6. 결과 평가

    도구의 추가적인 결과는 데이터베이스 개요 창에 표시됩니다. 또한 도구의 프로세싱 시간, 점수, 통계적 분석 등이 포함됩니다.

 

이미지 수집

Deep Learning 도구는 이미지 및 조명 변동을 다룰 수 있으나, 어떠한 변동이 포함되는지를 도구에게 알려줘야 합니다. 이미지마다 조명의 밝기가 바뀐다면, 이러한 이미지의 변동성을 캡처하고 이 이미지들을 트레이닝 이미지 Set에 추가해 조명의 변동을 이용하여 도구를 학습시키십시오.

조명 및 이미징 옵션을 구성할 때, 일반적인 머신 비전 조명 및 광학 기법을 적용할 수 있습니다. 하지만, Deep Learning에서는 조명 및 광학적 설정이 트레이닝과 프로덕션 간에 일관된 것이 좋습니다. 예를 들어, 특정한 조명 및 광학적 설정에서 이미지를 트레이닝한 후, 프로덕션 중에 이 구성을 변경한다면, 도구는 최초의 설정에 기반할 것이므로 프로덕션 단계에서 실패하게 됩니다.

가능하면 통제된 조명을 이용해, 조명 설정의 차이로 인한 주변 조명 또는 시각적 변화에 따른 인한 영향을 피하십시오. 카메라 설정 시, 연구실의 카메라 설정이 프로덕션 중 사용되는 설정과 동일하게 하십시오. 또한 원근의 왜곡, 렌즈 초점, 심도, 시야의 변화를 최소화하십시오.

 

Labeling(라벨 지정)

Deep Learning 소프트웨어는 학습에 기초하고 있으므로, 네트워크가 이미지에 대해 무엇을 학습하는가가 매우 중요합니다. 딥러닝 용어 내에서 이 프로세스를 "라벨 지정"이라고합니다. 라벨링은 사용자가 기능이나 결함을 식별하여 이미지에 그래픽으로 표시하는 프로세스입니다. 라벨은 도구에 대한 "ground truth"를 나타내며 도구를 학습하고 그 성능을 검증하기 위해 사용됩니다.

라벨은 도구의 ground truth입니다. 즉, 도구에게 "이것이 학습해야 할 것"이라고 말하는 것이 라벨링입니다. 도구 프로그래밍에서 가장 중요한 부분은 트레이닝에 이용되는 이미지에 완전하고 정확하게 라벨이 지정되어야 한다는 것입니다. 이미지의 ground truth 데이터를 알지 못하면 도구가 적절히 작동하는지 여부를 알 수 없습니다. 또한, 정확한 라벨이 없다면, 도구의 트레이닝도 작동하지 않을 것입니다.

라벨 지정은 딥러닝 응용 프로그램을 만드는 데 있어 가장 중요한 부분입니다. 다음을 기억하십시오.

  • 도구 및 응용 프로그램의 성능을 평가할 때, 성능은 언제나 사용자가 제공한 라벨을 기준으로 측정됩니다. 라벨 지정이 이미지에 대한 실제의 ground truth를 반영하지 않는다면, 정확하고 반복적인 도구의 성능은 아무 의미가 없습니다.
  • Deep Learning 도구를 트레이닝할 때의 목표(비용 함수)는 사용자가 제공한 라벨 지정에 정확히 일치하는 응답을 생성하도록 도구를 트레이닝하는 것입니다.

 

트레이닝

신경망 트레이닝은 다음의 일반적 방법으로 수행됩니다.

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

기호 정의
1 샘플링 영역.
2 사용자가 작성한, 라벨이 지정된 결함 영역.
3 신경망.
4 네트워크의 응답.
5 라벨링 된 결함 (노란색)과 네트워크 응답 (파란색) 간의 불일치, 즉 오류를 줄이기 위해 가중치를 조정하는 반복 프로세스입니다.

 

신경망 학습의 구체적인 특징은 트레이닝 중인 도구 유형에 따라 다릅니다. 사용자가 네트워크 학습 단계에 영향을 주기 위해 할 수 있는 가장 큰 일은 학습 이미지 Set의 구성입니다. 모든 도구의 기본 행태는 이미지 Set에서 무작위로 선택한 이미지 50%를 이용해 트레이닝하는 것입니다.

 

마킹 검토

마킹이란 학습 이전에 수행된 라벨링에 기초하여, 도구가 이미지 내에서 식별한 문자, feature, 영역에 배치하는 그래픽 요소입니다. 도구가 학습되면, 데이터베이스 내의 이미지와 새로 취득한 이미지를 프로세싱하여, 발견한 feature를 마킹할 수 있습니다. 예를 들어, Blue 위치 도구가 뷰에서 N개의 라벨링된 feature가 필요하다고 가정하겠습니다. 도구를 학습하면 결과는 마킹의 형태로 표시되는데, 이는 뷰 위의 그래픽 오버레이로 표시됩니다.

추가적인 학습을 위해 라벨된 데이터를 더 제공하려면, 마킹 중 일부를 라벨로 전환할 수도 있습니다. 이 경우, 도구가 적용한 마킹을 검토하고, 해당 마킹에 동의한다면, 뷰를 수락하여 마킹을 라벨로 전환할 수 있습니다.

 

결과 평가

모든 VisionPro Deep Learning 도구는 다음의 통계적 결과 데이터를 제공합니다:

  • Confusion Matrix - ground truth와 도구의 예측을 시각적으로 표현한 것입니다.
  • Recall - 도구에 의해 정확하게 식별된, 라벨 지정된 feature 또는 클래스의 백분율.
  • Precision - 라벨 지정된 feature와 일치하는 feature 또는 클래스를 검출한 백분율.
  • F-Score – Recall과 Precision의 조화 평균.

 

VisionPro Deep Learning 각 도구에서 제공하는 통계 지표를 이용하면 다음을 실행할 수 있습니다:

  • 미래의 성능 추정, 예를 들면 False Positive의 비율 추정.
  • 좋은 매개변수 조합들을 찾거나 다양한 임계치를 설정함으로써 도구 매개변수를 최적화.
  • 모델 결과를 확실히 재현할 수 있는지 시험
Note: 통계 결과는 오직 테스트 이미지 데이터 세트에서 계산, 분석되었을 때에 유용합니다. 이는 학습한 도구 성능을 평가하는 데 사용합니다.
Note:

Deep Learning 기반 신경망 모델은 다음 방법으로 평가할 수 없습니다.

  • 신경망 모델의 품질 "등급"
    • 신경망은 그 품질과 관련해 정해진 등급을 가지고 있지 않습니다.
  • 신경망 모델의 결과인 "점수"
    • 신경망 성능을 서로 다른 관점에서 평가하는 여러 지표들이 있지만, 신경망의 적합성과 성능을 절대적으로 측정하는 단일 지표는 아직 존재하지 않습니다.