Tech Trail

How to Label Image Data for Computer Vision Models (컴퓨터 비전에서의 이미지 라벨링 전략) 본문

AI/Computer Vision

How to Label Image Data for Computer Vision Models (컴퓨터 비전에서의 이미지 라벨링 전략)

_밍지_ 2024. 3. 26. 18:30
728x90
반응형
SMALL

What is image labeling?

이미지 라벨링이란 이미지 내의 특정 객체나 특징을 주석으로 표시하는 것입니다. 이미지 라벨은 컴퓨터 비전 모델이 이미지 내의 특정 객체를 식별하는 방법을 학습하도록 돕습니다. 예를 들어, 항공 이미지 셋에서 모든 나무를 주석으로 표시할 수 있습니다. 이러한 라벨은 모델이 나무가 무엇인지 이해하는 데 도움이 됩니다.
이미지 라벨링은 다양한 주석 도구를 사용하여 수행할 수 있습니다. 이러한 주석 도구를 사용하면 객체 주위에 특정 경계를 그릴 수 있습니다. 이러한 경계는 "바운딩 박스"라고 불립니다. 각 바운딩 박스에는 모델이 서로 다른 객체를 구별할 수 있도록 라벨이 지정됩니다. 예를 들어, 모든 나무는 "나무"로 라벨이 지정될 수 있으며, 모든 집은 "집"으로 주석이 달릴 수 있습니다.
이미지 라벨의 품질은 훈련된 모델의 정확도에 직접적으로 영향을 미칩니다. 적절한 라벨링 및 주석 전략을 사용하면 모델이 라벨을 지정한 객체를 더 잘 식별할 수 있도록 도와주는 고품질 데이터셋을 생성할 수 있습니다.
주의: 작업에 따라 라벨 지침이 달라집니다.
아래의 실천 사례는 일반적으로 사실이지만, 라벨 지침은 주어진 작업의 성격에 매우 의존적임을 유의해야 합니다.
또한 한 작업을 위해 라벨이 지정된 이미지가 다른 작업에 적합하지 않을 수 있으며, 라벨을 재지정하는 것은 흔한 일입니다. 데이터셋과 그 라벨을 생각할 때는 그것을 작업에 맞게 지속적으로 변경하고 개선하는 것이 가장 좋습니다.
 

How to label images for coputer vision tasks

이를 염두에 두고, 효과적으로 이미지를 라벨링하는 몇 가지 팁을 살펴보겠습니다.
 

1. Label Every Object of Interest in Every Image

모든 이미지에서 관심 대상의 모든 객체를 라벨링하세요. 컴퓨터 비전 모델은 관심 대상 객체와 픽셀 패턴이 어떤 관계에 있는지를 학습하는 데 만들어졌습니다.
이러한 이유로, 객체를 식별하는 모델을 훈련시키려면 이미지에서 해당 객체의 모든 모습을 라벨링해야 합니다. 일부 이미지에서 객체를 라벨링 하지 않으면 모델에 거짓 음성을 도입하게 됩니다.
예를 들어, 체스 말 데이터셋에서 체스 말의 모든 모습을 라벨링해야 합니다. 하얀 폰 말의 일부만 라벨링 해서는 안됩니다.

Label every occurence of our objects of interest.

 

2. Label the Entirety of an Object

 

우리의 바운딩 박스는 관심 대상 객체의 전체를 포함해야 합니다. 객체의 일부만 라벨링 하면 모델이 완전한 객체의 구성 요소가 무엇인지 혼란스러워집니다.
예를 들어, 체스 데이터셋에서는 각 말이 바운딩 박스로 완전히 둘러싸여 있음을 확인하세요.

The entirety of a piece is labeled.

 

3. Label Occluded Objects

 

가령 사진에서 무언가가 차단되어 있어 객체가 부분적으로 시야에서 벗어나는 경우를 가리키는 Occlusion입니다. 오컬젼된 객체도 라벨링 하는 것이 가장 좋습니다.
또한, 일반적으로 오컬젼된 객체를 완전히 가시적인 것처럼 라벨링하는 것이 가장 좋은 실천 방법입니다. 즉, 객체의 부분적으로만 보이는 부분에 대해 바운딩 박스를 그리는 것이 아니라 오컬젼된 객체를 전체로 간주하여 라벨링하는 것입니다.
예를 들어, 체스 데이터셋에서 한 조각은 정기적으로 다른 조각의 시야를 가리게 됩니다. 이러한 경우에도 상자가 겹치더라도 두 객체를 모두 라벨링해야 합니다. (상자가 겹치지 않아야 한다는 오해가 흔합니다.)

Even if object is blocking view of another, it is best to label them both as if they were both fully visible.

 

4. Create Tight Bounding Boxes

 

바운딩 박스는 관심 대상 객체 주변에 타이트하게 그려져야 합니다. 타이트한 바운딩 박스는 모델이 관심 대상 객체를 정확히 학습하는 데 매우 중요합니다. 이로써 모델은 어떤 픽셀이 관심 대상 객체를 구성하는지를 명확하게 학습할 수 있으며, 이미지의 관련 없는 부분과 구분할 수 있습니다.

Bounding boxes should be tight. Here, we're making existing bounding boxes even tighter.

 

5. Create Specific Label Names

 

특정 객체의 라벨 이름을 결정할 때는 가능한 한 더 구체적인 쪽으로 오류를 내는 것이 좋습니다. 보다 구체적인 라벨 클래스를 더 일반적으로 재매핑하는 것은 항상 더 쉽지만, 더 구체적인 라벨을 가지려면 재라벨링이 필요합니다.
예를 들어, 개 탐지기를 만든다고 가정해 보세요. 관심 대상 객체는 모두 개이지만, 라브라도르와 푸들에 대한 클래스를 만드는 것이 현명할 수 있습니다. 초기 모델 구축에서는 라벨을 개로 통합할 수 있습니다. 그러나 나중에 개별 견종이 중요하다는 것을 깨닫게 되면, 데이터셋을 완전히 다시 라벨링해야 할 수도 있습니다.
예를 들어, 체스 데이터셋에서는 흰색 폰과 검은색 폰이 있습니다. 이들을 모두 폰으로 합칠 수도 있고, 심지어 모든 클래스를 말로 합칠 수도 있습니다.

Class names should be specific, like black-pawn rather than pawn or piece.

 

6. Maintain Clear Labeling Instructions

 

불가피하게 데이터셋에 더 많은 데이터를 추가해야 할 것입니다. 이것은 모델 개선에 있어 중요한 요소입니다. 액티브 러닝과 같은 전술을 통해 우리는 시간을 지혜롭게 라벨링 하는 데 소비합니다. 따라서 명확하고 공유 가능하며 반복 가능한 라벨링 지침이 고품질의 데이터셋을 만들고 유지할 수 있도록 합니다.
 
여기서 논의한 기법 중 많은 것들이 포함되어야 합니다: 객체의 전체를 라벨링 하고, 라벨을 타이트하게 만들고, 모든 객체를 라벨링 하는 등입니다. 덜 구체적인 것보다는 더 구체적인 쪽으로 오류를 내는 것이 항상 더 나은 방법입니다.
 
 
위 글은 Joseph Nelson의 글을 기반으로 작성하였습니다.

728x90
반응형
LIST