콘텐츠로 건너뛰기

Albumentations를 사용하여 YOLO11 학습을 위한 데이터 세트 품질을 향상합니다.

컴퓨터 비전 모델을 구축할 때 학습 데이터의 품질과 다양성은 모델 성능에 큰 영향을 미칠 수 있습니다. Albumentations는 모델이 실제 시나리오에 적응하는 능력을 향상시킬 수 있는 광범위한 이미지 변환을 빠르고 유연하며 효율적으로 적용할 수 있는 방법을 제공합니다. Ultralytics YOLO11과 쉽게 통합되며 객체 감지, 세분화분류 작업을 위한 강력한 데이터 세트를 만드는 데 도움이 될 수 있습니다.

Albumentations를 사용하면 기하학적 변환 및 색상 조정과 같은 기술로 YOLO11 훈련 데이터를 향상시킬 수 있습니다. 이 문서에서는 Albumentations가 데이터 증강 프로세스를 개선하고 YOLO11 프로젝트를 더욱 효과적으로 만드는 방법을 살펴봅니다. 시작해 봅시다!

이미지 증강을 위한 Albumentations

Albumentations2018년 6월에 만들어진 오픈 소스 이미지 증강 라이브러리입니다. 컴퓨터 비전에서 이미지 증강 프로세스를 단순화하고 가속화하도록 설계되었습니다. 성능과 유연성을 염두에 두고 만들어졌으며 회전 및 뒤집기와 같은 간단한 변환부터 밝기 및 대비 변경과 같은 더 복잡한 조정에 이르기까지 다양한 증강 기술을 지원합니다. Albumentations는 개발자가 이미지 분류, 객체 감지세분화와 같은 작업을 위해 풍부하고 다양한 데이터 세트를 생성하는 데 도움이 됩니다.

Albumentations를 사용하여 이미지, 분할 마스크, 경계 상자키 포인트에 증강을 쉽게 적용하고 데이터 세트의 모든 요소가 함께 변환되도록 할 수 있습니다. PyTorchTensorFlow와 같은 널리 사용되는 딥 러닝 프레임워크와 원활하게 작동하므로 광범위한 프로젝트에 액세스할 수 있습니다.

또한 Albumentations는 소규모 데이터 세트 또는 대규모 컴퓨터 비전 작업을 처리하든 증강에 적합한 옵션입니다. 빠르고 효율적인 처리를 보장하여 데이터 준비에 소요되는 시간을 줄여줍니다. 동시에 모델 성능을 향상시켜 모델이 실제 애플리케이션에서 더욱 효과적으로 작동하도록 돕습니다.

Albumentations의 주요 기능

Albumentations는 광범위한 컴퓨터 비전 애플리케이션을 위한 복잡한 이미지 증강을 단순화하는 데 유용한 많은 기능을 제공합니다. 주요 기능은 다음과 같습니다.

  • 광범위한 변환: Albumentations는 기하학적 변경(예: 회전, 뒤집기), 색상 조정(예: 밝기, 대비) 및 노이즈 추가(예: 가우시안 노이즈)를 포함하여 70가지 이상의 다양한 변환을 제공합니다. 다양한 옵션을 통해 매우 다양하고 강력한 훈련 데이터 세트를 만들 수 있습니다.

이미지 증강 예시

  • 높은 성능 최적화: OpenCV 및 NumPy를 기반으로 하는 Albumentations는 SIMD(Single Instruction, Multiple Data)와 같은 고급 최적화 기술을 사용하여 여러 데이터 포인트를 동시에 처리하여 처리 속도를 높입니다. 대용량 데이터 세트를 빠르게 처리하여 이미지 증강에 사용할 수 있는 가장 빠른 옵션 중 하나입니다.

  • 세 가지 수준의 증강: Albumentations는 픽셀 수준 변환, 공간 수준 변환 및 혼합 수준 변환의 세 가지 수준의 증강을 지원합니다. 픽셀 수준 변환은 마스크, 경계 상자 또는 키 포인트를 변경하지 않고 입력 이미지에만 영향을 줍니다. 한편, 이미지와 마스크 및 경계 상자와 같은 요소는 공간 수준 변환을 사용하여 변환됩니다. 또한 혼합 수준 변환은 여러 이미지를 하나로 결합하므로 데이터를 보강하는 고유한 방법입니다.

