야생 동물 탐지를 위한 Ultralytics YOLO 모델 학습 방법
African Wildlife 데이터셋을 사용하여 야생 동물 탐지를 위한 YOLO 모델을 학습시키고, 모델을 활용해 미지의 이미지에서 추론을 실행하는 방법을 알아보십시오.

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

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

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

그림 3. 모델을 평가하기 위해 분석할 수 있는 그래프 예시.
주요 성능 평가 지표#
또한 model's performance를 평가하는 데 사용할 수 있는 몇 가지 지표를 자세히 살펴보겠습니다.
- 평균 정밀도(mAP): 이 지표는 서로 다른 재현율 수준에서의 정밀도 점수를 평균화하여 모든 클래스에 걸쳐 동물을 탐지하는 모델의 전반적인 정확도를 측정합니다.
- 정밀도(Precision): 이는 전체 탐지 횟수 중 실제 참(True Positive) 탐지 횟수를 나누어 계산된, 올바른 탐지 결과의 비율을 나타냅니다.
- 재현율(Recall): 이는 모델에 의해 올바르게 식별된 실제 동물 이미지의 비율을 나타내며, 모든 관련 인스턴스를 포착하는 모델의 능력을 반영합니다.
이러한 평가 지표는 실제 환경에서 사용하기 전에 정확도를 높이기 위해 모델을 미세 조정하는 데 도움이 될 수 있습니다.
커스텀 학습된 Ultralytics YOLO11 모델을 사용한 인퍼런스 실행#
Ultralytics YOLO11을 학습시키고 평가했으므로, 이제 이를 사용하여 이미지를 분석하고 인퍼런스를 실행할 차례입니다. 데이터셋의 테스트 이미지나 다양한 소스의 새로운 이미지를 사용할 수 있습니다.
테스트 데이터셋의 이미지에 모델을 실행하기 위해 다음 코드 조각을 사용합니다. 먼저 Ultralytics 라이브러리에서 필요한 모듈을 가져옵니다. 그런 다음 결과 디렉터리에 저장된 최적의 모델 가중치 파일("best.pt")의 경로를 정의합니다. 이 가중치를 사용하여 커스텀 학습된 YOLO11 모델이 로드됩니다.
그 후, 아프리카 야생 동물 테스트 데이터셋 이미지의 경로를 설정합니다. 이 이미지에 모델을 적용하여 객체 탐지를 수행하고, 결과를 생성하며, 출력(예: 탐지된 객체 또는 주석)을 저장합니다.
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를 활용하여 무단 침입자나 밀렵 징후를 탐지할 수 있으며, 머신러닝과 과거 데이터를 결합하여 위험도가 높은 지점을 정확히 파악할 수 있습니다.
핵심 요약#
Ultralytics YOLO11과 같은 컴퓨터 비전 모델은 동물 감지 및 추적을 자동화함으로써 야생 동물 보호에 핵심적인 역할을 할 수 있습니다. 비전 AI를 사용하면 다양한 소스의 대용량 이미지와 비디오를 처리할 수 있어 정확한 야생 동물 평가를 수행할 수 있습니다.
특히 Ultralytics YOLO11은 실시간 객체 탐지를 위한 훌륭한 선택이며, 밀렵 방지 감시, 행동 분석, 생태계 모니터링과 같은 작업에 완벽하게 적합합니다. AI 기반 모델을 보존 노력에 통합함으로써 종을 더 잘 보호하고, 생물 다양성 추적을 개선하며, 멸종 위기에 처한 야생 동물을 보호하기 위해 보다 정보에 입각한 결정을 내릴 수 있습니다.
컴퓨터 비전에 대해 자세히 알아보려면 community에 가입하고 GitHub repository를 살펴보세요. 솔루션 페이지에서 AI in healthcare 및 computer vision in manufacturing과 관련된 더 많은 응용 프로그램을 찾아보세요. 비전 AI를 시작하려면 Ultralytics licensing options을 확인하세요.






