이미지 전처리

모델을 위한 데이터를 준비하는 이미지 전처리 단계입니다.

전처리는 데이터셋을 표준 형식(예: 모든 이미지가 동일한 크기)으로 맞추는 작업입니다. 이 단계는 모델을 학습하기 전에 데이터셋이 일관된지 확인하는 데 필수적입니다.

전처리는 Train, Valid 및 Test 세트의 모든 이미지에 적용됩니다(반대로 Augmentations는 Train 세트에만 적용됩니다).

Roboflow 플랫폼은 다음과 같은 전처리 옵션을 제공합니다:

  • Auto-Orient

  • Resize

  • Grayscale

  • Auto-Adjust Contrast

  • Isolate Objects

  • Static Crop

  • Tile

  • Modify Classes

  • Filter Null

  • Filter by Tag

각 옵션은 아래에 설명되어 있습니다.

Auto-Orient

Auto-orient는 이미지의 EXIF 데이터를 제거하여 디스크에 저장된 방식과 동일하게 이미지가 표시되도록 합니다.

EXIF 데이터는 특정 이미지의 방향을 결정합니다. 애플리케이션(예: Mac의 Preview)은 디스크에 저장된 방향과 다르더라도 이 데이터를 사용해 이미지를 특정 방향으로 표시합니다. 자세한 내용은 Hacker News 프런트 페이지 토론에서는 이것이 어떻게 객체 감지 모델을 조용히 망칠 수 있는지에 대해 다룹니다.

  • Roboflow는 기본적으로 이것을 켜두고 추론 시 이미지가 모델에 어떻게 입력되는지 확인할 것을 권장합니다.

  • 이미지를 자동 정렬(Auto-orient)해야 하는지 더 알고 싶다면, 우리 블로그를 확인하세요.

Resize

Resize는 이미지 크기를 원하는 치수로 변경하고, 선택적으로 스케일을 조정합니다. 주석은 비례적으로 조정됩니다(아래의 “fill”의 경우 제외).

현재 우리는 축소(downsize)만 지원합니다. 다음에 대한 몇 가지 지침을 제공합니다: 어떤 resize 옵션이 귀하의 사용 사례에 가장 적합할지.

  • Stretch to: 이미지를 원하는 픽셀 단위 치수로 늘립니다. 주석은 비례적으로 스케일됩니다. 결과 이미지는 정사각형으로 왜곡되지만 원본 이미지 데이터는 손실되지 않습니다.

  • Fill (with center crop) in: 생성된 이미지는 원하는 출력 치수의 중앙 크롭입니다. 예를 들어 원본 이미지가 2600x2080이고 resize 옵션이 640x640으로 설정된 경우, 출력은 원본 이미지의 중앙 640x640입니다. 종횡비는 유지되지만 원본 이미지 데이터는 손실됩니다.

  • Fit within: 원본 치수를 출력 이미지 치수에 맞게 종횡비를 유지하면서 스케일합니다. 예를 들어 원본 이미지가 2600x2080이고 resize가 640x640이면 더 긴 치수(2600)는 640으로 스케일되고 두 번째 치수(2080)는 약 512픽셀로 스케일됩니다. 이미지 종횡비와 원본 데이터는 유지되지만 정사각형은 아닙니다.

  • Fit (reflect edges) in: 원본 치수를 출력 이미지 치수로 종횡비를 유지하며 스케일하고, 새로 생성된 패딩은 원본 이미지를 반사한 내용으로 채웁니다. 예를 들어 원본 이미지가 2600x2080이고 resize가 416x416이면 더 긴 치수(2600)는 416으로 스케일되고 두 번째 치수(2080)는 약 335.48픽셀로 스케일됩니다. 남는 픽셀 영역(416-335.48, 즉 80.52픽셀)은 원본 이미지의 반사된 픽셀로 채워집니다. 참고로 Roboflow는 기본적으로 주석도 반사합니다. 결과 이미지는 정사각형이고 패딩이 적용되며 종횡비와 원본 데이터가 유지됩니다.

  • Fit (black edges) in: 원본 치수를 출력 이미지 치수로 종횡비를 유지하며 스케일하고, 새로 생성된 패딩은 검은색 영역으로 채워집니다. 예를 들어 원본 이미지가 2600x2080이고 resize가 416x416이면 더 긴 치수(2600)는 416으로 스케일되고 두 번째 치수(2080)는 약 335.48픽셀로 스케일됩니다. 남는 픽셀 영역(416-335.48, 즉 80.52픽셀)은 검은 픽셀로 채워집니다. 결과 이미지는 정사각형이고 검은색 패딩이 적용되며 종횡비와 원본 데이터가 유지됩니다.

  • Fit (white edges) in: 원본 치수를 출력 이미지 치수로 종횡비를 유지하며 스케일하고, 새로 생성된 패딩은 흰색 영역으로 채워집니다. 예를 들어 원본 이미지가 2600x2080이고 resize가 416x416이면 더 긴 치수(2600)는 416으로 스케일되고 두 번째 치수(2080)는 약 335.48픽셀로 스케일됩니다. 남는 픽셀 영역(416-335.48, 즉 80.52픽셀)은 흰색 픽셀로 채워집니다. 결과 이미지는 정사각형이고 흰색 패딩이 적용되며 종횡비와 원본 데이터가 유지됩니다.

