> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/datasets/ko/versions/dataset-versions/image-preprocessing.md).

# 이미지 전처리

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

전처리는 데이터셋이 표준 형식(예: 모든 이미지의 크기가 동일함)인지 보장합니다. 이 단계는 모델을 학습하기 전에 데이터셋의 일관성을 유지하는 데 필수적입니다.

전처리는 Train, Valid, Test 세트의 모든 이미지에 적용됩니다(예외적으로 [증강](/datasets/ko/versions/dataset-versions/image-augmentation.md)에는 적용되지 않으며, 이는 Train 세트에만 적용됩니다).

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

* 자동 방향 조정
* 크기 조정
* 그레이스케일
* 자동 대비 조정
* 객체 분리
* 고정 크롭
* 타일링
* 클래스 수정
* 널 필터링
* 태그로 필터링

각 옵션은 아래에서 설명합니다.

### 자동 방향 조정

자동 방향 조정은 이미지의 EXIF 데이터를 제거하여, 디스크에 저장된 방식과 동일하게 표시되도록 합니다.

EXIF 데이터는 주어진 이미지의 방향을 결정합니다. (Mac의 Preview와 같은) 애플리케이션은 이 데이터를 사용해, 디스크에 저장된 방향과 다르더라도 특정 방향으로 이미지를 표시합니다.

