야생 동물을 탐지하도록 Ultralytics YOLO 모델을 학습하는 방법
African Wildlife Dataset을 사용하여 야생 동물을 탐지하도록 YOLO 모델을 학습하고, 학습에 사용하지 않은 이미지에서 모델 추론을 실행하는 방법을 알아봅니다.

우리 행성의 야생 동물은 윙윙거리는 벌부터 우뚝 솟은 코끼리까지 매우 다양하며, 이러한 생물 다양성을 보존하는 것은 균형 잡힌 생태계를 유지하는 데 매우 중요합니다. 하지만 서식지 손실, 밀렵, 기후 변화로 인해 보전 활동은 점점 더 어려워지고 있습니다. 이러한 모든 요인은 야생 동물 개체군에 부정적인 영향을 미칩니다.
수동으로 카메라 트랩 이미지를 분석하고 현장 조사를 수행하는 등의 기존 동물 모니터링 방법은 시간이 오래 걸리고 많은 리소스를 필요로 합니다. 이러한 활동은 대규모 지역과 많은 개체군을 효과적으로 다루지 못하는 경우가 많습니다.
이러한 한계를 극복하기 위해 인공지능(AI)을 야생 동물 보전을 위한 효과적인 도구로 활용할 수 있습니다. 특히 Ultralytics YOLO11과 같은 컴퓨터 비전 모델은 이미지와 동영상 같은 시각적 데이터를 분석하여 동물의 실시간 식별 및 추적을 자동화할 수 있습니다.
Ultralytics YOLO11이 지원하는 객체 감지 및 인스턴스 세그멘테이션과 같은 컴퓨터 비전 작업은 이 분야에서 매우 유용합니다. 이러한 작업은 시각적 데이터를 분석하여 중요한 데이터를 수집하고, 생태학적 패턴을 식별하며, 환경 위협에 더욱 효과적으로 대응할 수 있도록 지원합니다.
이 글에서는 Ultralytics YOLO11을 학습하여 동물을 감지하는 과정을 살펴봅니다. 시작해 보겠습니다!
Ultralytics YOLO11 시작하기#
튜토리얼을 시작하기 전에 Ultralytics YOLO11을 학습하고 사용하는 데 필요한 다양한 설정 옵션과 도구를 살펴보겠습니다.
필요한 주요 도구는 Ultralytics Python 패키지입니다. 이 패키지를 사용하면 학습, 객체 감지, 추론 실행과 같은 작업에서 YOLO 모델을 쉽게 활용할 수 있습니다. Ultralytics 패키지를 사용하려면 코드를 실행할 환경을 설정해야 하며, 선택할 수 있는 다양한 옵션이 있습니다.
다음은 개발 환경을 설정하는 데 가장 널리 사용되는 옵션입니다.
- 명령줄 인터페이스(CLI): CLI는 터미널이라고도 하며, 명령을 입력하여 컴퓨터와 상호 작용할 수 있는 텍스트 기반 도구입니다. 버튼을 클릭하고 마우스를 사용하는 그래픽 인터페이스(GUI)와 달리, CLI에서는 프로그램을 실행하거나 작업을 수행하려면 텍스트 지침을 입력해야 합니다.
- Jupyter Notebooks: 이러한 노트북에서는 셀이라고 하는 작은 단위로 코드를 작성하고 실행할 수 있습니다. 대화형 방식이므로 코드의 출력을 즉시 확인할 수 있어 테스트와 디버깅이 더 쉽습니다.
- Google Colab: Google Colab은 Jupyter Notebooks와 유사하게 작동하는 클라우드 기반 플랫폼이지만, 강력한 GPU를 무료로 이용할 수 있습니다. 설정이 간편하며 컴퓨터에 아무것도 설치할 필요가 없습니다.
공식 Ultralytics 문서에서 살펴볼 수 있는 다른 환경 설정 옵션도 있지만, 위의 세 가지 옵션은 설정이 거의 필요하지 않고 사용하기 쉬워 빠르게 시작하기에 적합합니다.
이 튜토리얼에서는 Google Colab, Jupyter Notebooks 또는 간단한 Python 파일을 사용하여 Ultralytics YOLO11을 설정하고 학습하는 방법을 소개합니다. 이러한 모든 환경에서 단계가 매우 유사하기 때문입니다.
아프리카 야생 동물 데이터셋 이해하기#
개발 환경을 선택한 후, 야생 동물을 구체적으로 감지하도록 Ultralytics YOLO11을 학습하려면 라벨이 지정된 고품질 이미지 데이터셋이 필요합니다. 각 이미지에는 동물이 어디에 있는지와 어떤 종류인지가 명확하게 표시되어야 모델이 지도 학습을 통해 동물을 인식하는 방법을 학습할 수 있습니다.
이 튜토리얼에서는 African Wildlife Dataset을 사용합니다. 이 데이터셋은 Ultralytics Python 패키지에서 지원되며 아프리카 생태계에서 흔히 볼 수 있는 동물을 감지하도록 특별히 설계되었습니다. 버팔로, 코끼리, 코뿔소, 얼룩말 등 네 가지 주요 종의 어노테이션이 포함된 이미지를 제공합니다.