Grayscale

RGB 채널이 있는 이미지를 단일 그레이스케일 채널 이미지로 변환하여 메모리를 절약할 수 있습니다. 각 그레이스케일 픽의 값은 해당하는 빨강, 초록, 파랑 픽의 가중 합으로 계산됩니다: Y = 0.2125 R + 0.7154 G + 0.0721 B.

이 가중치는 CRT 형광체 에서 사용되며, 균등 가중치보다 인간의 빨강·초록·파랑 인지를 더 잘 나타냅니다. (출처: Scikit-Image.)

Auto-Adjust Contrast

명암 대비가 낮은 이미지를 향상시킵니다. 우리는 전처리 단계로서 대비를 사용할지에 대해 검토해 보았습니다.

  • Contrast Stretching: 이미지는 2번째와 98번째 백분위수 사이에 있는 모든 강도값을 포함하도록 재스케일됩니다. 자세히 보기.

  • Histogram Equalization: 이미지에서 “가장 빈번한 강도값을 넓게 펼치는” 방식입니다. 평활화된 이미지는 대략 균일한 분포를 가지며, 픽셀 색상들이 대체로 균등하게 나타납니다. 자세히 보기.

  • Adaptive Equalization: CLAHE(Contrast Limited Adaptive Histogram Equalization). 이미지의 서로 다른 타일 영역에서 계산된 히스토그램을 사용하는 국소 대비 향상 알고리즘입니다. 따라서 이미지의 대부분보다 어둡거나 밝은 영역에서도 국소적인 세부사항을 향상시킬 수 있습니다. (출처: Scikit-Image.)

Advanced Preprocessing Features

Isolate Objects

Isolate Objects 변환은 각 바운딩 박스를 잘라내어 개별 이미지로 추출합니다. 이 단계는 객체 검출(Object Detection) 데이터셋을 분류(Classification) 데이터셋으로 변환합니다.

데이터셋 내 많은 클래스가 유사한 경우, 두 개의 모델을 순차적으로 사용하는 것이 일반적입니다. 첫 번째 모델(객체 검출)은 객체를 찾고 두 번째 모델(분류)은 그 객체가 무엇인지 식별합니다. Isolate Objects 변환은 두 번째 모델을 학습하는 데 필요한 데이터셋을 만드는 데 유용합니다.

Static Crop

static crop 기능 및 출력 예시.

Tile

타일링은 작은 물체를 감지할 때(특히 항공 사진이나 현미경 이미지와 같은 상황에서) 도움이 될 수 있습니다. 기본 설정은 2x2 타일링이지만 필요에 따라 조정할 수 있습니다. 타일링은 전처리 파이프라인에서 리사이즈보다 먼저 수행됩니다.

타일링 도구 및 출력의 미리보기("grid"에 표시됨).

Modify Classes

특정 클래스를 제외하거나 새 버전을 생성할 때 클래스를 재매핑(이름 변경)하는 전처리 도구입니다. 이러한 변경은 생성하는 버전에만 적용됩니다. 기본 데이터셋에는 변경이 이루어지지 않습니다.

"Apple leaf" 클래스를 제외하는 예시.
"scratches" 클래스를 "scratch"로 재매핑하는 예시.

Filter Null

Filter Null 변환은 데이터셋에서 일정 비율의 이미지가 주석이 달려 있어야 한다는 조건을 요구할 수 있게 합니다. Modify Classes 도구 적용 후 null annotation 또는 "unannotated"로 표시된 이미지들만 Filter Null 사용 시 영향을 받습니다.

이 변환은 데이터셋의 상당 부분에 관심 객체가 포함되어 있지 않은 경우에 유용합니다.

Filter Null 전처리 단계를 적용하는 예시.

누락된 주석과 null 주석의 차이

"Missing Annotations"는 이미지에 주석이 없는 경우 발생합니다(이미지를 주석 처리하지 않은 채로 두면 학습된 데이터셋의 성능에 문제가 생기거나 학습 실패로 이어질 수 있습니다). Null 주석은 해당 이미지 내에 감지할 항목이 전혀 없을 때에만 적용되어야 합니다.

Filter by Tag

Filter by Tag 변환은 어떤 이미지가 버전에 포함되거나 제외되어야 하는지를 적용된 Tags 에 따라 필터링할 수 있게 합니다. 이 변환은 모델을 새로운 데이터 하위 집합으로 학습시키거나 학습에서 원치 않는 이미지를 제외할 때 유용합니다.

각 Tag에 대해 세 가지 옵션이 제공됩니다:

  • Require: Required 태그가 있는 이미지들만 버전에 포함됩니다.

  • Exclude: Excluded 태그가 있는 이미지는 버전에 포함되지 않습니다.

  • Allow: Allowed 태그가 있는 이미지는 Exclude 및 Require 규칙을 조건으로 하여 버전에 포함됩니다.

이 예시에서 생성되는 Version은 do-not-include 태그가 없는 이미지들만 포함합니다.

Last updated

Was this helpful?