라벨 생성 (라벨링)

라벨은 사용자가 생성한 입력 데이터로 도구의 ground truth를 확립합니다. Ground truth란 어플리케이션의 이미지에 대한 논란의 여지가없는 사실, 즉 인간이 이미지 내의 주요 정보 (feature, 글자, 결함, 클래스)로 결정한 것을 말합니다. 라벨은 ground truth를 확립하며, 이는 트레이닝 및 성과 분석에 모두 이용됩니다. 그러므로, 라벨을 정확하게 지정하는 것이 극히 중요합니다.

 

라벨링이란

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

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

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

모든 도구에서 라벨 지정은 수작업입니다(각 도구에서 라벨 지정이 작동하는 구체적인 내용은 아래를 참조하십시오). 라벨 지정이 잘 되려면, 이미지 간에, 또한 관찰자 및 라벨 지정을 수행하는 사람 간에 일관성이 있어야 합니다. 이미지 Set를 여러 명에게 제공하여 라벨을 지정하게 했는데, 라벨들이 일치하지 않는다면, 도구도 제대로 작동하지 않을 가능성이 큽니다.

 

도구마다 절차는 조금 다르지만, 원칙은 동일합니다. 라벨 지정이 완료되면, 사용자는 도구를 학습하고 도구가 제공한 마킹을 검토할 준비가 된 것입니다. Alt + 왼쪽 화살표 및 Alt + 오른쪽 화살표 키를 사용하거나 이미지의 우클릭 메뉴에서 전환 할 수 있습니다.

 

오버레이 체크박스에서 "라벨"을 활성화하면 라벨 오버레이를 나타낼 수 있습니다.

 

Red 분석 도구 Focused 비지도 모드 라벨링

Red Focused 비지도 모드에서 학습 세트로 사용하는 뷰는 오직 정상 뷰(결함 없는 이미지) 뿐입니다. 도구 학습전에 학습 세트를 생성하려면 뷰를 정상으로 라벨링해야 합니다. 도구 성능을 적정하게 평가하려면, 테스트 세트는 불량 라벨(결함 있는 이미지)을 가진 뷰를 포함해야 합니다. 뷰에 라벨을 잘못 지정하면, 무엇이 결함이고 무엇이 결함이 아닌지를 도구에 잘못 가르치게 되어 트레이닝에 부정적인 영향이 생기므로, 뷰의 라벨을 정확히 지정하는 것이 매우 중요합니다.

 

뷰에 라벨이 지정되면, 해당 뷰의 우측 상단 모서리에 초록색 또는 빨간색 띠가 표시됩니다.

"정상" 라벨 "불량" 라벨

 

뷰 라벨링 기능을 사용하는 방법은 두 가지가 있습니다.

  1. 이미지 디스플레이 영역(GUI 개요) 내의 뷰를 한 번 또는 두 번 클릭하기.

    한 번 클릭하면 이미지에 정상 라벨이 지정되고, 두 번 클릭하면 불량 라벨이 지정되며, 세 번 클릭하면 라벨을 정상으로 재설정할 수 있는 대화 상자가 표시됩니다.

  2. 뷰 목록 영역에서 N 뷰에 대한 작업 메뉴 옵션 이용하기

     

    이 옵션은 라벨 지정할 이미지가 많을 때 특히 유용합니다. 이 옵션을 선택하면, 뷰 라벨링 대화 상자가 표시되는데, 여기에서 모든 이미지를 정상 또는 불량으로 정의할 수 있습니다.

Note: Red 분석 도구 내에서, 비지도 모드에서 영역 이름의 기본 값은 "편차"이며, 지도 모드에서 영역 이름의 기본 값은 "결함"입니다. 도구 내에서 Region(영역) 이름이 혼합되어 사용될 가능성이 있습니다. 다음과 같은 조건에서 이런 일이 발생할 수 있습니다:
  1. Red 분석 도구를 생성한 후, 기본값인 비지도 모드를 유지하고 도구의 ROI를 설정합니다.
  2. 데이터베이스 개요를 엽니다.
  3. 영역 편집 기능을 실행하여 몇 개의 결함을 그린 후 변경 사항을 적용합니다.
  4. 영역 편집 편집기를 연 채로 도구 모드를 기본값(비지도)에서 지도 모드로 변경합니다.
  5. 다른 뷰를 선택한 후, 몇 개의 결함을 그린 후 변경 사항을 적용합니다.
  6. 뷰 목록 및 데이터베이스 개요의 섬네일이 영역 편집 편집기의 이름과 일치하지 않음에 주목하십시오.

