야생동물을 감지하도록 Ultralytics YOLO 모델을 학습시키는 방법
African Wildlife Dataset을 사용해 야생동물을 감지하도록 YOLO 모델을 학습시키고, 모델로 미학습 이미지에 대한 추론을 실행하는 방법을 알아보세요.
Abirami Vina10 분 읽기
우리 행성의 야생동물은 윙윙거리는 벌부터 우뚝 솟은 코끼리까지 매우 다양하며, 이러한 생물 다양성을 보존하는 일은 균형 잡힌 생태계를 유지하는 데 핵심적입니다. 그러나 서식지 감소, 밀렵, 기후 변화로 인해 보전 활동은 점점 더 어려워지고 있습니다. 이러한 요인은 모두 야생동물 개체군에 부정적인 영향을 미칩니다.
카메라 트랩 이미지를 수동으로 분석하고 현장 조사를 수행하는 방식과 같은 기존의 동물 모니터링 방법은 시간이 오래 걸리고 많은 리소스가 필요합니다. 또한 넓은 지역과 대규모 개체군을 효과적으로 다루지 못하는 경우가 많습니다.
이러한 한계를 극복하기 위해 인공지능(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을 학습시키기 위해 라벨이 지정된 고품질 이미지 데이터셋이 필요합니다. 각 이미지에는 동물의 위치와 종류가 명확하게 표시되어야 모델이 지도 학습을 통해 동물을 인식하는 방법을 학습할 수 있습니다.
이 튜토리얼에서는 아프리카 야생동물 데이터셋을 사용합니다. 이 데이터셋은 Ultralytics Python 패키지에서 지원되며 아프리카 생태계에서 흔히 볼 수 있는 동물을 감지하도록 특별히 설계되었습니다. 버팔로, 코끼리, 코뿔소, 얼룩말 등 주요 네 종의 주석이 달린 이미지가 포함되어 있습니다.

그림 1. 아프리카 야생동물 데이터셋 미리 보기입니다.
아프리카 야생동물 데이터셋의 주요 특징은 다음과 같습니다.
- 규모: 데이터셋은 총 1504개 이미지로 구성되며, 학습용 1052개, 검증용 225개, 테스트용 227개의 세 하위 집합으로 나뉩니다. 이러한 분할을 통해 모델이 효과적으로 학습하고 충분한 평가를 받을 수 있습니다.
- 간편한 통합: Ultralytics는 데이터셋 경로, 클래스 및 기타 세부 정보를 정의하는 YAML 구성 파일을 제공하므로 YOLO 모델 학습에 쉽게 사용할 수 있습니다.
- 라이선스: Bianca Ferreira가 Kaggle에 게시한 원본 데이터셋에는 라이선스가 명시되어 있지 않으므로 상업적으로 사용하기 전에 이용 약관을 확인하세요.
동물 감지를 위한 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 모델을 불러오고 학습을 위해 데이터셋을 준비하는 것입니다. 먼저 일반적인 객체 감지 작업으로 이미 사전 학습된 YOLO11n 모델을 불러옵니다. 이 사전 학습 모델은 이미 다양한 객체를 감지하는 방법을 학습했으므로 좋은 출발점이 됩니다.
그런 다음 이미지와 라벨 정보가 담긴 YAML 파일을 사용해 데이터셋을 지정합니다. 이 파일은 모델에 데이터셋의 위치와 인식하도록 학습할 객체를 알려줍니다.
African Wildlife Dataset은 Ultralytics 패키지에서 지원되므로 학습을 시작하면 자동으로 다운로드되어 수동으로 설정할 필요가 없습니다. Ultralytics Platform에서 데이터셋의 이미지와 레이블을 살펴볼 수도 있습니다.
데이터셋이 준비되면 모델 학습이 시작됩니다. 모델은 이미지 속 동물을 인식하는 능력을 향상하기 위해 여러 에포크에 걸쳐 데이터셋을 반복적으로 학습합니다. 이 과정에서 이미지는 처리하기 쉽도록 동일한 크기로 조정되며, 모델은 배치라고 하는 일정한 개수의 이미지를 한 번에 처리합니다. 이를 통해 모델이 더욱 효율적으로 학습할 수 있습니다.
요약하면, 아래 코드 스니펫을 실행하면 모델을 불러오고 데이터셋을 자동으로 다운로드한 뒤, 아프리카 야생동물 데이터셋을 바탕으로 동물을 감지하는 학습을 시작합니다.
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
results = model.train(data="african-wildlife.yaml", epochs=30, batch=8)동일한 코드를 최신 Ultralytics YOLO26 모델에도 사용할 수 있습니다. yolo11n.pt을 yolo26n.pt로 바꾸기만 하면 됩니다.
3단계: Ultralytics YOLO11 학습 과정 안내#
위 코드 스니펫을 실행하면 지정한 설정에 따라 모델 학습이 시작됩니다. 코드에서 학습 이미지를 30회 반복하도록 설정했으므로 모델은 데이터셋의 모든 이미지를 30회 살펴보면서 매번 조금씩 더 학습합니다.
동물을 그리는 방법을 배우려는 상황을 떠올려 보세요. 처음 그린 그림은 마음에 들지 않을 수 있지만, 계속 연습하면 점점 나아집니다. 다시 시도할 때마다 잘못된 부분을 파악하고 고칩니다. 각 에포크가 모델에 하는 일이 바로 이와 같습니다. 이미지들을 살펴보고, 실수에서 배우며, 반복할 때마다 동물을 더 잘 인식하게 됩니다.
학습 코드가 정상적으로 실행되면 학습이 진행되는 동안 다음과 같은 출력이 표시됩니다:
- 학습 설정: 첫 번째 부분에는 사용 중인 Ultralytics, PyTorch 버전 및 하드웨어(CPU)가 표시되며, 모델(yolo11n.pt), 배치 크기, 에포크 수, 이미지 크기를 포함한 학습 구성이 함께 나타납니다.
- 모델 요약: 레이어 및 파라미터 수와 같은 모델 복잡도 정보를 제공하여 모델의 크기를 보여줍니다.
- 옵티마이저 및 학습률: 옵티마이저(예: AdamW)와 학습률을 표시하며, 이 값은 학습 중 모델이 파라미터를 조정하는 방식을 제어합니다.
- 데이터셋 스캔: 모델이 데이터셋을 스캔하고 학습에 사용할 수 있는 유효한 이미지의 수를 표시합니다. 데이터셋에 문제가 없음을 확인합니다.
- 학습 진행 상황: 각 에포크(학습 주기)가 끝날 때마다 출력이 갱신되어 학습 진행 상황과 주요 손실 값(box_loss, cls_loss, dfl_loss)을 보여줍니다. 이 값은 모델이 얼마나 잘 학습하고 있는지 나타냅니다.
- 성능 지표: 각 에포크가 끝나면 정밀도, 재현율, mAP(평균 정밀도)와 같은 성능 지표가 표시됩니다. 이 값은 모델이 객체를 얼마나 정확하게 탐지하고 분류하는지 보여줍니다.
- GPU 메모리 사용량: GPU를 사용하는 경우 하드웨어 활용도를 추적할 수 있도록 메모리 사용량이 표시됩니다.

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

그림 3. 모델 평가에 분석할 수 있는 그래프 예시입니다.
주요 성능 평가 지표#
다음은 모델 성능을 평가하는 데 사용할 수 있는 몇 가지 지표를 자세히 살펴본 내용입니다:
- 평균 정밀도(mAP): 이 지표는 다양한 재현율 수준에서 정밀도 점수를 평균하여 모든 클래스에 걸친 동물 탐지의 전반적인 정확도를 측정합니다.
- 정밀도: 올바른 탐지 결과의 비율을 나타내며, 참 양성 탐지 수를 전체 탐지 수로 나누어 계산합니다.
- 재현율: 이미지에 실제로 포함된 동물 중 모델이 올바르게 식별한 비율을 나타내며, 관련된 모든 인스턴스를 포착하는 능력을 반영합니다.
이러한 평가 지표를 활용하면 실제 애플리케이션에 모델을 사용하기 전에 모델을 미세 조정하여 정확도를 높일 수 있습니다.
사용자 지정 학습한 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를 활용하면 허가받지 않은 사람의 출입과 밀렵 징후를 탐지할 수 있으며, 머신러닝과 과거 데이터를 활용하여 위험이 집중되는 지역을 파악할 수 있습니다.
핵심 요점#
Ultralytics YOLO11과 같은 컴퓨터 비전 모델은 동물 탐지와 추적을 자동화하여 야생동물 보호에 중요한 역할을 할 수 있습니다. 비전 AI를 이용하면 다양한 출처에서 수집한 대량의 이미지와 동영상을 처리하여 정확한 야생동물 평가를 수행할 수 있습니다.
특히 Ultralytics YOLO11은 실시간 객체 탐지에 적합하므로 밀렵 방지 감시, 행동 분석, 생태계 모니터링 등의 작업에 이상적입니다. AI 기반 모델을 보호 활동에 통합하면 종을 더 효과적으로 보호하고 생물 다양성 추적을 개선하며, 멸종 위기에 처한 야생동물을 지키기 위한 더 나은 의사결정을 내릴 수 있습니다.
커뮤니티에 참여하고 GitHub 리포지토리를 살펴보며 컴퓨터 비전에 대해 자세히 알아보세요. 솔루션 페이지에서 헬스케어 분야의 AI 및 제조 분야의 컴퓨터 비전과 관련된 더 많은 애플리케이션을 살펴보세요. 비전 AI를 시작하려면 Ultralytics 라이선스 옵션을 확인하세요.
작성자
댓글
질문하거나 결과를 공유하거나 다른 사람을 도와주세요.










