아프리카 야생동물 데이터세트를 사용하여 야생에서 동물을 감지하고 보이지 않는 이미지에서 추론을 실행하기 위해 YOLO 모델을 훈련하는 방법을 알아보세요.
지구상의 야생동물은 윙윙거리는 꿀벌부터 거대한 코끼리까지 놀라울 정도로 다양하며, 이러한 생물 다양성을 보존하는 것은 균형 잡힌 생태계를 유지하는 데 있어 핵심입니다. 하지만 서식지 손실, 밀렵, 기후 변화로 인해 보존 노력이 더욱 어려워지고 있습니다. 이러한 모든 요인은 야생동물 개체수에 부정적인 영향을 미칩니다.
카메라 트랩 이미지를 수동으로 분석하고 현장 조사를 실시하는 등 기존의 동물 모니터링 방식은 속도가 느리고 많은 리소스가 필요할 수 있습니다. 이러한 노력은 종종 넓은 지역과 많은 개체군을 효과적으로 커버하지 못합니다.
이러한 한계를 극복하기 위해 인공 지능(AI)을 야생동물 보호에 영향력 있는 도구로 활용할 수 있습니다. 특히 다음과 같은 컴퓨터 비전 모델은 Ultralytics YOLO11 와 같은 컴퓨터 비전 모델은 이미지와 동영상과 같은 시각적 데이터를 분석하여 동물의 실시간 식별 및 추적을 자동화할 수 있습니다.
YOLO11 지원하는 객체 감지 및 인스턴스 분할과 같은 컴퓨터 비전 작업은 여기에서 매우 유용합니다. 이러한 작업은 시각적 데이터를 분석함으로써 중요한 데이터를 수집하고 생태 패턴을 식별하며 환경 위협에 보다 효과적으로 대응하는 데 도움이 됩니다.
이 글에서는 YOLO11 동물을 감지하도록 훈련하는 과정을 안내합니다. 시작해보겠습니다!
튜토리얼을 시작하기 전에 YOLO11 교육하고 사용하는 데 필요한 다양한 설정 옵션과 도구에 대해 살펴보겠습니다.
필요한 주요 도구는 훈련, 객체 감지, 추론 실행과 같은 작업을 위해 YOLO 모델로 쉽게 작업할 수 있는 Ultralytics Python 패키지입니다. Ultralytics 패키지를 사용하려면 코드를 실행할 환경을 설정해야 하며, 다양한 옵션 중에서 선택할 수 있습니다.
다음은 개발 환경을 설정하는 데 가장 많이 사용되는 몇 가지 옵션입니다:
환경 설정을 위한 다른 옵션은 공식 Ultralytics 문서에서 살펴볼 수 있지만, 위에서 언급한 세 가지 옵션은 설정이 거의 필요하지 않고 사용하기 쉬워 빠르게 시작하는 데 이상적입니다.
이 튜토리얼에서는 이러한 모든 환경에서 단계가 매우 유사하므로 Google Colab, Jupyter Notebook 또는 간단한 Python 파일을 사용하여 YOLO11 설정하고 훈련하는 방법을 보여드리겠습니다.
개발 환경을 선택한 후, 야생 동물을 구체적으로 감지하도록 YOLO11 훈련시키려면 라벨이 지정된 고품질 이미지 데이터 세트가 필요합니다. 각 이미지에는 동물의 위치와 종류가 명확하게 표시되어야 모델이 지도 학습을 통해 동물을 인식하는 방법을 배울 수 있습니다.
이 튜토리얼에서는 아프리카 야생동물 데이터셋을 사용하겠습니다. 이 데이터 세트는 Ultralytics Python 패키지에서 지원되며, 아프리카 생태계에서 흔히 볼 수 있는 동물을 감지하기 위해 특별히 설계되었습니다. 여기에는 버팔로, 코끼리, 코뿔소, 얼룩말의 네 가지 주요 종에 대한 주석이 달린 이미지가 포함되어 있습니다.
다음은 아프리카 야생동물 데이터 세트의 주요 기능입니다:
이제 아프리카 야생동물 데이터세트를 살펴보았으므로 이미지에서 동물을 감지하는 YOLO11 모델 훈련을 시작할 수 있습니다. 이 과정에는 개발 환경 설정, YOLO11 모델 훈련, 모델 성능 평가가 포함됩니다.
먼저 모델을 훈련하고 테스트할 수 있는 환경을 준비합니다. 선호도에 따라 Google Colab, Jupyter 노트북 또는 간단한 Python 파일을 사용할 수 있습니다. 그에 따라 새 Google Colab 노트북, Jupyter 노트북 또는 Python 파일을 만듭니다.
Google Colab을 사용하는 경우 환경은 기본적으로 CPU (중앙 처리 장치)에서 실행되므로 학습 속도가 느려질 수 있습니다. 특히 대규모 모델의 경우 프로세스 속도를 높이려면 런타임을 GPU 사용하도록 전환할 수 있습니다. Google Colab의 메뉴에서 '런타임' 탭으로 이동하여 '런타임 유형 변경'을 선택한 다음 하드웨어 가속기를 GPU (가급적 T4 GPU)로 설정할 수 있습니다. 이는 훈련 시간을 줄이는 데 중요합니다.
다음으로, 사용 중인 환경에 관계없이 Ultralytics Python 패키지를 설치해야 합니다. 노트북 기반 환경Google Colab 또는 Jupyter)을 사용하는 경우 시작 부분에 느낌표(!)를 붙여 다음 명령을 실행합니다.
pip install ultralytics
Ultralytics 패키지가 설치되면 다음 단계는 YOLO11 모델을 로드하고 학습을 위한 데이터 세트를 준비하는 것입니다. 먼저 일반적인 객체 감지 작업에 대해 이미 사전 학습된 YOLO11 모델을 로드합니다. 이 사전 훈련된 모델은 이미 다양한 물체를 감지하는 방법을 학습했기 때문에 좋은 출발점을 제공합니다.
그런 다음 이미지와 레이블에 대한 정보가 포함된 YAML 파일을 사용하여 데이터 세트를 지정합니다. 이 파일은 모델에 데이터 집합을 찾을 위치와 인식하기 위해 학습해야 하는 객체를 알려줍니다.
아프리카 야생동물 데이터 세트는 Ultralytics 패키지에서 지원되므로 교육을 시작할 때 자동으로 다운로드되므로 수동으로 설정하는 수고를 덜 수 있습니다.
데이터 세트가 준비되면 모델이 훈련을 시작합니다. 모델은 이미지에서 동물을 인식하는 능력을 향상시키기 위해 여러 번에 걸쳐 데이터 세트를 여러 번 학습하는 과정을 거치게 됩니다. 이 과정에서 이미지의 크기가 처리할 수 있는 일정한 크기로 조정되고 모델은 배치라고 하는 한 번에 정해진 수의 이미지로 작업합니다. 이렇게 하면 모델이 더 효율적으로 학습할 수 있습니다.
즉, 아래 코드 스니펫을 실행하면 모델이 로드되고 데이터 세트가 자동으로 다운로드되며 아프리카 야생동물 데이터 세트를 기반으로 동물을 감지하는 학습이 실행되기 시작합니다.
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
results = model.train(data="african-wildlife.yaml", epochs=30, batch=8)
위의 코드 스니펫이 실행되면 모델은 우리가 제공한 설정에 따라 학습을 시작합니다. 코드를 통해 모델에 학습 이미지를 30번 살펴보라고 지시했습니다. 즉, 모델이 데이터 세트의 모든 이미지를 30번 살펴보고 매번 조금씩 더 학습한다는 뜻입니다.
동물을 그리는 방법을 배우려고 한다고 상상해 보세요. 처음 그림을 그릴 때는 잘 그려지지 않을 수도 있지만 계속 연습하다 보면 점점 나아지기 시작합니다. 다시 시도할 때마다 무엇이 잘못되었는지 배우고 고칠 수 있습니다. 이미지를 보고, 실수를 하고, 그로부터 배우고, 매번 동물을 더 잘 인식하는 것이 바로 모델에 대해 각 시대가 하는 일입니다.
트레이닝 코드가 성공적으로 실행되면 트레이닝이 진행됨에 따라 다음과 같은 출력이 표시됩니다:
학습 프로세스가 완료되면 모델의 성능 지표를 검토하고 검증할 수 있습니다. Google Colab에서 '실행' 폴더로 이동한 다음 '감지' 폴더로 이동하고 마지막으로 '훈련' 폴더로 이동하면 주요 성과 지표를 표시하는 로그를 찾을 수 있습니다.
Python 환경의 사용자의 경우, 트레이닝 결과는 기본적으로 현재 작업 디렉터리 내의 "runs/train/" 디렉터리에 저장됩니다. 트레이닝을 실행할 때마다 새로운 하위 디렉터리(예: runs/train/exp, runs/train/exp2 등)가 생성되며, 여기서 트레이닝과 관련된 로그 및 기타 출력을 찾을 수 있습니다.
CLI 사용하는 경우, 트레이닝 로그 및 실험 세부정보와 관련된 경로 및 기타 구성을 보거나 수정할 수 있는 "yolo settings" 명령을 사용하여 이러한 결과 및 설정에 쉽게 액세스할 수 있습니다.
로그 중에는 모델 학습 과정이 얼마나 잘 진행되었는지 확인할 수 있는 그래프도 있습니다. 학습이 완료된 후 생성된 이 그래프는 시간이 지남에 따라 실수가 줄어들고 정확도가 높아지는 등 모델이 개선되었는지 여부를 보여줍니다.
모델의 진행 상황을 추적하여 손실(모델의 예측값과 실제 값의 차이)이 어떻게 감소하고 훈련 중에 정확도가 어떻게 증가했는지 보여줍니다. 이를 통해 모델이 동물을 인식하는 방법을 얼마나 잘 배웠는지, 그리고 훈련이 끝날 때까지 얼마나 향상되었는지 파악할 수 있습니다.
또한 모델의 성능을 평가하는 데 사용할 수 있는 몇 가지 메트릭에 대해 자세히 살펴보세요:
이러한 평가 지표는 실제 애플리케이션에서 사용하기 전에 정확도를 높이기 위해 모델을 미세 조정하는 데 도움이 될 수 있습니다.
이제 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)
아래 표시된 출력 이미지는 실행/감지 디렉터리 내에 있는 "predict" 폴더에 저장됩니다. 후속 테스트의 경우 "predict2", "predict3" 등의 새 폴더가 생성되어 이미지를 저장합니다.
다른 소스의 이미지를 테스트하려면 아래 코드를 사용할 수 있습니다. 여기서는 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)
아래 표시된 출력 이미지가 해당 폴더에 저장됩니다.
YOLO11 같은 모델은 동물을 자동으로 감지하고 추적할 수 있어 다양한 실용적인 애플리케이션을 구현할 수 있습니다. 비전 AI가 야생동물 보호 활동을 지원하는 데 사용될 수 있는 몇 가지 주요 분야를 살펴보세요:
YOLO11 같은 컴퓨터 비전 모델은 동물 탐지 및 추적을 자동화하여 야생동물 보호에 중요한 역할을 할 수 있습니다. 비전 AI를 사용하면 다양한 소스의 대용량의 이미지와 동영상을 처리하여 정확한 야생동물 평가를 실행할 수 있습니다.
특히, 실시간 물체 감지에 탁월한 Ultralytics YOLO11 밀렵 방지 감시, 행동 분석, 생태계 모니터링과 같은 작업에 적합합니다. AI 기반 모델을 환경 보호 활동에 통합함으로써 종을 더 잘 보호하고, 생물 다양성 추적을 개선하며, 멸종 위기에 처한 야생동물을 보호하기 위해 더 많은 정보에 기반한 결정을 내릴 수 있습니다.
커뮤니티에 가입하고 GitHub 리포지토리를 탐색하여 컴퓨터 비전에 대해 자세히 알아보세요. 솔루션 페이지에서 의료 분야의 AI 및 제조 분야의 컴퓨터 비전과 관련된 더 많은 애플리케이션을 살펴보세요. Ultralytics 라이선스 옵션을 확인하여 Vision AI를 시작하세요.