* Roboflow는 이를 기본적으로 켜 둔 상태로 두고, 추론 시 이미지가 모델에 어떻게 입력되는지 확인할 것을 권장합니다.
* 이미지를 자동 방향 조정해야 하는지 여부에 대해 더 알아보고 싶다면 [블로그를 확인해 보세요](https://blog.roboflow.com/exif-auto-orientation/).

### 크기 조정

크기 조정은 이미지 크기를 변경하고, 필요하면 원하는 치수로 스케일링합니다. 주석은 비례에 맞게 조정됩니다(아래의 “fill” 경우는 예외).

현재는 축소만 지원합니다. 이에 대한 안내를 제공합니다 [어떤 크기 조정 옵션이 사용 사례에 가장 적합한지](https://blog.roboflow.com/you-might-be-resizing-your-images-incorrectly/).

* **다음에 맞게 늘리기:** 이미지를 원하는 픽셀 단위 치수로 늘립니다. 주석은 비례에 맞게 스케일링됩니다. 이미지는 정사각형이 되고 왜곡되지만, 원본 이미지 데이터는 손실되지 않습니다.
* **채우기(가운데 자르기) 다음에:** 생성된 이미지는 원하는 출력 치수에 맞춘 중앙 크롭입니다. 예를 들어 원본 이미지가 2600x2080이고 크기 조정 옵션이 640x640으로 설정된 경우, 출력되는 크기 조정 결과는 원본 이미지의 중앙 640x640입니다. 종횡비는 유지되지만 원본 이미지 데이터는 손실됩니다.
* **다음 내에 맞추기:** 원본 이미지의 종횡비를 유지하면서 원본 치수를 출력 이미지의 치수에 맞게 스케일링합니다. 예를 들어 원본 이미지가 2600x2080이고 크기 조정 옵션이 640x640으로 설정된 경우, 더 긴 치수(2600)는 640으로 스케일링되고 다른 치수(2080)는 약 512픽셀로 스케일링됩니다. 이미지 종횡비와 원본 데이터는 유지되지만, 정사각형은 아닙니다.
* **반사 가장자리로 맞추기:** 원본 이미지의 종횡비를 유지하면서 원본 치수를 출력 이미지의 치수에 맞게 스케일링하고, 새로 생성되는 패딩은 원본 이미지의 반사로 채웁니다. 예를 들어 원본 이미지가 2600x2080이고 크기 조정 옵션이 416x416으로 설정된 경우, 더 긴 치수(2600)는 416으로 스케일링되고 다른 치수(2080)는 약 335.48픽셀로 스케일링됩니다. 남는 픽셀 영역(416-335.48, 즉 80.52픽셀)은 원본 이미지의 반사 픽셀입니다. 특히 Roboflow는 기본적으로 주석도 반사합니다. 이미지는 정사각형이며 패딩이 적용되고, 종횡비와 원본 데이터가 유지됩니다.
* **검은 가장자리로 맞추기:** 원본 이미지의 종횡비를 유지하면서 원본 치수를 출력 이미지의 치수에 맞게 스케일링하고, 새로 생성되는 패딩은 검은 영역입니다. 예를 들어 원본 이미지가 2600x2080이고 크기 조정 옵션이 416x416으로 설정된 경우, 더 긴 치수(2600)는 416으로 스케일링되고 다른 치수(2080)는 약 335.48픽셀로 스케일링됩니다. 남는 픽셀 영역(416-335.48, 즉 80.52픽셀)은 검은 픽셀입니다. 이미지는 정사각형이며 검은 패딩이 적용되고, 종횡비와 원본 데이터가 유지됩니다.
* **흰 가장자리로 맞추기:** 원본 이미지의 종횡비를 유지하면서 원본 치수를 출력 이미지의 치수에 맞게 스케일링하고, 새로 생성되는 패딩은 흰 영역입니다. 예를 들어 원본 이미지가 2600x2080이고 크기 조정 옵션이 416x416으로 설정된 경우, 더 긴 치수(2600)는 416으로 스케일링되고 다른 치수(2080)는 약 335.48픽셀로 스케일링됩니다. 남는 픽셀 영역(416-335.48, 즉 80.52픽셀)은 흰 픽셀입니다. 이미지는 정사각형이며 흰 패딩이 적용되고, 종횡비와 원본 데이터가 유지됩니다.

### 그레이스케일

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

이 가중치는 CRT 형광체에서 사용되며, 동일한 가중치보다 인간의 빨강, 초록, 파랑에 대한 지각을 더 잘 나타냅니다. (출처: [Scikit-Image](https://scikit-image.org/docs/dev/auto_examples/color_exposure/plot_rgb_to_gray.html).)

### 자동 대비 조정

낮은 대비의 이미지를 향상시킵니다. 우리는 [전처리 단계로 대비를 사용할지 여부에 대해](https://blog.roboflow.com/when-to-use-contrast-as-a-preprocessing-step/).

* **대비 스트레칭**: 이미지를 2번째와 98번째 백분위수에 해당하는 모든 강도를 포함하도록 재스케일합니다.
* **히스토그램 평활화**: 이미지에서 “가장 빈도가 높은 강도 값들을 퍼뜨립니다.” 평활화된 이미지는 대략 균일한 분포를 가지며, 모든 색상의 픽셀이 거의 동일하게 표현됩니다. [더 보기](https://en.wikipedia.org/wiki/Histogram_equalization).
* **적응형 평활화**: 대비 제한 적응형 히스토그램 평활화(CLAHE). 이미지의 서로 다른 타일 영역에서 계산된 히스토그램을 사용하는 국소 대비 향상 알고리즘입니다. 따라서 이미지의 대부분보다 더 어둡거나 더 밝은 영역에서도 세부 사항을 향상시킬 수 있습니다. (출처: [Scikit-Image](https://scikit-image.org/docs/dev/api/skimage.exposure.html#skimage.exposure.equalize_adapthist).)

## 고급 전처리 기능

### 객체 분리

객체 분리 변환은 각 바운딩 박스를 개별 이미지로 잘라 추출합니다. 이 단계는 객체 탐지 데이터셋을 분류 데이터셋으로 변환합니다.

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

### 고정 크롭

고정 크롭은 데이터셋의 모든 이미지에 고정된 비율 기반 크롭 영역을 적용합니다. 최소 및 최대 너비와 높이 비율을 사용해 영역을 정의하면, Roboflow가 각 이미지를 같은 상대 영역으로 자릅니다. 이를 통해 일관된 관심 영역을 확대해 볼 수 있으며, 학습 전에 관련 없는 경계나 배경을 제거하여 모델이 중요한 프레임 부분에 집중하도록 할 수 있습니다.

![고정 크롭 기능과 예시 출력입니다.](https://3735512388-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNVfRxNsvCh4GOyqrjmzX%2Fuploads%2Fgit-blob-4f30e8b0a744bea04bcf0dadd480f55d4cb9a034%2FScreenshot%202025-05-20%20at%2009.44.47.png?alt=media)

### 타일링

타일링은 작은 객체를 탐지할 때 도움이 될 수 있습니다(특히 항공 이미지나 현미경 이미지 같은 경우). 기본 설정은 2x2 타일링이지만, 필요에 따라 조정할 수 있습니다. 타일링은 *이전에* 전처리 파이프라인에서 크기 조정이 수행됩니다.

![타일링 도구와 출력 미리보기(“grid”로 표시됨)입니다.](https://3735512388-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNVfRxNsvCh4GOyqrjmzX%2Fuploads%2Fgit-blob-7a09d308f703e2805c36bee439ee95451f05ca8b%2FScreenshot%202025-05-20%20at%2009.45.19.png?alt=media)

타일링 모드는 세 가지가 있습니다.

<table data-search="false"><thead><tr><th>모드</th><th>동작</th><th>설정</th></tr></thead><tbody><tr><td>그리드</td><td>각 이미지를 동일한 행과 열로 나눕니다. 타일 크기는 이미지 크기에 따라 달라집니다.</td><td>행, 열</td></tr><tr><td>고정 크기</td><td>설정한 정확한 픽셀 크기로 모든 타일을 자르므로, 어떤 타일도 크기 조정되거나 왜곡되지 않습니다. 모델 입력 크기(예: 640 x 640)로 설정하세요.</td><td>너비, 높이, 겹침, 패딩 색상</td></tr><tr><td>고정 종횡비</td><td>설정한 너비 대 높이 비율을 유지하는 타일을 자릅니다. 각 타일은 이미지의 전체 너비 또는 전체 높이를 차지합니다.</td><td>종횡비, 범위, 겹침, 패딩 색상</td></tr></tbody></table>

고정 크기와 고정 종횡비에는 두 가지 추가 설정이 있습니다. 겹침은 각 타일이 다음 타일과 얼마나 공유되는지를 백분율로 나타냅니다. 객체가 타일 경계에 있을 때 사용합니다. 패딩 색상(검정 또는 흰색)은 각 타일이 전체 크기로 나오기 때문에 이미지의 오른쪽과 아래쪽 가장자리에 남는 공간을 채웁니다.

타일은 각 변이 최소 224픽셀이어야 합니다. 고정 종횡비 모드에서는 너무 작아 해당 크기의 타일을 만들 수 없는 이미지는 전체가 유지됩니다.

고정 크기 또는 고정 종횡비를 객체 분리나 동적 크롭과 함께 사용할 수 없습니다. 이러한 단계는 각 이미지를 개별적으로 자르므로, 고정 크기의 타일이 더 이상 이미지와 일치하지 않습니다. 대신 그리드를 사용하세요.

고정 크기 및 고정 종횡비의 경우 타일 수가 각 이미지의 크기에 따라 달라지므로 Roboflow는 버전 크기를 추정하지 않습니다.

{% hint style="info" %}
고정 크기와 고정 종횡비는 일부 작업 공간에서 앱에서 사용할 수 있습니다. [영업팀에 문의하여](https://roboflow.com/sales) 활성화하세요. API는 모든 작업 공간에서 세 가지 모드를 모두 허용합니다.
{% endhint %}

### 클래스 수정

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

!["Apple leaf" 클래스를 제외합니다.](https://3735512388-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNVfRxNsvCh4GOyqrjmzX%2Fuploads%2Fgit-blob-37b01b8cc97b0d694bed8bf5d7a445fce3dbd8c9%2FScreenshot%202025-05-20%20at%2009.45.43.png?alt=media)

!["scratches" 클래스를 "scratch"로 재매핑합니다.](https://3735512388-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNVfRxNsvCh4GOyqrjmzX%2Fuploads%2Fgit-blob-6c39656c789b92a25f4a7775bb027f33382c706c%2FScreenshot%202025-05-20%20at%2009.46.57.png?alt=media)

### 널 필터링

널 필터 변환을 사용하면 데이터셋 내 이미지 중 일부가 주석 처리되어 있어야 한다는 조건을 설정할 수 있습니다. 널 주석으로 표시된 이미지 또는 Modify Classes 도구를 적용한 뒤 "unannotated"가 된 이미지만 Filter Null 사용 시 영향을 받습니다.

이 변환은 데이터셋의 큰 비율이 관심 객체를 포함하지 않는 경우에 유용합니다.

![Filter Null 전처리 단계를 적용하는 중입니다.](https://3735512388-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNVfRxNsvCh4GOyqrjmzX%2Fuploads%2Fgit-blob-438a722d13a06de4d81a8508b0f1204e3e61fc30%2FScreenshot%202025-05-20%20at%2009.47.41.png?alt=media)

{% hint style="warning" %}
이 도구를 사용하기 전에 데이터셋의 모든 이미지가 올바르게 주석 처리되었는지, 적절한 이미지를 널 주석으로 지정했는지, 그리고/또는 불필요한 클래스를 제외했는지 확인하세요.
{% endhint %}

{% hint style="info" %}
[누락 주석과 널 주석의 차이](https://blog.roboflow.com/missing-and-null-image-annotations/)

“누락 주석”은 이미지가 주석 처리되지 않았을 때 발생합니다. 이미지를 주석 처리하지 않으면 학습된 데이터셋의 성능에 문제가 생길 수 있으며, 학습 실패로 이어질 수 있습니다. 널 주석은 *아무것도* 해당 이미지 안에 모델이 탐지하기를 원하는 것이 존재하지 않을 때만 적용해야 합니다.
{% endhint %}

### 태그로 필터링

태그로 필터 변환을 사용하면 어떤 [태그](/datasets/ko/manage/manage-datasets/add-tags-to-images.md) 가 적용되었는지에 따라 버전에 포함할 이미지와 제외할 이미지를 필터링할 수 있습니다. 이 변환은 새로운 데이터 하위 집합으로 모델을 학습하거나 원하지 않는 이미지를 학습에서 제외할 때 유용합니다.

각 태그에는 세 가지 옵션이 있습니다:

* **필수:** 필수 태그가 있는 이미지만 버전에 포함됩니다.
* **제외**: 제외 태그가 있는 이미지는 버전에 포함되지 않습니다.
* **허용:** 허용 태그가 있는 이미지는 제외 및 필수 규칙에 따라 버전에 포함됩니다.

<figure><img src="https://3735512388-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNVfRxNsvCh4GOyqrjmzX%2Fuploads%2Fgit-blob-a4764e905f41d1e1b4e83aa437ce5ebdb7328219%2FScreenshot%202025-05-20%20at%2009.49.32.png?alt=media" alt=""><figcaption><p>이 예시에서는 결과 버전에 <code>do-not-include</code> 태그가 없는 이미지만 포함됩니다.</p></figcaption></figure>
