> 기술 주변기기 > 일체 포함 > Image AI 프로젝트를 위한 데이터 세트를 준비하는 7단계

Image AI 프로젝트를 위한 데이터 세트를 준비하는 7단계

WBOY
풀어 주다: 2023-09-26 23:45:04
앞으로
965명이 탐색했습니다.

번역가 | Chen Jun

Chonglou | Reviewed

머신러닝 프로젝트에서 가장 간과되는 부분이 데이터 세트라는 점을 눈치채셨는지 궁금합니다. 대부분의 사람들에게 데이터 세트는 빠르게 조합되거나 다운로드된 미리 만들어진 이미지 모음에 지나지 않습니다. 실제로 데이터세트는 모든 이미지 기반 인공지능(AI) 프로젝트의 초석입니다. 높은 정확성을 목표로 하는 모든 기계 학습 프로젝트의 경우 균형 있고 잘 구조화된 데이터 세트를 생성하고 관리하는 것이 중요합니다.

하지만 데이터 세트를 만드는 것은 수백 장의 이미지를 수집하는 것만큼 간단하지 않습니다. AI 프로젝트를 시작하려고 할 때 우리는 다양한 숨겨진 위험에 직면할 가능성이 높습니다. 아래에서는 데이터 세트 크기의 중요성, 데이터 누락 가능성, 데이터 세트를 데이터베이스로 변환하는 방법에 대한 통찰력을 얻을 수 있도록 자신만의 데이터 세트를 만들기 위해 취할 수 있는 7가지 일반적인 단계에 대해 설명합니다.

참고: 이 단계는 주로 이미지 데이터 세트가 포함된 객체 감지 및 분류 프로젝트에 적용됩니다. NLP 또는 그래픽 프로젝트와 같은 다른 프로젝트 유형에는 다른 접근 방식이 필요합니다.

단계 1: 이미지 크기

일반적으로 신경망은 특정 크기의 이미지만 처리할 수 있으며 임계값을 초과하는 이미지는 강제로 축소됩니다. 즉, 데이터 세트를 사용하기 전에 적합한 신경망을 선택하고 이에 따라 이미지 크기를 조정해야 합니다.

아시다시피, 이미지 크기를 줄이면 정확도가 크게 떨어질 수 있습니다. 이미지의 물체가 사라져 전체 인식 프로세스가 손상됩니다. 아래와 같이 방범카메라가 촬영한 이미지에서 번호판번호를 검출해야 하는데, 번호판은 전체 이미지에서 아주 작은 부분만을 차지합니다. 따라서 신경망이 이미지를 축소하면 번호판 번호가 매우 작아져 인식할 수 없게 될 수 있습니다

Image AI 프로젝트를 위한 데이터 세트를 준비하는 7단계

아래 그림과 같이 네트워크가 사용할 수 있는 이미지 크기를 이해할 수 있다면 , 적절한 데이터 세트 이미지를 자르는 데 도움이 됩니다.

Image AI 프로젝트를 위한 데이터 세트를 준비하는 7단계

대부분의 신경망은 더 작은 이미지 크기를 처리할 수 있지만 Yolo v5x6과 같은 최신 신경망은 더 큰 해상도의 이미지를 처리할 수 있습니다. 예를 들어, Yolo v5xs6은 최대 1280 픽셀 너비의 이미지를 처리할 수 있습니다.

단계 2: 귀하의 환경

을 이해합니다. 데이터 세트가 작동 중에 신경망이 인식해야 하는 실제 이미지를 정확하게 반영하도록 하기 위해, 데이터를 설정할 때 다음 요소에 유의해야 합니다.

  1. 카메라 종류, 스마트폰 카메라인지 보안 카메라인지
  2. 이미지 크기
  3. 카메라의 위치는 실내인가요, 아니면 실외인가요?
  4. 날씨 조건, 예: 빛, 비, 안개, 눈 등

신경망에서 처리할 실제 이미지를 명확하게 이해하면 관심 객체와 환경을 정확하게 반영하는 데이터 세트를 만들 수 있습니다.

