콘텐츠로 건너뛰기

주석이 달린 컴퓨터 비전 데이터를 위한 데이터 전처리 기술

소개

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

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

데이터 전처리의 중요성

우리는 이미 여러 가지 고려 사항을 염두에 두고 신중하게 데이터를 수집하고 주석을 달고 있습니다. 그렇다면 컴퓨터 비전 프로젝트에서 데이터 전처리가 중요한 이유는 무엇일까요? 데이터 전처리는 데이터를 학습에 적합한 형식으로 변환하여 계산 부하를 줄이고 모델 성능을 개선하는 데 도움이 됩니다. 다음은 전처리를 통해 해결할 수 있는 원시 데이터의 몇 가지 일반적인 문제입니다:

  • 노이즈: 데이터의 관련성이 없거나 무작위적인 변동입니다.
  • 불일치: 이미지 크기, 형식 및 품질이 다양합니다.
  • 불균형: 데이터 집합에서 클래스 또는 카테고리의 분포가 불균형한 경우.

데이터 전처리 기술

데이터 전처리의 가장 중요한 첫 번째 단계 중 하나는 크기 조정입니다. 일부 모델은 다양한 입력 크기를 처리하도록 설계되었지만, 대부분의 모델은 일정한 입력 크기를 필요로 합니다. 이미지 크기를 조정하면 이미지가 균일해지고 계산 복잡성이 줄어듭니다.

이미지 크기 조정

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

  • 이중 선형 보간: 가장 가까운 4개의 픽셀 값의 가중 평균을 구하여 픽셀 값을 부드럽게 합니다.
  • 가장 가까운 이웃: 평균화하지 않고 가장 가까운 픽셀 값을 할당하여 이미지가 뭉개지지만 계산 속도가 빨라집니다.

크기를 조정하는 작업을 더 간단하게 하려면 다음 도구를 사용할 수 있습니다:

  • OpenCV: 이미지 처리를 위한 광범위한 기능을 갖춘 인기 있는 컴퓨터 비전 라이브러리입니다.
  • PIL(필): 이미지 파일을 열고, 조작하고, 저장하기 위한 Python 이미징 라이브러리입니다.

YOLO11 와 관련하여 모델 학습 중 'imgsz' 매개변수를 사용하면 입력 크기를 유연하게 조정할 수 있습니다. 640과 같은 특정 크기로 설정하면 모델은 원래 종횡비를 유지하면서 입력 이미지의 최대 크기가 640픽셀이 되도록 크기를 조정합니다.

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

픽셀 값 정규화

또 다른 전처리 기법은 정규화입니다. 정규화는 픽셀 값을 표준 범위로 조정하여 학습 중에 더 빠르게 수렴하고 모델 성능을 개선하는 데 도움이 됩니다. 다음은 몇 가지 일반적인 정규화 기법입니다:

  • 최소-최대 스케일링: 픽셀 값을 0에서 1 범위로 스케일링합니다.
  • Z-점수 정규화: 픽셀 값의 평균과 표준 편차를 기준으로 픽셀 값의 배율을 조정합니다.

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

데이터 집합 분할

데이터를 정리했으면 데이터 세트를 분할할 준비가 된 것입니다. 데이터를 학습, 검증 및 테스트 세트로 분할하는 것은 보이지 않는 데이터에 대해 모델을 평가하여 일반화 성능을 평가할 수 있도록 하기 위해 수행됩니다. 일반적인 분할은 훈련용 70%, 검증용 20%, 테스트용 10%입니다. 데이터를 분할하는 데 사용할 수 있는 다양한 도구와 라이브러리가 있는데, Scikit-Learn이나 TensorFlow.

데이터 집합을 분할할 때 다음 사항을 고려하세요:

  • 데이터 배포 유지: 교육, 유효성 검사 및 테스트 세트에서 클래스의 데이터 배포가 유지되는지 확인합니다.
  • 데이터 유출 방지: 일반적으로 데이터 증강은 데이터 세트가 분할된 후에 수행됩니다. 데이터 보강 및 기타 전처리는 유효성 검사 또는 테스트 세트의 정보가 모델 학습에 영향을 미치지 않도록 학습 세트에만 적용해야 합니다.
  • 클래스 균형 맞추기: 불균형한 데이터 세트의 경우, 학습 세트 내에서 소수 클래스를 오버샘플링하거나 다수 클래스를 언더샘플링하는 등의 기법을 고려하세요.

데이터 증강이란 무엇인가요?