이름 불일치 문제를 해결하려면, 영역 편집 편집기를 닫고 모드를 변경하면 됩니다. 도구가 병합되며 영역 이름을 올바르게 변경할 것입니다.

Note: 또 라벨을 이미지 파일, JSON 파일, VisionPro Deep Learning 내부 라벨 포맷 파일로 불러올 수 있습니다. 자세한 내용은 Cognex Label Import/Export 플러그인 항목을 확인하십시오.

 

스마트한 라벨링: AI 라벨링 도구

AI 라벨링 도구 내에서 두 가지 주요 도구를 사용할 수 있습니다: AI 클릭 도구 및 AI 박스 도구입니다. 이러한 도구들은 라벨링 과정을 간소화하고 각각의 라벨을 수동으로 그릴 필요가 없도록 설계되었습니다. 대신, 이 도구들은 영역을 자동으로 인식하고 라벨을 지정하기 위한 직관적인 방법을 제공합니다.

Note: 권장되는 GPU 메모리는 8GB 이상입니다. 메모리가 부족하여 실패한다면, 도움말 > 디바이스 설정으로 이동하여 '최적화된 GPU 메모리'를 비활성화하고 다시 시도해보세요. 여전히 문제가 해결되지 않는다면 GPU를 교체해야 할 수도 있습니다.
Note: 큰 이미지에서는 영역을 그리는 데 시간이 걸릴 수 있습니다. 이런 경우에는 ROI를 사용하여 뷰 크기를 제한하거나 ROI를 분할해 보세요.
  • AI 클릭 도구:
    AI 클릭 도구는 클릭만으로 영역의 라벨링을 손쉽게 할 수 있게 해줍니다. 마우스 왼쪽 클릭을 사용하여 개체를 한 번 또는 여러 번 클릭하면 해당 영역이 자동으로 그려지며 선택한 영역을 라벨링해줍니다. 필요한 경우 영역을 제거하거나 조정하기 위해 간단히 오른쪽 클릭을 사용하면 됩니다.

  • AI 박스 도구:
    두 번째 도구는 AI 박스 도구입니다. 이 도구는 효율적인 영역 라벨링 방법을 제공합니다. 이 도구를 활용하면 직사각형 상자를 개체 주위에 그려 해당 영역을 정의할 수 있습니다. 이 시각적이고 사용자 친화적인 방식을 통해 라벨링할 영역을 쉽게 생성할 수 있습니다. 이 도구를 사용하려면 개체를 라벨링하려는 대상 주위에 상자를 그리면 해당 상자의 모양을 기반으로 영역이 자동으로 생성됩니다.

 

빠른 라벨링: 부트스트랩 라벨링

부트스트랩 이미지 라벨링은 각 도구 라벨링을 더 빠르게 수행하는 방법입니다. "부트스트랩" 라벨 지정은 이미지 중 소수의 샘플에 라벨을 지정하고 도구를 학습한 후, 결과를 검토하면서, 정확하게 마킹된 뷰는 라벨로 전환하도록 수락하고, 정확하지 않은 마킹은 삭제하고 정확한 라벨로 교체하는 방식입니다. 이미지를 다수의 뷰로 나누고 하나의 뷰에만 라벨을 지정함으로써 이 과정의 속도를 더욱 빠르게 할 수도 있습니다. 또한, 일시적으로 학습 매개변수에 있는 Epoch 횟수 매개변수를 줄이면 학습 속도가 더욱 빨라집니다.

 

  1. 학습 세트 내의 몇 개 이미지에 라벨을 지정합니다.
  2. 해당 도구를 학습합니다.
  3. 이미지와 결과를 검토합니다.
  4. 도구의 마킹이 정확한 위치에서 보기를 수락합니다(마우스 우클릭 후 보기 수락 선택 또는 CTRL + SHIFT + A). 이렇게 하면 마킹이 라벨로 변경됩니다. 지도 모드의 Red 분석 도구에서는 결함 영역을 편집해야 하는 경우도 있습니다. 정확하지 않은 마킹은 이미지에서 삭제하십시오(마우스 우클릭 후 마킹 삭제 선택 또는 CTRL + C).