그림 1. African Wildlife Dataset 미리 보기.
다음은 African Wildlife Dataset의 주요 특징입니다.
- 규모: 데이터셋은 총 1504개의 이미지로 구성되며, 학습용 1052개, 검증용 225개, 테스트용 227개의 세 가지 하위 집합으로 나뉩니다. 이러한 분할을 통해 모델이 효과적으로 학습하고 철저하게 평가되도록 합니다.
- 원활한 통합: Ultralytics는 데이터셋 경로, 클래스 및 기타 세부 정보를 정의하는 YAML 구성 파일을 제공하므로 YOLO 모델 학습에 쉽게 사용할 수 있습니다.
- 오픈 라이선스: 이 데이터셋은 AGPL-3.0 라이선스에 따라 배포되어 투명성과 협업을 장려합니다.
동물 감지를 위한 Ultralytics YOLO11 학습#
이제 African Wildlife Dataset을 살펴보았으므로, 이미지에서 동물을 감지하도록 Ultralytics YOLO11 모델을 학습해 보겠습니다. 이 과정에는 개발 환경 설정, YOLO11 모델 학습, 모델 성능 평가가 포함됩니다.
1단계: 환경 설정#
시작하려면 모델을 학습하고 테스트할 환경을 준비합니다. 선호도에 따라 Google Colab, Jupyter Notebooks 또는 간단한 Python 파일을 사용할 수 있습니다. 그에 맞게 새 Google Colab 노트북, Jupyter Notebook 또는 Python 파일을 생성합니다.
Google Colab을 사용하는 경우 환경은 기본적으로 CPU(중앙 처리 장치)에서 실행되므로 학습 속도가 느려질 수 있습니다. 특히 대형 모델의 경우 프로세스 속도를 높이려면 런타임을 GPU를 사용하도록 전환할 수 있습니다. Google Colab에서는 메뉴의 "Runtime" 탭으로 이동하여 "Change runtime type"을 선택한 다음 하드웨어 가속기를 GPU(가급적 T4 GPU)로 설정하면 됩니다. 이는 학습 시간을 줄이는 데 중요합니다.
다음으로 어떤 환경을 사용하든 Ultralytics Python 패키지를 설치해야 합니다. 노트북 기반 환경(Google Colab 또는 Jupyter)을 사용하는 경우 다음 명령의 맨 앞에 느낌표(!)를 붙여 실행합니다.
pip install ultralytics2단계: Ultralytics YOLO11 로드 및 데이터셋 준비#
Ultralytics 패키지가 설치되면 다음 단계는 YOLO11 모델을 로드하고 학습을 위한 데이터셋을 준비하는 것입니다. 먼저 일반적인 객체 감지 작업으로 사전 학습된 YOLO11 모델을 로드합니다. 이 사전 학습 모델은 이미 다양한 객체를 감지하는 방법을 학습했으므로 좋은 시작점이 됩니다.
그런 다음 이미지와 라벨에 대한 정보가 포함된 YAML 파일을 사용하여 데이터셋을 지정합니다. 이 파일은 모델에 데이터셋의 위치와 인식하도록 학습해야 할 객체를 알려줍니다.
African Wildlife Dataset은 Ultralytics 패키지에서 지원되므로 학습을 시작하면 자동으로 다운로드되어 수동으로 설정할 필요가 없습니다.
데이터셋이 준비되면 모델 학습이 시작됩니다. 모델은 이미지에서 동물을 인식하는 능력을 향상하기 위해 데이터셋을 여러 번 반복해서 처리합니다. 이를 여러 epoch에 걸친 학습이라고 합니다. 이 과정에서 이미지는 처리를 위해 일정한 크기로 조정되며, 모델은 한 번에 일정한 수의 이미지 집합을 처리합니다. 이를 batch라고 합니다. 이 방식은 모델이 더 효율적으로 학습하도록 돕습니다.
간단히 말해, 아래 코드 스니펫을 실행하면 모델이 로드되고 데이터셋이 자동으로 다운로드되며 African Wildlife Dataset을 기반으로 동물을 감지하는 학습이 시작됩니다.
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
results = model.train(data="african-wildlife.yaml", epochs=30, batch=8)3단계: Ultralytics YOLO11 학습 과정#
위의 코드 스니펫을 실행하면 지정한 설정에 따라 모델 학습이 시작됩니다. 코드에서 모델이 학습 이미지를 30회 반복해서 처리하도록 설정했습니다. 즉, 모델은 데이터셋의 모든 이미지를 30번씩 확인하면서 매번 조금씩 더 학습합니다.
동물을 그리는 방법을 배우려 한다고 가정해 보겠습니다. 처음 그린 그림은 잘 보이지 않을 수 있지만, 계속 연습하다 보면 점점 실력이 향상됩니다. 다시 시도할 때마다 잘못된 부분에서 배우고 이를 수정합니다. 각 epoch가 모델에 수행하는 작업도 이와 같습니다. 이미지를 확인하고 실수하며, 그 실수에서 배우고, 매번 동물을 더 잘 인식하게 됩니다.
학습 코드가 정상적으로 실행되면 학습이 진행되는 동안 다음과 같은 출력이 표시됩니다.
- 학습 설정: 첫 번째 부분에는 사용 중인 Ultralytics, PyTorch 및 하드웨어 버전(CPU의 경우)이 학습 구성과 함께 표시됩니다. 여기에는 모델(yolo11n.pt), batch 크기, epoch 수, 이미지 크기가 포함됩니다.
- 모델 요약: 레이어 수와 파라미터 수 등 모델의 복잡도에 대한 정보를 제공하여 모델의 크기를 보여줍니다.
- Optimizer 및 learning rate: 학습 중 모델이 파라미터를 조정하는 방식을 제어하는 optimizer(예: AdamW)와 learning rate를 표시합니다.
- 데이터셋 스캔: 모델이 데이터셋을 스캔하고 유효하며 학습에 사용할 수 있는 이미지 수를 표시합니다. 데이터셋에 문제가 없는지 확인합니다.
- 학습 진행률: 각 epoch(학습 주기) 후 출력이 업데이트되며, 모델의 학습 상태를 나타내는 주요 loss 값(box_loss, cls_loss, dfl_loss)과 함께 학습 진행률을 보여줍니다.
- 성능 지표: 각 epoch 후 precision, recall, mAP(평균 정밀도)와 같은 성능 지표가 표시됩니다. 이러한 값은 모델이 객체를 얼마나 정확하게 감지하고 분류하는지 보여줍니다.
- GPU 메모리 사용량: GPU를 사용하는 경우 출력에 메모리 사용량이 표시되어 하드웨어 사용률을 추적할 수 있습니다.

