Meet YOLO26: next-gen vision AI.

Link to this section주석이 포함된 Computer Vision 데이터를 위한 데이터 전처리 기술#

Link to this section소개#

컴퓨터 비전 프로젝트 목표를 정의하고 데이터 수집 및 주석 작업을 마친 후, 다음 단계는 주석이 달린 데이터를 전처리하여 모델 학습을 준비하는 것입니다. 깨끗하고 일관된 데이터는 우수한 성능의 모델을 만드는 데 필수적입니다.



Watch: How to Use Data Preprocessing and Augmentation to Improve Model Accuracy in Real-World Scenarios 🚀

전처리는 이미지 크기 조정, 픽셀 값 정규화, 데이터셋 증강, 데이터를 학습/검증/테스트 세트로 분할하는 과정을 포함하는 컴퓨터 비전 프로젝트 워크플로의 한 단계입니다. 데이터를 정리하기 위한 필수 기술과 모범 사례를 살펴보겠습니다!

Link to this section데이터 전처리의 중요성#

이미 여러 고려 사항을 염두에 두고 데이터를 신중하게 수집하고 주석을 달고 있습니다. 그렇다면 무엇이 데이터 전처리를 컴퓨터 비전 프로젝트에서 그토록 중요하게 만들까요? 데이터 전처리는 계산 부하를 줄이고 모델 성능을 향상시키는 데 적합한 학습 형식으로 데이터를 가공하는 것입니다. 전처리를 통해 해결할 수 있는 원시 데이터의 일반적인 문제는 다음과 같습니다:

  • 노이즈(Noise): 데이터 내의 관련 없거나 무작위적인 변동.
  • 비일관성(Inconsistency): 이미지 크기, 형식 및 품질의 차이.
  • 불균형(Imbalance): 데이터셋 내 클래스나 카테고리의 불균등한 분포.

Link to this section데이터 전처리 기술#

데이터 전처리에서 가장 먼저 수행하는 단계 중 하나는 크기 조정(Resizing)입니다. 일부 모델은 다양한 입력 크기를 처리하도록 설계되었지만, 많은 모델이 일관된 입력 크기를 요구합니다. 이미지 크기를 조정하면 데이터가 균일해지고 계산 복잡성이 줄어듭니다.

Link to this section이미지 크기 조정#

다음 방법을 사용하여 이미지 크기를 조정할 수 있습니다:

  • 이선형 보간법(Bilinear Interpolation): 가장 가까운 픽셀 4개의 가중 평균을 구하여 픽셀 값을 매끄럽게 만듭니다.
  • 최근접 이웃(Nearest Neighbor): 평균을 구하지 않고 가장 가까운 픽셀 값을 할당하며, 이미지가 다소 거칠어지지만 계산 속도가 빠릅니다.

크기 조정을 더 쉽게 하려면 다음 도구를 사용할 수 있습니다:

  • OpenCV: 이미지 처리를 위한 광범위한 기능을 갖춘 대중적인 컴퓨터 비전 라이브러리.
  • PIL (Pillow): 이미지 파일을 열고 조작하며 저장하기 위한 Python Imaging Library.

YOLO26의 경우, 모델 학습 중 'imgsz' 매개변수를 사용하여 유연한 입력 크기를 설정할 수 있습니다. 640과 같은 특정 크기로 설정하면, 모델이 입력 이미지의 원본 종횡비를 유지하면서 가장 긴 차원이 640픽셀이 되도록 이미지 크기를 자동으로 조정합니다.

모델과 데이터셋의 특정 요구 사항을 평가하여 크기 조정이 필수적인 전처리 단계인지, 아니면 모델이 다양한 크기의 이미지를 효율적으로 처리할 수 있는지 판단할 수 있습니다.

Link to this section픽셀 값 정규화#

또 다른 전처리 기술은 정규화(Normalization)입니다. 정규화는 픽셀 값을 표준 범위로 스케일링하여 학습 중 더 빠른 수렴을 돕고 모델 성능을 향상시킵니다. 몇 가지 일반적인 정규화 기술은 다음과 같습니다:

  • Min-Max 스케일링: 픽셀 값을 0에서 1 사이의 범위로 조정합니다.
  • Z-Score 정규화: 평균과 표준 편차를 기준으로 픽셀 값을 조정합니다.

YOLO26의 경우, 모델 학습 중 전처리 파이프라인의 일부로 정규화가 원활하게 처리됩니다. YOLO26은 RGB 변환, 픽셀 값을 [0, 1] 범위로 스케일링, 사전 정의된 평균 및 표준 편차 값을 사용하는 정규화 등 여러 전처리 단계를 자동으로 수행합니다.

