데이터 증강은 기존 이미지에 다양한 변환을 적용하여 훈련 데이터 세트를 인위적으로 확장하는 컴퓨터 비전의 중요한 기술입니다. Ultralytics YOLO와 같은 딥러닝 모델을 훈련할 때 데이터 증강은 모델의 견고성을 향상시키고 과적합을 줄이며 실제 시나리오에 대한 일반화 성능을 향상시키는 데 도움이 됩니다.
참고: Mosaic, MixUp 및 기타 데이터 증강을 사용하여 Ultralytics YOLO 모델이 더 나은 일반화를 수행하도록 돕는 방법 🚀
데이터 증강이 중요한 이유
데이터 증강은 컴퓨터 비전 모델 학습에서 여러 중요한 목적을 수행합니다.
확장된 데이터 세트: 기존 이미지의 변형을 생성하여 새로운 데이터를 수집하지 않고도 훈련 데이터 세트 크기를 효과적으로 늘릴 수 있습니다.
향상된 일반화: 모델은 다양한 조건에서 객체를 인식하도록 학습하여 실제 애플리케이션에서 더욱 강력해집니다.
과적합 감소: 훈련 데이터에 변동성을 도입함으로써 모델이 특정 이미지 특징을 암기할 가능성이 줄어듭니다.
향상된 성능: 적절한 증강으로 훈련된 모델은 일반적으로 유효성 검사 및 테스트 세트에서 더 나은 정확도를 달성합니다.
Ultralytics YOLO의 구현은 포괄적인 증강 기술 모음을 제공하며, 각 기술은 특정 목적을 수행하고 다양한 방식으로 모델 성능에 기여합니다. 이 가이드에서는 각 증강 매개변수를 자세히 살펴보고 프로젝트에서 효과적으로 사용하는 시기와 방법을 이해하는 데 도움을 드립니다.
구성 예시
Python API, CLI(명령줄 인터페이스) 또는 구성 파일을 사용하여 각 매개변수를 사용자 정의할 수 있습니다. 다음은 각 방법으로 데이터 증강을 설정하는 방법의 예입니다.
구성 예시
fromultralyticsimportYOLO# Load a modelmodel=YOLO("yolo11n.pt")# Training with custom augmentation parametersmodel.train(data="coco.yaml",epochs=100,hsv_h=0.03,hsv_s=0.6,hsv_v=0.5)# Training without any augmentations (disabled values omitted for clarity)model.train(data="coco.yaml",epochs=100,hsv_h=0.0,hsv_s=0.0,hsv_v=0.0,translate=0.0,scale=0.0,fliplr=0.0,mosaic=0.0,erasing=0.0,auto_augment=None,)
# Training with custom augmentation parameters
yolodetecttraindata=coco8.yamlmodel=yolo11n.ptepochs=100hsv_h=0.03hsv_s=0.6hsv_v=0.5
구성 파일 사용
YAML 구성 파일(예: )에서 증강을 포함한 모든 학습 매개변수를 정의할 수 있습니다. train_custom.yaml)가 이미 설치되어 있다고 가정합니다. mode 파라미터는 CLI를 사용할 때만 필요합니다. 이 새로운 YAML 파일은 다음을 대체합니다. 기본값 다음에 위치: ultralytics 패키지를 참조하십시오.
# train_custom.yaml# 'mode' is required only for CLI usagemode:traindata:coco8.yamlmodel:yolo11n.ptepochs:100hsv_h:0.03hsv_s:0.6hsv_v:0.5
그런 다음 Python API를 사용하여 학습을 시작합니다.
훈련 예제
fromultralyticsimportYOLO# Load a COCO-pretrained YOLO11n modelmodel=YOLO("yolo11n.pt")# Train the model with custom configurationmodel.train(cfg="train_custom.yaml")
# Train the model with custom configuration
yolodetecttrainmodel="yolo11n.pt"cfg=train_custom.yaml
색 공간 증강
색조 조정(hsv_h)
범위: 0.0 - 1.0
기본값: 0.015
사용법: 이미지 색상의 관계를 유지하면서 색상을 이동합니다. The hsv_h 하이퍼파라미터는 이동 크기를 정의하며, 최종 조정값은 다음 범위에서 임의로 선택됩니다. -hsv_h 및 hsv_h. 예를 들어, 다음을 사용하면 hsv_h=0.3, 이동은 다음 범위 내에서 무작위로 선택됩니다.-0.3 에서 0.3. 위의 값의 경우 0.5, 색조 이동은 컬러 휠을 감싸므로 증강이 동일하게 보입니다. 0.5 및 -0.5.
목적: 조명 조건이 객체 모양에 큰 영향을 미칠 수 있는 실외 시나리오에 특히 유용합니다. 예를 들어, 바나나는 밝은 햇빛 아래에서는 더 노랗게 보이지만 실내에서는 더 초록색으로 보일 수 있습니다.
사용법: 이미지의 색상 강도를 수정합니다. hsv_h 하이퍼파라미터는 이동 크기를 정의하며, 최종 조정값은 다음 범위에서 임의로 선택됩니다. -hsv_s 및 hsv_s. 예를 들어, 다음을 사용하면 hsv_s=0.7, 강도는 다음 범위 내에서 임의로 선택됩니다.-0.7 에서 0.7.
목적: 모델이 다양한 날씨 조건과 카메라 설정을 처리하는 데 도움이 됩니다. 예를 들어, 빨간색 교통 표지판은 화창한 날에는 매우 선명하게 보이지만 안개가 낀 날에는 흐릿하고 희미하게 보일 수 있습니다.
사용법: 이미지의 밝기를 변경합니다. hsv_v 하이퍼파라미터는 이동 크기를 정의하며, 최종 조정값은 다음 범위에서 임의로 선택됩니다. -hsv_v 및 hsv_v. 예를 들어, 다음을 사용하면 hsv_v=0.4, 강도는 다음 범위 내에서 임의로 선택됩니다.-0.4 에서 0.4.
목적: 다양한 조명 조건에서 작동해야 하는 모델을 훈련하는 데 필수적입니다. 예를 들어, 빨간색 사과는 햇빛 아래에서는 밝게 보이지만 그늘에서는 훨씬 어둡게 보일 수 있습니다.
사용법: 지정된 범위 내에서 이미지를 임의로 회전합니다. The degrees 하이퍼파라미터는 회전 각도를 정의하며, 최종 조정값은 다음 범위에서 임의로 선택됩니다. -degrees 및 degrees. 예를 들어, 다음을 사용하면 degrees=10.0, 회전은 다음 범위 내에서 무작위로 선택됩니다.-10.0 에서 10.0.
목적: 객체가 다양한 방향으로 나타날 수 있는 애플리케이션에 매우 중요합니다. 예를 들어, 항공 드론 이미지에서 차량은 어느 방향으로든 향할 수 있으므로 모델은 회전과 관계없이 객체를 인식해야 합니다.
사용법: 이미지 크기의 임의 비율만큼 이미지를 수평 및 수직으로 이동합니다. The translate 하이퍼파라미터는 이동 크기를 정의하며, 최종 조정값은 해당 범위 내에서 (각 축에 대해 한 번씩) 두 번 임의로 선택됩니다. -translate 및 translate. 예를 들어, 다음을 사용하면 translate=0.5, 변환은 다음 범위 내에서 무작위로 선택됩니다.-0.5 에서 0.5 x축에서, 또 다른 독립적인 임의 값이 y축에서 동일한 범위 내에서 선택됩니다.
목적: 모델이 부분적으로 보이는 객체를 감지하도록 돕고 객체 위치에 대한 견고성을 향상시킵니다. 예를 들어, 차량 손상 평가 애플리케이션에서 자동차 부품은 사진작가의 위치와 거리에 따라 프레임에 전체 또는 부분적으로 나타날 수 있으며, 변환 증강은 모델이 이러한 특징의 완전성 또는 위치에 관계없이 인식하도록 가르칩니다.
참고: 간단하게 하기 위해 아래에 적용된 변환은 매번 동일하게 적용됩니다. x 및 y axes. 값 -1.0 및 1.0이미지가 프레임에서 완전히 벗어나 보이게 되므로 표시되지 않습니다.
-0.5
-0.25
0.0
0.25
0.5
스케일(scale)
범위: ≥0.0
기본값: 0.5
사용법: 지정된 범위 내에서 임의의 비율로 이미지 크기를 조정합니다. The scale 하이퍼파라미터는 스케일링 비율을 정의하며, 최종 조정값은 다음 범위에서 임의로 선택됩니다. 1-scale 및 1+scale. 예를 들어, 다음을 사용하면 scale=0.5, 스케일링은 다음 범위 내에서 무작위로 선택됩니다.0.5 에서 1.5.
목적: 모델이 다양한 거리와 크기의 객체를 처리할 수 있도록 합니다. 예를 들어, 자율 주행 애플리케이션에서 차량은 카메라로부터 다양한 거리에서 나타날 수 있으므로 모델은 크기에 관계없이 차량을 인식해야 합니다.
값 -1.0 이미지를 사라지게 하므로 표시되지 않지만, 1.0 단순히 2배 줌으로 귀결됩니다.
아래 표에 표시된 값은 하이퍼파라미터를 통해 적용된 값입니다. scale, 최종 스케일 요소가 아닙니다.
만약 scale 보다 큽니다 1.0, 이미지의 크기가 매우 작거나 뒤집힐 수 있습니다. 스케일링 요소는 다음 사이에서 임의로 선택되기 때문입니다. 1-scale 및 1+scale. 예를 들어, 다음을 사용하면 scale=3.0, 스케일링은 다음 범위 내에서 무작위로 선택됩니다.-2.0 에서 4.0음수 값을 선택하면 이미지가 뒤집힙니다.
-0.5
-0.25
0.0
0.25
0.5
밀림(shear)
범위: -180 에서 +180
기본값: 0.0
사용법: 이미지의 일부를 한 방향으로 이동시키면서 평행선을 유지하는 기하학적 변환을 도입하여 x축과 y축을 따라 이미지를 기울입니다. shear 하이퍼파라미터는 기울이기 각도를 정의하며, 최종 조정값은 다음 범위에서 임의로 선택됩니다. -shear 및 shear. 예를 들어, 다음을 사용하면 shear=10.0, 기울이기는 다음 범위 내에서 무작위로 선택됩니다.-10 에서 10 x축에서, 또 다른 독립적인 임의 값이 y축에서 동일한 범위 내에서 선택됩니다.
목적: 약간의 기울기 또는 비스듬한 시점으로 인해 발생하는 시야각 변화에 모델이 일반화되도록 돕습니다. 예를 들어, 교통 모니터링에서 자동차 및 도로 표지판과 같은 객체는 카메라 배치로 인해 기울어져 보일 수 있습니다. Shear 증강을 적용하면 모델이 이러한 왜곡에도 불구하고 객체를 인식하도록 보장합니다.
shear 값이 이미지를 빠르게 왜곡할 수 있으므로 작은 값으로 시작하여 점차적으로 늘리는 것이 좋습니다.
원근 변환과 달리, 시어는 깊이나 소실점을 도입하지 않고 반대쪽 면을 평행하게 유지하면서 각도를 변경하여 객체의 모양을 왜곡합니다.
-10
-5
0.0
5
10
원근 (perspective)
범위: 0.0 - 0.001
기본값: 0.0
사용법: x축과 y축 모두에 따라 전체 원급법 변환을 적용하여 다른 돌피 또는 각도에서 보었을 때 나타나는 방식을 시뮤레이트합니다. perspective 하이퍼파라미터는 원근감 크기를 정의하며, 최종 조정값은 다음 범위에서 임의로 선택됩니다. -perspective 및 perspective. 예를 들어, 다음을 사용하면 perspective=0.001, 원근법은 다음 범위 내에서 무작위로 선택됩니다.-0.001 에서 0.001 x축에서, 또 다른 독립적인 임의 값이 y축에서 동일한 범위 내에서 선택됩니다.
목적: 원근 증강은 특히 원근 이동으로 인해 객체가 단축되거나 왜곡되어 보이는 시나리오에서 극단적인 시점 변화를 처리하는 데 매우 중요합니다. 예를 들어, 드론 기반 객체 감지에서 건물, 도로 및 차량은 드론의 기울기 및 고도에 따라 늘어나거나 압축되어 보일 수 있습니다. 원근 변환을 적용함으로써 모델은 이러한 원근으로 인한 왜곡에도 불구하고 객체를 인식하도록 학습하여 실제 배포에서 견고성을 향상시킵니다.
사용법: y축을 기준으로 이미지를 반전시켜 수직으로 뒤집습니다. 이 변환은 전체 이미지를 위아래로 뒤집지만 객체 간의 공간적 관계는 모두 보존합니다. flipud 하이퍼파라미터는 변환 적용 확률을 정의하며, 값은 다음과 같습니다. flipud=1.0 모든 이미지가 뒤집히고 값이 flipud=0.0 변환을 완전히 비활성화합니다. 예를 들어, flipud=0.5, 각 이미지는 위아래로 뒤집힐 확률이 50%입니다.
목적: 객체가 거꾸로 나타날 수 있는 시나리오에 유용합니다. 예를 들어, 로봇 비전 시스템에서 컨베이어 벨트 또는 로봇 팔의 객체를 집어 올려 다양한 방향으로 배치할 수 있습니다. 수직 뒤집기는 모델이 상단-하단 위치에 관계없이 객체를 인식하도록 돕습니다.
사용법: 이미지를 x축을 기준으로 미러링하여 수평으로 뒤집습니다. 이 변환은 공간적 일관성을 유지하면서 좌우를 바꾸어 모델이 미러링된 방향으로 나타나는 객체에 일반화되도록 돕습니다. 다음은 fliplr 하이퍼파라미터는 변환 적용 확률을 정의하며, 값은 다음과 같습니다. fliplr=1.0 모든 이미지가 뒤집히고 값이 fliplr=0.0 변환을 완전히 비활성화합니다. 예를 들어, fliplr=0.5, 각 이미지는 좌우로 뒤집힐 확률이 50%입니다.
목적: 수평 뒤집기는 객체 감지, 자세 추정 및 얼굴 인식에서 좌우 변화에 대한 견고성을 향상시키기 위해 널리 사용됩니다. 예를 들어, 자율 주행에서 차량과 보행자는 도로 양쪽에 나타날 수 있으며 수평 뒤집기는 모델이 양쪽 방향에서 동일하게 잘 인식하도록 돕습니다.
사용법: 이미지의 색상 채널을 RGB에서 BGR로 교체하여 색상이 표현되는 순서를 변경합니다. The bgr 하이퍼파라미터는 변환 적용 확률을 정의하며, bgr=1.0 모든 이미지가 채널 스왑을 거치도록 보장하고 bgr=0.0 비활성화합니다. 예를 들어, bgr=0.5, 각 이미지는 RGB에서 BGR로 변환될 확률이 50%입니다.
목적: 다양한 색상 채널 순서에 대한 견고성을 높입니다. 예를 들어, RGB 및 BGR 형식이 일관성 없이 사용될 수 있는 다양한 카메라 시스템 및 이미징 라이브러리에서 작동해야 하는 모델을 훈련할 때 또는 입력 색상 형식이 훈련 데이터와 다를 수 있는 환경에 모델을 배포할 때 유용합니다.
사용법: 4개의 훈련 이미지를 하나로 결합합니다. mosaic 하이퍼파라미터는 변환 적용 확률을 정의하며, mosaic=1.0 모든 이미지가 결합되도록 보장하고 mosaic=0.0 변환을 비활성화합니다. 예를 들어, mosaic=0.5, 각 이미지는 다른 세 개의 이미지와 결합될 확률이 50%입니다.
목적: 작은 객체 감지 및 컨텍스트 이해를 개선하는 데 매우 효과적입니다. 예를 들어, 동물이 다양한 거리와 규모로 나타날 수 있는 야생 동물 보호 프로젝트에서 모자이크 증강은 모델이 제한된 데이터로부터 다양한 훈련 샘플을 인위적으로 생성하여 다양한 크기, 부분 폐색 및 환경 컨텍스트에서 동일한 종을 인식하도록 돕습니다.
Even if the mosaic 데이터 증강은 모델을 더욱 강력하게 만들지만 학습 과정을 더욱 어렵게 만들 수도 있습니다.
에 지정되어 있습니다. mosaic 학습 막바지에는 `augment`를 설정하여 데이터 증강을 비활성화할 수 있습니다. close_mosaic 종료해야 할 시점인 완료 전 에포크 수입니다. 예를 들어, epochs 로 설정됩니다. 200 및 close_mosaic 로 설정됩니다. 20, 'path/to/last.pt' 파일에 저장된 상태를 사용하여 중단된 위치에서부터 mosaic `close_mosaic` 이후에는 데이터 증강이 비활성화됩니다. 180 epochs. 만약 close_mosaic 로 설정됩니다. 0, 'path/to/last.pt' 파일에 저장된 상태를 사용하여 중단된 위치에서부터 mosaic 전체 학습 과정에서 데이터 증강이 활성화됩니다.
생성된 모자이크의 중심은 임의의 값을 사용하여 결정되며, 이미지 내부 또는 외부에 있을 수 있습니다.
현재 구현된 mosaic 데이터 증강은 데이터 세트에서 임의로 선택된 4개의 이미지를 결합합니다. 데이터 세트가 작은 경우 동일한 이미지가 동일한 모자이크에서 여러 번 사용될 수 있습니다.
mosaic off
mosaic 켜짐
Mixup (mixup)
범위: 0.0 - 1.0
기본값: 0.0
사용법: 주어진 확률에 따라 두 이미지와 해당 레이블을 혼합합니다. mixup 하이퍼파라미터는 변환 적용 확률을 정의하며, mixup=1.0 모든 이미지가 혼합되도록 보장하고 mixup=0.0 변환을 비활성화합니다. 예를 들어, mixup=0.5, 각 이미지는 다른 이미지와 혼합될 확률이 50%입니다.
목적: 모델 견고성을 향상시키고 과적합을 줄입니다. 예를 들어, 소매 제품 인식 시스템에서 Mixup은 모델이 다른 제품의 이미지를 혼합하여 더 강력한 특징을 학습하도록 도와 제품이 부분적으로 보이거나 혼잡한 상점 선반의 다른 제품에 의해 가려진 경우에도 항목을 식별하도록 가르칩니다.
에 지정되어 있습니다. mixup 비율은 임의로 선택된 값입니다. np.random.beta(32.0, 32.0) 베타 분포는 각 이미지가 약 50% 기여하고 약간의 변동이 있음을 의미합니다.
첫 번째 이미지, mixup off
두 번째 이미지, mixup off
mixup 켜짐
CutMix (cutmix)
범위: 0.0 - 1.0
기본값: 0.0
사용법: 한 이미지에서 직사각형 영역을 잘라내어 주어진 확률로 다른 이미지에 붙여넣습니다. cutmix 하이퍼파라미터는 변환 적용 확률을 정의하며, cutmix=1.0 모든 이미지가 이 변환을 거치도록 보장하고 cutmix=0.0 완전히 비활성화합니다. 예를 들어, cutmix=0.5, 각 이미지는 다른 이미지의 패치로 영역이 대체될 확률이 50%입니다.
목적: 로컬 특징 무결성을 유지하면서 현실적인 폐색 시나리오를 만들어 모델 성능을 향상시킵니다. 예를 들어, 자율 주행 시스템에서 CutMix는 모델이 다른 객체에 의해 부분적으로 가려진 경우에도 차량이나 보행자를 인식하도록 도와 복잡한 실제 환경에서 겹치는 객체가 있는 경우 감지 정확도를 향상시킵니다.
픽셀 값을 전역적으로 혼합하는 mixup과 달리, cutmix 잘린 영역 내에서 원래 픽셀 강도를 유지하여 로컬 특징을 보존합니다.
영역은 기존 경계 상자와 겹치지 않는 경우에만 대상 이미지에 붙여넣어집니다. 또한, 최소한 유지하는 경계 상자만 0.1 붙여넣기 영역 내에서 원래 영역의 (10%)가 유지됩니다.
현재 구현에서는 이 최소 경계 상자 면적 임계값을 변경할 수 없으며 다음과 같이 설정됩니다. 0.1 기본적으로 활성화되어 있습니다.
첫 번째 이미지, cutmix off
두 번째 이미지, cutmix off
cutmix 켜짐
분할 관련 증강
Copy-Paste (copy_paste)
범위: 0.0 - 1.0
기본값: 0.0
사용법: 분할 작업에만 적용되며, 이 증강은 지정된 확률에 따라 이미지 내부 또는 이미지 간에 객체를 복사합니다. 확률은 다음 파라미터로 제어됩니다. copy_paste_mode. 다음 copy_paste 하이퍼파라미터는 변환 적용 확률을 정의하며, copy_paste=1.0 모든 이미지가 복사되도록 보장하고 copy_paste=0.0 변환을 비활성화합니다. 예를 들어, copy_paste=0.5, 각 이미지는 다른 이미지에서 객체가 복사될 확률이 50%입니다.
목적: 특히 인스턴스 분할 작업 및 희귀 객체 클래스에 유용합니다. 예를 들어, 특정 유형의 결함이 드물게 나타나는 산업 결함 감지에서 복사-붙여넣기 증강은 이러한 희귀 결함의 발생을 한 이미지에서 다른 이미지로 복사하여 인위적으로 늘려 모델이 추가 결함 샘플 없이 이러한 과소 대표되는 사례를 더 잘 학습하도록 돕습니다.
아래 GIF에서 보듯이 copy_paste 데이터 증강은 한 이미지에서 다른 이미지로 객체를 복사하는 데 사용할 수 있습니다.
객체가 복사되면 다음에 관계없이 copy_paste_mode, 해당 IoA(Intersection over Area)는 소스 이미지의 모든 객체와 함께 계산됩니다. 모든 IoA가 다음보다 낮으면 0.3 IoA가 (30%) 이상인 경우 객체가 대상 이미지에 붙여넣어집니다. IoA 중 하나만 초과하는 경우 0.3, 객체가 대상 이미지에 붙여넣어지지 않습니다.
현재 구현에서는 IoA 임계값을 변경할 수 없으며 다음과 같이 설정됩니다. 0.3 기본적으로 활성화되어 있습니다.
copy_paste off
copy_paste 다음과 함께 켜기 copy_paste_mode=flip
다음을 시각화합니다. copy_paste 프로세스
Copy-Paste 모드 (copy_paste_mode)
옵션: 'flip', 'mixup'
기본값: 'flip'
사용법: 다음에 사용되는 방법을 결정합니다. 복사-붙여넣기 데이터 증강. `augment`를 다음으로 설정하면 'flip', 객체는 동일한 이미지에서 가져오고, 'mixup' 다른 이미지에서 객체를 복사할 수 있습니다.
IoA 원리는 둘 다 동일합니다. copy_paste_mode, 객체가 복사되는 방식은 다릅니다.
이미지 크기에 따라 객체가 프레임 밖으로 부분적으로 또는 완전히 복사될 수 있습니다.
폴리곤 어노테이션의 품질에 따라 복사된 객체의 모양이 원본과 약간 다를 수 있습니다.
참조 이미지
선택된 이미지: copy_paste
copy_paste 다음과 함께 켜기 copy_paste_mode=mixup
분류별 증강
Auto Augment (auto_augment)
옵션: 'randaugment', 'autoaugment', 'augmix', None
기본값: 'randaugment'
사용법: 분류에 대한 자동화된 오그메이션 정책을 적용합니다. 'randaugment' 옵션은 RandAugment를 사용합니다. 'autoaugment' AutoAugment를 사용하고 'augmix' AugMix를 사용합니다. 다음으로 설정: None 자동 데이터 증강을 비활성화합니다.
목적: 분류 작업을 위해 증강 전략을 자동으로 최적화합니다. 차이점은 다음과 같습니다.
AutoAugment: 이 모드는 ImageNet, CIFAR10, SVHN과 같은 데이터 세트에서 학습된 사전 정의된 증강 정책을 적용합니다. 사용자는 이러한 기존 정책을 선택할 수 있지만 Torchvision 내에서 새로운 정책을 학습할 수는 없습니다. 특정 데이터 세트에 대한 최적의 증강 전략을 찾으려면 외부 라이브러리 또는 사용자 지정 구현이 필요합니다. AutoAugment 논문을 참조하십시오.
RandAugment: 균일한 크기로 변환을 임의로 선택하여 적용합니다. 이 접근 방식은 광범위한 검색 단계의 필요성을 줄여 계산 효율성을 높이는 동시에 모델의 견고성을 향상시킵니다. RandAugment 논문을 참조하십시오.
AugMix: AugMix는 간단한 변환을 임의로 조합하여 다양한 이미지 변형을 생성함으로써 모델의 견고성을 향상시키는 데이터 증강 방법입니다. AugMix 논문을 참조하십시오.
사용법: 분류 학습 중 이미지의 일부를 임의로 지웁니다. The erasing 하이퍼파라미터는 변환 적용 확률을 정의하며, erasing=0.9 거의 모든 이미지가 지워지도록 보장합니다. erasing=0.0 변환을 비활성화합니다. 예를 들어, erasing=0.5, 각 이미지는 일부분이 지워질 확률이 50%입니다.
목적: 모델이 강력한 특징을 학습하고 특정 이미지 영역에 대한 과도한 의존을 방지하는 데 도움이 됩니다. 예를 들어, 얼굴 인식 시스템에서 임의 지우기는 모델이 선글라스, 마스크 또는 얼굴 특징을 부분적으로 가릴 수 있는 기타 객체와 같은 부분적인 폐색에 더 강력해지도록 돕습니다. 이를 통해 모델이 가려질 수 있는 고유한 특징에만 의존하지 않고 여러 얼굴 특징을 사용하여 개인을 식별하도록 하여 실제 성능을 향상시킵니다.
에 지정되어 있습니다. erasing 데이터 증강은 다음과 함께 제공됩니다. scale, ratio및 value 다음으로는 변경할 수 없는 하이퍼파라미터입니다. 현재 구현기본값은 다음과 같습니다. (0.02, 0.33), (0.3, 3.3)및 0, 각각 PyTorch에 명시된 대로 문서.
다음의 상한: erasing 하이퍼파라미터가 다음과 같이 설정됩니다. 0.9 모든 이미지에 변환을 적용하지 않도록 합니다.
erasing off
erasing (예시 1) 켜짐
erasing (예시 2) 켜짐
erasing (예시 3) 켜짐
FAQ
선택할 수 있는 증강 방법이 너무 많습니다. 어떤 것을 사용해야 하는지 어떻게 알 수 있습니까?
올바른 증강을 선택하는 것은 특정 사용 사례 및 데이터 세트에 따라 다릅니다. 결정을 내리는 데 도움이 되는 몇 가지 일반적인 지침은 다음과 같습니다.
대부분의 경우 색상과 밝기의 약간의 변화는 유익합니다. 기본값은 hsv_h, hsv_s및 hsv_v 견고한 시작점입니다.
카메라 시점이 일관되고 모델이 배포된 후 변경되지 않는 경우 다음과 같은 기하학적 변환을 건너뛸 수 있습니다. rotation, translation, scale, shear또는 perspective하지만 카메라 각도가 다양하게 변할 수 있고 모델이 더 강력해야 하는 경우 이러한 증강을 유지하는 것이 좋습니다.
다음을 사용하여 mosaic 부분적으로 가려진 객체가 있거나 이미지당 여러 객체가 있는 것이 허용되고 레이블 값이 변경되지 않는 경우에만 데이터 증강을 사용하십시오. 또는 `augment`를 유지할 수 있습니다. mosaic 활성화되지만 증가합니다. close_mosaic 훈련 과정에서 더 일찍 비활성화할 값입니다.
간단하게 유지하십시오. 작은 증강 세트로 시작하여 필요에 따라 점차적으로 더 추가하십시오. 목표는 모델의 일반화 및 견고성을 개선하는 것이지 학습 프로세스를 지나치게 복잡하게 만드는 것이 아닙니다. 또한 적용하는 증강이 모델이 프로덕션에서 접하게 될 동일한 데이터 분포를 반영하는지 확인하십시오.
훈련을 시작할 때 다음이 표시됩니다. albumentations: Blur[...] 참조. 이는 Ultralytics YOLO가 블러링과 같은 추가 증강을 실행한다는 의미인가요?
만약 albumentations 패키지가 설치되면 Ultralytics는 자동으로 일련의 추가 이미지 증강을 적용합니다. 이러한 증강은 내부적으로 처리되며 추가 구성이 필요하지 않습니다.
다음에 적용된 전체 변환 목록을 찾을 수 있습니다. 기술 문서, 뿐만 아니라 다음에서도 사용할 수 있습니다. Albumentations 통합 가이드확률이 있는 증강만 해당됩니다. p 보다 큼 0 활성 상태입니다. 흐림 또는 회색조 효과와 같은 실제 시각적 아티팩트를 모방하기 위해 의도적으로 낮은 빈도로 적용됩니다.
훈련을 시작할 때 albumentations에 대한 참조가 보이지 않습니다. 왜 그런가요?
다음을 확인하세요. albumentations 패키지가 설치되어 있는지 확인하십시오. 설치되어 있지 않은 경우 다음을 실행하여 설치할 수 있습니다. pip install albumentations일단 설치되면 Ultralytics에서 패키지를 자동으로 감지하여 사용합니다.
증강을 사용자 정의하려면 어떻게 해야 합니까?
사용자 정의 데이터 세트 클래스 및 트레이너를 생성하여 증강을 사용자 정의할 수 있습니다. 예를 들어 기본 Ultralytics 분류 증강을 PyTorch의 torchvision.transforms.Resize 또는 기타 변환으로 대체할 수 있습니다. 구현 세부 정보는 분류 문서의 사용자 정의 학습 예제를 참조하십시오.