그림 2. 모델 학습 중 표시되는 출력.
4단계: 사용자 지정 학습 모델의 성능 평가#
학습 과정이 완료되면 모델의 성능 지표를 검토하고 검증할 수 있습니다. Google Colab에서는 "runs" 폴더, 그다음 "detect" 폴더, 마지막으로 "train" 폴더로 이동하면 주요 성능 지표를 표시하는 로그를 확인할 수 있습니다.
Python 환경의 경우 학습 결과는 기본적으로 현재 작업 디렉터리 내 “runs/train/” 디렉터리에 저장됩니다. 각 학습 실행마다 새 하위 디렉터리(예: runs/train/exp, runs/train/exp2 등)가 생성되며, 이곳에서 학습과 관련된 로그 및 기타 출력을 확인할 수 있습니다.
CLI를 사용하는 경우 “yolo settings” 명령을 사용하여 이러한 결과와 설정에 쉽게 액세스할 수 있습니다. 이 명령을 사용하면 학습 로그 및 실험 세부 정보와 관련된 경로와 기타 구성을 확인하거나 수정할 수 있습니다.
로그에서 모델 학습 과정이 얼마나 잘 진행되었는지 확인할 수 있는 그래프도 볼 수 있습니다. 학습 완료 후 생성되는 이러한 그래프는 모델이 실수를 줄이고 더 정확해지면서 시간이 지남에 따라 개선되었는지 보여줍니다.
그래프는 모델의 진행 상황을 추적하여 loss(모델의 예측값과 실제값의 차이)가 학습 중 어떻게 감소했는지, 정확도가 어떻게 향상되었는지를 보여줍니다. 이를 통해 모델이 동물을 얼마나 잘 인식하도록 학습했는지와 학습 종료 시점까지 얼마나 개선되었는지 이해할 수 있습니다.