다양한 수준의 증강(Augmentation) 개요

  • 벤치마킹 결과: 벤치마킹에 있어서 Albumentations는 특히 대규모 데이터 세트에서 다른 라이브러리보다 일관되게 뛰어난 성능을 보입니다.

비전 AI 프로젝트에 Albumentations를 사용해야 하는 이유는 무엇입니까?

이미지 증강과 관련하여 Albumentations는 컴퓨터 비전 작업을 위한 신뢰할 수 있는 도구로 두드러집니다. Vision AI 프로젝트에 이 도구를 사용해야 하는 몇 가지 주요 이유는 다음과 같습니다.

  • 사용하기 쉬운 API: Albumentations는 이미지, 마스크, 바운딩 박스 및 키포인트에 광범위한 증강을 적용하기 위한 간단하고 직관적인 API를 제공합니다. 다양한 데이터 세트에 쉽게 적용할 수 있도록 설계되어 데이터 준비를 더 간단하고 효율적으로 만들어 줍니다.

  • 엄격한 버그 테스트: 증강 파이프라인의 버그는 입력 데이터를 손상시킬 수 있으며, 종종 눈에 띄지 않지만 궁극적으로 모델 성능을 저하시킵니다. Albumentations는 개발 초기에 버그를 잡을 수 있도록 철저한 테스트 스위트를 통해 이 문제를 해결합니다.

  • 확장성: Albumentations는 새로운 증강을 쉽게 추가하고 내장된 변환과 함께 단일 인터페이스를 통해 컴퓨터 비전 파이프라인에서 사용할 수 있습니다.

Albumentations를 사용하여 YOLO11 훈련을 위한 데이터를 증강하는 방법

이제 Albumentations가 무엇이고 무엇을 할 수 있는지 살펴보았으므로 YOLO11 모델 훈련을 위해 이를 사용하여 데이터를 증강하는 방법을 살펴보겠습니다. Albumentations 패키지가 설치되어 있으면 Ultralytics 훈련 모드에 직접 통합되어 자동으로 적용되므로 설정이 간편합니다.

설치

YOLO11과 함께 Albumentations를 사용하려면 필요한 패키지가 설치되어 있는지 확인하십시오. Albumentations가 설치되어 있지 않으면 훈련 중에 증강이 적용되지 않습니다. 설정이 완료되면 Albumentations가 통합되어 모델을 자동으로 향상시켜 훈련을 위한 증강된 데이터 세트를 생성할 수 있습니다.

설치

# Install the required packages
pip install albumentations ultralytics

설치 프로세스와 관련된 자세한 지침 및 모범 사례는 Ultralytics 설치 가이드를 확인하십시오. YOLO11에 필요한 패키지를 설치하는 동안 어려움이 발생하면 일반적인 문제 가이드에서 해결 방법과 팁을 참조하십시오.

사용법

필요한 패키지를 설치한 후 YOLO11과 함께 Albumentations를 사용할 준비가 되었습니다. YOLO11을 훈련할 때 Albumentations와의 통합을 통해 일련의 증강이 자동으로 적용되어 모델 성능을 쉽게 향상시킬 수 있습니다.

사용법

from ultralytics import YOLO

# Load a pre-trained model
model = YOLO("yolo11n.pt")

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

다음으로, 훈련 중에 적용되는 특정 증강을 자세히 살펴보겠습니다.

흐림 효과

Albumentations의 Blur 변환은 작은 정사각형 영역 또는 커널 내에서 픽셀 값을 평균화하여 이미지에 간단한 흐림 효과를 적용합니다. 이는 OpenCV를 사용하여 수행됩니다. cv2.blur 함수는 이미지의 노이즈를 줄이는 데 도움이 되지만 이미지 세부 정보도 약간 줄입니다.

다음은 이 통합에 사용된 파라미터와 값입니다.

  • blur_limit: 흐림 효과의 크기 범위를 제어합니다. 기본 범위는 (3, 7)이며, 이는 흐림 효과의 커널 크기가 3에서 7 픽셀 사이에서 다양할 수 있음을 의미하며, 흐림 효과를 중앙에 유지하기 위해 홀수만 허용됩니다.

  • p: 흐림 효과를 적용할 확률입니다. 통합에서 p=0.01이므로 각 이미지에 이 흐림 효과가 적용될 확률은 1%입니다. 낮은 확률은 가끔씩 흐림 효과를 허용하여 모델이 이미지를 과도하게 흐리게 하지 않고 일반화하는 데 도움이 되도록 약간의 변화를 줍니다.