Google에서 일반적인 이미지를 수집하는 것은 대규모 데이터세트를 구성하는 가장 쉽고 빠른 방법으로 간주될 수 있습니다. 그러나 이 방법은 실제로 높은 정확도 요구 사항을 달성하기 어렵습니다. 아래 그림에서 볼 수 있듯이, 실제 카메라로 촬영한 이미지에 비해 구글이나 사진 데이터베이스의 이미지는 대개 "아름답다"로 처리

Image AI 프로젝트를 위한 데이터 세트를 준비하는 7단계

하고, 너무 "예쁘다"는 데이터세트가 결과로 나올 가능성이 높습니다. 더 높은 테스트 정확도. 즉, 신경망은 테스트 데이터(데이터 세트에서 정제된 이미지 모음)에서만 잘 작동하지만 실제 조건에서는 제대로 작동하지 않아 정확도가 떨어집니다.

단계 3: 형식 지정 및 주석

주의해야 할 또 다른 중요한 측면은 이미지의 형식입니다. 프로젝트를 시작하기 전에 선택한 프레임워크가 지원하는 형식과 이미지가 이러한 요구 사항을 충족할 수 있는지 확인하세요. 현재 프레임워크는 여러 이미지 형식을 지원할 수 있지만 .jfif과 같은 형식에는 여전히 문제가 있습니다.

주석 데이터를 사용하여 경계 상자, 파일 이름 및 채택할 수 있는 다양한 구조를 지정할 수 있습니다. 일반적으로 다양한 신경망과 프레임워크에는 다양한 주석 방법이 필요합니다. 일부는 경계 상자 위치가 포함된 절대 좌표가 필요하고, 일부는 상대 좌표가 필요합니다. 일부는 각 이미지에 주석이 포함된 별도의 .txt 파일이 필요하고, 일부는 주석이 포함된 단일 .txt

파일만 필요합니다. 모든 주석. 보시다시피 데이터 세트에 좋은 이미지가 있더라도 프레임워크가 주석을 처리할 수 없으면 도움이 되지 않습니다.

단계 4训: 교육 및 검증 하위 집합

교육 목적으로 데이터 세트는 일반적으로 두 개의 하위 집합으로 나뉩니다.

    교육 하위 집합
  1. - 그것은 이미지 세트. 신경망은 이 이미지 세트에 대해 훈련됩니다. 비율은 전체 이미지 수의 70% 에서 80%입니다.
  2. Validation Subset
  3. - 은 훈련 중에 신경망이 얼마나 잘 학습하는지 확인하는 데 사용되는 작은 이미지 세트입니다. 그 비율은 전체 이미지 수의 20% 에서 30% 사이입니다.

Image AI 프로젝트를 위한 데이터 세트를 준비하는 7단계

일반적으로 신경망은 훈련 하위 집합에서 추출된 객체 특징을 사용하여 객체의 모양을 "학습"합니다. 즉, 훈련 기간(에포크) 후에 신경망은 데이터의 검증 하위 집합을 살펴보고 어떤 객체를 "볼" 수 있는지 추측하려고 시도합니다. 추측이 맞든 틀렸든 그 구조를 통해 신경망은 더 깊이 있는 학습을 할 수 있습니다.

이 접근 방식은 널리 사용되어 좋은 결과를 얻는 것으로 입증되었지만 우리는 다음과 같이 데이터 세트를 하위 집합으로 나누는 다른 접근 방식을 선호합니다. 전체 이미지 수의 70%

테스트 데이터세트

- 대략