Link to this section데이터셋 분할#

데이터 정리가 끝나면 데이터셋을 분할할 준비가 된 것입니다. 데이터를 학습, 검증, 테스트 세트로 분할하는 것은 모델이 보지 못한 데이터에 대해 일반화 성능을 평가할 수 있도록 보장하기 위함입니다. 일반적인 분할 비율은 학습 70%, 검증 20%, 테스트 10%입니다. scikit-learn이나 TensorFlow와 같이 데이터를 분할하는 데 사용할 수 있는 다양한 도구와 라이브러리가 있습니다.

데이터셋을 분할할 때 다음 사항을 고려하십시오:

  • 데이터 분포 유지: 학습, 검증, 테스트 세트 전반에 걸쳐 클래스의 데이터 분포가 유지되도록 합니다.
  • 데이터 누수(Data Leakage) 방지: 일반적으로 데이터 증강은 데이터셋을 분할한 후에 수행합니다. 데이터 증강 및 기타 전처리는 검증 또는 테스트 세트의 정보가 모델 학습에 영향을 미치지 않도록 학습 세트에만 적용해야 합니다.
  • 클래스 균형 조정: 불균형한 데이터셋의 경우 학습 세트 내에서 소수 클래스를 오버샘플링하거나 다수 클래스를 언더샘플링하는 기술을 고려하십시오.

Link to this section데이터 증강이란 무엇인가요?#

가장 흔히 논의되는 데이터 전처리 단계는 데이터 증강(Data Augmentation)입니다. 데이터 증강은 이미지의 수정된 버전을 생성하여 데이터셋의 크기를 인위적으로 늘립니다. 데이터를 증강함으로써 과적합(overfitting)을 줄이고 모델의 일반화 성능을 높일 수 있습니다.

데이터 증강의 다른 이점은 다음과 같습니다:

  • 더욱 강력한 데이터셋 생성: 데이터 증강은 입력 데이터의 변형이나 왜곡에 대해 모델을 더욱 견고하게 만들 수 있습니다. 여기에는 조명, 방향, 스케일의 변화가 포함됩니다.
  • 비용 효율성: 데이터 증강은 새로운 데이터를 수집하고 라벨링하지 않고도 학습 데이터의 양을 늘릴 수 있는 비용 효율적인 방법입니다.
  • 데이터의 효율적 활용: 새로운 변형을 생성하여 사용 가능한 모든 데이터 포인트를 최대 잠재력까지 활용합니다.

Link to this section데이터 증강 방법#

일반적인 증강 기술로는 뒤집기(flipping), 회전(rotation), 스케일링(scaling), 색상 조정(color adjustments) 등이 있습니다. Albumentations, Imgaug, TensorFlow의 ImageDataGenerator와 같은 여러 라이브러리가 이러한 증강을 생성할 수 있습니다.

Overview of Data Augmentations

YOLO26의 경우, 데이터셋 구성 파일(.yaml 파일)을 수정하여 사용자 정의 데이터셋을 증강할 수 있습니다. 이 파일에 증강 섹션을 추가하고 데이터를 증강하려는 방법을 지정하는 매개변수를 설정할 수 있습니다.

Ultralytics YOLO26 리포지토리는 광범위한 데이터 증강을 지원합니다. 다음과 같은 다양한 변환을 적용할 수 있습니다:

  • 무작위 자르기(Random Crops)
  • 뒤집기(Flipping): 이미지를 수평 또는 수직으로 뒤집을 수 있습니다.
  • 회전(Rotation): 특정 각도로 이미지를 회전할 수 있습니다.
  • 왜곡(Distortion)

또한, 특정 매개변수를 통해 이러한 증강 기술의 강도를 조정하여 데이터 다양성을 더 높일 수 있습니다.

Link to this section전처리 사례 연구#

YOLO26을 사용하여 교통 이미지에서 다양한 유형의 차량을 감지하고 분류하는 모델 개발 프로젝트를 고려해 봅시다. 교통 이미지를 수집하고 바운딩 박스와 라벨을 주석으로 표시했습니다.

