YOLO Vision 2025를 놓치지 마세요!
2025년 9월 25일
10:00 — 18:00 BST
하이브리드 이벤트
Yolo Vision 2024

야생에서 동물을 탐지하도록 Ultralytics YOLO 모델을 훈련하는 방법

Abirami Vina

5분 분량

2025년 4월 15일

아프리카 야생 동물 데이터 세트를 사용하여 야생에서 동물을 탐지하도록 YOLO 모델을 학습시키고, 이 모델을 사용하여 보이지 않는 이미지에 대한 추론을 실행하는 방법을 알아보세요.

우리 행성의 야생 동물은 윙윙거리는 벌부터 우뚝 솟은 코끼리에 이르기까지 믿을 수 없을 정도로 다양하며, 이러한 생물 다양성을 보존하는 것은 균형 잡힌 생태계를 유지하는 데 중요합니다. 그러나 서식지 손실, 밀렵 및 기후 변화로 인해 보존 노력이 더욱 어려워지고 있습니다. 이러한 모든 요인은 야생 동물 개체수에 부정적인 영향을 미칩니다. 

카메라 트랩 이미지를 수동으로 분석하고 현장 조사를 수행하는 것과 같은 기존의 동물 모니터링 방법은 느릴 수 있으며 많은 리소스가 필요합니다. 이러한 노력은 종종 넓은 지역과 큰 개체군을 효과적으로 다루지 못합니다.

이러한 한계를 극복하기 위해 인공 지능(AI)을 야생 동물 보호에 효과적인 도구로 사용할 수 있습니다. 특히 Ultralytics YOLO11과 같은 컴퓨터 비전 모델은 이미지 및 비디오와 같은 시각적 데이터를 분석하여 동물의 실시간 식별 및 추적을 자동화할 수 있습니다. 

YOLO11에서 지원하는 객체 감지 및 인스턴스 분할과 같은 컴퓨터 비전 작업은 여기에서 매우 유용합니다. 시각적 데이터를 분석함으로써 이러한 작업은 중요한 데이터를 수집하고, 생태 패턴을 식별하고, 환경 위협에 보다 효과적으로 대응하는 데 도움이 됩니다.

이번 글에서는 동물을 탐지하도록 YOLO11을 훈련하는 과정을 안내합니다. 그럼 시작해 볼까요!

Ultralytics YOLO11 시작하기

튜토리얼을 시작하기 전에 YOLO11을 훈련하고 사용하는 데 필요한 다양한 설정 옵션과 도구를 살펴보겠습니다. 

가장 필요한 도구는 Ultralytics Python 패키지이며, 이를 통해 훈련, 객체 감지 및 추론 실행과 같은 작업에 YOLO 모델을 쉽게 사용할 수 있습니다. Ultralytics 패키지를 사용하려면 코드를 실행할 환경을 설정해야 하며, 다양한 옵션 중에서 선택할 수 있습니다.

개발 환경 설정을 위한 가장 일반적인 옵션은 다음과 같습니다.

  • 명령줄 인터페이스(CLI): 터미널이라고도 하는 CLI는 명령을 입력하여 컴퓨터와 상호 작용할 수 있는 텍스트 기반 도구입니다. 버튼을 클릭하고 마우스를 사용하는 그래픽 인터페이스(GUI)와 달리 CLI를 사용하려면 텍스트 명령을 입력하여 프로그램을 실행하거나 작업을 수행해야 합니다. 
  • Jupyter Notebooks: 이 노트북을 사용하면 셀이라는 작은 덩어리 안에서 코드를 작성하고 실행할 수 있습니다. 즉각적으로 코드 결과를 확인할 수 있는 상호작용성을 제공하므로 테스트와 디버깅이 더 용이합니다.
  • Google Colab: Google Colab은 Jupyter Notebook과 유사하게 작동하는 클라우드 기반 플랫폼이지만 강력한 GPU에 대한 무료 액세스를 제공합니다. 설정이 간편하고 컴퓨터에 아무것도 설치할 필요가 없습니다.