10
  1. % 테스트 하위 집합에는 다음과 같은 데이터 세트의 이미지가 포함되어 있으므로 신경망은 본 적이 없습니다. 개발자는 이 하위 집합에서 모델을 테스트하여 수동으로 실행할 때 성능이 얼마나 좋은지, 어떤 이미지에 어려움이 있는지 확인할 수 있습니다. 즉, 이 하위 집합은 프로젝트가 시작되기 전에 신경망이 실수할 수 있는 위치를 찾는 데 도움이 되므로 프로젝트가 시작된 후 과도한 재교육을 방지할 수 있습니다. 5
  2. : Datamissing 기계 학습 알고리즘을 훈련하는 데 사용하는 데이터에 예측하려는 정보가 포함되어 있으면 데이터 유출이 발생할 수 있습니다. 아래 그림에서 볼 수 있듯이, 이미지 인식 관점에서 보면 훈련 및 검증 하위 집합에 있는 동일한 개체의 사진이 매우 유사한 경우 데이터 유출이 발생합니다. 분명히 누락된 데이터는 신경망의 품질에 극도로 해롭습니다.
  3. 기본적으로 모델은 훈련 데이터 세트에서 이미지를 보고 해당 특징을 추출한 다음 검증 데이터 세트로 이동하여 본 것이 정확히 동일한(또는 매우 유사한) 이미지임을 발견합니다. 따라서 모델이 실제로 학습을 하고 있다고 하기보다는 단순히 다양한 정보를 기억하고 있다고 표현하는 것이 더 정확할 것입니다. 때로는 이로 인해 검증 데이터 세트에서 엄청나게 높은 정확도(예: 98%)가 발생하지만 프로덕션에서는 정확도가 매우 낮습니다.
  4. 가장 일반적으로 사용되는 데이터 세트 분할 방법 중 하나는 데이터를 무작위로 섞은 다음 이미지의 첫 번째

70% Image AI 프로젝트를 위한 데이터 세트를 준비하는 7단계

를 훈련 하위 세트로 선택하고 나머지

30% 을 선택하는 것입니다. 그런 다음 이를 검증 하위 집합에 넣습니다. 이 방법을 사용하면 데이터가 쉽게 누락될 수 있습니다. 아래 그림에 표시된 것처럼 우리의 즉각적인 우선 순위는 데이터 세트에서 모든 "중복" 사진을 제거하고 두 하위 세트에 유사한 사진이 있는지 확인하는 것입니다.

이를 위해 간단한 스크립트를 사용하여 자동으로 중복 삭제를 수행할 수 있습니다. 물론, 중복 임계값을 조정할 수 있습니다. 예를 들어, 완전히 중복된 사진이나 최대 90% 유사도가 있는 사진만 삭제할 수 있습니다. 일반적으로 중복된 콘텐츠를 더 많이 제거할수록 신경망이 더 정확하게 생성됩니다.

단계 6: 대규모 데이터 세트 데이터베이스