흐림 증대 예시

중간값 블러

Albumentations의 MedianBlur 변환은 이미지에 중간값 블러 효과를 적용하며, 이는 가장자리를 보존하면서 노이즈를 줄이는 데 특히 유용합니다. 일반적인 블러링 방법과 달리 MedianBlur는 중간값 필터를 사용하며, 이는 가장자리 주변의 선명도를 유지하면서 소금-후추 노이즈를 제거하는 데 특히 효과적입니다.

다음은 이 통합에 사용된 파라미터와 값입니다.

  • blur_limit: 이 파라미터는 흐림 커널의 최대 크기를 제어합니다. 이 통합에서 기본값은 (3, 7) 범위이며, 이는 흐림 효과의 커널 크기가 3에서 7 픽셀 사이에서 임의로 선택됨을 의미하며, 적절한 정렬을 보장하기 위해 홀수 값만 허용됩니다.

  • p: 중앙값 흐림 효과를 적용할 확률을 설정합니다. 여기서 p=0.01이므로 각 이미지에 변환이 적용될 확률은 1%입니다. 이 낮은 확률은 중앙값 흐림 효과가 드물게 사용되도록 하여 모델이 노이즈가 줄고 가장자리가 보존된 이미지를 가끔씩 보도록 하여 일반화하는 데 도움이 됩니다.

아래 이미지는 이미지에 적용된 이러한 증강의 예시를 보여줍니다.

MedianBlur 증대 예시

흑백

Albumentations의 ToGray 변환은 이미지를 흑백으로 변환하여 단일 채널 형식으로 줄이고, 선택적으로 이 채널을 복제하여 지정된 출력 채널 수와 일치시킵니다. 단순 평균에서부터 대비와 밝기를 현실적으로 인식하기 위한 고급 기술에 이르기까지 다양한 방법을 사용하여 흑백 밝기를 계산하는 방식을 조정할 수 있습니다.

다음은 이 통합에 사용된 파라미터와 값입니다.

  • num_output_channels: 출력 이미지의 채널 수를 설정합니다. 이 값이 1보다 크면 단일 회색조 채널이 복제되어 다중 채널 회색조 이미지가 생성됩니다. 기본적으로 3으로 설정되어 세 개의 동일한 채널이 있는 회색조 이미지를 제공합니다.

  • method: 흑백 변환 방법을 정의합니다. 기본 방법인 "weighted_average"는 인간의 인식과 밀접하게 일치하는 공식(0.299R + 0.587G + 0.114B)을 적용하여 자연스러운 흑백 효과를 제공합니다. "from_lab", "desaturation", "average", "max" 및 "pca"와 같은 다른 옵션은 속도, 밝기 강조 또는 세부 정보 보존에 대한 다양한 요구 사항에 따라 흑백 이미지를 만드는 대체 방법을 제공합니다.

  • p: 회색조 변환이 적용되는 빈도를 제어합니다. p=0.01인 경우 각 이미지를 회색조로 변환할 확률이 1%이므로 모델이 더 잘 일반화되도록 컬러 이미지와 회색조 이미지를 혼합할 수 있습니다.

아래 이미지는 적용된 흑백 변환의 예시를 보여줍니다.

ToGray 증대 예시

CLAHE(Contrast Limited Adaptive Histogram Equalization, 대비 제한 적응형 히스토그램 평활화)

Albumentations의 CLAHE 변환은 전체 이미지에서가 아닌 로컬 영역(타일)에서 히스토그램을 균등화하여 이미지 대비를 향상시키는 기술인 Contrast Limited Adaptive Histogram Equalization (CLAHE)을 적용합니다. CLAHE는 특히 초기 대비가 낮은 영역에서 표준 히스토그램 균등화로 인해 발생할 수 있는 과도하게 증폭된 대비를 피하면서 균형 잡힌 향상 효과를 생성합니다.