그림 3. 모델을 평가하기 위해 분석할 수 있는 그래프 예시.
주요 성능 평가 지표#
또한 모델 성능을 평가하는 데 사용할 수 있는 몇 가지 지표를 자세히 살펴보겠습니다.
- 평균 정밀도(mAP): 이 지표는 다양한 recall 수준에서 precision 점수를 평균하여 모든 클래스에 걸쳐 동물을 감지하는 모델의 전반적인 정확도를 측정합니다.
- Precision: 올바른 감지 결과의 비율을 나타내며, true positive 감지 수를 전체 감지 수로 나누어 계산합니다.
- Recall: 이미지에 실제로 존재하는 동물 중 모델이 올바르게 식별한 비율을 나타내며, 관련된 모든 인스턴스를 포착하는 모델의 능력을 반영합니다.
이러한 평가 지표를 사용하면 실제 애플리케이션에 모델을 사용하기 전에 모델을 미세 조정하여 정확도를 향상할 수 있습니다.
사용자 지정 학습 Ultralytics YOLO11 모델로 추론 실행#
Ultralytics YOLO11의 학습 및 평가를 완료했으므로 이제 이를 사용하여 이미지를 분석하고 추론을 실행할 차례입니다. 데이터셋의 테스트 이미지나 다른 출처의 새 이미지를 사용할 수 있습니다.
다음 코드 스니펫을 사용하여 테스트 데이터셋의 이미지에 모델을 실행합니다. 이 코드는 Ultralytics 라이브러리에서 필요한 모듈을 가져옵니다. 그런 다음 결과 디렉터리에 저장된 최적 모델 가중치 파일("best.pt")의 경로를 정의합니다. 사용자 지정 학습 YOLO11 모델은 이러한 가중치를 사용하여 로드됩니다.
그 후 African Wildlife 테스트 데이터셋에 있는 이미지의 경로를 설정합니다. 객체 감지를 위해 모델을 이 이미지에 적용하고, 결과를 생성한 다음, 출력(예: 감지된 객체 또는 어노테이션)을 저장합니다.
from ultralytics import YOLO, settings
best_model_path = results.save_dir / "weights/best.pt"
model = YOLO(best_model_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. 테스트 이미지에 미세 조정된 Ultralytics YOLO11 모델로 추론 실행.
다른 출처의 이미지를 테스트하려면 아래 코드를 사용할 수 있습니다. 여기서는 Pexels의 이미지를 사용했습니다. 동일한 이미지나 다른 관련 이미지를 사용해도 됩니다.
from ultralytics import YOLO
best_model_path = results.save_dir / "weights/best.pt"
model = YOLO(best_model_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. 보지 못한 이미지에서 미세 조정된 Ultralytics YOLO11 모델로 야생 동물 감지.
야생 동물 보전을 위한 AI: 실제 애플리케이션#
Ultralytics YOLO11과 같은 모델은 동물을 자동으로 감지하고 추적할 수 있어 다양한 실용적인 애플리케이션을 구현할 수 있습니다. 다음은 비전 AI를 활용하여 야생 동물 보전 활동을 지원할 수 있는 주요 분야의 일부입니다.
- 종 모니터링: 비전 AI를 사용하여 이미지와 동영상 같은 시각적 데이터를 처리하고, 종을 정확하게 식별하며, 개체 수를 세고, 시간에 따른 이동을 추적할 수 있습니다.
- 스마트 카메라 알림: 원격 지역에서 컴퓨터 비전을 사용하여 동물을 지속적으로 분류하고 실시간 알림을 전송할 수 있습니다. 이를 통해 야생 동물 관리 기관은 비정상적인 동물 행동이나 인간과 야생 동물 간의 충돌과 같은 위협에 신속하게 대응할 수 있습니다.
- 행동 분석: 이동, 섭식 습관 및 사회적 상호 작용을 모니터링함으로써 비전 AI 시스템은 종 간의 상호 작용에 대한 종합적인 인사이트를 제공할 수 있습니다.
- 밀렵 방지: 비전 AI를 활용하여 허가받지 않은 사람의 존재와 밀렵 징후를 감지하고, machine learning 및 과거 데이터를 활용하여 위험 집중 지역을 파악할 수 있습니다.
핵심 요점#
Ultralytics YOLO11과 같은 컴퓨터 비전 모델은 동물 감지 및 추적을 자동화하여 야생 동물 보전에서 중요한 역할을 할 수 있습니다. 비전 AI를 사용하면 다양한 출처에서 얻은 대량의 이미지와 동영상을 처리하여 정확한 야생 동물 평가를 수행할 수 있습니다.
특히 Ultralytics YOLO11은 실시간 객체 감지에 적합한 뛰어난 선택지로, 밀렵 방지 감시, 행동 분석 및 생태계 모니터링과 같은 작업에 안성맞춤입니다. AI 기반 모델을 보전 활동에 통합하면 종을 더 효과적으로 보호하고, 생물 다양성 추적을 개선하며, 멸종 위기 야생 동물을 보호하기 위한 더욱 정확한 의사 결정을 내릴 수 있습니다.
커뮤니티에 참여하고 GitHub 저장소를 살펴보며 컴퓨터 비전에 대해 자세히 알아보세요. 솔루션 페이지에서 헬스케어 분야의 AI 및 제조 분야의 컴퓨터 비전과 관련된 더 많은 애플리케이션을 확인해 보세요. 비전 AI를 시작하려면 Ultralytics 라이선스 옵션을 살펴보세요.