데이터 세트가 상당히 큰 경우(예: 10million 이미지 및 개수 10개의 개체 클래스와 하위 클래스가 있으므로 데이터 세트 정보를 저장할 간단한 데이터베이스를 만드는 것이 좋습니다. 그 이유는 실제로 매우 간단합니다. 대규모 데이터 세트의 경우 모든 데이터를 추적하기가 어렵습니다. 따라서 데이터를 체계적으로 처리하지 않으면 데이터를 정확하게 분석할 수 없습니다.

데이터베이스를 통해 데이터 세트를 신속하게 진단하고 다음 사항을 확인할 수 있습니다. 특정 카테고리에 사진이 너무 적으면 신경망이 개체를 인식하기 어려워지고 카테고리 간 사진 분포가 균일하지 않습니다. 특정 카테고리에서는 충분합니다. Google 이미지가 너무 많아 해당 카테고리의 정확도 점수가 낮습니다.

간단한 데이터베이스를 사용하면 다음 정보를 포함할 수 있습니다.

  1. 파일 이름
  2. 파일 경로
  3. 주석 데이터
  4. 종류 data
  5. 데이터 소스(프로덕션 환경, Google 등)
  6. 객체 유형, 이름 및 기타 객체 관련 정보

데이터베이스는 데이터 세트 수집에 필수적입니다. 및 통계 데이터 도구입니다. 이를 통해 데이터세트의 균형이 얼마나 잘 잡혀 있는지, 각 범주에 고품질 이미지가 몇 개 있는지(신경망 관점에서) 빠르고 쉽게 확인할 수 있습니다. 아래에 시각적으로 제시된 것과 같은 데이터를 사용하면 더 빠르게 분석하고 인식 결과와 비교하여 정확도가 낮은 근본 원인을 찾을 수 있습니다

Image AI 프로젝트를 위한 데이터 세트를 준비하는 7단계

다시 작성해야 할 내용은 다음과 같습니다. 주목할 만한 문제는 정확도가 낮은 이유가 특정 카테고리에서 이미지 수가 적거나 Google 포토의 비율이 높기 때문일 수 있다는 것입니다. 이러한 데이터베이스를 생성하면 생산, 테스트 및 모델 재교육 시간을 크게 줄일 수 있습니다. 이미지 기술, 데이터 증대는 뒤집기나 스타일 변환 등을 통해 데이터에 대해 간단하거나 복잡한 변환을 수행하는 프로세스로, 데이터의 유효성을 향상시킬 수 있습니다. 이를 기반으로 얻은 효과적인 데이터 세트는 과도한 훈련이 필요하지 않습니다. 아래 이미지에 표시된 것처럼 이러한 유형의 데이터 변환은 단순히 이미지를 90

회전하는 것처럼 간단할 수도 있고 이미지에 태양 플레어를 추가하여 백라이트 사진이나 렌즈 플레어를 시뮬레이션하는 것처럼 복잡할 수도 있습니다.

일반적으로 이러한 향상된 변환은 자동으로 수행됩니다. 예를 들어, 데이터 증대를 위해 특별히 Python

라이브러리를 준비할 수 있습니다. 현재 데이터 증대에는 두 가지 유형이 있습니다. 사전 학습 증대

-

Image AI 프로젝트를 위한 데이터 세트를 준비하는 7단계 학습 프로세스가 시작되기 전에 데이터가 증대되어 학습 하위 집합에 추가됩니다. 물론 앞서 언급한 데이터 누락을 피하기 위해 데이터 세트를 훈련 및 검증 하위 세트로 나눈 후에만 이러한 추가를 수행할 수 있습니다.

훈련 중 향상-

    PyTorch
  1. 내장 이미지 변환 기술과 유사한 프레임워크를 사용합니다. 데이터 세트의 크기를 10배 늘린다고 해서 신경망이 10배 더 효율적이지는 않다는 점은 주목할 가치가 있습니다. 실제로 이는 실제로 네트워크 성능을 이전보다 악화시킬 수 있습니다. 따라서 프로덕션 환경과 관련된 향상된 기능만 사용해야 합니다. 예를 들어, 건물에 설치된 카메라는 정상적으로 작동할 때 비에 노출되지 않습니다. 따라서 이미지에 "비" 향상을 추가할 필요가 전혀 없습니다.
  2. SmallKnot

    AI를 비즈니스에 적용하려는 사람들에게는 데이터세트가 가장 흥미롭지 않은 부분입니다. 그러나 데이터 세트가 모든 이미지 인식 프로젝트에서 중요한 부분이라는 것은 부인할 수 없습니다. 더욱이 대부분의 이미지 인식 프로젝트에서 데이터 세트의 관리 및 구성에는 팀에서 많은 시간이 걸리는 경우가 많습니다. 마지막으로 데이터 세트를 적절하게 처리하여 AI 프로젝트에서 최상의 결과를 얻을 수 있는 방법을 요약해 보겠습니다.

    1. 신경망 요구 사항에 맞게 이미지 자르기 또는 크기 조정
    2. 실제 이미지 수집 날씨 및 조명 조건에 따라
    3. 신경망의 요구 사항에 따라 주석을 구성하세요
    4. 모든 이미지를 사용하여 네트워크를 훈련시키지 마세요. 테스트용으로 일부를 예약해야 합니다
    5. 데이터 누락을 방지하려면 검증 데이터 세트에서 중복 이미지를 제거하세요
    6. 데이터 세트를 빠르게 진단하려면 데이터베이스를 생성하세요
    7. 데이터 증강 사용 최대한 적게, 이미지 수를 늘리기 위해
    번역자 소개

    Julian Chen, 51CTO 커뮤니티 편집자는 10년 이상의 IT 프로젝트 구현 경험을 갖고 있으며, 내부 구현에 능숙합니다. 외부 자원 및 위험 관리 및 통제, 네트워크 및 정보 보안 지식과 경험 전파에 중점을 둡니다.

    원제: 이미지 기반 AI 프로젝트를 위한 데이터 세트를 준비하는 7단계, 작성자: Oleg Kokorin

위 내용은 Image AI 프로젝트를 위한 데이터 세트를 준비하는 7단계의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:51cto.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