Ultralytics 공식 문서에서 환경 설정에 대한 다른 옵션을 살펴볼 수도 있지만, 위에 언급된 세 가지 옵션은 설정이 매우 간단하고 사용하기 쉬워서 빠르게 시작하는 데 이상적입니다. 

이 튜토리얼에서는 Google Colab, Jupyter Notebook 또는 간단한 Python 파일을 사용하여 YOLO11을 설정하고 학습시키는 방법을 보여드리겠습니다. 단계가 이러한 모든 환경에서 매우 유사하기 때문입니다.

아프리카 야생 동물 데이터 세트 이해

개발 환경을 선택한 후, YOLO11이 야생 동물을 특정적으로 감지하도록 학습시키려면 레이블이 지정된 고품질 이미지 데이터 세트가 필요합니다. 각 이미지는 동물의 위치와 종류를 명확하게 보여주어 모델이 지도 학습을 통해 동물을 인식하도록 할 수 있어야 합니다.

이 튜토리얼에서는 아프리카 야생 동물 데이터 세트를 사용합니다. Ultralytics Python 패키지에서 지원하며 아프리카 생태계에서 흔히 발견되는 동물을 감지하도록 특별히 설계되었습니다. 버팔로, 코끼리, 코뿔소, 얼룩말의 주석이 달린 이미지가 포함되어 있습니다.

Fig 1. 아프리카 야생 동물 데이터 세트의 예시입니다.

African Wildlife 데이터 세트의 주요 특징은 다음과 같습니다.

  • 규모: 데이터 세트는 훈련용 1052개, 검증용 225개, 테스트용 227개로 세 개의 하위 집합으로 나뉜 1504개의 이미지로 구성됩니다. 이 분할은 모델이 효과적으로 학습하고 철저하게 평가되도록 보장합니다.

  • 원활한 통합: Ultralytics는 데이터 세트 경로, 클래스 및 기타 세부 정보를 정의하는 YAML 구성 파일을 제공하여 YOLO 모델을 학습할 때 쉽게 사용할 수 있습니다.

  • 오픈 라이선스: 이 데이터 세트는 투명성과 협업을 장려하는 AGPL-3.0 라이선스에 따라 배포됩니다.

동물 감지를 위한 Ultralytics YOLO11 학습

이제 아프리카 야생 동물 데이터 세트를 살펴보았으므로 YOLO11 모델을 학습하여 이미지에서 동물을 감지할 수 있습니다. 이 프로세스에는 개발 환경 설정, YOLO11 모델 학습 및 모델 성능 평가가 포함됩니다.

1단계: 환경 설정

시작하려면 모델 훈련 및 테스트를 위한 환경을 준비합니다. 선호도에 따라 Google Colab, Jupyter Notebooks 또는 간단한 Python 파일을 사용할 수 있습니다. 그에 따라 새 Google Colab 노트북, Jupyter Notebook 또는 Python 파일을 만듭니다.

Google Colab을 사용하는 경우 환경은 기본적으로 CPU(중앙 처리 장치)에서 실행되므로 훈련 속도가 느려질 수 있습니다. 특히 더 큰 모델의 경우 프로세스 속도를 높이려면 런타임을 전환하여 GPU를 사용하도록 할 수 있습니다. Google Colab에서 메뉴의 "런타임" 탭으로 이동하여 "런타임 유형 변경"을 선택하고 하드웨어 가속기를 GPU(가급적 T4 GPU)로 설정할 수 있습니다. 이는 훈련 시간을 줄이는 데 중요합니다.

다음으로, 어떤 환경을 사용하든 Ultralytics Python 패키지를 설치해야 합니다. 노트북 기반 환경(Google Colab 또는 Jupyter)을 사용하는 경우, 느낌표(!)를 맨 앞에 붙여 다음 명령을 실행하십시오.

pip install ultralytics

2단계: YOLO11 로딩 및 데이터세트 준비

Ultralytics 패키지가 설치되면 다음 단계는 YOLO11 모델을 로드하고 훈련을 위해 데이터 세트를 준비하는 것입니다. 먼저 일반 객체 감지 작업에서 이미 사전 훈련된 YOLO11 모델을 로드합니다. 이 사전 훈련된 모델은 다양한 객체를 감지하는 방법을 이미 학습했으므로 좋은 시작점을 제공합니다.