이 프로젝트의 각 전처리 단계는 다음과 같습니다:

  • 이미지 크기 조정: YOLO26은 유연한 입력 크기를 처리하고 자동으로 크기를 조정하므로 수동 크기 조정은 필요하지 않습니다. 모델이 학습 중 지정된 'imgsz' 매개변수에 따라 이미지 크기를 조정합니다.
  • 픽셀 값 정규화: YOLO26은 전처리 중에 픽셀 값을 0에서 1 사이로 자동으로 정규화하므로 별도의 작업이 필요하지 않습니다.
  • 데이터셋 분할: scikit-learn과 같은 도구를 사용하여 데이터셋을 학습(70%), 검증(20%), 테스트(10%) 세트로 나눕니다.
  • 데이터 증강: 데이터셋 구성 파일(.yaml)을 수정하여 무작위 자르기, 수평 뒤집기, 밝기 조절과 같은 데이터 증강 기술을 포함합니다.

이러한 단계를 통해 데이터셋이 잠재적인 문제 없이 준비되고 탐색적 데이터 분석(EDA)을 수행할 준비가 완료됩니다.

Link to this section탐색적 데이터 분석(EDA) 기술#

데이터셋을 전처리하고 증강한 후 다음 단계는 탐색적 데이터 분석(EDA)을 통해 통찰력을 얻는 것입니다. EDA는 통계 기술과 시각화 도구를 사용하여 데이터의 패턴과 분포를 이해합니다. 클래스 불균형이나 이상치와 같은 문제를 식별하고 추가적인 데이터 전처리나 모델 학습 조정에 대한 정보를 바탕으로 의사결정을 내릴 수 있습니다.

Link to this section통계적 EDA 기술#

통계 기술은 종종 평균, 중앙값, 표준 편차 및 범위와 같은 기본 지표를 계산하는 것으로 시작됩니다. 이러한 지표는 픽셀 강도 분포와 같은 이미지 데이터셋 속성에 대한 빠른 개요를 제공합니다. 이러한 기본 통계를 이해하면 데이터의 전반적인 품질과 특성을 파악하여 초기 단계에서 이상 현상을 포착할 수 있습니다.

Link to this section시각적 EDA 기술#

시각화는 이미지 데이터셋에 대한 EDA의 핵심입니다. 예를 들어 클래스 불균형 분석은 EDA의 또 다른 중요한 측면입니다. 데이터셋에서 특정 클래스가 충분히 대표되지 않는지 판단하는 데 도움이 됩니다. 막대 차트를 사용하여 서로 다른 이미지 클래스나 카테고리의 분포를 시각화하면 불균형을 빠르게 확인할 수 있습니다. 유사하게, 이상치는 픽셀 강도나 특징 분포의 이상 징후를 강조하는 박스 플롯과 같은 시각화 도구를 사용하여 식별할 수 있습니다. 이상치 감지는 비정상적인 데이터 포인트가 결과를 왜곡하는 것을 방지합니다.

일반적인 시각화 도구는 다음과 같습니다:

  • 히스토그램 및 박스 플롯: 픽셀 값의 분포를 이해하고 이상치를 식별하는 데 유용합니다.
  • 산점도(Scatter Plots): 이미지 특징이나 주석 간의 관계를 탐색하는 데 도움이 됩니다.
  • 히트맵(Heatmaps): 픽셀 강도의 분포나 이미지 내 주석이 달린 특징의 공간적 분포를 시각화하는 데 효과적입니다.

Link to this sectionEDA를 위한 Ultralytics Platform 활용#

코드 없는(no-code) 방식의 EDA를 원하시면 Ultralytics Platform에 데이터셋을 업로드하십시오. 데이터셋의 Charts 탭은 분할 분포, 상위 클래스 개수, 이미지 너비/높이 히스토그램, 주석 위치 및 이미지 치수의 2D 히트맵 등 위에서 설명한 시각화를 자동으로 생성합니다. Images 탭에서는 주석 오버레이가 포함된 격자, 간소화 또는 표 보기 형식으로 데이터를 탐색할 수 있어, 단 한 줄의 코드도 작성하지 않고도 잘못 라벨링된 예시나 불균형한 클래스를 쉽게 발견할 수 있습니다.

Link to this section소통 및 연결#

다른 컴퓨터 비전 애호가들과 프로젝트에 대해 토론하면 다양한 관점에서 새로운 아이디어를 얻을 수 있습니다. 다음은 학습, 문제 해결 및 네트워킹을 위한 훌륭한 방법입니다:

Link to this section커뮤니티와 연결하는 채널#

  • GitHub Issues: YOLO26 GitHub 리포지토리를 방문하여 Issues 탭을 통해 질문을 제기하고, 버그를 보고하며, 기능을 제안하세요. 커뮤니티와 메인테이너들이 직면한 모든 문제에 대해 도움을 드릴 것입니다.
  • Ultralytics Discord 서버: Ultralytics Discord 서버에 가입하여 다른 사용자 및 개발자와 소통하고, 지원을 받으며, 지식을 공유하고 아이디어를 브레인스토밍하십시오.

Link to this section공식 문서#

  • Ultralytics YOLO26 문서: 수많은 컴퓨터 비전 작업과 프로젝트에 대한 철저한 가이드와 가치 있는 통찰력을 얻으려면 공식 YOLO26 문서를 참조하십시오.

Link to this section데이터셋이 준비되었습니다!#

적절하게 크기가 조정되고 정규화되며 증강된 데이터는 노이즈를 줄이고 일반화 성능을 향상시켜 모델 성능을 개선합니다. 이 가이드에 요약된 전처리 기술과 모범 사례를 따르면 탄탄한 데이터셋을 구축할 수 있습니다. 전처리된 데이터셋이 준비되었으므로, 다음 프로젝트 단계로 자신 있게 나아갈 수 있습니다.

Link to this sectionFAQ#

Link to this section컴퓨터 비전 프로젝트에서 데이터 전처리의 중요성은 무엇인가요?#

데이터 전처리는 데이터를 깨끗하고 일관되게 유지하며 모델 학습에 최적화된 형식을 보장하므로 컴퓨터 비전 프로젝트에서 필수적입니다. 원시 데이터의 노이즈, 비일관성, 불균형과 같은 문제를 해결함으로써 크기 조정, 정규화, 증강, 데이터셋 분할과 같은 전처리 단계는 계산 부하를 줄이고 모델 성능을 향상시킵니다. 자세한 내용은 컴퓨터 비전 프로젝트 단계를 방문하십시오.

Link to this section데이터 증강을 위해 Ultralytics YOLO를 어떻게 사용하나요?#

Ultralytics YOLO26을 이용한 데이터 증강을 위해서는 데이터셋 구성 파일(.yaml)을 수정해야 합니다. 이 파일에서 무작위 자르기, 수평 뒤집기, 밝기 조절과 같은 다양한 증강 기술을 지정할 수 있습니다. 이는 여기 설명된 학습 구성을 사용하여 효과적으로 수행할 수 있습니다. 데이터 증강은 더욱 견고한 데이터셋을 만들고, 과적합(overfitting)을 줄이며, 모델의 일반화 성능을 향상시키는 데 도움이 됩니다.

Link to this section컴퓨터 비전 데이터를 위한 최고의 데이터 정규화 기술은 무엇인가요?#

정규화는 학습 중 더 빠른 수렴과 성능 향상을 위해 픽셀 값을 표준 범위로 스케일링합니다. 일반적인 기술은 다음과 같습니다:

  • Min-Max 스케일링: 픽셀 값을 0에서 1 사이의 범위로 조정합니다.
  • Z-Score 정규화: 평균과 표준 편차를 기준으로 픽셀 값을 조정합니다.

YOLO26의 경우 RGB 변환 및 픽셀 값 스케일링을 포함하여 정규화가 자동으로 처리됩니다. 자세한 내용은 모델 학습 섹션에서 확인하십시오.

Link to this section학습을 위해 주석이 달린 데이터셋을 어떻게 분할해야 하나요?#

데이터셋을 분할할 때 일반적인 관행은 학습 70%, 검증 20%, 테스트 10%로 나누는 것입니다. 이러한 분할 전반에 걸쳐 클래스의 데이터 분포를 유지하고, 학습 세트에만 증강을 수행하여 데이터 누수를 방지하는 것이 중요합니다. 효율적인 데이터셋 분할을 위해 scikit-learn 또는 TensorFlow와 같은 도구를 사용하십시오. 데이터셋 준비에 대한 자세한 가이드를 참조하십시오.

Link to this section수동 크기 조정 없이 YOLO26에서 다양한 이미지 크기를 처리할 수 있나요?#

네, Ultralytics YOLO26은 모델 학습 중 'imgsz' 매개변수를 통해 다양한 이미지 크기를 처리할 수 있습니다. 이 매개변수는 이미지의 종횡비를 유지하면서 가장 긴 차원이 지정된 크기(예: 640픽셀)와 일치하도록 이미지 크기를 조정합니다. 더 유연한 입력 처리 및 자동 조정을 원하시면 모델 학습 섹션을 확인하십시오.

댓글