가장 일반적으로 논의되는 데이터 전처리 단계는 데이터 증강입니다. 데이터 증강은 이미지의 수정된 버전을 생성하여 데이터 세트의 크기를 인위적으로 증가시킵니다. 데이터를 보강하면 과적합을 줄이고 모델 일반화를 개선할 수 있습니다.

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

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

데이터 증강 방법

일반적인 증강 기술에는 뒤집기, 회전, 크기 조정 및 색상 조정이 포함됩니다. Albumentations, Imgaug, TensorFlow ImageDataGenerator와 같은 여러 라이브러리에서 이러한 증강을 생성할 수 있습니다.

데이터 증강 개요

YOLO11 와 관련하여 데이터 세트 구성 파일인 .yaml 파일을 수정하여 사용자 정의 데이터 세트를 보강할 수 있습니다. 이 파일에서 데이터를 보강하는 방법을 지정하는 매개변수가 있는 보강 섹션을 추가할 수 있습니다.

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

  • 무작위 자르기
  • 뒤집기: 이미지를 가로 또는 세로로 뒤집을 수 있습니다.
  • 회전: 회전: 이미지를 특정 각도로 회전할 수 있습니다.
  • 왜곡

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

전처리 사례 연구

YOLO11 을 사용하여 교통 이미지에서 다양한 유형의 차량을 감지하고 분류하는 모델을 개발하는 프로젝트를 예로 들어 보겠습니다. 교통 이미지를 수집하고 경계 상자와 레이블로 주석을 달았습니다.

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

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

이러한 단계를 통해 데이터 집합이 잠재적인 문제 없이 준비되고 탐색적 데이터 분석(EDA)에 사용할 준비가 되었는지 확인할 수 있습니다.

탐색적 데이터 분석 기법

데이터 집합을 전처리하고 보강한 다음 단계는 탐색적 데이터 분석을 통해 인사이트를 얻는 것입니다. EDA는 통계 기법과 시각화 도구를 사용해 데이터의 패턴과 분포를 이해합니다. 클래스 불균형이나 이상값과 같은 문제를 파악하고 추가 데이터 전처리 또는 모델 학습 조정에 대한 정보에 입각한 결정을 내릴 수 있습니다.

통계적 EDA 기법

통계 기법은 평균, 중앙값, 표준 편차, 범위와 같은 기본 메트릭을 계산하는 것으로 시작하는 경우가 많습니다. 이러한 메트릭은 픽셀 강도 분포와 같은 이미지 데이터 세트의 속성에 대한 간략한 개요를 제공합니다. 이러한 기본 통계를 이해하면 데이터의 전반적인 품질과 특성을 파악하여 비정상적인 부분을 조기에 발견할 수 있습니다.

시각적 EDA 기술

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

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

  • 히스토그램 및 박스 플롯: 픽셀 값의 분포를 이해하고 이상값을 식별하는 데 유용합니다.
  • 분산형 차트: 이미지 기능 또는 주석 간의 관계를 탐색하는 데 유용합니다.
  • 히트맵: 픽셀 강도의 분포 또는 이미지 내 주석이 달린 특징의 공간적 분포를 시각화하는 데 효과적입니다.

EDA용 Ultralytics 탐색기 사용

커뮤니티 노트 ⚠️

기준 ultralytics>=8.3.10, Ultralytics 탐색기 지원은 더 이상 사용되지 않습니다. 하지만 걱정하지 마세요! 이제 다음을 통해 유사하거나 더욱 향상된 기능에 액세스할 수 있습니다. Ultralytics HUB는 워크플로우를 간소화하도록 설계된 직관적인 노코드 플랫폼입니다. Ultralytics HUB를 사용하면 코드 한 줄 작성하지 않고도 데이터를 손쉽게 탐색, 시각화, 관리할 수 있습니다. 꼭 확인하시고 강력한 기능을 활용해 보세요!

EDA에 대한 고급 접근 방식을 원한다면 Ultralytics 탐색기 도구를 사용할 수 있습니다. 이 도구는 컴퓨터 비전 데이터 세트 탐색을 위한 강력한 기능을 제공합니다. 이 도구는 시맨틱 검색, SQL 쿼리, 벡터 유사성 검색을 지원하여 데이터를 쉽게 분석하고 이해할 수 있게 해줍니다. Ultralytics Explorer를 사용하면 사용자 친화적인 그래픽 인터페이스를 통해 데이터 세트에 대한 임베딩을 생성하여 유사한 이미지를 찾고, 세부 분석을 위한 SQL 쿼리를 실행하고, 시맨틱 검색을 수행할 수 있습니다.