다음으로 이미지와 레이블에 대한 정보가 포함된 YAML 파일을 사용하여 데이터 세트를 지정합니다. 이 파일은 모델에 데이터 세트를 찾을 위치와 인식해야 할 객체를 알려줍니다. 

African Wildlife 데이터 세트는 Ultralytics 패키지에서 지원하므로 훈련을 시작할 때 자동으로 다운로드되어 수동으로 설정하는 번거로움을 덜 수 있습니다.

데이터 세트가 준비되면 모델 훈련이 시작됩니다. 모델은 이미지에서 동물을 인식하는 능력을 향상시키기 위해 여러 번 데이터 세트를 거치게 되는데, 이를 여러 epoch에 걸친 훈련이라고 합니다. 이 과정에서 이미지는 처리를 위해 일관된 크기로 조정되고 모델은 한 번에 설정된 수의 이미지(배치라고 함)로 작업합니다. 이는 모델이 더 효율적으로 학습하는 데 도움이 됩니다.

요약하자면, 아래 코드 스니펫을 실행하면 모델이 로드되고 데이터 세트가 자동으로 다운로드되며, African Wildlife 데이터 세트를 기반으로 동물을 탐지하기 위한 훈련이 시작됩니다.

from ultralytics import YOLO

model = YOLO("yolo11n.pt")

results = model.train(data="african-wildlife.yaml", epochs=30, batch=8)

3단계: YOLO11 훈련 연습

위의 코드 스니펫을 실행하면 모델이 제공된 설정에 따라 훈련을 시작합니다. 코드를 통해 모델에 훈련 이미지를 30번 거치도록 지시했습니다. 즉, 모델은 데이터 세트의 모든 이미지를 30번 살펴보고 매번 조금씩 더 학습합니다.

동물 그리는 법을 배우려고 한다고 상상해 보세요. 처음 그릴 때는 잘 안 보일 수도 있지만, 계속 연습하다 보면 점점 더 잘 그리게 됩니다. 다시 시도할 때마다 무엇이 잘못되었는지 배우고 수정합니다. 각 에포크가 모델에 대해 수행하는 작업은 이미지를 보고, 실수를 하고, 실수로부터 배우고, 매번 동물을 더 잘 인식하게 되는 것입니다.

훈련 코드가 성공적으로 실행 중인 경우 훈련이 진행됨에 따라 다음 출력이 표시됩니다.

  • 학습 설정: 첫 번째 부분은 Ultralytics, PyTorch 버전 및 사용 중인 하드웨어(이 경우 CPU)와 모델(yolo11n.pt), 배치 크기, epoch, 이미지 크기를 포함한 학습 구성을 보여줍니다.
  • 모델 요약: 레이어 및 파라미터 수와 같은 모델의 복잡성에 대한 정보를 제공하여 모델의 크기를 보여줍니다.
  • 최적화 프로그램 및 학습률: 모델이 훈련 중에 매개변수를 조정하는 방법을 제어하는 최적화 프로그램(예: AdamW)과 학습률을 언급합니다.
  • 데이터 세트 스캔: 모델이 데이터 세트를 스캔하여 훈련에 유효하고 준비된 이미지 수를 표시합니다. 데이터 세트에 문제가 없는지 확인합니다.
  • 학습 진행 상황: 각 epoch(학습 주기) 후 출력이 업데이트되어 모델 학습 정도를 나타내는 주요 손실 값(box_loss, cls_loss, dfl_loss)과 함께 학습 진행 상황을 보여줍니다.
  • 성능 지표: 각 epoch 이후에는 정밀도, 재현율 및 mAP(평균 정밀도)와 같은 성능 지표가 표시됩니다. 이러한 값은 모델이 객체를 얼마나 정확하게 감지하고 분류하는지 보여줍니다.
  • GPU 메모리 사용량: GPU를 사용하는 경우 하드웨어 활용률을 추적하기 위해 메모리 사용량이 출력에 표시됩니다.
