라벨 생성 (라벨링)

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

 

라벨링이란

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

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

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

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

 

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

 

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

 

Green 분류 도구 High Detail Quick 모드 라벨링

Green 분류에서 필요한 라벨 지정 절차는 단순히 이미지가 속하는 클래스를 할당하는 것입니다. Green 분류 도구는 뷰에 분류 태그를 할당함으로써 뷰를 분류합니다. 태그 이름은 유니코드로 140자까지 쓸 수 있습니다.

Green 분류 도구에서는 일반적으로 큰 학습 이미지 Set를 이용하게 됩니다. 이 때문에 툴을 사용하기 전, 라벨링에 도움이 될 수 있도록 미리 파일명에 번호나 라벨을 설명하는 단어로 주석을 다는 것을 추천합니다.

‘Label Views’ 창에서 태그를 입력하는 방법은 2가지가 있습니다.

  1. 태그를 입력해 뷰에 라벨을 지정할 수 있습니다.

  2. 정규 표현식(정규식을 이용한 디스플레이 필터)을 입력하여 이미지 파일명에서 프로그래밍 규칙을 적용해 태그를 생성할 수 있습니다.

 

첫번째 방법을 사용할 때, 새로운 태그 이름을 추가하고 싶을 경우에는 ‘새로운 태그 추가’ 항목을 선택하고 입력창에 추가하고 싶은 태그 이름을 입력하면 됩니다. 만일 기존에 있던 태그를 추가하고 싶은 경우에는 ‘기존 태그에서 선택’ 항목을 선택하고, 목록에서 원하는 태그를 선택하면 됩니다.

 

정규 표현식을 사용할 경우에는, 이미지의 파일명이 태그에 사용될 단어나 번호를 포함하도록 미리 변경해두는 것을 추천합니다.

 

분류 태그가 적용된 뒤에 도구를 트레이닝하면, 결과를 검토해 이미지가 정확히 마킹됐는지 확인할 수 있습니다.

흰색의 라벨(태그와 동일)은 "실제" 클래스를 나타내며, 노란색의 마킹은 도구에서 반환된 "예상" 클래스를 나타냅니다.

라벨 지정됨 라벨 지정되지 않음

이미지에 Grizzly라는 라벨(흰 텍스트)이 지정됐고, 도구가 표시한 정확한 태그가 "Grizzly"일 가능성은 96.4%이며, 정확한 태그가 "Bauble"일 가능성은 3.6%입니다.

이미지에 라벨이 지정되지 않았고, 도구가 이미지에 마킹한 경우입니다.

Note: 또 라벨을 이미지 파일, JSON 파일, VisionPro Deep Learning 내부 라벨 포맷 파일로 불러올 수 있습니다. 자세한 내용은 Cognex Label Import/Export 플러그인 항목을 확인하십시오.
Note: 생성된 라벨이 여러 뷰에서 부정확하거나 문제가 있다고 보인다면, 각 뷰의 라벨 품질 수준을 조사하고 잘못된 라벨을 고칠 수 있습니다. 자세한 내용은 라벨 검사를 이용한 라벨링 최적화를 확인하십시오.

 

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

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

 

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