Ultralytics 탐색기 개요

연락하고 연결하기

다른 컴퓨터 비전 애호가들과 프로젝트에 대해 토론하면 다양한 관점에서 새로운 아이디어를 얻을 수 있습니다. 다음은 배우고, 문제를 해결하고, 네트워크를 형성할 수 있는 몇 가지 좋은 방법입니다:

커뮤니티와 소통할 수 있는 채널

  • GitHub 이슈: YOLO11 GitHub 리포지토리를 방문하여 이슈 탭을 사용하여 질문을 제기하고, 버그를 신고하고, 기능을 제안하세요. 커뮤니티와 관리자가 문제를 해결해 드립니다.
  • Ultralytics 디스코드 서버: Ultralytics Discord 서버에 가입하여 다른 사용자 및 개발자와 연결하고, 지원을 받고, 지식을 공유하고, 아이디어를 브레인스토밍하세요.

공식 문서

  • Ultralytics YOLO11 문서: 공식 문서( YOLO11 )를 참조하여 다양한 컴퓨터 비전 작업과 프로젝트에 대한 자세한 가이드와 유용한 인사이트를 확인하세요.

데이터 세트가 준비되었습니다!

적절한 크기 조정, 정규화 및 증강 데이터는 노이즈를 줄이고 일반화를 개선하여 모델 성능을 향상시킵니다. 이 가이드에 설명된 전처리 기법과 모범 사례를 따르면 견고한 데이터 집합을 만들 수 있습니다. 전처리된 데이터 세트가 준비되면 프로젝트의 다음 단계로 자신 있게 진행할 수 있습니다.

자주 묻는 질문

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

데이터 전처리는 데이터가 깨끗하고 일관되며 모델 학습에 최적화된 형식으로 유지되도록 하기 때문에 컴퓨터 비전 프로젝트에서 필수적입니다. 원시 데이터의 노이즈, 불일치, 불균형 등의 문제를 해결함으로써 크기 조정, 정규화, 증강, 데이터 세트 분할과 같은 전처리 단계는 계산 부하를 줄이고 모델 성능을 개선하는 데 도움이 됩니다. 자세한 내용은 컴퓨터 비전 프로젝트의 단계를 참조하세요.

데이터 증강을 위해 Ultralytics YOLO 을 사용하려면 어떻게 해야 하나요?

Ultralytics YOLO11 을 사용하여 데이터를 확대하려면 데이터 세트 구성 파일(.yaml)을 수정해야 합니다. 이 파일에서 무작위 자르기, 수평 뒤집기, 밝기 조정 등 다양한 증강 기법을 지정할 수 있습니다. 이는 여기에 설명된 학습 구성을 사용하여 효과적으로 수행할 수 있습니다. 데이터 증강은 보다 강력한 데이터 세트를 생성하고, 과적합을 줄이고, 모델 일반화를 개선하는 데 도움이 됩니다.

컴퓨터 비전 데이터에 가장 적합한 데이터 정규화 기법은 무엇인가요?

정규화는 픽셀 값을 표준 범위에 맞게 조정하여 학습 중에 더 빠르게 수렴하고 성능을 향상시킵니다. 일반적인 기법에는 다음이 포함됩니다:

  • 최소-최대 스케일링: 픽셀 값을 0에서 1 범위로 스케일링합니다.
  • Z-점수 정규화: 픽셀 값의 평균과 표준 편차를 기준으로 픽셀 값의 배율을 조정합니다.

YOLO11 의 경우 RGB로의 변환 및 픽셀 값 스케일링을 포함한 정규화가 자동으로 처리됩니다. 모델 훈련 섹션에서 자세히 알아보세요.

훈련을 위해 주석이 달린 데이터 집합을 어떻게 분할해야 하나요?

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

YOLO11 에서 수동 크기 조정 없이 다양한 이미지 크기를 처리할 수 있나요?

예, Ultralytics YOLO11 은 모델 학습 중에 'imgsz' 파라미터를 통해 다양한 이미지 크기를 처리할 수 있습니다. 이 매개변수는 가로 세로 비율을 유지하면서 이미지의 가장 큰 크기가 지정된 크기(예: 640픽셀)와 일치하도록 이미지 크기를 조정할 수 있도록 합니다. 보다 유연한 입력 처리 및 자동 조정에 대한 자세한 내용은 모델 훈련 섹션을 참조하세요.

9개월 전 생성됨 ✏️ 업데이트됨 7일 전

댓글