Fig 2. 모델 학습이 실행되는 동안 표시될 출력입니다.

4단계: 사용자 정의 훈련된 모델의 성능 평가

학습 프로세스가 완료되면 모델의 성능 지표를 검토하고 검증할 수 있습니다. Google Colab에서 "runs" 폴더로 이동한 다음 "detect" 폴더로 이동하고 마지막으로 "train" 폴더로 이동하면 주요 성능 지표를 표시하는 로그를 찾을 수 있습니다.

Python 환경의 사용자를 위해 학습 결과는 기본적으로 현재 작업 디렉토리 내의 “runs/train/” 디렉토리에 저장됩니다. 각 학습 실행은 새로운 하위 디렉토리(예: runs/train/exp, runs/train/exp2 등)를 생성하며, 여기에서 학습과 관련된 로그 및 기타 결과물을 찾을 수 있습니다.

CLI를 사용하는 경우 “yolo settings” 명령을 사용하여 이러한 결과 및 설정에 쉽게 액세스할 수 있습니다. 이 명령을 사용하면 훈련 로그 및 실험 세부 정보와 관련된 경로 및 기타 구성을 보거나 수정할 수 있습니다.

로그에서 모델 학습 과정이 얼마나 잘 진행되었는지 보여주는 그래프도 확인할 수 있습니다. 학습이 완료된 후 생성되는 이 그래프는 모델이 오류를 줄이고 정확도를 높여 시간이 지남에 따라 개선되었는지 여부를 보여줍니다. 

모델의 진행 상황을 추적하여 손실(모델의 예측 값과 실제 값의 차이)이 어떻게 감소하고 훈련 중에 정확도가 어떻게 증가했는지 보여줍니다. 이를 통해 모델이 동물을 얼마나 잘 인식하는지, 훈련이 끝날 때까지 얼마나 개선되었는지 이해할 수 있습니다.

그림 3. 모델을 평가하기 위해 분석할 수 있는 그래프의 예시입니다.

주요 성능 평가 지표

또한 모델 성능을 평가하는 데 사용할 수 있는 몇 가지 지표를 자세히 살펴보겠습니다.

  • 평균 정밀도(mAP): 이 지표는 다양한 재현율 수준에서 정밀도 점수를 평균화하여 모든 클래스에서 동물을 탐지하는 모델의 전체 정확도를 측정합니다.
  • 정밀도: 이는 참 긍정 감지 수를 총 감지 수로 나누어 계산한 올바른 감지 비율을 나타냅니다.
  • 재현율: 이는 모델이 올바르게 식별한 이미지 속 실제 동물의 비율을 나타내며 모든 관련 인스턴스를 캡처하는 능력을 반영합니다.

이러한 평가 지표는 실제 응용 프로그램에서 사용하기 전에 정확도를 향상시키기 위해 모델을 미세 조정하는 데 도움이 될 수 있습니다.

사용자 지정 학습된 YOLO11 모델을 사용하여 추론 실행

이제 YOLO11을 훈련하고 평가했으므로 이를 사용하여 이미지를 분석하고 추론을 실행할 차례입니다. 데이터 세트의 테스트 이미지 또는 다른 소스의 새 이미지를 사용할 수 있습니다.

테스트 데이터 세트의 이미지에서 모델을 실행하기 위해 다음 코드 스니펫을 사용합니다. Ultralytics 라이브러리에서 필요한 모듈을 가져옵니다. 그런 다음 결과 디렉토리에 저장된 최상의 모델 가중치 파일("best.pt")의 경로를 정의합니다. 사용자 정의 훈련된 YOLO11 모델은 이러한 가중치를 사용하여 로드됩니다. 

그 후 아프리카 야생 동물 테스트 데이터 세트의 이미지 경로가 설정됩니다. 모델은 객체 감지를 위해 이 이미지에 적용되고 결과가 생성되며 출력(예: 감지된 객체 또는 주석)이 저장됩니다.

from ultralytics import settings

best_model_path = results.save_dir / "weights/best.pt"

model = YOLO(best_path)