다음은 이 통합에 사용된 파라미터와 값입니다.

  • clip_limit: 대비 향상 범위를 제어합니다. 기본 범위 (1, 4)로 설정하면 각 타일에서 허용되는 최대 대비를 결정합니다. 값이 높을수록 대비가 강해지지만 노이즈가 발생할 수도 있습니다.

  • tile_grid_size: 타일 그리드의 크기를 정의합니다(일반적으로 (행, 열)로 표시). 기본값은 (8, 8)이며, 이는 이미지가 8x8 그리드로 나뉘는 것을 의미합니다. 타일 크기가 작을수록 더 국소적인 조정이 가능하고, 클수록 전체적인 균등화에 가까운 효과를 냅니다.

  • p: CLAHE를 적용할 확률입니다. 여기서 p=0.01은 대비 조정이 학습 이미지에서 가끔씩 변화를 주기 위해 드물게 적용되도록 하여 1%의 시간 동안만 향상 효과를 줍니다.

아래 이미지는 CLAHE 변환이 적용된 예시를 보여줍니다.

CLAHE 증대 예시

Albumentations에 대해 계속 학습하세요

Albumentations에 대해 더 자세히 알고 싶으시면 다음 자료에서 더 자세한 지침과 예제를 확인하십시오.

주요 내용

이 가이드에서는 이미지 증강을 위한 훌륭한 python 라이브러리인 Albumentations의 주요 측면을 살펴보았습니다. 광범위한 변환, 최적화된 성능, 다음 YOLO11 프로젝트에서 사용하는 방법에 대해 논의했습니다.

또한 다른 Ultralytics YOLO11 통합에 대해 더 알고 싶으시면 통합 가이드 페이지를 방문하십시오. 유용한 리소스와 통찰력을 많이 찾을 수 있습니다.

FAQ

데이터 증강을 개선하기 위해 Albumentations를 YOLO11과 통합하려면 어떻게 해야 합니까?

Albumentations는 YOLO11과 완벽하게 통합되며, 해당 패키지가 설치되어 있는 경우 학습 중에 자동으로 적용됩니다. 시작하는 방법은 다음과 같습니다:

# Install required packages
# !pip install albumentations ultralytics
from ultralytics import YOLO

# Load and train model with automatic augmentations
model = YOLO("yolo11n.pt")
model.train(data="coco8.yaml", epochs=100)

이 통합에는 모델 성능을 향상시키기 위해 세심하게 조정된 확률을 가진 블러, 중간값 블러, 회색조 변환 및 CLAHE와 같은 최적화된 증강이 포함됩니다.

다른 증강 라이브러리 대신 Albumentations를 사용하는 주요 이점은 무엇인가요?

Albumentations는 다음과 같은 여러 가지 이유로 두드러집니다.

  1. 성능: 뛰어난 속도를 위해 SIMD 최적화를 통해 OpenCV 및 NumPy를 기반으로 구축되었습니다.
  2. 유연성: 픽셀 수준, 공간 수준 및 혼합 수준 확대를 통해 70개 이상의 변환을 지원합니다.
  3. 호환성: PyTorchTensorFlow와 같은 널리 사용되는 프레임워크와 원활하게 작동합니다.
  4. 신뢰성: 광범위한 테스트 스위트는 자동 데이터 손상을 방지합니다.
  5. 사용 편의성: 모든 증강 유형에 대한 단일 통합 API

어떤 유형의 컴퓨터 비전 작업이 Albumentations 증강의 이점을 얻을 수 있습니까?

Albumentations는 다음을 포함한 다양한 컴퓨터 비전 작업을 향상시킵니다.

  • 객체 감지: 조명, 스케일 및 방향 변화에 대한 모델의 견고성을 향상시킵니다.
  • Instance Segmentation: 다양한 변환을 통해 마스크 예측 정확도 향상
  • 분류: 색상 및 기하학적 증강을 통해 모델 일반화 향상
  • 포즈 추정: 모델이 다양한 관점과 조명 조건에 적응하도록 돕습니다.

이 라이브러리의 다양한 증강 옵션은 강력한 모델 성능이 필요한 모든 비전 작업에 유용합니다.



📅 9개월 전에 생성됨 ✏️ 2개월 전에 업데이트됨

댓글