image_path = f"{settings['datasets_dir']}/african-wildlife/test/images/1 (168).jpg"

img_results = model(image_path, save=True) 

아래 표시된 출력 이미지는 runs\detect 디렉토리 내의 "predict" 폴더에 저장됩니다. 후속 테스트에서는 이미지를 저장하기 위해 "predict2", "predict3" 등과 같은 새 폴더가 생성됩니다.

그림 4. 미세 조정된 YOLO11 모델을 사용하여 테스트 이미지에서 추론을 실행하는 모습.

다양한 소스의 이미지를 테스트하려면 아래 코드를 사용할 수 있습니다. Pexels의 이미지를 사용했습니다. 동일한 이미지 또는 기타 관련 이미지를 사용할 수 있습니다.

best_model_path = results.save_dir / "weights/best.pt"

model = YOLO(best_path)

img2_results = model("https://images.pexels.com/photos/18341011/pexels-photo-18341011/free-photo-of-elephant-and-zebras-in-savannah.png", save=True)

아래 표시된 출력 이미지는 해당 폴더에 저장됩니다.

그림 5. 미세 조정된 YOLO11 모델을 사용하여 보이지 않는 이미지에서 야생 동물 감지.

야생 동물 보호를 위한 AI: 실제 적용 사례

YOLO11과 같은 모델은 동물을 자동으로 감지하고 추적할 수 있으므로 다양한 실제 응용 프로그램이 가능합니다. 비전 AI를 사용하여 야생 동물 보호 노력을 지원할 수 있는 주요 영역에 대한 간략한 정보는 다음과 같습니다.

  • 종 모니터링: Vision AI는 이미지 및 비디오와 같은 시각적 데이터를 처리하여 종을 정확하게 식별하고, 개체 수를 세고, 시간 경과에 따른 이동을 추적하는 데 사용할 수 있습니다.
  • 스마트 카메라 알림: 원격 지역에서 컴퓨터 비전은 동물을 지속적으로 분류하고 실시간 알림을 보내는 데 사용될 수 있으므로 야생 동물 당국은 비정상적인 동물 행동이나 인간과 야생 동물 간의 갈등과 같은 위협에 신속하게 대응할 수 있습니다.
  • 행동 분석: 비전 AI 시스템은 이동, 섭식 습관 및 사회적 상호 작용을 모니터링하여 종 간 역학에 대한 포괄적인 통찰력을 제공할 수 있습니다.
  • 밀렵 방지: Vision AI는 머신 러닝 및 과거 데이터를 활용하여 위험 핫스팟을 정확히 찾아내는 동시에 무단 인간 존재 및 밀렵 징후를 감지하는 데 활용될 수 있습니다.

주요 내용

YOLO11과 같은 컴퓨터 비전 모델은 동물 감지 및 추적을 자동화하여 야생 동물 보호에 중요한 역할을 할 수 있습니다. Vision AI를 통해 다양한 소스의 대량의 이미지와 비디오를 처리하여 정확한 야생 동물 평가를 실행할 수 있습니다. 

특히 Ultralytics YOLO11은 실시간 객체 감지에 적합한 선택이므로 밀렵 방지 감시, 행동 분석 및 생태계 모니터링과 같은 작업에 완벽하게 들어맞습니다. AI 기반 모델을 보존 노력에 통합함으로써 종을 더 잘 보호하고 생물 다양성 추적을 개선하며 멸종 위기에 처한 야생 동물을 보호하기 위해 더 많은 정보를 바탕으로 결정을 내릴 수 있습니다.

커뮤니티에 참여하고 GitHub 저장소를 탐색하여 컴퓨터 비전에 대해 자세히 알아보세요. 솔루션 페이지에서 헬스케어 분야의 AI제조 분야의 컴퓨터 비전과 관련된 더 많은 응용 분야를 찾아보세요. Vision AI를 시작하려면 Ultralytics 라이선스 옵션을 확인하세요.

함께 미래의 AI를 만들어 갑시다!

미래의 머신러닝 여정을 시작하세요

무료로 시작하기
클립보드에 링크가 복사되었습니다.